gnu: Add emacs-relative-buffers.
[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 ;;;
99 ;;; This file is part of GNU Guix.
100 ;;;
101 ;;; GNU Guix is free software; you can redistribute it and/or modify it
102 ;;; under the terms of the GNU General Public License as published by
103 ;;; the Free Software Foundation; either version 3 of the License, or (at
104 ;;; your option) any later version.
105 ;;;
106 ;;; GNU Guix is distributed in the hope that it will be useful, but
107 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
108 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
109 ;;; GNU General Public License for more details.
110 ;;;
111 ;;; You should have received a copy of the GNU General Public License
112 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
113
114 (define-module (gnu packages emacs-xyz)
115 #:use-module ((guix licenses) #:prefix license:)
116 #:use-module (guix packages)
117 #:use-module (guix cvs-download)
118 #:use-module (guix download)
119 #:use-module (guix bzr-download)
120 #:use-module (guix git-download)
121 #:use-module (guix hg-download)
122 #:use-module (guix build-system gnu)
123 #:use-module (guix build-system cmake)
124 #:use-module (guix build-system copy)
125 #:use-module (guix build-system emacs)
126 #:use-module (guix build-system glib-or-gtk)
127 #:use-module (guix build-system perl)
128 #:use-module (guix build-system trivial)
129 #:use-module (gnu packages)
130 #:use-module (gnu packages admin)
131 #:use-module (gnu packages audio)
132 #:use-module (gnu packages bash)
133 #:use-module (gnu packages cmake)
134 #:use-module (gnu packages code)
135 #:use-module (gnu packages cpp)
136 #:use-module (gnu packages curl)
137 #:use-module (gnu packages databases)
138 #:use-module (gnu packages dictionaries)
139 #:use-module (gnu packages djvu)
140 #:use-module (gnu packages ebook)
141 #:use-module (gnu packages emacs)
142 #:use-module (gnu packages guile)
143 #:use-module (gnu packages gtk)
144 #:use-module (gnu packages gnome)
145 #:use-module (gnu packages haskell-apps)
146 #:use-module (gnu packages ibus)
147 #:use-module (gnu packages java)
148 #:use-module (gnu packages ncurses)
149 #:use-module (gnu packages python)
150 #:use-module (gnu packages python-xyz)
151 #:use-module (gnu packages telephony)
152 #:use-module (gnu packages terminals)
153 #:use-module (gnu packages tex)
154 #:use-module (gnu packages texinfo)
155 #:use-module (gnu packages tcl)
156 #:use-module (gnu packages tls)
157 #:use-module (gnu packages pkg-config)
158 #:use-module (gnu packages xorg)
159 #:use-module (gnu packages lesstif)
160 #:use-module (gnu packages llvm)
161 #:use-module (gnu packages image)
162 #:use-module (gnu packages linux)
163 #:use-module (gnu packages libevent)
164 #:use-module (gnu packages lisp-xyz)
165 #:use-module (gnu packages lua)
166 #:use-module (gnu packages music)
167 #:use-module (gnu packages version-control)
168 #:use-module (gnu packages imagemagick)
169 #:use-module (gnu packages w3m)
170 #:use-module (gnu packages web)
171 #:use-module (gnu packages wget)
172 #:use-module (gnu packages autotools)
173 #:use-module (gnu packages base)
174 #:use-module (gnu packages compression)
175 #:use-module (gnu packages node)
176 #:use-module (gnu packages xml)
177 #:use-module (gnu packages glib)
178 #:use-module (gnu packages acl)
179 #:use-module (gnu packages mail)
180 #:use-module (gnu packages messaging)
181 #:use-module (gnu packages package-management)
182 #:use-module (gnu packages perl)
183 #:use-module (gnu packages pdf)
184 #:use-module (gnu packages ruby)
185 #:use-module (gnu packages rust-apps)
186 #:use-module (gnu packages scheme)
187 #:use-module (gnu packages speech)
188 #:use-module (gnu packages xiph)
189 #:use-module (gnu packages mp3)
190 #:use-module (gnu packages gettext)
191 #:use-module (gnu packages fribidi)
192 #:use-module (gnu packages gd)
193 #:use-module (gnu packages fontutils)
194 #:use-module (gnu packages password-utils)
195 #:use-module (gnu packages pulseaudio)
196 #:use-module (gnu packages sphinx)
197 #:use-module (gnu packages xdisorg)
198 #:use-module (gnu packages shells)
199 #:use-module (gnu packages sqlite)
200 #:use-module (gnu packages ghostscript)
201 #:use-module (gnu packages gnupg)
202 #:use-module (gnu packages video)
203 #:use-module (gnu packages haskell-xyz)
204 #:use-module (gnu packages wordnet)
205 #:use-module (gnu packages photo)
206 #:use-module (gnu packages uml)
207 #:use-module (gnu packages finance)
208 #:use-module (guix utils)
209 #:use-module (srfi srfi-1)
210 #:use-module (ice-9 match))
211
212 ;;;
213 ;;; Emacs hacking.
214 ;;;
215
216 (define-public emacs-geiser
217 (package
218 (name "emacs-geiser")
219 (version "0.12")
220 (source
221 (origin
222 (method git-fetch)
223 (uri (git-reference
224 (url "https://gitlab.com/jaor/geiser/")
225 (commit version)))
226 (file-name (git-file-name name version))
227 (sha256
228 (base32 "0n718xpys7v94zaf9lpmsx97qgn6qxif1acr718wyvpmfr4hiv08"))))
229 (build-system gnu-build-system)
230 (arguments
231 '(#:phases
232 (modify-phases %standard-phases
233 (add-after 'install 'post-install
234 (lambda* (#:key outputs #:allow-other-keys)
235 (symlink "geiser-install.el"
236 (string-append (assoc-ref outputs "out")
237 "/share/emacs/site-lisp/"
238 "geiser-autoloads.el"))
239 #t)))))
240 (inputs
241 `(("guile" ,guile-2.2)))
242 (native-inputs
243 `(("emacs" ,emacs-minimal)
244 ("autoconf" ,autoconf)
245 ("automake" ,automake)
246 ("texinfo" ,texinfo)))
247 (home-page "https://nongnu.org/geiser/")
248 (synopsis "Collection of Emacs modes for Guile and Racket hacking")
249 (description
250 "Geiser is a collection of Emacs major and minor modes that conspire with
251 one or more Scheme implementations to keep the Lisp Machine Spirit alive. The
252 continuously running Scheme interpreter takes the center of the stage in
253 Geiser. A bundle of Elisp shims orchestrates the dialog between the Scheme
254 implementation, Emacs and, ultimately, the schemer, giving them access to live
255 metadata.")
256 (license license:bsd-3)))
257
258 (define-public emacs-ac-geiser
259 (let ((commit "93818c936ee7e2f1ba1b315578bde363a7d43d05")
260 (revision "0"))
261 (package
262 (name "emacs-ac-geiser")
263 (version (git-version "0.1" revision commit))
264 (source
265 (origin
266 (uri (git-reference
267 (url "https://github.com/xiaohanyu/ac-geiser")
268 (commit commit)))
269 (method git-fetch)
270 (sha256
271 (base32 "00n2qa26yilaj837n1yp6lbqa4gf30nkkbvanl7m9ih7k48ssqmw"))
272 (file-name (git-file-name name version))))
273 (build-system emacs-build-system)
274 (propagated-inputs
275 `(("geiser" ,emacs-geiser)
276 ("auto-complete" ,emacs-auto-complete)))
277 (synopsis "Auto-complete backend for geiser")
278 (description
279 "This package provides an auto-complete source for Scheme projects
280 using geiser.")
281 (license license:bsd-3)
282 (home-page "https://github.com/xiaohanyu/ac-geiser"))))
283
284 (define-public emacs-geiser-gauche
285 (package
286 (name "emacs-geiser-gauche")
287 (version "0.0.2")
288 (source
289 (origin
290 (method git-fetch)
291 (uri (git-reference
292 (url "https://gitlab.com/emacs-geiser/gauche.git")
293 (commit version)))
294 (file-name (git-file-name name version))
295 (sha256
296 (base32 "0rxncnzx7qgcpvc8nz0sd8r0hwrplazzraahdwhbpq0q6z8ywqgg"))))
297 (build-system emacs-build-system)
298 (arguments
299 `(#:phases
300 (modify-phases %standard-phases
301 (add-after 'install 'install-scheme
302 (lambda* (#:key outputs #:allow-other-keys)
303 (install-file
304 "geiser-gauche.scm"
305 (string-append
306 (assoc-ref outputs "out")
307 "/share/emacs/site-lisp"))
308 #t)))))
309 (native-inputs
310 `(("geiser" ,emacs-geiser)))
311 (home-page "https://gitlab.com/emacs-geiser/gauche")
312 (synopsis "Gauche Scheme support for Geiser")
313 (description
314 "This package adds support for the Gauche Scheme implementation to Geiser,
315 a generic Scheme interaction mode for the GNU Emacs editor.")
316 (license license:expat)))
317
318 (define-public emacs-hyperbole
319 (package
320 (name "emacs-hyperbole")
321 (version "7.1.3")
322 (source
323 (origin
324 (method url-fetch)
325 (uri (string-append "https://elpa.gnu.org/packages/"
326 "hyperbole-" version ".tar"))
327 (sha256
328 (base32 "0bizibn4qgxqp89fyik6p47s9hss1g932mg8k7pznn3kkhj5c8rh"))
329 (patches
330 (search-patches "emacs-hyperbole-toggle-messaging.patch"))))
331 (build-system emacs-build-system)
332 (arguments
333 `(#:include '("DEMO"
334 "DEMO-ROLO.otl"
335 "HY-ABOUT"
336 "\\.el$"
337 "\\.info$"
338 "\\.kotl$")
339 #:phases
340 (modify-phases %standard-phases
341 ;; Fix build issues about missing "domainname" and "hpmap:dir-user"
342 ;; parent dir.
343 (add-after 'unpack 'fix-build
344 (lambda* (#:key inputs #:allow-other-keys)
345 (substitute* "hypb.el"
346 (("/bin/domainname")
347 (string-append (assoc-ref inputs "inetutils")
348 "/bin/dnsdomainname")))
349 (substitute* "hyperbole.el"
350 (("\\(hyperb:check-dir-user\\)") ""))
351 #t)))))
352 (inputs
353 `(("inetutils" ,inetutils)))
354 (home-page "https://www.gnu.org/software/hyperbole/")
355 (synopsis "The Everyday Hypertextual Information Manager")
356 (description
357 "GNU Hyperbole, or just Hyperbole, is a programmable hypertextual
358 information management system. It offers rapid views and interlinking of all
359 kinds of textual information, utilizing Emacs for editing. In particular,
360 Hyperbole lets you quickly create and activate hyperlink buttons, build
361 outlines, manage all your contacts, your windows and frames, and search across
362 buffers, directory trees, or the web.")
363 (license license:gpl3+)))
364
365 (define-public emacs-paredit
366 (package
367 (name "emacs-paredit")
368 (version "24")
369 (source (origin
370 (method url-fetch)
371 (uri (string-append "http://mumble.net/~campbell/emacs/paredit-"
372 version ".el"))
373 (sha256
374 (base32
375 "0pp3n8q6kc70blqsaw0zlzp6bc327dpgdrjr0cnh7hqg1lras7ka"))))
376 (build-system emacs-build-system)
377 (home-page "http://mumble.net/~campbell/emacs/paredit/")
378 (synopsis "Emacs minor mode for editing parentheses")
379 (description
380 "ParEdit (paredit.el) is a minor mode for performing structured editing
381 of S-expression data. The typical example of this would be Lisp or Scheme
382 source code.
383
384 ParEdit helps **keep parentheses balanced** and adds many keys for moving
385 S-expressions and moving around in S-expressions. Its behavior can be jarring
386 for those who may want transient periods of unbalanced parentheses, such as
387 when typing parentheses directly or commenting out code line by line.")
388 (license license:gpl3+)))
389
390 (define-public emacs-project
391 (package
392 (name "emacs-project")
393 (version "0.5.4")
394 (source
395 (origin
396 (method url-fetch)
397 (uri (string-append "https://elpa.gnu.org/packages/project-" version ".tar"))
398 (sha256
399 (base32 "0arjvhzzcf8b80w94yvpgfdlhsjwf5jk1r7vcai5a4dg3bi9cxyb"))))
400 (build-system emacs-build-system)
401 (propagated-inputs `(("emacs-xref" ,emacs-xref)))
402 (home-page "http://elpa.gnu.org/packages/project.html")
403 (synopsis "Operations on the current project")
404 (description
405 "This library contains generic infrastructure for dealing with projects,
406 some utility functions, and commands using that infrastructure.")
407 (license license:gpl3+)))
408
409 (define-public git-modes
410 (package
411 (name "emacs-git-modes")
412 (version "1.2.8")
413 (source (origin
414 (method git-fetch)
415 (uri (git-reference
416 (url "https://github.com/magit/git-modes")
417 (commit version)))
418 (file-name (git-file-name name version))
419 (sha256
420 (base32
421 "08hy7rbfazs6grkpk54i82bz0i0c74zcjk96cip8970h6jn3mj72"))))
422 (build-system emacs-build-system)
423 (home-page "https://github.com/magit/git-modes")
424 (synopsis "Emacs major modes for Git configuration files")
425 (description
426 "This package provides Emacs major modes for editing various Git
427 configuration files, such as .gitattributes, .gitignore, and .git/config.")
428 (license license:gpl3+)))
429
430 (define-public emacs-with-editor
431 (package
432 (name "emacs-with-editor")
433 (version "3.0.2")
434 (source
435 (origin
436 (method git-fetch)
437 (uri (git-reference
438 (url "https://github.com/magit/with-editor")
439 (commit (string-append "v" version))))
440 (file-name (git-file-name name version))
441 (sha256
442 (base32 "0hw6i5r3adkm4988badi94825lywkrh3sddiff4z04kj1nj15d0k"))))
443 (build-system emacs-build-system)
444 (arguments
445 `(#:phases
446 (modify-phases %standard-phases
447 (add-before 'install 'make-info
448 (lambda _
449 (invoke "makeinfo" "--no-split"
450 "-o" "with-editor.info" "with-editor.texi"))))))
451 (native-inputs
452 `(("texinfo" ,texinfo)))
453 (propagated-inputs
454 `(("emacs-async" ,emacs-async)))
455 (home-page "https://github.com/magit/with-editor")
456 (synopsis "Emacs library for using Emacsclient as EDITOR")
457 (description
458 "This package provides an Emacs library to use the Emacsclient as
459 @code{$EDITOR} of child processes, making sure they know how to call home.
460 For remote processes a substitute is provided, which communicates with Emacs
461 on stdout instead of using a socket as the Emacsclient does.")
462 (license license:gpl3+)))
463
464 (define-public emacs-libgit
465 (let ((commit "0ef8b13aef011a98b7da756e4f1ce3bb18e4d55a")
466 (revision "1"))
467 (package
468 (name "emacs-libgit")
469 (version (git-version "20200515" revision commit))
470 (source (origin
471 (method git-fetch)
472 (uri (git-reference
473 (url "https://github.com/magit/libegit2")
474 (commit commit)))
475 (file-name (git-file-name name version))
476 (sha256
477 (base32
478 "0pnjr3bg6y6354dfjjxfj0g51swzgl1fncpprah75x4k94rd369f"))
479 (patches (search-patches
480 ;; Submitted for inclusion upstream (see:
481 ;; https://github.com/magit/libegit2/pull/96).
482 "emacs-libgit-use-system-libgit2.patch"))))
483 ;; Use the cmake-build-system as it provides support for cross builds.
484 (build-system cmake-build-system)
485 (arguments
486 `(#:configure-flags '("-DUSE_SYSTEM_LIBGIT2=x")
487 ;; Add the emacs-build-system byte compilation and install phases.
488 #:imported-modules (,@%cmake-build-system-modules
489 (guix build emacs-build-system)
490 (guix build emacs-utils))
491 #:modules ((guix build cmake-build-system)
492 ((guix build emacs-build-system) #:prefix emacs:)
493 (guix build emacs-utils)
494 (guix build utils))
495 #:phases
496 (modify-phases %standard-phases
497 (add-after 'unpack 'set-libgit--module-file
498 (lambda* (#:key outputs #:allow-other-keys)
499 (let ((out (assoc-ref outputs "out")))
500 (make-file-writable "libgit.el")
501 (emacs-substitute-variables "libgit.el"
502 ("libgit--module-file"
503 (string-append out "/share/emacs/site-lisp/libegit2.so")))
504 #t)))
505 (add-before 'install 'prepare-for-install
506 (lambda _
507 (let ((s (string-append "../" ,name "-" ,version "-checkout")))
508 (copy-file "libegit2.so" (string-append s "/libegit2.so"))
509 (chdir s)
510 #t)))
511 (replace 'install
512 (lambda* (#:key outputs #:allow-other-keys)
513 (let ((install (assoc-ref emacs:%standard-phases 'install)))
514 (install #:outputs outputs
515 #:include (cons "\\.so$"
516 emacs:%default-include)))))
517 (add-after 'install 'make-autoloads
518 (assoc-ref emacs:%standard-phases 'make-autoloads))
519 (add-after 'make-autoloads 'enable-autoloads-compilation
520 (assoc-ref emacs:%standard-phases 'enable-autoloads-compilation))
521 (add-after 'enable-autoloads-compilation 'patch-el-files
522 (assoc-ref emacs:%standard-phases 'patch-el-files))
523 (add-after 'patch-el-files 'emacs-build
524 (assoc-ref emacs:%standard-phases 'build))
525 (add-after 'emacs-build 'validate-compiled-autoloads
526 (assoc-ref emacs:%standard-phases 'validate-compiled-autoloads)))))
527 (native-inputs
528 `(("pkg-config" ,pkg-config)
529 ("emacs" ,emacs-no-x)
530 ("git" ,git-minimal)))
531 (inputs
532 `(("libgit2" ,libgit2)))
533 (home-page "https://github.com/magit/libegit2")
534 (synopsis "Emacs bindings for libgit2")
535 (description "This is an experimental module written in C providing
536 libgit2 bindings for Emacs, intended to boost the performance of Magit.")
537 ;; The LICENSE file says GPL v2+, but libgit.el says GPL v3+.
538 (license license:gpl3+))))
539
540 (define-public emacs-magit
541 ;; There hasn't been an official release since 2018-11-16.
542 (let ((commit "7f486d47fe7042edba8d9a855a4c2c301a30bc6b")
543 (revision "6"))
544 (package
545 (name "emacs-magit")
546 (version (git-version "2.90.1" revision commit))
547 (source
548 (origin
549 (method git-fetch)
550 (uri (git-reference
551 (url "https://github.com/magit/magit")
552 (commit commit)))
553 (file-name (git-file-name name version))
554 (sha256
555 (base32 "05kyc5y5wa1p3h8j7mbgvfc4zcj998zi26lnnmksj9wnvahzxfms"))))
556 (build-system emacs-build-system)
557 (arguments
558 `(#:emacs ,emacs-no-x ;module support is required
559 #:tests? #t
560 #:test-command '("make" "test")
561 #:phases
562 (modify-phases %standard-phases
563 (add-after 'unpack 'build-info-manual
564 (lambda _
565 (invoke "make" "info")
566 ;; Copy info files to the lisp directory, which acts as
567 ;; the root of the project for the emacs-build-system.
568 (for-each (lambda (f)
569 (install-file f "lisp"))
570 (find-files "Documentation" "\\.info$"))
571 (chdir "lisp")
572 #t))
573 (add-after 'build-info-manual 'set-magit-version
574 (lambda _
575 (make-file-writable "magit.el")
576 (emacs-substitute-variables "magit.el"
577 ("magit-version" ,version))
578 #t))
579 (add-after 'set-magit-version 'patch-exec-paths
580 (lambda* (#:key inputs #:allow-other-keys)
581 (let ((perl (assoc-ref inputs "perl")))
582 (make-file-writable "magit-sequence.el")
583 (emacs-substitute-variables "magit-sequence.el"
584 ("magit-perl-executable" (string-append perl "/bin/perl")))
585 #t)))
586 (add-before 'check 'configure-git
587 (lambda _
588 ;; Otherwise some tests fail with error "unable to auto-detect
589 ;; email address".
590 (setenv "HOME" (getcwd))
591 (invoke "git" "config" "--global" "user.name" "toto")
592 (invoke "git" "config" "--global" "user.email"
593 "toto@toto.com")))
594 (add-after 'configure-git 'disable-tramp-test
595 (lambda _
596 ;; There is an issue causing TRAMP to fail in the build
597 ;; environment. Setting the tramp-remote-shell parameter of
598 ;; the sudo-method to the file name of the shell didn't help.
599 (chdir "..")
600 (substitute* "t/magit-tests.el"
601 (("^\\(ert-deftest magit-toplevel:tramp.*" all)
602 (string-append all " (skip-unless nil)")))
603 #t))
604 (add-before 'install 'enter-lisp-directory
605 (lambda _
606 (chdir "lisp")
607 #t)))))
608 (native-inputs
609 `(("texinfo" ,texinfo)))
610 (inputs
611 `(("git" ,git)
612 ("perl" ,perl)))
613 (propagated-inputs
614 `(("emacs-dash" ,emacs-dash)
615 ("emacs-libgit" ,emacs-libgit)
616 ("emacs-transient" ,emacs-transient)
617 ("emacs-with-editor" ,emacs-with-editor)))
618 (home-page "https://magit.vc/")
619 (synopsis "Emacs interface for the Git version control system")
620 (description
621 "With Magit, you can inspect and modify your Git repositories
622 with Emacs. You can review and commit the changes you have made to
623 the tracked files, for example, and you can browse the history of past
624 changes. There is support for cherry picking, reverting, merging,
625 rebasing, and other common Git operations.")
626 (license license:gpl3+))))
627
628 (define-public emacs-magit-svn
629 (let ((commit "9e33ceee32f665db59909e1c00a667ccdd04178f"))
630 (package
631 (name "emacs-magit-svn")
632 (version (git-version "2.2.1" "2" commit))
633 (source (origin
634 (method git-fetch)
635 (uri (git-reference
636 (url "https://github.com/magit/magit-svn")
637 (commit commit)))
638 (file-name (git-file-name name version))
639 (sha256
640 (base32
641 "1mlqz8dh6jy5rv72lgkxv253dgh73fmbaidskicypapvbl3lr6xy"))))
642 (build-system emacs-build-system)
643 (propagated-inputs `(("dash" ,emacs-dash)
644 ("with-editor" ,emacs-with-editor)
645 ("magit" ,emacs-magit)
646 ("transient" ,emacs-transient)))
647 (home-page "https://github.com/magit/magit-svn")
648 (synopsis "Git-SVN extension to Magit")
649 (description
650 "This package is an extension to Magit, the Git Emacs mode, providing
651 support for Git-SVN.")
652 (license license:gpl3+))))
653
654 (define-public emacs-magit-popup
655 (package
656 (name "emacs-magit-popup")
657 (version "2.13.3")
658 (source
659 (origin
660 (method git-fetch)
661 (uri (git-reference
662 (url "https://github.com/magit/magit-popup")
663 (commit (string-append "v" version))))
664 (file-name (git-file-name name version))
665 (sha256
666 (base32 "0znp6gx6vpcsybg774ab06mdgxb7sfk3gki1yp2qhkanav13i6q1"))))
667 (build-system emacs-build-system)
668 (arguments
669 `(#:phases
670 (modify-phases %standard-phases
671 (add-before 'install 'make-info
672 (lambda _
673 (invoke "make" "info"))))))
674 (native-inputs
675 `(("texinfo" ,texinfo)))
676 (propagated-inputs
677 `(("emacs-dash" ,emacs-dash)))
678 (home-page "https://github.com/magit/magit-popup")
679 (synopsis "Define prefix-infix-suffix command combos")
680 (description
681 "This library implements a generic interface for toggling switches and
682 setting options and then invoking an Emacs command which does something with
683 these arguments. The prototypical use is for the command to call an external
684 process, passing on the arguments as command line arguments.")
685 (license license:gpl3+)))
686
687 (define-public emacs-magit-annex
688 (let ((commit "ef5dce6267e9118a5eca82a22bcad0b67826c23a")
689 (revision "1"))
690 (package
691 (name "emacs-magit-annex")
692 (version (git-version "1.7.1" revision commit))
693 (source (origin
694 (method git-fetch)
695 (uri (git-reference
696 (url "https://github.com/magit/magit-annex")
697 (commit commit)))
698 (file-name (git-file-name name version))
699 (sha256
700 (base32
701 "0vzkydgl889cq173zjl89g2vrddb9abc4a8gljiz3b4a7n5b1nrd"))))
702 (build-system emacs-build-system)
703 (propagated-inputs
704 `(("magit" ,emacs-magit)
705 ("transient" ,emacs-transient)))
706 (home-page "https://github.com/magit/magit-annex/")
707 (synopsis "Git-annex support for Magit")
708 (description
709 "Magit-annex adds a few git-annex operations to the Magit interface.")
710 (license license:gpl3+))))
711
712 (define-public emacs-minions
713 (package
714 (name "emacs-minions")
715 (version "0.3.4")
716 (source
717 (origin
718 (method git-fetch)
719 (uri (git-reference
720 (url "https://github.com/tarsius/minions")
721 (commit (string-append "v" version))))
722 (file-name (git-file-name name version))
723 (sha256
724 (base32 "1rvsfg9aabvyzzxd38kvjwkm9675zcmrfhzj5x6wj0ba3n0k34q5"))))
725 (build-system emacs-build-system)
726 (propagated-inputs
727 `(("emacs-dash" ,emacs-dash)))
728 (home-page "https://github.com/tarsius/minions")
729 (synopsis "Minor-mode menu for the mode line")
730 (description
731 "This package implements a menu that lists enabled minor-modes, as well
732 as commonly but not currently enabled minor-modes. It can be used to toggle
733 local and global minor-modes, to access mode-specific menus, and to get help
734 about modes.
735
736 This menu is intended as a replacement for the incomplete yet wide list of
737 enabled minor-modes that is displayed in the mode line by default. To use the
738 menu like this, enable Minions mode.
739
740 Alternatively the menu can be bound globally, for example:
741 @code{(global-set-key [S-down-mouse-3] 'minions-minor-modes-menu)}.")
742 (license license:gpl3+)))
743
744 (define-public emacs-moody
745 (package
746 (name "emacs-moody")
747 (version "0.5.4")
748 (source
749 (origin
750 (method git-fetch)
751 (uri (git-reference
752 (url "https://github.com/tarsius/moody")
753 (commit (string-append "v" version))))
754 (file-name (git-file-name name version))
755 (sha256
756 (base32 "0n8p864yj5m3n7f9qiq9hy24dwfvv0a0wchx2818rppff6vfq3hf"))))
757 (build-system emacs-build-system)
758 (home-page "https://github.com/tarsius/moody")
759 (synopsis "Tabs and ribbons for Emacs mode-line")
760 (description
761 "@code{emacs-moody} provides utilities for displaying elements of
762 the mode line as tabs and ribbons. It also provides replacements for a few
763 built-in elements. The biggest difference to similar packages is that
764 this one is much simpler and much more consistent. When using this package,
765 then only the color of the mode line changes when a window becomes in-/active.")
766 (license license:gpl3+)))
767
768 (define-public emacs-theme-magic
769 ;; No tagged release upstream, but the commit below correspond to the 0.2.3
770 ;; release.
771 (let ((commit "844c4311bd26ebafd4b6a1d72ddcc65d87f074e3")
772 (revision "0"))
773 (package
774 (name "emacs-theme-magic")
775 (version "0.2.3")
776 (source
777 (origin
778 (method git-fetch)
779 (uri (git-reference
780 (url "https://github.com/jcaw/theme-magic")
781 (commit commit)))
782 (file-name (git-file-name name version))
783 (sha256
784 (base32 "10gkg7jh1s1484gm66a87zr7x8vmv00s7gfd0w2pj47nqf98g8hz"))))
785 (build-system emacs-build-system)
786 (arguments
787 `(
788 ;; Include Pywal interaction scripts.
789 #:include (cons "^python/" %default-include)
790 #:phases
791 (modify-phases %standard-phases
792 (add-after 'unpack 'patch-exec-paths
793 (lambda* (#:key inputs #:allow-other-keys)
794 (let ((files '("theme-magic.el" "python/wal_change_colors.py"))
795 (python (assoc-ref inputs "python"))
796 (python-pywal (assoc-ref inputs "python-pywal")))
797 (substitute* files
798 (("\"python\"") (string-append "\"" python "/bin/python3\""))
799 (("\"wal\"") (string-append "\"" python-pywal "/bin/wal\""))))
800 #t)))))
801 (inputs
802 `(("python" ,python)
803 ("python-pywal" ,python-pywal)))
804 (home-page "https://github.com/jcaw/theme-magic")
805 (synopsis "Generate and apply color palettes based on your Emacs theme")
806 (description
807 "This package provides a command to extract the colors from your Emacs
808 theme and apply them to the rest of Linux with Pywal. Pywal only applies your
809 theme to the current session.")
810 (license license:gpl3+))))
811
812 (define-public emacs-theme-sorcery
813 (let ((revision "0")
814 (commit "5a1c4445b9e6e09589a299a9962a6973272a0c2f"))
815 (package
816 (name "emacs-theme-sorcery")
817 (version "1.0")
818 (source
819 (origin
820 (method git-fetch)
821 (uri (git-reference
822 (url "https://github.com/mtreca/emacs-theme-sorcery")
823 (commit commit)))
824 (file-name (git-file-name name version))
825 (sha256
826 (base32 "1b858049n6nw4qf60fmszjrhl80x7ssh32f7glj722kwy7404kdh"))))
827 (build-system emacs-build-system)
828 (propagated-inputs
829 `(("emacs-autothemer" ,emacs-autothemer)))
830 (home-page "https://github.com/mtreca/emacs-theme-sorcery")
831 (synopsis "Dark and low-contrast Emacs theme")
832 (description "Sorcery is a dark and low-contrast Emacs theme inspired by
833 Apprentice and Sourcerer.")
834 (license license:gpl3+))))
835
836 (define-public emacs-treepy
837 (package
838 (name "emacs-treepy")
839 (version "0.1.2")
840 (source (origin
841 (method git-fetch)
842 (uri (git-reference
843 (url "https://github.com/volrath/treepy.el")
844 (commit version)))
845 (file-name (git-file-name name version))
846 (sha256
847 (base32
848 "0pmrpij80m5kgcr8bw36r8wllgppasw08vn3ghwvis9srpaq75cn"))))
849 (build-system emacs-build-system)
850 (home-page
851 "https://github.com/volrath/treepy.el")
852 (synopsis "Tree traversal tools")
853 (description
854 "Generic tools for recursive and iterative tree traversal based on
855 clojure.walk and clojure.zip respectively.")
856 (license license:gpl3+)))
857
858 (define-public emacs-typing
859 (let ((commit "a2ef25dde2d8eb91bd9c0c6164cb5208208647fa")
860 (revision "0"))
861 (package
862 (name "emacs-typing")
863 (version (git-version "1.1.4" revision commit))
864 (source
865 (origin
866 (method git-fetch)
867 (uri (git-reference
868 (url "https://github.com/kensanata/typing")
869 (commit commit)))
870 (file-name (git-file-name name version))
871 (sha256
872 (base32
873 "1dbh0srbf54lgd60ia79y9cfnq3kxlgw01qzdjs9mk3nfazzpgnv"))))
874 (build-system emacs-build-system)
875 (home-page "https://github.com/kensanata/typing/")
876 (synopsis "Emacs game where you have to type fast")
877 (description "The Typing of Emacs is a game for Emacs that
878 forces you to type words correctly as fast as possible, otherwise
879 you will die. The game builds the list of words from the active buffer.")
880 (license license:gpl2+))))
881
882 (define-public emacs-graphql
883 (package
884 (name "emacs-graphql")
885 (version "0.1.1")
886 (source (origin
887 (modules '((guix build utils)))
888 ;; Remove examples file with references to external packages as
889 ;; they do not exist at compilation time.
890 (snippet
891 '(begin (delete-file "examples.el")
892 #t))
893 (method git-fetch)
894 (uri (git-reference
895 (url "https://github.com/vermiculus/graphql.el")
896 (commit version)))
897 (file-name (git-file-name name version))
898 (sha256
899 (base32
900 "0sp0skc1rnhi39szfbq1i99pdgd3bhn4c15cff05iqhjy2d4hniw"))))
901 (build-system emacs-build-system)
902 (home-page
903 "https://github.com/vermiculus/graphql.el")
904 (synopsis "GraphQL utilities")
905 (description
906 "GraphQL.el provides a generally-applicable domain-specific language for
907 creating and executing GraphQL queries against your favorite web services.
908 GraphQL is a data query language and runtime designed and used to request and
909 deliver data to mobile and web apps.")
910 (license license:gpl3+)))
911
912 (define-public emacs-graphql-mode
913 ;; No tagged commit. No "Version" keyword either.
914 (let ((commit "9bed568ec86242dbe30bdbab324aa0eb2cd9bf08")
915 (revision "1"))
916 (package
917 (name "emacs-graphql-mode")
918 (version (git-version "0" revision commit))
919 (source
920 (origin
921 (method git-fetch)
922 (uri (git-reference
923 (url "https://github.com/davazp/graphql-mode")
924 (commit commit)))
925 (file-name (git-file-name name version))
926 (sha256
927 (base32 "0x9y7qq6y0zg8ncamzvk68ccmdyzh7xsj0xs0ykyl20d5wdpplj4"))))
928 (build-system emacs-build-system)
929 (home-page "https://github.com/davazp/graphql-mode")
930 (synopsis "Emacs mode to edit GraphQL schema and queries")
931 (description
932 "This package implements a major mode to edit GraphQL schemas and
933 query. The basic functionality includes syntax highlight and indentation.
934 Additionally, it is able to send GraphQL queries to an end-point URL.
935
936 Files with the @file{.graphql} and @file{.gql} extensions are
937 automatically opened with this mode.")
938 (license license:gpl3+))))
939
940 (define-public emacs-ghub
941 (package
942 (name "emacs-ghub")
943 (version "3.4.1")
944 (source
945 (origin
946 (method git-fetch)
947 (uri (git-reference
948 (url "https://github.com/magit/ghub")
949 (commit (string-append "v" version))))
950 (file-name (git-file-name name version))
951 (sha256
952 (base32 "07iy4203ppvzkh67sb0v968hnypnvy4dpfy0qpqrp8zmc455dxq5"))))
953 (build-system emacs-build-system)
954 (arguments
955 `(#:phases
956 (modify-phases %standard-phases
957 (add-before 'install 'make-info
958 (lambda _
959 (invoke "make" "info"))))))
960 (native-inputs
961 `(("texinfo" ,texinfo)))
962 (propagated-inputs
963 `(("dash" ,emacs-dash)
964 ("emacs-let-alist" ,emacs-let-alist)
965 ("treepy" ,emacs-treepy)))
966 (home-page "https://github.com/magit/ghub")
967 (synopsis "Emacs client libraries for the APIs of various Git forges")
968 (description
969 "Ghub provides basic support for using the APIs of various Git forges from
970 Emacs packages. It supports the REST APIs of Github, Github GraphQL, Gitlab,
971 Gitea, Gogs and Bitbucket. It abstracts access to API resources using only a
972 handful of functions that are not resource-specific.")
973 (license license:gpl3+)))
974
975 (define-public emacs-typit
976 ;; Last release is from 2017.
977 (let ((commit "231cb7df43253b84323520b8ed70f128d37003af")
978 (revision "1"))
979 (package
980 (name "emacs-typit")
981 (version (git-version "0.2.1" revision commit))
982 (source
983 (origin
984 (method git-fetch)
985 (uri (git-reference
986 (url "https://github.com/mrkkrp/typit")
987 (commit commit)))
988 (file-name (git-file-name name version))
989 (sha256
990 (base32 "1savrxs7xl92ifyxpxkkzv2didr7lb405h0dwz1bs1wldr5fb53f"))))
991 (build-system emacs-build-system)
992 (arguments
993 `(#:phases
994 (modify-phases %standard-phases
995 (add-after 'install 'install-dictionaries
996 (lambda* (#:key outputs #:allow-other-keys)
997 (let* ((out (assoc-ref outputs "out"))
998 (site-lisp
999 (string-append
1000 out "/share/emacs/site-lisp/dict")))
1001 (mkdir-p site-lisp)
1002 (copy-recursively "dict" site-lisp)
1003 #t))))))
1004 (propagated-inputs
1005 `(("emacs-f" ,emacs-f)
1006 ("emacs-mmt" ,emacs-mmt)))
1007 (home-page "https://github.com/mrkkrp/typit")
1008 (synopsis "Typing game for Emacs with two difficulties")
1009 (description "Emacs Typit is a typing game for Emacs. Words that are
1010 picked randomly from the most frequent words in language you're practicing,
1011 until time is up.")
1012 (license license:gpl3+))))
1013
1014 (define-public emacs-scribble-mode
1015 (let ((commit "217945d54de5e4bb207033f2116baa28f5c5ecf2")
1016 (revision "2"))
1017 (package
1018 (name "emacs-scribble-mode")
1019 (version (git-version "0.1" revision commit))
1020 (source (origin
1021 (method git-fetch)
1022 (uri (git-reference
1023 (url "https://github.com/emacs-pe/scribble-mode")
1024 (commit commit)))
1025 (file-name (git-file-name name version))
1026 (sha256
1027 (base32
1028 "1s5ccw1a5ack01wd94ywfcrar9j98agchwdh30q7iyxr0d2z4sii"))))
1029 (build-system emacs-build-system)
1030 (home-page "https://github.com/emacs-pe/scribble-mode")
1031 (synopsis "Emacs mode for editing the Scribble documentation syntax.")
1032 (description
1033 "This package provides basic syntax highlighting and editing support
1034 for editing Racket's Scribble documentation syntax in Emacs.")
1035 (license license:gpl3+))))
1036
1037 (define-public emacs-shroud
1038 (package
1039 (name "emacs-shroud")
1040 (version "1.105")
1041 (source
1042 (origin
1043 (method git-fetch)
1044 (uri (git-reference
1045 (url "https://git.savannah.gnu.org/git/emacs-shroud.git")
1046 (commit version)))
1047 (file-name (git-file-name name version))
1048 (sha256
1049 (base32 "0q2pb3w8s833fjhkzicciw2php4lsnismad1dnwgp2lcway757ra"))))
1050 (build-system gnu-build-system)
1051 (native-inputs
1052 `(("autoconf" ,autoconf)
1053 ("automake" ,automake)
1054 ("texinfo" ,texinfo)
1055 ("perl" ,perl)
1056 ("emacs-minimal" ,emacs-minimal)))
1057 (propagated-inputs
1058 `(("emacs-bui" ,emacs-bui)
1059 ("emacs-dash" ,emacs-dash)
1060 ("emacs-f" ,emacs-f)
1061 ("emacs-s" ,emacs-s)
1062 ("gnupg" ,gnupg)
1063 ("shroud" ,shroud)))
1064 (home-page "https://www.nongnu.org/emacs-shroud")
1065 (synopsis "Emacs interface to the Shroud password manager")
1066 (description
1067 "This package provides an Emacs interface to the Shroud password manager,
1068 using the Buffers User Interface library. You can view, copy, and edit secrets
1069 from within Emacs.")
1070 (license license:gpl3+)))
1071
1072 (define-public emacs-solidity
1073 ;; This commit fixes a spacing issue and adds new keywords.
1074 (let ((commit "d166a86b83907e0cfd64c191e9dfce4b44a9843e")
1075 (revision "0"))
1076 (package
1077 (name "emacs-solidity")
1078 (version (git-version "0.1.10" revision commit))
1079 (source
1080 (origin
1081 (method git-fetch)
1082 (uri (git-reference
1083 (url "https://github.com/ethereum/emacs-solidity")
1084 (commit commit)))
1085 (file-name (git-file-name name version))
1086 (sha256
1087 (base32 "19hgvsrqch2vp49ag6m76bi5qxd20v95z0ib838rib9as15b17wq"))))
1088 (build-system emacs-build-system)
1089 (propagated-inputs
1090 `(("emacs-company" ,emacs-company)
1091 ("emacs-flycheck" ,emacs-flycheck)))
1092 (home-page "https://github.com/ethereum/emacs-solidity")
1093 (synopsis "Major mode for writing Solidity code")
1094 (description
1095 "This is a simple language mode for the Solidity language. It is
1096 a constant work in progress as the language itself also progresses.")
1097 (license license:gpl3+))))
1098
1099 (define-public emacs-unpackaged-el
1100 (let ((commit "746801a677ada6cd6fa076e423aa0953779f3fad")
1101 (revision "3"))
1102 (package
1103 (name "emacs-unpackaged-el")
1104 (version (git-version "0" revision commit))
1105 (source
1106 (origin
1107 (method git-fetch)
1108 (uri (git-reference
1109 (url "https://github.com/alphapapa/unpackaged.el")
1110 (commit commit)))
1111 (file-name (git-file-name name version))
1112 (sha256
1113 (base32
1114 "0jvb2ci0h0lj368qhbff3pzkxj3nhlligpbkjzi525k9rkjgm7l8"))))
1115 (build-system emacs-build-system)
1116 (propagated-inputs
1117 `(("emacs-dash" ,emacs-dash)
1118 ("emacs-org" ,emacs-org)
1119 ("emacs-s" ,emacs-s)
1120 ("emacs-hydra" ,emacs-hydra)
1121 ("emacs-use-package" ,emacs-use-package)))
1122 (arguments
1123 `(#:phases
1124 (modify-phases %standard-phases
1125 (add-after 'unpack 'require-hydra
1126 (lambda _
1127 (substitute* "unpackaged.el"
1128 ((";;; Code:") ";;; Code:\n(require 'hydra)"))
1129 #t)))))
1130 (home-page "https://github.com/alphapapa/unpackaged.el")
1131 (synopsis "Useful snippets of Emacs Lisp code")
1132 (description "This package provides Emacs Lisp utilities for a variety
1133 of tasks, including version control, task management, and regex-based
1134 replacement.")
1135 (license license:gpl3+))))
1136
1137 (define-public emacs-haskell-mode
1138 (package
1139 (name "emacs-haskell-mode")
1140 (version "17.2")
1141 (source
1142 (origin
1143 (method git-fetch)
1144 (uri (git-reference
1145 (url "https://github.com/haskell/haskell-mode")
1146 (commit version)))
1147 (file-name (git-file-name name version))
1148 (sha256
1149 (base32 "0zxbacqzr84krmhqpvzndnvlcjh1gs1x20ys0dykgd7chyhci5j5"))))
1150 (propagated-inputs
1151 `(("emacs-dash" ,emacs-dash)))
1152 (native-inputs
1153 `(("emacs" ,emacs-minimal)
1154 ("emacs-el-search" ,emacs-el-search)
1155 ("emacs-stream" ,emacs-stream)
1156 ("texinfo" ,texinfo)))
1157 (build-system gnu-build-system)
1158 (arguments
1159 `(#:make-flags (list (string-append "EMACS="
1160 (assoc-ref %build-inputs "emacs")
1161 "/bin/emacs"))
1162 #:modules ((ice-9 match)
1163 (srfi srfi-26)
1164 ,@%gnu-build-system-modules)
1165 #:phases
1166 (modify-phases %standard-phases
1167 (delete 'configure)
1168 (add-before 'build 'pre-build
1169 (lambda* (#:key inputs #:allow-other-keys)
1170 (define (el-dir store-dir)
1171 (match (find-files store-dir "\\.el$")
1172 ((f1 f2 ...) (dirname f1))
1173 (_ "")))
1174
1175 (let ((sh (string-append (assoc-ref inputs "bash") "/bin/sh")))
1176 (define emacs-prefix? (cut string-prefix? "emacs-" <>))
1177
1178 (setenv "SHELL" "sh")
1179 (setenv "EMACSLOADPATH"
1180 (string-concatenate
1181 (map (match-lambda
1182 (((? emacs-prefix? name) . dir)
1183 (string-append (el-dir dir) ":"))
1184 (_ ""))
1185 inputs)))
1186 (substitute* (find-files "." "\\.el") (("/bin/sh") sh))
1187 #t)))
1188 (add-before 'check 'delete-failing-tests
1189 ;; XXX: these tests require GHC executable, which would be a big
1190 ;; native input.
1191 (lambda _
1192 (with-directory-excursion "tests"
1193 ;; File `haskell-indent-tests.el' fails with
1194 ;; `haskell-indent-put-region-in-literate-2'
1195 ;; on Emacs 27.1+
1196 ;; XXX: https://github.com/haskell/haskell-mode/issues/1714
1197 (for-each delete-file
1198 '("haskell-indent-tests.el"
1199 "haskell-customize-tests.el"
1200 "inferior-haskell-tests.el")))
1201 #t))
1202 (replace 'install
1203 (lambda* (#:key outputs #:allow-other-keys)
1204 (let* ((out (assoc-ref outputs "out"))
1205 (el-dir (string-append out "/share/emacs/site-lisp"))
1206 (doc (string-append
1207 out "/share/doc/haskell-mode-" ,version))
1208 (info (string-append out "/share/info")))
1209 (define (copy-to-dir dir files)
1210 (for-each (lambda (f)
1211 (install-file f dir))
1212 files))
1213
1214 (with-directory-excursion "doc"
1215 (invoke "makeinfo" "haskell-mode.texi")
1216 (install-file "haskell-mode.info" info))
1217 (copy-to-dir doc '("CONTRIBUTING.md" "NEWS" "README.md"))
1218 (copy-to-dir el-dir (find-files "." "\\.elc?"))
1219 #t))))))
1220 (home-page "https://github.com/haskell/haskell-mode")
1221 (synopsis "Haskell mode for Emacs")
1222 (description
1223 "This is an Emacs mode for editing, debugging and developing Haskell
1224 programs.")
1225 (license license:gpl3+)))
1226
1227 (define-public emacs-dante
1228 (let ((commit "38b589417294c7ea44bf65b73b8046d950f9531b")
1229 (revision "1"))
1230 (package
1231 (name "emacs-dante")
1232 (version (git-version "1.6" revision commit))
1233 (source (origin
1234 (method git-fetch)
1235 (uri (git-reference
1236 (url "https://github.com/jyp/dante")
1237 (commit commit)))
1238 (sha256
1239 (base32
1240 "1mnmn635552zlwd4zr68jbvdjipl6gi4mi6wiyck28fsmq8kw96h"))
1241 (file-name (git-file-name name version))))
1242 (build-system emacs-build-system)
1243 (propagated-inputs
1244 `(("emacs-dash" ,emacs-dash)
1245 ("emacs-f" ,emacs-f)
1246 ("emacs-flycheck" ,emacs-flycheck)
1247 ("emacs-haskell-mode" ,emacs-haskell-mode)
1248 ("emacs-s" ,emacs-s)
1249 ("emacs-company" ,emacs-company)
1250 ("emacs-lcr" ,emacs-lcr)))
1251 (home-page "https://github.com/jyp/dante")
1252 (synopsis "Minor mode for interactive Haskell")
1253 (description
1254 "This package provides a minor mode for Haskell development that
1255 supports type hints, definition-jumping, completion, and more.")
1256 (license license:gpl3+))))
1257
1258 (define-public emacs-flycheck
1259 ;; Last release version was more than 500 commits ago.
1260 (let ((commit "9bcf6b665e15db94870bebc81dc8248c3eec20d3")
1261 (revision "2"))
1262 (package
1263 (name "emacs-flycheck")
1264 (version (git-version "31" revision commit))
1265 (source
1266 (origin
1267 (method git-fetch)
1268 (uri (git-reference
1269 (url "https://github.com/flycheck/flycheck/")
1270 (commit commit)))
1271 (sha256
1272 (base32 "015ixss5bjr7gvhj8mkw5x2x1hy6fvvsjarr2xpv0gskkkngs7pg"))
1273 (file-name (git-file-name name version))))
1274 (build-system emacs-build-system)
1275 (propagated-inputs
1276 `(("emacs-dash" ,emacs-dash)))
1277 (native-inputs
1278 `(("emacs-shut-up" ,emacs-shut-up)))
1279 (arguments
1280 `(#:phases
1281 (modify-phases %standard-phases
1282 (add-after 'unpack 'change-flycheck-version
1283 (lambda _
1284 (substitute* "flycheck.el"
1285 (("\\(pkg-info-version-info 'flycheck\\)")
1286 (string-append "\"" ,version "\"")))
1287 #t)))
1288 ;; TODO: many failing tests
1289 #:tests? #f
1290 #:test-command '("emacs" "-Q" "--batch" "-L" "."
1291 "--load" "test/flycheck-test"
1292 "--load" "test/run.el"
1293 "-f" "flycheck-run-tests-main")))
1294 (home-page "https://www.flycheck.org")
1295 (synopsis "On-the-fly syntax checking")
1296 (description
1297 "This package provides on-the-fly syntax checking for GNU Emacs. It is a
1298 replacement for the older Flymake extension which is part of GNU Emacs, with
1299 many improvements and additional features.
1300
1301 Flycheck provides fully-automatic, fail-safe, on-the-fly background syntax
1302 checking for over 30 programming and markup languages with more than 70
1303 different tools. It highlights errors and warnings inline in the buffer, and
1304 provides an optional IDE-like error list.")
1305 (license license:gpl3+)))) ;+GFDLv1.3+ for the manual
1306
1307 (define-public emacs-flymake-shellcheck
1308 ;; No tag, version grabbed from source .el file.
1309 (let ((commit "ac534e9ef15c82ac86ae65fe5004d29dbc8c92c7")
1310 (revision "1"))
1311 (package
1312 (name "emacs-flymake-shellcheck")
1313 (version (git-version "0.1" revision commit))
1314 (source
1315 (origin
1316 (method git-fetch)
1317 (uri (git-reference
1318 (url "https://github.com/federicotdn/flymake-shellcheck")
1319 (commit commit)))
1320 (file-name (git-file-name name version))
1321 (sha256
1322 (base32 "04yfb4sy41spjzk9mhm4gy0h8vnjx09p2g6nm1yzgd9a5ph9sqgl"))))
1323 (build-system emacs-build-system)
1324 (home-page "https://github.com/federicotdn/flymake-shellcheck")
1325 (synopsis "Flymake backend for Bash/Sh powered by ShellCheck")
1326 (description
1327 "This package provides a backend for Flymake to use the
1328 tool ShellCheck for static analyzing @command{bash} and @command{sh}
1329 scripts.")
1330 (license license:gpl3+))))
1331
1332 (define-public emacs-a
1333 (package
1334 (name "emacs-a")
1335 (version "0.1.1")
1336 (source (origin
1337 (method git-fetch)
1338 (uri (git-reference
1339 (url "https://github.com/plexus/a.el")
1340 (commit (string-append "v" version))))
1341 (file-name (git-file-name name version))
1342 (sha256
1343 (base32
1344 "00v9w6qg3bkwdhypq0ssf0phdh0f4bcq59c20lngd6vhk0204dqi"))))
1345 (build-system emacs-build-system)
1346 (home-page "https://github.com/plexus/a.el/")
1347 (synopsis
1348 "Emacs library for dealing with association lists and hash tables")
1349 (description "@code{emacs-a} provides Emacs Lisp functions for dealing
1350 with associative structures in a uniform and functional way. These functions
1351 can take association lists, hash tables, and in some cases vectors (where the
1352 index is considered the key).")
1353 (license license:gpl3+)))
1354
1355 (define-public emacs-ace-jump-mode
1356 (package
1357 (name "emacs-ace-jump-mode")
1358 (version "2.0")
1359 (home-page "https://github.com/winterTTr/ace-jump-mode")
1360 (source (origin
1361 (method git-fetch)
1362 (uri (git-reference
1363 (url home-page)
1364 (commit (string-append "v" version))))
1365 (sha256
1366 (base32
1367 "1bwvzh056ls2v7y26a0s4j5mj582dmds04lx4x6iqihs04ss74bb"))
1368 (file-name (git-file-name name version))))
1369 (build-system emacs-build-system)
1370 (synopsis "Cursor location minor mode for fast navigation")
1371 (description "Ace-jump-mode is a fast/direct cursor location minor
1372 mode. It creates an N-Branch search tree internally and marks all
1373 the possible position with predefined keys in within the whole Emacs
1374 view. This allows you to move to the character, word, or line almost
1375 directly.")
1376 (license license:gpl3+)))
1377
1378 (define-public emacs-anaphora
1379 (package
1380 (name "emacs-anaphora")
1381 (version "1.0.4")
1382 (source
1383 (origin
1384 (method git-fetch)
1385 (uri (git-reference
1386 (url "https://github.com/rolandwalker/anaphora")
1387 (commit (string-append "v" version))))
1388 (file-name (git-file-name name version))
1389 (sha256
1390 (base32
1391 "11fgiy029sqz7nvdm7dcal95lacryz9zql0x5h05z48nrrcl4bib"))))
1392 (build-system emacs-build-system)
1393 (home-page "https://github.com/rolandwalker/anaphora/")
1394 (synopsis "Anaphoric expressions for Emacs Lisp")
1395 (description "@code{emacs-anaphora} implements anaphoric expressions for
1396 Emacs Lisp.
1397
1398 Anaphoric expressions implicitly create one or more temporary variables which
1399 can be referred to during the expression. This technique can improve clarity
1400 in certain cases. It also enables recursion for anonymous functions.")
1401 (license license:public-domain)))
1402
1403 (define-public emacs-xr
1404 (package
1405 (name "emacs-xr")
1406 (version "1.21")
1407 (source
1408 (origin
1409 (method url-fetch)
1410 (uri (string-append "https://elpa.gnu.org/packages/xr-" version ".tar"))
1411 (sha256
1412 (base32 "0mc10d33lsqs0ihcja8w78jzh2pk0dfm9m86kap6r3hi6wkr1cmi"))))
1413 (build-system emacs-build-system)
1414 (home-page "https://elpa.gnu.org/packages/xr.html")
1415 (synopsis "Convert string regexp to rx notation")
1416 (description
1417 "This is an inverse companion to the @code{rx} package for translating
1418 regexps in string form to the @code{rx} notation. Its chief uses are:
1419
1420 @itemize
1421 @item Migrating existing code to @code{rx} form, for better readability and
1422 maintainability
1423 @item Understanding complex regexp strings and finding errors in them
1424 @end itemize
1425
1426 In addition to Emacs regexps, this package can also parse and troubleshoot
1427 skip set strings, which are arguments to @code{skip-chars-forward} and
1428 @code{skip-chars-backward}.")
1429 (license license:gpl3+)))
1430
1431 (define-public emacs-ample-regexps
1432 (let ((commit "153969ce547afe410b8986f01c9ed4087c9cd20b")
1433 (revision "2"))
1434 (package
1435 (name "emacs-ample-regexps")
1436 (version (git-version "0.1" revision commit))
1437 (source
1438 (origin
1439 (method git-fetch)
1440 (uri (git-reference
1441 (url "https://github.com/immerrr/ample-regexps.el")
1442 (commit commit)))
1443 (file-name (git-file-name name version))
1444 (sha256
1445 (base32
1446 "0dkp7bcd7h2ds40wyszy11nmh7c2jxrwy04ayz7pbxh53ir7s2k0"))))
1447 (build-system emacs-build-system)
1448 (native-inputs
1449 `(("ert-runner" ,emacs-ert-runner)))
1450 (arguments
1451 `(#:tests? #t
1452 #:test-command '("ert-runner" "-l" "ample-regexps")))
1453 (home-page "https://github.com/immerrr/ample-regexps.el")
1454 (synopsis "Compose and reuse Emacs regexps")
1455 (description
1456 "This package allows common parts of regexps to be easily picked out
1457 and reused.")
1458 (license license:gpl3+))))
1459
1460 (define-public emacs-airline-themes
1461 (package
1462 (name "emacs-airline-themes")
1463 (version "1.8")
1464 (source
1465 (origin
1466 (method git-fetch)
1467 (uri (git-reference
1468 (url "https://github.com/AnthonyDiGirolamo/airline-themes")
1469 (commit version)))
1470 (file-name (git-file-name name version))
1471 (sha256
1472 (base32 "1jx17g8a6pxkw4zlx3fwhqgxfzcf3019k8fklykamfrkharzsc2l"))))
1473 (build-system emacs-build-system)
1474 (propagated-inputs
1475 `(("emacs-powerline" ,emacs-powerline)))
1476 (home-page "https://github.com/AnthonyDiGirolamo/airline-themes")
1477 (synopsis "Vim-airline themes for Emacs Powerline")
1478 (description
1479 "This is a port of the themes in Vim-airline to Emacs Powerline.")
1480 (license license:expat)))
1481
1482 (define-public emacs-ample-theme
1483 (let ((commit "536966adf882446165a1f756830028faa792c7a9")
1484 (revision "1"))
1485 (package
1486 (name "emacs-ample-theme")
1487 (version (git-version "0.0.0" revision commit))
1488 (source (origin
1489 (method git-fetch)
1490 (uri (git-reference
1491 (url "https://github.com/jordonbiondo/ample-theme")
1492 (commit commit)))
1493 (file-name (git-file-name name version))
1494 (sha256
1495 (base32
1496 "07bpv8dag40qjnm5000pgzpazj4whfxf93x2vprz26sg3mjfx0nf"))))
1497 (build-system emacs-build-system)
1498 (home-page "https://github.com/jordonbiondo/ample-theme")
1499 (synopsis "Theme for Emacs providing dark, light, and flat versions")
1500 (description "Ample themes is a collection of three themes sharing a
1501 similar pallet with a light, dark and flat versions with a focus on being easy
1502 on the eyes during night and day. They only support GUI and 256 colour
1503 terminals.")
1504 (license license:gpl3+))))
1505
1506 (define-public emacs-reformatter
1507 (package
1508 (name "emacs-reformatter")
1509 (version "0.6")
1510 (source
1511 (origin
1512 (method git-fetch)
1513 (uri (git-reference
1514 (url "https://github.com/purcell/reformatter.el")
1515 (commit version)))
1516 (file-name (git-file-name name version))
1517 (sha256
1518 (base32 "1dfn7c3gpavpiwd73v2pasd8wd8b62dczhg9iv1cgh8vaqlsf92x"))))
1519 (build-system emacs-build-system)
1520 (home-page "https://github.com/purcell/reformatter.el")
1521 (synopsis "Define commands which run reformatters on the current buffer")
1522 (description
1523 "This library lets elisp authors easily define an idiomatic command to
1524 reformat the current buffer using a command-line program, together with an
1525 optional minor mode which can apply this command automatically on save.")
1526 (license license:gpl3+)))
1527
1528 (define-public emacs-relative-buffers
1529 (let ((release "0.0.1")
1530 (revision "0")
1531 (commit "9762fe268e9ff150dcec2e2e45d862d82d5c4008"))
1532 (package
1533 (name "emacs-relative-buffers")
1534 (version (git-version release revision commit))
1535 (source
1536 (origin
1537 (method git-fetch)
1538 (uri (git-reference
1539 (url "https://github.com/emacsattic/relative-buffers")
1540 (commit commit)))
1541 (file-name (git-file-name name version))
1542 (sha256
1543 (base32 "0fzhwbpyndwrmxip9zlcwkrr675l5pzwcygi45hv7w1hn39w0hxp"))
1544 (snippet
1545 '(begin
1546 ;; Delete the Cask test runners.
1547 (for-each delete-file '("Cask" "test/test-helper.el"))
1548 #t))))
1549 (build-system emacs-build-system)
1550 (arguments
1551 `(#:tests? #t
1552 #:test-command '("ert-runner")))
1553 (native-inputs
1554 `(("ert-runner" ,emacs-ert-runner)))
1555 (propagated-inputs
1556 `(("emacs-dash" ,emacs-dash)
1557 ("emacs-f" ,emacs-f)
1558 ("emacs-s" ,emacs-s)))
1559 (home-page "https://github.com/emacsattic/relative-buffers")
1560 (synopsis "Minor mode to rename buffers by project structure")
1561 (description
1562 "This package provides a minor mode for renaming buffers according to
1563 project structure. For Python buffers, that will be the whole module name.
1564 For temporary files and directories, that will be the relative path from the
1565 project root.")
1566 (license license:gpl3+))))
1567
1568 (define-public emacs-relint
1569 (package
1570 (name "emacs-relint")
1571 (version "1.19")
1572 (source
1573 (origin
1574 (method url-fetch)
1575 (uri (string-append "https://elpa.gnu.org/packages/"
1576 "relint-" version ".tar"))
1577 (sha256
1578 (base32 "14z3i01pq5ljhjf5yfcjw7hxljcrwjnizkrdc1qyh9b6h3ic1bbi"))))
1579 (build-system emacs-build-system)
1580 (propagated-inputs `(("emacs-xr" ,emacs-xr)))
1581 (home-page "https://github.com/mattiase/relint")
1582 (synopsis "Elisp regexp mistake finder")
1583 (description
1584 "Relint (regular expression lint) scans Elisp files for mistakes in
1585 regexps, including deprecated syntax and bad practice. It also checks the
1586 regexp-like arguments to @code{skip-chars-forward} and
1587 @code{skip-chars-backward}.")
1588 (license license:gpl3+)))
1589
1590 (define-public emacs-bug-hunter
1591 (let ((commit "b88d981afa9154b236c5a3a83b50d5889d46c6a7")
1592 (revision "1"))
1593 (package
1594 (name "emacs-bug-hunter")
1595 (version (git-version "1.3.1" revision commit))
1596 (source
1597 (origin
1598 (method git-fetch)
1599 (uri (git-reference
1600 (url "https://github.com/Malabarba/elisp-bug-hunter")
1601 (commit commit)))
1602 (file-name (git-file-name name commit))
1603 (sha256
1604 (base32
1605 "134fj493sdn93pyyac8rpz1fzahzmayvphsrmqp3wvgysmfqm38l"))))
1606 (build-system emacs-build-system)
1607 (home-page "https://github.com/Malabarba/elisp-bug-hunter")
1608 (synopsis "Hunt down errors by bisecting elisp files")
1609 (description
1610 "The Bug Hunter is an Emacs library that finds the source of an error
1611 or unexpected behavior inside an elisp configuration file (typically
1612 @file{init.el} or @file{.emacs}).")
1613 (license license:gpl3+))))
1614
1615 \f
1616 ;;;
1617 ;;; Web browsing.
1618 ;;;
1619
1620 (define-public emacs-w3m
1621 ;; Emacs-w3m follows a "rolling release" model.
1622 (package
1623 (name "emacs-w3m")
1624 (version "2018-11-11")
1625 (source (origin
1626 (method cvs-fetch)
1627 (uri (cvs-reference
1628 (root-directory
1629 ":pserver:anonymous@cvs.namazu.org:/storage/cvsroot")
1630 (module "emacs-w3m")
1631 (revision version)))
1632 (file-name (string-append name "-" version "-checkout"))
1633 (sha256
1634 (base32
1635 "0nvahdbjs12zg7zsk4gql02mvnv56cf1rwj2f5p42lwp3xvswiwp"))))
1636 (build-system gnu-build-system)
1637 (native-inputs `(("autoconf" ,autoconf)
1638 ("texinfo" ,texinfo)
1639 ("emacs" ,emacs-minimal)))
1640 (inputs `(("w3m" ,w3m)
1641 ("imagemagick" ,imagemagick)))
1642 (arguments
1643 `(#:modules ((guix build gnu-build-system)
1644 (guix build utils)
1645 (guix build emacs-utils))
1646 #:imported-modules (,@%gnu-build-system-modules
1647 (guix build emacs-utils))
1648 #:configure-flags
1649 (let ((out (assoc-ref %outputs "out")))
1650 (list (string-append "--with-lispdir="
1651 out "/share/emacs/site-lisp")
1652 (string-append "--with-icondir="
1653 out "/share/images/emacs-w3m")
1654 ;; Leave .el files uncompressed, otherwise GC can't
1655 ;; identify run-time dependencies. See
1656 ;; <http://lists.gnu.org/archive/html/guix-devel/2015-12/msg00208.html>
1657 "--without-compress-install"))
1658 #:tests? #f ; no check target
1659 #:phases
1660 (modify-phases %standard-phases
1661 (add-after 'unpack 'autoconf
1662 (lambda _
1663 (invoke "autoconf")))
1664 (add-before 'configure 'support-emacs!
1665 (lambda _
1666 ;; For some reason 'AC_PATH_EMACS' thinks that 'Emacs 26' is
1667 ;; unsupported.
1668 (substitute* "configure"
1669 (("EMACS_FLAVOR=unsupported")
1670 "EMACS_FLAVOR=emacs"))
1671 #t))
1672 (add-before 'build 'patch-exec-paths
1673 (lambda* (#:key inputs outputs #:allow-other-keys)
1674 (let ((out (assoc-ref outputs "out"))
1675 (w3m (assoc-ref inputs "w3m"))
1676 (imagemagick (assoc-ref inputs "imagemagick"))
1677 (coreutils (assoc-ref inputs "coreutils")))
1678 (make-file-writable "w3m.el")
1679 (emacs-substitute-variables "w3m.el"
1680 ("w3m-command" (string-append w3m "/bin/w3m"))
1681 ("w3m-touch-command"
1682 (string-append coreutils "/bin/touch"))
1683 ("w3m-icon-directory"
1684 (string-append out "/share/images/emacs-w3m")))
1685 (make-file-writable "w3m-image.el")
1686 (emacs-substitute-variables "w3m-image.el"
1687 ("w3m-imagick-convert-program"
1688 (string-append imagemagick "/bin/convert"))
1689 ("w3m-imagick-identify-program"
1690 (string-append imagemagick "/bin/identify")))
1691 #t)))
1692 (replace 'install
1693 (lambda* (#:key outputs #:allow-other-keys)
1694 (invoke "make" "install" "install-icons")
1695 (with-directory-excursion
1696 (string-append (assoc-ref outputs "out")
1697 "/share/emacs/site-lisp")
1698 (for-each delete-file '("ChangeLog" "ChangeLog.1"))
1699 (symlink "w3m-load.el" "w3m-autoloads.el")
1700 #t))))))
1701 (home-page "http://emacs-w3m.namazu.org/")
1702 (synopsis "Simple Web browser for Emacs based on w3m")
1703 (description
1704 "Emacs-w3m is an emacs interface for the w3m web browser.")
1705 (license license:gpl2+)))
1706
1707 (define-public emacs-wget
1708 (package
1709 (name "emacs-wget")
1710 (version "0.5.0")
1711 (source (origin
1712 (method url-fetch)
1713 (uri (string-append "mirror://debian/pool/main/w/wget-el/wget-el_"
1714 version ".orig.tar.gz"))
1715 (sha256
1716 (base32 "10byvyv9dk0ib55gfqm7bcpxmx2qbih1jd03gmihrppr2mn52nff"))))
1717 (build-system gnu-build-system)
1718 (inputs `(("wget" ,wget)))
1719 (native-inputs `(("emacs" ,emacs-minimal)))
1720 (arguments
1721 `(#:modules ((guix build gnu-build-system)
1722 (guix build utils)
1723 (guix build emacs-utils))
1724 #:imported-modules (,@%gnu-build-system-modules
1725 (guix build emacs-utils))
1726 #:tests? #f ; no check target
1727 #:phases
1728 (modify-phases %standard-phases
1729 (replace 'configure
1730 (lambda* (#:key outputs #:allow-other-keys)
1731 (substitute* "Makefile"
1732 (("/usr/local") (assoc-ref outputs "out"))
1733 (("/site-lisp/emacs-wget") "/site-lisp"))
1734 #t))
1735 (add-before 'build 'patch-exec-paths
1736 (lambda* (#:key inputs outputs #:allow-other-keys)
1737 (let ((wget (assoc-ref inputs "wget")))
1738 (emacs-substitute-variables "wget.el"
1739 ("wget-command" (string-append wget "/bin/wget"))))
1740 #t))
1741 (add-after 'install 'post-install
1742 (lambda* (#:key outputs #:allow-other-keys)
1743 (emacs-generate-autoloads
1744 "wget" (string-append (assoc-ref outputs "out")
1745 "/share/emacs/site-lisp/"))
1746 #t)))))
1747 (home-page "https://www.emacswiki.org/emacs/EmacsWget")
1748 (synopsis "Simple file downloader for Emacs based on wget")
1749 (description
1750 "Emacs-wget is an emacs interface for the wget file downloader.")
1751 (license license:gpl2+)))
1752
1753 (define-public emacs-eww-lnum
1754 (package
1755 (name "emacs-eww-lnum")
1756 (version "1.1")
1757 (source (origin
1758 (method git-fetch)
1759 (uri (git-reference
1760 (url "https://github.com/m00natic/eww-lnum")
1761 (commit version)))
1762 (file-name (git-file-name name version))
1763 (sha256
1764 (base32
1765 "0gs6bi3s2sszc6v2b26929azmn5513kvyin99n4d0ark1jdbjmv2"))))
1766 (build-system emacs-build-system)
1767 (home-page "https://github.com/m00natic/eww-lnum")
1768 (synopsis "Conkeror-like functionality for Eww")
1769 (description "This is extension to the Emacs browser Eww that adds
1770 Conkeror-like functionality. In short, currently visible links, forms,
1771 buttons are temporarily assigned numbers with which the former can be
1772 immediately activated. Also filtering can be applied so selection can be
1773 incrementally confined in Isearch manner.")
1774 (license license:gpl3+)))
1775
1776
1777 \f
1778 ;;;
1779 ;;; Multimedia.
1780 ;;;
1781
1782 (define emacs-emms-print-metadata
1783 (package
1784 (name "emacs-emms-print-metadata")
1785 (version "6.3")
1786 (source
1787 (origin
1788 (method url-fetch)
1789 (uri (string-append "https://elpa.gnu.org/packages/"
1790 "emms-" version ".tar"))
1791 (sha256
1792 (base32 "12cfq503li0gcqmm5bmqz8yjvfdif5xvz0l9vx3g5jl6ljygwgmf"))))
1793 (build-system gnu-build-system)
1794 (arguments
1795 `(#:make-flags '("emms-print-metadata")
1796 #:tests? #f ; No tests.
1797 #:phases
1798 (modify-phases %standard-phases
1799 (delete 'configure)
1800 (replace 'install
1801 (lambda* (#:key outputs #:allow-other-keys)
1802 (let* ((out (assoc-ref outputs "out")))
1803 (install-file "src/emms-print-metadata"
1804 (string-append out "/bin"))
1805 (install-file "emms-print-metadata.1"
1806 (string-append out "/share/man/man1"))
1807 #t))))))
1808 (inputs
1809 `(("taglib" ,taglib)))
1810 (home-page "https://www.gnu.org/software/emms/")
1811 (synopsis "The Emacs Multimedia System")
1812 (description
1813 "EMMS is the Emacs Multimedia System. It is a small front-end which
1814 can control one of the supported external players. Thus, it supports
1815 whatever formats are supported by your music player. It also
1816 supports tagging and playlist management, all behind a clean and
1817 light user interface.")
1818 (license license:gpl3+)))
1819
1820 (define-public emacs-emms
1821 (package
1822 (inherit emacs-emms-print-metadata)
1823 (name "emacs-emms")
1824 (build-system emacs-build-system)
1825 (arguments
1826 `(#:phases
1827 (modify-phases %standard-phases
1828 (add-after 'unpack 'set-external-programs
1829 ;; Specify the absolute file names of the various programs
1830 ;; so that everything works out-of-the-box. (tinytag missing)
1831 (lambda* (#:key inputs outputs #:allow-other-keys)
1832 (let ((out (assoc-ref outputs "out"))
1833 (emms-print-metadata (assoc-ref inputs "emms-print-metadata"))
1834 (flac (assoc-ref inputs "flac"))
1835 (vorbis (assoc-ref inputs "vorbis-tools"))
1836 (alsa (assoc-ref inputs "alsa-utils"))
1837 (mpg321 (assoc-ref inputs "mpg321"))
1838 (mp3info (assoc-ref inputs "mp3info"))
1839 (mutagen (assoc-ref inputs "mutagen"))
1840 (exiftool (assoc-ref inputs "perl-image-exiftool"))
1841 (opus (assoc-ref inputs "opus-tools")))
1842 (emacs-substitute-variables "emms-player-mpg321-remote.el"
1843 ("emms-player-mpg321-remote-command"
1844 (string-append mpg321 "/bin/mpg321")))
1845 (substitute* "emms-player-simple.el"
1846 (("\"ogg123\"")
1847 (string-append "\"" vorbis "/bin/ogg123\"")))
1848 (substitute* "emms-player-simple.el"
1849 (("\"mpg321\"")
1850 (string-append "\"" mpg321 "/bin/mpg321\"")))
1851 (emacs-substitute-variables "emms-info-ogginfo.el"
1852 ("emms-info-ogginfo-program-name"
1853 (string-append vorbis "/bin/ogginfo")))
1854 (emacs-substitute-variables "emms-info-opusinfo.el"
1855 ("emms-info-opusinfo-program-name"
1856 (string-append opus "/bin/opusinfo")))
1857 (emacs-substitute-variables "emms-info-libtag.el"
1858 ("emms-info-libtag-program-name"
1859 (string-append emms-print-metadata "/bin/emms-print-metadata")))
1860 (emacs-substitute-variables "emms-info-mp3info.el"
1861 ("emms-info-mp3info-program-name"
1862 (string-append mp3info "/bin/mp3info")))
1863 (emacs-substitute-variables "emms-info-metaflac.el"
1864 ("emms-info-metaflac-program-name"
1865 (string-append flac "/bin/metaflac")))
1866 (emacs-substitute-variables "emms-source-file.el"
1867 ("emms-source-file-gnu-find" (which "find")))
1868 (substitute* "emms-volume-amixer.el"
1869 (("\"amixer\"")
1870 (string-append "\"" alsa "/bin/amixer\"")))
1871 (substitute* "emms-tag-editor.el"
1872 (("\"mid3v2\"")
1873 (string-append "\"" mutagen "/bin/mid3v2\""))
1874 (("\"vorbiscomment\"")
1875 (string-append "\"" vorbis "/bin/vorbiscomment\"")))
1876 (substitute* "emms-info-exiftool.el"
1877 (("\"exiftool\"")
1878 (string-append "\"" exiftool "/bin/exiftool\"")))
1879 #t))))))
1880 (inputs
1881 `(("emms-print-metadata" ,emacs-emms-print-metadata)
1882 ("alsa-utils" ,alsa-utils)
1883 ("flac" ,flac) ;for metaflac
1884 ("vorbis-tools" ,vorbis-tools)
1885 ("mpg321" ,mpg321)
1886 ("mp3info" ,mp3info)
1887 ("mutagen" ,python-mutagen)
1888 ("perl-image-exiftool" ,perl-image-exiftool)
1889 ("opus-tools" ,opus-tools)))))
1890
1891 (define-public emacs-emms-mode-line-cycle
1892 (package
1893 (name "emacs-emms-mode-line-cycle")
1894 (version "0.2.5")
1895 (source
1896 (origin
1897 (method git-fetch)
1898 (uri (git-reference
1899 (url "https://github.com/momomo5717/emms-mode-line-cycle")
1900 (commit version)))
1901 (file-name (git-file-name name version))
1902 (sha256
1903 (base32
1904 "0q80f0plch6k4lhs8c9qm3mfycfbp3kn5sjrk9zxgxwnn901y9mp"))))
1905 (build-system emacs-build-system)
1906 (propagated-inputs
1907 `(("emms" ,emacs-emms)))
1908 (home-page "https://github.com/momomo5717/emms-mode-line-cycle")
1909 (synopsis "Display the EMMS mode line as a ticker")
1910 (description
1911 "This is a minor mode for updating the EMMS mode-line string cyclically
1912 within a specified width. It is useful for displaying long track titles.")
1913 (license license:gpl3+)))
1914
1915 \f
1916 ;;;
1917 ;;; Miscellaneous.
1918 ;;;
1919
1920 (define-public emacs-ace-link
1921 (package
1922 (name "emacs-ace-link")
1923 (version "0.5.0")
1924 (source
1925 (origin
1926 (method git-fetch)
1927 (uri (git-reference
1928 (url "https://github.com/abo-abo/ace-link")
1929 (commit version)))
1930 (file-name (git-file-name name version))
1931 (sha256
1932 (base32
1933 "147dz79vg4ym5wg3d544bw2khdb2j3hr73rw4qfm64wf0q2dj0vk"))))
1934 (build-system emacs-build-system)
1935 (propagated-inputs
1936 `(("emacs-avy" ,emacs-avy)))
1937 (home-page "https://github.com/abo-abo/ace-link")
1938 (synopsis "Quickly follow links in Emacs")
1939 (description
1940 "Currently, to jump to a link in a @code{Info-mode}, @code{help-mode},
1941 @code{woman-mode}, @code{org-mode}, @code{eww-mode}, @code{compilation-mode},
1942 @code{goto-address-mode} buffer, you can tab through the links to select the
1943 one you want. This is an O(N) operation, where the N is the amount of links.
1944 This package turns this into an O(1) operation. It does so by assigning a
1945 letter to each link using avy.")
1946 (license license:gpl3+)))
1947
1948 (define-public emacs-auto-sudoedit
1949 (package
1950 (name "emacs-auto-sudoedit")
1951 (version "1.0.0")
1952 (source
1953 (origin
1954 (method git-fetch)
1955 (uri (git-reference
1956 (url "https://github.com/ncaq/auto-sudoedit")
1957 (commit (string-append "v" version))))
1958 (file-name (git-file-name name version))
1959 (sha256
1960 (base32 "10p0hc95j382km8655pqld9wxg10j1f36czzppkdd6a55cxarv9f"))))
1961 (propagated-inputs
1962 `(("emacs-f" ,emacs-f)))
1963 (build-system emacs-build-system)
1964 (home-page "https://github.com/ncaq/auto-sudoedit")
1965 (synopsis "Automatically re-open read-only files with sudo")
1966 (description
1967 "This package automatically reopens a file or directory with
1968 @command{sudo} if it cannot write to it.")
1969 (license license:expat)))
1970
1971 (define-public emacs-bbdb
1972 (package
1973 (name "emacs-bbdb")
1974 (version "3.2")
1975 (source
1976 (origin
1977 (method url-fetch)
1978 (uri (string-append "https://elpa.gnu.org/packages/"
1979 "bbdb-" version ".tar"))
1980 (sha256
1981 (base32 "1p56dg0mja2b2figy7yhdx714zd5j6njzn0k07zjka3jc06izvjx"))))
1982 (build-system emacs-build-system)
1983 (arguments
1984 ;; XXX: The following file cannot be byte-compiled, because et requires
1985 ;; `vm-autoloads', from the VM package, with is neither in Emacs nor
1986 ;; packaged in Guix. So, don't bother for now.
1987 `(#:exclude '("bbdb-vm\\.el")))
1988 (home-page "http://elpa.gnu.org/packages/bbdb.html")
1989 (synopsis "Contact management utility for Emacs")
1990 (description
1991 "BBDB is the Insidious Big Brother Database for GNU Emacs. It provides
1992 an address book for email and snail mail addresses, phone numbers and the
1993 like. It can be linked with various Emacs mail clients (Message and Mail
1994 mode, Rmail, Gnus, MH-E, and VM). BBDB is fully customizable.")
1995 (license license:gpl3+)))
1996
1997 (define-public emacs-counsel-bbdb
1998 (package
1999 (name "emacs-counsel-bbdb")
2000 (version "0.0.4")
2001 (source
2002 (origin
2003 (method git-fetch)
2004 (uri (git-reference
2005 (url "https://github.com/redguardtoo/counsel-bbdb")
2006 (commit version)))
2007 (file-name (git-file-name name version))
2008 (sha256
2009 (base32 "0bki658mvlchqf3prkzxz4217a95cxm58c1qmf84yp2n8h6gd0d8"))))
2010 (build-system emacs-build-system)
2011 (propagated-inputs `(("emacs-ivy" ,emacs-ivy)))
2012 (home-page "https://github.com/redguardtoo/counsel-bbdb")
2013 (synopsis "Ivy interface for BBDB")
2014 (description "This Ivy extension enables the use of @code{ivy-mode} to input
2015 email addresses from BBDB efficiently. The main functions are:
2016 @table @code
2017 @item counsel-bbdb-complete-mail to input email addresses;
2018 @item counsel-bbdb-reload' to reload contacts from BBDB database;
2019 @item counsel-bbdb-expand-mail-alias to expand mail alias.
2020 @end table
2021 Since @code{counsel-bbdb} is based on @code{ivy-mode}, all Ivy key bindings
2022 are supported. For example, after @samp{C-u M-x counsel-bbdb-complete-mail},
2023 you can press @samp{C-M-n} to input multiple email addresses.")
2024 (license license:gpl3+)))
2025
2026 (define-public emacs-bluetooth
2027 (package
2028 (name "emacs-bluetooth")
2029 (version "0.2")
2030 (source
2031 (origin
2032 (method url-fetch)
2033 (uri (string-append "https://elpa.gnu.org/packages/"
2034 "bluetooth-" version ".el"))
2035 (sha256
2036 (base32 "1dq04p6ms0zx4awlypp4crkz7dzal4xg8ac7p8fqacz196rczssp"))))
2037 (build-system emacs-build-system)
2038 (inputs
2039 `(("bluez" ,bluez)
2040 ("dbus" ,dbus)))
2041 (propagated-inputs
2042 `(("emacs-dash" ,emacs-dash)))
2043 (home-page "https://gitlab.com/rstocker/emacs-bluetooth")
2044 (synopsis "Manage Bluetooth devices using Emacs")
2045 (description
2046 "This package implements basic Bluetooth management functionality, such
2047 as connecting and disconnecting devices, setting properties and aliases,
2048 putting the adapter in discovery mode and controlling its power supply. It
2049 also includes a pairing agent.")
2050 (license license:gpl3+)))
2051
2052 (define-public emacs-aggressive-indent
2053 (package
2054 (name "emacs-aggressive-indent")
2055 (version "1.8.3")
2056 (source (origin
2057 (method url-fetch)
2058 (uri (string-append "https://elpa.gnu.org/packages/"
2059 "aggressive-indent-" version ".el"))
2060 (sha256
2061 (base32
2062 "0jnzccl50x0wapprgwxinp99pwwa6j43q6msn4gv437j7swy8wnj"))))
2063 (build-system emacs-build-system)
2064 (home-page "https://elpa.gnu.org/packages/aggressive-indent.html")
2065 (synopsis "Minor mode to aggressively keep your code always indented")
2066 (description
2067 "@code{aggressive-indent-mode} is a minor mode that keeps your code
2068 always indented. It reindents after every change, making it more reliable
2069 than @code{electric-indent-mode}.")
2070 (license license:gpl2+)))
2071
2072 (define-public emacs-gcmh
2073 ;; No tagged release upstream, but the commit below correspond to the 0.2.1
2074 ;; release.
2075 (let ((commit "0089f9c3a6d4e9a310d0791cf6fa8f35642ecfd9"))
2076 (package
2077 (name "emacs-gcmh")
2078 (version "0.2.1")
2079 (source
2080 (origin
2081 (method git-fetch)
2082 (uri (git-reference
2083 (url "https://gitlab.com/koral/gcmh")
2084 (commit commit)))
2085 (sha256
2086 (base32 "0yh1ap8phv3x44rp0yr6z884xqw2apanbx4c0acqglvj0gaaqx25"))
2087 (file-name (git-file-name name version))))
2088 (build-system emacs-build-system)
2089 (home-page "https://gitlab.com/koral/gcmh")
2090 (synopsis "Emacs Garbage Collector Magic Hack")
2091 (description
2092 "This package enforces a sneaky @dfn{garbage collector} (GC) strategy
2093 to minimize GC interference with the activity. During normal use a high GC
2094 threshold is set. When idling GC is immediately triggered and a low threshold
2095 is set.")
2096 (license license:gpl3+))))
2097
2098 (define-public emacs-ctrlf
2099 (package
2100 (name "emacs-ctrlf")
2101 (version "1.3")
2102 (source
2103 (origin
2104 (method git-fetch)
2105 (uri (git-reference
2106 (url "https://github.com/raxod502/ctrlf")
2107 (commit (string-append "v" version))))
2108 (file-name (git-file-name name version))
2109 (sha256
2110 (base32 "06wq6scqy2ax0h6aahy2r7hn3bbmkzl4w99bkrc3cqd4ij78sc8g"))))
2111 (build-system emacs-build-system)
2112 (home-page "https://github.com/raxod502/ctrlf/")
2113 (synopsis "Single-buffer text search in Emacs")
2114 (description "CTRLF (pronounced @emph{control F}) is an intuitive and
2115 efficient solution for single-buffer text search in Emacs, replacing packages
2116 such as Isearch, Swiper, and helm-swoop. It takes inspiration from the
2117 widely-adopted and battle-tested @samp{Ctrl+F} interfaces in programs such as
2118 web browsers, but follows the flow and keybindings of Isearch.")
2119 (license license:expat)))
2120
2121 (define-public emacs-dhall-mode
2122 ;; There is no proper release. The base version is extracted from the
2123 ;; "Version" keyword in the main file.
2124 (let ((revision "1")
2125 (commit "484bcf8f78f1183ef45c3b04a362bb73690c6b9b"))
2126 (package
2127 (name "emacs-dhall-mode")
2128 (version (git-version "0.1.3" revision commit))
2129 (source
2130 (origin
2131 (method git-fetch)
2132 (uri
2133 (git-reference
2134 (url "https://github.com/psibi/dhall-mode")
2135 (commit commit)))
2136 (file-name (git-file-name name version))
2137 (sha256
2138 (base32 "1wggg8jlzg9rph4jhxp6yiri178rnasbv38838i973kjgqjxrl76"))))
2139 (build-system emacs-build-system)
2140 (propagated-inputs
2141 `(("emacs-reformatter" ,emacs-reformatter)))
2142 (home-page "https://github.com/psibi/dhall-mode")
2143 (synopsis "Major mode for working with Dhall configuration language")
2144 (description
2145 "Dhall-mode provides an Emacs Major mode for working with the Dhall
2146 configuration language. It features:
2147
2148 @itemize
2149 @item Syntax highlighting
2150 @item Multiline support for String
2151 @item Basic indentation, commenting
2152 @item Automatic formatting on save using dhall-format.
2153 @item Error highlighting.
2154 @end itemize")
2155 (license license:gpl3+))))
2156
2157 (define-public emacs-link-hint
2158 ;; Last release was in 2015.
2159 (let ((commit "d74a483652486260c052941fedeadddb1ea71f88")
2160 (revision "1"))
2161 (package
2162 (name "emacs-link-hint")
2163 (version (git-version "0.1" revision commit))
2164 (source
2165 (origin
2166 (method git-fetch)
2167 (uri (git-reference
2168 (url "https://github.com/noctuid/link-hint.el")
2169 (commit commit)))
2170 (file-name (git-file-name name version))
2171 (sha256
2172 (base32
2173 "0dghxd165fbds6czy9bfwpid3i4irgp3q08n9mg57sfifi0cmij0"))))
2174 (build-system emacs-build-system)
2175 (propagated-inputs
2176 `(("emacs-avy" ,emacs-avy)))
2177 (home-page "https://github.com/noctuid/link-hint.el")
2178 (synopsis "Vimperator-style link-hinting in Emacs")
2179 (description "This package provides commands for visiting and acting on
2180 links.")
2181 (license license:gpl3+))))
2182
2183 (define-public emacs-ag
2184 (package
2185 (name "emacs-ag")
2186 (version "0.48")
2187 (source (origin
2188 (method git-fetch)
2189 (uri (git-reference
2190 (url "https://github.com/Wilfred/ag.el")
2191 (commit version)))
2192 (file-name (git-file-name name version))
2193 (sha256
2194 (base32
2195 "1p918y24vcn2pdliaymd210xp9fvhd4a1srqbv2lfiqrh59yjidx"))))
2196 (build-system emacs-build-system)
2197 (arguments
2198 `(#:phases
2199 (modify-phases %standard-phases
2200 (add-before 'install 'make-info
2201 (lambda _
2202 (with-directory-excursion "docs"
2203 (invoke "make" "info"))))
2204 (add-after 'install 'install-info
2205 (lambda* (#:key outputs #:allow-other-keys)
2206 (let* ((out (assoc-ref outputs "out"))
2207 (info (string-append out "/share/info")))
2208 (install-file "docs/_build/texinfo/agel.info" info)
2209 #t))))))
2210 (native-inputs
2211 `(("python-sphinx" ,python-sphinx)
2212 ("texinfo" ,texinfo)))
2213 (propagated-inputs
2214 `(("dash" ,emacs-dash)
2215 ("s" ,emacs-s)
2216 ;; We need to use 'ag' as the executable on remote systems.
2217 ("the-silver-searcher" ,the-silver-searcher)))
2218 (home-page "https://github.com/Wilfred/ag.el")
2219 (synopsis "Front-end for ag (the-silver-searcher) for Emacs")
2220 (description "This package provides the ability to use the silver
2221 searcher, a code searching tool, sometimes abbreviated to @code{ag}. Features
2222 include version control system awareness, use of Perl compatible regular
2223 expressions, editing the search results directly and searching file names
2224 rather than the contents of files.")
2225 (license license:gpl3+)))
2226
2227 (define-public emacs-async
2228 (package
2229 (name "emacs-async")
2230 (home-page "https://github.com/jwiegley/emacs-async")
2231 (version "1.9.4")
2232 (source (origin
2233 (method git-fetch)
2234 (uri (git-reference
2235 (url home-page)
2236 (commit (string-append "v" version))))
2237 (file-name (git-file-name name version))
2238 (sha256
2239 (base32
2240 "0hhpyxb3d531jb2f3wvzx25183f0anm8nxv6mh0p825q2gkm6ly7"))))
2241 (build-system emacs-build-system)
2242 (synopsis "Asynchronous processing in Emacs")
2243 (description
2244 "This package provides the ability to call asynchronous functions and
2245 processes. For example, it can be used to run dired commands (for copying,
2246 moving, etc.) asynchronously using @code{dired-async-mode}. Also it is used
2247 as a library for other Emacs packages.")
2248 (license license:gpl3+)))
2249
2250 (define-public emacs-auctex
2251 (package
2252 (name "emacs-auctex")
2253 (version "13.0.5")
2254 (source
2255 (origin
2256 (method url-fetch)
2257 (uri (string-append "https://elpa.gnu.org/packages/"
2258 "auctex-" version ".tar"))
2259 (sha256
2260 (base32 "072wwsqfl8n2gi2inbp0s8k1ydr6fh1zyvc3rgynwzibjjniy319"))))
2261 (build-system emacs-build-system)
2262 ;; We use 'emacs' because AUCTeX requires dbus at compile time
2263 ;; ('emacs-minimal' does not provide dbus).
2264 (arguments
2265 `(#:emacs ,emacs
2266 #:include '("\\.el$" "^images/" "^latex/" "\\.info$")
2267 #:exclude '("^tests/" "^latex/README")
2268 #:phases
2269 (modify-phases %standard-phases
2270 (add-after 'unpack 'configure
2271 (lambda* (#:key inputs #:allow-other-keys)
2272 (emacs-substitute-variables "preview.el"
2273 ("preview-gs-command"
2274 (string-append (assoc-ref inputs "ghostscript") "/bin/gs")))
2275 (substitute* "preview.el"
2276 (("\"dvipng ")
2277 (string-append "\"" (assoc-ref inputs "texlive")
2278 "/bin/dvipng "))
2279 (("\"dvips ")
2280 (string-append "\"" (assoc-ref inputs "texlive")
2281 "/bin/dvips "))
2282 (("\"pdf2dsc ")
2283 (string-append "\"" (assoc-ref inputs "ghostscript")
2284 "/bin/pdf2dsc ")))))
2285 (add-after 'install 'install-doc
2286 (lambda* (#:key outputs #:allow-other-keys)
2287 (let* ((out (assoc-ref outputs "out"))
2288 (etc-dir (string-append out "/share/" ,name "/"
2289 ,version "/etc")))
2290 (with-directory-excursion "doc"
2291 (setenv "HOME" (getenv "TMPDIR")) ; for mktextfm
2292 (invoke "pdftex" "tex-ref")
2293 (install-file "tex-ref.pdf"
2294 (string-append etc-dir "/refcards")))
2295 #t))))))
2296 (native-inputs
2297 `(("perl" ,perl)))
2298 (inputs
2299 `(("ghostscript" ,ghostscript)
2300 ("texlive" ,(texlive-union (list texlive-amsfonts)))))
2301 (home-page "https://www.gnu.org/software/auctex/")
2302 (synopsis "Integrated environment for TeX")
2303 (description
2304 "AUCTeX is a comprehensive customizable integrated environment for
2305 writing input files for TeX, LaTeX, ConTeXt, Texinfo, and docTeX using Emacs
2306 or XEmacs.")
2307 (license license:gpl3+)))
2308
2309 (define-public emacs-autothemer
2310 (package
2311 (name "emacs-autothemer")
2312 (version "0.2.2")
2313 (source
2314 (origin
2315 (method git-fetch)
2316 (uri (git-reference
2317 (url "https://github.com/sebastiansturm/autothemer")
2318 (commit version)))
2319 (file-name (git-file-name name version))
2320 (sha256
2321 (base32
2322 "0cd2pqh6k32sjidkcd8682y4l6mx52xw4a05f38kk8nsrk28m74k"))))
2323 (build-system emacs-build-system)
2324 (propagated-inputs
2325 `(("emacs-dash" ,emacs-dash)))
2326 (home-page "https://github.com/sebastiansturm/autothemer")
2327 (synopsis "Conveniently create Emacs themes")
2328 (description
2329 "Autothemer provides a thin layer on top of @code{deftheme} and
2330 @code{custom-theme-set-faces} that creates a new custom color theme, based on
2331 a set of simplified face specifications and a user-supplied color palette")
2332 (license license:gpl3+)))
2333
2334 (define-public emacs-howm
2335 (package
2336 (name "emacs-howm")
2337 (version "1.4.7")
2338 (source
2339 (origin
2340 (method url-fetch)
2341 (uri (string-append "https://howm.sourceforge.jp/a/"
2342 "howm-" version ".tar.gz"))
2343 (sha256
2344 (base32 "11k0dzwyn7ly34g0zcd6i0i8qwyv9di8m6fx805axrxykxb0qan2"))))
2345 (build-system gnu-build-system)
2346 (native-inputs
2347 `(("emacs" ,emacs-minimal)))
2348 (arguments
2349 `(#:configure-flags
2350 (list (string-append "--with-howmdir=" %output
2351 "/share/emacs/site-lisp/"))
2352 #:modules ((guix build gnu-build-system)
2353 ((guix build emacs-build-system) #:prefix emacs:)
2354 (guix build utils))
2355 #:imported-modules (,@%gnu-build-system-modules
2356 (guix build emacs-build-system)
2357 (guix build emacs-utils))
2358 #:phases
2359 (modify-phases %standard-phases
2360 (add-after 'install 'make-autoloads
2361 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
2362 (home-page "https://howm.osdn.jp/")
2363 (synopsis "Note-taking tool for Emacs")
2364 (description "Howm is a note-taking tool for Emacs. Like
2365 code@{emacs-wiki.el}, it facilitates using hyperlinks and doing full-text
2366 searches. Unlike code@{emacs-wiki.el}, it can be combined with any format.")
2367 (license license:gpl1+)))
2368
2369 (define-public emacs-bm
2370 (package
2371 (name "emacs-bm")
2372 (version "201905")
2373 (source
2374 (origin
2375 (method git-fetch)
2376 (uri (git-reference
2377 (url "https://github.com/joodland/bm")
2378 (commit version)))
2379 (file-name (git-file-name name version))
2380 (sha256
2381 (base32 "180b3rc13asrmsdh7v405d54jkrininvaj52xhp71vw91ng51dkn"))))
2382 (build-system emacs-build-system)
2383 (home-page "https://github.com/joodland/bm")
2384 (synopsis "Visual bookmarks for Emacs")
2385 (description "This package provides visible, buffer local bookmarks and
2386 the ability to jump forward and backward to the next bookmark.")
2387 (license license:gpl2+)))
2388
2389 (define-public emacs-calfw
2390 (package
2391 (name "emacs-calfw")
2392 (version "1.6")
2393 (source
2394 (origin
2395 (method git-fetch)
2396 (uri (git-reference
2397 (url "https://github.com/kiwanami/emacs-calfw")
2398 (commit (string-append "v" version))))
2399 (file-name (git-file-name name version))
2400 (sha256
2401 (base32
2402 "0r42cagvmvvib76kd15nd9ix55ys6i549vxnls4z16s864695zpa"))))
2403 (build-system emacs-build-system)
2404 (propagated-inputs
2405 `(("emacs-howm" ,emacs-howm)))
2406 (home-page "https://github.com/kiwanami/emacs-calfw/")
2407 (synopsis "Calendar framework for Emacs")
2408 (description
2409 "This package displays a calendar view with various schedule data in the
2410 Emacs buffer.")
2411 (license license:gpl3+)))
2412
2413 (define-public emacs-caps-lock
2414 (package
2415 (name "emacs-caps-lock")
2416 (version "1.0")
2417 (source
2418 (origin
2419 (method url-fetch)
2420 (uri (string-append "https://elpa.gnu.org/packages/"
2421 "caps-lock-" version ".el"))
2422 (sha256
2423 (base32 "1i4hwam81p4dr0bk8257fkiz4xmv6knkjxj7a00fa35kgx5blpva"))))
2424 (build-system emacs-build-system)
2425 (home-page "http://elpa.gnu.org/packages/caps-lock.html")
2426 (synopsis "Caps Lock as a minor mode")
2427 (description
2428 "This package provides a minor mode to emulate the behavior of a Caps
2429 Lock key.")
2430 (license license:gpl3+)))
2431
2432 (define-public emacs-chronometrist
2433 (package
2434 (name "emacs-chronometrist")
2435 (version "0.6.5")
2436 (source
2437 (origin
2438 (method git-fetch)
2439 (uri (git-reference
2440 (url "https://github.com/contrapunctus-1/chronometrist")
2441 (commit (string-append "v" version))))
2442 (file-name (git-file-name name version))
2443 (sha256
2444 (base32 "1k7r5rc6vzrnhp9j5bkv45yzqz7zbqrkiry4fzc8w6f36pcw862f"))))
2445 (build-system emacs-build-system)
2446 (arguments
2447 `(#:phases
2448 (modify-phases %standard-phases
2449 (add-after 'unpack 'chdir-elisp
2450 ;; Elisp directory is not in root of the source.
2451 (lambda _
2452 (chdir "elisp")
2453 #t))
2454 (add-after 'install 'install-doc
2455 ;; Documentation consists of several Markdown files.
2456 (lambda* (#:key outputs #:allow-other-keys)
2457 (let* ((out (assoc-ref outputs "out"))
2458 (doc (string-append out
2459 "/share/doc/emacs-chronometrist-"
2460 ,version)))
2461 (with-directory-excursion "../doc"
2462 (for-each (lambda (f) (install-file f doc))
2463 (cons* "../UNLICENSE"
2464 "../WTFPL"
2465 (find-files "." "\\.md$")))))
2466 #t)))))
2467 (propagated-inputs
2468 `(("emacs-anaphora" ,emacs-anaphora)
2469 ("emacs-dash" ,emacs-dash)
2470 ("emacs-s" ,emacs-s)
2471 ("emacs-ts" ,emacs-ts)))
2472 (home-page "https://github.com/contrapunctus-1/chronometrist")
2473 (synopsis "Time tracker for Emacs")
2474 (description "Chronometrist is a time tracker in Emacs, largely modelled
2475 after the Android application, @emph{A Time Tracker}.
2476
2477 Its features are:
2478 @itemize
2479 @item Simple and efficient to use,
2480 @item Displays useful information about your time usage,
2481 @item Support for both mouse and keyboard,
2482 @item Human errors in tracking are easily fixed by editing a plain text file,
2483 @item Hooks to let you perform arbitrary actions when starting/stopping tasks.
2484 @end itemize")
2485 ;; Software is dual-licensed.
2486 (license (list license:unlicense license:wtfpl2))))
2487
2488 (define-public emacs-direnv
2489 (package
2490 (name "emacs-direnv")
2491 (version "2.1.0")
2492 (source
2493 (origin
2494 (method git-fetch)
2495 (uri (git-reference
2496 (url "https://github.com/wbolster/emacs-direnv")
2497 (commit version)))
2498 (file-name (git-file-name name version))
2499 (sha256
2500 (base32 "0xkqn4604k2imas6azy1www56br8ls4iv9a44pxcd8h94j1fp44d"))))
2501 (build-system emacs-build-system)
2502 (propagated-inputs
2503 `(("dash" ,emacs-dash)
2504 ("with-editor" ,emacs-with-editor)))
2505 (home-page "https://github.com/wbolster/emacs-direnv")
2506 (synopsis "Direnv integration for Emacs")
2507 (description
2508 "This package provides support for invoking direnv to get the environment
2509 for the current file and updating the environment within Emacs to match.
2510
2511 Direnv can be invoked manually, and a global minor mode is included that will
2512 update the environment when the active buffer changes.
2513
2514 Using emacs-direnv means that programs started from Emacs will use the
2515 environment set through Direnv.")
2516 (license license:gpl3+)))
2517
2518 (define-public emacs-elf-mode
2519 (package
2520 (name "emacs-elf-mode")
2521 (version "0.1.0")
2522 (source
2523 (origin
2524 (method git-fetch)
2525 (uri
2526 (git-reference
2527 (url "https://github.com/abo-abo/elf-mode")
2528 (commit version)))
2529 (file-name (git-file-name name version))
2530 (sha256
2531 (base32 "0cbvjbk2893ag1iy8ggixpirfiyhssm7fii96hb9jqdz874cdl0k"))))
2532 (build-system emacs-build-system)
2533 (home-page "https://github.com/abo-abo/elf-mode")
2534 (synopsis "Show symbol list when opening a binary file in Emacs")
2535 (description "This Emacs package provides a command showing the symbols
2536 that the binary uses instead of the actual binary contents.")
2537 (license license:gpl3+)))
2538
2539 (define-public emacs-form-feed
2540 (package
2541 (name "emacs-form-feed")
2542 (version "0.2.2")
2543 (source
2544 (origin
2545 (method git-fetch)
2546 (uri (git-reference
2547 (url "https://github.com/wasamasa/form-feed")
2548 (commit version)))
2549 (file-name (git-file-name name version))
2550 (sha256
2551 (base32 "171jna631b2iqcimfsik9c66gii8nc0zdb58m077w00rn7rcxbh2"))))
2552 (build-system emacs-build-system)
2553 (home-page "https://github.com/wasamasa/form-feed")
2554 (synopsis "Display ^L glyphs as horizontal lines")
2555 (description
2556 "This package provides a minor mode @code{form-feed-mode} to display page
2557 delimiters which usually appear as ^L glyphs on a single line as horizontal
2558 lines spanning the entire window. The minor mode is suitable for inclusion
2559 into mode hooks and is intended to be used that way.")
2560 (license license:gpl3+)))
2561
2562 (define-public emacs-ggtags
2563 (package
2564 (name "emacs-ggtags")
2565 (version "0.8.13")
2566 (source
2567 (origin
2568 (method url-fetch)
2569 (uri (string-append "https://elpa.gnu.org/packages/ggtags-"
2570 version ".el"))
2571 (sha256
2572 (base32
2573 "1qa7lcrcmf76sf6dy8sxbg4adq7rg59fm0n5848w3qxgsr0h45fg"))))
2574 (build-system emacs-build-system)
2575 (inputs
2576 `(("global" ,global)))
2577 (arguments
2578 `(#:phases
2579 (modify-phases %standard-phases
2580 (add-after 'unpack 'configure
2581 (lambda* (#:key inputs #:allow-other-keys)
2582 (chmod "ggtags.el" #o644)
2583 (emacs-substitute-variables "ggtags.el"
2584 ("ggtags-executable-directory"
2585 (string-append (assoc-ref inputs "global") "/bin")))
2586 #t)))))
2587 (home-page "https://github.com/leoliu/ggtags")
2588 (synopsis "Frontend to the GNU Global source code tagging system")
2589 (description "@code{ggtags} provides a frontend to the GNU Global source
2590 code tagging system.
2591
2592 Features:
2593
2594 @itemize
2595 @item Build on @code{compile.el} for asynchronicity and its large feature-set.
2596 @item Automatically update Global's tag files when needed with tuning for
2597 large source trees.
2598 @item Intuitive navigation among multiple matches with mode-line display of
2599 current match, total matches and exit status.
2600 @item Read tag with completion.
2601 @item Show definition at point.
2602 @item Jump to #include files.
2603 @item Support search history and saving a search to register/bookmark.
2604 @item Query replace.
2605 @item Manage Global's environment variables on a per-project basis.
2606 @item Highlight (definition) tag at point.
2607 @item Abbreviated display of file names.
2608 @item Support all Global search backends: @code{grep}, @code{idutils}, etc.
2609 @item Support exuberant ctags @url{http://ctags.sourceforge.net/} and
2610 @code{pygments} backend.
2611 @item Support all Global's output formats: @code{grep}, @code{ctags-x},
2612 @code{cscope} etc.
2613 @item Support projects on remote hosts (e.g. via @code{tramp}).
2614 @item Support eldoc.
2615 @item Search @code{GTAGSLIBPATH} for references and symbols.
2616 @end itemize\n")
2617 (license license:gpl3+)))
2618
2619 (define-public emacs-go-mode
2620 (package
2621 (name "emacs-go-mode")
2622 (version "1.5.0")
2623 (source (origin
2624 (method git-fetch)
2625 (uri (git-reference
2626 (url "https://github.com/dominikh/go-mode.el")
2627 (commit (string-append "v" version))))
2628 (file-name (git-file-name name version))
2629 (sha256
2630 (base32
2631 "1nd2h50yb0493wvf1h7fzplq45rmqn2w7kxpgnlxzhkvq99v8vzf"))))
2632 (build-system emacs-build-system)
2633 (arguments
2634 `(#:phases
2635 (modify-phases %standard-phases
2636 (add-after 'unpack 'make-writable
2637 (lambda _
2638 (for-each make-file-writable (find-files "." "\\.el$"))
2639 #t)))))
2640 (home-page "https://github.com/dominikh/go-mode.el")
2641 (synopsis "Go mode for Emacs")
2642 (description
2643 "This package provides go-mode, an Emacs mode for working with software
2644 written in the Go programming language.")
2645 (license license:bsd-3)))
2646
2647 (define-public emacs-google-maps
2648 ;; There has been no new release tag since 2013.
2649 (let ((commit "2eb16ff609f5a9f8d02c15238a111fbb7db6c146")
2650 (revision "1"))
2651 (package
2652 (name "emacs-google-maps")
2653 (version (git-version "1.0.0" revision commit))
2654 (source
2655 (origin
2656 (method git-fetch)
2657 (uri (git-reference
2658 (url "https://github.com/jd/google-maps.el")
2659 (commit commit)))
2660 (file-name (git-file-name name version))
2661 (sha256
2662 (base32 "1bl0dnksbf14d0xcnvdy9qpvzc5c8jwkxpmfvgayj6djikxnw2md"))))
2663 (build-system emacs-build-system)
2664 (home-page "https://github.com/jd/google-maps.el")
2665 (synopsis "Access Google Maps from Emacs")
2666 (description "The @code{google-maps} package displays Google Maps
2667 directly inside Emacs. It requires a Google Map Static API key to function.")
2668 (license license:gpl3+))))
2669
2670 (define-public emacs-graphviz-dot-mode
2671 (package
2672 (name "emacs-graphviz-dot-mode")
2673 (version "0.4.2")
2674 (source
2675 (origin
2676 (method git-fetch)
2677 (uri (git-reference
2678 (url "https://github.com/ppareit/graphviz-dot-mode")
2679 (commit (string-append "v" version))))
2680 (file-name (git-file-name name version))
2681 (sha256
2682 (base32 "1v1p85wk73nfsvv66qf90flgf9dqhmv15z1r7q4zmc4ifklqn08m"))))
2683 (build-system emacs-build-system)
2684 (arguments
2685 `(#:phases
2686 (modify-phases %standard-phases
2687 (add-before 'install 'make-info
2688 (lambda* (#:key inputs #:allow-other-keys)
2689 (with-directory-excursion "texinfo"
2690 (substitute* "Makefile"
2691 (("\\/usr\\/bin\\/gzip")
2692 (string-append (assoc-ref inputs "gzip") "/bin/gzip")))
2693 (invoke "make"
2694 "clean"
2695 "info"
2696 (string-append "TEXINFODIR="
2697 (assoc-ref inputs "texinfo")
2698 "/bin")))))
2699 (add-after 'install 'install-info
2700 (lambda* (#:key outputs #:allow-other-keys)
2701 (let* ((out (assoc-ref outputs "out"))
2702 (info (string-append out "/share/info")))
2703 (install-file "texinfo/graphviz-dot-mode.info.gz" info)
2704 #t))))))
2705 (native-inputs
2706 `(("gzip" ,gzip)
2707 ("texinfo" ,texinfo)))
2708 (propagated-inputs
2709 `(("emacs-company" ,emacs-company)))
2710 (home-page "http://ppareit.github.com/graphviz-dot-mode")
2711 (synopsis "Major mode for editing Graphviz DOT files")
2712 (description
2713 "This Emacs package helps you to create @file{.dot} or @file{.gv} files
2714 using the DOT syntax, and use Graphviz to convert these files to diagrams.")
2715 (license license:gpl2+)))
2716
2717 (define-public emacs-imenu-list
2718 (let ((commit "b50222378412fbe321622a84cb2b036e084c697a")
2719 (revision "1")
2720 (version "0.9"))
2721 (package
2722 (name "emacs-imenu-list")
2723 (version (git-version version revision commit))
2724 (source
2725 (origin
2726 (method git-fetch)
2727 (uri
2728 (git-reference
2729 (url "https://github.com/bmag/imenu-list")
2730 (commit commit)))
2731 (file-name (git-file-name name version))
2732 (sha256
2733 (base32 "1936dd41fa05ndzf2bwhllvjz97iz0rflkazjipr7dvz5q072wj2"))))
2734 (build-system emacs-build-system)
2735 (home-page "https://github.com/bmag/imenu-list")
2736 (synopsis
2737 "Automatically tracks the current buffer's imenu entries")
2738 (description
2739 "This Emacs minor mode creates an automatically updated buffer called
2740 @code{*Ilist*} that is populated with the current buffer's imenu entries.
2741 This buffer is typically shown as a sidebar (Emacs vertically splits the
2742 window).")
2743 (license license:gpl3+))))
2744
2745 (define-public emacs-mmm-mode
2746 (package
2747 (name "emacs-mmm-mode")
2748 (version "0.5.8")
2749 (source
2750 (origin
2751 (method url-fetch)
2752 (uri (string-append "https://elpa.gnu.org/packages/"
2753 "mmm-mode-" version ".tar"))
2754 (sha256
2755 (base32 "05ckf4zapdpvnd3sqpw6kxaa567zh536a36m9qzx3sqyjbyn5fb4"))))
2756 (build-system emacs-build-system)
2757 (home-page "https://github.com/purcell/mmm-mode")
2758 (synopsis "Allow multiple major modes in an Emacs buffer")
2759 (description
2760 "MMM Mode is a minor mode that allows multiple major modes to coexist in
2761 a single buffer.")
2762 (license license:gpl3+)))
2763
2764 (define-public emacs-mmt
2765 (package
2766 (name "emacs-mmt")
2767 (version "0.2.0")
2768 (source
2769 (origin
2770 (method git-fetch)
2771 (uri (git-reference
2772 (url "https://github.com/mrkkrp/mmt")
2773 (commit version)))
2774 (file-name (git-file-name name version))
2775 (sha256
2776 (base32 "13vbfc5597v0gd87qyhn10f93nb477vjpg3jlpphbax9fvkf4gav"))))
2777 (build-system emacs-build-system)
2778 (home-page "https://github.com/mrkkrp/mmt")
2779 (synopsis "Classic tools to write Emacs Lisp macros")
2780 (description "Emacs MMT is a package that contains classic tools for Emacs
2781 Lisp developers who want to write macros with convenience.")
2782 (license license:gpl3+)))
2783
2784 (define-public emacs-tablist
2785 (package
2786 (name "emacs-tablist")
2787 (version "1.0")
2788 (source (origin
2789 (method git-fetch)
2790 (uri (git-reference
2791 (url "https://github.com/politza/tablist")
2792 (commit (string-append "v" version))))
2793 (file-name (git-file-name name version))
2794 (sha256
2795 (base32
2796 "0pzsdg0rm59daw34ppss79cg05z9wnr8nkmdcc48nkd0p69ip2yy"))))
2797 (build-system emacs-build-system)
2798 (home-page "https://github.com/politza/tablist")
2799 (synopsis "Extension for @code{tabulated-list-mode}")
2800 (description "Tablist is the Emacs package that provides several
2801 additional features to @code{tabulated-list-mode}: it adds marks,
2802 filters, new key bindings and faces. It can be enabled by
2803 @code{tablist-mode} or @code{tablist-minor-mode} commands.")
2804 (license license:gpl3+)))
2805
2806 (define-public emacs-djvu
2807 (package
2808 (name "emacs-djvu")
2809 (version "1.1.1")
2810 (source
2811 (origin
2812 (method url-fetch)
2813 (uri (string-append "https://elpa.gnu.org/packages/"
2814 "djvu-" version ".el"))
2815 (sha256
2816 (base32 "0z2qk1v4qkvcwl27ycqfb8vyszq5v6b8ci29b4la00yaki16p04i"))))
2817 (build-system emacs-build-system)
2818 (inputs `(("djview" ,djview)
2819 ("djvulibre" ,djvulibre)))
2820 (arguments
2821 `(#:phases
2822 (modify-phases %standard-phases
2823 (add-after 'unpack 'configure
2824 (lambda* (#:key inputs outputs #:allow-other-keys)
2825 (let ((file "djvu.el")
2826 (djview (assoc-ref inputs "djview"))
2827 (djvulibre (assoc-ref inputs "djvulibre")))
2828 ;; Specify the absolute executable locations.
2829 (chmod file #o644)
2830 (substitute* file
2831 (("\"djvused\"") (string-append "\"" djvulibre "/bin/djvused\""))
2832 (("\"djvm\"") (string-append "\"" djvulibre "/bin/djvm\""))
2833 (("\"ddjvu\"") (string-append "\"" djvulibre "/bin/ddjvu\"")))
2834 (emacs-substitute-variables file
2835 ("djvu-djview-command" (string-append djview "/bin/djview"))))
2836 #t)))))
2837 (home-page "http://elpa.gnu.org/packages/djvu.html")
2838 (synopsis "Edit and view Djvu files via djvused")
2839 (description
2840 "This package is a front end for the command-line program djvused from
2841 DjVuLibre, see @url{http://djvu.sourceforge.net/}.")
2842 (license license:gpl3+)))
2843
2844 (define-public emacs-pabbrev
2845 (package
2846 (name "emacs-pabbrev")
2847 (version "4.2.1")
2848 (source
2849 (origin
2850 (method url-fetch)
2851 (uri (string-append "https://elpa.gnu.org/packages/"
2852 "pabbrev-" version ".el"))
2853 (sha256
2854 (base32 "19v5adk61y8fpigw7k6wz6dj79jwr450hnbi7fj0jvb21cvjmfxh"))))
2855 (build-system emacs-build-system)
2856 (home-page "http://elpa.gnu.org/packages/pabbrev.html")
2857 (synopsis "Predictive abbreviation expansion")
2858 (description
2859 "The code provides a abbreviation expansion for Emacs. It is
2860 fairly similar to Dabbrev expansion, which works based on the contents
2861 of the current buffer (or other buffers).
2862
2863 Predictive abbreviation expansion works based on the previously
2864 written text. Unlike dynamic abbreviation, the text is analysed
2865 during idle time, while Emacs is doing nothing else.")
2866 (license license:gpl3+)))
2867
2868 (define-public emacs-pdf-tools
2869 ;; XXX: Development branch fixes an incompatibility with Emacs 27+. See
2870 ;; <https://github.com/politza/pdf-tools/issues/616>.
2871 (let ((commit "c510442ab89c8a9e9881230eeb364f4663f59e76")
2872 (revision "1"))
2873 (package
2874 (name "emacs-pdf-tools")
2875 (version (git-version "0.90" revision commit))
2876 (source
2877 (origin
2878 (method git-fetch)
2879 (uri (git-reference
2880 (url "https://github.com/politza/pdf-tools")
2881 (commit commit)))
2882 (file-name (git-file-name name version))
2883 (sha256
2884 (base32 "17z3cpn76g9dp62drjrgrqpp1bgf4gl5k5gspylskpvd4kj4bq4d"))))
2885 (build-system gnu-build-system)
2886 (arguments
2887 `(#:tests? #f ; there are no tests
2888 #:modules ((guix build gnu-build-system)
2889 ((guix build emacs-build-system) #:prefix emacs:)
2890 (guix build utils)
2891 (guix build emacs-utils))
2892 #:imported-modules (,@%gnu-build-system-modules
2893 (guix build emacs-build-system)
2894 (guix build emacs-utils))
2895 #:phases
2896 (modify-phases %standard-phases
2897 ;; Build server side using 'gnu-build-system'.
2898 (add-after 'unpack 'enter-server-dir
2899 (lambda _ (chdir "server") #t))
2900 (add-after 'enter-server-dir 'autogen
2901 (lambda _
2902 (invoke "bash" "autogen.sh")))
2903
2904 ;; Build emacs side using 'emacs-build-system'.
2905 (add-after 'compress-documentation 'enter-lisp-dir
2906 (lambda _ (chdir "../lisp") #t))
2907 (add-after 'enter-lisp-dir 'emacs-patch-variables
2908 (lambda* (#:key outputs #:allow-other-keys)
2909 (for-each make-file-writable (find-files "."))
2910
2911 ;; Set path to epdfinfo program.
2912 (emacs-substitute-variables "pdf-info.el"
2913 ("pdf-info-epdfinfo-program"
2914 (string-append (assoc-ref outputs "out")
2915 "/bin/epdfinfo")))
2916 ;; Set 'pdf-tools-handle-upgrades' to nil to avoid "auto
2917 ;; upgrading" that pdf-tools tries to perform.
2918 (emacs-substitute-variables "pdf-tools.el"
2919 ("pdf-tools-handle-upgrades" '()))))
2920 (add-after 'emacs-patch-variables 'emacs-add-source-to-load-path
2921 (assoc-ref emacs:%standard-phases 'add-source-to-load-path))
2922 (add-after 'emacs-add-source-to-load-path 'emacs-install
2923 (assoc-ref emacs:%standard-phases 'install))
2924 (add-after 'emacs-install 'emacs-build
2925 (assoc-ref emacs:%standard-phases 'build))
2926 (add-after 'emacs-install 'emacs-make-autoloads
2927 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
2928 (native-inputs
2929 `(("autoconf" ,autoconf)
2930 ("automake" ,automake)
2931 ("pkg-config" ,pkg-config)
2932 ("emacs" ,emacs-minimal)))
2933 (inputs
2934 `(("poppler" ,poppler)
2935 ("cairo" ,cairo)
2936 ("glib" ,glib)
2937 ("libpng" ,libpng)
2938 ("zlib" ,zlib)))
2939 (propagated-inputs
2940 `(("tablist" ,emacs-tablist)))
2941 (home-page "https://github.com/politza/pdf-tools")
2942 (synopsis "Emacs support library for PDF files")
2943 (description
2944 "PDF Tools is, among other things, a replacement of DocView for PDF
2945 files. The key difference is that pages are not pre-rendered by
2946 e.g. ghostscript and stored in the file-system, but rather created on-demand
2947 and stored in memory.")
2948 (license license:gpl3+))))
2949
2950 (define-public emacs-dash
2951 (package
2952 (name "emacs-dash")
2953 (version "2.18.1")
2954 (source (origin
2955 (method git-fetch)
2956 (uri (git-reference
2957 (url "https://github.com/magnars/dash.el")
2958 (commit version)))
2959 (file-name (git-file-name name version))
2960 (sha256
2961 (base32
2962 "1cvfd36vv0wqb16bnqqxh99hy2yks0j2i4l8qjkg3bxjgk7ldmva"))))
2963 (build-system emacs-build-system)
2964 (arguments `(#:tests? #t))
2965 (home-page "https://github.com/magnars/dash.el")
2966 (synopsis "Modern list library for Emacs")
2967 (description "This package provides a modern list API library for Emacs.")
2968 (license license:gpl3+)))
2969
2970 (define-public emacs-bui
2971 (package
2972 (name "emacs-bui")
2973 (version "1.2.1")
2974 (source (origin
2975 (method git-fetch)
2976 (uri (git-reference
2977 (url "https://notabug.org/alezost/emacs-bui.git")
2978 (commit (string-append "v" version))))
2979 (file-name (git-file-name name version))
2980 (sha256
2981 (base32
2982 "0sszdl4kvqbihdh8d7mybpp0d8yw2p3gyiipjcxz9xhvvmw3ww4x"))))
2983 (build-system emacs-build-system)
2984 (propagated-inputs
2985 `(("dash" ,emacs-dash)))
2986 (home-page "https://notabug.org/alezost/emacs-bui")
2987 (synopsis "Buffer interface library for Emacs")
2988 (description
2989 "BUI (Buffer User Interface) is a library for making @code{list} and
2990 @code{info} interfaces to display an arbitrary data of the same
2991 type, for example: packages, buffers, files, etc.")
2992 (license license:gpl3+)))
2993
2994 (define-public emacs-guix
2995 (let* ((commit "a694fdbcedb6edd2239a31d326e475c763ee32f8")
2996 (revision "3"))
2997 (package
2998 (name "emacs-guix")
2999 (version (git-version "0.5.2" revision commit))
3000 (source (origin
3001 (method git-fetch)
3002 (uri (git-reference
3003 ;; TODO: Use the official version when it has a new home
3004 (url "https://github.com/jsoo1/guix.el")
3005 (commit commit)))
3006 (file-name (git-file-name name version))
3007 (sha256
3008 (base32
3009 "1pqw7zbgxzwpig4xr0izc3z8h80c72i6bl5yi12br0d7aq6dbkvj"))))
3010 (build-system gnu-build-system)
3011 (native-inputs
3012 `(("autoconf" ,autoconf)
3013 ("automake" ,automake)
3014 ("pkg-config" ,pkg-config)
3015 ("texinfo" ,texinfo)
3016 ("emacs" ,emacs-minimal)))
3017 (inputs
3018 `(("guile"
3019 ,@(assoc-ref (package-native-inputs guix) "guile"))
3020 ("guix" ,guix)))
3021 (propagated-inputs
3022 `(("geiser" ,emacs-geiser)
3023 ("guile-gcrypt" ,guile-gcrypt)
3024 ("dash" ,emacs-dash)
3025 ("bui" ,emacs-bui)
3026 ("edit-indirect" ,emacs-edit-indirect)
3027 ("magit-popup" ,emacs-magit-popup)))
3028 (home-page "https://emacs-guix.gitlab.io/website/")
3029 (synopsis "Emacs interface for GNU Guix")
3030 (description
3031 "Emacs-Guix provides a visual interface, tools and features for the GNU
3032 Guix package manager. Particularly, it allows you to do various package
3033 management tasks from Emacs. To begin with, run @code{M-x guix-about} or
3034 @code{M-x guix-help} command.")
3035 (license license:gpl3+))))
3036
3037 (define-public emacs-build-farm
3038 (package
3039 (name "emacs-build-farm")
3040 (version "0.2.2")
3041 (source (origin
3042 (method git-fetch)
3043 (uri (git-reference
3044 (url "https://notabug.org/alezost/emacs-build-farm.git")
3045 (commit (string-append "v" version))))
3046 (file-name (git-file-name name version))
3047 (sha256
3048 (base32
3049 "0i0bwbav5861j2y15j9nd5m9rdqg9q97zgcbld8pivr9nyxy63lz"))))
3050 (build-system emacs-build-system)
3051 (propagated-inputs
3052 `(("bui" ,emacs-bui)
3053 ("magit-popup" ,emacs-magit-popup)))
3054 (home-page "https://notabug.org/alezost/emacs-build-farm")
3055 (synopsis "Emacs interface for Hydra and Cuirass build farms")
3056 (description
3057 "This Emacs package provides an interface for Hydra and
3058 Cuirass (build farms used by Nix and Guix). It allows you to look at
3059 various data related to the build farm projects, jobsets, builds and
3060 evaluations. The entry point is @code{M-x build-farm} command.")
3061 (license license:gpl3+)))
3062
3063 (define-public emacs-d-mode
3064 (package
3065 (name "emacs-d-mode")
3066 (version "2.0.10")
3067 (source
3068 (origin
3069 (method git-fetch)
3070 (uri (git-reference
3071 (url "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode")
3072 (commit version)))
3073 (file-name (git-file-name name version))
3074 (sha256
3075 (base32 "0915kb9jcaixgindhj85fmykkhvj31ckp1yg6746fznwdgfrlifv"))))
3076 (build-system emacs-build-system)
3077 (propagated-inputs
3078 `(("emacs-undercover" ,emacs-undercover)))
3079 (home-page "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode")
3080 (synopsis "Emacs major mode for editing D code")
3081 (description "This package provides an Emacs major mode for highlighting
3082 code written in the D programming language. This mode is currently known to
3083 work with Emacs 24 and 25.")
3084 (license license:gpl2+)))
3085
3086 (define-public emacs-extempore-mode
3087 ;; Use the latest commit at time of packaging. There are no releases or tags.
3088 (let ((commit "09518ae6650d7be33a4633a4c0f31b7130d04c6e")
3089 (revision "1"))
3090 (package
3091 (name "emacs-extempore-mode")
3092 (version (git-version "0.0.0" revision commit))
3093 (source
3094 (origin
3095 (method git-fetch)
3096 (uri (git-reference
3097 (url "https://github.com/extemporelang/extempore-emacs-mode")
3098 (commit commit)))
3099 (file-name (git-file-name name version))
3100 (sha256
3101 (base32 "0hfza9lzdsz94gxhmzyp9fwviscv19rmnjgd0q613faayn11sjsp"))))
3102 (build-system emacs-build-system)
3103 (home-page "https://github.com/extemporelang/extempore-emacs-mode")
3104 (synopsis "Emacs major mode for Extempore source files")
3105 (description
3106 "This package provides a major mode for editing Extempore code. It can
3107 create an Extempore REPL, connect the current @code{extempore-mode} buffer to a
3108 running Extempore process, and more.")
3109 (license license:bsd-2))))
3110
3111 (define-public emacs-kakoune
3112 ;; Package has no release. Version is extracted from "Version:" keyword in
3113 ;; main file.
3114 (let ((commit "d73d14e69ea38076af50cc69f846808383ff539d")
3115 (revision "0"))
3116 (package
3117 (name "emacs-kakoune")
3118 (version (git-version "0.1" revision commit))
3119 (source
3120 (origin
3121 (method git-fetch)
3122 (uri (git-reference
3123 (url "https://github.com/jmorag/kakoune.el")
3124 (commit commit)))
3125 (file-name (git-file-name name version))
3126 (sha256
3127 (base32 "0nk6jdy1y5mc3ryd0smiqghrk6iv34d5grc7f7migmshlbq0np92"))))
3128 (build-system emacs-build-system)
3129 (propagated-inputs
3130 `(("emacs-expand-region" ,emacs-expand-region)
3131 ("emacs-multiple-cursors" ,emacs-multiple-cursors)
3132 ("emacs-ryo-modal" ,emacs-ryo-modal)))
3133 (home-page "https://github.com/jmorag/kakoune.el")
3134 (synopsis "Emacs simple simulation, but not emulation, of Kakoune")
3135 (description "This package provides many, but not all of the editing
3136 primitives in the Kakoune editor. Unlike Evil mode for Vim, this is a very
3137 shallow emulation, which seeks to do as little work as possible, leveraging
3138 Emacs native editing commands and the work of other packages wherever
3139 possible.")
3140 (license license:expat))))
3141
3142 (define-public emacs-kana
3143 ;; Package has no release. Version is extracted from "Version:" keyword in
3144 ;; main file.
3145 (let ((commit "b239c3c3c6124b46ff720cca7b80ecbafd7fa489")
3146 (revision "0"))
3147 (package
3148 (name "emacs-kana")
3149 (version (git-version "1.0.0" revision commit))
3150 (source
3151 (origin
3152 (method git-fetch)
3153 (uri (git-reference
3154 (url "https://github.com/chenyanming/kana")
3155 (commit commit)))
3156 (file-name (git-file-name name version))
3157 (sha256
3158 (base32 "0vrrl1kniq4h111jvnapvx3wybvsl3alfaygw634mmryr3h7pwi8"))))
3159 (build-system emacs-build-system)
3160 (home-page "https://github.com/chenyanming/kana")
3161 (synopsis "Learn Japanese Kana in Emacs")
3162 (description
3163 "This Emacs mode displays Hiragana and Katakana flashcards. It can use
3164 functionality from Emacs Kanji mode if it is installed.")
3165 (license license:gpl3+))))
3166
3167 (define-public emacs-kanji
3168 ;; Package has no release. Version is extracted from "Version:" keyword in
3169 ;; main file.
3170 (let ((commit "5e9d5b72468ece11cfb81b729be6babf63ede425")
3171 (revision "0"))
3172 (package
3173 (name "emacs-kanji")
3174 (version (git-version "1.0" revision commit))
3175 (source
3176 (origin
3177 (method git-fetch)
3178 (uri (git-reference
3179 (url "https://github.com/wsgac/kanji-mode")
3180 (commit commit)))
3181 (file-name (git-file-name name version))
3182 (sha256
3183 (base32 "1zh7klqaza840q5f44zzh1wrnd6sqa2k93z3dgx3yhhsxfd1dxvy"))))
3184 (build-system emacs-build-system)
3185 (home-page "https://github.com/wsgac/kanji-mode")
3186 (synopsis "Emacs minor mode for displaying Japanese Kanji stroke order")
3187 (description
3188 "This minor mode displays the stroke order of the Kanji sign under
3189 cursor in a transient buffer. It has a built-in collection of SVG images
3190 depicting stroke orders for all Kanji. The collection is a slightly modified
3191 and limited version of the images provided by the KanjiVG project.")
3192 (license license:gpl3+))))
3193
3194 (define-public emacs-kbd
3195 ;; Package has no release. Version is extracted from "Version:" keyword in
3196 ;; main file.
3197 (let ((commit "a7f4c9b9770fa6a58895c5f121df82652bb1b737")
3198 (revision "0"))
3199 (package
3200 (name "emacs-kbd")
3201 (version (git-version "0.0.1" revision commit))
3202 (source
3203 (origin
3204 (method git-fetch)
3205 (uri (git-reference
3206 (url "https://github.com/slotThe/kbd-mode")
3207 (commit commit)))
3208 (file-name (git-file-name name version))
3209 (sha256
3210 (base32 "0jv9yfsncgf96308c041hvps3jlc151xb0aipm0vasbma3x83ygm"))))
3211 (build-system emacs-build-system)
3212 (arguments
3213 `(#:phases
3214 (modify-phases %standard-phases
3215 (add-after 'unpack 'enter-lisp-directory
3216 (lambda _ (chdir "lisp") #t)))))
3217 (home-page "https://github.com/slotThe/kbd-mode")
3218 (synopsis "Minor mode for syntax highlighting kmonad's @file{.kbd} files")
3219 (description
3220 "This minor mode provides syntax highlighting for Lisp-like DSL used in
3221 kmonad's configuration files (@file{.kbd}).")
3222 (license license:gpl3+))))
3223
3224 (define-public emacs-keycast
3225 (package
3226 (name "emacs-keycast")
3227 (version "1.0.4")
3228 (source
3229 (origin
3230 (method git-fetch)
3231 (uri (git-reference
3232 (url "https://github.com/tarsius/keycast.git")
3233 (commit (string-append "v" version))))
3234 (file-name (git-file-name name version))
3235 (sha256
3236 (base32 "1g9arjdhdpvsw47ny9gi5k758ya37yza4mr0rhbf02yvrqyfsrgr"))))
3237 (build-system emacs-build-system)
3238 (home-page "https://github.com/tarsius/keycast")
3239 (synopsis "Show current command and its key in the mode line")
3240 (description
3241 "This package provides Keycast mode. Once enabled, that mode shows the
3242 current command and its key or mouse binding in the mode line, and updates
3243 them whenever another command is invoked.")
3244 (license license:gpl3+)))
3245
3246 (define-public emacs-keyfreq
3247 (package
3248 (name "emacs-keyfreq")
3249 (version "20160516.716")
3250 (source
3251 (origin
3252 (method url-fetch)
3253 (uri (string-append "http://melpa.org/packages/keyfreq-"
3254 version ".el"))
3255 (sha256
3256 (base32
3257 "008hd7d06qskc3mx0bbdgpgy2pwxr8185fzlyqf9qjg49y74p6g8"))))
3258 (build-system emacs-build-system)
3259 (home-page "https://github.com/dacap/keyfreq")
3260 (synopsis "Track Emacs command frequencies")
3261 (description "@code{emacs-keyfeq} tracks and shows how many times you used
3262 a command.")
3263 (license license:gpl3+)))
3264
3265 (define-public emacs-olivetti
3266 (package
3267 (name "emacs-olivetti")
3268 (version "1.11.3")
3269 (source
3270 (origin
3271 (method git-fetch)
3272 (uri (git-reference
3273 (url "https://github.com/rnkn/olivetti")
3274 (commit (string-append "v" version))))
3275 (file-name (git-file-name name version))
3276 (sha256
3277 (base32 "0zcph7l0hxisbvsyzb1dw3paq5a5sjp5lrq5nq9zggvgc6zvx7sh"))))
3278 (build-system emacs-build-system)
3279 (home-page "https://github.com/rnkn/olivetti")
3280 (synopsis "Emacs minor mode for a nice writing environment")
3281 (description "This package provides an Emacs minor mode that puts writing
3282 in the center.")
3283 (license license:gpl3+)))
3284
3285 (define-public emacs-undo-tree
3286 (package
3287 (name "emacs-undo-tree")
3288 (version "0.7.5")
3289 (source
3290 (origin
3291 (method url-fetch)
3292 (uri (string-append "https://elpa.gnu.org/packages/"
3293 "undo-tree-" version ".el"))
3294 (sha256
3295 (base32 "00admi87gqm0akhfqm4dcp9fw8ihpygy030955jswkha4zs7lw2p"))))
3296 (build-system emacs-build-system)
3297 (home-page "https://www.dr-qubit.org/undo-tree.html")
3298 (synopsis "Treat undo history as a tree")
3299 (description
3300 "Tree-like interface to Emacs undo system, providing
3301 graphical tree presentation of all previous states of buffer that
3302 allows easily move between them.")
3303 (license license:gpl3+)))
3304
3305 (define-public emacs-undo-fu
3306 ;; There are no tagged releases upstream on gitlab, instead we are using
3307 ;; the most recent commit.
3308 (let ((commit "c0806c1903c5a0e4c69b6615cdc3366470a9b8ca")
3309 (revision "0"))
3310 (package
3311 (name "emacs-undo-fu")
3312 (version (git-version "0.4" revision commit))
3313 (source
3314 (origin
3315 (method git-fetch)
3316 (uri (git-reference
3317 (url "https://gitlab.com/ideasman42/emacs-undo-fu")
3318 (commit commit)))
3319 (file-name (git-file-name name version))
3320 (sha256
3321 (base32 "1n594aakmcgyl7qbda86v4wsx8clm62ypiv3h559xz3x72h7mr3j"))))
3322 (build-system emacs-build-system)
3323 (home-page "https://gitlab.com/ideasman42/emacs-undo-fu")
3324 (synopsis "Simple, stable linear undo with redo for Emacs")
3325 (description
3326 "This is a light weight wrapper for Emacs built-in undo system,
3327 adding convenient undo/redo without losing access to the full undo history,
3328 allowing you to visit all previous states of the document if you need.")
3329 (license license:gpl3+))))
3330
3331 (define-public emacs-undo-fu-session
3332 ;; There are no tagged releases upstream on gitlab, instead we are using the
3333 ;; most recent commit.
3334 (let ((commit "56cdd3538a058c6916bdf2d9010c2179f2505829")
3335 (revision "0"))
3336 (package
3337 (name "emacs-undo-fu-session")
3338 (version (git-version "0.2" revision commit))
3339 (source
3340 (origin
3341 (method git-fetch)
3342 (uri (git-reference
3343 (url "https://gitlab.com/ideasman42/emacs-undo-fu-session")
3344 (commit commit)))
3345 (file-name (git-file-name name version))
3346 (sha256
3347 (base32 "04wq1alrzzlidcb4mjb5j7pg68pks1vgv7kvvmi6dzb3l602mb2a"))))
3348 (build-system emacs-build-system)
3349 (arguments
3350 `(#:tests? #t
3351 #:test-command '("emacs" "--batch" "-l" "undo-fu-session.el"
3352 "-l" "undo-fu-session-test.el")
3353 #:phases
3354 (modify-phases %standard-phases
3355 (add-before 'check 'set-home
3356 (lambda _
3357 (setenv "HOME" "/tmp")
3358 #t)))))
3359 (home-page "https://gitlab.com/ideasman42/emacs-undo-fu-session")
3360 (synopsis "Save & recover undo steps between Emacs sessions")
3361 (description "This package writes undo/redo information upon file save
3362 which is restored where possible when the file is loaded again.")
3363 (license license:gpl3+))))
3364
3365 (define-public emacs-s
3366 (package
3367 (name "emacs-s")
3368 (version "1.12.0")
3369 (source
3370 (origin
3371 (method git-fetch)
3372 (uri (git-reference
3373 (url "https://github.com/magnars/s.el")
3374 (commit version)))
3375 (file-name (git-file-name name version))
3376 (sha256
3377 (base32 "1g8mqd13llj007al4nlxxx4z2lcsg3wk970mgjn0avwrhjjgdmmv"))))
3378 (build-system emacs-build-system)
3379 (arguments
3380 `(#:tests? #t
3381 #:emacs ,emacs ; FIXME: tests fail with emacs-minimal
3382 #:test-command '("./run-tests.sh")))
3383 (home-page "https://github.com/magnars/s.el")
3384 (synopsis "Emacs string manipulation library")
3385 (description "This package provides an Emacs library for manipulating
3386 strings.")
3387 (license license:gpl3+)))
3388
3389 (define-public emacs-symon
3390 (package
3391 (name "emacs-symon")
3392 (version "20160630")
3393 (source
3394 (origin
3395 (method git-fetch)
3396 (uri (git-reference
3397 (url "https://github.com/zk-phi/symon")
3398 (commit version)))
3399 (file-name (git-file-name name version))
3400 (sha256
3401 (base32 "1q7di9s8k710nx98wnqnbkkhdimrn0jf6z4xkm4c78l6s5idjwlz"))))
3402 (build-system emacs-build-system)
3403 (home-page "https://github.com/zk-phi/symon")
3404 (synopsis "Tiny graphical system monitor")
3405 (description
3406 "Tiny graphical system monitor for the Emacs minibuffer when idle.")
3407 (license license:gpl2+)))
3408
3409 (define-public emacs-sx
3410 (let ((version "20191229")
3411 (revision "0")
3412 (commit "e9d1093c97507a6d7b4f4710ef65200dae725e5f"))
3413 (package
3414 (name "emacs-sx")
3415 (version (git-version version revision commit))
3416 (source
3417 (origin
3418 (method git-fetch)
3419 (uri (git-reference
3420 (url "https://github.com/vermiculus/sx.el")
3421 (commit commit)))
3422 (file-name (git-file-name name version))
3423 (sha256
3424 (base32 "0m90ddwm8j0y6d1ppqhd2gil1107k202blw6mzm5bdambn4nfqkf"))))
3425 (build-system emacs-build-system)
3426 (propagated-inputs
3427 `(("emacs-markdown-mode" ,emacs-markdown-mode)))
3428 (home-page "https://github.com/vermiculus/sx.el")
3429 (synopsis "Emacs StackExchange client")
3430 (description
3431 "Emacs StackExchange client. Ask and answer questions on
3432 Stack Overflow, Super User, and other StackExchange sites.")
3433 (license license:gpl3+))))
3434
3435 (define-public emacs-toc-org
3436 (package
3437 (name "emacs-toc-org")
3438 (version "1.1.0")
3439 (source
3440 (origin
3441 (method git-fetch)
3442 (uri (git-reference
3443 (url "https://github.com/snosov1/toc-org")
3444 (commit version)))
3445 (file-name (git-file-name name version))
3446 (sha256
3447 (base32 "0lk0rji85a1c0c5r9an0fdvsm4n4jyixsknmr8ywha3lfmc2p0l8"))))
3448 (build-system emacs-build-system)
3449 (home-page "https://github.com/snosov1/toc-org")
3450 (synopsis "Table of Contents generator for Emacs Org mode")
3451 (description
3452 "This package generates a table of contents when saving in Org and
3453 Markdown files.")
3454 (license license:gpl2+)))
3455
3456 (define-public emacs-toml-mode
3457 (let ((version "0.1.3")
3458 (revision "0")
3459 (commit "f6c61817b00f9c4a3cab1bae9c309e0fc45cdd06"))
3460 (package
3461 (name "emacs-toml-mode")
3462 (version (git-version version revision commit))
3463 (source
3464 (origin
3465 (method git-fetch)
3466 (uri (git-reference
3467 (url "https://github.com/dryman/toml-mode.el")
3468 (commit commit)))
3469 (file-name (git-file-name name version))
3470 (sha256
3471 (base32 "05b4ksay85c8y5ncax0qsvnmplwsfiw24z16a58gkarjz938hb57"))))
3472 (build-system emacs-build-system)
3473 (home-page "https://github.com/dryman/toml-mode.el")
3474 (synopsis "Emacs major mode for editing TOML files")
3475 (description
3476 ;; XXX: Ideally we'd use @acronym for "TOML", but Guile's Texinfo
3477 ;; parser does not currently support @comma{}, making it impossible
3478 ;; to use commas in the @acronym arguments.
3479 "This package provides a major mode for editing files in @dfn{TOML}
3480 (Tom's Obvious, Minimal Language) data format.")
3481 (license license:gpl3+))))
3482
3483 (define-public emacs-twittering-mode
3484 (package
3485 (name "emacs-twittering-mode")
3486 (version "3.1.0")
3487 (source
3488 (origin
3489 (method url-fetch)
3490 (uri (string-append "mirror://sourceforge/twmode"
3491 "/twittering-mode-" version
3492 "/twittering-mode-" version ".tar.xz"))
3493 (sha256
3494 (base32 "02imis1gxz90lah0b5n37j2hlsaw5igss11d85vpsm5d1bgw8j28"))))
3495 (build-system emacs-build-system)
3496 (home-page "http://twmode.sourceforge.net")
3497 (synopsis "Emacs major mode for Twitter")
3498 (description
3499 "Twittering mode is an Emacs major mode for Twitter.
3500 You can check timelines, tweet, mark posts as favorites and so on with
3501 Emacs.")
3502 (license license:gpl2+)))
3503
3504 (define-public emacs-f
3505 (package
3506 (name "emacs-f")
3507 (version "0.20.0")
3508 (source (origin
3509 (method git-fetch)
3510 (uri (git-reference
3511 (url "https://github.com/rejeep/f.el")
3512 (commit (string-append "v" version))))
3513 (file-name (git-file-name name version))
3514 (sha256
3515 (base32
3516 "1a47xk3yp1rp17fqg7ldl3d3fb888h0fz3sysqfdz1bfdgs8a9bk"))))
3517 (build-system emacs-build-system)
3518 (propagated-inputs
3519 `(("emacs-s" ,emacs-s)
3520 ("emacs-dash" ,emacs-dash)))
3521 (home-page "https://github.com/rejeep/f.el")
3522 (synopsis "Emacs API for working with files and directories")
3523 (description "This package provides an Emacs library for working with
3524 files and directories.")
3525 (license license:gpl3+)))
3526
3527 (define-public emacs-fountain-mode
3528 (package
3529 (name "emacs-fountain-mode")
3530 (version "3.4.1")
3531 (source
3532 (origin
3533 (method git-fetch)
3534 (uri (git-reference
3535 (url "https://github.com/rnkn/fountain-mode")
3536 (commit (string-append "v" version))))
3537 (file-name (git-file-name name version))
3538 (sha256
3539 (base32 "14zhbcfqyp093kd1bxl7f2hf5l5995qmgpmnxfgw9qcc781crj73"))))
3540 (build-system emacs-build-system)
3541 (home-page "https://github.com/rnkn/fountain-mode")
3542 (synopsis "Major mode for screenwriting in Fountain markup")
3543 (description "Fountain Mode is a scriptwriting program for GNU Emacs
3544 using the Fountain plain text markup format.")
3545 (license license:gpl3+)))
3546
3547 (define-public emacs-fringe-helper
3548 (let ((commit "ef4a9c023bae18ec1ddd7265f1f2d6d2e775efdd")
3549 (revision "1"))
3550 (package
3551 (name "emacs-fringe-helper")
3552 (version (git-version "1.0.1" revision commit))
3553 (source
3554 (origin
3555 (method git-fetch)
3556 (uri (git-reference
3557 (url "https://github.com/nschum/fringe-helper.el")
3558 (commit commit)))
3559 (file-name (git-file-name name version))
3560 (sha256
3561 (base32 "0ra9rc53l1gvkqank8apasl3r7wz2yfjrcvmfk3wpxhh24ppxv9d"))))
3562 (build-system emacs-build-system)
3563 (arguments
3564 `(#:tests? #t
3565 #:test-command '("emacs" "--batch"
3566 "-l" "tests.el"
3567 "-f" "ert-run-tests-batch-and-exit")))
3568 (home-page "https://github.com/nschum/fringe-helper.el")
3569 (synopsis "Helper functions for fringe bitmaps")
3570 (description
3571 "This package allows fringe bitmaps to be defined with a visual string
3572 representation.")
3573 (license license:gpl2+))))
3574
3575 (define-public emacs-git-gutter
3576 (package
3577 (name "emacs-git-gutter")
3578 (version "0.91")
3579 (source
3580 (origin
3581 (method git-fetch)
3582 (uri (git-reference
3583 (url "https://github.com/syohex/emacs-git-gutter")
3584 (commit version)))
3585 (file-name (git-file-name name version))
3586 (sha256
3587 (base32 "0zc9f73app1d7j4yb10sy4xidh5252ncyxlvr5kh0kiqk88ck6j9"))))
3588 (build-system emacs-build-system)
3589 (home-page "https://github.com/syohex/emacs-git-gutter")
3590 (synopsis "See and manage hunks of text in a version control system")
3591 (description
3592 "This package is an Emacs minor mode for displaying and interacting with
3593 hunks of text managed in a version control system. Added modified and deleted
3594 areas can be indicated with symbols on the edge of the buffer, and commands
3595 can be used to move between and perform actions on these hunks.
3596
3597 Git, Mercurial, Subversion and Bazaar are supported, and many parts of the
3598 display and behaviour is easily customisable.")
3599 (license license:gpl3+)))
3600
3601 (define-public emacs-git-gutter-fringe
3602 (let ((commit "16226caab44174301f1659f7bf8cc67a76153445")
3603 (revision "1"))
3604 (package
3605 (name "emacs-git-gutter-fringe")
3606 (version (git-version "0.23" revision commit))
3607 (source
3608 (origin
3609 (method git-fetch)
3610 (uri (git-reference
3611 (url "https://github.com/emacsorphanage/git-gutter-fringe")
3612 (commit commit)))
3613 (file-name (git-file-name name version))
3614 (sha256
3615 (base32 "1y77gjl0yznamdj0f55d418zb75k22izisjg7ikvrfsl2yfqf3pm"))))
3616 (build-system emacs-build-system)
3617 (propagated-inputs
3618 `(("emacs-git-gutter" ,emacs-git-gutter)
3619 ("emacs-fringe-helper" ,emacs-fringe-helper)))
3620 (home-page "https://github.com/emacsorphanage/git-gutter-fringe")
3621 (synopsis "See and manage hunks of text in a version control system")
3622 (description
3623 "This package extends @code{git-gutter} to use the fringe area of a
3624 window.")
3625 (license license:gpl3+))))
3626
3627 (define-public emacs-git-link
3628 (package
3629 (name "emacs-git-link")
3630 (version "0.7.5")
3631 (source
3632 (origin
3633 (method git-fetch)
3634 (uri (git-reference
3635 (url "https://github.com/sshaw/git-link")
3636 (commit (string-append "v" version))))
3637 (file-name (git-file-name name version))
3638 (sha256
3639 (base32 "04xa6lp8wkjb6zs096bf4sz124grcjj15xv1h009bmn2j95rggj6"))))
3640 (build-system emacs-build-system)
3641 (arguments
3642 `(#:tests? #t
3643 #:test-command '("make" "test")))
3644 (home-page "https://github.com/sshaw/git-link")
3645 (synopsis "Create links for files and commits in GitHub/GitLab/etc. repos")
3646 (description
3647 "@code{git-link} returns the URL for the current buffer's file location
3648 at the current line number or active region. @code{git-link-commit} returns
3649 the URL for a commit. URLs are added to the kill ring.")
3650 (license license:gpl3+)))
3651
3652 (define-public emacs-apheleia
3653 (package
3654 (name "emacs-apheleia")
3655 (version "1.0")
3656 (source
3657 (origin
3658 (method git-fetch)
3659 (uri (git-reference
3660 (url "https://github.com/raxod502/apheleia")
3661 (commit (string-append "v" version))))
3662 (file-name (git-file-name name version))
3663 (sha256
3664 (base32 "04pls7zahy4jfkikv6fvd9vfpm4glhyanmmkx79hgi9pwdv966rf"))))
3665 (build-system emacs-build-system)
3666 (home-page "https://github.com/raxod502/apheleia")
3667 (synopsis "Reformat buffer stably")
3668 (description
3669 "This package allows for a buffer to be reformatted without moving point,
3670 so that running a formatting tool like @code{Prettier} or @code{Black} upon
3671 saving won't move point back to the beginning of the buffer.")
3672 (license license:gpl3+)))
3673
3674 (define-public emacs-git-timemachine
3675 (package
3676 (name "emacs-git-timemachine")
3677 (version "4.11")
3678 (source
3679 (origin
3680 (method git-fetch)
3681 (uri (git-reference
3682 (url "https://gitlab.com/pidu/git-timemachine.git")
3683 (commit version)))
3684 (file-name (git-file-name name version))
3685 (sha256
3686 (base32
3687 "1pz4l1xnq6s67w5yq9107vm8dg7rqf8n9dmbn90jys97c722g70n"))))
3688 (build-system emacs-build-system)
3689 (propagated-inputs
3690 `(("emacs-transient" ,emacs-transient)))
3691 (home-page "https://gitlab.com/pidu/git-timemachine")
3692 (synopsis "Step through historic versions of Git-controlled files")
3693 (description "This package enables you to step through historic versions
3694 of files under Git version control from within Emacs.")
3695 (license license:gpl3+)))
3696
3697 (define-public emacs-minitest
3698 (let ((commit "1aadb7865c1dc69c201cecee275751ecec33a182")
3699 (revision "1"))
3700 (package
3701 (name "emacs-minitest")
3702 (version (git-version "0.8.0" revision commit))
3703 (source (origin
3704 (method git-fetch)
3705 (uri (git-reference
3706 (url "https://github.com/arthurnn/minitest-emacs")
3707 (commit commit)))
3708 (file-name (git-file-name name commit))
3709 (sha256
3710 (base32
3711 "1l18zqpdzbnqj2qawq8hj7z7pl8hr8z9d8ihy8jaiqma915hmhj1"))))
3712 (build-system emacs-build-system)
3713 (arguments
3714 '(#:include (cons "^snippets\\/minitest-mode\\/" %default-include)
3715 #:exclude (delete "^[^/]*tests?\\.el$" %default-exclude)))
3716 (propagated-inputs
3717 `(("emacs-dash" ,emacs-dash)
3718 ("emacs-f" ,emacs-f)))
3719 (home-page "https://github.com/arthurnn/minitest-emacs")
3720 (synopsis "Emacs minitest mode")
3721 (description
3722 "The minitest mode provides commands to run the tests for the current
3723 file or line, as well as rerunning the previous tests, or all the tests for a
3724 project.
3725
3726 This package also includes relevant snippets for yasnippet.")
3727 (license license:expat))))
3728
3729 (define-public emacs-gdscript-mode
3730 (package
3731 (name "emacs-gdscript-mode")
3732 (version "1.4.0")
3733 (source
3734 (origin
3735 (method git-fetch)
3736 (uri (git-reference
3737 (url "https://github.com/godotengine/emacs-gdscript-mode")
3738 (commit version)))
3739 (file-name (git-file-name name version))
3740 (sha256
3741 (base32 "09q0himrz7a6xgz0jmcl85qc5xhk5fwi6d2vw1n8qaiavm96ksdy"))))
3742 (build-system emacs-build-system)
3743 (home-page "https://github.com/godotengine/emacs-gdscript-mode")
3744 (synopsis "GDScript support and syntax highlighting in Emacs")
3745 (description
3746 "This package adds support for the GDScript programming language from the
3747 Godot game engine in Emacs. It features all the essentials, e.g., syntax
3748 highlighting, code folding, indentation, automatic pairing, auto-completion,
3749 and code formatting.")
3750 (license license:gpl3+)))
3751
3752 (define-public emacs-el-mock
3753 (package
3754 (name "emacs-el-mock")
3755 (version "1.25.1")
3756 (source
3757 (origin
3758 (method git-fetch)
3759 (uri (git-reference
3760 (url "https://github.com/rejeep/el-mock.el")
3761 (commit (string-append "v" version))))
3762 (file-name (git-file-name name version))
3763 (sha256
3764 (base32 "13mv1rhgkwiww2wh5w926jz7idppp492wir1vdl245c5x50dh4f7"))))
3765 (build-system emacs-build-system)
3766 (home-page "https://github.com/rejeep/el-mock.el")
3767 (synopsis "Tiny mock and stub framework in Emacs Lisp")
3768 (description
3769 "Emacs Lisp Mock is a library for mocking and stubbing using readable
3770 syntax. Most commonly Emacs Lisp Mock is used in conjunction with Emacs Lisp
3771 Expectations, but it can be used in other contexts.")
3772 (license license:gpl3+)))
3773
3774 (define-public emacs-ecukes
3775 (package
3776 (name "emacs-ecukes")
3777 (version "0.6.17")
3778 (home-page "https://github.com/ecukes/ecukes")
3779 (source
3780 (origin
3781 (method git-fetch)
3782 (uri (git-reference
3783 (url home-page)
3784 (commit (string-append "v" version))))
3785 (file-name (git-file-name name version))
3786 (sha256
3787 (base32 "1isscwz4h3nx62lwfrj899lp2yc27zk1ndgr441d848495ccmshn"))))
3788 (build-system emacs-build-system)
3789 (arguments
3790 `(#:include (cons* "^feature/" "^reporters/" "^templates/" %default-include)))
3791 (propagated-inputs
3792 `(("emacs-ansi" ,emacs-ansi)
3793 ("emacs-commander" ,emacs-commander)
3794 ("emacs-dash" ,emacs-dash)
3795 ("emacs-espuds" ,emacs-espuds)
3796 ("emacs-f" ,emacs-f)
3797 ("emacs-s" ,emacs-s)))
3798 (synopsis "Cucumber for Emacs")
3799 (description
3800 "This package provides Ecukes, a Cucumber-inspired integration testing
3801 tool for Emacs. Ecukes is not a complete clone of Cucumber and is not
3802 intended to be.")
3803 (license license:gpl3+)))
3804
3805 (define-public emacs-espuds
3806 (package
3807 (name "emacs-espuds")
3808 (version "0.3.3")
3809 (source
3810 (origin
3811 (method git-fetch)
3812 (uri (git-reference
3813 (url "https://github.com/ecukes/espuds")
3814 (commit (string-append "v" version))))
3815 (file-name (git-file-name name version))
3816 (sha256
3817 (base32 "16r4j27j9yfdiy841w9q5ykkc6n3wrm7hvfacagb32mydk821ijg"))))
3818 (build-system emacs-build-system)
3819 (propagated-inputs
3820 `(("emacs-s" ,emacs-s)
3821 ("emacs-dash" ,emacs-dash)
3822 ("emacs-f" ,emacs-f)))
3823 (home-page "https://github.com/ecukes/espuds")
3824 (synopsis "Common step definitions for Ecukes")
3825 (description "Espuds is a collection of the most commonly used step
3826 definitions for testing with the Ecukes framework.")
3827 (license license:gpl3+)))
3828
3829 (define-public emacs-spark
3830 (let ((version "20160503") ; no proper tag, use date of commit
3831 (commit "0bf148c3ede3b31d56fd75f347cdd0b0eae60025")
3832 (revision "1"))
3833 (package
3834 (name "emacs-spark")
3835 (version (git-version version revision commit))
3836 (source
3837 (origin
3838 (method git-fetch)
3839 (uri (git-reference
3840 (url "https://github.com/alvinfrancis/spark")
3841 (commit commit)))
3842 (file-name (git-file-name name version))
3843 (sha256
3844 (base32
3845 "1ykqr86j17mi95s08d9fp02d7ych1331b04dcqxzxnmpkhwngyj1"))))
3846 (build-system emacs-build-system)
3847 (home-page "https://github.com/alvinfrancis/spark")
3848 (synopsis "Sparkline generation library for Emacs Lisp")
3849 (description "@code{emacs-spark} is a sparkline generation library for
3850 Emacs Lisp. It generates a sparkline string given a list of numbers. It is a
3851 port of @code{cl-spark} to Emacs Lisp.")
3852 (license license:expat))))
3853
3854 (define-public emacs-es-mode
3855 (package
3856 (name "emacs-es-mode")
3857 (version "4.3.0")
3858 (source
3859 (origin
3860 (method git-fetch)
3861 (uri (git-reference
3862 (url "https://github.com/dakrone/es-mode")
3863 (commit version)))
3864 (file-name (git-file-name name version))
3865 (sha256
3866 (base32 "1qhfnd5anp5qrmravv7ks5ix763xnki2f5jwcyj70qyxwr0l60cg"))))
3867 (build-system emacs-build-system)
3868 (propagated-inputs
3869 ;; The version of org in Emacs 24.5 is not sufficient, and causes tables
3870 ;; to be rendered incorrectly
3871 `(("emacs-dash" ,emacs-dash)
3872 ("emacs-org" ,emacs-org)
3873 ("emacs-spark" ,emacs-spark)))
3874 (home-page "https://github.com/dakrone/es-mode")
3875 (synopsis "Major mode for editing Elasticsearch queries")
3876 (description "@code{es-mode} includes highlighting, completion and
3877 indentation support for Elasticsearch queries. Also supported are
3878 @code{es-mode} blocks in @code{org-mode}, for which the results of queries can
3879 be processed through @code{jq}, or in the case of aggregations, can be
3880 rendered in to a table. In addition, there is an @code{es-command-center}
3881 mode, which displays information about Elasticsearch clusters.")
3882 (license license:gpl3+)))
3883
3884 (define-public emacs-expand-region
3885 (package
3886 (name "emacs-expand-region")
3887 (version "0.11.0")
3888 (source
3889 (origin
3890 (method git-fetch)
3891 (uri (git-reference
3892 (url "https://github.com/magnars/expand-region.el")
3893 (commit version)))
3894 (file-name (git-file-name name version))
3895 (sha256
3896 (base32 "0h40dhc3kn8fq86xnwi5lz7ql8my8737y7wkqr897p15y90swr35"))))
3897 (build-system emacs-build-system)
3898 (home-page "https://github.com/magnars/expand-region.el")
3899 (synopsis "Increase selected region by semantic units")
3900 (description
3901 "Expand region increases the selected region by semantic units. Just
3902 keep pressing the key until it selects what you want. There's also
3903 @code{er/contract-region} if you expand too far.")
3904 (license license:gpl3+)))
3905
3906 (define-public emacs-explain-pause-mode
3907 (let ((commit "2356c8c3639cbeeb9751744dbe737267849b4b51")
3908 (revision "0"))
3909 (package
3910 (name "emacs-explain-pause-mode")
3911 (version (git-version "0.1" revision commit))
3912 (source (origin
3913 (method git-fetch)
3914 (uri (git-reference
3915 (url "https://github.com/lastquestion/explain-pause-mode")
3916 (commit commit)))
3917 (file-name (git-file-name name version))
3918 (sha256
3919 (base32
3920 "0frnfwqal9mrnrz6q4v7vcai26ahaw81894arff1yjw372pfgv7v"))))
3921 (build-system emacs-build-system)
3922 (native-inputs
3923 `(("emacs" ,emacs-buttercup)))
3924 (arguments
3925 '(#:tests? #t
3926 ;; Don't run case-tests as they will fail to create sockets because
3927 ;; the path is too long
3928 #:test-command '("make" "byte-compile" "unit-tests")
3929 ;; Parallel testing will cause the tests to run before
3930 ;; byte-compilation is finished
3931 #:parallel-tests? #f))
3932 (home-page "https://github.com/lastquestion/explain-pause-mode")
3933 (synopsis "Top-like interface to determine why Emacs paused")
3934 (description
3935 "This package monitors Emacs function calls and records their execution
3936 time. This information can be reviewed to determine what is causing the user
3937 interface to pause.")
3938 (license license:gpl3+))))
3939
3940 (define-public emacs-fill-column-indicator
3941 (package
3942 (name "emacs-fill-column-indicator")
3943 (version "1.90")
3944 (source
3945 (origin
3946 (method git-fetch)
3947 (uri (git-reference
3948 (url "https://github.com/alpaker/Fill-Column-Indicator")
3949 (commit version)))
3950 (file-name (git-file-name name version))
3951 (sha256
3952 (base32 "0snjznxdwwfdgccdcvrnk467416r244r2r5qcm2sga8l0ha9gw9z"))))
3953 (build-system emacs-build-system)
3954 (home-page "https://www.emacswiki.org/emacs/FillColumnIndicator")
3955 (synopsis "Graphically indicate the fill column")
3956 (description
3957 "Fill-column-indicator graphically indicates the location of the fill
3958 column by drawing a thin line down the length of the editing window.")
3959 (license license:gpl3+)))
3960
3961 (define-public emacs-grep-a-lot
3962 (package
3963 (name "emacs-grep-a-lot")
3964 (version "1.0.7")
3965 (source
3966 (origin
3967 (method git-fetch)
3968 (uri (git-reference
3969 (url "https://github.com/ZungBang/emacs-grep-a-lot")
3970 (commit "9f9f645b9e308a0d887b66864ff97d0fca1ba4ad")))
3971 (file-name (git-file-name name version))
3972 (sha256
3973 (base32 "1f8262mrlinzgnn4m49hbj1hm3c1mvzza24py4b37sasn49546lw"))))
3974 (build-system emacs-build-system)
3975 (home-page "https://github.com/ZungBang/emacs-grep-a-lot")
3976 (synopsis "Enables multiple grep buffers in Emacs")
3977 (description
3978 "This Emacs package allows managing multiple grep buffers.")
3979 (license license:gpl3+)))
3980
3981 (define-public emacs-fd
3982 (package
3983 (name "emacs-fd")
3984 (version "0.1.0")
3985 (source (origin
3986 (method git-fetch)
3987 (uri (git-reference
3988 (url "https://github.com/yqrashawn/fd-dired")
3989 (commit version)))
3990 (file-name (git-file-name name version))
3991 (sha256
3992 (base32
3993 "1fas0fpvym2lyzybwm44gly9jz6a2fpp72yxnwfbqqjkfgk9910y"))))
3994 (build-system emacs-build-system)
3995 (home-page "https://github.com/yqrashawn/fd-dired")
3996 (synopsis "Dired-mode interface for fd result")
3997 (description "This package provides a dired-mode interface for fd's
3998 result.")
3999 (license license:gpl3+)))
4000
4001 (define-public emacs-rg
4002 (package
4003 (name "emacs-rg")
4004 (version "2.0.2")
4005 (source
4006 (origin
4007 (method git-fetch)
4008 (uri (git-reference
4009 (url "https://github.com/dajva/rg.el")
4010 (commit version)))
4011 (file-name (git-file-name name version))
4012 (sha256
4013 (base32 "15qcnsnbni0aincm9pxpfhff3c5ivd5zs2s2qchjzhcn4kdm6kxr"))))
4014 (build-system emacs-build-system)
4015 (arguments
4016 '(#:phases
4017 (modify-phases %standard-phases
4018 (add-after 'unpack 'remove-rg-path
4019 ;; Remove the path to ripgrep so that it works on remote systems.
4020 (lambda _
4021 (let ((file "rg.el"))
4022 (chmod file #o644)
4023 (emacs-substitute-sexps file
4024 ("(defcustom rg-executable" "rg"))))))))
4025 (propagated-inputs
4026 `(("emacs-s" ,emacs-s)
4027 ("emacs-transient" ,emacs-transient)
4028 ("emacs-wgrep" ,emacs-wgrep)
4029 ("ripgrep" ,ripgrep)))
4030 (home-page "https://rgel.readthedocs.io/en/latest/")
4031 (synopsis "Search tool based on @code{ripgrep}")
4032 (description
4033 "@code{rg} is an Emacs search package based on the @code{ripgrep} command
4034 line tool. It allows one to interactively search based on the editing context
4035 then refine or modify the search results.")
4036 (license license:gpl3+)))
4037
4038 (define-public emacs-inf-ruby
4039 (package
4040 (name "emacs-inf-ruby")
4041 (version "2.5.2")
4042 (source
4043 (origin
4044 (method git-fetch)
4045 (uri (git-reference
4046 (url "https://github.com/nonsequitur/inf-ruby")
4047 (commit version)))
4048 (file-name (git-file-name name version))
4049 (sha256
4050 (base32 "0a1hhvfbl6mq8rjsi77fg9fh5a91hi5scjrg9rjqc5ffbql67y0v"))))
4051 (build-system emacs-build-system)
4052 (home-page "https://github.com/nonsequitur/inf-ruby")
4053 (synopsis "Provides a REPL buffer connected to a Ruby subprocess in Emacs")
4054 (description
4055 "@code{inf-ruby} provides a Read Eval Print Loop (REPL) buffer, allowing
4056 for easy interaction with a ruby subprocess. Features include support for
4057 detecting specific uses of Ruby, e.g. when using rails, and using a
4058 appropriate console.")
4059 (license license:gpl3+)))
4060
4061 (define-public emacs-znc
4062 (package
4063 (name "emacs-znc")
4064 (version "0.0.2")
4065 (source
4066 (origin
4067 (method url-fetch)
4068 (uri (string-append "https://marmalade-repo.org/packages/znc-"
4069 version ".el"))
4070 (sha256
4071 (base32
4072 "1d8lqvybgyazin5z0g1c4l3rg1vzrrvf0saqs53jr1zcdg0lianh"))))
4073 (build-system emacs-build-system)
4074 (home-page "https://github.com/sshirokov/ZNC.el")
4075 (synopsis "Make ERC and ZNC get along better")
4076 (description
4077 "This is a thin wrapper around @code{erc} that enables one to use the ZNC
4078 IRC bouncer with ERC.")
4079 (license license:expat)))
4080
4081 (define-public emacs-erc-status-sidebar
4082 (let ((commit "ea4189a1dbfe60117359c36e681ad7c389e2968c")
4083 (revision "1"))
4084 (package
4085 (name "emacs-erc-status-sidebar")
4086 (version (git-version "0.1" revision commit))
4087 (source
4088 (origin
4089 (method git-fetch)
4090 (uri (git-reference
4091 (url "https://github.com/drewbarbs/erc-status-sidebar")
4092 (commit commit)))
4093 (file-name (git-file-name name version))
4094 (sha256
4095 (base32 "1hwlhzgx03z8891sblz56zdp8zj0izh72kxykgcnz5rrkyc3vfi3"))))
4096 (build-system emacs-build-system)
4097 (home-page "https://github.com/drewbarbs/erc-status-sidebar")
4098 (synopsis "Hexchat-like activity overview for ERC channels")
4099 (description
4100 "This package provides a Hexchat-like status bar for joined channels in
4101 ERC, an Emacs client for IRC (Internet Relay Chat). It relies on the
4102 @code{erc-track} module, and displays all the same information
4103 @code{erc-track} does in the mode line, but in an alternative format.")
4104 (license license:gpl3+))))
4105
4106 (define-public emacs-shut-up
4107 (package
4108 (name "emacs-shut-up")
4109 (version "0.3.3")
4110 (source
4111 (origin
4112 (method git-fetch)
4113 (uri (git-reference
4114 (url "https://github.com/cask/shut-up")
4115 (commit (string-append "v" version))))
4116 (file-name (git-file-name name version))
4117 (sha256
4118 (base32 "1bnmrwrhra6cpc3jjgwwzrydj5ps7q2dlkh2ag4j7rkyv4dlk351"))))
4119 (build-system emacs-build-system)
4120 (home-page "https://github.com/cask/shut-up")
4121 (synopsis "Silence Emacs")
4122 (description "This package silences most output of Emacs when running an
4123 Emacs shell script.")
4124 (license license:expat)))
4125
4126 (define-public emacs-undercover
4127 (package
4128 (name "emacs-undercover")
4129 (version "0.8.0")
4130 (source
4131 (origin
4132 (method git-fetch)
4133 (uri (git-reference
4134 (url "https://github.com/sviridov/undercover.el")
4135 (commit (string-append "v" version))))
4136 (file-name (git-file-name name version))
4137 (sha256
4138 (base32 "19d3373fy635vbfwr1yhxirwqn68qzny9byv74smxws4ly04mr02"))))
4139 (build-system emacs-build-system)
4140 (propagated-inputs
4141 `(("emacs-dash" ,emacs-dash)
4142 ("emacs-shut-up" ,emacs-shut-up)))
4143 (home-page "https://github.com/sviridov/undercover.el")
4144 (synopsis "Test coverage library for Emacs Lisp")
4145 (description
4146 "Undercover is a test coverage library for software written in Emacs
4147 Lisp.")
4148 (license license:expat)))
4149
4150 (define-public emacs-paren-face
4151 (package
4152 (name "emacs-paren-face")
4153 (version "1.0.7")
4154 (source
4155 (origin
4156 (method git-fetch)
4157 (uri (git-reference
4158 (url "https://github.com/tarsius/paren-face")
4159 (commit version)))
4160 (file-name (git-file-name name version))
4161 (sha256
4162 (base32 "1zyrrrr8rmksr3rfsv96psk1z15wbbx1bvcfp3hf5ciyc2n79000"))))
4163 (build-system emacs-build-system)
4164 (home-page "https://github.com/tarsius/paren-face")
4165 (synopsis "Face for parentheses in Lisp modes")
4166 (description
4167 "This library defines a face named @code{parenthesis} used just for
4168 parentheses. The intended purpose of this face is to make parentheses less
4169 visible in Lisp code by dimming them. Lispers probably don't need to be
4170 constantly made aware of the existence of the parentheses. Dimming them might
4171 be even more useful for people new to Lisp who have not yet learned to
4172 subconsciously blend out the parentheses.")
4173 (license license:gpl3+)))
4174
4175 (define-public emacs-page-break-lines
4176 (package
4177 (name "emacs-page-break-lines")
4178 (version "0.14")
4179 (source
4180 (origin
4181 (method git-fetch)
4182 (uri (git-reference
4183 (url "https://github.com/purcell/page-break-lines")
4184 (commit version)))
4185 (file-name (git-file-name name version))
4186 (sha256
4187 (base32 "0plfyzmh93x1r3zgfjyx23cc7vi1pcniipclzlms1iwfkl7zsqvp"))))
4188 (build-system emacs-build-system)
4189 (home-page "https://github.com/purcell/page-break-lines")
4190 (synopsis "Display page breaks as tidy horizontal lines")
4191 (description
4192 "This library provides a global mode which displays form feed characters
4193 as horizontal rules.")
4194 (license license:gpl3+)))
4195
4196 (define-public emacs-simple-httpd
4197 (package
4198 (name "emacs-simple-httpd")
4199 (version "1.5.1")
4200 (source
4201 (origin
4202 (method git-fetch)
4203 (uri (git-reference
4204 (url "https://github.com/skeeto/emacs-web-server")
4205 (commit version)))
4206 (file-name (git-file-name name version))
4207 (sha256
4208 (base32 "0dpn92rg813c4pq7a1vzj3znyxzp2lmvxqz6pzcqi0l2xn5r3wvb"))))
4209 (build-system emacs-build-system)
4210 (home-page "https://github.com/skeeto/emacs-web-server")
4211 (synopsis "HTTP server in pure Emacs Lisp")
4212 (description
4213 "This package provides a simple HTTP server written in Emacs Lisp to
4214 serve files and directory listings.")
4215 (license license:unlicense)))
4216
4217 (define-public emacs-skewer-mode
4218 (package
4219 (name "emacs-skewer-mode")
4220 (version "1.8.0")
4221 (source
4222 (origin
4223 (method git-fetch)
4224 (uri (git-reference
4225 (url "https://github.com/skeeto/skewer-mode")
4226 (commit version)))
4227 (file-name (git-file-name name version))
4228 (sha256
4229 (base32 "1ha7jl7776pk1bki5zj2q0jy66450mn8xr3aqjc0m9kj3gc9qxgw"))))
4230 (build-system emacs-build-system)
4231 (propagated-inputs
4232 `(("emacs-simple-httpd" ,emacs-simple-httpd)
4233 ("emacs-js2-mode" ,emacs-js2-mode)))
4234 (arguments '(#:include '("\\.el$" "\\.js$" "\\.html$")))
4235 (home-page "https://github.com/skeeto/skewer-mode")
4236 (synopsis "Live web development in Emacs")
4237 (description
4238 "Skewer-mode provides live interaction with JavaScript, CSS, and HTML in
4239 a web browser. Expressions are sent on-the-fly from an editing buffer to be
4240 evaluated in the browser, just like Emacs does with an inferior Lisp process
4241 in Lisp modes.")
4242 (license license:unlicense)))
4243
4244 (define-public emacs-litable
4245 (let ((commit "b0278f3f8dcff424bfbdfdefb545b1fbff33206f"))
4246 (package
4247 (name "emacs-litable")
4248 (version (git-version "0.1" "0" commit))
4249 (source (origin
4250 (method git-fetch)
4251 (uri (git-reference
4252 (url "https://github.com/Fuco1/litable")
4253 (commit commit)))
4254 (file-name (git-file-name name version))
4255 (sha256
4256 (base32
4257 "0bny40hv9a024n01clxns351cs4j4ifhgcc7m4743xncqf612p7g"))))
4258 (build-system emacs-build-system)
4259 (propagated-inputs
4260 `(("emacs-dash" ,emacs-dash)))
4261 (home-page "https://github.com/Fuco1/litable/")
4262 (synopsis "Dynamic evaluation replacement with Emacs")
4263 (description "This package provides dynamic evaluation in Emacs.")
4264 (license license:gpl3+))))
4265
4266 (define-public emacs-literate-calc-mode
4267 (let ((commit "a50e897a816cb5580ad6ec867eeaae212e0e4798")
4268 (revision "1"))
4269 (package
4270 (name "emacs-literate-calc-mode")
4271 (version (git-version "0.1" revision commit))
4272 (source
4273 (origin
4274 (method git-fetch)
4275 (uri (git-reference
4276 (url "https://github.com/sulami/literate-calc-mode.el")
4277 (commit commit)))
4278 (file-name (git-file-name name version))
4279 (sha256
4280 (base32 "0z6y5f1rj28lbr30m6g4a9l6ahs66whi8861g4cx9xzhs84nwv5g"))))
4281 (build-system emacs-build-system)
4282 (propagated-inputs
4283 `(("emacs-s" ,emacs-s)))
4284 (home-page "https://github.com/sulami/literate-calc-mode.el")
4285 (synopsis "Literate programming for Emacs Calc")
4286 (description
4287 "This library provides literate programming for Calc. There is both
4288 a major and a minor mode. The major mode does some basic syntax highlighting,
4289 while the minor mode only evaluates all Calc statements while typing. In
4290 particular, the minor mode works quite well with Org or Markdown modes, or
4291 other markup language major modes.")
4292 (license license:gpl3+))))
4293
4294 (define-public emacs-standard-dirs
4295 (package
4296 (name "emacs-standard-dirs")
4297 (version "2.0.0")
4298 (home-page "https://github.com/lafrenierejm/standard-dirs.el")
4299 (source
4300 (origin
4301 (method git-fetch)
4302 (uri (git-reference
4303 (url home-page)
4304 (commit version)))
4305 (file-name (git-file-name name version))
4306 (sha256
4307 (base32 "0r814qcrhvx4qlx4sdzwdmrhiryslqclx0bnpp0qcrbx6g8qfl25"))))
4308 (build-system emacs-build-system)
4309 (propagated-inputs
4310 `(("emacs-f" ,emacs-f)
4311 ("emacs-s" ,emacs-s)))
4312 (synopsis "Platform-specific paths for config, cache, and other data")
4313 (description
4314 "This package provides platform-specific paths for reading and writing
4315 configuration, cache, and other data.")
4316 (license license:gpl3+)))
4317
4318 (define-public emacs-string-inflection
4319 (package
4320 (name "emacs-string-inflection")
4321 (version "1.0.12")
4322 (source (origin
4323 (method git-fetch)
4324 (uri (git-reference
4325 (url "https://github.com/akicho8/string-inflection")
4326 (commit (string-append "v" version))))
4327 (file-name (git-file-name name version))
4328 (sha256
4329 (base32
4330 "0f3nkfdpngax4zfw75jca2wywwh31ha6ywddh4125lbxi3y6m7s9"))))
4331 (build-system emacs-build-system)
4332 (native-inputs
4333 `(("ert-runner" ,emacs-ert-runner)))
4334 (arguments
4335 `(#:tests? #t
4336 #:test-command '("ert-runner")))
4337 (home-page "https://github.com/akicho8/string-inflection")
4338 (synopsis "Convert symbol names between different naming conventions")
4339 (description
4340 "This Emacs package provides convenient methods for manipulating the
4341 naming style of a symbol. It supports different naming conventions such as:
4342
4343 @enumerate
4344 @item camel case
4345 @item Pascal case
4346 @item all upper case
4347 @item lower case separated by underscore
4348 @item etc...
4349 @end enumerate\n")
4350 (license license:gpl2+)))
4351
4352 (define-public emacs-stripe-buffer
4353 (package
4354 (name "emacs-stripe-buffer")
4355 (version "0.2.5")
4356 (source
4357 (origin
4358 (method git-fetch)
4359 (uri (git-reference
4360 (url "https://github.com/sabof/stripe-buffer")
4361 (commit version)))
4362 (file-name (git-file-name name version))
4363 (sha256
4364 (base32 "035ym1c1vzg6hjsnd258z4dkrfc11lj4c0y4gpgybhk54dq3w9dk"))))
4365 (build-system emacs-build-system)
4366 (home-page "https://github.com/sabof/stripe-buffer/")
4367 (synopsis "Add stripes to list buffers")
4368 (description
4369 "This Emacs package adds faces to add stripes to list buffers and org
4370 tables.")
4371 (license license:gpl2+)))
4372
4373 (define-public emacs-org-beautify-theme
4374 ;; Latest release (0.4) is not tagged, use commit hash.
4375 (let ((commit "df6a1114fda313e1689363e196c8284fbe2a2738")
4376 (revision "0"))
4377 (package
4378 (name "emacs-org-beautify-theme")
4379 (version "0.4")
4380 (source
4381 (origin
4382 (method git-fetch)
4383 (uri (git-reference
4384 (url "https://github.com/jonnay/org-beautify-theme")
4385 (commit commit)))
4386 (file-name (git-file-name name version))
4387 (sha256
4388 (base32 "1lkz7736swimad12khwbbqc4gxjydgr1k45p4mx03s25pv1w920y"))))
4389 (build-system emacs-build-system)
4390 (home-page "https://github.com/jonnay/org-beautify-theme")
4391 (synopsis "Theme to make Org mode look more beautiful")
4392 (description
4393 "The theme adds padding between headings, increases the size of titles,
4394 strike through completed TODO headings, changes Org blocks, changes Org check
4395 boxes, and more.")
4396 (license license:gpl3+))))
4397
4398 (define-public emacs-org-rich-yank
4399 (package
4400 (name "emacs-org-rich-yank")
4401 (version "0.2.1")
4402 (source
4403 (origin
4404 (method git-fetch)
4405 (uri (git-reference
4406 (url "https://github.com/unhammer/org-rich-yank")
4407 (commit (string-append "v" version))))
4408 (file-name (git-file-name name version))
4409 (sha256
4410 (base32 "0gxb0fnh5gxjmld0hnk5hli0cvdd8gjd27m30bk2b80kwldxlq1z"))))
4411 (build-system emacs-build-system)
4412 (home-page "https://github.com/unhammer/org-rich-yank")
4413 (synopsis "Automatically surround source code pasted into Org with
4414 @code{#+BEGIN_SRC} blocks")
4415 (description
4416 "This package provides a utility function for Org buffers that makes a
4417 @code{_SRC} block with the appropriate language annotation for code that has
4418 been copied from an Emacs major mode.")
4419 (license license:gpl2+)))
4420
4421 (define-public emacs-org-fancy-priorities
4422 (let ((commit "819bb993b71e7253cefef7047306ab4e0f9d0a86")
4423 (revision "1"))
4424 (package
4425 (name "emacs-org-fancy-priorities")
4426 (version (git-version "1.1" revision commit))
4427 (source
4428 (origin
4429 (method git-fetch)
4430 (uri (git-reference
4431 (url "https://github.com/harrybournis/org-fancy-priorities.git")
4432 (commit commit)))
4433 (file-name (git-file-name name version))
4434 (sha256
4435 (base32
4436 "13cyzlx0415i953prq6ch7r5iy23c1pz116bdxi5yqags4igh4wv"))))
4437 (build-system emacs-build-system)
4438 (home-page "https://github.com/harrybournis/org-fancy-priorities")
4439 (synopsis "Display org priorities as custom strings")
4440 (description
4441 "This package provides a minor mode that displays Org priorities as
4442 custom strings. This mode does not change your files in any way, it only
4443 displays the priority part of a heading as your preferred string value.")
4444 (license license:expat))))
4445
4446 (define-public emacs-org-fragtog
4447 (package
4448 (name "emacs-org-fragtog")
4449 (version "0.3.1")
4450 (source
4451 (origin
4452 (method git-fetch)
4453 (uri (git-reference
4454 (url "https://github.com/io12/org-fragtog.git")
4455 (commit version)))
4456 (file-name (git-file-name name version))
4457 (sha256
4458 (base32 "1szkx3n9gk6799rxv0jb3096pn2ssz82536x9a98xqwbimy4kvn6"))))
4459 (build-system emacs-build-system)
4460 (propagated-inputs
4461 `(("emacs-org" ,emacs-org)))
4462 (home-page "https://github.com/io12/org-fragtog")
4463 (synopsis "Toggle Org mode LaTeX fragments preview at cursor")
4464 (description
4465 "Org mode supports inline image previews of LaTeX fragments. This
4466 package automates this, so fragment previews are disabled for editing when
4467 your cursor steps onto them, and re-enabled when the cursor leaves.")
4468 (license license:gpl3+)))
4469
4470 (define-public emacs-ob-erlang
4471 (let ((revision "1")
4472 (commit "f1a8c665b8f7d0ab32267a9961de8eed872e6333"))
4473 (package
4474 (name "emacs-ob-erlang")
4475 (version (git-version "20180827" revision commit))
4476 (source (origin
4477 (method git-fetch)
4478 (uri (git-reference
4479 (url "https://github.com/xfwduke/ob-erlang")
4480 (commit commit)))
4481 (file-name (git-file-name name version))
4482 (sha256
4483 (base32
4484 "0b5zajqiy6955yvlqwy92prrqy89lqchsv4ss2ylws3p4s14rhij"))))
4485 (build-system emacs-build-system)
4486 (home-page "https://github.com/xfwduke/ob-erlang/")
4487 (synopsis "Org-babel support for Erlang")
4488 (description "This package adds support for working with Erlang code
4489 blocks with @code{org-babel} in @code{org-mode}.")
4490 (license license:gpl3+))))
4491
4492 (define-public emacs-ob-restclient
4493 (let ((commit "f7449b2068498fe9d8ab9589e0a638148861533f"))
4494 (package
4495 (name "emacs-ob-restclient")
4496 (version (git-version "0.02" "2" commit))
4497 (source
4498 (origin
4499 (method git-fetch)
4500 (uri (git-reference
4501 (url "https://github.com/alf/ob-restclient.el")
4502 (commit commit)))
4503 (file-name (git-file-name name version))
4504 (sha256
4505 (base32 "0s3931w9ab3yfml2pmq71rw21yf6hpg7m3vihxyy3vs6zli1cvmq"))))
4506 (propagated-inputs
4507 `(("emacs-restclient" ,emacs-restclient)))
4508 (build-system emacs-build-system)
4509 (home-page "https://github.com/alf/ob-restclient.el")
4510 (synopsis "Org-babel functionality for @code{restclient-mode}")
4511 (description
4512 "This package integrates @code{restclient-mode} with Org.")
4513 (license license:gpl3+))))
4514
4515 (define-public emacs-org-now
4516 (let ((commit "8f6b277a73f1c66e58ccb4b7f40d406851befc91"))
4517 (package
4518 (name "emacs-org-now")
4519 (version (git-version "0.1-pre" "1" commit))
4520 (source
4521 (origin
4522 (method git-fetch)
4523 (uri (git-reference
4524 (url "https://github.com/alphapapa/org-now")
4525 (commit commit)))
4526 (file-name (git-file-name name version))
4527 (sha256
4528 (base32 "117zzkryznznk6h4i1jqzdn888nl019xrgxm2gza0lndx8dxsg2c"))))
4529 (propagated-inputs
4530 `(("emacs-dash" ,emacs-dash)))
4531 (build-system emacs-build-system)
4532 (home-page "https://github.com/alphapapa/org-now")
4533 (synopsis "Show current Org tasks in a sidebar")
4534 (description
4535 "This package provides commands to show Org headings in a sidebar
4536 window while working on them. After defining one heading as the \"now\"
4537 heading, other headings can be refiled to it with one command, and back to
4538 their original location with another.")
4539 (license license:gpl3+))))
4540
4541 (define-public emacs-rich-minority
4542 (package
4543 (name "emacs-rich-minority")
4544 (version "1.0.3")
4545 (source
4546 (origin
4547 (method git-fetch)
4548 (uri (git-reference
4549 (url "https://github.com/Malabarba/rich-minority")
4550 (commit version)))
4551 (file-name (git-file-name name version))
4552 (sha256
4553 (base32
4554 "1kn7c9qr9ykj68iqffzzmjsr6aazwac8cxb7j960sjb282rq0yyj"))))
4555 (build-system emacs-build-system)
4556 (home-page "https://github.com/Malabarba/rich-minority")
4557 (synopsis "Clean-up and beautify the list of minor modes")
4558 (description
4559 "This Emacs package hides and/or highlights minor modes in the
4560 mode-line.")
4561 (license license:gpl2+)))
4562
4563 (define-public emacs-robe
4564 (package
4565 (name "emacs-robe")
4566 (version "0.8.2")
4567 (source
4568 (origin
4569 (method git-fetch)
4570 (uri (git-reference
4571 (url "https://github.com/dgutov/robe")
4572 (commit version)))
4573 (file-name (git-file-name name version))
4574 (sha256
4575 (base32 "0qw18wi54yg971n4wnjqkd8lqj5lbs9ra8bvmngif2bzhqlfdsbn"))))
4576 (build-system emacs-build-system)
4577 (arguments
4578 '(#:include (cons "^lib\\/" %default-include)))
4579 (propagated-inputs
4580 `(("emacs-inf-ruby" ,emacs-inf-ruby)))
4581 (home-page "https://github.com/dgutov/robe")
4582 (synopsis "Ruby code assistance tool for Emacs")
4583 (description
4584 "Robe can provide information on loaded classes and modules in Ruby code,
4585 as well as where methods are defined. This allows the user to jump to method
4586 definitions, modules and classes, display method documentation and provide
4587 method and constant name completion.")
4588 (license license:gpl3+)))
4589
4590 (define-public emacs-robot-mode
4591 (let ((commit "32846e7e80ae3471b7c07f9709dcaa4f9b9ed4a0")
4592 (revision "1"))
4593 (package
4594 (name "emacs-robot-mode")
4595 (version (git-version "0.0.0" revision commit))
4596 (source (origin
4597 (method git-fetch)
4598 (uri (git-reference
4599 ;; A better maintained fork of robot-mode.
4600 (url "https://github.com/jvalkeejarvi/robot-mode")
4601 (commit commit)))
4602 (file-name (git-file-name name version))
4603 (sha256
4604 (base32
4605 "1i8wf7m0gml8zvvmlgppjzv78b432686p1qdbzgclc7qfcvzag0d"))))
4606 (build-system emacs-build-system)
4607 (propagated-inputs `(("emacs-s" ,emacs-s)))
4608 (home-page "https://github.com/jvalkeejarvi/robot-mode")
4609 (synopsis "Emacs mode for Robot Framework")
4610 (description "This major mode facilitates editing Robot Framework source
4611 files with features such as syntax highlighting, comments, finding keywords,
4612 completing keywords and smart indentation.")
4613 (license license:gpl3+))))
4614
4615 (define-public emacs-roguel-ike
4616 ;; Tagged branch is outdated.
4617 (let ((revision "0")
4618 (commit "706dcb0687e8016d7d776f9d9e5ace9fdbbca43c"))
4619 (package
4620 (name "emacs-roguel-ike")
4621 (version (git-version "0.1.0" revision commit))
4622 (source
4623 (origin
4624 (method git-fetch)
4625 (uri (git-reference
4626 (url "https://github.com/stevenremot/roguel-ike")
4627 (commit commit)))
4628 (file-name (git-file-name name version))
4629 (sha256
4630 (base32 "0rgv4y9aa5cc2ddz3y5z8d22xmr8kf5c60h0r3g8h91jmcw3rb4z"))))
4631 (build-system emacs-build-system)
4632 (propagated-inputs
4633 `(("emacs-popup" ,emacs-popup)))
4634 (arguments
4635 `(#:include (cons* "^roguel-ike/" "^roguel-ike-lib/" %default-include)
4636 #:phases
4637 (modify-phases %standard-phases
4638 (add-before 'check 'set-test-environment
4639 (lambda _
4640 (setenv "HOME" "/tmp")
4641 #t)))))
4642 (home-page "https://github.com/stevenremot/roguel-ike.git")
4643 (synopsis "Coffee-break roguelike for Emacs")
4644 (description
4645 "Roguel-ike is an attempt to develop a coffee-break roguelike for
4646 Emacs. The complete game would allow the player to create various characters
4647 and to make them fulfill challenges like arena fight and short dungeon
4648 explorations.")
4649 (license license:gpl3+))))
4650
4651 (define-public emacs-rspec
4652 (let ((commit "66ea7cc9699d6edc6115daa024818adbd85efc20")
4653 (revision "1"))
4654 (package
4655 (name "emacs-rspec")
4656 (version (git-version "1.11" revision commit))
4657 (source
4658 (origin
4659 (method git-fetch)
4660 (uri (git-reference
4661 (url "https://github.com/pezra/rspec-mode")
4662 (commit commit)))
4663 (file-name (git-file-name name version))
4664 (sha256
4665 (base32 "0b11s8r0pi7ah54km4yg4fqff8wkk409d25qnlwm1l94pdwjd1c8"))))
4666 (build-system emacs-build-system)
4667 (arguments
4668 `(#:include (cons "^snippets\\/rspec-mode\\/" %default-include)
4669 #:tests? #t
4670 #:test-command '("make" "test")))
4671 (home-page "https://github.com/pezra/rspec-mode")
4672 (synopsis "Provides a rspec mode for working with RSpec")
4673 (description
4674 "The Emacs RSpec mode provides keybindings for Ruby source files, e.g. to
4675 verify the spec associated with the current buffer, or entire project, as well
4676 as moving between the spec files, and corresponding code files.
4677
4678 Also included are keybindings for spec files and Dired buffers, as well as
4679 snippets for yasnippet.")
4680 (license license:gpl3+))))
4681
4682 (define-public emacs-smart-mode-line
4683 (package
4684 (name "emacs-smart-mode-line")
4685 (version "2.13")
4686 (source
4687 (origin
4688 (method git-fetch)
4689 (uri (git-reference
4690 (url "https://github.com/Malabarba/smart-mode-line")
4691 (commit version)))
4692 (file-name (git-file-name name version))
4693 (sha256
4694 (base32 "164b697xm1rwcggv37dymhf3npbyh2bs59z8b6m5x35lb4c3lf8b"))))
4695 (build-system emacs-build-system)
4696 (propagated-inputs
4697 `(("emacs-rich-minority" ,emacs-rich-minority)))
4698 (home-page "https://github.com/Malabarba/smart-mode-line")
4699 (synopsis "Color-coded smart mode-line")
4700 (description
4701 "Smart Mode Line is a mode-line theme for Emacs. It aims to be easy to
4702 read from small to large monitors by using colors, a prefix feature, and smart
4703 truncation.")
4704 (license license:gpl2+)))
4705
4706 (define-public emacs-sqlite
4707 ;; XXX: There is no tagged commit.
4708 (let ((commit "dad42b8bbca4994be1871343dd18fd6528ee5797")
4709 (revision "0"))
4710 (package
4711 (name "emacs-sqlite")
4712 (build-system emacs-build-system)
4713 (version (git-version "1.0" revision commit))
4714 (source
4715 (origin
4716 (method git-fetch)
4717 (uri (git-reference
4718 (url "https://gitlab.com/cnngimenez/sqlite.el")
4719 (commit commit)))
4720 (file-name (git-file-name name version))
4721 (sha256
4722 (base32 "06ln4vijl8kii3nzc5cscgsadx1fqgxksflijd3ain83bn8g4wrd"))))
4723 (home-page "https://gitlab.com/cnngimenez/sqlite.el")
4724 (synopsis "SQLite interface for Emacs Lisp")
4725 (description "Emacs SQLite is a simple SQLite interface for connecting
4726 and retrieving information using the SQLite program through Elisp programming.
4727 It is not intended as a user interface.")
4728 (license license:gpl3+))))
4729
4730 (define-public emacs-sr-speedbar
4731 (let ((commit "77a83fb50f763a465c021eca7343243f465b4a47")
4732 (revision "0"))
4733 (package
4734 (name "emacs-sr-speedbar")
4735 (version (git-version "20161025" revision commit))
4736 (source
4737 (origin
4738 (method git-fetch)
4739 (uri (git-reference
4740 (url "https://github.com/emacsorphanage/sr-speedbar")
4741 (commit commit)))
4742 (file-name (git-file-name name version))
4743 (sha256
4744 (base32
4745 "0sd12555hk7z721y00kv3crdybvcn1i08wmd148z5imayzibj153"))))
4746 (build-system emacs-build-system)
4747 (home-page "https://www.emacswiki.org/emacs/SrSpeedbar")
4748 (synopsis "Same frame Emacs @code{speedbar}")
4749 (description
4750 "This Emacs package allows you to show @code{M-x speedbar} in the
4751 same frame (in an extra window). You can customize the initial width of
4752 the speedbar window.")
4753 (license license:gpl3+))))
4754
4755 (define-public emacs-shell-switcher
4756 (package
4757 (name "emacs-shell-switcher")
4758 (version "1.0.1")
4759 (source
4760 (origin
4761 (method git-fetch)
4762 (uri (git-reference
4763 (url "https://github.com/DamienCassou/shell-switcher")
4764 (commit (string-append "v" version))))
4765 (file-name (git-file-name name version))
4766 (sha256
4767 (base32 "0ia7sdip4hl27avckv3qpqgm3k4ynvp3xxq1cy53bqfzzx0gcria"))))
4768 (build-system emacs-build-system)
4769 (home-page "https://github.com/DamienCassou/shell-switcher")
4770 (synopsis "Provide fast switching between shell buffers")
4771 (description
4772 "This package provides commands to quickly switch between shell buffers.")
4773 (license license:gpl3+)))
4774
4775 (define-public emacs-shx
4776 (package
4777 (name "emacs-shx")
4778 (version "1.5.0")
4779 (source (origin
4780 (method git-fetch)
4781 (uri (git-reference
4782 (url "https://github.com/riscy/shx-for-emacs")
4783 (commit (string-append "v" version))))
4784 (file-name (git-file-name name version))
4785 (sha256
4786 (base32 "1cb5w6p9gnfxgh8qp7yj2f5ibpk1b4b5af3ynldaaj6yfpa8hqzn"))))
4787 (build-system emacs-build-system)
4788 (arguments
4789 `(#:tests? #t
4790 #:test-command
4791 '("emacs" "--batch" "--quiet"
4792 "--script" "test/script.el")))
4793 (home-page "https://github.com/riscy/shx-for-emacs")
4794 (synopsis "Extras for the comint-mode shell")
4795 (description
4796 "This package extends @code{comint-mode}: it parses markup in the output
4797 stream, enabling plots and graphics to be embedded, and adds command-line
4798 functions which plug into Emacs (e.g. use @code{:e <filename>} to edit a
4799 file).")
4800 (license license:gpl3+)))
4801
4802 (define-public emacs-names
4803 (let ((commit "d8baba5360e5253938a25d3e005455b6d2d86971")
4804 (version "20151201.0")
4805 (revision "8"))
4806 (package
4807 (name "emacs-names")
4808 (version (git-version version revision commit))
4809 (source
4810 (origin
4811 (method git-fetch)
4812 (uri (git-reference
4813 (url "https://github.com/Malabarba/names")
4814 (commit commit)))
4815 (file-name (git-file-name name version))
4816 (sha256
4817 (base32
4818 "11wyha2q8y7bzqq3jrzix8n97ywvsibvddrahqcps1a1yqk4hzfz"))))
4819 (build-system emacs-build-system)
4820 (home-page "https://github.com/Malabarba/names/")
4821 (synopsis "Namespace implementation for Emacs Lisp")
4822 (description
4823 "This package provides a macro that writes your namespaces for you.")
4824 (license license:gpl3+))))
4825
4826 (define-public emacs-evil-leader
4827 (package
4828 (name "emacs-evil-leader")
4829 (version "0.4.3")
4830 (source
4831 (origin
4832 (method git-fetch)
4833 (uri
4834 (git-reference
4835 (url "https://github.com/cofi/evil-leader")
4836 (commit version)))
4837 (file-name (git-file-name name version))
4838 (sha256
4839 (base32 "1k2zinchs0jjllp8zkpggckyy63dkyi5yig3p46vh4w45jdzysk5"))))
4840 (inputs
4841 `(("emacs-evil" ,emacs-evil)))
4842 (build-system emacs-build-system)
4843 (home-page "https://github.com/cofi/evil-leader")
4844 (synopsis "Implement <leader> feature from Vim")
4845 (description
4846 "Evil Leader provides the @code{<leader>} feature from Vim that provides
4847 an easy way to bind keys under a configurable prefix key.")
4848 (license license:gpl3+)))
4849
4850 (define-public emacs-evil-textobj-syntax
4851 (let ((commit "2d9ba8c75c754b409aea7469f46a5cfa52a872f3")
4852 (version "0")
4853 (revision "1"))
4854 (package
4855 (name "emacs-evil-textobj-syntax")
4856 (version (git-version version revision commit))
4857 (source
4858 (origin
4859 (method git-fetch)
4860 (uri (git-reference
4861 (url "https://github.com/laishulu/evil-textobj-syntax/")
4862 (commit commit)))
4863 (file-name (git-file-name name version))
4864 (sha256
4865 (base32
4866 "031p5i3274dazp7rz6m5y38shfgszm1clmkcf58qfqlvy978ammc"))))
4867 (build-system emacs-build-system)
4868 (propagated-inputs `(("emacs-evil" ,emacs-evil)
4869 ("emacs-names" ,emacs-names)))
4870 (home-page "https://github.com/laishulu/evil-textobj-syntax/")
4871 (synopsis "Text objects based on syntax highlighting")
4872 (description
4873 "This package provides text objects for @code{evil-mode} with
4874 boundaries defined by syntax highlighting.")
4875 (license license:gpl3+))))
4876
4877 (define-public emacs-flycheck-flow
4878 (let ((commit "9e8e52cfc98af6a23fd906f9cb5d5d470d8cf82d")
4879 (version "1.1")
4880 (revision "1"))
4881 (package
4882 (name "emacs-flycheck-flow")
4883 (version (git-version version revision commit))
4884 (source
4885 (origin
4886 (method git-fetch)
4887 (uri (git-reference
4888 (url "https://github.com/lbolla/emacs-flycheck-flow")
4889 (commit commit)))
4890 (file-name (git-file-name name version))
4891 (sha256
4892 (base32
4893 "14qldlisbmxzammr500gyha2hiv2xgyzfc6mysqii06kbcqn1ik1"))))
4894 (build-system emacs-build-system)
4895 (propagated-inputs
4896 `(("emacs-flycheck" ,emacs-flycheck)))
4897 (home-page "https://github.com/lbolla/emacs-flycheck-flow")
4898 (synopsis "Flow support for @code{flycheck-mode}")
4899 (description
4900 "This package allows @code{flycheck-mode} to provide syntax-checking
4901 for Flow files.")
4902 (license license:gpl3+))))
4903
4904 (define-public emacs-flycheck-grammalecte
4905 (package
4906 (name "emacs-flycheck-grammalecte")
4907 (version "1.3")
4908 (source
4909 (origin
4910 (method git-fetch)
4911 (uri (git-reference
4912 (url "https://git.umaneti.net/flycheck-grammalecte/")
4913 (commit (string-append "v" version))))
4914 (file-name (git-file-name name version))
4915 (sha256
4916 (base32 "0ih0nakal36is0dci82gx4ijrvnpz9jpw1adprfara2cf8dx4rk6"))))
4917 (build-system emacs-build-system)
4918 (arguments
4919 `(#:include (cons "\\.py$" %default-include)
4920 #:exclude '("^test-profile.el$")
4921 #:emacs ,emacs ;need libxml support
4922 #:phases
4923 (modify-phases %standard-phases
4924 (add-after 'unpack 'specify-python-location
4925 ;; Hard-code python3 executable location in the library.
4926 (lambda* (#:key inputs #:allow-other-keys)
4927 (let ((python3 (string-append (assoc-ref inputs "python")
4928 "/bin/python3")))
4929 (substitute* "flycheck-grammalecte.el"
4930 (("\"python3") (string-append "\"" python3)))
4931 (substitute* '("conjugueur.py" "flycheck-grammalecte.py")
4932 (("/usr/bin/env python3?") python3))
4933 #t)))
4934 (add-after 'unpack 'specify-grammalecte-location
4935 (lambda* (#:key inputs #:allow-other-keys)
4936 (make-file-writable "flycheck-grammalecte.el")
4937 (emacs-substitute-variables "flycheck-grammalecte.el"
4938 ("flycheck-grammalecte-grammalecte-directory"
4939 (string-append (assoc-ref inputs "grammalecte")
4940 "/lib/python"
4941 ,(version-major+minor (package-version python))
4942 "/site-packages/grammalecte")))
4943 #t))
4944 (add-after 'unpack 'do-not-phone-home
4945 ;; The package wants to check upstream Grammalecte version to
4946 ;; decide if an update is in order. Always return version
4947 ;; installed so it doesn't phone home and doesn't install anything.
4948 (lambda _
4949 (substitute* "flycheck-grammalecte.el"
4950 (("\\(flycheck-grammalecte--grammalecte-upstream-version\\)")
4951 ,(format #f "\"~a\"" (package-version grammalecte)))))))))
4952 (inputs
4953 `(("grammalecte" ,grammalecte)
4954 ("python" ,python)))
4955 (propagated-inputs
4956 `(("emacs-flycheck" ,emacs-flycheck)))
4957 (home-page "https://git.umaneti.net/flycheck-grammalecte/")
4958 (synopsis "Integrate Grammalecte with Flycheck")
4959 (description
4960 "Integrate the French grammar and typography checker Grammalecte with
4961 Flycheck to automatically look for mistakes in your writings. It also
4962 provides an easy way to find synonyms and antonyms for a given word (to avoid
4963 repetitions for example).")
4964 (license license:gpl3+)))
4965
4966 (define-public emacs-flycheck-guile
4967 (package
4968 (name "emacs-flycheck-guile")
4969 (version "0.2")
4970 (source
4971 (origin
4972 (method git-fetch)
4973 (uri
4974 (git-reference
4975 (url "https://github.com/flatwhatson/flycheck-guile")
4976 (commit version)))
4977 (file-name (git-file-name name version))
4978 (sha256
4979 (base32 "0cs5r0ik6a3bl1k3imjl0r8y1i69kx9x9m9cgxj470qk34brwyj5"))))
4980 (propagated-inputs
4981 `(("emacs-flycheck" ,emacs-flycheck)
4982 ("emacs-geiser" ,emacs-geiser)))
4983 (build-system emacs-build-system)
4984 (home-page "https://github.com/flatwhatson/flycheck-guile")
4985 (synopsis "GNU Guile support for Flycheck")
4986 (description
4987 "This package provides a Flycheck checker for GNU Guile using @code{guild
4988 compile}.")
4989 (license license:gpl3+)))
4990
4991 (define-public emacs-flycheck-ledger
4992 (package
4993 (name "emacs-flycheck-ledger")
4994 (version "0.5")
4995 (source
4996 (origin
4997 (method git-fetch)
4998 (uri (git-reference
4999 (url "https://github.com/purcell/flycheck-ledger")
5000 (commit version)))
5001 (file-name (git-file-name name version))
5002 (sha256
5003 (base32 "1djrj3is0dzrl2703bw7bclf33dp4xqmy144q7xj5pvpb9v3kf50"))))
5004 (inputs `(("ledger" ,ledger)))
5005 (arguments
5006 `(#:phases
5007 (modify-phases %standard-phases
5008 (add-after 'unpack 'configure
5009 (lambda* (#:key inputs outputs #:allow-other-keys)
5010 (let ((ledger (assoc-ref inputs "ledger")))
5011 ;; Specify the absolute executable location of ledger.
5012 (substitute* "flycheck-ledger.el"
5013 (("\"ledger\"") (string-append "\"" ledger "\""))))
5014 #t)))))
5015 (propagated-inputs
5016 `(("emacs-flycheck" ,emacs-flycheck)))
5017 (build-system emacs-build-system)
5018 (home-page "https://github.com/purcell/flycheck-ledger")
5019 (synopsis "Ledger support for Flycheck")
5020 (description
5021 "This Flycheck checker uses the output of @code{ledger balance} on the
5022 current file to find errors such as unbalanced transactions and syntax
5023 errors.")
5024 (license license:gpl3+)))
5025
5026 (define-public emacs-flycheck-rust
5027 (package
5028 (name "emacs-flycheck-rust")
5029 (version "1.1")
5030 (source
5031 (origin
5032 (method git-fetch)
5033 (uri
5034 (git-reference
5035 (url "https://github.com/flycheck/flycheck-rust")
5036 (commit version)))
5037 (file-name (git-file-name name version))
5038 (sha256
5039 (base32 "1fh6j5w2387nh2fwwjphkhq17cgj5m2q5k0fhidvgc2w65lzbr1r"))))
5040 (propagated-inputs
5041 `(("emacs-dash" ,emacs-dash)
5042 ("emacs-flycheck" ,emacs-flycheck)
5043 ("emacs-let-alist" ,emacs-let-alist)))
5044 (build-system emacs-build-system)
5045 (home-page "https://github.com/flycheck/flycheck-rust")
5046 (synopsis "Rust/Cargo support for Flycheck")
5047 (description
5048 "This Flycheck extension configures Flycheck automatically for
5049 the current Cargo project.")
5050 (license license:gpl3+)))
5051
5052 (define-public emacs-elisp-demos
5053 (package
5054 (name "emacs-elisp-demos")
5055 (version "2020.02.19")
5056 (source
5057 (origin
5058 (method git-fetch)
5059 (uri (git-reference
5060 (url "https://github.com/xuchunyang/elisp-demos")
5061 (commit version)))
5062 (file-name (git-file-name name version))
5063 (sha256
5064 (base32
5065 "0mckgaz92v3y2vlkggx9kd51fd1mahylw39c42l51dyv8wscm7sc"))))
5066 (build-system emacs-build-system)
5067 (arguments
5068 `(#:include '("\\.el$" "\\.org$")
5069 #:tests? #t
5070 #:test-command '("make" "test")))
5071 (home-page "https://github.com/xuchunyang/elisp-demos/")
5072 (synopsis "Enhance @code{*Help*} buffers with additional examples")
5073 (description
5074 "This package injects example uses of Elisp functions into their
5075 respective @code{*Help*} buffers.")
5076 (license license:gpl3+)))
5077
5078 (define-public emacs-docker-compose-mode
5079 (package
5080 (name "emacs-docker-compose-mode")
5081 (version "1.1.0")
5082 (source
5083 (origin
5084 (method git-fetch)
5085 (uri (git-reference
5086 (url "https://github.com/meqif/docker-compose-mode")
5087 (commit version)))
5088 (file-name (git-file-name name version))
5089 (sha256
5090 (base32
5091 "1fbcxwfvm33xcdj3cs26d9i1zyrryyjjkv7sc3mfxd45nq8d3ivj"))))
5092 (build-system emacs-build-system)
5093 (propagated-inputs
5094 `(("emacs-dash" ,emacs-dash)
5095 ("emacs-f" ,emacs-f)
5096 ("emacs-yaml-mode" ,emacs-yaml-mode)))
5097 (home-page "https://github.com/meqif/docker-compose-mode/")
5098 (synopsis "Major mode for editing @file{docker-compose} files")
5099 (description
5100 "This is a major mode for @file{docker-compose} files that provides
5101 completion of relevant keywords.")
5102 (license license:expat)))
5103
5104 (define-public emacs-dvc
5105 (let ((revision "591") ;no tags or official releases
5106 (guix-revision "1"))
5107 (package
5108 (name "emacs-dvc")
5109 (version (string-append "0.0.0-" guix-revision "." revision))
5110 (source
5111 (origin
5112 (method bzr-fetch)
5113 (uri (bzr-reference
5114 (url "lp:dvc")
5115 (revision revision)))
5116 (sha256
5117 (base32
5118 "03pqn493w70wcpgaxvqnfgynxghw114l9pyiv3r414d84vzhan6h"))
5119 (file-name (string-append name "-" version "-checkout"))))
5120 (build-system gnu-build-system)
5121 (arguments
5122 `(#:configure-flags
5123 (list (string-append "--with-lispdir=" (assoc-ref %outputs "out")
5124 "/share/emacs/site-lisp/"))
5125 #:tests? #f ;no test suite
5126 #:phases
5127 (modify-phases %standard-phases
5128 (add-before 'build 'set-home
5129 ;; Something in dvc-bookmarks.el attempts to write config files in
5130 ;; $HOME during the autoload generation.
5131 (lambda _ (setenv "HOME" (getenv "TMPDIR")) #t))
5132 (add-before 'build 'fix-texinfo
5133 ;; See https://bugs.launchpad.net/dvc/+bug/1264383.
5134 (lambda _
5135 (substitute* "texinfo/dvc-intro.texinfo"
5136 (("@itemx update ``to''")
5137 "@item update ``to''")
5138 (("@itemx brief")
5139 "@item brief")
5140 (("@itemx full")
5141 "@item full")
5142 (("@itemx drop")
5143 "@item drop")
5144 (("@itemx left file")
5145 "@item left file"))
5146 #t)))))
5147 (native-inputs
5148 `(("autoconf" ,autoconf)
5149 ("automake" ,automake) ;for aclocal
5150 ("emacs" ,emacs-minimal)
5151 ("texinfo" ,texinfo)))
5152 (home-page "http://xsteve.at/prg/emacs_dvc/index.html")
5153 (synopsis "Emacs front-end for various distributed version control systems.")
5154 (description "DVC is a legacy Emacs front-end for a number of
5155 distributed version control systems. It currently supports GNU Arch, GNU
5156 Bazaar, git, Mercurial, and Monotone. It also provides some integration with
5157 Gnus, e.g., for applying patches received by email.")
5158 (license license:gpl2+))))
5159
5160 (define-public emacs-sudo-edit
5161 (package
5162 (name "emacs-sudo-edit")
5163 (version "0.1.1")
5164 (source
5165 (origin
5166 (method git-fetch)
5167 (uri (git-reference
5168 (url "https://github.com/nflath/sudo-edit")
5169 (commit (string-append "v" version))))
5170 (file-name (git-file-name name version))
5171 (sha256
5172 (base32 "1hncxbg5lvywzkwvdmzvrz71midy4samjq2vvxxhz90z1y5l8l29"))))
5173 (build-system emacs-build-system)
5174 (native-inputs
5175 `(("emacs-undercover" ,emacs-undercover)))
5176 (arguments
5177 `(#:emacs ,emacs
5178 #:phases
5179 (modify-phases %standard-phases
5180 (add-before 'check 'fix-makefile
5181 (lambda _
5182 (substitute* "Makefile"
5183 (("\\$\\(CASK\\) exec ") ""))
5184 #t)))
5185 #:tests? #t
5186 #:test-command '("make" "test")))
5187 (home-page "https://github.com/nflath/sudo-edit/")
5188 (synopsis "Open files as another user")
5189 (description
5190 "This package allows editing files as another user, including the root
5191 user.")
5192 (license license:gpl3+)))
5193
5194 (define-public emacs-miniedit
5195 (package
5196 (name "emacs-miniedit")
5197 (version "2.0")
5198 (source
5199 (origin
5200 (method git-fetch)
5201 (uri (git-reference
5202 (url "https://github.com/emacsmirror/miniedit")
5203 (commit version)))
5204 (file-name (git-file-name name version))
5205 (sha256
5206 (base32
5207 "1850z96gly0jnr50472idqz1drzqarr0n23bbasslrc501xkg0bq"))))
5208 (build-system emacs-build-system)
5209 (home-page "https://github.com/emacsmirror/miniedit/")
5210 (synopsis "Enhanced editing for minibuffer fields")
5211 (description
5212 "This package provides a function that can be called from the
5213 minibuffer to enable editing the minibuffer input in another buffer with
5214 @code{text-mode} enabled.")
5215 (license license:gpl2+)))
5216
5217 (define-public emacs-ob-ipython
5218 (package
5219 (name "emacs-ob-ipython")
5220 (version "20180224")
5221 (source (origin
5222 (method git-fetch)
5223 (uri (git-reference
5224 (commit "7147455230841744fb5b95dcbe03320313a77124")
5225 (url "https://github.com/gregsexton/ob-ipython")))
5226 (file-name (git-file-name name version))
5227 (sha256
5228 (base32
5229 "1a10fc2jk37ni5sjjvf87s5nyaz2a6h2mlj5dxh4dhv5sd3bb85p"))))
5230 (build-system emacs-build-system)
5231 (propagated-inputs
5232 `(("emacs-f" ,emacs-f)))
5233 (home-page "http://www.gregsexton.org")
5234 (synopsis "Org-Babel functions for IPython evaluation")
5235 (description "This package adds support to Org-Babel for evaluating Python
5236 source code using IPython.")
5237 (license license:gpl3+)))
5238
5239 (define-public emacs-debbugs
5240 (package
5241 (name "emacs-debbugs")
5242 (version "0.27")
5243 (source
5244 (origin
5245 (method url-fetch)
5246 (uri (string-append "https://elpa.gnu.org/packages/debbugs-"
5247 version ".tar"))
5248 (sha256
5249 (base32 "1zn9p9vmfv5ihrp8d06b6abs48q225v42cgwa01s39hld6zg6wbv"))))
5250 (build-system emacs-build-system)
5251 (arguments '(#:include '("\\.el$" "\\.wsdl$" "\\.info$")))
5252 (propagated-inputs
5253 `(("emacs-async" ,emacs-async)))
5254 (home-page "https://elpa.gnu.org/packages/debbugs.html")
5255 (synopsis "Access the Debbugs bug tracker in Emacs")
5256 (description
5257 "This package lets you access the @uref{http://bugs.gnu.org,GNU Bug
5258 Tracker} from within Emacs.
5259
5260 For instance, it defines the command @code{M-x debbugs-gnu} for listing bugs,
5261 and the command @code{M-x debbugs-gnu-search} for bug searching. If you
5262 prefer the listing of bugs as TODO items of @code{org-mode}, you could use
5263 @code{M-x debbugs-org} and related commands.
5264
5265 A minor mode @code{debbugs-browse-mode} let you browse URLs to the GNU Bug
5266 Tracker as well as bug identifiers prepared for @code{bug-reference-mode}.")
5267 (license license:gpl3+)))
5268
5269 (define-public emacs-ert-expectations
5270 (package
5271 (name "emacs-ert-expectations")
5272 (version "0.2")
5273 (source
5274 (origin
5275 (method url-fetch)
5276 (uri "https://www.emacswiki.org/emacs/download/ert-expectations.el")
5277 (sha256
5278 (base32
5279 "0cwy3ilsid90abzzjb7ha2blq9kmv3gfp3icwwfcz6qczgirq6g7"))))
5280 (build-system emacs-build-system)
5281 (home-page "https://www.emacswiki.org/emacs/ert-expectations.el")
5282 (synopsis "Simple unit test framework for Emacs Lisp")
5283 (description "@code{emacs-ert-expectations} is a simple unit test
5284 framework for Emacs Lisp to be used with @code{ert}.")
5285 (license license:gpl3+)))
5286
5287 (define-public emacs-deferred
5288 (package
5289 (name "emacs-deferred")
5290 (version "0.5.1")
5291 (home-page "https://github.com/kiwanami/emacs-deferred")
5292 (source (origin
5293 (method git-fetch)
5294 (uri (git-reference
5295 (url home-page)
5296 (commit (string-append "v" version))))
5297 (file-name (git-file-name name version))
5298 (sha256
5299 (base32
5300 "0xy9zb6wwkgwhcxdnslqk52bq3z24chgk6prqi4ks0qcf2bwyh5h"))))
5301 (build-system emacs-build-system)
5302 (arguments
5303 `(#:phases
5304 (modify-phases %standard-phases
5305 (add-after 'unpack 'set-shell
5306 ;; Setting the SHELL environment variable is required for the tests
5307 ;; to find sh.
5308 (lambda _
5309 (setenv "SHELL" (which "sh"))
5310 #t))
5311 (add-before 'check 'fix-makefile
5312 (lambda _
5313 (substitute* "Makefile"
5314 (("\\$\\(CASK\\) exec ") ""))
5315 #t)))
5316 #:tests? #t
5317 #:test-command '("make" "test")))
5318 (native-inputs
5319 `(("emacs-ert-expectations" ,emacs-ert-expectations)
5320 ("emacs-undercover" ,emacs-undercover)
5321 ("ert-runner" ,emacs-ert-runner)))
5322 (synopsis "Simple asynchronous functions for Emacs Lisp")
5323 (description
5324 "The @code{deferred.el} library provides support for asynchronous tasks.
5325 The API is almost the same as that of
5326 @uref{https://github.com/cho45/jsdeferred, JSDeferred}, a JavaScript library
5327 for asynchronous tasks.")
5328 (license license:gpl3+)))
5329
5330 (define-public emacs-butler
5331 (package
5332 (name "emacs-butler")
5333 (version "0.2.4")
5334 (home-page "https://github.com/AshtonKem/Butler")
5335 (source (origin
5336 (method git-fetch)
5337 (uri (git-reference
5338 (url home-page)
5339 (commit version)))
5340 (file-name (git-file-name name version))
5341 (sha256
5342 (base32
5343 "1pii9dw4skq7nr4na6qxqasl36av8cwjp71bf1fgppqpcd9z8skj"))))
5344 (build-system emacs-build-system)
5345 (propagated-inputs
5346 `(("emacs-deferred" ,emacs-deferred)))
5347 (synopsis "Emacs client for Jenkins")
5348 (description
5349 "Butler provides an interface to connect to Jenkins continuous
5350 integration servers. Users can specify a list of server in the
5351 @code{butler-server-list} variable and then use @code{M-x butler-status} to
5352 view the build status of those servers' build jobs, and possibly to trigger
5353 build jobs.")
5354 (license license:gpl3+)))
5355
5356 (define-public emacs-tup-mode
5357 (package
5358 (name "emacs-tup-mode")
5359 (version "1.3.1")
5360 (source
5361 (origin
5362 (method git-fetch)
5363 (uri (git-reference
5364 (url "https://github.com/ejmr/tup-mode")
5365 (commit (string-append "v" version))))
5366 (file-name (git-file-name name version))
5367 (sha256
5368 (base32 "0asd024n5v23wdsg1959sszq568wg3a1bp4jrk0cllfji1z0n78y"))))
5369 (build-system emacs-build-system)
5370 (home-page "https://github.com/ejmr/tup-mode")
5371 (synopsis "Major mode for editing ``tupfiles'' used by the Tup build system")
5372 (description
5373 "Tup mode provides syntax highlighting for all of the elements of
5374 tupfiles, such as rule definitions, user-defined variables, macros, flags, bin
5375 variables, and so on. The mode also allows you to execute Tup commands.")
5376 (license license:gpl3+)))
5377
5378 (define-public emacs-company
5379 (package
5380 (name "emacs-company")
5381 (version "0.9.13")
5382 (source
5383 (origin
5384 (method url-fetch)
5385 (uri (string-append "https://elpa.gnu.org/packages/"
5386 "company-" version ".tar"))
5387 (sha256
5388 (base32 "1c9x9wlzzsn7vrsm57l2l44nqx455saa6wrm853szzg09qn8dlnw"))))
5389 (build-system emacs-build-system)
5390 (home-page "https://company-mode.github.io/")
5391 (synopsis "Modular text completion framework")
5392 (description
5393 "Company is a modular completion mechanism. Modules for retrieving
5394 completion candidates are called back-ends, modules for displaying them are
5395 front-ends. Company comes with many back-ends, e.g., @code{company-elisp}.
5396 These are distributed in separate files and can be used individually.")
5397 (license license:gpl3+)))
5398
5399 (define-public emacs-company-box
5400 ;; There is no release yet. Version is extracted from the main
5401 ;; file.
5402 (let ((version "0.0.1")
5403 (revision "0")
5404 (commit "be37a9a30dc112ab172af21af694e2cb04a74f85"))
5405 (package
5406 (name "emacs-company-box")
5407 (version (git-version version revision commit))
5408 (source
5409 (origin
5410 (method git-fetch)
5411 (uri (git-reference
5412 (url "https://github.com/sebastiencs/company-box")
5413 (commit commit)))
5414 (file-name (git-file-name name version))
5415 (sha256
5416 (base32 "13fgmdy51gqdwijqfvb784pirx4lgva0y7ysi0c3fcx8f82cdj59"))))
5417 (build-system emacs-build-system)
5418 (propagated-inputs
5419 `(("emacs-company" ,emacs-company)
5420 ("emacs-dash" ,emacs-dash)
5421 ("emacs-frame-local" ,emacs-frame-local)))
5422 (home-page "https://github.com/sebastiencs/company-box")
5423 (synopsis "Company front-end with icons")
5424 (description
5425 "Company box is a Company front-end. It supports different
5426 colors for different backends, associates icons to functions,
5427 variables... and their backends, and displays candidate's
5428 documentation. It is not limited by the current window size or
5429 buffer's text properties.
5430
5431 This package is not compatible with a TTY.")
5432 (license license:gpl3+))))
5433
5434 (define-public emacs-company-posframe
5435 (package
5436 (name "emacs-company-posframe")
5437 (version "0.5.0")
5438 (source (origin
5439 (method git-fetch)
5440 (uri (git-reference
5441 (url "https://github.com/tumashu/company-posframe")
5442 (commit (string-append "v" version))))
5443 (file-name (git-file-name name version))
5444 (sha256
5445 (base32
5446 "05ays6xkqbxcfplvx7wfc2slflmwc3aw7vkixvabk0ilvisndvgm"))))
5447 (build-system emacs-build-system)
5448 (propagated-inputs
5449 `(("emacs-company" ,emacs-company)
5450 ("emacs-posframe" ,emacs-posframe)))
5451 (home-page "https://github.com/tumashu/company-posframe")
5452 (synopsis "Use a posframe for @code{emacs-company}'s candidate menu")
5453 (description
5454 "Allows @code{emacs-company} to use child frames for its candidate menus.
5455
5456 @code{emacs-company-posframe} is fast enough for daily use and supports CJK
5457 languages.")
5458 (license license:gpl3+)))
5459
5460 (define-public emacs-irony-mode
5461 (package
5462 (name "emacs-irony-mode")
5463 (version "1.4.0")
5464 (home-page "https://github.com/Sarcasm/irony-mode")
5465 (source (origin
5466 (method git-fetch)
5467 (uri (git-reference
5468 (url (string-append home-page ".git"))
5469 (commit (string-append "v" version))))
5470 (file-name (git-file-name name version))
5471 (sha256
5472 (base32
5473 "0n2nfcq58md1p2xdhq1smh8v7lsyj0ci7ma5xyd6bkg5rvhsh10i"))))
5474 (build-system emacs-build-system)
5475 (inputs `(("server" ,emacs-irony-mode-server)))
5476 (arguments `(#:phases
5477 (modify-phases %standard-phases
5478 (add-after 'unpack 'configure
5479 (lambda* (#:key inputs #:allow-other-keys)
5480 (chmod "irony.el" #o644)
5481 (emacs-substitute-variables "irony.el"
5482 ("irony-server-install-prefix"
5483 (assoc-ref inputs "server")))
5484 #t)))))
5485 (synopsis "C/C++/ObjC Code completion and syntax checks for Emacs")
5486 (description "Irony-mode provides Clang-assisted syntax checking and
5487 completion for C, C++, and ObjC in GNU Emacs. Using @code{libclang} it can
5488 provide syntax checking and autocompletion on compiler level which is very
5489 resistant against false positives. It also integrates well with other
5490 packages like @code{eldoc-mode} and especially @code{company-mode} as
5491 described on the homepage.")
5492 (license license:gpl3+)))
5493
5494 (define-public emacs-irony-mode-server
5495 (package (inherit emacs-irony-mode)
5496 (name "emacs-irony-mode-server")
5497 (inputs
5498 `(("clang" ,clang)))
5499 (arguments
5500 `(#:phases
5501 (modify-phases %standard-phases
5502 (replace 'configure
5503 (lambda* (#:key outputs #:allow-other-keys)
5504 (let ((out (assoc-ref outputs "out")))
5505 (invoke "cmake"
5506 "server"
5507 (string-append "-DCMAKE_INSTALL_PREFIX=" out)) #t))))))
5508 (build-system cmake-build-system)
5509 (synopsis "Server for the Emacs @dfn{irony mode}")))
5510
5511 (define-public emacs-company-irony
5512 (package
5513 (name "emacs-company-irony")
5514 (version "1.1.0")
5515 (source (origin
5516 (method git-fetch)
5517 (uri (git-reference
5518 (url "https://github.com/Sarcasm/company-irony")
5519 (commit (string-append "v" version))))
5520 (sha256 (base32
5521 "1qgyam2vyjw90kpxns5cd6bq3qiqjhzpwrlvmi18vyb69qcgqd8a"))
5522 (file-name (git-file-name name version))))
5523 (build-system emacs-build-system)
5524 (inputs
5525 `(("emacs-irony-mode" ,emacs-irony-mode)
5526 ("emacs-company" ,emacs-company)))
5527 (synopsis "C++ completion backend for Company using irony-mode")
5528 (description "This backend for company-mode allows for C++ code completion
5529 with irony-mode using clang-tooling.")
5530 (home-page "https://github.com/Sarcasm/company-irony")
5531 (license license:gpl3+)))
5532
5533 (define-public emacs-flycheck-irony
5534 (package
5535 (name "emacs-flycheck-irony")
5536 (version "0.1.0")
5537 (source (origin
5538 (method git-fetch)
5539 (uri (git-reference
5540 (url "https://github.com/Sarcasm/flycheck-irony")
5541 (commit (string-append "v" version))))
5542 (file-name (git-file-name name version))
5543 (sha256
5544 (base32 "0qa5a8wzvzxwqql92ibc9s43k8sj3vwn7skz9hfr8av0skkhx996"))))
5545 (build-system emacs-build-system)
5546 (inputs
5547 `(("irony-mode" ,emacs-irony-mode)
5548 ("flycheck-mode" ,emacs-flycheck)
5549 ("emacs-company" ,emacs-company)))
5550 (synopsis "Live syntax checking frontend for Flycheck using irony-mode")
5551 (description "This package provides a frontend for Flycheck that lets
5552 irony-mode do the syntax checking.")
5553 (home-page "https://github.com/Sarcasm/flycheck-irony")
5554 (license license:gpl3+)))
5555
5556 (define-public emacs-irony-eldoc
5557 (package
5558 (name "emacs-irony-eldoc")
5559 (version (package-version emacs-irony-mode))
5560 (source
5561 (origin
5562 (method git-fetch)
5563 (uri (git-reference
5564 (url "https://github.com/ikirill/irony-eldoc")
5565 (commit "0df5831eaae264a25422b061eb2792aadde8b3f2")))
5566 (file-name (git-file-name name version))
5567 (sha256
5568 (base32 "1l5qpr66v1l12fb50yh73grb2rr85xxmbj19mm33b5rdrq2bqmmd"))))
5569 (build-system emacs-build-system)
5570 (inputs
5571 `(("irony-mode" ,emacs-irony-mode)))
5572 (synopsis "Eldoc integration for irony-mode")
5573 (description "Irony-eldoc is an eldoc extension that shows documentation
5574 for the current function or variable in the minibuffer.")
5575 (home-page "https://github.com/ikirill/irony-eldoc")
5576 (license license:gpl3+)))
5577
5578 (define-public emacs-company-quickhelp
5579 ;; XXX: release version 2.3.0 is on an unmaintained branch for some reason,
5580 ;; so we use the latest 2.2.0 commit instead
5581 (let ((commit "479676cade80a9f03802ca3d956591820ed5c537")
5582 (revision "1"))
5583 (package
5584 (name "emacs-company-quickhelp")
5585 (version (git-version "2.2.0" revision commit))
5586 (source
5587 (origin
5588 (method git-fetch)
5589 (uri (git-reference
5590 (url "https://github.com/expez/company-quickhelp")
5591 (commit commit)))
5592 (file-name (git-file-name name version))
5593 (sha256
5594 (base32 "0hbqpnaf4hnin3nmdzmfj3v22kk9a97b6zssqs96ns36d9h52xcp"))))
5595 (build-system emacs-build-system)
5596 (propagated-inputs
5597 `(("emacs-pos-tip" ,emacs-pos-tip)
5598 ("emacs-company" ,emacs-company)))
5599 (home-page "https://github.com/expez/company-quickhelp")
5600 (synopsis "Popup documentation for completion candidates")
5601 (description "@code{company-quickhelp} shows documentation for the
5602 completion candidate when using the Company text completion framework.")
5603 (license license:gpl3+))))
5604
5605 (define-public emacs-math-symbol-lists
5606 (package
5607 (name "emacs-math-symbol-lists")
5608 (version "1.3")
5609 (source
5610 (origin
5611 (method git-fetch)
5612 (uri (git-reference
5613 (url "https://github.com/vspinu/math-symbol-lists")
5614 (commit (string-append "v" version))))
5615 (file-name (git-file-name name version))
5616 (sha256
5617 (base32 "1r2i600356k8g0l53s4b5xc24flpka664i8f23zbj4h7gk1g2787"))))
5618 (build-system emacs-build-system)
5619 (home-page "https://github.com/vspinu/math-symbol-lists")
5620 (synopsis "Lists of Unicode math symbols and @code{LaTeX} commands")
5621 (description "This is a storage package used by completion engines like
5622 @code{company-math}.")
5623 (license license:gpl3+)))
5624
5625 (define-public emacs-company-coq
5626 (package
5627 (name "emacs-company-coq")
5628 (version "1.0.1")
5629 (source
5630 (origin
5631 (method git-fetch)
5632 (uri
5633 (git-reference
5634 (url "https://github.com/cpitclaudel/company-coq")
5635 (commit version)))
5636 (file-name (git-file-name name version))
5637 (sha256
5638 (base32 "0dxi4h8xqq5647k7h89s4pi8nwyj3brlhsckrv3p3b1g4dr6mk3b"))))
5639 (inputs
5640 `(("emacs-company" ,emacs-company)
5641 ("emacs-company-math" ,emacs-company-math)
5642 ("emacs-dash" ,emacs-dash)
5643 ("emacs-yasnippet" ,emacs-yasnippet)))
5644 (build-system emacs-build-system)
5645 (home-page "https://github.com/cpitclaudel/company-coq")
5646 (synopsis "Emacs extensions for Proof General's Coq mode")
5647 (description "This package includes a collection of Company mode backends
5648 for Proof-General's Coq mode, and many useful extensions to Proof-General. It
5649 features:
5650
5651 @itemize
5652 @item Prettification of operators, types, and subscripts,
5653 @item Auto-completion,
5654 @item Insertion of cases,
5655 @item Fully explicit intros,
5656 @item Outlines, code folding, and jumping to definition,
5657 @item Help with errors,
5658 @item and more.
5659 @end itemize")
5660 (license license:gpl3+)))
5661
5662 (define-public emacs-company-math
5663 (package
5664 (name "emacs-company-math")
5665 (version "1.4")
5666 (source
5667 (origin
5668 (method git-fetch)
5669 (uri (git-reference
5670 (url "https://github.com/vspinu/company-math")
5671 (commit (string-append "v" version))))
5672 (file-name (git-file-name name version))
5673 (sha256
5674 (base32 "1y1fw926insgdl7ib9ynxjrxf3p6wfjkfxvf5vgdca7267cvcll1"))))
5675 (build-system emacs-build-system)
5676 (propagated-inputs
5677 `(("emacs-math-symbol-lists" ,emacs-math-symbol-lists)
5678 ("emacs-company" ,emacs-company)))
5679 (home-page "https://github.com/vspinu/company-math")
5680 (synopsis "Completion backends for math symbols and @code{LaTeX} tags")
5681 (description
5682 "This package provides a backend for use with Company mode allowing for
5683 completion of common math symbols.")
5684 (license license:gpl3+)))
5685
5686 (define-public emacs-compdef
5687 (let ((commit "67104a38763cc819644f711248b170a43bce151b")
5688 (revision "2"))
5689 (package
5690 (name "emacs-compdef")
5691 (version (git-version "0.2" revision commit))
5692 (source
5693 (origin
5694 (method git-fetch)
5695 (uri (git-reference
5696 (url "https://gitlab.com/jjzmajic/compdef.git")
5697 (commit commit)))
5698 (file-name (git-file-name name version))
5699 (sha256
5700 (base32 "1f6y6cr67gps9jp5hd20xszfd3k26v70g6z4g5db6wdkvlnc2wkg"))))
5701 (build-system emacs-build-system)
5702 (home-page "https://gitlab.com/jjzmajic/compdef")
5703 (synopsis "Set local completion backends")
5704 (description "This package provides a function to cleanly set local
5705 completion backends according to mode, and integrates with
5706 @code{use-package}.")
5707 (license license:gpl3+))))
5708
5709 (define-public emacs-icomplete-vertical
5710 (package
5711 (name "emacs-icomplete-vertical")
5712 (version "0.3")
5713 (source
5714 (origin
5715 (method git-fetch)
5716 (uri (git-reference
5717 (url "https://github.com/oantolin/icomplete-vertical")
5718 (commit version)))
5719 (file-name (git-file-name name version))
5720 (sha256
5721 (base32 "02v190pb802vck7di39jyf5prvmfsgcxln8mgwsls2b4clx9da97"))))
5722 (build-system emacs-build-system)
5723 (home-page "https://github.com/oantolin/icomplete-vertical")
5724 (synopsis "Display Icomplete candidates vertically")
5725 (description
5726 "This package defines a global minor mode to display Icomplete
5727 completion candidates vertically.")
5728 (license license:gpl3+)))
5729
5730 (define-public emacs-handle
5731 (let ((commit "51c050bc1c6e5caf0eb47ecd985daea1db7241ab")
5732 (revision "2"))
5733 (package
5734 (name "emacs-handle")
5735 (version (git-version "0.1" revision commit))
5736 (source
5737 (origin
5738 (method git-fetch)
5739 (uri (git-reference
5740 (url "https://gitlab.com/jjzmajic/handle.git")
5741 (commit commit)))
5742 (file-name (git-file-name name version))
5743 (sha256
5744 (base32 "14f15qzfmwdslml4rv37zb5d1lsjf0jibriz636hb7q7knx1n4sg"))))
5745 (build-system emacs-build-system)
5746 (propagated-inputs
5747 `(("emacs-parent-mode" ,emacs-parent-mode)))
5748 (home-page "https://gitlab.com/jjzmajic/handle")
5749 (synopsis "Handle generic functions across related major modes")
5750 (description "This package provides generic functions that specialize on
5751 major modes and intended purpose rather than on arguments. Different
5752 callables for tasks like expression evaluation, definition-jumping, and more
5753 can now be grouped accordingly and tried in sequence until one of them
5754 succeeds.")
5755 (license license:gpl3+))))
5756
5757 (define-public emacs-nswbuff
5758 (package
5759 (name "emacs-nswbuff")
5760 (version "1.2.1")
5761 (source
5762 (origin
5763 (method git-fetch)
5764 (uri (git-reference
5765 (url "https://github.com/joostkremers/nswbuff")
5766 (commit version)))
5767 (file-name (git-file-name name version))
5768 (sha256
5769 (base32 "1sswhr52rp8c4v4fv30sww1gadbdrlk3l35j8xmqfw6hbgzxb5dn"))))
5770 (build-system emacs-build-system)
5771 (home-page "https://github.com/joostkremers/nswbuff")
5772 (synopsis "Quickly switch between buffers")
5773 (description "This package allows for navigating between buffers within
5774 a customizable list.")
5775 (license license:gpl3+)))
5776
5777 (define-public emacs-phi-search
5778 (let ((commit "9a089b8271cb1cff9640848850298c9ec855286c")
5779 (revision "1"))
5780 (package
5781 (name "emacs-phi-search")
5782 (version (git-version "20160630" revision commit))
5783 (source
5784 (origin
5785 (method git-fetch)
5786 (uri (git-reference
5787 (url "https://github.com/zk-phi/phi-search")
5788 (commit commit)))
5789 (file-name (git-file-name name version))
5790 (sha256
5791 (base32 "1gr5plcbrfdc4pglfj905s89hf8x0kc083h30wcnd81bnw9jwz1x"))))
5792 (build-system emacs-build-system)
5793 (home-page "https://github.com/zk-phi/phi-search")
5794 (synopsis "Interactive search compatible with @code{multiple-cursors}")
5795 (description "This package can be used with @code{multiple-cursors} to
5796 provide an incremental search that moves all fake cursors in sync.")
5797 (license license:gpl2+))))
5798
5799 (define-public emacs-phi-search-mc
5800 (let ((commit "7aa671910f766437089aec26c3aa7814222d1356")
5801 (revision "1"))
5802 (package
5803 (name "emacs-phi-search-mc")
5804 (version (git-version "2.2.1" revision commit))
5805 (source
5806 (origin
5807 (method git-fetch)
5808 (uri (git-reference
5809 (url "https://github.com/knu/phi-search-mc.el")
5810 (commit commit)))
5811 (file-name (git-file-name name version))
5812 (sha256
5813 (base32 "0wr86ad0yl52im6b9z0b9pzmhcn39qg5m9878yfv1nbxliw40lcd"))))
5814 (build-system emacs-build-system)
5815 (propagated-inputs
5816 `(("emacs-phi-search" ,emacs-phi-search)
5817 ("emacs-multiple-cursors" ,emacs-multiple-cursors)))
5818 (home-page "https://github.com/knu/phi-search-mc.el")
5819 (synopsis "Extend @code{phi-search} with additional
5820 @code{multiple-cursors} functionality")
5821 (description "This package provides further integration between
5822 @code{multiple-cursors} and @code{phi-search}, a package that allows for
5823 interactive searches to move multiple fake cursors.")
5824 (license license:bsd-2))))
5825
5826 (define-public emacs-multiple-cursors
5827 (package
5828 (name "emacs-multiple-cursors")
5829 (version "1.4.0")
5830 (source
5831 (origin
5832 (method git-fetch)
5833 (uri (git-reference
5834 (url "https://github.com/magnars/multiple-cursors.el")
5835 (commit version)))
5836 (file-name (git-file-name name version))
5837 (sha256
5838 (base32 "1ijgvzv5r44xqvz751fd5drbvrspapw6xwv47582w255j363r6ss"))))
5839 (build-system emacs-build-system)
5840 (home-page "https://github.com/magnars/multiple-cursors.el")
5841 (synopsis "Multiple cursors for Emacs")
5842 (description
5843 "This package adds support to Emacs for editing text with multiple
5844 simultaneous cursors.")
5845 (license license:gpl3+)))
5846
5847 (define-public emacs-multifiles
5848 ;; There is no tag and no "Version:" keyword. Using the latest release
5849 ;; instead.
5850 (let ((commit "dddfe64b8e1c1cd1f9ccc1f03405477fc0d53897")
5851 (revision "1"))
5852 (package
5853 (name "emacs-multifiles")
5854 (version (git-version "0" revision commit))
5855 (source
5856 (origin
5857 (method git-fetch)
5858 (uri (git-reference
5859 (url "https://github.com/magnars/multifiles.el")
5860 (commit commit)))
5861 (file-name (git-file-name name version))
5862 (sha256
5863 (base32 "065l04ylplng1vgykkbn2vnkcs3sn1k2cikx1ha2q8wmgx6bkvai"))))
5864 (build-system emacs-build-system)
5865 (propagated-inputs
5866 `(("emacs-dash" ,emacs-dash)))
5867 (home-page "https://github.com/magnars/multifiles.el")
5868 (synopsis "Edit multiple files in a single Emacs buffer")
5869 (description
5870 "This package allows one to view and edit parts of multiple files in
5871 one Emacs buffer.")
5872 (license license:gpl3+))))
5873
5874 (define-public emacs-mc-extras
5875 (let ((commit "053abc52181b8718559d7361a587bbb795faf164")
5876 (revision "1"))
5877 (package
5878 (name "emacs-mc-extras")
5879 (version (git-version "1.2.4" revision commit))
5880 (source
5881 (origin
5882 (method git-fetch)
5883 (uri (git-reference
5884 (url "https://github.com/knu/mc-extras.el")
5885 (commit commit)))
5886 (file-name (git-file-name name version))
5887 (sha256
5888 (base32 "16y48qrd20m20vypvys5jp4v4gc1qrqlkm75s1pk1r68i9zrw481"))))
5889 (build-system emacs-build-system)
5890 (propagated-inputs
5891 `(("emacs-multiple-cursors" ,emacs-multiple-cursors)))
5892 (home-page "https://github.com/knu/mc-extras.el")
5893 (synopsis "Extra functions for manipulating multiple cursors")
5894 (description
5895 "This package provides additional functions for
5896 @code{multiple-cursors}, including functions for marking s-expressions,
5897 comparing characters, removing cursors, and more.")
5898 (license license:bsd-2))))
5899
5900 (define-public emacs-typo
5901 (package
5902 (name "emacs-typo")
5903 (version "1.1")
5904 (home-page "https://github.com/jorgenschaefer/typoel")
5905 (source (origin
5906 (method git-fetch)
5907 (uri (git-reference
5908 (url home-page)
5909 (commit (string-append "v" version))))
5910 (file-name (git-file-name name version))
5911 (sha256
5912 (base32
5913 "1jhd4grch5iz12gyxwfbsgh4dmz5hj4bg4gnvphccg8dsnni05k2"))))
5914 (build-system emacs-build-system)
5915 (synopsis "Minor mode for typographic editing")
5916 (description
5917 "This package provides two Emacs modes, @code{typo-mode} and
5918 @code{typo-global-mode}. These modes automatically insert Unicode characters
5919 for quotation marks, dashes, and ellipses. For example, typing @kbd{\"}
5920 automatically inserts a Unicode opening or closing quotation mark, depending
5921 on context.")
5922 (license license:gpl3+)))
5923
5924 (define-public emacs-company-lsp
5925 (package
5926 (name "emacs-company-lsp")
5927 (version "2.1.0")
5928 (source (origin
5929 (method git-fetch)
5930 (uri (git-reference
5931 (url "https://github.com/tigersoldier/company-lsp")
5932 (commit version)))
5933 (file-name (git-file-name name version))
5934 (sha256
5935 (base32
5936 "1hy1x2w0yp5brm7714d1hziz3rpkywb5jp3yj78ibmi9ifny9vri"))))
5937 (build-system emacs-build-system)
5938 (propagated-inputs
5939 `(("emacs-dash" ,emacs-dash)
5940 ("emacs-lsp-mode" ,emacs-lsp-mode)
5941 ("emacs-company" ,emacs-company)
5942 ("emacs-s" ,emacs-s)
5943 ("emacs-dash" ,emacs-dash)))
5944 (native-inputs
5945 `(("emacs-buttercup" ,emacs-buttercup)))
5946 (arguments
5947 `(#:tests? #t
5948 #:test-command '("buttercup" "-L" ".")))
5949 (home-page "https://github.com/tigersoldier/company-lsp")
5950 (synopsis "Completion for @code{lsp-mode}")
5951 (description
5952 "This package provides completion features that are not possible with
5953 @code{lsp-mode} and @code{company-capf} alone, including support for trigger
5954 characters and asynchronous fetching of completion candidates.")
5955 (license license:gpl3+)))
5956
5957 (define-public emacs-scala-mode
5958 (package
5959 (name "emacs-scala-mode")
5960 (version "1.1.0")
5961 (source
5962 (origin
5963 (method git-fetch)
5964 (uri (git-reference
5965 (url "https://github.com/hvesalai/emacs-scala-mode")
5966 (commit (string-append "v" version))))
5967 (file-name (git-file-name name version))
5968 (sha256
5969 (base32 "1072lsin7dxadc0xyhy42wd0cw549axbbd4dy95wfmfcc1xbzjwv"))))
5970 (build-system emacs-build-system)
5971 (home-page "https://github.com/hvesalai/emacs-scala-mode")
5972 (synopsis "Emacs major mode for Scala")
5973 (description
5974 "This package provides basic Emacs support for the Scala language,
5975 including: local indenting of code, comments and multi-line strings, motion
5976 commands and highlighting.")
5977 ;; There are no copyright headers in the source code. The LICENSE file
5978 ;; indicates GPL3.
5979 (license license:gpl3)))
5980
5981 (define-public emacs-sbt-mode
5982 (package
5983 (name "emacs-sbt-mode")
5984 (version "2.0.0")
5985 (source
5986 (origin
5987 (method git-fetch)
5988 (uri (git-reference
5989 (url "https://github.com/hvesalai/emacs-sbt-mode")
5990 (commit (string-append "v" version))))
5991 (file-name (git-file-name name version))
5992 (sha256
5993 (base32 "0lv9ridzk9x6rkf7lj21srnszypyq04vqg05vl10zhpz1yqlnbjd"))))
5994 (build-system emacs-build-system)
5995 (home-page "https://github.com/hvesalai/emacs-sbt-mode")
5996 (synopsis "Basic functionality for interacting with sbt inside Emacs")
5997 (description
5998 "This mode provides basic functionality required for successfully
5999 interacting with sbt inside Emacs. The core functionality includes
6000 interacting with the sbt shell and Scala console, compiling code and
6001 navigation to errors.")
6002 (license license:gpl3+)))
6003
6004 (define-public emacs-scheme-complete
6005 ;; Upstream does not provide tags. The commit below corresponds to the
6006 ;; exact version update. Version is extracted from main file.
6007 (let ((commit "5c0a16684a3be7021d67067b2955f1c3e17a320a"))
6008 (package
6009 (name "emacs-scheme-complete")
6010 (version "0.9.9")
6011 (source
6012 (origin
6013 (method git-fetch)
6014 (uri (git-reference
6015 (url "https://github.com/ashinn/scheme-complete")
6016 (commit commit)))
6017 (file-name (git-file-name name version))
6018 (sha256
6019 (base32 "1smxr5bkzbfrjx21vhrj1wagmqx5yd92i997dbgs16iaqbzzr7cz"))))
6020 (build-system emacs-build-system)
6021 (home-page "https://github.com/ashinn/scheme-complete")
6022 (synopsis "Smart tab completion for Scheme in Emacs")
6023 (description
6024 "This file provides a single function, @code{scheme-smart-complete},
6025 which you can use for intelligent, context-sensitive completion for any Scheme
6026 implementation in Emacs. To use it just load this file and bind that function
6027 to a key in your preferred mode.")
6028 (license license:public-domain))))
6029
6030 (define-public emacs-scel
6031 (let ((version "20170629")
6032 (revision "1")
6033 (commit "aeea3ad4be9306d14c3a734a4ff54fee10ac135b"))
6034 (package
6035 (name "emacs-scel")
6036 (version (git-version version revision commit))
6037 (source
6038 (origin
6039 (method git-fetch)
6040 (uri (git-reference
6041 (url "https://github.com/supercollider/scel")
6042 (commit commit)))
6043 (file-name (git-file-name name version))
6044 (sha256
6045 (base32
6046 "0jvmzs1lsjyndqshhii2y4mnr3wghai26i3p75453zrpxpg0zvvw"))))
6047 (build-system emacs-build-system)
6048 (arguments
6049 `(#:modules ((guix build emacs-build-system)
6050 ((guix build cmake-build-system) #:prefix cmake:)
6051 (guix build utils))
6052 #:imported-modules (,@%emacs-build-system-modules
6053 (guix build cmake-build-system))
6054 #:phases
6055 (modify-phases %standard-phases
6056 (add-after 'unpack 'configure
6057 (lambda* (#:key outputs #:allow-other-keys)
6058 (substitute* "el/CMakeLists.txt"
6059 (("share/emacs/site-lisp/SuperCollider")
6060 (string-append
6061 "share/emacs/site-lisp")))
6062 ((assoc-ref cmake:%standard-phases 'configure)
6063 #:outputs outputs
6064 #:configure-flags '("-DSC_EL_BYTECOMPILE=OFF"))))
6065 (add-after 'add-source-to-load-path 'add-el-dir-to-emacs-load-path
6066 (lambda _
6067 (setenv "EMACSLOADPATH"
6068 (string-append (getcwd) "/el:" (getenv "EMACSLOADPATH")))
6069 #t))
6070 (replace 'install (assoc-ref cmake:%standard-phases 'install)))))
6071 (inputs
6072 `(("supercollider" ,supercollider)))
6073 (native-inputs
6074 `(("cmake" ,cmake-minimal)))
6075 (home-page "https://github.com/supercollider/scel")
6076 (synopsis "SuperCollider Emacs interface")
6077 (description "@code{emacs-scel} is an Emacs interface to SuperCollider.
6078 SuperCollider is a platform for audio synthesis and algorithmic composition.")
6079 (license license:gpl2+))))
6080
6081 (define-public emacs-company-auctex
6082 (let ((commit "48c42c58ce2f0e693301b0cb2d085055410c1b25")
6083 (revision "1"))
6084 (package
6085 (name "emacs-company-auctex")
6086 (version (git-version "0" revision commit))
6087 (source (origin
6088 (method git-fetch)
6089 (uri (git-reference
6090 (url "https://github.com/alexeyr/company-auctex")
6091 (commit commit)))
6092 (file-name (git-file-name name version))
6093 (sha256
6094 (base32
6095 "10qn7frn5wcmrlci3v6iliqzj7r9dls87h9zp3xkgrgn4bqprfp8"))))
6096 (build-system emacs-build-system)
6097 (propagated-inputs
6098 `(("emacs-yasnippet" ,emacs-yasnippet)
6099 ("emacs-auctex" ,emacs-auctex)
6100 ("emacs-company" ,emacs-company)))
6101 (home-page "https://github.com/alexeyr/company-auctex/")
6102 (synopsis "Completion for @code{AUCTeX}")
6103 (description
6104 "This package provides a group of backends permitting auto-completion
6105 for @code{AUCTeX}.")
6106 (license license:gpl3+))))
6107
6108 (define-public emacs-mit-scheme-doc
6109 (package
6110 (name "emacs-mit-scheme-doc")
6111 (version "20140203")
6112 (source
6113 (origin
6114 (modules '((guix build utils)))
6115 (snippet
6116 ;; keep only file of interest
6117 '(begin
6118 (for-each delete-file '("dot-emacs.el" "Makefile"))
6119 (install-file "6.945-config/mit-scheme-doc.el" ".")
6120 (delete-file-recursively "6.945-config")
6121 #t))
6122 (file-name (string-append name "-" version ".tar.bz2"))
6123 (method url-fetch)
6124 (uri (string-append "http://groups.csail.mit.edu/mac/users/gjs/"
6125 "6.945/dont-panic/emacs-basic-config.tar.bz2"))
6126 (sha256
6127 (base32
6128 "0dqidg2bd66pawqfarvwca93w5gqf9mikn1k2a2rmd9ymfjpziq1"))))
6129 (build-system emacs-build-system)
6130 (inputs `(("mit-scheme" ,mit-scheme)))
6131 (arguments
6132 `(#:phases
6133 (modify-phases %standard-phases
6134 (add-after 'unpack 'configure-doc
6135 (lambda* (#:key inputs #:allow-other-keys)
6136 (let* ((mit-scheme-dir (assoc-ref inputs "mit-scheme"))
6137 (doc-dir (string-append mit-scheme-dir "/share/doc/"
6138 "mit-scheme-"
6139 ,(package-version mit-scheme))))
6140 (substitute* "mit-scheme-doc.el"
6141 (("http://www\\.gnu\\.org/software/mit-scheme/documentation/mit-scheme-ref/")
6142 (string-append "file:" doc-dir "/mit-scheme-ref/")))))))))
6143 (home-page "https://groups.csail.mit.edu/mac/users/gjs/6.945/dont-panic/")
6144 (synopsis "MIT-Scheme documentation lookup for Emacs")
6145 (description
6146 "This package provides a set of Emacs functions to search definitions of
6147 identifiers in the MIT-Scheme documentation.")
6148 (license license:gpl2+)))
6149
6150 (define-public emacs-constants
6151 (package
6152 (name "emacs-constants")
6153 (version "2.6")
6154 (home-page "https://staff.fnwi.uva.nl/c.dominik/Tools/constants")
6155 (source
6156 (origin
6157 (method git-fetch)
6158 (uri (git-reference
6159 (url "https://github.com/fedeinthemix/emacs-constants")
6160 (commit (string-append "v" version))))
6161 (file-name (git-file-name name version))
6162 (sha256
6163 (base32 "0f5sh6b45a8p9kancjp9jk44ws8ww6x50a0i6zgyyvr7dbvii1a0"))))
6164 (build-system emacs-build-system)
6165 (synopsis "Enter definition of constants into an Emacs buffer")
6166 (description
6167 "This package provides functions for inserting the definition of natural
6168 constants and units into an Emacs buffer.")
6169 (license license:gpl2+)))
6170
6171 (define-public emacs-tagedit
6172 (package
6173 (name "emacs-tagedit")
6174 (version "1.4.0")
6175 (source
6176 (origin
6177 (method git-fetch)
6178 (uri (git-reference
6179 (url "https://github.com/magnars/tagedit")
6180 (commit version)))
6181 (file-name (git-file-name name version))
6182 (sha256
6183 (base32 "0kq40g46s8kgiafrhdq99h79rz9h5fvgz59k7ralmf86bl4sdmdb"))))
6184 (build-system emacs-build-system)
6185 (propagated-inputs
6186 `(("emacs-s" ,emacs-s)
6187 ("emacs-dash" ,emacs-dash)))
6188 (home-page "https://github.com/magnars/tagedit")
6189 (synopsis "Some paredit-like features for html-mode")
6190 (description
6191 "This package provides a collection of paredit-like functions for editing
6192 in @code{html-mode}.")
6193 (license license:gpl3+)))
6194
6195 (define-public emacs-slime
6196 (package
6197 (name "emacs-slime")
6198 (version "2.26.1")
6199 (source
6200 (origin
6201 (method git-fetch)
6202 (uri (git-reference
6203 (url "https://github.com/slime/slime")
6204 (commit (string-append "v" version))))
6205 (file-name (git-file-name name version))
6206 (sha256
6207 (base32 "1a25ixb7q4svqabxnhwkk43v47mbsh13qwm7qlazkd3zkr8j3cli"))))
6208 (build-system emacs-build-system)
6209 (native-inputs
6210 `(("texinfo" ,texinfo)))
6211 (arguments
6212 `(#:include '("\\.el$" "\\.lisp$" "\\.asd$" "contrib")
6213 #:exclude '("^slime-tests.el" "^contrib/test/"
6214 "^contrib/Makefile$" "^contrib/README.md$")
6215 #:phases
6216 (modify-phases %standard-phases
6217 (add-after 'unpack 'make-git-checkout-writable
6218 (lambda _
6219 (for-each make-file-writable (find-files "."))
6220 #t))
6221 (add-before 'install 'configure
6222 (lambda* _
6223 (emacs-substitute-variables "slime.el"
6224 ("inferior-lisp-program" "sbcl"))
6225 #t))
6226 (add-before 'install 'install-doc
6227 (lambda* (#:key outputs #:allow-other-keys)
6228 (let* ((out (assoc-ref outputs "out"))
6229 (info-dir (string-append out "/share/info"))
6230 (doc-dir (string-append out "/share/doc/"
6231 ,name "-" ,version))
6232 (doc-files '("doc/slime-refcard.pdf"
6233 "README.md" "NEWS" "PROBLEMS"
6234 "CONTRIBUTING.md")))
6235 (with-directory-excursion "doc"
6236 (substitute* "Makefile"
6237 (("infodir=/usr/local/info")
6238 (string-append "infodir=" info-dir)))
6239 (invoke "make" "html/index.html")
6240 (invoke "make" "slime.info")
6241 (install-file "slime.info" info-dir)
6242 (copy-recursively "html" (string-append doc-dir "/html")))
6243 (for-each (lambda (f)
6244 (install-file f doc-dir)
6245 (delete-file f))
6246 doc-files)
6247 (delete-file-recursively "doc")
6248 #t))))))
6249 (home-page "https://github.com/slime/slime")
6250 (synopsis "Superior Lisp Interaction Mode for Emacs")
6251 (description
6252 "SLIME extends Emacs with support for interactive programming in
6253 Common Lisp. The features are centered around @command{slime-mode},
6254 an Emacs minor mode that complements the standard @command{lisp-mode}.
6255 While lisp-mode supports editing Lisp source files, @command{slime-mode}
6256 adds support for interacting with a running Common Lisp process
6257 for compilation, debugging, documentation lookup, and so on.")
6258 (license (list license:gpl2+ license:public-domain))))
6259
6260 (define-public emacs-popup
6261 (package
6262 (name "emacs-popup")
6263 (version "0.5.8")
6264 (source
6265 (origin
6266 (method git-fetch)
6267 (uri (git-reference
6268 (url "https://github.com/auto-complete/popup-el")
6269 (commit (string-append "v" version))))
6270 (file-name (git-file-name name version))
6271 (sha256
6272 (base32 "0qrsz4z9q2bfq9xv4n94mvyslm232v2ql9r1fjycx7rnmpqggiwl"))))
6273 (build-system emacs-build-system)
6274 (home-page "https://github.com/auto-complete/popup-el")
6275 (synopsis "Visual Popup User Interface for Emacs")
6276 (description
6277 "Popup.el is a visual popup user interface library for Emacs.
6278 This provides a basic API and common UI widgets such as popup tooltips
6279 and popup menus.")
6280 (license license:gpl3+)))
6281
6282 (define-public emacs-python-black
6283 (package
6284 (name "emacs-python-black")
6285 (version "1.0.0")
6286 (source
6287 (origin
6288 (method git-fetch)
6289 (uri (git-reference
6290 (url "https://github.com/wbolster/emacs-python-black")
6291 (commit version)))
6292 (file-name (git-file-name name version))
6293 (sha256
6294 (base32
6295 "0fjnd85nlkck156dj6cahk8chhgkbgl2kwywqzi8bl4yj700m4dk"))))
6296 (build-system emacs-build-system)
6297 (propagated-inputs
6298 `(("emacs-dash" ,emacs-dash)
6299 ("emacs-reformatter" ,emacs-reformatter)
6300 ("python-black-macchiato" ,python-black-macchiato)))
6301 (arguments `(#:tests? #f))
6302 (home-page "https://github.com/wbolster/emacs-python-black")
6303 (synopsis "Reformat Python code via @code{python-black}")
6304 (description
6305 "This package makes it easy to reformat Python code using
6306 @code{python-black} and @code{python-black-macchiato} for entire and partial
6307 buffers, respectively.")
6308 (license license:bsd-3)))
6309
6310 (define-public emacs-py-isort
6311 (package
6312 (name "emacs-py-isort")
6313 (version "2016.1")
6314 (source
6315 (origin
6316 (method git-fetch)
6317 (uri (git-reference
6318 (url "https://github.com/paetzke/py-isort.el")
6319 (commit (string-append "v" version))))
6320 (file-name (git-file-name name version))
6321 (sha256
6322 (base32 "08i55gv392wc12x8v3dca0dmz8a8p9ljsqhyajsb6qv1k120wqhx"))))
6323 (build-system emacs-build-system)
6324 (arguments
6325 `(#:tests? #f)) ;tests fail with "emacs: standard input is not a tty"
6326 (propagated-inputs
6327 `(("python-isort" ,python-isort)))
6328 (home-page "https://github.com/paetzke/py-isort.el")
6329 (synopsis "Sort the imports in Python buffers")
6330 (description
6331 "This package provides commands and a minor mode to sort Python imports
6332 using @code{python-isort}.")
6333 (license license:gpl3+)))
6334
6335 (define-public emacs-python-environment
6336 (package
6337 (name "emacs-python-environment")
6338 (version "0.0.2")
6339 (source
6340 (origin
6341 (method git-fetch)
6342 (uri (git-reference
6343 (url "https://github.com/tkf/emacs-python-environment/")
6344 (commit version)))
6345 (file-name (git-file-name name version))
6346 (sha256
6347 (base32 "0q6bib9nr6xiq6npzbngyfcjk87yyvwzq1zirr3z1h5wadm34lsk"))))
6348 (build-system emacs-build-system)
6349 (propagated-inputs
6350 `(("emacs-deferred" ,emacs-deferred)))
6351 (home-page "https://github.com/tkf/emacs-python-environment")
6352 (synopsis "Provides a @code{virtualenv} API in Emacs Lisp")
6353 (description
6354 "This package permits automated installation of tools written in Python.")
6355 (license license:gpl3+)))
6356
6357 (define-public emacs-jedi
6358 (package
6359 (name "emacs-jedi")
6360 (version "0.2.8")
6361 (source (origin
6362 (method git-fetch)
6363 (uri (git-reference
6364 (url "https://github.com/tkf/emacs-jedi/")
6365 (commit (string-append "v" version))))
6366 (file-name (git-file-name name version))
6367 (sha256
6368 (base32
6369 "1bckxppfzd5gwn0aw4h86igb7igal9axqncq7j8zmflg7zppncf1"))))
6370 (build-system emacs-build-system)
6371 (native-inputs
6372 `(("emacs-mocker" ,emacs-mocker)))
6373 (propagated-inputs
6374 `(("emacs-auto-complete" ,emacs-auto-complete)
6375 ("emacs-python-environment" ,emacs-python-environment)
6376 ("emacs-epc" ,emacs-epc)))
6377 (home-page "https://github.com/tkf/emacs-jedi")
6378 (synopsis "Provides Python completion in Emacs")
6379 (description
6380 "This package provides completion in Python buffers and also helps find
6381 the locations of docstrings, arguments, and functions.")
6382 (license license:gpl3+)))
6383
6384 (define-public emacs-company-jedi
6385 (package
6386 (name "emacs-company-jedi")
6387 (version "0.04")
6388 (source (origin
6389 (method git-fetch)
6390 (uri (git-reference
6391 (url "https://github.com/syohex/emacs-company-jedi")
6392 (commit version)))
6393 (file-name (git-file-name name version))
6394 (sha256
6395 (base32
6396 "1ihqapp4dv92794rsgyq0rmhwika60cmradqd4bn9b72ss6plxs1"))))
6397 (build-system emacs-build-system)
6398 (propagated-inputs
6399 `(("emacs-jedi" ,emacs-jedi)
6400 ("emacs-company" ,emacs-company)))
6401 (home-page "https://github.com/syohex/emacs-company-jedi")
6402 (synopsis "Provides Python completion in @code{company-mode}")
6403 (description
6404 "This package provides a Company backend for Python.")
6405 (license license:gpl3+)))
6406
6407 (define-public emacs-puppet-mode
6408 (let ((commit "b3ed5057166a4f49dfa9be638523a348b55a2fd2")
6409 (revision "1"))
6410 (package
6411 (name "emacs-puppet-mode")
6412 ;; The last release, 0.3 was several years ago, and there have been many
6413 ;; commits since
6414 (version (git-version "0.3" revision commit))
6415 (source
6416 (origin
6417 (method url-fetch)
6418 (uri (string-append
6419 "https://raw.githubusercontent.com/voxpupuli/puppet-mode/"
6420 commit "/puppet-mode.el"))
6421 (sha256
6422 (base32
6423 "1indycxawsl0p2aqqg754f6735q3cmah9vd886rpn0ncc3ipi1xm"))))
6424 (build-system emacs-build-system)
6425 (home-page "https://github.com/voxpupuli/puppet-mode")
6426 (synopsis "Emacs major mode for the Puppet configuration language")
6427 (description
6428 "This package provides support for the Puppet configuration language,
6429 including syntax highlighting, indentation of expressions and statements,
6430 linting of manifests and integration with Puppet Debugger.")
6431 ;; Also incorporates work covered by the Apache License, Version 2.0
6432 (license license:gpl3+))))
6433
6434 (define-public emacs-god-mode
6435 (package
6436 (name "emacs-god-mode")
6437 (version "2.17.0")
6438 (source
6439 (origin
6440 (method git-fetch)
6441 (uri (git-reference
6442 (url "https://github.com/chrisdone/god-mode")
6443 (commit version)))
6444 (file-name (git-file-name name version))
6445 (sha256
6446 (base32
6447 "1d2nrj35fzhnycchi0b7m5mbk5fyq7bgpbkkvc5xzqafclrsnapi"))))
6448 (build-system emacs-build-system)
6449 (home-page "https://github.com/chrisdone/god-mode")
6450 (synopsis "Minor mode for entering commands without modifier keys")
6451 (description
6452 "This package provides a global minor mode for entering Emacs commands
6453 without modifier keys. It's similar to Vim's separation of commands and
6454 insertion mode. When enabled all keys are implicitly prefixed with
6455 @samp{C-} (among other helpful shortcuts).")
6456 (license license:gpl3+)))
6457
6458 (define-public emacs-jinja2-mode
6459 (package
6460 (name "emacs-jinja2-mode")
6461 (version "0.2")
6462 (source
6463 (origin
6464 (method git-fetch)
6465 (uri (git-reference
6466 (url "https://github.com/paradoxxxzero/jinja2-mode")
6467 (commit (string-append "v" version))))
6468 (file-name (git-file-name name version))
6469 (sha256
6470 (base32 "0l26wcy496k6xk7q5sf905xir0p73ziy6c44is77854lv3y0z381"))))
6471 (build-system emacs-build-system)
6472 (home-page "https://github.com/paradoxxxzero/jinja2-mode")
6473 (synopsis "Major mode for jinja2")
6474 (description
6475 "Emacs major mode for jinja2 with: syntax highlighting,
6476 sgml/html integration, and indentation (working with sgml).")
6477 (license license:gpl3+)))
6478
6479 (define-public emacs-company-cabal
6480 ;; The latest version is 0.3.0, but no release has been provided after 0.2.1.
6481 (let ((commit "62112a7259e24bd6c08885629a185afe512b7d3d")
6482 (revision "1"))
6483 (package
6484 (name "emacs-company-cabal")
6485 (version (git-version "0.3.0" revision commit))
6486 (source (origin
6487 (method git-fetch)
6488 (uri (git-reference
6489 (url "https://github.com/iquiw/company-cabal/")
6490 (commit commit)))
6491 (file-name (git-file-name name version))
6492 (sha256
6493 (base32
6494 "1gf45xwjzdm8i4q6c6khk4dbg1mmp2r0awz2sjr4dcr2dbd1n7mg"))))
6495 (build-system emacs-build-system)
6496 (propagated-inputs
6497 `(("emacs-company" ,emacs-company)))
6498 (arguments
6499 `(#:include (cons "^tools\\/" %default-include)))
6500 (home-page "https://github.com/iquiw/company-cabal/")
6501 (synopsis "Company completion for Haskell Cabal files")
6502 (description
6503 "This package allows for completion of field names, section names,
6504 field values, and more within @code{haskell-cabal-mode}.")
6505 (license license:gpl3+))))
6506
6507 (define-public emacs-rfcview
6508 (package
6509 (name "emacs-rfcview")
6510 (version "0.13")
6511 (home-page "http://www.loveshack.ukfsn.org/emacs")
6512 (source (origin
6513 (method url-fetch)
6514 (uri "http://www.loveshack.ukfsn.org/emacs/rfcview.el")
6515 (sha256
6516 (base32
6517 "0ympj5rxig383zl2jf0pzdsa80nnq0dpvjiriq0ivfi98fj7kxbz"))))
6518 (build-system emacs-build-system)
6519 (synopsis "Prettify Request for Comments (RFC) documents")
6520 (description "The Internet Engineering Task Force (IETF) and the Internet
6521 Society (ISOC) publish various Internet-related protocols and specifications
6522 as \"Request for Comments\" (RFC) documents and Internet Standard (STD)
6523 documents. RFCs and STDs are published in a simple text form. This package
6524 provides an Emacs major mode, rfcview-mode, which makes it more pleasant to
6525 read these documents in Emacs. It prettifies the text and adds
6526 hyperlinks/menus for easier navigation. It also provides functions for
6527 browsing the index of RFC documents and fetching them from remote servers or
6528 local directories.")
6529 (license license:gpl3+)))
6530
6531 (define-public emacs-ffap-rfc-space
6532 (package
6533 (name "emacs-ffap-rfc-space")
6534 (version "12")
6535 (home-page "https://user42.tuxfamily.org/ffap-rfc-space/index.html")
6536 (source (origin
6537 (method url-fetch)
6538 (uri "http://download.tuxfamily.org/user42/ffap-rfc-space.el")
6539 (sha256
6540 (base32
6541 "1iv61dv57a73mdps7rn6zmgz7nqh14v0ninidyrasy45b1nv6gck"))))
6542 (build-system emacs-build-system)
6543 (synopsis "Make ffap recognize an RFC with a space before its number")
6544 (description "The Internet Engineering Task Force (IETF) and the
6545 Internet Society (ISOC) publish various Internet-related protocols and
6546 specifications as \"Request for Comments\" (RFC) documents. The
6547 built-in Emacs module \"ffap\" (Find File at Point) has the ability to
6548 recognize names at point which look like \"RFC1234\" and \"RFC-1234\"
6549 and load the appropriate RFC from a remote server. However, it fails
6550 to recognize a name like \"RFC 1234\". This package enhances ffap so
6551 that it correctly finds RFCs even when a space appears before the
6552 number.")
6553 (license license:gpl3+)))
6554
6555 (define-public emacs-feature-mode
6556 (let ((version "20190801")
6557 (revision "1")
6558 (commit "11ae1671629bfedaa553c7b819676d64eb320992"))
6559 (package
6560 (name "emacs-feature-mode")
6561 (version (git-version version revision commit))
6562 (source (origin
6563 (method git-fetch)
6564 (uri (git-reference
6565 (url "https://github.com/michaelklishin/cucumber.el")
6566 (commit commit)))
6567 (file-name (git-file-name name version))
6568 (sha256
6569 (base32
6570 "0yd4gkxz9xcbgibfgr8apsid3f83nmg5jgqk5nql0linj5gymc28"))))
6571 (build-system emacs-build-system)
6572 (arguments
6573 `(#:include (cons* "^features\\/" "snippets\\/" "^support\\/"
6574 %default-include)))
6575 (home-page "https://github.com/michaelklishin/cucumber.el/")
6576 (synopsis "Emacs mode for editing Gherkin plain text user stories")
6577 (description "Major mode for editing Gherkin (popularized by the
6578 Cucumber tool) user stories. Also known by the name @code{cucumber.el}.")
6579 (license license:gpl2+))))
6580
6581 (define-public emacs-org-bullets
6582 (package
6583 (name "emacs-org-bullets")
6584 (version "0.2.4")
6585 (source
6586 (origin
6587 (method git-fetch)
6588 (uri (git-reference
6589 (url "https://github.com/sabof/org-bullets")
6590 (commit version)))
6591 (file-name (git-file-name name version))
6592 (sha256
6593 (base32 "10nr4sjffnqbllv6gmak6pviyynrb7pi5nvrq331h5alm3xcpq0w"))))
6594 (build-system emacs-build-system)
6595 (home-page "https://github.com/sabof/org-bullets")
6596 (synopsis "Show bullets in org-mode as UTF-8 characters")
6597 (description
6598 "This package provides an Emacs minor mode causing bullets in
6599 @code{org-mode} to be rendered as UTF-8 characters.")
6600 (license license:gpl3+)))
6601
6602 (define-public emacs-org-appear
6603 (let ((commit "19ea96e6e2ce01b8583b25a6e5579f1be207a119")
6604 (revision "1"))
6605 (package
6606 (name "emacs-org-appear")
6607 (version (git-version "0.0.1" revision commit)) ;no upstream release
6608 (source (origin
6609 (method git-fetch)
6610 (uri (git-reference
6611 (url "https://github.com/awth13/org-appear")
6612 (commit commit)))
6613 (file-name (git-file-name name version))
6614 (sha256
6615 (base32
6616 "064kdb3z4zr9sa7qi5921cqh8vj226ifl8x1bkc59qd9a1p34ghd"))))
6617 (build-system emacs-build-system)
6618 (home-page "https://github.com/awth13/org-appear")
6619 (synopsis "Make invisible parts of Org fragments appear visible")
6620 (description "This package enables automatic visibility toggling of
6621 org-mode elements depending on cursor position. Hidden fragment parts appear
6622 when the cursor enters a fragment and disappear when it leaves.")
6623 (license license:expat))))
6624
6625 (define-public emacs-org-drill
6626 (package
6627 (name "emacs-org-drill")
6628 (version "2.7.0")
6629 (source
6630 (origin
6631 (method git-fetch)
6632 (uri (git-reference
6633 (url "https://gitlab.com/phillord/org-drill")
6634 (commit version)))
6635 (file-name (git-file-name name version))
6636 (sha256
6637 (base32 "13y302lyscdqrba1sfx60yf5ji2xi7fbsvjsjbw7hiz63kg6rccy"))))
6638 (build-system emacs-build-system)
6639 (propagated-inputs
6640 `(("emacs-org" ,emacs-org)
6641 ("emacs-persist" ,emacs-persist)))
6642 (home-page "https://gitlab.com/phillord/org-drill")
6643 (synopsis "Flash card memorization system using Org mode")
6644 (description
6645 "This package uses spaced repetition algorithms to conduct interactive
6646 drill sessions to aid in memorization. In these sessions you are shown flash
6647 cards created in Org mode.")
6648 (license license:gpl3+)))
6649
6650 (define-public emacs-anki-editor
6651 ;; Last release was in 2018.
6652 (let ((commit "546774a453ef4617b1bcb0d1626e415c67cc88df")
6653 (revision "0")
6654 (version "0.3.3"))
6655 (package
6656 (name "emacs-anki-editor")
6657 (version (git-version version revision commit))
6658 (source
6659 (origin
6660 (method git-fetch)
6661 (uri (git-reference
6662 (url "https://github.com/louietan/anki-editor")
6663 (commit commit)))
6664 (file-name (git-file-name name version))
6665 (sha256
6666 (base32 "1if610hq5j8rbjh1caw5bwbgnsn231awwxqbpwvrh966kdxzl4qf"))))
6667 (build-system emacs-build-system)
6668 (propagated-inputs
6669 `(("emacs-dash" ,emacs-dash)
6670 ("emacs-request" ,emacs-request)))
6671 (home-page "https://github.com/louietan/anki-editor")
6672 (synopsis "Minor mode for making Anki cards with Org mode")
6673 (description
6674 "This package is for people who use Anki as a spaced repetition system
6675 (SRS) but would like to make cards in Org mode.")
6676 (license license:gpl3+))))
6677
6678 (define-public emacs-org-mime
6679 (package
6680 (name "emacs-org-mime")
6681 (version "0.2.1")
6682 (source
6683 (origin
6684 (method git-fetch)
6685 (uri (git-reference
6686 (url "https://github.com/org-mime/org-mime")
6687 (commit version)))
6688 (file-name (git-file-name name version))
6689 (sha256
6690 (base32 "0vchyd80ybvr6317dwm50nxcgxfrpc0bz6259vnrh24p5sb8shbj"))))
6691 (build-system emacs-build-system)
6692 (home-page "https://github.com/org-mime/org-mime")
6693 (synopsis "Send HTML email using Org mode HTML export")
6694 (description
6695 "This program sends HTML email using Org-mode HTML export.
6696 This approximates a WYSiWYG HTML mail editor from within Emacs, and can be
6697 useful for sending tables, fontified source code, and inline images in
6698 email.")
6699 (license license:gpl3+)))
6700
6701 (define-public emacs-org-msg
6702 ;; No git tags. The commit below corresponds to the release of version 3.3.
6703 (let ((commit "89e746c0a864031eef940758230bc7263a6f2289"))
6704 (package
6705 (name "emacs-org-msg")
6706 (version "3.3")
6707 (source
6708 (origin
6709 (method git-fetch)
6710 (uri (git-reference
6711 (url "https://github.com/jeremy-compostella/org-msg")
6712 (commit commit)))
6713 (file-name (git-file-name name version))
6714 (sha256
6715 (base32 "15gd5zbxvdallyra9lmpb9i1r2mmwz0j0i0ra7j9imnbfiz3ln9r"))))
6716 (build-system emacs-build-system)
6717 (propagated-inputs
6718 `(("emacs-htmlize" ,emacs-htmlize)))
6719 (home-page "https://github.com/jeremy-compostella/org-msg")
6720 (synopsis "Mix Org mode and Message mode to compose emails")
6721 (description
6722 "OrgMsg is a GNU Emacs global minor mode mixing up Org mode and your
6723 Mail User Agent Mode (Message, mu4e, or Notmuch) to compose and reply to
6724 emails in a Outlook HTML friendly style.")
6725 (license license:gpl3+))))
6726
6727 (define-public emacs-org-superstar
6728 (package
6729 (name "emacs-org-superstar")
6730 (version "1.5.0")
6731 (source
6732 (origin
6733 (method git-fetch)
6734 (uri (git-reference
6735 (url "https://github.com/integral-dw/org-superstar-mode")
6736 (commit (string-append "v" version))))
6737 (file-name (git-file-name name version))
6738 (sha256
6739 (base32 "12inin2p6pm6vbv3yc06fx343dsp0vp07fjb35w088akhikmqh2a"))))
6740 (build-system emacs-build-system)
6741 (propagated-inputs
6742 `(("emacs-org" ,emacs-org)))
6743 (home-page "https://github.com/integral-dw/org-superstar-mode")
6744 (synopsis "Prettify headings and plain lists in Org mode")
6745 (description "This package prettifies headings and plain lists in
6746 Org mode. It is a direct descendant of @code{org-bullets}, with most
6747 of the code base completely rewritten.
6748
6749 Currently, this package prettifies Org heading lines by:
6750 @itemize
6751 @item replacing trailing bullets by UTF-8 bullets,
6752 @item hiding leading stars, customizing their look or removing them from vision,
6753 @item applying a custom face to the header bullet,
6754 @item applying a custom face to the leading bullets,
6755 @item using double-bullets for inline tasks,
6756 @item (optional) using special bullets for TODO keywords.
6757 @end itemize
6758
6759 It also prettifies Org plain list bullets by:
6760 @itemize
6761 @item replacing each bullet type (*, + and -) with UTF-8 bullets,
6762 @item applying a custom face to item bullets.
6763 @end itemize
6764
6765 Features degrade gracefully when viewed from terminal.")
6766 (license license:gpl3+)))
6767
6768 (define-public emacs-org-pomodoro
6769 ;; Last release version was from 2016.
6770 (let ((commit "aa07c11318f91219336197e62c47bc7a3d090479")
6771 (revision "1"))
6772 (package
6773 (name "emacs-org-pomodoro")
6774 (version (git-version "2.1.0" revision commit))
6775 (source
6776 (origin
6777 (method git-fetch)
6778 (uri (git-reference
6779 (url "https://github.com/marcinkoziej/org-pomodoro")
6780 (commit commit)))
6781 (file-name (git-file-name name version))
6782 (sha256
6783 (base32 "0nbprh2nhnmb7ngp9ndr6zr37ashcsvpi5slv7a37x1dl7j6w1k4"))))
6784 (build-system emacs-build-system)
6785 (propagated-inputs
6786 `(("emacs-alert" ,emacs-alert)))
6787 (arguments
6788 `(#:include (cons "^resources\\/" %default-include)
6789 #:tests? #t
6790 #:test-command '("emacs" "--batch"
6791 "-l" "org-pomodoro-tests.el"
6792 "-f" "ert-run-tests-batch-and-exit")
6793 #:phases
6794 (modify-phases %standard-phases
6795 (add-before 'check 'make-tests-writable
6796 (lambda _
6797 (make-file-writable "org-pomodoro-tests.el")
6798 #t))
6799 (add-before 'check 'add-require
6800 (lambda _
6801 (emacs-batch-edit-file "org-pomodoro-tests.el"
6802 `(progn (progn (goto-char (point-min))
6803 (re-search-forward
6804 "ert-deftest")
6805 (beginning-of-line)
6806 (forward-line -1)
6807 (insert "(require 'org-pomodoro)"))
6808 (basic-save-buffer)))
6809 #t)))))
6810 (home-page "https://github.com/marcinkoziej/org-pomodoro")
6811 (synopsis "Pomodoro technique for org-mode")
6812 (description "@code{emacs-org-pomodoro} adds very basic support for
6813 Pomodoro technique in Emacs org-mode.
6814
6815 Run @code{M-x org-pomodoro} for the task at point or select one of the
6816 last tasks that you clocked time for. Each clocked-in pomodoro starts
6817 a timer of 25 minutes and after each pomodoro a break timer of 5
6818 minutes is started automatically. Every 4 breaks a long break is
6819 started with 20 minutes. All values are customizable.")
6820 (license license:gpl3+))))
6821
6822 (define-public emacs-org-sidebar
6823 (package
6824 (name "emacs-org-sidebar")
6825 (version "0.3.2")
6826 (source
6827 (origin
6828 (method git-fetch)
6829 (uri (git-reference
6830 (url "https://github.com/alphapapa/org-sidebar")
6831 (commit version)))
6832 (file-name (git-file-name name version))
6833 (sha256
6834 (base32 "1r8kp954ciin4j7j7j8ihdkryf5x09s3ryl7bi9h2j6xqc1ij4wq"))))
6835 (build-system emacs-build-system)
6836 (propagated-inputs
6837 `(("emacs-dash" ,emacs-dash)
6838 ("emacs-org-super-agenda" ,emacs-org-super-agenda)
6839 ("emacs-org" ,emacs-org)
6840 ("emacs-org-ql" ,emacs-org-ql)
6841 ("emacs-s" ,emacs-s)))
6842 (home-page "https://github.com/alphapapa/org-sidebar")
6843 (synopsis "Helpful sidebar for Org buffers")
6844 (description "This package provides a sidebar for Org buffers. At the
6845 top is a chronological list of scheduled and deadlined tasks in the current
6846 buffer (similar to the Org agenda ,but without all its features), and below
6847 that is a list of all other non-done to-do items. If the buffer is narrowed,
6848 the sidebar only shows items in the narrowed portion; this allows seeing an
6849 overview of tasks in a subtree.")
6850 (license license:gpl3+)))
6851
6852 (define-public emacs-org-trello
6853 (package
6854 (name "emacs-org-trello")
6855 (version "0.8.1")
6856 (source
6857 (origin
6858 (method git-fetch)
6859 (uri (git-reference
6860 (url "https://github.com/org-trello/org-trello")
6861 (commit version)))
6862 (file-name (git-file-name name version))
6863 (sha256
6864 (base32
6865 "02gx3kv4mkij69ln8x8wf9n28x17pbb4kv85v78d3lxph7ykqimc"))))
6866 (build-system emacs-build-system)
6867 (propagated-inputs
6868 `(("emacs-dash" ,emacs-dash)
6869 ("emacs-deferred" ,emacs-deferred)
6870 ("emacs-f" ,emacs-f)
6871 ("emacs-helm" ,emacs-helm)
6872 ("emacs-request" ,emacs-request)
6873 ("emacs-s" ,emacs-s)))
6874 (home-page "https://org-trello.github.io")
6875 (synopsis "Emacs minor mode for interacting with Trello")
6876 (description "This package provides an Emacs minor mode to extend
6877 @code{org-mode} with Trello abilities. Trello is an online project
6878 organizer.")
6879 (license license:gpl3+)))
6880
6881 (define-public emacs-org-tanglesync
6882 (let ((commit "d99181f173b4e55b4e835d99fcd415e62beb047f")
6883 (revision "2"))
6884 (package
6885 (name "emacs-org-tanglesync")
6886 (version (git-version "0.6" revision commit))
6887 (source
6888 (origin
6889 (method git-fetch)
6890 (uri (git-reference
6891 (url "https://github.com/mtekman/org-tanglesync.el")
6892 (commit commit)))
6893 (file-name (git-file-name name version))
6894 (sha256
6895 (base32 "0x94gy1bgfd1f3p9w2bfrqj11bwy9ql0cpi1gw6srpj7kykx0lml"))))
6896 (build-system emacs-build-system)
6897 (propagated-inputs
6898 `(("emacs-org" ,emacs-org)))
6899 (home-page "https://github.com/mtekman/org-tanglesync.el")
6900 (synopsis "Sync Org source blocks with tangled external files")
6901 (description "This package automatically pulls changes from source code
6902 to their corresponding tangled blocks.")
6903 (license license:gpl3+))))
6904
6905 (define-public emacs-company-flow
6906 (let ((commit "76ef585c70d2a3206c2eadf24ba61e59124c3a16")
6907 (revision "1"))
6908 (package
6909 (name "emacs-company-flow")
6910 (version (git-version "0.1.0" revision commit))
6911 (source (origin
6912 (method git-fetch)
6913 (uri (git-reference
6914 (url "https://github.com/aaronjensen/company-flow/")
6915 (commit commit)))
6916 (file-name (git-file-name name version))
6917 (sha256
6918 (base32
6919 "0zs9cblnbkxa0dxw4lyllmybqizxcdx96gv8jlhx20nrjpi78piw"))))
6920 (build-system emacs-build-system)
6921 (propagated-inputs
6922 `(("emacs-company" ,emacs-company)
6923 ("emacs-dash" ,emacs-dash)))
6924 (home-page "https://github.com/aaronjensen/company-flow/")
6925 (synopsis "Flow backend for @code{company-mode}")
6926 (description
6927 "This package provides completion for JavaScript files utilizing Flow.")
6928 (license license:gpl3+))))
6929
6930 (define-public emacs-habitica
6931 (let ((commit "c45c602ddf9d6cbb0e3baf5cb3e1b7ef90f2759d")
6932 (revision "1"))
6933 (package
6934 (name "emacs-habitica")
6935 (version (git-version "1.0" revision commit))
6936 (source
6937 (origin
6938 (method git-fetch)
6939 (uri (git-reference
6940 (url "https://github.com/abrochard/emacs-habitica")
6941 (commit commit)))
6942 (file-name (git-file-name name version))
6943 (sha256
6944 (base32
6945 "0wgnzn3z98bl28jgqi7xklw9fwx2wwgihj3mq0jb8ah4vn70d0j3"))))
6946 (build-system emacs-build-system)
6947 (home-page "https://github.com/abrochard/emacs-habitica")
6948 (synopsis "Emacs interface for Habitica")
6949 (description "Emacs extension for @uref{https://habitica.com/, Habitica},
6950 a RPG style habit tracker and todo list.")
6951 (license license:gpl3+))))
6952
6953 (define-public emacs-atom-one-dark-theme
6954 (let ((commit "1f1185bf667a38d3d0d180ce85fd4c131818aae2")
6955 (revision "0"))
6956 (package
6957 (name "emacs-atom-one-dark-theme")
6958 (version (git-version "0.4.0" revision commit))
6959 (source (origin
6960 (method git-fetch)
6961 (uri (git-reference
6962 (url "https://github.com/jonathanchu/atom-one-dark-theme")
6963 (commit commit)))
6964 (sha256
6965 (base32
6966 "1alma16hg3mfjly8a9s3mrswkjjx4lrpdnf43869hn2ibkn7zx9z"))
6967 (file-name (git-file-name name version))))
6968 (build-system emacs-build-system)
6969 (home-page "https://github.com/jonathanchu/atom-one-dark-theme")
6970 (synopsis "Atom One Dark color theme for Emacs")
6971 (description "An Emacs port of the Atom One Dark theme from Atom.io.")
6972 (license license:gpl3+))))
6973
6974 (define-public emacs-zenburn-theme
6975 (package
6976 (name "emacs-zenburn-theme")
6977 (version "2.7.0")
6978 (source
6979 (origin
6980 (method git-fetch)
6981 (uri (git-reference
6982 (url "https://github.com/bbatsov/zenburn-emacs")
6983 (commit (string-append "v" version))))
6984 (file-name (git-file-name name version))
6985 (sha256
6986 (base32 "1991s1gz2i3jchf0yvcsjjb5flwn13ifbnnfkqqrxxvy2imfh18q"))))
6987 (build-system emacs-build-system)
6988 (home-page "https://github.com/bbatsov/zenburn-emacs")
6989 (synopsis "Low contrast color theme for Emacs")
6990 (description
6991 "Zenburn theme is a port of the popular Vim Zenburn theme for Emacs.
6992 It is built on top of the custom theme support in Emacs 24 or later.")
6993 (license license:gpl3+)))
6994
6995 (define-public emacs-moe-theme-el
6996 (let ((commit "6e086d855d6bb446bbd1090742815589a81a915f")
6997 (version "1.0")
6998 (revision "1"))
6999 (package
7000 (name "emacs-moe-theme-el")
7001 (version (git-version version revision commit))
7002 (source
7003 (origin
7004 (method git-fetch)
7005 (uri (git-reference
7006 (url "https://github.com/kuanyui/moe-theme.el")
7007 (commit commit)))
7008 (file-name (git-file-name name version))
7009 (sha256
7010 (base32 "0xj4wfd7h4jqnr193pizm9frf6lmwjr0dsdv2l9mqh9k691z1dnc"))))
7011 (build-system emacs-build-system)
7012 (home-page "https://github.com/kuanyui/moe-theme.el")
7013 (synopsis "Anime-inspired color themes")
7014 (description
7015 "This package provides vibrant color schemes with light and dark
7016 variants.")
7017 (license license:gpl3+))))
7018
7019 (define-public emacs-solarized-theme
7020 (package
7021 (name "emacs-solarized-theme")
7022 (version "1.3.1")
7023 (source
7024 (origin
7025 (method git-fetch)
7026 (uri (git-reference
7027 (url "https://github.com/bbatsov/solarized-emacs/")
7028 (commit (string-append "v" version))))
7029 (file-name (git-file-name name version))
7030 (sha256
7031 (base32 "15ql8xcixgm7mbs7rsbybwszanqibq057j5b5ds89a31dw7zxf1g"))))
7032 (build-system emacs-build-system)
7033 (propagated-inputs
7034 `(("emacs-dash" ,emacs-dash)))
7035 (home-page "https://github.com/bbatsov/solarized-emacs")
7036 (synopsis "Port of the Solarized theme for Emacs")
7037 (description
7038 "Solarized for Emacs is a port of the Solarized theme for Vim. This
7039 package provides a light and a dark variant.")
7040 (license license:gpl3+)))
7041
7042 (define-public emacs-poet-theme
7043 (let ((commit "d84f7b259cc9b6ff8d442cf4c38bd6c7065ff8f4")
7044 (revision "0"))
7045 (package
7046 (name "emacs-poet-theme")
7047 (version (git-version "0" revision commit))
7048 (source
7049 (origin
7050 (method git-fetch)
7051 (uri (git-reference
7052 (url "https://github.com/kunalb/poet")
7053 (commit commit)))
7054 (file-name (git-file-name name version))
7055 (sha256
7056 (base32
7057 "0a84jdaj619mb59a46dmkk2sfs42rylqk9ryl1drgs8d3lia79mz"))))
7058 (build-system emacs-build-system)
7059 (home-page "https://github.com/kunalb/poet/")
7060 (synopsis "Emacs theme for prose")
7061 (description
7062 "Emacs has very good support for multiple fonts in a single file. Poet
7063 uses this support to make it much more convenient to write prose within Emacs,
7064 with particular attention paid to @code{org-mode} and @code{markdown-mode}.
7065 Code blocks, tables, etc are formatted in monospace text with the appropriate
7066 backgrounds.")
7067 (license license:expat))))
7068
7069 (define-public emacs-ahungry-theme
7070 (package
7071 (name "emacs-ahungry-theme")
7072 (version "1.10.0")
7073 (source
7074 (origin (method url-fetch)
7075 (uri (string-append "https://elpa.gnu.org/packages/ahungry-theme-"
7076 version ".tar"))
7077 (sha256
7078 (base32
7079 "14q5yw56n82qph09bk7wmj5b1snhh9w0nk5s1l7yn9ldg71xq6pm"))))
7080 (build-system emacs-build-system)
7081 (home-page "https://github.com/ahungry/color-theme-ahungry")
7082 (synopsis "Ahungry color theme for Emacs")
7083 (description "Ahungry theme for Emacs provides bright and bold colors.
7084 If you load it from a terminal, you will be able to make use of the
7085 transparent background. If you load it from a GUI, it will default to a
7086 dark background.")
7087 (license license:gpl3+)))
7088
7089 (define-public emacs-gruvbox-theme
7090 (package
7091 (name "emacs-gruvbox-theme")
7092 (version "1.28.0")
7093 (source (origin
7094 (method git-fetch)
7095 (uri (git-reference
7096 (url "https://github.com/greduan/emacs-theme-gruvbox")
7097 (commit version)))
7098 (file-name (git-file-name name version))
7099 (sha256
7100 (base32
7101 "00qq92gp1g55pzm97rh7k0dgxy44pxziridl8kqm4rbpi31r7k9p"))))
7102 (build-system emacs-build-system)
7103 (propagated-inputs
7104 `(("emacs-autothemer" ,emacs-autothemer)))
7105 (home-page "https://github.com/greduan/emacs-theme-gruvbox")
7106 (synopsis "Gruvbox is a retro groove color scheme ported from Vim")
7107 (description
7108 "Gruvbox is heavily inspired by badwolf, jellybeans and solarized.
7109
7110 Designed as a bright theme with pastel 'retro groove' colors and light/dark
7111 mode switching in the way of solarized. The main focus when developing gruvbox
7112 is to keep colors easily distinguishable, contrast enough and still pleasant
7113 for the eyes.")
7114 (license license:expat))) ; MIT license
7115
7116 (define-public emacs-spacegray-theme
7117 (let ((commit "9826265c2bceb2ebc1c5e16a45021da0253ace97")
7118 (revision "0"))
7119 (package
7120 (name "emacs-spacegray-theme")
7121 (version (git-version "0" revision commit))
7122 (source (origin
7123 (method git-fetch)
7124 (uri (git-reference
7125 (url "https://github.com/bruce/emacs-spacegray-theme")
7126 (commit commit)))
7127 (file-name (git-file-name name version))
7128 (sha256
7129 (base32
7130 "0aplwmm17ypbns5blc4rf5rr6dasj0zp5ibykpfl43fh4bd8z89n"))))
7131 (build-system emacs-build-system)
7132 (home-page "https://github.com/bruce/emacs-spacegray-theme")
7133 (synopsis "Port of Sublime Text's Spacegray theme for Emacs")
7134 (description
7135 "@code{spacegray-theme} is an Emacs port of the Spacegray theme from
7136 Sublime Text. It features a dark blue/gray background and soft blue, green,
7137 orange and red as accent colors.")
7138 (license license:expat)))) ; MIT license
7139
7140 (define-public emacs-2048-game
7141 (package
7142 (name "emacs-2048-game")
7143 (version "20151026.1233")
7144 (source
7145 (origin
7146 (method url-fetch)
7147 (uri (string-append "https://melpa.org/packages/2048-game-"
7148 version ".el"))
7149 (sha256
7150 (base32
7151 "0gy2pvz79whpavp4jmz8h9krzn7brmvv3diixi1d4w51pcdvaldd"))))
7152 (build-system emacs-build-system)
7153 (home-page "https://hg.sr.ht/~zck/game-2048")
7154 (synopsis "Implementation of the game 2048 in Emacs Lisp")
7155 (description
7156 "This program is an implementation of 2048 for Emacs.
7157 The goal of this game is to create a tile with value 2048. The size of the
7158 board and goal value can be customized.")
7159 (license license:gpl3+)))
7160
7161 (define-public emacs-chess
7162 (package
7163 (name "emacs-chess")
7164 (version "2.0.5")
7165 (source
7166 (origin
7167 (method url-fetch)
7168 (uri (string-append "https://elpa.gnu.org/packages/"
7169 "chess-" version ".tar"))
7170 (sha256
7171 (base32 "1a4iwjdh6k348df6qywjws9z9f862d62m0b2sz57z4xhywiyxpr7"))))
7172 (build-system emacs-build-system)
7173 (arguments
7174 `(#:phases
7175 (modify-phases %standard-phases
7176 (add-after 'install 'install-pieces
7177 (lambda* (#:key outputs #:allow-other-keys)
7178 (let* ((out (assoc-ref outputs "out"))
7179 (pieces
7180 (string-append out "/share/emacs/site-lisp/pieces")))
7181 (mkdir-p pieces)
7182 (copy-recursively "pieces" pieces)
7183 #t))))))
7184 (home-page "https://elpa.gnu.org/packages/chess.html")
7185 (synopsis "Play chess in GNU Emacs")
7186 (description
7187 "Chess is an Emacs Lisp library and several clients on top of the
7188 underlying library functionality for performing various activities related to
7189 the game of chess.")
7190 (license license:gpl3+)))
7191
7192 (define-public emacs-4clojure
7193 ;; There is no release. Base version is extracted from Version keyword in
7194 ;; the main file.
7195 (let ((commit "4eccf8c7d4341a36c269451838114b27836699f9")
7196 (revision "1"))
7197 (package
7198 (name "emacs-4clojure")
7199 (version (git-version "0.2.1" revision commit))
7200 (source
7201 (origin
7202 (method git-fetch)
7203 (uri (git-reference
7204 (url "https://github.com/emacsorphanage/4clojure")
7205 (commit commit)))
7206 (file-name (git-file-name name version))
7207 (sha256
7208 (base32 "19x653lzc1dxil4ix257hciidbdmbhaxhs6qhlkwi9ygjrlrgvnk"))))
7209 (build-system emacs-build-system)
7210 (propagated-inputs
7211 `(("emacs-request" ,emacs-request)))
7212 (home-page "https://github.com/emacsorphanage/4clojure/")
7213 (synopsis "Open and evaluate 4clojure questions in Emacs")
7214 (description "Emacs 4clojure interacts with
7215 @url{http://www.4clojure.com, 4clojure} problems. You can open a specific
7216 question and move to the next or previous one. You can also verify your
7217 answers.")
7218 (license license:gpl3+))))
7219
7220 (define-public emacs-base16-theme
7221 (package
7222 (name "emacs-base16-theme")
7223 (version "2.2")
7224 (source
7225 (origin
7226 (method git-fetch)
7227 (uri (git-reference
7228 (url "https://github.com/belak/base16-emacs")
7229 (commit version)))
7230 (file-name (git-file-name name version))
7231 (sha256
7232 (base32 "01w89g413s1da6rf94y1xnhw79cjy2bqb01yfjs58cy492cm0vr6"))))
7233 (build-system emacs-build-system)
7234 (home-page "https://github.com/belak/base16-emacs")
7235 (synopsis "Base16 color themes for Emacs")
7236 (description
7237 "Base16 provides carefully chosen syntax highlighting and a default set
7238 of sixteen colors suitable for a wide range of applications. Base16 is not a
7239 single theme but a set of guidelines with numerous implementations.")
7240 (license license:expat)))
7241
7242 (define-public emacs-solaire-mode
7243 (package
7244 (name "emacs-solaire-mode")
7245 (version "1.0.9")
7246 (source
7247 (origin
7248 (method git-fetch)
7249 (uri (git-reference
7250 (url "https://github.com/hlissner/emacs-solaire-mode")
7251 (commit (string-append "v" version))))
7252 (file-name (git-file-name name version))
7253 (sha256
7254 (base32 "011m4r7s6i9lgjymh7jgq5jwwrpz4vmpvp3c8d4ix96v5hi04kzg"))))
7255 (build-system emacs-build-system)
7256 (home-page "https://github.com/hlissner/emacs-solaire-mode")
7257 (synopsis "Change background of file-visiting buffers in Emacs")
7258 (description
7259 "@code{solaire-mode} is inspired by editors which visually distinguish
7260 code-editing windows from sidebars, popups, terminals, ecetera. It changes the
7261 background of file-visiting buffers (and certain aspects of the UI) to make
7262 them easier to distinguish from other, less important buffers.")
7263 (license license:expat)))
7264
7265 (define-public emacs-embark
7266 (package
7267 (name "emacs-embark")
7268 (version "0.10")
7269 (source
7270 (origin
7271 (method git-fetch)
7272 (uri (git-reference
7273 (url "https://github.com/oantolin/embark")
7274 (commit version)))
7275 (sha256
7276 (base32 "063hc0hganws11vjdk3ic0mxm9i0vpw6s7hzbgxvja0gjkdxjldz"))
7277 (file-name (git-file-name name version))))
7278 (build-system emacs-build-system)
7279 (propagated-inputs
7280 `(("emacs-avy" ,emacs-avy)
7281 ("emacs-consult" ,emacs-consult)))
7282 (home-page "https://github.com/oantolin/embark")
7283 (synopsis "Emacs mini-buffer actions rooted in keymaps")
7284 (description
7285 "This package provides a sort of right-click contextual menu for Emacs
7286 offering you relevant @emph{actions} to use on a @emph{target} determined by
7287 the context.
7288
7289 In the minibuffer, the target is the current best completion candidate. In
7290 the @code{*Completions*} buffer the target is the completion at point.
7291 n a regular buffer, the target is the region if active, or else the file,
7292 symbol or URL at point.
7293
7294 The type of actions offered depend on the type of the target. For files you
7295 get offered actions like deleting, copying, renaming, visiting in another
7296 window, running a shell command on the file, etc. For buffers the actions
7297 include switching to or killing the buffer. For package names the actions
7298 include installing, removing or visiting the homepage.")
7299 (license license:gpl3+)))
7300
7301 (define-public emacs-prescient
7302 (package
7303 (name "emacs-prescient")
7304 (version "5.1")
7305 (source
7306 (origin
7307 (method git-fetch)
7308 (uri (git-reference
7309 (url "https://github.com/raxod502/prescient.el")
7310 (commit (string-append "v" version))))
7311 (file-name (git-file-name name version))
7312 (sha256
7313 (base32 "0d6kbczkamhhcmc8bf01q6k1x0g7dwjihwllzsldgga3dclyh4ks"))))
7314 (build-system emacs-build-system)
7315 (propagated-inputs
7316 `(("emacs-company" ,emacs-company)
7317 ("emacs-ivy" ,emacs-ivy)
7318 ("emacs-selectrum" ,emacs-selectrum)))
7319 (home-page "https://github.com/raxod502/prescient.el/")
7320 (synopsis "Emacs library for sorting and filtering candidates")
7321 (description
7322 "Prescient is a library for sorting and filtering, as well as extensions
7323 for Ivy and Company that make use of the library.")
7324 (license license:expat)))
7325
7326 (define-public emacs-selectrum
7327 (package
7328 (name "emacs-selectrum")
7329 (version "3.1")
7330 (source
7331 (origin
7332 (method git-fetch)
7333 (uri (git-reference
7334 (url "https://github.com/raxod502/selectrum")
7335 (commit (string-append "v" version))))
7336 (file-name (git-file-name name version))
7337 (sha256
7338 (base32 "02jrki6vzyfyi1bbslki5pk2348flh9dz18jkc4y7p60bvbr52cb"))))
7339 (build-system emacs-build-system)
7340 (home-page "https://github.com/raxod502/selectrum/")
7341 (synopsis "Incremental narrowing in Emacs")
7342 (description "Selectrum is a solution for incremental narrowing in
7343 Emacs, replacing Helm, Ivy, and IDO. Its design philosophy is based
7344 on choosing the right abstractions and prioritizing consistency and
7345 predictability over special-cased improvements for particular cases.
7346 As such, Selectrum follows existing Emacs conventions where they exist
7347 and are reasonable, and it declines to implement features which have
7348 marginal benefit compared to the additional complexity of a new
7349 interface.")
7350 (license license:expat)))
7351
7352 (define-public emacs-orderless
7353 (package
7354 (name "emacs-orderless")
7355 (version "0.5")
7356 (source
7357 (origin
7358 (method git-fetch)
7359 (uri (git-reference
7360 (url "https://github.com/oantolin/orderless")
7361 (commit version)))
7362 (sha256
7363 (base32 "032lfwflkpaxbcxl4jf438vapswsdagipjczcn30sc4dfdh3p42c"))
7364 (file-name (git-file-name name version))))
7365 (build-system emacs-build-system)
7366 (home-page "https://github.com/oantolin/orderless")
7367 (synopsis "Emacs completion style that matches multiple regexps in any order")
7368 (description "This package provides an orderless completion style that
7369 divides the pattern into space-separated components, and matches candidates
7370 that match all of the components in any order. Each component can match in
7371 any one of several ways: literally, as a regexp, as an initialism, in the flex
7372 style, or as multiple word prefixes.")
7373 (license license:gpl3+)))
7374
7375 (define-public emacs-consult
7376 (package
7377 (name "emacs-consult")
7378 (version "0.6")
7379 (source
7380 (origin
7381 (method git-fetch)
7382 (uri (git-reference
7383 (url "https://github.com/minad/consult")
7384 (commit version)))
7385 (sha256
7386 (base32 "09n3q3dyi83s4fk4z7csnjicbxd69ws4zp4371c1lbxcvvq2fdnd"))
7387 (file-name (git-file-name name version))))
7388 (build-system emacs-build-system)
7389 (propagated-inputs
7390 `(("emacs-flycheck" ,emacs-flycheck)
7391 ("emacs-selectrum" ,emacs-selectrum)))
7392 (home-page "https://github.com/minad/consult")
7393 (synopsis "Consulting completing-read")
7394 (description "This package provides various handy commands based on the
7395 Emacs completion function completing-read, which allows to quickly select from a
7396 list of candidates.")
7397 (license license:gpl3+)))
7398
7399 (define-public emacs-marginalia
7400 (package
7401 (name "emacs-marginalia")
7402 (version "0.4")
7403 (source
7404 (origin
7405 (method git-fetch)
7406 (uri (git-reference
7407 (url "https://github.com/minad/marginalia")
7408 (commit version)))
7409 (file-name (git-file-name name version))
7410 (sha256
7411 (base32 "0piwzxp1zmwp876kyca0xcgyxgn8bn4wh5fnn88dkvdzi8mcgmkh"))))
7412 (build-system emacs-build-system)
7413 (home-page "https://github.com/minad/marginalia")
7414 (synopsis "Marginalia in the minibuffer completions")
7415 (description
7416 "This package provides Marginalia mode which adds marginalia to the
7417 minibuffer completions. Marginalia are marks or annotations placed at the
7418 margin of the page of a book or in this case helpful colorful annotations
7419 placed at the margin of the minibuffer for your completion candidates.")
7420 (license license:gpl3+)))
7421
7422 (define-public emacs-smartparens
7423 (package
7424 (name "emacs-smartparens")
7425 (version "1.11.0")
7426 (source
7427 (origin
7428 (method git-fetch)
7429 (uri (git-reference
7430 (url "https://github.com/Fuco1/smartparens")
7431 (commit version)))
7432 (file-name (git-file-name name version))
7433 (sha256
7434 (base32 "0zij2f2rjjym98w68jkp10n1ckpfprlkk217c3fg16hz5nq4vnm6"))))
7435 (build-system emacs-build-system)
7436 (propagated-inputs
7437 `(("emacs-dash" ,emacs-dash)
7438 ("emacs-markdown-mode" ,emacs-markdown-mode)))
7439 (home-page "https://github.com/Fuco1/smartparens")
7440 (synopsis "Paredit-like insertion, wrapping and navigation with user
7441 defined pairs")
7442 (description
7443 "Smartparens is a minor mode for Emacs that deals with parens pairs
7444 and tries to be smart about it. It started as a unification effort to
7445 combine functionality of several existing packages in a single,
7446 compatible and extensible way to deal with parentheses, delimiters, tags
7447 and the like. Some of these packages include autopair, textmate,
7448 wrap-region, electric-pair-mode, paredit and others. With the basic
7449 features found in other packages it also brings many improvements as
7450 well as completely new features.")
7451 (license license:gpl3+)))
7452
7453 (define-public emacs-highlight-symbol
7454 ;; We prefer a more recent commit that provides an option to squelch
7455 ;; echo-area alerts that can drown out useful information like eldoc
7456 ;; messages.
7457 (let ((commit "7a789c779648c55b16e43278e51be5898c121b3a")
7458 (version "1.3")
7459 (revision "1"))
7460 (package
7461 (name "emacs-highlight-symbol")
7462 (version (git-version version revision commit))
7463 (source
7464 (origin
7465 (method git-fetch)
7466 (uri (git-reference
7467 (url "https://github.com/nschum/highlight-symbol.el")
7468 (commit commit)))
7469 (file-name (git-file-name name version))
7470 (sha256
7471 (base32 "19cgyk0sh8nsmf3jbi92i8qsdx4l4yilfq5jj9zfdbj9p5gvwx96"))))
7472 (build-system emacs-build-system)
7473 (home-page "https://nschum.de/src/emacs/highlight-symbol/")
7474 (synopsis "Automatic and manual symbol highlighting for Emacs")
7475 (description
7476 "Use @code{highlight-symbol} to toggle highlighting of the symbol at
7477 point throughout the current buffer. Use @code{highlight-symbol-mode} to keep
7478 the symbol at point highlighted.
7479
7480 The functions @code{highlight-symbol-next}, @code{highlight-symbol-prev},
7481 @code{highlight-symbol-next-in-defun} and
7482 @code{highlight-symbol-prev-in-defun} allow for cycling through the locations
7483 of any symbol at point. Use @code{highlight-symbol-nav-mode} to enable key
7484 bindings @code{M-p} and @code{M-p} for navigation. When
7485 @code{highlight-symbol-on-navigation-p} is set, highlighting is triggered
7486 regardless of @code{highlight-symbol-idle-delay}.
7487
7488 @code{highlight-symbol-query-replace} can be used to replace the symbol. ")
7489 (license license:gpl2+))))
7490
7491 (define-public emacs-symbol-overlay
7492 (package
7493 (name "emacs-symbol-overlay")
7494 (version "4.2")
7495 (source
7496 (origin
7497 (method git-fetch)
7498 (uri (git-reference
7499 (url "https://github.com/wolray/symbol-overlay")
7500 (commit version)))
7501 (file-name (git-file-name name version))
7502 (sha256
7503 (base32 "10n0871xzycifyqp73xnbqmrgy60imlb26yhm3p6vfj3d84mg1b2"))))
7504 (build-system emacs-build-system)
7505 (home-page "https://github.com/wolray/symbol-overlay")
7506 (synopsis "Highlight symbols and perform various search operations on them")
7507 (description
7508 "This package provides functions for highlighting and navigating
7509 between symbols.")
7510 (license license:gpl3+)))
7511
7512 (define-public emacs-hl-todo
7513 (package
7514 (name "emacs-hl-todo")
7515 (version "3.1.2")
7516 (source (origin
7517 (method git-fetch)
7518 (uri (git-reference
7519 (url "https://github.com/tarsius/hl-todo")
7520 (commit (string-append "v" version))))
7521 (file-name (git-file-name name version))
7522 (sha256
7523 (base32
7524 "1i5mdmkbrxqx75grwl01pywbgl8pasr00mq6fidspp0aligsbg6w"))))
7525 (build-system emacs-build-system)
7526 (home-page "https://github.com/tarsius/hl-todo")
7527 (synopsis "Emacs mode to highlight TODO and similar keywords")
7528 (description
7529 "This package provides an Emacs mode to highlight TODO and similar
7530 keywords in comments and strings. This package also provides commands for
7531 moving to the next or previous keyword and to invoke @code{occur} with a
7532 regexp that matches all known keywords.")
7533 (license license:gpl3+)))
7534
7535 (define-public emacs-perspective
7536 (package
7537 (name "emacs-perspective")
7538 (version "2.14")
7539 (source
7540 (origin
7541 (method git-fetch)
7542 (uri (git-reference
7543 (url "https://github.com/nex3/perspective-el")
7544 (commit version)))
7545 (file-name (git-file-name name version))
7546 (sha256
7547 (base32 "04r5h5zs5r6s22p5ynhpr860r2r552z9pyf4kbabfg1gz9jag7yp"))))
7548 (build-system emacs-build-system)
7549 (arguments
7550 `(#:tests? #t
7551 #:test-command '("emacs" "-Q" "-batch" "-L" "."
7552 "-l" "test/test-perspective.el"
7553 "-f" "ert-run-tests-batch-and-exit")))
7554 (home-page "https://github.com/nex3/perspective-el")
7555 (synopsis "Switch between named \"perspectives\"")
7556 (description
7557 "This package provides tagged workspaces in Emacs, similar to workspaces in
7558 windows managers such as Awesome and XMonad. @code{perspective.el} provides
7559 multiple workspaces (or \"perspectives\") for each Emacs frame. Each
7560 perspective is composed of a window configuration and a set of buffers.
7561 Switching to a perspective activates its window configuration, and when in a
7562 perspective only its buffers are available by default.")
7563 ;; This package is released under the same license as Emacs (GPLv3+) or
7564 ;; the Expat license.
7565 (license license:gpl3+)))
7566
7567 (define-public emacs-persp-mode
7568 (package
7569 (name "emacs-persp-mode")
7570 (version "2.9.8")
7571 (source
7572 (origin
7573 (method git-fetch)
7574 (uri (git-reference
7575 (url "https://github.com/Bad-ptr/persp-mode.el")
7576 (commit (string-append "v" version))))
7577 (file-name (git-file-name name version))
7578 (sha256
7579 (base32
7580 "0b4y7a6j70s9lvr37riyy9k5kh3yvmx0m6nd9c0c8572ji4ij65g"))))
7581 (build-system emacs-build-system)
7582 (home-page "https://github.com/Bad-ptr/persp-mode.el")
7583 (synopsis "Switch between named \"perspectives\" shared among frames")
7584 (description
7585 "This package extends @code{perspective.el} to enable perspectives that
7586 can be saved to and restored from a file.")
7587 (license license:gpl2+)))
7588
7589 (define-public emacs-test-simple
7590 (package
7591 (name "emacs-test-simple")
7592 (version "1.3.0")
7593 (source
7594 (origin
7595 (method url-fetch)
7596 (uri (string-append "https://elpa.gnu.org/packages/test-simple-"
7597 version ".el"))
7598 (sha256
7599 (base32
7600 "1yd61jc9ds95a5n09052kwc5gasy57g4lxr0jsff040brlyi9czz"))))
7601 (build-system emacs-build-system)
7602 (home-page "https://github.com/rocky/emacs-test-simple")
7603 (synopsis "Simple unit test framework for Emacs Lisp")
7604 (description
7605 "Test Simple is a simple unit test framework for Emacs Lisp. It
7606 alleviates the need for context macros, enclosing specifications or required
7607 test tags. It supports both interactive and non-interactive use.")
7608 (license license:gpl3+)))
7609
7610 (define-public emacs-load-relative
7611 (package
7612 (name "emacs-load-relative")
7613 (version "1.3.1")
7614 (source
7615 (origin
7616 (method url-fetch)
7617 (uri (string-append "https://elpa.gnu.org/packages/load-relative-"
7618 version ".el"))
7619 (sha256
7620 (base32 "1m37scr82lqqy954fchjxrmdh4lngrl4d1yzxhp3yfjhsydizhrj"))))
7621 (build-system emacs-build-system)
7622 (home-page "https://github.com/rocky/emacs-load-relative")
7623 (synopsis "Emacs Lisp relative file loading related functions")
7624 (description
7625 "Provides functions which facilitate writing multi-file Emacs packages
7626 and running from the source tree without having to \"install\" code or fiddle
7627 with @{load-path}.
7628
7629 The main function, @code{load-relative}, loads an Emacs Lisp file relative to
7630 another (presumably currently running) Emacs Lisp file.")
7631 (license license:gpl3+)))
7632
7633 (define-public emacs-loc-changes
7634 (package
7635 (name "emacs-loc-changes")
7636 (version "1.2")
7637 (source
7638 (origin
7639 (method url-fetch)
7640 (uri (string-append "https://elpa.gnu.org/packages/loc-changes-"
7641 version ".el"))
7642 (sha256
7643 (base32
7644 "1x8fn8vqasayf1rb8a6nma9n6nbvkx60krmiahyb05vl5rrsw6r3"))))
7645 (build-system emacs-build-system)
7646 (home-page "https://github.com/rocky/emacs-loc-changes")
7647 (synopsis "Keeps track of positions even after buffer changes")
7648 (description
7649 "This Emacs package provides a mean to track important buffer positions
7650 after buffer changes.")
7651 (license license:gpl3+)))
7652
7653 (define-public emacs-realgud
7654 (package
7655 (name "emacs-realgud")
7656 (version "1.5.1")
7657 (source
7658 (origin
7659 (method git-fetch)
7660 (uri (git-reference
7661 (url "https://github.com/realgud/realgud/")
7662 (commit version)))
7663 (sha256
7664 (base32
7665 "1d3s23jk0i34wpyxfajydgyyvsxnpbqrfl0mgydsq7zw2c75ylnq"))
7666 (file-name (git-file-name name version))))
7667 (build-system emacs-build-system)
7668 (arguments
7669 `(#:tests? #t
7670 #:phases
7671 (modify-phases %standard-phases
7672 (add-after 'unpack 'fix-realgud:run-process-void-error
7673 ;; See: https://github.com/realgud/realgud/issues/269.
7674 (lambda _
7675 (substitute* '("realgud/debugger/gdb/gdb.el"
7676 "realgud/debugger/gub/gub.el")
7677 (("^\\(require 'load-relative\\).*" anchor)
7678 (string-append anchor
7679 "(require-relative-list \
7680 '(\"../../common/run\") \"realgud:\")\n")))
7681 #t))
7682 (add-after 'unpack 'fix-autogen-script
7683 (lambda _
7684 (substitute* "autogen.sh"
7685 (("./configure") "sh configure"))
7686 #t))
7687 (add-after 'fix-autogen-script 'autogen
7688 (lambda _
7689 (setenv "CONFIG_SHELL" "sh")
7690 (invoke "sh" "autogen.sh")))
7691 (add-after 'fix-autogen-script 'set-home
7692 (lambda _
7693 (setenv "HOME" (getenv "TMPDIR"))
7694 #t))
7695 (add-before 'patch-el-files 'remove-realgud-pkg.el
7696 (lambda _
7697 ;; FIXME: `patch-el-files' crashes on this file with error:
7698 ;; unable to locate "bashdb".
7699 (delete-file "./test/test-regexp-bashdb.el")
7700 #t)))
7701 #:include (cons* ".*\\.el$" %default-include)))
7702 (native-inputs
7703 `(("autoconf" ,autoconf)
7704 ("automake" ,automake)
7705 ("emacs-test-simple" ,emacs-test-simple)))
7706 (propagated-inputs
7707 `(("emacs-load-relative" ,emacs-load-relative)
7708 ("emacs-loc-changes" ,emacs-loc-changes)))
7709 (home-page "https://github.com/realgud/realgud/")
7710 (synopsis
7711 "Modular front-end for interacting with external debuggers")
7712 (description
7713 "RealGUD is a modular, extensible GNU Emacs front-end for interacting
7714 with external debuggers. It integrates various debuggers such as gdb, pdb,
7715 ipdb, jdb, lldb, bashdb, zshdb, etc. and allows to visually step code in the
7716 sources. Unlike GUD, it also supports running multiple debug sessions in
7717 parallel.")
7718 (license license:gpl3+)))
7719
7720 (define-public emacs-request
7721 ;; We prefer a more recent commit that has support for auth-source,
7722 ;; which makes authentication more convenient for users and maintainers.
7723 (let ((commit "d02d1347ffdf138cffd380cbeac62ac8732036ef")
7724 (revision "0"))
7725 (package
7726 (name "emacs-request")
7727 (version (git-version "0.3.2" revision commit))
7728 (source (origin
7729 (method git-fetch)
7730 (uri (git-reference
7731 (url "https://github.com/tkf/emacs-request")
7732 (commit commit)))
7733 (file-name (git-file-name name version))
7734 (sha256
7735 (base32
7736 "1rkpakzish2d470ca15yq3k0m1j7a2lrkvvddcyvc2rx0sncsdjs"))))
7737 (build-system emacs-build-system)
7738 (arguments
7739 `(#:tests? #f)) ; requires network access.
7740 (propagated-inputs
7741 `(("emacs-deferred" ,emacs-deferred)))
7742 (home-page "https://github.com/tkf/emacs-request")
7743 (synopsis "Package for speaking HTTP in Emacs Lisp")
7744 (description "This package provides a HTTP request library with multiple
7745 backends. It supports url.el which is shipped with Emacs and the curl command
7746 line program.")
7747 (license license:gpl3+))))
7748
7749 (define-public emacs-rudel
7750 (package
7751 (name "emacs-rudel")
7752 (version "0.3.2")
7753 (source
7754 (origin
7755 (method url-fetch)
7756 (uri (string-append "https://elpa.gnu.org/packages/rudel-"
7757 version ".tar"))
7758 (sha256
7759 (base32 "03hcvpp6ykavidwn5x48gs986w1i5icvh7ks6p74pdaagpgw4jmk"))))
7760 (build-system emacs-build-system)
7761 (home-page "http://rudel.sourceforge.net/")
7762 (synopsis "Collaborative editing framework")
7763 (description
7764 "Rudel is a collaborative editing environment for GNU Emacs. Its purpose
7765 is to share buffers with other users in order to edit the contents of those
7766 buffers collaboratively. Rudel supports multiple backends to enable
7767 communication with other collaborative editors using different protocols,
7768 though currently Obby (for use with the Gobby editor) is the only
7769 fully-functional one.")
7770 (license license:gpl3+)))
7771
7772 (define-public emacs-hydra
7773 (package
7774 (name "emacs-hydra")
7775 (version "0.15.0")
7776 (source
7777 (origin
7778 (method git-fetch)
7779 (uri (git-reference
7780 (url "https://github.com/abo-abo/hydra")
7781 (commit version)))
7782 (file-name (git-file-name name version))
7783 (sha256
7784 (base32
7785 "0fapvhmhgc9kppf3bvkgry0cd7gyilg7sfvlscfrfjxpx4xvwsfy"))))
7786 (build-system emacs-build-system)
7787 (arguments
7788 `(#:tests? #t
7789 #:test-command '("make" "test")))
7790 (home-page "https://github.com/abo-abo/hydra")
7791 (synopsis "Make Emacs bindings that stick around")
7792 (description
7793 "This package can be used to tie related commands into a family of short
7794 bindings with a common prefix---a Hydra. Once you summon the Hydra (through
7795 the prefixed binding), all the heads can be called in succession with only a
7796 short extension. Any binding that isn't the Hydra's head vanquishes the
7797 Hydra. Note that the final binding, besides vanquishing the Hydra, will still
7798 serve its original purpose, calling the command assigned to it. This makes
7799 the Hydra very seamless; it's like a minor mode that disables itself
7800 automatically.")
7801 (license license:gpl3+)))
7802
7803 (define-public emacs-pretty-hydra
7804 (package
7805 (name "emacs-pretty-hydra")
7806 (version "0.2.2")
7807 (source
7808 (origin
7809 (method git-fetch)
7810 (uri (git-reference
7811 (url "https://github.com/jerrypnz/major-mode-hydra.el")
7812 (commit version)))
7813 (file-name (git-file-name name version))
7814 (sha256
7815 (base32
7816 "08a15knkdq35pzjq82imff016fbfdib5q4glg2xmdy2b5fnk7jqa"))))
7817 (build-system emacs-build-system)
7818 (propagated-inputs
7819 `(("emacs-dash" ,emacs-dash)
7820 ("emacs-hydra" ,emacs-hydra)
7821 ("emacs-s" ,emacs-s)))
7822 (arguments
7823 `(#:exclude (cons "^major-mode-hydra\\.el" %default-exclude)))
7824 (home-page "https://github.com/jerrypnz/major-mode-hydra.el")
7825 (synopsis "Major mode keybindings managed by Hydra")
7826 (description
7827 "This package offers an hydra-based method of managing major
7828 mode-specific key bindings. It is intended for use as a library only; see
7829 package @code{emacs-major-mode-hydra} for a user-friendly interface.")
7830 (license license:gpl3+)))
7831
7832 (define-public emacs-interleave
7833 (package
7834 (name "emacs-interleave")
7835 (version "1.4.0")
7836 (source
7837 (origin
7838 (method git-fetch)
7839 (uri
7840 (git-reference
7841 (url "https://github.com/rudolfochrist/interleave")
7842 (commit (string-append "interleave-" version))))
7843 (file-name (git-file-name name version))
7844 (sha256
7845 (base32 "0l5b681mrpk12lx5c16m7kc13p29z6zismwg1llsjg7cdmrmsrcb"))))
7846 (build-system emacs-build-system)
7847 (home-page "https://github.com/rudolfochrist/interleave")
7848 (synopsis "Emacs minor mode to interleave notes and text books")
7849 (description
7850 "Interleave is a minor mode that presents a document viewer side
7851 by side to an Org buffer with your notes relevant to the current page.")
7852 (license license:gpl3+)))
7853
7854 (define-public emacs-major-mode-hydra
7855 (package
7856 (inherit emacs-pretty-hydra)
7857 (name "emacs-major-mode-hydra")
7858 (propagated-inputs
7859 `(("emacs-dash" ,emacs-dash)
7860 ("emacs-pretty-hydra" ,emacs-pretty-hydra)))
7861 (arguments
7862 `(#:exclude (cons "^pretty-hydra\\.el" %default-exclude)))
7863 (synopsis "Create nice-looking hydras")
7864 (description
7865 "This package provides the macro @code{pretty-hydra-define} to define
7866 hydras with one column per group of heads.")))
7867
7868 (define-public emacs-ivy
7869 (package
7870 (name "emacs-ivy")
7871 (version "0.13.4")
7872 (source
7873 (origin
7874 (method url-fetch)
7875 (uri (string-append "https://elpa.gnu.org/packages/ivy-" version ".tar"))
7876 (sha256
7877 (base32 "0qpza1c45mr8fcpnm32cck4v22fnzz1yb7kww05rzgq1k9iivx5v"))))
7878 (build-system emacs-build-system)
7879 (propagated-inputs
7880 `(("emacs-hydra" ,emacs-hydra)))
7881 (home-page "https://github.com/abo-abo/swiper")
7882 (synopsis "Incremental vertical completion for Emacs")
7883 (description
7884 "This package provides @code{ivy-read} as an alternative to
7885 @code{completing-read} and similar functions. No attempt is made to determine
7886 the best candidate. Instead, the user can navigate candidates with
7887 @code{ivy-next-line} and @code{ivy-previous-line}. The matching is done by
7888 splitting the input text by spaces and re-building it into a regular
7889 expression.")
7890 (license license:gpl3+)))
7891
7892 (define-public emacs-counsel
7893 (package
7894 (name "emacs-counsel")
7895 (version "0.13.4")
7896 (source
7897 (origin
7898 (method url-fetch)
7899 (uri (string-append "https://elpa.gnu.org/packages/"
7900 "counsel-" version ".tar"))
7901 (sha256
7902 (base32 "094zfapfn1l8wjf3djkipk0d9nks0g77sbk107pfsbr3skkzh031"))))
7903 (build-system emacs-build-system)
7904 (propagated-inputs
7905 `(("emacs-swiper" ,emacs-swiper)))
7906 (home-page "https://github.com/abo-abo/swiper")
7907 (synopsis "Various completion functions using Ivy")
7908 (description
7909 "Just call one of the interactive functions in a file to complete the
7910 corresponding thing using Ivy.
7911
7912 The following completions are currently available:
7913 @itemize
7914 @item Symbol completion for Elisp, Common Lisp, Python, Clojure, C, C++.
7915 @item Describe functions for Elisp: function, variable, library, command,
7916 @item bindings, theme.
7917 @item Navigation functions: imenu, ace-line, semantic, outline.
7918 @item Git utilities: git-files, git-grep, git-log, git-stash, git-checkout.
7919 @item Grep utilities: grep, ag, pt, recoll, ack, rg.
7920 @item System utilities: process list, rhythmbox, linux-app.
7921 @item Many more.
7922 @end itemize")
7923 (license license:gpl3+)))
7924
7925 (define-public emacs-swiper
7926 (package
7927 (name "emacs-swiper")
7928 (version "0.13.4")
7929 (source
7930 (origin
7931 (method url-fetch)
7932 (uri (string-append "https://elpa.gnu.org/packages/swiper-" version ".tar"))
7933 (sha256
7934 (base32 "197pq2cvvskib87aky907wv2am55vilr7y5dabmmm07a8vr9py0v"))))
7935 (build-system emacs-build-system)
7936 (propagated-inputs
7937 `(("emacs-ivy" ,emacs-ivy)))
7938 (home-page "https://github.com/abo-abo/swiper")
7939 (synopsis "Isearch with an overview")
7940 (description
7941 "This package gives an overview of the current regex search candidates.
7942 The search regex can be split into groups with a space. Each group is
7943 highlighted with a different face.
7944
7945 It can double as a quick `regex-builder', although only single lines will be
7946 matched.")
7947 (license license:gpl3+)))
7948
7949 (define-public emacs-ivy-xref
7950 (let ((commit "1a35fc0f070388701b05b0a455cbe262e924d547")
7951 (revision "1"))
7952 (package
7953 (name "emacs-ivy-xref")
7954 (version (git-version "0.1" revision commit))
7955 (source
7956 (origin
7957 (method git-fetch)
7958 (uri (git-reference
7959 (url "https://github.com/alexmurray/ivy-xref")
7960 (commit commit)))
7961 (file-name (git-file-name name version))
7962 (sha256
7963 (base32
7964 "0d71nm9d9ajp5i6dnl8h1hw9jqp8gd1ajgninb1h13i80rplzl9k"))))
7965 (build-system emacs-build-system)
7966 (propagated-inputs
7967 `(("emacs-ivy" ,emacs-ivy)))
7968 (home-page "https://github.com/alexmurray/ivy-xref")
7969 (synopsis "Ivy interface for @code{xref}")
7970 (description "This package provides an Ivy interface for selecting from
7971 @code{xref} results.")
7972 (license license:gpl3))))
7973
7974 (define-public emacs-ivy-pass
7975 (let ((commit "5b523de1151f2109fdd6a8114d0af12eef83d3c5")
7976 (revision "1"))
7977 (package
7978 (name "emacs-ivy-pass")
7979 (version (git-version "0.1" revision commit))
7980 (source
7981 (origin
7982 (method git-fetch)
7983 (uri (git-reference
7984 (url "https://github.com/ecraven/ivy-pass")
7985 (commit commit)))
7986 (file-name (git-file-name name version))
7987 (sha256
7988 (base32
7989 "18crb4zh2pjf0cmv3b913m9vfng27girjwfqc3mk7vqd1r5a49yk"))))
7990 (build-system emacs-build-system)
7991 (propagated-inputs
7992 `(("emacs-ivy" ,emacs-ivy)
7993 ("emacs-password-store" ,emacs-password-store)
7994 ("password-store" ,password-store)))
7995 (home-page "https://github.com/ecraven/ivy-pass")
7996 (synopsis "Ivy interface for password store (pass)")
7997 (description "This package provides an Ivy interface for working with
7998 the password store @code{pass}.")
7999 (license license:gpl3))))
8000
8001 (define-public emacs-ivy-yasnippet
8002 (let ((commit "32580b4fd23ebf9ca7dde96704f7d53df6e253cd")
8003 (revision "2"))
8004 (package
8005 (name "emacs-ivy-yasnippet")
8006 (version (git-version "0.1" revision commit))
8007 (source
8008 (origin
8009 (method git-fetch)
8010 (uri (git-reference
8011 (url "https://github.com/mkcms/ivy-yasnippet")
8012 (commit commit)))
8013 (file-name (git-file-name name version))
8014 (sha256
8015 (base32
8016 "1wfg6mmd5gl1qgvayyzpxlkh9s7jgn20y8l1vh1zbj1czvv51xp8"))))
8017 (build-system emacs-build-system)
8018 (propagated-inputs
8019 `(("emacs-ivy" ,emacs-ivy)
8020 ("emacs-yasnippet" ,emacs-yasnippet)
8021 ("emacs-dash" ,emacs-dash)))
8022 (home-page "https://github.com/mkcms/ivy-yasnippet")
8023 (synopsis "Preview @code{yasnippets} with @code{ivy}")
8024 (description "This package allows you to select @code{yasnippet}
8025 snippets using @code{ivy} completion. When current selection changes in the
8026 minibuffer, the snippet contents are temporarily expanded in the buffer. To
8027 use it, call @code{M-x ivy-yasnippet} (but make sure you have enabled
8028 @code{yas-minor-mode} first).")
8029 (license license:gpl3+))))
8030
8031 ;; The 0.1.6 release is incompatible with newer ivy versions, so we instead
8032 ;; pick a more recent snapshot of the repository, see
8033 ;; https://github.com/Yevgnen/ivy-rich/pull/80.
8034 (define-public emacs-ivy-rich
8035 (let ((commit "7b9b7b20c3ead81da90232cd6707dfad3c1f1eb3")
8036 (revision "1"))
8037 (package
8038 (name "emacs-ivy-rich")
8039 (version (git-version "0.1.6" revision commit))
8040 (source
8041 (origin
8042 (method git-fetch)
8043 (uri (git-reference
8044 (url "https://github.com/Yevgnen/ivy-rich")
8045 (commit commit)))
8046 (file-name (git-file-name name version))
8047 (sha256
8048 (base32 "03p13z609ighdq4axls93alqfl7pclx12g4vdd7lwpcy0r0cgyf8"))))
8049 (build-system emacs-build-system)
8050 (propagated-inputs
8051 `(("emacs-ivy" ,emacs-ivy)))
8052 (home-page "https://github.com/Yevgnen/ivy-rich")
8053 (synopsis "More friendly interface for @code{ivy}")
8054 (description
8055 "This package extends Ivy by showing more information in the minibuffer
8056 for each candidate. It adds columns showing buffer modes, file sizes,
8057 docstrings, etc. If @code{emacs-all-the-icons} is installed, it can show
8058 icons as well.")
8059 (license license:gpl3+))))
8060
8061 (define-public emacs-avy
8062 (package
8063 (name "emacs-avy")
8064 (version "0.5.0")
8065 (source
8066 (origin
8067 (method git-fetch)
8068 (uri (git-reference
8069 (url "https://github.com/abo-abo/avy")
8070 (commit version)))
8071 (file-name (git-file-name name version))
8072 (sha256
8073 (base32 "09qdni1s74i5pv8741szl5g4ynj8fxn0x65qmwa9rmfkbimnc0fs"))))
8074 (build-system emacs-build-system)
8075 (arguments
8076 `(#:tests? #t
8077 #:test-command '("make" "test")))
8078 (home-page "https://github.com/abo-abo/avy")
8079 (synopsis "Tree-based completion for Emacs")
8080 (description
8081 "This package provides a generic completion method based on building a
8082 balanced decision tree with each candidate being a leaf. To traverse the tree
8083 from the root to a desired leaf, typically a sequence of @code{read-key} can
8084 be used.
8085
8086 In order for @code{read-key} to make sense, the tree needs to be visualized
8087 appropriately, with a character at each branch node. So this completion
8088 method works only for things that you can see on your screen, all at once,
8089 such as the positions of characters, words, line beginnings, links, or
8090 windows.")
8091 (license license:gpl3+)))
8092
8093 (define-public emacs-ace-window
8094 (package
8095 (name "emacs-ace-window")
8096 (version "0.10.0")
8097 (source
8098 (origin
8099 (method git-fetch)
8100 (uri (git-reference
8101 (url "https://github.com/abo-abo/ace-window")
8102 (commit version)))
8103 (file-name (git-file-name name version))
8104 (sha256
8105 (base32
8106 "0f3r40d5yxp2pm2j0nn86s29nqj8py0jxjbj50v4ci3hsd92d8jl"))))
8107 (build-system emacs-build-system)
8108 (propagated-inputs
8109 `(("emacs-avy" ,emacs-avy)))
8110 (home-page "https://github.com/abo-abo/ace-window")
8111 (synopsis "Quickly switch windows in Emacs")
8112 (description
8113 "@code{ace-window} is meant to replace @code{other-window}.
8114 In fact, when there are only two windows present, @code{other-window} is
8115 called. If there are more, each window will have its first character
8116 highlighted. Pressing that character will switch to that window.")
8117 (license license:gpl3+)))
8118
8119 (define-public emacs-windsize
8120 ;; There is no proper release. The base version is extracted from the
8121 ;; "Version" keyword in the main file.
8122 (let ((revision "1")
8123 (commit "62c2846bbe95b0a73e996c75e4a644d05f57aaaa"))
8124 (package
8125 (name "emacs-windsize")
8126 (version (git-version "0.1" revision commit))
8127 (source
8128 (origin
8129 (method git-fetch)
8130 (uri (git-reference
8131 (url "https://github.com/grammati/windsize")
8132 (commit commit)))
8133 (file-name (git-file-name name version))
8134 (sha256
8135 (base32 "13kfrmv3vmkfanxv9nym5v43hx5p7xkgqmx65zcxh4gcbaham1mi"))))
8136 (build-system emacs-build-system)
8137 (home-page "https://github.com/grammati/windsize")
8138 (synopsis "Easy resizing of Emacs windows")
8139 (description
8140 "This package allows moving the borders of the active window
8141 with the arrow keys. It prefers to move the right or bottom border when
8142 possible, and falls back to moving the left or top border otherwise.")
8143 (license license:gpl3+))))
8144
8145 (define-public emacs-window-purpose
8146 (let ((commit "f6421966761ad911fe8861aba2b110c5dd60d1ea")
8147 (revision "1"))
8148 (package
8149 (name "emacs-window-purpose")
8150 (version (git-version "1.7" revision commit))
8151 (source
8152 (origin
8153 (method git-fetch)
8154 (uri (git-reference
8155 (url "https://github.com/bmag/emacs-purpose.git")
8156 (commit commit)))
8157 (file-name (git-file-name name version))
8158 (sha256
8159 (base32
8160 "1p0y5gnrw7q65py2wjdf1hrdpiw5c2zbgvfbfmb13257jq5mga38"))))
8161 (build-system emacs-build-system)
8162 (propagated-inputs
8163 `(("emacs-let-alist" ,emacs-let-alist)
8164 ("emacs-imenu-list" ,emacs-imenu-list)))
8165 (arguments
8166 '(#:include
8167 '("^[^/]+.el$"
8168 "^[^/]+.el.in$"
8169 "^dir$"
8170 "^[^/]+.info$"
8171 "^[^/]+.texi$"
8172 "^[^/]+.texinfo$"
8173 "^doc/dir$"
8174 "^doc/[^/]+.info$"
8175 "^doc/[^/]+.texi$"
8176 "^doc/[^/]+.texinfo$"
8177 "^layouts$")
8178 #:exclude
8179 '("^.dir-locals.el$"
8180 "^test.el$"
8181 "^tests.el$"
8182 "^[^/]+-test.el$"
8183 "^[^/]+-tests.el$")))
8184 (home-page "https://github.com/bmag/emacs-purpose")
8185 (synopsis "Purpose-based window management for Emacs")
8186 (description "Purpose is a package that introduces the concept of a
8187 \"purpose\" for windows and buffers, and then helps you maintain a robust
8188 window layout easily.")
8189 (license license:gpl3+))))
8190
8191 (define-public emacs-iedit
8192 ;; Last release version was in 2016.
8193 (let ((commit "e2c100cdd67b7d82835d281ac2cd1bf4f374bc8f")
8194 (revision "1"))
8195 (package
8196 (name "emacs-iedit")
8197 (version (git-version "0.9.9.9" revision commit))
8198 (source
8199 (origin
8200 (method git-fetch)
8201 (uri (git-reference
8202 (url "https://github.com/victorhge/iedit")
8203 (commit commit)))
8204 (file-name (git-file-name name version))
8205 (sha256
8206 (base32 "0wr3w2id95wx2rma8n1ifjrv9rx37ly26ijc5zi58id0yrip3hnc"))))
8207 (build-system emacs-build-system)
8208 (home-page "https://www.emacswiki.org/emacs/Iedit")
8209 (synopsis "Edit multiple regions in the same way simultaneously")
8210 (description
8211 "This package is an Emacs minor mode and allows you to edit one
8212 occurrence of some text in a buffer (possibly narrowed) or region, and
8213 simultaneously have other occurrences edited in the same way.
8214
8215 You can also use Iedit mode as a quick way to temporarily show only the buffer
8216 lines that match the current text being edited. This gives you the effect of
8217 a temporary @code{keep-lines} or @code{occur}.")
8218 (license license:gpl3+))))
8219
8220 (define-public emacs-zoutline
8221 (package
8222 (name "emacs-zoutline")
8223 (version "0.2.0")
8224 (source
8225 (origin
8226 (method git-fetch)
8227 (uri (git-reference
8228 (url "https://github.com/abo-abo/zoutline")
8229 (commit version)))
8230 (sha256
8231 (base32
8232 "1w0zh6vs7klgivq5r030a82mcfg1zwic4x3fimyiqyg5n8p67hyx"))
8233 (file-name (git-file-name name version))))
8234 (build-system emacs-build-system)
8235 (home-page "https://github.com/abo-abo/zoutline")
8236 (synopsis "Simple outline library")
8237 (description
8238 "This library provides helpers for outlines. Outlines allow users to
8239 navigate code in a tree-like fashion.")
8240 (license license:gpl3+)))
8241
8242 (define-public emacs-lispy
8243 ;; No release since May 2019 and tons of fixes have landed on master.
8244 ;; https://github.com/abo-abo/lispy/issues/513
8245 (let ((commit "38a7df4cbb16cfe3d62dc8ea98b50e2d9a572e58"))
8246 (package
8247 (name "emacs-lispy")
8248 (version (git-version "0.27.0" "2" commit))
8249 (home-page "https://github.com/abo-abo/lispy")
8250 (source (origin
8251 (method git-fetch)
8252 (uri (git-reference
8253 (url "https://github.com/abo-abo/lispy")
8254 (commit commit)))
8255 (sha256
8256 (base32
8257 "1q3sgk8ffwajmh8l7c4p4fz36xw4fqds8yqblbi5kardaa8bs8cs"))
8258 (file-name (git-file-name name version))))
8259 (build-system emacs-build-system)
8260 (propagated-inputs
8261 `(("emacs-ace-window" ,emacs-ace-window)
8262 ("emacs-hydra" ,emacs-hydra)
8263 ("emacs-iedit" ,emacs-iedit)
8264 ("emacs-swiper" ,emacs-swiper)
8265 ("emacs-zoutline" ,emacs-zoutline)))
8266 (native-inputs
8267 `(("which" ,which)
8268 ("emacs-clojure-mode" ,emacs-clojure-mode)
8269 ("emacs-undercover" ,emacs-undercover)))
8270 (arguments
8271 `(#:include (cons* "^lispy-clojure\\.clj$"
8272 "^lispy-python\\.py$"
8273 %default-include)
8274 #:phases
8275 ;; XXX: Some failing tests
8276 (modify-phases %standard-phases
8277 (add-before 'check 'make-test-writable
8278 (lambda _
8279 (make-file-writable "lispy-test.el")
8280 #t))
8281 (add-before 'check 'remove-failing-test
8282 (lambda _
8283 (emacs-batch-edit-file "lispy-test.el"
8284 `(progn
8285 (dolist (test '("lispy-eval-python-str" "lispy--clojure-dot-object"))
8286 (goto-char (point-min))
8287 (re-search-forward
8288 (concat "ert-deftest " test))
8289 (beginning-of-line)
8290 (kill-sexp))
8291 (basic-save-buffer)))
8292 #t)))
8293 #:tests? #t
8294 ;; Set BEMACS to prevent the test suite from loading straight.el.
8295 #:test-command '("make" "test" "BEMACS=emacs -batch")))
8296 (synopsis "Modal S-expression editing")
8297 (description
8298 "Due to the structure of Lisp syntax it's very rare for the programmer
8299 to want to insert characters right before \"(\" or right after \")\". Thus
8300 unprefixed printable characters can be used to call commands when the point is
8301 at one of these special locations. Lispy provides unprefixed keybindings for
8302 S-expression editing when point is at the beginning or end of an
8303 S-expression.")
8304 (license license:gpl3+))))
8305
8306 (define-public emacs-lispyville
8307 (let ((commit "89316f01822b2135e52ca27fd308d207ef618052")
8308 (revision "3"))
8309 (package
8310 (name "emacs-lispyville")
8311 (version (git-version "0.1" revision commit))
8312 (home-page "https://github.com/noctuid/lispyville")
8313 (source (origin
8314 (method git-fetch)
8315 (uri (git-reference (url home-page) (commit commit)))
8316 (sha256
8317 (base32
8318 "10k3hxxpx2v2k4dyad7j1bzmr1q7rzvv4y6c67pa9zcqyaw8m91v"))
8319 (file-name (git-file-name name version))))
8320 (propagated-inputs
8321 `(("emacs-evil" ,emacs-evil)
8322 ("emacs-lispy" ,emacs-lispy)))
8323 (build-system emacs-build-system)
8324 (synopsis "Minor mode for integrating Evil with lispy")
8325 (description
8326 "LispyVille's main purpose is to provide a Lisp editing environment
8327 suited towards Evil users. It can serve as a minimal layer on top of lispy
8328 for better integration with Evil, but it does not require the use of lispy’s
8329 keybinding style. The provided commands allow for editing Lisp in normal
8330 state and will work even without lispy being enabled.")
8331 (license license:gpl3+))))
8332
8333 (define-public emacs-lpy
8334 (let ((commit "43b401fe15f0f0d01edb189378b9498121e9f766")
8335 (revision "3"))
8336 (package
8337 (name "emacs-lpy")
8338 (version (git-version "0.1.0" revision commit))
8339 (source
8340 (origin
8341 (method git-fetch)
8342 (uri (git-reference
8343 (url "https://github.com/abo-abo/lpy")
8344 (commit commit)))
8345 (sha256
8346 (base32
8347 "0xj1r7cn1rivaxhvawvmgx9fg3xilpfw4lkf2x2aqplr4s85ijas"))
8348 (file-name (git-file-name name version))))
8349 (propagated-inputs
8350 `(("emacs-zoutline" ,emacs-zoutline)
8351 ("emacs-lispy" ,emacs-lispy)))
8352 (build-system emacs-build-system)
8353 (home-page "https://github.com/abo-abo/lpy")
8354 (synopsis "Modal editing for Python")
8355 (description
8356 "This package provides a minor mode for Python that binds useful
8357 commands to unprefixed keys, such as @code{j} or @code{e}, under certain
8358 circumstances, and leaves the keys untouched outside of those situations,
8359 allowing unprefixed keys to insert their respective characters as expected.")
8360 (license license:gpl3+))))
8361
8362 (define-public emacs-clojure-mode
8363 (package
8364 (name "emacs-clojure-mode")
8365 (version "5.12.0")
8366 (source
8367 (origin
8368 (method git-fetch)
8369 (uri (git-reference
8370 (url "https://github.com/clojure-emacs/clojure-mode")
8371 (commit version)))
8372 (file-name (git-file-name name version))
8373 (sha256
8374 (base32 "14ipfy9ji39pnb9x7bzjp8lyqyxk168fx017m823j7a2g9i0sgp3"))))
8375 (build-system emacs-build-system)
8376 (native-inputs
8377 `(("emacs-buttercup" ,emacs-buttercup)
8378 ("emacs-dash" ,emacs-dash)
8379 ("emacs-paredit" ,emacs-paredit)
8380 ("emacs-s" ,emacs-s)))
8381 (arguments
8382 `(#:tests? #t
8383 #:test-command '("buttercup")
8384 #:phases
8385 (modify-phases %standard-phases
8386 (add-before 'check 'fix-tests
8387 ;; See: https://github.com/clojure-emacs/clojure-mode/issues/568
8388 (lambda _
8389 (substitute* "clojure-mode.el"
8390 (("\\(list \\(cdr project\\)\\)" line)
8391 (string-append "\"Return the list of directory roots of the PROJECT.\"\n"
8392 line)))
8393 #t)))))
8394 (home-page "https://github.com/clojure-emacs/clojure-mode")
8395 (synopsis "Major mode for Clojure code")
8396 (description
8397 "This Emacs package provides font-lock, indentation, navigation and basic
8398 refactoring for the @uref{http://clojure.org, Clojure programming language}.
8399 It is recommended to use @code{clojure-mode} with Paredit or Smartparens.")
8400 (license license:gpl3+)))
8401
8402 (define-public emacs-epl
8403 (package
8404 (name "emacs-epl")
8405 (version "0.9")
8406 (source
8407 (origin
8408 (method git-fetch)
8409 (uri (git-reference
8410 (url "https://github.com/cask/epl")
8411 (commit version)))
8412 (file-name (git-file-name name version))
8413 (sha256
8414 (base32 "0d3z5z90ln8ipk1yds1n1p8fj9yyh2kpspqjs7agl38indra3nb4"))))
8415 (build-system emacs-build-system)
8416 (home-page "https://github.com/cask/epl")
8417 (synopsis "Emacs Package Library")
8418 (description
8419 "A package management library for Emacs, based on @code{package.el}.
8420
8421 The purpose of this library is to wrap all the quirks and hassle of
8422 @code{package.el} into a sane API.")
8423 (license license:gpl3+)))
8424
8425 (define-public emacs-counsel-jq
8426 (let ((release "1.0.0")
8427 (revision "0")
8428 (commit "aaf33fc2447096cd0d03b77395fe2a95c9fe1481"))
8429 (package
8430 (name "emacs-counsel-jq")
8431 (version (git-version release revision commit))
8432 (home-page "https://github.com/200ok-ch/counsel-jq")
8433 (source
8434 (origin
8435 (method git-fetch)
8436 (uri (git-reference
8437 (url home-page)
8438 (commit commit)))
8439 (file-name (git-file-name name version))
8440 (sha256
8441 (base32 "10rz0qm8a4bl0m86kx19zq8lri047p4sxqyny08bgm9pbam0wvwn"))))
8442 (build-system emacs-build-system)
8443 (propagated-inputs
8444 `(("emacs-swiper" ,emacs-swiper)
8445 ("jq" ,jq)))
8446 (synopsis "Live preview @code{jq} queries using counsel")
8447 (description
8448 "This Emacs package provides the ability to live preview @code{jq}
8449 queries using counsel.")
8450 (license license:gpl3+))))
8451
8452 (define-public emacs-counsel-notmuch
8453 ;; Upstream provides no release. Extract version for main file.
8454 (let ((commit "a4a1562935e4180c42524c51609d1283e9be0688")
8455 (revision "0"))
8456 (package
8457 (name "emacs-counsel-notmuch")
8458 (version (git-version "1.0" revision commit))
8459 (source
8460 (origin
8461 (method git-fetch)
8462 (uri (git-reference
8463 (url "https://github.com/fuxialexander/counsel-notmuch")
8464 (commit commit)))
8465 (file-name (git-file-name name version))
8466 (sha256
8467 (base32 "01k1321d961kc2i660a5595bqk0d85f16snsxngsn5si6y83kqr7"))))
8468 (build-system emacs-build-system)
8469 (arguments
8470 `(#:phases
8471 (modify-phases %standard-phases
8472 (add-after 'unpack 'locate-notmuch
8473 (lambda* (#:key inputs #:allow-other-keys)
8474 (make-file-writable "counsel-notmuch.el")
8475 (emacs-substitute-variables "counsel-notmuch.el"
8476 ("counsel-notmuch-path"
8477 (string-append (assoc-ref inputs "notmuch")
8478 "/bin/notmuch")))
8479 #t)))))
8480 (inputs
8481 `(("emacs-counsel" ,emacs-counsel)
8482 ("notmuch" ,notmuch)
8483 ("emacs-s" ,emacs-s)))
8484 (home-page "https://github.com/fuxialexander/counsel-notmuch")
8485 (synopsis "Search emails in Notmuch asynchronously with Ivy")
8486 (description
8487 "This package can be used to search emails in Notmuch
8488 asynchronously, with Counsel and Ivy. Simply call
8489 @code{counsel-notmuch} and input your Notmuch query.")
8490 (license license:gpl3+))))
8491
8492 (define-public emacs-counsel-projectile
8493 (package
8494 (name "emacs-counsel-projectile")
8495 (version "0.3.1")
8496 (source (origin
8497 (method git-fetch)
8498 (uri (git-reference
8499 (url "https://github.com/ericdanan/counsel-projectile")
8500 (commit version)))
8501 (file-name (git-file-name name version))
8502 (sha256
8503 (base32
8504 "1k4n5lw6wwbgpwv0dg9dw0bjzi0hvbgkzrs1zmq36yhfz6y8gwnh"))))
8505 (build-system emacs-build-system)
8506 (propagated-inputs
8507 `(("emacs-counsel" ,emacs-counsel)
8508 ("emacs-projectile" ,emacs-projectile)))
8509 (home-page "https://github.com/ericdanan/counsel-projectile")
8510 (synopsis "Enhance Projectile with Ivy")
8511 (description
8512 "This package uses Ivy to provide additional actions for Projectile
8513 commands and replacements for existing functions.")
8514 (license license:gpl3+)))
8515
8516 (define-public emacs-qml-mode
8517 (package
8518 (name "emacs-qml-mode")
8519 (version "0.4")
8520 (source (origin
8521 (method git-fetch)
8522 (uri (git-reference
8523 (url "https://github.com/coldnew/qml-mode")
8524 (commit version)))
8525 (file-name (git-file-name name version))
8526 (sha256
8527 (base32
8528 "1sncsvzjfgmhp4m8w5jd4y51k24n2jfpgvrkd64wlhhzbj3wb947"))))
8529 (build-system emacs-build-system)
8530 (home-page "https://github.com/coldnew/qml-mode/")
8531 (synopsis "Qt Modeling Language (QML) mode for Emacs")
8532 (description "This package provides the @code{qml-mode} major Emacs mode
8533 for editing source files written in the Qt Modeling Language (QML) user
8534 interface markup language. It provides syntax highlighting and basic
8535 navigation commands. @code{qml-mode} is derived from code{js-mode}, the Emacs
8536 builtin JavaScript mode.")
8537 (license license:gpl2+)))
8538
8539 (define-public emacs-queue
8540 (package
8541 (name "emacs-queue")
8542 (version "0.2")
8543 (source (origin
8544 (method url-fetch)
8545 (uri (string-append "https://elpa.gnu.org/packages/queue-"
8546 version ".el"))
8547 (sha256
8548 (base32
8549 "0cx2848sqnnkkr4zisvqadzxngjyhmb36mh0q3if7q19yjjhmrkb"))))
8550 (build-system emacs-build-system)
8551 (home-page "https://www.dr-qubit.org/emacs_data-structures.html")
8552 (synopsis "Queue data structure for Emacs")
8553 (description
8554 "This Emacs library provides queue data structure. These queues can be
8555 used both as a first-in last-out (FILO) and as a first-in first-out (FIFO)
8556 stack, i.e. elements can be added to the front or back of the queue, and can
8557 be removed from the front. This type of data structure is sometimes called an
8558 \"output-restricted deque\".")
8559 (license license:gpl3+)))
8560
8561 (define-public emacs-quickrun
8562 (package
8563 (name "emacs-quickrun")
8564 (version "2.3.1")
8565 (source
8566 (origin
8567 (method git-fetch)
8568 (uri (git-reference
8569 (url "https://github.com/emacsorphanage/quickrun")
8570 (commit version)))
8571 (sha256
8572 (base32 "0a1n2v09h0n7d9p2izflqqang4ny0b46dlqvmxvkkik4bb6f4wcz"))
8573 (file-name (git-file-name name version))))
8574 (build-system emacs-build-system)
8575 (home-page "https://github.com/emacsorphanage/quickrun")
8576 (synopsis "Execute editing buffer and show its output quickly")
8577 (description
8578 "This package evaluates the content of a buffer, or region, and displays
8579 the result. Quickrun executes not only script languages (Perl, Ruby, Python
8580 etc), but also compiling languages (C, C++, Go, Java etc) and markup
8581 languages.")
8582 (license license:gpl3+)))
8583
8584 (define-public emacs-pkg-info
8585 (package
8586 (name "emacs-pkg-info")
8587 (version "0.6")
8588 (source
8589 (origin
8590 (method git-fetch)
8591 (uri (git-reference
8592 (url "https://github.com/lunaryorn/pkg-info.el")
8593 (commit version)))
8594 (file-name (git-file-name name version))
8595 (sha256
8596 (base32 "0nk12dcppdyhav6m6yf7abpywyd7amxd4237zsfd32w4zxsx39k1"))))
8597 (build-system emacs-build-system)
8598 (propagated-inputs `(("emacs-epl" ,emacs-epl)))
8599 (home-page "https://github.com/lunaryorn/pkg-info.el")
8600 (synopsis "Information about Emacs packages")
8601 (description
8602 "This library extracts information from the installed Emacs packages.")
8603 (license license:gpl3+)))
8604
8605 (define-public emacs-spinner
8606 (package
8607 (name "emacs-spinner")
8608 (version "1.7.3")
8609 (source (origin
8610 (method url-fetch)
8611 (uri (string-append "https://elpa.gnu.org/packages/spinner-"
8612 version ".el"))
8613 (sha256
8614 (base32
8615 "19kp1mmndbmw11sgvv2ggfjl4pyf5zrsbh3871f0965pw9z8vahd"))))
8616 (build-system emacs-build-system)
8617 (home-page "https://github.com/Malabarba/spinner.el")
8618 (synopsis "Emacs mode-line spinner for operations in progress")
8619 (description
8620 "This Emacs package adds spinners and progress-bars to the mode-line for
8621 ongoing operations.")
8622 (license license:gpl3+)))
8623
8624 (define-public emacs-sparql-mode
8625 (package
8626 (name "emacs-sparql-mode")
8627 (version "4.0.2")
8628 (source
8629 (origin
8630 (method git-fetch)
8631 (uri (git-reference
8632 (url "https://github.com/ljos/sparql-mode")
8633 (commit (string-append "v" version))))
8634 (file-name (git-file-name name version))
8635 (sha256
8636 (base32 "0hqp8r24wvzrkl630wbm0lynrcrnawv2yn2a3xgwqwwhwgva35rn"))))
8637 (build-system emacs-build-system)
8638 (propagated-inputs
8639 `(("emacs-company" ,emacs-company)))
8640 (home-page "https://github.com/ljos/sparql-mode")
8641 (synopsis "SPARQL mode for Emacs")
8642 (description
8643 "This package is a major mode for Emacs that provides syntax highlighting
8644 for SPARQL. It can also execute queries against a SPARQL HTTP endpoint, such
8645 as Fuseki or DBPedia.")
8646 (license license:gpl3+)))
8647
8648 (define-public emacs-better-defaults
8649 (package
8650 (name "emacs-better-defaults")
8651 (version "0.1.3")
8652 (source
8653 (origin
8654 (method git-fetch)
8655 (uri (git-reference
8656 (url "https://github.com/technomancy/better-defaults")
8657 (commit version)))
8658 (file-name (git-file-name name version))
8659 (sha256
8660 (base32
8661 "1rxznx2l0cdpiz8mad8s6q17m1fngpgb1cki7ch6yh18r3qz8ysr"))))
8662 (build-system emacs-build-system)
8663 (home-page "https://github.com/technomancy/better-defaults")
8664 (synopsis "Better defaults for Emacs")
8665 (description
8666 "Better defaults attempts to address the most obvious deficiencies of the
8667 Emacs default configuration in uncontroversial ways that nearly everyone can
8668 agree upon.")
8669 (license license:gpl3+)))
8670
8671 (define-public emacs-undohist-el
8672 (package
8673 (name "emacs-undohist-el")
8674 (version "0.2.1")
8675 (source
8676 (origin
8677 (method git-fetch)
8678 (uri (git-reference
8679 (url "https://github.com/m2ym/undohist-el")
8680 (commit version)))
8681 (file-name (git-file-name name version))
8682 (sha256
8683 (base32 "0hmx2b20nrxg2lb8vplgrzdh8chgxwlbmjvbq5scddggd302sd56"))))
8684 (build-system emacs-build-system)
8685 (home-page "https://github.com/m2ym/undohist-el")
8686 (synopsis "Save undo history between sessions")
8687 (description "This package allows persistent use of undo history for
8688 individual file buffers.")
8689 (license license:gpl3+)))
8690
8691 (define-public emacs-eprime
8692 (let ((commit "17a481af26496be91c07139a9bfc05cfe722506f"))
8693 (package
8694 (name "emacs-eprime")
8695 (version (string-append "20140513-" (string-take commit 7)))
8696 (source (origin
8697 (method url-fetch)
8698 (uri (string-append "https://raw.githubusercontent.com"
8699 "/AndrewHynes/eprime-mode/"
8700 commit "/eprime-mode.el"))
8701 (file-name (string-append "eprime-" version ".el"))
8702 (sha256
8703 (base32
8704 "0v68lggkyq7kbcr9zyi573m2g2x251xy3jadlaw8kx02l8krwq8d"))))
8705 (build-system emacs-build-system)
8706 (home-page "https://github.com/AndrewHynes/eprime-mode")
8707 (synopsis "E-prime checking mode for Emacs")
8708 (description "This package provides an E-prime checking mode for Emacs
8709 that highlights non-conforming text. The subset of the English language called
8710 E-Prime forbids the use of the \"to be\" form to strengthen your writing.")
8711 (license license:gpl3+))))
8712
8713 (define-public emacs-julia-mode
8714 (package
8715 (name "emacs-julia-mode")
8716 (version "0.4")
8717 (source
8718 (origin
8719 (method git-fetch)
8720 (uri (git-reference
8721 (url "https://github.com/JuliaEditorSupport/julia-emacs")
8722 (commit version)))
8723 (file-name (git-file-name name version))
8724 (sha256
8725 (base32
8726 "1w131jb9mhvyjxa0p93iwfhzidgbcs6b8i6jg79yisqb9wchik99"))))
8727 (build-system emacs-build-system)
8728 (arguments
8729 `(#:tests? #t
8730 #:test-command '("emacs" "--batch"
8731 "-l" "julia-mode-tests.el"
8732 "-f" "ert-run-tests-batch-and-exit")))
8733 (home-page "https://github.com/JuliaEditorSupport/julia-emacs")
8734 (synopsis "Major mode for Julia")
8735 (description "This Emacs package provides a mode for the Julia
8736 programming language.")
8737 (license license:expat)))
8738
8739 (define-public emacs-smex
8740 (package
8741 (name "emacs-smex")
8742 (version "3.0")
8743 (source (origin
8744 (method url-fetch)
8745 (uri (string-append "https://raw.githubusercontent.com"
8746 "/nonsequitur/smex/" version "/smex.el"))
8747 (file-name (string-append "smex-" version ".el"))
8748 (sha256
8749 (base32
8750 "0ar310zx9k5y4i1vl2rawvi712xj9gx77160860jbs691p77cxqp"))))
8751 (build-system emacs-build-system)
8752 (home-page "https://github.com/nonsequitur/smex/")
8753 (synopsis "M-x interface with Ido-style fuzzy matching")
8754 (description
8755 "Smex is a M-x enhancement for Emacs. Built on top of Ido, it provides a
8756 convenient interface to your recently and most frequently used commands. And
8757 to all the other commands, too.")
8758 (license license:gpl3+)))
8759
8760 (define-public emacs-js2-mode
8761 (package
8762 (name "emacs-js2-mode")
8763 (version "20201220")
8764 (source
8765 (origin
8766 (method git-fetch)
8767 (uri (git-reference
8768 (url "https://github.com/mooz/js2-mode")
8769 (commit version)))
8770 (file-name (git-file-name name version))
8771 (sha256
8772 (base32 "00jy917cgp5xzfgs4m0spzlbqk8mg63layin8nxmn2647rfjnik4"))))
8773 (build-system emacs-build-system)
8774 (arguments
8775 `(#:tests? #t
8776 #:test-command '("make" "test")))
8777 (home-page "https://github.com/mooz/js2-mode/")
8778 (synopsis "Improved JavaScript editing mode for Emacs")
8779 (description
8780 "Js2-mode provides a JavaScript major mode for Emacs that is more
8781 advanced than the built-in javascript-mode. Features include accurate syntax
8782 highlighting using a recursive-descent parser, on-the-fly reporting of syntax
8783 errors and strict-mode warnings, smart line-wrapping within comments and
8784 strings, and code folding.")
8785 (license license:gpl3+)))
8786
8787 (define-public emacs-nodejs-repl
8788 (package
8789 (name "emacs-nodejs-repl")
8790 (version "0.2.4")
8791 (source (origin
8792 (method git-fetch)
8793 (uri (git-reference
8794 (url "https://github.com/abicky/nodejs-repl.el")
8795 (commit version)))
8796 (file-name (git-file-name name version))
8797 (sha256
8798 (base32
8799 "0a5mmg3cmdi73giblp07ksl06xzl9nb2m3f96ny4r3rv0ar3v1bx"))))
8800 (build-system emacs-build-system)
8801 (inputs
8802 `(("node" ,node)))
8803 (native-inputs
8804 `(("emacs-ert-expectations" ,emacs-ert-expectations)))
8805 (arguments
8806 `(#:phases
8807 (modify-phases %standard-phases
8808 (add-after 'unpack 'set-shell
8809 ;; Setting the SHELL environment variable is required for the tests
8810 ;; to find sh.
8811 (lambda _
8812 (setenv "SHELL" (which "sh"))
8813 #t))
8814 (add-after 'unpack 'configure
8815 (lambda* (#:key inputs outputs #:allow-other-keys)
8816 (let ((node (assoc-ref inputs "node")))
8817 ;; Specify the absolute file names of the various
8818 ;; programs so that everything works out-of-the-box.
8819 (make-file-writable "nodejs-repl.el")
8820 (emacs-substitute-variables
8821 "nodejs-repl.el"
8822 ("nodejs-repl-command"
8823 (string-append node "/bin/node")))))))
8824 #:tests? #t
8825 #:test-command '("emacs" "-Q" "--batch"
8826 "-L" "."
8827 "-l" "test/test.el"
8828 "-f" "ert-run-tests-batch-and-exit")))
8829 (home-page "https://github.com/abicky/nodejs-repl.el")
8830 (synopsis "Node.js REPL inside Emacs")
8831 (description
8832 "This program is derived from comint-mode and provides the following
8833 features:
8834
8835 @itemize
8836 @item TAB completion same as Node.js REPL
8837 @item file name completion in string
8838 @item incremental history search
8839 @end itemize")
8840 (license license:gpl3+)))
8841
8842 (define-public emacs-typescript-mode
8843 (package
8844 (name "emacs-typescript-mode")
8845 (version "0.3")
8846 (source (origin
8847 (method git-fetch)
8848 (uri (git-reference
8849 (url "https://github.com/ananthakumaran/typescript.el")
8850 (commit (string-append "v" version))))
8851 (file-name (git-file-name name version))
8852 (sha256
8853 (base32
8854 "002f1xfhq43fjaqliwrgxspryfahpa82va5dw3p8kwil2xwvc6mh"))))
8855 (build-system emacs-build-system)
8856 (home-page "https://github.com/ananthakumaran/typescript.el")
8857 (synopsis "Emacs major mode for editing Typescript code")
8858 (description
8859 "This is based on Karl Landstrom's barebones @code{typescript-mode}.
8860 This is much more robust and works with @code{cc-mode}'s comment
8861 filling (mostly). The modifications to the original @code{javascript.el} mode
8862 mainly consisted in replacing \"javascript\" with \"typescript\"
8863
8864 The main features of this Typescript mode are syntactic highlighting (enabled
8865 with @code{font-lock-mode} or @code{global-font-lock-mode}), automatic
8866 indentation and filling of comments and C preprocessor fontification.")
8867 (license license:gpl3+)))
8868
8869 (define-public emacs-tide
8870 (package
8871 (name "emacs-tide")
8872 (version "4.0.2")
8873 (source (origin
8874 (method git-fetch)
8875 (uri (git-reference
8876 (url "https://github.com/ananthakumaran/tide")
8877 (commit (string-append "v" version))))
8878 (file-name (git-file-name name version))
8879 (sha256
8880 (base32
8881 "1n2dihpl53a48jis3l4rry581wpr5lxjd433drlkaa4lqgx8cw67"))))
8882 (build-system emacs-build-system)
8883 (propagated-inputs
8884 `(("emacs-dash" ,emacs-dash)
8885 ("emacs-s" ,emacs-s)
8886 ("emacs-flycheck" ,emacs-flycheck)
8887 ("emacs-typescript-mode" ,emacs-typescript-mode)))
8888 (home-page "https://github.com/ananthakumaran/tide")
8889 (synopsis "Typescript IDE for Emacs")
8890 (description
8891 "Tide is an Interactive Development Environment (IDE) for Emacs which
8892 provides the following features:
8893
8894 @itemize
8895 @item ElDoc
8896 @item Auto complete
8897 @item Flycheck
8898 @item Jump to definition, Jump to type definition
8899 @item Find occurrences
8900 @item Rename symbol
8901 @item Imenu
8902 @item Compile On Save
8903 @item Highlight Identifiers
8904 @item Code Fixes
8905 @item Code Refactor
8906 @item Organize Imports
8907 @end itemize")
8908 (license license:gpl3+)))
8909
8910 (define-public emacs-markdown-mode
8911 (package
8912 (name "emacs-markdown-mode")
8913 (version "2.4")
8914 (source
8915 (origin
8916 (method git-fetch)
8917 (uri (git-reference
8918 (url "https://github.com/jrblevin/markdown-mode")
8919 (commit (string-append "v" version))))
8920 (file-name (git-file-name name version))
8921 (sha256
8922 (base32 "0g0ja4h651yfabm3k6gbw4y8w7wibc9283fyfzb33kjj38ivl5d7"))))
8923 (build-system emacs-build-system)
8924 (home-page "https://jblevins.org/projects/markdown-mode/")
8925 (synopsis "Emacs Major mode for Markdown files")
8926 (description
8927 "Markdown-mode is a major mode for editing Markdown-formatted text files
8928 in Emacs.")
8929 (license license:gpl3+)))
8930
8931 (define-public emacs-evil-markdown
8932 (let ((commit "685d7fbb81bc02fa32779d2a127b99a0c8c7436b")
8933 (revision "2"))
8934 (package
8935 (name "emacs-evil-markdown")
8936 (version (git-version "0.0.2" revision commit))
8937 (source
8938 (origin
8939 (method git-fetch)
8940 (uri (git-reference
8941 (url "https://github.com/Somelauw/evil-markdown")
8942 (commit commit)))
8943 (file-name (git-file-name name version))
8944 (sha256
8945 (base32 "1z1sjn6dcqv8mmkh6nfcwhnql2z6xr9yx3hs77bfxj79pf3c466p"))))
8946 (build-system emacs-build-system)
8947 (propagated-inputs
8948 `(("emacs-evil" ,emacs-evil)
8949 ("emacs-markdown-mode" ,emacs-markdown-mode)))
8950 (home-page "https://github.com/Somelauw/evil-markdown/")
8951 (synopsis "Evil keybindings for @code{markdown-mode}")
8952 (description
8953 "This package provides custom text objects and bindings for
8954 @code{markdown-mode}.")
8955 (license license:gpl3+))))
8956
8957 (define-public emacs-edit-indirect
8958 (package
8959 (name "emacs-edit-indirect")
8960 (version "0.1.6")
8961 (source
8962 (origin
8963 (method git-fetch)
8964 (uri (git-reference
8965 (url "https://github.com/Fanael/edit-indirect")
8966 (commit version)))
8967 (file-name (git-file-name name version))
8968 (sha256
8969 (base32 "189nvmlkki1jfszm9i0crbb1p4nzgmbly0wpvpg0i8vmw7vrpl40"))))
8970 (build-system emacs-build-system)
8971 (home-page "https://github.com/Fanael/edit-indirect")
8972 (synopsis "Edit regions in separate buffers")
8973 (description "This package allows you to edit regions in separate buffers,
8974 like @code{org-edit-src-code} but for arbitrary regions.")
8975 (license license:bsd-2)))
8976
8977 (define-public emacs-projectile
8978 (package
8979 (name "emacs-projectile")
8980 (version "2.3.0")
8981 (source (origin
8982 (method url-fetch)
8983 (uri (string-append "https://raw.githubusercontent.com/bbatsov"
8984 "/projectile/v" version "/projectile.el"))
8985 (file-name (string-append "projectile-" version ".el"))
8986 (sha256
8987 (base32
8988 "1a2drmvx80076d52w46rgynwndj78l3ljr71pdzp9g9hh71mr27y"))))
8989 (build-system emacs-build-system)
8990 (propagated-inputs
8991 `(("emacs-dash" ,emacs-dash)
8992 ("emacs-pkg-info" ,emacs-pkg-info)))
8993 (home-page "https://github.com/bbatsov/projectile")
8994 (synopsis "Manage and navigate projects in Emacs easily")
8995 (description
8996 "This library provides easy project management and navigation. The
8997 concept of a project is pretty basic - just a folder containing special file.
8998 Currently git, mercurial and bazaar repos are considered projects by default.
8999 If you want to mark a folder manually as a project just create an empty
9000 .projectile file in it.")
9001 (license license:gpl3+)))
9002
9003 (define-public emacs-skeletor
9004 (let ((commit "47c5b761aee8452716c97a69949ac2f675affe13")
9005 (revision "1"))
9006 (package
9007 (name "emacs-skeletor")
9008 (version (git-version "1.6.1" revision commit))
9009 (source (origin
9010 (method git-fetch)
9011 (uri (git-reference
9012 (url "https://github.com/chrisbarrett/skeletor.el")
9013 (commit commit)))
9014 (file-name (git-file-name name version))
9015 (sha256
9016 (base32
9017 "12bdgykfh4mwsqdazxjdvha62h3q3v33159ypy91f6x59y01fi0n"))))
9018 (build-system emacs-build-system)
9019 (propagated-inputs
9020 `(("emacs-s" ,emacs-s)
9021 ("emacs-f" ,emacs-f)
9022 ("emacs-dash" ,emacs-dash)
9023 ("emacs-let-alist" ,emacs-let-alist)))
9024 (native-inputs
9025 `(("emacs-ert-runner" ,emacs-ert-runner)))
9026 (arguments
9027 `(#:include (cons "^project-skeletons\\/" %default-include)
9028 ;; XXX: one failing test involving initializing a git repo
9029 #:phases
9030 (modify-phases %standard-phases
9031 (add-before 'check 'make-test-writable
9032 (lambda _
9033 (make-file-writable "test/skeletor-test.el")
9034 #t))
9035 (add-before 'check 'remove-git-test
9036 (lambda _
9037 (emacs-batch-edit-file "test/skeletor-test.el"
9038 `(progn
9039 (progn
9040 (goto-char (point-min))
9041 (re-search-forward
9042 "ert-deftest initialises-git-repo")
9043 (beginning-of-line)
9044 (kill-sexp))
9045 (basic-save-buffer)))
9046 #t)))
9047 #:tests? #t
9048 #:test-command '("ert-runner")))
9049 (home-page "https://github.com/chrisbarrett/skeletor.el")
9050 (synopsis "Project skeletons for Emacs")
9051 (description "This package provides project templates and automates the
9052 mundane parts of setting up a new project, such as version control, licenses,
9053 and tooling.")
9054 (license license:gpl3+))))
9055
9056 (define-public emacs-elfeed
9057 (package
9058 (name "emacs-elfeed")
9059 (version "3.4.0")
9060 (source
9061 (origin
9062 (method git-fetch)
9063 (uri (git-reference
9064 (url "https://github.com/skeeto/elfeed")
9065 (commit version)))
9066 (file-name (git-file-name name version))
9067 (sha256
9068 (base32 "1y95410hrcp23zc84sn79bxla9xr2fqh7wwagza05iaprv7zbbw0"))))
9069 (build-system emacs-build-system)
9070 (arguments
9071 `(#:tests? #t
9072 #:test-command '("make" "test")))
9073 (home-page "https://github.com/skeeto/elfeed")
9074 (synopsis "Atom/RSS feed reader for Emacs")
9075 (description
9076 "Elfeed is an extensible web feed reader for Emacs, supporting both Atom
9077 and RSS, with a user interface inspired by notmuch.")
9078 (license license:gpl3+)))
9079
9080 (define-public emacs-elfeed-org
9081 (let ((commit "77b6bbf222487809813de260447d31c4c59902c9"))
9082 (package
9083 (name "emacs-elfeed-org")
9084 (version (git-version "0.1" "1" commit))
9085 (source
9086 (origin
9087 (method git-fetch)
9088 (uri (git-reference
9089 (url "https://github.com/remyhonig/elfeed-org")
9090 (commit commit)))
9091 (file-name (git-file-name name version))
9092 (sha256
9093 (base32 "0a2ibka82xq1dhy2z7rd2y9zhcj8rna8357881yz49wf55ccgm53"))))
9094 (build-system emacs-build-system)
9095 (propagated-inputs
9096 `(("emacs-elfeed" ,emacs-elfeed)
9097 ("emacs-org" ,emacs-org)
9098 ("emacs-dash" ,emacs-dash)
9099 ("emacs-s" ,emacs-s)))
9100 (native-inputs
9101 `(("ert-runner" ,emacs-ert-runner)
9102 ("emacs-xtest" ,emacs-xtest)))
9103 (arguments
9104 `(#:tests? #t
9105 #:test-command '("ert-runner" "-L" "org-mode/lisp")
9106 #:phases
9107 (modify-phases %standard-phases
9108 (add-before 'check 'chmod
9109 (lambda _
9110 (chmod "test/fixture-mark-feed-ignore.org" #o644)
9111 #t)))))
9112 (home-page "https://github.com/remyhonig/elfeed-org")
9113 (synopsis "Configure Elfeed with an Org-mode file")
9114 (description
9115 "@code{elfeed-org} lets you manage your Elfeed subscriptions
9116 in Org-mode. Maintaining tags for all RSS feeds is cumbersome using
9117 the regular flat list, where there is no hierarchy and tag names are
9118 duplicated a lot. Org-mode makes the book keeping of tags and feeds
9119 much easier.")
9120 (license license:gpl3+))))
9121
9122 (define-public emacs-elfeed-score
9123 (package
9124 (name "emacs-elfeed-score")
9125 (version "0.7.7")
9126 (source
9127 (origin
9128 (method git-fetch)
9129 (uri (git-reference
9130 (url "https://github.com/sp1ff/elfeed-score")
9131 (commit version)))
9132 (file-name (git-file-name name version))
9133 (sha256
9134 (base32
9135 "07xid0a31ghknbfwj8dxzbqkg4sfayjhlqvp17p2bzlf1mj0zjyd"))))
9136 (build-system emacs-build-system)
9137 (propagated-inputs
9138 `(("emacs-elfeed" ,emacs-elfeed)))
9139 (home-page "https://github.com/sp1ff/elfeed-score")
9140 (synopsis "Gnus-style scoring for Elfeed")
9141 (description
9142 "Elfeed-score is an add-on for Elfeed, an RSS reader for Emacs. It
9143 brings Gnus-style scoring to your RSS feeds. Elfeed, by default, displays
9144 feed entries by date. This package allows you to setup rules for assigning
9145 numeric scores to entries, and sorting entries with higher scores ahead of
9146 those with lower, regardless of date. The idea is to prioritize content
9147 important to you.")
9148 (license license:gpl3+)))
9149
9150 (define-public emacs-el-x
9151 (package
9152 (name "emacs-el-x")
9153 (version "0.3.1")
9154 (source (origin
9155 (method git-fetch)
9156 (uri (git-reference
9157 (url "https://github.com/sigma/el-x")
9158 (commit (string-append "v" version))))
9159 (file-name (git-file-name name version))
9160 (sha256
9161 (base32
9162 "1i6j44ssxm1xdg0mf91nh1lnprwsaxsx8vsrf720nan7mfr283h5"))))
9163 (build-system emacs-build-system)
9164 (arguments
9165 `(#:phases
9166 (modify-phases %standard-phases
9167 ;; Move the source files to the top level, which is included in
9168 ;; the EMACSLOADPATH.
9169 (add-after 'unpack 'move-source-files
9170 (lambda _
9171 (let ((el-files (find-files "./lisp" ".*\\.el$")))
9172 (for-each (lambda (f)
9173 (rename-file f (basename f)))
9174 el-files))
9175 #t)))))
9176 (home-page "https://github.com/sigma/el-x")
9177 (synopsis "Emacs Lisp extensions")
9178 (description "command@{emacs-el-x} defines the @code{dflet} macro to
9179 provide the historic behavior of @code{flet}, as well as
9180 @code{declare-function} stub for older Emacs.")
9181 (license license:gpl2+)))
9182
9183 (define-public emacs-mocker
9184 (package
9185 (name "emacs-mocker")
9186 (version "0.5.0")
9187 (source (origin
9188 (method git-fetch)
9189 (uri (git-reference
9190 (url "https://github.com/sigma/mocker.el")
9191 (commit (string-append "v" version))))
9192 (file-name (git-file-name name version))
9193 (sha256
9194 (base32
9195 "1dc514cqbfmg33sb3j90s5jmw6jnm3wzvs0zhw3maz13bp7w6z48"))))
9196 (build-system emacs-build-system)
9197 (arguments
9198 `(#:tests? #t
9199 #:test-command '("ert-runner")))
9200 (native-inputs
9201 `(("ert-runner" ,emacs-ert-runner)))
9202 (propagated-inputs
9203 `(("emacs-el-x" ,emacs-el-x)))
9204 (home-page "https://github.com/sigma/mocker.el")
9205 (synopsis "Mocking framework for Emacs Lisp")
9206 (description "Mocker.el is a framework for writing tests in Emacs Lisp.
9207 It uses regular Lisp rather than a domain specific language (DSL), which
9208 maximizes flexibility (at the expense of conciseness).")
9209 (license license:gpl2+)))
9210
9211 (define-public emacs-find-file-in-project
9212 (package
9213 (name "emacs-find-file-in-project")
9214 (version "6.0.0")
9215 (source (origin
9216 (method git-fetch)
9217 (uri (git-reference
9218 (url "https://github.com/technomancy/find-file-in-project")
9219 (commit version)))
9220 (file-name (git-file-name name version))
9221 (sha256
9222 (base32
9223 "1iagywiihwv96y9p811xlx4cmbsj8h76niymprv1vm4fj6cmihr6"))))
9224 (build-system emacs-build-system)
9225 (arguments
9226 `(#:tests? #t
9227 #:test-command '("ert-runner" "tests")))
9228 (native-inputs
9229 `(("ert-runner" ,emacs-ert-runner)))
9230 (home-page "https://github.com/technomancy/find-file-in-project")
9231 (synopsis "File/directory finder for Emacs")
9232 (description "@code{find-file-in-project} finds files or
9233 directories quickly in the current project. The project root is detected
9234 automatically when Git, Subversion or Mercurial are used. It also provides
9235 functions to assist in reviewing changes on files.")
9236 (license license:gpl3+)))
9237
9238 (define-public emacs-pyvenv
9239 (package
9240 (name "emacs-pyvenv")
9241 (version "1.21")
9242 (source (origin
9243 (method git-fetch)
9244 (uri (git-reference
9245 (url "https://github.com/jorgenschaefer/pyvenv")
9246 (commit (string-append "v" version))))
9247 (file-name (git-file-name name version))
9248 (sha256
9249 (base32
9250 "055sgk8zf4wb5nqsf3qasf5gg861zlb1831733f1qcrd2ij5gzxx"))))
9251 (build-system emacs-build-system)
9252 (arguments
9253 `(#:phases
9254 (modify-phases %standard-phases
9255 ;; This phase incorrectly attempts to substitute "activate" and fails
9256 ;; doing so.
9257 (delete 'patch-el-files))
9258 #:tests? #t
9259 #:test-command '("ert-runner")))
9260 (native-inputs
9261 `(("ert-runner" ,emacs-ert-runner)
9262 ("emacs-mocker" ,emacs-mocker)))
9263 (home-page "https://github.com/jorgenschaefer/pyvenv")
9264 (synopsis "Python virtual environment interface for Emacs")
9265 (description "pyvenv.el is a minor mode to support using Python virtual
9266 environments (virtualenv) inside Emacs.")
9267 (license license:gpl3+)))
9268
9269 (define-public emacs-highlight-indent-guides
9270 (let ((version "0.8.5") ; from package metadata
9271 (revision "0")
9272 (commit "c2c9de4d01edfb89609c91d4d7f1d81312015a2c"))
9273 (package
9274 (name "emacs-highlight-indent-guides")
9275 (version (git-version version revision commit))
9276 (source
9277 (origin
9278 (method git-fetch)
9279 (uri (git-reference
9280 (url "https://github.com/DarthFennec/highlight-indent-guides")
9281 (commit commit)))
9282 (file-name (git-file-name name version))
9283 (sha256
9284 (base32 "10chvqnmdmkx6i9sigqframr85ziyafiz44glwhvhjajfkv42ad2"))))
9285 (build-system emacs-build-system)
9286 (home-page
9287 "https://github.com/DarthFennec/highlight-indent-guides")
9288 (synopsis "Minor mode to highlight indentation")
9289 (description
9290 "This package provides a minor mode to highlight indentation levels via
9291 font-lock. Indent widths are dynamically discovered, which means this
9292 correctly highlights in any mode, regardless of indent width, even in
9293 languages with non-uniform indentation such as Haskell. This mode works
9294 properly around hard tabs and mixed indentation and behaves well in large
9295 buffers.")
9296 (license license:expat))))
9297
9298 (define-public emacs-highlight-indentation
9299 ;; Last release version is from 2015.
9300 (let ((commit "d03803f2c06749c430443a3d24e039cbafc9c58f")
9301 (revision "1"))
9302 (package
9303 (name "emacs-highlight-indentation")
9304 (version (git-version "0.7.0" revision commit))
9305 (source
9306 (origin
9307 (method git-fetch)
9308 (uri (git-reference
9309 (url "https://github.com/antonj/Highlight-Indentation-for-Emacs")
9310 (commit commit)))
9311 (file-name (git-file-name name version))
9312 (sha256
9313 (base32
9314 "1jq0gf4kcx9hvrw40rnw5c2qynjpjw1vsjbi2i4lqjbsnfnxn4wz"))))
9315 (build-system emacs-build-system)
9316 (home-page "https://github.com/antonj/Highlight-Indentation-for-Emacs/")
9317 (synopsis "Highlighting indentation for Emacs")
9318 (description "This package provides two minor modes to highlight
9319 indentation guides in Emacs:
9320
9321 @enumerate
9322 @item @code{highlight-indentation-mode}, which displays guidelines
9323 indentation (space indentation only).
9324 @item @code{highlight-indentation-current-column-mode}, which displays
9325 guidelines for the current-point indentation (space indentation only).
9326 @end enumerate")
9327 (license license:gpl2+))))
9328
9329 (define-public emacs-elpy
9330 (package
9331 (name "emacs-elpy")
9332 (version "1.35.0")
9333 (source (origin
9334 (method git-fetch)
9335 (uri (git-reference
9336 (url "https://github.com/jorgenschaefer/elpy")
9337 (commit version)))
9338 (file-name (git-file-name name version))
9339 (sha256
9340 (base32
9341 "07rdb9w3bxzfr07224awa541xdy116hyc2b3bpl3fc3ikddmbydk"))))
9342 (build-system emacs-build-system)
9343 (arguments
9344 `(#:include (cons* "^elpy/[^/]+\\.py$" "^snippets\\/" %default-include)
9345 #:phases
9346 (modify-phases %standard-phases
9347 (add-after 'unpack 'patch-ffip-project-search-call
9348 (lambda _
9349 ;; Since version 6.0.0 of find-file-in-project,
9350 ;; ffip-project-search doesn't accept a third argument anymore
9351 ;; (see: https://github.com/jorgenschaefer/elpy/issues/1889).
9352 (substitute* "elpy.el"
9353 (("\\((ffip-project-search nil nil) project-root\\)" _ signature)
9354 (format #f "(let ((ffip-project-root project-root)) (~a))"
9355 signature)))))
9356 ;; The default environment of the RPC uses Virtualenv to install
9357 ;; Python dependencies from PyPI. We don't want/need this in Guix.
9358 (add-before 'check 'do-not-use-virtualenv
9359 (lambda _
9360 (setenv "ELPY_TEST_DONT_USE_VIRTUALENV" "1")
9361 (substitute* "elpy-rpc.el"
9362 (("defcustom elpy-rpc-virtualenv-path 'default")
9363 "defcustom elpy-rpc-virtualenv-path 'system"))))
9364 (add-before 'check 'build-doc
9365 (lambda _
9366 (with-directory-excursion "docs"
9367 (invoke "make" "info" "man"))
9368 ;; Move .info file at the root so that it can installed by the
9369 ;; 'move-doc phase.
9370 (rename-file "docs/_build/texinfo/Elpy.info" "Elpy.info")))
9371 (add-after 'build-doc 'install-manpage
9372 (lambda* (#:key outputs #:allow-other-keys)
9373 (let* ((out (assoc-ref outputs "out"))
9374 (man1 (string-append out "/share/man/man1")))
9375 (mkdir-p man1)
9376 (copy-file "docs/_build/man/elpy.1"
9377 (string-append man1 "/elpy.1"))))))
9378 #:tests? #t
9379 #:test-command '("ert-runner")))
9380 (propagated-inputs
9381 `(("emacs-company" ,emacs-company)
9382 ("emacs-find-file-in-project" ,emacs-find-file-in-project)
9383 ("emacs-highlight-indentation" ,emacs-highlight-indentation)
9384 ("emacs-yasnippet" ,emacs-yasnippet)
9385 ("pyvenv" ,emacs-pyvenv)
9386 ("s" ,emacs-s)
9387 ;; The following are recommended Python dependencies that make Elpy
9388 ;; much more useful. Installing these avoids Elpy prompting to install them
9389 ;; from PyPI using pip.
9390 ("python-autopep8" ,python-autopep8)
9391 ("python-black" ,python-black)
9392 ("python-flake8" ,python-flake8)
9393 ("python-jedi" ,python-jedi)
9394 ("python-rope" ,python-rope)
9395 ("python-yapf" ,python-yapf)))
9396 (native-inputs
9397 `(("ert-runner" ,emacs-ert-runner)
9398 ("emacs-f" ,emacs-f)
9399 ("python" ,python-wrapper)
9400 ;; For documentation.
9401 ("python-sphinx" ,python-sphinx)
9402 ("texinfo" ,texinfo)))
9403 (home-page "https://github.com/jorgenschaefer/elpy")
9404 (synopsis "Python development environment for Emacs")
9405 (description "Elpy brings powerful Python editing to Emacs. It combines
9406 and configures a number of other packages written in Emacs Lisp as well as
9407 Python, together offering features such as navigation, documentation,
9408 completion, interactive development and more.")
9409 (license license:gpl3+)))
9410
9411 (define-public emacs-rainbow-delimiters
9412 (package
9413 (name "emacs-rainbow-delimiters")
9414 (version "2.1.4")
9415 (source (origin
9416 (method git-fetch)
9417 (uri (git-reference
9418 (url "https://github.com/Fanael/rainbow-delimiters")
9419 (commit version)))
9420 (file-name (git-file-name name version))
9421 (sha256
9422 (base32
9423 "1zr2669savnmkc68hiqsq9wccm6bs1j6jbmlac1xqh6nq7xgq36g"))))
9424 (build-system emacs-build-system)
9425 (home-page "https://github.com/Fanael/rainbow-delimiters")
9426 (arguments
9427 `(#:tests? #t
9428 #:test-command '("emacs" "-Q" "-batch"
9429 "-l" "rainbow-delimiters-test.el"
9430 "-f" "ert-run-tests-batch-and-exit")))
9431 (synopsis "Highlight brackets according to their depth")
9432 (description
9433 "Rainbow-delimiters is a \"rainbow parentheses\"-like mode for Emacs which
9434 highlights parentheses, brackets, and braces according to their depth. Each
9435 successive level is highlighted in a different color, making it easy to spot
9436 matching delimiters, orient yourself in the code, and tell which statements
9437 are at a given level.")
9438 (license license:gpl3+)))
9439
9440 (define-public emacs-rainbow-identifiers
9441 (package
9442 (name "emacs-rainbow-identifiers")
9443 (version "0.2.2")
9444 (source (origin
9445 (method url-fetch)
9446 (uri (string-append "https://raw.githubusercontent.com/Fanael"
9447 "/rainbow-identifiers/" version
9448 "/rainbow-identifiers.el"))
9449 (file-name (string-append "rainbow-identifiers-" version ".el"))
9450 (sha256
9451 (base32
9452 "0325abxj47k0g1i8nqrq70w2wr6060ckhhf92krv1s072b3jzm31"))))
9453 (build-system emacs-build-system)
9454 (home-page "https://github.com/Fanael/rainbow-identifiers")
9455 (synopsis "Highlight identifiers in source code")
9456 (description
9457 "Rainbow identifiers mode is an Emacs minor mode providing highlighting of
9458 identifiers based on their names. Each identifier gets a color based on a hash
9459 of its name.")
9460 (license license:bsd-2)))
9461
9462 (define-public emacs-rainbow-mode
9463 (package
9464 (name "emacs-rainbow-mode")
9465 (version "1.0.5")
9466 (source
9467 (origin
9468 (method url-fetch)
9469 (uri (string-append "https://elpa.gnu.org/packages/"
9470 "rainbow-mode-" version ".el"))
9471 (sha256
9472 (base32 "159fps843k5pap9k04a7ll1k3gw6d9c6w08lq4bbc3lqg78aa2l9"))))
9473 (build-system emacs-build-system)
9474 (home-page "https://elpa.gnu.org/packages/rainbow-mode.html")
9475 (synopsis "Colorize color names in buffers")
9476 (description
9477 "This minor mode sets background color to strings that match color
9478 names, e.g., @samp{#0000ff} is displayed in white with a blue background.")
9479 (license license:gpl3+)))
9480
9481 (define-public emacs-ryo-modal
9482 ;; Package has no release. Version is extracted from "Version:" keyword in
9483 ;; main file.
9484 (let ((commit "3a54312eea7023a86ca3f8eb3c03c872554bff2f")
9485 (revision "0"))
9486 (package
9487 (name "emacs-ryo-modal")
9488 (version (git-version "0.4" revision commit))
9489 (source
9490 (origin
9491 (method git-fetch)
9492 (uri (git-reference
9493 (url "https://github.com/Kungsgeten/ryo-modal")
9494 (commit commit)))
9495 (file-name (git-file-name name version))
9496 (sha256
9497 (base32 "1cyvp3bi6yhckbdnq98xvghmhdzghya5y9wd7hxjawibs75rza95"))))
9498 (build-system emacs-build-system)
9499 (home-page "https://github.com/Kungsgeten/ryo-modal")
9500 (synopsis "Emacs minor mode for defining modal editing environments")
9501 (description "RYO modal provides a convenient way of defining modal
9502 keybindings in Emacs, and does not come with any predefined bindings.")
9503 (license license:expat))))
9504
9505 (define-public emacs-visual-fill-column
9506 (package
9507 (name "emacs-visual-fill-column")
9508 (version "2.2")
9509 (source
9510 (origin
9511 (method git-fetch)
9512 (uri (git-reference
9513 (url "https://github.com/joostkremers/visual-fill-column")
9514 (commit version)))
9515 (file-name (git-file-name name version))
9516 (sha256
9517 (base32 "1wjb4zm9mx07v0qx2fxmclg4pg0ssgnf8lp89wc56kmc0s40jhii"))))
9518 (build-system emacs-build-system)
9519 (home-page "https://github.com/joostkremers/visual-fill-column")
9520 (synopsis "Fill-column for visual-line-mode")
9521 (description
9522 "@code{visual-fill-column-mode} is a small Emacs minor mode that mimics
9523 the effect of @code{fill-column} in @code{visual-line-mode}. Instead of
9524 wrapping lines at the window edge, which is the standard behaviour of
9525 @code{visual-line-mode}, it wraps lines at @code{fill-column}. If
9526 @code{fill-column} is too large for the window, the text is wrapped at the
9527 window edge.")
9528 (license license:gpl3+)))
9529
9530 (define-public emacs-writeroom
9531 (package
9532 (name "emacs-writeroom")
9533 (version "3.11")
9534 (source
9535 (origin
9536 (method git-fetch)
9537 (uri (git-reference
9538 (url "https://github.com/joostkremers/writeroom-mode")
9539 (commit version)))
9540 (file-name (git-file-name name version))
9541 (sha256
9542 (base32
9543 "0y4jcja9kml1lq88r8b9myk39dgaggh7q7f3a43sj828hvzlccb7"))))
9544 (build-system emacs-build-system)
9545 (propagated-inputs
9546 `(("emacs-visual-fill-column" ,emacs-visual-fill-column)))
9547 (home-page "https://github.com/joostkremers/writeroom-mode")
9548 (synopsis "Distraction-free writing for Emacs")
9549 (description
9550 "This package defines a minor mode for distraction-free writing. Some of
9551 the default effects include entering fullscreen, deleting other windows of the
9552 current frame, disabling the mode line, and adding margins to the buffer that
9553 restrict the text width to 80 characters.")
9554 (license license:bsd-3)))
9555
9556 (define-public emacs-ido-completing-read+
9557 (package
9558 (name "emacs-ido-completing-read+")
9559 (version "4.13")
9560 (source (origin
9561 (method url-fetch)
9562 (uri (string-append "https://raw.githubusercontent.com"
9563 "/DarwinAwardWinner/ido-ubiquitous/v"
9564 version "/ido-completing-read+.el"))
9565 (file-name (string-append "ido-completing-read+-" version ".el"))
9566 (sha256
9567 (base32
9568 "0g2ixvw2sxpvrgz78745zi6iql4501pqi85zi6j31dnc1hx1i0r6"))))
9569 (build-system emacs-build-system)
9570 (propagated-inputs
9571 `(("emacs-s" ,emacs-s)))
9572 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
9573 (synopsis "Replacement for completing-read using ido")
9574 (description
9575 "The ido-completing-read+ function is a wrapper for ido-completing-read.
9576 Importantly, it detects edge cases that ordinary ido cannot handle and either
9577 adjusts them so ido can handle them, or else simply falls back to the standard
9578 Emacs completion function instead.")
9579 (license license:gpl3+)))
9580
9581 (define-public emacs-ido-ubiquitous
9582 (package
9583 (name "emacs-ido-ubiquitous")
9584 (version "4.13")
9585 (source (origin
9586 (method url-fetch)
9587 (uri (string-append "https://raw.githubusercontent.com"
9588 "/DarwinAwardWinner/ido-ubiquitous/v"
9589 version "/ido-ubiquitous.el"))
9590 (file-name (string-append "ido-ubiquitous-" version ".el"))
9591 (sha256
9592 (base32
9593 "08iwvqknicqlffda7ixwgzw7q9g2g4j4nsxdw6544r85vaysi4cc"))))
9594 (build-system emacs-build-system)
9595 (propagated-inputs
9596 `(("emacs-ido-completing-read+" ,emacs-ido-completing-read+)))
9597 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
9598 (synopsis "Use ido (nearly) everywhere")
9599 (description
9600 "Ido-ubiquitous enables ido-style completion for almost every function
9601 that uses the standard completion function completing-read.")
9602 (license license:gpl3+)))
9603
9604 (define-public emacs-yaml-mode
9605 (package
9606 (name "emacs-yaml-mode")
9607 (version "0.0.15")
9608 (source
9609 (origin
9610 (method git-fetch)
9611 (uri (git-reference
9612 (url "https://github.com/yoshiki/yaml-mode")
9613 (commit version)))
9614 (file-name (git-file-name name version))
9615 (sha256
9616 (base32 "0gsa153yp8lmwrvcc3nzpw5lj037y7q2nm23k5k404r5as4k355l"))))
9617 (build-system emacs-build-system)
9618 (home-page "https://github.com/yoshiki/yaml-mode")
9619 (synopsis "Major mode for editing YAML files")
9620 (description
9621 "Yaml mode is an Emacs major mode for editing files in the YAML data
9622 serialization format. As YAML and Python share the fact that indentation
9623 determines structure, this mode provides indentation and indentation command
9624 behavior very similar to that of Python mode.")
9625 (license license:gpl3+)))
9626
9627 (define-public emacs-gitlab-ci-mode
9628 (package
9629 (name "emacs-gitlab-ci-mode")
9630 (version "20190425.11.10")
9631 (source (origin
9632 (method git-fetch)
9633 (uri (git-reference
9634 (url "https://gitlab.com/joewreschnig/gitlab-ci-mode.git")
9635 (commit (string-append "v" version))))
9636 (file-name (git-file-name name version))
9637 (sha256
9638 (base32
9639 "1jkp9mnbiccqnha9zs646znqyqvy5jjb81kah7ghbkzdqqk2avm0"))))
9640 (build-system emacs-build-system)
9641 (propagated-inputs
9642 `(("emacs-yaml-mode" ,emacs-yaml-mode)))
9643 (home-page "https://gitlab.com/joewreschnig/gitlab-ci-mode/")
9644 (synopsis "Emacs mode for editing GitLab CI files")
9645 (description
9646 "@code{gitlab-ci-mode} is an Emacs major mode for editing GitLab CI
9647 files. It provides syntax highlighting and completion for keywords and
9648 special variables. An interface to GitLab’s CI file linter is also provided
9649 via @code{gitlab-ci-lint}.")
9650 (license license:gpl3+)))
9651
9652 (define-public emacs-gitlab-snip-helm
9653 (package
9654 (name "emacs-gitlab-snip-helm")
9655 (version "0.0.2")
9656 (source (origin
9657 (method git-fetch)
9658 (uri (git-reference
9659 (url "https://gitlab.com/sasanidas/gitlab-snip-helm.git")
9660 (commit version)))
9661 (file-name (git-file-name name version))
9662 (sha256
9663 (base32
9664 "1c5js19zyb1z61hapvbfcl5jhrjqij46cxldgqij6al0scw44dga"))))
9665 (build-system emacs-build-system)
9666 (propagated-inputs
9667 `(("emacs-dash" ,emacs-dash)
9668 ("emacs-helm" ,emacs-helm)))
9669 (home-page "https://gitlab.com/sasanidas/gitlab-snip-helm/")
9670 (synopsis "GitLab snippet API interaction for Emacs")
9671 (description "This package provides GitLab snippet API interaction for
9672 Emacs.")
9673 (license license:gpl3+)))
9674
9675 (define-public emacs-web-mode
9676 (package
9677 (name "emacs-web-mode")
9678 (version "17")
9679 (source
9680 (origin
9681 (method git-fetch)
9682 (uri (git-reference
9683 (url "https://github.com/fxbois/web-mode")
9684 (commit (string-append "v" version))))
9685 (file-name (git-file-name name version))
9686 (sha256
9687 (base32 "0jr5a1nzp8nbdng0k2fcaymiiv9ngrbknbrqaswgqn3akvx793jk"))))
9688 (build-system emacs-build-system)
9689 (synopsis "Major mode for editing web templates")
9690 (description "Web mode is an Emacs major mode for editing web templates
9691 aka HTML files embedding parts (CSS/JavaScript) and blocks (pre rendered by
9692 client/server side engines). Web mode is compatible with many template
9693 engines: PHP, JSP, ASP, Django, Twig, Jinja, Mustache, ERB, FreeMarker,
9694 Velocity, Cheetah, Smarty, CTemplate, Mustache, Blade, ErlyDTL, Go Template,
9695 Dust.js, React/JSX, Angularjs, ejs, etc.")
9696 (home-page "https://web-mode.org/")
9697 (license license:gpl3+)))
9698
9699 (define-public emacs-templatel
9700 (package
9701 (name "emacs-templatel")
9702 (version "0.1.4")
9703 (source
9704 (origin
9705 (method git-fetch)
9706 (uri (git-reference
9707 (url "https://github.com/clarete/templatel")
9708 (commit version)))
9709 (file-name (git-file-name name version))
9710 (sha256
9711 (base32 "1k33h503038l2bcr8gs020z2cjxfs94lamkdgv52cvd9i20d0kqq"))))
9712 (build-system emacs-build-system)
9713 (home-page "https://clarete.li/templatel")
9714 (synopsis "Jinja inspired template language for Emacs Lisp")
9715 (description
9716 "templatel is the modern templating language. It provides variable
9717 substitution and control flow through a clean and powerful language inspired
9718 by Python's Jinja.")
9719 (license license:gpl3+)))
9720
9721 (define-public emacs-wgrep
9722 (package
9723 (name "emacs-wgrep")
9724 (version "2.3.2")
9725 (source (origin
9726 (method git-fetch)
9727 (uri (git-reference
9728 (url "https://github.com/mhayashi1120/Emacs-wgrep")
9729 (commit version)))
9730 (file-name (git-file-name name version))
9731 (sha256
9732 (base32
9733 "00cwqzb94jlq4mwgv8z7r3mn0a6mhq95z6j189kacq9g4473zh8d"))))
9734 (build-system emacs-build-system)
9735 (home-page "https://github.com/mhayashi1120/Emacs-wgrep")
9736 (synopsis "Edit a grep buffer and apply those changes to the files")
9737 (description
9738 "Emacs wgrep allows you to edit a grep buffer and apply those changes
9739 to the file buffer. Several backends are supported beside the classic grep:
9740 ack, ag, helm and pt.")
9741 (license license:gpl3+)))
9742
9743 (define-public emacs-helm
9744 (package
9745 (name "emacs-helm")
9746 (version "3.7.0")
9747 (source
9748 (origin
9749 (method git-fetch)
9750 (uri (git-reference
9751 (url "https://github.com/emacs-helm/helm")
9752 (commit (string-append "v" version))))
9753 (file-name (git-file-name name version))
9754 (sha256
9755 (base32 "0lxq13bsbh7xawgsq08kjm7s28x9yl8mid3538flv5kcc1rv2b9y"))))
9756 (build-system emacs-build-system)
9757 (propagated-inputs
9758 `(("emacs-async" ,emacs-async)
9759 ("emacs-popup" ,emacs-popup)))
9760 (home-page "https://emacs-helm.github.io/helm/")
9761 (synopsis "Incremental completion and selection narrowing
9762 framework for Emacs")
9763 (description "Helm is incremental completion and selection narrowing
9764 framework for Emacs. It will help steer you in the right direction when
9765 you're looking for stuff in Emacs (like buffers, files, etc). Helm is a fork
9766 of @code{anything.el} originally written by Tamas Patrovic and can be
9767 considered to be its successor. Helm sets out to clean up the legacy code in
9768 @code{anything.el} and provide a cleaner, leaner and more modular tool, that's
9769 not tied in the trap of backward compatibility.")
9770 (license license:gpl3+)))
9771
9772 (define-public emacs-helm-org
9773 (let ((commit "8457e1e46227bf87726e05c42cec5a4b51c2ef7b")
9774 (revision "3"))
9775 (package
9776 (name "emacs-helm-org")
9777 (version (git-version "1.0" revision commit))
9778 (source
9779 (origin
9780 (method git-fetch)
9781 (uri (git-reference
9782 (url "https://github.com/emacs-helm/helm-org")
9783 (commit commit)))
9784 (file-name (git-file-name name version))
9785 (sha256
9786 (base32 "0kcjhwwi492n9m2w894hvdavfvhj45zygy7bwvx103wvpay5h6h6"))))
9787 (build-system emacs-build-system)
9788 (propagated-inputs
9789 `(("emacs-helm" ,emacs-helm)))
9790 (home-page "https://github.com/emacs-helm/helm-org")
9791 (synopsis "Helm interface to the Silver Searcher")
9792 (description
9793 "This package provides a frontend for grepping tools like ag and ack,
9794 as well as features for editing search results.")
9795 (license license:gpl3+))))
9796
9797 (define-public emacs-helm-swoop
9798 (package
9799 (name "emacs-helm-swoop")
9800 (version "3.0.0")
9801 (source
9802 (origin
9803 (method git-fetch)
9804 (uri (git-reference
9805 (url "https://github.com/emacsorphanage/helm-swoop")
9806 (commit version)))
9807 (file-name (git-file-name name version))
9808 (sha256
9809 (base32 "1qjay0fvryxa8n1ws6r1by512p2fylb2nj7ycm1497fcalb0d706"))))
9810 (build-system emacs-build-system)
9811 (propagated-inputs
9812 `(("emacs-helm" ,emacs-helm)))
9813 (home-page "https://github.com/emacsorphanage/helm-swoop")
9814 (synopsis "Filter and jump to lines in an Emacs buffer using Helm")
9815 (description
9816 "This package builds on the Helm interface to provide several commands
9817 for search-based navigation of buffers.")
9818 (license license:gpl2+)))
9819
9820 (define-public emacs-helm-ag
9821 (package
9822 (name "emacs-helm-ag")
9823 (version "0.62")
9824 (source
9825 (origin
9826 (method git-fetch)
9827 (uri (git-reference
9828 (url "https://github.com/syohex/emacs-helm-ag")
9829 (commit version)))
9830 (file-name (git-file-name name version))
9831 (sha256
9832 (base32 "0xgbpp8xqdiyvfs64x0q909g77ml28z3irw2lnasvpsg0dfdm2zy"))))
9833 (build-system emacs-build-system)
9834 (propagated-inputs
9835 `(("emacs-helm" ,emacs-helm)))
9836 (home-page "https://github.com/syohex/emacs-helm-ag")
9837 (synopsis "Helm interface to the Silver Searcher")
9838 (description
9839 "This package provides a frontend for grepping tools like ag and ack,
9840 as well as features for editing search results.")
9841 (license license:gpl3+)))
9842
9843 (define-public emacs-helm-projectile
9844 (package
9845 (name "emacs-helm-projectile")
9846 (version "1.0.0")
9847 (source
9848 (origin
9849 (method git-fetch)
9850 (uri (git-reference
9851 (url "https://github.com/bbatsov/helm-projectile")
9852 (commit (string-append "v" version))))
9853 (file-name (git-file-name name version))
9854 (sha256
9855 (base32 "05gpg90gg03yalmv9fw1y9k21i2l617iipvs0p9n80aln8nrzs8g"))))
9856 (build-system emacs-build-system)
9857 (propagated-inputs
9858 `(("emacs-helm" ,emacs-helm)
9859 ("emacs-projectile" ,emacs-projectile)))
9860 (home-page "https://github.com/bbatsov/helm-projectile")
9861 (synopsis "Helm integration for Projectile")
9862 (description
9863 "This Emacs library provides a Helm interface for Projectile.")
9864 (license license:gpl3+)))
9865
9866 (define-public emacs-taskrunner
9867 (let ((commit "3afd4a546d42339543d3d4e51b175fc3e82b3358")
9868 (revision "1"))
9869 (package
9870 (name "emacs-taskrunner")
9871 (version (git-version "0.6" revision commit))
9872 (source
9873 (origin
9874 (method git-fetch)
9875 (uri (git-reference
9876 (url "https://github.com/emacs-taskrunner/emacs-taskrunner")
9877 (commit commit)))
9878 (file-name (git-file-name name version))
9879 (sha256
9880 (base32
9881 "1lkdvmjn3alhqxq2i64sdr977sbw3g0b2670d9bwyzi67qh0jxrv"))))
9882 (build-system emacs-build-system)
9883 (propagated-inputs
9884 `(("emacs-async" ,emacs-async)
9885 ("emacs-projectile" ,emacs-projectile)))
9886 (home-page "https://github.com/emacs-taskrunner/emacs-taskrunner")
9887 (synopsis "Retrieve tasks from various build systems and task-runners")
9888 (description "This package parses Makefiles and build-system files for
9889 multiple project types.")
9890 (license license:gpl3+))))
9891
9892 (define-public emacs-ivy-taskrunner
9893 (let ((commit "75d8d67cfe3c29663fe0f5508a887adf40ed5162")
9894 (revision "1"))
9895 (package
9896 (name "emacs-ivy-taskrunner")
9897 (version (git-version "0.9" revision commit))
9898 (source
9899 (origin
9900 (method git-fetch)
9901 (uri (git-reference
9902 (url "https://github.com/emacs-taskrunner/ivy-taskrunner")
9903 (commit commit)))
9904 (file-name (git-file-name name version))
9905 (sha256
9906 (base32
9907 "1wf4s4k0ap21f7g5w6128an8nsvbja7f5n889vcml5b6gjz058db"))))
9908 (build-system emacs-build-system)
9909 (propagated-inputs
9910 `(("emacs-ivy" ,emacs-ivy)
9911 ("emacs-taskrunner" ,emacs-taskrunner)
9912 ("emacs-projectile" ,emacs-projectile)))
9913 (home-page "https://github.com/emacs-taskrunner/ivy-taskrunner")
9914 (synopsis "Retrieve build-system tasks using Ivy")
9915 (description "This package provides an Ivy interface for selecting
9916 Makefile targets.")
9917 (license license:gpl3+))))
9918
9919 (define-public emacs-helm-taskrunner
9920 (let ((commit "1910dac19cbc7bd4fd08b0faf9affd455339fbea")
9921 (revision "1"))
9922 (package
9923 (name "emacs-helm-taskrunner")
9924 (version (git-version "0.9" revision commit))
9925 (source
9926 (origin
9927 (method git-fetch)
9928 (uri (git-reference
9929 (url "https://github.com/emacs-taskrunner/helm-taskrunner")
9930 (commit commit)))
9931 (file-name (git-file-name name version))
9932 (sha256
9933 (base32
9934 "182lmr858fx6rdhp1fy7kv8dvrhzcnxzwfck1q22s6xs8x85d5q7"))))
9935 (build-system emacs-build-system)
9936 (propagated-inputs
9937 `(("emacs-helm" ,emacs-helm)
9938 ("emacs-taskrunner" ,emacs-taskrunner)
9939 ("emacs-projectile" ,emacs-projectile)))
9940 (home-page "https://github.com/emacs-taskrunner/helm-taskrunner")
9941 (synopsis "Retrieve build-system tasks using Helm")
9942 (description "This package provides a Helm interface for selecting
9943 Makefile targets.")
9944 (license license:gpl3+))))
9945
9946 (define-public emacs-helm-make
9947 (let ((commit "feae8df22bc4b20705ea08ac9adfc2b43bb348d0")
9948 (revision "1"))
9949 (package
9950 (name "emacs-helm-make")
9951 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
9952 (source
9953 (origin
9954 (method git-fetch)
9955 (uri (git-reference
9956 (url "https://github.com/abo-abo/helm-make")
9957 (commit commit)))
9958 (file-name (git-file-name name version))
9959 (sha256
9960 (base32
9961 "1y2v77mmd1bfkkz51cnk1l0dg3lvvxc39wlamnm7wjns66dbvlam"))))
9962 (build-system emacs-build-system)
9963 (propagated-inputs
9964 `(("emacs-helm" ,emacs-helm)
9965 ("emacs-projectile" ,emacs-projectile)))
9966 (home-page "https://github.com/abo-abo/helm-make")
9967 (synopsis "Select a Makefile target with helm")
9968 (description "@code{helm-make} or @code{helm-make-projectile} will give
9969 you a @code{helm} selection of directory Makefile's targets. Selecting a
9970 target will call @code{compile} on it.")
9971 (license license:gpl3+))))
9972
9973 (define-public emacs-cider
9974 (package
9975 (name "emacs-cider")
9976 (version "1.0.0")
9977 (source
9978 (origin
9979 (method git-fetch)
9980 (uri (git-reference
9981 (url "https://github.com/clojure-emacs/cider")
9982 (commit (string-append "v" version))))
9983 (file-name (git-file-name name version))
9984 (sha256
9985 (base32 "143kh9k34yk0g6kdlkma6g432kmb2r9r1lhyq4irsw6d3vaql7dj"))))
9986 (build-system emacs-build-system)
9987 (arguments
9988 '(#:exclude ;don't exclude 'cider-test.el'
9989 '("^\\.dir-locals\\.el$" "^test/")))
9990 (propagated-inputs
9991 `(("emacs-clojure-mode" ,emacs-clojure-mode)
9992 ("emacs-parseedn" ,emacs-parseedn)
9993 ("emacs-pkg-info" ,emacs-pkg-info)
9994 ("emacs-queue" ,emacs-queue)
9995 ("emacs-sesman" ,emacs-sesman)
9996 ("emacs-spinner" ,emacs-spinner)))
9997 (home-page "https://cider.mx/")
9998 (synopsis "Clojure development environment for Emacs")
9999 (description
10000 "CIDER (Clojure Interactive Development Environment that Rocks) aims to
10001 provide an interactive development experience similar to the one you'd get
10002 when programming in Emacs Lisp, Common Lisp (with SLIME or Sly), Scheme (with
10003 Geiser) and Smalltalk.
10004
10005 CIDER is the successor to the now deprecated combination of using SLIME +
10006 swank-clojure for Clojure development.
10007
10008 There are plenty of differences between CIDER and SLIME, but the core ideas
10009 are pretty much the same (and SLIME served as the principle inspiration for
10010 CIDER).")
10011 (license license:gpl3+)))
10012
10013 (define-public emacs-sly
10014 ;; Update together with sbcl-slynk.
10015 (let ((commit "fb84318c08f59bc786e047006fc81e2ace568309"))
10016 ;; Versions are not always tagged. Besides, latest master contains
10017 ;; important fixes.
10018 (package
10019 (name "emacs-sly")
10020 (version (git-version "1.0.43" "4" commit))
10021 (source
10022 (origin
10023 (method git-fetch)
10024 (uri (git-reference
10025 (url "https://github.com/joaotavora/sly")
10026 (commit commit)))
10027 (file-name (git-file-name name version))
10028 (sha256
10029 (base32
10030 "0z123k9ak7yjb9bxb5qx48f33ma8066rhkqh8xc14z7shk75jybj"))))
10031 (build-system emacs-build-system)
10032 (native-inputs
10033 `(("texinfo" ,texinfo)))
10034 (arguments
10035 `(#:include (cons* "^contrib\\/" "^lib\\/" "^slynk\\/" %default-include)
10036 #:phases
10037 ;; The package provides autoloads.
10038 (modify-phases %standard-phases
10039 (delete 'make-autoloads)
10040 (add-before 'install 'install-doc
10041 (lambda* (#:key outputs #:allow-other-keys)
10042 (let* ((out (assoc-ref outputs "out"))
10043 (info-dir (string-append out "/share/info"))
10044 (doc-dir (string-append out "/share/doc/"
10045 ,name "-" ,version))
10046 (doc-files '( ;; "doc/sly-refcard.pdf" ; See sly-refcard.pdf below.
10047 "README.md" "NEWS.md" "PROBLEMS.md"
10048 "CONTRIBUTING.md")))
10049 (with-directory-excursion "doc"
10050 (substitute* "Makefile"
10051 (("infodir=/usr/local/info")
10052 (string-append "infodir=" info-dir))
10053 ;; Don't rebuild contributors.texi since we are not in
10054 ;; the git repo.
10055 (("contributors.texi: Makefile texinfo-tabulate.awk")
10056 "contributors.texi:"))
10057 (invoke "make" "html/index.html")
10058 (invoke "make" "sly.info")
10059 ;; TODO: We need minimal texlive with "preprint" package
10060 ;; (for fullpage.sty). (invoke "make" "sly-refcard.pdf")
10061 (install-file "sly.info" info-dir)
10062 (copy-recursively "html" (string-append doc-dir "/html")))
10063 (for-each (lambda (f)
10064 (install-file f doc-dir)
10065 (delete-file f))
10066 doc-files)
10067 (delete-file-recursively "doc")
10068 #t))))))
10069 (home-page "https://github.com/joaotavora/sly")
10070 (synopsis "Sylvester the Cat's Common Lisp IDE")
10071 (description
10072 "SLY is Sylvester the Cat's Common Lisp IDE. SLY is a fork of SLIME, and
10073 contains the following improvements over it:
10074
10075 @enumerate
10076 @item A full-featured REPL based on Emacs's @code{comint.el}. Everything
10077 can be copied to the REPL;
10078 @item Stickers, or live code annotations that record values as code traverses them.
10079 @item Flex-style completion out-of-the-box, using Emacs's completion API.
10080 Company, Helm, and other supported natively, no plugin required;
10081 @item An interactive Trace Dialog;
10082 @item Multiple inspectors and multiple REPLs, with independent history.
10083 @item Regexp-capable @code{M-x sly-apropos}.
10084 @item Cleanly ASDF-loaded by default, including contribs, enabled out-of-the-box;
10085 @item \"Presentations\" replaced by interactive backreferences, which
10086 highlight the object and remain stable throughout the REPL session;
10087 @end enumerate
10088
10089 SLY tracks SLIME's bugfixes and all its familiar features (debugger, inspector,
10090 xref, etc.) are still available, but with better integration.")
10091 (license license:gpl3+))))
10092
10093 (define-public emacs-sly-quicklisp
10094 (let ((commit "01ebe3976a244309f2e277c09206831135a0b66c")
10095 (revision "1"))
10096 (package
10097 (name "emacs-sly-quicklisp")
10098 (version (git-version "0.0.0" revision commit))
10099 (home-page "https://github.com/joaotavora/sly-quicklisp")
10100 (source
10101 (origin
10102 (method git-fetch)
10103 (uri (git-reference
10104 (url home-page)
10105 (commit commit)))
10106 (file-name (git-file-name name version))
10107 (sha256
10108 (base32
10109 "1vfqmvayf35g6y3ljsm3rlzv5jm50qikhh4lv2zkkswj6gkkb1cv"))))
10110 (build-system emacs-build-system)
10111 (propagated-inputs
10112 `(("emacs-sly" ,emacs-sly)))
10113 (arguments
10114 `(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
10115 #:phases
10116 ;; The package provides autoloads.
10117 (modify-phases %standard-phases
10118 (delete 'make-autoloads)
10119 (delete 'enable-autoloads-compilation))))
10120 (synopsis "Quicklisp support for SLY")
10121 (description
10122 "@command{sly-quicklisp} is an external contrib for SLY that provides a
10123 sly-quickload command that prompts the user for a package to install. ")
10124 (license license:gpl3+))))
10125
10126 (define-public emacs-sly-asdf
10127 (let ((commit "32ce14994e8faee9321605cec36d156b02996c46")
10128 (revision "4"))
10129 (package
10130 (name "emacs-sly-asdf")
10131 (version (git-version "0.1.0" revision commit))
10132 (home-page "https://github.com/mmgeorge/sly-asdf")
10133 (source
10134 (origin
10135 (method git-fetch)
10136 (uri (git-reference
10137 (url home-page)
10138 (commit commit)))
10139 (file-name (git-file-name name version))
10140 (sha256
10141 (base32
10142 "09x8l37wwqw74xc2frwzbfdb1if8rb3szg5akdk3v2qhik4sm3dd"))))
10143 (build-system emacs-build-system)
10144 (propagated-inputs
10145 `(("emacs-sly" ,emacs-sly)
10146 ("emacs-popup" ,emacs-popup)))
10147 (arguments
10148 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)))
10149 (synopsis "ASDF contrib for SLY")
10150 (description
10151 "@command{sly-asdf} is an external contrib for SLY that provides
10152 additional support for working with ASDF projects.")
10153 (license license:gpl3+))))
10154
10155 (define-public emacs-sly-named-readtables
10156 (let ((commit "a5a42674ccffa97ccd5e4e9742beaf3ea719931f")
10157 (revision "1"))
10158 (package
10159 (name "emacs-sly-named-readtables")
10160 (version (git-version "0.1" revision commit))
10161 (home-page "https://github.com/joaotavora/sly-named-readtables")
10162 (source
10163 (origin
10164 (method git-fetch)
10165 (uri (git-reference
10166 (url home-page)
10167 (commit commit)))
10168 (file-name (git-file-name name version))
10169 (sha256
10170 (base32
10171 "16asd119rzqrlclps2q6yrkis8jy5an5xgzzqvb7jdyq39zxg54q"))))
10172 (build-system emacs-build-system)
10173 (propagated-inputs
10174 `(("emacs-sly" ,emacs-sly)))
10175 (arguments
10176 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
10177 #:phases (modify-phases %standard-phases
10178 ;; Byte compilation of the autoload file fails.
10179 (delete 'enable-autoloads-compilation))))
10180 (synopsis "Named-readtables support for SLY")
10181 (description
10182 "@command{sly-named-readtables} is an external contrib for SLY that
10183 enables different readtables to be active in different parts of the same
10184 file.")
10185 (license license:gpl3+))))
10186
10187 (define-public emacs-sly-macrostep
10188 (let ((commit "5113e4e926cd752b1d0bcc1508b3ebad5def5fad")
10189 (revision "2"))
10190 (package
10191 (name "emacs-sly-macrostep")
10192 (version (git-version "0.1" revision commit))
10193 (home-page "https://github.com/joaotavora/sly-macrostep")
10194 (source
10195 (origin
10196 (method git-fetch)
10197 (uri (git-reference
10198 (url home-page)
10199 (commit commit)))
10200 (file-name (git-file-name name version))
10201 (sha256
10202 (base32
10203 "1nxf28gn4f3n0wnv7nb5sgl36fz175y470zs9hig4kq8cp0yal0r"))))
10204 (build-system emacs-build-system)
10205 (propagated-inputs
10206 `(("emacs-sly" ,emacs-sly)
10207 ("emacs-macrostep" ,emacs-macrostep)))
10208 (arguments
10209 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
10210 #:phases
10211 ;; The package provides autoloads.
10212 (modify-phases %standard-phases
10213 (delete 'make-autoloads)
10214 (delete 'enable-autoloads-compilation))))
10215 (synopsis "Expand Common Lisp macros inside source files with SLY")
10216 (description
10217 "@command{sly-macrostep} is a SLY contrib for expanding CL macros right
10218 inside the source file.")
10219 (license license:gpl3+))))
10220
10221 (define-public emacs-sly-stepper
10222 (let ((commit "ec3c0a7f3c8b82926882e5fcfdacf67b86d989f8"))
10223 (package
10224 (name "emacs-sly-stepper")
10225 (version (git-version "0.0.0" "1" commit))
10226 (home-page "https://github.com/joaotavora/sly-stepper")
10227 (source
10228 (origin
10229 (method git-fetch)
10230 (uri (git-reference
10231 (url home-page)
10232 (commit commit)))
10233 (file-name (git-file-name name version))
10234 (sha256
10235 (base32
10236 "1hxniaxifdw3m4y4yssgy22xcmmf558wx7rpz66wy5hwybjslf7b"))))
10237 (build-system emacs-build-system)
10238 (inputs
10239 `(("cl-agnostic-lizard" ,cl-agnostic-lizard)))
10240 (propagated-inputs
10241 `(("emacs-sly" ,emacs-sly)))
10242 (arguments
10243 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
10244 #:phases
10245 (modify-phases %standard-phases
10246 ;; The package provides autoloads.
10247 (delete 'make-autoloads)
10248 (delete 'enable-autoloads-compilation)
10249 (add-after 'add-source-to-load-path 'add-contrib-to-emacs-load-path
10250 (lambda* (#:key inputs #:allow-other-keys)
10251 (let ((sly (assoc-ref inputs "emacs-sly")))
10252 (setenv "EMACSLOADPATH"
10253 (string-append sly "/share/emacs/site-lisp/contrib:"
10254 (getenv "EMACSLOADPATH"))))
10255 #t))
10256 (add-after 'install 'find-agnostic-lizard
10257 (lambda* (#:key inputs outputs #:allow-other-keys)
10258 (let* ((out (assoc-ref outputs "out"))
10259 (file (string-append out "/share/emacs/site-lisp/"
10260 "slynk-stepper.lisp"))
10261 (asd (string-append
10262 (assoc-ref inputs "cl-agnostic-lizard")
10263 "/share/common-lisp/systems/agnostic-lizard.asd")))
10264 ;; agnostic-lizard is found at runtime.
10265 (substitute* file
10266 (("\\(require :asdf\\)")
10267 (string-append
10268 "(require :asdf)\n"
10269 " (funcall (read-from-string \"asdf:load-asd\")\n"
10270 " \"" asd "\")\n")))))))))
10271 (synopsis "Portable Common Lisp stepper interface for Emacs")
10272 (description
10273 "This package features a new, portable, visual stepping facility for
10274 Common Lisp, realized as an extension to SLY.")
10275 (license license:gpl3+))))
10276
10277 (define-public emacs-sly-package-inferred
10278 (let ((commit "800e71e2be631422277e2ec77e6d6f6ea20e95ef")
10279 (revision "1"))
10280 (package
10281 (name "emacs-sly-package-inferred")
10282 (version (git-version "0.1" revision commit))
10283 (home-page "https://github.com/40ants/sly-package-inferred")
10284 (source
10285 (origin
10286 (method git-fetch)
10287 (uri (git-reference
10288 (url home-page)
10289 (commit commit)))
10290 (file-name (git-file-name name version))
10291 (sha256
10292 (base32
10293 "1216idyp034nkqddhw4p53jkhhdxa6xnjjmsvijpf4rxqnfqvapg"))))
10294 (build-system emacs-build-system)
10295 (propagated-inputs
10296 `(("emacs-sly" ,emacs-sly)))
10297 (arguments
10298 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
10299 #:phases
10300 ;; The package provides autoloads.
10301 (modify-phases %standard-phases
10302 (delete 'make-autoloads))))
10303 (synopsis "Improved package inferred systems support for SLY")
10304 (description
10305 "@command{sly-package-inferred} is an external contrib for SLY that
10306 replaces its completion with a function which is better suited for systems
10307 using package inferred style.")
10308 (license license:gpl3+))))
10309
10310 (define-public emacs-lua-mode
10311 (package
10312 (name "emacs-lua-mode")
10313 (version "20201010")
10314 (home-page "https://github.com/immerrr/lua-mode/")
10315 (source
10316 (origin
10317 (method git-fetch)
10318 (uri (git-reference
10319 (url home-page)
10320 (commit (string-append "v" version))))
10321 (file-name (git-file-name name version))
10322 (sha256
10323 (base32 "0zf43f7fkrgki6pbc09zak975p4jx1yf3ipfs38hypfl9s5d6xrf"))))
10324 (build-system emacs-build-system)
10325 (arguments
10326 `(#:tests? #t
10327 #:test-command '("buttercup" "-l" "lua-mode.el")))
10328 (native-inputs
10329 `(("emacs-buttercup" ,emacs-buttercup)
10330 ("lua" ,lua)))
10331 (synopsis "Major mode for lua")
10332 (description
10333 "This Emacs package provides a mode for @uref{https://www.lua.org/,
10334 Lua programming language}.")
10335 (license license:gpl2+)))
10336
10337 (define-public emacs-ebuild-mode
10338 (package
10339 (name "emacs-ebuild-mode")
10340 (version "1.52")
10341 (source
10342 (origin
10343 (method url-fetch)
10344 (uri (string-append
10345 "https://dev.gentoo.org/~ulm/emacs/"
10346 "ebuild-mode-" version ".tar.xz"))
10347 (file-name (string-append name "-" version ".tar.xz"))
10348 (sha256
10349 (base32 "10nikbbwh612qlnms2i31963a0h3ccyg85vrxlizdpsqs4cjpg6h"))))
10350 (build-system emacs-build-system)
10351 (arguments
10352 '(#:phases
10353 (modify-phases %standard-phases
10354 (add-after 'install 'install-doc
10355 (lambda* (#:key outputs #:allow-other-keys)
10356 (invoke "make" "ebuild-mode.info")
10357 (install-file "ebuild-mode.info"
10358 (string-append (assoc-ref outputs "out")
10359 "/share/info"))
10360 #t)))))
10361 (native-inputs
10362 `(("texinfo" ,texinfo)))
10363 (home-page "https://devmanual.gentoo.org")
10364 (synopsis "Major modes for Gentoo package files")
10365 (description
10366 "This Emacs package provides modes for ebuild, eclass, eblit, GLEP42
10367 news items, openrc and runscripts.")
10368 (license license:gpl2+)))
10369
10370 (define-public emacs-evil
10371 (package
10372 (name "emacs-evil")
10373 (version "1.14.0")
10374 (source
10375 (origin
10376 (method git-fetch)
10377 (uri (git-reference
10378 (url "https://github.com/emacs-evil/evil")
10379 (commit version)))
10380 (file-name (git-file-name name version))
10381 (sha256
10382 (base32
10383 "17xrn3s6a4afmls8fw8nnxa1jq9dmj2qqrxa2vngh50hxpz8840p"))))
10384 (arguments
10385 `(#:phases
10386 (modify-phases %standard-phases
10387 (add-before 'check 'fix-test-helpers
10388 (lambda _
10389 (substitute* "evil-test-helpers.el"
10390 (("\\(undo-tree-mode 1\\)") ""))
10391 #t))
10392 (add-before 'install 'make-info
10393 (lambda _
10394 (with-directory-excursion "doc/build/texinfo"
10395 (invoke "makeinfo" "--no-split"
10396 "-o" "evil.info" "evil.texi")))))))
10397 (build-system emacs-build-system)
10398 (native-inputs `(("texinfo" ,texinfo)))
10399 (home-page "https://github.com/emacs-evil/evil")
10400 (synopsis "Extensible Vi layer for Emacs")
10401 (description
10402 "Evil is an extensible vi layer for Emacs. It emulates the
10403 main features of Vim, and provides facilities for writing custom
10404 extensions.")
10405 (license license:gpl3+)))
10406
10407 (define-public emacs-evil-collection
10408 (package
10409 (name "emacs-evil-collection")
10410 (version "0.0.5")
10411 (source (origin
10412 (method git-fetch)
10413 (uri (git-reference
10414 (url "https://github.com/emacs-evil/evil-collection")
10415 (commit version)))
10416 (file-name (git-file-name name version))
10417 (sha256
10418 (base32
10419 "0dxrwcf5dnww0a9mvwjkcgm8ry3y282v9l85jh0645zk71nz1in3"))))
10420 (build-system emacs-build-system)
10421 (propagated-inputs
10422 `(("emacs-evil" ,emacs-evil)
10423 ("emacs-annalist" ,emacs-annalist)))
10424 (arguments
10425 `(#:include (cons* "^modes\\/" %default-include)))
10426 (home-page "https://github.com/emacs-evil/evil-collection")
10427 (synopsis "Collection of Evil bindings for many major and minor modes")
10428 (description "This is a collection of Evil bindings for the parts of
10429 Emacs that Evil does not cover properly by default, such as @code{help-mode},
10430 @code{M-x calendar}, Eshell and more.")
10431 (license license:gpl3+)))
10432
10433 (define-public emacs-evil-goggles
10434 (let ((commit "08a22058fd6a167f9f1b684c649008caef571459")
10435 (version "0.0.1")
10436 (revision "0"))
10437 (package
10438 (name "emacs-evil-goggles")
10439 (version (git-version version revision commit))
10440 (source
10441 (origin
10442 (method git-fetch)
10443 (uri (git-reference
10444 (url "https://github.com/edkolev/evil-goggles")
10445 (commit commit)))
10446 (file-name (git-file-name name version))
10447 (sha256
10448 (base32 "1p3vjrij63v9nrcyj3b5jsqzv9y7dgv9i1inx1q7x3s90vndavac"))))
10449 (build-system emacs-build-system)
10450 (propagated-inputs
10451 `(("emacs-evil" ,emacs-evil)))
10452 (home-page "https://github.com/edkolev/evil-goggles")
10453 (synopsis "Displays visual hints when editing with evil")
10454 (description "Creates a visual pulse to indicate the region that is
10455 being deleted, changed, yanked, or pasted when using evil commands")
10456 (license license:gpl3+))))
10457
10458 (define-public emacs-goto-chg
10459 (let ((commit "2af612153bc9f5bed135d25abe62f46ddaa9027f")
10460 (version "1.7.3")
10461 (revision "2"))
10462 (package
10463 (name "emacs-goto-chg")
10464 (version (git-version version revision commit))
10465 (source
10466 (origin
10467 (method git-fetch)
10468 (uri (git-reference
10469 (url "https://github.com/emacs-evil/goto-chg")
10470 (commit commit)))
10471 (file-name (git-file-name name version))
10472 (sha256
10473 (base32
10474 "1awmvihqgw6kspx192bcp9xp56xqbma90wlhxfxmidx3bvxghwpv"))))
10475 (build-system emacs-build-system)
10476 (home-page "https://github.com/emacs-evil/goto-chg")
10477 (synopsis "Go to the last change in the Emacs buffer")
10478 (description
10479 "This package provides @code{M-x goto-last-change} command that goes to
10480 the point of the most recent edit in the current Emacs buffer. When repeated,
10481 go to the second most recent edit, etc. Negative argument, @kbd{C-u -}, is
10482 used for reverse direction.")
10483 (license license:gpl2+))))
10484
10485 (define-public emacs-janpath-evil-numbers
10486 (let ((commit "d988041c1fe6e941dc8d591390750b237f71f524")
10487 (version "0.5")
10488 (revision "1"))
10489 (package
10490 (name "emacs-janpath-evil-numbers")
10491 (version (git-version version revision commit))
10492 (source
10493 (origin
10494 (method git-fetch)
10495 (uri (git-reference
10496 (url "https://github.com/janpath/evil-numbers")
10497 (commit commit)))
10498 (file-name (git-file-name name version))
10499 (sha256
10500 (base32
10501 "16zixhxxcb83m82f2cfiardfn99j3w41v6vh1qk6j9pplrlfw70v"))))
10502 (build-system emacs-build-system)
10503 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
10504 (home-page "https://github.com/janpath/evil-numbers")
10505 (synopsis "Increment and decrement numeric literals")
10506 (description
10507 "This package provides functionality to search for a number up to the
10508 end of a line and increment or decrement it.")
10509 (license license:gpl3+))))
10510
10511 (define-public emacs-evil-owl
10512 (let ((commit "24c5f43df375194386344e69bc720ea3986c9510")
10513 (revision "3"))
10514 (package
10515 (name "emacs-evil-owl")
10516 (version (git-version "0.0.1" revision commit))
10517 (source
10518 (origin
10519 (method git-fetch)
10520 (uri (git-reference
10521 (url "https://github.com/mamapanda/evil-owl")
10522 (commit commit)))
10523 (file-name (git-file-name name version))
10524 (sha256
10525 (base32
10526 "0bqzch14whlmrcasakah3psrzswvkzd7mmi8hx5s64kfp29wbdhi"))))
10527 (build-system emacs-build-system)
10528 (propagated-inputs
10529 `(("emacs-evil" ,emacs-evil)))
10530 (arguments
10531 `(#:tests? #t
10532 #:test-command '("make" "test")))
10533 (home-page "https://github.com/mamapanda/evil-owl")
10534 (synopsis "Preview candidates when using Evil registers and marks")
10535 (description
10536 "This package supplements Evil's register- and mark-based commands with
10537 a popup window for previewing candidates.")
10538 (license license:gpl3+))))
10539
10540 (define-public emacs-evil-args
10541 (let ((commit "758ad5ae54ad34202064fec192c88151c08cb387")
10542 (revision "1"))
10543 (package
10544 (name "emacs-evil-args")
10545 (version (git-version "1.0" revision commit))
10546 (source
10547 (origin
10548 (method git-fetch)
10549 (uri (git-reference
10550 (url "https://github.com/wcsmith/evil-args")
10551 (commit commit)))
10552 (file-name (git-file-name name version))
10553 (sha256
10554 (base32
10555 "0k35glgsirc3cph8v5hhjrqfh4ndwh8a28qbr03y3jl8s453xcj7"))))
10556 (build-system emacs-build-system)
10557 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
10558 (home-page "https://github.com/wcsmith/evil-args")
10559 (synopsis "Motions and text objects for delimited arguments in Evil")
10560 (description
10561 "This package provides motions and text objects for delimited
10562 arguments, such as arguments separated by commas and semicolons.")
10563 (license license:expat))))
10564
10565 (define-public emacs-evil-escape
10566 (package
10567 (name "emacs-evil-escape")
10568 (version "3.14")
10569 (source
10570 (origin
10571 (method git-fetch)
10572 (uri
10573 (git-reference
10574 (url "https://github.com/syl20bnr/evil-escape")
10575 (commit (string-append "v" version))))
10576 (file-name (git-file-name name version))
10577 (sha256
10578 (base32 "0s8lmmm25qabicwaj9jybpbd8mkc62yl7jnhk1lpablydjkv3w2i"))))
10579 (propagated-inputs
10580 `(("emacs-evil" ,emacs-evil)))
10581 (build-system emacs-build-system)
10582 (home-page "https://github.com/syl20bnr/evil-escape")
10583 (synopsis "Escape from insert state and everything else in Emacs")
10584 (description
10585 "Evil escape provides a customizable key sequence to escape from insert
10586 state and everything else in Emacs.")
10587 (license license:gpl3+)))
10588
10589 (define-public emacs-evil-exchange
10590 (let ((commit "47691537815150715e64e6f6ec79be7746c96120")
10591 (version "0.41")
10592 (revision "1"))
10593 (package
10594 (name "emacs-evil-exchange")
10595 (version (git-version version revision commit))
10596 (source
10597 (origin
10598 (method git-fetch)
10599 (uri (git-reference
10600 (url "https://github.com/Dewdrops/evil-exchange")
10601 (commit commit)))
10602 (file-name (git-file-name name version))
10603 (sha256
10604 (base32
10605 "0bjpn4yqig17ddym6wqq5fm1b294q74hzcbj9a6gs97fqiwf88xa"))))
10606 (build-system emacs-build-system)
10607 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
10608 (native-inputs `(("emacs-ert-runner" ,emacs-ert-runner)))
10609 (arguments
10610 `(#:phases
10611 (modify-phases %standard-phases
10612 (add-before 'check 'fix-makefile
10613 (lambda _
10614 (substitute* "Makefile"
10615 (("cask exec ") ""))
10616 #t)))
10617 #:tests? #t
10618 #:test-command '("make" "test")))
10619 (home-page "https://github.com/Dewdrops/evil-exchange")
10620 (synopsis "Exchange text easily within Evil")
10621 (description
10622 "This package, a port of @code{vim-exchange}, provides an Evil operator
10623 for exchanging text.")
10624 (license license:gpl3+))))
10625
10626 (define-public emacs-evil-replace-with-register
10627 (let ((commit "91cc7bf21a94703c441cc9212214075b226b7f67")
10628 (version "0.1")
10629 (revision "1"))
10630 (package
10631 (name "emacs-evil-replace-with-register")
10632 (version (git-version version revision commit))
10633 (source
10634 (origin
10635 (method git-fetch)
10636 (uri (git-reference
10637 (url "https://github.com/Dewdrops/evil-ReplaceWithRegister")
10638 (commit commit)))
10639 (file-name (git-file-name name version))
10640 (sha256
10641 (base32
10642 "14rpn76qrf287s3y2agmddcxi27r226i53ixjvd694ss039g0r11"))))
10643 (build-system emacs-build-system)
10644 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
10645 (home-page "https://github.com/Dewdrops/evil-ReplaceWithRegister")
10646 (synopsis "Quickly replace text with the contents of a register")
10647 (description
10648 "This package provides an Evil operator for replacing text with the
10649 contents of a register.")
10650 (license license:gpl3+))))
10651
10652 (define-public emacs-evil-indent-plus
10653 (let ((commit "0c7501e6efed661242c3a20e0a6c79a6455c2c40")
10654 (version "1.0.0")
10655 (revision "1"))
10656 (package
10657 (name "emacs-evil-indent-plus")
10658 (version (git-version version revision commit))
10659 (source
10660 (origin
10661 (method git-fetch)
10662 (uri (git-reference
10663 (url "https://github.com/TheBB/evil-indent-plus")
10664 (commit commit)))
10665 (file-name (git-file-name name version))
10666 (sha256
10667 (base32
10668 "1g6r1ydscwjvmhh1zg4q3nap4avk8lb9msdqrh7dff6pla0r2qs6"))))
10669 (build-system emacs-build-system)
10670 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
10671 (home-page "https://github.com/TheBB/evil-indent-plus")
10672 (synopsis "Text objects based on indentation")
10673 (description
10674 "This package adds new text objects for @code{evil-mode} based on
10675 blocks having the same or higher indentation, including or excluding
10676 surrounding lines.")
10677 (license license:gpl2+))))
10678
10679 (define-public emacs-evil-text-object-python
10680 (let ((commit "9a064fe6475429145cbcc3b270fcc963b67adb15")
10681 (version "1.0.1")
10682 (revision "1"))
10683 (package
10684 (name "emacs-evil-text-object-python")
10685 (version (git-version version revision commit))
10686 (source
10687 (origin
10688 (method git-fetch)
10689 (uri (git-reference
10690 (url "https://github.com/wbolster/evil-text-object-python")
10691 (commit commit)))
10692 (file-name (git-file-name name version))
10693 (sha256
10694 (base32
10695 "074zpm6mmr1wfl6d5xdf8jk1fs4ccpbzf4ahhkwga9g71xiplszv"))))
10696 (build-system emacs-build-system)
10697 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
10698 (home-page "https://github.com/wbolster/evil-text-object-python")
10699 (synopsis "Text objects for Python")
10700 (description
10701 "This package provides @code{evil-mode} text objects for Python.")
10702 (license license:gpl3+))))
10703
10704 (define-public emacs-evil-lion
10705 (let ((commit "6b03593f5dd6e7c9ca02207f9a73615cf94c93ab")
10706 (revision "1"))
10707 (package
10708 (name "emacs-evil-lion")
10709 (version (git-version "0.0.2" revision commit))
10710 (source
10711 (origin
10712 (method git-fetch)
10713 (uri (git-reference
10714 (url "https://github.com/edkolev/evil-lion")
10715 (commit commit)))
10716 (file-name (git-file-name name version))
10717 (sha256
10718 (base32
10719 "1a162hynp0jcsn50c1w5a02mrw9w3q05c7lkqzqd25px3d0p772q"))))
10720 (build-system emacs-build-system)
10721 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
10722 (arguments
10723 `(#:tests? #t
10724 #:test-command '("make" "test")))
10725 (home-page "https://github.com/edkolev/evil-lion")
10726 (synopsis "Align operator for @code{evil-mode}")
10727 (description
10728 "This package, a port of @code{vim-lion}, provides an operator for
10729 aligning text objects based on separators.")
10730 (license license:gpl3+))))
10731
10732 (define-public emacs-evil-expat
10733 (let ((commit "f4fcd0aa3edc359adb5c986b5dd9188d220d84e2")
10734 (revision "1"))
10735 (package
10736 (name "emacs-evil-expat")
10737 (version (git-version "0.0.1" revision commit))
10738 (source
10739 (origin
10740 (method git-fetch)
10741 (uri (git-reference
10742 (url "https://github.com/edkolev/evil-expat")
10743 (commit commit)))
10744 (file-name (git-file-name name version))
10745 (sha256
10746 (base32
10747 "0872ix682hkdz0k8pn6sb54rqkx00rz5fxpd5j2snx406yagpaxz"))))
10748 (build-system emacs-build-system)
10749 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
10750 (arguments
10751 `(#:tests? #t
10752 #:test-command '("make" "test")))
10753 (home-page "https://github.com/edkolev/evil-expat")
10754 (synopsis "Extra @code{ex} commands for @code{evil-mode}")
10755 (description
10756 "This package provides additional commands for the @code{ex} command
10757 line, including functions for version control with Git and for copying and
10758 pasting into and from @code{tmux} paste buffers.")
10759 (license license:gpl3+))))
10760
10761 (define-public emacs-evil-nerd-commenter
10762 (package
10763 (name "emacs-evil-nerd-commenter")
10764 (version "3.5.3")
10765 (source
10766 (origin
10767 (method git-fetch)
10768 (uri (git-reference
10769 (url "https://github.com/redguardtoo/evil-nerd-commenter")
10770 (commit version)))
10771 (file-name (git-file-name name version))
10772 (sha256
10773 (base32
10774 "1y5pn3rkqj8dxp5c7dsci621vnv6hsia74w2c1hybkkrjbka851q"))))
10775 (build-system emacs-build-system)
10776 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
10777 (home-page "https://github.com/redguardtoo/evil-nerd-commenter")
10778 (synopsis "Comment and uncomment lines efficiently")
10779 (description
10780 "This package provides text objects and operators for comments within
10781 @code{evil-mode}.")
10782 (license license:gpl3+)))
10783
10784 (define-public emacs-evil-visual-replace
10785 (package
10786 (name "emacs-evil-visual-replace")
10787 (version "0.0.5")
10788 (source
10789 (origin
10790 (method git-fetch)
10791 (uri (git-reference
10792 (url "https://github.com/troyp/evil-visual-replace")
10793 (commit version)))
10794 (file-name (git-file-name name version))
10795 (sha256
10796 (base32
10797 "1gfyrq7xfzmzh3x8k5f08n027dlbwi0pkkxf9c39fkxp4jngibsz"))))
10798 (build-system emacs-build-system)
10799 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
10800 (home-page "https://github.com/troyp/evil-visual-replace")
10801 (synopsis "Replacement commands for @code{evil-mode} visual blocks")
10802 (description
10803 "This package provides versions of @code{query-replace} and
10804 @code{replace-regexp} that work for @code{evil-mode} visual blocks.")
10805 (license license:gpl2+)))
10806
10807 (define-public emacs-evil-visualstar
10808 (let ((commit "06c053d8f7381f91c53311b1234872ca96ced752")
10809 (version "0.2.0")
10810 (revision "1"))
10811 (package
10812 (name "emacs-evil-visualstar")
10813 (version (git-version version revision commit))
10814 (source
10815 (origin
10816 (method git-fetch)
10817 (uri (git-reference
10818 (url "https://github.com/bling/evil-visualstar")
10819 (commit commit)))
10820 (file-name (git-file-name name version))
10821 (sha256
10822 (base32
10823 "0mkbzw12fav945icibc2293m5haxqr3hzkyli2cf4ssk6yvn0x4c"))))
10824 (build-system emacs-build-system)
10825 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
10826 (home-page "https://github.com/bling/evil-visualstar")
10827 (synopsis "Instantly search using the visual selection")
10828 (description
10829 "This package provides @code{evil-mode} functions for using selected text
10830 to search.")
10831 (license license:gpl3+))))
10832
10833 (define-public emacs-monky
10834 (package
10835 (name "emacs-monky")
10836 (version "0.1")
10837 (source (origin
10838 (method git-fetch)
10839 (uri (git-reference
10840 (url "https://github.com/ananthakumaran/monky")
10841 (commit version)))
10842 (file-name (git-file-name name version))
10843 (sha256
10844 (base32
10845 "1fgn7al4zwz2k5wb5dy3byqg9lsrjk9fra341mxh5ma2pfwxjgps"))))
10846 (build-system emacs-build-system)
10847 (home-page "https://ananthakumaran.in/monky/index.html")
10848 (arguments
10849 `(#:tests? #t
10850 #:test-command '("emacs" "--batch"
10851 "-l" "test/monky-unit-test.el"
10852 "-f" "ert-run-tests-batch-and-exit")))
10853 (synopsis "Interactive interface for the Mercurial version control system")
10854 (description
10855 "Monky provides an Emacs interface for Mercurial (Hg). Using Monky, you
10856 can selectively commit files, view the diffs, and other things.")
10857 (license license:gpl3+)))
10858
10859 (define-public emacs-monroe
10860 (package
10861 (name "emacs-monroe")
10862 (version "0.3.1")
10863 (source
10864 (origin
10865 (method git-fetch)
10866 (uri (git-reference
10867 (url "https://github.com/sanel/monroe")
10868 (commit version)))
10869 (file-name (git-file-name name version))
10870 (sha256
10871 (base32 "101lfrykdbv37spkbw7zihhx26bc1lhjyxbanrcp9880bxj04jiy"))))
10872 (build-system emacs-build-system)
10873 (home-page "https://github.com/sanel/monroe")
10874 (synopsis "Clojure nREPL client for Emacs")
10875 (description
10876 "Monroe is a nREPL client for Emacs, focused on simplicity and easy
10877 distribution, primarily targeting Clojure users")
10878 (license license:gpl3+)))
10879
10880 (define-public emacs-orgalist
10881 (package
10882 (name "emacs-orgalist")
10883 (version "1.13")
10884 (source
10885 (origin
10886 (method url-fetch)
10887 (uri (string-append "https://elpa.gnu.org/packages/"
10888 "orgalist-" version ".el"))
10889 (sha256
10890 (base32 "1wkxc5kcy1g4lx6pd78pa8znncjyl9zyhsvz7wpp56qmhq4hlav3"))))
10891 (build-system emacs-build-system)
10892 (home-page "https://elpa.gnu.org/packages/orgalist.html")
10893 (synopsis "Manage Org-like lists in non-Org buffers")
10894 (description "Orgalist writes and manages Org mode's plain lists in
10895 non-Org buffers. More specifically, it supports the syntax of Org mode for
10896 numbered, unnumbered, description items, checkboxes, and counter cookies.
10897
10898 The library also implements radio lists, i.e., lists written in Org syntax
10899 later translated into the host format, e.g., LaTeX or HTML.")
10900 (license license:gpl3+)))
10901
10902 (define-public emacs-writegood-mode
10903 (package
10904 (name "emacs-writegood-mode")
10905 (version "2.0.2")
10906 (home-page "https://github.com/bnbeckwith/writegood-mode")
10907 (source (origin
10908 (method git-fetch)
10909 (uri (git-reference
10910 (url home-page)
10911 (commit (string-append "v" version))))
10912 (sha256
10913 (base32
10914 "1nnjn1r669hvvzfycllwap4w04m8rfsk4nzcg8057m1f263kj31b"))
10915 (file-name (string-append name "-checkout"))))
10916 (build-system emacs-build-system)
10917 (synopsis "Polish up poor writing on the fly")
10918 (description
10919 "This minor mode tries to find and highlight problems with your writing
10920 in English as you type. It primarily detects \"weasel words\" and abuse of
10921 passive voice.")
10922 (license license:gpl3+)))
10923
10924 (define-public emacs-neotree
10925 (package
10926 (name "emacs-neotree")
10927 (version "0.5.2")
10928 (home-page "https://github.com/jaypei/emacs-neotree")
10929 (source (origin
10930 (method git-fetch)
10931 (uri (git-reference
10932 (url home-page)
10933 (commit version)))
10934 (sha256
10935 (base32
10936 "0hx72fq10772bbyqrj7mhhp02k26cccjxdadiqm1ykainhfmn1x0"))
10937 (file-name (git-file-name name version))))
10938 (build-system emacs-build-system)
10939 (synopsis "Folder tree view for Emacs")
10940 (description "This Emacs package provides a folder tree view.")
10941 (license license:gpl3+)))
10942
10943 (define-public emacs-org
10944 (package
10945 (name "emacs-org")
10946 ;; emacs-org-contrib inherits from this package. Please update it as
10947 ;; well.
10948 (version "9.4.4")
10949 (source
10950 (origin
10951 (method url-fetch)
10952 (uri (string-append "https://elpa.gnu.org/packages/org-" version ".tar"))
10953 (sha256
10954 (base32 "05ma8n6hr10323d85ay8ai0xrpc9q2m93n8avqh7j9fmmb3bhr0b"))))
10955 (build-system emacs-build-system)
10956 (arguments
10957 `(#:phases
10958 (modify-phases %standard-phases
10959 ;; FIXME: The elpa tarball upstream does not include the version
10960 ;; number, remove this phase when this is fixed.
10961 ;; https://lists.gnu.org/archive/html/emacs-orgmode/2020-12/msg00729.html
10962 (add-after 'unpack 'fix-org-version
10963 (lambda _
10964 (substitute* "org-version.el"
10965 (("org-release \"\"")
10966 (string-append "org-release \"" ,version "\"")))
10967 #t))
10968 (add-after 'install 'install-documentation
10969 (lambda* (#:key outputs #:allow-other-keys)
10970 (let* ((share (string-append (assoc-ref outputs "out") "/share"))
10971 (info-dir (string-append share "/info"))
10972 (doc-dir (string-append share "/doc/" ,name "-" ,version)))
10973 (install-file "org.info" info-dir)
10974 (install-file "orgguide.info" info-dir)
10975 ;; XXX: "orgcard.pdf" is not built in Org 9.4.4.
10976 ;; (install-file "orgcard.pdf" doc-dir)
10977 )
10978 #t)))))
10979 (home-page "https://orgmode.org/")
10980 (synopsis "Outline-based notes management and organizer")
10981 (description "Org is an Emacs mode for keeping notes, maintaining TODO
10982 lists, and project planning with a fast and effective lightweight markup
10983 language. It also is an authoring system with unique support for literate
10984 programming and reproducible research.")
10985 (license license:gpl3+)))
10986
10987 (define-public emacs-org-contrib
10988 (package
10989 (inherit emacs-org)
10990 (name "emacs-org-contrib")
10991 (version "20201222")
10992 (source
10993 (origin
10994 (method url-fetch)
10995 (uri (string-append "https://orgmode.org/elpa/"
10996 "org-plus-contrib-" version ".tar"))
10997 (sha256
10998 (base32 "1pa8h5dpi5yj3j7v0aaby8sjwxvmgnbip2ilyl5pac1rlbz0jn40"))
10999 ;; ob-sclang.el is packaged separately to avoid the dependency on
11000 ;; SuperCollider and qtwebengine.
11001 (modules '((guix build utils)))
11002 (snippet '(begin (delete-file "ob-sclang.el") #t))))
11003 (arguments
11004 `(#:modules ((guix build emacs-build-system)
11005 (guix build utils)
11006 (guix build emacs-utils)
11007 (ice-9 ftw)
11008 (srfi srfi-1))
11009 #:phases
11010 (modify-phases %standard-phases
11011 (add-after 'install 'delete-org-files
11012 (lambda* (#:key inputs outputs #:allow-other-keys)
11013 (let* ((out (assoc-ref outputs "out"))
11014 (org (assoc-ref inputs "org"))
11015 (contrib-files
11016 (map basename (find-files out)))
11017 (org+contrib-files
11018 (map basename (find-files org)))
11019 (duplicates (lset-intersection string=?
11020 contrib-files
11021 org+contrib-files)))
11022 (with-directory-excursion
11023 (string-append out "/share/emacs/site-lisp")
11024 (for-each delete-file duplicates))
11025 #t))))))
11026 (propagated-inputs
11027 `(("arduino-mode" ,emacs-arduino-mode)
11028 ("cider" ,emacs-cider)
11029 ("org" ,emacs-org)))
11030 (synopsis "Contributed packages to Org mode")
11031 (description "Org is an Emacs mode for keeping notes, maintaining TODO
11032 lists, and project planning with a fast and effective plain-text system.
11033
11034 This package is equivalent to org-plus-contrib, but only includes additional
11035 files that you would find in @file{contrib/} from the git repository.")))
11036
11037 (define-public emacs-org-pretty-table
11038 ;; There is no release yet.
11039 (let ((commit "1331c600b83d95b28730b1bfcb48369ac1cf12ef")
11040 (revision "0"))
11041 (package
11042 (name "emacs-org-pretty-table")
11043 (version (git-version "0.0.1" revision commit))
11044 (source
11045 (origin
11046 (method git-fetch)
11047 (uri (git-reference
11048 (url "https://github.com/Fuco1/org-pretty-table")
11049 (commit commit)))
11050 (file-name (git-file-name name version))
11051 (sha256
11052 (base32 "0yvqxh66y400n2n5ykmb1zrzd80bakffpwn6nmf37728x4cj8krh"))))
11053 (build-system emacs-build-system)
11054 (home-page "https://github.com/Fuco1/org-pretty-table")
11055 (synopsis "Make tables in Org mode and OrgTbl mode prettier")
11056 (description
11057 "This package displays tables in Org mode and OrgTbl mode using Unicode
11058 characters.")
11059 (license license:gpl3+))))
11060
11061 (define-public emacs-ob-sclang
11062 (package
11063 (inherit emacs-org-contrib)
11064 (name "emacs-ob-sclang")
11065 (source
11066 (origin (inherit (package-source emacs-org-contrib))
11067 (modules '((guix build utils)))
11068 (snippet
11069 '(begin
11070 (for-each (lambda (file)
11071 (unless (equal? file "./ob-sclang.el")
11072 (delete-file file)))
11073 (find-files "." "\\.el"))
11074 #t))))
11075 (propagated-inputs
11076 `(("org" ,emacs-org)
11077 ("scel" ,emacs-scel)))
11078 (synopsis "Org Babel support for SuperCollider")
11079 (description "This package adds support for evaluating @code{sclang}
11080 Org mode source blocks. It is extracted from the @code{emacs-org-contrib}
11081 package.")))
11082
11083 (define-public emacs-org-edna
11084 (package
11085 (name "emacs-org-edna")
11086 (version "1.1.2")
11087 (source (origin
11088 (method bzr-fetch)
11089 (uri (bzr-reference
11090 (url "bzr://bzr.savannah.nongnu.org/org-edna-el")
11091 (revision version)))
11092 (file-name (string-append name "-" version "-checkout"))
11093 (sha256
11094 (base32
11095 "01dblddgx0yid5hrgl4swbr4grhv057kfbdy122wihzqpsrgq86n"))))
11096 (build-system emacs-build-system)
11097 (home-page "https://savannah.nongnu.org/projects/org-edna-el/")
11098 (synopsis "Manage Org task dependencies")
11099 (description "This package provides an extensible means of specifying
11100 conditions which must be fulfilled before a task can be completed and actions
11101 to take once it is. Org Edna runs when either the BLOCKER or TRIGGER
11102 properties are set on a heading, and when it is changing from a TODO state to
11103 a DONE state.")
11104 (license license:gpl3+)))
11105
11106 (define-public emacs-flx
11107 (package
11108 (name "emacs-flx")
11109 (version "0.6.1")
11110 (source
11111 (origin
11112 (method git-fetch)
11113 (uri (git-reference
11114 (url "https://github.com/lewang/flx")
11115 (commit (string-append "v" version))))
11116 (sha256
11117 (base32
11118 "0sjybrcnb2sl33swy3q664vqrparajcl0m455gciiih2j87hwadc"))
11119 (file-name (git-file-name name version))))
11120 (build-system emacs-build-system)
11121 (home-page "https://github.com/lewang/flx")
11122 (synopsis "Fuzzy matching for Emacs")
11123 (description
11124 "Flx provides fuzzy matching for emacs a la sublime text.
11125 The sorting algorithm is a balance between word beginnings (abbreviation)
11126 and contiguous matches (substring). The longer the substring match,
11127 the higher it scores. This maps well to how we think about matching.
11128 Flx has support for ido (interactively do things) through flx-ido.")
11129 (license license:gpl3+)))
11130
11131 (define-public emacs-cyberpunk-theme
11132 (package
11133 (name "emacs-cyberpunk-theme")
11134 (version "1.22")
11135 (source
11136 (origin
11137 (method git-fetch)
11138 (uri (git-reference
11139 (url "https://github.com/n3mo/cyberpunk-theme.el/")
11140 (commit version)))
11141 (sha256
11142 (base32
11143 "06nff38pcy5rgz13svkajsg0jjk73qy4a8m7p9f76yxcywxlgxlc"))
11144 (file-name (git-file-name name version))))
11145 (build-system emacs-build-system)
11146 (home-page "https://github.com/n3mo/cyberpunk-theme.el")
11147 (synopsis "Cyberpunk theme for Emacs built-in color theme support")
11148 (description
11149 "Cyberpunk color theme for the Emacs 24+ built-in color theme support
11150 known loosely as deftheme. Many mode-specific customizations are included.")
11151 (license license:gpl3+)))
11152
11153 (define-public emacs-dart-mode
11154 (package
11155 (name "emacs-dart-mode")
11156 (version "1.0.5")
11157 (source
11158 (origin
11159 (method git-fetch)
11160 (uri (git-reference
11161 (url "https://github.com/bradyt/dart-mode")
11162 (commit version)))
11163 (file-name (git-file-name name version))
11164 (sha256
11165 (base32 "1qmdlwjmmqyyb65sqvfpygifai5m0llc815vp0jqwp8ldd8ls172"))))
11166 (build-system emacs-build-system)
11167 (propagated-inputs
11168 `(("emacs-dash" ,emacs-dash)
11169 ("emacs-flycheck" ,emacs-flycheck)
11170 ("emacs-s" ,emacs-s)))
11171 (home-page "https://github.com/bradyt/dart-mode")
11172 (synopsis "Emacs mode for the Dart programming language")
11173 (description
11174 "Dart mode is an Emacs major mode for editing Dart files. It provides
11175 basic syntax highlighting and indentation.")
11176 (license license:gpl3+)))
11177
11178 (define-public emacs-danneskjold-theme
11179 (let* ((commit "8733d2fe8743e8a01826ea6d4430ef376c727e57")
11180 (revision "1"))
11181 (package
11182 (name "emacs-danneskjold-theme")
11183 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
11184 (home-page "https://github.com/rails-to-cosmos/danneskjold-theme")
11185 (source
11186 (origin
11187 (method git-fetch)
11188 (uri (git-reference
11189 (url home-page)
11190 (commit commit)))
11191 (file-name (git-file-name name version))
11192 (sha256
11193 (base32
11194 "0s6rbsb0y8i8m5b9xm4gw1p1cxsxdqnqxqqb638pygz9f76mbir1"))))
11195 (build-system emacs-build-system)
11196 (arguments
11197 `(#:phases
11198 (modify-phases %standard-phases
11199 (add-after 'unpack 'delete-screenshots
11200 (lambda _
11201 (delete-file-recursively "screenshots") #t)))))
11202 (synopsis "High-contrast Emacs theme")
11203 (description
11204 "@code{danneskjold-theme} is a high-contrast theme for Emacs.")
11205 (license license:gpl3+))))
11206
11207 (define-public emacs-dream-theme
11208 (let* ((commit "107a11d74365046f28a1802a2bdb5e69e4a7488b")
11209 (revision "1"))
11210 (package
11211 (name "emacs-dream-theme")
11212 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
11213 (source
11214 (origin
11215 (method git-fetch)
11216 (uri (git-reference
11217 (url "https://github.com/djcb/dream-theme")
11218 (commit commit)))
11219 (file-name (git-file-name name version))
11220 (sha256
11221 (base32
11222 "0za18nfkq4xqm35k6006vsixcbmvmxqgma4iw5sw37h8vmcsdylk"))))
11223 (build-system emacs-build-system)
11224 (home-page "https://github.com/djcb/dream-theme")
11225 (synopsis "High-contrast Emacs theme")
11226 (description
11227 "@code{dream-theme} is a dark, clean theme for Emacs. It is inspired
11228 by zenburn, sinburn and similar themes, but slowly diverging from them.")
11229 (license license:gpl3+))))
11230
11231 (define-public emacs-dracula-theme
11232 (package
11233 (name "emacs-dracula-theme")
11234 (version "1.7.0")
11235 (source
11236 (origin
11237 (method git-fetch)
11238 (uri (git-reference
11239 (url "https://github.com/dracula/emacs")
11240 (commit (string-append "v" version))))
11241 (file-name (git-file-name name version))
11242 (sha256
11243 (base32 "15y2djc5jljlvls1x9kp50m1kp0dcksmyixafsyimj66xpq9ngh0"))))
11244 (build-system emacs-build-system)
11245 (home-page "https://draculatheme.com/")
11246 (synopsis "Dark theme for Emacs")
11247 (description
11248 "Dracula is a dark color theme for many editors, shells and more. This
11249 package provides the Emacs theme.")
11250 (license license:expat)))
11251
11252 (define-public emacs-auto-complete
11253 (package
11254 (name "emacs-auto-complete")
11255 (version "1.5.1")
11256 (source
11257 (origin
11258 (method git-fetch)
11259 (uri (git-reference
11260 (url "https://github.com/auto-complete/auto-complete")
11261 (commit (string-append "v" version))))
11262 (sha256
11263 (base32
11264 "04i9b11iksg6acn885wl3qgi5xpsm3yszlqmd2x21yhprndlz7gb"))
11265 (file-name (git-file-name name version))))
11266 (build-system emacs-build-system)
11267 (propagated-inputs
11268 `(("emacs-popup" ,emacs-popup)))
11269 (home-page "https://github.com/auto-complete/auto-complete")
11270 (synopsis "Intelligent auto-completion extension for Emacs")
11271 (description
11272 "Auto-Complete is an intelligent auto-completion extension for Emacs.
11273 It extends the standard Emacs completion interface and provides an environment
11274 that allows users to concentrate more on their own work. Its features are:
11275 a visual interface, reduce overhead of completion by using statistic method,
11276 extensibility.")
11277 (license license:gpl3+)))
11278
11279 (define-public emacs-nginx-mode
11280 (package
11281 (name "emacs-nginx-mode")
11282 (version "1.1.9")
11283 (source
11284 (origin
11285 (method git-fetch)
11286 (uri (git-reference
11287 (url "https://github.com/ajc/nginx-mode")
11288 (commit (string-append "v" version))))
11289 (file-name (git-file-name name version))
11290 (sha256
11291 (base32 "17dh5pr3gh6adrbqx588gimxbb2fr7iv2qrxv6r48w2727l344xs"))))
11292 (build-system emacs-build-system)
11293 (home-page "https://github.com/ajc/nginx-mode")
11294 (synopsis "Emacs major mode for editing nginx config files")
11295 (description "This package provides an Emacs major mode for
11296 editing nginx config files.")
11297 (license license:gpl2+)))
11298
11299 (define-public emacs-stream
11300 (package
11301 (name "emacs-stream")
11302 (version "2.2.5")
11303 (source
11304 (origin
11305 (method url-fetch)
11306 (uri (string-append "https://elpa.gnu.org/packages/"
11307 "stream-" version ".tar"))
11308 (file-name (git-file-name name version))
11309 (sha256
11310 (base32 "00c3n4gyxzv7vczqms0d62kl8zsmjfyxa92mwxn2snyx857a9jfw"))))
11311 (build-system emacs-build-system)
11312 (home-page "http://elpa.gnu.org/packages/stream.html")
11313 (synopsis "Implementation of streams for Emacs")
11314 (description "This library provides an implementation of streams for Emacs.
11315 Streams are implemented as delayed evaluation of cons cells.")
11316 (license license:gpl3+)))
11317
11318 (define-public emacs-cl-print
11319 (let ((commit "1a70c553dfb04352afb5b8696fe0cef8acc8f991")
11320 (revision "1"))
11321 (package
11322 (name "emacs-cl-print")
11323 (version (git-version "1.0" revision commit))
11324 (source
11325 (origin
11326 (method git-fetch)
11327 (uri (git-reference
11328 (url "https://github.com/emacsmirror/cl-print")
11329 (commit commit)))
11330 (file-name (git-file-name name version))
11331 (sha256
11332 (base32 "164zbnsi5mssvcpy0158fm7fw5cmd1r5nkpn29fmd2b2scy3gm79"))))
11333 (build-system emacs-build-system)
11334 (home-page "https://github.com/emacsmirror/cl-print")
11335 (synopsis "CL-style generic printing")
11336 (description "This package provides a generic function,
11337 @code{cl-print-object}, to which the programmer can add any method they
11338 please.")
11339 (license license:gpl3+))))
11340
11341 (define-public emacs-el-search
11342 (let ((commit "07bed84dd8ae9e4c6c648834224b1d33fdbd51e0")
11343 (revision "2"))
11344 (package
11345 (name "emacs-el-search")
11346 (version (git-version "1.12.6.1" revision commit))
11347 (source
11348 (origin
11349 (method git-fetch)
11350 (uri (git-reference
11351 (url "https://github.com/emacsmirror/el-search")
11352 (commit commit)))
11353 (file-name (git-file-name name version))
11354 (sha256
11355 (base32 "10w1ldgijdhfsrazp0y3bm76jv5wvdn94k1yp0pmc2m1896b58ak"))))
11356 (build-system emacs-build-system)
11357 (inputs
11358 `(("emacs-stream" ,emacs-stream)
11359 ("emacs-cl-print" ,emacs-cl-print)))
11360 (home-page "https://github.com/emacsmirror/el-search")
11361 (synopsis "Expression based interactive search for emacs-lisp-mode")
11362 (description "This package provides expression based interactive search
11363 procedures for emacs-lisp-mode.")
11364 (license license:gpl3+))))
11365
11366 (define-public emacs-ht
11367 (package
11368 (name "emacs-ht")
11369 (version "2.3")
11370 (source
11371 (origin
11372 (method git-fetch)
11373 (uri (git-reference
11374 (url "https://github.com/Wilfred/ht.el")
11375 (commit version)))
11376 (file-name (git-file-name name version))
11377 (sha256
11378 (base32 "0can9v336lgnq0q2ha3js0565jzp3dlwwqxhcbx5swk5kp148f07"))))
11379 (build-system emacs-build-system)
11380 (propagated-inputs `(("emacs-dash" ,emacs-dash)))
11381 (native-inputs
11382 `(("emacs-ert-runner" ,emacs-ert-runner)))
11383 (arguments
11384 `(#:tests? #t
11385 #:test-command '("ert-runner")))
11386 (home-page "https://github.com/Wilfred/ht.el")
11387 (synopsis "Hash table library for Emacs")
11388 (description
11389 "This package simplifies the use of hash tables in elisp. It also
11390 provides functions to convert hash tables from and to alists and plists.")
11391 (license license:gpl3+)))
11392
11393 (define-public emacs-log4e
11394 (package
11395 (name "emacs-log4e")
11396 (version "0.3.3")
11397 (source
11398 (origin
11399 (method git-fetch)
11400 (uri (git-reference
11401 (url "https://github.com/aki2o/log4e")
11402 (commit (string-append "v" version))))
11403 (file-name (git-file-name name version))
11404 (sha256
11405 (base32 "0dbnks76v05allzkhx9zmyqpn6sk5376n8k2rbpnaw6gmz1ib2fv"))))
11406 (build-system emacs-build-system)
11407 (arguments
11408 `(#:phases
11409 (modify-phases %standard-phases
11410 (add-after 'unpack 'remove-tests
11411 ;; Guile builder complains about null characters in some
11412 ;; strings of test files. Remove "test" directory (it is not
11413 ;; needed anyway).
11414 (lambda _
11415 (delete-file-recursively "test"))))))
11416 (home-page "https://github.com/aki2o/log4e")
11417 (synopsis "Logging framework for elisp")
11418 (description
11419 "This package provides a logging framework for elisp. It allows
11420 you to deal with multiple log levels.")
11421 (license license:gpl3+)))
11422
11423 (define-public emacs-gn-mode
11424 (package
11425 (name "emacs-gn-mode")
11426 (version "0.4.1")
11427 (source
11428 (origin
11429 (method git-fetch)
11430 (uri (git-reference
11431 (url "https://github.com/lashtear/gn-mode")
11432 (commit version)))
11433 (file-name (git-file-name name version))
11434 (sha256
11435 (base32 "0dz5kgzbgsssr38z2kg6m915cvfys42ag1k42bsra3la2pixywfx"))))
11436 (build-system emacs-build-system)
11437 (home-page "https://github.com/lashtear/gn-mode")
11438 (synopsis "Emacs major mode for editing GN (ninja generator) config files")
11439 (description
11440 "GN mode is a major mode for editing @acronym{GN,Ninja Generator} config
11441 files in Emacs. Files of this type (e.g., @file{BUILD.gn} or @file{*.gni})
11442 are common in Chromium-derived projects.")
11443 (license license:bsd-3)))
11444
11445 (define-public emacs-gntp
11446 (package
11447 (name "emacs-gntp")
11448 (version "0.1")
11449 (source
11450 (origin
11451 (method git-fetch)
11452 (uri (git-reference
11453 (url "https://github.com/tekai/gntp.el")
11454 (commit (string-append "v" version))))
11455 (file-name (git-file-name name version))
11456 (sha256
11457 (base32 "1nvyjjjydrimpxy4cpg90si7sr8lmldbhlcm2mx8npklp9pn5y3a"))))
11458 (build-system emacs-build-system)
11459 (home-page "https://github.com/tekai/gntp.el")
11460 (synopsis "Growl Notification Protocol for Emacs")
11461 (description
11462 "This package implements the Growl Notification Protocol GNTP
11463 described at @uref{http://www.growlforwindows.com/gfw/help/gntp.aspx}.
11464 It is incomplete as it only lets you send but not receive
11465 notifications.")
11466 (license license:bsd-3)))
11467
11468 (define-public emacs-alert
11469 (package
11470 (name "emacs-alert")
11471 (version "1.3")
11472 (source
11473 (origin
11474 (method git-fetch)
11475 (uri (git-reference
11476 (url "https://github.com/jwiegley/alert")
11477 (commit (string-append "v" version))))
11478 (file-name (git-file-name name version))
11479 (sha256
11480 (base32 "0lc0p5cl4hfrzw1z2ghb11k1lvljn5m08jw5fmgwgxv667kwh49r"))))
11481 (build-system emacs-build-system)
11482 (propagated-inputs
11483 `(("emacs-gntp" ,emacs-gntp)
11484 ("emacs-log4e" ,emacs-log4e)))
11485 (home-page "https://github.com/jwiegley/alert")
11486 (synopsis "Growl-style notification system for Emacs")
11487 (description
11488 "Alert is a Growl-workalike for Emacs which uses a common notification
11489 interface and multiple, selectable \"styles\", whose use is fully
11490 customizable by the user.")
11491 (license license:gpl2+)))
11492
11493 (define-public emacs-zones
11494 (package
11495 (name "emacs-zones")
11496 (version "2019.7.13")
11497 (source
11498 (origin
11499 (method url-fetch)
11500 (uri (string-append "https://elpa.gnu.org/packages/"
11501 "zones-" version ".el"))
11502 (sha256
11503 (base32 "0qp1ba2pkqx9d35g7z8hf8qs2k455krf2a92l4rka3ipsbnmq5k1"))))
11504 (build-system emacs-build-system)
11505 (home-page "https://www.emacswiki.org/emacs/Zones")
11506 (synopsis "Define and act on multiple zones of buffer text")
11507 (description
11508 "Library @file{zones.el} lets you easily define and subsequently act on
11509 multiple zones of buffer text. You can think of this as enlarging the notion
11510 of region. In effect, it can remove the requirement of target text being
11511 a contiguous sequence of characters. A set of buffer zones is, in effect,
11512 a (typically) noncontiguous set of text.")
11513 (license license:gpl3+)))
11514
11515 (define-public emacs-mu4e-alert
11516 (package
11517 (name "emacs-mu4e-alert")
11518 (version "1.0")
11519 (source
11520 (origin
11521 (method git-fetch)
11522 (uri (git-reference
11523 (url "https://github.com/iqbalansari/mu4e-alert")
11524 (commit (string-append "v" version))))
11525 (file-name (git-file-name name version))
11526 (sha256
11527 (base32 "1nvsfbfsma59ilf7c3vjngnmx3aapwvvvaafdy5szm5r6lkicqvg"))))
11528 (build-system emacs-build-system)
11529 (propagated-inputs
11530 `(("emacs-alert" ,emacs-alert)
11531 ("emacs-s" ,emacs-s)
11532 ("emacs-ht" ,emacs-ht)
11533 ("mu" ,mu)))
11534 (home-page "https://github.com/iqbalansari/mu4e-alert")
11535 (synopsis "Desktop notification for mu4e")
11536 (description
11537 "This package provides desktop notifications for mu4e.
11538 Additionally it can display the number of unread emails in the
11539 mode-line.")
11540 (license license:gpl3+)))
11541
11542 (define-public emacs-mu4e-jump-to-list
11543 (let ((commit "358bba003543b49ffa266e503e54aebd0ebe614b")
11544 (revision "1"))
11545 (package
11546 (name "emacs-mu4e-jump-to-list")
11547 (version (git-version "1.0" revision commit))
11548 (source
11549 (origin
11550 (method git-fetch)
11551 (uri (git-reference
11552 (url "https://gitlab.com/wavexx/mu4e-jump-to-list.el.git")
11553 (commit commit)))
11554 (file-name (git-file-name name version))
11555 (sha256
11556 (base32
11557 "00y9nap61q1z2cdql4k9g7fgi2gdgd9iy5s5lzrd9a4agbx6r7sv"))))
11558 (build-system emacs-build-system)
11559 (propagated-inputs
11560 `(("mu" ,mu)))
11561 (home-page "https://gitlab.com/wavexx/mu4e-jump-to-list.el")
11562 (synopsis "Select and view mailing lists in mu4e")
11563 (description
11564 "@code{mu4e-jump-to-list} allows you to select and view mailing lists
11565 automatically using existing List-ID headers in your mu database. Just press
11566 \"l\" in the headers view and any mailing list you've subscribed to will be
11567 automatically discovered and presented in recency order.")
11568 (license license:gpl3+))))
11569
11570 (define-public emacs-mu4e-patch
11571 (let ((commit "522da46c1653b1cacc79cde91d6534da7ae9517d")
11572 (revision "1"))
11573 (package
11574 (name "emacs-mu4e-patch")
11575 (version (git-version "0.1.0" revision commit))
11576 (source (origin
11577 (method git-fetch)
11578 (uri (git-reference
11579 (url "https://github.com/seanfarley/mu4e-patch")
11580 (commit commit)))
11581 (file-name (git-file-name name version))
11582 (sha256
11583 (base32
11584 "10lzf3b70pk6rzdrgx0ww0gc94v0ydh9zj1gbsa20xw27ds7hmfn"))))
11585 (build-system emacs-build-system)
11586 (propagated-inputs
11587 `(("mu" ,mu)))
11588 (home-page "https://github.com/seanfarley/mu4e-patch")
11589 (synopsis "Colorize patch-like emails in mu4e")
11590 (description
11591 "Extension for mu4e to colorize patch-like emails with diff-mode.
11592 This is based on Frank Terbeck's @code{gnus-article-treat-patch.el} but has
11593 been adapted to work with mu4e.")
11594 (license license:gpl3+))))
11595
11596 (define-public emacs-pretty-mode
11597 (package
11598 (name "emacs-pretty-mode")
11599 (version "2.0.3")
11600 (source
11601 (origin
11602 (method git-fetch)
11603 (uri (git-reference
11604 (url "https://github.com/akatov/pretty-mode/")
11605 (commit version)))
11606 (file-name (git-file-name name version))
11607 (sha256
11608 (base32
11609 "013fig9i4fyx16krp2vfv953p3rwdzr38zs6i50af4pqz4vrcfvh"))))
11610 (build-system emacs-build-system)
11611 (home-page "https://github.com/akatov/pretty-mode")
11612 (synopsis "Redisplay parts of the buffer as Unicode symbols")
11613 (description
11614 "Emacs minor mode for redisplaying parts of the buffer as pretty symbols.")
11615 (license license:gpl3+)))
11616
11617 (define-public emacs-yasnippet
11618 (package
11619 (name "emacs-yasnippet")
11620 (version "0.14.0")
11621 (source
11622 (origin
11623 (method git-fetch)
11624 (uri (git-reference
11625 (url "https://github.com/joaotavora/yasnippet")
11626 (commit version)))
11627 (file-name (git-file-name name version))
11628 (sha256
11629 (base32 "0via9dzw8m5lzymg1h78xkwjssh39zr3g6ccyamlf1rjzjsyxknv"))))
11630 (build-system emacs-build-system)
11631 (arguments
11632 `(#:tests? #t
11633 #:test-command '("emacs" "--batch"
11634 "-l" "yasnippet-tests.el"
11635 "-f" "ert-run-tests-batch-and-exit")
11636 #:phases
11637 (modify-phases %standard-phases
11638 ;; Set HOME, otherwise test-rebindings fails.
11639 (add-before 'check 'set-home
11640 (lambda _
11641 (setenv "HOME" (getcwd))
11642 #t)))))
11643 (home-page "https://github.com/joaotavora/yasnippet")
11644 (synopsis "Yet another snippet extension for Emacs")
11645 (description "YASnippet is a template system for Emacs. It allows you to
11646 type an abbreviation and automatically expand it into function templates.")
11647 (license license:gpl3+)))
11648
11649 (define-public emacs-yasnippet-snippets
11650 (package
11651 (name "emacs-yasnippet-snippets")
11652 (version "0.23")
11653 (source
11654 (origin
11655 (method git-fetch)
11656 (uri (git-reference
11657 (url "https://github.com/AndreaCrotti/yasnippet-snippets")
11658 (commit version)))
11659 (file-name (git-file-name name version))
11660 (sha256
11661 (base32 "18pcnjnqvcky6i49p38vy3ms5xiisn27vy47pc3vsgr3r2n87mqb"))))
11662 (build-system emacs-build-system)
11663 (arguments
11664 `(#:include (cons* "^snippets\\/" %default-include)))
11665 (propagated-inputs
11666 `(("emacs-s" ,emacs-s) ;for snippets/rjsx-mode/.yas-setup.el
11667 ("emacs-yasnippet" ,emacs-yasnippet)))
11668 (home-page "https://github.com/AndreaCrotti/yasnippet-snippets")
11669 (synopsis "Collection of YASnippet snippets for many languages")
11670 (description "This package provides an extensive collection of YASnippet
11671 snippets. When this package is installed, the extra snippets it provides are
11672 automatically made available to YASnippet.")
11673 (license license:gpl3+)))
11674
11675 (define-public emacs-helm-c-yasnippet
11676 (let ((commit "65ca732b510bfc31636708aebcfe4d2d845b59b0")
11677 (revision "1"))
11678 (package
11679 (name "emacs-helm-c-yasnippet")
11680 (version (string-append "0.6.7" "-" revision "."
11681 (string-take commit 7)))
11682 (source (origin
11683 (method git-fetch)
11684 (uri (git-reference
11685 (url "https://github.com/emacs-jp/helm-c-yasnippet")
11686 (commit commit)))
11687 (file-name (git-file-name name version))
11688 (sha256
11689 (base32
11690 "1cbafjqlzxbg19xfdqsinsh7afq58gkf44rsg1qxfgm8g6zhr7f8"))))
11691 (build-system emacs-build-system)
11692 (propagated-inputs
11693 `(("emacs-helm" ,emacs-helm)
11694 ("emacs-yasnippet" ,emacs-yasnippet)))
11695 (home-page "https://github.com/emacs-jp/helm-c-yasnippet")
11696 (synopsis "Helm integration for Yasnippet")
11697 (description "This Emacs library provides Helm interface for
11698 Yasnippet.")
11699 (license license:gpl2+))))
11700
11701 (define-public emacs-helm-system-packages
11702 (package
11703 (name "emacs-helm-system-packages")
11704 (version "1.10.2")
11705 (source (origin
11706 (method git-fetch)
11707 (uri (git-reference
11708 (url "https://github.com/emacs-helm/helm-system-packages")
11709 (commit (string-append "v" version))))
11710 (file-name (git-file-name name version))
11711 (sha256
11712 (base32
11713 "13a8jpj4wwm0yjv8hnsizgjf8wi3r2ap87lyvw7g4c7snp2dydwa"))))
11714 (build-system emacs-build-system)
11715 (inputs
11716 `(("recutils" ,recutils)))
11717 (propagated-inputs
11718 `(("emacs-helm" ,emacs-helm)))
11719 (arguments
11720 `(#:phases
11721 (modify-phases %standard-phases
11722 (add-after 'unpack 'configure
11723 (lambda* (#:key inputs outputs #:allow-other-keys)
11724 (let ((recutils (assoc-ref inputs "recutils")))
11725 ;; Specify the absolute file names of the various
11726 ;; programs so that everything works out-of-the-box.
11727 (substitute* "helm-system-packages-guix.el"
11728 (("recsel") (string-append recutils "/bin/recsel")))))))))
11729 (home-page "https://github.com/emacs-helm/helm-system-packages")
11730 (synopsis "Helm System Packages is an interface to your package manager")
11731 (description "List all available packages in Helm (with installed
11732 packages displayed in their own respective face). Fuzzy-search, mark and
11733 execute the desired action over any selections of packages: Install,
11734 uninstall, display packages details (in Org Mode) or insert details at point,
11735 find files owned by packages... And much more, including performing all the
11736 above over the network.")
11737 (license license:gpl3+)))
11738
11739 (define-public emacs-helm-org-rifle
11740 (package
11741 (name "emacs-helm-org-rifle")
11742 (version "1.7.0")
11743 (source
11744 (origin
11745 (method git-fetch)
11746 (uri (git-reference
11747 (url "https://github.com/alphapapa/helm-org-rifle")
11748 (commit version)))
11749 (file-name (git-file-name name version))
11750 (sha256
11751 (base32
11752 "058zvh7cdall7dl3xay9ibcjvs13fbqp8fli3lz980pinmsds3r2"))))
11753 (build-system emacs-build-system)
11754 (propagated-inputs
11755 `(("emacs-dash" ,emacs-dash)
11756 ("emacs-f" ,emacs-f)
11757 ("emacs-helm" ,emacs-helm)
11758 ("emacs-org" ,emacs-org)
11759 ("emacs-s" ,emacs-s)))
11760 (home-page "https://github.com/alphapapa/helm-org-rifle")
11761 (synopsis "Rifle through Org files")
11762 (description "This package searches both headings and contents of entries
11763 in Org buffers and displays matching entries.")
11764 (license license:gpl3+)))
11765
11766 (define-public emacs-dired-git-info
11767 ;; Upstream has no proper release. The base version is extracted from the
11768 ;; "Version" keyword in the main file.
11769 (let ((commit "91d57e3a4c5104c66a3abc18e281ee55e8979176")
11770 (revision "0"))
11771 (package
11772 (name "emacs-dired-git-info")
11773 (version (git-version "0.3.1" revision commit))
11774 (source
11775 (origin
11776 (method git-fetch)
11777 (uri
11778 (git-reference
11779 (url "https://github.com/clemera/dired-git-info")
11780 (commit commit)))
11781 (file-name (git-file-name name version))
11782 (sha256
11783 (base32 "1dr4iv95s4barxxj56znqkl9z0lg5jw731jmjr01s6vn8ar69gik"))))
11784 (build-system emacs-build-system)
11785 (home-page "https://github.com/clemera/dired-git-info/")
11786 (synopsis "Show git info in Emacs Dired")
11787 (description "This Emacs package provides a minor mode which shows git
11788 information inside the Dired buffer.")
11789 (license license:gpl3+))))
11790
11791 (define-public emacs-dired-toggle-sudo
11792 (let ((commit "13bbe52c54893f5aa3e56228450ffdd0c9e1d169")
11793 (revision "0"))
11794 (package
11795 (name "emacs-dired-toggle-sudo")
11796 (version (git-version "1.0" revision commit))
11797 (source
11798 (origin
11799 (method git-fetch)
11800 (uri (git-reference
11801 (url "https://github.com/renard/dired-toggle-sudo")
11802 (commit commit)))
11803 (file-name (git-file-name name version))
11804 (sha256
11805 (base32
11806 "1fw1pb1z6krqd1pfxxhr6rrfr9ckkcb0zsjzbjk0i2i1q5cg6car"))))
11807 (build-system emacs-build-system)
11808 (home-page "https://github.com/renard/dired-toggle-sudo")
11809 (synopsis "Browse directory with @code{sudo} privileges")
11810 (description "This package allows for the use of @code{dired} with
11811 @code{sudo} privileges.")
11812 (license license:wtfpl2))))
11813
11814 (define-public emacs-diredfl
11815 (package
11816 (name "emacs-diredfl")
11817 (version "0.4")
11818 (source
11819 (origin
11820 (method git-fetch)
11821 (uri
11822 (git-reference
11823 (url "https://github.com/purcell/diredfl")
11824 (commit version)))
11825 (file-name (git-file-name name version))
11826 (sha256
11827 (base32 "1zb2lz7rp58zqvpniqcsmqabi7nqg2d8bfd0hgmq68bn2hd25b5z"))))
11828 (build-system emacs-build-system)
11829 (home-page "https://github.com/purcell/diredfl/")
11830 (synopsis "Extra Emacs font lock rules for a more colourful Dired")
11831 (description "This library enables additional font locking in Dired mode.
11832 This is adapted from the extra font lock rules provided by Drew Adams' Dired+
11833 package.")
11834 (license license:gpl3+)))
11835
11836 (define-public emacs-memoize
11837 (package
11838 (name "emacs-memoize")
11839 (version "1.1")
11840 (source
11841 (origin
11842 (method git-fetch)
11843 (uri (git-reference
11844 (url "https://github.com/skeeto/emacs-memoize")
11845 (commit version)))
11846 (file-name (git-file-name name version))
11847 (sha256
11848 (base32 "04qgnlg4x6va7x364dhj1wbjmz8p5iq2vk36mn9198k2vxmijwzk"))))
11849 (build-system emacs-build-system)
11850 (arguments
11851 `(#:tests? #t
11852 #:test-command '("emacs" "--batch"
11853 "-l" "memoize-test.el"
11854 "-f" "ert-run-tests-batch-and-exit")))
11855 (home-page "https://github.com/skeeto/emacs-memoize")
11856 (synopsis "Emacs lisp memoization library")
11857 (description "@code{emacs-memoize} is an Emacs library for
11858 memoizing functions.")
11859 (license license:unlicense)))
11860
11861 (define-public emacs-linum-relative
11862 (package
11863 (name "emacs-linum-relative")
11864 (version "0.6")
11865 (source
11866 (origin
11867 (method git-fetch)
11868 (uri (git-reference
11869 (url "https://github.com/coldnew/linum-relative")
11870 (commit version)))
11871 (file-name (git-file-name name version))
11872 (sha256
11873 (base32 "0b3n1gk2w1p72x0zfdz9l70winq2fnjpjrgq0awxx730xk7ypp5n"))))
11874 (build-system emacs-build-system)
11875 (home-page "https://github.com/coldnew/linum-relative")
11876 (synopsis "Relative line numbering for Emacs")
11877 (description "@code{emacs-linum-relative} displays the relative line
11878 number on the left margin in Emacs.")
11879 (license license:gpl2+)))
11880
11881 (define-public emacs-idle-highlight
11882 (package
11883 (name "emacs-idle-highlight")
11884 (version "1.1.3")
11885 (source
11886 (origin
11887 (method git-fetch)
11888 (uri (git-reference
11889 (url "https://github.com/nonsequitur/idle-highlight-mode")
11890 (commit version)))
11891 (file-name (git-file-name name version))
11892 (sha256
11893 (base32 "0x4w1ksrw7dicl84zpf4d4scg672dyan9g95jkn6zvri0lr8xciv"))))
11894 (build-system emacs-build-system)
11895 (home-page "https://www.emacswiki.org/emacs/IdleHighlight")
11896 (synopsis "Highlights all occurrences of the word the point is on")
11897 (description
11898 "This Emacs package provides @code{idle-highlight-mode} that sets
11899 an idle timer to highlight all occurrences in the buffer of the word under
11900 the point.")
11901 (license license:gpl3+)))
11902
11903 (define-public emacs-ox-twbs
11904 (package
11905 (name "emacs-ox-twbs")
11906 (version "1.1.4")
11907 (source
11908 (origin
11909 (method git-fetch)
11910 (uri (git-reference
11911 (url "https://github.com/marsmining/ox-twbs")
11912 (commit (string-append "v" version))))
11913 (file-name (git-file-name name version))
11914 (sha256
11915 (base32 "0nffy7ivs8fw0dj3s66hbsby0riz5wrv7xzm8g9mrfvhki938pqa"))))
11916 (build-system emacs-build-system)
11917 (home-page "https://github.com/marsmining/ox-twbs")
11918 (synopsis "Export org-mode docs as HTML compatible with Twitter Bootstrap")
11919 (description
11920 "This Emacs package outputs your org-mode docs with a simple, clean and
11921 modern look. It implements a new HTML back-end for exporting org-mode docs as
11922 HTML compatible with Twitter Bootstrap. By default, HTML is exported with
11923 jQuery and Bootstrap resources included via osscdn.")
11924 (license license:gpl3+)))
11925
11926 (define-public emacs-highlight-sexp
11927 (package
11928 (name "emacs-highlight-sexp")
11929 (version "1.0")
11930 (source
11931 (origin
11932 (method git-fetch)
11933 (uri (git-reference
11934 (url "https://github.com/daimrod/highlight-sexp")
11935 (commit (string-append "v" version))))
11936 (file-name (git-file-name name version))
11937 (sha256
11938 (base32 "12cyk2q5g6p4ac2hykw1cag7dp1prjjnck5f7nalwwaklmy62y79"))))
11939 (build-system emacs-build-system)
11940 (home-page "https://github.com/daimrod/highlight-sexp")
11941 (synopsis "Minor mode that highlights the s-exp at the current position")
11942 (description
11943 "This Emacs package highlights the s-exp at the current position.")
11944 (license license:gpl3+)))
11945
11946 (define-public emacs-highlight-stages
11947 (let ((commit "29cbc5b78261916da042ddb107420083da49b271")
11948 (revision "1"))
11949 (package
11950 (name "emacs-highlight-stages")
11951 (version (string-append "1.1.0" "-" revision "." (string-take commit 7)))
11952 (source
11953 (origin
11954 (method git-fetch)
11955 (uri (git-reference
11956 (url "https://github.com/zk-phi/highlight-stages")
11957 (commit commit)))
11958 (file-name (git-file-name name version))
11959 (sha256
11960 (base32
11961 "0r6nbcrr0dqpgm8dir8ahzjy7rw4nrac48byamzrq96r7ajlxlv0"))
11962 (patches
11963 (search-patches "emacs-highlight-stages-add-gexp.patch"))))
11964 (build-system emacs-build-system)
11965 (home-page "https://github.com/wigust/highlight-stages")
11966 (synopsis "Minor mode that highlights (quasi-quoted) expressions")
11967 (description "@code{highlight-stages} provides an Emacs minor mode that
11968 highlights quasi-quoted expressions.")
11969 (license license:gpl3+))))
11970
11971 (define-public emacspeak
11972 (package
11973 (name "emacspeak")
11974 (version "53.0")
11975 (source
11976 (origin
11977 (method url-fetch)
11978 (uri (string-append
11979 "https://github.com/tvraman/emacspeak/releases/download/"
11980 version "/emacspeak-" version ".tar.bz2"))
11981 (sha256
11982 (base32 "0lasj4ggsh93ingf46n16wxfx5zzxvr1igikbmdqlz3i99j331gs"))))
11983 (build-system gnu-build-system)
11984 (arguments
11985 '(#:make-flags (list (string-append "prefix="
11986 (assoc-ref %outputs "out")))
11987 #:phases
11988 (modify-phases %standard-phases
11989 (replace 'configure
11990 (lambda _
11991 (setenv "SHELL" (which "sh"))
11992 ;; Configure Emacspeak according to etc/install.org.
11993 (invoke "make" "config")))
11994 (add-after 'build 'build-espeak
11995 (lambda _
11996 (invoke "make" "espeak")))
11997 (replace 'install
11998 (lambda* (#:key inputs outputs #:allow-other-keys)
11999 (let* ((out (assoc-ref outputs "out"))
12000 (bin (string-append out "/bin"))
12001 (lisp (string-append out "/share/emacs/site-lisp/emacspeak"))
12002 (info (string-append out "/share/info"))
12003 (emacs (string-append (assoc-ref inputs "emacs")
12004 "/bin/emacs")))
12005 ;; According to etc/install.org, the Emacspeak directory should
12006 ;; be copied to its installation destination.
12007 (for-each
12008 (lambda (file)
12009 (copy-recursively file (string-append lisp "/" file)))
12010 '("etc" "info" "js" "lisp" "media" "servers" "sounds"
12011 "stumpwm" "xsl"))
12012 ;; Make sure emacspeak is loaded from the correct directory.
12013 (substitute* "run"
12014 (("\\./lisp/emacspeak-setup.el")
12015 (string-append lisp "/lisp/emacspeak-setup.el")))
12016 ;; Install the convenient startup script.
12017 (mkdir-p bin)
12018 (copy-file "run" (string-append bin "/emacspeak")))
12019 #t))
12020 (add-after 'install 'wrap-program
12021 (lambda* (#:key inputs outputs #:allow-other-keys)
12022 (let* ((out (assoc-ref outputs "out"))
12023 (emacspeak (string-append out "/bin/emacspeak"))
12024 (espeak (string-append (assoc-ref inputs "espeak")
12025 "/bin/espeak")))
12026 ;; The environment variable DTK_PROGRAM tells emacspeak what
12027 ;; program to use for speech.
12028 (wrap-program emacspeak
12029 `("DTK_PROGRAM" ":" prefix (,espeak)))
12030 #t))))
12031 #:tests? #f)) ; no check target
12032 (inputs
12033 `(("emacs" ,emacs)
12034 ("espeak" ,espeak-ng)
12035 ("perl" ,perl)
12036 ("tcl" ,tcl)
12037 ("tclx" ,tclx)))
12038 (home-page "http://emacspeak.sourceforge.net")
12039 (synopsis "Audio desktop interface for Emacs")
12040 (description
12041 "Emacspeak is a speech interface that allows visually impaired users to
12042 interact independently and efficiently with the computer. Audio
12043 formatting---a technique pioneered by AsTeR---and full support for W3C's Aural
12044 CSS (ACSS) allows Emacspeak to produce rich aural presentations of electronic
12045 information. By seamlessly blending all aspects of the Internet such as
12046 Web-surfing and messaging, Emacspeak speech-enables local and remote
12047 information via a consistent and well-integrated user interface.")
12048 (license license:gpl2+)))
12049
12050 (define-public emacs-adaptive-wrap
12051 (package
12052 (name "emacs-adaptive-wrap")
12053 (version "0.8")
12054 (source
12055 (origin
12056 (method url-fetch)
12057 (uri (string-append "https://elpa.gnu.org/packages/"
12058 "adaptive-wrap-" version ".tar"))
12059 (sha256
12060 (base32 "1gs1pqzywvvw4prj63vpj8abh8h14pjky11xfl23pgpk9l3ldrb0"))))
12061 (build-system emacs-build-system)
12062 (home-page "https://elpa.gnu.org/packages/adaptive-wrap.html")
12063 (synopsis "Smart line-wrapping with wrap-prefix")
12064 (description
12065 "This Emacs package provides the @code{adaptive-wrap-prefix-mode}
12066 minor mode which sets the wrap-prefix property on the fly so that
12067 single-long-line paragraphs get word-wrapped in a way similar to what
12068 you'd get with @kbd{M-q} using @code{adaptive-fill-mode}, but without
12069 actually changing the buffer's text.")
12070 (license license:gpl3+)))
12071
12072 (define-public emacs-diff-hl
12073 (package
12074 (name "emacs-diff-hl")
12075 (version "1.8.8")
12076 (source
12077 (origin
12078 (method git-fetch)
12079 (uri (git-reference
12080 (url "https://github.com/dgutov/diff-hl")
12081 (commit version)))
12082 (file-name (git-file-name name version))
12083 (sha256
12084 (base32 "075klzf66z1rvhpxv4j694pdkmi7f4fpw6c8q4ncz0h4y5wdbl8w"))))
12085 (build-system emacs-build-system)
12086 (home-page "https://github.com/dgutov/diff-hl")
12087 (synopsis
12088 "Highlight uncommitted changes using VC")
12089 (description
12090 "@code{diff-hl-mode} highlights uncommitted changes on the side of the
12091 window (using the fringe, by default), allows you to jump between
12092 the hunks and revert them selectively.")
12093 (license license:gpl3+)))
12094
12095 (define-public emacs-diminish
12096 (package
12097 (name "emacs-diminish")
12098 (version "0.45")
12099 (source
12100 (origin
12101 (method git-fetch)
12102 (uri (git-reference
12103 (url "https://github.com/myrjola/diminish.el")
12104 (commit (string-append "v" version))))
12105 (file-name (git-file-name name version))
12106 (sha256
12107 (base32 "0qpgfgp8hrzz4vdifxq8h25n0a0jlzgf7aa1fpy6r0080v5rqbb6"))))
12108 (build-system emacs-build-system)
12109 (home-page "https://github.com/myrjola/diminish.el")
12110 (synopsis "Diminish minor modes with no modeline display")
12111 (description "@code{emacs-diminish} implements hiding or
12112 abbreviation of the mode line displays (lighters) of minor modes.")
12113 (license license:gpl2+)))
12114
12115 (define-public emacs-use-package
12116 (package
12117 (name "emacs-use-package")
12118 (version "2.4.1")
12119 (source (origin
12120 (method git-fetch)
12121 (uri (git-reference
12122 (url "https://github.com/jwiegley/use-package")
12123 (commit version)))
12124 (file-name (git-file-name name version))
12125 (sha256
12126 (base32
12127 "088kl3bml0rs5bkfymgzr15ram9qvy66h1kaisrbkynh0yxvf8g9"))))
12128 (build-system emacs-build-system)
12129 (native-inputs
12130 `(("texinfo" ,texinfo)))
12131 (propagated-inputs
12132 `(("emacs-diminish" ,emacs-diminish)))
12133 (arguments
12134 `(#:tests? #t
12135 #:test-command '("emacs" "--batch"
12136 "-l" "use-package-tests.el"
12137 "-f" "ert-run-tests-batch-and-exit")
12138 #:phases
12139 (modify-phases %standard-phases
12140 (add-before 'install 'install-manual
12141 (lambda* (#:key outputs #:allow-other-keys)
12142 (let* ((out (assoc-ref outputs "out"))
12143 (info-dir (string-append out "/share/info")))
12144 (mkdir-p info-dir)
12145 (install-file "use-package.info" info-dir)
12146 #t)))
12147 (add-before 'install-manual 'build-manual
12148 (lambda _
12149 (invoke "makeinfo" "use-package.texi")
12150 #t)))))
12151 (home-page "https://github.com/jwiegley/use-package")
12152 (synopsis "Declaration for simplifying your .emacs")
12153 (description "The use-package macro allows you to isolate package
12154 configuration in your @file{.emacs} file in a way that is both
12155 performance-oriented and tidy.")
12156 (license license:gpl2+)))
12157
12158 (define-public emacs-leaf
12159 (package
12160 (name "emacs-leaf")
12161 (version "4.4.4")
12162 (source
12163 (origin
12164 (method url-fetch)
12165 (uri (string-append "https://elpa.gnu.org/packages/"
12166 "leaf-" version ".tar"))
12167 (sha256
12168 (base32 "1npg06zmy21kg2qsqgfm03l7vjib697i96awypcdb0hw5mvmc1a1"))))
12169 (build-system emacs-build-system)
12170 (home-page "https://github.com/conao3/leaf.el")
12171 (synopsis "Simplify your init.el configuration, extended use-package")
12172 (description
12173 "This package provides macros that allows you to declaratively configure
12174 settings typical of an Elisp package with various keywords. The syntax is
12175 similar, but not identical to use-package -- overall, leaf aims at a cleaner
12176 and more predictable implementation.")
12177 (license license:agpl3+)))
12178
12179 (define-public emacs-strace-mode
12180 (let* ((commit "6a69b4b06db6797af56f33eda5cb28af94e59f11")
12181 (revision "1"))
12182 (package
12183 (name "emacs-strace-mode")
12184 (version (string-append "0.0.2-" revision "." (string-take commit 7)))
12185 (source (origin
12186 (method git-fetch)
12187 (uri (git-reference
12188 (url "https://github.com/pkmoore/strace-mode")
12189 (commit commit)))
12190 (file-name (git-file-name name version))
12191 (sha256
12192 (base32
12193 "1lbk2kzdznf2bkfazizfbimaxxzfzv00lrz1ran9dc2zqbc0bj9f"))))
12194 (build-system emacs-build-system)
12195 (home-page "https://github.com/pkmoore/strace-mode")
12196 (synopsis "Emacs major mode to highlight strace outputs")
12197 (description "@code{emacs-strace-mode} provides an Emacs major mode
12198 highlighting strace outputs.")
12199 (license license:gpl3+))))
12200
12201 (define-public emacs-default-encrypt
12202 (package
12203 (name "emacs-default-encrypt")
12204 (version "4.4")
12205 (source
12206 (origin
12207 (method url-fetch)
12208 (uri (string-append
12209 "https://informationelle-selbstbestimmung-im-internet.de"
12210 "/emacs/jl-encrypt" version "/jl-encrypt.el"))
12211 (file-name (string-append "jl-encrypt-" version ".el"))
12212 (sha256
12213 (base32
12214 "0w9ggz075j1zwg7d0rv9k8238g600p7czfnnsnawswi7yps2xk78"))))
12215 (build-system emacs-build-system)
12216 (home-page
12217 "https://informationelle-selbstbestimmung-im-internet.de/Emacs.html")
12218 (synopsis "Automatically encrypt or sign Gnus messages in Emacs")
12219 (description
12220 "DefaultEncrypt is designed to be used with Gnus in Emacs. It
12221 automatically encrypts messages that you send (e.g., email) when public keys
12222 for all recipients are available, and it protects you from accidentally
12223 sending un-encrypted messages. It can also be configured to automatically
12224 sign messages that you send. For details and instructions on how to use
12225 DefaultEncrypt, please refer to the home page or read the comments in the
12226 source file, @file{jl-encrypt.el}.")
12227 (license license:gpl3+)))
12228
12229 (define-public emacs-extend-smime
12230 (package
12231 (name "emacs-extend-smime")
12232 (version "3.3")
12233 (source
12234 (origin
12235 (method url-fetch)
12236 (uri (string-append
12237 "https://informationelle-selbstbestimmung-im-internet.de"
12238 "/emacs/jl-smime" version "/jl-smime.el"))
12239 (file-name (string-append "jl-smime-" version ".el"))
12240 (sha256
12241 (base32
12242 "1iv8s2wjmv3v5qfwlcy9hvvrmxxvp3f8m1krlr789q7bbh35jynh"))))
12243 (build-system emacs-build-system)
12244 (home-page
12245 "https://informationelle-selbstbestimmung-im-internet.de/Emacs.html")
12246 (synopsis "Improved S/MIME support for Gnus in Emacs")
12247 (propagated-inputs
12248 `(("emacs-default-encrypt" ,emacs-default-encrypt)))
12249 (description
12250 ;; TRANSLATORS: ExtendSMIME, DefaultEncrypt, and emacs-default-encrypt
12251 ;; should not be translated. The name "emacs-default-encrypt" refers to
12252 ;; the Guix package that provides DefaultEncrypt.
12253 "ExtendSMIME is designed to be used with Gnus in Emacs. It enhances
12254 DefaultEncrypt (emacs-default-encrypt) to support S/MIME (Secure/Multipurpose
12255 Internet Mail Extensions) via LDAP (Lightweight Directory Access Protocol).
12256 Before a message (e.g., email) is sent, ExtendSMIME searches for missing
12257 certificates via LDAP and imports them into @code{gpgsm}. When certificates
12258 for all recipients are available, DefaultEncrypt automatically encrypts the
12259 message. For details and instructions on how to use ExtendSMIME, please refer
12260 to the home page or read the comments in the source file,
12261 @file{jl-smime.el}.")
12262 (license license:gpl3+)))
12263
12264 (define-public emacs-htmlize
12265 (package
12266 (name "emacs-htmlize")
12267 (version "1.55")
12268 (source
12269 (origin
12270 (method git-fetch)
12271 (uri (git-reference
12272 (url "https://github.com/hniksic/emacs-htmlize")
12273 (commit (string-append "release/" version))))
12274 (file-name (git-file-name name version))
12275 (sha256
12276 (base32 "0gi3xshscpa53qrj8yplfsqahcilc2ybcc2p7gnh5nbnf2n1n97x"))))
12277 (build-system emacs-build-system)
12278 (home-page "https://github.com/hniksic/emacs-htmlize")
12279 (synopsis "Convert buffer text and decorations to HTML")
12280 (description "@code{emacs-htmlize} converts the buffer text and
12281 the associated decorations to HTML. Output to CSS, inline CSS and
12282 fonts is supported.")
12283 (license license:gpl2+)))
12284
12285 (define-public emacs-xmlgen
12286 (package
12287 (name "emacs-xmlgen")
12288 (version "0.5")
12289 (source
12290 (origin
12291 (method git-fetch)
12292 (uri (git-reference
12293 (url "https://github.com/philjackson/xmlgen")
12294 (commit version)))
12295 (file-name (git-file-name name version))
12296 (sha256
12297 (base32 "096i29v0badx0a6339h9ckdz78zj59gbjdp7vj7vhkq9d830392s"))))
12298 (build-system emacs-build-system)
12299 (arguments
12300 `(#:tests? #t
12301 #:test-command '("emacs" "--batch"
12302 "-l" "xmlgen-test.el"
12303 "-f" "ert-run-tests-batch-and-exit")))
12304 (home-page "https://github.com/philjackson/xmlgen")
12305 (synopsis "S-expression to XML domain specific language (DSL) in
12306 Emacs Lisp")
12307 (description "@code{emacs-xmlgen} provides S-expression to XML
12308 conversion for Emacs Lisp.")
12309 (license license:gpl2+)))
12310
12311 (define-public emacs-cdlatex
12312 (package
12313 (name "emacs-cdlatex")
12314 (version "4.7")
12315 (source
12316 (origin
12317 (method git-fetch)
12318 (uri (git-reference
12319 (url "https://github.com/cdominik/cdlatex")
12320 (commit version)))
12321 (file-name (git-file-name name version))
12322 (sha256
12323 (base32 "1jj9vmhc4s3ych08bjm1c2xwi81z1p20rj7bvxrgvb5aga2ghi9d"))))
12324 (build-system emacs-build-system)
12325 (propagated-inputs
12326 `(("emacs-auctex" ,emacs-auctex)))
12327 (home-page "https://github.com/cdominik/cdlatex")
12328 (synopsis "Fast Emacs input methods for LaTeX environments and
12329 math")
12330 (description "CDLaTeX is an Emacs minor mode supporting fast
12331 insertion of environment templates and math in LaTeX. Similar
12332 commands are also offered as part of the AUCTeX package, but it is not
12333 the same - CDLaTeX focuses on speediness for inserting LaTeX
12334 constructs.")
12335 (license license:gpl3+)))
12336
12337 (define-public emacs-cnfonts
12338 (package
12339 (name "emacs-cnfonts")
12340 (version "0.9.1")
12341 (source
12342 (origin
12343 (method git-fetch)
12344 (uri (git-reference
12345 (url "https://github.com/tumashu/cnfonts")
12346 (commit (string-append "v" version))))
12347 (file-name (git-file-name name version))
12348 (sha256
12349 (base32 "11d44lf0m0kbzq1mvyqkl4aprys0xqaarp08nij57xnynin1rynx"))))
12350 (build-system emacs-build-system)
12351 (home-page "https://github.com/tumashu/cnfonts")
12352 (synopsis "Emacs Chinese fonts setup tool")
12353 (description "cnfonts is a Chinese fonts setup tool, allowing for easy
12354 configuration of Chinese fonts.")
12355 (license license:gpl2+)))
12356
12357 (define-public emacs-boon
12358 (package
12359 (name "emacs-boon")
12360 (version "1.1")
12361 (source
12362 (origin
12363 (method git-fetch)
12364 (uri (git-reference
12365 (url "https://github.com/jyp/boon")
12366 (commit version)))
12367 (file-name (git-file-name name version))
12368 (sha256
12369 (base32 "1ss9bjs34q41pa0g0nbdzd8fwpjcbd2239rdlx5aykfv9v0b8j77"))))
12370 (build-system emacs-build-system)
12371 (propagated-inputs
12372 `(("emacs-dash" ,emacs-dash)
12373 ("emacs-expand-region" ,emacs-expand-region)
12374 ("emacs-multiple-cursors" ,emacs-multiple-cursors)
12375 ("emacs-powerline" ,emacs-powerline)
12376 ("emacs-spaceline" ,emacs-spaceline)))
12377 (home-page "https://github.com/jyp/boon")
12378 (synopsis "Ergonomic command mode for Emacs")
12379 (description "Boon is a complete package for modal editing with a focus on
12380 ergonomics and modularity. Spacial allocation of keys comes first, mnemonics
12381 second. Most common operations are mapped to the home row, common editing
12382 commands are bound to keys reachable with the left hand and movement keys are
12383 reached with the right hand.")
12384 (license license:gpl3+)))
12385
12386 (define-public emacs-csharp-mode
12387 (package
12388 (name "emacs-csharp-mode")
12389 (version "0.10.0")
12390 (source
12391 (origin
12392 (method git-fetch)
12393 (uri (git-reference
12394 (url "https://github.com/josteink/csharp-mode")
12395 (commit (string-append "v" version))))
12396 (file-name (git-file-name name version))
12397 (sha256
12398 (base32 "0vwkbla2gkfa9dzxfvrvr7hd2z16769iwbycl7k6l701dnwli1fw"))))
12399 (build-system emacs-build-system)
12400 (home-page "https://github.com/josteink/csharp-mode")
12401 (synopsis "Major mode for C# code")
12402 (description
12403 "This is a C# editing mode for Emacs, based on CC mode. It handles
12404 syntax coloring, indentation, insertion of matched pairs of curly braces and
12405 documentation generation. In addition, it provides menu-based navigation
12406 using Imenu, and Compilation mode support for MSBuild, devenv and xbuild.")
12407 ;; XXX: Project switched to GPL3+ after 0.10.0 release.
12408 (license license:gpl2+)))
12409
12410 (define-public emacs-php-mode
12411 (package
12412 (name "emacs-php-mode")
12413 (version "1.24.0")
12414 (source
12415 (origin
12416 (method git-fetch)
12417 (uri (git-reference
12418 (url "https://github.com/ejmr/php-mode")
12419 (commit (string-append "v" version))))
12420 (file-name (git-file-name name version))
12421 (sha256
12422 (base32 "0bs9q62bd7885c39v7x1qz3w1fhpmpdgm72xwsk2yygw0ii425nn"))))
12423 (build-system emacs-build-system)
12424 (arguments
12425 `(#:include (cons "^lisp/" %default-include)
12426 #:phases
12427 (modify-phases %standard-phases
12428 (add-after 'add-source-to-load-path 'add-lisp-dir-to-emacs-load-path
12429 (lambda _
12430 (setenv "EMACSLOADPATH"
12431 (string-append (getcwd) "/lisp:" (getenv "EMACSLOADPATH"))))))))
12432 (propagated-inputs `(("emacs-projectile" ,emacs-projectile)))
12433 (home-page "https://github.com/ejmr/php-mode")
12434 (synopsis "Major mode for editing PHP code")
12435 (description
12436 "PHP mode is a major mode for editing PHP source code. It's an extension
12437 of C mode; thus it inherits all C mode's navigation functionality. But it
12438 colors according to the PHP grammar and indents according to the PEAR coding
12439 guidelines. It also includes a couple handy IDE-type features such as
12440 documentation search and a source and class browser.")
12441 (license license:gpl3+)))
12442
12443 (define-public emacs-pos-tip
12444 (package
12445 (name "emacs-pos-tip")
12446 (version "0.4.6")
12447 (source
12448 (origin
12449 (method git-fetch)
12450 (uri (git-reference
12451 (url "https://github.com/pitkali/pos-tip")
12452 (commit version)))
12453 (file-name (git-file-name name version))
12454 (sha256
12455 (base32 "0w8bnspnk871qndp18hs0wk4x9x31xr9rwbvf5dc8mcbnj29ch33"))))
12456 (build-system emacs-build-system)
12457 ;; The following functions and variables needed by emacs-pos-tip are
12458 ;; not included in emacs-minimal:
12459 ;; x-display-pixel-width, x-display-pixel-height, x-show-tip
12460 (arguments `(#:emacs ,emacs))
12461 (home-page "https://github.com/pitkali/pos-tip")
12462 (synopsis "Show tooltip at point")
12463 (description "The standard library tooltip.el provides a function for
12464 displaying a tooltip at the mouse position. However, locating a tooltip at an
12465 arbitrary buffer position in a window is not easy. Pos-tip provides such a
12466 function to be used by other frontend programs.")
12467 (license license:gpl2+)))
12468
12469 (define-public emacs-pyim-basedict
12470 (package
12471 (name "emacs-pyim-basedict")
12472 (version "0.3.1")
12473 (source
12474 (origin
12475 (method git-fetch)
12476 (uri (git-reference
12477 (url "https://github.com/tumashu/pyim-basedict")
12478 (commit (string-append "v" version))))
12479 (file-name (git-file-name name version))
12480 (sha256
12481 (base32 "0576r8ap9gp91ycjf1d47pn13kxp0f9fysn09zlq44hr0s1y2y5d"))))
12482 (build-system emacs-build-system)
12483 (home-page "https://github.com/tumashu/pyim-basedict")
12484 (synopsis "Input method dictionary of pyim")
12485 (description "Pyim-basedict is the default pinyin input method dictionary,
12486 containing words from the Rime project.")
12487 (license license:gpl2+)))
12488
12489 (define-public emacs-pyim
12490 (package
12491 (name "emacs-pyim")
12492 (version "3.2")
12493 (source
12494 (origin
12495 (method url-fetch)
12496 (uri (string-append "https://elpa.gnu.org/packages/pyim-" version ".tar"))
12497 (sha256
12498 (base32 "1rr9mq334dqf7mx1ii7910zkigw7chl63iws4sw0qsn014kjlb0a"))))
12499 (build-system emacs-build-system)
12500 (propagated-inputs
12501 `(("emacs-async" ,emacs-async)
12502 ("emacs-pyim-basedict" ,emacs-pyim-basedict)
12503 ("emacs-popup" ,emacs-popup)
12504 ("emacs-posframe" ,emacs-posframe)
12505 ("emacs-xr" ,emacs-xr)))
12506 (home-page "https://github.com/tumashu/pyim")
12507 (synopsis "Chinese input method")
12508 (description
12509 "This package provides a Chinese input method which supports quanpin,
12510 shuangpin, wubi and cangjie.")
12511 (license license:gpl2+)))
12512
12513 (define-public emacs-posframe
12514 (package
12515 (name "emacs-posframe")
12516 (version "0.8.8")
12517 (source
12518 (origin
12519 (method url-fetch)
12520 (uri (string-append "https://elpa.gnu.org/packages/"
12521 "posframe-" version ".tar"))
12522 (sha256
12523 (base32 "1ij6brzcxv9viz37qafcinlfx5l20w8x8s6786r1rsda5n1xsmvd"))))
12524 (build-system emacs-build-system)
12525 ;; emacs-minimal does not include the function font-info.
12526 (arguments
12527 `(#:emacs ,emacs))
12528 (home-page "https://github.com/tumashu/posframe")
12529 (synopsis "Pop a posframe (a child frame) at point")
12530 (description
12531 "Posframe can pop a posframe at point. A posframe is a child frame
12532 displayed within its root window's buffer. Posframe is fast and works well
12533 with CJK languages.")
12534 (license license:gpl3+)))
12535
12536 (define-public emacs-el2org
12537 (package
12538 (name "emacs-el2org")
12539 (version "0.6.0")
12540 (source
12541 (origin
12542 (method git-fetch)
12543 (uri (git-reference
12544 (url "https://github.com/tumashu/el2org")
12545 (commit (string-append "v" version))))
12546 (file-name (git-file-name name version))
12547 (sha256
12548 (base32 "0mzddqny6wpg1fv99xrvlv7rxmaifvmy5bvj4in4pldhm4cx4q1b"))))
12549 (build-system emacs-build-system)
12550 (home-page "https://github.com/tumashu/el2org")
12551 (synopsis "Convert Emacs-lisp file to org file")
12552 (description "El2org is a simple tool, which can convert Emacs-lisp file
12553 to org file, you can use this tool to write orgify commentary.")
12554 (license license:gpl2+)))
12555
12556 (define-public emacs-mustache
12557 (package
12558 (name "emacs-mustache")
12559 (version "0.23")
12560 (source
12561 (origin
12562 (method git-fetch)
12563 (uri (git-reference
12564 (url "https://github.com/Wilfred/mustache.el")
12565 (commit version)))
12566 (file-name (git-file-name name version))
12567 (sha256
12568 (base32 "1n2ymd92qpvsby6ms0l3kjhdzzc47rri2aiscc6bs07hm4mjpr9q"))))
12569 (build-system emacs-build-system)
12570 (propagated-inputs
12571 `(("emacs-dash" ,emacs-dash)
12572 ("emacs-ht" ,emacs-ht)
12573 ("emacs-s" ,emacs-s)))
12574 (home-page "https://github.com/Wilfred/mustache.el")
12575 (synopsis "Mustache templating library for Emacs")
12576 (description "Mustache templating library for Emacs, mustache is
12577 a simple web template system, which is described as a logic-less system
12578 because it lacks any explicit control flow statements, both looping and
12579 conditional evaluation can be achieved using section tags processing lists
12580 and lambdas.")
12581 (license license:gpl3+)))
12582
12583 (define-public emacs-org2web
12584 (package
12585 (name "emacs-org2web")
12586 (version "0.9.1")
12587 (source
12588 (origin
12589 (method git-fetch)
12590 (uri (git-reference
12591 (url "https://github.com/tumashu/org2web")
12592 (commit (string-append "v" version))))
12593 (file-name (git-file-name name version))
12594 (sha256
12595 (base32 "0wsvfn409a2ivbich8b8zqza78sprirg4bl7igx536ydqclmi0n7"))))
12596 (build-system emacs-build-system)
12597 (propagated-inputs
12598 `(("emacs-dash" ,emacs-dash)
12599 ("emacs-el2org" ,emacs-el2org)
12600 ("emacs-ht" ,emacs-ht)
12601 ("emacs-mustache" ,emacs-mustache)
12602 ("emacs-simple-httpd" ,emacs-simple-httpd)))
12603 (home-page "https://github.com/tumashu/org2web")
12604 (synopsis "Static site generator based on org-mode ")
12605 (description "Org2web is a static site generator based on org-mode,
12606 which code derived from Kelvin H's org-page.")
12607 (license license:gpl2+)))
12608
12609 (define-public emacs-xelb
12610 (package
12611 (name "emacs-xelb")
12612 (version "0.18")
12613 (source (origin
12614 (method url-fetch)
12615 (uri (string-append "https://elpa.gnu.org/packages/xelb-"
12616 version ".tar"))
12617 (sha256
12618 (base32
12619 "1fp5mzl63sh0h3ws4l5p4qgvi7ny8a3fj6k4dhqa98xgw2bx03v7"))))
12620 (build-system emacs-build-system)
12621 ;; The following functions and variables needed by emacs-xelb are
12622 ;; not included in emacs-minimal:
12623 ;; x-display-screens, x-keysym-table, x-alt-keysym, x-meta-keysym
12624 ;; x-hyper-keysym, x-super-keysym, libxml-parse-xml-region
12625 ;; x-display-pixel-width, x-display-pixel-height
12626 (arguments
12627 `(#:emacs ,emacs
12628 #:phases
12629 (modify-phases %standard-phases
12630 (add-after 'unpack 'regenerate-el-files
12631 (lambda* (#:key inputs #:allow-other-keys)
12632 (invoke "make"
12633 (string-append "PROTO_PATH="
12634 (assoc-ref inputs "xcb-proto")
12635 "/share/xcb")
12636 (string-append "EMACS_BIN="
12637 (assoc-ref inputs "emacs")
12638 "/bin/emacs -Q")))))))
12639 (native-inputs `(("xcb-proto" ,xcb-proto)))
12640 (home-page "https://github.com/ch11ng/xelb")
12641 (synopsis "X protocol Emacs Lisp binding")
12642 (description "@code{emacs-xelb} is a pure Emacs Lisp implementation of the
12643 X11 protocol based on the XML description files from the XCB project. It
12644 features an object-oriented API and permits a certain degree of concurrency.
12645 It should enable you to implement low-level X11 applications.")
12646 (license license:gpl3+)))
12647
12648 (define-public emacs-exwm
12649 (package
12650 (name "emacs-exwm")
12651 (version "0.24")
12652 (synopsis "Emacs X window manager")
12653 (source
12654 (origin
12655 (method url-fetch)
12656 (uri (string-append "https://elpa.gnu.org/packages/"
12657 "exwm-" version ".tar"))
12658 (sha256
12659 (base32 "0lj1a3cmbpf4h6x8k6x8cdm1qb51ca6filydnvi5zcda8zpl060s"))
12660 (patches
12661 ;; Patch fixing fullscreen view. Applied upstream as
12662 ;; edb930005b0ba83051ca8a59b493e9a3c8ef580a. It can be removed in
12663 ;; next release.
12664 (search-patches "emacs-exwm-fix-fullscreen-states.patch"))))
12665 (build-system emacs-build-system)
12666 (propagated-inputs
12667 `(("emacs-xelb" ,emacs-xelb)))
12668 (inputs
12669 `(("xhost" ,xhost)
12670 ("dbus" ,dbus)))
12671 ;; The following functions and variables needed by emacs-exwm are
12672 ;; not included in emacs-minimal:
12673 ;; scroll-bar-mode, fringe-mode
12674 ;; x-display-pixel-width, x-display-pixel-height
12675 (arguments
12676 `(#:emacs ,emacs
12677 #:phases
12678 (modify-phases %standard-phases
12679 (add-after 'build 'install-xsession
12680 (lambda* (#:key inputs outputs #:allow-other-keys)
12681 (let* ((out (assoc-ref outputs "out"))
12682 (xsessions (string-append out "/share/xsessions"))
12683 (bin (string-append out "/bin"))
12684 (exwm-executable (string-append bin "/exwm")))
12685 ;; Add a .desktop file to xsessions
12686 (mkdir-p xsessions)
12687 (mkdir-p bin)
12688 (make-desktop-entry-file
12689 (string-append xsessions "/exwm.desktop")
12690 #:name ,name
12691 #:comment ,synopsis
12692 #:exec exwm-executable
12693 #:try-exec exwm-executable)
12694 ;; Add a shell wrapper to bin
12695 (with-output-to-file exwm-executable
12696 (lambda _
12697 (format #t "#!~a ~@
12698 ~a +SI:localuser:$USER ~@
12699 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
12700 (string-append (assoc-ref inputs "bash") "/bin/sh")
12701 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
12702 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
12703 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
12704 '(cond
12705 ((file-exists-p "~/.exwm")
12706 (load-file "~/.exwm"))
12707 ((not (featurep 'exwm))
12708 (require 'exwm)
12709 (require 'exwm-config)
12710 (exwm-config-default)
12711 (message (concat "exwm configuration not found. "
12712 "Falling back to default configuration...")))))))
12713 (chmod exwm-executable #o555)
12714 #t))))))
12715 (home-page "https://github.com/ch11ng/exwm")
12716 (description
12717 "EXWM is a full-featured tiling X window manager for Emacs built on top
12718 of XELB.")
12719 (license license:gpl3+)))
12720
12721 (define-public emacs-xelb-no-x-toolkit
12722 (package
12723 (inherit emacs-xelb)
12724 (name "emacs-xelb-no-x-toolkit")
12725 (arguments
12726 (substitute-keyword-arguments (package-arguments emacs-xelb)
12727 ((#:emacs emacs) `,emacs-no-x-toolkit)))))
12728
12729 (define-public emacs-exwm-no-x-toolkit
12730 (package
12731 (inherit emacs-exwm)
12732 (name "emacs-exwm-no-x-toolkit")
12733 (synopsis "Emacs X window manager (without an X toolkit)")
12734 (propagated-inputs
12735 `(("emacs-xelb-no-x-toolkit" ,emacs-xelb-no-x-toolkit)))
12736 (arguments
12737 (substitute-keyword-arguments (package-arguments emacs-exwm)
12738 ((#:emacs emacs) `,emacs-no-x-toolkit)))))
12739
12740 (define-public emacs-switch-window
12741 (package
12742 (name "emacs-switch-window")
12743 (version "1.6.2")
12744 (source
12745 (origin
12746 (method git-fetch)
12747 (uri (git-reference
12748 (url "https://github.com/dimitri/switch-window")
12749 (commit (string-append "v" version))))
12750 (file-name (git-file-name name version))
12751 (sha256
12752 (base32
12753 "0rci96asgamr6qp6nkyr5vwrnslswjxcjd96yccy4aivh0g66yfg"))))
12754 (build-system emacs-build-system)
12755 (home-page "https://github.com/dimitri/switch-window")
12756 (synopsis "Emacs window switch tool")
12757 (description "Switch-window is an emacs window switch tool, which
12758 offer a visual way to choose a window to switch to, delete, split or
12759 other operations.")
12760 (license license:wtfpl2)))
12761
12762 (define-public emacs-exwm-x
12763 (package
12764 (name "emacs-exwm-x")
12765 (version "1.9.0")
12766 (synopsis "Derivative window manager based on EXWM")
12767 (source
12768 (origin
12769 (method git-fetch)
12770 (uri (git-reference
12771 (url "https://github.com/tumashu/exwm-x")
12772 (commit (string-append "v" version))))
12773 (file-name (git-file-name name version))
12774 (sha256
12775 (base32
12776 "03l3dl7s1qys1kkh40rm1sfx7axy1b8sf5f6nyksj9ps6d30p5i4"))))
12777 (build-system emacs-build-system)
12778 (propagated-inputs
12779 `(("emacs-counsel" ,emacs-counsel)
12780 ("emacs-exwm" ,emacs-exwm)
12781 ("emacs-switch-window" ,emacs-switch-window)
12782 ("emacs-use-package" ,emacs-use-package)))
12783 (inputs
12784 `(("xhost" ,xhost)
12785 ("dbus" ,dbus)))
12786 ;; Need emacs instead of emacs-minimal,
12787 ;; for emacs's bin path will be inserted into bin/exwm-x file.
12788 (arguments
12789 `(#:emacs ,emacs
12790 #:phases
12791 (modify-phases %standard-phases
12792 (add-after 'build 'install-xsession
12793 (lambda* (#:key inputs outputs #:allow-other-keys)
12794 (let* ((out (assoc-ref outputs "out"))
12795 (xsessions (string-append out "/share/xsessions"))
12796 (bin (string-append out "/bin"))
12797 (exwm-executable (string-append bin "/exwm-x")))
12798 ;; Add a .desktop file to xsessions
12799 (mkdir-p xsessions)
12800 (mkdir-p bin)
12801 (with-output-to-file
12802 (string-append xsessions "/exwm-x.desktop")
12803 (lambda _
12804 (format #t "[Desktop Entry]~@
12805 Name=~a~@
12806 Comment=~a~@
12807 Exec=~a~@
12808 TryExec=~@*~a~@
12809 Type=Application~%" ,name ,synopsis exwm-executable)))
12810 ;; Add a shell wrapper to bin
12811 (with-output-to-file exwm-executable
12812 (lambda _
12813 (format #t "#!~a ~@
12814 ~a +SI:localuser:$USER ~@
12815 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
12816 (string-append (assoc-ref inputs "bash") "/bin/sh")
12817 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
12818 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
12819 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
12820 '(require 'exwmx-loader))))
12821 (chmod exwm-executable #o555)
12822 #t))))))
12823 (home-page "https://github.com/tumashu/exwm-x")
12824 (description "EXWM-X is a derivative window manager based on EXWM, with focus
12825 on mouse-control.")
12826 (license license:gpl3+)))
12827
12828 (define-public emacs-gnugo
12829 (package
12830 (name "emacs-gnugo")
12831 (version "3.1.0")
12832 (source
12833 (origin
12834 (method url-fetch)
12835 (uri (string-append "https://elpa.gnu.org/packages/gnugo-"
12836 version ".tar"))
12837 (sha256
12838 (base32
12839 "0xpjvs250gg71qwapdsb1hlc61gs0gpkjds01srf784fvyxx2gf1"))))
12840 (build-system emacs-build-system)
12841 (arguments
12842 `(#:phases (modify-phases %standard-phases
12843 (add-after 'unpack 'configure-default-gnugo-xpms-variable
12844 (lambda _
12845 (substitute* "gnugo.el"
12846 (("defvar gnugo-xpms nil")
12847 "defvar gnugo-xpms #'gnugo-imgen-create-xpms"))
12848 #t)))))
12849 (propagated-inputs
12850 `(("emacs-ascii-art-to-unicode" ,emacs-ascii-art-to-unicode)
12851 ("emacs-xpm" ,emacs-xpm)))
12852 (home-page "https://elpa.gnu.org/packages/gnugo.html")
12853 (synopsis "Emacs major mode for playing GNU Go")
12854 (description "This package provides an Emacs based interface for GNU Go.
12855 It has a graphical mode where the board and stones are drawn using XPM images
12856 and supports the use of a mouse.")
12857 (license license:gpl3+)))
12858
12859 (define-public emacs-gnuplot
12860 (package
12861 (name "emacs-gnuplot")
12862 (version "0.8.0")
12863 (source
12864 (origin
12865 (method git-fetch)
12866 (uri (git-reference
12867 (url "https://github.com/emacsorphanage/gnuplot-mode")
12868 (commit version)))
12869 (file-name (git-file-name name version))
12870 (sha256
12871 (base32 "09y177sq24gs7wwjihw59g0m4n1rv2ws9890ynxjxawv823r0fxm"))))
12872 (build-system emacs-build-system)
12873 (home-page "https://github.com/emacsorphanage/gnuplot-mode")
12874 (synopsis "Emacs major mode for interacting with Gnuplot")
12875 (description
12876 "Emacs Gnuplot is an Emacs major mode for interacting with Gnuplot.")
12877 (license license:gpl2+)))
12878
12879 (define-public emacs-transpose-frame
12880 (package
12881 (name "emacs-transpose-frame")
12882 (version "0.2.0")
12883 (source
12884 (origin
12885 (method git-fetch)
12886 (uri (git-reference
12887 (url "https://github.com/emacsorphanage/transpose-frame")
12888 (commit (string-append "v" version))))
12889 (file-name (git-file-name name version))
12890 (sha256
12891 (base32 "01j4ci0c52r2c31hc9r4p7nsb6s8blmvg50g9n5v5h3afjl1c35v"))))
12892 (build-system emacs-build-system)
12893 (home-page "https://www.emacswiki.org/emacs/TransposeFrame")
12894 (synopsis "Transpose window arrangement in current frame")
12895 (description "@code{emacs-transpose-frame} provides some interactive
12896 functions which allows users to transpose windows arrangement in currently
12897 selected frame.")
12898 (license license:bsd-2)))
12899
12900 (define-public emacs-key-chord
12901 (package
12902 (name "emacs-key-chord")
12903 (version "0.6")
12904 (source
12905 (origin
12906 (method url-fetch)
12907 (uri "https://www.emacswiki.org/emacs/download/key-chord.el")
12908 (file-name (string-append "key-chord-" version ".el"))
12909 (sha256
12910 (base32
12911 "03m44pqggfrd53nh9dvpdjgm0rvca34qxmd30hr33hzprzjambxg"))))
12912 (build-system emacs-build-system)
12913 (home-page "https://www.emacswiki.org/emacs/key-chord.el")
12914 (synopsis "Map pairs of simultaneously pressed keys to Emacs commands")
12915 (description "@code{emacs-key-chord} provides @code{key-chord-mode}, a
12916 mode for binding key chords to commands. A key chord is defined as two keys
12917 pressed simultaneously or a single key quickly pressed twice.")
12918 (license license:gpl2+)))
12919
12920 (define-public emacs-evil-surround
12921 (package
12922 (name "emacs-evil-surround")
12923 (version "1.1.1")
12924 (source
12925 (origin
12926 (method git-fetch)
12927 (uri (git-reference
12928 (url "https://github.com/emacs-evil/evil-surround")
12929 (commit version)))
12930 (file-name (git-file-name name version))
12931 (sha256
12932 (base32 "1gfgmr4909m36gknprcam6q4rkcqfbi6w43ky7x6jnlmgb6mxggg"))))
12933 (build-system emacs-build-system)
12934 (propagated-inputs
12935 `(("emacs-evil" ,emacs-evil)))
12936 (arguments
12937 `(#:tests? #t
12938 #:test-command '("make" "test")))
12939 (home-page "https://github.com/emacs-evil/evil-surround")
12940 (synopsis "Easily modify surrounding parentheses and quotes")
12941 (description "@code{emacs-evil-surround} allows easy deletion, change and
12942 addition of surrounding pairs, such as parentheses and quotes, in evil mode.")
12943 (license license:gpl3+)))
12944
12945 (define-public emacs-evil-commentary
12946 (package
12947 (name "emacs-evil-commentary")
12948 (version "2.1.1")
12949 (source
12950 (origin
12951 (method git-fetch)
12952 (uri (git-reference
12953 (url "https://github.com/linktohack/evil-commentary")
12954 (commit (string-append "v" version))))
12955 (file-name (git-file-name name version))
12956 (sha256
12957 (base32 "0zjs9zyqfygnpxapvf0ymmiid40i06cxbhjzd81zw33nafgkf6r4"))))
12958 (build-system emacs-build-system)
12959 (propagated-inputs
12960 `(("emacs-evil" ,emacs-evil)))
12961 (home-page "https://github.com/linktohack/evil-commentary")
12962 (synopsis "Comment out code in evil mode")
12963 (description "@code{emacs-evil-commentary} adds keybindings to easily
12964 comment out lines of code in evil mode. It provides @code{gcc} to comment out
12965 lines, and @code{gc} to comment out the target of a motion.")
12966 (license license:gpl3+)))
12967
12968 ;; Tests for emacs-ansi have a circular dependency with ert-runner, and
12969 ;; therefore cannot be run
12970 (define-public emacs-ansi
12971 (let ((commit "a41d5cc719297515d85bb5256980cd1204a71b88")
12972 (revision "1"))
12973 (package
12974 (name "emacs-ansi")
12975 (version (git-version "0.4.1" revision commit))
12976 (source
12977 (origin
12978 (method git-fetch)
12979 (uri (git-reference
12980 (url "https://github.com/rejeep/ansi.el")
12981 (commit commit)))
12982 (file-name (git-file-name name version))
12983 (sha256
12984 (base32 "051v8dmji90chwbsyqsqry7h35mksal2j6rgw1kpmjsni86d79y1"))))
12985 (build-system emacs-build-system)
12986 (propagated-inputs
12987 `(("emacs-dash" ,emacs-dash)
12988 ("emacs-s" ,emacs-s)))
12989 (home-page "https://github.com/rejeep/ansi.el")
12990 (synopsis "Convert strings to ANSI")
12991 (description "@code{emacs-ansi} defines functions that turns simple
12992 strings to ANSI strings. Turning a string into an ANSI string can be to add
12993 color to a text, add color in the background of a text or adding a style, such
12994 as bold, underscore or italic.")
12995 (license license:gpl3+))))
12996
12997 ;; Tests for emacs-commander have a circular dependency with ert-runner, and
12998 ;; therefore cannot be run
12999 (define-public emacs-commander
13000 (package
13001 (name "emacs-commander")
13002 (version "0.7.0")
13003 (source
13004 (origin
13005 (method git-fetch)
13006 (uri (git-reference
13007 (url "https://github.com/rejeep/commander.el")
13008 (commit (string-append "v" version))))
13009 (file-name (git-file-name name version))
13010 (sha256
13011 (base32 "1j6hhyzww7wfwk6bllbb5mk4hw4qs8hsgfbfdifsam9c6i4spm45"))))
13012 (build-system emacs-build-system)
13013 (propagated-inputs
13014 `(("emacs-dash" ,emacs-dash)
13015 ("emacs-f" ,emacs-f)
13016 ("emacs-s" ,emacs-s)))
13017 (home-page "https://github.com/rejeep/commander.el")
13018 (synopsis "Emacs command line parser")
13019 (description "@code{emacs-commander} provides command line parsing for
13020 Emacs.")
13021 (license license:gpl3+)))
13022
13023 (define-public emacs-eglot
13024 (package
13025 (name "emacs-eglot")
13026 (version "1.7")
13027 (source
13028 (origin
13029 (method url-fetch)
13030 (uri (string-append "https://elpa.gnu.org/packages/"
13031 "eglot-" version ".tar"))
13032 (sha256
13033 (base32 "1zvs144hxq2mmq1h0ynx9hy7yyccb46f3pjg9mgq8v9cw5y678vk"))))
13034 (build-system emacs-build-system)
13035 (propagated-inputs
13036 `(("emacs-eldoc" ,emacs-eldoc)
13037 ("emacs-jsonrpc" ,emacs-jsonrpc)
13038 ("emacs-project" ,emacs-project)))
13039 (home-page "https://github.com/joaotavora/eglot")
13040 (synopsis "Client for Language Server Protocol (LSP) servers")
13041 (description
13042 "Emacs Polyglot, or Eglot, is an Emacs @acronym{Language Server Protocol,
13043 LSP} client that stays out of the way. It guesses the LSP program to start
13044 for the current file, using the major mode as a hint. It prompts you to enter
13045 one if it fails.")
13046 (license license:gpl3+)))
13047
13048 (define-public emacs-eldoc
13049 (package
13050 (name "emacs-eldoc")
13051 (version "1.11.0")
13052 (source
13053 (origin
13054 (method url-fetch)
13055 (uri (string-append
13056 "https://elpa.gnu.org/packages/eldoc-" version ".el"))
13057 (sha256
13058 (base32 "1py9l1vl7s90y5kfpglhy11jswam2gcrqap09h6wb5ldnyb8cgq2"))))
13059 (build-system emacs-build-system)
13060 (home-page "http://elpa.gnu.org/packages/eldoc.html")
13061 (synopsis "Show function arglist or variable docstring in echo area")
13062 (description
13063 "This program was inspired by the behavior of the ``mouse documentation
13064 window'' on many Lisp Machine systems; as you type a function's symbol name as
13065 part of a sexp, it will print the argument list for that function. Behavior
13066 is not identical; for example, you need not actually type the function name,
13067 you need only move point around in a sexp that calls it. Also, if point is
13068 over a documented variable, it will print the one-line documentation for that
13069 variable instead, to remind you of that variable's meaning.")
13070 (license license:gpl3+)))
13071
13072 ;; Tests for ert-runner have a circular dependency with ecukes, and therefore
13073 ;; cannot be run
13074 (define-public emacs-ert-runner
13075 (package
13076 (name "emacs-ert-runner")
13077 (version "0.8.0")
13078 (source
13079 (origin
13080 (method git-fetch)
13081 (uri (git-reference
13082 (url "https://github.com/rejeep/ert-runner.el")
13083 (commit (string-append "v" version))))
13084 (file-name (git-file-name name version))
13085 (sha256
13086 (base32
13087 "08gygn9fjank5gpi4v6ynrkn0jbknxbwsn7md4p9ndygdbmnkf98"))))
13088 (build-system emacs-build-system)
13089 (inputs
13090 `(("emacs-ansi" ,emacs-ansi)
13091 ("emacs-commander" ,emacs-commander)
13092 ("emacs-dash" ,emacs-dash)
13093 ("emacs-f" ,emacs-f)
13094 ("emacs-s" ,emacs-s)
13095 ("emacs-shut-up" ,emacs-shut-up)))
13096 (arguments
13097 `(#:phases
13098 (modify-phases %standard-phases
13099 (add-after 'install 'install-executable
13100 (lambda* (#:key inputs outputs #:allow-other-keys)
13101 (let ((out (assoc-ref outputs "out"))
13102 (source-directory (string-append
13103 (getenv "TMPDIR") "/source")))
13104 (substitute* "bin/ert-runner"
13105 (("ERT_RUNNER=\"\\$\\(dirname \\$\\(dirname \\$0\\)\\)")
13106 (string-append "ERT_RUNNER=\"" out
13107 "/share/emacs/site-lisp")))
13108 (install-file "bin/ert-runner" (string-append out "/bin"))
13109 (wrap-program (string-append out "/bin/ert-runner")
13110 (list "EMACSLOADPATH" ":" 'prefix
13111 ;; Do not capture the transient source directory in
13112 ;; the wrapper.
13113 (delete source-directory
13114 (string-split (getenv "EMACSLOADPATH") #\:))))
13115 #t))))
13116 #:include (cons* "^reporters/.*\\.el$" %default-include)))
13117 (home-page "https://github.com/rejeep/ert-runner.el")
13118 (synopsis "Opinionated Ert testing workflow")
13119 (description "@code{ert-runner} is a tool for Emacs projects tested
13120 using ERT. It assumes a certain test structure setup and can therefore make
13121 running tests easier.")
13122 (license license:gpl3+)))
13123
13124 (define-public emacs-xtest
13125 (package
13126 (name "emacs-xtest")
13127 (version "1.1.0")
13128 (source (origin
13129 (method git-fetch)
13130 (uri (git-reference
13131 (url "https://github.com/promethial/xtest")
13132 (commit (string-append "v" version))))
13133 (file-name (git-file-name name version))
13134 (sha256
13135 (base32
13136 "1wqx6hlqcmqiljydih5fx89dw06g8w728pyn4iqsap8jwgjngb09"))))
13137 (arguments
13138 `(#:exclude '()))
13139 (build-system emacs-build-system)
13140 (home-page "https://github.com/promethial/xtest/")
13141 (synopsis "Simple testing with Emacs")
13142 (description "This package provides a simple testing library for Emacs.")
13143 (license license:gpl3+)))
13144
13145 (define-public emacs-disable-mouse
13146 (package
13147 (name "emacs-disable-mouse")
13148 (version "0.3")
13149 (source
13150 (origin
13151 (method git-fetch)
13152 (uri (git-reference
13153 (url "https://github.com/purcell/disable-mouse")
13154 (commit version)))
13155 (file-name (git-file-name name version))
13156 (sha256
13157 (base32 "0l6mai68ns3qw3rlvjvzsnqwdy7bxqiy0vdwflq0l1plxb1vazyc"))))
13158 (build-system emacs-build-system)
13159 (home-page "https://github.com/purcell/disable-mouse")
13160 (synopsis "Disable mouse commands globally")
13161 (description
13162 "Provides @code{disable-mouse-mode} and @code{global-disable-mouse-mode},
13163 pair of minor modes which suppress all mouse events by intercepting them and
13164 running a customisable handler command (@code{ignore} by default). ")
13165 (license license:gpl3+)))
13166
13167 (define-public emacs-json-reformat
13168 (package
13169 (name "emacs-json-reformat")
13170 (version "0.0.6")
13171 (source
13172 (origin
13173 (method git-fetch)
13174 (uri (git-reference
13175 (url "https://github.com/gongo/json-reformat")
13176 (commit version)))
13177 (file-name (git-file-name name version))
13178 (sha256
13179 (base32 "0qp4n2k6s69jj4gwwimkpadjv245y54wk3bxb1x96f034gkp81vs"))
13180 (patches (search-patches "emacs-json-reformat-fix-tests.patch"))))
13181 (build-system emacs-build-system)
13182 (propagated-inputs
13183 `(("emacs-undercover" ,emacs-undercover)))
13184 (native-inputs
13185 `(("emacs-dash" ,emacs-dash)
13186 ("emacs-shut-up" ,emacs-shut-up)
13187 ("ert-runner" ,emacs-ert-runner)))
13188 (arguments
13189 `(#:tests? #t
13190 #:test-command '("ert-runner")
13191 #:phases
13192 (modify-phases %standard-phases
13193 (add-before 'check 'make-tests-writable
13194 (lambda _
13195 (for-each make-file-writable (find-files "test"))
13196 #t))
13197 (add-before 'check 'delete-json-objects-order-test
13198 (lambda _
13199 (emacs-batch-edit-file "test/json-reformat-test.el"
13200 `(progn (progn (goto-char (point-min))
13201 (re-search-forward
13202 "ert-deftest json-reformat-test:json-reformat-region")
13203 (beginning-of-line)
13204 (kill-sexp))
13205 (basic-save-buffer)))
13206 #t)))))
13207 (home-page "https://github.com/gongo/json-reformat")
13208 (synopsis "Reformatting tool for JSON")
13209 (description "@code{json-reformat} provides a reformatting tool for
13210 @url{http://json.org/, JSON}.")
13211 (license license:gpl3+)))
13212
13213 (define-public emacs-json-snatcher
13214 (package
13215 (name "emacs-json-snatcher")
13216 (version "1.0.0")
13217 (source
13218 (origin
13219 (method git-fetch)
13220 (uri (git-reference
13221 (url "https://github.com/Sterlingg/json-snatcher")
13222 (commit version)))
13223 (file-name (git-file-name name version))
13224 (sha256
13225 (base32 "05zsgnk7grgw9jzwl80h5sxfpifxlr37b4mkbvx7mjq4z14xc2jw"))))
13226 (build-system emacs-build-system)
13227 (home-page "https://github.com/sterlingg/json-snatcher")
13228 (synopsis "Grabs the path to JSON values in a JSON file")
13229 (description "@code{emacs-json-snatcher} grabs the path to JSON values in
13230 a @url{http://json.org/, JSON} file.")
13231 (license license:gpl3+)))
13232
13233 (define-public emacs-json-mode
13234 (package
13235 (name "emacs-json-mode")
13236 (version "1.7.0")
13237 (source
13238 (origin
13239 (method git-fetch)
13240 (uri (git-reference
13241 (url "https://github.com/joshwnj/json-mode")
13242 (commit (string-append "v" version))))
13243 (file-name (git-file-name name version))
13244 (sha256
13245 (base32 "0i79lqzdg59vkqwjd3q092xxn9vhxspb1vn4pkis0vfvn46g01jy"))))
13246 (build-system emacs-build-system)
13247 (propagated-inputs
13248 `(("emacs-json-reformat" ,emacs-json-reformat)
13249 ("emacs-json-snatcher" ,emacs-json-snatcher)))
13250 (home-page "https://github.com/joshwnj/json-mode")
13251 (synopsis "Major mode for editing JSON files")
13252 (description "@code{json-mode} extends the builtin js-mode syntax
13253 highlighting.")
13254 (license license:gpl3+)))
13255
13256 (define-public emacs-jsonrpc
13257 (package
13258 (name "emacs-jsonrpc")
13259 (version "1.0.14")
13260 (source
13261 (origin
13262 (method url-fetch)
13263 (uri (string-append "https://elpa.gnu.org/packages/"
13264 "jsonrpc-" version ".el"))
13265 (sha256
13266 (base32 "069l0sqkambam4ikj9id36kdw1jdjna8v586d51m64hiz96rmvm6"))))
13267 (build-system emacs-build-system)
13268 (home-page "http://elpa.gnu.org/packages/jsonrpc.html")
13269 (synopsis "JSON-RPC library")
13270 (description
13271 "This library implements the JSONRPC 2.0 specification as
13272 described in @url{http://www.jsonrpc.org/}. As the name suggests,
13273 JSONRPC is a generic Remote Procedure Call protocol designed around
13274 JSON objects.")
13275 (license license:gpl3+)))
13276
13277 (define-public emacs-jsonnet-mode
13278 (package
13279 (name "emacs-jsonnet-mode")
13280 (version "0.1.2")
13281 (source
13282 (origin
13283 (method git-fetch)
13284 (uri (git-reference
13285 (url "https://github.com/tminor/jsonnet-mode")
13286 (commit (string-append "v" version))))
13287 (file-name (git-file-name name version))
13288 (sha256
13289 (base32
13290 "0vi7415n90d1z2ww1hld0gdp6v7z4rd6f70h476dp2x4hydk293i"))))
13291 (build-system emacs-build-system)
13292 (propagated-inputs
13293 `(("emacs-dash" ,emacs-dash)))
13294 (home-page "https://github.com/tminor/jsonnet-mode")
13295 (synopsis "Major mode for editing jsonnet files")
13296 (description "This package provides syntax highlighting, indenting,
13297 formatting, and utility methods for jsonnet files.")
13298 (license license:gpl3+)))
13299
13300 (define-public emacs-restclient
13301 (let ((commit "ac8aad6c6b9e9d918062fa3c89c22c2f4ec48bc3")
13302 (version "0")
13303 (revision "3")) ;Guix package revision,
13304 ;upstream doesn't have official releases
13305 (package
13306 (name "emacs-restclient")
13307 (version (git-version version revision commit))
13308 (source (origin
13309 (method git-fetch)
13310 (uri (git-reference
13311 (url "https://github.com/pashky/restclient.el")
13312 (commit commit)))
13313 (sha256
13314 (base32
13315 "1a2c7xzy7rsan1zcdskia6m7n6j29xacfkqjlfdhzk6rr1bpzkwk"))
13316 (file-name (git-file-name name version))))
13317 (build-system emacs-build-system)
13318 (propagated-inputs
13319 `(("emacs-helm" ,emacs-helm)
13320 ("emacs-jq-mode" ,emacs-jq-mode)))
13321 (home-page "https://github.com/pashky/restclient.el")
13322 (synopsis "Explore and test HTTP REST webservices")
13323 (description
13324 "This tool allows for testing and exploration of HTTP REST Web services
13325 from within Emacs. Restclient runs queries from a plan-text query sheet,
13326 displays results pretty-printed in XML or JSON with @code{restclient-mode}")
13327 (license license:public-domain))))
13328
13329 (define-public emacs-jq-mode
13330 (package
13331 (name "emacs-jq-mode")
13332 (version "0.5.0")
13333 (source
13334 (origin
13335 (method git-fetch)
13336 (uri (git-reference
13337 (url "https://github.com/ljos/jq-mode")
13338 (commit (string-append "v" version))))
13339 (file-name (git-file-name name version))
13340 (sha256
13341 (base32 "0xk0if5i9cz4w06lx8v1vdm112pn1ybqgfw048sx15yyvfzgril1"))))
13342 (build-system emacs-build-system)
13343 (home-page "https://github.com/ljos/jq-mode")
13344 (synopsis "Major mode for editing jq queries")
13345 (description
13346 "Jq mode is an Emacs major mode for editing jq-scripts.")
13347 (license license:gpl3+)))
13348
13349 (define-public emacs-whitespace-cleanup-mode
13350 (let ((commit "72427144b054b0238a86e1348c45d986b8830d9d")
13351 (revision "1"))
13352 (package
13353 (name "emacs-whitespace-cleanup-mode")
13354 (version (git-version "0.10" revision commit))
13355 (source (origin
13356 (method git-fetch)
13357 (uri (git-reference
13358 (url "https://github.com/purcell/whitespace-cleanup-mode")
13359 (commit commit)))
13360 (sha256
13361 (base32
13362 "1zlk534jbwrsabcg3kqlzk4h4hwya60lh6q2n1v4yn4rpf5ghsag"))
13363 (file-name (git-file-name name version))))
13364 (build-system emacs-build-system)
13365 (home-page "https://github.com/purcell/whitespace-cleanup-mode")
13366 (synopsis "Intelligently call @code{whitespace-cleanup} on save")
13367 (description
13368 "This package provides a minor mode that calls
13369 @code{whitespace-cleanup} before saving the current buffer only if the
13370 whitespace in the buffer was initially clean.")
13371 (license license:gpl3+))))
13372
13373 (define-public emacs-eimp
13374 (let ((version "1.4.0")
13375 (commit "2e7536fe6d8f7faf1bad7a8ae37faba0162c3b4f")
13376 (revision "1"))
13377 (package
13378 (name "emacs-eimp")
13379 (version (git-version version revision commit))
13380 (source
13381 (origin
13382 (method git-fetch)
13383 (uri (git-reference
13384 (url "https://github.com/nicferrier/eimp")
13385 (commit commit)))
13386 (file-name (git-file-name name version))
13387 (sha256
13388 (base32
13389 "154d57yafxbcf39r89n5j43c86rp2fki3lw3gwy7ww2g6qkclcra"))))
13390 (build-system emacs-build-system)
13391 (arguments
13392 `(#:phases
13393 (modify-phases %standard-phases
13394 (add-after 'unpack 'configure
13395 (lambda* (#:key inputs #:allow-other-keys)
13396 (let ((imagemagick (assoc-ref inputs "imagemagick")))
13397 ;; eimp.el is read-only in git.
13398 (chmod "eimp.el" #o644)
13399 (emacs-substitute-variables "eimp.el"
13400 ("eimp-mogrify-program"
13401 (string-append imagemagick "/bin/mogrify"))))
13402 #t)))))
13403 (inputs
13404 `(("imagemagick" ,imagemagick)))
13405 (home-page "https://github.com/nicferrier/eimp")
13406 (synopsis "Interactive image manipulation utility for Emacs")
13407 (description "@code{emacs-eimp} allows interactive image manipulation
13408 from within Emacs. It uses the code@{mogrify} utility from ImageMagick to do
13409 the actual transformations.")
13410 (license license:gpl2+))))
13411
13412 (define-public emacs-dired-hacks
13413 (let ((commit "d1a2bda6aa8f890cb367297ed93aee6d3b5ba388")
13414 (revision "3"))
13415 (package
13416 (name "emacs-dired-hacks")
13417 (version (git-version "0.0.1" revision commit))
13418 (source (origin
13419 (method git-fetch)
13420 (uri (git-reference
13421 (url "https://github.com/Fuco1/dired-hacks")
13422 (commit commit)))
13423 (file-name (git-file-name name version))
13424 (sha256
13425 (base32
13426 "12m81a9kjhs4cyq3lym0vp5nx6z3sfnypyzrnia76x6rjvixjf6y"))))
13427 (build-system emacs-build-system)
13428 (propagated-inputs
13429 `(("emacs-dash" ,emacs-dash)
13430 ("emacs-eimp" ,emacs-eimp)
13431 ("emacs-f" ,emacs-f)
13432 ("emacs-s" ,emacs-s)))
13433 (home-page "https://github.com/Fuco1/dired-hacks")
13434 (synopsis
13435 "Collection of useful dired additions")
13436 (description
13437 "This package provides the following collection of Emacs dired mode
13438 additions:
13439
13440 @itemize
13441 @item dired-avfs
13442 @item dired-columns
13443 @item dired-filter
13444 @item dired-hacks-utils
13445 @item dired-images
13446 @item dired-list
13447 @item dired-narrow
13448 @item dired-open
13449 @item dired-rainbow
13450 @item dired-ranger
13451 @item dired-subtree
13452 @item dired-tagsistant
13453 @end itemize\n")
13454 (license license:gpl3+))))
13455
13456 (define-public emacs-dired-sidebar
13457 (let ((commit "da77919081d9a4e73c2df63542353319381e4f89")
13458 (revision "2"))
13459 (package
13460 (name "emacs-dired-sidebar")
13461 (home-page "https://github.com/jojojames/dired-sidebar")
13462 (version (git-version "0.1.0" revision commit))
13463 (source (origin
13464 (method git-fetch)
13465 (uri (git-reference (url home-page) (commit commit)))
13466 (file-name (git-file-name name version))
13467 (sha256
13468 (base32
13469 "05h56wdl2xvc8davnx83ypg20fl7wlks97cafa4r2yf141xjc05h"))))
13470 (build-system emacs-build-system)
13471 (propagated-inputs
13472 `(("emacs-dired-subtree" ,emacs-dired-hacks)))
13473 (synopsis "Sidebar for Emacs using Dired")
13474 (description
13475 "This package provides a sidebar for Emacs similar to @code{NeoTree}
13476 or @code{treemacs}, but leveraging @code{Dired} to do the job of display.")
13477 (license license:gpl3+))))
13478
13479 (define-public emacs-which-key
13480 (package
13481 (name "emacs-which-key")
13482 (version "3.5.1")
13483 (source
13484 (origin
13485 (method git-fetch)
13486 (uri (git-reference
13487 (url "https://github.com/justbur/emacs-which-key")
13488 (commit (string-append "v" version))))
13489 (file-name (git-file-name name version))
13490 (sha256
13491 (base32 "1g07i6hyv9glhk6xq1z9vn81vi2f0byy7dp3rg4gw22sm6f6d1al"))))
13492 (build-system emacs-build-system)
13493 (arguments
13494 `(#:tests? #t
13495 #:test-command '("emacs" "--batch"
13496 "-l" "which-key-tests.el"
13497 "-f" "ert-run-tests-batch-and-exit")))
13498 (home-page "https://github.com/justbur/emacs-which-key")
13499 (synopsis "Display available key bindings in popup")
13500 (description
13501 "@code{emacs-which-key} is a minor mode for Emacs that displays the key
13502 bindings following your currently entered incomplete command (a prefix) in a
13503 popup. For example, after enabling the minor mode if you enter C-x and wait
13504 for the default of 1 second, the minibuffer will expand with all of the
13505 available key bindings that follow C-x (or as many as space allows given your
13506 settings).")
13507 (license license:gpl3+)))
13508
13509 (define-public emacs-hercules
13510 (package
13511 (name "emacs-hercules")
13512 (version "0.3.1")
13513 (source
13514 (origin
13515 (method git-fetch)
13516 (uri (git-reference
13517 (url "https://gitlab.com/jjzmajic/hercules.el")
13518 (commit (string-append "v" version))))
13519 (file-name (git-file-name name version))
13520 (sha256
13521 (base32 "1rp37rhkj8jm07dwr74vc68dhrbvyvrxjdavpb0h073ps9vl9dsc"))))
13522 (build-system emacs-build-system)
13523 (propagated-inputs
13524 `(("emacs-which-key" ,emacs-which-key)))
13525 (home-page "https://gitlab.com/jjzmajic/hercules.el")
13526 (synopsis "Call a chain of related commands without repeated prefix keys")
13527 (description
13528 "This package provides sticky-key-like functionality to obviate the need
13529 for repeated prefix-key sequences, and can reuse existing keymaps. The list
13530 of commands is displayed in a handy popup.")
13531 (license license:gpl3+)))
13532
13533 (define-public emacs-ws-butler
13534 (package
13535 (name "emacs-ws-butler")
13536 (version "0.6")
13537 (source (origin
13538 (method git-fetch)
13539 (uri (git-reference
13540 (url "https://github.com/lewang/ws-butler")
13541 (commit "323b651dd70ee40a25accc940b8f80c3a3185205")))
13542 (file-name (git-file-name name version))
13543 (sha256
13544 (base32
13545 "1a4b0lsmwq84qfx51c5xy4fryhb1ysld4fhgw2vr37izf53379sb"))))
13546 (build-system emacs-build-system)
13547 (native-inputs
13548 `(("ert-runner" ,emacs-ert-runner)))
13549 (arguments
13550 `(#:tests? #t
13551 #:test-command '("ert-runner" "tests")))
13552 (home-page "https://github.com/lewang/ws-butler")
13553 (synopsis "Trim spaces from end of lines")
13554 (description
13555 "This Emacs package automatically and unobtrusively trims whitespace
13556 characters from end of lines.")
13557 (license license:gpl3+)))
13558
13559 (define-public emacs-openwith
13560 ;; There is no release tag. Version is extracted from main file.
13561 (let ((version "20120531")
13562 (revision "0")
13563 (commit "5fe01dee520d24c839ad5ee18822667457d9f352"))
13564 (package
13565 (name "emacs-openwith")
13566 (version (git-version version revision commit))
13567 (source
13568 (origin
13569 (method git-fetch)
13570 (uri (git-reference
13571 (url "https://github.com/garberw/openwith")
13572 (commit commit)))
13573 (file-name (git-file-name name version))
13574 (sha256
13575 (base32 "1scbawhlzmj5nhix779rlqf462g37q84vpq205qhg4qyscvfx6bi"))))
13576 (build-system emacs-build-system)
13577 (home-page "https://github.com/garberw/openwith")
13578 (synopsis "Open external applications for files with Emacs")
13579 (description
13580 "This package enables you to associate file name patterns with external
13581 applications that are automatically invoked when you use commands like
13582 @code{find-file}. For example, you can have it open @code{png} files with
13583 @code{feh} and @code{mp4} files with @code{mpv}. This is especially useful
13584 when browsing files with Dired.")
13585 (license license:gpl2+))))
13586
13587 (define-public emacs-org-edit-latex
13588 (package
13589 (name "emacs-org-edit-latex")
13590 (version "0.8.3")
13591 (source
13592 (origin
13593 (method git-fetch)
13594 (uri (git-reference
13595 (url "https://github.com/et2010/org-edit-latex")
13596 (commit (string-append "v" version))))
13597 (file-name (git-file-name name version))
13598 (sha256
13599 (base32 "1w0lyz71dq8x28ira4hig1b70bqn1dr53w3k5dgch9szcf6xa86y"))))
13600 (build-system emacs-build-system)
13601 (propagated-inputs
13602 `(("emacs-auctex" ,emacs-auctex)
13603 ("emacs-org" ,emacs-org)))
13604 (home-page "https://github.com/et2010/org-edit-latex")
13605 (synopsis "Edit a LaTeX fragment just like editing a source block")
13606 (description
13607 "Org Edit LaTeX is an extension for Org mode. It lets you edit a LaTeX
13608 fragment in a dedicated buffer just like editing a source block.")
13609 (license license:gpl3+)))
13610
13611 (define-public emacs-emamux
13612 (package
13613 (name "emacs-emamux")
13614 (version "0.14")
13615 (source
13616 (origin
13617 (method git-fetch)
13618 (uri (git-reference
13619 (url "https://github.com/syohex/emacs-emamux")
13620 (commit version)))
13621 (file-name (git-file-name name version))
13622 (sha256
13623 (base32 "19y69qw79miim9cz5ji54gwspjkcp9g2c1xr5s7jj2fiabnxax6b"))))
13624 (build-system emacs-build-system)
13625 (home-page "https://github.com/syohex/emacs-emamux")
13626 (synopsis "Manipulate Tmux from Emacs")
13627 (description
13628 "@code{emacs-emamux} lets Emacs interact with the @code{tmux} terminal
13629 multiplexer.")
13630 (license license:gpl3+)))
13631
13632 (define-public emacs-rpm-spec-mode
13633 (package
13634 (name "emacs-rpm-spec-mode")
13635 (version "0.16")
13636 (source
13637 (origin
13638 (method url-fetch)
13639 ;; URI has the Fedora release number instead of the version
13640 ;; number. This will have to updated manually every new release.
13641 (uri (string-append
13642 "https://src.fedoraproject.org/cgit/rpms"
13643 "/emacs-rpm-spec-mode.git/snapshot"
13644 "/emacs-rpm-spec-mode-f26.tar.gz"))
13645 (sha256
13646 (base32
13647 "17dz80lhjrc89fj17pysl8slahzrqdkxgcjdk55zls6jizkr6kz3"))))
13648 (build-system emacs-build-system)
13649 (home-page "http://pkgs.fedoraproject.org/cgit/rpms/emacs-rpm-spec-mode.git")
13650 (synopsis "Emacs major mode for editing RPM spec files")
13651 (description "@code{emacs-rpm-spec-mode} provides an Emacs major mode for
13652 editing RPM spec files.")
13653 (license license:gpl2+)))
13654
13655 (define-public emacs-lcr
13656 (package
13657 (name "emacs-lcr")
13658 (version "1.1")
13659 (source
13660 (origin
13661 (method git-fetch)
13662 (uri (git-reference
13663 (url "https://github.com/jyp/lcr")
13664 (commit version)))
13665 (file-name (git-file-name name version))
13666 (sha256
13667 (base32 "0mc55icihxqpf8b05990q1lc2nj2792wcgyr73xsiqx0963sjaj8"))))
13668 (build-system emacs-build-system)
13669 (propagated-inputs
13670 `(("emacs-dash" ,emacs-dash)))
13671 (home-page "https://github.com/jyp/lcr")
13672 (synopsis "Lightweight coroutines in Emacs Lisp")
13673 (description "This package provides macros that can translate code into
13674 equivalent continuation-passing code, as well as miscellaneous utility
13675 functions written in continuation-passing style.")
13676 (license license:gpl3+)))
13677
13678 (define-public emacs-attrap
13679 (package
13680 (name "emacs-attrap")
13681 (version "1.1")
13682 (source
13683 (origin
13684 (method git-fetch)
13685 (uri (git-reference
13686 (url "https://github.com/jyp/attrap")
13687 (commit version)))
13688 (sha256
13689 (base32 "0wqc7bqx9rvk8r7fd3x84h8p01v97s6w2jf29nnjb59xakwp22i7"))
13690 (file-name (git-file-name name version))))
13691 (build-system emacs-build-system)
13692 (propagated-inputs
13693 `(("emacs-dash" ,emacs-dash)
13694 ("emacs-f" ,emacs-f)
13695 ("emacs-flycheck" ,emacs-flycheck)
13696 ("emacs-s" ,emacs-s)))
13697 (home-page "https://github.com/jyp/attrap")
13698 (synopsis "Fix coding error at point")
13699 (description "This package provides a command to fix the Flycheck error
13700 at point.")
13701 (license license:gpl3+)))
13702
13703 (define-public emacs-git-messenger
13704 (package
13705 (name "emacs-git-messenger")
13706 (version "0.18")
13707 (source
13708 (origin
13709 (method git-fetch)
13710 (uri (git-reference
13711 (url "https://github.com/syohex/emacs-git-messenger")
13712 (commit version)))
13713 (file-name (git-file-name name version))
13714 (sha256
13715 (base32 "04fnby2nblk8l70gv09asxkmnn53fh1pdfs77ix44npp99fyw8ix"))))
13716 (build-system emacs-build-system)
13717 (propagated-inputs
13718 `(("emacs-popup" ,emacs-popup)))
13719 (arguments
13720 `(#:tests? #t
13721 #:test-command '("emacs" "--batch" "-l" "test/test.el"
13722 "-f" "ert-run-tests-batch-and-exit")))
13723 (home-page "https://github.com/syohex/emacs-git-messenger")
13724 (synopsis "Popup commit message at current line")
13725 (description "@code{emacs-git-messenger} provides
13726 @code{git-messenger:popup-message}, a function that when called, will popup
13727 the last git commit message for the current line. This uses git-blame
13728 internally.")
13729 (license license:gpl3+)))
13730
13731 (define-public emacs-gitpatch
13732 (package
13733 (name "emacs-gitpatch")
13734 (version "0.5.1")
13735 (source
13736 (origin
13737 (method git-fetch)
13738 (uri (git-reference
13739 (url "https://github.com/tumashu/gitpatch")
13740 (commit (string-append "v" version))))
13741 (file-name (git-file-name name version))
13742 (sha256
13743 (base32 "1drf4fvmak7brf16axkh4nfz8pg44i7pjhfjz3dbkycbpp8y5vig"))))
13744 (build-system emacs-build-system)
13745 (home-page "https://github.com/tumashu/gitpatch")
13746 (synopsis "Mail git patch from Emacs")
13747 (description "@code{emacs-gitpatch} lets users easily send git patches,
13748 created by @code{git format-patch}, from @code{magit}, @code{dired} and
13749 @code{ibuffer} buffers.")
13750 (license license:gpl3+)))
13751
13752 (define-public emacs-erc-hl-nicks
13753 (package
13754 (name "emacs-erc-hl-nicks")
13755 (version "1.3.4")
13756 (source
13757 (origin
13758 (method git-fetch)
13759 (uri (git-reference
13760 (url "https://github.com/leathekd/erc-hl-nicks")
13761 (commit version)))
13762 (file-name (git-file-name name version))
13763 (sha256
13764 (base32 "0k57scxa8rm859fqsm8srhps7rlq06jzazhjbwnadzrh8i5fyvra"))))
13765 (build-system emacs-build-system)
13766 (synopsis "Nickname highlighting for Emacs ERC")
13767 (description "@code{erc-hl-nicks} highlights nicknames in ERC, an IRC
13768 client for Emacs. The main features are:
13769 @itemize
13770 @item Auto-colorizes nicknames without having to specify colors
13771 @item Ignores certain characters that IRC clients add to nicknames to avoid
13772 duplicates (nickname, nickname’, nickname\", etc.)
13773 @item Attempts to produce colors with a sufficient amount of contrast between
13774 the nick color and the background color
13775 @end itemize\n")
13776 (home-page "https://github.com/leathekd/erc-hl-nicks")
13777 (license license:gpl3+)))
13778
13779 (define-public emacs-engine-mode
13780 (package
13781 (name "emacs-engine-mode")
13782 (version "2.1.1")
13783 (source
13784 (origin
13785 (method git-fetch)
13786 (uri (git-reference
13787 (url "https://github.com/hrs/engine-mode")
13788 (commit (string-append "v" version))))
13789 (file-name (git-file-name name version))
13790 (sha256
13791 (base32 "1xka8i4cdvp5r2v2mkli1zz17x1sdsnmszbhqav2rf94v656d91i"))))
13792 (build-system emacs-build-system)
13793 (synopsis "Minor mode for defining and querying search engines")
13794 (description "@code{engine-mode} is a global minor mode for Emacs. It
13795 enables you to easily define search engines, bind them to keybindings, and
13796 query them from the comfort of your editor.")
13797 (home-page "https://github.com/hrs/engine-mode")
13798 (license license:gpl3+)))
13799
13800 (define-public emacs-envrc
13801 (package
13802 (name "emacs-envrc")
13803 (version "0.2")
13804 (source
13805 (origin
13806 (method git-fetch)
13807 (uri (git-reference
13808 (url "https://github.com/purcell/envrc")
13809 (commit version)))
13810 (file-name (git-file-name name version))
13811 (sha256
13812 (base32
13813 "0ssf9i6iym2rb530k2w5aj392qa73i6p5y0vwrs5qhkv9lagqq7p"))))
13814 (build-system emacs-build-system)
13815 (home-page "https://github.com/purcell/envrc")
13816 (synopsis "Support for Direnv which operates buffer-locally")
13817 (description
13818 "This is library which uses Direnv to set environment variables on
13819 a per-buffer basis. This means that when you work across multiple projects
13820 which have @file{.envrc} files, all processes launched from the buffers ``in''
13821 those projects will be executed with the environment variables specified in
13822 those files. This allows different versions of linters and other tools to be
13823 used in each project if desired.")
13824 (license license:gpl3+)))
13825
13826 (define-public emacs-prop-menu
13827 (package
13828 (name "emacs-prop-menu")
13829 (version "0.1.2")
13830 (source
13831 (origin
13832 (method git-fetch)
13833 (uri (git-reference
13834 (url "https://github.com/david-christiansen/prop-menu-el")
13835 (commit version)))
13836 (file-name (git-file-name name version))
13837 (sha256
13838 (base32
13839 "18ap2liz5r5a8ja2zz9182fnfm47jnsbyblpq859zks356k37iwc"))))
13840 (build-system emacs-build-system)
13841 (home-page
13842 "https://github.com/david-christiansen/prop-menu-el")
13843 (synopsis
13844 "Create and display a context menu based on text and overlay properties")
13845 (description
13846 "This is a library for computing context menus based on text
13847 properties and overlays. The intended use is to have tools that
13848 annotate source code and others that use these annotations, without
13849 requiring a direct coupling between them, but maintaining
13850 discoverability.
13851
13852 Major modes that wish to use this library should first define an
13853 appropriate value for @code{prop-menu-item-functions}. Then, they should
13854 bind @code{prop-menu-by-completing-read} to an appropriate
13855 key. Optionally, a mouse pop-up can be added by binding
13856 @code{prop-menu-show-menu} to a mouse event.")
13857 (license license:gpl3+)))
13858
13859 (define-public emacs-idris-mode
13860 (let ((commit "b77eadd8ac2048d5c882b4464bd9673e45dd6a59")
13861 (revision "0"))
13862 (package
13863 (name "emacs-idris-mode")
13864 (version (git-version "1.0" revision commit))
13865 (source
13866 (origin
13867 (method git-fetch)
13868 (uri (git-reference
13869 (url "https://github.com/idris-hackers/idris-mode")
13870 (commit commit)))
13871 (file-name (git-file-name name commit))
13872 (sha256
13873 (base32
13874 "1v8av6jza1j00ln75zjwaca0vmmv0fhhhi94p84rlfzgzykyb9g1"))))
13875 (build-system emacs-build-system)
13876 (propagated-inputs
13877 `(("emacs-prop-menu" ,emacs-prop-menu)))
13878 (home-page
13879 "https://github.com/idris-hackers/idris-mode")
13880 (synopsis "Major mode for editing Idris code")
13881 (description
13882 "This is an Emacs mode for editing Idris code. It is compatible with
13883 the latest versions of Idris 1.")
13884 (license license:gpl3+))))
13885
13886 (define-public emacs-browse-at-remote
13887 (package
13888 (name "emacs-browse-at-remote")
13889 (version "0.14.0")
13890 (source
13891 (origin
13892 (method git-fetch)
13893 (uri (git-reference
13894 (url "https://github.com/rmuslimov/browse-at-remote")
13895 (commit version)))
13896 (file-name (git-file-name name version))
13897 (sha256
13898 (base32 "0bx4ns0jb0sqrjk1nsspvl3mhz3n12925azf7brlwb1vcgnji09v"))))
13899 (build-system emacs-build-system)
13900 (propagated-inputs
13901 `(("emacs-f" ,emacs-f)
13902 ("emacs-s" ,emacs-s)))
13903 (native-inputs
13904 `(("ert-runner" ,emacs-ert-runner)))
13905 (arguments
13906 `(#:tests? #t
13907 #:test-command '("ert-runner")))
13908 (home-page "https://github.com/rmuslimov/browse-at-remote")
13909 (synopsis "Open github/gitlab/bitbucket/stash page from Emacs")
13910 (description
13911 "This Emacs package allows you to open a target page on
13912 github/gitlab (or bitbucket) by calling @code{browse-at-remote} command.
13913 It supports dired buffers and opens them in tree mode at destination.")
13914 (license license:gpl3+)))
13915
13916 (define-public emacs-tiny
13917 (let ((commit "fd8a6b0b0c564d8242259e20e557ee6041f40908")
13918 (revision "1"))
13919 (package
13920 (name "emacs-tiny")
13921 (version (git-version "0.2.1" revision commit))
13922 (source
13923 (origin
13924 (method git-fetch)
13925 (uri (git-reference
13926 (url "https://github.com/abo-abo/tiny")
13927 (commit commit)))
13928 (file-name (git-file-name name version))
13929 (sha256
13930 (base32
13931 "1498j392ap2mk4zmsm2id16pfgvj78r428da9vw7hdrzzibai2cx"))))
13932 (build-system emacs-build-system)
13933 (arguments
13934 `(#:tests? #t
13935 #:test-command '("make" "test")))
13936 (home-page "https://github.com/abo-abo/tiny")
13937 (synopsis "Quickly generate linear ranges in Emacs")
13938 (description
13939 "The main command of the @code{tiny} extension for Emacs is @code{tiny-expand}.
13940 It is meant to quickly generate linear ranges, e.g. 5, 6, 7, 8. Some elisp
13941 proficiency is an advantage, since you can transform your numeric range with
13942 an elisp expression.")
13943 (license license:gpl3+))))
13944
13945 (define-public emacs-emojify
13946 (package
13947 (name "emacs-emojify")
13948 (version "1.2")
13949 (source
13950 (origin
13951 (method git-fetch)
13952 (uri (git-reference
13953 (url "https://github.com/iqbalansari/emacs-emojify")
13954 (commit (string-append "v" version))))
13955 (file-name (git-file-name name version))
13956 (sha256
13957 (base32
13958 "1fqnj5x7ivjkm5y927dqqnm85q5hzczlb0hrfpjalrhasa6ijsrm"))))
13959 (build-system emacs-build-system)
13960 (arguments
13961 `(#:include (cons "^data/" %default-include)))
13962 (propagated-inputs
13963 `(("emacs-ht" ,emacs-ht)))
13964 (home-page "https://github.com/iqbalansari/emacs-emojify")
13965 (synopsis "Display emojis in Emacs")
13966 (description "This package displays emojis in Emacs similar to how Github,
13967 Slack, and other websites do. It can display plain ASCII like @code{:)} as
13968 well as Github-style emojis like @code{:smile:}. It provides a minor mode
13969 @code{emojify-mode} to enable the display of emojis in a buffer.")
13970 (license license:gpl3+)))
13971
13972 (define-public emacs-make-it-so
13973 (let ((commit "b73dfb640588123c9eece230ad72b37604f5c126")
13974 (revision "2"))
13975 (package
13976 (name "emacs-make-it-so")
13977 (version (git-version "0.1.0" revision commit))
13978 (source
13979 (origin
13980 (method git-fetch)
13981 (uri (git-reference
13982 (url "https://github.com/abo-abo/make-it-so")
13983 (commit commit)))
13984 (file-name (git-file-name name version))
13985 (sha256
13986 (base32
13987 "0p6xhyinzzkrwzbpxqfm8hlii0ikvmmylya240bwsa77w0g1k6xq"))))
13988 (build-system emacs-build-system)
13989 (arguments
13990 `(#:include (cons "^recipes/" %default-include)))
13991 (propagated-inputs
13992 `(("emacs-ivy" ,emacs-ivy)))
13993 (home-page "https://github.com/abo-abo/make-it-so")
13994 (synopsis "Transform files with Makefile recipes")
13995 (description "This package provides an interface for selecting from
13996 different conversion recipes, often including tools like @code{ffmpeg} or
13997 @code{convert}. The conversion command need only be written once, and
13998 subsequent invocations can be readily customized. Several recipes are
13999 included by default, and more can be readily added.")
14000 (license license:gpl3+))))
14001
14002 (define-public emacs-unidecode
14003 (let ((commit "5502ada9287b4012eabb879f12f5b0a9df52c5b7")
14004 (revision "1"))
14005 (package
14006 (name "emacs-unidecode")
14007 (version (git-version "0.2" revision commit))
14008 (source
14009 (origin
14010 (method git-fetch)
14011 (uri (git-reference
14012 (url "https://github.com/sindikat/unidecode")
14013 (commit commit)))
14014 (file-name (git-file-name name version))
14015 (sha256
14016 (base32
14017 "03x3nakbhmakwm977mwrf8jifvjnfwzpjv6wrwpizbqjnkgfchmn"))))
14018 (build-system emacs-build-system)
14019 (arguments
14020 `(#:include (cons* "^tools/" "^data/" %default-include)
14021 #:tests? #t
14022 #:test-command '("emacs" "--batch"
14023 "-l" "unidecode-test.el"
14024 "-f" "ert-run-tests-batch-and-exit")
14025 #:phases
14026 (modify-phases %standard-phases
14027 (add-before 'check 'make-tests-writable
14028 (lambda _
14029 (make-file-writable "unidecode-test.el")
14030 #t))
14031 (add-before 'check 'add-require
14032 (lambda _
14033 (emacs-batch-edit-file "unidecode-test.el"
14034 `(progn (progn (goto-char (point-min))
14035 (re-search-forward
14036 "ert-deftest")
14037 (forward-line -1)
14038 (insert "(require 'unidecode)"))
14039 (basic-save-buffer)))
14040 #t)))))
14041 (home-page "https://github.com/sindikat/unidecode")
14042 (synopsis "Transliterate Unicode text to ASCII")
14043 (description "This package provides functions for converting Unicode to ASCII.")
14044 (license license:gpl2+))))
14045
14046 (define-public emacs-pubmed
14047 (package
14048 (name "emacs-pubmed")
14049 (version "0.2.1")
14050 (source
14051 (origin
14052 (method git-fetch)
14053 (uri (git-reference
14054 (url "https://gitlab.com/fvdbeek/emacs-pubmed.git")
14055 (commit (string-append "v" version))))
14056 (file-name (git-file-name name version))
14057 (sha256
14058 (base32
14059 "15bwjxc7g43m5pi8z17anaqqkvi209r7kk1chmf175477gvrv7c0"))))
14060 (build-system emacs-build-system)
14061 (propagated-inputs
14062 `(("emacs-deferred" ,emacs-deferred)
14063 ("emacs-esxml" ,emacs-esxml)
14064 ("emacs-s" ,emacs-s)
14065 ("emacs-unidecode" ,emacs-unidecode)))
14066 (home-page "https://gitlab.com/fvdbeek/emacs-pubmed")
14067 (synopsis "Interface to PubMed")
14068 (description "This package provides an Emacs interface to the PubMed
14069 database of references on life sciences.")
14070 (license license:gpl3+)))
14071
14072 (define-public emacs-websocket
14073 (package
14074 (name "emacs-websocket")
14075 (version "1.13.1")
14076 (source
14077 (origin
14078 (method url-fetch)
14079 (uri (string-append "https://elpa.gnu.org/packages/"
14080 "websocket-" version ".tar"))
14081 (sha256
14082 (base32 "1x664zswas0fpml7zaj59zy97avrm49zb80zd69rlkqzz1m45psc"))))
14083 (build-system emacs-build-system)
14084 (home-page "https://elpa.gnu.org/packages/websocket.html")
14085 (synopsis "Emacs WebSocket client and server")
14086 (description
14087 "This is an Elisp library for WebSocket clients to talk to WebSocket
14088 servers, and for WebSocket servers to accept connections from WebSocket
14089 clients. This library is designed to be used by other library writers, to
14090 write applications that use WebSockets, and is not useful by itself.")
14091 (license license:gpl3+)))
14092
14093 (define-public emacs-oauth2
14094 (package
14095 (name "emacs-oauth2")
14096 (version "0.16")
14097 (source
14098 (origin
14099 (method url-fetch)
14100 (uri (string-append "https://elpa.gnu.org/packages/"
14101 "oauth2-" version ".tar"))
14102 (sha256
14103 (base32 "1rzly2nwjywrfgcmp8zidbmjl2ahyd8l8507lb1mxm4xqryvf316"))))
14104 (build-system emacs-build-system)
14105 (home-page "https://elpa.gnu.org/packages/oauth2.html")
14106 (synopsis "OAuth 2.0 authorization protocol implementation")
14107 (description
14108 "This package provides an Elisp implementation of the OAuth 2.0 draft.
14109 The main entry point is @code{oauth2-auth-and-store} which will return a token
14110 structure. This token structure can be then used with
14111 @code{oauth2-url-retrieve-synchronously} or @code{oauth2-url-retrieve} to
14112 retrieve any data that need OAuth authentication to be accessed. If the token
14113 needs to be refreshed, the code handles it automatically and stores the new
14114 value of the access token.")
14115 (license license:gpl3+)))
14116
14117 (define-public emacs-auth-source-xoauth2
14118 (package
14119 (name "emacs-auth-source-xoauth2")
14120 (version "1.0")
14121 (source
14122 (origin
14123 (method git-fetch)
14124 (uri (git-reference
14125 (url "https://github.com/ccrusius/auth-source-xoauth2")
14126 (commit (string-append "v" version))))
14127 (file-name (git-file-name name version))
14128 (sha256
14129 (base32 "0nl859csl8xcd6ybpjj15ph8l8fxwkwf45kbylss68alkyf1rl3v"))))
14130 (build-system emacs-build-system)
14131 (home-page "https://github.com/ccrusius/auth-source-xoauth2")
14132 (synopsis "XOAuth2 authentication capabilities for Emacs auth-source")
14133 (description
14134 "This package adds XOAuth2 authentication capabilities to Emacs
14135 auth-source. This integration requires some preliminary work on the users’
14136 part, which includes creating tokens.")
14137 (license license:asl2.0)))
14138
14139 (define-public emacs-circe
14140 (package
14141 (name "emacs-circe")
14142 (version "2.11")
14143 (source
14144 (origin
14145 (method git-fetch)
14146 (uri (git-reference
14147 (url "https://github.com/jorgenschaefer/circe")
14148 (commit (string-append "v" version))))
14149 (file-name (git-file-name name version))
14150 (sha256
14151 (base32 "0cr9flk310yn2jgvj4hbqw9nj5wlfi0fazdkqafzidgz6iq150wd"))))
14152 (build-system emacs-build-system)
14153 (arguments
14154 `(#:tests? #t
14155 #:test-command '("buttercup" "-L" ".")
14156 #:phases
14157 (modify-phases %standard-phases
14158 ;; The HOME environment variable should be set to an existing
14159 ;; directory for the tests to succeed.
14160 (add-before 'check 'set-home
14161 (lambda _
14162 (setenv "HOME" "/tmp")
14163 #t)))))
14164 (native-inputs
14165 `(("emacs-buttercup" ,emacs-buttercup)))
14166 ;; In order to securely connect to an IRC server using TLS, Circe requires
14167 ;; the GnuTLS binary.
14168 (propagated-inputs
14169 `(("gnutls" ,gnutls)))
14170 (home-page "https://github.com/jorgenschaefer/circe")
14171 (synopsis "Client for IRC in Emacs")
14172 (description "Circe is a Client for IRC in Emacs. It integrates well with
14173 the rest of the editor, using standard Emacs key bindings and indicating
14174 activity in channels in the status bar so it stays out of your way unless you
14175 want to use it.")
14176 (license license:gpl3+)))
14177
14178 (define-public emacs-tracking
14179 (package
14180 (inherit emacs-circe)
14181 (name "emacs-tracking")
14182 (arguments
14183 ;; "tracking.el" is a library extracted from Circe package. It requires
14184 ;; "shorten.el".
14185 `(#:include '("^shorten.el$" "^tracking.el$")
14186 ,@(package-arguments emacs-circe)))
14187 (home-page "https://github.com/jorgenschaefer/circe/wiki/Tracking")
14188 (synopsis "Buffer tracking library")
14189 (description "@code{tracking.el} provides a way for different modes to
14190 notify the user that a buffer needs attention. The user then can cycle
14191 through them using @key{C-c C-SPC}.")
14192 (license license:gpl3+)))
14193
14194 (define-public emacs-slack
14195 (let ((commit "1f6a40faec0d8d9c9de51c444508d05a3e995ccd")
14196 (revision "9"))
14197 (package
14198 (name "emacs-slack")
14199 (version (git-version "0.0.2" revision commit))
14200 (source (origin
14201 (method git-fetch)
14202 (uri (git-reference
14203 (url "https://github.com/yuya373/emacs-slack")
14204 (commit commit)))
14205 (file-name (git-file-name name commit))
14206 (sha256
14207 (base32
14208 "19lan9nd8qfw2ws7mx814vrin04c892yn5c8g3nad7lpnzszgr1r"))))
14209 (build-system emacs-build-system)
14210 (arguments
14211 `(#:phases
14212 (modify-phases %standard-phases
14213 ;; HOME needs to exist for source compilation.
14214 (add-before 'build 'set-HOME
14215 (lambda _ (setenv "HOME" "/tmp") #t)))))
14216 (propagated-inputs
14217 `(("emacs-alert" ,emacs-alert)
14218 ("emacs-emojify" ,emacs-emojify)
14219 ("emacs-helm" ,emacs-helm)
14220 ("emacs-request" ,emacs-request)
14221 ("emacs-websocket" ,emacs-websocket)
14222 ("emacs-oauth2" ,emacs-oauth2)
14223 ("emacs-circe" ,emacs-circe)))
14224 (home-page "https://github.com/yuya373/emacs-slack")
14225 (synopsis "Slack client for Emacs")
14226 (description "This package provides an Emacs client for the Slack
14227 messaging service.")
14228 (license license:gpl3+))))
14229
14230 (define-public emacs-helm-slack
14231 (let ((commit "465f6220f3f5bee4d95492991fca1290c89534eb")
14232 (revision "1"))
14233 (package
14234 (name "emacs-helm-slack")
14235 (version (git-version "0" revision commit))
14236 (source (origin
14237 (method git-fetch)
14238 (uri (git-reference
14239 (url "https://github.com/yuya373/helm-slack")
14240 (commit commit)))
14241 (file-name (git-file-name name commit))
14242 (sha256
14243 (base32
14244 "0p1s1kl8v68qjprqkf034cz911qzbqxbscqgpn0c3mbm3yfx81f7"))))
14245 (build-system emacs-build-system)
14246 (arguments
14247 `(#:phases
14248 (modify-phases %standard-phases
14249 ;; HOME needs to exist for source compilation.
14250 (add-before 'build 'set-HOME
14251 (lambda _ (setenv "HOME" "/tmp") #t)))))
14252 (propagated-inputs `(("emacs-slack" ,emacs-slack)))
14253 (home-page "https://github.com/yuya373/helm-slack")
14254 (synopsis "Helm extension for emacs-slack")
14255 (description "This package provides an helm extension for emacs-slack
14256 Slack client.")
14257 (license license:gpl3+))))
14258
14259
14260 (define-public emacs-bash-completion
14261 (package
14262 (name "emacs-bash-completion")
14263 (version "3.1.0")
14264 (source
14265 (origin
14266 (method git-fetch)
14267 (uri (git-reference
14268 (url "https://github.com/szermatt/emacs-bash-completion")
14269 (commit (string-append "v" version))))
14270 (file-name (git-file-name name version))
14271 (sha256
14272 (base32 "11j2k3irixp47r2iglxdmjphahqhgnxg98n2xwagwzyq99lsamj4"))))
14273 (inputs `(("bash" ,bash)))
14274 (build-system emacs-build-system)
14275 (arguments
14276 `(#:phases
14277 (modify-phases %standard-phases
14278 (add-after 'unpack 'make-git-checkout-writable
14279 (λ _
14280 (for-each make-file-writable (find-files "."))
14281 #t))
14282 (add-before 'install 'configure
14283 (lambda* (#:key inputs #:allow-other-keys)
14284 (let ((bash (assoc-ref inputs "bash")))
14285 (emacs-substitute-variables "bash-completion.el"
14286 ("bash-completion-prog" (string-append bash "/bin/bash"))))
14287 #t)))))
14288 (home-page "https://github.com/szermatt/emacs-bash-completion")
14289 (synopsis "Bash completion for the shell buffer")
14290 (description
14291 "@code{bash-completion} defines dynamic completion hooks for shell-mode
14292 and shell-command prompts that are based on Bash completion.")
14293 (license license:gpl2+)))
14294
14295 (define-public emacs-easy-kill
14296 (package
14297 (name "emacs-easy-kill")
14298 (version "0.9.4")
14299 (source (origin
14300 (method url-fetch)
14301 (uri (string-append "https://elpa.gnu.org/packages/easy-kill-"
14302 version ".tar"))
14303 (sha256
14304 (base32
14305 "1pqqv4dhfm00wqch4wy3n2illsvxlz9r6r64925cvq3i7wq4la1x"))))
14306 (build-system emacs-build-system)
14307 (home-page "https://github.com/leoliu/easy-kill")
14308 (synopsis "Kill and mark things easily in Emacs")
14309 (description
14310 "This package provides commands @code{easy-kill} and @code{easy-mark} to
14311 let users kill or mark things easily.")
14312 (license license:gpl3+)))
14313
14314 (define-public emacs-csv-mode
14315 (package
14316 (name "emacs-csv-mode")
14317 (version "1.15")
14318 (source
14319 (origin
14320 (method url-fetch)
14321 (uri (string-append "https://elpa.gnu.org/packages/"
14322 "csv-mode-" version ".tar"))
14323 (sha256
14324 (base32 "0pigqhqg5mfza6jdskcr9yvrzdxnd68iyp3vyb8p8wskdacmbiyx"))))
14325 (build-system emacs-build-system)
14326 (home-page "https://elpa.gnu.org/packages/csv-mode.html")
14327 (synopsis "Major mode for editing comma/char separated values")
14328 (description
14329 "This Emacs package implements CSV mode, a major mode for editing records
14330 in a generalized CSV (character-separated values) format.")
14331 (license license:gpl3+)))
14332
14333 (define-public emacs-transmission
14334 (package
14335 (name "emacs-transmission")
14336 (version "0.12.2")
14337 (source
14338 (origin
14339 (method git-fetch)
14340 (uri (git-reference
14341 (url "https://github.com/holomorph/transmission")
14342 (commit version)))
14343 (file-name (git-file-name name version))
14344 (sha256
14345 (base32 "16bn8y2sd7kzihp8bxh4vyay16y91q3yc0gcd0bzywcx3hijqlfc"))))
14346 (build-system emacs-build-system)
14347 (home-page "https://github.com/holomorph/transmission")
14348 (synopsis "Emacs interface to a Transmission session")
14349 (description "This package provides an Emacs interface to interact with a
14350 running session of the Transmission Bittorrent client.
14351
14352 Features:
14353
14354 @itemize
14355 @item List, add, start/stop, verify, remove torrents.
14356 @item Set speed limits, ratio limits, bandwidth priorities, trackers.
14357 @item Navigate to the corresponding file list, torrent info, peer info
14358 contexts.
14359 @item Toggle downloading and set priorities for individual files.
14360 @end itemize\n")
14361 (license license:gpl3+)))
14362
14363 (define-public emacs-polymode
14364 (package
14365 (name "emacs-polymode")
14366 (version "0.2.2")
14367 (source
14368 (origin
14369 (method git-fetch)
14370 (uri (git-reference
14371 (url "https://github.com/polymode/polymode")
14372 (commit (string-append "v" version))))
14373 (file-name (git-file-name name version))
14374 (sha256
14375 (base32 "18ssl2h861dm2jkd3df6wkfr48p8zk337dbvpq5522kia7fq1lbn"))))
14376 (build-system emacs-build-system)
14377 (home-page "https://github.com/polymode/polymode")
14378 (synopsis "Framework for multiple Emacs modes based on indirect buffers")
14379 (description
14380 "Polymode is an Emacs package that offers generic support for multiple
14381 major modes inside a single Emacs buffer. It is lightweight, object oriented
14382 and highly extensible. Creating a new polymode typically takes only a few
14383 lines of code. Polymode also provides extensible facilities for external
14384 literate programming tools for exporting, weaving and tangling.")
14385 (license license:gpl3+)))
14386
14387 (define-public emacs-polymode-ansible
14388 (package
14389 (name "emacs-polymode-ansible")
14390 (version "0.3.0")
14391 (source
14392 (origin
14393 (method git-fetch)
14394 (uri (git-reference
14395 (url "https://gitlab.com/mavit/poly-ansible")
14396 (commit version)))
14397 (file-name (git-file-name name version))
14398 (sha256
14399 (base32 "0f0yq6gmkp194nxk90ipprglf1xkmxrgz1rkgrhfslvxq4q2l81h"))))
14400 (build-system emacs-build-system)
14401 (propagated-inputs
14402 `(("emacs-ansible-doc" ,emacs-ansible-doc)
14403 ("emacs-jinja2-mode" ,emacs-jinja2-mode)
14404 ("emacs-polymode" ,emacs-polymode)
14405 ("emacs-yaml-mode" ,emacs-yaml-mode)))
14406 (properties '((upstream-name . "poly-ansible")))
14407 (home-page "https://gitlab.com/mavit/poly-ansible/")
14408 (synopsis "Polymode for Ansible - Jinja2 in YAML")
14409 (description
14410 "Edit YAML files for Ansible containing embedded Jinja2 templating.")
14411 (license license:gpl3+)))
14412
14413 (define-public emacs-polymode-markdown
14414 (package
14415 (name "emacs-polymode-markdown")
14416 (version "0.2.2")
14417 (home-page "https://github.com/polymode/poly-markdown")
14418 (source
14419 (origin
14420 (method git-fetch)
14421 (uri (git-reference
14422 (url home-page)
14423 (commit (string-append "v" version))))
14424 (file-name (git-file-name name version))
14425 (sha256
14426 (base32 "1q4qq0ql08hxkdrd2aal03560k612my7bvnfpfij3g432hn0p7v6"))))
14427 (build-system emacs-build-system)
14428 (propagated-inputs
14429 `(("emacs-markdown-mode" ,emacs-markdown-mode)
14430 ("emacs-polymode" ,emacs-polymode)))
14431 (properties '((upstream-name . "poly-markdown")))
14432 (synopsis "Polymode for Markdown mode")
14433 (description
14434 "This package allows editing source code blocks embedded in Markdown
14435 files using the major mode corresponding to each block.")
14436 (license license:gpl3+)))
14437
14438 (define-public emacs-powershell
14439 ;; Tagged branch 0.1 is outdated (2015).
14440 (let ((revision "0")
14441 (commit "d1b3f95669343399f199f291ef76c09a0ede5e60"))
14442 (package
14443 (name "emacs-powershell")
14444 (build-system emacs-build-system)
14445 (version (git-version "0.3" revision commit))
14446 (source
14447 (origin
14448 (method git-fetch)
14449 (uri (git-reference
14450 (url "https://github.com/jschaf/powershell.el")
14451 (commit commit)))
14452 (file-name (git-file-name name version))
14453 (sha256
14454 (base32 "1cxhzaaig88zhylyycvb3849r85j1ijqklnh9zbqsfl2zhpb0g5c"))))
14455 (home-page "https://github.com/jschaf/powershell.el")
14456 (synopsis "Emacs mode for editing PowerShell scripts")
14457 (description
14458 "Powershell is an Emacs major mode for editing and running
14459 Microsoft PowerShell files.")
14460 (license license:gpl3+))))
14461
14462 (define-public emacs-polymode-org
14463 (package
14464 (name "emacs-polymode-org")
14465 (version "0.2.2")
14466 (source
14467 (origin
14468 (method git-fetch)
14469 (uri (git-reference
14470 (url "https://github.com/polymode/poly-org")
14471 (commit (string-append "v" version))))
14472 (file-name (git-file-name name version))
14473 (sha256
14474 (base32 "1srnwcsn2bh8gqzxixkhffk7gbnk66kd4dgvxbnps5nxqc6v0qhc"))))
14475 (build-system emacs-build-system)
14476 (propagated-inputs
14477 `(("emacs-polymode" ,emacs-polymode)))
14478 (properties '((upstream-name . "poly-org")))
14479 (home-page "https://github.com/polymode/poly-org")
14480 (synopsis "Polymode definitions for Org mode buffers")
14481 (description
14482 "This package provides definitions for Polymode to support Org buffers.
14483 It edits source blocks in an Org buffer using the native modes of the blocks'
14484 languages while remaining inside the primary Org buffer.")
14485 (license license:gpl3+)))
14486
14487 (define-public eless
14488 (package
14489 (name "eless")
14490 (version "0.6")
14491 (source
14492 (origin
14493 (method git-fetch)
14494 (uri (git-reference
14495 (url "https://github.com/kaushalmodi/eless")
14496 (commit (string-append "v" version))))
14497 (file-name (git-file-name name version))
14498 (sha256
14499 (base32 "1xif339wsc79hsab3l1nnwvy20jg7s1r4akfj4qqi6qxizfhmb52"))))
14500 (build-system copy-build-system)
14501 (inputs
14502 `(("bash" ,bash)
14503 ("emacs" ,emacs)))
14504 (arguments
14505 `(#:install-plan
14506 '(("eless" "bin/")
14507 ("docs/eless.info" "share/info/")
14508 ("eless.org" ,(string-append "share/doc/eless-" version "/")))))
14509 (home-page "https://github.com/kaushalmodi/eless")
14510 (synopsis "Use Emacs as a paginator")
14511 (description "@code{eless} provides a combination of Bash script
14512 and a minimal Emacs view-mode.
14513
14514 Features:
14515
14516 @itemize
14517 @item Independent of a user’s Emacs config.
14518 @item Customizable via the @code{(locate-user-emacs-file \"elesscfg\")} config.
14519 @item Not require an Emacs server to be already running.
14520 @item Syntax highlighting.
14521 @item Org-mode file rendering.
14522 @item @code{man} page viewer.
14523 @item Info viewer.
14524 @item Dired, wdired, (batch edit symbolic links).
14525 @item Colored diffs, git diff, git log, ls with auto ANSI detection.
14526 @item Filter log files lines matching a regexp.
14527 @item Auto-revert log files similar to @code{tail -f}.
14528 @item Quickly change frame and font sizes.
14529 @end itemize\n")
14530 (license license:expat)))
14531
14532 (define-public emacs-evil-matchit
14533 (package
14534 (name "emacs-evil-matchit")
14535 (version "2.3.10")
14536 (source
14537 (origin
14538 (method git-fetch)
14539 (uri (git-reference
14540 (url "https://github.com/redguardtoo/evil-matchit")
14541 (commit version)))
14542 (file-name (git-file-name name version))
14543 (sha256
14544 (base32 "14nrc46290q54y7wv25251f2kqc0z8i9byl09xkgjijqldl9vdxa"))))
14545 (build-system emacs-build-system)
14546 (propagated-inputs
14547 `(("emacs-evil" ,emacs-evil)))
14548 (home-page "https://github.com/redguardtoo/evil-matchit")
14549 (synopsis "Vim matchit ported into Emacs")
14550 (description
14551 "@code{evil-matchit} is a minor mode for jumping between matching tags in
14552 evil mode using @kbd{%}. It is a port of @code{matchit} for Vim.")
14553 (license license:gpl3+)))
14554
14555 (define-public emacs-evil-smartparens
14556 (package
14557 (name "emacs-evil-smartparens")
14558 (version "0.4.0")
14559 (source
14560 (origin
14561 (method git-fetch)
14562 (uri (git-reference
14563 (url "https://github.com/expez/evil-smartparens")
14564 (commit version)))
14565 (file-name (git-file-name name version))
14566 (sha256
14567 (base32 "1di4qz5fbrlwbg16c2j0m7y8zqfxw027qd7zqmc3rwk9znbhg7wl"))))
14568 (build-system emacs-build-system)
14569 (propagated-inputs
14570 `(("emacs-evil" ,emacs-evil)
14571 ("emacs-smartparens" ,emacs-smartparens)))
14572 (home-page "https://github.com/expez/evil-smartparens")
14573 (synopsis "Emacs Evil integration for Smartparens")
14574 (description "@code{emacs-evil-smartparens} is an Emacs minor mode which
14575 makes Evil play nice with Smartparens. Evil is an Emacs minor mode that
14576 emulates Vim features and provides Vim-like key bindings.")
14577 (license license:gpl3+)))
14578
14579 (define-public emacs-evil-quickscope
14580 (package
14581 (name "emacs-evil-quickscope")
14582 (version "0.1.4")
14583 (source
14584 (origin
14585 (method git-fetch)
14586 (uri (git-reference
14587 (url "https://github.com/blorbx/evil-quickscope")
14588 (commit (string-append "v" version))))
14589 (file-name (git-file-name name version))
14590 (sha256
14591 (base32 "1ja9ggj70wf0nmma4xnc1zdzg2crq9h1cv3cj7cgwjmllflgkfq7"))))
14592 (build-system emacs-build-system)
14593 (propagated-inputs
14594 `(("emacs-evil" ,emacs-evil)))
14595 (arguments
14596 `(#:tests? #t
14597 #:test-command '("emacs" "--batch"
14598 "-l" "evil-quickscope-tests.el"
14599 "-f" "ert-run-tests-batch-and-exit")))
14600 (home-page "https://github.com/blorbx/evil-quickscope")
14601 (synopsis "Target highlighting for emacs evil-mode f,F,t and T commands")
14602 (description "@code{emacs-evil-quickscope} highlights targets for Evil
14603 mode’s f,F,t,T keys, allowing for quick navigation within a line. It is a
14604 port of quick-scope for Vim. Evil is an Emacs minor mode that emulates Vim
14605 features and provides Vim-like key bindings.")
14606 (license license:gpl3+)))
14607
14608 (define-public emacs-bongo
14609 (package
14610 (name "emacs-bongo")
14611 (version "1.1")
14612 (source
14613 (origin
14614 (method git-fetch)
14615 (uri (git-reference
14616 (url "https://github.com/dbrock/bongo")
14617 (commit version)))
14618 (file-name (git-file-name name version))
14619 (sha256
14620 (base32 "1nszph9mn98flyhn1jq3y6mdh6jymjkvj5ng36ql016dj92apvhv"))))
14621 (build-system emacs-build-system)
14622 (home-page "https://github.com/dbrock/bongo")
14623 (synopsis "Media player for Emacs")
14624 (description
14625 "This package provides a flexible media player for Emacs. @code{Bongo}
14626 supports multiple backends such as @code{vlc}, @code{mpg123},
14627 @code{ogg123}, @code{speexdec}, @code{timidity}, @code{mikmod} and
14628 @code{afplay}.")
14629 (license license:gpl2+)))
14630
14631 (define-public emacs-groovy-modes
14632 (package
14633 (name "emacs-groovy-modes")
14634 (version "2.0")
14635 (source (origin
14636 (method git-fetch)
14637 (uri (git-reference
14638 (url "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes")
14639 (commit version)))
14640 (file-name (git-file-name name version))
14641 (sha256
14642 (base32
14643 "0c1d4cbnlny8gpcd20zr1wxx6ggf28jgh7sgd5r1skpsvjpbfqx2"))))
14644 (build-system emacs-build-system)
14645 (propagated-inputs
14646 `(("emacs-s" ,emacs-s)))
14647 (home-page "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes")
14648 (synopsis "Groovy related modes for Emacs")
14649 (description
14650 "This package provides @code{groovy-mode} for syntax highlighting in
14651 Groovy source files, REPL integration with run-groovy and Grails project
14652 navigation with the grails mode.")
14653 (license license:gpl3+)))
14654
14655 (define-public emacs-jenkinsfile-mode
14656 (let ((commit "00d259ff9b870d234540e00e1d7c83cccdb063b8")
14657 (revision "1"))
14658 (package
14659 (name "emacs-jenkinsfile-mode")
14660 (version (git-version "0.0.1" revision commit))
14661 (source (origin
14662 (method git-fetch)
14663 (uri (git-reference
14664 (url "https://github.com/john2x/jenkinsfile-mode")
14665 (commit commit)))
14666 (file-name (git-file-name name version))
14667 (sha256
14668 (base32
14669 "0srf6xdjnrd4v4ks9pal7i48wmkcl4q5ry7d0yzfx1c9pz2qg9zx"))))
14670 (propagated-inputs
14671 `(("emacs-groovy-modes" ,emacs-groovy-modes)))
14672 (build-system emacs-build-system)
14673 (home-page "https://github.com/john2x/jenkinsfile-mode/")
14674 (synopsis "Emacs major-mode for editing Jenkinsfile")
14675 (description "This package provides a @code{jenkinsfile-mode} derived
14676 from @code{groovy-mode} for editing Jenkins declarative pipeline files.")
14677 (license license:gpl3+))))
14678
14679 (define-public emacs-kotlin-mode
14680 (let ((commit "0e4bafb31d1fc2a0a420a521c2723d5526646c0b")
14681 (revision "1"))
14682 (package
14683 (name "emacs-kotlin-mode")
14684 (version (git-version "0.0.1" revision commit))
14685 (source
14686 (origin
14687 (method git-fetch)
14688 (uri (git-reference
14689 (url "https://github.com/Emacs-Kotlin-Mode-Maintainers/kotlin-mode")
14690 (commit commit)))
14691 (file-name (git-file-name name version))
14692 (sha256
14693 (base32 "09inpgwmnnqaakyn4r4xs8kax8b89dw94kvl521x6d43h9zl5i70"))))
14694 (build-system emacs-build-system)
14695 (arguments
14696 `(#:tests? #t
14697 #:test-command '("ert-runner" "-L" "." "-L" "test")))
14698 (native-inputs `(("emacs-ert-runner" ,emacs-ert-runner)))
14699 (home-page "https://github.com/Emacs-Kotlin-Mode-Maintainers/kotlin-mode")
14700 (synopsis "Major major-mode for editing Kotlin files")
14701 (description
14702 "This package provides a @code{kotlin-mode} for editing Kotlin files.")
14703 (license license:gpl3+))))
14704
14705 (define-public emacs-org-tree-slide
14706 (let ((commit "036a36eec1cf712d3db155572aed325daa372eb5")
14707 (revision "2"))
14708 (package
14709 (name "emacs-org-tree-slide")
14710 (version (git-version "2.8.4" revision commit))
14711 (source (origin
14712 (method git-fetch)
14713 (uri (git-reference
14714 (url "https://github.com/takaxp/org-tree-slide")
14715 (commit commit)))
14716 (sha256
14717 (base32
14718 "1r8ncx25xmxicgciyv5przp68y8qgy40fm10ba55awvql4xcm0yk"))
14719 (file-name (git-file-name name version))))
14720 (build-system emacs-build-system)
14721 (home-page "https://github.com/takaxp/org-tree-slide")
14722 (synopsis "Presentation tool for org-mode")
14723 (description
14724 "Org-tree-slide provides a slideshow mode to view org-mode files. Use
14725 @code{org-tree-slide-mode} to enter the slideshow mode, and then @kbd{C->} and
14726 @kbd{C-<} to jump to the next and previous slide.")
14727 (license license:gpl3+))))
14728
14729 (define-public emacs-scratch-el
14730 (package
14731 (name "emacs-scratch-el")
14732 (version "1.3")
14733 (source
14734 (origin
14735 (method git-fetch)
14736 (uri (git-reference
14737 (url "https://github.com/ieure/scratch-el")
14738 (commit (string-append "v" version))))
14739 (file-name (git-file-name name version))
14740 (sha256
14741 (base32 "0yiwq2gc4gdgfhaagpawhb7yrzc4fsnyb10w5d0q4whv64cj8555"))))
14742 (build-system emacs-build-system)
14743 (native-inputs
14744 `(("texinfo" ,texinfo)))
14745 (arguments
14746 '(#:phases
14747 (modify-phases %standard-phases
14748 (add-after 'install 'install-doc
14749 (lambda* (#:key outputs #:allow-other-keys)
14750 (unless (invoke "makeinfo" "scratch.texi")
14751 (error "makeinfo failed"))
14752 (install-file "scratch.info"
14753 (string-append (assoc-ref outputs "out")
14754 "/share/info"))
14755 #t)))))
14756 (home-page "https://github.com/ieure/scratch-el/")
14757 (synopsis "Create scratch buffers with the same mode as current buffer")
14758 (description "Scratch is an extension to Emacs that enables one to create
14759 scratch buffers that are in the same mode as the current buffer. This is
14760 notably useful when working on code in some language; you may grab code into a
14761 scratch buffer, and, by virtue of this extension, do so using the Emacs
14762 formatting rules for that language.")
14763 (license license:bsd-2)))
14764
14765 (define-public emacs-kv
14766 (package
14767 (name "emacs-kv")
14768 (version "0.0.19")
14769 (source
14770 (origin
14771 (method git-fetch)
14772 (uri (git-reference
14773 (url "https://github.com/nicferrier/emacs-kv")
14774 (commit "721148475bce38a70e0b678ba8aa923652e8900e")))
14775 (file-name (git-file-name name version))
14776 (sha256
14777 (base32
14778 "0r0lz2s6gvy04fwnafai668jsf4546h4k6zd6isx5wpk0n33pj5m"))))
14779 (build-system emacs-build-system)
14780 (arguments
14781 `(#:tests? #t
14782 #:test-command '("emacs" "--batch" "-l" "kv-tests.el"
14783 "-f" "ert-run-tests-batch-and-exit")))
14784 (home-page "https://github.com/nicferrier/emacs-kv")
14785 (synopsis "Key/Value data structures library for Emacs Lisp")
14786 (description "@code{emacs-kv} is a collection of tools for dealing with
14787 key/value data structures such as plists, alists and hash-tables in Emacs
14788 Lisp.")
14789 (license license:gpl3+)))
14790
14791 (define-public emacs-esxml
14792 (package
14793 (name "emacs-esxml")
14794 (version "0.3.5")
14795 (source (origin
14796 (method git-fetch)
14797 (uri (git-reference
14798 (url "https://github.com/tali713/esxml")
14799 (commit version)))
14800 (file-name (git-file-name name version))
14801 (sha256
14802 (base32
14803 "16jn404vfmsvm12wrf8iczqlgdf2iycbxrvalvzxnm2gr5dfzp7z"))))
14804 (build-system emacs-build-system)
14805 (arguments
14806 `(#:phases
14807 (modify-phases %standard-phases
14808 (add-after 'unpack 'fix-sources
14809 (lambda _
14810 ;; See: https://github.com/tali713/esxml/pull/28.
14811 (substitute* "css-lite.el"
14812 ((";;; main interface")
14813 (string-append ";;; main interface\n"
14814 "(require 'cl-lib)"))
14815 (("mapcan")
14816 "cl-mapcan")
14817 (("',\\(cl-mapcan #'process-css-rule rules\\)")
14818 "(cl-mapcan #'process-css-rule ',rules)"))
14819 (substitute* "esxml-form.el"
14820 ((",esxml-form-field-defn")
14821 "#'esxml-form-field-defn"))
14822 ;; See: https://github.com/tali713/esxml/issues/25
14823 (delete-file "esxpath.el")
14824 #t)))))
14825 (propagated-inputs
14826 `(("emacs-kv" ,emacs-kv)))
14827 (home-page "https://github.com/tali713/esxml/")
14828 (synopsis "SXML for EmacsLisp")
14829 (description "This is XML/XHTML done with S-Expressions in EmacsLisp.
14830 Simply, this is the easiest way to write HTML or XML in Lisp. This library
14831 uses the native form of XML representation as used by many libraries already
14832 included within Emacs. See @code{esxml-to-xml} for a concise description of
14833 the format.")
14834 (license license:gpl3+)))
14835
14836 (define-public emacs-nov-el
14837 (package
14838 (name "emacs-nov-el")
14839 (version "0.3.3")
14840 (source
14841 (origin
14842 (method git-fetch)
14843 (uri (git-reference
14844 (url "https://depp.brause.cc/nov.el.git")
14845 (commit version)))
14846 (file-name (git-file-name name version))
14847 (sha256
14848 (base32
14849 "116klnjyggwfwvs9nqhpv97m00k63q6lg41ph41kywsqkfy42dlk"))))
14850 (build-system emacs-build-system)
14851 (arguments
14852 `(#:phases
14853 (modify-phases %standard-phases
14854 (add-after 'unpack 'embed-path-to-unzip
14855 (lambda _
14856 (substitute* "nov.el"
14857 (("\\(executable-find \"unzip\"\\)")
14858 (string-append "\"" (which "unzip") "\"")))
14859 #t)))))
14860 (propagated-inputs
14861 `(("emacs-dash" ,emacs-dash)
14862 ("emacs-esxml" ,emacs-esxml)))
14863 (inputs
14864 `(("unzip" ,unzip)))
14865 (home-page "https://depp.brause.cc/nov.el/")
14866 (synopsis "Major mode for reading EPUBs in Emacs")
14867 (description "@code{nov.el} provides a major mode for reading EPUB
14868 documents.
14869
14870 Features:
14871
14872 @itemize
14873 @item Basic navigation (jump to TOC, previous/next chapter)
14874 @item Remembering and restoring the last read position
14875 @item Jump to next chapter when scrolling beyond end
14876 @item Renders EPUB2 (@code{.ncx}) and EPUB3 (@code{<nav>}) TOCs
14877 @item Hyperlinks to internal and external targets
14878 @item Supports textual and image documents
14879 @item View source of document files
14880 @item Metadata display
14881 @item Image rescaling
14882 @end itemize
14883 ")
14884 (license license:gpl3+)))
14885
14886 (define-public epipe
14887 (package
14888 (name "epipe")
14889 (version "0.1.0")
14890 (source
14891 (origin
14892 (method git-fetch)
14893 (uri (git-reference
14894 (url "https://github.com/cute-jumper/epipe")
14895 (commit version)))
14896 (file-name (git-file-name name version))
14897 (sha256
14898 (base32 "0lkisi1s7sn12nx8zh58qmsxwnk1rjwryj18wcbr148xqz3swg57"))))
14899 (build-system trivial-build-system)
14900 (inputs
14901 `(("bash" ,bash)
14902 ("perl" ,perl)))
14903 (arguments
14904 `(#:modules
14905 ((guix build utils))
14906 #:builder
14907 (begin
14908 (use-modules (guix build utils))
14909 ;; Extract source.
14910 (copy-recursively (assoc-ref %build-inputs "source") "source")
14911 (chdir "source")
14912 ;; Patch shebangs.
14913 (substitute* "epipe"
14914 (("/usr/bin/env bash")
14915 (string-append (assoc-ref %build-inputs "bash") "/bin/bash")))
14916 (patch-shebang "epipe.pl"
14917 (list (string-append (assoc-ref %build-inputs "perl")
14918 "/bin")))
14919 ;; Install.
14920 (for-each (lambda (file)
14921 (install-file file (string-append %output "/bin")))
14922 '("epipe" "epipe.pl"))
14923 #t)))
14924 (home-page "https://github.com/cute-jumper/epipe")
14925 (synopsis "Pipe to the @code{emacsclient}")
14926 (description "@code{epipe} provides an utility to use your editor in
14927 the pipeline, featuring the support for running @code{emacsclient}.")
14928 (license license:gpl3+)))
14929
14930 (define-public emacs-hcl-mode
14931 (package
14932 (name "emacs-hcl-mode")
14933 (version "0.03")
14934 (source
14935 (origin
14936 (method git-fetch)
14937 (uri (git-reference
14938 (url "https://github.com/syohex/emacs-hcl-mode")
14939 (commit version)))
14940 (file-name (git-file-name name version))
14941 (sha256
14942 (base32 "0jqrgq15jz6pvx38pnwkizzfiih0d3nxqphyrc92nqpcyimg8b6g"))))
14943 (build-system emacs-build-system)
14944 (home-page "https://github.com/syohex/emacs-hcl-mode")
14945 (synopsis "Major mode for the Hashicorp Configuration Language")
14946 (description
14947 "@code{emacs-hcl-mode} provides an Emacs major mode for working with
14948 @acronym{HCL, Hashicorp Configuration Language}. It provides syntax
14949 highlighting and indentation support.")
14950 (license license:gpl3+)))
14951
14952 (define-public emacs-terraform-mode
14953 (package
14954 (name "emacs-terraform-mode")
14955 (version "0.06")
14956 (source
14957 (origin
14958 (method git-fetch)
14959 (uri (git-reference
14960 (url "https://github.com/syohex/emacs-terraform-mode")
14961 (commit version)))
14962 (file-name (git-file-name name version))
14963 (sha256
14964 (base32 "05hn8kskx9lcgn7bzgam99c629zlryir2pickwrqndacjrqpdykx"))))
14965 (build-system emacs-build-system)
14966 (propagated-inputs
14967 `(("emacs-hcl-mode" ,emacs-hcl-mode)))
14968 (home-page "https://github.com/syohex/emacs-terraform-mode")
14969 (synopsis "Major mode for Terraform")
14970 (description
14971 "@code{emacs-terraform-mode} provides a major mode for working with
14972 @uref{https://www.terraform.io/, Terraform} configuration files. Most of the
14973 functionality is inherited from @code{hcl-mode}.")
14974 (license license:gpl3+)))
14975
14976 (define-public emacs-exec-path-from-shell
14977 (package
14978 (name "emacs-exec-path-from-shell")
14979 (version "1.12")
14980 (source
14981 (origin
14982 (method git-fetch)
14983 (uri (git-reference
14984 (url "https://github.com/purcell/exec-path-from-shell")
14985 (commit version)))
14986 (file-name (git-file-name name version))
14987 (sha256
14988 (base32
14989 "1ga8bpxngd3ph2hdiik92c612ki71qxw818i6rgx6f6a5r0sbf3p"))))
14990 (build-system emacs-build-system)
14991 (home-page "https://github.com/purcell/exec-path-from-shell")
14992 (synopsis "Get environment variables such as @env{PATH} from the shell")
14993 (description
14994 "This library allows the user to set Emacs @code{exec-path} and @env{PATH}
14995 from the shell's @env{PATH}, so that @code{shell-command}, @code{compile} and
14996 the like work as expected on systems on which Emacs is not guaranteed to
14997 inherit a login shell's environment variables. It also allows other
14998 environment variables to be retrieved from the shell, so that Emacs will see
14999 the same values you get in a terminal.")
15000 (license license:gpl3+)))
15001
15002 (define-public emacs-frog-menu
15003 (package
15004 (name "emacs-frog-menu")
15005 (version "0.2.11")
15006 (source
15007 (origin
15008 (method url-fetch)
15009 (uri (string-append "https://elpa.gnu.org/packages/"
15010 "frog-menu-" version ".el"))
15011 (sha256
15012 (base32 "06iw11z61fd0g4w3562k3smcmzaq3nivvvc6gzm8y8k5pcrqzdff"))))
15013 (build-system emacs-build-system)
15014 (propagated-inputs
15015 `(("emacs-avy" ,emacs-avy)
15016 ("emacs-posframe" ,emacs-posframe)))
15017 (home-page "https://github.com/clemera/frog-menu")
15018 (synopsis "Quickly pick items from ad hoc menus")
15019 (description
15020 "This package provides a popup offering a preview of a list of candidates
15021 on which user-defined dispatch actions can act.")
15022 (license license:gpl3+)))
15023
15024 (define-public emacs-frog-jump-buffer
15025 (let ((commit "2d7b342785ae27d45f5d252272df6eb773c78e20")
15026 (revision "1"))
15027 (package
15028 (name "emacs-frog-jump-buffer")
15029 (version (git-version "0.1.4" revision commit))
15030 (source
15031 (origin
15032 (method git-fetch)
15033 (uri (git-reference
15034 (url "https://github.com/waymondo/frog-jump-buffer")
15035 (commit commit)))
15036 (file-name (git-file-name name version))
15037 (sha256
15038 (base32
15039 "1z00by8hiss1r2lwmzrl8pnz6jykia2849dqqm4l3z5rf6lwvc0f"))))
15040 (build-system emacs-build-system)
15041 (propagated-inputs
15042 `(("emacs-dash" ,emacs-dash)
15043 ("emacs-frog-menu" ,emacs-frog-menu)
15044 ("emacs-avy" ,emacs-avy)))
15045 (home-page "https://github.com/waymondo/frog-jump-buffer")
15046 (synopsis "Jump to any Emacs buffer with minimal keystrokes")
15047 (description
15048 "This package provides a preview window of buffers that can be switched
15049 to with quicklink-style selections.")
15050 (license license:gpl3+))))
15051
15052 (define-public emacs-deft
15053 (package
15054 (name "emacs-deft")
15055 (version "0.8")
15056 (source
15057 (origin
15058 (method git-fetch)
15059 (uri (git-reference
15060 (url "https://github.com/jrblevin/deft")
15061 (commit (string-append "v" version))))
15062 (file-name (git-file-name name version))
15063 (sha256
15064 (base32
15065 "0z7cilgiz6krvl5h2z72hkch43qxmypb0k6p5vxn5lx1p6v0mrf2"))))
15066 (build-system emacs-build-system)
15067 (home-page "https://jblevins.org/projects/deft/")
15068 (synopsis "Quickly browse, filter, and edit plain text notes")
15069 (description
15070 "Deft is an Emacs mode for quickly browsing, filtering, and editing
15071 directories of plain text notes, inspired by Notational Velocity.")
15072 (license license:bsd-3)))
15073
15074 (define-public emacs-anzu
15075 (package
15076 (name "emacs-anzu")
15077 (version "0.64")
15078 (source
15079 (origin
15080 (method git-fetch)
15081 (uri (git-reference
15082 (url "https://github.com/syohex/emacs-anzu")
15083 (commit version)))
15084 (file-name (git-file-name name version))
15085 (sha256
15086 (base32 "1jfn5nm6r68wa0gn2k2zy6sdq6c8shw8x04ylzzm5cw7zm60jw0n"))))
15087 (build-system emacs-build-system)
15088 (home-page "https://github.com/syohex/emacs-anzu")
15089 (synopsis "Show number of matches in mode-line while searching")
15090 (description
15091 "Anzu provides a minor mode which displays \"current match/total
15092 matches\" in the mode line in various search modes. This is an Emacs port of
15093 Anzu.zim.")
15094 (license license:gpl3+)))
15095
15096 (define-public emacs-ascii-art-to-unicode
15097 (package
15098 (name "emacs-ascii-art-to-unicode")
15099 (version "1.13")
15100 (source
15101 (origin
15102 (method url-fetch)
15103 (uri (string-append "https://elpa.gnu.org/packages/ascii-art-to-unicode-"
15104 version ".el"))
15105 (sha256
15106 (base32 "1c0jva3amhl9c5xc5yzdpi58c8m1djym4ccj31z6wmakq7npy07p"))))
15107 (build-system emacs-build-system)
15108 (home-page "https://elpa.gnu.org/packages/ascii-art-to-unicode.html")
15109 (synopsis "ASCII to Unicode art converter for Emacs")
15110 (description "This Emacs package provides the commands @command{aa2u} and
15111 @command{aa2u-rectangle}. Both of these commands can be used to convert
15112 simple ASCII art line drawings to Unicode; the former works on the active
15113 region of the buffer, while the latter works on rectangular selections.")
15114 (license license:gpl3+)))
15115
15116 (define-public emacs-emmet-mode
15117 (let ((commit "1acb821e0142136344ccf40c1e5fb664d7db2e70")
15118 (revision "1"))
15119 (package
15120 (name "emacs-emmet-mode")
15121 (version (git-version "1.0.8" revision commit))
15122 (source (origin
15123 (method git-fetch)
15124 (uri (git-reference
15125 (url "https://github.com/smihica/emmet-mode")
15126 (commit commit)))
15127 (file-name (git-file-name name version))
15128 (sha256
15129 (base32
15130 "1p25h191bm0h5b3w5apg7wks51k7pb7h4dlww4jbl9ri4d33fzcl"))))
15131 (build-system emacs-build-system)
15132 (home-page "https://github.com/smihica/emmet-mode")
15133 (synopsis "Unofficial Emmet's support for Emacs")
15134 (description
15135 "Unfold CSS-selector-like expressions to markup. It is intended to be
15136 used with SGML-like languages: XML, HTML, XHTML, XSL, etc.")
15137 (license license:gpl3+))))
15138
15139 (define-public emacs-ergoemacs-mode
15140 (let ((commit "3ce23bba3cb50562693860f87f3528c471d603ba")
15141 (revision "1"))
15142 (package
15143 (name "emacs-ergoemacs-mode")
15144 (version (git-version "5.16.10.12" revision commit))
15145 (source
15146 (origin
15147 (method git-fetch)
15148 (uri (git-reference
15149 (url "https://github.com/ergoemacs/ergoemacs-mode")
15150 (commit commit)))
15151 (file-name (git-file-name name version))
15152 (sha256
15153 (base32
15154 "1s3b9bridl78hh1mxmdk9nqlmqhibbaxk0a1cixmsf23s06w8w6l"))))
15155 (build-system emacs-build-system)
15156 (propagated-inputs
15157 `(("emacs-undo-tree" ,emacs-undo-tree)))
15158 (home-page "https://ergoemacs.github.io/")
15159 (synopsis "Emacs mode based on common modern interface and ergonomics")
15160 (description
15161 "This package provides an efficient Emacs keybinding set based on
15162 statistics of command frequency, and supports common shortcuts for open,
15163 close, copy, cut, paste, undo, redo.")
15164 (license license:gpl3+))))
15165
15166 (define-public emacs-password-store
15167 (let ((commit "918992c19231b33b3d4a3288a7288a620e608cb4")
15168 (revision "1"))
15169 (package
15170 (name "emacs-password-store")
15171 ;; The emacs package version does not match the password-store version,
15172 ;; even though it is part of the same repository. When updating, look
15173 ;; at the version declared in password-store.el.
15174 (version (git-version "2.1.4" revision commit))
15175 (source (origin
15176 (method git-fetch)
15177 (uri (git-reference
15178 (url "git://git.zx2c4.com/password-store")
15179 (commit commit)))
15180 (sha256
15181 (base32
15182 "0ni62f4pq96g0i0q66bch1dl9k4zqwhg7xaf746k3gbbqxcdh3vi"))
15183 (file-name (git-file-name name version))))
15184 (build-system emacs-build-system)
15185 (arguments
15186 `(#:phases
15187 (modify-phases %standard-phases
15188 (add-after 'unpack 'extract-el-file
15189 (lambda _
15190 (copy-file "contrib/emacs/password-store.el" "password-store.el")
15191 (delete-file-recursively "contrib")
15192 (delete-file-recursively "man")
15193 (delete-file-recursively "src")
15194 (delete-file-recursively "tests"))))))
15195 (propagated-inputs
15196 `(("emacs-auth-source-pass" ,emacs-auth-source-pass)
15197 ("emacs-s" ,emacs-s)
15198 ("emacs-with-editor" ,emacs-with-editor)
15199 ("password-store" ,password-store)))
15200 (home-page "https://git.zx2c4.com/password-store/tree/contrib/emacs")
15201 (synopsis "Password store (pass) support for Emacs")
15202 (description
15203 "This package provides functions for working with pass (\"the
15204 standard Unix password manager\").")
15205 (license license:gpl2+))))
15206
15207 (define-public emacs-password-store-otp
15208 (package
15209 (name "emacs-password-store-otp")
15210 (version "0.1.5")
15211 (source
15212 (origin
15213 (method git-fetch)
15214 (uri (git-reference
15215 (url "https://github.com/volrath/password-store-otp.el")
15216 (commit version)))
15217 (sha256
15218 (base32 "0gb48blvnn6ci2wl45z81p41ny7vbgl610hqy6b2hyr2171qjd60"))
15219 (file-name (git-file-name name version))))
15220 (build-system emacs-build-system)
15221 (propagated-inputs
15222 `(("emacs-password-store" ,emacs-password-store)
15223 ("emacs-s" ,emacs-s)))
15224 (home-page "https://github.com/volrath/password-store-otp.el")
15225 (synopsis
15226 "Interact with the @code{pass-otp} extension for @code{pass} from Emacs")
15227 (description "This package provides Emacs functions to interact with the
15228 @code{pass-otp} extension for @code{pass}. It includes functions to import
15229 OTP URIs from screenshots of QR codes, and to export them back to QR codes if
15230 needed.")
15231 (license license:gpl3+)))
15232
15233 (define-public emacs-auth-source-pass
15234 (let ((commit "847a1f54ed48856b4dfaaa184583ef2c84173edf")
15235 (revision "2"))
15236 (package
15237 (name "emacs-auth-source-pass")
15238 (version (git-version "5.0.0" revision commit))
15239 (source
15240 (origin
15241 (method git-fetch)
15242 (uri (git-reference
15243 (url "https://github.com/DamienCassou/auth-password-store")
15244 (commit commit)))
15245 (file-name (git-file-name name version))
15246 (sha256
15247 (base32 "0g48z5w6n3c54zqfpx65dfyl9jqbl15idvbb1hhw2pd9f9r8fykk"))))
15248 (build-system emacs-build-system)
15249 (arguments
15250 `(#:tests? #t
15251 #:test-command '("emacs" "--batch"
15252 "-L" "."
15253 "-l" "test/auth-source-pass-tests.el"
15254 "-f" "ert-run-tests-batch-and-exit")))
15255 (home-page "https://github.com/DamienCassou/auth-password-store")
15256 (synopsis "Integrate @code{auth-source} with @code{password-store}")
15257 (description "This package helps Emacs integrate with the Unix
15258 @code{password-store} application.")
15259 (license license:gpl3+))))
15260
15261 (define-public emacs-pass
15262 (package
15263 (name "emacs-pass")
15264 (version "2.0")
15265 (source
15266 (origin
15267 (method git-fetch)
15268 (uri (git-reference
15269 (url "https://github.com/NicolasPetton/pass")
15270 (commit version)))
15271 (file-name (git-file-name name version))
15272 (sha256
15273 (base32 "0jc8j421mlflspg24jvrqc2n3y5n3cpk3hjy560il8g36xi1049p"))))
15274 (build-system emacs-build-system)
15275 (propagated-inputs
15276 `(("emacs-password-store" ,emacs-password-store)
15277 ("emacs-f" ,emacs-f)))
15278 (home-page "https://github.com/NicolasPetton/pass")
15279 (synopsis "Major mode for @file{password-store.el}")
15280 (description "This is a major mode for managing password-store (pass)
15281 keychains. The keychain entries are displayed in a directory-like structure
15282 and can be consulted and modified.")
15283 (license license:gpl3+)))
15284
15285 (define-public emacs-psc-ide
15286 ;; There is no proper release. The base version is extracted from the
15287 ;; "Version" keyword in the main file.
15288 (let ((commit "7fc2b841be25f5bc5e1eb7d0634436181c38b3fe")
15289 (revision "1"))
15290 (package
15291 (name "emacs-psc-ide")
15292 (version (git-version "0.1.0" revision commit))
15293 (source
15294 (origin
15295 (method git-fetch)
15296 (uri
15297 (git-reference
15298 (url "https://github.com/purescript-emacs/psc-ide-emacs")
15299 (commit commit)))
15300 (file-name (git-file-name name version))
15301 (sha256
15302 (base32 "0r0fymyai30jimm34z1cmav4wgij8ci6s1d9y7qigygfbbfrdsmj"))))
15303 (build-system emacs-build-system)
15304 (propagated-inputs
15305 `(("emacs-company" ,emacs-company)
15306 ("emacs-dash" ,emacs-dash)
15307 ("emacs-flycheck" ,emacs-flycheck)
15308 ("emacs-let-alist" ,emacs-let-alist)
15309 ("emacs-s" ,emacs-s)))
15310 (home-page "https://github.com/purescript-emacs/psc-ide-emacs")
15311 (synopsis "Emacs integration for PureScript's psc-ide tool")
15312 (description
15313 "This package provices Emacs integration for @code{psc-ide}, an IDE
15314 protocol for PureScript programming language. It features:
15315
15316 @itemize
15317 @item Completions
15318 @item Type at point
15319 @item Go to definition
15320 @item Automatic imports
15321 @item Case split
15322 @item Build system integration, and
15323 @item Flycheck support
15324 @end itemize")
15325 (license license:gpl3+))))
15326
15327 (define-public emacs-evil-anzu
15328 (package
15329 (name "emacs-evil-anzu")
15330 (version "0.03")
15331 (source
15332 (origin
15333 (method git-fetch)
15334 (uri (git-reference
15335 (url "https://github.com/syohex/emacs-evil-anzu")
15336 (commit version)))
15337 (file-name (git-file-name name version))
15338 (sha256
15339 (base32 "0lw7fg4gqwj30r0l6k2ni36sxqkf65zf0d0z3rxnpwbxlf8dlkrr"))))
15340 (build-system emacs-build-system)
15341 (propagated-inputs
15342 `(("emacs-evil" ,emacs-evil)
15343 ("emacs-anzu" ,emacs-anzu)))
15344 (home-page "https://github.com/syohex/emacs-evil-anzu")
15345 (synopsis "Anzu for evil-mode")
15346 (description "@code{anzu} provides a minor mode that displays the current
15347 match and total match information in the mode-line in various search modes.")
15348 (license license:gpl3+)))
15349
15350 (define-public emacs-pg
15351 (let ((commit "4f6516ec3946d95dcef49abb6703cc89ecb5183d"))
15352 (package
15353 (name "emacs-pg")
15354 (version (git-version "0.1" "1" commit))
15355 (source (origin
15356 (method git-fetch)
15357 (uri (git-reference (url "https://github.com/cbbrowne/pg.el")
15358 (commit commit)))
15359 (file-name (git-file-name name version))
15360 (sha256
15361 (base32
15362 "1zh7v4nnpzvbi8yj1ynlqlawk5bmlxi6s80b5f2y7hkdqb5q26k0"))))
15363 (build-system emacs-build-system)
15364 (home-page "https://github.com/cbbrowne/pg.el")
15365 (synopsis "Emacs Lisp interface for PostgreSQL")
15366 (description
15367 "This package provides an Emacs Lisp interface for PostgreSQL.")
15368 (license license:gpl3+))))
15369
15370 (define-public emacs-finalize
15371 (package
15372 (name "emacs-finalize")
15373 (version "2.0.0")
15374 (source
15375 (origin
15376 (method git-fetch)
15377 (uri (git-reference
15378 (url "https://github.com/skeeto/elisp-finalize")
15379 (commit version)))
15380 (file-name (git-file-name name version))
15381 (sha256
15382 (base32 "1gvlm4i62af5jscwz0jccc8ra0grprxpg2rlq91d5nn8dn5lpy79"))))
15383 (build-system emacs-build-system)
15384 (home-page "https://github.com/skeeto/elisp-finalize")
15385 (synopsis "Finalizers for Emacs Lisp")
15386 (description
15387 "This package runs a callback (a finalizer)
15388 after its registered lisp object has been garbage collected. This allows
15389 extra resources, such as buffers and processes, to be cleaned up after the
15390 object has been freed.")
15391 (license license:unlicense)))
15392
15393 (define-public emacs-emacsql
15394 (package
15395 (name "emacs-emacsql")
15396 (version "3.0.0")
15397 (source (origin
15398 (method git-fetch)
15399 (uri (git-reference
15400 (url "https://github.com/skeeto/emacsql")
15401 (commit (string-append version))))
15402 (file-name (git-file-name name version))
15403 (sha256
15404 (base32
15405 "1c84gxr1majqj4b59wgdy3lzm3ap66w9qsrnkx8hdbk9895ak81g"))))
15406 (build-system emacs-build-system)
15407 (arguments
15408 `(#:modules ((guix build emacs-build-system)
15409 (guix build utils)
15410 (guix build emacs-utils)
15411 (srfi srfi-26))
15412 #:phases
15413 (modify-phases %standard-phases
15414 (delete 'build) ;‘build-emacsql-sqlite’ compiles ‘*.el’ files.
15415 (add-before 'install 'patch-elisp-shell-shebangs
15416 (lambda _
15417 (substitute* (find-files "." "\\.el")
15418 (("/bin/sh") (which "sh")))
15419 #t))
15420 (add-after 'patch-elisp-shell-shebangs 'setenv-shell
15421 (lambda _
15422 (setenv "SHELL" "sh")))
15423 (add-after 'setenv-shell 'build-emacsql-sqlite
15424 (lambda _
15425 (invoke "make" "binary" "CC=gcc")))
15426 (add-after 'build-emacsql-sqlite 'install-emacsql-sqlite
15427 ;; This build phase installs emacs-emacsql binary.
15428 (lambda* (#:key outputs #:allow-other-keys)
15429 (install-file "sqlite/emacsql-sqlite"
15430 (string-append (assoc-ref outputs "out")
15431 "/bin"))
15432 #t))
15433 (add-after 'install-emacsql-sqlite 'patch-emacsql-sqlite.el
15434 ;; This build phase removes interactive prompts
15435 ;; and makes sure Emacs look for binaries in the right places.
15436 (lambda* (#:key outputs #:allow-other-keys)
15437 (let ((file "emacsql-sqlite.el"))
15438 (chmod file #o644)
15439 (emacs-substitute-sexps file
15440 ;; Make sure Emacs looks for ‘GCC’ binary in the right place.
15441 ("(executable-find" (which "gcc"))
15442 ;; Make sure Emacs looks for ‘emacsql-sqlite’ binary
15443 ;; in the right place.
15444 ("(defvar emacsql-sqlite-executable"
15445 (string-append (assoc-ref outputs "out")
15446 "/bin/emacsql-sqlite"))))))
15447 (replace 'install
15448 (lambda* (#:key outputs #:allow-other-keys)
15449 (let* ((out (assoc-ref outputs "out")))
15450 (install-file "sqlite/emacsql-sqlite"
15451 (string-append out "/bin"))
15452 (for-each (cut install-file <>
15453 (string-append out "/share/emacs/site-lisp"))
15454 (find-files "." "\\.elc*$")))
15455 #t)))))
15456 (inputs
15457 `(("emacs-minimal" ,emacs-minimal)
15458 ("mariadb" ,mariadb "lib")
15459 ("mariadb-dev" ,mariadb "dev")
15460 ("postgresql" ,postgresql)))
15461 (propagated-inputs
15462 `(("emacs-finalize" ,emacs-finalize)
15463 ("emacs-pg" ,emacs-pg)))
15464 (home-page "https://github.com/skeeto/emacsql")
15465 (synopsis "Emacs high-level SQL database front-end")
15466 (description "Any readable Lisp value can be stored as a value in EmacSQL,
15467 including numbers, strings, symbols, lists, vectors, and closures. EmacSQL
15468 has no concept of @code{TEXT} values; it's all just Lisp objects. The Lisp
15469 object @code{nil} corresponds 1:1 with @code{NULL} in the database.")
15470 (license license:gpl3+)))
15471
15472 (define-public emacs-emacsql-sqlite3
15473 (package
15474 (name "emacs-emacsql-sqlite3")
15475 (version "1.0.2")
15476 (source (origin
15477 (method git-fetch)
15478 (uri (git-reference
15479 (url "https://github.com/cireu/emacsql-sqlite3")
15480 (commit version)))
15481 (file-name (git-file-name name version))
15482 (sha256
15483 (base32
15484 "1jzvvsvi8jm2ws3y49nmpmwd3zlvf8j83rl2vwizd1aplwwdnmd6"))))
15485 (build-system emacs-build-system)
15486 (native-inputs
15487 `(("ert-runner" ,emacs-ert-runner)))
15488 (inputs
15489 `(("sqlite" ,sqlite)))
15490 (propagated-inputs
15491 `(("emacs-emacsql" ,emacs-emacsql)))
15492 (arguments
15493 `(#:tests? #t
15494 #:test-command '("emacs" "-Q" "--batch" "-L" "."
15495 "--load" "emacsql-sqlite3-test.el"
15496 "-f" "ert-run-tests-batch-and-exit")
15497 #:phases
15498 (modify-phases %standard-phases
15499 (add-after 'unpack 'embed-path-to-sqlite3
15500 (lambda _
15501 (substitute* "emacsql-sqlite3.el"
15502 (("\\(executable-find \"sqlite3\"\\)")
15503 (string-append "\"" (which "sqlite3") "\"")))
15504 #t)))))
15505 (home-page "https://github.com/cireu/emacsql-sqlite3")
15506 (synopsis "EmacSQL backend for SQLite")
15507 (description "This is yet another EmacSQL backend for SQLite which uses
15508 official @command{sqlite3} executable to access SQL database.")
15509 (license license:gpl3+)))
15510
15511 (define-public emacs-closql
15512 (package
15513 (name "emacs-closql")
15514 (version "1.0.4")
15515 (source
15516 (origin
15517 (method git-fetch)
15518 (uri (git-reference
15519 (url "https://github.com/emacscollective/closql")
15520 (commit (string-append "v" version))))
15521 (file-name (git-file-name name version))
15522 (sha256
15523 (base32
15524 "06j0sc6dx8f34wc8i7dzkp8jwvwnrpnl8i93vpc1qw0ih0jwa2zh"))))
15525 (build-system emacs-build-system)
15526 (propagated-inputs
15527 `(("emacs-emacsql" ,emacs-emacsql)))
15528 (home-page "https://github.com/emacscollective/closql")
15529 (synopsis "Store EIEIO objects using EmacSQL")
15530 (description
15531 "This package stores uniform EIEIO objects in an EmacSQL
15532 database. SQLite is used as backend. This library imposes some restrictions
15533 on what kind of objects can be stored; it isn't intended to store arbitrary
15534 objects. All objects have to share a common superclass and subclasses cannot
15535 add any additional instance slots.")
15536 (license license:gpl3)))
15537
15538 (define-public emacs-epkg
15539 (package
15540 (name "emacs-epkg")
15541 (version "3.2.2")
15542 (source
15543 (origin
15544 (method git-fetch)
15545 (uri (git-reference
15546 (url "https://github.com/emacscollective/epkg")
15547 (commit (string-append "v" version))))
15548 (file-name (git-file-name name version))
15549 (sha256
15550 (base32
15551 "1pxz611qb3m33r6343h0xhwqvvhjl131zyc2klplzgb23rkm8lk0"))))
15552 (build-system emacs-build-system)
15553 (propagated-inputs
15554 `(("emacs-closql" ,emacs-closql)
15555 ("emacs-dash" ,emacs-dash)))
15556 (home-page "https://emacsmirror.net")
15557 (synopsis "Browse the Emacsmirror package database")
15558 (description "This package provides access to a local copy of the
15559 Emacsmirror package database. It provides low-level functions for querying
15560 the database and a @file{package.el} user interface for browsing the database.
15561 Epkg itself is not a package manager.
15562
15563 Getting a local copy:
15564
15565 @example
15566 git clone https://github.com/emacsmirror/epkgs.git ~/.emacs.d/epkgs
15567 cd ~/.emacs.d/epkgs
15568 git submodule init
15569 git config --global url.https://github.com/.insteadOf git@@github.com:
15570 git submodule update
15571 @end example
15572
15573 Some submodule may be missing. In this case Git will prompt for a GitHub user
15574 name and password. To skip it press a @key{Return} key.
15575
15576 You could get a Epkg package list by invoking @code{epkg-list-packages} in
15577 Emacs.")
15578 (license license:gpl3+)))
15579
15580 (define-public emacs-elisp-slime-nav
15581 (package
15582 (name "emacs-elisp-slime-nav")
15583 (version "0.10")
15584 (source
15585 (origin
15586 (method git-fetch)
15587 (uri (git-reference
15588 (url "https://github.com/purcell/elisp-slime-nav")
15589 (commit version)))
15590 (file-name (git-file-name name version))
15591 (sha256
15592 (base32 "08k4zlawjkb0ldn4lgrhih8nzln398x7dwzpipqfyrmp0xziywma"))))
15593 (build-system emacs-build-system)
15594 (home-page "https://github.com/purcell/elisp-slime-nav")
15595 (synopsis "Make @code{M-.} and @code{M-,} work for elisp like they do in SLIME")
15596 (description
15597 "This package provides SLIME's convenient @code{M-.}and @code{M-,} navigation
15598 in @code{emacs-lisp-mode}, together with an elisp equivalent of
15599 @code{slime-describe-symbol}.")
15600 (license license:gpl3+)))
15601
15602 (define-public emacs-dedicated
15603 (package
15604 (name "emacs-dedicated")
15605 (version "1.0.0")
15606 (source
15607 (origin
15608 (method git-fetch)
15609 (uri (git-reference
15610 (url "https://github.com/emacsorphanage/dedicated")
15611 (commit version)))
15612 (file-name (git-file-name name version))
15613 (sha256
15614 (base32 "0pba9s0h37sxyqh733vi6k5raa4cs7aradipf3826inw36jcw414"))))
15615 (build-system emacs-build-system)
15616 (home-page "https://github.com/emacsorphanage/dedicated")
15617 (synopsis "Emacs minor mode for toggling a windows's \"dedicated\" flag")
15618 (description
15619 "This simple Emacs minor mode allows you to toggle a window's
15620 \"dedicated\" flag. When a window is \"dedicated\", Emacs will not select
15621 files into that window. This can be quite handy since many commands will use
15622 another window to show results (compilation mode, starting info, and so on).
15623 A dedicated window won't be used for such a purpose. For details, please read
15624 the source file.")
15625 (license license:gpl2+)))
15626
15627 (define-public emacs-nnreddit
15628 (let ((commit "9843f99d01fd8f1eea2fc685965a7c7f4eeb187a")
15629 (revision "1"))
15630 (package
15631 (name "emacs-nnreddit")
15632 (version (string-append "0.0.1-" revision "."
15633 (string-take commit 7)))
15634 (source (origin
15635 (method git-fetch)
15636 (uri (git-reference
15637 (url "https://github.com/paul-issartel/nnreddit")
15638 (commit commit)))
15639 (file-name (git-file-name name version))
15640 (sha256
15641 (base32
15642 "0j4h3bnga640250jdq8bwyja49r41ssrsjd6lba4gzzllqk02nbn"))))
15643 (build-system emacs-build-system)
15644 (home-page "https://github.com/paul-issartel/nnreddit")
15645 (synopsis "Reddit backend for the Gnus newsreader")
15646 (description "@url{https://www.reddit.com} backend for the Gnus
15647 newsreader.")
15648 (license license:gpl3+))))
15649
15650 (define-public emacs-makey
15651 (package
15652 (name "emacs-makey")
15653 (version "0.3")
15654 (source
15655 (origin
15656 (method git-fetch)
15657 (uri (git-reference
15658 (url "https://github.com/mickeynp/makey")
15659 (commit version)))
15660 (file-name (git-file-name name version))
15661 (sha256
15662 (base32 "1rr7vpm3xxzcaam3m8xni3ajy8ycyljix07n2jzczayri9sd8csy"))))
15663 (build-system emacs-build-system)
15664 (home-page "https://github.com/mickeynp/makey")
15665 (synopsis "Emacs interactive command-line mode")
15666 (description
15667 "This package provides an Emacs interactive command-line mode.")
15668 (license license:gpl3+)))
15669
15670 (define-public emacs-outorg
15671 (let ((commit "78b0695121fb974bc4e971eb4ef7f8afd6d89d64"))
15672 (package
15673 (name "emacs-outorg")
15674 (version (git-version "2.0" "1" commit))
15675 (source
15676 (origin
15677 (method git-fetch)
15678 (uri (git-reference
15679 (url "https://github.com/alphapapa/outorg")
15680 (commit commit)))
15681 (file-name (git-file-name name version))
15682 (sha256
15683 (base32
15684 "03aclh4m3f7rb821gr9pwvnqkkl91px3qxdcarpf3ypa1x4fxvlj"))))
15685 (build-system emacs-build-system)
15686 (home-page "https://github.com/alphapapa/outorg")
15687 (synopsis "Org-style comment editing")
15688 (description "Outorg is for editing comment-sections of source-code
15689 files in temporary Org-mode buffers. It turns conventional
15690 literate-programming upside-down in that the default mode is the
15691 programming-mode, and special action has to be taken to switch to the
15692 text-mode (i.e. Org-mode).")
15693 (license license:gpl3+))))
15694
15695 (define-public emacs-outshine
15696 (package
15697 (name "emacs-outshine")
15698 (version "3.0.1")
15699 (source (origin
15700 (method git-fetch)
15701 (uri (git-reference
15702 (url "https://github.com/alphapapa/outshine")
15703 (commit (string-append "v" version))))
15704 (file-name (git-file-name name version))
15705 (sha256
15706 (base32
15707 "1lh9f5dgdbwfyzxk6nsg1xwdjs8gc6p9mbyyhp6f8fnk3h0y88cg"))))
15708 (build-system emacs-build-system)
15709 (propagated-inputs
15710 `(("emacs-outorg" ,emacs-outorg)))
15711 (home-page "https://github.com/alphapapa/outshine")
15712 (synopsis "Emacs outline with outshine")
15713 (description "Outshine attempts to bring the look and feel of
15714 @code{org-mode} to an Emacs outside of the Org major-mode. It is an extension
15715 of @code{outline-minor-mode} (@code{org-mode} itself derives from
15716 outline-mode), so there is no such thing like an outshine mode, only
15717 @code{outline-minor-mode} with outshine extensions loaded.")
15718 (license license:gpl3+)))
15719
15720 (define-public emacs-frecency
15721 (let ((commit "31ef9ff4af1a4fed3dcc24ea74037feea8795c87")
15722 (version "0.1-pre")
15723 (revision "1"))
15724 (package
15725 (name "emacs-frecency")
15726 (version (git-version version revision commit))
15727 (source (origin
15728 (method git-fetch)
15729 (uri (git-reference
15730 (url "https://github.com/alphapapa/frecency.el")
15731 (commit commit)))
15732 (sha256
15733 (base32
15734 "051aihjdg3x22svaxhwylpi8i6s2x9j8syvsj1jgilgjjdy15l6j"))
15735 (file-name (git-file-name name version))))
15736 (build-system emacs-build-system)
15737 (propagated-inputs
15738 `(("emacs-a" ,emacs-a)
15739 ("emacs-dash" ,emacs-dash)))
15740 (home-page "https://github.com/alphapapa/frecency.el")
15741 (synopsis "Sort items by frequency and recency of access")
15742 (description "This package provides a way of sorting items via
15743 a heuristic based on frequency and recency.")
15744 (license license:gpl3+))))
15745
15746 (define-public emacs-org-recent-headings
15747 (package
15748 (name "emacs-org-recent-headings")
15749 (version "0.1")
15750 (source (origin
15751 (method git-fetch)
15752 (uri (git-reference
15753 (url "https://github.com/alphapapa/org-recent-headings")
15754 (commit version)))
15755 (file-name (git-file-name name version))
15756 (sha256
15757 (base32
15758 "0gsrzmg3mssh9s28yjm9m866fnhm1pcligssz1q6brga6dm6f2yy"))))
15759 (build-system emacs-build-system)
15760 (propagated-inputs
15761 `(("emacs-org" ,emacs-org)
15762 ("emacs-dash" ,emacs-dash)
15763 ("emacs-frecency" ,emacs-frecency)))
15764 (home-page "https://github.com/alphapapa/org-recent-headings")
15765 (synopsis "Navigate to recently used Org headings and lists")
15766 (description "This package maintains a list of recently used Org headings,
15767 as well as functions for navigating between these headings.")
15768 (license license:gpl3+)))
15769
15770 (define-public emacs-org-super-agenda
15771 (package
15772 (name "emacs-org-super-agenda")
15773 (version "1.2")
15774 (source (origin
15775 (method git-fetch)
15776 (uri (git-reference
15777 (url "https://github.com/alphapapa/org-super-agenda")
15778 (commit version)))
15779 (file-name (git-file-name name version))
15780 (sha256
15781 (base32
15782 "10l9h2n09cql4ih7nc0ma3ghdsq9l5v9xlj1lg7kq67icdwjlsvy"))))
15783 (build-system emacs-build-system)
15784 (arguments
15785 `(#:tests? #t
15786 #:test-command '("test/run" "--debug")
15787 #:phases
15788 (modify-phases %standard-phases
15789 (add-after 'unpack 'prepare-for-tests.el
15790 (lambda _
15791 (make-file-writable "test/test.el")
15792 (emacs-substitute-variables "test/test.el"
15793 ("org-super-agenda-test-results-file"
15794 (string-append (getcwd) "/test/results.el")))
15795 ;; The following test fail (see:
15796 ;; https://github.com/alphapapa/org-super-agenda/issues/183).
15797 (substitute* "test/test.el"
15798 ((".*org-super-agenda-test--:auto-map.*" all)
15799 (string-append all " (skip-unless nil)\n")))
15800 #t)))))
15801 (native-inputs
15802 `(("emacs-f" ,emacs-f)
15803 ("getopt" ,util-linux)))
15804 (propagated-inputs
15805 `(("emacs-org" ,emacs-org)
15806 ("emacs-dash" ,emacs-dash)
15807 ("emacs-ts" ,emacs-ts)
15808 ("emacs-ht" ,emacs-ht)
15809 ("emacs-s" ,emacs-s)))
15810 (home-page "https://github.com/alphapapa/org-super-agenda")
15811 (synopsis "Supercharged Org agenda")
15812 (description "This package allows items in the Org agenda to be grouped
15813 into sections while preserving the structure imposed by any timestamps.")
15814 (license license:gpl3+)))
15815
15816 (define-public emacs-elegant-agenda-mode
15817 (let ((commit "c72f42e0f551c3dd81e68262f07a96c0ec90a589")
15818 (revision "1"))
15819 (package
15820 (name "emacs-elegant-agenda-mode")
15821 (version (git-version "0.1.0" revision commit))
15822 (source
15823 (origin
15824 (method git-fetch)
15825 (uri (git-reference
15826 (url "https://github.com/justinbarclay/elegant-agenda-mode")
15827 (commit commit)))
15828 (file-name (git-file-name name version))
15829 (sha256
15830 (base32
15831 "0f8qk3vd41ffbkfqw5nks3bld0qpjrlnk9sb46wcbsyfnrs2v082"))))
15832 (build-system emacs-build-system)
15833 (home-page "https://github.com/justinbarclay/elegant-agenda-mode")
15834 (synopsis "Elegant theme for your org-agenda")
15835 (description
15836 "The elegant-agenda-mode package uses fonts and typography to give your
15837 org-agenda some breathing room and elegance. This package was inspired by the
15838 work Nicolas Rougier.")
15839 (license license:gpl3+))))
15840
15841 (define-public emacs-org-make-toc
15842 (package
15843 (name "emacs-org-make-toc")
15844 (version "0.5")
15845 (source (origin
15846 (method git-fetch)
15847 (uri (git-reference
15848 (url "https://github.com/alphapapa/org-make-toc")
15849 (commit version)))
15850 (file-name (git-file-name name version))
15851 (sha256
15852 (base32
15853 "180ji6nnj6qj0rs1rdp1zlcrfsqf7ikb44ym8icbp5d6al2s4hnr"))))
15854 (build-system emacs-build-system)
15855 (propagated-inputs
15856 `(("emacs-org" ,emacs-org)
15857 ("emacs-dash" ,emacs-dash)
15858 ("emacs-s" ,emacs-s)))
15859 (home-page "https://github.com/alphapapa/org-make-toc")
15860 (synopsis "Maintain a table of contents for an Org file")
15861 (description "This package facilitates the creation and maintenance of
15862 tables of contents.")
15863 (license license:gpl3+)))
15864
15865 (define-public emacs-ts
15866 (package
15867 (name "emacs-ts")
15868 (version "0.2")
15869 (source
15870 (origin
15871 (method git-fetch)
15872 (uri (git-reference
15873 (url "https://github.com/alphapapa/ts.el")
15874 (commit version)))
15875 (sha256
15876 (base32 "0hmzc1ppnkkr0lfq5fhzqr6icv6iqz824a6bnns7zr466hhqp3qb"))
15877 (file-name (git-file-name name version))))
15878 (build-system emacs-build-system)
15879 (propagated-inputs
15880 `(("emacs-s" ,emacs-s)
15881 ("emacs-dash" ,emacs-dash)))
15882 (arguments
15883 ;; XXX: Three tests are failing because of a timezone-related issue
15884 ;; with how they're written. On my machine, all the failing test
15885 ;; results are 18000 seconds (5 hours) off.
15886
15887 ;; The ts-parse-org function accepts a string without any timezone
15888 ;; info, not assumed to be in Unix time, and converts it to a so-called
15889 ;; ts struct. The ts-unix function (accessor) accepts a ts struct,
15890 ;; then seems to assume the struct's corresponding time is in terms of
15891 ;; the user's current time zone, before returning a Unix time in
15892 ;; seconds.
15893
15894 ;; The failing tests all have similar problems, but nothing else about
15895 ;; the library seems particularly off.
15896
15897 `(#:tests? #t
15898 #:test-command '("emacs" "--batch"
15899 "-l" "test/test.el"
15900 "-f" "ert-run-tests-batch-and-exit")
15901 #:phases
15902 (modify-phases %standard-phases
15903 (add-before 'check 'make-tests-writable
15904 (lambda _
15905 (make-file-writable "test/test.el")
15906 #t))
15907 (add-before 'check 'delete-failing-tests
15908 (lambda _
15909 (emacs-batch-edit-file "test/test.el"
15910 `(progn (progn
15911 (goto-char (point-min))
15912 (dolist (test-regexp
15913 '("ert-deftest ts-format"
15914 "ert-deftest ts-parse-org\\_>"
15915 "ert-deftest ts-parse-org-element"
15916 "ert-deftest ts-update"))
15917 (re-search-forward test-regexp)
15918 (beginning-of-line)
15919 (kill-sexp)))
15920 (basic-save-buffer)))
15921 #t)))))
15922 (home-page "https://github.com/alphapapa/ts.el")
15923 (synopsis "Timestamp and date/time library")
15924 (description "This package facilitates manipulating dates, times, and
15925 timestamps by providing a @code{ts} struct.")
15926 (license license:gpl3+)))
15927
15928 (define-public emacs-peg
15929 (package
15930 (name "emacs-peg")
15931 (version "1.0")
15932 (source
15933 (origin
15934 (method url-fetch)
15935 (uri (string-append "https://elpa.gnu.org/packages/peg-" version ".tar"))
15936 (sha256
15937 (base32 "0skr5dz9k34r409hisnj37n1b7n62l3md0glnfx578xkbmxlpcxl"))))
15938 (build-system emacs-build-system)
15939 (home-page "https://elpa.gnu.org/packages/peg.html")
15940 (synopsis "Parsing Expression Grammars in Elisp")
15941 (description "This package provides a macro that parses the current buffer
15942 according to a parsing expression grammar.")
15943 (license license:gpl3+)))
15944
15945 (define-public emacs-eldev
15946 (package
15947 (name "emacs-eldev")
15948 (version "0.8.1")
15949 (source (origin
15950 (method git-fetch)
15951 (uri (git-reference
15952 (url "https://github.com/doublep/eldev")
15953 (commit version)))
15954 (file-name (git-file-name name version))
15955 (sha256
15956 (base32
15957 "19s45hdhcg5l608awfxvmhd61xzp7dd5pvviv89xzzksx74l1188"))))
15958 (build-system emacs-build-system)
15959 (arguments
15960 `(#:tests? #t
15961 #:test-command '("./bin/eldev" "-p" "-dtTC" "test")
15962 #:phases
15963 (modify-phases %standard-phases
15964 (add-after 'unpack 'prepare-for-tests
15965 (lambda _
15966 (setenv "ELDEV_LOCAL" (getcwd))
15967 (make-file-writable
15968 "test/project-i/project-i-autoloads.el")
15969 #t))
15970 (add-after 'unpack 'skip-failing-tests
15971 ;; FIXME: 10 tests are failing. Skip them for now.
15972 (lambda _
15973 (substitute* '("test/init.el" "test/targets.el")
15974 (("(targets-project-e-[34]|init-[1-8]).*" line)
15975 (string-append line "(skip-unless nil)\n")))))
15976 (add-after 'install 'install-eldev-executable
15977 ;; This constructs the eldev executable from templates and
15978 ;; installs it in the specified directory.
15979 (lambda* (#:key outputs #:allow-other-keys)
15980 (let* ((out (assoc-ref outputs "out"))
15981 (bin (string-append out "/bin"))
15982 (site-lisp (string-append out "/share/emacs/site-lisp")))
15983 (mkdir-p bin)
15984 (setenv "HOME" (getcwd))
15985 (invoke "./install.sh" bin)
15986 (substitute* (string-append bin "/eldev")
15987 ;; Point ELDEV_LOCAL to the installation directory so that
15988 ;; eldev doesn't try to bootstrap itself from MELPA when
15989 ;; invoked.
15990 (("export ELDEV_EMACS.*" all)
15991 (string-append "export ELDEV_LOCAL=" site-lisp "\n" all)))
15992 #t))))))
15993 (native-inputs
15994 `(("texinfo" ,texinfo))) ;for tests
15995 (home-page "https://github.com/doublep/eldev/")
15996 (synopsis "Emacs-based build tool for Elisp")
15997 (description "Eldev (Elisp Development Tool) is an Emacs-based build tool,
15998 targeted solely at Elisp projects. It is an alternative to Cask. Unlike
15999 Cask, Eldev itself is fully written in Elisp and its configuration files are
16000 also Elisp programs. For those familiar with the Java world, Cask can be seen
16001 as a parallel to Maven — it uses project description, while Eldev is sort of a
16002 parallel to Gradle — its configuration is a program on its own.")
16003 (license license:gpl3+)))
16004
16005 (define-public emacs-with-simulated-input
16006 (package
16007 (name "emacs-with-simulated-input")
16008 (version "2.4")
16009 (source
16010 (origin
16011 (method git-fetch)
16012 (uri (git-reference
16013 (url "https://github.com/DarwinAwardWinner/with-simulated-input")
16014 (commit (string-append "v" version))))
16015 (file-name (git-file-name name version))
16016 (sha256
16017 (base32
16018 "12d3mhvzj74qwc4rdcb236jbqnf5lam8pk78j92kwbwjk1jaz2cf"))))
16019 (build-system emacs-build-system)
16020 (arguments
16021 ;; The test suite fails with error: "Spies can only be created in
16022 ;; ‘before-each’".
16023 `(#:tests? #f
16024 #:test-command '("buttercup" "-L" ".")))
16025 (native-inputs
16026 `(("emacs-buttercup" ,emacs-buttercup)
16027 ("emacs-undercover" ,emacs-undercover)))
16028 (propagated-inputs
16029 `(("emacs-s" ,emacs-s)))
16030 (home-page "https://github.com/DarwinAwardWinner/with-simulated-input")
16031 (synopsis "Non-interactive testing Emacs library")
16032 (description "This package provides an Emacs Lisp macro,
16033 @code{with-simulated-input}, which evaluates one or more forms while
16034 simulating a sequence of input events for those forms to read. The result is
16035 the same as if a user had evaluated the forms and then manually typed in the
16036 same input. This macro is useful for non-interactive testing of normally
16037 interactive commands and functions, such as @code{completing-read}.")
16038 (license license:gpl3+)))
16039
16040 (define-public emacs-org-ql
16041 (package
16042 (name "emacs-org-ql")
16043 (version "0.5")
16044 (source (origin
16045 (method git-fetch)
16046 (uri (git-reference
16047 (url "https://github.com/alphapapa/org-ql")
16048 (commit version)))
16049 (sha256
16050 (base32
16051 "14nsy2dbln3m5bpqzyfqycn18sb3qh407hjbkk1l0x2nqs3lrkqn"))
16052 (file-name (git-file-name name version))))
16053 (build-system emacs-build-system)
16054 (propagated-inputs
16055 `(("emacs-s" ,emacs-s)
16056 ("emacs-f" ,emacs-f)
16057 ("emacs-ov" ,emacs-ov)
16058 ("emacs-peg" ,emacs-peg)
16059 ("emacs-org-super-agenda" ,emacs-org-super-agenda)
16060 ("emacs-ts" ,emacs-ts)
16061 ("emacs-org" ,emacs-org)
16062 ("emacs-helm" ,emacs-helm)
16063 ("emacs-helm-org" ,emacs-helm-org)
16064 ("emacs-dash" ,emacs-dash)
16065 ("emacs-transient" ,emacs-transient)))
16066 (native-inputs
16067 `(("emacs-buttercup" ,emacs-buttercup)
16068 ("emacs-with-simulated-input" ,emacs-with-simulated-input)))
16069 (arguments
16070 `(#:tests? #t
16071 #:test-command '("buttercup" "-L" ".")
16072 #:phases
16073 (modify-phases %standard-phases
16074 (add-after 'unpack 'disable-failing-tests
16075 (lambda _
16076 (substitute* "tests/test-org-ql.el"
16077 ;; This test fails on Emacs 27.1 (see:
16078 ;; https://github.com/alphapapa/org-super-agenda/issues/183).
16079 (("it \"Can search buffer containing the link\"" all)
16080 (string-append "x" all)))
16081 #t)))))
16082 (home-page "https://github.com/alphapapa/org-ql/")
16083 (synopsis "Query language for Org buffers")
16084 (description "This package provides a Lispy query language for Org
16085 files, allowing for actions to be performed based on search criteria.")
16086 (license license:gpl3+)))
16087
16088 (define-public emacs-org-auto-expand
16089 (let ((commit "4938d5f6460e2f8f051ba9ac000b291bfa43ef62")
16090 (revision "1"))
16091 (package
16092 (name "emacs-org-auto-expand")
16093 (version (git-version "0.1" revision commit))
16094 (source (origin
16095 (method git-fetch)
16096 (uri (git-reference
16097 (url "https://github.com/alphapapa/org-auto-expand")
16098 (commit commit)))
16099 (file-name (git-file-name name version))
16100 (sha256
16101 (base32
16102 "1my0c6xmkh37lwi6l472lz9d86lf20h6xcllzlxm1lxa24rhva6v"))))
16103 (build-system emacs-build-system)
16104 (propagated-inputs
16105 `(("emacs-org" ,emacs-org)
16106 ("emacs-dash" ,emacs-dash)))
16107 (home-page "https://github.com/alphapapa/org-auto-expand")
16108 (synopsis "Automatically expand certain Org headings")
16109 (description "This package allows a customizable set of headings in Org
16110 files to be expanded upon opening them.")
16111 (license license:gpl3+))))
16112
16113 (define-public emacs-parsebib
16114 (package
16115 (name "emacs-parsebib")
16116 (version "2.4.1")
16117 (source
16118 (origin
16119 (method git-fetch)
16120 (uri (git-reference
16121 (url "https://github.com/joostkremers/parsebib")
16122 (commit version)))
16123 (file-name (git-file-name name version))
16124 (sha256
16125 (base32 "1d3ysh82gh5mg07hlz3ll782lldnaj0xmyabv18jln4y2xd7ncni"))))
16126 (build-system emacs-build-system)
16127 (home-page "https://github.com/joostkremers/parsebib")
16128 (synopsis "Library for parsing @file{.bib} files")
16129 (description
16130 "This package provides an Emacs library for parsing @file{.bib} files.")
16131 (license license:gpl3+)))
16132
16133 (define-public emacs-ebib
16134 (package
16135 (name "emacs-ebib")
16136 (version "2.29")
16137 (source
16138 (origin
16139 (method git-fetch)
16140 (uri (git-reference
16141 (url "https://github.com/joostkremers/ebib")
16142 (commit version)))
16143 (file-name (git-file-name name version))
16144 (sha256
16145 (base32 "1d0xnhdcsz2ysq145k2l0f2r4vb0pkai1v6wl6sfba7xi5fc323i"))))
16146 (build-system emacs-build-system)
16147 (propagated-inputs
16148 `(("emacs-parsebib" ,emacs-parsebib)))
16149 (home-page "https://joostkremers.github.io/ebib/")
16150 (synopsis "BibTeX database manager for Emacs")
16151 (description
16152 "Ebib is a BibTeX database manager that runs in GNU Emacs.
16153 With Ebib you can create, sort and manage your @file{.bib} database files, all
16154 within Emacs. It supports searching, multi-line field values and
16155 @samp{@@String} and @samp{@@Preamble} definitions. Ebib integrates
16156 with (La)TeX mode, Org mode and other Emacs editing modes.")
16157 ;; The Ebib source files are released under a BSD license with
16158 ;; the exception of org-ebib.el, which is released under the GNU
16159 ;; GPL.
16160 (license (list license:bsd-3
16161 license:gpl3+))))
16162
16163 (define-public emacs-biblio
16164 (package
16165 (name "emacs-biblio")
16166 (version "0.2")
16167 (source
16168 (origin
16169 (method git-fetch)
16170 (uri (git-reference
16171 (url "https://github.com/cpitclaudel/biblio.el")
16172 (commit version)))
16173 (file-name (git-file-name name version))
16174 (sha256
16175 (base32 "1gxjind6r235az59dr8liv03d8994mqb8a7m28j3c12q7p70aziz"))))
16176 (build-system emacs-build-system)
16177 (propagated-inputs
16178 `(("emacs-dash" ,emacs-dash)
16179 ("emacs-let-alist" ,emacs-let-alist)))
16180 (home-page "https://github.com/cpitclaudel/biblio.el")
16181 (synopsis "Browse and import bibliographic references")
16182 (description "This package provides an extensible Emacs package for
16183 browsing and fetching references.
16184
16185 @file{biblio.el} makes it easy to browse and gather bibliographic references
16186 and publications from various sources, by keywords or by DOI. References are
16187 automatically fetched from well-curated sources, and formatted as BibTeX.")
16188 (license license:gpl3+)))
16189
16190 (define-public emacs-helm-bibtex
16191 (let ((commit "d4471232be26793fbf56c0ac3690b5f537c378b9")
16192 (revision "2"))
16193 (package
16194 (name "emacs-helm-bibtex")
16195 (version (string-append "2.0.0" "-" revision "."
16196 (string-take commit 7)))
16197 (source
16198 (origin
16199 (method git-fetch)
16200 (uri (git-reference
16201 (url "https://github.com/tmalsburg/helm-bibtex")
16202 (commit commit)))
16203 (file-name (git-file-name name version))
16204 (sha256
16205 (base32
16206 "1bkzhic6qckb267025il1r3xcpz99kisphxiafni1pxvf9jafr0j"))))
16207 (build-system emacs-build-system)
16208 (propagated-inputs
16209 `(("emacs-helm" ,emacs-helm)
16210 ("emacs-parsebib" ,emacs-parsebib)
16211 ("emacs-s" ,emacs-s)
16212 ("emacs-dash" ,emacs-dash)
16213 ("emacs-f" ,emacs-f)
16214 ("emacs-biblio" ,emacs-biblio)
16215 ("emacs-ivy" ,emacs-ivy)))
16216 (home-page "https://github.com/tmalsburg/helm-bibtex")
16217 (synopsis "Bibliography manager based on Helm")
16218 (description "This package provides bibliography manager for Emacs,
16219 based on Helm and the bibtex-completion backend.
16220
16221 Key features:
16222
16223 @itemize
16224 @item Quick access to your bibliography from within Emacs
16225 @item Powerful search capabilities
16226 @item Provides instant search results as you type
16227 @item Tightly integrated with LaTeX authoring, emails, Org mode, etc.
16228 @item Open the PDFs, URLs, or DOIs associated with an entry
16229 @item Insert LaTeX cite commands, Ebib links, or Pandoc citations,
16230 BibTeX entries, or plain text references at point, attach PDFs to emails
16231 @item Support for note taking
16232 @item Quick access to online bibliographic databases such as Pubmed,
16233 arXiv, Google Scholar, Library of Congress, etc.
16234 @item Imports BibTeX entries from CrossRef and other sources.
16235 @end itemize\n")
16236 (license license:gpl3+))))
16237
16238 (define-public emacs-ewmctrl
16239 (let ((commit "3d0217c4d6cdb5c308b6cb4293574f470d4faacf"))
16240 (package
16241 (name "emacs-ewmctrl")
16242 (version (git-version "0.0.1" "1" commit))
16243 (source
16244 (origin
16245 (method git-fetch)
16246 (uri (git-reference
16247 (url "https://github.com/flexibeast/ewmctrl")
16248 (commit commit)))
16249 (file-name (git-file-name name version))
16250 (sha256
16251 (base32
16252 "0ilwvx0qryv3v6xf0gxqwnfm6pf96gxap8h9g3f6z6lk9ff4n1wi"))))
16253 (build-system emacs-build-system)
16254 (arguments
16255 '(#:phases
16256 (modify-phases %standard-phases
16257 (add-after 'unpack 'patch-ewmctrl
16258 ;; This build phase makes sure ‘ewmctrl’ looks
16259 ;; for ‘wmctrl’ in the right place.
16260 (lambda _
16261 (let ((file "ewmctrl.el"))
16262 (chmod file #o644)
16263 (emacs-substitute-sexps file
16264 ("(defcustom ewmctrl-wmctrl-path" (which "wmctrl")))))))))
16265 (inputs
16266 `(("wmctrl" ,wmctrl)))
16267 (home-page "https://github.com/flexibeast/ewmctrl")
16268 (synopsis "Emacs interface to @code{wmctrl}")
16269 (description "@code{ewmctrl} provides an Emacs interface to
16270 @code{wmctrl} command-line window-management program.")
16271 (license license:gpl3+))))
16272
16273 (define-public emacs-erc-image
16274 (let ((commit "82fb3871f02e24b1e880770b9a3d187aab43d0f0")
16275 (revision "3"))
16276 (package
16277 (name "emacs-erc-image")
16278 (version (git-version "0" revision commit))
16279 (source
16280 (origin
16281 (method git-fetch)
16282 (uri (git-reference
16283 (url "https://github.com/kidd/erc-image.el")
16284 (commit commit)))
16285 (file-name (git-file-name name version))
16286 (sha256
16287 (base32
16288 "1q8mkf612fb4fjp8h4kbr107wn083iqfdgv8f80pcmil8y33dw9i"))))
16289 (build-system emacs-build-system)
16290 (arguments
16291 `(#:phases (modify-phases %standard-phases
16292 ;; The package autoloader fails to provide
16293 ;; the image module when handled by Guix.
16294 ;; Disable this phase, and let the package
16295 ;; handle the `eval-after-load' procedure.
16296 (delete 'make-autoloads))))
16297 (home-page "https://github.com/kidd/erc-image.el")
16298 (synopsis "Show inlined images (png/jpg/gif/svg) in ERC buffers")
16299 (description "This plugin subscribes to hooks @code{erc-insert-modify-hook}
16300 and @code{erc-send-modify-hook} to download and show images.")
16301 (license license:gpl3+))))
16302
16303 (define-public emacs-helm-gtags
16304 (package
16305 (name "emacs-helm-gtags")
16306 (version "1.5.7")
16307 (source
16308 (origin
16309 (method git-fetch)
16310 (uri (git-reference
16311 (url "https://github.com/syohex/emacs-helm-gtags")
16312 (commit version)))
16313 (file-name (git-file-name name version))
16314 (sha256
16315 (base32 "1kc1jzk10nfd2v20g8dwnb6a944afrwdwnkzl06w4ba8k4yim7gi"))))
16316 (build-system emacs-build-system)
16317 (propagated-inputs
16318 `(("emacs-helm" ,emacs-helm)))
16319 (home-page "https://github.com/syohex/emacs-helm-gtags")
16320 (synopsis "Emacs Helm interface to GNU Global")
16321 (description
16322 "@code{emacs-helm-gtags} provides a Emacs Helm interface to GNU Global.")
16323 (license license:gpl3+)))
16324
16325 (define-public emacs-list-utils
16326 (package
16327 (name "emacs-list-utils")
16328 (version "0.4.6")
16329 (source
16330 (origin
16331 (method git-fetch)
16332 (uri (git-reference
16333 (url "https://github.com/rolandwalker/list-utils")
16334 (commit (string-append "v" version))))
16335 (file-name (git-file-name name version))
16336 (sha256
16337 (base32 "07hbz2md52ccy95gv4d5n6szrfmpfqf3w4kwqdg2cf54c7kgf7hw"))))
16338 (build-system emacs-build-system)
16339 (arguments
16340 `(#:phases
16341 (modify-phases %standard-phases
16342 (add-after 'unpack 'patch-require-cl
16343 (lambda _
16344 (substitute* "list-utils.el"
16345 (("\\(require 'cl\\)") "(require 'cl-lib)"))
16346 #t)))))
16347 (home-page "https://github.com/rolandwalker/list-utils")
16348 (synopsis "List-manipulation utility functions")
16349 (description "This package provides a list manipulation library for Emacs.")
16350 (license license:gpl3+)))
16351
16352 (define-public emacs-parsec
16353 ;; Last release is too old (2016).
16354 (let ((revision "0")
16355 (commit "2cbbbc2254aa7bcaa4fb5e07c8c1bf2f381dba26"))
16356 (package
16357 (name "emacs-parsec")
16358 (version (git-version "0.1.3" revision commit))
16359 (source
16360 (origin
16361 (method git-fetch)
16362 (uri (git-reference
16363 (url "https://github.com/cute-jumper/parsec.el")
16364 (commit commit)))
16365 (file-name (git-file-name name version))
16366 (sha256
16367 (base32 "1g1s8s45g3kkbi3h7w0pmadmzdswb64mkdvdpg2lihg341kx37gm"))))
16368 (build-system emacs-build-system)
16369 (home-page "https://github.com/cute-jumper/parsec.el")
16370 (synopsis "Parser combinator library for Emacs Lisp")
16371 (description
16372 "Parsec is a parser combinator library for Emacs Lisp, similar to
16373 Haskell's Parsec library. It contains most of the parser combinators in
16374 Text.Parsec.Combinator, and more combinators can be added if necessary! Most
16375 of the parser combinators have the same behavior as their Haskell
16376 counterparts. Parsec also comes with a simple error handling mechanism so
16377 that it can display an error message showing how the parser fails.")
16378 (license license:gpl3+))))
16379
16380 (define-public emacs-move-text
16381 (package
16382 (name "emacs-move-text")
16383 (version "2.0.8")
16384 (source
16385 (origin
16386 (method git-fetch)
16387 (uri (git-reference
16388 (url "https://github.com/emacsfodder/move-text")
16389 (commit version)))
16390 (file-name (git-file-name name version))
16391 (sha256
16392 (base32 "06jxk5g23822gfmwrxhc34zand3dr8p2wjh1zs3j61ibz6n0nmz1"))))
16393 (build-system emacs-build-system)
16394 (home-page "https://github.com/emacsfodder/move-text")
16395 (synopsis "Move current line or region with M-up or M-down")
16396 (description "This package provide functions to move the current line
16397 using @kbd{M-up} or @kbd{M-down} if a region is marked, it will move the
16398 region instead.")
16399 (license license:gpl3+)))
16400
16401 (define-public emacs-validate
16402 (package
16403 (name "emacs-validate")
16404 (version "1.0.5")
16405 (source (origin
16406 (method git-fetch)
16407 (uri (git-reference
16408 (url "https://github.com/Malabarba/validate.el")
16409 (commit version)))
16410 (file-name (git-file-name name version))
16411 (sha256
16412 (base32
16413 "1l12ibx6cw4mgicgjpw71fb4fr4sd0k54lvbpq7ngc29br3j6i4v"))))
16414 (build-system emacs-build-system)
16415 (home-page "https://github.com/Malabarba/validate.el")
16416 (synopsis "Emacs library for scheme validation")
16417 (description "This Emacs library provides two functions that perform
16418 schema validation.")
16419 (license license:gpl3+)))
16420
16421 (define-public emacs-rainbow-blocks
16422 (let ((commit "dd435d7bb34ff6f162a5f315df308b90b7e9f842"))
16423 (package
16424 (name "emacs-rainbow-blocks")
16425 (version (git-version "1.0.0" "1" commit))
16426 (source (origin
16427 (method git-fetch)
16428 (uri (git-reference
16429 (url "https://github.com/istib/rainbow-blocks")
16430 (commit commit)))
16431 (file-name (git-file-name name version))
16432 (sha256
16433 (base32
16434 "06yfb3i7wzvqrhkb61zib9xvpb5i00s4frizkzff66im05k0n795"))))
16435 (build-system emacs-build-system)
16436 (home-page "https://github.com/istib/rainbow-blocks")
16437 (synopsis "Highlight sexp blocks")
16438 (description "Rainbow-blocks is an Emacs mode that highlights blocks
16439 made of parentheses, brackets, and braces according to their depth. Each
16440 successive level is highlighted in a different color. This makes it easy to
16441 orient yourself in the code, and tell which statements are at a given level.")
16442 (license license:gpl3+))))
16443
16444 (define-public emacs-hierarchy
16445 (package
16446 (name "emacs-hierarchy")
16447 (version "0.7.0")
16448 (source
16449 (origin
16450 (method git-fetch)
16451 (uri (git-reference
16452 (url "https://github.com/DamienCassou/hierarchy")
16453 (commit (string-append "v" version))))
16454 (file-name (git-file-name name version))
16455 (sha256
16456 (base32 "1kykbb1sil5cycfa5aj8dhsxc5yrx1641i2np5kwdjid6ahdlz5r"))))
16457 (build-system emacs-build-system)
16458 (native-inputs
16459 `(("emacs-buttercup" ,emacs-buttercup)))
16460 (arguments
16461 `(#:tests? #t
16462 #:test-command '("buttercup" "-L" ".")))
16463 (home-page "https://github.com/DamienCassou/hierarchy")
16464 (synopsis "Library to create and display hierarchy structures")
16465 (description "This package provides an Emacs library to create, query,
16466 navigate and display hierarchy structures.")
16467 (license license:gpl3+)))
16468
16469 (define-public emacs-tree-mode
16470 (let ((commit "b06078826d5875d74b0e7b7ac47b0d0917610534")
16471 (revision "1"))
16472 (package
16473 (name "emacs-tree-mode")
16474 (version (string-append "0.0.1" "-" revision "."
16475 (string-take commit 7)))
16476 (source
16477 (origin
16478 (method git-fetch)
16479 (uri (git-reference
16480 (url "https://github.com/emacsorphanage/tree-mode")
16481 (commit commit)))
16482 (file-name (git-file-name name version))
16483 (sha256
16484 (base32
16485 "13bbdhdmqg4x9yghanhr8fsbsxbnypzxdxgicz31sjjm675kpnix"))))
16486 (build-system emacs-build-system)
16487 (home-page "https://github.com/emacsorphanage/tree-mode")
16488 (synopsis "Emacs mode to manage tree widgets")
16489 (description
16490 "This package provides an Emacs library to manage tree widgets.")
16491 (license license:gpl3+))))
16492
16493 (define-public emacs-md4rd
16494 (package
16495 (name "emacs-md4rd")
16496 (version "0.3.1")
16497 (source (origin
16498 (method git-fetch)
16499 (uri (git-reference
16500 (url "https://github.com/ahungry/md4rd")
16501 (commit version)))
16502 (file-name (git-file-name name version))
16503 (sha256
16504 (base32
16505 "1n6g6k4adzkkn1g7z4j27s35xy12c1fg2r08gv345ddr3wplq4ri"))))
16506 (propagated-inputs
16507 `(("emacs-hierarchy" ,emacs-hierarchy)
16508 ("emacs-request" ,emacs-request)
16509 ("emacs-dash" ,emacs-dash)
16510 ("emacs-s" ,emacs-s)
16511 ("emacs-tree-mode" ,emacs-tree-mode)))
16512 (build-system emacs-build-system)
16513 (home-page "https://github.com/ahungry/md4rd")
16514 (synopsis "Emacs Mode for Reddit")
16515 (description
16516 "This package allows reading Reddit from within Emacs interactively.")
16517 (license license:gpl3+)))
16518
16519 (define-public emacs-pulseaudio-control
16520 (let ((commit "a931533140547510decdc368f39b2d2b97ca725f")
16521 (revision "4"))
16522 (package
16523 (name "emacs-pulseaudio-control")
16524 (version (git-version "0.0.1" revision commit))
16525 (source
16526 (origin
16527 (method git-fetch)
16528 (uri (git-reference
16529 (url "https://github.com/flexibeast/pulseaudio-control")
16530 (commit commit)))
16531 (file-name (git-file-name name version))
16532 (sha256
16533 (base32
16534 "1jvjn9jszjjapi167an49jxcvr88cvgjwykglhp4b8lwhbjfqw76"))))
16535 (build-system emacs-build-system)
16536 (arguments
16537 '(#:phases (modify-phases %standard-phases
16538 (add-after 'unpack 'patch-file-name
16539 (lambda* (#:key inputs #:allow-other-keys)
16540 (let ((pulseaudio (assoc-ref inputs "pulseaudio")))
16541 (chmod "pulseaudio-control.el" #o600)
16542 (emacs-substitute-variables "pulseaudio-control.el"
16543 ("pulseaudio-control-pactl-path"
16544 (string-append pulseaudio "/bin/pactl")))
16545 #t))))))
16546 (inputs `(("pulseaudio" ,pulseaudio)))
16547 (home-page "https://github.com/flexibeast/pulseaudio-control")
16548 (synopsis "Control @code{pulseaudio} from Emacs")
16549 (description
16550 "This package allows controlling @code{pulseaudio} from Emacs.")
16551 (license license:gpl3+))))
16552
16553 (define-public emacs-datetime
16554 (package
16555 (name "emacs-datetime")
16556 (version "0.6.6")
16557 (source
16558 (origin
16559 (method git-fetch)
16560 (uri (git-reference
16561 (url "https://github.com/doublep/datetime")
16562 (commit version)))
16563 (file-name (git-file-name name version))
16564 (sha256
16565 (base32
16566 "0a3q667pybpmsjkbgf6287jwgpnx8brp5314wb8zbczw6ncygnbi"))))
16567 (build-system emacs-build-system)
16568 (arguments
16569 `(#:include (cons "^[^/]*\\.extmap$" %default-include)))
16570 (inputs
16571 `(("emacs-extmap" ,emacs-extmap)))
16572 (home-page "https://github.com/doublep/datetime/")
16573 (synopsis "Library to work with dates in Emacs")
16574 (description "Parsing, formatting, matching and recoding
16575 timestamps and date-time format strings library for Emacs.")
16576 (license license:gpl3+)))
16577
16578 (define-public emacs-org-mind-map
16579 (let ((commit "9d6e262bedd94daf9de269f4d56de277275677cb")
16580 (revision "1"))
16581 (package
16582 (name "emacs-org-mind-map")
16583 (version (string-append "0.0.1" "-" revision "."
16584 (string-take commit 7)))
16585 (source
16586 (origin
16587 (method git-fetch)
16588 (uri (git-reference
16589 (url "https://github.com/theodorewiles/org-mind-map")
16590 (commit commit)))
16591 (file-name (git-file-name name version))
16592 (sha256
16593 (base32
16594 "0jgkkgq7g64zckrmjib0hvz0qy3ynz5vz13qbmlpf096l3bb65wn"))))
16595 (propagated-inputs
16596 `(("emacs-dash" ,emacs-dash)))
16597 (build-system emacs-build-system)
16598 (home-page "https://github.com/theodorewiles/org-mind-map")
16599 (synopsis "Create Graphviz directed graphs from Org files")
16600 (description
16601 "This package creates Graphviz directed graphs from Org files.")
16602 (license license:gpl3+))))
16603
16604 (define-public emacs-npm-mode
16605 (package
16606 (name "emacs-npm-mode")
16607 (version "0.6.0")
16608 (source
16609 (origin
16610 (method git-fetch)
16611 (uri (git-reference
16612 (url "https://github.com/mojochao/npm-mode")
16613 (commit version)))
16614 (file-name (git-file-name name version))
16615 (sha256
16616 (base32 "1mh6nbffciw4yhv049kdhh796ysj1x21ndm3fwymhskb3dy0w1ss"))))
16617 (build-system emacs-build-system)
16618 (home-page "https://github.com/mojochao/npm-mode")
16619 (synopsis "Minor mode for working with @code{npm} projects")
16620 (description
16621 "@code{npm-mode} provides a minor mode to work with @code{npm} projects.")
16622 (license license:gpl3+)))
16623
16624 (define-public emacs-itail
16625 (let ((commit "6e43c20da03be3b9c6ece93b7dc3495975ec1888")
16626 (revision "1"))
16627 (package
16628 (name "emacs-itail")
16629 (version (string-append "0.0.1" "-" revision "."
16630 (string-take commit 7)))
16631 (source
16632 (origin
16633 (method git-fetch)
16634 (uri (git-reference
16635 (url "https://github.com/re5et/itail")
16636 (commit commit)))
16637 (file-name (git-file-name name version))
16638 (sha256
16639 (base32
16640 "044nzxh1hq41faxw3lix0wy78vfz304pjcaa5a11dqfz7q3gx5cv"))))
16641 (build-system emacs-build-system)
16642 (home-page "https://github.com/re5et/itail")
16643 (synopsis "Interactive @code{tail} Emacs mode")
16644 (description "@code{itail} provides interactive @code{tail} mode
16645 that allows you to filter the tail with unix pipes and highlight the
16646 contents of the tailed file. Works locally or on remote files using
16647 tramp.")
16648 (license license:gpl3+))))
16649
16650 (define-public emacs-loop
16651 (package
16652 (name "emacs-loop")
16653 (version "1.3")
16654 (source
16655 (origin
16656 (method git-fetch)
16657 (uri (git-reference
16658 (url "https://github.com/Wilfred/loop.el")
16659 (commit version)))
16660 (file-name (git-file-name name version))
16661 (sha256
16662 (base32 "1gs95xnmnn8aa4794k7h8mw1sz1nfdh9v0caqj6yvnsdnwy74n5x"))))
16663 (build-system emacs-build-system)
16664 (native-inputs
16665 `(("emacs-ert-runner" ,emacs-ert-runner)
16666 ("emacs-undercover" ,emacs-undercover)))
16667 (arguments
16668 `(#:tests? #t
16669 #:test-command '("ert-runner")))
16670 (home-page "https://github.com/Wilfred/loop.el")
16671 (synopsis "Imperative loop structures for Emacs")
16672 (description "Loop structures familiar to users of other languages. This
16673 library adds a selection of popular loop structures as well as break and
16674 continue.")
16675 (license license:gpl3+)))
16676
16677 (define-public emacs-elisp-refs
16678 (package
16679 (name "emacs-elisp-refs")
16680 (version "1.3")
16681 (source
16682 (origin
16683 (method git-fetch)
16684 (uri (git-reference
16685 (url "https://github.com/Wilfred/elisp-refs")
16686 (commit version)))
16687 (file-name (git-file-name name version))
16688 (sha256
16689 (base32 "0w7k91xf69zc0zkjrw8h8sjdjf9xq9qs5zhvajhd718lzf93564b"))))
16690 (build-system emacs-build-system)
16691 (propagated-inputs
16692 `(("emacs-dash" ,emacs-dash)
16693 ("emacs-f" ,emacs-f)
16694 ("emacs-list-utils" ,emacs-list-utils)
16695 ("emacs-loop" ,emacs-loop)
16696 ("emacs-s" ,emacs-s)
16697 ("emacs-shut-up" ,emacs-shut-up)))
16698 (native-inputs
16699 `(("emacs-ert-runner" ,emacs-ert-runner)
16700 ("emacs-undercover" ,emacs-undercover)))
16701 (arguments
16702 `(#:tests? #t
16703 #:test-command '("ert-runner")
16704 #:phases
16705 (modify-phases %standard-phases
16706 (add-before 'check 'disable-refs-next-match-test
16707 ;; Hack to disable the failing test for emacs27
16708 ;; https://github.com/Wilfred/elisp-refs/issues/29
16709 (lambda _
16710 (substitute* "test/unit-test.el"
16711 (("ert-deftest elisp-refs-next-match")
16712 "defun elisp-refs-next-match"))
16713 #t)))))
16714 (home-page "https://github.com/Wilfred/elisp-refs")
16715 (synopsis "Find callers of elisp functions or macros")
16716 (description "Find references to functions, macros or variables. Unlike a
16717 dumb text search, @code{elisp-refs} actually parses the code, so it's never
16718 confused by comments or @code{foo-bar} matching @code{foo}.")
16719 (license license:gpl3+)))
16720
16721 (define-public emacs-crdt
16722 (let ((commit "44068ae505adf2c3a7bdbf6723a25fc45d6d1666")
16723 (revision "0"))
16724 (package
16725 (name "emacs-crdt")
16726 (version (git-version "0.0.0" revision commit))
16727 (source
16728 (origin
16729 (method git-fetch)
16730 (uri (git-reference
16731 (url "https://code.librehq.com/qhong/crdt.el")
16732 (commit commit)))
16733 (file-name (git-file-name name version))
16734 (sha256
16735 (base32 "130fkhvi757pfnbz70g6nw2n71k89cwwx7yzvsd5v177228c8w7w"))))
16736 (build-system emacs-build-system)
16737 (home-page "https://code.librehq.com/qhong/crdt.el")
16738 (synopsis "Real-time collaborative editing environment")
16739 (description
16740 "@code{crdt.el} is a real-time collaborative editing environment for
16741 Emacs using Conflict-free Replicated Data Types. With it, you can share
16742 multiple buffer in one session, and see other users’ cursor and region. It
16743 also synchronizes Org mode folding status. It should work with all of Org
16744 mode.")
16745 (license license:gpl3+))))
16746
16747 (define-public emacs-crux
16748 (let ((commit "308f17d914e2cd79cbc809de66d02b03ceb82859")
16749 (revision "2"))
16750 (package
16751 (name "emacs-crux")
16752 (version (git-version "0.3.0" revision commit))
16753 (source
16754 (origin
16755 (method git-fetch)
16756 (uri (git-reference
16757 (url "https://github.com/bbatsov/crux")
16758 (commit commit)))
16759 (file-name (git-file-name name version))
16760 (sha256
16761 (base32
16762 "0rf84finwlvmy0xpgyljjvnrijlmkzjyw9rh97svgxp9c1rzfk0x"))))
16763 (build-system emacs-build-system)
16764 (home-page "https://github.com/bbatsov/crux")
16765 (synopsis "Collection of useful functions for Emacs")
16766 (description
16767 "@code{crux} provides a collection of useful functions for Emacs.")
16768 (license license:gpl3+))))
16769
16770 (define-public emacs-edit-server
16771 (package
16772 (name "emacs-edit-server")
16773 (version "1.16")
16774 (source
16775 (origin
16776 (method git-fetch)
16777 (uri (git-reference
16778 (url "https://github.com/stsquad/emacs_chrome")
16779 (commit (string-append "v" version))))
16780 (file-name (git-file-name name version))
16781 (sha256
16782 (base32 "0m7gj224sqxjjw5sxky92fnrxg9jy4nf33kwf0aqxnfhqlgh545k"))))
16783 (build-system emacs-build-system)
16784 (arguments
16785 `(#:phases
16786 (modify-phases %standard-phases
16787 (add-after 'unpack 'chdir-elisp
16788 ;; Elisp directory is not in root of the source.
16789 (lambda _
16790 (chdir "servers"))))))
16791 (propagated-inputs `(("emacs-ert-async" ,emacs-ert-async)))
16792 (home-page "https://github.com/stsquad/emacs_chrome")
16793 (synopsis "Server that responds to edit requests from Chromium")
16794 (description
16795 "This package provides an edit server to respond to requests from Emacs.")
16796 (license license:gpl3+)))
16797
16798 (define-public emacs-m-buffer-el
16799 (package
16800 (name "emacs-m-buffer-el")
16801 (version "0.15")
16802 (source
16803 (origin
16804 (method git-fetch)
16805 (uri (git-reference
16806 (url "https://github.com/phillord/m-buffer-el")
16807 (commit (string-append "v" version))))
16808 (file-name (git-file-name name version))
16809 (sha256
16810 (base32
16811 "1sx76i59razwccvn6x7rx5a124bfyjw9fcbxf4gj7nsg33qiq809"))))
16812 (arguments
16813 `(#:phases
16814 (modify-phases %standard-phases
16815 (add-before 'install 'check
16816 (lambda* (#:key inputs #:allow-other-keys)
16817 (invoke "emacs" "--batch" "-L" "."
16818 "-l" "test/m-buffer-test.el"
16819 "-l" "test/m-buffer-at-test.el"
16820 "-f" "ert-run-tests-batch-and-exit"))))))
16821 (build-system emacs-build-system)
16822 (home-page "https://github.com/phillord/m-buffer-el")
16823 (synopsis "List oriented buffer operations for Emacs")
16824 (description "@code{m-buffer} provides a set of list-orientated functions
16825 for operating over the contents of Emacs buffers.")
16826 (license license:gpl3+)))
16827
16828 (define-public emacs-let-alist
16829 (package
16830 (name "emacs-let-alist")
16831 (version "1.0.6")
16832 (source
16833 (origin
16834 (method url-fetch)
16835 (uri (string-append
16836 "https://elpa.gnu.org/packages/let-alist-" version ".el"))
16837 (sha256
16838 (base32 "0szj7vnjzz4zci5fvz7xqgcpi4pzdyyf4qi2s8xar2hi7v3yaawr"))))
16839 (build-system emacs-build-system)
16840 (home-page "https://elpa.gnu.org/packages/let-alist.html")
16841 (synopsis "Easily let-bind values of an assoc-list by their names")
16842 (description "This package offers a single macro, @code{let-alist}. This
16843 macro takes a first argument (whose value must be an alist) and a body.")
16844 (license license:gpl3+)))
16845
16846 (define-public emacs-esup
16847 (let ((commit "0de8af8233d9ce1b67f05a50f25c481c4f1118d8")
16848 (revision "1"))
16849 (package
16850 (name "emacs-esup")
16851 (version (git-version "0.7.1" revision commit))
16852 (source
16853 (origin
16854 (method git-fetch)
16855 (uri (git-reference
16856 (url "https://github.com/jschaf/esup")
16857 (commit commit)))
16858 (file-name (git-file-name name version))
16859 (sha256
16860 (base32
16861 "01khb3xyj0ylwib6ryzzvqmkh5wvzxiq2n3l0s3h9zv7wx849bzv"))))
16862 (build-system emacs-build-system)
16863 (native-inputs
16864 `(("emacs-noflet" ,emacs-noflet)
16865 ("emacs-undercover" ,emacs-undercover)
16866 ("emacs-buttercup" ,emacs-buttercup)))
16867 (propagated-inputs
16868 `(("emacs-dash" ,emacs-dash)))
16869 (arguments
16870 `(#:tests? #t
16871 #:test-command '("buttercup" "-L" ".")))
16872 (home-page "https://github.com/jschaf/esup")
16873 (synopsis "Emacs start up profiler")
16874 (description "Benchmark Emacs Startup time without ever leaving
16875 your Emacs.")
16876 (license license:gpl2+))))
16877
16878 (define-public emacs-restart-emacs
16879 (let ((commit "9aa90d3df9e08bc420e1c9845ee3ff568e911bd9")
16880 (revision "1"))
16881 (package
16882 (name "emacs-restart-emacs")
16883 (version (git-version "0.1.1" revision commit))
16884 (source
16885 (origin
16886 (method git-fetch)
16887 (uri (git-reference
16888 (url "https://github.com/iqbalansari/restart-emacs")
16889 (commit commit)))
16890 (file-name (git-file-name name version))
16891 (sha256
16892 (base32 "02x1a85k7r95z8091zgjiaj9nf0zvx1jy4xvl3hr12qbnrx1wfav"))))
16893 (build-system emacs-build-system)
16894 (home-page "https://github.com/iqbalansari/restart-emacs")
16895 (synopsis "Restart Emacs from within Emacs")
16896 (description "This package provides a simple command to restart Emacs from
16897 within Emacs.")
16898 (license license:gpl3+))))
16899
16900 (define-public emacs-svg-tag-mode
16901 (let ((commit "87489d28450559078aa15b4a435143a297508e48")
16902 (revision "1"))
16903 (package
16904 (name "emacs-svg-tag-mode")
16905 (version (git-version "0.1" revision commit))
16906 (source
16907 (origin
16908 (method git-fetch)
16909 (uri (git-reference
16910 (url "https://github.com/rougier/svg-tag-mode")
16911 (commit commit)))
16912 (file-name (git-file-name name version))
16913 (sha256
16914 (base32 "0gyhmv60dx0zxx4bmhzsd7q5vfnkpfwlj6539bn272fwcr7zncp8"))))
16915 (build-system emacs-build-system)
16916 (home-page "https://github.com/rougier/svg-tag-mode")
16917 (synopsis "Replace keywords with SVG tags")
16918 (description "This package provides a minor mode that replaces keywords
16919 or expressions with SVG rounded box labels that are fully customizable.")
16920 (license license:gpl3+))))
16921
16922 (define-public emacs-svg-icon
16923 (let ((commit "ebc2b8d0f6c680fd575a90e683cc7b832acd1eb7")
16924 (revision "1"))
16925 (package
16926 (name "emacs-svg-icon")
16927 (version (git-version "0.1" revision commit))
16928 (source
16929 (origin
16930 (method git-fetch)
16931 (uri (git-reference
16932 (url "https://github.com/rougier/emacs-svg-icon")
16933 (commit commit)))
16934 (file-name (git-file-name name version))
16935 (sha256
16936 (base32 "1qzqfa8xyw1nkb89kbvw9qcgdwr8g017n8gf3yzwn816qhkfkjrj"))))
16937 (build-system emacs-build-system)
16938 (home-page "https://github.com/rougier/emacs-svg-icon")
16939 (synopsis "Emacs library to create SVG icons on the fly")
16940 (description "This library allows to create SVG icons by parsing remote
16941 collections whose license are compatibles with Emacs. The default size of an
16942 icon is exactly 2x1 characters such that it can be inserted inside a text
16943 without disturbing alignment.")
16944 (license (list license:gpl3+)))))
16945
16946 (define-public emacs-sourcemap
16947 (package
16948 (name "emacs-sourcemap")
16949 (version "0.03")
16950 (source
16951 (origin
16952 (method git-fetch)
16953 (uri (git-reference
16954 (url "https://github.com/syohex/emacs-sourcemap")
16955 (commit version)))
16956 (file-name (git-file-name name version))
16957 (sha256
16958 (base32 "115g2mfpbfywp8xnag4gsb50klfvplqfh928a5mabb5s8v4a3582"))))
16959 (build-system emacs-build-system)
16960 (home-page "https://github.com/syohex/emacs-sourcemap")
16961 (synopsis "Sourcemap parser")
16962 (description "Sourcemap parser")
16963 (license license:gpl3+)))
16964
16965 (define-public emacs-macrostep
16966 (let ((commit "424e3734a1ee526a1bd7b5c3cd1d3ef19d184267"))
16967 (package
16968 (name "emacs-macrostep")
16969 (version (git-version "0.9" "1" commit))
16970 (source (origin
16971 (method git-fetch)
16972 (uri (git-reference
16973 (url "https://github.com/joddie/macrostep")
16974 (commit commit)))
16975 (file-name (git-file-name name version))
16976 (sha256
16977 (base32
16978 "1fm40mxdn289cyzgw992223dgrjmwxn4q8svyyxfaxjrpb38jhjz"))))
16979 (build-system emacs-build-system)
16980 (arguments
16981 '(#:phases
16982 (modify-phases %standard-phases
16983 (add-before 'check 'remove-test
16984 ;; Fails because of requirement ‘/bin/sh’.
16985 (lambda _
16986 (let ((file "macrostep-test.el"))
16987 (chmod file #o644)
16988 (emacs-batch-edit-file file
16989 `(progn (progn (goto-char (point-min))
16990 (re-search-forward
16991 "(ert-deftest macrostep-expand-c-macros")
16992 (beginning-of-line)
16993 (kill-sexp))
16994 (basic-save-buffer))))))
16995 (add-before 'install 'check
16996 (lambda _
16997 (invoke "emacs" "--batch" "-L" "."
16998 "-l" "macrostep-test.el"
16999 "-f" "ert-run-tests-batch-and-exit"))))))
17000 (home-page "https://github.com/joddie/macrostep")
17001 (synopsis "Interactive macro-expander for Emacs")
17002 (description "@code{macrostep} is an Emacs minor mode for interactively
17003 stepping through the expansion of macros in Emacs Lisp source code. It lets
17004 you see exactly what happens at each step of the expansion process by
17005 pretty-printing the expanded forms inline in the source buffer, which is
17006 temporarily read-only while macro expansions are visible. You can expand and
17007 collapse macro forms one step at a time, and evaluate or instrument the
17008 expansions for debugging with Edebug as normal (but see “Bugs and known
17009 limitations”, below). Single-stepping through the expansion is particularly
17010 useful for debugging macros that expand into another macro form. These can be
17011 difficult to debug with Emacs’ built-in macroexpand, which continues expansion
17012 until the top-level form is no longer a macro call.")
17013 (license license:gpl3+))))
17014
17015 (define-public emacs-parent-mode
17016 (package
17017 (name "emacs-parent-mode")
17018 (version "2.3")
17019 (source
17020 (origin
17021 (method git-fetch)
17022 (uri (git-reference
17023 (url "https://github.com/Fanael/parent-mode")
17024 (commit version)))
17025 (file-name (git-file-name name version))
17026 (sha256
17027 (base32 "0i5bc7lyyrx6swqlrp9l5x72yzwi53qn6ldrfs99gh08b3yvsnni"))))
17028 (build-system emacs-build-system)
17029 (home-page "https://github.com/Fanael/parent-mode")
17030 (synopsis "Get major mode's parent modes")
17031 (description "Get major mode's parent modes")
17032 (license license:gpl3+)))
17033
17034 (define-public emacs-lacarte
17035 (package
17036 (name "emacs-lacarte")
17037 (version "0.1")
17038 (source (origin
17039 (method url-fetch)
17040 (uri "https://www.emacswiki.org/emacs/download/lacarte.el")
17041 (sha256
17042 (base32
17043 "1sbmk37ljq5j7dsw5c37sbxvlfgdqswh7bi4dknyjzfxlq50f4am"))))
17044 (build-system emacs-build-system)
17045 (home-page "https://www.emacswiki.org/emacs/lacarte.el")
17046 (synopsis "Execute menu items as commands, with completion")
17047 (description "Execute menu items as commands, with completion.")
17048 (license license:gpl3)))
17049
17050 (define-public emacs-isearch-prop
17051 (let ((commit "4a2765f835dd115d472142da05215c4c748809f4")
17052 (revision "2"))
17053 (package
17054 (name "emacs-isearch-prop")
17055 (version (git-version "0" revision commit))
17056 (source
17057 (origin
17058 (method git-fetch)
17059 (uri (git-reference
17060 (url "https://github.com/emacsmirror/isearch-prop")
17061 (commit commit)))
17062 (file-name (git-file-name name version))
17063 (sha256
17064 (base32
17065 "06gdk5m84q6pxwng8rjxny1zkll8f3m2x6lw4xyib2dvg7iaslh3"))))
17066 (build-system emacs-build-system)
17067 (home-page "https://www.emacswiki.org/emacs/isearch-prop.el")
17068 (synopsis "Extensions to @code{isearch.el}")
17069 (description "The Emacs library @code{isearch-prop.el} lets you search within
17070 contexts. You can limit incremental search to a set of zones of
17071 buffer text, search contexts that in effect constitute a multi-region.
17072 These zones can be defined in various ways, including some ways
17073 provided specially by this library.")
17074 (license license:gpl3+))))
17075
17076 (define-public emacs-company-lua
17077 (let ((commit "29f6819de4d691e5fd0b62893a9f4fbc1c6fcb52")
17078 (revision "2"))
17079 (package
17080 (name "emacs-company-lua")
17081 (version (git-version "0.1" "2" commit))
17082 (source
17083 (origin
17084 (method git-fetch)
17085 (uri (git-reference
17086 (url "https://github.com/ptrv/company-lua")
17087 (commit commit)))
17088 (file-name (git-file-name name version))
17089 (sha256
17090 (base32
17091 "0ny2dcc7c585p7v3j6q0rpkbj1qmf2ismy8a5020jpr585xvz0hh"))))
17092 (build-system emacs-build-system)
17093 (propagated-inputs
17094 `(("emacs-company" ,emacs-company)
17095 ("emacs-s" ,emacs-s)
17096 ("emacs-f" ,emacs-f)
17097 ("emacs-lua-mode" ,emacs-lua-mode)))
17098 (arguments
17099 `(#:include (cons* "^lua\\/" %default-include)))
17100 (home-page "https://github.com/ptrv/company-lua")
17101 (synopsis "Company backend for Lua")
17102 (description
17103 "This package provides Company backend for Lua programming language.")
17104 (license license:gpl3+))))
17105
17106 (define-public emacs-beginend
17107 (package
17108 (name "emacs-beginend")
17109 (version "2.2.0")
17110 (source
17111 (origin
17112 (method git-fetch)
17113 (uri (git-reference
17114 (url "https://github.com/DamienCassou/beginend")
17115 (commit (string-append "v" version))))
17116 (file-name (git-file-name name version))
17117 (sha256
17118 (base32 "1r9033zlx2q2dk3bjz004flxdiw79qiswq0zqdjnlzwassvk0f35"))))
17119 ;; TODO: Run tests.
17120 (build-system emacs-build-system)
17121 (inputs
17122 `(("emacs-undercover" ,emacs-undercover))) ; For tests.
17123 (home-page "https://github.com/DamienCassou/beginend")
17124 (synopsis "Redefine @code{M-<} and @code{M->} for Emacs modes")
17125 (description "@code{beginend} redefines @code{M-<} and @code{M->}
17126 keybindings for Emacs modes so that point moves to meaningful
17127 locations. Redefined keys are still accessible by pressing the same
17128 key again.")
17129 (license license:gpl3+)))
17130
17131 (define-public emacs-mbsync
17132 (let ((commit "b62491c0e0d89eb9c66261a16d7ac81231c9c453")
17133 (revision "4"))
17134 (package
17135 (name "emacs-mbsync")
17136 (version (git-version "0.1.2" revision commit))
17137 (source
17138 (origin
17139 (method git-fetch)
17140 (uri (git-reference
17141 (url "https://github.com/dimitri/mbsync-el")
17142 (commit commit)))
17143 (file-name (git-file-name name version))
17144 (sha256
17145 (base32
17146 "1zlih37mkqjn2czl12zn7lgxxljvrwhqqpbksj9c91zn0f0rm3mz"))))
17147 (build-system emacs-build-system)
17148 (home-page "https://github.com/dimitri/mbsync-el")
17149 (synopsis "Interface to mbsync for Emacs")
17150 (description "This package calls @code{mbsync} from
17151 within Emacs.")
17152 (license license:gpl3+))))
17153
17154 (define-public emacs-ibuffer-projectile
17155 (package
17156 (name "emacs-ibuffer-projectile")
17157 (version "0.3")
17158 (source
17159 (origin
17160 (method git-fetch)
17161 (uri (git-reference
17162 (url "https://github.com/purcell/ibuffer-projectile")
17163 (commit version)))
17164 (file-name (git-file-name name version))
17165 (sha256
17166 (base32
17167 "18cqxnwzzbkcj9jcaw89b210432yzhrl1dwsv48p0jbhfnr17k41"))))
17168 (build-system emacs-build-system)
17169 (propagated-inputs
17170 `(("emacs-projectile" ,emacs-projectile)))
17171 (home-page "https://github.com/purcell/ibuffer-projectile")
17172 (synopsis "Group ibuffer's list by projectile root")
17173 (description "Adds functionality to Emacs @code{ibuffer} for
17174 grouping buffers by their projectile root directory.")
17175 (license license:gpl3+)))
17176
17177 (define-public emacs-elm-mode
17178 (package
17179 (name "emacs-elm-mode")
17180 (version "0.21.0")
17181 (source
17182 (origin
17183 (method git-fetch)
17184 (uri
17185 (git-reference
17186 (url "https://github.com/jcollard/elm-mode")
17187 (commit (string-append "v" version))))
17188 (file-name (git-file-name name version))
17189 (sha256
17190 (base32 "0iwk4fmw8hq3ry4ky1zc7lgl4cpbnrjyk74c2xzddfspi3ks41fd"))))
17191 (propagated-inputs
17192 `(("emacs-dash" ,emacs-dash)
17193 ("emacs-f" ,emacs-f)
17194 ("emacs-reformatter" ,emacs-reformatter)
17195 ("emacs-s" ,emacs-s)))
17196 (build-system emacs-build-system)
17197 (home-page "https://github.com/jcollard/elm-mode")
17198 (synopsis "Emacs major mode for editing Elm source code")
17199 (description
17200 "This package provides a major mode for editing Elm source code, and
17201 working with common core and third-party Elm tools. Its features are:
17202
17203 @itemize
17204 @item Syntax highlighting
17205 @item Intelligent indentation
17206 @item Integration with elm-make
17207 @item Integration with elm-repl
17208 @item Integration with elm-reactor
17209 @item Integration with elm-package
17210 @item Integration with elm-oracle
17211 @item Integration with elm-format
17212 @item Integration with elm-test
17213 @end itemize")
17214 (license license:gpl3+)))
17215
17216 (define-public emacs-helm-mode-manager
17217 (package
17218 (name "emacs-helm-mode-manager")
17219 (version "1.0.0")
17220 (source
17221 (origin
17222 (method git-fetch)
17223 (uri (git-reference
17224 (url "https://github.com/istib/helm-mode-manager")
17225 (commit version)))
17226 (file-name (git-file-name name version))
17227 (sha256
17228 (base32
17229 "1srx5f0s9x7zan7ayqd6scxfhcvr3nkd4yzs96hphd87rb18apzk"))))
17230 (build-system emacs-build-system)
17231 (propagated-inputs
17232 `(("emacs-helm" ,emacs-helm)))
17233 (home-page "https://github.com/istib/helm-mode-manager/")
17234 (synopsis "Switch and toggle Emacs major and minor modes using Helm")
17235 (description "This package provides a Helm interface for toggling Emacs
17236 major or minor mode.
17237
17238 @itemize
17239 @item @code{helm-switch-major-mode} list of all major modes
17240 @item @code{helm-enable-minor-mode} list of all inactive minor modes
17241 @item @code{helm-disable-minor-mode} list of all ACTIVE minor modes
17242 @end itemize\n
17243
17244 Hitting @code{RET} enables the mode, @code{C-z} shows the mode
17245 documentation.")
17246 (license license:gpl3+)))
17247
17248 (define-public emacs-hy-mode
17249 (package
17250 (name "emacs-hy-mode")
17251 (version "1.0.4")
17252 (source
17253 (origin
17254 (method git-fetch)
17255 (uri (git-reference
17256 (url "https://github.com/hylang/hy-mode")
17257 (commit (string-append "v" version))))
17258 (file-name (git-file-name name version))
17259 (sha256
17260 (base32 "0gihxlmfminadaqdr8d2zccd7wwygl3m0gfzxsk5izi7f8hl4w7f"))))
17261 (build-system emacs-build-system)
17262 (propagated-inputs
17263 `(("emacs-dash" ,emacs-dash)
17264 ("emacs-s" ,emacs-s)))
17265 (home-page "https://github.com/hylang/hy-mode")
17266 (synopsis "Major mode for Hylang")
17267 (description "This package provides a major mode for Hylang.")
17268 (license license:gpl3+)))
17269
17270 (define-public emacs-web-beautify
17271 (package
17272 (name "emacs-web-beautify")
17273 (version "0.3.2")
17274 (source
17275 (origin
17276 (method git-fetch)
17277 (uri (git-reference
17278 (url "https://github.com/yasuyk/web-beautify")
17279 (commit version)))
17280 (file-name (git-file-name name version))
17281 (sha256
17282 (base32 "0vms7zz3ym53wf1zdrkbf2ky2xjr1v134ngsd0jr8azyi8siw84d"))))
17283 (build-system emacs-build-system)
17284 (home-page "https://github.com/yasuyk/web-beautify")
17285 (synopsis "Format HTML, CSS and JavaScript, JSON")
17286 (description "This package provides an Emacs functions to format HTML,
17287 CSS, JavaScript, JSON.")
17288 (license license:gpl3+)))
17289
17290 (define-public emacs-helm-shell-history
17291 (let ((commit "110d3c35c52fe4b89b29e79ea4c8626bce7266a1"))
17292 (package
17293 (name "emacs-helm-shell-history")
17294 (version (git-version "0.1" "1" commit))
17295 (source
17296 (origin
17297 (method git-fetch)
17298 (uri (git-reference
17299 (url "https://github.com/yuutayamada/helm-shell-history")
17300 (commit commit)))
17301 (file-name (git-file-name name version))
17302 (sha256
17303 (base32
17304 "18fkjcz69g4dyaxhf9j8svr5x6dhsdnglddwisis8hdn504scpfj"))))
17305 (build-system emacs-build-system)
17306 (arguments
17307 '(#:phases
17308 (modify-phases %standard-phases
17309 (add-before 'check 'patch-helm-shell-history-file
17310 (lambda _
17311 (let ((file "helm-shell-history.el"))
17312 (chmod file #o644)
17313 (emacs-substitute-sexps file
17314 ("(defvar helm-shell-history-file"
17315 `(expand-file-name "~/.bash_history"))))
17316 #t)))))
17317 (propagated-inputs
17318 `(("emacs-helm" ,emacs-helm)))
17319 (home-page "https://github.com/yuutayamada/helm-shell-history")
17320 (synopsis "Find shell history with Emacs Helm")
17321 (description "This package provides an Emacs Helm interface to search
17322 throw a shell history.")
17323 (license license:gpl3+))))
17324
17325 (define-public emacs-discover-my-major
17326 (package
17327 (name "emacs-discover-my-major")
17328 (version "1.0")
17329 (source
17330 (origin
17331 (method git-fetch)
17332 (uri (git-reference
17333 (url "https://framagit.org/steckerhalter/discover-my-major.git/")
17334 (commit version)))
17335 (file-name (git-file-name name version))
17336 (sha256
17337 (base32
17338 "1wlqyl03hhnflbyay3qlvdzqzvv5rbybcjpfddggda7ias9h0pr4"))))
17339 (build-system emacs-build-system)
17340 (propagated-inputs
17341 `(("emacs-makey" ,emacs-makey)))
17342 (home-page "https://framagit.org/steckerhalter/discover-my-major/")
17343 (synopsis "Discover key bindings for the current Emacs major mode")
17344 (description "This package discovers key bindings and
17345 their meaning for the current Emacs major-mode.")
17346 (license license:gpl3+)))
17347
17348 (define-public emacs-org-ref
17349 ;; No release since June 2017.
17350 (let ((commit "5bb9be2232db72b04754d7e4c02a3976ad422f6f")
17351 (revision "2"))
17352 (package
17353 (name "emacs-org-ref")
17354 (version (git-version "1.1.1" revision commit))
17355 (source
17356 (origin
17357 (method git-fetch)
17358 (uri (git-reference
17359 (url "https://github.com/jkitchin/org-ref")
17360 (commit commit)))
17361 (file-name (git-file-name name version))
17362 (sha256
17363 (base32 "15gcvbfj19kyv4nxa632b261dwhb26m99plq230qhv9ssfwfgxbx"))))
17364 (build-system emacs-build-system)
17365 (propagated-inputs
17366 `(("emacs-dash" ,emacs-dash)
17367 ("emacs-f" ,emacs-f)
17368 ("emacs-helm" ,emacs-helm)
17369 ("emacs-helm-bibtex" ,emacs-helm-bibtex)
17370 ("emacs-htmlize" ,emacs-htmlize)
17371 ("emacs-hydra" ,emacs-hydra)
17372 ("emacs-ivy" ,emacs-ivy)
17373 ("emacs-key-chord" ,emacs-key-chord)
17374 ("emacs-pdf-tools" ,emacs-pdf-tools)
17375 ("emacs-s" ,emacs-s)))
17376 (home-page "https://github.com/jkitchin/org-ref")
17377 (synopsis "Citations, cross-references and bibliographies in Org mode")
17378 (description
17379 "Org Ref is an Emacs library that provides rich support for citations,
17380 labels and cross-references in Org mode.
17381
17382 The basic idea of Org Ref is that it defines a convenient interface to insert
17383 citations from a reference database (e.g., from BibTeX files), and a set of
17384 functional Org links for citations, cross-references and labels that export
17385 properly to LaTeX, and that provide clickable functionality to the user. Org
17386 Ref interfaces with Helm BibTeX to facilitate citation entry, and it can also
17387 use RefTeX.
17388
17389 It also provides a fairly large number of utilities for finding bad citations,
17390 extracting BibTeX entries from citations in an Org file, and functions to
17391 create and modify BibTeX entries from a variety of sources, most notably from
17392 a DOI.
17393
17394 Org Ref is especially suitable for Org documents destined for LaTeX export and
17395 scientific publication. Org Ref is also useful for research documents and
17396 notes.")
17397 (license license:gpl3+))))
17398
17399 (define-public emacs-org-reveal
17400 (let ((commit "84039bb499290926511b04749882ecb5eda45a0c"))
17401 (package
17402 (name "emacs-org-reveal")
17403 (version (git-version "20200607" "1" commit))
17404 (source (origin
17405 (method git-fetch)
17406 (uri (git-reference
17407 (url "https://github.com/yjwen/org-reveal")
17408 (commit commit)))
17409 (file-name (git-file-name name version))
17410 (sha256
17411 (base32
17412 "1fx3xmnkpfljrdmy0dsyq79k93ky57gcqm1ad9qbzykk7qjvmmi8"))))
17413 (build-system emacs-build-system)
17414 (home-page "https://github.com/yjwen/org-reveal")
17415 (synopsis "Org and Reveal.js powered HTML presentation tool")
17416 (description "Org-Reveal is a @command{org-mode} extension that allows
17417 to create beautiful presentations (slides) with 3D effects from simple but
17418 powerful Org contents.")
17419 (license license:gpl3+))))
17420
17421 (define-public emacs-org-re-reveal
17422 (package
17423 (name "emacs-org-re-reveal")
17424 (version "3.7.0")
17425 (source (origin
17426 (method git-fetch)
17427 (uri (git-reference
17428 (url "https://gitlab.com/oer/org-re-reveal")
17429 (commit version)))
17430 (file-name (git-file-name name version))
17431 (sha256
17432 (base32
17433 "1vzn0l8ig4rzh5h8j7kxn8kslqrij97qqv98fbnlwmrw4z87v8dr"))))
17434 (build-system emacs-build-system)
17435 (propagated-inputs
17436 `(("emacs-htmlize" ,emacs-htmlize)
17437 ("emacs-org" ,emacs-org)))
17438 (home-page "https://gitlab.com/oer/org-re-reveal")
17439 (synopsis "Build HTML presentations with reveal.js from Org source files")
17440 (description "This project started as fork of org-reveal. It provides an
17441 export back-end for HTML presentations with reveal.js from Org mode source
17442 files.")
17443 (license license:gpl3+)))
17444
17445 (define-public emacs-add-hooks
17446 (package
17447 (name "emacs-add-hooks")
17448 (version "3.1.1")
17449 (source
17450 (origin
17451 (method git-fetch)
17452 (uri (git-reference
17453 (url "https://github.com/nickmccurdy/add-hooks")
17454 (commit version)))
17455 (file-name (git-file-name name version))
17456 (sha256
17457 (base32 "1jv9fpcsm572zg0j1mbpbfkqgdlqapy89xhhj19pswkhjns1y2wl"))))
17458 (build-system emacs-build-system)
17459 (home-page "https://github.com/nickmccurdy/add-hooks/")
17460 (synopsis "Emacs function for setting multiple hooks")
17461 (description "This package provides a @code{add-hooks} function tidies up
17462 duplicate hook and function names further into a single declarative call.")
17463 (license license:gpl3+)))
17464
17465 (define-public emacs-fancy-battery
17466 (package
17467 (name "emacs-fancy-battery")
17468 (version "0.2")
17469 (source
17470 (origin
17471 (method git-fetch)
17472 (uri (git-reference
17473 (url "https://github.com/emacsorphanage/fancy-battery")
17474 (commit version)))
17475 (file-name (git-file-name name version))
17476 (sha256
17477 (base32 "05lwcwf412m717yhwpjrswqkm8c3i7391rmiwv2k8xc1vk6dpp4g"))))
17478 (build-system emacs-build-system)
17479 (home-page "https://github.com/emacsorphanage/fancy-battery")
17480 (synopsis "Display battery status in Emacs mode line")
17481 (description "This package provides @code{fancy-battery-mode} which is
17482 like the built-in @code{display-battery-mode}, but more fancy. It just the
17483 remaining time, uses colours to indicate the status of the battery, and is
17484 more customizable.")
17485 (license license:gpl3)))
17486
17487 (define-public emacs-fancy-narrow
17488 (package
17489 (name "emacs-fancy-narrow")
17490 (version "0.9.5")
17491 (source
17492 (origin
17493 (method git-fetch)
17494 (uri (git-reference
17495 (url "https://github.com/Malabarba/fancy-narrow")
17496 (commit version)))
17497 (file-name (git-file-name name version))
17498 (sha256
17499 (base32 "0vcr1gnqawvc1yclqs23jvxm6bqix8kpflf1c7znb0wzxmz9kx7y"))))
17500 (build-system emacs-build-system)
17501 (home-page "https://github.com/Malabarba/fancy-narrow/releases")
17502 (synopsis "Imitate @code{narrow-to-region} with more eye candy")
17503 (description
17504 "Unlike @code{narrow-to-region}, which completely hides text outside
17505 the narrowed region, this package simply de-emphasizes the text, makes it
17506 read-only, and makes it unreachable. This leads to a much more natural
17507 feeling where the region stays static (instead of being brutally moved to a
17508 blank slate) and is clearly highlighted with respect to the rest of the
17509 buffer.")
17510 (license license:gpl2+)))
17511
17512 (define-public emacs-know-your-http-well
17513 (package
17514 (name "emacs-know-your-http-well")
17515 (version "0.5.0")
17516 (source
17517 (origin
17518 (method git-fetch)
17519 (uri (git-reference
17520 (url "https://github.com/for-GET/know-your-http-well")
17521 (commit (string-append "v" version))))
17522 (file-name (git-file-name name version))
17523 (sha256
17524 (base32 "1lppggnii2r9fvlhh33gbdrwb50za8lnalavlq9s86ngndn4n94k"))))
17525 (arguments
17526 `(#:phases
17527 (modify-phases %standard-phases
17528 (add-after 'unpack 'install-json-files
17529 (lambda* (#:key outputs #:allow-other-keys)
17530 (for-each (lambda (directory)
17531 (copy-recursively directory
17532 (string-append
17533 (assoc-ref outputs "out")
17534 directory)))
17535 '("js" "json"))))
17536 (add-after 'unpack 'chdir-elisp
17537 ;; Elisp directory is not in root of the source.
17538 (lambda _
17539 (chdir "emacs"))))))
17540 (build-system emacs-build-system)
17541 (home-page "https://github.com/for-GET/know-your-http-well")
17542 (synopsis "Meaning of HTTP headers codes")
17543 (description "Meaning of HTTP headers codes.")
17544 (license license:gpl3+)))
17545
17546 (define-public emacs-navi-mode
17547 (let ((commit "c1d38e8237f4e14af020a0b7d4f118ea198ab674"))
17548 (package
17549 (name "emacs-navi-mode")
17550 (version (git-version "2.0" "1" commit))
17551 (source
17552 (origin
17553 (method git-fetch)
17554 (uri (git-reference
17555 (url "https://github.com/alphapapa/navi")
17556 (commit commit)))
17557 (file-name (git-file-name name version))
17558 (sha256
17559 (base32
17560 "0jj5spk14hgb7zb1cd2n8whcw4k1kd5zb6llwj96v178yaws7l8k"))))
17561 (build-system emacs-build-system)
17562 (propagated-inputs
17563 `(("emacs-outshine" ,emacs-outshine)
17564 ("emacs-outorg" ,emacs-outorg)))
17565 (home-page "https://github.com/alphapapa/navi")
17566 (synopsis "Emacs major-mode for easy buffer-navigation")
17567 (description
17568 "This package provides an Emacs major-mode for easy buffer-navigation")
17569 (license license:gpl3+))))
17570
17571 (define-public emacs-download-region
17572 (let ((commit "eb9e557529a73b4cfc8281c70dd0d95db333fffa")
17573 (revision "1"))
17574 (package
17575 (name "emacs-download-region")
17576 (version (string-append "0.0.1" "-" revision "."
17577 (string-take commit 7)))
17578 (source
17579 (origin
17580 (method git-fetch)
17581 (uri (git-reference
17582 (url "https://github.com/zk-phi/download-region")
17583 (commit commit)))
17584 (file-name (git-file-name name version))
17585 (sha256
17586 (base32
17587 "0v52djg39b6k2snizd9x0qc009ws5y0ywqsfwhqgcbs5ymzh7dsc"))))
17588 (build-system emacs-build-system)
17589 (home-page "https://github.com/zk-phi/download-region")
17590 (synopsis "In buffer download manager for Emacs")
17591 (description "@code{download-region} provides in buffer
17592 downloading manager for Emacs.")
17593 (license license:gpl3+))))
17594
17595 (define-public emacs-helpful
17596 (package
17597 (name "emacs-helpful")
17598 (version "0.18")
17599 (source
17600 (origin
17601 (method git-fetch)
17602 (uri (git-reference
17603 (url "https://github.com/Wilfred/helpful")
17604 (commit version)))
17605 (file-name (git-file-name name version))
17606 (sha256
17607 (base32 "0gdjxykqkal2x765mi51m99i5ql23i1fy909wy4mzj5ajhjfgqcc"))))
17608 (build-system emacs-build-system)
17609 (propagated-inputs
17610 `(("emacs-elisp-refs" ,emacs-elisp-refs)
17611 ("emacs-dash" ,emacs-dash)
17612 ("emacs-s" ,emacs-s)
17613 ("emacs-f" ,emacs-f)
17614 ("emacs-shut-up" ,emacs-shut-up)))
17615 (native-inputs
17616 `(("emacs-ert-runner" ,emacs-ert-runner)
17617 ("emacs-undercover" ,emacs-undercover)))
17618 (arguments
17619 `(#:tests? #t
17620 #:test-command '("ert-runner")))
17621 (home-page "https://github.com/Wilfred/helpful")
17622 (synopsis "More contextual information in Emacs help")
17623 (description "@code{helpful} is an alternative to the built-in Emacs help
17624 that provides much more contextual information.
17625
17626 @itemize
17627 @item Show the source code for interactively defined functions (unlike the
17628 built-in Help).
17629 @item Fall back to the raw sexp if no source is available.
17630 @item Show where a function is being called.
17631 @item Docstrings will Highlight the summary (the first sentence), include
17632 cross-references, hide superfluous puncuation.
17633 @item Show you the properties that have been applied to the current
17634 symbol. This provides visibility of features like edebug or byte-code
17635 optimisation.
17636 @item Provide a separate @code{helpful-command} function to view interactive
17637 functions.
17638 @item Display any keybindings that apply to interactive functions.
17639 @item Trace, disassemble functions from inside Helpful. This is discoverable
17640 and doesn't require memorisation of commands.
17641 @end itemize\n")
17642 (license license:gpl3+)))
17643
17644 (define-public emacs-logview
17645 (package
17646 (name "emacs-logview")
17647 (version "0.14")
17648 (source
17649 (origin
17650 (method git-fetch)
17651 (uri (git-reference
17652 (url "https://github.com/doublep/logview")
17653 (commit version)))
17654 (file-name (git-file-name name version))
17655 (sha256
17656 (base32 "1cchmr25z5zj7rgb2fyxkaq8kpw7i5yg1pvn42dvm09c2wrfbj46"))))
17657 (propagated-inputs
17658 `(("emacs-datetime" ,emacs-datetime)
17659 ("emacs-extmap" ,emacs-extmap)))
17660 (build-system emacs-build-system)
17661 (home-page "https://github.com/doublep/logview/")
17662 (synopsis "Emacs mode for viewing log files")
17663 (description "@code{logview} provides an Emacs mode to view log files.")
17664 (license license:gpl3+)))
17665
17666 (define-public emacs-suggest
17667 (package
17668 (name "emacs-suggest")
17669 (version "0.7")
17670 (home-page "https://github.com/Wilfred/suggest.el")
17671 (source
17672 (origin
17673 (method git-fetch)
17674 (uri (git-reference
17675 (url home-page)
17676 (commit version)))
17677 (file-name (git-file-name name version))
17678 (sha256
17679 (base32
17680 "01v8plska5d3g19sb1m4ph1i3ayprfzk8mi6mpabjy6zad397xjl"))))
17681 (build-system emacs-build-system)
17682 (propagated-inputs
17683 `(("emacs-loop" ,emacs-loop)
17684 ("emacs-dash" ,emacs-dash)
17685 ("emacs-s" ,emacs-s)
17686 ("emacs-f" ,emacs-f)
17687 ("emacs-spinner" ,emacs-spinner)
17688 ("emacs-shut-up" ,emacs-shut-up)))
17689 (native-inputs
17690 `(("emacs-ert-runner" ,emacs-ert-runner)
17691 ("emacs-undercover" ,emacs-undercover)))
17692 (arguments
17693 `(#:tests? #t
17694 #:test-command '("ert-runner")))
17695 (synopsis "Suggest Elisp functions that give the output requested")
17696 (description "Suggest.el will find functions that give the output
17697 requested. It's a great way of exploring list, string and arithmetic
17698 functions.")
17699 (license license:gpl3+)))
17700
17701 (define-public emacs-benchmark-init
17702 (package
17703 (name "emacs-benchmark-init")
17704 (version "1.0")
17705 (source
17706 (origin
17707 (method git-fetch)
17708 (uri (git-reference
17709 (url "https://github.com/dholm/benchmark-init-el")
17710 (commit version)))
17711 (file-name (git-file-name name version))
17712 (sha256
17713 (base32 "1kyn1izm5sbqbp9whnhk9dn3yc7zy8bz5san5w3ivi3rpx15fh94"))))
17714 (build-system emacs-build-system)
17715 (home-page "https://github.com/dholm/benchmark-init-el")
17716 (synopsis "Benchmark Emacs @code{require} and @code{load} calls")
17717 (description "@code{benchmark-init} provides a way to keep track of where
17718 time is being spent during Emacs startup in order to optimize startup time.")
17719 (license license:gpl3+)))
17720
17721 (define-public emacs-magit-gerrit
17722 (let ((version "0.3")
17723 (revision "1")
17724 (commit "ece6f369694aca17f3ac166ed2801b432acfe20d"))
17725 (package
17726 (name "emacs-magit-gerrit")
17727 (version (git-version version revision commit))
17728 (source (origin
17729 (method git-fetch)
17730 (uri (git-reference
17731 (url "https://github.com/terranpro/magit-gerrit")
17732 (commit commit)))
17733 (file-name (git-file-name name version))
17734 (sha256
17735 (base32
17736 "0mms0gxv9a3ns8lk5k2wjibm3088y1cmpr3axjdh6ppv7r5wdvii"))))
17737 (build-system emacs-build-system)
17738 (propagated-inputs
17739 `(("emacs-magit" ,emacs-magit)))
17740 (home-page "https://github.com/terranpro/magit-gerrit")
17741 (synopsis "Magit extension for Gerrit")
17742 (description "This Magit extension provides integration with Gerrit,
17743 which makes it possible to conduct Gerrit code reviews directly from within
17744 Emacs.")
17745 (license license:gpl3+))))
17746
17747 (define-public emacs-magit-org-todos-el
17748 (package
17749 (name "emacs-magit-org-todos-el")
17750 (version "0.1.2")
17751 (source
17752 (origin
17753 (method git-fetch)
17754 (uri (git-reference
17755 (url "https://github.com/danielma/magit-org-todos.el")
17756 (commit version)))
17757 (file-name (git-file-name name version))
17758 (sha256
17759 (base32
17760 "07r5x256k1fjjxs1yfg41kc94nwvnjlk2vvknkra3j8v9p0j88m7"))))
17761 (propagated-inputs
17762 `(("magit" ,emacs-magit)))
17763 (build-system emacs-build-system)
17764 (home-page "https://github.com/danielma/magit-org-todos.el")
17765 (synopsis "Get todo.org into Emacs Magit status")
17766 (description "This package allows you to get @file{todo.org} into your
17767 magit status.
17768
17769 If you have a @file{todo.org} file with @code{TODO} items in the root of your
17770 repository, @code{magit-org-todos} will create a section in your Magit status
17771 buffer with each of your todos.")
17772 (license license:gpl3+)))
17773
17774 (define-public emacs-vcsh
17775 (package
17776 (name "emacs-vcsh")
17777 (version "0.4.4")
17778 (source
17779 (origin
17780 (method git-fetch)
17781 (uri (git-reference
17782 (url "https://gitlab.com/stepnem/vcsh-el.git")
17783 (commit version)))
17784 (file-name (git-file-name name version))
17785 (sha256
17786 (base32 "183pffdiqb7qqmjq31wxl3fpv8qswqgg99gb716rddiyk15ysri7"))))
17787 (build-system emacs-build-system)
17788 (home-page "https://gitlab.com/stepnem/vcsh-el")
17789 (synopsis "Emacs VCSH integration")
17790 (description
17791 "This library provides basic ``enter'' functionality and a few
17792 convenience commands to initialize a @acronym{VCSH, Version Control System for
17793 $HOME} repository and add files to it. It can be used in conjunction with
17794 Magit.")
17795 (license license:public-domain)))
17796
17797 (define-public emacs-f3
17798 (package
17799 (name "emacs-f3")
17800 (version "0.1")
17801 (source
17802 (origin
17803 (method git-fetch)
17804 (uri (git-reference
17805 (url "https://github.com/cosmicexplorer/f3")
17806 (commit version)))
17807 (file-name (git-file-name name version))
17808 (sha256
17809 (base32 "1qg48zbjdjqimw4516ymrsilz41zkib9321q0caf9474s9xyp2bi"))))
17810 (build-system emacs-build-system)
17811 (propagated-inputs
17812 `(("emacs-helm" ,emacs-helm)))
17813 (home-page "https://github.com/cosmicexplorer/f3")
17814 (synopsis "Fantastic File Finder for Emacs")
17815 (description
17816 "The Fantastic File Finder for Emacs. Find files fast, using helm.")
17817 (license license:gpl3+)))
17818
17819 (define-public emacs-lice-el
17820 (let ((commit "482e58ab83fff86ed754b00be27b62a219597e7c"))
17821 (package
17822 (name "emacs-lice-el")
17823 (version (git-version "0.2" "2" commit))
17824 (source (origin
17825 (method git-fetch)
17826 (uri (git-reference
17827 (url "https://github.com/buzztaiki/lice-el")
17828 (commit commit)))
17829 (file-name (git-file-name name version))
17830 (sha256
17831 (base32
17832 "0yxkjyhfk8kpr8yqz54gdx6xwkj4s8bnbz60162jh12crj0bs5n7"))))
17833 (build-system emacs-build-system)
17834 (arguments
17835 `(#:phases
17836 (modify-phases %standard-phases
17837 (add-after 'unpack 'patch-template-directory
17838 (lambda* (#:key outputs #:allow-other-keys)
17839 (chmod "lice.el" #o666)
17840 (emacs-substitute-variables "lice.el"
17841 ("lice:system-template-directory"
17842 (string-append (assoc-ref outputs "out")
17843 "/share/emacs-lice-el/template")))
17844 #t))
17845 (add-after 'install 'install-templates
17846 (lambda* (#:key outputs #:allow-other-keys)
17847 (copy-recursively
17848 "template"
17849 (string-append (assoc-ref outputs "out")
17850 "/share/emacs-lice-el/template"))
17851 #t)))))
17852 (home-page "https://github.com/buzztaiki/lice-el")
17853 (synopsis "License and header template for Emacs")
17854 (description "@code{lice.el} provides following features:
17855
17856 @itemize
17857 @item License template management.
17858 @item File header insertion.
17859 @end itemize\n")
17860 (license license:gpl3+))))
17861
17862 (define-public emacs-academic-phrases
17863 (let ((commit "0823ed8c24b26c32f909b896a469833ec4d7b656"))
17864 (package
17865 (name "emacs-academic-phrases")
17866 (version (git-version "0.1" "1" commit))
17867 (source
17868 (origin
17869 (method git-fetch)
17870 (uri (git-reference
17871 (url "https://github.com/nashamri/academic-phrases")
17872 (commit commit)))
17873 (file-name (git-file-name name version))
17874 (sha256
17875 (base32
17876 "0qfzsq8jh05w4zkr0cvq3i1hdn97bq344vcqjg46sib26x3wpz6r"))))
17877 (build-system emacs-build-system)
17878 (propagated-inputs
17879 `(("emacs-dash" ,emacs-dash)
17880 ("emacs-s" ,emacs-s)
17881 ("emacs-ht" ,emacs-ht)))
17882 (home-page "https://github.com/nashamri/academic-phrases")
17883 (synopsis "Bypass that mental block when writing your papers")
17884 (description
17885 "When writing your academic paper, you might get stuck trying to find
17886 the right phrase that captures your intention. This package tries to
17887 alleviate that problem by presenting you with a list of phrases organized by
17888 the topic or by the paper section that you are writing. This package has
17889 around 600 phrases so far.
17890
17891 Using this package is easy, just call @code{academic-phrases} to get a list of
17892 phrases organized by topic, or call @code{academic-phrases-by-section} to
17893 browse the phrases by the paper section and fill-in the blanks if required.")
17894 (license license:gpl3+))))
17895
17896 (define-public emacs-auto-yasnippet
17897 (let ((commit "624b0d9711222073a2a3f2186e2605eb99fc83c9")
17898 (revision "2"))
17899 (package
17900 (name "emacs-auto-yasnippet")
17901 (version (git-version "0.3.0" revision commit))
17902 (source (origin
17903 (method git-fetch)
17904 (uri (git-reference
17905 (url "https://github.com/abo-abo/auto-yasnippet")
17906 (commit commit)))
17907 (file-name (git-file-name name version))
17908 (sha256
17909 (base32
17910 "15g8wi067f345xhpi0c12w0h04p4f4lpccwmdjdfj8hzfl4gyxy9"))))
17911 (build-system emacs-build-system)
17912 (arguments
17913 '(#:tests? #t
17914 #:test-command '("make" "test")))
17915 (propagated-inputs
17916 `(("emacs-yasnippet" ,emacs-yasnippet)))
17917 (home-page "https://github.com/abo-abo/auto-yasnippet/")
17918 (synopsis "Quickly create disposable yasnippets")
17919 (description "This package provides a hybrid of keyboard macros and
17920 yasnippet. You create the snippet on the go, usually to be used just in the
17921 one place. It's fast, because you're not leaving the current buffer, and all
17922 you do is enter the code you'd enter anyway, just placing ~ where you'd like
17923 yasnippet fields and mirrors to be.")
17924 (license license:gpl3+))))
17925
17926 (define-public emacs-highlight-numbers
17927 (package
17928 (name "emacs-highlight-numbers")
17929 (version "0.2.3")
17930 (source
17931 (origin
17932 (method git-fetch)
17933 (uri (git-reference
17934 (url "https://github.com/Fanael/highlight-numbers")
17935 (commit version)))
17936 (file-name (git-file-name name version))
17937 (sha256
17938 (base32 "1r07mpyr7rhd7bkg778hx6vbhb4n9ixgzkpszhgks7ri6ia38pj8"))))
17939 (build-system emacs-build-system)
17940 (propagated-inputs
17941 `(("emacs-parent-mode" ,emacs-parent-mode)))
17942 (home-page "https://github.com/Fanael/highlight-numbers")
17943 (synopsis "Highlight numbers in source code")
17944 (description "@code{highlight-numbers-mode} provides a minor mode for
17945 syntax highlighting of numeric literals in source code.
17946
17947 It s customizable: it's easy to add or redefine what exactly constitutes a
17948 \"number\" in given major mode. See @code{highlight-numbers-modelist}.")
17949 (license license:gpl3+)))
17950
17951 (define-public emacs-darkroom
17952 (package
17953 (name "emacs-darkroom")
17954 (version "0.3")
17955 (source
17956 (origin
17957 (method url-fetch)
17958 (uri (string-append "https://elpa.gnu.org/packages/"
17959 "darkroom-" version ".el"))
17960 (sha256
17961 (base32 "0l1xg5kqmjw22k78qnsln0ifx2dx74xxqj0qp8xxcpqvzzx0xh86"))))
17962 (build-system emacs-build-system)
17963 (home-page "https://elpa.gnu.org/packages/darkroom.html")
17964 (synopsis "Remove visual distractions and focus on writing")
17965 (description "@code{darkroom-mode} makes visual distractions disappear.
17966 The mode-line is temporarily elided, text is enlarged and margins are adjusted
17967 so that it's centered on the window.
17968
17969 @code{darkroom-tentative-mode} is similar, but it doesn't immediately turn-on
17970 @code{darkroom-mode}, unless the current buffer lives in the sole window of
17971 the Emacs frame (i.e. all other windows are deleted). Whenever the frame is
17972 split to display more windows and more buffers, the buffer exits
17973 @code{darkroom-mode}. Whenever they are deleted, the buffer re-enters
17974 @code{darkroom-mode}.")
17975 (license license:gpl3+)))
17976
17977 (define-public emacs-rsw-elisp
17978 (package
17979 (name "emacs-rsw-elisp")
17980 (version "1.0.5")
17981 (source (origin
17982 (method git-fetch)
17983 (uri (git-reference
17984 (url "https://github.com/rswgnu/rsw-elisp")
17985 (commit version)))
17986 (file-name (git-file-name name version))
17987 (sha256
17988 (base32
17989 "0dfq8myg0r91900bk1s70amsmm4mjk2qsg12v5pk7lla5d2vnyaf"))))
17990 (build-system emacs-build-system)
17991 (home-page "https://github.com/rswgnu/rsw-elisp")
17992 (synopsis "Improved expressions that interactively evaluate Emacs Lisp")
17993 (description "This package improves and replaces the GNU Emacs commands
17994 that interactively evaluate Emacs Lisp expressions. The new commands replace
17995 standard key bindings and are all prefixed with @code{rsw-elisp-}. They work
17996 the same way as the old commands when called non-interactively; only the
17997 interactive behavior should be different.")
17998 (license license:gpl3+)))
17999
18000 (define-public emacs-default-text-scale
18001 (package
18002 (name "emacs-default-text-scale")
18003 (version "0.2")
18004 (source (origin
18005 (method git-fetch)
18006 (uri (git-reference
18007 (url "https://github.com/purcell/default-text-scale")
18008 (commit version)))
18009 (file-name (git-file-name name version))
18010 (sha256
18011 (base32
18012 "0h42jiwxrxjmk7ccwh3h25n7dy2rq61ncm5wx27jhkncc5jdm4h6"))))
18013 (build-system emacs-build-system)
18014 (home-page "https://github.com/purcell/default-text-scale")
18015 (synopsis "Adjust the font size in all Emacs frames")
18016 (description "This package provides commands for increasing or
18017 decreasing the default font size in all GUI Emacs frames.")
18018 (license license:gpl3+)))
18019
18020 (define-public emacs-mixed-pitch
18021 (package
18022 (name "emacs-mixed-pitch")
18023 (version "1.1.1")
18024 (source
18025 (origin
18026 (method git-fetch)
18027 (uri (git-reference
18028 (url "https://gitlab.com/jabranham/mixed-pitch.git")
18029 (commit version)))
18030 (file-name (git-file-name name version))
18031 (sha256
18032 (base32 "1dhljrh44dsnixd8hbb11k6dgap8r8n7jknhfy2afdzq889fih74"))))
18033 (build-system emacs-build-system)
18034 (home-page "https://gitlab.com/jabranham/mixed-pitch")
18035 (synopsis "Mix variable- and fixed-pitch fonts in the same Emacs buffer")
18036 (description
18037 "@code{mixed-pitch-mode} is a minor mode that enables mixing
18038 variable-pitch and fixed-pitch fonts in the same buffer. The list
18039 @code{mixed-pitch-fixed-pitch-faces} defines the faces that are kept
18040 fixed-pitch,everything else becomes variable-pitch.")
18041 (license license:gpl3+)))
18042
18043 (define-public emacs-visual-regexp
18044 (package
18045 (name "emacs-visual-regexp")
18046 (version "1.1.2")
18047 (source
18048 (origin
18049 (method git-fetch)
18050 (uri (git-reference
18051 (url "https://github.com/benma/visual-regexp.el")
18052 (commit (string-append "v" version))))
18053 (file-name (git-file-name name version))
18054 (sha256
18055 (base32 "12p3rlhdphwmx1kxsjzcl2wj3i6qgpvw8iwhg1whs6yqgaxivixd"))))
18056 (build-system emacs-build-system)
18057 (home-page "https://github.com/benma/visual-regexp.el/")
18058 (synopsis "Regexp command with interactive visual feedback")
18059 (description "This package provides an Emacs regexp command with
18060 interactive visual feedback.")
18061 (license license:gpl3+)))
18062
18063 (define-public emacs-faceup
18064 (let ((commit "6c92dad56a133e14e7b27831e1bcf9b3a71ff154")
18065 (revision "1"))
18066 (package
18067 (name "emacs-faceup")
18068 (version (string-append "0.0.1" "-" revision "."
18069 (string-take commit 7)))
18070 (source
18071 (origin
18072 (method git-fetch)
18073 (uri (git-reference
18074 (url "https://github.com/Lindydancer/faceup")
18075 (commit commit)))
18076 (file-name (git-file-name name version))
18077 (sha256
18078 (base32
18079 "1yzmy7flrhrh0i10bdszx8idx6r8h6czm4vm4q0z6fp5fw94zwrx"))))
18080 (build-system emacs-build-system)
18081 (home-page "https://github.com/Lindydancer/faceup")
18082 (synopsis "Markup language for faces and font-lock regression testing")
18083 (description "Emacs is capable of highlighting buffers based on
18084 language-specific @code{font-lock} rules. This package makes it possible to
18085 perform regression test for packages that provide font-lock rules.")
18086 (license license:gpl3+))))
18087
18088 (define-public emacs-racket-mode
18089 (let ((commit "5eb31a284c8db5102bc71b1e2c6ce3a095ae085b")
18090 (revision "6"))
18091 (package
18092 (name "emacs-racket-mode")
18093 (version (git-version "0.0.2" revision commit))
18094 (source
18095 (origin
18096 (method git-fetch)
18097 (uri (git-reference
18098 (url "https://github.com/greghendershott/racket-mode")
18099 (commit commit)))
18100 (file-name (git-file-name name version))
18101 (sha256
18102 (base32
18103 "081h6rd0gv88m0wvnmghi242kl39x1sz34qr4cq9vz04iwvnmgrm"))))
18104 (build-system emacs-build-system)
18105 (arguments
18106 `(#:include '("\\.el$" "\\.rkt$")))
18107 (propagated-inputs
18108 `(("emacs-faceup" ,emacs-faceup)
18109 ("emacs-pos-tip" ,emacs-pos-tip)
18110 ("emacs-s" ,emacs-s)))
18111 (home-page "https://www.racket-mode.com/")
18112 (synopsis "Major mode for the Racket language")
18113 (description "@code{racket-mode} provides:
18114
18115 @itemize
18116 @item Focus on Racket (not various Schemes).
18117 @item Follow DrRacket concepts where applicable.
18118 @item Thorough font-lock and indent.
18119 @end itemize\n")
18120 (license license:gpl3+))))
18121
18122 (define-public emacs-grep-context
18123 (let ((commit "5a4e3efdf775755c1bbefcfe4b461c1166d81d7d")
18124 (revision "1"))
18125 (package
18126 (name "emacs-grep-context")
18127 (version (git-version "0.1.0" revision commit))
18128 (source
18129 (origin
18130 (method git-fetch)
18131 (uri (git-reference
18132 (url "https://github.com/mkcms/grep-context")
18133 (commit commit)))
18134 (file-name (git-file-name name version))
18135 (sha256
18136 (base32
18137 "00q7l4a3c0ay6g5ff9bfa2qgkiswsyh4s6pqnpg0zpzhvv5710f5"))))
18138 (build-system emacs-build-system)
18139 (propagated-inputs
18140 `(("emacs-dash" ,emacs-dash)))
18141 (home-page "https://github.com/mkcms/grep-context")
18142 (synopsis "Increase context in compilation and grep buffers")
18143 (description
18144 "This package provides an Emacs package for more context in
18145 compilation/grep buffers. Works with @code{wgrep}, @code{ack}, @code{ag},
18146 @code{ivy}.")
18147 (license license:gpl3+))))
18148
18149 (define-public emacs-helm-firefox
18150 (package
18151 (name "emacs-helm-firefox")
18152 (version "1.3")
18153 (source
18154 (origin
18155 (method git-fetch)
18156 (uri (git-reference
18157 (url "https://github.com/emacs-helm/helm-firefox")
18158 (commit (string-append "v" version))))
18159 (file-name (git-file-name name version))
18160 (sha256
18161 (base32
18162 "08mjsi2f9s29fkk35cj1rrparjnkm836qmbfdwdz7y51f9varjbs"))))
18163 (propagated-inputs
18164 `(("emacs-helm" ,emacs-helm)))
18165 (build-system emacs-build-system)
18166 (home-page "https://github.com/emacs-helm/helm-firefox")
18167 (synopsis "Display firefox bookmarks with Emacs Helm interface")
18168 (description "Display firefox bookmarks with Emacs Helm interface")
18169 (license license:gpl3+)))
18170
18171 (define-public emacs-interactive-align
18172 (package
18173 (name "emacs-interactive-align")
18174 (version "0.4.2")
18175 (source
18176 (origin
18177 (method git-fetch)
18178 (uri (git-reference
18179 (url "https://github.com/mkcms/interactive-align")
18180 (commit (string-append "v" version))))
18181 (file-name (git-file-name name version))
18182 (sha256
18183 (base32
18184 "0bh03w91i622hbar5dcq631ndxx1y8kd3h655pgw1g0lqkv1mlnc"))))
18185 (build-system emacs-build-system)
18186 (home-page "https://github.com/mkcms/interactive-align/")
18187 (synopsis "Interactive align-regexp command in Emacs")
18188 (description "Interactive align-regexp command in Emacs")
18189 (license license:gpl3+)))
18190
18191 (define-public emacs-shift-number
18192 (package
18193 (name "emacs-shift-number")
18194 (version "0.1")
18195 (source
18196 (origin
18197 (method git-fetch)
18198 (uri (git-reference
18199 (url "https://github.com/alezost/shift-number.el")
18200 (commit (string-append "v" version))))
18201 (file-name (git-file-name name version))
18202 (sha256
18203 (base32
18204 "0zlwmzsxkv4mkggylxfx2fkrwgz7dz3zbg2gkn2rxcpy2k2gla64"))))
18205 (build-system emacs-build-system)
18206 (home-page "https://github.com/alezost/shift-number.el")
18207 (synopsis "Increase or decrease the number at point")
18208 (description "@code{emacs-shift-number} provides commands
18209 @code{shift-number-up} to increase and @code{shift-number-down} to
18210 decrease the number at point.")
18211 (license license:gpl3+)))
18212
18213 (define-public emacs-highlight-defined
18214 (package
18215 (name "emacs-highlight-defined")
18216 (version "0.1.5")
18217 (source
18218 (origin
18219 (method git-fetch)
18220 (uri (git-reference
18221 (url "https://github.com/Fanael/highlight-defined")
18222 (commit version)))
18223 (file-name (git-file-name name version))
18224 (sha256
18225 (base32 "08czwa165rnd5z0dwwdddn7zi5w63sdk31l47bj0598kbly01n7r"))))
18226 (build-system emacs-build-system)
18227 (home-page "https://github.com/Fanael/highlight-defined")
18228 (synopsis "Syntax highlighting of known Elisp symbols")
18229 (description "Minor mode providing syntax highlighting of known Emacs Lisp
18230 symbols. Currently the code distinguishes Lisp functions, built-in functions,
18231 macros, faces and variables. To enable call @code{highlight-defined-mode}. ")
18232 (license license:gpl3+)))
18233
18234 (define-public emacs-parinfer-mode
18235 (package
18236 (name "emacs-parinfer-mode")
18237 (version "0.4.10")
18238 (source
18239 (origin
18240 (method git-fetch)
18241 (uri (git-reference
18242 (url "https://github.com/DogLooksGood/parinfer-mode")
18243 (commit (string-append "v" version))))
18244 (file-name (git-file-name name version))
18245 (sha256
18246 (base32 "0v97ncb0w1slb0x8861l3yr1kqz6fgw1fwl1z9lz6hh8p2ih34sk"))))
18247 (propagated-inputs
18248 `(("emacs-dash" ,emacs-dash)
18249 ("emacs-rainbow-delimiters" ,emacs-rainbow-delimiters)
18250 ("emacs-company" ,emacs-company)))
18251 (build-system emacs-build-system)
18252 (home-page "https://github.com/DogLooksGood/parinfer-mode/")
18253 (synopsis "Lisp structure editing mode")
18254 (description "@code{parinfer-mode} is a proof-of-concept editor
18255 mode for Lisp programming languages. It will infer some changes to
18256 keep Parens and Indentation inline with one another.")
18257 (license license:gpl3+)))
18258
18259 (define-public emacs-helm-eww
18260 (package
18261 (name "emacs-helm-eww")
18262 (version "1.2")
18263 (source (origin
18264 (method git-fetch)
18265 (uri (git-reference
18266 (url "https://github.com/emacs-helm/helm-eww")
18267 (commit version)))
18268 (file-name (git-file-name name version))
18269 (sha256
18270 (base32
18271 "0hpq1h0p69c9k6hkd2mjpprx213sc5475q7pr2zpmwrjdzgcv70z"))))
18272 (propagated-inputs
18273 `(("emacs-helm" ,emacs-helm)))
18274 (build-system emacs-build-system)
18275 (home-page "https://github.com/emacs-helm/helm-eww/")
18276 (synopsis "Helm interface to EWW")
18277 (description "This package provides a Helm interface for EWW buffers,
18278 bookmarks and history.")
18279 (license license:gpl3+)))
18280
18281 (define-public emacs-stumpwm-mode
18282 (let ((commit "920f8fc1488f7953f205e1dda4c2ecbbbda56d6")
18283 (revision "3"))
18284 (package
18285 (name "emacs-stumpwm-mode")
18286 (version (git-version "0.0.1" revision commit))
18287 (source (origin
18288 (method git-fetch)
18289 (uri (git-reference
18290 (url "https://github.com/stumpwm/stumpwm-contrib")
18291 (commit commit)))
18292 (file-name (git-file-name name version))
18293 (sha256
18294 (base32
18295 "0giac390bq95ag41xkxqp8jjrhfx1wpgglz7jg5rkm0wjhcwmyml"))))
18296 (build-system emacs-build-system)
18297 (arguments
18298 `(#:phases
18299 (modify-phases %standard-phases
18300 (add-after 'unpack 'chdir-elisp
18301 ;; Elisp directory is not in root of the source.
18302 (lambda _
18303 (chdir "util/swm-emacs"))))))
18304 (home-page "https://github.com/stumpwm/stumpwm-contrib")
18305 (synopsis "Emacs minor-mode for Stumpwm")
18306 (description "Emacs minor-mode for Stumpwm")
18307 (license license:gpl3+))))
18308
18309 (define-public emacs-irfc
18310 (package
18311 (name "emacs-irfc")
18312 (version "20130824.507-1")
18313 (source
18314 (origin
18315 (method url-fetch)
18316 (uri "https://www.emacswiki.org/emacs/download/irfc.el")
18317 (file-name (string-append "irfc-" version ".el"))
18318 (sha256
18319 (base32
18320 "0rbfrza56kvspvgrwg0b5bj30d0qncqdsmfxn3y5caq4ifcj77hv"))))
18321 (build-system emacs-build-system)
18322 (home-page "https://www.emacswiki.org/emacs/download/irfc.el")
18323 (synopsis "Interface for IETF RFC document")
18324 (description
18325 "This package provides an Emacs interface for IETF RFC document.")
18326 (license license:gpl3+)))
18327
18328 (define-public emacs-ido-at-point
18329 (package
18330 (name "emacs-ido-at-point")
18331 (version "1.0.0")
18332 (source
18333 (origin
18334 (method git-fetch)
18335 (uri (git-reference
18336 (url "https://github.com/katspaugh/ido-at-point")
18337 (commit (string-append "v" version))))
18338 (file-name (git-file-name name version))
18339 (sha256
18340 (base32 "1bii7vj8pmmijcpvq3a1scky4ais7k6d7zympb3m9dmz355m9rpp"))))
18341 (build-system emacs-build-system)
18342 (synopsis "Ido-style completion at point")
18343 (description
18344 "This package is an alternative frontend for @code{completion-at-point}.
18345 It replaces the standard completions buffer with Ido prompt.")
18346 (home-page "https://github.com/katspaugh/ido-at-point")
18347 (license license:gpl3+)))
18348
18349 (define-public emacs-ido-vertical-mode
18350 (package
18351 (name "emacs-ido-vertical-mode")
18352 (version "0.1.6")
18353 (source
18354 (origin
18355 (method git-fetch)
18356 (uri (git-reference
18357 (url "https://github.com/creichert/ido-vertical-mode.el")
18358 (commit (string-append "v" version))))
18359 (file-name (git-file-name name version))
18360 (sha256
18361 (base32 "1lv82q639xjnmvby56nwqn23ijh6f163bk675s33dkingm8csj8k"))))
18362 (build-system emacs-build-system)
18363 (home-page "https://github.com/creichert/ido-vertical-mode.el")
18364 (synopsis "Makes ido-mode display vertically")
18365 (description "Makes ido-mode display prospects vertically.")
18366 (license license:gpl3+)))
18367
18368 (define-public emacs-wordgen
18369 (package
18370 (name "emacs-wordgen")
18371 (version "0.1.4")
18372 (source
18373 (origin
18374 (method git-fetch)
18375 (uri (git-reference
18376 (url "https://github.com/Fanael/wordgen.el")
18377 (commit version)))
18378 (file-name (git-file-name name version))
18379 (sha256
18380 (base32 "06vbc9ycz1nbjwjkg99y3lj6jwb6lnwnmkqf09yr00jjrrfhfash"))))
18381 (build-system emacs-build-system)
18382 (home-page "https://github.com/Fanael/wordgen.el")
18383 (synopsis "Random word generator")
18384 (description "This package provides functions to generate random words
18385 using user-provided rules.")
18386 (license license:gpl3+)))
18387
18388 (define-public emacs-on-screen
18389 (package
18390 (name "emacs-on-screen")
18391 (version "1.3.3")
18392 (source
18393 (origin
18394 (method url-fetch)
18395 (uri (string-append
18396 "https://elpa.gnu.org/packages/on-screen-" version ".el"))
18397 (file-name (string-append name "-" version ".el"))
18398 (sha256
18399 (base32 "0ga4hw23ki583li2z2hr7l6hk1nc2kdg4afndg06cm9jn158wza7"))))
18400 (build-system emacs-build-system)
18401 (home-page "https://github.com/michael-heerdegen/on-screen.el")
18402 (synopsis "Guide your eyes while scrolling")
18403 (description
18404 "Scrolling can be distracting because your eyes may lose
18405 orientation. This library implements a minor mode that highlights
18406 the previously visible buffer part after each scroll.")
18407 (license license:gpl3+)))
18408
18409 (define-public emacs-highlight-escape-sequences
18410 ;; No release upstream. Extract version from main file.
18411 (let ((commit "08d846a7aa748209d65fecead2b6a766c3e5cb41")
18412 (revision "0"))
18413 (package
18414 (name "emacs-highlight-escape-sequences")
18415 (version (git-version "0.4" revision commit))
18416 (source
18417 (origin
18418 (method git-fetch)
18419 (uri (git-reference
18420 (url "https://github.com/dgutov/highlight-escape-sequences")
18421 (commit commit)))
18422 (file-name (git-file-name name version))
18423 (sha256
18424 (base32 "05mc3w1f8ykf80914a1yddw6j8cmh0h57llm07xh89s53821v2is"))))
18425 (build-system emacs-build-system)
18426 (home-page "https://github.com/dgutov/highlight-escape-sequences")
18427 (synopsis "Highlight escape sequences in Emacs")
18428 (description "@code{highlight-escape-sequences} provides an
18429 Emacs minor mode to escape sequences in code.")
18430 (license license:gpl3+))))
18431
18432 (define-public emacs-dashboard
18433 (package
18434 (name "emacs-dashboard")
18435 (version "1.7.0")
18436 (source
18437 (origin
18438 (method git-fetch)
18439 (uri (git-reference
18440 (url "https://github.com/rakanalh/emacs-dashboard")
18441 (commit version)))
18442 (file-name (git-file-name name version))
18443 (sha256
18444 (base32 "1qv4cqjy2s2d2bysbq10vq1axpbd8qc3jn1s1r81lxqkcja8zasa"))))
18445 (build-system emacs-build-system)
18446 (propagated-inputs
18447 `(("emacs-page-break-lines" ,emacs-page-break-lines)))
18448 (arguments
18449 '(#:include '("\\.el$" "\\.txt$" "\\.png$")
18450 #:phases
18451 (modify-phases %standard-phases
18452 (add-after 'unpack 'patch-dashboard-widgets
18453 ;; This phase fixes compilation error.
18454 (lambda _
18455 (chmod "dashboard-widgets.el" #o666)
18456 (emacs-substitute-variables "dashboard-widgets.el"
18457 ("dashboard-init-info"
18458 '(format "Loaded in %s" (emacs-init-time))))
18459 #t)))))
18460 (home-page "https://github.com/rakanalh/emacs-dashboard")
18461 (synopsis "Startup screen extracted from Spacemacs")
18462 (description "This package provides an extensible Emacs dashboard, with
18463 sections for bookmarks, projectil projects, org-agenda and more. ")
18464 (license license:gpl3+)))
18465
18466 (define-public emacs-slime-company
18467 (package
18468 (name "emacs-slime-company")
18469 (version "1.6")
18470 (source
18471 (origin
18472 (method git-fetch)
18473 (uri (git-reference
18474 (url "https://github.com/anwyn/slime-company")
18475 (commit (string-append "v" version))))
18476 (file-name (git-file-name name version))
18477 (sha256
18478 (base32 "05dnnc4ms5c9yp9h65k2gbkg3pw9k38nx5wzlwdlfr4shqmw54w0"))))
18479 (build-system emacs-build-system)
18480 (propagated-inputs
18481 `(("emacs-slime" ,emacs-slime)
18482 ("emacs-company" ,emacs-company)))
18483 (home-page "https://company-mode.github.io")
18484 (synopsis "SLIME completion backend for @code{company-mode}")
18485 (description
18486 "This is a backend implementation for the completion package
18487 @code{company-mode} which supports the normal and the fuzzy completion
18488 modes of SLIME.")
18489 (license license:gpl3+)))
18490
18491 (define-public emacs-sml-mode
18492 (package
18493 (name "emacs-sml-mode")
18494 (version "6.10")
18495 (source
18496 (origin
18497 (method url-fetch)
18498 (uri (string-append "https://elpa.gnu.org/packages/sml-mode-"
18499 version ".el"))
18500 (sha256
18501 (base32 "01yf0s474r9xhj6nbs14ljn9ccxb5yy758i17c8nmgmqvm8fx7sb"))))
18502 (build-system emacs-build-system)
18503 (home-page "https://elpa.gnu.org/packages/sml-mode.html")
18504 (synopsis "Major mode for editing (Standard) ML")
18505 (description "SML-MODE is a major Emacs mode for editing Standard ML.
18506 It provides syntax highlighting and automatic indentation and
18507 comes with sml-proc which allows interaction with an inferior SML
18508 interactive loop.")
18509 (license license:gpl3+)))
18510
18511 (define-public emacs-eros
18512 (let ((commit "dd8910279226259e100dab798b073a52f9b4233a")
18513 (revision "2"))
18514 (package
18515 (name "emacs-eros")
18516 (version (git-version "0.0.1" revision commit))
18517 (source
18518 (origin
18519 (method git-fetch)
18520 (uri (git-reference
18521 (url "https://github.com/xiongtx/eros")
18522 (commit commit)))
18523 (file-name (git-file-name name version))
18524 (sha256
18525 (base32
18526 "08chj3a0lw4ygi2sv7wj0i6ihfbi8jhylr8p92inif8b88r6wg3k"))))
18527 (build-system emacs-build-system)
18528 (home-page "https://github.com/xiongtx/eros")
18529 (synopsis "Evaluation result overlays")
18530 (description "@code{eros} provides evaluation result overlays.")
18531 (license license:gpl3+))))
18532
18533 (define-public emacs-stickyfunc-enhance
18534 (let ((commit "13bdba51fcd83ccbc3267959d23afc94d458dcb0")
18535 (revision "1"))
18536 (package
18537 (name "emacs-stickyfunc-enhance")
18538 (version "0.1")
18539 (source
18540 (origin
18541 (method git-fetch)
18542 (uri (git-reference
18543 (url "https://github.com/tuhdo/semantic-stickyfunc-enhance")
18544 (commit commit)))
18545 (file-name (git-file-name name version))
18546 (sha256
18547 (base32
18548 "16dxjsr5nj20blww4xpd4jzgjprzzh1nwvb810ggdmp9paf4iy0g"))))
18549 (build-system emacs-build-system)
18550 (home-page "https://github.com/tuhdo/semantic-stickyfunc-enhance")
18551 (synopsis "Enhancement to stock @code{semantic-stickyfunc-mode}")
18552 (description
18553 "@code{semantic-stickyfunc-mode} shows the function point is currently
18554 in at the first line of the current buffer. This is useful when you have a
18555 very long function that spreads more than a screen, and you don't have to
18556 scroll up to read the function name and then scroll down to original position.")
18557 (license license:gpl3+))))
18558
18559 (define-public emacs-git-auto-commit-mode
18560 (package
18561 (name "emacs-git-auto-commit-mode")
18562 (version "4.7.0")
18563 (source
18564 (origin
18565 (method git-fetch)
18566 (uri (git-reference
18567 (url "https://github.com/ryuslash/git-auto-commit-mode")
18568 (commit version)))
18569 (file-name (git-file-name name version))
18570 (sha256
18571 (base32 "0gpib57f7xza04g3iyihw5v15hb7pncqsmvyggib902yvcxlkvqf"))))
18572 (build-system emacs-build-system)
18573 (native-inputs
18574 `(("emacs-buttercup" ,emacs-buttercup)
18575 ("git" ,git)))
18576 (arguments
18577 `(#:tests? #t
18578 #:test-command '("buttercup" "-L" ".")))
18579 (home-page "https://github.com/ryuslash/git-auto-commit-mode")
18580 (synopsis "Emacs Minor mode to automatically commit and push")
18581 (description "@code{git-auto-commit-mode} is an Emacs minor mode that
18582 tries to commit changes to a file after every save.
18583
18584 When @code{gac-automatically-push-p} is non-nil, it also tries to push to the
18585 current upstream.")
18586 (license license:gpl3+)))
18587
18588 (define-public emacs-scroll-on-drag
18589 (let ((commit "888abd04c34753b1fc4b2fe541bc004ebec5c996")
18590 (revision "1"))
18591 (package
18592 (name "emacs-scroll-on-drag")
18593 (version (git-version "0.1" revision commit))
18594 (source
18595 (origin
18596 (method git-fetch)
18597 (uri (git-reference
18598 (url "https://gitlab.com/ideasman42/emacs-scroll-on-drag.git")
18599 (commit commit)))
18600 (file-name (git-file-name name version))
18601 (sha256
18602 (base32
18603 "1si4hdqa3jw1inbyh3wb3i5i9grbms1nwky3vyk9zg7iznwm8a9p"))))
18604 (build-system emacs-build-system)
18605 (home-page "https://gitlab.com/ideasman42/emacs-scroll-on-drag")
18606 (synopsis "Interactive scrolling")
18607 (description "This package permits scrolling at increasing speeds based
18608 on drag distance.")
18609 (license license:gpl3+))))
18610
18611 (define-public emacs-company-restclient
18612 (package
18613 (name "emacs-company-restclient")
18614 (version "0.3.0")
18615 (source
18616 (origin
18617 (method git-fetch)
18618 (uri (git-reference
18619 (url "https://github.com/iquiw/company-restclient")
18620 (commit (string-append "v" version))))
18621 (file-name (git-file-name name version))
18622 (sha256
18623 (base32 "0yp0hlrgcr6yy1xkjvfckys2k24x9xg7y6336ma61bdwn5lpv0x0"))))
18624 (build-system emacs-build-system)
18625 (propagated-inputs
18626 `(("emacs-company" ,emacs-company)
18627 ("emacs-know-your-http-well" ,emacs-know-your-http-well)
18628 ("emacs-restclient" ,emacs-restclient)))
18629 (home-page "https://github.com/iquiw/company-restclient")
18630 (synopsis "Company-mode completion back-end for restclient-mode")
18631 (description "@code{company-mode} back-end for
18632 @code{restclient-mode}.
18633
18634 It provides auto-completion for HTTP methods and headers in
18635 @code{restclient-mode}. Completion source is given by
18636 @code{know-your-http-well}.")
18637 (license license:gpl3+)))
18638
18639 (define-public emacs-noflet
18640 (let ((version "20170629")
18641 (revision "1")
18642 (commit "7ae84dc3257637af7334101456dafe1759c6b68a"))
18643 (package
18644 (name "emacs-noflet")
18645 (version (git-version version revision commit))
18646 (source
18647 (origin
18648 (method git-fetch)
18649 (uri (git-reference
18650 (url "https://github.com/nicferrier/emacs-noflet")
18651 (commit commit)))
18652 (file-name (git-file-name name version))
18653 (sha256
18654 (base32
18655 "0g70gnmfi8n24jzfci9nrj0n9bn1qig7b8f9f325rin8h7x32ypf"))))
18656 (build-system emacs-build-system)
18657 (arguments
18658 `(#:phases
18659 (modify-phases %standard-phases
18660 (add-after 'unpack 'require-dash
18661 ;; noflet.el uses -map from dash, but (require 'dash) is
18662 ;; missing. So, add it.
18663 (lambda _
18664 (substitute* "noflet.el"
18665 ((";;; Code:") ";;; Code:\n(require 'dash)"))
18666 #t)))))
18667 (propagated-inputs
18668 `(("emacs-dash" ,emacs-dash)))
18669 (home-page "https://github.com/nicferrier/emacs-noflet")
18670 (synopsis "Locally override functions")
18671 (description "@code{emacs-noflet} lets you locally override functions,
18672 in the manner of @command{flet}, but with access to the original function
18673 through the symbol: @command{this-fn}.")
18674 (license license:gpl3+))))
18675
18676 (define-public emacs-dumb-jump
18677 (package
18678 (name "emacs-dumb-jump")
18679 (version "0.5.3")
18680 (source
18681 (origin
18682 (method git-fetch)
18683 (uri (git-reference
18684 (url "https://github.com/jacktasia/dumb-jump")
18685 (commit (string-append "v" version))))
18686 (file-name (git-file-name name version))
18687 (sha256
18688 (base32 "1njf60264snhxrd36m4z687lqfkis0p9mmrr7cf1c8l0lfdvawxi"))))
18689 (build-system emacs-build-system)
18690 (arguments
18691 `(#:tests? #f ; FIXME: Tests freeze when run.
18692 #:test-command '("ert-runner")
18693 #:phases
18694 (modify-phases %standard-phases
18695 (add-after 'unpack 'set-shell
18696 (lambda _
18697 ;; Setting the SHELL environment variable is required for the
18698 ;; tests to find sh.
18699 (setenv "SHELL" (which "sh"))
18700 #t)))))
18701 (native-inputs
18702 `(("emacs-el-mock" ,emacs-el-mock)
18703 ("emacs-noflet" ,emacs-noflet)
18704 ("emacs-undercover" ,emacs-undercover)
18705 ("ert-runner" ,emacs-ert-runner)))
18706 (propagated-inputs
18707 `(("emacs-f" ,emacs-f)
18708 ("emacs-popup" ,emacs-popup)))
18709 (home-page "https://github.com/jacktasia/dumb-jump")
18710 (synopsis "Jump to definition for multiple languages without configuration")
18711 (description "Dumb Jump is an Emacs \"jump to definition\" package with
18712 support for multiple programming languages that favors \"just working\" over
18713 speed or accuracy. This means minimal --- and ideally zero --- configuration
18714 with absolutely no stored indexes (tags) or persistent background processes.
18715 Dumb Jump performs best with The Silver Searcher @command{ag} or ripgrep
18716 @command{rg} installed.")
18717 (license license:gpl3+)))
18718
18719 (define-public emacs-dts-mode
18720 (let ((commit "9ee0854446dcc6c53d2b8d2941051768dba50344")
18721 (revision "1"))
18722 (package
18723 (name "emacs-dts-mode")
18724 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
18725 (source
18726 (origin
18727 (method git-fetch)
18728 (uri (git-reference
18729 (url "https://github.com/bgamari/dts-mode")
18730 (commit commit)))
18731 (file-name (git-file-name name version))
18732 (sha256
18733 (base32
18734 "1k8lljdbc90nd29xrhdrsscxavzdq532wq2mg7ljc94krj7538b1"))))
18735 (build-system emacs-build-system)
18736 (home-page "https://github.com/bgamari/dts-mode")
18737 (synopsis "Emacs minor mode for editing device tree files")
18738 (description
18739 "This package provides an Emacs minor mode for highlighting
18740 device tree files.")
18741 (license license:gpl3+))))
18742
18743 (define-public emacs-daemons
18744 (package
18745 (name "emacs-daemons")
18746 (version "2.0.0")
18747 (source
18748 (origin
18749 (method git-fetch)
18750 (uri (git-reference
18751 (url "https://github.com/cbowdon/daemons.el")
18752 (commit version)))
18753 (file-name (git-file-name name version))
18754 (sha256
18755 (base32
18756 "00bkzfaw3bqykcks610vk9wlpa2z360xn32bpsrycacwfv29j7g4"))))
18757 (build-system emacs-build-system)
18758 (home-page "https://github.com/cbowdon/daemons.el")
18759 (synopsis "Emacs UI for managing init system services")
18760 (description
18761 "This is an Emacs mode to give you a UI for managing init system
18762 daemons (services) for those getting tired of typing out @code{sudo service
18763 my_thing reload} all the time. It offers a consistent UI over different init
18764 systems.")
18765 (license license:gpl3+)))
18766
18767 (define-public emacs-isearch+
18768 (let ((commit "7c251b91a67bf914066e23e269ba52fda5b45f5f")
18769 (revision "2"))
18770 (package
18771 (name "emacs-isearch+")
18772 (version (git-version "0" revision commit))
18773 (source
18774 (origin
18775 (method git-fetch)
18776 (uri (git-reference
18777 (url "https://github.com/emacsmirror/isearch-plus")
18778 (commit commit)))
18779 (file-name (git-file-name name version))
18780 (sha256
18781 (base32
18782 "1w2799714jcdycjlxgs8lpmmz6dmzvcvqy8xwxhvmgpb60g4f2yr"))))
18783 (build-system emacs-build-system)
18784 (home-page "https://www.emacswiki.org/emacs/isearch+.el")
18785 (synopsis "Extensions to @code{isearch.el}")
18786 (description "This package extends @code{isearch} with advice, dynamic
18787 filters, highlighting of regexp group levels, and more.")
18788 (license license:gpl2+))))
18789
18790 (define-public emacs-eshell-bookmark
18791 (package
18792 (name "emacs-eshell-bookmark")
18793 (version "2.0.0")
18794 (source
18795 (origin
18796 (method git-fetch)
18797 (uri (git-reference
18798 (url "https://github.com/Fuco1/eshell-bookmark")
18799 (commit version)))
18800 (file-name (git-file-name name version))
18801 (sha256
18802 (base32
18803 "14dmsnixf9vqdhsixw693sml0fn80zcf0b37z049fb40cmppqxdw"))))
18804 (build-system emacs-build-system)
18805 (home-page "https://github.com/Fuco1/eshell-bookmark")
18806 (synopsis "Provide @file{bookmark.el} integration for @code{eshell}")
18807 (description
18808 "This package allows for bookmarking @code{eshell} buffers. Upon
18809 visiting the bookmark, a new @code{eshell} session will be opened in the
18810 appropriate directory if no @code{eshell} session is active.")
18811 (license license:gpl3+)))
18812
18813 (define-public emacs-eshell-syntax-highlighting
18814 (package
18815 (name "emacs-eshell-syntax-highlighting")
18816 (version "0.3")
18817 (source
18818 (origin
18819 (method git-fetch)
18820 (uri (git-reference
18821 (url "https://github.com/akreisher/eshell-syntax-highlighting")
18822 (commit (string-append "v" version))))
18823 (file-name (git-file-name name version))
18824 (sha256
18825 (base32 "1fb9aa85a3hx1rcmv71j6sc3y278452p1y4dabpwy07avb6apd0p"))))
18826 (build-system emacs-build-system)
18827 (home-page "https://github.com/akreisher/eshell-syntax-highlighting")
18828 (synopsis "Add syntax highlighting to Eshell")
18829 (description
18830 "This package highlights user commands at the Eshell interactive prompt
18831 to provide feedback on the validity of commands and syntax.")
18832 (license license:gpl3+)))
18833
18834 (define-public emacs-eshell-z
18835 (package
18836 (name "emacs-eshell-z")
18837 (version "0.4")
18838 (source
18839 (origin
18840 (method git-fetch)
18841 (uri (git-reference
18842 (url "https://github.com/xuchunyang/eshell-z")
18843 (commit (string-append "v" version))))
18844 (file-name (git-file-name name version))
18845 (sha256
18846 (base32
18847 "13dwaq8q23rwmrkpy3gvf7aswrkk6b9ak5221xl7n0bld4wdhq3j"))))
18848 (build-system emacs-build-system)
18849 (home-page "https://github.com/xuchunyang/eshell-z")
18850 (synopsis "Quick navigation to frequently visited directories")
18851 (description
18852 "This package is a port of @code{z}, and keeps track of visited directories
18853 and commands invoked within them in order to enable navigation via input of
18854 matching regexps.")
18855 (license license:gpl3+)))
18856
18857 (define-public emacs-esh-autosuggest
18858 (package
18859 (name "emacs-esh-autosuggest")
18860 (version "2.0.1")
18861 (source
18862 (origin
18863 (method git-fetch)
18864 (uri (git-reference
18865 (url "https://github.com/dieggsy/esh-autosuggest")
18866 (commit version)))
18867 (file-name (git-file-name name version))
18868 (sha256
18869 (base32
18870 "0l2nnlr3b6df1xn0qjf5d5ryy1wcs1jczyfy795vsasd5gm3g0xh"))))
18871 (build-system emacs-build-system)
18872 (propagated-inputs `(("emacs-company" ,emacs-company)))
18873 (home-page "https://github.com/dieggsy/esh-autosuggest")
18874 (synopsis "Fish-like autosuggestions in Eshell")
18875 (description
18876 "This package assumes you use something other than company for eshell
18877 completion (e.g. @code{eshell-pcomplete}, @code{completion-at-point},
18878 @code{helm-esh-pcomplete}). @code{company-mode} is used solely as a mechanism
18879 for history autosuggestions.
18880
18881 Unless you're using @code{use-package}'s hook keyword, you can enable the
18882 autosuggestions with:
18883 @code{(add-hook 'eshell-mode-hook #'esh-autosuggest-mode)}")
18884 (license license:gpl3+)))
18885
18886 (define-public emacs-desktop-environment
18887 (package
18888 (name "emacs-desktop-environment")
18889 (version "0.4.0")
18890 (source
18891 (origin
18892 (method git-fetch)
18893 (uri (git-reference
18894 (url "https://gitlab.petton.fr/DamienCassou/desktop-environment")
18895 (commit (string-append "v" version))))
18896 (file-name (git-file-name name version))
18897 (sha256
18898 (base32
18899 "0s33jncjg8c2xlr90qjk1ishwmwxm9yg0z6n3kzilawcilpxidsh"))))
18900 (build-system emacs-build-system)
18901 (home-page "https://gitlab.petton.fr/DamienCassou/desktop-environment")
18902 (synopsis "Control your GNU/Linux desktop environment from Emacs")
18903 (description
18904 "This package helps you control your GNU/Linux desktop from Emacs.
18905 With @code{desktop-environment}, you can control the brightness and volume as
18906 well as take screenshots and lock your screen. The package depends on the
18907 availability of shell commands to do the hard work for us. These commands can
18908 be changed by customizing the appropriate variables.")
18909 (license license:gpl3+)))
18910
18911 (define-public emacs-org-caldav
18912 (let ((commit "8569941a0a5a9393ba51afc8923fd7b77b73fa7a")
18913 (revision "2"))
18914 (package
18915 (name "emacs-org-caldav")
18916 (version (git-version "0.0.0" revision commit))
18917 (source
18918 (origin
18919 (method git-fetch)
18920 (uri (git-reference
18921 (url "https://github.com/dengste/org-caldav")
18922 (commit commit)))
18923 (file-name (git-file-name name version))
18924 (sha256
18925 (base32 "05lgxqaffnqaqnzl24frafdkskran88hl2ml05qvyjhs4jjbgw9g"))))
18926 (build-system emacs-build-system)
18927 (arguments
18928 ;; Tests require to have two specific calendars on a test server.
18929 `(#:exclude '("^org-caldav-testsuite\\.el")))
18930 (propagated-inputs
18931 `(("emacs-org" ,emacs-org)))
18932 (home-page "https://github.com/dengste/org-caldav")
18933 (synopsis "Sync Org files with external calendars via the CalDAV protocol")
18934 (description
18935 "Org CalDAV synchronizes events between Org files and a CalDAV
18936 calendar.")
18937 (license license:gpl3+))))
18938
18939 (define-public emacs-zotxt
18940 (package
18941 (name "emacs-zotxt")
18942 (version "5.0.5")
18943 (source
18944 (origin
18945 (method git-fetch)
18946 (uri (git-reference
18947 (url "https://github.com/egh/zotxt-emacs")
18948 (commit (string-append "v" version))))
18949 (file-name (git-file-name name version))
18950 (sha256
18951 (base32 "1zr67h0w49rsi84mgf6jdili28h8782q6vjl8za0iq1hcx9zqxyf"))))
18952 (build-system emacs-build-system)
18953 (propagated-inputs
18954 `(("emacs-deferred" ,emacs-deferred)
18955 ("emacs-request" ,emacs-request)))
18956 (home-page "https://github.com/egh/zotxt-emacs")
18957 (synopsis "Integrate Emacs with Zotero")
18958 (description "This package provides two integration features between Emacs
18959 and the Zotero research assistant: Insertion of links to Zotero items into an
18960 Org-mode file, and citations of Zotero items in Pandoc Markdown files.")
18961 (license license:gpl3+)))
18962
18963 (define-public emacs-evil-magit
18964 (let ((commit "253c644807013fe92429acdef418748794b8f254")
18965 (revision "4"))
18966 (package
18967 (name "emacs-evil-magit")
18968 (version (git-version "0.4.2" revision commit))
18969 (source
18970 (origin
18971 (method git-fetch)
18972 (uri (git-reference
18973 (url "https://github.com/emacs-evil/evil-magit")
18974 (commit commit)))
18975 (file-name (git-file-name name version))
18976 (sha256
18977 (base32
18978 "08mh7phxsdb9w4dfs0pmr4l4fdzzr2rm88z2s8karfi5j5ik2ag5"))))
18979 (build-system emacs-build-system)
18980 (propagated-inputs
18981 `(("emacs-evil" ,emacs-evil)
18982 ("magit" ,emacs-magit)))
18983 (arguments
18984 `(#:tests? #t
18985 #:test-command '("emacs" "-Q" "-batch"
18986 "-L" "."
18987 "-l" "evil-magit-tests"
18988 "-f" "ert-run-tests-batch-and-exit")))
18989 (home-page
18990 "https://github.com/emacs-evil/evil-magit")
18991 (synopsis "Evil-based key bindings for Magit")
18992 (description
18993 "This Emacs library configures Magit and Evil to play well with each other.
18994 For some background see @url{https://github.com/magit/evil-magit/issues/1}.
18995 See the README at @url{https://github.com/justbur/evil-magit} for a table
18996 describing the key binding changes.")
18997 (license license:gpl3+))))
18998
18999 (define-public emacs-evil-multiedit
19000 (package
19001 (name "emacs-evil-multiedit")
19002 (version "1.3.9")
19003 (source
19004 (origin
19005 (method git-fetch)
19006 (uri (git-reference
19007 (url "https://github.com/hlissner/evil-multiedit")
19008 (commit (string-append "v" version))))
19009 (file-name (git-file-name name version))
19010 (sha256
19011 (base32
19012 "19h3kqylqzbjv4297wkzzxdmn9yxbg6z4ga4ssrqri90xs7m3rw3"))))
19013 (build-system emacs-build-system)
19014 (propagated-inputs
19015 `(("emacs-evil" ,emacs-evil)
19016 ("emacs-iedit" ,emacs-iedit)))
19017 (native-inputs
19018 `(("emacs-ert-runner" ,emacs-ert-runner)))
19019 (arguments
19020 `(#:phases
19021 (modify-phases %standard-phases
19022 (add-before 'check 'fix-makefile
19023 (lambda _
19024 (substitute* "Makefile"
19025 (("@cask exec ") ""))
19026 #t)))
19027 #:tests? #t
19028 #:test-command '("make" "test")))
19029 (home-page
19030 "https://github.com/hlissner/evil-multiedit")
19031 (synopsis "Multiple cursors for Evil mode")
19032 (description
19033 "This plugin was an answer to the lack of proper multiple cursor support
19034 in Emacs+Evil. It allows you to select and edit matches interactively,
19035 integrating @code{iedit-mode} into Evil mode with an attempt at sensible
19036 defaults.")
19037 (license license:gpl3+)))
19038
19039 (define-public emacs-evil-mc
19040 (let ((commit "1cabb869fe70cef49f7dc06f015c3ade1a969c8c")
19041 (revision "2"))
19042 (package
19043 (name "emacs-evil-mc")
19044 (version (git-version "0.0.3" revision commit))
19045 (source
19046 (origin
19047 (method git-fetch)
19048 (uri (git-reference
19049 (url "https://github.com/gabesoft/evil-mc")
19050 (commit commit)))
19051 (file-name (git-file-name name version))
19052 (sha256
19053 (base32 "0p83p90faq1p02lmsfs7zrnky3cyzgy8z4m83a81r9kakjzhkrnb"))))
19054 (build-system emacs-build-system)
19055 (propagated-inputs
19056 `(("emacs-evil" ,emacs-evil)))
19057 (native-inputs
19058 `(("emacs-espuds" ,emacs-espuds)))
19059 (home-page "https://github.com/gabesoft/evil-mc")
19060 (synopsis "Interactive search compatible with @code{multiple-cursors}")
19061 (description "This package can be used with @code{multiple-cursors} to
19062 provide an incremental search that moves all fake cursors in sync.")
19063 (license license:expat))))
19064
19065 (define-public emacs-evil-org
19066 (let ((commit "9d4be14118bf27094a30dbff349b815f098aacbf"))
19067 (package
19068 (name "emacs-evil-org")
19069 (version (git-version "1.0.2" "1" commit))
19070 (source
19071 (origin
19072 (method git-fetch)
19073 (uri (git-reference
19074 (url "https://github.com/Somelauw/evil-org-mode")
19075 (commit commit)))
19076 (file-name (git-file-name name version))
19077 (sha256
19078 (base32
19079 "1fxxfkinb0gq4p5b686r7z4jrkv98zfgh5z889zkjacncv8ibswn"))))
19080 (build-system emacs-build-system)
19081 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
19082 (home-page
19083 "https://github.com/Somelauw/evil-org-mode")
19084 (synopsis "Evil keybindings for Org mode")
19085 (description
19086 "This package adds supplemental Evil mode key-bindings to Emacs
19087 Org-mode. It features:
19088 @itemize
19089 @item normal, visual and insert mode bindings;
19090 @item key bindings organised in key themes;
19091 @item operators like > and < to work on headings;
19092 @item text objects;
19093 @item table support;
19094 @item calendar (date selection) support;
19095 @item agenda support.
19096 @end itemize\n")
19097 (license license:gpl3+))))
19098
19099 (define-public emacs-debpaste
19100 (package
19101 (name "emacs-debpaste")
19102 (version "0.1.5")
19103 (home-page "https://github.com/alezost/debpaste.el")
19104 (source
19105 (origin
19106 (method git-fetch)
19107 (uri (git-reference (url home-page)
19108 (commit (string-append "v" version))))
19109 (file-name (git-file-name name version))
19110 (sha256
19111 (base32
19112 "1wi70r56pd5z0x4dp4m58p9asq03j74kdm4fi9vai83vsl2z9amq"))))
19113 (build-system emacs-build-system)
19114 (propagated-inputs
19115 `(("emacs-xml-rpc" ,emacs-xml-rpc)))
19116 (synopsis "Manipulate pastes from the Debian Pastezone")
19117 (description "Debpaste is an Emacs interface for the Debian Pastezone,
19118 allowing you to receive, post, and delete pastes. It communicates with the
19119 server using XML-RPC.")
19120 (license license:gpl3+)))
19121
19122 (define-public emacs-xml-rpc
19123 (package
19124 (name "emacs-xml-rpc")
19125 (version "1.6.15")
19126 (source
19127 (origin
19128 (method git-fetch)
19129 (uri (git-reference
19130 (url "https://github.com/hexmode/xml-rpc-el")
19131 (commit version)))
19132 (file-name (git-file-name name version))
19133 (sha256
19134 (base32 "07vgwnk96i1vpsv2glg6kbkamjcs72xiznsa6xk7nl0nranzr3hd"))))
19135 (build-system emacs-build-system)
19136 (home-page "https://github.com/hexmode/xml-rpc-el")
19137 (synopsis "XML-RPC client for Emacs")
19138 (description "This package provides an XML-RPC client for Emacs capable
19139 of both synchronous and asynchronous method calls using the @code{url}
19140 package's async retrieval functionality. @file{xml-rpc.el} represents XML-RPC
19141 datatypes as Lisp values, automatically converting to and from the XML
19142 datastructures as needed, both for method parameters and return values, making
19143 using XML-RPC methods fairly transparent to the Lisp code.")
19144 (license license:gpl3+)))
19145
19146 (define-public emacs-xpm
19147 (package
19148 (name "emacs-xpm")
19149 (version "1.0.4")
19150 (source
19151 (origin
19152 (method url-fetch)
19153 (uri (string-append "https://elpa.gnu.org/packages/xpm-"
19154 version ".tar"))
19155 (sha256
19156 (base32
19157 "075miyashh9cm3b0gk6ngld3rm8bfgnh4qxnhxmmvjgzf6a64grh"))))
19158 (build-system emacs-build-system)
19159 (home-page "https://elpa.gnu.org/packages/xpm.html")
19160 (synopsis "XPM image editing mode for Emacs")
19161 (description "This Emacs package makes editing XPM images easy (and maybe
19162 fun). Editing is done directly on the (textual) image format, for maximal
19163 cohesion with the Emacs Way.")
19164 (license license:gpl3+)))
19165
19166 (define-public emacs-fish-completion
19167 (package
19168 (name "emacs-fish-completion")
19169 (version "1.2")
19170 (source
19171 (origin
19172 (method git-fetch)
19173 (uri (git-reference
19174 (url "https://gitlab.com/Ambrevar/emacs-fish-completion.git")
19175 (commit version)))
19176 (file-name (git-file-name name version))
19177 (sha256
19178 (base32
19179 "17lqip1i1rrsvxzz4bx9rqf1fvwd3hriwg3sj6qxmfc8pylnp37q"))))
19180 (build-system emacs-build-system)
19181 (inputs `(("fish" ,fish)))
19182 (arguments
19183 `(#:phases
19184 (modify-phases %standard-phases
19185 (add-after 'unpack 'configure
19186 (lambda* (#:key inputs outputs #:allow-other-keys)
19187 (let ((fish (assoc-ref inputs "fish")))
19188 ;; Specify the absolute file names of the various
19189 ;; programs so that everything works out-of-the-box.
19190 (make-file-writable "fish-completion.el")
19191 (emacs-substitute-variables
19192 "fish-completion.el"
19193 ("fish-completion-command"
19194 (string-append fish "/bin/fish")))))))))
19195 (home-page
19196 "https://gitlab.com/Ambrevar/emacs-fish-completion")
19197 (synopsis "Fish completion for Emacs pcomplete")
19198 (description
19199 "This package provides completion for the Fish shell to pcomplete (used
19200 by shell and Eshell). You can set it up globally with:
19201
19202 @example
19203 (when (and (executable-find \"fish\")
19204 (require 'fish-completion nil t))
19205 (global-fish-completion-mode))
19206 @end example
19207
19208 Alternatively, you can call the @code{fish-completion-mode} manually or in
19209 shell/Eshell mode hook.
19210
19211 The package @code{emacs-bash-completion} is an optional dependency: if available,
19212 @code{fish-completion-complete} can be configured to fall back on bash to further
19213 try completing. See @code{fish-completion-fallback-on-bash-p}.")
19214 (license license:gpl3+)))
19215
19216 (define-public emacs-gif-screencast
19217 (package
19218 (name "emacs-gif-screencast")
19219 (version "1.1")
19220 (source
19221 (origin
19222 (method git-fetch)
19223 (uri (git-reference
19224 (url "https://gitlab.com/Ambrevar/emacs-gif-screencast.git")
19225 (commit version)))
19226 (file-name (git-file-name name version))
19227 (sha256
19228 (base32
19229 "1g1by8lvf8c9vzm4wwsi5kp285kaj0ahsl54048ympin4pi0njw9"))))
19230 (build-system emacs-build-system)
19231 (inputs
19232 `(("scrot" ,scrot)
19233 ("imagemagick" ,imagemagick)
19234 ("gifsicle" ,gifsicle)))
19235 (arguments
19236 `(#:phases
19237 (modify-phases %standard-phases
19238 (add-after 'unpack 'configure
19239 (lambda* (#:key inputs outputs #:allow-other-keys)
19240 (let ((scrot (assoc-ref inputs "scrot"))
19241 (imagemagick (assoc-ref inputs "imagemagick"))
19242 (gifsicle (assoc-ref inputs "gifsicle")))
19243 (make-file-writable "gif-screencast.el")
19244 ;; Specify the absolute file names of the various
19245 ;; programs so that everything works out-of-the-box.
19246 (emacs-substitute-variables
19247 "gif-screencast.el"
19248 ("gif-screencast-program"
19249 (string-append scrot "/bin/scrot"))
19250 ("gif-screencast-convert-program"
19251 (string-append imagemagick "/bin/convert"))
19252 ("gif-screencast-cropping-program"
19253 (string-append imagemagick "/bin/mogrify"))
19254 ("gif-screencast-optimize-program"
19255 (string-append gifsicle "/bin/gifsicle")))))))))
19256 (home-page
19257 "https://gitlab.com/Ambrevar/emacs-gif-screencast")
19258 (synopsis "One-frame-per-action GIF recording")
19259 (description
19260 "Call @code{gif-screencast} to start a recording.
19261 A screenshot is taken for every user action. Call
19262 @code{gif-screencast-stop} (<f9> by default) to finish recording and create
19263 the GIF result.")
19264 (license license:gpl3+)))
19265
19266 (define-public emacs-google-translate
19267 (package
19268 (name "emacs-google-translate")
19269 (version "0.12.0")
19270 (source
19271 (origin
19272 (method git-fetch)
19273 (uri (git-reference
19274 (url "https://github.com/atykhonov/google-translate/")
19275 (commit (string-append "v" version))))
19276 (file-name (git-file-name name version))
19277 (sha256
19278 (base32
19279 "0rwpij2bm8d4jq2w5snkp88mfryplw8166dsrjm407n2p6xr48zx"))))
19280 (build-system emacs-build-system)
19281 (home-page "https://github.com/atykhonov/google-translate")
19282 (synopsis "Emacs interface to Google Translate")
19283 (description
19284 "This package provides an Emacs interface to the Google Translate
19285 on-line service.")
19286 (license license:gpl3+)))
19287
19288 (define-public emacs-helm-company
19289 (package
19290 (name "emacs-helm-company")
19291 (version "0.2.5")
19292 (source
19293 (origin
19294 (method git-fetch)
19295 (uri (git-reference
19296 (url "https://github.com/Sodel-the-Vociferous/helm-company")
19297 (commit (string-append "v" version))))
19298 (file-name (git-file-name name version))
19299 (sha256
19300 (base32
19301 "1ci37w6ahnqrfpb284gjvxmimlf61sdxb9k192yy9q983cksv2hx"))))
19302 (build-system emacs-build-system)
19303 (propagated-inputs
19304 `(("emacs-helm" ,emacs-helm)
19305 ("emacs-company" ,emacs-company)))
19306 (native-inputs
19307 `(("emacs-ert-runner" ,emacs-ert-runner)))
19308 (arguments
19309 `(#:tests? #t
19310 #:test-command '("ert-runner")))
19311 (home-page "https://github.com/Sodel-the-Vociferous/helm-company")
19312 (synopsis "Helm interface for company-mode")
19313 (description
19314 "This is a Helm interface to company-mode, a text completion
19315 framework.")
19316 (license license:gpl3+)))
19317
19318 (define-public emacs-helm-descbinds
19319 (let ((commit "033be73f21778633813264ce1634a6e1ad873d8e"))
19320 (package
19321 (name "emacs-helm-descbinds")
19322 (version (git-version "1.13" "1" commit))
19323 (source
19324 (origin
19325 (method git-fetch)
19326 (uri (git-reference
19327 (url "https://github.com/emacs-helm/helm-descbinds")
19328 (commit commit)))
19329 (file-name (git-file-name name version))
19330 (sha256
19331 (base32
19332 "1n89p56qwa243w1c85i5awnaf7piwjsvfi7nmnsrwm33hix5dknk"))))
19333 (build-system emacs-build-system)
19334 (propagated-inputs `(("emacs-helm" ,emacs-helm)))
19335 (home-page "https://github.com/emacs-helm/helm-descbinds")
19336 (synopsis "Convenient @code{describe-bindings} with Helm")
19337 (description
19338 "This package is a replacement of @code{describe-bindings} for Helm.
19339 @code{describe-bindings} is replaced with @code{helm-descbinds}. As usual,
19340 type @code{C-h b}, or any incomplete key sequence plus @code{C-h}, to run
19341 @code{helm-descbinds}. The bindings are presented in a similar way as
19342 @code{describe-bindings} does, but you can use completion to find the command
19343 you searched for and execute it, or view its documentation.")
19344 (license license:gpl3+))))
19345
19346 (define-public emacs-helm-emms
19347 (let ((commit "37e5aa029abfa5a5c48636314de8157142944fa2"))
19348 (package
19349 (name "emacs-helm-emms")
19350 (version (git-version "1.3" "3" commit))
19351 (source
19352 (origin
19353 (method git-fetch)
19354 (uri (git-reference
19355 (url "https://github.com/emacs-helm/helm-emms")
19356 (commit commit)))
19357 (file-name (git-file-name name version))
19358 (sha256
19359 (base32
19360 "0r1ai6xhzayyik30w2sx9n62bxxwm12vfmjspv0daqif9az8y3vg"))))
19361 (build-system emacs-build-system)
19362 (propagated-inputs
19363 `(("emacs-helm" ,emacs-helm)
19364 ("emacs-emms" ,emacs-emms)))
19365 (home-page
19366 "https://github.com/emacs-helm/helm-emms")
19367 (synopsis "Emms for Helm")
19368 (description "Helm interface for Emms to browse all tracks and all folders
19369 from @code{emms-source-file-default-directory}.")
19370 (license license:gpl3+))))
19371
19372 (define-public emacs-helm-exwm
19373 (package
19374 (name "emacs-helm-exwm")
19375 (version "0.0.2")
19376 (source
19377 (origin
19378 (method git-fetch)
19379 (uri (git-reference
19380 (url "https://github.com/emacs-helm/helm-exwm")
19381 (commit version)))
19382 (file-name (git-file-name name version))
19383 (sha256
19384 (base32 "0g4k01ps14bp2az8v6dcag9llg045k2b4kdis81xx4lvw76znr9v"))))
19385 (build-system emacs-build-system)
19386 (propagated-inputs
19387 `(("emacs-helm" ,emacs-helm)
19388 ("emacs-exwm" ,emacs-exwm)))
19389 (home-page
19390 "https://github.com/emacs-helm/helm-exwm")
19391 (synopsis "Helm for EXWM buffers")
19392 (description
19393 "@code{helm-exwm} runs a Helm session over the list of EXWM buffers.
19394 @code{helm-exwm-switch} is a convenience X application launcher using Helm to
19395 switch between the various windows of one or several specific applications.
19396 See @code{helm-exwm-switch-browser} for an example.")
19397 (license license:gpl3+)))
19398
19399 (define-public emacs-helm-flycheck
19400 (let ((commit "3cf7d3bb194acacc6395f88360588013d92675d6"))
19401 (package
19402 (name "emacs-helm-flycheck")
19403 (version (git-version "0.4" "1" commit))
19404 (source
19405 (origin
19406 (method git-fetch)
19407 (uri (git-reference
19408 (url "https://github.com/yasuyk/helm-flycheck")
19409 (commit commit)))
19410 (file-name (git-file-name name version))
19411 (sha256
19412 (base32
19413 "1a2yfxhz04klwhcandqvfzysxp6b7bxyxx1xk1x3kds5hif5fkl4"))))
19414 (build-system emacs-build-system)
19415 (propagated-inputs
19416 `(("emacs-dash" ,emacs-dash)
19417 ("emacs-flycheck" ,emacs-flycheck)
19418 ("emacs-helm" ,emacs-helm)))
19419 (home-page "https://github.com/yasuyk/helm-flycheck")
19420 (synopsis "Show Flycheck errors with Helm")
19421 (description
19422 "This integrates Flycheck with Helm.")
19423 (license license:gpl3+))))
19424
19425 (define-public emacs-helm-ls-git
19426 (let ((commit "4da1a53f2f0a078ee2e896a914a1b19c0bf1d5ed"))
19427 (package
19428 (name "emacs-helm-ls-git")
19429 (version (git-version "1.9.1" "2" commit))
19430 (source
19431 (origin
19432 (method git-fetch)
19433 (uri (git-reference
19434 (url "https://github.com/emacs-helm/helm-ls-git")
19435 (commit commit)))
19436 (file-name (git-file-name name version))
19437 (sha256
19438 (base32
19439 "12fi08w20yjsdfkxl1pk9q4w0z9l92va5fa5ghay9w33xlymc8dc"))))
19440 (build-system emacs-build-system)
19441 (propagated-inputs `(("emacs-helm" ,emacs-helm)))
19442 (home-page "https://github.com/emacs-helm/helm-ls-git")
19443 (synopsis "Helm interface for listing the files in a Git repository")
19444 (description
19445 "This package provides a Helm interface for Git files.
19446 @itemize
19447 @item Display the open buffers in project.
19448 @item Display a status source showing state of project (modified files etc.).
19449 @item Display a list of all files in project under git control.
19450 @item Quickly look at diffs of modified files.
19451 @item Allow switching to @code{git status} with your preferred frontend
19452 (vc-dir, Magit,etc.).
19453 @item Full integration of git-grep, also allow usage of @code{helm-grep} (you
19454 can use ack-grep instead of grep).
19455 @item Integrate usage of gid from id-utils.
19456 @item Full integration with @code{helm-find-files}, allow you to browse
19457 projects unrelated to current-buffer.
19458 @item In addition, all actions of type files and buffers are provided.
19459 @end itemize\n")
19460 (license license:gpl3+))))
19461
19462 (define-public emacs-helm-mu
19463 (let ((commit "77e6fea24e01481418738421dbcfe28ef1bd63cf"))
19464 (package
19465 (name "emacs-helm-mu")
19466 (version (git-version "20180513" "1" commit))
19467 (source
19468 (origin
19469 (method git-fetch)
19470 (uri (git-reference
19471 (url "https://github.com/emacs-helm/helm-mu")
19472 (commit commit)))
19473 (file-name (git-file-name name version))
19474 (sha256
19475 (base32 "1lh0ahxdc5b2z18m9p30gwg8sbg33sjwkjr38p7h5xsm5fm7i0fz"))))
19476 (build-system emacs-build-system)
19477 (propagated-inputs
19478 `(("emacs-helm" ,emacs-helm)
19479 ("mu" ,mu)))
19480 (home-page
19481 "https://github.com/emacs-helm/helm-mu")
19482 (synopsis
19483 "Helm sources for searching emails and contacts")
19484 (description
19485 "Helm sources for searching emails and contacts using @code{mu} and
19486 @code{mu4e}. Mu is an indexer for maildirs and mu4e is a mutt-like MUA for
19487 Emacs build on top of mu. Mu is highly efficient making it possible to get
19488 instant results even for huge maildirs. It also provides search operators,
19489 e.g: @code{from:Peter to:Anne flag:attach search term}.")
19490 (license license:gpl3+))))
19491
19492 (define-public emacs-helm-pass
19493 (package
19494 (name "emacs-helm-pass")
19495 (version "0.4")
19496 (source
19497 (origin
19498 (method git-fetch)
19499 (uri (git-reference
19500 (url "https://github.com/emacs-helm/helm-pass")
19501 (commit version)))
19502 (file-name (git-file-name name version))
19503 (sha256
19504 (base32
19505 "19w24isddzamkikq17vbv3y7ha22i7wc09d2nqw1j0qwhrrfkng9"))))
19506 (build-system emacs-build-system)
19507 (propagated-inputs
19508 `(("emacs-helm" ,emacs-helm)
19509 ("emacs-password-store" ,emacs-password-store)))
19510 (home-page "https://github.com/emacs-helm/helm-pass")
19511 (synopsis "Helm interface to pass, the standard Unix password manager")
19512 (description
19513 "Users of @code{helm-pass} may also be interested in functionality
19514 provided by other Emacs packages dealing with pass:
19515 @itemize
19516 @item @code{emacs-password-store}, which @code{helm-pass} relies on.
19517 @item @code{emacs-pass}, a major mode for @code{pass}.
19518 @item @code{auth-source-pass.el}: integration of Emacs' auth-source with
19519 @code{pass}, included in Emacs 26+).
19520 @end itemize\n")
19521 (license license:gpl3+)))
19522
19523 (define-public emacs-image+
19524 (let ((commit "6834d0c09bb4df9ecc0d7a559bd7827fed48fffc"))
19525 (package
19526 (name "emacs-image+")
19527 (version (git-version "0.6.2" "1" commit))
19528 (source
19529 (origin
19530 (method git-fetch)
19531 (uri (git-reference
19532 (url "https://github.com/mhayashi1120/Emacs-imagex")
19533 (commit commit)))
19534 (file-name (git-file-name name version))
19535 (sha256
19536 (base32
19537 "0v66wk9nh0raih4jhrzmmyi5lbysjnmbv791vm2230ffi2hmwxnd"))))
19538 (build-system emacs-build-system)
19539 (inputs `(("imagemagick" ,imagemagick)))
19540 (arguments
19541 `(#:phases
19542 (modify-phases %standard-phases
19543 (add-after 'unpack 'configure
19544 (lambda* (#:key inputs outputs #:allow-other-keys)
19545 (let ((imagemagick (assoc-ref inputs "imagemagick")))
19546 ;; Specify the absolute file names of the various
19547 ;; programs so that everything works out-of-the-box.
19548 (chmod "image+.el" #o666)
19549 (emacs-substitute-variables
19550 "image+.el"
19551 ("imagex-convert-command"
19552 (string-append imagemagick "/bin/convert"))
19553 ("imagex-identify-command"
19554 (string-append imagemagick "/bin/identify")))))))))
19555 (home-page "https://github.com/mhayashi1120/Emacs-imagex")
19556 (synopsis "Image manipulation extensions for Emacs")
19557 (description
19558 "Image+ provides keybindings allowing you to zoom in or zoom out of an
19559 image, rotate it, save modified images, and more.")
19560 (license license:gpl3+))))
19561
19562 (define-public emacs-package-lint
19563 ;; The commit below includes a fix for a missing file, "stdlib-changes",
19564 ;; preventing build.
19565 (let ((commit "14c216f4889e71eec2a9da64e36ab8990337e82d")
19566 (version "0.13")
19567 (revision "0"))
19568 (package
19569 (name "emacs-package-lint")
19570 (version (git-version version revision commit))
19571 (source
19572 (origin
19573 (method git-fetch)
19574 (uri (git-reference
19575 (url "https://github.com/purcell/package-lint")
19576 (commit commit)))
19577 (file-name (git-file-name name version))
19578 (sha256
19579 (base32
19580 "1zifiqmpj9j14fnrm3jxapady25m1nlm514nfry0jfrhhikvj6i8"))))
19581 (arguments
19582 '(#:include (cons "^data/" %default-include)))
19583 (build-system emacs-build-system)
19584 (home-page "https://github.com/purcell/package-lint")
19585 (synopsis "Linting library for elisp package authors")
19586 (description
19587 "This provides a list of issues with the Emacs package metadata of a file,
19588 e.g. the package dependencies it requires. See function
19589 @code{package-lint-buffer}. Checks will currently be enabled only if a
19590 \"Package-Requires:\" or \"Package-Version:\" header is present in the
19591 file.")
19592 (license license:gpl3+))))
19593
19594 (define-public emacs-picpocket
19595 (let ((version "40")
19596 (commit "6fd88b8711c4370662c0f9c462170187d092a046"))
19597 (package
19598 (name "emacs-picpocket")
19599 (version version)
19600 (source
19601 (origin
19602 (method git-fetch)
19603 (uri (git-reference
19604 (url "https://github.com/johanclaesson/picpocket")
19605 (commit commit)))
19606 (file-name (git-file-name name version))
19607 (sha256
19608 (base32 "1mdzzxf7xm7zwrpnqqxa27d1cr31pd72d7ilbwljv13qp177a3yw"))))
19609 (build-system emacs-build-system)
19610 (arguments ; needed for running tests
19611 `(#:tests? #t
19612 #:emacs ,emacs
19613 #:test-command '("emacs" "--batch"
19614 "-l" "picpocket-test.el"
19615 "-f" "ert-run-tests-batch-and-exit")))
19616 (home-page "https://github.com/johanclaesson/picpocket")
19617 (synopsis "Image viewer for Emacs")
19618 (description
19619 "Picpocket is an image viewer for GNU Emacs. It has commands for:
19620
19621 @itemize
19622 @item File operations on the picture files (delete, move, copy, hardlink).
19623 @item Scale and rotate the picture.
19624 @item Associate pictures with tags which are saved to disk.
19625 @item Filter pictures according to tags.
19626 @item Customizing keystrokes for quick tagging and file operations.
19627 @item Undo and browse history of undoable commands.
19628 @end itemize")
19629 (license license:gpl3+))))
19630
19631 (define-public emacs-mu4e-conversation
19632 (let ((commit "98110bb9c300fc9866dee8e0023355f9f79c9b96")
19633 (revision "5"))
19634 (package
19635 (name "emacs-mu4e-conversation")
19636 (version (git-version "0.0.1" revision commit))
19637 (source
19638 (origin
19639 (method git-fetch)
19640 (uri (git-reference
19641 (url "https://gitlab.com/Ambrevar/mu4e-conversation.git")
19642 (commit commit)))
19643 (file-name (git-file-name name version))
19644 (sha256
19645 (base32
19646 "080s96jkcw2p288sp1vgds91rgl693iz6hi2dv56p2ih0nnivwlg"))))
19647 (build-system emacs-build-system)
19648 (propagated-inputs
19649 `(("mu" ,mu)))
19650 (home-page
19651 "https://gitlab.com/Ambrevar/mu4e-conversation")
19652 (synopsis
19653 "Show a complete thread in a single buffer")
19654 (description
19655 "This package offers an alternate view to mu4e's e-mail display. It
19656 shows all e-mails of a thread in a single view, where each correspondent has
19657 their own face. Threads can be displayed linearly (in which case e-mails are
19658 displayed in chronological order) or as an Org document where the node tree
19659 maps the thread tree.")
19660 (license license:gpl3+))))
19661
19662 (define-public emacs-pinentry
19663 (let ((commit "dcc9ba03252ee5d39e03bba31b420e0708c3ba0c")
19664 (revision "1"))
19665 (package
19666 (name "emacs-pinentry")
19667 (version (git-version "0.1" revision commit))
19668 (source
19669 (origin
19670 (method url-fetch)
19671 (uri (string-append
19672 "http://git.savannah.gnu.org/cgit/emacs/elpa.git/plain"
19673 "/packages/pinentry/pinentry.el?id=" commit))
19674 (file-name (string-append "pinentry.el"))
19675 (sha256
19676 (base32
19677 "1lf30q6r8nz5cjzclbb9bbymsk2y75nskvb55hnjdv93gr3j0sik"))))
19678 (build-system emacs-build-system)
19679 (propagated-inputs
19680 `(("gnupg" ,gnupg)))
19681 (home-page "https://elpa.gnu.org/packages/pinentry.html")
19682 (synopsis "GnuPG Pinentry server implementation")
19683 (description
19684 "This package allows GnuPG passphrase to be prompted through the
19685 minibuffer instead of graphical dialog.
19686
19687 To use, add @code{allow-emacs-pinentry} to @code{~/.gnupg/gpg-agent.conf},
19688 reload the configuration with @code{gpgconf --reload gpg-agent}, and start the
19689 server with @code{M-x pinentry-start}.")
19690 (license license:gpl3+))))
19691
19692 (define-public emacs-so-long
19693 (let ((commit "cfae473b1bf65f78ddb015159e667ec0103d881c")
19694 (revision "2"))
19695 (package
19696 (name "emacs-so-long")
19697 (version (git-version "1.0" revision commit))
19698 (source
19699 (origin
19700 (method git-fetch)
19701 (uri (git-reference
19702 (url "https://git.savannah.gnu.org/git/so-long.git")
19703 (commit commit)))
19704 (file-name (git-file-name name version))
19705 (sha256
19706 (base32
19707 "0g943n5cl9lz5s7hszg6yvp10xd1xvd8mfgxyg0yckmp8fqkswin"))))
19708 (build-system emacs-build-system)
19709 (home-page "https://www.emacswiki.org/emacs/SoLong")
19710 (synopsis "Improve performance in files with long lines")
19711 (description "This package improves the performance of Emacs when
19712 viewing files with long lines. It is included as standard with Emacs 27 or
19713 later.")
19714 (license license:gpl3+))))
19715
19716 (define-public emacs-github-review
19717 (let ((commit "a13a3b4f1b6114a32af843971a145ab880f51232")
19718 (revision "2"))
19719 (package
19720 (name "emacs-github-review")
19721 (version (git-version "0.1" revision commit))
19722 (source
19723 (origin
19724 (method git-fetch)
19725 (uri (git-reference
19726 (url "https://github.com/charignon/github-review")
19727 (commit commit)))
19728 (file-name (git-file-name name version))
19729 (sha256
19730 (base32
19731 "0injfpxzgfhmqalba845j5l5cdcxxqz43knhxwinf36g52nfabl0"))))
19732 (build-system emacs-build-system)
19733 (inputs
19734 `(("emacs-dash" ,emacs-dash)
19735 ("emacs-s" ,emacs-s)
19736 ("emacs-ghub" ,emacs-ghub)))
19737 (native-inputs
19738 `(("emacs-buttercup" ,emacs-buttercup)
19739 ("emacs-undercover" ,emacs-undercover)))
19740 (arguments
19741 `(#:tests? #t
19742 #:test-command '("buttercup" "-L" "test/github-review-test.el")))
19743 (home-page "https://github.com/charignon/github-review")
19744 (synopsis "Review GitHub pull requests within Emacs")
19745 (description "This package provides commands to pull in, comment on, and
19746 accept and reject GitHub pull requests.")
19747 (license license:gpl3+))))
19748
19749 (define-public emacs-deadgrep
19750 (let ((commit "7e50e71c6ff4e17dded43e0836dae4e5ec020fcf")
19751 (revision "1"))
19752 (package
19753 (name "emacs-deadgrep")
19754 (version (git-version "0.10" revision commit))
19755 (source
19756 (origin
19757 (method git-fetch)
19758 (uri (git-reference
19759 (url "https://github.com/Wilfred/deadgrep")
19760 (commit commit)))
19761 (file-name (git-file-name name version))
19762 (sha256
19763 (base32
19764 "1vjhrq02l8gvdn2haygzq7277hnhjchs9xrfpcnh76gqip200gx4"))))
19765 (build-system emacs-build-system)
19766 (propagated-inputs
19767 `(("emacs-dash" ,emacs-dash)
19768 ("emacs-s" ,emacs-s)
19769 ("emacs-spinner" ,emacs-spinner)))
19770 (home-page "https://github.com/Wilfred/deadgrep")
19771 (synopsis "Frontend for @code{ripgrep}")
19772 (description "This package provides an Emacs interface for performing
19773 searches with @code{ripgrep}.")
19774 (license license:gpl3+))))
19775
19776 (define-public emacs-focus
19777 (let ((commit "5f3f20e7f22fb9fd7c48abce8bd38061d97e4bc0")
19778 (version "1.0.0")
19779 (revision "1"))
19780 (package
19781 (name "emacs-focus")
19782 (version (git-version version revision commit))
19783 (source
19784 (origin
19785 (method git-fetch)
19786 (uri (git-reference
19787 (url "https://github.com/larstvei/Focus")
19788 (commit commit)))
19789 (file-name (git-file-name name version))
19790 (sha256
19791 (base32
19792 "0a55i4bychfnnzjg67a9h4j130hchcg44446dwwx1l1h48i692dw"))))
19793 (build-system emacs-build-system)
19794 (home-page "https://github.com/larstvei/Focus")
19795 (synopsis "Minor mode for focusing in on relevant text")
19796 (description "This package provides a minor mode that dims the color of
19797 text in neighboring sections.")
19798 (license license:gpl3+))))
19799
19800 (define-public emacs-pandoc-mode
19801 (package
19802 (name "emacs-pandoc-mode")
19803 (version "2.30.1")
19804 (source
19805 (origin
19806 (method git-fetch)
19807 (uri (git-reference
19808 (url "https://github.com/joostkremers/pandoc-mode")
19809 (commit version)))
19810 (file-name (git-file-name name version))
19811 (sha256
19812 (base32
19813 "1k31pkvd9m798i6phcr0y3wd34fgq6ii41hx3lszmikvxb1yvm2y"))))
19814 (build-system emacs-build-system)
19815 (propagated-inputs
19816 `(("emacs-dash" ,emacs-dash)
19817 ("emacs-hydra" ,emacs-hydra)))
19818 (home-page "https://github.com/joostkremers/pandoc-mode")
19819 (synopsis "Minor mode for interacting with Pandoc")
19820 (description "This package provides a Hydra menu for interacting with the
19821 Pandoc, the document-conversion tool.")
19822 (license license:bsd-3)))
19823
19824 (define-public emacs-hlint-refactor-mode
19825 (let ((commit "c4307f86aad6d02e32e9b30cb6edc115584c791c")
19826 (revision "1"))
19827 (package
19828 (name "emacs-hlint-refactor-mode")
19829 (version (git-version "0.0.1" revision commit))
19830 (source
19831 (origin
19832 (method git-fetch)
19833 (uri (git-reference
19834 (url "https://github.com/mpickering/hlint-refactor-mode")
19835 (commit commit)))
19836 (file-name (git-file-name name version))
19837 (sha256
19838 (base32
19839 "1c71w9s34n0i7mm4njchxn6s3ri1y6mh3akgbg4nq41d42h8iap3"))))
19840 (build-system emacs-build-system)
19841 (propagated-inputs
19842 `(("apply-refact" ,apply-refact)
19843 ("hlint" ,hlint)))
19844 (home-page "https://github.com/mpickering/hlint-refactor-mode")
19845 (synopsis "Emacs bindings for @code{hlint}'s @code{--refactor} option")
19846 (description "This package applies refactoring suggestions from
19847 @code{hlint}.")
19848 (license license:expat))))
19849
19850 (define-public emacs-ccls
19851 (let ((commit "675a5704c14a27931e835a431beea3631d92e8e6")
19852 (revision "5"))
19853 (package
19854 (name "emacs-ccls")
19855 (version (git-version "0.1" revision commit))
19856 (source
19857 (origin
19858 (method git-fetch)
19859 (uri (git-reference
19860 (url "https://github.com/MaskRay/emacs-ccls")
19861 (commit commit)))
19862 (file-name (git-file-name name version))
19863 (sha256
19864 (base32
19865 "0l4bhyr9d8ljz1f0cfg1s2cjcmh6fiwbk5mdlvc7rrwz5hxc21is"))))
19866 (build-system emacs-build-system)
19867 (propagated-inputs
19868 `(("ccls" ,ccls)
19869 ("emacs-dash" ,emacs-dash)
19870 ("emacs-lsp-mode" ,emacs-lsp-mode)))
19871 (home-page "https://github.com/MaskRay/emacs-ccls")
19872 (synopsis "Emacs support for the @code{ccls} language server")
19873 (description "This package extends @code{lsp-mode} to work with @code{C}
19874 and @code{C++} files through the @code{ccls} language server.")
19875 (license license:expat))))
19876
19877 (define-public emacs-org-brain
19878 (package
19879 (name "emacs-org-brain")
19880 (version "0.5")
19881 (source
19882 (origin
19883 (method git-fetch)
19884 (uri (git-reference
19885 (url "https://github.com/Kungsgeten/org-brain")
19886 (commit "3faf9303af3f2356e3444e69c22dc6c5774047d1")))
19887 (file-name (git-file-name name version))
19888 (sha256
19889 (base32
19890 "1ad681zk6kckw2zbk0r4iaj4bw8cfqrbd1s3gdwgdjlzq81q9mmj"))))
19891 (build-system emacs-build-system)
19892 (home-page "https://github.com/Kungsgeten/org-brain")
19893 (synopsis "Org-mode wiki and concept-mapping for Emacs")
19894 (description "@code{emacs-org-brain} implements a variant of concept
19895 mapping in Emacs, using @code{org-mode}. An org-brain is a network of
19896 org-mode entries, where each entry is a file or a headline, and you can get a
19897 visual overview of the relationships between the entries: parents, children,
19898 siblings and friends. This visual overview can also be used to browse your
19899 entries. You can think of entries as nodes in a mind map, or pages in a
19900 wiki.")
19901 (license license:expat)))
19902
19903 (define-public emacs-recent-addresses
19904 (let ((commit "afbbfdc43b81e620acf827ca20d297e0c517b6eb")
19905 (revision "1"))
19906 (package
19907 (name "emacs-recent-addresses")
19908 (home-page "https://nschum.de/src/emacs/recent-addresses/")
19909 (version (git-version "0.1" revision commit))
19910 (source (origin
19911 (method git-fetch)
19912 (uri (git-reference
19913 ;; Note: Use a branch that works with Helm. Submitted
19914 ;; at <https://github.com/nschum/recent-addresses.el/pull/1>.
19915 (url "https://github.com/civodul/recent-addresses.el")
19916 (commit commit)))
19917 (sha256
19918 (base32
19919 "0ajrq0galjmdyjdjyxazykjyax3gh6hvfk4s7l657pi11g0q5zax"))
19920 (file-name (git-file-name name version))))
19921 (build-system emacs-build-system)
19922 (synopsis "Record recently-used email addressed and auto-complete them")
19923 (description
19924 "@code{recent-addresses} is an Emacs package that allows you to quickly
19925 look up previously used email addresses. It can be used alongside the Gnus
19926 email client.")
19927 (license license:gpl2+))))
19928
19929 (define-public emacs-fold-dwim
19930 (let ((commit "c46f4bb2ce91b4e307136320e72c28dd50b6cd8b")
19931 (revision "0"))
19932 (package
19933 (name "emacs-fold-dwim")
19934 (version (git-version "1.2" revision commit))
19935 (home-page "https://github.com/emacsattic/fold-dwim")
19936 (source (origin
19937 (method git-fetch)
19938 (uri (git-reference (url home-page) (commit commit)))
19939 (sha256
19940 (base32
19941 "1yz1wis31asw6xa5maliyd1ck2q02xnnh7dc6swgj9cb4wi7k6i1"))
19942 (file-name (git-file-name name version))))
19943 (build-system emacs-build-system)
19944 (synopsis "Unified user interface for Emacs folding modes")
19945 (description
19946 "DWIM stands for \"do what I mean\", as in the idea that one keystroke
19947 can do different things depending on the context. In this package, it means
19948 that, if the cursor is in a currently hidden folded construction, we want to
19949 show it; if it's not, we want to hide whatever fold the cursor is in.")
19950 (license license:gpl2+))))
19951
19952 (define-public emacs-markup-faces
19953 (package
19954 (name "emacs-markup-faces")
19955 (version "1.0.0")
19956 (source
19957 (origin
19958 (method url-fetch)
19959 (uri (string-append "https://stable.melpa.org/packages/markup-faces-"
19960 version ".el"))
19961 (sha256
19962 (base32
19963 "124dxbaa25fwxnpwsygpz7pw6da6dnnw7y2lic3jf8rgz7lw4v32"))))
19964 (build-system emacs-build-system)
19965 (home-page "https://github.com/sensorflo/markup-faces")
19966 (synopsis "Collection of Emacs faces for markup language modes")
19967 (description "emacs-markup-faces is like font-lock-faces, but tailored for
19968 markup languages instead programming languages. The sub group markup-faces-text
19969 is also intended for 'text viewing modes' such as info or (wo)man. This gives a
19970 common look and feel, or let's say theme, across different markup language modes
19971 and 'text viewing modes' respectively.")
19972 (license license:gpl3+)))
19973
19974 (define-public emacs-adoc-mode
19975 (package
19976 (name "emacs-adoc-mode")
19977 (version "0.6.6")
19978 (source
19979 (origin
19980 (method git-fetch)
19981 (uri (git-reference
19982 (url "https://github.com/sensorflo/adoc-mode")
19983 (commit (string-append "V" version))))
19984 (file-name (git-file-name name version))
19985 (sha256
19986 (base32
19987 "0kp2aafjhqxz3mjr9hkkss85r4n51chws5a2qj1xzb63dh36liwm"))))
19988 (build-system emacs-build-system)
19989 (arguments
19990 `(#:phases
19991 (modify-phases %standard-phases
19992 ;; See: https://github.com/sensorflo/adoc-mode/issues/39.
19993 (add-after 'unpack 'disable-failing-tests
19994 (lambda _
19995 (let-syntax
19996 ((disable-tests
19997 (syntax-rules ()
19998 ((_ file ())
19999 (syntax-error "test names list must not be empty"))
20000 ((_ file (test-name ...))
20001 (substitute* file
20002 (((string-append "^\\(ert-deftest " test-name ".*") all)
20003 (string-append all "(skip-unless nil)\n")) ...)))))
20004 (disable-tests "adoc-mode-test.el"
20005 ("adoctest-test-tempo-delimited-blocks"
20006 "adoctest-test-tempo-macros"
20007 "adoctest-test-tempo-paragraphs"
20008 "adoctest-test-tempo-passthroug-macros"
20009 "adoctest-test-tempo-quotes")))
20010 #t)))
20011 #:tests? #t
20012 #:test-command '("emacs" "-Q" "-batch"
20013 "-l" "adoc-mode-test.el"
20014 "-f" "ert-run-tests-batch-and-exit")))
20015 (propagated-inputs
20016 `(("emacs-markup-faces" ,emacs-markup-faces)))
20017 (home-page "https://github.com/sensorflo/adoc-mode/wiki")
20018 (synopsis "AsciiDoc mode for Emacs")
20019 (description "This package provides an Emacs major mode for editing AsciiDoc
20020 files. It focuses on highlighting the document to improve readability.")
20021 (license license:gpl2+)))
20022
20023 (define-public emacs-racer
20024 (package
20025 (name "emacs-racer")
20026 (version "1.2")
20027 (source
20028 (origin
20029 (method git-fetch)
20030 (uri
20031 (git-reference
20032 (url "https://github.com/racer-rust/emacs-racer")
20033 (commit version)))
20034 (file-name (git-file-name name version))
20035 (sha256
20036 (base32 "0xj5iki10cg8j8vvqjlw6lfx97k3agwirhchcjnzbnkry48x9qi6"))))
20037 (arguments
20038 `(#:tests? #t
20039 #:test-command '("make" "test")
20040 #:phases
20041 (modify-phases %standard-phases
20042 (add-before 'check 'fix-makefile
20043 (lambda _
20044 (substitute* "Makefile"
20045 (("\\$\\{CASK\\} exec ") ""))
20046 #t))
20047 ;; Two tests are failing with Emacs 27, as reported here:
20048 ;; <https://github.com/racer-rust/emacs-racer/issues/136>. Disable
20049 ;; them.
20050 (add-before 'check 'fix-failing-tests
20051 (lambda _
20052 (substitute* "test/racer-test.el"
20053 (("`Write`") "Write")
20054 (("^\\\\\\[`str\\]:.*") "")
20055 ((" \\[`str`\\]") " str"))
20056 #t)))))
20057 (native-inputs
20058 `(("emacs-ert-runner" ,emacs-ert-runner)
20059 ("emacs-undercover" ,emacs-undercover)))
20060 (propagated-inputs
20061 `(("emacs-dash" ,emacs-dash)
20062 ("emacs-f" ,emacs-f)
20063 ("emacs-pos-tip" ,emacs-pos-tip)
20064 ("emacs-rust-mode" ,emacs-rust-mode)
20065 ("emacs-s" ,emacs-s)))
20066 (build-system emacs-build-system)
20067 (home-page "https://github.com/racer-rust/emacs-racer")
20068 (synopsis "Racer support for Emacs")
20069 (description
20070 "This is the official Emacs package for Racer. It supports code
20071 completion of variables, functions and modules. It can also jump to
20072 definition of functions and types, and show a help buffer based on the
20073 docstring of the thing at point.")
20074 (license license:expat)))
20075
20076 (define-public emacs-rust-mode
20077 (package
20078 (name "emacs-rust-mode")
20079 (version "0.5.0")
20080 (source (origin
20081 (method git-fetch)
20082 (uri (git-reference
20083 (url "https://github.com/rust-lang/rust-mode")
20084 (commit version)))
20085 (file-name (git-file-name name version))
20086 (sha256
20087 (base32
20088 "1f3nnl0d7p9b5cv1bpm0hj898qmr2psxfvmqr61bh684z7fgc045"))))
20089 (build-system emacs-build-system)
20090 (arguments
20091 `(#:phases
20092 (modify-phases %standard-phases
20093 (replace 'check
20094 (lambda _
20095 (invoke "sh" "run_rust_emacs_tests.sh"))))))
20096 (home-page "https://github.com/rust-lang/rust-mode")
20097 (synopsis "Major Emacs mode for editing Rust source code")
20098 (description "This package provides a major Emacs mode for editing Rust
20099 source code.")
20100 (license (list license:expat
20101 license:asl2.0))))
20102
20103 (define-public emacs-ztree
20104 (let ((commit "6eee81d2691009ce60b2edf7c298b227caf1b0d6"))
20105 (package
20106 (name "emacs-ztree")
20107 (version (git-version "1.0.5" "2" commit))
20108 (source
20109 (origin
20110 (method git-fetch)
20111 (uri (git-reference
20112 (url "https://github.com/fourier/ztree")
20113 (commit commit)))
20114 (file-name (git-file-name name version))
20115 (sha256
20116 (base32
20117 "1xmimjflylssx63g1kpd5n34gdlpivgg9ih8nwplad57bxiy2yqb"))))
20118 (build-system emacs-build-system)
20119 (home-page "https://github.com/fourier/ztree")
20120 (synopsis "Directory tree comparison mode for Emacs")
20121 (description "Ztree is a project dedicated to implementation of several
20122 text-tree applications inside GNU Emacs. It consists of 2 subprojects:
20123 @command{ztree-diff} and @command{ztree-dir} (the basis of
20124 @command{ztree-diff}).")
20125 (license license:gpl3))))
20126
20127 (define-public emacs-helm-org-contacts
20128 (let ((commit "e7f11615802df55bb8b679450b5a5ef82a9081f9"))
20129 (package
20130 (name "emacs-helm-org-contacts")
20131 (version (git-version "20200310" "1" commit))
20132 (source
20133 (origin
20134 (method git-fetch)
20135 (uri (git-reference
20136 (url "https://github.com/tmalsburg/helm-org-contacts")
20137 (commit commit)))
20138 (file-name (git-file-name name version))
20139 (sha256
20140 (base32
20141 "06a1gbrq3qcfsn0kyv4i24x1xxfrrwqa3kgfj4xa4va88q2vqyb5"))))
20142 (build-system emacs-build-system)
20143 (propagated-inputs
20144 `(("emacs-dash" ,emacs-dash)
20145 ("emacs-helm" ,emacs-helm)
20146 ("emacs-s" ,emacs-s)))
20147 (home-page "https://github.com/tmalsburg/helm-org-contacts")
20148 (synopsis "Helm source for org-contacts")
20149 (description "This Helm source can be used to search contacts stored in
20150 org-contacts format. There are actions for inserting postal addresses, email
20151 addresses, and phone numbers in the buffer where @command{helm-org-contacts}
20152 was called.")
20153 (license license:gpl3))))
20154
20155 (define-public emacs-dired-du
20156 (package
20157 (name "emacs-dired-du")
20158 (version "0.5.2")
20159 (source
20160 (origin
20161 (method url-fetch)
20162 (uri (string-append
20163 "https://elpa.gnu.org/packages/dired-du-" version ".tar"))
20164 (sha256
20165 (base32 "0vhph7vcicsiq28b10h3b4dvnhckcy4gccpdgsad5j7pwa5k26m1"))))
20166 (build-system emacs-build-system)
20167 (home-page "https://elpa.gnu.org/packages/dired-du.html")
20168 (synopsis "Dired with recursive directory sizes")
20169 (description
20170 "Display the recursive size of directories in Dired.
20171 This file defines a minor mode @command{dired-du-mode} to show the recursive
20172 size of directories in Dired buffers. If @command{du} program is available,
20173 then the directory sizes are obtained with it. Otherwise, the directory sizes
20174 are obtained with Lisp. The former is faster and provide a more precise
20175 value. For directories where the user doesn't have read permission, the
20176 recursive size is not obtained. Once this mode is enabled, every new Dired
20177 buffer displays recursive dir sizes.")
20178 (license license:gpl3+)))
20179
20180 (define-public emacs-dired-rsync
20181 (package
20182 (name "emacs-dired-rsync")
20183 (version "0.6")
20184 (source (origin
20185 (method git-fetch)
20186 (uri (git-reference
20187 (url "https://github.com/stsquad/dired-rsync")
20188 (commit version)))
20189 (file-name (git-file-name name version))
20190 (sha256
20191 (base32
20192 "19za6i96xrmczdh928n5ixd7j7pvy175sz1msaiwvdjwysjr8k51"))))
20193 (build-system emacs-build-system)
20194 (propagated-inputs
20195 `(("emacs-s" ,emacs-s)
20196 ("emacs-dash" ,emacs-dash)))
20197 (home-page "https://github.com/stsquad/dired-rsync/")
20198 (synopsis "Support for rsync from Emacs dired buffers")
20199 (description "This package adds a single command @code{dired-rsync} which
20200 allows the user to copy marked files in a dired buffer via @code{rsync}. This
20201 is useful, especially for large files, because the copy happens in the
20202 background and doesn’t lock up Emacs. It is also more efficient than using
20203 tramps own encoding methods for moving data between systems.")
20204 (license license:gpl3+)))
20205
20206 (define-public emacs-pcre2el
20207 ;; Last release is very old so we get the latest commit.
20208 (let ((commit "0b5b2a2c173aab3fd14aac6cf5e90ad3bf58fa7d"))
20209 (package
20210 (name "emacs-pcre2el")
20211 (version (git-version "1.8" "1" commit))
20212 (source
20213 (origin
20214 (method git-fetch)
20215 (uri (git-reference
20216 (url "https://github.com/joddie/pcre2el")
20217 (commit commit)))
20218 (file-name (git-file-name name version))
20219 (sha256
20220 (base32
20221 "14br6ad138qx1z822wqssswqiihxiynz1k69p6mcdisr2q8yyi1z"))))
20222 (build-system emacs-build-system)
20223 (home-page "https://github.com/joddie/pcre2el")
20224 (synopsis "Convert between PCRE, Emacs and rx regexp syntax")
20225 (description "@code{pcre2el} or @code{rxt} (RegeXp Translator or RegeXp
20226 Tools) is a utility for working with regular expressions in Emacs, based on a
20227 recursive-descent parser for regexp syntax. In addition to converting (a
20228 subset of) PCRE syntax into its Emacs equivalent, it can do the following:
20229
20230 @itemize
20231 @item convert Emacs syntax to PCRE
20232 @item convert either syntax to @code{rx}, an S-expression based regexp syntax
20233 @item untangle complex regexps by showing the parse tree in @code{rx} form and
20234 highlighting the corresponding chunks of code
20235 @item show the complete list of strings (productions) matching a regexp,
20236 provided the list is finite
20237 @item provide live font-locking of regexp syntax (so far only for Elisp
20238 buffers – other modes on the TODO list).
20239 @end itemize\n")
20240 (license license:gpl3))))
20241
20242 (define-public emacs-magit-todos
20243 (package
20244 (name "emacs-magit-todos")
20245 (version "1.5.3")
20246 (source
20247 (origin
20248 (method git-fetch)
20249 (uri (git-reference
20250 (url "https://github.com/alphapapa/magit-todos")
20251 (commit version)))
20252 (file-name (git-file-name name version))
20253 (sha256
20254 (base32
20255 "12ay02vk6bk77k33mhlqi41m03a77y80b15rj1dbh1n6jfrjwkfy"))))
20256 (build-system emacs-build-system)
20257 (propagated-inputs
20258 `(("emacs-async" ,emacs-async)
20259 ("emacs-dash" ,emacs-dash)
20260 ("emacs-f" ,emacs-f)
20261 ("emacs-hl-todo" ,emacs-hl-todo)
20262 ("magit" ,emacs-magit)
20263 ("emacs-pcre2el" ,emacs-pcre2el)
20264 ("emacs-s" ,emacs-s)))
20265 (home-page "https://github.com/alphapapa/magit-todos")
20266 (synopsis "Show source files' TODOs (and FIXMEs, etc) in Magit status buffer")
20267 (description "This package displays keyword entries from source code
20268 comments and Org files in the Magit status buffer. Activating an item jumps
20269 to it in its file. By default, it uses keywords from @code{hl-todo}, minus a
20270 few (like NOTE).")
20271 (license license:gpl3)))
20272
20273 (define-public emacs-git-annex
20274 ;; Unreleased version has a fontification fix.
20275 (let ((commit "1324d3f23c534fe79391a2c256bb8803054e383b")
20276 (revision "2"))
20277 (package
20278 (name "emacs-git-annex")
20279 (version (git-version "1.1" revision commit))
20280 (source
20281 (origin
20282 (method git-fetch)
20283 (uri (git-reference
20284 (url "https://github.com/jwiegley/git-annex-el")
20285 (commit commit)))
20286 (file-name (git-file-name name version))
20287 (sha256
20288 (base32
20289 "1lfky2nsrlndlbvk6vwbswnvbvkz1sxgg0n3r5q6xykdkjym0lrh"))))
20290 (build-system emacs-build-system)
20291 (home-page "https://github.com/jwiegley/git-annex-el")
20292 (synopsis "Emacs integration for git-annex")
20293 (description "Enhances Dired and buffers visiting annex files with
20294 git-annex functionality. In Dired, the names of annex files are shortened by
20295 hiding the symbolic links and fontified based on whether content is present.
20296 Commands for performing some common operations (e.g., unlocking and adding
20297 files) are provided.")
20298 (license license:gpl2+))))
20299
20300 (define-public emacs-hackernews
20301 (package
20302 (name "emacs-hackernews")
20303 (version "0.6.1")
20304 (source
20305 (origin
20306 (method git-fetch)
20307 (uri (git-reference
20308 (url "https://github.com/clarete/hackernews.el")
20309 (commit (string-append "v" version))))
20310 (file-name (git-file-name name version))
20311 (sha256
20312 (base32
20313 "17lkjcka6ydd6khhz5jbjlybfpx05153z0d8s1rxaxcwl7z2y6cf"))))
20314 (build-system emacs-build-system)
20315 (home-page "https://github.com/clarete/hackernews.el")
20316 (synopsis "Hacker News client for Emacs")
20317 (description "The @command{hackernews} package is able to fetch stories
20318 from six different Hacker News feeds, namely top, new, best, ask, show and job
20319 stories. The default feed is top stories, which corresponds to the Hacker
20320 News homepage.")
20321 (license license:gpl3)))
20322
20323 (define-public emacs-youtube-dl
20324 (let ((commit "af877b5bc4f01c04fccfa7d47a2c328926f20ef4")
20325 (revision "2"))
20326 (package
20327 (name "emacs-youtube-dl")
20328 (version (git-version "1.0" "2" commit))
20329 (source
20330 (origin
20331 (method git-fetch)
20332 (uri (git-reference
20333 (url "https://github.com/skeeto/youtube-dl-emacs/")
20334 (commit commit)))
20335 (file-name (git-file-name name version))
20336 (sha256
20337 (base32
20338 "0zkl9jkjbx0lmp9ylv4rqg1zwqibk053s4rp7s1h0i18nzk7vn8j"))))
20339 (build-system emacs-build-system)
20340 (inputs
20341 `(("youtube-dl" ,youtube-dl)))
20342 (arguments
20343 `(#:phases
20344 (modify-phases %standard-phases
20345 (add-after 'unpack 'configure
20346 (lambda* (#:key inputs #:allow-other-keys)
20347 (let ((youtube-dl (assoc-ref inputs "youtube-dl")))
20348 ;; .el is read-only in git.
20349 (chmod "youtube-dl.el" #o644)
20350 ;; Specify the absolute file names of the various
20351 ;; programs so that everything works out-of-the-box.
20352 (emacs-substitute-variables
20353 "youtube-dl.el"
20354 ("youtube-dl-program"
20355 (string-append youtube-dl "/bin/youtube-dl")))))))))
20356 (home-page "https://github.com/skeeto/youtube-dl-emacs/")
20357 (synopsis "Emacs youtube-dl download manager")
20358 (description "This package manages a video download queue for
20359 @command{youtube-dl}, which serves as the back end. It manages a single
20360 @command{youtube-dl} subprocess, downloading one video at a time. New videos
20361 can be queued at any time.")
20362 (license license:unlicense))))
20363
20364 (define-public emacs-ytdl
20365 (package
20366 (name "emacs-ytdl")
20367 (version "1.3.5")
20368 (source
20369 (origin
20370 (method git-fetch)
20371 (uri (git-reference
20372 (url "https://gitlab.com/tuedachu/ytdl")
20373 (commit version)))
20374 (file-name (git-file-name name version))
20375 (sha256
20376 (base32 "1xv93ny942gha1ipic5r6z4icjsb7src7ssdck9983kks3zacjk7"))))
20377 (build-system emacs-build-system)
20378 (inputs
20379 `(("youtube-dl" ,youtube-dl)))
20380 (propagated-inputs
20381 `(("async" ,emacs-async)
20382 ("transient" ,emacs-transient)))
20383 (arguments
20384 `(#:phases
20385 (modify-phases %standard-phases
20386 (add-after 'unpack 'configure
20387 (lambda* (#:key inputs #:allow-other-keys)
20388 (let ((youtube-dl (assoc-ref inputs "youtube-dl")))
20389 ;; .el is read-only in git.
20390 (make-file-writable "ytdl.el")
20391 ;; Specify the absolute file names of the various programs so
20392 ;; that everything works out-of-the-box.
20393 (emacs-substitute-variables "ytdl.el"
20394 ("ytdl-command" (string-append youtube-dl "/bin/youtube-dl")))
20395 #t))))))
20396 (home-page "https://gitlab.com/tuedachu/ytdl")
20397 (synopsis "Emacs interface for youtube-dl")
20398 (description
20399 "This package manages a video download queue for @command{youtube-dl},
20400 which serves as the back end. New videos can be queued at any time. All
20401 youtube-dl backends are supported. It is possible to create download profiles
20402 depending on the downloaded URL.")
20403 (license license:gpl3+)))
20404
20405 (define-public emacs-org-web-tools
20406 (package
20407 (name "emacs-org-web-tools")
20408 (version "1.1.1")
20409 (source
20410 (origin
20411 (method git-fetch)
20412 (uri (git-reference
20413 (url "https://github.com/alphapapa/org-web-tools")
20414 (commit version)))
20415 (file-name (git-file-name name version))
20416 (sha256
20417 (base32
20418 "0v4qad54r0z7dr7kg5lpfdsazi44qvrbybx9aciyl4w9grfajphb"))))
20419 (build-system emacs-build-system)
20420 (propagated-inputs
20421 `(("emacs-dash" ,emacs-dash)
20422 ("emacs-esxml" ,emacs-esxml)
20423 ("emacs-request" ,emacs-request)
20424 ("emacs-s" ,emacs-s)))
20425 (inputs
20426 `(("pandoc" ,pandoc)))
20427 (arguments
20428 `(#:phases
20429 (modify-phases %standard-phases
20430 (add-after 'unpack 'patch-exec-paths
20431 (lambda* (#:key inputs #:allow-other-keys)
20432 (let ((pandoc (assoc-ref inputs "pandoc")))
20433 (substitute* "org-web-tools.el"
20434 (("\"pandoc\"") (string-append "\"" pandoc "/bin/pandoc\"")))
20435 #t))))))
20436 (home-page "https://github.com/alphapapa/org-web-tools")
20437 (synopsis "Display/Process web page as Org-mode content")
20438 (description "This package contains library functions and commands useful
20439 for retrieving web page content and processing it into Org-mode content.
20440
20441 For example, you can copy a URL to the clipboard or kill-ring, then run a
20442 command that downloads the page, isolates the “readable” content with
20443 @command{eww-readable}, converts it to Org-mode content with Pandoc, and
20444 displays it in an Org-mode buffer. Another command does all of that but
20445 inserts it as an Org entry instead of displaying it in a new buffer.")
20446 (license license:gpl3+)))
20447
20448 (define-public emacs-blimp
20449 (let ((commit "e420763d6d18b5d1be552cdbc47f91418343db03"))
20450 (package
20451 (name "emacs-blimp")
20452 (version (git-version "0.0.0" "1" commit))
20453 (source
20454 (origin
20455 (method git-fetch)
20456 (uri (git-reference
20457 (url "https://github.com/walseb/blimp")
20458 (commit commit)))
20459 (file-name (git-file-name name version))
20460 (sha256
20461 (base32
20462 "09wmhpym516b81dfq8smdmysh1fn610dzlyvyl2rkx8600f0fizd"))))
20463 (build-system emacs-build-system)
20464 (propagated-inputs
20465 `(("emacs-eimp" ,emacs-eimp)))
20466 (home-page "https://github.com/walseb/blimp")
20467 (synopsis "Emacs wrapper around all Imagemagick commands")
20468 (description "Blimp (Bustling Image Manipulation Package) is a complete
20469 wrapper around all Imagemagick commands with descriptions, autocompletion (for
20470 some commands) and hints displayed in prompt using @command{eimp.el} to
20471 execute its commands and resize images.")
20472 (license license:gpl3+))))
20473
20474 (define-public emacs-synosaurus
20475 (package
20476 (name "emacs-synosaurus")
20477 (version "0.2.0")
20478 (source
20479 (origin
20480 (method git-fetch)
20481 (uri (git-reference
20482 (url "https://github.com/hpdeifel/synosaurus")
20483 (commit (string-append "v" version))))
20484 (file-name (git-file-name name version))
20485 (sha256
20486 (base32
20487 "14dd6p89pmpf1w3nx4f9mzm4sn2b64nicws436ck7pmp223pwciv"))))
20488 (build-system emacs-build-system)
20489 (propagated-inputs
20490 `(("wordnet" ,wordnet)))
20491 (arguments
20492 `(#:phases
20493 (modify-phases %standard-phases
20494 (add-after 'unpack 'configure
20495 (lambda* (#:key inputs outputs #:allow-other-keys)
20496 (let ((wn (assoc-ref inputs "wordnet")))
20497 ;; .el is read-only in git.
20498 (make-file-writable "synosaurus-wordnet.el")
20499 ;; Specify the absolute file names of the various
20500 ;; programs so that everything works out-of-the-box.
20501 (emacs-substitute-variables "synosaurus-wordnet.el"
20502 ("synosaurus-wordnet--command"
20503 (string-append wn "/bin/wn")))))))))
20504 (home-page "https://github.com/hpdeifel/synosaurus")
20505 (synopsis "Extensible thesaurus mode for Emacs")
20506 (description "Synosaurus is a thesaurus fontend for Emacs with pluggable
20507 backends, including the @command{wordnet} offline backend.")
20508 (license license:gpl3+)))
20509
20510 (define-public emacs-editorconfig
20511 (package
20512 (name "emacs-editorconfig")
20513 (version "0.8.1")
20514 (source
20515 (origin
20516 (method git-fetch)
20517 (uri (git-reference
20518 (url "https://github.com/editorconfig/editorconfig-emacs")
20519 (commit (string-append "v" version))))
20520 (file-name (git-file-name name version))
20521 (sha256
20522 (base32
20523 "1djlhkap7zddknzvjsjz0agpfsms1ih05zcpg1bikid2vs4gddyr"))))
20524 (build-system emacs-build-system)
20525 (home-page "https://github.com/editorconfig/editorconfig-emacs")
20526 (synopsis "Define and maintain consistent coding styles between different
20527 editors and IDEs")
20528 (description "The EditorConfig project consists of a file format for
20529 defining coding styles and a collection of text editor plugins that enable
20530 editors to read the file format and adhere to defined styles. EditorConfig
20531 files are easily readable and they work nicely with version control systems.")
20532 (license license:gpl3+)))
20533
20534 (define-public emacs-all-the-icons
20535 (package
20536 (name "emacs-all-the-icons")
20537 (version "4.0.1")
20538 (source
20539 (origin
20540 (method git-fetch)
20541 (uri (git-reference
20542 (url "https://github.com/domtronn/all-the-icons.el")
20543 (commit version)))
20544 (file-name (git-file-name name version))
20545 (sha256
20546 (base32 "0yh7gnv9xfqn8q4rzaa6wpyn9575vyfxy7d3afly2mqsb367fgm5"))))
20547 (build-system emacs-build-system)
20548 (arguments
20549 `(#:include '("\\.el$" "^data/" "^fonts/")
20550 ;; Compiling "test/" fails with "Symbol’s value as variable is void:
20551 ;; all-the-icons--root-code". Ignoring tests.
20552 #:exclude '("^test/")
20553 #:tests? #f))
20554 (propagated-inputs
20555 `(("f" ,emacs-f)
20556 ("memoize" ,emacs-memoize)))
20557 (home-page "https://github.com/domtronn/all-the-icons.el")
20558 (synopsis "Collect icon fonts and propertize them within Emacs")
20559 (description
20560 "All-the-icons is a utility package to collect various icon fonts and
20561 propertize them within Emacs. Icon fonts allow you to propertize and format
20562 icons the same way you would normal text. This enables things such as better
20563 scaling of and anti aliasing of the icons.")
20564 ;; Package is released under Expat license. Elisp files are licensed
20565 ;; under GPL3+. Fonts come with various licenses: Expat for
20566 ;; "all-the-icons.ttf" and "file-icons.ttf", Apache License 2.0 for
20567 ;; "material-design-icons.ttf", and SIL OFL 1.1 for "fontawesome.ttf",
20568 ;; "ocitcons.ttf" and "weathericons.ttf".
20569 (license
20570 (list license:expat license:gpl3+ license:silofl1.1 license:asl2.0))))
20571
20572 (define-public emacs-wttrin
20573 (let ((commit "df5427ce2a5ad4dab652dbb1c4a1834d7ddc2abc")
20574 (revision "1"))
20575 (package
20576 (name "emacs-wttrin")
20577 (version (git-version "0.2.0" revision commit))
20578 (source (origin
20579 (method git-fetch)
20580 (uri (git-reference
20581 (url "https://github.com/bcbcarl/emacs-wttrin")
20582 (commit commit)))
20583 (file-name (git-file-name name version))
20584 (sha256
20585 (base32
20586 "1ai655f10iayb4vw0ass2j3x83f4vsv90326mnywkzfl3sxd432z"))))
20587 (build-system emacs-build-system)
20588 (propagated-inputs
20589 `(("emacs-xterm-color" ,emacs-xterm-color)))
20590 (home-page "https://github.com/bcbcarl/emacs-wttrin")
20591 (synopsis "Frontend for weather web service @url{wttr.in}")
20592 (description "This package provides local weather information from
20593 @url{wttr.in}.")
20594 (license license:expat))))
20595
20596 (define-public emacs-browse-kill-ring
20597 (let ((commit "1ef72cc6accd94cd7032c02b1b2c78ae7f1d1965")
20598 (revision "0"))
20599 (package
20600 (name "emacs-browse-kill-ring")
20601 (version (git-version "2.0.0" revision commit))
20602 (source
20603 (origin
20604 (method git-fetch)
20605 (uri (git-reference
20606 (url "https://github.com/browse-kill-ring/browse-kill-ring")
20607 (commit commit)))
20608 (file-name (git-file-name name version))
20609 (sha256
20610 (base32
20611 "0mil32g7hcw376jibs5hdyv00xbaql3m4a27rwqaafg0x59avxdj"))))
20612 (build-system emacs-build-system)
20613 (home-page "https://github.com/browse-kill-ring/browse-kill-ring")
20614 (synopsis "Interactively insert items from kill-ring")
20615 (description
20616 "Did you ever feel that @code{C-y M-y M-y M-y ...} is not a great way
20617 of trying to find that piece of text you know you killed a while back? Then
20618 @code{browse-kill-ring.el} is for you.")
20619 (license license:gpl2+))))
20620
20621 (define-public emacs-powerline
20622 (package
20623 (name "emacs-powerline")
20624 (version "2.4")
20625 (source
20626 (origin
20627 (method git-fetch)
20628 (uri (git-reference
20629 (url "https://github.com/milkypostman/powerline")
20630 (commit version)))
20631 (file-name (git-file-name name version))
20632 (sha256
20633 (base32
20634 "1hp3xp18943n0rlggz55150020ivw8gvi1vyxkr4z8xhpwq4gaar"))))
20635 (build-system emacs-build-system)
20636 (home-page "https://github.com/milkypostman/powerline/")
20637 (synopsis "Mode-line plugin for Emacs")
20638 (description "Powerline is a utility plugin which allows you to create
20639 a better-looking, more functional Emacs mode-line. A collection of predefined
20640 themes comes with the package.")
20641 (license license:gpl3+)))
20642
20643 (define-public emacs-spaceline
20644 (package
20645 (name "emacs-spaceline")
20646 (version "2.0.1")
20647 (source
20648 (origin
20649 (method git-fetch)
20650 (uri (git-reference
20651 (url "https://github.com/TheBB/spaceline")
20652 (commit (string-append "v" version))))
20653 (file-name (git-file-name name version))
20654 (sha256
20655 (base32
20656 "1q8r95zfrh0vxna5ml2pq9b9f66clfqcl4d2qy2aizkvzyxg6skl"))))
20657 (build-system emacs-build-system)
20658 (propagated-inputs
20659 `(("dash" ,emacs-dash)
20660 ("powerline" ,emacs-powerline)
20661 ("s" ,emacs-s)))
20662 (home-page "https://github.com/TheBB/spaceline")
20663 (synopsis "Powerline theme from Spacemacs")
20664 (description "Spaceline provides Spacemacs' mode-line theme.
20665 This package provides features for three kinds of users.
20666
20667 @itemize
20668 @item You just want to use the Spacemacs mode-line theme and forget about it.
20669 @item You want to use something similar to the Spacemacs mode-line theme, but
20670 with a handful of easy tweaks.
20671 @item You want an easy-to-use library for building your own mode-line from
20672 scratch, and you think the Spacemacs theme looks good.
20673 @end itemize")
20674 (license license:gpl3+)))
20675
20676 (define-public emacs-spaceline-next
20677 (let ((commit "1b26af2c1a701481ac5d90928fe0200e389756c3")
20678 (last-release-version "2.0.1")
20679 (revision "0"))
20680 (package
20681 (inherit emacs-spaceline)
20682 (name "emacs-spaceline-next")
20683 (version (git-version last-release-version revision commit))
20684 (source
20685 (origin
20686 (method git-fetch)
20687 (uri (git-reference
20688 (url "https://github.com/TheBB/spaceline")
20689 (commit commit)))
20690 (sha256
20691 (base32 "11lwckqcgzsahrkkm5wk1ph4kc7d4yz05r7251g8c9f0q6vdj9dp"))
20692 (file-name (git-file-name name version)))))))
20693
20694 (define-public emacs-column-marker
20695 (package
20696 (name "emacs-column-marker")
20697 (version "9")
20698 (source
20699 (origin
20700 (method url-fetch)
20701 (uri "https://www.emacswiki.org/emacs/download/column-marker.el")
20702 (sha256 (base32 "05bv198zhqw5hqq6cr11mhz02dpca74hhp1ycwq369m0yb2naxy9"))))
20703 (build-system emacs-build-system)
20704 (home-page "https://www.emacswiki.org/emacs/ColumnMarker")
20705 (synopsis "Emacs mode for highlighting columns")
20706 (description
20707 "With @code{column-marker.el} you can highlight any number of text columns.
20708 Three such highlight column markers are provided by default. This is
20709 especially useful for languages like COBOL or Fortran where certain columns
20710 have special meaning. It is also handy for aligning text across long vertical
20711 distances. Multi-column characters, such as @kbd{TAB} are treated
20712 correctly.")
20713 (license license:gpl2+)))
20714
20715 (define-public emacs-slime-repl-ansi-color
20716 (let ((commit "ad03263f5d4de473bc173b64a6fc3dc1106393d7"))
20717 (package
20718 (name "emacs-slime-repl-ansi-color")
20719 (version (git-version "0.0.0" "1" commit))
20720 (source (origin
20721 (method git-fetch)
20722 (uri (git-reference
20723 (url "https://github.com/deadtrickster/slime-repl-ansi-color")
20724 (commit commit)))
20725 (file-name (git-file-name name version))
20726 (sha256
20727 (base32
20728 "0bpg7gxz310x7bnlg324c507sxc5gxwwz6h64h6kdq141r73vbi4"))))
20729 (build-system emacs-build-system)
20730 (home-page "https://github.com/deadtrickster/slime-repl-ansi-color")
20731 (synopsis "Color ANSI codes in the REPL of SLIME")
20732 (description "Color ANSI codes in the REPL of SLIME")
20733 (license license:gpl2+))))
20734
20735 (define-public emacs-helm-slime
20736 (package
20737 (name "emacs-helm-slime")
20738 (version "0.4.0")
20739 (source (origin
20740 (method git-fetch)
20741 (uri (git-reference
20742 (url "https://github.com/emacs-helm/helm-slime")
20743 (commit version)))
20744 (file-name (git-file-name name version))
20745 (sha256
20746 (base32
20747 "0mrpjhpijdrq353fnfvdj9l9xfsz390qlcvifcair9732ma7i8l0"))))
20748 (build-system emacs-build-system)
20749 (propagated-inputs
20750 `(("emacs-helm" ,emacs-helm)
20751 ("emacs-slime" ,emacs-slime)))
20752 (home-page "https://github.com/emacs-helm/helm-slime")
20753 (synopsis "Helm for SLIME, the Superior Lisp Interaction Mode for Emacs")
20754 (description "Helm-SLIME defines a few new commands:
20755
20756 @itemize
20757 @item helm-slime-complete: Select a symbol from the SLIME completion systems.
20758 @item helm-slime-list-connections: Yet another slime-list-connections with Helm.
20759 @item: helm-slime-apropos: Yet another slime-apropos with Helm.
20760 @item helm-slime-repl-history: Select an input from the SLIME REPL history and insert it.
20761 @end itemize\n")
20762 (license license:gpl3+)))
20763
20764 (define-public emacs-helm-sly
20765 (package
20766 (name "emacs-helm-sly")
20767 (version "0.7.2")
20768 (source (origin
20769 (method git-fetch)
20770 (uri (git-reference
20771 (url "https://github.com/emacs-helm/helm-sly")
20772 (commit version)))
20773 (file-name (git-file-name name version))
20774 (sha256
20775 (base32
20776 "06x8wyx1r0s7askkvlbklgz1cszv34qsvv3gryndw350smk1v8kx"))))
20777 (build-system emacs-build-system)
20778 (propagated-inputs
20779 `(("emacs-helm" ,emacs-helm)
20780 ("emacs-sly" ,emacs-sly)))
20781 (home-page "https://github.com/emacs-helm/helm-sly")
20782 (synopsis "Helm for SLY, a Common Lisp interaction mode for Emacs")
20783 (description "Helm-SLY defines a few new commands:
20784
20785 @itemize
20786 @item @code{helm-sly-list-connections}: Yet another Lisp connection list with
20787 Helm.
20788 @item @code{helm-sly-apropos}: Yet another @command{apropos} with Helm.
20789 @item @code{helm-sly-mini}: Like @command{helm-sly-list-connections}, but
20790 include an extra source of Lisp-related buffers, like the events buffer or the
20791 scratch buffer.
20792 @end itemize\n")
20793 (license license:gpl3+)))
20794
20795 (define-public emacs-gtk-look
20796 (package
20797 (name "emacs-gtk-look")
20798 (version "29")
20799 (source (origin
20800 (method url-fetch)
20801 (uri "https://download.tuxfamily.org/user42/gtk-look.el")
20802 (sha256
20803 (base32
20804 "14p2nwrd51cr1v06fxbjjn6jdrkf9d6vcxhmscm0kl677s25ypsp"))))
20805 (build-system emacs-build-system)
20806 (arguments
20807 `(#:phases
20808 (modify-phases %standard-phases
20809 (add-after 'unpack 'configure
20810 (lambda _
20811 ;; File is read-only.
20812 (chmod "gtk-look.el" #o644)
20813 (emacs-substitute-variables "gtk-look.el"
20814 ("gtk-lookup-devhelp-indices"
20815 '(list (expand-file-name "~/.guix-profile/share/gtk-doc/html/*/*.devhelp*"))))
20816 #t)))))
20817 (home-page "http://user42.tuxfamily.org/gtk-look/index.html")
20818 (synopsis "Find and display HTML documentation for GTK, GNOME and Glib")
20819 (description "@command{gtk-look} finds and displays HTML documentation for
20820 GTK, GNOME and Glib functions and variables in Emacs, similar to what
20821 info-lookup-symbol does for info files (C-h S). The documentation is expected
20822 to be devhelp indexes with HTML files. The location of the indexes can be
20823 customized. In addition to C code development @command{gtk-look} is good for
20824
20825 @itemize
20826 @item @command{perl-gtk2}, recognising class funcs like
20827 @command{Gtk2::Label->new} and bare method names like @command{set_text}.
20828 @item @command{guile-gnome}, recognising methods like @command{set-text} and
20829 classes like @command{<gtk-window>}.
20830 @end itemize\n")
20831 (license license:gpl3+)))
20832
20833 (define-public emacs-ov
20834 (package
20835 (name "emacs-ov")
20836 (version "1.0.6")
20837 (source (origin
20838 (method git-fetch)
20839 (uri (git-reference
20840 (url "https://github.com/ShingoFukuyama/ov.el")
20841 (commit version)))
20842 (file-name (git-file-name name version))
20843 (sha256
20844 (base32
20845 "0qxk2rf84j86syxi8xknsq252irwg7sz396v3bb4wqz4prpj0kzc"))))
20846 (build-system emacs-build-system)
20847 (home-page "https://github.com/ShingoFukuyama/ov.el")
20848 (synopsis "Overlay library for Emacs Lisp")
20849 (description "@code{ov.el} provides a simple way to manipulate overlays in
20850 Emacs.")
20851 (license license:gpl3+)))
20852
20853 (define-public emacs-matrix-client
20854 (let ((commit "d2ac55293c96d4c95971ed8e2a3f6f354565c5ed"))
20855 (package
20856 (name "emacs-matrix-client")
20857 (version (git-version "0.0.0" "6" commit))
20858 (source (origin
20859 (method git-fetch)
20860 (uri (git-reference
20861 (url "https://github.com/jgkamat/matrix-client-el")
20862 (commit commit)))
20863 (file-name (git-file-name name version))
20864 (sha256
20865 (base32
20866 "1scfv1502yg7x4bsl253cpr6plml1j4d437vci2ggs764sh3rcqq"))))
20867 (build-system emacs-build-system)
20868 (propagated-inputs
20869 `(("a" ,emacs-a)
20870 ("anaphora" ,emacs-anaphora)
20871 ("dash" ,emacs-dash)
20872 ("esxml" ,emacs-esxml)
20873 ("f" ,emacs-f)
20874 ("frame-purpose" ,emacs-frame-purpose)
20875 ("ht" ,emacs-ht)
20876 ("ov" ,emacs-ov)
20877 ("rainbow-identifiers" ,emacs-rainbow-identifiers)
20878 ("request" ,emacs-request)
20879 ("s" ,emacs-s)
20880 ("tracking" ,emacs-tracking)))
20881 (home-page "https://github.com/jgkamat/matrix-client-el")
20882 (synopsis "Matrix client for Emacs")
20883 (description "@code{matrix-client} is a simple chat UI to Matrix.org
20884 rooms. It also provides an API which allows Emacs to seamlessly create
20885 RPC channels with users and other software.")
20886 (license license:gpl3+))))
20887
20888 (define-public emacs-sesman
20889 (package
20890 (name "emacs-sesman")
20891 (version "0.3.4")
20892 (source
20893 (origin
20894 (method git-fetch)
20895 (uri (git-reference
20896 (url "https://github.com/vspinu/sesman")
20897 (commit (string-append "v" version))))
20898 (file-name (git-file-name name version))
20899 (sha256
20900 (base32
20901 "0z5jb4vpbjsi63w3wjy6d2lgz33qdfvrgfb3bszv4hcf6a96y7fc"))))
20902 (build-system emacs-build-system)
20903 (arguments
20904 `(#:phases
20905 (modify-phases %standard-phases
20906 (add-after 'unpack 'set-shell
20907 ;; Setting the SHELL environment variable is required for the tests
20908 ;; to find sh.
20909 (lambda _
20910 (setenv "SHELL" (which "sh"))
20911 #t)))
20912 #:tests? #t
20913 #:test-command '("make" "test")))
20914 (home-page "https://github.com/vspinu/sesman")
20915 (synopsis "Session manager for Emacs based IDEs")
20916 (description "Sesman provides facilities for session management and
20917 interactive session association with the current contexts (project, directory,
20918 buffers). While sesman can be used to manage arbitrary sessions, it primary
20919 targets the Emacs based IDEs (CIDER, ESS, Geiser, Robe, SLIME etc.)")
20920 (license license:gpl3+)))
20921
20922 (define-public emacs-buttercup
20923 (package
20924 (name "emacs-buttercup")
20925 (version "1.24")
20926 (source
20927 (origin
20928 (method git-fetch)
20929 (uri (git-reference
20930 (url "https://github.com/jorgenschaefer/emacs-buttercup")
20931 (commit (string-append "v" version))))
20932 (file-name (git-file-name name version))
20933 (sha256
20934 (base32
20935 "1w02p4bfkyga6sign4flq2kw0hawyvnv63410pyh8nm7acp311gg"))))
20936 (build-system emacs-build-system)
20937 (arguments
20938 `(#:tests? #t
20939 #:test-command '("make" "test")
20940 #:phases
20941 (modify-phases %standard-phases
20942 (add-after 'install 'install-bin
20943 (lambda* (#:key outputs #:allow-other-keys)
20944 (install-file "bin/buttercup"
20945 (string-append (assoc-ref outputs "out") "/bin"))
20946 #t)))))
20947 (home-page "https://github.com/jorgenschaefer/emacs-buttercup")
20948 (synopsis "Behavior driven emacs lisp testing framework")
20949 (description "Buttercup is a behavior-driven development framework for
20950 testing Emacs Lisp code. It groups related tests so they can share
20951 common set-up and tear-down code, and allows the programmer to \"spy\" on
20952 functions to ensure they are called with the right arguments during testing.")
20953 (license license:gpl3+)))
20954
20955 (define-public emacs-cort
20956 (package
20957 (name "emacs-cort")
20958 (version "7.1.0")
20959 (source (origin
20960 (method git-fetch)
20961 (uri (git-reference
20962 (url "https://github.com/conao3/cort.el")
20963 (commit (string-append "v" version))))
20964 (file-name (git-file-name name version))
20965 (sha256
20966 (base32
20967 "03c223nczpbdkjmq69panhbsq2a0zj20w329jgj4c0zsj8m1a32a"))))
20968 (build-system emacs-build-system)
20969 (propagated-inputs
20970 `(("emacs-ansi" ,emacs-ansi)))
20971 (arguments
20972 `(#:tests? #t
20973 #:test-command '("emacs" "--batch" "--quick"
20974 "--directory=." "--load=cort-tests.el"
20975 "--funcall=cort-test-run")))
20976 (home-page "https://github.com/conao3/cort.el")
20977 (synopsis "Unit test framework for the Emacs Lisp")
20978 (description "@code{cort} is a lightweight Emacs Lisp unit test library.")
20979 (license license:gpl3+)))
20980
20981 (define-public emacs-wordnut
20982 (let ((commit "feac531404041855312c1a046bde7ea18c674915")
20983 (revision "0"))
20984 (package
20985 (name "emacs-wordnut")
20986 (version (git-version "0.1" revision commit))
20987 (home-page "https://github.com/gromnitsky/wordnut")
20988 (source (origin
20989 (method git-fetch)
20990 (uri (git-reference (url home-page) (commit commit)))
20991 (sha256
20992 (base32
20993 "1jl0b6g64a9w0q7bfvwha67vgws5xd15b7mkfyb5gkz3pymqhfxn"))
20994 (patches
20995 (search-patches "emacs-wordnut-require-adaptive-wrap.patch"))
20996 (file-name (git-file-name name version))))
20997 (build-system emacs-build-system)
20998 (propagated-inputs
20999 `(("wordnet" ,wordnet)
21000 ("emacs-adaptive-wrap" ,emacs-adaptive-wrap)))
21001 (synopsis "Major mode for WordNet")
21002 (description "This Emacs package provides an interface for
21003 @code{wordnet}. Features include completion, if the query is not found
21004 too ambiguous and navigation in the result buffer.")
21005 (license license:gpl3+))))
21006
21007 (define-public emacs-frame-local
21008 ;; There is no release yet. Version is extracted from the main
21009 ;; file.
21010 (let ((version "0.0.1")
21011 (revision "0")
21012 (commit "7ee1106c3bcd4022f48421f8cb1ef4f995da816e"))
21013 (package
21014 (name "emacs-frame-local")
21015 (version (git-version version revision commit))
21016 (source
21017 (origin
21018 (method git-fetch)
21019 (uri (git-reference
21020 (url "https://github.com/sebastiencs/frame-local")
21021 (commit commit)))
21022 (file-name (git-file-name name version))
21023 (sha256
21024 (base32 "0zfxsxdh3bd3fd566zl0byp13p5b8f4cgkwl637imvarvahczigp"))))
21025 (build-system emacs-build-system)
21026 (home-page "https://github.com/sebastiencs/frame-local")
21027 (synopsis "Access variables local to an Emacs frame")
21028 (description
21029 "This package allows setting and accessing variables local to
21030 an Emacs frame. Note that the variables created with this package do
21031 not have any relation with variables defined by @code{defvar},
21032 @code{defconst}, etc.")
21033 (license license:gpl3+))))
21034
21035 (define-public emacs-frame-purpose
21036 (package
21037 (name "emacs-frame-purpose")
21038 (version "1.0")
21039 (source (origin
21040 (method git-fetch)
21041 (uri (git-reference
21042 (url "https://github.com/alphapapa/frame-purpose.el")
21043 (commit version)))
21044 (sha256
21045 (base32
21046 "0jq2aam1yvccw887ighd1wm2xkvk5bv53ffiz3crcl16a255aj4q"))
21047 (file-name (git-file-name name version))))
21048 (build-system emacs-build-system)
21049 (inputs
21050 `(("dash" ,emacs-dash)))
21051 (synopsis "Purpose-specific frames for Emacs")
21052 (description "@code{frame-purpose} makes it easy to open purpose-specific
21053 frames that only show certain buffers, e.g. by buffers’ major mode, their
21054 filename or directory, etc, with custom frame/X-window titles, icons, and
21055 other frame parameters.")
21056 (home-page "https://github.com/alphapapa/frame-purpose.el")
21057 (license license:gpl3+)))
21058
21059 (define-public emacs-arduino-mode
21060 (let ((commit "23ae47c9f28f559e70b790b471f20310e163a39b")
21061 (revision "1")) ;no release yet
21062 (package
21063 (name "emacs-arduino-mode")
21064 (version (git-version "0" revision commit))
21065 (source (origin
21066 (method git-fetch)
21067 (uri (git-reference
21068 (url "https://github.com/stardiviner/arduino-mode")
21069 (commit commit)))
21070 (sha256
21071 (base32
21072 "08vnbz9gpah1l93fzfd87aawrhcnh2v1kyfxgsn88pdwg8awz8rx"))
21073 (file-name (git-file-name name version))))
21074 (build-system emacs-build-system)
21075 (inputs
21076 `(("spinner" ,emacs-spinner)
21077 ("flycheck" ,emacs-flycheck)))
21078 (arguments
21079 `(#:phases
21080 (modify-phases %standard-phases
21081 ;; Emacs complains that "defmethod" and "defgeneric" are obsolete
21082 ;; macros when compiling. Substitute them with the recommended
21083 ;; macros "cl-defmethod" and "cl-defgeneric", respectively.
21084 (add-after 'unpack 'fix-obsolete
21085 (lambda _
21086 (substitute* "ede-arduino.el"
21087 (("defmethod") "cl-defmethod")
21088 (("defgeneric") "cl-defgeneric"))
21089 #t)))))
21090 (synopsis "Emacs major mode for editing Arduino sketches")
21091 (description "Emacs major mode for editing Arduino sketches.")
21092 (home-page "https://github.com/stardiviner/arduino-mode")
21093 (license license:gpl3+))))
21094
21095 (define-public emacs-annalist
21096 (package
21097 (name "emacs-annalist")
21098 (version "1.0.1")
21099 (source (origin
21100 (method git-fetch)
21101 (uri (git-reference
21102 (url "https://github.com/noctuid/annalist.el")
21103 (commit version)))
21104 (sha256
21105 (base32
21106 "1jlb5w4972l8m2aa18q2l6arfpm65g4nk21dn1yi8c9dbpk2g67c"))
21107 (file-name (git-file-name name version))))
21108 (build-system emacs-build-system)
21109 (native-inputs
21110 `(("emacs-buttercup" ,emacs-buttercup)
21111 ("emacs-lispy" ,emacs-lispy)
21112 ("emacs-evil" ,emacs-evil)))
21113 (arguments
21114 `(#:phases
21115 (modify-phases %standard-phases
21116 (add-before 'check 'fix-makefile
21117 (lambda _
21118 (substitute* "Makefile"
21119 (("cask exec ") ""))
21120 #t)))
21121 #:tests? #t
21122 #:test-command '("make" "test")))
21123 (home-page "https://github.com/noctuid/annalist.el")
21124 (synopsis "Record and display information with Org headings and tables")
21125 (description "This package allows for keybindings, settings, hooks, and
21126 advice to be recorded and displayed.")
21127 (license license:gpl3+)))
21128
21129 (define-public emacs-general
21130 (let ((commit "a0b17d207badf462311b2eef7c065b884462cb7c")
21131 (revision "4"))
21132 (package
21133 (name "emacs-general")
21134 (version (git-version "0" revision commit))
21135 (source
21136 (origin
21137 (method git-fetch)
21138 (uri (git-reference
21139 (url "https://github.com/noctuid/general.el")
21140 (commit commit)))
21141 (sha256
21142 (base32 "0wn5rk3gkimdklip392mnjrmkymgrb7q9skifi03cbpjam1anzvv"))
21143 (file-name (git-file-name name version))))
21144 (build-system emacs-build-system)
21145 (native-inputs
21146 `(("emacs-buttercup" ,emacs-buttercup)
21147 ("emacs-evil" ,emacs-evil)
21148 ("emacs-which-key" ,emacs-which-key)
21149 ("emacs-use-package" ,emacs-use-package)))
21150 (arguments
21151 `(#:tests? #t
21152 #:test-command '("buttercup" "-L" "test/test-general.el")))
21153 (home-page "https://github.com/noctuid/general.el")
21154 (synopsis "More convenient key definitions in emacs")
21155 (description "@code{general.el} provides a more convenient method for
21156 binding keys in emacs (for both evil and non-evil users). Like
21157 @code{use-package}, which provides a convenient, unified interface for
21158 managing packages, @code{general.el} is intended to provide a convenient,
21159 unified interface for key definitions. While this package does implement some
21160 completely new functionality (such as the ability to make vim-style
21161 keybindings under non-prefix keys with an optional timeout), its primary
21162 purpose is to build on existing functionality to make key definition more
21163 clear and concise. @code{general-define-key} is user-extensible and supports
21164 defining multiple keys in multiple keymaps at once, implicitly wrapping key
21165 strings with (@code{kbd ...}), using named prefix key sequences (like the
21166 leader key in vim), and much more.")
21167 (license license:gpl3+))))
21168
21169 (define-public emacs-tldr
21170 (let ((commit "7203d1be3dcbf12131846ffe06601933fa874d74"))
21171 (package
21172 (name "emacs-tldr")
21173 (version (git-version "0" "1" commit))
21174 (home-page "https://github.com/kuanyui/tldr.el")
21175 (source (origin
21176 (method git-fetch)
21177 (uri (git-reference
21178 (url (string-append home-page ".git"))
21179 (commit commit)))
21180 (sha256
21181 (base32
21182 "1bw6la463l2yfm7rp76ga4makfy4kpxgwi7ni5gxk31w11g26ryk"))
21183 (file-name (git-file-name name version))))
21184 (build-system emacs-build-system)
21185 (propagated-inputs
21186 `(("emacs-request" ,emacs-request)))
21187 (synopsis "Simplified and community-driven man pages for Emacs")
21188 (description "@code{emacs-tldr} allows the user to access tldr pages
21189 from within emacs. The @code{tldr} pages are a community effort to simplify
21190 the man pages with practical examples.")
21191 (license license:wtfpl2))))
21192
21193 (define-public emacs-window-layout
21194 (package
21195 (name "emacs-window-layout")
21196 (version "1.4")
21197 (home-page "https://github.com/kiwanami/emacs-window-layout")
21198 (source (origin
21199 (method git-fetch)
21200 (uri (git-reference
21201 (url home-page)
21202 (commit (string-append "v" version))))
21203 (sha256
21204 (base32
21205 "0wgqi8r844lbx52fn6az8c1n8m681rp6dkfzd54wmdk1ka7zmvv6"))
21206 (file-name (git-file-name name version))))
21207 (build-system emacs-build-system)
21208 (synopsis "Simple window layout management framework for emacs")
21209 (description "A window-layout management library that can split a frame
21210 or a window into some windows according to a layout recipe.")
21211 (license license:gpl3+)))
21212
21213 (define-public emacs-e2wm
21214 (package
21215 (name "emacs-e2wm")
21216 (version "1.4")
21217 (home-page "https://github.com/kiwanami/emacs-window-manager")
21218 (source (origin
21219 (method git-fetch)
21220 (uri (git-reference
21221 (url home-page)
21222 (commit (string-append "v" version))))
21223 (sha256
21224 (base32
21225 "12midsrx07pdrsr1qbl2rpi7xyhxqx08bkz7n7gf8vsmqkpfp56s"))
21226 (file-name (git-file-name name version))))
21227 (build-system emacs-build-system)
21228 (propagated-inputs
21229 `(("emacs-window-layout" ,emacs-window-layout)))
21230 (synopsis "Equilibrium Emacs Window Manager")
21231 (description "E2WM is a window manager for Emacs. It enables to
21232 customize the place of pop-up window, how the windows are split, how the
21233 buffers are located in the windows, keybinds to manipulate windows and
21234 buffers, etc. It also has plug-ins to help your Emacs life.")
21235 (license license:gpl3+)))
21236
21237 (define-public emacs-ctable
21238 (let ((commit "b8830d1ca95abb100a81bc32011bd17d5ecba000"))
21239 (package
21240 (name "emacs-ctable")
21241 (version (git-version "0.1.2" "1" commit))
21242 (home-page "https://github.com/kiwanami/emacs-ctable")
21243 (source (origin
21244 (method git-fetch)
21245 (uri (git-reference
21246 (url home-page)
21247 (commit commit)))
21248 (sha256
21249 (base32
21250 "0pg303pnqscrsbx9579hc815angszsgf9vpd2z2f8p4f4ka6a00h"))
21251 (file-name (git-file-name name version))))
21252 (build-system emacs-build-system)
21253 (synopsis "Table component for Emacs Lisp")
21254 (description "This program is a table component for Emacs Lisp. Other
21255 programs can use this table component for the application UI.")
21256 (license license:gpl3+))))
21257
21258 (define-public emacs-leetcode
21259 (let ((commit "8624496af9e105c3e07d88844b37ede87540d604")
21260 (revision "1"))
21261 (package
21262 (name "emacs-leetcode")
21263 (version (git-version "0" "1" commit))
21264 (home-page "https://github.com/ginqi7/leetcode-emacs")
21265 (source (origin
21266 (method git-fetch)
21267 (uri (git-reference
21268 (url "https://github.com/ginqi7/leetcode-emacs")
21269 (commit commit)))
21270 (sha256
21271 (base32
21272 "11pp7ydlmwrv7djf9mwk4xzn295xbmdnj5x13bfj5yjpjr89p531"))
21273 (file-name (git-file-name name version))))
21274 (build-system emacs-build-system)
21275 (propagated-inputs
21276 `(("emacs-names" ,emacs-names)
21277 ("emacs-ctable" ,emacs-ctable)))
21278 (synopsis "Solve and submit LeetCode problems from within Emacs")
21279 (description "This package provides an Emacs interface to LeetCode
21280 allowing users to log in and solve problems of their choice using Emacs.")
21281 (license license:unlicense))))
21282
21283 (define-public emacs-epc
21284 (let ((commit "e1bfa5ca163273859336e3cc89b4b6460f7f8cda"))
21285 (package
21286 (name "emacs-epc")
21287 (version (git-version "0.1.1" "1" commit))
21288 (home-page "https://github.com/kiwanami/emacs-epc")
21289 (source (origin
21290 (method git-fetch)
21291 (uri (git-reference
21292 (url home-page)
21293 (commit commit)))
21294 (sha256
21295 (base32
21296 "15nkrjgi64f829isfd6xrhl4zw8jirr8pkas7nisrbk1av868hx0"))
21297 (file-name (git-file-name name version))))
21298 (build-system emacs-build-system)
21299 (propagated-inputs
21300 `(("emacs-deferred" ,emacs-deferred)
21301 ("emacs-ctable" ,emacs-ctable)))
21302 (synopsis "RPC stack for Emacs Lisp")
21303 (description "This program is an asynchronous RPC stack for Emacs.
21304 Using this RPC stack, Emacs can communicate with the peer process
21305 smoothly. Because the protocol employs S-expression encoding and consists of
21306 asynchronous communications, the RPC response is fairly good.")
21307 (license license:gpl3+))))
21308
21309 (define-public emacs-edbi
21310 (let ((commit "6f50aaf4bde75255221f2292c7a4ad3fa9d918c0"))
21311 (package
21312 (name "emacs-edbi")
21313 (version (git-version "0.1.3" "1" commit))
21314 (home-page "https://github.com/kiwanami/emacs-edbi")
21315 (source (origin
21316 (method git-fetch)
21317 (uri (git-reference
21318 (url home-page)
21319 (commit commit)))
21320 (sha256
21321 (base32
21322 "0x0igyvdcm4863n7zndvcv6wgzwgn7324cbfjja6xd7r0k936zdy"))
21323 (file-name (git-file-name name version))))
21324 (build-system emacs-build-system)
21325 (inputs
21326 `(("perl" ,perl)
21327 ("perl-rpc-epc-service" ,perl-rpc-epc-service)
21328 ("perl-dbi" ,perl-dbi)
21329 ;; TODO: Adding support for perl-dbd-mysql and others would
21330 ;; dramatically increase the closure size. Make several packages?
21331 ("perl-dbd-sqlite" ,perl-dbd-sqlite)))
21332 (propagated-inputs
21333 `(("emacs-e2wm" ,emacs-e2wm)
21334 ("emacs-epc" ,emacs-epc)))
21335 (arguments
21336 `(#:include '("\\.el$" "\\.pl$")
21337 #:phases
21338 (modify-phases %standard-phases
21339 (add-after 'install 'patch-path
21340 (lambda* (#:key inputs outputs #:allow-other-keys)
21341 (let ((perl (assoc-ref inputs "perl"))
21342 (dir (string-append (assoc-ref outputs "out")
21343 "/share/emacs/site-lisp")))
21344 (substitute* (string-append dir "/edbi.el")
21345 (("\"perl\"") (string-append "\"" perl "/bin/perl\"")))
21346 (chmod (string-append dir "/edbi-bridge.pl") #o555)
21347 (wrap-program (string-append dir "/edbi-bridge.pl")
21348 `("PERL5LIB" ":" prefix (,(getenv "PERL5LIB"))))
21349 #t))))))
21350 (synopsis "Database Interface for Emacs Lisp")
21351 (description "This program connects the database server through Perl's
21352 DBI, and provides DB-accessing API and the simple management UI.")
21353 (license license:gpl3+))))
21354
21355 (define-public emacs-edbi-sqlite
21356 (let ((commit "52cb9ca1af7691b592f2cfd2f007847e7a4ccd5f"))
21357 (package
21358 (name "emacs-edbi-sqlite")
21359 (version (git-version "0.1.1" "1" commit))
21360 (home-page "https://github.com/proofit404/edbi-sqlite")
21361 (source (origin
21362 (method git-fetch)
21363 (uri (git-reference
21364 (url home-page)
21365 (commit commit)))
21366 (sha256
21367 (base32
21368 "1vll81386fx90lq5sy4rlxcik6mvw7zx5cc51f0yaca9bkcckp51"))
21369 (file-name (git-file-name name version))))
21370 (build-system emacs-build-system)
21371 (propagated-inputs
21372 `(("emacs-edbi" ,emacs-edbi)))
21373 (synopsis "Open SQLite files in Emacs")
21374 (description "This package is a convenience wrapper for @command{edbi}
21375 to open SQLite databases.")
21376 (license license:gpl3+))))
21377
21378 (define-public emacs-nice-citation
21379 (let ((commit "1013b56d9d1495a335f40a5f76203034dc5fa0ea")
21380 (revision "0"))
21381 (package
21382 (name "emacs-nice-citation")
21383 (version (git-version "0.0.2" revision commit))
21384 (source
21385 (origin
21386 (method git-fetch)
21387 (uri (git-reference
21388 (url "https://github.com/damiencollard/nice-citation")
21389 (commit commit)))
21390 (sha256
21391 (base32 "00xqr7haca5vd0bzd043lc6x4fjb903z96frz9b8cbd7spp63z7q"))
21392 (file-name (git-file-name name version))))
21393 (build-system emacs-build-system)
21394 (home-page "https://github.com/damiencollard/nice-citation")
21395 (synopsis "Depth-colored citations for Gnus")
21396 (description
21397 "This package replaces the traditional chevron citation marks @samp{>}
21398 with a Unicode vertical bar with the same color as the text it is quoting.
21399
21400 It is purely presentation: the underlying text is unchanged. In particular,
21401 if you send a message containing a citation, it will contain the traditional
21402 chevron marks.")
21403 (license license:gpl3+))))
21404
21405 (define-public emacs-nix-mode
21406 (package
21407 (name "emacs-nix-mode")
21408 (version "1.4.5")
21409 (source
21410 (origin
21411 (method git-fetch)
21412 (uri (git-reference
21413 (url "https://github.com/NixOS/nix-mode")
21414 (commit (string-append "v" version))))
21415 (file-name (git-file-name name version))
21416 (sha256
21417 (base32 "1bqlhkxg0faddhvxx909dq46dxdxk4mdyhdpww92dmzgxdpq38sx"))))
21418 (build-system emacs-build-system)
21419 (inputs
21420 `(("emacs-company" ,emacs-company)
21421 ("emacs-json-mode" ,emacs-json-mode)
21422 ("emacs-mmm-mode" ,emacs-mmm-mode)))
21423 (home-page "https://github.com/NixOS/nix-mode")
21424 (synopsis "Emacs major mode for editing Nix expressions")
21425 (description "@code{nixos-mode} provides an Emacs major mode for editing
21426 Nix expressions. It supports syntax highlighting, indenting and refilling of
21427 comments.")
21428 (license license:lgpl2.1+)))
21429
21430 (define-public emacs-libmpdel
21431 (package
21432 (name "emacs-libmpdel")
21433 (version "1.2.0")
21434 (source (origin
21435 (method git-fetch)
21436 (uri (git-reference
21437 (url "https://gitea.petton.fr/mpdel/libmpdel.git")
21438 (commit (string-append "v" version))))
21439 (file-name (git-file-name name version))
21440 (sha256
21441 (base32
21442 "1nzs6g2mg3jhfhhfcxjhd9sbvwzhmr6j6mc80ln2nr4gzjqgaa4k"))))
21443 (build-system emacs-build-system)
21444 (home-page "https://gitea.petton.fr/mpdel/libmpdel")
21445 (synopsis "Emacs library to communicate with Music Player Daemon (MPD)")
21446 (description
21447 "An Emacs library client to communicate with Music Player Daemon (MPD), a
21448 flexible, powerful, server-side application for playing music.")
21449 (license license:gpl3+)))
21450
21451 (define-public emacs-mpdel
21452 (package
21453 (name "emacs-mpdel")
21454 (version "1.0.0")
21455 (source
21456 (origin
21457 (method git-fetch)
21458 (uri (git-reference
21459 (url "https://gitea.petton.fr/mpdel/mpdel.git")
21460 (commit (string-append "v" version))))
21461 (file-name (git-file-name name version))
21462 (sha256
21463 (base32
21464 "0pyyvbzskr44dxbmlp3y0r6s459fd51cvwjmnjaqxfxflr5v891g"))))
21465 (build-system emacs-build-system)
21466 (inputs
21467 `(("emacs-libmpdel" ,emacs-libmpdel)))
21468 (home-page "https://gitea.petton.fr/mpdel/mpdel")
21469 (synopsis "Emacs user interface for Music Player Daemon (MPD)")
21470 (description
21471 "MPDel provides an Emacs user interface to control playback (play, pause,
21472 next, volume) and display and control the current playlist as well as your
21473 stored playlists.")
21474 (license license:gpl3+)))
21475
21476 (define-public emacs-vterm
21477 (let ((version "0.0.1")
21478 (revision "0")
21479 (commit "a670b786539d3c8865d8f68fe0c67a2d4afbf1aa"))
21480 (package
21481 (name "emacs-vterm")
21482 (version (git-version version revision commit))
21483 (source (origin
21484 (method git-fetch)
21485 (uri (git-reference
21486 (url "https://github.com/akermu/emacs-libvterm")
21487 (commit commit)))
21488 (file-name (git-file-name name version))
21489 (sha256
21490 (base32
21491 "0s244crjkbzl2jhp9m4sm1xdhbpxwph0m3jg18livirgajvdz6hn"))))
21492 (build-system emacs-build-system)
21493 (arguments
21494 `(#:modules ((guix build emacs-build-system)
21495 ((guix build cmake-build-system) #:prefix cmake:)
21496 (guix build emacs-utils)
21497 (guix build utils))
21498 #:imported-modules (,@%emacs-build-system-modules
21499 (guix build cmake-build-system))
21500 #:phases
21501 (modify-phases %standard-phases
21502 (add-before 'add-source-to-load-path 'substitute-vterm-module-path
21503 (lambda* (#:key outputs #:allow-other-keys)
21504 (chmod "vterm.el" #o644)
21505 (emacs-substitute-sexps "vterm.el"
21506 ("(require 'vterm-module nil t)"
21507 `(module-load
21508 ,(string-append (assoc-ref outputs "out")
21509 "/lib/vterm-module.so"))))
21510 #t))
21511 (add-after 'build 'configure
21512 ;; Run cmake.
21513 (lambda* (#:key outputs #:allow-other-keys)
21514 ((assoc-ref cmake:%standard-phases 'configure)
21515 #:outputs outputs
21516 #:out-of-source? #f
21517 #:configure-flags '("-DUSE_SYSTEM_LIBVTERM=ON"))
21518 #t))
21519 (add-after 'configure 'make
21520 ;; Run make.
21521 (lambda* (#:key (make-flags '()) outputs #:allow-other-keys)
21522 ;; Compile the shared object file.
21523 (apply invoke "make" "all" make-flags)
21524 ;; Move the file into /lib.
21525 (install-file
21526 "vterm-module.so"
21527 (string-append (assoc-ref outputs "out") "/lib"))
21528 #t)))
21529 #:tests? #f))
21530 (native-inputs
21531 `(("cmake" ,cmake-minimal)
21532 ("libtool" ,libtool)
21533 ("libvterm" ,libvterm)))
21534 (home-page "https://github.com/akermu/emacs-libvterm")
21535 (synopsis "Emacs libvterm integration")
21536 (description "This package implements a bridge to @code{libvterm} to
21537 display a terminal in an Emacs buffer.")
21538 (license license:gpl3+))))
21539
21540 (define-public emacs-vterm-toggle
21541 ;; There have been no releases.
21542 (let ((commit "d10239b7bb89b78dddb82f66ac2286bc0b02747b")
21543 (revision "1"))
21544 (package
21545 (name "emacs-vterm-toggle")
21546 (version (git-version "0.0.4" revision commit))
21547 (source
21548 (origin
21549 (method git-fetch)
21550 (uri (git-reference
21551 (url "https://github.com/jixiuf/vterm-toggle")
21552 (commit commit)))
21553 (file-name (git-file-name name version))
21554 (sha256
21555 (base32 "0r9n23wg9cfy10h5f9zqr8jpkvw34f9rylri3nxq870awjab7rqi"))))
21556 (build-system emacs-build-system)
21557 (propagated-inputs `(("emacs-vterm" ,emacs-vterm)))
21558 (home-page "https://github.com/jixiuf/vterm-toggle")
21559 (synopsis "Toggle between a vterm buffer and other buffers")
21560 (description
21561 "This package provides a DWIM way to switch from an Emacs buffer to
21562 a vterm buffer and back again.")
21563 (license license:gpl3+))))
21564
21565 (define-public emacs-simple-mpc
21566 ;; There have been no releases.
21567 (let ((commit "bee8520e81292b4c7353e45b193f9a13b482f5b2")
21568 (revision "1"))
21569 (package
21570 (name "emacs-simple-mpc")
21571 (version (git-version "0" revision commit))
21572 (source
21573 (origin
21574 (method git-fetch)
21575 (uri (git-reference
21576 (url "https://github.com/jorenvo/simple-mpc")
21577 (commit commit)))
21578 (file-name (git-file-name name version))
21579 (sha256
21580 (base32
21581 "1ja06pv007cmzjjgka95jlg31k7d29jrih1yxyblsxv85s9sg21q"))))
21582 (build-system emacs-build-system)
21583 (propagated-inputs `(("emacs-s" ,emacs-s)))
21584 (home-page "https://github.com/jorenvo/simple-mpc")
21585 (synopsis "Simple Emacs frontend to mpc")
21586 (description "This package provides an Emacs major mode which acts as a
21587 front end to mpc, a client for the @dfn{Music Player Daemon} (MPD).")
21588 (license license:gpl3+))))
21589
21590 (define-public emacs-mkmcc-gnuplot-mode
21591 (package
21592 (name "emacs-mkmcc-gnuplot-mode")
21593 (version "1.2.0")
21594 (source
21595 (origin
21596 (method git-fetch)
21597 (uri (git-reference
21598 (url "https://github.com/mkmcc/gnuplot-mode")
21599 (commit "601f6392986f0cba332c87678d31ae0d0a496ce7")))
21600 (file-name (git-file-name name version))
21601 (sha256
21602 (base32
21603 "14f0yh1rjqc3337j4sbqzfb7pjim2c8a7wk1a73xkrdkmjn82vgb"))))
21604 (build-system emacs-build-system)
21605 (home-page "https://mkmcc.github.io/software/gnuplot-mode.html")
21606 (synopsis "Minimal emacs major mode for editing gnuplot scripts")
21607 (description "@code{emacs-mkmcc-gnuplot-mode} is a minimal emacs major
21608 mode for editing gnuplot scripts. It provides syntax highlighting,
21609 indentation and a command to plot the file.")
21610 (license license:gpl3+)))
21611
21612 (define-public emacs-cmake-font-lock
21613 (let ((commit "e0ceaaae19c13b66f781512e3295bfc6707b56f4")
21614 (revision "1"))
21615 (package
21616 (name "emacs-cmake-font-lock")
21617 (version (git-version "0.1.5" revision commit))
21618 (source (origin
21619 (method git-fetch)
21620 (uri (git-reference
21621 (url "https://github.com/Lindydancer/cmake-font-lock")
21622 (commit commit)))
21623 (file-name (git-file-name name version))
21624 (sha256
21625 (base32
21626 "03gsyn95dlmsn15bl353bphi3qy7ccn5bss3f7n97kf38bllh0yf"))))
21627 (build-system emacs-build-system)
21628 (native-inputs
21629 `(("emacs-faceup" ,emacs-faceup)))
21630 (arguments
21631 `(#:include (cons "^admin\\/" %default-include)))
21632 (home-page "https://github.com/Lindydancer/cmake-font-lock")
21633 (synopsis "Advanced type-aware syntax-highlighting for CMake")
21634 (description "This package highlights function arguments in CMake
21635 according to their use.")
21636 (license license:gpl3+))))
21637
21638 (define-public emacs-dtrt-indent
21639 (package
21640 (name "emacs-dtrt-indent")
21641 (version "1.4")
21642 (source (origin
21643 (method git-fetch)
21644 (uri (git-reference
21645 (url "https://github.com/jscheid/dtrt-indent")
21646 (commit version)))
21647 (file-name (git-file-name name version))
21648 (sha256
21649 (base32
21650 "11r68sh3yrrfib7pixnazispwsffrygmgplffrv8qq57xrqzyxih"))))
21651 (build-system emacs-build-system)
21652 (home-page "https://github.com/jscheid/dtrt-indent")
21653 (synopsis "Minor mode that guesses the indentation offset")
21654 (description "This package provides a minor mode that guesses the
21655 indentation offset originally used for creating source code files and
21656 transparently adjusts the corresponding settings in Emacs, making it more
21657 convenient to edit foreign files.")
21658 (license license:gpl2+)))
21659
21660 (define-public emacs-repo
21661 (package
21662 (name "emacs-repo")
21663 (version "0.2.0")
21664 (source (origin
21665 (method git-fetch)
21666 (uri (git-reference
21667 (url "https://github.com/canatella/repo-el")
21668 (commit version)))
21669 (file-name (git-file-name name version))
21670 (sha256
21671 (base32
21672 "0jgiawdnzjlrpx2j1y6djwbqncdpmyfd31q1qf1890049y8ppxnb"))))
21673 (build-system emacs-build-system)
21674 (native-inputs
21675 `(("emacs-el-mock" ,emacs-el-mock)
21676 ("ert-runner" ,emacs-ert-runner)))
21677 (propagated-inputs
21678 `(("emacs-f" ,emacs-f)
21679 ("magit" ,emacs-magit)))
21680 (home-page "https://github.com/canatella/repo-el")
21681 (synopsis "Emacs interface for the Google Repo tool")
21682 (description "This package provides integration of the Google Repo tool
21683 with emacs. It displays the output of the @code{repo status} command in a
21684 buffer and launches Magit from the status buffer for the project at point.")
21685 (license license:gpl3+)))
21686
21687 (define-public emacs-repology
21688 (package
21689 (name "emacs-repology")
21690 (version "1.1.0")
21691 (source
21692 (origin
21693 (method url-fetch)
21694 (uri (string-append "https://elpa.gnu.org/packages/"
21695 "repology-" version ".tar"))
21696 (sha256
21697 (base32 "031245rrhazj53bk1csa6x3ygzvg74w2hwjf08ficwvmdn97li90"))))
21698 (build-system emacs-build-system)
21699 (home-page "https://elpa.gnu.org/packages/repology.html")
21700 (synopsis "Repology API access via Elisp")
21701 (description
21702 "This package provides tools to query Repology API (see
21703 @url{https://repology.org/api}), process results, and display them.")
21704 (license license:gpl3+)))
21705
21706 (define-public emacs-alect-themes
21707 (package
21708 (name "emacs-alect-themes")
21709 (version "0.9")
21710 (source (origin
21711 (method git-fetch)
21712 (uri (git-reference
21713 (url "https://github.com/alezost/alect-themes")
21714 (commit (string-append "v" version))))
21715 (file-name (git-file-name name version))
21716 (sha256
21717 (base32
21718 "0nffxpdm0sa7bynwi0rmlwpc4qmvbda5ankhzz7fmk4ap9fkjxv9"))))
21719 (build-system emacs-build-system)
21720 (home-page "https://github.com/alezost/alect-themes")
21721 (synopsis "Low contrast, light, dark and black color theme for Emacs")
21722 (description "@code{emacs-alect-themes} provides configurable light, dark
21723 and black color themes for Emacs. The themes are intended to be used with
21724 GUI.")
21725 (license license:gpl3+)))
21726
21727 (define-public emacs-google-c-style
21728 (let ((commit "6271f3f473ceb3a7fef99388a3040903b1a145f1")
21729 (revision "0"))
21730 (package
21731 (name "emacs-google-c-style")
21732 (version (git-version "0.1" revision commit))
21733 (source (origin
21734 (method git-fetch)
21735 (uri (git-reference
21736 (url "https://github.com/google/styleguide")
21737 (commit commit)))
21738 (file-name (git-file-name name version))
21739 (sha256
21740 (base32
21741 "1jghyyasdl15c4gaqaxmdn43am63k6bykn5ab83f1ahv9zi1krxk"))))
21742 (build-system emacs-build-system)
21743 (home-page "https://github.com/google/styleguide")
21744 (synopsis "Emacs settings file for Google C/C++ style")
21745 (description "@code{emacs-google-c-style} provides an Emacs settings
21746 file for Google C and C++ style.")
21747 (license license:gpl1+))))
21748
21749 (define-public emacs-redshank
21750 (let ((commit "f98e68f532e622bcd464292ca4a9cf5fbea14ebb")
21751 (revision "1"))
21752 (package
21753 (name "emacs-redshank")
21754 (version (git-version "0.1" revision commit))
21755 (source (origin
21756 (method git-fetch)
21757 (uri (git-reference
21758 (url "http://www.foldr.org/~michaelw/projects/redshank.git")
21759 (commit commit)))
21760 (file-name (git-file-name name version))
21761 (sha256
21762 (base32
21763 "1jdkgvd5xy9hl5q611jwah2n05abjp7qcy9sj4k1z11x0ii62b6p"))))
21764 (build-system emacs-build-system)
21765 (propagated-inputs
21766 `(("emacs-paredit" ,emacs-paredit)))
21767 (home-page "http://www.foldr.org/~michaelw/emacs/redshank/")
21768 (synopsis "Common Lisp Editing Extensions (for Emacs)")
21769 (description "Redshank is a collection of code-wrangling Emacs macros
21770 mostly geared towards Common Lisp, but some are useful for other Lisp
21771 dialects, too. Redshank's code transformations aim to be expression-based (as
21772 opposed to character-based).")
21773 (license license:gpl1+))))
21774
21775 (define-public emacs-disk-usage
21776 (package
21777 (name "emacs-disk-usage")
21778 (version "1.3.3")
21779 (source
21780 (origin
21781 (method git-fetch)
21782 (uri (git-reference
21783 (url "https://gitlab.com/Ambrevar/emacs-disk-usage")
21784 (commit version)))
21785 (file-name (git-file-name name version))
21786 (sha256
21787 (base32
21788 "0hv2gsd8k5fbjgckgiyisq4rn1i7y4rchbjy8kmixjv6mx563bll"))))
21789 (build-system emacs-build-system)
21790 (home-page "https://gitlab.com/Ambrevar/emacs-disk-usage")
21791 (synopsis "Sort and browse disk usage listings with Emacs")
21792 (description "Disk Usage is a file system analyzer: it offers a tabulated
21793 view of file listings sorted by size. Directory sizes are computed
21794 recursively. The results are cached for speed.")
21795 (license license:gpl3+)))
21796
21797 (define-public emacs-orgit
21798 (package
21799 (name "emacs-orgit")
21800 (version "1.6.3")
21801 (home-page "https://github.com/magit/orgit")
21802 (source (origin
21803 (method git-fetch)
21804 (uri (git-reference
21805 (url home-page)
21806 (commit (string-append "v" version))))
21807 (file-name (git-file-name name version))
21808 (sha256
21809 (base32
21810 "08amzcvw483dpfq5r34ysn84wzd538qk0jblc94vgcaidspx6481"))))
21811 (build-system emacs-build-system)
21812 (propagated-inputs
21813 `(("emacs-dash" ,emacs-dash)
21814 ("emacs-magit" ,emacs-magit)))
21815 (synopsis "Support for Org links to Magit buffers")
21816 (description "This package defines several Org link types, which can be
21817 used to link to certain Magit buffers. Use the command
21818 @command{org-store-link} while such a buffer is current to store a link.
21819 Later you can insert it into an Org buffer using the command
21820 @code{org-insert-link}.")
21821 (license license:gpl3+)))
21822
21823 (define-public emacs-amx
21824 (package
21825 (name "emacs-amx")
21826 (version "3.3")
21827 (source
21828 (origin
21829 (method git-fetch)
21830 (uri (git-reference
21831 (url "https://github.com/DarwinAwardWinner/amx")
21832 (commit (string-append "v" version))))
21833 (file-name (git-file-name name version))
21834 (sha256
21835 (base32 "0ikjzs119g57cwh2v3jmy63lggqc0ib99q5gsl93slkk4y2ihavw"))))
21836 (build-system emacs-build-system)
21837 (propagated-inputs
21838 `(("emacs-s" ,emacs-s)))
21839 (home-page "https://github.com/DarwinAwardWinner/amx")
21840 (synopsis "Alternative M-x interface for Emacs")
21841 (description "Amx is an alternative interface for M-x in Emacs. It
21842 provides several enhancements over the ordinary
21843 @code{execute-extended-command}, such as prioritizing your most-used commands
21844 in the completion list and showing keyboard shortcuts, and it supports several
21845 completion systems for selecting commands, such as Ido and Ivy.")
21846 (license license:gpl3+)))
21847
21848 (define-public emacs-lorem-ipsum
21849 (let ((commit "4b39f6fed455d67f635b3837cf5668bf74d0f6cd"))
21850 (package
21851 (name "emacs-lorem-ipsum")
21852 (version (git-version "0.2" "1" commit))
21853 (home-page "https://github.com/jschaf/emacs-lorem-ipsum/")
21854 (source (origin
21855 (method git-fetch)
21856 (uri (git-reference
21857 (url home-page)
21858 (commit commit)))
21859 (file-name (git-file-name name version))
21860 (sha256
21861 (base32
21862 "0a3b18p3vdjci89prsgdzjnfxsl8p67vjhf8ai4qdng7zvh50lir"))))
21863 (build-system emacs-build-system)
21864 (synopsis "Insert dummy pseudo Latin text in Emacs")
21865 (description "This package provides convenience functions to insert
21866 dummy Latin text into a buffer. This can be useful if you need to produce
21867 paragraphs or pages of text for testing purposes.")
21868 (license license:gpl3+))))
21869
21870 (define-public emacs-lisp-extra-font-lock
21871 (let ((commit "4605eccbe1a7fcbd3cacf5b71249435413b4db4f"))
21872 (package
21873 (name "emacs-lisp-extra-font-lock")
21874 (version (git-version "0.0.6" "1" commit))
21875 (home-page "https://github.com/Lindydancer/lisp-extra-font-lock")
21876 (source (origin
21877 (method git-fetch)
21878 (uri (git-reference
21879 (url home-page)
21880 (commit commit)))
21881 (file-name (git-file-name name version))
21882 (sha256
21883 (base32
21884 "152vcp3mdlv33jf5va4rinl1d0k960gnfhbrqqrafazgx9j3ya8w"))))
21885 (build-system emacs-build-system)
21886 (synopsis "Highlight bound variables and quoted expressions in Emacs")
21887 (description "This package highlight the location where local variables
21888 is created (bound, for example, by let) as well as quoted and backquoted
21889 constant expressions.")
21890 (license license:gpl3+))))
21891
21892 (define-public emacs-docker-tramp
21893 (package
21894 (name "emacs-docker-tramp")
21895 (version "0.1")
21896 (source
21897 (origin
21898 (method git-fetch)
21899 (uri (git-reference
21900 (url "https://github.com/emacs-pe/docker-tramp.el")
21901 (commit (string-append "v" version))))
21902 (file-name (git-file-name name version))
21903 (sha256
21904 (base32
21905 "0lxvzmfg52fhxrhbvp92zwp7cv4i1rlxnkyyzgngj3sjm7y60yvg"))))
21906 (build-system emacs-build-system)
21907 (home-page "https://github.com/emacs-pe/docker-tramp.el")
21908 (synopsis "TRAMP integration for docker containers")
21909 (description
21910 "This package provides a TRAMP method for Docker containers.")
21911 (license license:gpl3+)))
21912
21913 (define-public emacs-docker
21914 (package
21915 (name "emacs-docker")
21916 (version "1.3.0")
21917 (source (origin
21918 (method git-fetch)
21919 (uri (git-reference
21920 (url "https://github.com/Silex/docker.el")
21921 (commit version)))
21922 (file-name (git-file-name name version))
21923 (sha256
21924 (base32
21925 "1g8r1faqp0z0vqp9qrl8m84pa0v2ddvc91klphdkfmldwv7rfipw"))))
21926 (inputs
21927 `(("emacs-undercover" ,emacs-undercover)))
21928 (propagated-inputs
21929 `(("emacs-dash" ,emacs-dash)
21930 ("emacs-docker-tramp" ,emacs-docker-tramp)
21931 ("emacs-magit-popup" ,emacs-magit-popup)
21932 ("emacs-s" ,emacs-s)
21933 ("emacs-tablist" ,emacs-tablist)
21934 ("emacs-json-mode" ,emacs-json-mode)))
21935 (arguments
21936 `(#:phases
21937 (modify-phases %standard-phases
21938 (delete 'check)))) ;no tests
21939 (build-system emacs-build-system)
21940 (home-page "https://github.com/Silex/docker.el")
21941 (synopsis "Manage docker from Emacs")
21942 (description "This package provides an Emacs interface for Docker.")
21943 (license license:gpl3+)))
21944
21945 (define-public emacs-dockerfile-mode
21946 (package
21947 (name "emacs-dockerfile-mode")
21948 (version "1.3")
21949 (source
21950 (origin
21951 (method git-fetch)
21952 (uri (git-reference
21953 (url "https://github.com/spotify/dockerfile-mode")
21954 (commit (string-append "v" version))))
21955 (file-name (git-file-name name version))
21956 (sha256
21957 (base32
21958 "1br73dsls42fn4rwagljkpa3l4wwj6f7jxfn3gmgl6c54z81av3v"))))
21959 (build-system emacs-build-system)
21960 (propagated-inputs
21961 `(("emacs-s" ,emacs-s)))
21962 (home-page "https://github.com/spotify/dockerfile-mode")
21963 (synopsis "Major mode for editing Dockerfile")
21964 (description
21965 "This package provides a major mode @code{dockerfile-mode} for use with
21966 the standard @code{Dockerfile} file format.")
21967 (license license:asl2.0)))
21968
21969 (define-public emacs-lsp-mode
21970 (package
21971 (name "emacs-lsp-mode")
21972 (version "7.0.1")
21973 (source
21974 (origin
21975 (method git-fetch)
21976 (uri (git-reference
21977 (url "https://github.com/emacs-lsp/lsp-mode")
21978 (commit version)))
21979 (file-name (git-file-name name version))
21980 (sha256
21981 (base32 "1z8zm7qr21hvhl6rnbznv2l9drh1pp5y4zkjrx5ac4x77b8i4aaz"))))
21982 (build-system emacs-build-system)
21983 (propagated-inputs
21984 `(("emacs-dash" ,emacs-dash)
21985 ("emacs-f" ,emacs-f)
21986 ("emacs-ht" ,emacs-ht)
21987 ("emacs-hydra" ,emacs-hydra)
21988 ("emacs-markdown-mode" ,emacs-markdown-mode)
21989 ("emacs-spinner" ,emacs-spinner)))
21990 (home-page "https://emacs-lsp.github.io/lsp-mode/")
21991 (synopsis "Emacs client and library for the Language Server Protocol")
21992 (description
21993 "LSP mode is a client and library implementation for the Language Server
21994 Protocol. This mode creates an IDE-like experience by providing optional
21995 integration with other popular Emacs packages like Company, Flycheck, and
21996 Projectile.")
21997 (license license:gpl3+)))
21998
21999 (define-public emacs-lsp-treemacs
22000 (package
22001 (name "emacs-lsp-treemacs")
22002 (version "0.3")
22003 (source
22004 (origin
22005 (method git-fetch)
22006 (uri (git-reference
22007 (url "https://github.com/emacs-lsp/lsp-treemacs")
22008 (commit version)))
22009 (file-name (git-file-name name version))
22010 (sha256
22011 (base32 "1z9cb7i546pbzvxii6lsj31jq8m70xrzscphl5z71vh93sydyhkb"))))
22012 (build-system emacs-build-system)
22013 (propagated-inputs
22014 `(("emacs-lsp-mode" ,emacs-lsp-mode)
22015 ("emacs-treemacs" ,emacs-treemacs)))
22016 (home-page "https://github.com/emacs-lsp/lsp-treemacs")
22017 (synopsis "Integration between LSP mode and treemacs")
22018 (description
22019 "This package provides integration between LSP mode and treemacs,
22020 and implementation of treeview controls using treemacs as a tree renderer.")
22021 (license license:gpl3+)))
22022
22023 (define-public emacs-dap-mode
22024 (package
22025 (name "emacs-dap-mode")
22026 (version "0.6")
22027 (source
22028 (origin
22029 (method git-fetch)
22030 (uri (git-reference
22031 (url "https://github.com/emacs-lsp/dap-mode")
22032 (commit version)))
22033 (file-name (git-file-name name version))
22034 (sha256
22035 (base32 "1d4hdydfk86d4slibigyhwng8wx3vzyap8hp5iv0h7wr6868m4iv"))))
22036 (build-system emacs-build-system)
22037 (propagated-inputs
22038 `(("emacs-bui" ,emacs-bui)
22039 ("emacs-lsp-mode" ,emacs-lsp-mode)
22040 ("emacs-posframe" ,emacs-posframe)
22041 ("emacs-lsp-treemacs" ,emacs-lsp-treemacs)))
22042 (home-page "https://emacs-lsp.github.io/dap-mode")
22043 (synopsis "Emacs client/library for Debug Adapter Protocol ")
22044 (description
22045 "Dap mode is an Emacs client/library for Debug Adapter
22046 Protocol (DAP), a wire protocol for communication between client and
22047 debug server. It is similar to the LSP but provides integration with
22048 Debug server.")
22049 (license license:gpl3+)))
22050
22051 (define-public emacs-pfuture
22052 (package
22053 (name "emacs-pfuture")
22054 (version "1.9")
22055 (source (origin
22056 (method git-fetch)
22057 (uri (git-reference
22058 (url "https://github.com/Alexander-Miller/pfuture")
22059 (commit version)))
22060 (file-name (git-file-name name version))
22061 (sha256
22062 (base32
22063 "1chpin5277vbl2xvsl04pzzk7a9dbcvclibm2496gz6yvd19pwsf"))))
22064 (build-system emacs-build-system)
22065 (home-page
22066 "https://github.com/Alexander-Miller/pfuture")
22067 (synopsis "Simple wrapper around asynchronous processes for Emacs")
22068 (description "This package provides a simple wrapper around asynchronous
22069 processes for Emacs")
22070 (license license:gpl3+)))
22071
22072 (define-public emacs-treemacs
22073 (package
22074 (name "emacs-treemacs")
22075 (version "2.8")
22076 (source (origin
22077 (method git-fetch)
22078 (uri (git-reference
22079 (url "https://github.com/Alexander-Miller/treemacs")
22080 (commit version)))
22081 (file-name (git-file-name name version))
22082 (sha256
22083 (base32
22084 "0m083g3pg0n4ymi1w0jx34awr7cqbm4r561adij9kklblxsz7sc2"))))
22085 (build-system emacs-build-system)
22086 (propagated-inputs
22087 `(("emacs-ace-window" ,emacs-ace-window)
22088 ("emacs-dash" ,emacs-dash)
22089 ("emacs-f" ,emacs-f)
22090 ("emacs-ht" ,emacs-ht)
22091 ("emacs-hydra" ,emacs-hydra)
22092 ("emacs-pfuture" ,emacs-pfuture)
22093 ("emacs-s" ,emacs-s)))
22094 (native-inputs
22095 `(("emacs-buttercup" ,emacs-buttercup)
22096 ("emacs-el-mock" ,emacs-el-mock)))
22097 (inputs
22098 `(("python" ,python)))
22099 (arguments
22100 `(#:tests? #t
22101 #:phases
22102 (modify-phases %standard-phases
22103 (add-after 'unpack 'fix-makefile
22104 (lambda _
22105 (substitute* "Makefile"
22106 (("@\\$\\(CASK\\) exec ") "")
22107 ;; Guix does not need to prepare dependencies before testing.
22108 (("test: prepare") "test:"))
22109 #t))
22110 (add-after 'fix-makefile 'chdir-elisp
22111 ;; Elisp directory is not in root of the source.
22112 (lambda _
22113 (chdir "src/elisp")))
22114 (replace 'check
22115 ;; FIXME: Work around ‘treemacs--parse-collapsed-dirs’ and
22116 ;; `treemacs-collect-child-nodes' test failures.
22117 (lambda _
22118 (with-directory-excursion "../.." ;treemacs root
22119 (chmod "test/test-treemacs.el" #o644)
22120 (emacs-substitute-sexps "test/test-treemacs.el"
22121 ("(describe \"treemacs--parse-collapsed-dirs\"" "")
22122 ("\"Finds only direct childre\"" ""))
22123 (invoke "make" "test"))))
22124 (add-before 'install 'patch-paths
22125 (lambda* (#:key inputs outputs #:allow-other-keys)
22126 (with-directory-excursion "../.." ;treemacs root
22127 (chmod "src/elisp/treemacs-core-utils.el" #o644)
22128 (emacs-substitute-variables "src/elisp/treemacs-core-utils.el"
22129 ("treemacs-dir"
22130 (string-append (assoc-ref outputs "out") "/")))
22131 (chmod "src/elisp/treemacs-icons.el" #o644)
22132 (substitute* "src/elisp/treemacs-icons.el"
22133 (("icons/default") "share/emacs-treemacs/images"))
22134 (chmod "src/elisp/treemacs-customization.el" #o644)
22135 (emacs-substitute-variables "src/elisp/treemacs-customization.el"
22136 ("treemacs-python-executable"
22137 (string-append (assoc-ref inputs "python") "/bin/python3")))
22138 (chmod "src/elisp/treemacs-async.el" #o644)
22139 (substitute* "src/elisp/treemacs-async.el"
22140 (("src/scripts") (string-append "share/" ,name "/scripts"))))
22141 #t))
22142 (add-after 'install 'install-data
22143 (lambda* (#:key outputs #:allow-other-keys)
22144 (let ((out (assoc-ref outputs "out")))
22145 (with-directory-excursion "../.." ;treemacs root
22146 (copy-recursively "icons/default"
22147 (string-append out "/share/" ,name "/images"))
22148 (copy-recursively
22149 "src/scripts"
22150 (string-append out "/share/" ,name "/scripts"))
22151 #t)))))))
22152 (home-page "https://github.com/Alexander-Miller/treemacs")
22153 (synopsis "Emacs tree style file explorer")
22154 (description
22155 "Treemacs is a file and project explorer similar to NeoTree or Vim's
22156 NerdTree, but largely inspired by the Project Explorer in Eclipse. It shows
22157 the file system outlines of your projects in a simple tree layout allowing
22158 quick navigation and exploration, while also possessing basic file management
22159 utilities.")
22160 (license license:gpl3+)))
22161
22162 (define-public emacs-treemacs-extra
22163 (package
22164 (inherit emacs-treemacs)
22165 (name "emacs-treemacs-extra")
22166 (propagated-inputs
22167 `(,@(package-propagated-inputs emacs-treemacs)
22168 ("emacs-evil" ,emacs-evil)
22169 ("emacs-magit" ,emacs-magit)
22170 ("emacs-projectile" ,emacs-projectile)
22171 ("emacs-persp-mode" ,emacs-persp-mode)))
22172 (arguments
22173 (substitute-keyword-arguments
22174 (package-arguments emacs-treemacs)
22175 ((#:phases phases)
22176 `(modify-phases ,phases
22177 (add-after 'chdir-elisp 'copy-extra
22178 (lambda _
22179 (copy-recursively "../extra" ".")))))))))
22180
22181 (define-public emacs-libyaml
22182 ;; Upstream made no release so far.
22183 (let ((version "0")
22184 (revision "1")
22185 (commit "703e0d448c7ee24e25b513a3c65980c80e166805"))
22186 (package
22187 (name "emacs-libyaml")
22188 (version (git-version version revision commit))
22189 (source
22190 (origin
22191 (method git-fetch)
22192 (uri (git-reference
22193 (url "https://github.com/syohex/emacs-libyaml")
22194 (commit commit)))
22195 (file-name (git-file-name name version))
22196 (sha256
22197 (base32 "08l7pm9v50ykd3fkbm0bh2kcd57cadbc5i9r6rj51vd32w3pl2yl"))))
22198 (build-system emacs-build-system)
22199 (arguments
22200 `(#:tests? #f ;no test
22201 #:modules ((guix build emacs-build-system)
22202 (guix build emacs-utils)
22203 (guix build utils))
22204 #:imported-modules (,@%emacs-build-system-modules
22205 (guix build gnu-build-system))
22206 #:phases
22207 (modify-phases %standard-phases
22208 (add-before 'add-source-to-load-path 'substitute-libyaml-core-path
22209 (lambda* (#:key outputs #:allow-other-keys)
22210 (chmod "libyaml.el" #o644)
22211 (substitute* "libyaml.el"
22212 (("^\\(require 'libyaml-core\\)")
22213 (string-append "(module-load \"" (assoc-ref outputs "out")
22214 "/lib/libyaml-core.so\")")))
22215 #t))
22216 (add-after 'check 'make
22217 ;; Run make.
22218 (lambda* (#:key (make-flags '()) outputs #:allow-other-keys)
22219 ;; Compile the shared object file.
22220 (apply invoke "make" "all" "CPPFLAGS=" make-flags)
22221 ;; Move the file into /lib.
22222 (install-file "libyaml-core.so"
22223 (string-append (assoc-ref outputs "out") "/lib"))
22224 #t)))))
22225 (native-inputs `(("libyaml" ,libyaml)))
22226 (home-page "https://github.com/syohex/emacs-libyaml")
22227 (synopsis "Libyaml bindings for Emacs")
22228 (description
22229 "This package implements bindings for LibYAML to be able to parse YAML
22230 files in Elisp.")
22231 (license license:gpl3+))))
22232
22233 (define-public emacs-lsp-java
22234 (package
22235 (name "emacs-lsp-java")
22236 (version "3.1")
22237 (source (origin
22238 (method git-fetch)
22239 (uri (git-reference
22240 (url "https://github.com/emacs-lsp/lsp-java")
22241 (commit version)))
22242 (file-name (git-file-name name version))
22243 (sha256
22244 (base32
22245 "1h0hqgjpk5mbylma1fkva0vx45achf0k7ab2c5y8a2449niww90h"))))
22246 (build-system emacs-build-system)
22247 (propagated-inputs
22248 `(("emacs-dap-mode" ,emacs-dap-mode)
22249 ("emacs-lsp-mode" ,emacs-lsp-mode)
22250 ("emacs-markdown-mode" ,emacs-markdown-mode)
22251 ("emacs-dash" ,emacs-dash)
22252 ("emacs-f" ,emacs-f)
22253 ("emacs-ht" ,emacs-ht)
22254 ("emacs-request" ,emacs-request)
22255 ("emacs-treemacs" ,emacs-treemacs)))
22256 (home-page "https://github.com/emacs-lsp/lsp-java/")
22257 (synopsis "Java support for lsp-mode")
22258 (description "Emacs Java IDE using Eclipse JDT Language Server.")
22259 (license license:gpl3+)))
22260
22261 (define-public emacs-lsp-ui
22262 (package
22263 (name "emacs-lsp-ui")
22264 (version "7.0.1")
22265 (source (origin
22266 (method git-fetch)
22267 (uri (git-reference
22268 (url "https://github.com/emacs-lsp/lsp-ui")
22269 (commit version)))
22270 (file-name (git-file-name name version))
22271 (sha256
22272 (base32
22273 "09dmhhxmfjnzdc5kygwsjf8nwqlnq9rbgrca679s2wy93miqj7vc"))))
22274 (build-system emacs-build-system)
22275 (propagated-inputs
22276 `(("emacs-dash" ,emacs-dash)
22277 ("emacs-lsp-mode" ,emacs-lsp-mode)
22278 ("emacs-markdown-mode" ,emacs-markdown-mode)
22279 ("emacs-flycheck" ,emacs-flycheck)))
22280 (home-page "https://github.com/emacs-lsp/lsp-ui")
22281 (synopsis "User interface extensions for @code{lsp-mode}")
22282 (description
22283 "@code{LSP-ui} contains several enhancements and integrations for
22284 @code{lsp-mode}, such as visual flychecking, displaying references in-line,
22285 and code peeking.")
22286 (license license:gpl3+)))
22287
22288 (define-public emacs-lsp-lua-emmy
22289 (let ((commit "ab53fb2a8b8942804eb75bab5624fd19f1d360bf"))
22290 (package
22291 (name "emacs-lsp-lua-emmy")
22292 (version (git-version "0.1.0" "1" commit))
22293 (source (origin
22294 (method git-fetch)
22295 (uri (git-reference
22296 (url "https://github.com/phenix3443/lsp-lua-emmy")
22297 (commit commit)))
22298 (file-name (git-file-name name version))
22299 (sha256
22300 (base32
22301 "0rbizis73n1w5ig07fj1han74chbc1zpbp5bn37rj0gz608aqka8"))))
22302 (build-system emacs-build-system)
22303 (propagated-inputs
22304 `(("emacs-lsp-mode" ,emacs-lsp-mode)))
22305 (home-page "https://github.com/phenix3443/lsp-lua-emmy/")
22306 (synopsis "Lua support in @code{lsp-mode} client for Emacs")
22307 (description "This package provides a Lua language support in
22308 @code{lsp-mode} client for Emacs.")
22309 (license license:gpl3+))))
22310
22311 (define-public emacs-lsp-ivy
22312 (package
22313 (name "emacs-lsp-ivy")
22314 (version "0.4")
22315 (source
22316 (origin
22317 (method git-fetch)
22318 (uri (git-reference
22319 (url "https://github.com/emacs-lsp/lsp-ivy")
22320 (commit version)))
22321 (file-name (git-file-name name version))
22322 (sha256
22323 (base32 "08dpn0vcfdwwysijwdpnnj91m69yw0q464i0wmp51zpj3dyd4kb1"))))
22324 (build-system emacs-build-system)
22325 (propagated-inputs
22326 `(("emacs-dash" ,emacs-dash)
22327 ("emacs-ivy" ,emacs-ivy)
22328 ("emacs-lsp-mode" ,emacs-lsp-mode)))
22329 (home-page "https://github.com/emacs-lsp/lsp-ivy")
22330 (synopsis "Provide LSP-enhanced completion for symbols")
22331 (description
22332 "This package enhances @code{ivy} with completion for symbols from
22333 workspaces with a LSP-compliant server running.")
22334 (license license:gpl3+)))
22335
22336 (define-public emacs-helm-lsp
22337 (package
22338 (name "emacs-helm-lsp")
22339 (version "0.2")
22340 (source (origin
22341 (method git-fetch)
22342 (uri (git-reference
22343 (url "https://github.com/emacs-lsp/helm-lsp")
22344 (commit version)))
22345 (file-name (git-file-name name version))
22346 (sha256
22347 (base32
22348 "1vq3qpqm3ndqyvf5bk8qhqcr60x9ykc0ipk2a43rr3yjm4z1b6s9"))))
22349 (build-system emacs-build-system)
22350 (propagated-inputs
22351 `(("emacs-helm" ,emacs-helm)
22352 ("emacs-lsp-mode" ,emacs-lsp-mode)
22353 ("emacs-dash" ,emacs-dash)))
22354 (home-page "https://github.com/emacs-lsp/helm-lsp")
22355 (synopsis "Provide LSP-enhanced completion for symbols")
22356 (description
22357 "This package enhances @code{helm} with completion for symbols from
22358 workspaces with a LSP-compliant server running.")
22359 (license license:gpl3+)))
22360
22361 (define-public emacs-helm-notmuch
22362 (package
22363 (name "emacs-helm-notmuch")
22364 (version "1.2")
22365 (home-page "https://github.com/emacs-helm/helm-notmuch/")
22366 (source (origin
22367 (method git-fetch)
22368 (uri (git-reference
22369 (url home-page)
22370 (commit version)))
22371 (file-name (git-file-name name version))
22372 (sha256
22373 (base32
22374 "1k038dbdpaa411gl4071x19fklhnizhr346plxw23lsnxir9dhqc"))))
22375 (build-system emacs-build-system)
22376 (propagated-inputs
22377 `(("emacs-helm" ,emacs-helm)
22378 ("notmuch" ,notmuch)))
22379 (synopsis "Search emails with Emacs Notmuch and Helm")
22380 (description
22381 "This package can be used to search emails in Emacs, searching result
22382 displays as you type thanks to Helm, though @command{notmuch-search} does the
22383 real search.")
22384 (license license:gpl3+)))
22385
22386 (define-public emacs-elmacro
22387 (package
22388 (name "emacs-elmacro")
22389 (version "1.1.1")
22390 (home-page "https://github.com/Silex/elmacro")
22391 (source (origin
22392 (method git-fetch)
22393 (uri (git-reference
22394 (url home-page)
22395 (commit version)))
22396 (file-name (git-file-name name version))
22397 (sha256
22398 (base32
22399 "1x4wnsshf9h10mp51x92vs5rxw5had4gmw6zz4f53czx1ymcv16a"))))
22400 (build-system emacs-build-system)
22401 (propagated-inputs
22402 `(("emacs-s" ,emacs-s)
22403 ("emacs-dash" ,emacs-dash)))
22404 (synopsis "Convert keyboard macros to Emacs Lisp")
22405 (description
22406 "This package displays keyboard macros or latest interactive commands
22407 as Emacs Lisp.")
22408 (license license:gpl3+)))
22409
22410 (define-public emacs-transient
22411 (package
22412 (name "emacs-transient")
22413 (version "0.3.0")
22414 (source (origin
22415 (method git-fetch)
22416 (uri (git-reference
22417 (url "https://github.com/magit/transient")
22418 (commit (string-append "v" version))))
22419 (file-name (git-file-name name version))
22420 (sha256
22421 (base32
22422 "0g694ydmb9zjn99hxgfjd3m73kpmnkbrgqhr73b4crbxza5sl29c"))))
22423 (build-system emacs-build-system)
22424 (arguments
22425 `(#:tests? #f ;no test suite
22426 #:phases
22427 (modify-phases %standard-phases
22428 (add-after 'unpack 'build-info-manual
22429 (lambda _
22430 (invoke "make" "info")
22431 ;; Move the info file to lisp so that it gets installed by the
22432 ;; emacs-build-system.
22433 (rename-file "docs/transient.info" "lisp/transient.info")
22434 #t))
22435 (add-after 'build-info-manual 'enter-lisp-directory
22436 (lambda _
22437 (chdir "lisp")
22438 #t)))))
22439 (native-inputs
22440 `(("texinfo" ,texinfo)))
22441 (propagated-inputs
22442 `(("dash" ,emacs-dash)))
22443 (home-page "https://magit.vc/manual/transient")
22444 (synopsis "Transient commands in Emacs")
22445 (description "Taking inspiration from prefix keys and prefix arguments
22446 in Emacs, Transient implements a similar abstraction involving a prefix
22447 command, infix arguments and suffix commands. We could call this abstraction
22448 a \"transient command\", but because it always involves at least two
22449 commands (a prefix and a suffix) we prefer to call it just a \"transient\".")
22450 (license license:gpl3+)))
22451
22452 (define-public emacs-forge
22453 (let ((commit "05ef02913004826165c383bd6d2ff6574542b76c"))
22454 (package
22455 (name "emacs-forge")
22456 (version (git-version "0.1.0" "5" commit))
22457 (source
22458 (origin
22459 (method git-fetch)
22460 (uri (git-reference
22461 (url "https://github.com/magit/forge")
22462 (commit commit)))
22463 (file-name (git-file-name name version))
22464 (sha256
22465 (base32
22466 "1vv7xlawj2zmwqk69qlsqflhh0lbyqm5xf4x8l4v2069g0k8mmx1"))))
22467 (build-system emacs-build-system)
22468 (native-inputs
22469 `(("texinfo" ,texinfo)))
22470 (propagated-inputs
22471 `(("emacs-closql" ,emacs-closql)
22472 ("emacs-dash" ,emacs-dash)
22473 ("emacs-emacsql-sqlite" ,emacs-emacsql)
22474 ("emacs-ghub" ,emacs-ghub)
22475 ("emacs-let-alist" ,emacs-let-alist)
22476 ("emacs-magit" ,emacs-magit)
22477 ("emacs-markdown-mode" ,emacs-markdown-mode)
22478 ("emacs-transient" ,emacs-transient)))
22479 (arguments
22480 `(#:tests? #f ;no tests
22481 #:phases
22482 (modify-phases %standard-phases
22483 (add-after 'unpack 'build-info-manual
22484 (lambda _
22485 (invoke "make" "info")
22486 ;; Move the info file to lisp so that it gets installed by the
22487 ;; emacs-build-system.
22488 (rename-file "docs/forge.info" "lisp/forge.info")))
22489 (add-after 'build-info-manual 'chdir-lisp
22490 (lambda _
22491 (chdir "lisp")
22492 #t)))))
22493 (home-page "https://github.com/magit/forge/")
22494 (synopsis "Access Git forges from Magit")
22495 (description "Work with Git forges, such as Github and Gitlab, from the
22496 comfort of Magit and the rest of Emacs.")
22497 (license license:gpl3+))))
22498
22499 (define-public emacs-matcha
22500 (let ((commit "c7df5cf5cdac9ae369e241342389ccda0205eab9"))
22501 (package
22502 (name "emacs-matcha")
22503 (version (git-version "0.0.1" "1" commit)) ;no upstream release
22504 (source (origin
22505 (method git-fetch)
22506 (uri (git-reference
22507 (url "https://github.com/jojojames/matcha")
22508 (commit commit)))
22509 (file-name (git-file-name name version))
22510 (sha256
22511 (base32
22512 "1lfnh1glg6al677m7ci0x8g5wjdhjxlfl3nv1f1ppsw4dpnwsj9b"))))
22513 (propagated-inputs
22514 `(("emacs-hydra" ,emacs-hydra)
22515 ("emacs-transient" ,emacs-transient)))
22516 (build-system emacs-build-system)
22517 (home-page "https://github.com/jojojames/matcha/")
22518 (synopsis "Collection of hydras with a generic interface to launch them")
22519 (description "Matcha provides a collection of transients for various
22520 packages with a consistent way to use them.")
22521 (license license:gpl3+))))
22522
22523 (define-public emacs-undo-propose-el
22524 (let ((commit "f80baee566807d733fbacbab08a897bcd62579c3")
22525 (revision "3"))
22526 (package
22527 (name "emacs-undo-propose-el")
22528 (version (git-version "3.0.0" revision commit))
22529 (source
22530 (origin
22531 (method git-fetch)
22532 (uri (git-reference
22533 (url "https://github.com/jackkamm/undo-propose-el")
22534 (commit commit)))
22535 (file-name (git-file-name name version))
22536 (sha256
22537 (base32
22538 "00rqz63bhh66q78l646q3w16gydygj8h4d8np0dpbifgzciak90b"))))
22539 (build-system emacs-build-system)
22540 (arguments
22541 `(#:tests? #t
22542 #:test-command '("make" "test")))
22543 (home-page "https://github.com/jackkamm/undo-propose-el")
22544 (synopsis "Simple and safe navigation of @code{undo} history")
22545 (description "This package permits navigation of @code{undo} history in a
22546 temporary buffer, which is read-only save for @code{undo} commands, and
22547 subsequent committal of a chain of @code{undo} commands as a single edit in
22548 the @code{undo} history.")
22549 (license license:gpl3+))))
22550
22551 (define-public emacs-elisp-docstring-mode
22552 (let ((commit "f512e509dd690f65133e55563ebbfd2dede5034f")
22553 (version "0.0.1")
22554 (revision "1"))
22555 (package
22556 (name "emacs-elisp-docstring-mode")
22557 (version (git-version version revision commit))
22558 (source
22559 (origin
22560 (method git-fetch)
22561 (uri (git-reference
22562 (url "https://github.com/Fuco1/elisp-docstring-mode")
22563 (commit commit)))
22564 (file-name (git-file-name name version))
22565 (sha256
22566 (base32
22567 "0al8m75p359h4n82rf0dsl22qfdg9cwwywn5pn7x6gb96c7qrqaa"))))
22568 (build-system emacs-build-system)
22569 (home-page "https://github.com/Fuco1/elisp-docstring-mode")
22570 (synopsis "Major mode for editing Emacs Lisp docstrings")
22571 (description "This package provides font lock and automatic escaping and
22572 unescaping of quotes.")
22573 (license license:gpl3+))))
22574
22575 (define-public emacs-vimrc-mode
22576 (let ((commit "13bc150a870d5d4a95f1111e4740e2b22813c30e")
22577 (version "0.3.1")
22578 (revision "1"))
22579 (package
22580 (name "emacs-vimrc-mode")
22581 (version (git-version version revision commit))
22582 (source
22583 (origin
22584 (method git-fetch)
22585 (uri (git-reference
22586 (url "https://github.com/mcandre/vimrc-mode")
22587 (commit commit)))
22588 (file-name (git-file-name name version))
22589 (sha256
22590 (base32
22591 "0026dqs3hwygk2k2xfra90w5sfnxrfj7l69jz7sq5glavbf340pk"))))
22592 (build-system emacs-build-system)
22593 (home-page "https://github.com/mcandre/vimrc-mode")
22594 (synopsis "Major mode for Vimscript")
22595 (description "This package provides font lock and @code{beginning-} and
22596 @code{end-of-defun} functions for Vimscript files.")
22597 (license license:gpl3+))))
22598
22599 (define-public emacs-flycheck-elm
22600 (let ((revision "0")
22601 (commit "1b60050efd4729bfba548f3e5adbcb58436667cb"))
22602 (package
22603 (name "emacs-flycheck-elm")
22604 (version (git-version "0" revision commit))
22605 (source
22606 (origin
22607 (method git-fetch)
22608 (uri
22609 (git-reference
22610 (url "https://github.com/bsermons/flycheck-elm")
22611 (commit commit)))
22612 (file-name (git-file-name name version))
22613 (sha256
22614 (base32 "1kjms9d2c98ffd1qxs879qhg0n4jzic0r5kni9y4gz3v09ww8zms"))))
22615 (build-system emacs-build-system)
22616 (propagated-inputs
22617 `(("emacs-flycheck" ,emacs-flycheck)
22618 ("emacs-let-alist" ,emacs-let-alist)))
22619 (home-page "https://github.com/bsermons/flycheck-elm")
22620 (synopsis "Flycheck support for the Elm language")
22621 (description "Flycheck Elm adds Flycheck support for Elm language.")
22622 (license license:gpl3+))))
22623
22624 (define-public emacs-flycheck-haskell
22625 (let ((commit "32ddff87165a7d3a35e7318bee997b5b4bd41278")
22626 (revision "2"))
22627 (package
22628 (name "emacs-flycheck-haskell")
22629 (version (git-version "0.8" revision commit))
22630 (source
22631 (origin
22632 (method git-fetch)
22633 (uri (git-reference
22634 (url "https://github.com/flycheck/flycheck-haskell")
22635 (commit commit)))
22636 (file-name (git-file-name name version))
22637 (sha256
22638 (base32
22639 "10pgsbagq6qj4mshq5sypv0q0khck92b30sc793b4g1pfpsxvgjn"))))
22640 (build-system emacs-build-system)
22641 (propagated-inputs
22642 `(("emacs-dash" ,emacs-dash)
22643 ("emacs-flycheck" ,emacs-flycheck)
22644 ("emacs-haskell-mode" ,emacs-haskell-mode)
22645 ("emacs-let-alist" ,emacs-let-alist)))
22646 (arguments
22647 `(#:include '("\\.el$" "\\.hs$")))
22648 (home-page "https://github.com/flycheck/flycheck-haskell")
22649 (synopsis "Flycheck for Haskell")
22650 (description "This package configures syntax-checking for Haskell
22651 buffers.")
22652 (license license:gpl3+))))
22653
22654 (define-public emacs-js2-refactor-el
22655 (let ((commit "d4c40b5fc86d3edd7c6a7d83ac86483ee1cb7a28")
22656 (revision "2"))
22657 (package
22658 (name "emacs-js2-refactor-el")
22659 (version (git-version "0.9.0" revision commit))
22660 (source
22661 (origin
22662 (method git-fetch)
22663 (uri (git-reference
22664 (url "https://github.com/magnars/js2-refactor.el")
22665 (commit commit)))
22666 (file-name (git-file-name name version))
22667 (sha256
22668 (base32
22669 "08b25y3raz0p98zxk9xdd8nj9shqd6mzrqhbq1gg4cwsmi7h7ly1"))))
22670 (build-system emacs-build-system)
22671 (propagated-inputs
22672 `(("emacs-dash" ,emacs-dash)
22673 ("emacs-s" ,emacs-s)
22674 ("emacs-js2-mode" ,emacs-js2-mode)
22675 ("emacs-yasnippet" ,emacs-yasnippet)
22676 ("emacs-multiple-cursors" ,emacs-multiple-cursors)))
22677 (native-inputs
22678 `(("emacs-buttercup" ,emacs-buttercup)
22679 ("emacs-espuds" ,emacs-espuds)))
22680 (home-page "https://github.com/magnars/js2-refactor.el")
22681 (synopsis "JavaScript refactoring in Emacs")
22682 (description "This package provides various refactoring functions for
22683 JavaScript.")
22684 (license license:gpl3+))))
22685
22686 (define-public emacs-prettier
22687 (let ((commit "e9b73e81d3e1642aec682195f127a42dfb0b5774")
22688 (version "0.1.0")
22689 (revision "1"))
22690 (package
22691 (name "emacs-prettier")
22692 (version (git-version version revision commit))
22693 (source
22694 (origin
22695 (method git-fetch)
22696 (uri (git-reference
22697 (url "https://github.com/prettier/prettier-emacs")
22698 (commit commit)))
22699 (file-name (git-file-name name version))
22700 (sha256
22701 (base32
22702 "0hj4fv3fgc60i6jrsx4a81s5c9fsxxafhhs3q2q1dypsscjci9ph"))))
22703 (build-system emacs-build-system)
22704 (home-page "https://github.com/prettier/prettier-emacs")
22705 (synopsis "Automatic formatting of JavaScript code")
22706 (description "This package integrates Prettier with Emacs, and
22707 provides a minor mode that autoformats the buffer upon saving.")
22708 (license license:expat))))
22709
22710 (define-public emacs-fish-mode
22711 (package
22712 (name "emacs-fish-mode")
22713 (version "0.1.6")
22714 (source
22715 (origin
22716 (method git-fetch)
22717 (uri (git-reference
22718 (url "https://github.com/wwwjfy/emacs-fish")
22719 (commit version)))
22720 (file-name (git-file-name name version))
22721 (sha256
22722 (base32
22723 "1spxxkji9xa930sbwvzyjm8jrqk9ra0xqhivw7zd12a4c56nhna9"))))
22724 (build-system emacs-build-system)
22725 (home-page "https://github.com/wwwjfy/emacs-fish")
22726 (synopsis "Major mode for Fish shell scripts")
22727 (description "This package provides syntax highlighting and indentation
22728 functions for Fish shell scripts.")
22729 (license license:gpl3+)))
22730
22731 (define-public emacs-eshell-up
22732 (let ((commit "9c100bae5c3020e8d9307e4332d3b64e7dc28519")
22733 (version "0.0.3")
22734 (revision "12"))
22735 (package
22736 (name "emacs-eshell-up")
22737 (version (git-version version revision commit))
22738 (source
22739 (origin
22740 (method git-fetch)
22741 (uri (git-reference
22742 (url "https://github.com/peterwvj/eshell-up")
22743 (commit commit)))
22744 (file-name (git-file-name name version))
22745 (sha256
22746 (base32
22747 "00zdbcncjabgj5mp47l1chymx5na18v2g4kj730dgmj3rnl3iz2q"))))
22748 (build-system emacs-build-system)
22749 (home-page "https://github.com/peterwvj/eshell-up")
22750 (synopsis "Quickly go to a parent directory in @code{Eshell}")
22751 (description "This package provides quick navigation to a specific
22752 parent directory using @code{Eshell}.")
22753 (license license:gpl3+))))
22754
22755 (define-public emacs-springboard
22756 ;; Upstream provides no tag. Using the latest commit. Version is extracted
22757 ;; from "Version:" keyword.
22758 (let ((commit "687d1e5898a880878995dc9bffe93b4598366203")
22759 (version "1.0")
22760 (revision "1"))
22761 (package
22762 (name "emacs-springboard")
22763 (version (git-version version revision commit))
22764 (source
22765 (origin
22766 (method git-fetch)
22767 (uri (git-reference
22768 (url "https://github.com/jwiegley/springboard")
22769 (commit commit)))
22770 (file-name (git-file-name name version))
22771 (sha256
22772 (base32 "0fn8c4hqblfjvcpg68kj2dmdjqsdnxddqbzgvakl43zckjg8pi01"))))
22773 (build-system emacs-build-system)
22774 (propagated-inputs
22775 `(("emacs-helm" ,emacs-helm)
22776 ("emacs-ivy" ,emacs-ivy)))
22777 (home-page "https://github.com/jwiegley/springboard")
22778 (synopsis "Change the Emacs default directory quickly")
22779 (description
22780 "This Emacs package provides a quick way to change the default
22781 directory for only the next invoked command. The directory selection can be
22782 done using Helm, Ido or Ivy.")
22783 (license license:gpl2+))))
22784
22785 (define-public emacs-tco-el
22786 (let ((commit "482db5313f090b17ed22ccd856f0e141dc75afe6")
22787 (revision "1"))
22788 (package
22789 (name "emacs-tco-el")
22790 (version (git-version "0.3" revision commit))
22791 (source
22792 (origin
22793 (method git-fetch)
22794 (uri (git-reference
22795 (url "https://github.com/Wilfred/tco.el")
22796 (commit commit)))
22797 (file-name (git-file-name name version))
22798 (sha256
22799 (base32
22800 "1z7xkbrqznk6ni687qqknp8labcyhl8y6576hjfri89fn21385y9"))))
22801 (build-system emacs-build-system)
22802 (propagated-inputs
22803 `(("emacs-dash" ,emacs-dash)))
22804 (native-inputs
22805 `(("emacs-ert-runner" ,emacs-ert-runner)
22806 ("emacs-undercover" ,emacs-undercover)))
22807 (arguments
22808 `(#:tests? #t
22809 #:test-command '("ert-runner")))
22810 (home-page "https://github.com/Wilfred/tco.el")
22811 (synopsis "Tail-call optimization for Emacs Lisp")
22812 (description "This package provides tail-call optimization for Emacs
22813 Lisp functions that call themselves in tail position.")
22814 (license license:gpl3+))))
22815
22816 (define-public emacs-equake
22817 (let ((commit "7eddc025ee61b83029363e22219af228b8c20681")
22818 (revision "2"))
22819 (package
22820 (name "emacs-equake")
22821 (version (git-version "0.85" revision commit))
22822 (source
22823 (origin
22824 (method git-fetch)
22825 (uri (git-reference
22826 (url "https://gitlab.com/emacsomancer/equake/")
22827 (commit commit)))
22828 (file-name (git-file-name name version))
22829 (sha256
22830 (base32
22831 "1c55pbqak3d02sw6z1139baxzy401b90g0gxzcc3j6sgplz6sc6w"))))
22832 (build-system emacs-build-system)
22833 (propagated-inputs
22834 `(("emacs-dash" ,emacs-dash)
22835 ("emacs-tco-el" ,emacs-tco-el)))
22836 (home-page "https://gitlab.com/emacsomancer/equake/")
22837 (synopsis "Drop-down console for @code{Eshell} and terminal emulators")
22838 (description "This package provides a Quake-style drop-down console
22839 compatible with Emacs' shell modes.")
22840 (license license:gpl3+))))
22841
22842 (define-public emacs-vdiff
22843 ;; There is no proper tag, but the commit below matches the version bump.
22844 (let ((commit "007e44be19d068fd6b49874b6e9b8df8b1f552bd"))
22845 (package
22846 (name "emacs-vdiff")
22847 (version "0.2.4")
22848 (source
22849 (origin
22850 (method git-fetch)
22851 (uri (git-reference
22852 (url "https://github.com/justbur/emacs-vdiff")
22853 (commit commit)))
22854 (file-name (git-file-name name version))
22855 (sha256
22856 (base32 "197xrwph1llrzjgkhlvagiwdgfp68pb45w5afg89ndahpqc2725s"))))
22857 (build-system emacs-build-system)
22858 (propagated-inputs
22859 `(("emacs-hydra" ,emacs-hydra)))
22860 (arguments
22861 `(#:tests? #t
22862 #:test-command '("emacs" "-Q" "-batch" "-L" "."
22863 "-l" "vdiff-test.el"
22864 "-f" "ert-run-tests-batch-and-exit")))
22865 (home-page "https://github.com/justbur/emacs-vdiff/")
22866 (synopsis "Frontend for diffing based on vimdiff")
22867 (description
22868 "This package permits comparisons of two or three buffers based on diff
22869 output.")
22870 (license license:gpl3+))))
22871
22872 (define-public emacs-vdiff-magit
22873 ;; Need to use a more recent commit than the latest release version because
22874 ;; of Magit and Transient
22875 (let ((commit "b100d126c69e5c26a61ae05aa1778bcc4302b597")
22876 (version "0.3.2")
22877 (revision "8"))
22878 (package
22879 (name "emacs-vdiff-magit")
22880 (version (git-version version revision commit))
22881 (source
22882 (origin
22883 (method git-fetch)
22884 (uri (git-reference
22885 (url "https://github.com/justbur/emacs-vdiff-magit/")
22886 (commit commit)))
22887 (file-name (git-file-name name version))
22888 (sha256
22889 (base32
22890 "16cjmrzflf2i1w01973sl944xrfanakba8sb4dpwi79d92xp03xy"))))
22891 (build-system emacs-build-system)
22892 (propagated-inputs
22893 `(("emacs-vdiff" ,emacs-vdiff)
22894 ("emacs-magit" ,emacs-magit)
22895 ("emacs-transient" ,emacs-transient)))
22896 (home-page "https://github.com/justbur/emacs-vdiff-magit/")
22897 (synopsis "Frontend for diffing based on vimdiff")
22898 (description "This package permits comparisons of two or three buffers
22899 based on diff output.")
22900 (license license:gpl3+))))
22901
22902 (define-public emacs-all-the-icons-dired
22903 (let ((commit "fc2dfa1e9eb8bf1c402a675e7089638d702a27a5")
22904 (version "1.0")
22905 (revision "2"))
22906 (package
22907 (name "emacs-all-the-icons-dired")
22908 (version (git-version version revision commit))
22909 (source
22910 (origin
22911 (method git-fetch)
22912 (uri (git-reference
22913 (url "https://github.com/jtbm37/all-the-icons-dired/")
22914 (commit commit)))
22915 (file-name (git-file-name name version))
22916 (sha256
22917 (base32
22918 "0zhyhz4lhx0d8wwh1xxxf7ck4s621fk9757ql2ypxbr4iqh7sjlp"))))
22919 (build-system emacs-build-system)
22920 (propagated-inputs
22921 `(("emacs-all-the-icons" ,emacs-all-the-icons)))
22922 (home-page "https://github.com/jtbm37/all-the-icons-dired/")
22923 (synopsis "Show icons for each file in @code{dired-mode}")
22924 (description "This package allows icons from @file{all-the-icons.el} to
22925 be used in @code{dired-mode}.")
22926 (license license:gpl3+))))
22927
22928 (define-public emacs-exwm-edit
22929 (let ((commit "e1291e311840f1049106fe98cec032a1c75efd2b")
22930 (version "0.0.1")
22931 (revision "3"))
22932 (package
22933 (name "emacs-exwm-edit")
22934 (version (git-version version revision commit))
22935 (source
22936 (origin
22937 (method git-fetch)
22938 (uri (git-reference
22939 (url "https://github.com/agzam/exwm-edit/")
22940 (commit commit)))
22941 (file-name (git-file-name name version))
22942 (sha256
22943 (base32
22944 "031cb8fvv5n30djr9lpl6vz3rl15zykfvjlgkjc8l33a3l5mw8j0"))))
22945 (build-system emacs-build-system)
22946 (propagated-inputs
22947 `(("emacs-exwm" ,emacs-exwm)))
22948 (home-page "https://github.com/agzam/exwm-edit/")
22949 (synopsis "Open temp buffers for editing text from EXWM buffers")
22950 (description "This package facilitates editing text from EXWM buffers by
22951 generating a temp buffer in which any useful Emacs utilities and modes can be
22952 invoked.")
22953 (license license:gpl3+))))
22954
22955 (define-public emacs-ert-async
22956 (package
22957 (name "emacs-ert-async")
22958 (version "0.1.2")
22959 (source
22960 (origin
22961 (method git-fetch)
22962 (uri (git-reference
22963 (url "https://github.com/rejeep/ert-async.el")
22964 (commit (string-append "v" version))))
22965 (file-name (git-file-name name version))
22966 (sha256
22967 (base32
22968 "0hn9i405nfhjd1h9vnwj43nxbbz00khrwkjq0acfyxjaz1shfac9"))))
22969 (build-system emacs-build-system)
22970 (home-page "https://github.com/rejeep/ert-async.el")
22971 (synopsis "Async support for ERT")
22972 (description "This package allows ERT to work with asynchronous tests.")
22973 (license license:gpl3+)))
22974
22975 (define-public emacs-prodigy-el
22976 (let ((commit "0a12eec1f001a4eef16b2c0c524f02f2647a4ff1")
22977 (revision "2"))
22978 (package
22979 (name "emacs-prodigy-el")
22980 (version (git-version "0.7.0" revision commit))
22981 (source
22982 (origin
22983 (method git-fetch)
22984 (uri (git-reference
22985 (url "https://github.com/rejeep/prodigy.el")
22986 (commit commit)))
22987 (file-name (git-file-name name version))
22988 (sha256
22989 (base32
22990 "02kysq57kqzg0zkhaf302ada9cp9spgp71z8vbdq4c7dl6x75h4g"))))
22991 (build-system emacs-build-system)
22992 (propagated-inputs
22993 `(("emacs-dash" ,emacs-dash)
22994 ("emacs-s" ,emacs-s)
22995 ("emacs-f" ,emacs-f)))
22996 (native-inputs
22997 `(("emacs-el-mock" ,emacs-el-mock)
22998 ("emacs-ert-async" ,emacs-ert-async)))
22999 (home-page "https://github.com/rejeep/prodigy.el")
23000 (synopsis "Manage external services from within Emacs")
23001 (description "This package provides a GUI for defining and monitoring services.")
23002 (license license:gpl3+))))
23003
23004 (define-public emacs-web-server
23005 (package
23006 (name "emacs-web-server")
23007 (version "0.1.2")
23008 (source
23009 (origin
23010 (method url-fetch)
23011 (uri (string-append "https://elpa.gnu.org/packages/"
23012 "web-server-" version ".tar"))
23013 (sha256
23014 (base32 "10lcsl4dg2yr9zjd99gq9jz150wvvh6r5y9pd88l8y9vz16f2lim"))))
23015 (build-system emacs-build-system)
23016 (home-page "https://github.com/eschulte/emacs-web-server/")
23017 (synopsis "Web server with handlers in Emacs Lisp")
23018 (description "This package supports HTTP GET and POST requests with
23019 url-encoded parameters, as well as web sockets.")
23020 (license license:gpl3+)))
23021
23022 (define-public emacs-markdown-preview-mode
23023 (package
23024 (name "emacs-markdown-preview-mode")
23025 (version "0.9.2")
23026 (source
23027 (origin
23028 (method git-fetch)
23029 (uri (git-reference
23030 (url "https://github.com/ancane/markdown-preview-mode")
23031 (commit (string-append "v" version))))
23032 (file-name (git-file-name name version))
23033 (sha256
23034 (base32
23035 "1d1id99gagymvzdfa1mwqh8y3szm8ii47rpijkfi1qnifjg5jaq9"))))
23036 (build-system emacs-build-system)
23037 (propagated-inputs
23038 `(("emacs-markdown-mode" ,emacs-markdown-mode)
23039 ("emacs-websocket" ,emacs-websocket)
23040 ("emacs-web-server" ,emacs-web-server)))
23041 (arguments '(#:include '("\\.el$" "\\.html$")))
23042 (home-page "https://github.com/ancane/markdown-preview-mode")
23043 (synopsis "Preview Markdown files")
23044 (description "This package provides a minor mode for preview of Markdown
23045 files, and sends rendered Markdown to a web browser.")
23046 (license license:gpl3+)))
23047
23048 (define-public emacs-dotenv-mode
23049 (package
23050 (name "emacs-dotenv-mode")
23051 (version "0.2.5")
23052 (source
23053 (origin
23054 (method git-fetch)
23055 (uri (git-reference
23056 (url "https://github.com/preetpalS/emacs-dotenv-mode")
23057 (commit (string-append "v" version))))
23058 (file-name (git-file-name name version))
23059 (sha256
23060 (base32
23061 "0ys1czramj3c8zbnxxc599bqc0nqp3nnn3n45ac9cjglx5iaydq3"))))
23062 (build-system emacs-build-system)
23063 (home-page "https://github.com/preetpalS/emacs-dotenv-mode")
23064 (synopsis "Major mode for @file{.env} files")
23065 (description "This package provides syntax highlighting for @file{.env}
23066 files.")
23067 (license license:gpl3+)))
23068
23069 (define-public emacs-add-node-modules-path
23070 (let ((commit "f31e69ccb681f882aebb806ce6e9478e3ac39708")
23071 (version "1.2.0")
23072 (revision "10"))
23073 (package
23074 (name "emacs-add-node-modules-path")
23075 (version (git-version version revision commit))
23076 (source
23077 (origin
23078 (method git-fetch)
23079 (uri (git-reference
23080 (url "https://github.com/codesuki/add-node-modules-path")
23081 (commit commit)))
23082 (file-name (git-file-name name version))
23083 (sha256
23084 (base32
23085 "0p106bqmvdr8by5iv02bshm339qbrjcch2d15mrm4h3nav03v306"))))
23086 (build-system emacs-build-system)
23087 (home-page "https://github.com/codesuki/add-node-modules-path")
23088 (synopsis "Add @file{node_modules} to the buffer-local @file{exec-path}")
23089 (description "This package searches the parent directories of the
23090 current file for the project's @file{node_modules/.bin/} directory, allowing
23091 Emacs to find project-specific installations of packages.")
23092 (license license:expat))))
23093
23094 (define-public emacs-flow-minor-mode
23095 (let ((commit "d1b32a7dd0d33c6a00a106da5f4b2323602cbd3e")
23096 (version "0.3")
23097 (revision "4"))
23098 (package
23099 (name "emacs-flow-minor-mode")
23100 (version (git-version version revision commit))
23101 (source
23102 (origin
23103 (method git-fetch)
23104 (uri (git-reference
23105 (url "https://github.com/an-sh/flow-minor-mode")
23106 (commit commit)))
23107 (file-name (git-file-name name version))
23108 (sha256
23109 (base32
23110 "169r4ib9qg9q6fm3p0p23qs1qx4pa9pg1qvyq4ysr85i7kwygppl"))))
23111 (build-system emacs-build-system)
23112 (home-page "https://github.com/an-sh/flow-minor-mode")
23113 (synopsis "Minor mode for JavaScript Flow files")
23114 (description "This package integrates Flow with Emacs, allowing for
23115 definition-jumping and type-checking on demand.")
23116 (license license:bsd-3))))
23117
23118 (define-public emacs-rjsx-mode
23119 (package
23120 (name "emacs-rjsx-mode")
23121 (version "0.5.0")
23122 (source
23123 (origin
23124 (method git-fetch)
23125 (uri (git-reference
23126 (url "https://github.com/felipeochoa/rjsx-mode")
23127 (commit (string-append "v" version))))
23128 (file-name (git-file-name name version))
23129 (sha256
23130 (base32
23131 "08b4hdgq4hc1yfd9pvyir2j3cqqdqa3j5svgaba97x5fzhsz7y8i"))))
23132 (build-system emacs-build-system)
23133 (propagated-inputs
23134 `(("emacs-js2-mode" ,emacs-js2-mode)))
23135 (arguments
23136 `(#:tests? #t
23137 #:test-command '("make" "test")))
23138 (home-page "https://github.com/felipeochoa/rjsx-mode")
23139 (synopsis "Major mode for JSX files")
23140 (description "This package extends the parser of @code{js2-mode} to
23141 support JSX syntax.")
23142 (license license:expat)))
23143
23144 (define-public emacs-origami-el
23145 (let ((commit "1f38085c8f9af7842765ed63f7d6dfe4dab59366")
23146 (version "1.0")
23147 (revision "1"))
23148 (package
23149 (name "emacs-origami-el")
23150 (version (git-version version revision commit))
23151 (source
23152 (origin
23153 (method git-fetch)
23154 (uri (git-reference
23155 (url "https://github.com/gregsexton/origami.el")
23156 (commit commit)))
23157 (file-name (git-file-name name version))
23158 (sha256
23159 (base32
23160 "0ha1qsz2p36pqa0sa2sp83lspbgx5lr7930qxnwd585liajzdd9x"))))
23161 (build-system emacs-build-system)
23162 (propagated-inputs
23163 `(("emacs-dash" ,emacs-dash)
23164 ("emacs-s" ,emacs-s)))
23165 (home-page "https://github.com/gregsexton/origami.el")
23166 (synopsis "Flexible text-folding")
23167 (description "This package provides a minor mode for collapsing and
23168 expanding regions of text without modifying the actual contents.")
23169 (license license:expat))))
23170
23171 (define-public emacs-peep-dired
23172 (let ((commit "c88a9a3050197840edfe145f11e0bb9488de32f4")
23173 (version "0")
23174 (revision "1"))
23175 (package
23176 (name "emacs-peep-dired")
23177 (version (git-version version revision commit))
23178 (source
23179 (origin
23180 (method git-fetch)
23181 (uri (git-reference
23182 (url "https://github.com/asok/peep-dired")
23183 (commit commit)))
23184 (file-name (git-file-name name version))
23185 (sha256
23186 (base32
23187 "1wy5qpnfri1gha2cnl6q20qar8dbl2mimpb43bnhmm2g3wgjyad6"))))
23188 (build-system emacs-build-system)
23189 (home-page "https://github.com/asok/peep-dired")
23190 (synopsis "Preview files in another window")
23191 (description "This package provides a minor mode that allows files to be
23192 previewed by scrolling up and down within a @code{dired} buffer.")
23193 (license license:gpl3+))))
23194
23195 (define-public emacs-counsel-etags
23196 (package
23197 (name "emacs-counsel-etags")
23198 (version "1.9.16")
23199 (source
23200 (origin
23201 (method git-fetch)
23202 (uri (git-reference
23203 (url "https://github.com/redguardtoo/counsel-etags")
23204 (commit version)))
23205 (file-name (git-file-name name version))
23206 (sha256
23207 (base32 "01si554r0s6m7ypx1m2n0z6j6q6yihifz76dha6q6v56ixdlv626"))))
23208 (build-system emacs-build-system)
23209 (propagated-inputs
23210 `(("emacs-counsel" ,emacs-counsel)))
23211 (arguments
23212 `(#:tests? #t
23213 #:test-command '("make" "test")))
23214 (home-page "https://github.com/redguardtoo/counsel-etags")
23215 (synopsis "Fast @code{Ctags}/@code{Etags} solution with @code{ivy-mode}")
23216 (description "This package uses @code{ivy-mode} to facilitate navigating
23217 and searching through @code{Ctags} files.")
23218 (license license:gpl3+)))
23219
23220 (define-public emacs-ivy-clipmenu
23221 (let ((commit "d2071f2c5043a05d610cd1952e84176ca78c31dc"))
23222 (package
23223 (name "emacs-ivy-clipmenu")
23224 (version (git-version "0.0.1" "1" commit))
23225 (source (origin
23226 (method git-fetch)
23227 (uri (git-reference
23228 (url "https://github.com/wpcarro/ivy-clipmenu.el")
23229 (commit commit)))
23230 (file-name (git-file-name name version))
23231 (sha256
23232 (base32
23233 "0npd8glzk5z4n7y9mzbsbzi0cf3by19fqcki052jr3dga363lds7"))))
23234 (propagated-inputs
23235 `(("emacs-f" ,emacs-f)
23236 ("emacs-ivy" ,emacs-ivy)))
23237 (build-system emacs-build-system)
23238 (home-page "https://github.com/wpcarro/ivy-clipmenu.el")
23239 (synopsis "Ivy integration with clipmenu")
23240 (description "Ivy integration with the clipboard manager, clipmenu.")
23241 (license license:expat))))
23242
23243 (define-public emacs-org-download
23244 (let ((commit "42ac361ef5502017e6fc1bceb00333eba90402f4")
23245 (revision "3"))
23246 (package
23247 (name "emacs-org-download")
23248 (version (git-version "0.1.0" revision commit))
23249 (source (origin
23250 (method git-fetch)
23251 (uri (git-reference
23252 (url "https://github.com/abo-abo/org-download")
23253 (commit commit)))
23254 (file-name (git-file-name name version))
23255 (sha256
23256 (base32 "0cg4y7hy7xbq4vrbdicfzgvyaf3cjbx2zkqd4yl0y2garz71j99l"))))
23257 (build-system emacs-build-system)
23258 (propagated-inputs
23259 `(("emacs-org" ,emacs-org)
23260 ("emacs-async" ,emacs-async)))
23261 (home-page "https://github.com/abo-abo/org-download")
23262 (synopsis "Facilitate moving images")
23263 (description "This package provides utilities for managing image files
23264 copied into @code{org-mode} buffers.")
23265 (license license:gpl3+))))
23266
23267 (define-public emacs-org-drill-table
23268 ;; No releases or tags.
23269 (let ((commit "096387d929bcf3eb479e0a9d5da9cf32c756a759")
23270 (revision "0"))
23271 (package
23272 (name "emacs-org-drill-table")
23273 (version (git-version "0.1" revision commit))
23274 (source
23275 (origin
23276 (method git-fetch)
23277 (uri (git-reference
23278 (url "https://github.com/chrisbarrett/org-drill-table.git")
23279 (commit commit)))
23280 (file-name (git-file-name name version))
23281 (sha256
23282 (base32 "1a8ygrcag8i9hdpy2vsn0sh8lwhl9b56rv91j3rddy1jv5qx1ipb"))))
23283 (build-system emacs-build-system)
23284 (propagated-inputs
23285 `(("emacs-dash" ,emacs-dash)
23286 ("emacs-org" ,emacs-org)
23287 ("emacs-s" ,emacs-s)))
23288 (home-page "https://github.com/chrisbarrett/org-drill-table")
23289 (synopsis "Generate Org drill cards using Org mode tables")
23290 (description
23291 "This package generates drill cards based on an Org mode table in the
23292 current subtree. The cards are inserted under a new ``Cards'' heading in the
23293 current tree.")
23294 (license license:gpl3+))))
23295
23296 (define-public emacs-dash-docs
23297 (let ((commit "dafc8fc9f1ddb2e4e39e0b8d066c42d5d7ce8d06")
23298 (revision "2"))
23299 (package
23300 (name "emacs-dash-docs")
23301 (version (git-version "1.4.0" revision commit))
23302 (source
23303 (origin
23304 (method git-fetch)
23305 (uri (git-reference
23306 (url "https://github.com/dash-docs-el/dash-docs")
23307 (commit commit)))
23308 (file-name (git-file-name name version))
23309 (sha256
23310 (base32
23311 "0n6d3mm43gj16v8kjjradcfik93wb89dsqnfcbskb28bvcamafid"))))
23312 (build-system emacs-build-system)
23313 (propagated-inputs
23314 `(("emacs-async" ,emacs-async)))
23315 (native-inputs
23316 `(("emacs-undercover" ,emacs-undercover)
23317 ("emacs-ert-runner" ,emacs-ert-runner)))
23318 (arguments
23319 `(#:tests? #t
23320 #:test-command '("ert-runner")
23321 #:phases
23322 ;; this test requires network access, so remove it
23323 (modify-phases %standard-phases
23324 (add-before 'check 'make-tests-writable
23325 (lambda _
23326 (make-file-writable "test/dash-docs-test.el")
23327 #t))
23328 (add-before 'check 'delete-test
23329 (lambda _
23330 (emacs-batch-edit-file "test/dash-docs-test.el"
23331 `(progn (progn
23332 (goto-char (point-min))
23333 (re-search-forward "ert-deftest dash-docs-official-docsets-test")
23334 (beginning-of-line)
23335 (kill-sexp))
23336 (basic-save-buffer)))
23337 #t)))))
23338 (home-page "https://github.com/dash-docs-el/dash-docs")
23339 (synopsis "Offline documentation browser for APIs using Dash docsets")
23340 (description "This package exposes functionality to work with Dash docsets.")
23341 (license license:gpl3+))))
23342
23343 (define-public emacs-helm-dash
23344 (let ((commit "7f853bd34da666f0e9a883011c80f451b06f6c59")
23345 (revision "2"))
23346 (package
23347 (name "emacs-helm-dash")
23348 (version (git-version "1.3.0" revision commit))
23349 (source
23350 (origin
23351 (method git-fetch)
23352 (uri (git-reference
23353 (url "https://github.com/areina/helm-dash")
23354 (commit commit)))
23355 (file-name (git-file-name name version))
23356 (sha256
23357 (base32
23358 "0r192vzry1212ihabg9pgw9xar8zdgnbgy0vsgvfm8s5wj6ny7jp"))))
23359 (build-system emacs-build-system)
23360 (propagated-inputs
23361 `(("emacs-helm" ,emacs-helm)
23362 ("emacs-dash-docs" ,emacs-dash-docs)))
23363 (home-page "https://github.com/areina/helm-dash")
23364 (synopsis "Offline documentation browser for APIs using Dash docsets")
23365 (description "This package uses Helm to install and navigate through
23366 Dash docsets.")
23367 (license license:gpl3+))))
23368
23369 (define-public emacs-counsel-dash
23370 (let ((commit "370d5f6f14b5294d0eb717f7b2a6a8e93df1ed24")
23371 (revision "4"))
23372 (package
23373 (name "emacs-counsel-dash")
23374 (version (git-version "0.1.3" revision commit))
23375 (source
23376 (origin
23377 (method git-fetch)
23378 (uri (git-reference
23379 (url "https://github.com/dash-docs-el/counsel-dash")
23380 (commit commit)))
23381 (file-name (git-file-name name version))
23382 (sha256
23383 (base32 "1fn38vbz46ijarjvhgw7iy7dj9s2a2miy95fyy9f8b5sj8nrdfvz"))))
23384 (build-system emacs-build-system)
23385 (propagated-inputs
23386 `(("emacs-counsel" ,emacs-counsel)
23387 ("emacs-dash-docs" ,emacs-dash-docs)))
23388 (home-page "https://github.com/dash-docs-el/counsel-dash")
23389 (synopsis "Offline documentation browser for APIs using Dash docsets")
23390 (description "This package uses @code{ivy-mode} to install and navigate
23391 through Dash docsets.")
23392 (license license:expat))))
23393
23394 (define-public emacs-calibredb
23395 (package
23396 (name "emacs-calibredb")
23397 (version "2.8.0")
23398 (source
23399 (origin
23400 (method git-fetch)
23401 (uri (git-reference
23402 (url "https://github.com/chenyanming/calibredb.el")
23403 (commit version)))
23404 (file-name (git-file-name name version))
23405 (sha256
23406 (base32 "19gc05k2p1l8wlkrqij9cw6d61hzknd6a9n64kzlpi87cpbav3lv"))))
23407 (build-system emacs-build-system)
23408 (arguments
23409 '(#:phases
23410 (modify-phases %standard-phases
23411 (add-after 'unpack 'patch-paths
23412 (lambda* (#:key inputs #:allow-other-keys)
23413 (let ((calibre (assoc-ref inputs "calibre")))
23414 (make-file-writable "calibredb-core.el")
23415 (emacs-substitute-variables "calibredb-core.el"
23416 ("calibredb-program"
23417 (string-append calibre "/bin/calibredb"))
23418 ("calibredb-fetch-metadata-program"
23419 (string-append calibre "/bin/fetch-ebook-metadata"))))
23420 #t)))))
23421 (inputs
23422 `(("calibre" ,calibre)))
23423 (propagated-inputs
23424 `(("emacs-dash" ,emacs-dash)
23425 ("emacs-s" ,emacs-s)
23426 ("emacs-transient" ,emacs-transient)))
23427 (home-page "https://github.com/chenyanming/calibredb.el")
23428 (synopsis "Yet another calibre client for Emacs")
23429 (description "This package integrates calibre into Emacs.
23430 @enumerate
23431 @item Powerful ebook dashboard.
23432 @item Manage ebooks, actually not only ebooks!
23433 @item Manage Ebook libraries.
23434 @item Another bookmarks solution, by setting the tags and comments.
23435 @item Quick search, filter, make actions on items with ivy and helm.
23436 @item Org-ref support.
23437 @end enumerate")
23438 (license license:gpl3)))
23439
23440 (define-public emacs-el-patch
23441 (package
23442 (name "emacs-el-patch")
23443 (version "2.2.3")
23444 (source
23445 (origin
23446 (method git-fetch)
23447 (uri (git-reference
23448 (url "https://github.com/raxod502/el-patch")
23449 (commit version)))
23450 (file-name (git-file-name name version))
23451 (sha256
23452 (base32
23453 "18djslz177q6q33y82zmg2v6n9236a76kiqfvxdk4vbqzjbq82f7"))))
23454 (build-system emacs-build-system)
23455 (home-page "https://github.com/raxod502/el-patch")
23456 (synopsis "Future-proof your Emacs customizations")
23457 (description "This package allows for an alternate definition of an Elisp
23458 function to be specified and for any differences from the original definition
23459 to be examined using Ediff.")
23460 (license license:expat)))
23461
23462 (define-public emacs-info-plus
23463 (let ((commit "29811edf7a71764ac343631facc00268d9483146")
23464 (revision "3"))
23465 (package
23466 (name "emacs-info-plus")
23467 (version (git-version "0" revision commit))
23468 (source
23469 (origin
23470 (method git-fetch)
23471 (uri (git-reference
23472 (url "https://github.com/emacsmirror/info-plus")
23473 (commit commit)))
23474 (file-name (git-file-name name version))
23475 (sha256
23476 (base32
23477 "0ayq7z6dbf43vczbkjm1l976hxcfrmw45nfywbf1kjpzl3viy4gy"))))
23478 (build-system emacs-build-system)
23479 (home-page "https://github.com/emacsmirror/info-plus")
23480 (synopsis "Extensions to @file{info.el}")
23481 (description "This package extends Emacs' @file{info.el} by allowing
23482 outline-enabled table of contents, additional metadata association for Info
23483 nodes, and more.")
23484 (license license:gpl2+))))
23485
23486 (define-public emacs-eval-sexp-fu-el
23487 (package
23488 (name "emacs-eval-sexp-fu-el")
23489 (version "0.6.0")
23490 (source
23491 (origin
23492 (method git-fetch)
23493 (uri (git-reference
23494 (url "https://github.com/hchbaw/eval-sexp-fu.el")
23495 (commit (string-append "v" version))))
23496 (file-name (git-file-name name version))
23497 (sha256
23498 (base32
23499 "19rv0kwajq0j8inglp84sml23ci74wdcvp5bl6zxbw5skqpf6phr"))))
23500 (build-system emacs-build-system)
23501 (home-page "https://github.com/hchbaw/eval-sexp-fu.el")
23502 (synopsis "Enhancements for evaluating s-expressions")
23503 (description "This package provides provides variants of
23504 @code{eval-last-sexp} that work on the containing list or s-expression, as
23505 well as an option for visually flashing evaluated s-expressions.")
23506 (license license:gpl3+)))
23507
23508 (define-public emacs-counsel-tramp
23509 (package
23510 (name "emacs-counsel-tramp")
23511 (version "0.7.5")
23512 (source
23513 (origin
23514 (method git-fetch)
23515 (uri (git-reference
23516 (url "https://github.com/masasam/emacs-counsel-tramp")
23517 (commit version)))
23518 (file-name (git-file-name name version))
23519 (sha256
23520 (base32 "18qlwyjqxap2qfbz14ma6yqp4p3v4q2y8idc355s4szjdd2as2lr"))))
23521 (build-system emacs-build-system)
23522 (propagated-inputs
23523 `(("emacs-counsel" ,emacs-counsel)))
23524 (home-page "https://github.com/masasam/emacs-counsel-tramp")
23525 (synopsis "Ivy interface for TRAMP")
23526 (description
23527 "This package allows @code{ivy-mode} to display and filter SSH servers.")
23528 (license license:gpl3+)))
23529
23530 (define-public emacs-tramp
23531 (package
23532 (name "emacs-tramp")
23533 (version "2.5.0.2")
23534 (source
23535 (origin
23536 (method url-fetch)
23537 (uri (string-append "https://elpa.gnu.org/packages/"
23538 "tramp-" version ".tar"))
23539 (sha256
23540 (base32 "16f782rjkmxxs5sz3wv4d46i7hbl483ashmrkvljf7lpnrl91s93"))))
23541 (build-system emacs-build-system)
23542 (arguments
23543 `(#:emacs ,emacs ;need D-Bus
23544 #:phases
23545 (modify-phases %standard-phases
23546 ;; All but one "/bin/" directory refer to remote
23547 ;; environments, which may not be Guix. Do not patch them
23548 ;; blindly. However, local encoding shell has to be patched.
23549 (replace 'patch-el-files
23550 (lambda* (#:key inputs #:allow-other-keys)
23551 (let ((sh (assoc-ref inputs "bash"))
23552 (file "tramp.el"))
23553 (emacs-substitute-variables file
23554 ("tramp-encoding-shell" (string-append sh "/bin/sh"))))
23555 #t)))))
23556 (inputs
23557 `(("bash" ,bash)))
23558 (home-page "https://savannah.gnu.org/projects/tramp")
23559 (synopsis "Remote file editing package for Emacs")
23560 (description
23561 "Tramp stands for ``Transparent Remote (file) Access, Multiple
23562 Protocol''. This package provides remote file editing, using
23563 a combination of @command{rsh} and @command{rcp} or other work-alike
23564 programs, such as @command{ssh} and @command{scp}.")
23565 (license license:gpl3+)))
23566
23567 (define-public emacs-tramp-auto-auth
23568 (let ((commit "f15a12dfab651aff60f4a9d70f868030a12344ac"))
23569 (package
23570 (name "emacs-tramp-auto-auth")
23571 (version (git-version "20191027" "1" commit))
23572 (source
23573 (origin
23574 (method git-fetch)
23575 (uri (git-reference
23576 (url "https://github.com/oitofelix/tramp-auto-auth")
23577 (commit commit)))
23578 (file-name (git-file-name name version))
23579 (sha256
23580 (base32
23581 "09nkjgwppjfgv04q0gv468qihgx4y3p39lpwbd6vbh3wgbccas9k"))))
23582 (build-system emacs-build-system)
23583 (home-page "https://github.com/oitofelix/tramp-auto-auth")
23584 (synopsis "TRAMP automatic authentication library")
23585 (description "This package provides @code{tramp-auto-auth-mode} Emacs
23586 global minor mode whose purpose is to automatically feed TRAMP sub-processes
23587 with passwords for paths matching regexps.")
23588 (license license:gpl3+))))
23589
23590 (define-public emacs-eacl
23591 (package
23592 (name "emacs-eacl")
23593 (version "2.0.4")
23594 (source
23595 (origin
23596 (method git-fetch)
23597 (uri (git-reference
23598 (url "https://github.com/redguardtoo/eacl")
23599 (commit version)))
23600 (file-name (git-file-name name version))
23601 (sha256
23602 (base32
23603 "0fxb2lv4cqdjxarqhzjgfc43sncc1c6m96n0aflm8l4gdmm090kq"))))
23604 (build-system emacs-build-system)
23605 (propagated-inputs
23606 `(("emacs-ivy" ,emacs-ivy)))
23607 (home-page "https://github.com/redguardtoo/eacl")
23608 (synopsis "Auto-complete lines by using @code{grep} on a project")
23609 (description "This package provides auto-completion commands for single
23610 and multiple lines of code in a project.")
23611 (license license:gpl3+)))
23612
23613 (define-public emacs-semantic-refactor
23614 ;; The last release, 0.5, was made on 2015-07-26 and there have been 47
23615 ;; commits since then.
23616 (let ((commit "6f2c97d17fb70f4ca2112f5a2b99a8ec162004f5"))
23617 (package
23618 (name "emacs-semantic-refactor")
23619 (version (git-version "0.5" "1" commit))
23620 (source
23621 (origin
23622 (method git-fetch)
23623 (uri (git-reference
23624 (url "https://github.com/tuhdo/semantic-refactor")
23625 (commit commit)))
23626 (file-name (git-file-name name version))
23627 (sha256
23628 (base32
23629 "1lyz3zjkx2csh0xdy1zpx8s32qp1p3sig57mwi9xhgpqjyf0axmb"))))
23630 (build-system emacs-build-system)
23631 (home-page "https://github.com/tuhdo/semantic-refactor")
23632 (synopsis "Refactoring tool for C/C++ and Lisp dialects")
23633 (description "This package provides a refactoring tool based on the
23634 Emacs Semantic parser framework. For C and C++ it supports operations such as:
23635
23636 @enumerate
23637 @item Generating class implementations
23638 @item Generating function prototypes
23639 @item Converting functions to function pointers
23640 @item Moving semantic units
23641 @item etc...
23642 @end enumerate
23643
23644 For Lisp dialects like Clojure, ELisp, and Scheme, it supports operations such
23645 as:
23646
23647 @enumerate
23648 @item Formatting the whole buffer
23649 @item Converting sexpressions to one or multiple lines
23650 @item etc...
23651 @end enumerate\n")
23652 (license license:gpl3+))))
23653
23654 (define-public emacs-nhexl-mode
23655 (package
23656 (name "emacs-nhexl-mode")
23657 (version "1.5")
23658 (source
23659 (origin
23660 (method url-fetch)
23661 (uri (string-append "https://elpa.gnu.org/packages/"
23662 "nhexl-mode-" version ".el"))
23663 (sha256
23664 (base32 "0qvxfg7sv4iqyjxzaim6b4v9k5hav36qd4vkf9jwzw6p5fri8w8d"))))
23665 (build-system emacs-build-system)
23666 (home-page "https://elpa.gnu.org/packages/nhexl-mode.html")
23667 (synopsis "Minor mode to edit files via hex-dump format")
23668 (description
23669 "This package implements NHexl mode, a minor mode for editing files
23670 in hex dump format. The mode command is called @command{nhexl-mode}.
23671
23672 This minor mode implements similar functionality to @command{hexl-mode},
23673 but using a different implementation technique, which makes it
23674 usable as a \"plain\" minor mode. It works on any buffer, and does
23675 not mess with the undo log or with the major mode.
23676
23677 It also comes with:
23678
23679 @itemize
23680 @item @command{nhexl-nibble-edit-mode}: a \"nibble editor\" minor mode, where
23681 the cursor pretends to advance by nibbles (4-bit) and the self-insertion keys
23682 (which only work for hex-digits) will only modify the nibble under point.
23683 @item @command{nhexl-overwrite-only-mode}: a minor mode to try and avoid
23684 moving text. In this minor mode, not only self-inserting keys overwrite
23685 existing text, but commands like `yank' and @command{kill-region} as well.
23686 @item It overrides @code{C-u} to use hexadecimal, so you can do @code{C-u a 4
23687 C-f} to advance by #xa4 characters.
23688 @end itemize")
23689 (license license:gpl3+)))
23690
23691 (define-public emacs-helm-wikipedia
23692 (let ((commit "126f044e0a0e1432e0791c33ce2a41875d704a9b"))
23693 (package
23694 (name "emacs-helm-wikipedia")
23695 (version (git-version "0.0.0" "1" commit))
23696 (home-page "https://github.com/emacs-helm/helm-wikipedia/")
23697 (source
23698 (origin
23699 (method git-fetch)
23700 (uri (git-reference
23701 (url home-page)
23702 (commit commit)))
23703 (file-name (git-file-name name version))
23704 (sha256
23705 (base32
23706 "148a5xsnbsiddhf9cl7yxdk41lrv38h0pip91kcflw9d7l0dp7pr"))))
23707 (build-system emacs-build-system)
23708 (inputs
23709 `(("helm" ,emacs-helm)))
23710 (synopsis "Search suggestions and article extracts from Wikipedia for Emacs")
23711 (description
23712 "This package provides an Emacs Helm interface for search suggestions
23713 and article extracts for Wikipedia.")
23714 (license license:gpl3+))))
23715
23716 (define-public emacs-webfeeder
23717 (package
23718 (name "emacs-webfeeder")
23719 (version "1.1.1")
23720 (source
23721 (origin
23722 (method url-fetch)
23723 (uri (string-append
23724 "https://elpa.gnu.org/packages/webfeeder-"
23725 version
23726 ".tar"))
23727 (sha256
23728 (base32
23729 "09caj12hfdfhlbcsmjyhw728w1f7yq13hdslh793yvfqv83ipvc4"))))
23730 (build-system emacs-build-system)
23731 (home-page "https://gitlab.com/Ambrevar/emacs-webfeeder")
23732 (synopsis "Build RSS and Atom webfeeds from HTML files")
23733 (description
23734 "Webfeeder is an Emacs library to generate RSS and Atom feeds from HTML
23735 files. The various elements of the HTML input are parsed with customizable
23736 functions (e.g. @code{webfeeder-title-function}).")
23737 (license license:gpl3+)))
23738
23739 (define-public emacs-evil-numbers
23740 (let ((commit "6ea1c8c3a9b37bed63d48f1128e9a4910e68187e"))
23741 (package
23742 (name "emacs-evil-numbers")
23743 (version (git-version "0.4" "1" commit))
23744 (source (origin
23745 (method git-fetch)
23746 (uri (git-reference
23747 (url "https://github.com/dieggsy/evil-numbers")
23748 (commit commit)))
23749 (file-name (git-file-name name version))
23750 (sha256
23751 (base32
23752 "1aq95hj8x13py0pwsnc6wvd8cc5yv5qin8ym9js42y5966vwj4np"))))
23753 (build-system emacs-build-system)
23754 (home-page "https://github.com/dieggsy/evil-numbers")
23755 (synopsis "Increment and decrement numbers in Emacs")
23756 (description "This package increments and decrements binary, octal,
23757 decimal and hex literals. It works like C-a/C-x in Vim, i.e. searches for
23758 number up to EOL and then increments or decrements and keeps zero padding up
23759 (unlike in Vim). When a region is active, as in Evil's visual mode, all the
23760 numbers within that region will be incremented/decremented (unlike in Vim).
23761
23762 It is a fork of https://github.com/cofi/evil-numbers, which is unmaintained.")
23763 (license license:gpl3+))))
23764
23765 (define-public emacs-rotate-text
23766 (package
23767 (name "emacs-rotate-text")
23768 (version "0.1")
23769 (source (origin
23770 (method git-fetch)
23771 (uri (git-reference
23772 (url "https://github.com/nschum/rotate-text.el")
23773 (commit version)))
23774 (file-name (git-file-name name version))
23775 (sha256
23776 (base32
23777 "1cgxv4aibkvv6lnssynn0438a615fz3zq8hg9sb0lhfgsr99pxln"))))
23778 (build-system emacs-build-system)
23779 (home-page "https://nschum.de/src/emacs/rotate-text/")
23780 (synopsis "Cycle through words, symbols and patterns in Emacs")
23781 (description "@code{rotate-text} allows you rotate to commonly
23782 interchanged text with a single keystroke. For example, you can toggle
23783 between \"frame-width\" and \"frame-height\", between \"public\",
23784 \"protected\" and \"private\" and between \"variable1\", \"variable2\" through
23785 \"variableN\".")
23786 (license license:gpl2+)))
23787
23788 (define-public emacs-ediprolog
23789 (package
23790 (name "emacs-ediprolog")
23791 (version "2.1")
23792 (source
23793 (origin
23794 (method url-fetch)
23795 (uri (string-append
23796 "https://elpa.gnu.org/packages/ediprolog-"
23797 version
23798 ".el"))
23799 (sha256
23800 (base32 "1piimsmzpirw8plrpy79xbpnvynzzhcxi31g6lg6is8gridiv3md"))))
23801 (build-system emacs-build-system)
23802 (home-page "https://elpa.gnu.org/packages/ediprolog.html")
23803 (synopsis "Emacs Does Interactive Prolog")
23804 (description "This package provides a major mode that let the user
23805 interact with SWI-Prolog in all buffers. For instance, one can consult Prolog
23806 programs and evaluate embedded queries. This mode is focused on the command
23807 @code{ediprolog-dwim} (Do What I Mean) which is supposed to, depending on the
23808 context, carry out the appropriate action.")
23809 (license license:gpl3+)))
23810
23811 (define-public emacs-evil-cleverparens
23812 (let ((commit "8c45879d49bfa6d4e414b6c1df700a4a51cbb869")
23813 (revision "1"))
23814 (package
23815 (name "emacs-evil-cleverparens")
23816 (version (git-version "2017-07-17" revision commit))
23817 (source (origin
23818 (method git-fetch)
23819 (uri (git-reference
23820 (url "https://github.com/luxbock/evil-cleverparens")
23821 (commit commit)))
23822 (sha256 (base32 "0lhnybpnk4n2yhlcnj9zxn0vi5hpjfaqfhvyfy7ckzz74g8v7iyw"))
23823 (file-name (git-file-name name version))))
23824 (build-system emacs-build-system)
23825 (propagated-inputs
23826 `(("emacs-evil" ,emacs-evil)
23827 ("emacs-paredit" ,emacs-paredit)
23828 ("emacs-smartparens" ,emacs-smartparens)))
23829 (home-page "https://github.com/luxbock/evil-cleverparens")
23830 (synopsis "Emacs modal editing optimized for editing Lisp")
23831 (description "@code{evil-cleverparens} remaps Evil keybindings to allow
23832 modal editing with screwing up the structure of Lisp code. Alternatives for
23833 verb commands which would are normally destructive (such as deletion) are
23834 provided. Those alternative commands are and bound by default to their
23835 corresponding Evil keys.")
23836 (license license:expat))))
23837
23838 (define-public emacs-evil-traces
23839 (let ((commit "1931e3ea2c64b4aec393a9c25063c330deff55e3")
23840 (revision "2"))
23841 (package
23842 (name "emacs-evil-traces")
23843 (version (git-version "0.0.1" revision commit))
23844 (source (origin
23845 (method git-fetch)
23846 (uri (git-reference
23847 (url "https://github.com/mamapanda/evil-traces")
23848 (commit commit)))
23849 (file-name (git-file-name name version))
23850 (sha256
23851 (base32
23852 "12p9lfxscs182vbd4dy0m5gacs3d4kyprbz5yndpwvl8g2qsqplz"))))
23853 (build-system emacs-build-system)
23854 (propagated-inputs
23855 `(("emacs-evil" ,emacs-evil)))
23856 (arguments
23857 `(#:phases
23858 (modify-phases %standard-phases
23859 (add-after 'unpack 'set-shell
23860 ;; Setting the SHELL environment variable is required for the tests
23861 ;; to find sh.
23862 (lambda _
23863 (setenv "SHELL" (which "sh"))
23864 #t)))
23865 #:tests? #t
23866 #:test-command '("make" "test")))
23867 (home-page "https://github.com/mamapanda/evil-traces")
23868 (synopsis "Visual hints for @code{evil-ex}")
23869 (description "This package adds visual hints to certain @code{ex}
23870 commands in @code{evil-mode}.")
23871 (license license:gpl3+))))
23872
23873 (define-public emacs-evil-tmux-navigator
23874 (package
23875 (name "emacs-evil-tmux-navigator")
23876 (version "0.1.5")
23877 (source
23878 (origin
23879 (method git-fetch)
23880 (uri
23881 (git-reference
23882 (url "https://github.com/keith/evil-tmux-navigator")
23883 (commit version)))
23884 (file-name (git-file-name name version))
23885 (sha256
23886 (base32
23887 "1na44rbc03sr5b4z9pvnps6n4nmrqcz58nywix9825l74a419ijx"))))
23888 (propagated-inputs
23889 `(("emacs-evil" ,emacs-evil)))
23890 (build-system emacs-build-system)
23891 (home-page "https://github.com/keith/evil-tmux-navigator")
23892 (synopsis
23893 "Navigate seamlessly between emacs windows and tmux panes")
23894 (description
23895 "This package lets you use C-h, C-j, C-k and C-l to navigate between
23896 Emacs windows and tmux panes.")
23897 (license license:expat)))
23898
23899 (define-public emacs-xclip
23900 (package
23901 (name "emacs-xclip")
23902 (version "1.10")
23903 (source
23904 (origin
23905 (method url-fetch)
23906 (uri (string-append "https://elpa.gnu.org/packages/"
23907 "xclip-" version ".el"))
23908 (sha256
23909 (base32 "0i3i9kwfg8qmhcmqhhnrb1kljgwkccv63s9q1mjwqfjldyfh8j8i"))))
23910 (build-system emacs-build-system)
23911 (home-page "http://elpa.gnu.org/packages/xclip.html")
23912 (synopsis "Copy and paste GUI clipboard from Emacs in text terminal")
23913 (description
23914 "This package allows Emacs to copy to and paste from the GUI clipboard
23915 when running in text terminal.
23916
23917 It can use external command-line tools for that, e.g., @command{xclip} or
23918 @command{xsel}, which you may need to install in order for the package to
23919 work.")
23920 (license license:gpl3+)))
23921
23922 (define-public emacs-xterm-color
23923 (package
23924 (name "emacs-xterm-color")
23925 (version "2.0")
23926 (source
23927 (origin
23928 (method git-fetch)
23929 (uri (git-reference
23930 (url "https://github.com/atomontage/xterm-color")
23931 (commit version)))
23932 (file-name (git-file-name name version))
23933 (sha256
23934 (base32 "127lq50q62x06kd1xrf8lyc4rkqbfhfy86gsx1x4x169am2xk397"))))
23935 (build-system emacs-build-system)
23936 (home-page "https://github.com/atomontage/xterm-color")
23937 (synopsis "ANSI & xterm-256 color text property translator for Emacs")
23938 (description "@code{xterm-color.el} is an ANSI control sequence to
23939 text-property translator.")
23940 (license license:bsd-2)))
23941
23942 (define-public emacs-org-noter
23943 (package
23944 (name "emacs-org-noter")
23945 (version "1.4.1")
23946 (source
23947 (origin
23948 (method git-fetch)
23949 (uri (git-reference
23950 (url "https://github.com/weirdNox/org-noter")
23951 (commit version)))
23952 (file-name (git-file-name name version))
23953 (sha256
23954 (base32
23955 "1vwfpdi7hfkxx4vi0cwg7rvqby3i0mymzdkyzrqzv30dazmcjpag"))))
23956 (build-system emacs-build-system)
23957 (propagated-inputs `(("emacs-org" ,emacs-org)))
23958 (home-page "https://github.com/weirdNox/org-noter")
23959 (synopsis "Synchronized, Org-mode, document annotator")
23960 (description
23961 "This package lets you create notes that are kept in sync when you
23962 scroll through the document, but that are external to it---the notes
23963 themselves live in an Org-mode file. As such, this leverages the power of
23964 Org-mode (the notes may have outlines, latex fragments, babel, etc...) while
23965 acting like notes that are made @emph{in} the document.")
23966 (license license:gpl3+)))
23967
23968 (define-public emacs-org-redmine
23969 (let ((commit "e77d013bc3784947c46a5c53f03cd7d3c68552fc"))
23970 (package
23971 (name "emacs-org-redmine")
23972 (version (git-version "0.1" "1" commit))
23973 (source (origin
23974 (method git-fetch)
23975 (uri (git-reference
23976 (url "https://github.com/gongo/org-redmine")
23977 (commit commit)))
23978 (file-name (git-file-name name version))
23979 (sha256
23980 (base32
23981 "06miv3mf2a39vkf6mmm5ssc47inqh7dq82khsyc03anz4d4lj822"))))
23982 (build-system emacs-build-system)
23983 (home-page "https://github.com/gongo/org-redmine/")
23984 (synopsis "Redmine tools using Emacs")
23985 (description "This program provides an Emacs client for Redmine.")
23986 (license license:gpl3+))))
23987
23988 (define-public emacs-multi-term
23989 ;; No upstream release. Extract version from main file.
23990 (let ((commit "017c77c550115936860e2ea71b88e585371475d5")
23991 (revision "0"))
23992 (package
23993 (name "emacs-multi-term")
23994 (version (git-version "1.5" revision commit))
23995 (source
23996 (origin
23997 (method git-fetch)
23998 (uri (git-reference
23999 (url "https://github.com/manateelazycat/multi-term")
24000 (commit commit)))
24001 (file-name (git-file-name name version))
24002 (sha256
24003 (base32 "043dqd8i8h6hbcg11rzprxin2yq5lb902zlrb7mxah44vyp8wrdi"))))
24004 (build-system emacs-build-system)
24005 (inputs
24006 `(("zsh" ,zsh)))
24007 (home-page "https://github.com/manateelazycat/multi-term")
24008 (synopsis "Manage multiple terminal buffers in Emacs")
24009 (description
24010 "This package enhances @code{term.el} with the following features:
24011
24012 @enumerate
24013 @item Functions to switch between multiple terminal buffers
24014 @item List of keys to be intercepted by @code{emacs-multi-term} instead of by
24015 the underlying terminal
24016 @item Kills the unused buffer left after exiting the terminal
24017 @item Kills the running sub-processes along with the terminal when killing the
24018 it forcibly
24019 @item Dedicated window for debugging program.
24020 @end enumerate")
24021 (license license:gpl3+))))
24022
24023 (define-public emacs-elpher
24024 (package
24025 (name "emacs-elpher")
24026 (version "2.10.2")
24027 (source
24028 (origin
24029 (method git-fetch)
24030 (uri (git-reference
24031 (url "git://thelambdalab.xyz/elpher.git")
24032 (commit (string-append "v" version))))
24033 (file-name (git-file-name name version))
24034 (sha256
24035 (base32 "0xqiisirpvw4ka9417pq4r73x937wl3qbf8cpn2i03akm8d58smd"))))
24036 (build-system emacs-build-system)
24037 (native-inputs
24038 `(("texinfo" ,texinfo)))
24039 (arguments
24040 `(#:phases
24041 (modify-phases %standard-phases
24042 (add-before 'install 'build-doc
24043 (lambda _
24044 (invoke "makeinfo" "elpher.texi"))))))
24045 (home-page "gopher://thelambdalab.xyz/1/projects/elpher/")
24046 (synopsis "Gopher and gemini client for Emacs")
24047 (description "Elpher is a full-featured gopher and gemini client for
24048 Emacs. Its features include intuitive keyboard and mouse-driven browsing,
24049 out-of-the-box compatibility with evil-mode, clickable links in plain text,
24050 caching of visited sites, pleasant and configurable visualization of Gopher
24051 directories, direct visualisation of image files, jumping directly to links by
24052 name (with autocompletion), a simple bookmark management system and
24053 connections using TLS encryption.")
24054 (license license:gpl3+)))
24055
24056 (define-public emacs-zerodark-theme
24057 (package
24058 (name "emacs-zerodark-theme")
24059 (version "4.7")
24060 (source
24061 (origin
24062 (method git-fetch)
24063 (uri (git-reference
24064 (url "https://github.com/NicolasPetton/zerodark-theme")
24065 (commit version)))
24066 (file-name (git-file-name name version))
24067 (sha256
24068 (base32
24069 "1r5s4mvwlxsb9ylr6dkfxpm1l0pbqkmn5gwjdcfk762cnxlam8cm"))))
24070 (build-system emacs-build-system)
24071 (propagated-inputs
24072 `(("emacs-flycheck" ,emacs-flycheck)
24073 ("emacs-all-the-icons" ,emacs-all-the-icons)))
24074 (home-page
24075 "https://gitlab.petton.fr/nico/zerodark-theme")
24076 (synopsis
24077 "Dark, medium contrast theme for Emacs")
24078 (description
24079 "Zerodark is a dark theme inspired from One Dark and Niflheim.
24080 An optional mode-line format can be enabled with @code{zerodark-setup-modeline-format}.")
24081 (license license:gpl3+)))
24082
24083 (define-public emacs-gnus-alias
24084 (package
24085 (name "emacs-gnus-alias")
24086 (version "20150316")
24087 (source (origin
24088 (method git-fetch)
24089 (uri (git-reference
24090 (url "https://github.com/hexmode/gnus-alias")
24091 (commit "9447d3ccb4c0e75d0468899cccff7aa249657bac")))
24092 (file-name (git-file-name name version))
24093 (sha256
24094 (base32
24095 "1i278npayv3kfxxd1ypi9n83q5l402sbc1zkm11pf8g006ifqsp4"))))
24096 (build-system emacs-build-system)
24097 (home-page "https://melpa.org/#/gnus-alias")
24098 (synopsis "Alternative to @code{gnus-posting-styles}")
24099 (description "This Emacs add-on provides a simple mechanism to switch
24100 Identities when using a @code{message-mode} or a @code{message-mode} derived
24101 mode. Identities can include @code{From} and @code{Organisation} headers,
24102 extra headers, body and signature. Other features include:
24103
24104 @itemize
24105 @item Switch Identities in a message buffer.
24106 @item Access original message to help determine Identity of the followup/reply
24107 message.
24108 @item Act on a forwarded message as if it were a message being replied to.
24109 @item Start a new message with a given Identity pre-selected.
24110 @end itemize")
24111 (license license:gpl2+)))
24112
24113 (define-public emacs-ox-epub
24114 (package
24115 (name "emacs-ox-epub")
24116 (version "0.3")
24117 (source (origin
24118 (method git-fetch)
24119 (uri (git-reference
24120 (url "https://github.com/ofosos/ox-epub")
24121 (commit (string-append "v" version))))
24122 (file-name (git-file-name name version))
24123 (sha256
24124 (base32
24125 "057sqmvm8hwkhcg3yd4i8zz2xlqsqrpyiklyiw750s3i5mxdn0k7"))))
24126 (build-system emacs-build-system)
24127 (home-page "https://github.com/ofosos/ox-epub")
24128 (synopsis "Export org mode projects to EPUB")
24129 (description "@code{ox-epub} extends the (X)HTML exporter to generate
24130 @code{.epub} files directly from OrgMode. This will export EPUB version 2,
24131 which should give broad compatibility. It should also be relatiely easy to
24132 convert the resulting @code{.epub} to a @code{.mobi} file. Needs a working
24133 zip utility (default is @code{zip}).")
24134 (license license:gpl3+)))
24135
24136 (define-public emacs-ox-gemini
24137 ;; No releases yet
24138 (let ((commit "d88c10bcb10fc463fa5a2f6e29c8c94b75a314c0")
24139 (revision "0"))
24140 (package
24141 (name "emacs-ox-gemini")
24142 (version (git-version "0" revision commit))
24143 (source
24144 (origin
24145 (method git-fetch)
24146 (uri (git-reference
24147 (url "https://git.sr.ht/~abrahms/ox-gemini")
24148 (commit commit)))
24149 (file-name (git-file-name name version))
24150 (sha256
24151 (base32 "1f8kbg5vjd1k7fak3v56b77yk612j6vmzx4xzx3m2vq3f0nyxq29"))))
24152 (build-system emacs-build-system)
24153 (home-page "https://sr.ht/~abrahms/ox-gemini")
24154 (synopsis "Export Org files in Gemini format")
24155 (description
24156 "@code{ox-gemini} adds support for exporting Org files in Gemini
24157 format. Many things were taken from the ASCII exporter, from which
24158 @code{ox-gemini} derives.")
24159 (license license:gpl3+))))
24160
24161 (define-public emacs-ox-haunt
24162 (package
24163 (name "emacs-ox-haunt")
24164 (version "0.2")
24165 (source
24166 (origin
24167 (method git-fetch)
24168 (uri (git-reference
24169 (url "https://git.sr.ht/~jakob/ox-haunt")
24170 (commit (string-append "v" version))))
24171 (file-name (git-file-name name version))
24172 (sha256
24173 (base32 "1rs1n228c2fmpvirc57bqgf2616ijpphkgf4w9ln5j46snmkam25"))))
24174 (build-system emacs-build-system)
24175 (home-page "https://git.sr.ht/~jakob/ox-haunt")
24176 (synopsis "Export Org files to HTML appropriate for Haunt")
24177 (description
24178 "This library implements an HTML back-end for the Org generic exporter,
24179 producing output appropriate for Haunt's @code{html-reader}.")
24180 (license license:gpl3+)))
24181
24182 (define-public emacs-ox-hugo
24183 (package
24184 (name "emacs-ox-hugo")
24185 (version "0.8")
24186 (source
24187 (origin
24188 (method git-fetch)
24189 (uri (git-reference
24190 (url "https://github.com/kaushalmodi/ox-hugo")
24191 (commit (string-append "v" version))))
24192 (file-name (git-file-name name version))
24193 (sha256
24194 (base32
24195 "11h464cyc28ld0b0zridgm4drydc1qjxbm1y24zrwlkyqqjk6yr7"))))
24196 (build-system emacs-build-system)
24197 (home-page "https://ox-hugo.scripter.co")
24198 (synopsis "Hugo markdown back-end for Org export engine")
24199 (description
24200 "Ox-hugo is an Org exporter backend that exports Org to Hugo-compatible
24201 Markdown, Blackfriday, and also generates the front-matter in TOML or YAML
24202 format.")
24203 (license license:gpl3+)))
24204
24205 (define-public emacs-ox-pandoc
24206 (package
24207 (name "emacs-ox-pandoc")
24208 (version "20180510")
24209 (source (origin
24210 (method git-fetch)
24211 (uri (git-reference
24212 (url "https://github.com/kawabata/ox-pandoc")
24213 (commit "aa37dc7e94213d4ebedb85c384c1ba35007da18e")))
24214 (file-name (git-file-name name version))
24215 (sha256
24216 (base32
24217 "0iibxplgdp34bpq1yll2gmqjd8d8lnqn4mqjvx6cdf0y438yr4jz"))))
24218 (build-system emacs-build-system)
24219 (inputs
24220 `(("pandoc" ,pandoc)))
24221 (propagated-inputs
24222 `(("emacs-dash" ,emacs-dash)
24223 ("emacs-ht" ,emacs-ht)))
24224 (home-page "https://github.com/kawabata/ox-pandoc")
24225 (synopsis "Org exporter for Pandoc")
24226 (description "@code{ox-pandoc} is an exporter for converting Org-mode
24227 files to numerous other formats via Pandoc.")
24228 (license license:gpl3+)))
24229
24230 (define-public emacs-wc-mode
24231 (package
24232 (name "emacs-wc-mode")
24233 (version "1.4")
24234 (source (origin
24235 (method git-fetch)
24236 (uri (git-reference
24237 (url "https://github.com/bnbeckwith/wc-mode")
24238 (commit (string-append "v" version))))
24239 (file-name (git-file-name name version))
24240 (sha256
24241 (base32
24242 "01icd63mb2hg1bgbmkq3jm8kc3ic8whfy2awcgx53zqkmyz87qxc"))))
24243 (build-system emacs-build-system)
24244 (home-page "https://github.com/bnbeckwith/wc-mode")
24245 (synopsis "Running word count with goals (minor mode)")
24246 (description "@code{wc-mode} is a minor mode, providing a ‘wc’ function
24247 for Emacs buffers as well as a modeline addition with live word, line and
24248 character counts. Additionally, a user can set specific goals for adding or
24249 deleting words. These goals were partly inspired by 750words.com where the
24250 goal of the site is to encourage writing by setting a goal of 750 words at a
24251 time.")
24252 (license license:gpl3+)))
24253
24254 (define-public emacs-mastodon
24255 (package
24256 (name "emacs-mastodon")
24257 (version "0.9.0")
24258 (source (origin
24259 (method git-fetch)
24260 (uri (git-reference
24261 (url "https://github.com/jdenen/mastodon.el")
24262 (commit version)))
24263 (file-name (git-file-name name version))
24264 (sha256
24265 (base32
24266 "0hwax6y9dghqwsbnb6f1bnc7gh8xsh5cvcnayk2sn49x8b0zi5h1"))))
24267 (build-system emacs-build-system)
24268 (arguments
24269 `(#:phases
24270 (modify-phases %standard-phases
24271 ;; Move the source files to the top level, which is included in
24272 ;; the EMACSLOADPATH.
24273 (add-after 'unpack 'move-source-files
24274 (lambda _
24275 (let ((el-files (find-files "./lisp" ".*\\.el$")))
24276 (for-each (lambda (f)
24277 (rename-file f (basename f)))
24278 el-files))
24279 #t)))))
24280 (home-page "https://github.com/jdenen/mastodon.el")
24281 (synopsis "Emacs client for Mastodon")
24282 (description "@code{mastodon.el} is an Emacs client for Mastodon, the
24283 federated microblogging social network.")
24284 (license license:gpl3+)))
24285
24286 (define-public emacs-ebdb
24287 (package
24288 (name "emacs-ebdb")
24289 (version "0.6.22")
24290 (source
24291 (origin
24292 (method url-fetch)
24293 (uri (string-append "https://elpa.gnu.org/packages/"
24294 "ebdb-" version ".tar"))
24295 (sha256
24296 (base32 "0dljl21n6508c7ash7l6zgxhpn2wdfzga0va63d4k9nwnqmkvsgz"))))
24297 (build-system emacs-build-system)
24298 (home-page "https://github.com/girzel/ebdb")
24299 (synopsis "EIEIO port of BBDB, Emacs's contact-management package")
24300 (description
24301 "EBDB is a contact management/addressbook package for Emacs. It's
24302 a re-write of the Insidious Big Brother Database (BBDB) using Emacs
24303 Lisp's (relatively new) EIEIO object oriented libraries.")
24304 (license license:gpl3+)))
24305
24306 (define-public emacs-refactor
24307 (package
24308 (name "emacs-refactor")
24309 (version "0.4")
24310 (source (origin
24311 (method git-fetch)
24312 (uri (git-reference
24313 (url "https://github.com/Wilfred/emacs-refactor")
24314 (commit version)))
24315 (file-name (git-file-name name version))
24316 (sha256
24317 (base32
24318 "1yky7vlv91501xb43xk19rr8mxlvrsxhawsc98jivf64nad5dqay"))))
24319 (build-system emacs-build-system)
24320 (propagated-inputs
24321 `(("emacs-dash" ,emacs-dash)
24322 ("emacs-s" ,emacs-s)
24323 ("emacs-popup" ,emacs-popup)
24324 ("emacs-list-utils" ,emacs-list-utils)
24325 ("emacs-iedit" ,emacs-iedit)))
24326 (home-page "https://github.com/Wilfred/emacs-refactor/")
24327 (synopsis "Language-specific refactoring in Emacs")
24328 (description "Emacs Refactor (EMR) is a framework for providing
24329 language-specific refactoring in Emacs. It includes refactoring commands for
24330 a variety of languages, including elisp itself.")
24331 (license license:gpl3+)))
24332
24333 (define-public emacs-flyspell-correct
24334 (package
24335 (name "emacs-flyspell-correct")
24336 (version "0.6.1")
24337 (source
24338 (origin
24339 (method git-fetch)
24340 (uri (git-reference
24341 (url "https://github.com/d12frosted/flyspell-correct")
24342 (commit (string-append "v" version))))
24343 (file-name (git-file-name name version))
24344 (sha256
24345 (base32 "1m5da6r82hk0c2x3lw03qnkk79sx67875afw0ybblj3cmfk6szd1"))))
24346 (build-system emacs-build-system)
24347 ;; XXX: emacs-avy-menu is not packaged, so we ignore the file below.
24348 (arguments
24349 `(#:exclude '("flyspell-correct-avy-menu\\.el")))
24350 (propagated-inputs
24351 `(("emacs-helm" ,emacs-helm)
24352 ("emacs-ivy" ,emacs-ivy)
24353 ("emacs-popup" ,emacs-popup)))
24354 (home-page "https://github.com/d12frosted/flyspell-correct")
24355 (synopsis "Correcting words with flyspell via custom interfaces")
24356 (description
24357 "This package provides functionality for correcting words via custom
24358 interfaces. Several interfaces are supported beside the classic Ido: Popup,
24359 Helm and Ivy.")
24360 (license license:gpl3+)))
24361
24362 (define-public emacs-org-emms
24363 (let ((commit "07a8917f3d628c32e5de1dbd118ac08203772533")
24364 (revision "1"))
24365 (package
24366 (name "emacs-org-emms")
24367 (version
24368 (git-version "0.1" revision commit))
24369 (source
24370 (origin
24371 (method git-fetch)
24372 (uri (git-reference
24373 (url "https://gitlab.com/jagrg/org-emms.git")
24374 (commit commit)))
24375 (file-name (git-file-name name commit))
24376 (sha256
24377 (base32
24378 "1sqsm5sv311xfdk4f4rsnvprdf2v2vm7l1b3vqi7pc0g8adlnw1d"))))
24379 (build-system emacs-build-system)
24380 (propagated-inputs
24381 `(("emms" ,emacs-emms)
24382 ("emacs-org" ,emacs-org)))
24383 (home-page "https://gitlab.com/jagrg/org-emms")
24384 (synopsis "Play multimedia files from org-mode")
24385 (description
24386 "This package provides a new org link type for playing back multimedia
24387 files from org-mode using EMMS, The Emacs Multimedia System. If the link
24388 contains a track position, playback will start at the specified position.")
24389 (license license:gpl3+))))
24390
24391 (define-public emacs-org-jira
24392 (package
24393 (name "emacs-org-jira")
24394 (version "4.3.2")
24395 (source
24396 (origin
24397 (method git-fetch)
24398 (uri (git-reference
24399 (url "https://github.com/ahungry/org-jira")
24400 (commit version)))
24401 (file-name (git-file-name name version))
24402 (sha256
24403 (base32
24404 "1hsfkkm3ykdf7n8a6k0mpzilhjpy7vllwrl2s4rfb9mhnaq5yb8y"))))
24405 (build-system emacs-build-system)
24406 (propagated-inputs
24407 `(("emacs-request" ,emacs-request)
24408 ("emacs-s" ,emacs-s)
24409 ("emacs-dash" ,emacs-dash)
24410 ("emacs-org" ,emacs-org)))
24411 (home-page "https://github.com/ahungry/org-jira")
24412 (synopsis "Syncing between Jira and Org-mode")
24413 (description
24414 "This package provides an extension to org-mode for syncing issues with
24415 JIRA issue servers.")
24416 (license license:gpl3+)))
24417
24418 (define-public emacs-slime-volleyball
24419 (package
24420 (name "emacs-slime-volleyball")
24421 (version "1.1.7")
24422 (source
24423 (origin
24424 (method url-fetch)
24425 (uri (string-append "https://elpa.gnu.org/packages/"
24426 "slime-volleyball-" version ".tar"))
24427 (sha256
24428 (base32 "0dl1x0ghfwg4vv2asz3g4plghjxpzd56fyw09vsa3s3k9xsmy3yy"))))
24429 (build-system emacs-build-system)
24430 (arguments '(#:include '("\\.el$" "\\.svg$" "\\.b64$" "slime\\.el\\.gz$")))
24431 (home-page "http://elpa.gnu.org/packages/slime-volleyball.html")
24432 (synopsis "SVG slime volleyball game")
24433 (description
24434 "Emacs Slime Volleyball is a volleyball game. Win points by
24435 making the ball land on your opponent's side of the court. The first
24436 player to five points wins! You can play against a friend, or
24437 challenge the three computer opponents in one player mode. You can
24438 even train opponent slimes.")
24439 (license license:gpl3+)))
24440
24441 (define-public emacs-systemd-mode
24442 (package
24443 (name "emacs-systemd-mode")
24444 (version "1.6")
24445 (source (origin
24446 (method git-fetch)
24447 (uri (git-reference
24448 (url "https://github.com/holomorph/systemd-mode")
24449 (commit (string-append "v" version))))
24450 (file-name (git-file-name name version))
24451 (sha256
24452 (base32
24453 "0ylgnvpfindg4cxccbqy02ic7p0i9rygf1w16dm1filwhbqvjplq"))))
24454 (build-system emacs-build-system)
24455 (arguments '(#:include '("\\.el$" "\\.txt$")))
24456 (home-page "https://github.com/holomorph/systemd-mode")
24457 (synopsis
24458 "Major mode for editing systemd units")
24459 (description
24460 "Major mode for editing systemd units in GNU Emacs.")
24461 (license license:gpl3+)))
24462
24463 (define-public emacs-ssh-config-mode
24464 (let ((commit "4c1dfa57d452cb5654453bf186c8ff63e1e71b56")
24465 (revision "1"))
24466 (package
24467 (name "emacs-ssh-config-mode")
24468 (version (git-version "8.0" revision commit))
24469 (source
24470 (origin
24471 (method git-fetch)
24472 (uri
24473 (git-reference
24474 (url "https://github.com/jhgorrell/ssh-config-mode-el")
24475 (commit commit)))
24476 (file-name (git-file-name name commit))
24477 (sha256
24478 (base32
24479 "0crglfdazzckizbwzmgl2rn6j85avfzkr1q7ijxd17rp2anvr9bd"))))
24480 (build-system emacs-build-system)
24481 (arguments '(#:include '("\\.el$" "\\.txt$")))
24482 (home-page
24483 "https://github.com/jhgorrell/ssh-config-mode-el")
24484 (synopsis
24485 "Mode for fontification of ~/.ssh/config")
24486 (description
24487 "This package fontifies the ssh config keywords and creates
24488 keybindings for skipping from host section to host section.")
24489 (license license:gpl3+))))
24490
24491 (define-public emacs-ssh-agency
24492 (package
24493 (name "emacs-ssh-agency")
24494 (version "0.4.1")
24495 (source (origin
24496 (method git-fetch)
24497 (uri (git-reference
24498 (url "https://github.com/magit/ssh-agency")
24499 (commit version)))
24500 (file-name (git-file-name name version))
24501 (sha256
24502 (base32
24503 "1i3zmsn0w2k7p2hlzssibckm32kf05l56mkhg96x4sf06g3pwq1d"))))
24504 (build-system emacs-build-system)
24505 (propagated-inputs
24506 `(("dash" ,emacs-dash)))
24507 (home-page "https://github.com/magit/ssh-agency")
24508 (synopsis "Manage @code{ssh-agent} from Emacs")
24509 (description
24510 "This package provides functions to startup @code{ssh-agent}, set the
24511 needed environment variables in Emacs, and prompt for passphrases from within
24512 Emacs so that pushes and pulls from @code{magit} will not require entering any
24513 passphrase.
24514
24515 It can also be useful on Unix-like platforms to delay having to enter your
24516 passphrase until the first time you push to a remote.")
24517 (license license:gpl3+)))
24518
24519 (define-public emacs-tao-theme
24520 (let ((commit "468ee4f6ba7afb9dbfc8855ae2c333cb16ca4408")
24521 (revision "1"))
24522 (package
24523 (name "emacs-tao-theme")
24524 (version (git-version "1.1.1" revision commit))
24525 (source
24526 (origin
24527 (method git-fetch)
24528 (uri (git-reference
24529 (url "https://github.com/11111000000/tao-theme-emacs")
24530 (commit commit)))
24531 (file-name (git-file-name name version))
24532 (sha256
24533 (base32
24534 "0yqibx6wcdsj5k6130c3qp0hmj6zwhfjrrvw98lny23ksw6k0s3s"))))
24535 (build-system emacs-build-system)
24536 (home-page "https://github.com/11111000000/tao-theme-emacs")
24537 (synopsis "Parameterized uncolored color themes for Emacs")
24538 (description
24539 "This package provides two parameterized uncolored color themes for
24540 Emacs: @code{tao-yin} and @code{tao-yang}. The default
24541 @code{tao-theme-scale-fn} is @code{tao-theme-golden-scale}.
24542
24543 You can customize: @code{tao-theme-scale-fn}, that returns 16 2-digit numbers;
24544 @code{tao-theme-scale-filter-fn}, for edge filter; and
24545 @code{tao-theme-use-height}.")
24546 (license license:gpl3+))))
24547
24548 (define-public emacs-almost-mono-themes
24549 (let ((commit "c3a85c1a665530a5d830665969725cdba8eceb75")
24550 (revision "0"))
24551 (package
24552 (name "emacs-almost-mono-themes")
24553 (version (git-version "0" revision commit))
24554 (source
24555 (origin
24556 (method git-fetch)
24557 (uri (git-reference
24558 (url "https://github.com/cryon/almost-mono-themes")
24559 (commit commit)))
24560 (file-name (git-file-name name version))
24561 (sha256
24562 (base32
24563 "034k32xkr5ma415hlkbl35z0jxc4sa1inf87hg3y6lrlfl83fyjh"))))
24564 (build-system emacs-build-system)
24565 (home-page "https://github.com/cryon/almost-mono-themes")
24566 (synopsis "Almost monochromatic themes for emacs in a few variants")
24567 (description
24568 "This package provides a collection of almost monochrome Emacs themes:
24569 @code{almost-mono-black} and @code{almost-mono-white}.")
24570 (license license:gpl3+))))
24571
24572 (define-public emacs-quasi-monochrome
24573 (let ((commit "68060dbbc0bbfe4924387392874186c5a29bb434")
24574 (revision "0"))
24575 (package
24576 (name "emacs-quasi-monochrome")
24577 (version (git-version "1.2" revision commit))
24578 (source
24579 (origin
24580 (method git-fetch)
24581 (uri (git-reference
24582 (url "https://github.com/lbolla/emacs-quasi-monochrome")
24583 (commit commit)))
24584 (file-name (git-file-name name version))
24585 (sha256
24586 (base32
24587 "0zp2xr0bjfqrpb0bqczzick1vvbjmipjavrdi70kw6a9caynvq22"))))
24588 (build-system emacs-build-system)
24589 (home-page "https://github.com/lbolla/emacs-quasi-monochrome")
24590 (synopsis "Dark color theme for Emacs")
24591 (description
24592 "This package provides a dark color theme with a black background, high
24593 contrast and few colors.")
24594 (license license:gpl3+))))
24595
24596 (define-public emacs-doom-themes
24597 (let ((commit "e803fc4ac8cf7118e2d1544d8241b848b5e79e9f")
24598 (revision "5")
24599 (version "2.1.6"))
24600 (package
24601 (name "emacs-doom-themes")
24602 (version (git-version version revision commit))
24603 (source (origin
24604 (method git-fetch)
24605 (uri (git-reference
24606 (url "https://github.com/hlissner/emacs-doom-themes")
24607 (commit commit)))
24608 (file-name (git-file-name name version))
24609 (sha256
24610 (base32 "128hdmf0jkzr12fv2r6z349qiwba6q97hsb6b1n2qlhi0v5v3mfh"))))
24611 (build-system emacs-build-system)
24612 (native-inputs
24613 `(("emacs-ert-runner" ,emacs-ert-runner)))
24614 (arguments
24615 `(#:tests? #t
24616 #:test-command '("ert-runner")
24617 #:modules ((guix build emacs-build-system)
24618 (guix build utils)
24619 (guix build emacs-utils)
24620 (srfi srfi-1))
24621 #:phases
24622 (modify-phases %standard-phases
24623 (add-after 'unpack 'move-themes
24624 (lambda _
24625 ;; Move the source files to the top level, which is in the
24626 ;; EMACSLOADPATH.
24627 (for-each (lambda (f)
24628 (rename-file f (basename f)))
24629 (find-files "./themes" ".*\\.el$"))
24630 #t)))))
24631 (synopsis "Wide collection of color themes for Emacs")
24632 (description "Emacs-doom-themes contains numerous popular color themes for
24633 Emacs that integrate with major modes like Org-mode.")
24634 (home-page "https://github.com/hlissner/emacs-doom-themes")
24635 (license license:expat))))
24636
24637 (define-public emacs-modus-themes
24638 (package
24639 (name "emacs-modus-themes")
24640 (version "1.2.3")
24641 (source
24642 (origin
24643 (method git-fetch)
24644 (uri (git-reference
24645 (url "https://gitlab.com/protesilaos/modus-themes")
24646 (commit version)))
24647 (file-name (git-file-name name version))
24648 (sha256
24649 (base32 "1l392hz6zs6wg06x2zxnk7s0h5cpmvbkcynh68gjmqjj84l7mqrk"))))
24650 (build-system emacs-build-system)
24651 (home-page "https://protesilaos.com/modus-themes/")
24652 (synopsis "Accessible themes (WCAG AAA)")
24653 (description
24654 "The Modus themes are designed for accessible readability. They conform
24655 with the highest standard for color contrast between any given combination of
24656 background and foreground values. This corresponds to the WCAG AAA standard,
24657 which specifies a minimum rate of distance in relative luminance of 7:1.
24658
24659 Modus Operandi (modus-operandi) is a light theme, while Modus
24660 Vivendi (modus-vivendi) is dark. Each theme’s color palette is designed to
24661 meet the needs of the numerous interfaces that are possible in the Emacs
24662 computing environment.")
24663 (license license:gpl3+)))
24664
24665 (define-public emacs-modus-operandi-theme
24666 (deprecated-package "emacs-modus-operandi-theme" emacs-modus-themes))
24667
24668 (define-public emacs-modus-vivendi-theme
24669 (deprecated-package "emacs-modus-vivendi-theme" emacs-modus-themes))
24670
24671 (define-public emacs-punpun-theme
24672 (let ((commit "2f78125609277b2478abdebd8f9d5ee10a823b65")
24673 (revision "0"))
24674 (package
24675 (name "emacs-punpun-theme")
24676 (version (git-version "0" revision commit))
24677 (source
24678 (origin
24679 (method git-fetch)
24680 (uri (git-reference
24681 (url "https://github.com/wasamasa/punpun-theme")
24682 (commit commit)))
24683 (file-name (git-file-name name version))
24684 (sha256
24685 (base32
24686 "1sgxrj3igzq86h3whfymxf4qzv9kpvcrlhbvjmnp7fwrplys0n7d"))))
24687 (build-system emacs-build-system)
24688 (home-page "https://github.com/wasamasa/punpun-theme")
24689 (synopsis "Bleak Emacs theme")
24690 (description
24691 "A bleak theme. Uses shades of gray and the occasional splash of
24692 color. Designed for 256-color terminals. Comes in light and dark!")
24693 (license license:gpl3+))))
24694
24695 (define-public emacs-spacemacs-theme
24696 (let ((commit "f79c40fb241e204539fde97200abae91e828e585")
24697 (revision "1"))
24698 (package
24699 (name "emacs-spacemacs-theme")
24700 (version (git-version "0" revision commit)) ;no release yet
24701 (source
24702 (origin
24703 (method git-fetch)
24704 (uri (git-reference
24705 (url "https://github.com/nashamri/spacemacs-theme")
24706 (commit commit)))
24707 (file-name (git-file-name name version))
24708 (sha256
24709 (base32 "1l2kkiyrskkpx8f901v0wrzaah1wjg15zdyv88spj3mh3hwd3b6n"))))
24710 (build-system emacs-build-system)
24711 (home-page "https://github.com/nashamri/spacemacs-theme")
24712 (synopsis
24713 "Light and dark theme for spacemacs that supports GUI and terminal")
24714 (description
24715 "Spacemacs theme is an Emacs color theme that started as
24716 a theme for Spacemacs. The theme comes with dark and light variants
24717 and it should work well with 256 color terminals.")
24718 (license license:gpl3+))))
24719
24720 (define-public emacs-elixir-mode
24721 (package
24722 (name "emacs-elixir-mode")
24723 (version "2.3.2")
24724 (source
24725 (origin
24726 (method git-fetch)
24727 (uri (git-reference
24728 (url "https://github.com/elixir-editors/emacs-elixir")
24729 (commit (string-append "v" version))))
24730 (file-name (git-file-name name version))
24731 (sha256
24732 (base32 "0f2a360h8bizvqk6bmgxm59g8n7id5rzwlbv6d383h15w298mcga"))))
24733 (build-system emacs-build-system)
24734 (propagated-inputs
24735 `(("emacs-pkg-info" ,emacs-pkg-info)))
24736 (home-page
24737 "https://github.com/elixir-editors/emacs-elixir")
24738 (synopsis "Major mode for editing Elixir files")
24739 (description
24740 "Elixir-Mode provides font-locking, indentation and navigation support
24741 for the Elixir programming language.")
24742 (license license:gpl3+)))
24743
24744 (define-public emacs-dimmer
24745 (package
24746 (name "emacs-dimmer")
24747 (version "0.4.2")
24748 (source
24749 (origin
24750 (method git-fetch)
24751 (uri (git-reference
24752 (url "https://github.com/gonewest818/dimmer.el")
24753 (commit version)))
24754 (file-name (git-file-name name version))
24755 (sha256
24756 (base32
24757 "0dw0qh5hm1x76s5cqxvylvmjgy0jwy11xm258g6kmx6w1k6r1d2l"))))
24758 (build-system emacs-build-system)
24759 (home-page "https://github.com/gonewest818/dimmer.el")
24760 (synopsis "Visually highlights the selected buffer in Emacs")
24761 (description "Dimmer provides a minor mode that indicates which buffer is
24762 currently active by dimming the faces in the other buffers. It does this
24763 nondestructively, and computes the dimmed faces dynamically such that your
24764 overall color scheme is shown in a muted form without requiring you to define
24765 what is a \"dim\" version of every face.")
24766 (license license:gpl3+)))
24767
24768 (define-public emacs-minibuffer-line
24769 (package
24770 (name "emacs-minibuffer-line")
24771 (version "0.1")
24772 (source
24773 (origin
24774 (method url-fetch)
24775 (uri (string-append
24776 "https://elpa.gnu.org/packages/minibuffer-line-"
24777 version
24778 ".el"))
24779 (sha256
24780 (base32 "1ny4iirp26na5118wfgxlv6fxlrdclzdbd9m0lkrv51w0qw7spil"))))
24781 (build-system emacs-build-system)
24782 (home-page "https://elpa.gnu.org/packages/minibuffer-line.html")
24783 (synopsis "Display status info in the minibuffer window")
24784 (description
24785 "This package lets you display various status information in the
24786 minibuffer window instead of the mode-line. Of course, this is only displayed
24787 when the minibuffer window is not already used for other things (e.g. a
24788 minibuffer or an each area message).
24789
24790 The contents and aspect is controlled by the @code{minibuffer-line-format}
24791 variable and the @code{minibuffer-line} face.")
24792 (license license:gpl3+)))
24793
24794 (define-public emacs-eshell-prompt-extras
24795 (package
24796 (name "emacs-eshell-prompt-extras")
24797 (version "1.0")
24798 (home-page "https://github.com/zwild/eshell-prompt-extras")
24799 (source
24800 (origin
24801 (method git-fetch)
24802 (uri (git-reference
24803 (url home-page)
24804 (commit version)))
24805 (file-name (git-file-name name version))
24806 (sha256
24807 (base32
24808 "0gb07mns23dgqqr6qfy7d6ndizy15sqgbgfaig6k5xbjnwi02v9g"))))
24809 (build-system emacs-build-system)
24810 (synopsis "Display extra information and color for your Eshell prompt")
24811 (description "This library displays various customizable elements for
24812 @code{eshell} prompts: remote user, remote host, python virtual environment
24813 info, git branch, git dirty info and git unpushed number. Multiple themes are
24814 available.")
24815 (license license:gpl3+)))
24816
24817 (define-public emacs-eshell-did-you-mean
24818 (package
24819 (name "emacs-eshell-did-you-mean")
24820 (version "0.1")
24821 (home-page "https://github.com/xuchunyang/eshell-did-you-mean")
24822 (source
24823 (origin
24824 (method git-fetch)
24825 (uri (git-reference
24826 (url home-page)
24827 (commit (string-append "v" version))))
24828 (file-name (git-file-name name version))
24829 (sha256
24830 (base32
24831 "0v0wshck5n4hspcv1zk1g2nm6xiigcjp16lx0dc8wzkl6ymljvbg"))))
24832 (build-system emacs-build-system)
24833 (synopsis "Display suggestions on 'command not found' in Eshell")
24834 (description "This library adds a list of 'Did you mean...' suggestions
24835 when the command was not found in Eshell. The suggestions are found after the
24836 commands that bear resemblance to the input command.")
24837 (license license:gpl3+)))
24838
24839 (define-public emacs-unfill
24840 (package
24841 (name "emacs-unfill")
24842 (version "0.3")
24843 (home-page "https://github.com/purcell/unfill")
24844 (source
24845 (origin
24846 (method git-fetch)
24847 (uri (git-reference
24848 (url home-page)
24849 (commit version)))
24850 (file-name (git-file-name name version))
24851 (sha256
24852 (base32 "0pg64nza2mp4xyr69pjq51jsq1aaym0g38g4jzaxr0hh3w0ris1n"))))
24853 (build-system emacs-build-system)
24854 (synopsis "Inverse of Emacs' @code{fill-paragraph} and @code{fill-region}")
24855 (description
24856 "The functions in this package provide the inverse of Emacs'
24857 @code{fill-paragraph} and @code{fill-region}.")
24858 (license license:gpl3+)))
24859
24860 (define-public emacs-windower
24861 (package
24862 (name "emacs-windower")
24863 (version "0.0.1")
24864 (home-page "https://gitlab.com/ambrevar/emacs-windower")
24865 (source
24866 (origin
24867 (method git-fetch)
24868 (uri (git-reference
24869 (url home-page)
24870 (commit version)))
24871 (file-name (git-file-name name version))
24872 (sha256
24873 (base32 "0h24gb1ip0czfasxm8wwcc3v19g7mznzw2sxkmmfb5iis59p7dfy"))))
24874 (build-system emacs-build-system)
24875 (synopsis "Helper functions for window manipulation in Emacs")
24876 (description
24877 "This package provides helper functions for window manipulation in Emacs,
24878 such as:
24879
24880 @itemize
24881 @item switch to last buffer,
24882 @item toggle single window display,
24883 @item toggle between horizontal and vertical splits,
24884 @item move borders more naturally,
24885 @item swap windows à-la @code{windmove}.
24886 @end itemize")
24887 (license license:gpl3+)))
24888
24889 (define-public emacs-flycheck-cpplint
24890 (let ((commit "1d8a090861572258ab704915263feeb3a436c3d2")
24891 (revision "1"))
24892 (package
24893 (name "emacs-flycheck-cpplint")
24894 (version (git-version "0.1" revision commit))
24895 (source
24896 (origin
24897 (method git-fetch)
24898 (uri (git-reference
24899 (url "https://github.com/flycheck/flycheck-google-cpplint")
24900 (commit commit)))
24901 (file-name (git-file-name name version))
24902 (sha256
24903 (base32 "0l6sg83f6z8x2alnblpv03rj442sbnkkkcbf8i0agjmx3713a5yx"))))
24904 (build-system emacs-build-system)
24905 (arguments
24906 `(#:phases
24907 (modify-phases %standard-phases
24908 (add-after 'unpack 'set-cpplint-path
24909 (lambda _
24910 (substitute* "flycheck-google-cpplint.el"
24911 (("\"cpplint.py\"")
24912 (string-append "\"" (which "cpplint") "\"")))
24913 #t)))))
24914 (inputs
24915 `(("cpplint" ,cpplint)))
24916 (propagated-inputs
24917 `(("flycheck-mode" ,emacs-flycheck)))
24918 (synopsis "Google C++ checker for Flycheck")
24919 (description "This package provides a interface for @code{cpplint} over
24920 Flycheck plugin. @code{cpplint} is a static code checker for C++, following
24921 Google guidelines.")
24922 (home-page "https://github.com/flycheck/flycheck-google-cpplint")
24923 (license license:gpl3+))))
24924
24925 (define-public emacs-helm-fish-completion
24926 (package
24927 (name "emacs-helm-fish-completion")
24928 (version "0.6")
24929 (home-page "https://github.com/emacs-helm/helm-fish-completion")
24930 (source
24931 (origin
24932 (method git-fetch)
24933 (uri (git-reference
24934 (url home-page)
24935 (commit version)))
24936 (file-name (git-file-name name version))
24937 (sha256
24938 (base32 "1j2vfngq3512naaayv9kx0d1q2zg1xgs69l8afc7swg72h0l0imw"))))
24939 (build-system emacs-build-system)
24940 (propagated-inputs
24941 `(("helm" ,emacs-helm)
24942 ("fish-completion" ,emacs-fish-completion)))
24943 (synopsis "Helm interface for Emacs fish-completion")
24944 (description "Helm Fish Completion is a Helm interface for Emacs
24945 fish-completion. It can be used in both Eshell and M-x shell.")
24946 (license license:gpl3+)))
24947
24948 (define-public emacs-helm-switch-to-repl
24949 (package
24950 (name "emacs-helm-switch-to-repl")
24951 (version "0.1.2")
24952 (home-page "https://github.com/emacs-helm/helm-switch-to-repl")
24953 (source
24954 (origin
24955 (method git-fetch)
24956 (uri (git-reference
24957 (url home-page)
24958 (commit version)))
24959 (file-name (git-file-name name version))
24960 (sha256
24961 (base32 "0n8qa549c5syvgqw1h2zrakjjbygddpxzaifaq5irscgdcajrads"))))
24962 (build-system emacs-build-system)
24963 (propagated-inputs
24964 `(("helm" ,emacs-helm)))
24965 (synopsis "Helm action to switch directory in Emacs REPLs")
24966 (description "Helm \"Switch-to-REPL\" offers the
24967 @code{helm-switch-to-repl} action, a generalized and extensible version of
24968 @code{helm-ff-switch-to-shell}. It can be added to @code{helm-find-files} and
24969 other @code{helm-type-file} sources such as @code{helm-locate}.")
24970 (license license:gpl3+)))
24971
24972 (define-public emacs-telega
24973 ;; This package has versions newer than indicated on MELPA.
24974 ;; Get the current version from `telega-version` in telega.el.
24975 ;; or by running M-x telega-version.
24976 (let ((commit "1d28dc209e2acf1a3bf2852cc620b6e412ea73f9")
24977 (revision "1")
24978 (version "0.7.1"))
24979 (package
24980 (name "emacs-telega")
24981 (version (git-version version revision commit))
24982 (source
24983 (origin
24984 (method git-fetch)
24985 (uri (git-reference
24986 (url "https://github.com/zevlg/telega.el")
24987 (commit commit)))
24988 (sha256
24989 (base32
24990 "0h6kj3r36x26v6p4gkzg5s6fv0brlvrf6ycsdwnz27fw5sdb99k7"))
24991 (patches (search-patches
24992 "emacs-telega-patch-server-functions.patch"
24993 "emacs-telega-test-env.patch"))
24994 (file-name (git-file-name name version))))
24995 (build-system gnu-build-system)
24996 (arguments
24997 `(#:modules ((guix build gnu-build-system)
24998 ((guix build emacs-build-system) #:prefix emacs:)
24999 (guix build utils)
25000 (guix build emacs-utils))
25001 #:imported-modules (,@%gnu-build-system-modules
25002 (guix build emacs-build-system)
25003 (guix build emacs-utils))
25004 #:test-target "test"
25005 ;; TODO: Currently tgVOIP is not functional, thus we have disabled it
25006 ;; temporarily.
25007 ;; #:make-flags (list "WITH_VOIP=t")
25008 #:phases
25009 (modify-phases %standard-phases
25010 (add-after 'unpack 'prefix-patch
25011 (lambda _
25012 (substitute* "server/Makefile"
25013 (("CC=cc")
25014 "CC=gcc")
25015 (("INSTALL_PREFIX=\\$\\(HOME\\)/.telega")
25016 (string-append "INSTALL_PREFIX=" (assoc-ref %outputs "out")
25017 "/bin"))
25018 ;; Manually invoke `run_tests.py` after install phase.
25019 (("python3 run_tests.py")
25020 ""))
25021 #t))
25022 (add-after 'check 'telega-paths-patch
25023 (lambda* (#:key inputs #:allow-other-keys)
25024 ;; Hard-code paths to `ffplay` and `ffmpeg`.
25025 (let ((ffplay-bin (string-append (assoc-ref inputs "ffmpeg")
25026 "/bin/ffplay"))
25027 (ffmpeg-bin (string-append (assoc-ref inputs "ffmpeg")
25028 "/bin/ffmpeg")))
25029 (substitute* "telega-ffplay.el"
25030 (("\\(executable-find \"ffplay\"\\)")
25031 (string-append
25032 "(and (file-executable-p \"" ffplay-bin "\")"
25033 "\"" ffplay-bin "\")"))
25034 (("\\(executable-find \"ffmpeg\"\\)")
25035 (string-append
25036 "(and (file-executable-p \"" ffmpeg-bin "\")"
25037 "\"" ffmpeg-bin "\")"))))
25038 ;; Modify telega-util to reflect unique dir name in
25039 ;; `telega-install-data' phase.
25040 (substitute* "telega-util.el"
25041 (("\\(concat \"etc/\" filename\\) telega--lib-directory")
25042 "(concat \"telega-data/\" filename)
25043 (locate-dominating-file telega--lib-directory
25044 \"telega-data\")"))
25045 ;; Modify telega.el to reflect unique dir name in
25046 ;; `telega-install-contrib' phase.
25047 (substitute* "telega.el"
25048 (("\\(push \\(expand-file-name \"contrib\" telega--lib-directory\\) load-path\\)")
25049 "(push (expand-file-name \"telega-contrib\"
25050 (locate-dominating-file telega--lib-directory
25051 \"telega-contrib\")) load-path)"))
25052 #t))
25053 ;; The server test suite has a hardcoded path.
25054 ;; Reset this behavior to use the proper path.
25055 (add-after 'unpack 'server-suite-patch
25056 (lambda _
25057 (substitute* "server/run_tests.py"
25058 (("~/.telega/telega-server")
25059 (string-append (assoc-ref %outputs "out")
25060 "/bin/telega-server")))
25061 #t))
25062 (add-after 'install 'run-server-suite
25063 (lambda _
25064 (invoke "python3" "server/run_tests.py")
25065 #t))
25066 (delete 'configure)
25067 ;; Build emacs-side using `emacs-build-system'
25068 (add-after 'compress-documentation 'emacs-add-source-to-load-path
25069 (assoc-ref emacs:%standard-phases 'add-source-to-load-path))
25070 ;; Manually invoke bytecompilation for the contrib
25071 ;; subdirectory.
25072 (add-after 'emacs-add-source-to-load-path 'emacs-bytecomp-contrib
25073 (lambda _
25074 (substitute* "Makefile"
25075 (("byte-recompile-directory \".\"")
25076 "byte-recompile-directory \"contrib\""))
25077 (invoke "make" "compile")
25078 #t))
25079 (add-after 'emacs-bytecomp-contrib 'emacs-install
25080 (assoc-ref emacs:%standard-phases 'install))
25081 ;; This step installs subdir /etc, which contains images, sounds and
25082 ;; various other data, next to the site-lisp dir.
25083 (add-after 'emacs-install 'telega-install-data
25084 (lambda* (#:key outputs #:allow-other-keys)
25085 (copy-recursively
25086 "etc"
25087 (string-append (assoc-ref outputs "out")
25088 "/share/emacs/telega-data/"))
25089 #t))
25090 (add-after 'emacs-install 'telega-install-contrib
25091 (lambda* (#:key outputs #:allow-other-keys)
25092 (copy-recursively
25093 "contrib"
25094 (string-append (assoc-ref outputs "out")
25095 "/share/emacs/telega-contrib"))
25096 #t))
25097 (add-after 'telega-install-contrib 'emacs-build
25098 (assoc-ref emacs:%standard-phases 'build))
25099 (add-after 'telega-install-contrib 'emacs-make-autoloads
25100 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
25101 (inputs
25102 `(("ffmpeg" ,ffmpeg))) ; mp4/gif support.
25103 (propagated-inputs
25104 `(("emacs-visual-fill-column" ,emacs-visual-fill-column)
25105 ("emacs-company" ,emacs-company)
25106 ("emacs-rainbow-identifiers"
25107 ,emacs-rainbow-identifiers)
25108 ("libwebp" ,libwebp))) ; sticker support.
25109 (native-inputs
25110 `(("tdlib" ,tdlib)
25111 ;; Use Emacs with wide ints on 32-bit architectures.
25112 ("emacs" ,(match (%current-system)
25113 ((or "i686-linux" "armhf-linux")
25114 emacs-wide-int)
25115 (_
25116 emacs)))
25117 ("python" ,python)))
25118 (synopsis "GNU Emacs client for the Telegram messenger")
25119 (description
25120 "Telega is a full-featured, unofficial GNU Emacs-based client for the
25121 Telegram messaging platform.")
25122 (home-page "https://zevlg.github.io/telega.el/")
25123 (license license:gpl3+))))
25124
25125 (define-public emacs-doom-modeline
25126 (package
25127 (name "emacs-doom-modeline")
25128 (version "3.0.0")
25129 (source (origin
25130 (method git-fetch)
25131 (uri (git-reference
25132 (url "https://github.com/seagle0128/doom-modeline")
25133 (commit (string-append "v" version))))
25134 (sha256
25135 (base32
25136 "08m75rl5i812pa87zcsjvb4mm3jjhpwzgx9mf2m7sxj807airz5d"))
25137 (file-name (git-file-name name version))))
25138 (build-system emacs-build-system)
25139 (arguments
25140 `(#:test-command '("ert-runner")))
25141 (native-inputs `(("emacs-ert-runner" ,emacs-ert-runner)))
25142 (propagated-inputs
25143 `(("emacs-all-the-icons" ,emacs-all-the-icons)
25144 ("emacs-dash" ,emacs-dash)
25145 ("emacs-shrink-path" ,emacs-shrink-path)))
25146 (synopsis "Fancy and fast mode-line inspired by minimalism design")
25147 (description "Doom modeline is a complete modeline for GNU Emacs inspired
25148 by the Doom theme collection. This modeline features support for mode-specific
25149 icon support, git integration, and several other utilities.")
25150 (home-page "https://github.com/seagle0128/doom-modeline/")
25151 (license license:gpl3+)))
25152
25153 (define-public emacs-mood-line
25154 (package
25155 (name "emacs-mood-line")
25156 (version "1.2.4")
25157 (source
25158 (origin
25159 (method git-fetch)
25160 (uri (git-reference
25161 (url "https://gitlab.com/jessieh/mood-line")
25162 (commit version)))
25163 (file-name (git-file-name name version))
25164 (sha256
25165 (base32 "0fh9j9fkgl433nykfzjnzap5labi4sdndfk1nv4f904ij69pmvxb"))))
25166 (build-system emacs-build-system)
25167 (home-page "https://gitlab.com/jessieh/mood-line")
25168 (synopsis "Minimal mode-line for Emacs")
25169 (description
25170 "Mood-line is a minimal Emacs mode-line configuration that aims to
25171 replicate some of the features of the Doom modeline package.")
25172 (license license:gpl2+)))
25173
25174 (define-public emacs-simple-modeline
25175 (let ((commit "38973dec2912e2136d8fde5f2667063863fee15a")
25176 (revision "1"))
25177 (package
25178 (name "emacs-simple-modeline")
25179 (version (git-version"1.2" revision commit))
25180 (source
25181 (origin
25182 (method git-fetch)
25183 (uri (git-reference
25184 (url "https://github.com/gexplorer/simple-modeline")
25185 (commit commit)))
25186 (file-name (git-file-name name version))
25187 (sha256
25188 (base32
25189 "0y70hc3x8rxr8b5x8d0a23gpcadzrn43wmrsvqqxmmkqqp45n7gj"))))
25190 (build-system emacs-build-system)
25191 (home-page "https://github.com/gexplorer/simple-modeline")
25192 (synopsis "Simple mode-line configuration for Emacs")
25193 (description
25194 "This package provides a simple mode-line configuration for Emacs.")
25195 (license license:gpl3+))))
25196
25197 (define-public emacs-frames-only-mode
25198 (package
25199 (name "emacs-frames-only-mode")
25200 (version "1.0.0")
25201 (source
25202 (origin
25203 (method git-fetch)
25204 (uri (git-reference
25205 (url "https://github.com/davidshepherd7/frames-only-mode")
25206 (commit version)))
25207 (file-name (git-file-name name version))
25208 (sha256
25209 (base32 "0y0sdjixaxvywrlp2sw51wnczhk51q1svl5aghbk9rkxpwv9ys9v"))))
25210 (build-system emacs-build-system)
25211 (propagated-inputs
25212 `(("emacs-dash" ,emacs-dash)
25213 ("emacs-s" ,emacs-s)))
25214 (home-page "https://github.com/davidshepherd7/frames-only-mode")
25215 (synopsis "Use frames instead of Emacs windows")
25216 (description
25217 "This is an Emacs global minor mode to use Emacs frames instead of Emacs'
25218 internal windowing system. This combines particularly well with tiling window
25219 managers such as XMonad.")
25220 (license license:gpl3+)))
25221
25222 (define-public emacs-modalka
25223 (package
25224 (name "emacs-modalka")
25225 (version "0.1.5")
25226 (source
25227 (origin
25228 (method git-fetch)
25229 (uri (git-reference
25230 (url "https://github.com/mrkkrp/modalka")
25231 (commit version)))
25232 (file-name (git-file-name name version))
25233 (sha256
25234 (base32 "0ggj8q92sb6wp3hs1vhpmy56id0p3i9zwnw24g2v7xa7w8ac9s7l"))))
25235 (build-system emacs-build-system)
25236 (home-page "https://github.com/mrkkrp/modalka")
25237 (synopsis "Minor mode to easily define native custom modal editing")
25238 (description
25239 "This is a building kit to help switch to modal editing in Emacs. The
25240 main goal of the package is to make modal editing in Emacs as natural and
25241 native as possible. Modalka lets you define your own keys and does not come
25242 with a preconfigured set of keys.")
25243 (license license:gpl3+)))
25244
25245 (define-public emacs-shrink-path
25246 (package
25247 (name "emacs-shrink-path")
25248 (version "0.3.1")
25249 (source
25250 (origin
25251 (method git-fetch)
25252 (uri (git-reference
25253 (url "https://gitlab.com/bennya/shrink-path.el.git")
25254 (commit (string-append "v" version))))
25255 (sha256
25256 (base32
25257 "0kx0c4syd7k6ff9j463bib32pz4wq0rzjlg6b0yqnymlzfr1mbki"))
25258 (file-name (git-file-name name version))))
25259 (build-system emacs-build-system)
25260 (propagated-inputs
25261 `(("emacs-s" ,emacs-s)
25262 ("emacs-dash" ,emacs-dash)
25263 ("emacs-f" ,emacs-f)))
25264 (home-page "https://gitlab.com/bennya/shrink-path.el")
25265 (synopsis "Fish-style path truncation in emacs-lisp")
25266 (description "This package provides utility functions that allow for
25267 Fish-style truncated directories in eshell and various modelines.")
25268 (license license:gpl3+)))
25269
25270 (define-public emacs-org-present
25271 (let ((commit "d13acd70eff6a1608bc991920232146a0de76b21"))
25272 (package
25273 (name "emacs-org-present")
25274 (version "0.0.1")
25275 (source
25276 (origin
25277 (method git-fetch)
25278 (uri (git-reference
25279 (url "https://github.com/rlister/org-present")
25280 (commit commit)))
25281 (file-name (git-file-name name version))
25282 (sha256
25283 (base32
25284 "0jz8xiny3rv9ql0p623byz32pip1b82j2c2nyfz2wd114kiabb6q"))))
25285 (build-system emacs-build-system)
25286 (synopsis "Ultra-minimalist presentation minor-mode for Emacs org-mode")
25287 (description "Org-present is an extremely minimalist presentation tool
25288 for Emacs org-mode. Simply layout your presentation with each slide under a
25289 top-level header, start the minor mode with @code{org-present}, and page through
25290 each slide with left/right keys.")
25291 (home-page "https://github.com/rlister/org-present")
25292 (license license:gpl2))))
25293
25294 (define-public emacs-fullframe
25295 (package
25296 (name "emacs-fullframe")
25297 (version "0.5.0")
25298 (source
25299 (origin
25300 (method git-fetch)
25301 (uri (git-reference
25302 (url "https://github.com/tomterl/fullframe")
25303 (commit version)))
25304 (sha256
25305 (base32
25306 "0m43qnhp6ibsskpjkxc86p3lrjsjc0ndqml3lbd65s79x4x7i3fi"))
25307 (file-name (git-file-name name version))))
25308 (build-system emacs-build-system)
25309 (home-page "https://github.com/tomterl/fullframe")
25310 (synopsis "Generalized automatic execution in a single frame")
25311 (description "This library provides helpers for single-window-per-frame
25312 execution of buffer-exposing commands.")
25313 (license license:gpl3+)))
25314
25315 (define-public emacs-eshell-toggle
25316 (let ((commit "ddfbe0a693497c4d4bc5494a19970ba4f6ab9033")
25317 (revision "1"))
25318 (package
25319 (name "emacs-eshell-toggle")
25320 (version (git-version "0.10.0" revision commit))
25321 (source
25322 (origin
25323 (method git-fetch)
25324 (uri (git-reference
25325 (url "https://github.com/4DA/eshell-toggle")
25326 (commit commit)))
25327 (sha256
25328 (base32
25329 "0xqrp8pwbmfxjdqipgpw5nw633mvhjjjm3k3j9sh9xdpmw05hhws"))
25330 (file-name (git-file-name name version))))
25331 (build-system emacs-build-system)
25332 (propagated-inputs
25333 `(("emacs-dash" ,emacs-dash)))
25334 (home-page "https://github.com/4DA/eshell-toggle")
25335 (synopsis "Show and hide an @code{eshell} instance")
25336 (description "This package toggles an @code{eshell} instance for the
25337 current buffer.")
25338 (license license:gpl3+))))
25339
25340 (define-public emacs-repl-toggle
25341 (package
25342 (name "emacs-repl-toggle")
25343 (version "0.6.1")
25344 (source
25345 (origin
25346 (method git-fetch)
25347 (uri (git-reference
25348 (url "https://github.com/tomterl/repl-toggle")
25349 (commit version)))
25350 (sha256
25351 (base32
25352 "12h3xxja3isnhvrqx7m2g7a5d8h68cc85pbqyhiipfxyafyl1yxd"))
25353 (file-name (git-file-name name version))))
25354 (build-system emacs-build-system)
25355 (propagated-inputs
25356 `(("emacs-fullframe" ,emacs-fullframe)))
25357 (home-page "https://github.com/tomterl/repl-toggle")
25358 (synopsis "Switch to and from current major mode's REPL")
25359 (description "This package provides a function to switch to and from a
25360 REPL appropriate to the current major mode.")
25361 (license license:gpl3+)))
25362
25363 (define-public emacs-rime
25364 (package
25365 (name "emacs-rime")
25366 (version "1.0.4")
25367 (source
25368 (origin
25369 (method git-fetch)
25370 (uri (git-reference
25371 (url "https://github.com/DogLooksGood/emacs-rime")
25372 (commit (string-append "v" version))))
25373 (file-name (git-file-name name version))
25374 (sha256
25375 (base32 "1a50cziwg7lpgh26yvwxs46jfyfq1m0l6igbg5g5m288mz4d3an9"))))
25376 (build-system emacs-build-system)
25377 (arguments
25378 '(#:phases
25379 (modify-phases %standard-phases
25380 (add-after 'unpack 'patch-rime-data-path
25381 (lambda* (#:key inputs #:allow-other-keys)
25382 (make-file-writable "rime.el")
25383 (emacs-substitute-variables "rime.el"
25384 ("rime-share-data-dir"
25385 (string-append (assoc-ref inputs "rime-data")
25386 "/share/rime-data")))
25387 #t))
25388 (add-before 'install 'build-emacs-module
25389 (lambda _
25390 (invoke "make" "lib")))
25391 (add-after 'install 'install-emacs-module
25392 (lambda* (#:key outputs #:allow-other-keys)
25393 (install-file "librime-emacs.so"
25394 (string-append (assoc-ref outputs "out")
25395 "/share/emacs/site-lisp"))
25396 #t)))))
25397 (inputs
25398 `(("librime" ,librime)
25399 ("rime-data" ,rime-data)))
25400 (propagated-inputs
25401 `(("emacs-dash" ,emacs-dash)
25402 ("emacs-popup" ,emacs-popup)
25403 ("emacs-posframe" ,emacs-posframe)))
25404 (home-page "https://github.com/DogLooksGood/emacs-rime")
25405 (synopsis "Rime input method in Emacs")
25406 (description
25407 "Rime is an Emacs input method built upon Rime input method engine.")
25408 (license license:gpl3+)))
25409
25410 (define-public emacs-blackout
25411 (let ((commit "4bac44671fca4c98d96aa94c79946bf4d4baf0ee")
25412 (revision "1"))
25413 (package
25414 (name "emacs-blackout")
25415 (version (git-version "1.0" revision commit))
25416 (source
25417 (origin
25418 (method git-fetch)
25419 (uri (git-reference
25420 (url "https://github.com/raxod502/blackout")
25421 (commit commit)))
25422 (sha256
25423 (base32
25424 "1wnh0nwy6r3a18sy9sqmrwv04vnmaflxy4g7mq8jiyyjijri7l1b"))
25425 (file-name (git-file-name name version))))
25426 (build-system emacs-build-system)
25427 (home-page "https://github.com/raxod502/blackout")
25428 (synopsis "Clean up mode lighters")
25429 (description "This package provides a function for hiding and customizing
25430 display of major and minor modes in the mode line.")
25431 (license license:gpl3+))))
25432
25433 (define-public emacs-ivy-omni-org
25434 (let ((commit "5460a9fc061a4a5ae8372dc8df966ced94abab58")
25435 (revision "1"))
25436 (package
25437 (name "emacs-ivy-omni-org")
25438 (version (git-version "0.2.1" revision commit))
25439 (source
25440 (origin
25441 (method git-fetch)
25442 (uri (git-reference
25443 (url "https://github.com/akirak/ivy-omni-org")
25444 (commit commit)))
25445 (file-name (git-file-name name version))
25446 (sha256
25447 (base32
25448 "1np1f51hc3phkl5w02a9a79gl38ra2d535i784fn4pqaasvm0rq8"))))
25449 (build-system emacs-build-system)
25450 (propagated-inputs
25451 `(("emacs-ivy" ,emacs-ivy)
25452 ("emacs-dash" ,emacs-dash)))
25453 (synopsis "Browse anything in Org mode")
25454 (description "This package allows Org items to be accessed via the Ivy
25455 interface.")
25456 (home-page "https://github.com/akirak/ivy-omni-org")
25457 (license license:gpl3+))))
25458
25459 (define-public emacs-ivy-posframe
25460 (package
25461 (name "emacs-ivy-posframe")
25462 (version "0.5.5")
25463 (source
25464 (origin
25465 (method url-fetch)
25466 (uri (string-append "https://elpa.gnu.org/packages/"
25467 "ivy-posframe-" version ".tar"))
25468 (sha256
25469 (base32 "184730grclxmlw6nfs41d4g6fvz9c6xnclvwgqx1ii0xm7p9xy95"))))
25470 (build-system emacs-build-system)
25471 (propagated-inputs
25472 `(("emacs-ivy" ,emacs-ivy)
25473 ("emacs-posframe" ,emacs-posframe)))
25474 (home-page "https://github.com/tumashu/ivy-posframe")
25475 (synopsis "Pop a posframe (a child frame) to show Ivy candidates")
25476 (description
25477 "This package provides an Emacs Ivy extension, which let Ivy use
25478 posframe to show its candidate menu.")
25479 (license license:gpl3+)))
25480
25481 (define-public emacs-shackle
25482 (let ((commit "7ccbe513852a1d1700b698547efca14b8940319d")
25483 (revision "1"))
25484 (package
25485 (name "emacs-shackle")
25486 (version (git-version "1.0.3" revision commit))
25487 (source
25488 (origin
25489 (method git-fetch)
25490 (uri (git-reference
25491 (url "https://github.com/wasamasa/shackle")
25492 (commit commit)))
25493 (file-name (git-file-name name version))
25494 (sha256
25495 (base32
25496 "0agsp8ia4irr540r898ifhjqp28n1zsq1pilv1kc272spn3qhvp9"))))
25497 (build-system emacs-build-system)
25498 (synopsis "Enforce rules for popups")
25499 (description "This package provides a global minor mode in which users
25500 can specify how popup-displaying functions occupy the screen.")
25501 (home-page "https://github.com/wasamasa/shackle")
25502 (license license:gpl3+))))
25503
25504 (define-public emacs-helm-lacarte
25505 (let ((commit "40a6c449720be521435b6b1da7911af3a0b9dca0")
25506 (revision "1"))
25507 (package
25508 (name "emacs-helm-lacarte")
25509 (version (git-version "0" revision commit))
25510 (source
25511 (origin
25512 (method git-fetch)
25513 (uri (git-reference
25514 (url "https://github.com/emacs-helm/helm-lacarte")
25515 (commit commit)))
25516 (file-name (git-file-name name version))
25517 (sha256
25518 (base32
25519 "0dkfd3lap2v7b4nckzv8v7hczmzwzhbl75haqkra107ln91ldbwc"))))
25520 (build-system emacs-build-system)
25521 (propagated-inputs
25522 `(("emacs-helm" ,emacs-helm)
25523 ("emacs-lacarte" ,emacs-lacarte)))
25524 (synopsis "Helm interface to @code{lacarte.el}")
25525 (description "This package provides a Helm interface to
25526 @code{lacarte.el}, a package that displays mode-specific commands as menu
25527 items.")
25528 (home-page "https://github.com/emacs-helm/helm-lacarte")
25529 (license license:gpl3+))))
25530
25531 (define-public emacs-esh-help
25532 (let ((commit "417673ed18a983930a66a6692dbfb288a995cb80")
25533 (revision "1"))
25534 (package
25535 (name "emacs-esh-help")
25536 (version (git-version "1.0.1" revision commit))
25537 (source
25538 (origin
25539 (method git-fetch)
25540 (uri (git-reference
25541 (url "https://github.com/tom-tan/esh-help")
25542 (commit commit)))
25543 (file-name (git-file-name name version))
25544 (sha256
25545 (base32
25546 "0x7d51a6ljl014zy7mi27vzcqqbcwg9z4drq29fr2ajk82mqhlgd"))))
25547 (build-system emacs-build-system)
25548 (propagated-inputs
25549 `(("emacs-dash" ,emacs-dash)))
25550 (synopsis "Help functions for Eshell")
25551 (description "This package provides a @code{run-help} function inspired
25552 by @code{zsh} as well as @code{eldoc} support.")
25553 (home-page "https://github.com/tom-tan/esh-help")
25554 (license license:gpl3+))))
25555
25556 (define-public emacs-isearch-dabbrev
25557 (let ((commit "1efe7abba4923015cbc2462395deaec5446a9cc8")
25558 (revision "1"))
25559 (package
25560 (name "emacs-isearch-dabbrev")
25561 (version (git-version "0.1" revision commit))
25562 (source
25563 (origin
25564 (method git-fetch)
25565 (uri (git-reference
25566 (url "https://github.com/Dewdrops/isearch-dabbrev")
25567 (commit commit)))
25568 (file-name (git-file-name name version))
25569 (sha256
25570 (base32
25571 "17d0816awadvsw1qc7r0p6ira75jmgxaj9hsk9ypayxsaf6ynyrb"))))
25572 (build-system emacs-build-system)
25573 (synopsis "Use @code{dabbrev} within @code{isearch}")
25574 (description "This package allows @code{dabbrev-expand} to be used
25575 within @code{isearch-mode}.")
25576 (home-page "https://github.com/Dewdrops/isearch-dabbrev")
25577 (license license:gpl3+))))
25578
25579 (define-public emacs-helm-linux-disks
25580 (let ((commit "2cdc8116a08534289eb0dc76461d0f93a0bdf231")
25581 (revision "1"))
25582 (package
25583 (name "emacs-helm-linux-disks")
25584 (version (git-version "0.1" revision commit))
25585 (source
25586 (origin
25587 (method git-fetch)
25588 (uri (git-reference
25589 (url "https://github.com/Akirak/helm-linux-disks")
25590 (commit commit)))
25591 (file-name (git-file-name name version))
25592 (sha256
25593 (base32
25594 "1limw82zd8jz3mhh9rqlmhj4cjhfgybs9argfjid1an3vpyhc85i"))))
25595 (build-system emacs-build-system)
25596 (propagated-inputs
25597 `(("emacs-helm" ,emacs-helm)))
25598 (synopsis "Mount/unmount volumes in Linux via Helm")
25599 (description "This package provides a Helm interface to run operations
25600 on removable volumes in Linux.")
25601 (home-page "https://github.com/Akirak/helm-linux-disks")
25602 (license license:gpl3+))))
25603
25604 (define-public emacs-psession
25605 (let ((commit "3e97267c92b164584e06a6c70ee7491714c7c12c")
25606 (revision "1"))
25607 (package
25608 (name "emacs-psession")
25609 (version (git-version "1.5" revision commit))
25610 (source
25611 (origin
25612 (method git-fetch)
25613 (uri (git-reference
25614 (url "https://github.com/thierryvolpiatto/psession")
25615 (commit commit)))
25616 (file-name (git-file-name name version))
25617 (sha256
25618 (base32
25619 "15frl618393bc891d0yi3mdxzvbq790a86vfvp3dyd5riz4ddg95"))))
25620 (build-system emacs-build-system)
25621 (propagated-inputs
25622 `(("emacs-async" ,emacs-async)))
25623 (synopsis "Persistent save of @code{elisp} objects.")
25624 (description "This package provides minor modes for saving Emacs session
25625 data, including buffers, window configuration, variables, and more.")
25626 (home-page "https://github.com/thierryvolpiatto/psession")
25627 (license license:gpl3+))))
25628
25629 (define-public emacs-parseedn
25630 (package
25631 (name "emacs-parseedn")
25632 (version "0.2.0")
25633 (source
25634 (origin
25635 (method git-fetch)
25636 (uri (git-reference
25637 (url "https://github.com/clojure-emacs/parseedn")
25638 (commit (string-append "v" version))))
25639 (file-name (git-file-name name version))
25640 (sha256
25641 (base32
25642 "0271amhw63650rrzikcyqxa8sb42npnk7q3yrsay2v79wbqkdaw9"))))
25643 (build-system emacs-build-system)
25644 (propagated-inputs
25645 `(("emacs-a" ,emacs-a)
25646 ("emacs-parseclj" ,emacs-parseclj)))
25647 (home-page "https://cider.mx")
25648 (synopsis "EDN parser for Emacs Lisp")
25649 (description
25650 "Parseedn is an Emacs Lisp library for parsing EDN (Clojure) data.
25651 It uses parseclj's shift-reduce parser internally.")
25652 (license license:gpl3+)))
25653
25654 (define-public emacs-parseclj
25655 (package
25656 (name "emacs-parseclj")
25657 (version "0.2.0")
25658 (source
25659 (origin
25660 (method git-fetch)
25661 (uri (git-reference
25662 (url "https://github.com/clojure-emacs/parseclj")
25663 (commit (string-append "v" version))))
25664 (file-name (git-file-name name version))
25665 (sha256
25666 (base32
25667 "0894vhyx1phq8mdynnnqflcgi2a54hi926f4dk8slawzx1cb9xxb"))))
25668 (build-system emacs-build-system)
25669 (propagated-inputs `(("emacs-a" ,emacs-a)))
25670 (home-page "https://cider.mx")
25671 (synopsis "Clojure parser for Emacs Lisp")
25672 (description
25673 "Parseclj is an Emacs Lisp library for parsing Clojure code and EDN data.
25674 It supports several input and output formats, all powered by the same
25675 shift-reduce parser function.")
25676 (license license:gpl3+)))
25677
25678 (define-public emacs-hide-mode-line
25679 (package
25680 (name "emacs-hide-mode-line")
25681 (version "1.0.2")
25682 (source (origin
25683 (method git-fetch)
25684 (uri (git-reference
25685 (url "https://github.com/hlissner/emacs-hide-mode-line")
25686 (commit (string-append "v" version))))
25687 (file-name (git-file-name name version))
25688 (sha256
25689 (base32
25690 "0dfzjgxfkcw4wisbyldsm1km18pfp9j8xgadn6qnsz11l55bpgyp"))))
25691 (build-system emacs-build-system)
25692 (synopsis "Emacs plugin that hides the mode-line")
25693 (description "A minor mode that hides the mode-line in your current
25694 buffer. It can be used to toggle an alternative mode-line, toggle its visibility,
25695 or simply disable the mode-line in buffers where it is not very useful.")
25696 (home-page "https://github.com/hlissner/emacs-hide-mode-line")
25697 (license license:expat)))
25698
25699 (define-public emacs-helm-cider
25700 ;; No new release since March 2018.
25701 (let ((commit "9363cc537f06233345aa3af5cd46aa5681ad607b"))
25702 (package
25703 (name "emacs-helm-cider")
25704 (version (git-version "0.4.0" "1" commit))
25705 (home-page "https://github.com/clojure-emacs/helm-cider")
25706 (source (origin
25707 (method git-fetch)
25708 (uri (git-reference
25709 (url home-page)
25710 (commit commit)))
25711 (file-name (git-file-name name version))
25712 (sha256
25713 (base32
25714 "0vfn4smqba1vsshz48ggkj8gs94la0sxb1sq4shrb41qj2x3dci7"))))
25715 (build-system emacs-build-system)
25716 (propagated-inputs
25717 `(("emacs-helm" ,emacs-helm)
25718 ("emacs-cider" ,emacs-cider)))
25719 (synopsis "Helm interface to Clojure's CIDER")
25720 (description "Helm-CIDER adds Helm interfaces to
25721 @command{cider-apropos}, @command{cider-apropos-documentation},
25722 @command{cider-browse-ns} (namespaces).
25723
25724 It also provides original Helm commands: @command{helm-cider-spec},
25725 @command{helm-cider-spec-ns}, @command{helm-cider-repl-history},
25726 @command{helm-cider-cheatsheet}.")
25727 (license license:gpl3+))))
25728
25729 (define-public emacs-edn
25730 ;; No release since February 2016
25731 (let ((commit "be9e32d1b49e35247b263b0243df7cfdc8d413ab"))
25732 (package
25733 (name "emacs-edn")
25734 (version (git-version "1.1.2" "1" commit))
25735 (home-page "https://github.com/expez/edn.el")
25736 (source (origin
25737 (method git-fetch)
25738 (uri (git-reference
25739 (url home-page)
25740 (commit commit)))
25741 (file-name (git-file-name name version))
25742 (sha256
25743 (base32
25744 "1xp2hjhn52k6l1g6ypva6dsklpawni7gvjafbz6404f9dyxflh7l"))))
25745 (build-system emacs-build-system)
25746 (propagated-inputs
25747 `(("emacs-peg" ,emacs-peg)))
25748 (synopsis "Read and write EDN from Elisp")
25749 (description "This is an Emacs Lisp library for reading and writing the
25750 data format @code{edn}. See @url{https://github.com/edn-format/edn}.")
25751 (license license:gpl3+))))
25752
25753 (define-public emacs-helm-clojuredocs
25754 (let ((commit "5a7f0f2cb401be0b09e73262a1c18265ab9a3cea"))
25755 (package
25756 (name "emacs-helm-clojuredocs")
25757 (version (git-version "0.3" "1" commit))
25758 (home-page "https://github.com/mbuczko/helm-clojuredocs")
25759 (source (origin
25760 (method git-fetch)
25761 (uri (git-reference
25762 (url home-page)
25763 (commit commit)))
25764 (file-name (git-file-name name version))
25765 (sha256
25766 (base32
25767 "015b8zxh91ljhqvn6z43gy08di54xcw9skw0i7frj3d7gk984qhl"))))
25768 (build-system emacs-build-system)
25769 (propagated-inputs
25770 `(("emacs-helm" ,emacs-helm)
25771 ("emacs-edn" ,emacs-edn)))
25772 (synopsis "Search help on clojuredocs.org with Helm")
25773 (description "This package provides a Helm interface to lookup Clojure
25774 documentation on @url{https://clojuredocs.org} with Helm.
25775
25776 Two function are exposed:
25777 @itemize
25778 @item @command{helm-clojuredocs}: opens a Helm session with no initial
25779 pattern. Searching starts with minimal 3 characters entered.
25780 @item @command{helm-clojuredocs-at-point}: opens a Helm session with initial
25781 pattern guessed from thing under current cursor position.
25782 @end itemize\n")
25783 (license license:gpl3+))))
25784
25785 (define-public emacs-helm-selector
25786 (package
25787 (name "emacs-helm-selector")
25788 (version "0.6.1")
25789 (home-page "https://github.com/emacs-helm/helm-selector")
25790 (source
25791 (origin
25792 (method git-fetch)
25793 (uri (git-reference
25794 (url home-page)
25795 (commit version)))
25796 (file-name (git-file-name name version))
25797 (sha256
25798 (base32
25799 "01lh1df0bnas1p7xlqc4i1jd67f8lxgq0q2zsvx10z8828i76j3v"))))
25800 (build-system emacs-build-system)
25801 (propagated-inputs
25802 `(("emacs-helm" ,emacs-helm)))
25803 (synopsis "Convenient related-buffer selection for Emacs Helm")
25804 (description "Helm Selector is a collection of Helm helper functions for
25805 convenient buffer selection.
25806
25807 It is especially helpful to create Helm sessions to navigate buffers of a
25808 given mode in a “do what I mean” fashion:
25809
25810 If current buffer is not of mode X, switch to last buffer of mode X. If
25811 current buffer is of mode X, show a Helm session of all buffers in mode X. In
25812 the Helm session, it’s also possible to input an arbitrary name which will be
25813 used for the creation of a new buffer of mode X.")
25814 (license license:gpl3+)))
25815
25816 (define-public emacs-helm-wordnut
25817 (let ((commit "9681a9535a839cd5d042c302945ae595852fe7bf"))
25818 (package
25819 (name "emacs-helm-wordnut")
25820 (version (git-version "0.1" "1" commit))
25821 (home-page "https://github.com/emacs-helm/helm-wordnut")
25822 (source
25823 (origin
25824 (method git-fetch)
25825 (uri (git-reference
25826 (url home-page)
25827 (commit commit)))
25828 (file-name (git-file-name name version))
25829 (sha256
25830 (base32
25831 "0msj7nbsb363pxamxi7n2z08cp5jizkpjbwia8f5a161wjglrihs"))))
25832 (build-system emacs-build-system)
25833 (inputs
25834 `(("wordnet" ,wordnet)))
25835 (propagated-inputs
25836 `(("emacs-helm" ,emacs-helm)))
25837 (arguments
25838 `(#:phases
25839 (modify-phases %standard-phases
25840 (add-after 'unpack 'configure
25841 (lambda* (#:key inputs #:allow-other-keys)
25842 (let ((wn (assoc-ref inputs "wordnet")))
25843 ;; .el is read-only in git.
25844 (chmod "helm-wordnut.el" #o644)
25845 ;; Specify the absolute file names of the various
25846 ;; programs so that everything works out-of-the-box.
25847 (emacs-substitute-variables "helm-wordnut.el"
25848 ("helm-wordnut-prog" (string-append wn "/bin/wn"))
25849 ("helm-wordnut-wordnet-location"
25850 (string-append wn "/dict")))))))))
25851 (synopsis "Emacs Helm interface for Wordnet")
25852 (description "This package is merely a combination of two other Emacs
25853 packages: @code{helm-wordnet} and @code{wordnut}. It features word completion
25854 with Helm and displays a buffer of all the different result types available to
25855 Wordnet.")
25856 (license license:gpl3+))))
25857
25858 (define-public emacs-metal-mercury-mode
25859 (let ((commit "99e2d8fb7177cae3bfa2dec2910fc28216d5f5a8")
25860 (revision "1")
25861 (version "0.0.0"))
25862 (package
25863 (name "emacs-metal-mercury-mode")
25864 (version (git-version version revision commit))
25865 (source
25866 (origin
25867 (method git-fetch)
25868 (uri (git-reference
25869 (url "https://github.com/ahungry/metal-mercury-mode")
25870 (commit commit)))
25871 (sha256
25872 (base32
25873 "0iil5k3rgifz2vqwsy12rbv5rzyvidq4sgwazsb2hzys8xynmfn5"))
25874 (file-name (git-file-name name version))))
25875 (build-system emacs-build-system)
25876 (propagated-inputs
25877 `(("emacs-dash" ,emacs-dash)))
25878 (synopsis "Major mode for editing Mercury files")
25879 (description
25880 "Major mode for editing Mercury files. This is a rewrite of the original
25881 mercury-mode provided by Emacs as a wrapper around prolog-mode.")
25882 (home-page "https://github.com/ahungry/metal-mercury-mode")
25883 (license license:gpl3+))))
25884
25885 (define-public emacs-boxquote
25886 (package
25887 (name "emacs-boxquote")
25888 (version "2.2")
25889 (source
25890 (origin
25891 (method git-fetch)
25892 (uri (git-reference
25893 (url "https://github.com/davep/boxquote.el")
25894 (commit (string-append "v" version))))
25895 (file-name (git-file-name name version))
25896 (sha256
25897 (base32 "0wwjawgylaaifdsszqxcfsyhfzgxbjkzqhzrnxnr9b16wghb7xf7"))))
25898 (build-system emacs-build-system)
25899 (home-page "https://github.com/davep/boxquote.el")
25900 (synopsis "Quote text with different kinds of boxes")
25901 (description "@code{boxquote} provides a set of functions for using
25902 a text quoting style that partially boxes in the left hand side of an area of
25903 text, such a marking style might be used to show externally included text or
25904 example code.")
25905 (license license:gpl3+)))
25906
25907 (define-public emacs-buffer-move
25908 (package
25909 (name "emacs-buffer-move")
25910 (version "0.6.2")
25911 (source
25912 (origin
25913 (method git-fetch)
25914 (uri (git-reference
25915 (url "https://github.com/lukhas/buffer-move")
25916 (commit version)))
25917 (file-name (git-file-name name version))
25918 (sha256
25919 (base32 "0xdks4jfqyhkh34y48iq3gz8swp0f526kwnaai5mhgvazvs4za8c"))))
25920 (build-system emacs-build-system)
25921 (home-page "https://github.com/lukhas/buffer-move")
25922 (synopsis "Functions for moving Emacs' buffers around")
25923 (description
25924 "This package define functions for swapping buffers between windows
25925 contained in the same frame. An alternate behavior is to have the current
25926 window switch to the previous buffer instead of swapping with the other
25927 window.")
25928 (license license:gpl3+)))
25929
25930 (define-public emacs-company-ebdb
25931 (package
25932 (name "emacs-company-ebdb")
25933 (version "1.1")
25934 (source
25935 (origin
25936 (method url-fetch)
25937 (uri (string-append "https://elpa.gnu.org/packages/"
25938 "company-ebdb-" version ".el"))
25939 (sha256
25940 (base32 "146qpiigz12zp1823ggxfrx090g0mxs7gz1ba7sa0iq6ibgzwwm9"))))
25941 (build-system emacs-build-system)
25942 (propagated-inputs
25943 `(("emacs-company" ,emacs-company)))
25944 (home-page "https://elpa.gnu.org/packages/company-ebdb.html")
25945 (synopsis "Company completion backend for EBDB in Message mode")
25946 (description "@code{company-ebdb} provides Company mode integration for
25947 EBDB. It is copied more or less intact from @code{company-bbdb}, originally
25948 by Jan Tatarik.")
25949 (license license:gpl3+)))
25950
25951 (define-public emacs-mwim
25952 ;; Use the latest commit not in a release version as of yet, since it
25953 ;; contains a bug fix for the cases where `comment-start-skip' is nil.
25954 (let ((commit "b4f3edb4c0fb8f8b71cecbf8095c2c25a8ffbf85")
25955 (revision "0"))
25956 (package
25957 (name "emacs-mwim")
25958 (version (git-version "0.4" revision commit))
25959 (source
25960 (origin
25961 (method git-fetch)
25962 (uri (git-reference
25963 (url "https://github.com/alezost/mwim.el")
25964 (commit commit)))
25965 (file-name (git-file-name name version))
25966 (sha256
25967 (base32 "0l3k611gp9g2x2vfmh92wnhnda81dslpwwpb8mxmzk308man77ya"))))
25968 (build-system emacs-build-system)
25969 (home-page "https://github.com/alezost/mwim.el")
25970 (synopsis "Move to the beginning/end of line, code or comment")
25971 (description "@code{mwim} provides several commands to switch between
25972 various line positions, like moving to the beginning/end of code, line, or
25973 comment.")
25974 (license license:gpl3+))))
25975
25976 (define-public emacs-delight
25977 (package
25978 (name "emacs-delight")
25979 (version "1.7")
25980 (source
25981 (origin
25982 (method url-fetch)
25983 (uri (string-append "https://elpa.gnu.org/packages/"
25984 "delight-" version ".el"))
25985 (sha256
25986 (base32 "0pihsghrf9xnd1kqlq48qmjcmp5ra95wwwgrb3l8m1wagmmc0bi1"))))
25987 (build-system emacs-build-system)
25988 (home-page "https://elpa.gnu.org/packages/delight.html")
25989 (synopsis "Dimmer switch for your mode-line lighter text")
25990 (description "@code{delight} enables customizing or hiding the
25991 mode-line text (lighter) of major and minor modes.")
25992 (license license:gpl3+)))
25993
25994 (define-public emacs-unkillable-scratch
25995 ;; Use the latest (unreleased) commit as of now, since it contains a handy
25996 ;; `unkillable-scratch-do-not-reset-scratch-buffer' customization to not
25997 ;; repopulate the scratch buffer with `initial-scratch-message'.
25998 (let ((commit "b24c2a760529833f230c14cb02ff6e7ec92288ab")
25999 (revision "0"))
26000 (package
26001 (name "emacs-unkillable-scratch")
26002 (version (git-version "1.0.0" revision commit))
26003 (source
26004 (origin
26005 (method git-fetch)
26006 (uri (git-reference
26007 (url "https://github.com/EricCrosson/unkillable-scratch")
26008 (commit commit)))
26009 (file-name (git-file-name name version))
26010 (sha256
26011 (base32 "13wjbcxr3km4s96yhpavgs5acs5pvqv3ih1p84diqb3x3i6wd4pa"))))
26012 (build-system emacs-build-system)
26013 (home-page "https://github.com/EricCrosson/unkillable-scratch")
26014 (synopsis "Prevents the *scratch* buffer from being killed")
26015 (description "@code{unkillable-scratch} helps prevent killing buffers
26016 matching a given regexp.")
26017 (license license:gpl2+))))
26018
26019 (define-public emacs-switch-buffer-functions
26020 (package
26021 (name "emacs-switch-buffer-functions")
26022 (version "0.0.1")
26023 (source
26024 (origin
26025 (method git-fetch)
26026 (uri (git-reference
26027 (url "https://github.com/10sr/switch-buffer-functions-el")
26028 (commit (string-append "v" version))))
26029 (file-name (git-file-name name version))
26030 (sha256
26031 (base32 "0pq53b8wrjbrxd5hnrcdi0z7mffp4bax55hn90k9ca3j76lhbn1k"))))
26032 (build-system emacs-build-system)
26033 (home-page "https://github.com/10sr/switch-buffer-functions-el")
26034 (synopsis "Hooks run when switching current buffer")
26035 (description "This package provides a hook variable
26036 @code{switch-buffer-functions}. The hooks will be run when the current buffer
26037 is changed after an interactive command, i.e., when @code{post-command-hook}
26038 hooks are run. The hooked functions will be called with both the previous and
26039 the current buffer.")
26040 (license license:unlicense)))
26041
26042 (define-public emacs-erc-scrolltoplace
26043 (package
26044 (name "emacs-erc-scrolltoplace")
26045 (version "0.1.0")
26046 (source
26047 (origin
26048 (method git-fetch)
26049 (uri (git-reference
26050 (url "https://gitlab.com/jgkamat/erc-scrolltoplace.git")
26051 (commit version)))
26052 (file-name (git-file-name name version))
26053 (sha256
26054 (base32 "11zpqwh1mlfifbgnvhc63bvnhg340jgxssm3m43hr1sxsyb52lh6"))))
26055 (build-system emacs-build-system)
26056 (propagated-inputs
26057 `(("emacs-switch-buffer-functions" ,emacs-switch-buffer-functions)))
26058 (home-page "https://gitlab.com/jgkamat/erc-scrolltoplace")
26059 (synopsis "ERC module to replace scrolltobottom while using keep-place")
26060 (description "@code{erc-scrolltoplace} is an ERC module to try
26061 to emulate @code{scrolltobottom} while @code{keep-place} is enabled.")
26062 (license license:gpl3+)))
26063
26064 (define-public emacs-dmenu
26065 ;; Use the latest commit, as there are no tagged releases.
26066 (let ((commit "e8cc9b27c79d3ecc252267c082ab8e9c82eab264")
26067 (revision "0"))
26068 (package
26069 (name "emacs-dmenu")
26070 (version (git-version "0.1" revision commit))
26071 (source
26072 (origin
26073 (method git-fetch)
26074 (uri (git-reference
26075 (url "https://github.com/lujun9972/el-dmenu")
26076 (commit commit)))
26077 (file-name (git-file-name name version))
26078 (sha256
26079 (base32 "098ncygms1r33zhjlq4fj2p4jc91v5whqrm3fazzdk7sd6dilf25"))))
26080 (build-system emacs-build-system)
26081 (home-page "https://github.com/lujun9972/el-dmenu")
26082 (synopsis "Simulate the @command{dmenu} command line program")
26083 (description "This package provides a @command{dmenu} command for
26084 launching other commands/applications from within Emacs, similar to the
26085 @command{dmenu} program. This is especially useful when using EXWM.")
26086 (license license:gpl3+))))
26087
26088 (define-public emacs-no-littering
26089 (package
26090 (name "emacs-no-littering")
26091 (version "1.2.1")
26092 (source
26093 (origin
26094 (method git-fetch)
26095 (uri (git-reference
26096 (url "https://github.com/emacscollective/no-littering")
26097 (commit (string-append "v" version))))
26098 (file-name (git-file-name name version))
26099 (sha256
26100 (base32 "00chkzpjcdll907vpzfzmf9p3jprisnr8i0h1x5gixidwbfc2whi"))))
26101 (build-system emacs-build-system)
26102 (home-page "https://github.com/emacscollective/no-littering")
26103 (synopsis "Help keep @file{~/.emacs.d/} clean")
26104 (description "The default paths used to store configuration files and
26105 persistent data are not consistent across Emacs packages, be them built-in or
26106 third-party ones. @code{no-littering} sets out to help clean
26107 @file{~/.emacs.d/} by putting configuration files and persistent data files in
26108 two user-defined directories, as well as using more descriptive names for
26109 files and subdirectories when appropriate.")
26110 (license license:gpl3+)))
26111
26112 (define-public emacs-meson-mode
26113 (package
26114 (name "emacs-meson-mode")
26115 (version "0.3")
26116 (source
26117 (origin
26118 (method git-fetch)
26119 (uri (git-reference
26120 (url "https://github.com/wentasah/meson-mode")
26121 (commit (string-append "v" version))))
26122 (file-name (git-file-name name version))
26123 (sha256
26124 (base32 "0hlqvq3j4f6g16nj3bm2wbkncn8hv8c8iqd0sch3w80wwqnr622y"))))
26125 (build-system emacs-build-system)
26126 (home-page "https://github.com/wentasah/meson-mode")
26127 (synopsis "Major mode for Meson build system files")
26128 (description
26129 "This is an Emacs major mode for Meson build system files. Syntax
26130 highlighting works reliably. Indentation works too, but there are probably
26131 cases where it breaks.")
26132 (license license:gpl3+)))
26133
26134 (define-public emacs-message-x
26135 ;; Use the latest commit, as there are no tagged releases.
26136 (let ((commit "5524de7bbfdd8749c110f48de5afb024d9f83133")
26137 (revision "0"))
26138 (package
26139 (name "emacs-message-x")
26140 (version (git-version "1.23" revision commit))
26141 (source
26142 (origin
26143 (method git-fetch)
26144 (uri (git-reference
26145 (url "https://github.com/emacsmirror/message-x")
26146 (commit commit)))
26147 (file-name (git-file-name name version))
26148 (sha256
26149 (base32 "0qy1xf11j357lsnbb829hnbg7fq1cii4cx54fwf0wgjh1bv2abvj"))))
26150 (build-system emacs-build-system)
26151 (home-page "https://www.emacswiki.org/emacs/message-x.el")
26152 (synopsis "Customizable completion in message headers")
26153 (description "@code{message-x} assigns a context-sensitive function to
26154 the TAB key in Message mode. When on a header line, it performs completion
26155 based on which header we are in (for example, newsgroup name completion makes
26156 sense on the @samp{Newsgroups} header, whereas mail alias expansion makes
26157 sense in the @samp{To} and @samp{Cc} headers). When in the message body, this
26158 executes a different function (default: @code{indent-relative}).")
26159 (license license:gpl2+))))
26160
26161 (define-public emacs-glsl-mode
26162 ;; No tag, version grabbed from source .el file.
26163 (let ((commit "b07112016436d9634cd4ef747f9af6b01366d136")
26164 (revision "0"))
26165 (package
26166 (name "emacs-glsl-mode")
26167 (version (git-version "2.4" revision commit))
26168 (source
26169 (origin
26170 (method git-fetch)
26171 (uri (git-reference
26172 (url "https://github.com/jimhourihan/glsl-mode")
26173 (commit commit)))
26174 (file-name (git-file-name name version))
26175 (sha256
26176 (base32 "0bav9ipfm0vy26n74ngsmjzc7fsyqz6xmriadzx55s44h8p5dn1s"))))
26177 (build-system emacs-build-system)
26178 (home-page "https://github.com/jimhourihan/glsl-mode")
26179 (synopsis "Major mode for Open GLSL shader files")
26180 (description
26181 "This package provides a major mode for editing OpenGLSL grammar files,
26182 usually files ending with @file{.vert}, @file{.frag}, @file{.glsl} or
26183 @file{.geom}. It is based on C mode plus some features and pre-specified
26184 fontifications.")
26185 (license license:gpl3+))))
26186
26187 (define-public emacs-gnus-harvest
26188 (let ((commit "feda071a87b799bd5d23cacde3ee71f0b166e75d")
26189 (revision "0"))
26190 (package
26191 (name "emacs-gnus-harvest")
26192 (version (git-version "1.0" revision commit))
26193 (source
26194 (origin
26195 (method git-fetch)
26196 (uri (git-reference
26197 (url "https://github.com/jwiegley/gnus-harvest")
26198 (commit commit)))
26199 (file-name (git-file-name name version))
26200 (sha256
26201 (base32 "08zb7vc3v3wdxkzgi902vlc5ybfvm8fxrvm5drnwfsjj9873pbcb"))))
26202 (build-system emacs-build-system)
26203 (inputs
26204 `(("sqlite" ,sqlite)))
26205 (arguments
26206 `(#:phases
26207 (modify-phases %standard-phases
26208 (add-before 'build 'patch-exec-paths
26209 (lambda* (#:key inputs #:allow-other-keys)
26210 (let ((sqlite (assoc-ref inputs "sqlite"))
26211 (file "gnus-harvest.el"))
26212 (make-file-writable file)
26213 (emacs-substitute-variables file
26214 ("gnus-harvest-sqlite-program"
26215 (string-append sqlite "/bin/sqlite3"))))
26216 #t)))))
26217 (home-page "https://github.com/jwiegley/gnus-harvest")
26218 (synopsis
26219 "Harvest email addresses from read/written Gnus articles")
26220 (description "@code{gnus-harvest} notices email address in every message
26221 or post you read or write, and collects them in a SQLite database, which can
26222 be easily and quickly queried to determine the completion list. It optionally
26223 uses BBDB and Message-X.")
26224 (license license:gpl3+))))
26225
26226 (define-public emacs-auto-dictionary-mode
26227 (package
26228 (name "emacs-auto-dictionary-mode")
26229 (version "1.1")
26230 (source
26231 (origin
26232 (method git-fetch)
26233 (uri (git-reference
26234 (url "https://github.com/nschum/auto-dictionary-mode")
26235 (commit version)))
26236 (file-name (git-file-name name version))
26237 (sha256
26238 (base32 "191294k92qp8gmfypf0q8j8qrym96aqikzvyb9p03wqvbr3r1dsk"))))
26239 (build-system emacs-build-system)
26240 (home-page "http://nschum.de/src/emacs/auto-dictionary/")
26241 (synopsis "Automatic dictionary switcher for Emacs spell checking")
26242 (description "@code{auto-dictionary} is a minor mode that hooks into
26243 Flyspell's on-the-fly spell checking and extends these checks to also detect
26244 language. Auto-dictionary then sets @code{ispell-dictionary} to use the
26245 detected language.")
26246 (license license:gpl2+)))
26247
26248 (define-public emacs-persist
26249 (package
26250 (name "emacs-persist")
26251 (version "0.4")
26252 (source
26253 (origin
26254 (method url-fetch)
26255 (uri (string-append "https://elpa.gnu.org/packages/"
26256 "persist-" version ".tar"))
26257 (sha256
26258 (base32 "0gpxy41qawzss2526j9a7lys60vqma1lvamn4bfabwza7gfhac0q"))))
26259 (build-system emacs-build-system)
26260 (home-page "http://elpa.gnu.org/packages/persist.html")
26261 (synopsis "Persist variables between Emacs sessions")
26262 (description
26263 "This package provides variables which persist across sessions.
26264 Values are stored in a directory in @code{user-emacs-directory}, using
26265 one file per value. This makes it easy to delete or remove unused
26266 variables.")
26267 (license license:gpl3+)))
26268
26269 (define-public emacs-company-emoji
26270 (package
26271 (name "emacs-company-emoji")
26272 (version "2.6.1")
26273 (source
26274 (origin
26275 (method git-fetch)
26276 (uri (git-reference
26277 (url "https://github.com/dunn/company-emoji/")
26278 (commit version)))
26279 (file-name (git-file-name name version))
26280 (sha256
26281 (base32 "1rhf2hr345953mkn52i58aiq8j16ps2ckapd5f7jxmhkcpzxxfhk"))))
26282 (build-system emacs-build-system)
26283 (propagated-inputs
26284 `(("emacs-company" ,emacs-company)))
26285 (home-page "https://github.com/dunn/company-emoji/")
26286 (synopsis "Company completion back-end for emoji")
26287 (description
26288 "This library is a Company back-end providing auto-completion for
26289 emoji.")
26290 (license license:gpl3+)))
26291
26292 (define-public emacs-exiftool
26293 (package
26294 (name "emacs-exiftool")
26295 (version "0.3.2")
26296 (source
26297 (origin
26298 (method git-fetch)
26299 (uri (git-reference
26300 (url "https://git.systemreboot.net/exiftool.el/")
26301 (commit (string-append "v" version))))
26302 (file-name (git-file-name name version))
26303 (sha256
26304 (base32
26305 "0bv58is66cz21yhc0qqkp1z4nk13zfi2l7i6pjbhyi0g1n88qqyv"))))
26306 (build-system emacs-build-system)
26307 (arguments
26308 `(#:tests? #t
26309 #:test-command '("make" "-C" "tests")
26310 #:phases
26311 (modify-phases %standard-phases
26312 (add-after 'unpack 'configure
26313 (lambda* (#:key inputs #:allow-other-keys)
26314 (make-file-writable "exiftool.el")
26315 (emacs-substitute-variables "exiftool.el"
26316 ("exiftool-executable"
26317 (string-append (assoc-ref inputs "perl-image-exiftool")
26318 "/bin/exiftool")))
26319 #t)))))
26320 (inputs
26321 `(("perl-image-exiftool" ,perl-image-exiftool)))
26322 (home-page "https://git.systemreboot.net/exiftool.el/about/")
26323 (synopsis "Elisp wrapper around ExifTool")
26324 (description "@code{emacs-exiftool} is an Elisp wrapper around ExifTool.
26325 ExifTool supports reading and writing metadata in various formats including
26326 EXIF, XMP and IPTC.")
26327 (license license:gpl3+)))
26328
26329 (define-public emacs-password-generator
26330 (package
26331 (name "emacs-password-generator")
26332 (version "1.01")
26333 (home-page "https://github.com/zargener/emacs-password-genarator")
26334 (source
26335 (origin
26336 (method git-fetch)
26337 (uri (git-reference
26338 (url home-page)
26339 (commit "904cdb591a04305ba882ce19e1d117f5fa60f7d3")))
26340 (file-name (git-file-name name version))
26341 (sha256
26342 (base32
26343 "1qgvn79qz1h8ykm5i1qv2fja4v2y0g2i0n5sf7byhnqhqlwn63nv"))))
26344 (build-system emacs-build-system)
26345 (synopsis "Generate passwords inside Emacs")
26346 (description "@code{emacs-password-generator} provides simple functions to
26347 generate random passwords and insert them into the current buffer. It also
26348 supports generation of phonetic and numeric passwords.")
26349 (license license:artistic2.0)))
26350
26351 (define-public emacs-csv
26352 (package
26353 (name "emacs-csv")
26354 (version "2.1")
26355 (home-page "https://gitlab.com/u11/csv.el")
26356 (source
26357 (origin
26358 (method git-fetch)
26359 (uri (git-reference
26360 (url home-page)
26361 (commit (string-append "V" version))))
26362 (file-name (git-file-name name version))
26363 (sha256
26364 (base32
26365 "1vmazjrfcsa9aa9aw8bq5sazdhqvhxyj837dyw5lmh8gk7z0xdaa"))))
26366 (build-system emacs-build-system)
26367 (synopsis "Elisp functions for reading and parsing CSV files")
26368 (description
26369 "@code{csv.el} provides functions for reading and parsing @acronym{CSV,
26370 Comma-Separated Values} files. It follows the format as defined in RFC 4180
26371 @emph{Common Format and MIME Type for CSV
26372 Files} (@url{http://tools.ietf.org/html/rfc4180}).")
26373 (license license:gpl3+)))
26374
26375 (define-public emacs-org-journal
26376 (package
26377 (name "emacs-org-journal")
26378 (version "2.1.2")
26379 (source
26380 (origin
26381 (method git-fetch)
26382 (uri (git-reference
26383 (url "https://github.com/bastibe/org-journal")
26384 (commit version)))
26385 (file-name (git-file-name name version))
26386 (sha256
26387 (base32 "0s82sh2svc0mzr1ak414n5r2j0dmwvvyx4swk2c61zivc2gjd778"))))
26388 (build-system emacs-build-system)
26389 (home-page "https://github.com/bastibe/org-journal")
26390 (synopsis "Simple Org mode journaling mode")
26391 (description
26392 "Org Journal is a set of functions to maintain a simple personal diary /
26393 journal using in Emacs, adapted from
26394 @url{https://www.emacswiki.org/emacs/PersonalDiary}. Convenient bindings
26395 allow the creation of journal records in the current daily, weekly, monthly or
26396 yearly file and search within all records or specified time intervals. All
26397 records can be browsed and searched from the Emacs Calendar for convenience.
26398 All entries in a specified TODO state will be carried over to the next day.")
26399 (license license:bsd-3)))
26400
26401 (define-public emacs-org-static-blog
26402 (package
26403 (name "emacs-org-static-blog")
26404 (version "1.4.0")
26405 (source
26406 (origin
26407 (method git-fetch)
26408 (uri (git-reference
26409 (url "https://github.com/bastibe/org-static-blog")
26410 (commit version)))
26411 (file-name (git-file-name name version))
26412 (sha256
26413 (base32 "00yhgxg87mfaflrkh0i905hr873yd03a7znw5hkrps43zxha9kb9"))))
26414 (build-system emacs-build-system)
26415 (home-page "https://github.com/bastibe/org-static-blog")
26416 (synopsis
26417 "Simple Org mode based static blog generator")
26418 (description
26419 "@code{emacs-org-static-blog} is one more static blog generator, it
26420 focuses on being simple. All files are simple Org files in a directory. The
26421 only requirement is that every Org file must have a @samp{title} and
26422 a @samp{date} keywords, and optionally, a @samp{filetags} keyword.")
26423 (license license:bsd-3)))
26424
26425 (define-public emacs-ddskk
26426 ;; XXX: Upstream adds code names to their release tags, so version and code
26427 ;; name below need to be updated together.
26428 (let ((version "17.1")
26429 (code-name "Neppu"))
26430 (package
26431 (name "emacs-ddskk")
26432 (version version)
26433 (source
26434 (origin
26435 (method git-fetch)
26436 (uri (git-reference
26437 (url "https://github.com/skk-dev/ddskk")
26438 (commit (string-append "ddskk-" version "_" code-name))))
26439 (file-name (git-file-name name version))
26440 (sha256
26441 (base32 "0xm53rybxki2784gyjkafg6956viyhhcq51kbmnrwc6aw3yzh7aw"))))
26442 (build-system gnu-build-system)
26443 (arguments
26444 `(#:modules ((guix build gnu-build-system)
26445 (guix build utils)
26446 (guix build emacs-utils))
26447 #:imported-modules (,@%gnu-build-system-modules
26448 (guix build emacs-utils))
26449 #:test-target "test"
26450 #:phases
26451 (modify-phases %standard-phases
26452 (replace 'configure
26453 (lambda* (#:key outputs #:allow-other-keys)
26454 (make-file-writable "SKK-MK")
26455 (emacs-substitute-variables "SKK-MK"
26456 ("PREFIX" (assoc-ref outputs "out"))
26457 ("LISPDIR" '(expand-file-name "/share/emacs/site-lisp" PREFIX))
26458 ("SKK_PREFIX" "")
26459 ("SKK_INFODIR" '(expand-file-name "info" PREFIX)))
26460 (for-each make-file-writable (find-files "./doc"))
26461 #t))
26462 (add-after 'unpack 'fix-test
26463 (lambda _
26464 (substitute* "Makefile"
26465 (("/bin/rm") (which "rm"))))))))
26466 (native-inputs
26467 `(("emacs-minimal" ,emacs-minimal)
26468 ("ruby" ,ruby)))
26469 (home-page "https://github.com/skk-dev/ddskk")
26470 (synopsis "Simple Kana to Kanji conversion program")
26471 (description
26472 "Daredevil SKK is a version of @acronym{SKK, Simple Kana to Kanji
26473 conversion program}, a Japanese input method on Emacs.")
26474 (license license:gpl2+))))
26475
26476 (define-public emacs-objed
26477 (package
26478 (name "emacs-objed")
26479 (version "0.8.3")
26480 (source
26481 (origin
26482 (method url-fetch)
26483 (uri (string-append
26484 "https://elpa.gnu.org/packages/objed-" version ".tar"))
26485 (sha256
26486 (base32
26487 "1s38d6bvggdk5p45ww1jb4gxifzgjwgw1m6ar920nlg0j4fgbcvr"))))
26488 (build-system emacs-build-system)
26489 (home-page "https://github.com/clemera/objed")
26490 (synopsis "Navigate and edit text objects")
26491 (description
26492 "@code{emacs-objed} allows navigating and editing text objects. It
26493 enables modal editing and composition of commands, too. It combines ideas of
26494 other Editors like Vim or Kakoune and tries to align them with regular Emacs
26495 conventions.")
26496 (license license:gpl3+)))
26497
26498 (define-public emacs-haskell-snippets
26499 ;; The commit below is 5 commits ahead of release, and includes a build fix.
26500 (let ((commit "07b0f460b946fd1be26c29652cb0468b47782f3a"))
26501 (package
26502 (name "emacs-haskell-snippets")
26503 (version (git-version "0.1.0" "0" commit))
26504 (source
26505 (origin
26506 (method git-fetch)
26507 (uri
26508 (git-reference
26509 (url "https://github.com/haskell/haskell-snippets")
26510 (commit commit)))
26511 (file-name (git-file-name name version))
26512 (sha256
26513 (base32 "0a7y3awi9hcyahggf0ghsdwvsmrhr9yq634wy9lkqjzrm2hqj0ci"))))
26514 (build-system emacs-build-system)
26515 (arguments
26516 `(#:phases
26517 (modify-phases %standard-phases
26518 (add-after 'install 'install-snippets
26519 (lambda* (#:key outputs #:allow-other-keys)
26520 (let* ((out (assoc-ref outputs "out"))
26521 (snippets
26522 (string-append
26523 out "/share/emacs/site-lisp/snippets/haskell-mode")))
26524 (mkdir-p snippets)
26525 (copy-recursively "snippets/haskell-mode" snippets)
26526 #t))))))
26527 (propagated-inputs
26528 `(("emacs-yasnippet" ,emacs-yasnippet)))
26529 (home-page "https://github.com/haskell/haskell-snippets")
26530 (synopsis "Official collection of YASnippet Haskell snippets for Emacs")
26531 (description "Haskell-Snippets is a collection of YASnippet Haskell
26532 snippets for Emacs.")
26533 (license license:expat))))
26534
26535 (define-public emacs-org-roam
26536 (package
26537 (name "emacs-org-roam")
26538 (version "1.2.3")
26539 (source
26540 (origin
26541 (method git-fetch)
26542 (uri (git-reference
26543 (url "https://github.com/org-roam/org-roam")
26544 (commit (string-append "v" version))))
26545 (file-name (git-file-name name version))
26546 (sha256
26547 (base32 "0n8c0yxqb62i39kn0d5x83s96vwc0nbg0sx5hplffnbkfbj88bba"))))
26548 (build-system emacs-build-system)
26549 (propagated-inputs
26550 `(("emacs-company" ,emacs-company)
26551 ("emacs-dash" ,emacs-dash)
26552 ("emacs-emacsql-sqlite3" ,emacs-emacsql-sqlite3)
26553 ("emacs-f" ,emacs-f)
26554 ("emacs-org-ref" ,emacs-org-ref)
26555 ("emacs-s" ,emacs-s)))
26556 (home-page "https://github.com/org-roam/org-roam/")
26557 (synopsis "Non-hierarchical note-taking with Org mode")
26558 (description "Emacs Org Roam is a solution for taking non-hierarchical
26559 notes with Org mode. Notes are captured without hierarchy and are connected
26560 by tags. Notes can be found and created quickly. Org Roam should also work
26561 as a plug-and-play solution for anyone already using Org mode for their
26562 personal wiki.")
26563 (license license:gpl3+)))
26564
26565 (define-public emacs-org-roam-bibtex
26566 (package
26567 (name "emacs-org-roam-bibtex")
26568 (version "0.4.0")
26569 (source
26570 (origin
26571 (method git-fetch)
26572 (uri (git-reference
26573 (url "https://github.com/org-roam/org-roam-bibtex")
26574 (commit (string-append "v" version))))
26575 (file-name (git-file-name name version))
26576 (sha256
26577 (base32 "13pll793khyfncpwm2dg24w747sqp7kgf7m3fqw2xzhv9cx2g7nq"))))
26578 (build-system emacs-build-system)
26579 (propagated-inputs
26580 `(("emacs-helm-bibtex" ,emacs-helm-bibtex)
26581 ("emacs-org-ref" ,emacs-org-ref)
26582 ("emacs-org-roam" ,emacs-org-roam)))
26583 (home-page "https://github.com/org-roam/org-roam-bibtex")
26584 (synopsis "Connector between Org Roam, BibTeX-completion, and Org Ref")
26585 (description
26586 "Org Roam BibTeX is a library which offers a tighter integration between
26587 Org Roam, Helm-BibTeX, and Org Ref. It allows users to access their
26588 bibliographical notes in Org Roam directory via Helm BibTeX, Ivy BibTeX, or by
26589 opening Org Ref's @code{cite:} links.")
26590 (license license:gpl3+)))
26591
26592 (define-public emacs-org-generate
26593 (package
26594 (name "emacs-org-generate")
26595 (version "1.0.0")
26596 (source (origin
26597 (method git-fetch)
26598 (uri (git-reference
26599 (url "https://github.com/conao3/org-generate.el")
26600 (commit (string-append "v" version))))
26601 (file-name (git-file-name name version))
26602 (sha256
26603 (base32
26604 "0z2frp5mn3lp2xskwanw2rncrwa50x3aphy87vfxmhx4fqlqrzy8"))))
26605 (inputs
26606 `(("emacs-cort" ,emacs-cort))) ;tests suite
26607 (propagated-inputs
26608 `(("emacs-mustache" ,emacs-mustache)))
26609 (arguments
26610 `(#:tests? #t
26611 #:test-command '("emacs" "--batch" "--quick"
26612 "--directory=." "--load=org-generate-tests.el"
26613 "--funcall=cort-test-run")))
26614 (build-system emacs-build-system)
26615 (home-page "https://github.com/conao3/org-generate.el")
26616 (synopsis "Generate template files and folders from Org document")
26617 (description "This package generates files and folders from Emacs
26618 org-mode templates.")
26619 (license license:gpl3+)))
26620
26621 (define-public emacs-uml-mode
26622 ;; Package has no release. Version is extracted from "Version:" keyword in
26623 ;; main file.
26624 (let ((commit "4c37ac1c4424b2313cd8f16ba48a98a4cc214200")
26625 (revision "1"))
26626 (package
26627 (name "emacs-uml-mode")
26628 (version (git-version "0.0.4" revision commit))
26629 (source
26630 (origin
26631 (method git-fetch)
26632 (uri (git-reference
26633 (url "https://github.com/ianxm/emacs-uml")
26634 (commit commit)))
26635 (file-name (git-file-name name version))
26636 (sha256
26637 (base32 "145i4srnfvd1vyibri2a1l6p9mbjvkkwlrpi41134pbarqffcnka"))))
26638 (build-system emacs-build-system)
26639 (home-page "https://github.com/ianxm/emacs-uml")
26640 (synopsis "Minor mode for editing ASCII UML sequence diagrams")
26641 (description "Emacs UML mode is a minor mode that makes it easy to build
26642 ASCII UML sequence diagrams in Emacs, which can be embedded in source code,
26643 comments or emails.")
26644 (license license:gpl3+))))
26645
26646 (define-public emacs-trashed
26647 (package
26648 (name "emacs-trashed")
26649 (version "2.1.2")
26650 (source
26651 (origin
26652 (method git-fetch)
26653 (uri (git-reference
26654 (url "https://github.com/shingo256/trashed/")
26655 (commit version)))
26656 (file-name (git-file-name name version))
26657 (sha256
26658 (base32 "0lfza55nbb62nmr27cwpcz2ad1vm95piq4nfd8zvkwqbn6klwmm6"))))
26659 (build-system emacs-build-system)
26660 (home-page "https://github.com/shingo256/trashed/")
26661 (synopsis "View and edit system trash can in Emacs")
26662 (description "Open, view, browse, restore or permanently delete trashed
26663 files or directories in trash can with Dired-like look and feel. The trash
26664 can has to be compliant with freedesktop.org. In Emacs, you can trash files by
26665 deleting them with @code{(setq delete-by-moving-to-trash t)}. This package
26666 provides a simple but convenient user interface to manage those trashed
26667 files.")
26668 (license license:gpl3+)))
26669
26670 (define-public emacs-plantuml-mode
26671 (package
26672 (name "emacs-plantuml-mode")
26673 (version "1.4.1")
26674 (source
26675 (origin
26676 (method git-fetch)
26677 (uri (git-reference
26678 (url "https://github.com/skuro/plantuml-mode")
26679 (commit (string-append "v" version))))
26680 (file-name (git-file-name name version))
26681 (sha256
26682 (base32 "0yp41d2dmf3sx7qnl5x0zdjcr9y71b2wwc9m0q31v22xqn938ipc"))))
26683 (arguments
26684 '(#:phases
26685 (modify-phases %standard-phases
26686 (add-after 'unpack 'use-local-plantuml
26687 (lambda* (#:key inputs #:allow-other-keys)
26688 (let ((plantuml (assoc-ref inputs "plantuml"))
26689 (file "plantuml-mode.el"))
26690 (chmod file #o644)
26691 (emacs-substitute-variables file
26692 ("plantuml-jar-path"
26693 (string-append plantuml "/share/java/plantuml.jar"))
26694 ("plantuml-executable-path"
26695 (string-append plantuml "/bin/plantuml"))
26696 ("plantuml-server-url" 'nil)
26697 ("plantuml-default-exec-mode" ''executable))
26698 (emacs-batch-edit-file file
26699 `(progn (progn
26700 (goto-char (point-min))
26701 (re-search-forward "(defun plantuml-download-jar")
26702 (beginning-of-line)
26703 (kill-sexp))
26704 (basic-save-buffer)))
26705 #t))))))
26706 (inputs
26707 `(("plantuml" ,plantuml)))
26708 (propagated-inputs
26709 `(("emacs-dash" ,emacs-dash)))
26710 (build-system emacs-build-system)
26711 (home-page "https://github.com/skuro/plantuml-mode")
26712 (synopsis "Major mode for editing PlantUML sources")
26713 (description "This package provides a major mode for editing PlantUML
26714 sources. It features syntax highlighting, autocompletion, preview of buffer
26715 or region and use of locally installed binaries.")
26716 (license license:gpl3+)))
26717
26718 (define-public emacs-execline
26719 (package
26720 (name "emacs-execline")
26721 (version "1.1")
26722 (source (origin
26723 (method git-fetch)
26724 (uri (git-reference
26725 (url "https://gitlab.com/KAction/emacs-execline/")
26726 (commit (string-append "v" version))))
26727 (file-name (git-file-name name version))
26728 (sha256
26729 (base32
26730 "02q531c9wvdwflhggflnci4a36h2bb90bq25bbhw6i2lvrd9sk55"))))
26731 (build-system emacs-build-system)
26732 (propagated-inputs
26733 `(("emacs-s" ,emacs-s)))
26734 (arguments
26735 `(#:tests? #t
26736 #:test-command '("emacs" "-Q" "-batch" "-L" "."
26737 "-l" "t/indent.el"
26738 "-f" "ert-run-tests-batch-and-exit")))
26739 (home-page "https://gitlab.com/KAction/emacs-execline/")
26740 (synopsis "Major Emacs mode for editing execline scripts")
26741 (description
26742 "This package provides a major mode for editing execline scripts.
26743
26744 Features:
26745 @itemize
26746 @item Syntax highlighting of commends, builtin commands and variable substitution.
26747 @item Completion of builtin commands.
26748 @item Working @code{comment-region} command.
26749 @item Indentation of blocks.
26750 @item Automatic enable of mode in @file{*.exec} files.
26751 @item Automatic enable of mode in files with @code{execlineb} interpreter.
26752 @end itemize\n")
26753 (license license:gpl3+)))
26754
26755 (define-public emacs-shell-pop
26756 (let ((commit "4b4394037940a890a313d715d203d9ead2d156a6")
26757 (revision "0"))
26758 (package
26759 (name "emacs-shell-pop")
26760 (version (git-version "0.64" revision commit))
26761 (source
26762 (origin
26763 (method git-fetch)
26764 (uri (git-reference
26765 (url "https://github.com/kyagi/shell-pop-el")
26766 (commit commit)))
26767 (file-name (git-file-name name version))
26768 (sha256
26769 (base32 "0s77n6b9iw1x3dv91ybkpgy3zvqd12si7zw3lg0m2b6j1akrawsg"))))
26770 (build-system emacs-build-system)
26771 (home-page "https://github.com/kyagi/shell-pop-el")
26772 (synopsis "Utility which helps with pop up shell buffer")
26773 (description
26774 "This Emacs utility helps you pop up and pop out shell buffer window
26775 easily. Four pre-set options are: @samp{shell}, @samp{terminal},
26776 @samp{ansi-term}, and @samp{eshell}. You can also set your custom shell if
26777 you use some other configuration.")
26778 (license license:gpl3+))))
26779
26780 (define-public emacs-extmap
26781 (package
26782 (name "emacs-extmap")
26783 (version "1.1.1")
26784 (source
26785 (origin
26786 (method git-fetch)
26787 (uri (git-reference
26788 (url "https://github.com/doublep/extmap")
26789 (commit version)))
26790 (file-name (git-file-name name version))
26791 (sha256
26792 (base32
26793 "09kia3mr4si8kn46kyiza9nl669b22vmgc70ng3mqz742lph5siw"))))
26794 (build-system emacs-build-system)
26795 (home-page "https://github.com/doublep/extmap")
26796 (synopsis "Externally-stored constant mapping for Emacs Lisp")
26797 (description "A very simple package that lets you build a
26798 read-only, constant database that maps Emacs Lisp symbols to
26799 arbitrary Emacs Lisp objects.")
26800 (license license:gpl3+)))
26801
26802 (define-public emacs-csound-mode
26803 (package
26804 (name "emacs-csound-mode")
26805 (version "0.2.1")
26806 (source
26807 (origin
26808 (method git-fetch)
26809 (uri (git-reference
26810 (url "https://github.com/hlolli/csound-mode")
26811 (commit version)))
26812 (file-name (git-file-name name version))
26813 (sha256
26814 (base32
26815 "1c88ak0jaj51fwiqniqxd7xyk23wjl9m57znzm8j267ld8g12znp"))))
26816 (build-system emacs-build-system)
26817 (arguments
26818 `(#:phases
26819 (modify-phases %standard-phases
26820 (add-after 'unpack 'disable-breaking-compilation
26821 (lambda _
26822 (for-each (lambda (file)
26823 (chmod file #o600) ; needed to write changes.
26824 (emacs-batch-disable-compilation file))
26825 '("csound-font-lock.el"))
26826 #t)))))
26827 (inputs
26828 `(("emacs-highlight" ,emacs-highlight)
26829 ("emacs-multi" ,emacs-multi)
26830 ("emacs-shut-up" ,emacs-shut-up)))
26831 (home-page "https://github.com/hlolli/csound-mode")
26832 (synopsis "Emacs major mode for coding in CSound")
26833 (description "Provides both a basic major mode for editing
26834 CSound files, as well as a REPL for fast feedback when composing
26835 and sound-designing.")
26836 (license license:gpl3+)))
26837
26838 (define-public emacs-multi
26839 (package
26840 (name "emacs-multi")
26841 (version "2.0.1")
26842 (source
26843 (origin
26844 (method git-fetch)
26845 (uri (git-reference
26846 (url "https://github.com/kurisuwhyte/emacs-multi")
26847 (commit (string-append "v" version))))
26848 (file-name (git-file-name name version))
26849 (sha256
26850 (base32
26851 "11zabs7qpdhri6n90ck7pgwcbz46d813nyl73h5m1i8jvz1wzx7v"))))
26852 (build-system emacs-build-system)
26853 (home-page "https://github.com/kurisuwhyte/emacs-multi")
26854 (synopsis "Clojure-style multi-methods for Emacs Lisp")
26855 (description "Provides Emacs Lisp with a form of polymorphism
26856 by way of predicate dispatching. Methods consist of a dispatch
26857 function, and a series of branches. The dispatch function is
26858 applied to the arguments, and the result value is checked against
26859 the expectations of each branch to define which one to invoke.")
26860 (license license:expat)))
26861
26862 (define-public emacs-highlight
26863 (let ((commit "9258a2b8362d737115cbd87618f947eadb140411")
26864 (revision "1"))
26865 (package
26866 (name "emacs-highlight")
26867 (version "0.0.0")
26868 (source
26869 (origin
26870 (method git-fetch)
26871 (uri (git-reference
26872 (url "https://github.com/emacsmirror/highlight/")
26873 (commit commit)))
26874 (file-name (git-file-name name commit))
26875 (sha256
26876 (base32
26877 "0pbqzgbfkm8smi23j94hirxh2r1yc0ipyjbbv1y906br6bx5c1a8"))))
26878 (build-system emacs-build-system)
26879 (home-page "https://github.com/emacsmirror/highlight")
26880 (synopsis "Highlighting commands for GNU Emacs")
26881 (description "This library adds the possibility for ad-hoc
26882 applying highlighting to any face in GNU Emacs. The functionality
26883 of this library depends on overlays, which by default are not
26884 picked up when copy-pasting text from buffer to buffer.")
26885 (license license:gpl2+))))
26886
26887 (define-public emacs-org-webring
26888 (package
26889 (name "emacs-org-webring")
26890 (version "2.0.0")
26891 (source
26892 (origin
26893 (method git-fetch)
26894 (uri (git-reference
26895 (url "https://git.sr.ht/~brettgilio/org-webring")
26896 (commit version)))
26897 (file-name (git-file-name name version))
26898 (sha256
26899 (base32
26900 "1si0jah7n2gvlvghjy5dpannqpkxni5rczfp1x2a4z6ydalr3bn5"))))
26901 (build-system emacs-build-system)
26902 (arguments
26903 `(#:phases
26904 (modify-phases %standard-phases
26905 (add-after 'install 'install-assets
26906 (lambda* (#:key outputs #:allow-other-keys)
26907 (let* ((out (assoc-ref outputs "out"))
26908 (assets
26909 (string-append out "/share/emacs/org-webring-assets")))
26910 (mkdir-p assets)
26911 (copy-recursively "assets" assets)
26912 #t))))))
26913 (propagated-inputs
26914 `(("emacs-xmlgen" ,emacs-xmlgen)))
26915 (home-page "https://sr.ht/~brettgilio/org-webring")
26916 (synopsis "Generate webrings for Org-based sites / blogs")
26917 (description "Org-webring is an alternative implementation of a
26918 feed-based webring, taking inspiration from openring by Drew DeVault.
26919 Intended to integrate with Org-based websites and blogs (either
26920 directly, or indirectly, as in ox-hugo), it will fetch a given list of
26921 web feed files and correctly parse and format the elements to be
26922 displayed for sharing.")
26923 (license license:gpl3+)))
26924
26925 (define-public emacs-scpaste
26926 (let ((commit "cd4fa0aafecd839736e0b6cba68b4fc4d7045472")
26927 (revision "0"))
26928 (package
26929 (name "emacs-scpaste")
26930 (version "0.6.5")
26931 (source
26932 (origin
26933 (method git-fetch)
26934 (uri (git-reference
26935 (url "https://git.sr.ht/~technomancy/scpaste")
26936 (commit commit)))
26937 (file-name (git-file-name name commit))
26938 (sha256
26939 (base32
26940 "1nvwbwl26z03963g9c82b3ggm39r95z1vp7c9qsa9mjm46dyq27w"))))
26941 (build-system emacs-build-system)
26942 (propagated-inputs
26943 `(("emacs-htmlize" ,emacs-htmlize)))
26944 (home-page "https://git.sr.ht/~technomancy/scpaste")
26945 (synopsis "Emacs-based static HTML pastebin")
26946 (description "This library will place an HTML copy of a
26947 buffer on an active webserver to which the user has SSH access.
26948 It is similar in purpose to services such as Gist or Pastebin,
26949 but is much simpler since it assumes the user has access to a
26950 publicly-accessible HTTP server.")
26951 (license license:gpl3+))))
26952
26953 (define-public emacs-company-reftex
26954 (package
26955 (name "emacs-company-reftex")
26956 (version "0.1.0")
26957 (source
26958 (origin
26959 (method git-fetch)
26960 (uri (git-reference
26961 (url "https://github.com/TheBB/company-reftex")
26962 (commit "275ef708f08d3bf0eb30632148e5c6184eeaacdb")))
26963 (file-name (git-file-name name version))
26964 (sha256
26965 (base32
26966 "118cgw5lsffqdqz95mnkw36mmnsbg9m52r2np4m7v14mjjwr9fby"))))
26967 (build-system emacs-build-system)
26968 (propagated-inputs
26969 `(("emacs-company" ,emacs-company)
26970 ("emacs-s" ,emacs-s)))
26971 (home-page "https://github.com/TheBB/company-reftex")
26972 (synopsis "RefTeX backends for company-mode")
26973 (description "This package provides company-mode backends for completing
26974 label references and citations in LaTeX. It is based on RefTeX, which is
26975 included with Emacs.")
26976 (license license:gpl3+)))
26977
26978 (define-public emacs-html-to-hiccup
26979 ;; Package has no release. Version is extracted from "Version:" keyword in
26980 ;; main file.
26981 (let ((commit "50a52e2b0d13d865187acdf775b8203d5003f2f1")
26982 (revision "0"))
26983 (package
26984 (name "emacs-html-to-hiccup")
26985 (version (git-version "1" revision commit))
26986 (source
26987 (origin
26988 (method git-fetch)
26989 (uri (git-reference
26990 (url "https://github.com/plexus/html-to-hiccup")
26991 (commit commit)))
26992 (file-name (git-file-name name version))
26993 (sha256
26994 (base32 "1qi092mw2n08v6yr0j6hlpx0pnlcnhxjqbsrlw9pn4yin6zk91yp"))))
26995 (build-system emacs-build-system)
26996 (propagated-inputs
26997 `(("dash" ,emacs-dash)
26998 ("s" ,emacs-s)))
26999 (home-page "https://github.com/plexus/html-to-hiccup")
27000 (synopsis "Turn HTML into Hiccup syntax")
27001 (description
27002 "This is an Emacs package that turns HTML into Hiccup syntax
27003 which is a popular notation to use when doing Clojure/ClojureScript
27004 web development.")
27005 ;; There is a conflict between the repository official LICENSE
27006 ;; file and the header of the main elisp file which indicates
27007 ;; that it is licensed under the GPL version 3 or later.
27008 (license (list license:mpl2.0 license:gpl3+)))))
27009
27010 (define-public emacs-iter2
27011 (package
27012 (name "emacs-iter2")
27013 (version "1.0")
27014 (source
27015 (origin
27016 (method git-fetch)
27017 (uri (git-reference
27018 (url "https://github.com/doublep/iter2")
27019 (commit version)))
27020 (file-name (git-file-name name version))
27021 (sha256
27022 (base32 "0gaq3z2v1q4r9mkyq71dzmqakhi0p8g7ph4z0n3a11rvyc3z9ykx"))))
27023 (build-system emacs-build-system)
27024 (home-page "https://github.com/doublep/iter2")
27025 (synopsis "Reimplementation of Elisp generators")
27026 (description "@code{iter2} is a fully compatible reimplementation of
27027 built-in generator package. It provides @code{iter2-defun} and
27028 @code{iter2-lambda} forms that can be used in place of @code{iter-defun} and
27029 @code{iter-lambda}. All other functions and macros (e.g. @code{iter-yield},
27030 @code{iter-next}) are intentionally not duplicated: just use the ones from the
27031 original package.")
27032 (license license:gpl3+)))
27033
27034 (define-public emacs-promise
27035 (package
27036 (name "emacs-promise")
27037 (version "1.1")
27038 (source
27039 (origin
27040 (method git-fetch)
27041 (uri (git-reference
27042 (url "https://github.com/chuntaro/emacs-promise")
27043 (commit version)))
27044 (file-name (git-file-name name version))
27045 (sha256
27046 (base32 "1xb34zdbwjvahfhycjphdkm925kgd22dr298c57hwxza4ljc2hxj"))))
27047 (build-system emacs-build-system)
27048 (home-page "https://github.com/chuntaro/emacs-promise")
27049 (synopsis "Promises/A+ for Emacs")
27050 (description "This is a simple implementation of Promises/A+.
27051
27052 This implementation ports the following Promises/A+ features
27053 faithfully. See @url{https://github.com/then/promise}.
27054
27055 @itemize
27056 @item The same API as the JavaScript version of Promise can be used.
27057 @item It has all the @code{then}, @code{catch}, @code{resolve}, @code{reject},
27058 @code{all}, @code{race}, etc.
27059 @item It supports \"thenable\".
27060 @item It supports \"Inheritance of Promise\".
27061 @item It supports \"rejection-tracking\".
27062 @end itemize\n")
27063 (license license:gpl3+)))
27064
27065 (define-public emacs-async-await
27066 (package
27067 (name "emacs-async-await")
27068 (version "1.1")
27069 (source
27070 (origin
27071 (method git-fetch)
27072 (uri (git-reference
27073 (url "https://github.com/chuntaro/emacs-async-await")
27074 (commit version)))
27075 (file-name (git-file-name name version))
27076 (sha256
27077 (base32 "0aav9qdswnw7ynqlzn0sm34as5fj2d85syxgg8zjabzp6646ay29"))))
27078 (build-system emacs-build-system)
27079 (propagated-inputs
27080 `(("promise" ,emacs-promise)
27081 ("iter2" ,emacs-iter2)))
27082 (home-page "https://github.com/chuntaro/emacs-async-await")
27083 (synopsis "Async/Await for Emacs")
27084 (description "This is a simple implementation of Async/Await inspired by
27085 the TypeScript implementation.")
27086 (license license:gpl3+)))
27087
27088 (define-public emacs-rocket-chat
27089 ;; No release.
27090 (let ((commit "96fe27a8678de5ae4061f635108a7192eee13f98"))
27091 (package
27092 (name "emacs-rocket-chat")
27093 (version (git-version "0.0.0" "1" commit))
27094 (source
27095 (origin
27096 (method git-fetch)
27097 (uri (git-reference
27098 (url "https://github.com/4hiziri/rocket-chat")
27099 (commit commit)))
27100 (file-name (git-file-name name version))
27101 (sha256
27102 (base32 "02a4j0yy7330kfr3rd3k2agdj01ii6989nki598anbamq6xvj5ql"))))
27103 (build-system emacs-build-system)
27104 (propagated-inputs
27105 `(("async-await" ,emacs-async-await)
27106 ("request" ,emacs-request)))
27107 (home-page "https://github.com/4hiziri/rocket-chat")
27108 (synopsis "Emacs Rocket.chat client")
27109 (description "This package provides an Emacs client for the Rocket.chat
27110 service.")
27111 (license license:expat))))
27112
27113 (define-public emacs-monokai-theme
27114 (package
27115 (name "emacs-monokai-theme")
27116 (version "3.5.3")
27117 (source
27118 (origin
27119 (method git-fetch)
27120 (uri (git-reference
27121 (url "https://github.com/oneKelvinSmith/monokai-emacs")
27122 (commit (string-append "v" version))))
27123 (file-name (git-file-name name version))
27124 (sha256
27125 (base32 "0dy8c3349j7fmp8052hbgvk0b7ldlv5jqpg0paq1i0hlypivd30i"))))
27126 (build-system emacs-build-system)
27127 (home-page "https://github.com/oneKelvinSmith/monokai-emacs")
27128 (synopsis "High contrast color theme for Emacs")
27129 (description
27130 "Monokai theme is a port of the popular TextMate Monokai theme for
27131 Emacs.")
27132 (license license:gpl3+)))
27133
27134 (define-public emacs-nord-theme
27135 (package
27136 (name "emacs-nord-theme")
27137 (version "0.5.0")
27138 (source
27139 (origin
27140 (method git-fetch)
27141 (uri (git-reference
27142 (url "https://github.com/arcticicestudio/nord-emacs")
27143 (commit (string-append "v" version))))
27144 (file-name (git-file-name name version))
27145 (sha256
27146 (base32 "096f8cik4jz89bvkifwp3gm9iraqrd75ljy2q9js724v7yj88711"))))
27147 (build-system emacs-build-system)
27148 (home-page "https://www.nordtheme.com/")
27149 (synopsis "Low contrast arctic color theme for Emacs")
27150 (description
27151 "Nord is an arctic, north-bluish color scheme created for a clean and
27152 uncluttered design pattern to achieve optimal focus and readability for code
27153 syntax highlighting and UI components.")
27154 (license license:expat)))
27155
27156 (define-public emacs-janet-mode
27157 (let ((commit "2f5bcabcb6953e1ed1926ba6a2328c453e8b4ac7"))
27158 (package
27159 (name "emacs-janet-mode")
27160 (version (git-version "0.1.0" "1" commit))
27161 (source
27162 (origin
27163 (method git-fetch)
27164 (uri (git-reference
27165 (url "https://github.com/ALSchwalm/janet-mode")
27166 (commit commit)))
27167 (file-name (git-file-name name version))
27168 (sha256
27169 (base32 "0qj0gpycv2f3z1dgz1a27bjn983hrr3ppvrp7csl34lagnmp89rz"))))
27170 (build-system emacs-build-system)
27171 (home-page "https://github.com/ALSchwalm/janet-mode")
27172 (synopsis "Emacs major mode for the Janet programming language")
27173 (description
27174 "This package provides an Emacs major mode for editing Janet files.")
27175 (license license:gpl3))))
27176
27177 (define-public emacs-inf-janet
27178 (let ((commit "df46651d3aad32593b2195c80ca91fb64d571fb7"))
27179 (package
27180 (name "emacs-inf-janet")
27181 (version (git-version "0.1.0" "1" commit))
27182 (source
27183 (origin
27184 (method git-fetch)
27185 (uri (git-reference
27186 (url "https://github.com/velkyel/inf-janet")
27187 (commit commit)))
27188 (file-name (git-file-name name version))
27189 (sha256
27190 (base32 "0g0y7q62667j0p32md1h6zb2cap9fga9qgdg7138xwjqnk0328v7"))))
27191 (build-system emacs-build-system)
27192 (propagated-inputs
27193 `(("janet-mode" ,emacs-janet-mode)))
27194 (arguments
27195 `(#:phases
27196 (modify-phases %standard-phases
27197 (add-after 'unpack 'fix-program-name
27198 (lambda _
27199 (make-file-writable "inf-janet.el")
27200 (emacs-substitute-variables "inf-janet.el"
27201 ("inf-janet-program" "janet"))
27202 #t)))))
27203 (home-page "https://github.com/velkyel/inf-janet")
27204 (synopsis "Run an external Janet process in an Emacs buffer")
27205 (description
27206 "This Emacs package provides a Janet REPL to evaluate @code{janet-mode}
27207 s-expression.")
27208 (license license:expat))))
27209
27210 (define-public emacs-map
27211 (package
27212 (name "emacs-map")
27213 (version "3.0")
27214 (source
27215 (origin
27216 (method url-fetch)
27217 (uri (string-append "https://elpa.gnu.org/packages/map-"
27218 version ".tar"))
27219 (sha256
27220 (base32
27221 "00wf8lgh1b1i5l838y6di8194rf5gf5djklkhmxj1nlikz66j2ls"))))
27222 (build-system emacs-build-system)
27223 (home-page "http://elpa.gnu.org/packages/map.html")
27224 (synopsis "Map manipulation functions")
27225 (description "This package provides Emacs map-manipulation functions that
27226 work on alists, hash-table and arrays. All functions are prefixed with
27227 @code{map-}.")
27228 (license license:gpl3+)))
27229
27230 (define-public emacs-xref
27231 (package
27232 (name "emacs-xref")
27233 (version "1.0.4")
27234 (source
27235 (origin
27236 (method url-fetch)
27237 (uri (string-append "https://elpa.gnu.org/packages/"
27238 "xref-" version ".el"))
27239 (sha256
27240 (base32 "0hkm59qqlsfw3w9ws9xhpmmz30ylifmh05a00ba58zvv1kz04x1g"))))
27241 (build-system emacs-build-system)
27242 (home-page "http://elpa.gnu.org/packages/xref.html")
27243 (synopsis "Cross-referencing commands")
27244 (description
27245 "This library provides a generic infrastructure for cross referencing
27246 commands, in particular @code{find-definition}.")
27247 (license license:gpl3+)))
27248
27249 (define-public emacs-burly
27250 (package
27251 (name "emacs-burly")
27252 (version "0.1")
27253 (source
27254 (origin
27255 (method git-fetch)
27256 (uri (git-reference
27257 (url "https://github.com/alphapapa/burly.el")
27258 (commit version)))
27259 (file-name (git-file-name name version))
27260 (sha256
27261 (base32 "1vaikknjzmhpszyi4yxjjkp1ihgmhpbnbx1s5pjy4mnhl1ibi33b"))))
27262 (build-system emacs-build-system)
27263 (propagated-inputs
27264 `(("emacs-map" ,emacs-map)))
27265 (home-page "https://github.com/alphapapa/burly.el")
27266 (synopsis "Save and restore frame/window configurations with buffers")
27267 (description "This package provides tools to save and restore frame and
27268 window configurations in Emacs, including buffers that may not be live
27269 anymore. In this way, it's like a lightweight \"workspace\" manager, allowing
27270 you to easily restore one or more frames, including their windows, the
27271 windows' layout, and their buffers.")
27272 (license license:gpl3+)))
27273
27274 (define-public emacs-smart-hungry-delete
27275 (let ((commit "7c1d56a92481594e14d40b5fdf6c48657a0108a0"))
27276 (package
27277 (name "emacs-smart-hungry-delete")
27278 (version "0.1")
27279 (source
27280 (origin
27281 (method git-fetch)
27282 (uri (git-reference
27283 (url "https://github.com/hrehfeld/emacs-smart-hungry-delete")
27284 (commit commit)))
27285 (file-name (git-file-name name version))
27286 (sha256
27287 (base32
27288 "0mxaslx5823s68a8ggbbnmfk1jiswjvip5s4sg7ihfagnci72wni"))))
27289 (build-system emacs-build-system)
27290 (home-page "https://github.com/hrehfeld/emacs-smart-hungry-delete")
27291 (synopsis "Smart hungry deletion of whitespace")
27292 (description "@code{emacs-smart-hungry-delete} hungrily deletes whitespace
27293 between cursor and next word, parenthesis or delimiter while honoring some
27294 rules about where space should be left to separate words and parentheses.")
27295 (license license:gpl2+))))
27296
27297 (define-public emacs-webpaste
27298 (package
27299 (name "emacs-webpaste")
27300 (version "3.2.0")
27301 (source
27302 (origin
27303 (method git-fetch)
27304 (uri (git-reference
27305 (url "https://github.com/etu/webpaste.el")
27306 (commit version)))
27307 (file-name (git-file-name name version))
27308 (sha256
27309 (base32
27310 "08545ihkzflw80rwklnxiswrpdrl8kr74xzxm5wsgrf36fkj9rn2"))))
27311 (build-system emacs-build-system)
27312 (arguments
27313 `(#:tests? #t
27314 #:test-command '("make" "unit" "integration")
27315 #:phases
27316 (modify-phases %standard-phases
27317 (add-after 'unpack 'fix-tests
27318 (lambda _
27319 ;; Do not use cask to run tests.
27320 (substitute* "Makefile"
27321 (("\\$\\{CASK\\} exec ") ""))
27322 ;; Disable tests that need network access.
27323 (substitute* (list "tests/unit/test-webpaste-provider-creation.el"
27324 "tests/integration/test-webpaste-providers.el")
27325 (("describe") "xdescribe")))))))
27326 (native-inputs
27327 `(("emacs-buttercup" ,emacs-buttercup)))
27328 (propagated-inputs
27329 `(("emacs-request" ,emacs-request)))
27330 (home-page "https://github.com/etu/webpaste.el")
27331 (synopsis "Paste to pastebin-like services")
27332 (description "This mode allows to paste whole buffers or parts of buffers
27333 to pastebin-like services. It supports more than one service and will
27334 failover if one service fails. More services can easily be added over time
27335 and prefered services can easily be configured.")
27336 (license license:gpl3+)))
27337
27338 (define-public emacs-keystore-mode
27339 (let ((release "0.0.1")
27340 (revision "0")
27341 (commit "43bd5926348298d077c7221f37902c990df3f951"))
27342 (package
27343 (name "emacs-keystore-mode")
27344 (version (git-version release revision commit))
27345 (home-page "https://github.com/peterpaul/keystore-mode")
27346 (source
27347 (origin
27348 (method git-fetch)
27349 (uri (git-reference
27350 (url home-page)
27351 (commit commit)))
27352 (file-name (git-file-name name version))
27353 (sha256
27354 (base32 "06cznkqkm04zz5lqfb514aqvsr2p13arzysixv0ss0bqpvdq7cv7"))))
27355 (build-system emacs-build-system)
27356 (arguments
27357 `(#:tests? #t
27358 #:test-command
27359 '("emacs" "--no-init-file" "--batch"
27360 "--eval=(require 'ecukes)" "--eval=(ecukes)")))
27361 (native-inputs
27362 `(("emacs-ecukes" ,emacs-ecukes)
27363 ("emacs-espuds" ,emacs-espuds)
27364 ("emacs-undercover" ,emacs-undercover)
27365 ("openjdk" ,openjdk9)))
27366 (propagated-inputs
27367 `(("emacs-origami" ,emacs-origami-el)
27368 ("emacs-s" ,emacs-s)))
27369 (synopsis "Major mode for viewing and managing Java keystores")
27370 (description
27371 "This package provides an Elisp wrapper around the Java
27372 @command{keytool} command and major mode for viewing Java keystores.")
27373 (license license:expat))))
27374
27375 (define-public emacs-ivy-avy
27376 (package
27377 (name "emacs-ivy-avy")
27378 (version "0.13.4")
27379 (source
27380 (origin
27381 (method url-fetch)
27382 (uri (string-append
27383 "https://elpa.gnu.org/packages/"
27384 "ivy-avy-" version ".tar"))
27385 (sha256
27386 (base32 "1q5caxm4rnh4jy5n88dhkdbx1afsshmfki5dl8xsqbdb3y0zq7yi"))))
27387 (build-system emacs-build-system)
27388 (propagated-inputs
27389 `(("emacs-ivy" ,emacs-ivy)
27390 ("emacs-avy" ,emacs-avy)))
27391 (home-page "https://github.com/abo-abo/swiper")
27392 (synopsis "Avy integration for Ivy")
27393 (description
27394 "This package adds a \"C-'\" binding to Ivy minibuffer that uses Avy.")
27395 (license license:gpl3+)))
27396
27397 (define-public emacs-ivy-hydra
27398 (package
27399 (name "emacs-ivy-hydra")
27400 (version "0.13.5")
27401 (source
27402 (origin
27403 (method url-fetch)
27404 (uri (string-append
27405 "https://elpa.gnu.org/packages/"
27406 "ivy-hydra-" version ".tar"))
27407 (sha256
27408 (base32 "06rln9bnq5hli5rqlm47fb68b8llpqrmzwqqv4rn7mx3854i9a5x"))))
27409 (build-system emacs-build-system)
27410 (propagated-inputs
27411 `(("emacs-ivy" ,emacs-ivy)
27412 ("emacs-hydra" ,emacs-hydra)))
27413 (home-page "https://github.com/abo-abo/swiper")
27414 (synopsis "Additional key bindings for Ivy")
27415 (description
27416 "This package provides the `hydra-ivy/body' command, which is a
27417 quasi-prefix map, with many useful bindings. These bindings are
27418 shorter than usual, using mostly unprefixed keys.")
27419 (license license:gpl3+)))