gnu: gnupg: Update to 2.2.24.
[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 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 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 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, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
33 ;;; Copyright © 2017 Mike Gerwitz <mtg@gnu.org>
34 ;;; Copyright © 2017, 2018, 2019, 2020 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 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 Pierre Langlois <pierre.langlois@gmx.com>
44 ;;; Copyright © 2018, 2019, 2020 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 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 Masaya Tojo <masaya@tojo.tokyo>
64 ;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net>
65 ;;; Copyright © 2020 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 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 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 ;;;
89 ;;; This file is part of GNU Guix.
90 ;;;
91 ;;; GNU Guix is free software; you can redistribute it and/or modify it
92 ;;; under the terms of the GNU General Public License as published by
93 ;;; the Free Software Foundation; either version 3 of the License, or (at
94 ;;; your option) any later version.
95 ;;;
96 ;;; GNU Guix is distributed in the hope that it will be useful, but
97 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
98 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
99 ;;; GNU General Public License for more details.
100 ;;;
101 ;;; You should have received a copy of the GNU General Public License
102 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
103
104 (define-module (gnu packages emacs-xyz)
105 #:use-module ((guix licenses) #:prefix license:)
106 #:use-module (guix packages)
107 #:use-module (guix cvs-download)
108 #:use-module (guix download)
109 #:use-module (guix bzr-download)
110 #:use-module (guix git-download)
111 #:use-module (guix hg-download)
112 #:use-module (guix build-system gnu)
113 #:use-module (guix build-system cmake)
114 #:use-module (guix build-system emacs)
115 #:use-module (guix build-system glib-or-gtk)
116 #:use-module (guix build-system perl)
117 #:use-module (guix build-system trivial)
118 #:use-module (gnu packages)
119 #:use-module (gnu packages admin)
120 #:use-module (gnu packages audio)
121 #:use-module (gnu packages bash)
122 #:use-module (gnu packages cmake)
123 #:use-module (gnu packages code)
124 #:use-module (gnu packages cpp)
125 #:use-module (gnu packages curl)
126 #:use-module (gnu packages databases)
127 #:use-module (gnu packages dictionaries)
128 #:use-module (gnu packages djvu)
129 #:use-module (gnu packages emacs)
130 #:use-module (gnu packages guile)
131 #:use-module (gnu packages gtk)
132 #:use-module (gnu packages gnome)
133 #:use-module (gnu packages haskell-apps)
134 #:use-module (gnu packages ibus)
135 #:use-module (gnu packages ncurses)
136 #:use-module (gnu packages python)
137 #:use-module (gnu packages python-xyz)
138 #:use-module (gnu packages telephony)
139 #:use-module (gnu packages terminals)
140 #:use-module (gnu packages tex)
141 #:use-module (gnu packages texinfo)
142 #:use-module (gnu packages tcl)
143 #:use-module (gnu packages tls)
144 #:use-module (gnu packages pkg-config)
145 #:use-module (gnu packages xorg)
146 #:use-module (gnu packages lesstif)
147 #:use-module (gnu packages llvm)
148 #:use-module (gnu packages image)
149 #:use-module (gnu packages linux)
150 #:use-module (gnu packages libevent)
151 #:use-module (gnu packages lua)
152 #:use-module (gnu packages music)
153 #:use-module (gnu packages version-control)
154 #:use-module (gnu packages imagemagick)
155 #:use-module (gnu packages w3m)
156 #:use-module (gnu packages web)
157 #:use-module (gnu packages wget)
158 #:use-module (gnu packages autotools)
159 #:use-module (gnu packages base)
160 #:use-module (gnu packages compression)
161 #:use-module (gnu packages node)
162 #:use-module (gnu packages xml)
163 #:use-module (gnu packages glib)
164 #:use-module (gnu packages acl)
165 #:use-module (gnu packages mail)
166 #:use-module (gnu packages messaging)
167 #:use-module (gnu packages package-management)
168 #:use-module (gnu packages perl)
169 #:use-module (gnu packages pdf)
170 #:use-module (gnu packages ruby)
171 #:use-module (gnu packages rust-apps)
172 #:use-module (gnu packages scheme)
173 #:use-module (gnu packages speech)
174 #:use-module (gnu packages xiph)
175 #:use-module (gnu packages mp3)
176 #:use-module (gnu packages gettext)
177 #:use-module (gnu packages fribidi)
178 #:use-module (gnu packages gd)
179 #:use-module (gnu packages fontutils)
180 #:use-module (gnu packages password-utils)
181 #:use-module (gnu packages pulseaudio)
182 #:use-module (gnu packages sphinx)
183 #:use-module (gnu packages xdisorg)
184 #:use-module (gnu packages shells)
185 #:use-module (gnu packages sqlite)
186 #:use-module (gnu packages ghostscript)
187 #:use-module (gnu packages gnupg)
188 #:use-module (gnu packages video)
189 #:use-module (gnu packages haskell-xyz)
190 #:use-module (gnu packages wordnet)
191 #:use-module (gnu packages photo)
192 #:use-module (gnu packages uml)
193 #:use-module (gnu packages finance)
194 #:use-module (guix utils)
195 #:use-module (srfi srfi-1)
196 #:use-module (ice-9 match))
197
198 ;;;
199 ;;; Emacs hacking.
200 ;;;
201
202 (define-public emacs-geiser
203 (package
204 (name "emacs-geiser")
205 (version "0.12")
206 (source
207 (origin
208 (method git-fetch)
209 (uri (git-reference
210 (url "https://gitlab.com/jaor/geiser/")
211 (commit version)))
212 (file-name (git-file-name name version))
213 (sha256
214 (base32 "0n718xpys7v94zaf9lpmsx97qgn6qxif1acr718wyvpmfr4hiv08"))))
215 (build-system gnu-build-system)
216 (arguments
217 '(#:phases
218 (modify-phases %standard-phases
219 (add-after 'install 'post-install
220 (lambda* (#:key outputs #:allow-other-keys)
221 (symlink "geiser-install.el"
222 (string-append (assoc-ref outputs "out")
223 "/share/emacs/site-lisp/"
224 "geiser-autoloads.el"))
225 #t)))))
226 (inputs
227 `(("guile" ,guile-2.2)))
228 (native-inputs
229 `(("emacs" ,emacs-minimal)
230 ("autoconf" ,autoconf)
231 ("automake" ,automake)
232 ("texinfo" ,texinfo)))
233 (home-page "https://nongnu.org/geiser/")
234 (synopsis "Collection of Emacs modes for Guile and Racket hacking")
235 (description
236 "Geiser is a collection of Emacs major and minor modes that conspire with
237 one or more Scheme implementations to keep the Lisp Machine Spirit alive. The
238 continuously running Scheme interpreter takes the center of the stage in
239 Geiser. A bundle of Elisp shims orchestrates the dialog between the Scheme
240 implementation, Emacs and, ultimately, the schemer, giving them access to live
241 metadata.")
242 (license license:bsd-3)))
243
244 (define-public emacs-ac-geiser
245 (let ((commit "93818c936ee7e2f1ba1b315578bde363a7d43d05")
246 (revision "0"))
247 (package
248 (name "emacs-ac-geiser")
249 (version (git-version "0.1" revision commit))
250 (source
251 (origin
252 (uri (git-reference
253 (url "https://github.com/xiaohanyu/ac-geiser")
254 (commit commit)))
255 (method git-fetch)
256 (sha256
257 (base32 "00n2qa26yilaj837n1yp6lbqa4gf30nkkbvanl7m9ih7k48ssqmw"))
258 (file-name (git-file-name name version))))
259 (build-system emacs-build-system)
260 (propagated-inputs
261 `(("geiser" ,emacs-geiser)
262 ("auto-complete" ,emacs-auto-complete)))
263 (synopsis "Auto-complete backend for geiser")
264 (description
265 "This package provides an auto-complete source for Scheme projects
266 using geiser.")
267 (license license:bsd-3)
268 (home-page "https://github.com/xiaohanyu/ac-geiser"))))
269
270 (define-public emacs-hyperbole
271 (package
272 (name "emacs-hyperbole")
273 (version "7.1.3")
274 (source
275 (origin
276 (method url-fetch)
277 (uri (string-append "https://elpa.gnu.org/packages/"
278 "hyperbole-" version ".tar"))
279 (sha256
280 (base32 "0bizibn4qgxqp89fyik6p47s9hss1g932mg8k7pznn3kkhj5c8rh"))
281 (patches
282 (search-patches "emacs-hyperbole-toggle-messaging.patch"))))
283 (build-system emacs-build-system)
284 (arguments
285 `(#:include '("DEMO"
286 "DEMO-ROLO.otl"
287 "HY-ABOUT"
288 "\\.el$"
289 "\\.info$"
290 "\\.kotl$")
291 #:phases
292 (modify-phases %standard-phases
293 ;; Fix build issues about missing "domainname" and "hpmap:dir-user"
294 ;; parent dir.
295 (add-after 'unpack 'fix-build
296 (lambda* (#:key inputs #:allow-other-keys)
297 (substitute* "hypb.el"
298 (("/bin/domainname")
299 (string-append (assoc-ref inputs "inetutils")
300 "/bin/dnsdomainname")))
301 (substitute* "hyperbole.el"
302 (("\\(hyperb:check-dir-user\\)") ""))
303 #t)))))
304 (inputs
305 `(("inetutils" ,inetutils)))
306 (home-page "https://www.gnu.org/software/hyperbole/")
307 (synopsis "The Everyday Hypertextual Information Manager")
308 (description
309 "GNU Hyperbole, or just Hyperbole, is an easy-to-use, yet powerful and
310 programmable hypertextual information management system implemented as a GNU
311 Emacs package. It offers rapid views and interlinking of all kinds of textual
312 information, utilizing Emacs for editing. It can dramatically increase your
313 productivity and greatly reduce the number of keyboard/mouse keys you'll need
314 to work efficiently. Hyperbole lets you:
315
316 @itemize
317 @item Quickly create hyperlink buttons either from the keyboard or by dragging
318 between a source and destination window with a mouse button depressed. Later,
319 activate buttons by pressing/clicking on them or by giving the name of the
320 button.
321 @item Activate many kinds of \"implicit buttons\" recognized by context within
322 text buffers, e.g. URLs, grep output lines, and git commits. A single key or
323 mouse button automatically does the right thing in dozens of contexts; just
324 press and go.
325 @item Build outlines with multi-level numbered outline nodes, e.g. 1.4.8.6,
326 that all renumber automatically as any node or tree is moved in the outline.
327 Each node also has a permanent hyperlink anchor that you can reference from
328 any other node.
329 @item Manage all your contacts quickly with hierarchical categories and embed
330 hyperlinks within each entry. Or create an archive of documents with
331 hierarchical entries and use the same search mechanism to quickly find any
332 matching entry.
333 @item Use single keys to easily manage your Emacs windows or frames and
334 quickly retrieve saved window and frame configurations.
335 @item Search for things in your current buffers, in a directory tree or across
336 major web search engines with the touch of a few keys.
337 @end itemize
338
339 The common thread in all these features is making retrieval, management and
340 display of information fast and easy. That is Hyperbole's purpose.")
341 (license license:gpl3+)))
342
343 (define-public emacs-paredit
344 (package
345 (name "emacs-paredit")
346 (version "24")
347 (source (origin
348 (method url-fetch)
349 (uri (string-append "http://mumble.net/~campbell/emacs/paredit-"
350 version ".el"))
351 (sha256
352 (base32
353 "0pp3n8q6kc70blqsaw0zlzp6bc327dpgdrjr0cnh7hqg1lras7ka"))))
354 (build-system emacs-build-system)
355 (home-page "http://mumble.net/~campbell/emacs/paredit/")
356 (synopsis "Emacs minor mode for editing parentheses")
357 (description
358 "ParEdit (paredit.el) is a minor mode for performing structured editing
359 of S-expression data. The typical example of this would be Lisp or Scheme
360 source code.
361
362 ParEdit helps **keep parentheses balanced** and adds many keys for moving
363 S-expressions and moving around in S-expressions. Its behavior can be jarring
364 for those who may want transient periods of unbalanced parentheses, such as
365 when typing parentheses directly or commenting out code line by line.")
366 (license license:gpl3+)))
367
368 (define-public git-modes
369 (package
370 (name "emacs-git-modes")
371 (version "1.2.8")
372 (source (origin
373 (method git-fetch)
374 (uri (git-reference
375 (url "https://github.com/magit/git-modes")
376 (commit version)))
377 (file-name (git-file-name name version))
378 (sha256
379 (base32
380 "08hy7rbfazs6grkpk54i82bz0i0c74zcjk96cip8970h6jn3mj72"))))
381 (build-system emacs-build-system)
382 (home-page "https://github.com/magit/git-modes")
383 (synopsis "Emacs major modes for Git configuration files")
384 (description
385 "This package provides Emacs major modes for editing various Git
386 configuration files, such as .gitattributes, .gitignore, and .git/config.")
387 (license license:gpl3+)))
388
389 (define-public emacs-with-editor
390 ;; This commit fixes an (magit) issue with emacs 28, see
391 ;; https://lists.gnu.org/archive/html/help-gnu-emacs/2020-10/msg00211.html
392 (let ((commit "c4768f51c7415119519b4626d8643d60e584098c")
393 (revision "1"))
394 (package
395 (name "emacs-with-editor")
396 (version (git-version "2.9.4" revision commit))
397 (source
398 (origin
399 (method git-fetch)
400 (uri (git-reference
401 (url "https://github.com/magit/with-editor")
402 (commit commit)))
403 (file-name (git-file-name name version))
404 (sha256
405 (base32 "01ysb9pnscpmingay6njdywkqgj4hn5l5d9igsg3x7p7061jwwix"))))
406 (build-system emacs-build-system)
407 (arguments
408 `(#:phases
409 (modify-phases %standard-phases
410 (add-before 'install 'make-info
411 (lambda _
412 (invoke "makeinfo" "--no-split"
413 "-o" "with-editor.info" "with-editor.texi"))))))
414 (native-inputs
415 `(("texinfo" ,texinfo)))
416 (propagated-inputs
417 `(("emacs-dash" ,emacs-dash)))
418 (home-page "https://github.com/magit/with-editor")
419 (synopsis "Emacs library for using Emacsclient as EDITOR")
420 (description
421 "This package provides an Emacs library to use the Emacsclient as
422 @code{$EDITOR} of child processes, making sure they know how to call home.
423 For remote processes a substitute is provided, which communicates with Emacs
424 on stdout instead of using a socket as the Emacsclient does.")
425 (license license:gpl3+))))
426
427 (define-public emacs-libgit
428 (let ((commit "0ef8b13aef011a98b7da756e4f1ce3bb18e4d55a")
429 (revision "1"))
430 (package
431 (name "emacs-libgit")
432 (version (git-version "20200515" revision commit))
433 (source (origin
434 (method git-fetch)
435 (uri (git-reference
436 (url "https://github.com/magit/libegit2")
437 (commit commit)))
438 (file-name (git-file-name name version))
439 (sha256
440 (base32
441 "0pnjr3bg6y6354dfjjxfj0g51swzgl1fncpprah75x4k94rd369f"))
442 (patches (search-patches
443 ;; Submitted for inclusion upstream (see:
444 ;; https://github.com/magit/libegit2/pull/96).
445 "emacs-libgit-use-system-libgit2.patch"))))
446 ;; Use the cmake-build-system as it provides support for cross builds.
447 (build-system cmake-build-system)
448 (arguments
449 `(#:configure-flags '("-DUSE_SYSTEM_LIBGIT2=x")
450 ;; Add the emacs-build-system byte compilation and install phases.
451 #:imported-modules (,@%cmake-build-system-modules
452 (guix build emacs-build-system)
453 (guix build emacs-utils))
454 #:modules ((guix build cmake-build-system)
455 ((guix build emacs-build-system) #:prefix emacs:)
456 (guix build emacs-utils)
457 (guix build utils))
458 #:phases
459 (modify-phases %standard-phases
460 (add-after 'unpack 'set-libgit--module-file
461 (lambda* (#:key outputs #:allow-other-keys)
462 (let ((out (assoc-ref outputs "out")))
463 (make-file-writable "libgit.el")
464 (emacs-substitute-variables "libgit.el"
465 ("libgit--module-file"
466 (string-append out "/share/emacs/site-lisp/libegit2.so")))
467 #t)))
468 (add-before 'install 'prepare-for-install
469 (lambda _
470 (let ((s (string-append "../" ,name "-" ,version "-checkout")))
471 (copy-file "libegit2.so" (string-append s "/libegit2.so"))
472 (chdir s)
473 #t)))
474 (replace 'install
475 (lambda* (#:key outputs #:allow-other-keys)
476 (let ((install (assoc-ref emacs:%standard-phases 'install)))
477 (install #:outputs outputs
478 #:include (cons "\\.so$"
479 emacs:%default-include)))))
480 (add-after 'install 'make-autoloads
481 (assoc-ref emacs:%standard-phases 'make-autoloads))
482 (add-after 'make-autoloads 'enable-autoloads-compilation
483 (assoc-ref emacs:%standard-phases 'enable-autoloads-compilation))
484 (add-after 'enable-autoloads-compilation 'patch-el-files
485 (assoc-ref emacs:%standard-phases 'patch-el-files))
486 (add-after 'patch-el-files 'emacs-build
487 (assoc-ref emacs:%standard-phases 'build))
488 (add-after 'emacs-build 'validate-compiled-autoloads
489 (assoc-ref emacs:%standard-phases 'validate-compiled-autoloads)))))
490 (native-inputs
491 `(("pkg-config" ,pkg-config)
492 ("emacs" ,emacs-no-x)
493 ("git" ,git-minimal)))
494 (inputs
495 `(("libgit2" ,libgit2)))
496 (home-page "https://github.com/magit/libegit2")
497 (synopsis "Emacs bindings for libgit2")
498 (description "This is an experimental module written in C providing
499 libgit2 bindings for Emacs, intended to boost the performance of Magit.")
500 ;; The LICENSE file says GPL v2+, but libgit.el says GPL v3+.
501 (license license:gpl3+))))
502
503 (define-public emacs-magit
504 ;; There hasn't been an official release since 2018-11-16.
505 (let ((commit "7f486d47fe7042edba8d9a855a4c2c301a30bc6b")
506 (revision "6"))
507 (package
508 (name "emacs-magit")
509 (version (git-version "2.90.1" revision commit))
510 (source
511 (origin
512 (method git-fetch)
513 (uri (git-reference
514 (url "https://github.com/magit/magit")
515 (commit commit)))
516 (file-name (git-file-name name version))
517 (sha256
518 (base32 "05kyc5y5wa1p3h8j7mbgvfc4zcj998zi26lnnmksj9wnvahzxfms"))))
519 (build-system emacs-build-system)
520 (arguments
521 `(#:emacs ,emacs-no-x ;module support is required
522 #:tests? #t
523 #:test-command '("make" "test")
524 #:phases
525 (modify-phases %standard-phases
526 (add-after 'unpack 'build-info-manual
527 (lambda _
528 (invoke "make" "info")
529 ;; Copy info files to the lisp directory, which acts as
530 ;; the root of the project for the emacs-build-system.
531 (for-each (lambda (f)
532 (install-file f "lisp"))
533 (find-files "Documentation" "\\.info$"))
534 (chdir "lisp")
535 #t))
536 (add-after 'build-info-manual 'set-magit-version
537 (lambda _
538 (make-file-writable "magit.el")
539 (emacs-substitute-variables "magit.el"
540 ("magit-version" ,version))
541 #t))
542 (add-after 'set-magit-version 'patch-exec-paths
543 (lambda* (#:key inputs #:allow-other-keys)
544 (let ((perl (assoc-ref inputs "perl")))
545 (make-file-writable "magit-sequence.el")
546 (emacs-substitute-variables "magit-sequence.el"
547 ("magit-perl-executable" (string-append perl "/bin/perl")))
548 #t)))
549 (add-before 'check 'configure-git
550 (lambda _
551 ;; Otherwise some tests fail with error "unable to auto-detect
552 ;; email address".
553 (setenv "HOME" (getcwd))
554 (invoke "git" "config" "--global" "user.name" "toto")
555 (invoke "git" "config" "--global" "user.email"
556 "toto@toto.com")))
557 (add-after 'configure-git 'disable-tramp-test
558 (lambda _
559 ;; There is an issue causing TRAMP to fail in the build
560 ;; environment. Setting the tramp-remote-shell parameter of
561 ;; the sudo-method to the file name of the shell didn't help.
562 (chdir "..")
563 (substitute* "t/magit-tests.el"
564 (("^\\(ert-deftest magit-toplevel:tramp.*" all)
565 (string-append all " (skip-unless nil)")))
566 #t))
567 (add-before 'install 'enter-lisp-directory
568 (lambda _
569 (chdir "lisp")
570 #t)))))
571 (native-inputs
572 `(("texinfo" ,texinfo)))
573 (inputs
574 `(("git" ,git)
575 ("perl" ,perl)))
576 (propagated-inputs
577 `(("emacs-dash" ,emacs-dash)
578 ("emacs-libgit" ,emacs-libgit)
579 ("emacs-transient" ,emacs-transient)
580 ("emacs-with-editor" ,emacs-with-editor)))
581 (home-page "https://magit.vc/")
582 (synopsis "Emacs interface for the Git version control system")
583 (description
584 "With Magit, you can inspect and modify your Git repositories
585 with Emacs. You can review and commit the changes you have made to
586 the tracked files, for example, and you can browse the history of past
587 changes. There is support for cherry picking, reverting, merging,
588 rebasing, and other common Git operations.")
589 (license license:gpl3+))))
590
591 (define-public emacs-magit-svn
592 (let ((commit "9e33ceee32f665db59909e1c00a667ccdd04178f"))
593 (package
594 (name "emacs-magit-svn")
595 (version (git-version "2.2.1" "2" commit))
596 (source (origin
597 (method git-fetch)
598 (uri (git-reference
599 (url "https://github.com/magit/magit-svn")
600 (commit commit)))
601 (file-name (git-file-name name version))
602 (sha256
603 (base32
604 "1mlqz8dh6jy5rv72lgkxv253dgh73fmbaidskicypapvbl3lr6xy"))))
605 (build-system emacs-build-system)
606 (propagated-inputs `(("dash" ,emacs-dash)
607 ("with-editor" ,emacs-with-editor)
608 ("magit" ,emacs-magit)
609 ("transient" ,emacs-transient)))
610 (home-page "https://github.com/magit/magit-svn")
611 (synopsis "Git-SVN extension to Magit")
612 (description
613 "This package is an extension to Magit, the Git Emacs mode, providing
614 support for Git-SVN.")
615 (license license:gpl3+))))
616
617 (define-public emacs-magit-popup
618 (package
619 (name "emacs-magit-popup")
620 (version "2.13.3")
621 (source
622 (origin
623 (method git-fetch)
624 (uri (git-reference
625 (url "https://github.com/magit/magit-popup")
626 (commit (string-append "v" version))))
627 (file-name (git-file-name name version))
628 (sha256
629 (base32 "0znp6gx6vpcsybg774ab06mdgxb7sfk3gki1yp2qhkanav13i6q1"))))
630 (build-system emacs-build-system)
631 (arguments
632 `(#:phases
633 (modify-phases %standard-phases
634 (add-before 'install 'make-info
635 (lambda _
636 (invoke "make" "info"))))))
637 (native-inputs
638 `(("texinfo" ,texinfo)))
639 (propagated-inputs
640 `(("emacs-dash" ,emacs-dash)))
641 (home-page "https://github.com/magit/magit-popup")
642 (synopsis "Define prefix-infix-suffix command combos")
643 (description
644 "This library implements a generic interface for toggling switches and
645 setting options and then invoking an Emacs command which does something with
646 these arguments. The prototypical use is for the command to call an external
647 process, passing on the arguments as command line arguments.")
648 (license license:gpl3+)))
649
650 (define-public emacs-magit-annex
651 (let ((commit "ef5dce6267e9118a5eca82a22bcad0b67826c23a")
652 (revision "1"))
653 (package
654 (name "emacs-magit-annex")
655 (version (git-version "1.7.1" revision commit))
656 (source (origin
657 (method git-fetch)
658 (uri (git-reference
659 (url "https://github.com/magit/magit-annex")
660 (commit commit)))
661 (file-name (git-file-name name version))
662 (sha256
663 (base32
664 "0vzkydgl889cq173zjl89g2vrddb9abc4a8gljiz3b4a7n5b1nrd"))))
665 (build-system emacs-build-system)
666 (propagated-inputs
667 `(("magit" ,emacs-magit)
668 ("transient" ,emacs-transient)))
669 (home-page "https://github.com/magit/magit-annex/")
670 (synopsis "Git-annex support for Magit")
671 (description
672 "Magit-annex adds a few git-annex operations to the Magit interface.")
673 (license license:gpl3+))))
674
675 (define-public emacs-minions
676 (package
677 (name "emacs-minions")
678 (version "0.3.4")
679 (source
680 (origin
681 (method git-fetch)
682 (uri (git-reference
683 (url "https://github.com/tarsius/minions")
684 (commit (string-append "v" version))))
685 (file-name (git-file-name name version))
686 (sha256
687 (base32 "1rvsfg9aabvyzzxd38kvjwkm9675zcmrfhzj5x6wj0ba3n0k34q5"))))
688 (build-system emacs-build-system)
689 (propagated-inputs
690 `(("emacs-dash" ,emacs-dash)))
691 (home-page "https://github.com/tarsius/minions")
692 (synopsis "Minor-mode menu for the mode line")
693 (description
694 "This package implements a menu that lists enabled minor-modes, as well
695 as commonly but not currently enabled minor-modes. It can be used to toggle
696 local and global minor-modes, to access mode-specific menus, and to get help
697 about modes.
698
699 This menu is intended as a replacement for the incomplete yet wide list of
700 enabled minor-modes that is displayed in the mode line by default. To use the
701 menu like this, enable Minions mode.
702
703 Alternatively the menu can be bound globally, for example:
704 @code{(global-set-key [S-down-mouse-3] 'minions-minor-modes-menu)}.")
705 (license license:gpl3+)))
706
707 (define-public emacs-moody
708 (package
709 (name "emacs-moody")
710 (version "0.5.3")
711 (source (origin
712 (method git-fetch)
713 (uri (git-reference
714 (url "https://github.com/tarsius/moody")
715 (commit (string-append "v" version))))
716 (file-name (git-file-name name version))
717 (sha256
718 (base32
719 "1xyw4l42053595r76lj8safsx6pj25as0107wd96by3h7dg9m586"))))
720 (build-system emacs-build-system)
721 (home-page "https://github.com/tarsius/moody")
722 (synopsis "Tabs and ribbons for Emacs mode-line")
723 (description
724 "@code{emacs-moody} provides utilities for displaying elements of
725 the mode line as tabs and ribbons. It also provides replacements for a few
726 built-in elements. The biggest difference to similar packages is that
727 this one is much simpler and much more consistent. When using this package,
728 then only the color of the mode line changes when a window becomes in-/active.")
729 (license license:gpl3+)))
730
731 (define-public emacs-treepy
732 (package
733 (name "emacs-treepy")
734 (version "0.1.2")
735 (source (origin
736 (method git-fetch)
737 (uri (git-reference
738 (url "https://github.com/volrath/treepy.el")
739 (commit version)))
740 (file-name (git-file-name name version))
741 (sha256
742 (base32
743 "0pmrpij80m5kgcr8bw36r8wllgppasw08vn3ghwvis9srpaq75cn"))))
744 (build-system emacs-build-system)
745 (home-page
746 "https://github.com/volrath/treepy.el")
747 (synopsis "Tree traversal tools")
748 (description
749 "Generic tools for recursive and iterative tree traversal based on
750 clojure.walk and clojure.zip respectively.")
751 (license license:gpl3+)))
752
753 (define-public emacs-typing
754 (let ((commit "a2ef25dde2d8eb91bd9c0c6164cb5208208647fa")
755 (revision "0"))
756 (package
757 (name "emacs-typing")
758 (version (git-version "1.1.4" revision commit))
759 (source
760 (origin
761 (method git-fetch)
762 (uri (git-reference
763 (url "https://github.com/kensanata/typing")
764 (commit commit)))
765 (file-name (git-file-name name version))
766 (sha256
767 (base32
768 "1dbh0srbf54lgd60ia79y9cfnq3kxlgw01qzdjs9mk3nfazzpgnv"))))
769 (build-system emacs-build-system)
770 (home-page "https://github.com/kensanata/typing/")
771 (synopsis "Emacs game where you have to type fast")
772 (description "The Typing of Emacs is a game for Emacs that
773 forces you to type words correctly as fast as possible, otherwise
774 you will die. The game builds the list of words from the active buffer.")
775 (license license:gpl2+))))
776
777 (define-public emacs-graphql
778 (package
779 (name "emacs-graphql")
780 (version "0.1.1")
781 (source (origin
782 (modules '((guix build utils)))
783 ;; Remove examples file with references to external packages as
784 ;; they do not exist at compilation time.
785 (snippet
786 '(begin (delete-file "examples.el")
787 #t))
788 (method git-fetch)
789 (uri (git-reference
790 (url "https://github.com/vermiculus/graphql.el")
791 (commit version)))
792 (file-name (git-file-name name version))
793 (sha256
794 (base32
795 "0sp0skc1rnhi39szfbq1i99pdgd3bhn4c15cff05iqhjy2d4hniw"))))
796 (build-system emacs-build-system)
797 (home-page
798 "https://github.com/vermiculus/graphql.el")
799 (synopsis "GraphQL utilities")
800 (description
801 "GraphQL.el provides a generally-applicable domain-specific language for
802 creating and executing GraphQL queries against your favorite web services.
803 GraphQL is a data query language and runtime designed and used to request and
804 deliver data to mobile and web apps.")
805 (license license:gpl3+)))
806
807 (define-public emacs-graphql-mode
808 ;; No tagged commit.
809 (let ((commit "9bed568ec86242dbe30bdbab324aa0eb2cd9bf08")
810 (revision "1"))
811 (package
812 (name "emacs-graphql-mode")
813 (version commit)
814 (source
815 (origin
816 (method git-fetch)
817 (uri (git-reference
818 (url "https://github.com/davazp/graphql-mode")
819 (commit commit)))
820 (file-name (git-file-name name version))
821 (sha256
822 (base32 "0x9y7qq6y0zg8ncamzvk68ccmdyzh7xsj0xs0ykyl20d5wdpplj4"))))
823 (build-system emacs-build-system)
824 (home-page "https://github.com/davazp/graphql-mode")
825 (synopsis "Emacs mode to edit GraphQL schema and queries")
826 (description
827 "This package implements a major mode to edit GraphQL schemas and
828 query. The basic functionality includes syntax highlight and indentation.
829 Additionally, it is able to send GraphQL queries to an end-point URL.
830
831 Files with the @file{.graphql} and @file{.gql} extensions are
832 automatically opened with this mode.")
833 (license license:gpl3+))))
834
835 (define-public emacs-ghub
836 (package
837 (name "emacs-ghub")
838 (version "3.4.1")
839 (source
840 (origin
841 (method git-fetch)
842 (uri (git-reference
843 (url "https://github.com/magit/ghub")
844 (commit (string-append "v" version))))
845 (file-name (git-file-name name version))
846 (sha256
847 (base32 "07iy4203ppvzkh67sb0v968hnypnvy4dpfy0qpqrp8zmc455dxq5"))))
848 (build-system emacs-build-system)
849 (arguments
850 `(#:phases
851 (modify-phases %standard-phases
852 (add-before 'install 'make-info
853 (lambda _
854 (invoke "make" "info"))))))
855 (native-inputs
856 `(("texinfo" ,texinfo)))
857 (propagated-inputs
858 `(("dash" ,emacs-dash)
859 ("emacs-let-alist" ,emacs-let-alist)
860 ("treepy" ,emacs-treepy)))
861 (home-page "https://github.com/magit/ghub")
862 (synopsis "Emacs client libraries for the APIs of various Git forges")
863 (description
864 "Ghub provides basic support for using the APIs of various Git forges from
865 Emacs packages. It supports the REST APIs of Github, Github GraphQL, Gitlab,
866 Gitea, Gogs and Bitbucket. It abstracts access to API resources using only a
867 handful of functions that are not resource-specific.")
868 (license license:gpl3+)))
869
870 (define-public emacs-typit
871 ;; Last release is from 2017.
872 (let ((commit "231cb7df43253b84323520b8ed70f128d37003af")
873 (revision "1"))
874 (package
875 (name "emacs-typit")
876 (version (git-version "0.2.1" revision commit))
877 (source
878 (origin
879 (method git-fetch)
880 (uri (git-reference
881 (url "https://github.com/mrkkrp/typit")
882 (commit commit)))
883 (file-name (git-file-name name version))
884 (sha256
885 (base32 "1savrxs7xl92ifyxpxkkzv2didr7lb405h0dwz1bs1wldr5fb53f"))))
886 (build-system emacs-build-system)
887 (arguments
888 `(#:phases
889 (modify-phases %standard-phases
890 (add-after 'install 'install-dictionaries
891 (lambda* (#:key outputs #:allow-other-keys)
892 (let* ((out (assoc-ref outputs "out"))
893 (site-lisp
894 (string-append
895 out "/share/emacs/site-lisp/dict")))
896 (mkdir-p site-lisp)
897 (copy-recursively "dict" site-lisp)
898 #t))))))
899 (propagated-inputs
900 `(("emacs-f" ,emacs-f)
901 ("emacs-mmt" ,emacs-mmt)))
902 (home-page "https://github.com/mrkkrp/typit")
903 (synopsis "Typing game for Emacs with two difficulties")
904 (description "Emacs Typit is a typing game for Emacs. Words that are
905 picked randomly from the most frequent words in language you're practicing,
906 until time is up.")
907 (license license:gpl3+))))
908
909 (define-public emacs-scribble-mode
910 (let ((commit "217945d54de5e4bb207033f2116baa28f5c5ecf2")
911 (revision "2"))
912 (package
913 (name "emacs-scribble-mode")
914 (version (git-version "0.1" revision commit))
915 (source (origin
916 (method git-fetch)
917 (uri (git-reference
918 (url "https://github.com/emacs-pe/scribble-mode")
919 (commit commit)))
920 (file-name (git-file-name name version))
921 (sha256
922 (base32
923 "1s5ccw1a5ack01wd94ywfcrar9j98agchwdh30q7iyxr0d2z4sii"))))
924 (build-system emacs-build-system)
925 (home-page "https://github.com/emacs-pe/scribble-mode")
926 (synopsis "Emacs mode for editing the Scribble documentation syntax.")
927 (description
928 "This package provides basic syntax highlighting and editing support
929 for editing Racket's Scribble documentation syntax in Emacs.")
930 (license license:gpl3+))))
931
932 (define-public emacs-shroud
933 (package
934 (name "emacs-shroud")
935 (version "1.105")
936 (source
937 (origin
938 (method git-fetch)
939 (uri (git-reference
940 (url "https://git.savannah.gnu.org/git/emacs-shroud.git")
941 (commit version)))
942 (file-name (git-file-name name version))
943 (sha256
944 (base32 "0q2pb3w8s833fjhkzicciw2php4lsnismad1dnwgp2lcway757ra"))))
945 (build-system gnu-build-system)
946 (native-inputs
947 `(("autoconf" ,autoconf)
948 ("automake" ,automake)
949 ("texinfo" ,texinfo)
950 ("perl" ,perl)
951 ("emacs-minimal" ,emacs-minimal)))
952 (propagated-inputs
953 `(("emacs-bui" ,emacs-bui)
954 ("emacs-dash" ,emacs-dash)
955 ("emacs-f" ,emacs-f)
956 ("emacs-s" ,emacs-s)
957 ("gnupg" ,gnupg)
958 ("shroud" ,shroud)))
959 (home-page "https://www.nongnu.org/emacs-shroud")
960 (synopsis "Emacs interface to the Shroud password manager")
961 (description
962 "This package provides an Emacs interface to the Shroud password manager,
963 using the Buffers User Interface library. You can view, copy, and edit secrets
964 from within Emacs.")
965 (license license:gpl3+)))
966
967 (define-public emacs-solidity
968 ;; This commit fixes a spacing issue and adds new keywords.
969 (let ((commit "d166a86b83907e0cfd64c191e9dfce4b44a9843e")
970 (revision "0"))
971 (package
972 (name "emacs-solidity")
973 (version (git-version "0.1.10" revision commit))
974 (source
975 (origin
976 (method git-fetch)
977 (uri (git-reference
978 (url "https://github.com/ethereum/emacs-solidity")
979 (commit commit)))
980 (file-name (git-file-name name version))
981 (sha256
982 (base32 "19hgvsrqch2vp49ag6m76bi5qxd20v95z0ib838rib9as15b17wq"))))
983 (build-system emacs-build-system)
984 (propagated-inputs
985 `(("emacs-company" ,emacs-company)
986 ("emacs-flycheck" ,emacs-flycheck)))
987 (home-page "https://github.com/ethereum/emacs-solidity")
988 (synopsis "Major mode for writing Solidity code")
989 (description
990 "This is a simple language mode for the Solidity language. It is
991 a constant work in progress as the language itself also progresses.")
992 (license license:gpl3+))))
993
994 (define-public emacs-unpackaged-el
995 (let ((commit "746801a677ada6cd6fa076e423aa0953779f3fad")
996 (revision "3"))
997 (package
998 (name "emacs-unpackaged-el")
999 (version (git-version "0" revision commit))
1000 (source
1001 (origin
1002 (method git-fetch)
1003 (uri (git-reference
1004 (url "https://github.com/alphapapa/unpackaged.el")
1005 (commit commit)))
1006 (file-name (git-file-name name version))
1007 (sha256
1008 (base32
1009 "0jvb2ci0h0lj368qhbff3pzkxj3nhlligpbkjzi525k9rkjgm7l8"))))
1010 (build-system emacs-build-system)
1011 (propagated-inputs
1012 `(("emacs-dash" ,emacs-dash)
1013 ("emacs-org" ,emacs-org)
1014 ("emacs-s" ,emacs-s)
1015 ("emacs-hydra" ,emacs-hydra)
1016 ("emacs-use-package" ,emacs-use-package)))
1017 (arguments
1018 `(#:phases
1019 (modify-phases %standard-phases
1020 (add-after 'unpack 'require-hydra
1021 (lambda _
1022 (substitute* "unpackaged.el"
1023 ((";;; Code:") ";;; Code:\n(require 'hydra)"))
1024 #t)))))
1025 (home-page "https://github.com/alphapapa/unpackaged.el")
1026 (synopsis "Useful snippets of Emacs Lisp code")
1027 (description "This package provides Emacs Lisp utilities for a variety
1028 of tasks, including version control, task management, and regex-based
1029 replacement.")
1030 (license license:gpl3+))))
1031
1032 (define-public emacs-haskell-mode
1033 (package
1034 (name "emacs-haskell-mode")
1035 (version "17.2")
1036 (source
1037 (origin
1038 (method git-fetch)
1039 (uri (git-reference
1040 (url "https://github.com/haskell/haskell-mode")
1041 (commit version)))
1042 (file-name (git-file-name name version))
1043 (sha256
1044 (base32 "0zxbacqzr84krmhqpvzndnvlcjh1gs1x20ys0dykgd7chyhci5j5"))))
1045 (propagated-inputs
1046 `(("emacs-dash" ,emacs-dash)))
1047 (native-inputs
1048 `(("emacs" ,emacs-minimal)
1049 ("emacs-el-search" ,emacs-el-search)
1050 ("emacs-stream" ,emacs-stream)
1051 ("texinfo" ,texinfo)))
1052 (build-system gnu-build-system)
1053 (arguments
1054 `(#:make-flags (list (string-append "EMACS="
1055 (assoc-ref %build-inputs "emacs")
1056 "/bin/emacs"))
1057 #:modules ((ice-9 match)
1058 (srfi srfi-26)
1059 ,@%gnu-build-system-modules)
1060 #:phases
1061 (modify-phases %standard-phases
1062 (delete 'configure)
1063 (add-before 'build 'pre-build
1064 (lambda* (#:key inputs #:allow-other-keys)
1065 (define (el-dir store-dir)
1066 (match (find-files store-dir "\\.el$")
1067 ((f1 f2 ...) (dirname f1))
1068 (_ "")))
1069
1070 (let ((sh (string-append (assoc-ref inputs "bash") "/bin/sh")))
1071 (define emacs-prefix? (cut string-prefix? "emacs-" <>))
1072
1073 (setenv "SHELL" "sh")
1074 (setenv "EMACSLOADPATH"
1075 (string-concatenate
1076 (map (match-lambda
1077 (((? emacs-prefix? name) . dir)
1078 (string-append (el-dir dir) ":"))
1079 (_ ""))
1080 inputs)))
1081 (substitute* (find-files "." "\\.el") (("/bin/sh") sh))
1082 #t)))
1083 (add-before 'check 'delete-failing-tests
1084 ;; XXX: these tests require GHC executable, which would be a big
1085 ;; native input.
1086 (lambda _
1087 (with-directory-excursion "tests"
1088 ;; File `haskell-indent-tests.el' fails with
1089 ;; `haskell-indent-put-region-in-literate-2'
1090 ;; on Emacs 27.1+
1091 ;; XXX: https://github.com/haskell/haskell-mode/issues/1714
1092 (for-each delete-file
1093 '("haskell-indent-tests.el"
1094 "haskell-customize-tests.el"
1095 "inferior-haskell-tests.el")))
1096 #t))
1097 (replace 'install
1098 (lambda* (#:key outputs #:allow-other-keys)
1099 (let* ((out (assoc-ref outputs "out"))
1100 (el-dir (string-append out "/share/emacs/site-lisp"))
1101 (doc (string-append
1102 out "/share/doc/haskell-mode-" ,version))
1103 (info (string-append out "/share/info")))
1104 (define (copy-to-dir dir files)
1105 (for-each (lambda (f)
1106 (install-file f dir))
1107 files))
1108
1109 (with-directory-excursion "doc"
1110 (invoke "makeinfo" "haskell-mode.texi")
1111 (install-file "haskell-mode.info" info))
1112 (copy-to-dir doc '("CONTRIBUTING.md" "NEWS" "README.md"))
1113 (copy-to-dir el-dir (find-files "." "\\.elc?"))
1114 #t))))))
1115 (home-page "https://github.com/haskell/haskell-mode")
1116 (synopsis "Haskell mode for Emacs")
1117 (description
1118 "This is an Emacs mode for editing, debugging and developing Haskell
1119 programs.")
1120 (license license:gpl3+)))
1121
1122 (define-public emacs-dante
1123 (let ((commit "38b589417294c7ea44bf65b73b8046d950f9531b")
1124 (revision "1"))
1125 (package
1126 (name "emacs-dante")
1127 (version (git-version "1.6" revision commit))
1128 (source (origin
1129 (method git-fetch)
1130 (uri (git-reference
1131 (url "https://github.com/jyp/dante")
1132 (commit commit)))
1133 (sha256
1134 (base32
1135 "1mnmn635552zlwd4zr68jbvdjipl6gi4mi6wiyck28fsmq8kw96h"))
1136 (file-name (git-file-name name version))))
1137 (build-system emacs-build-system)
1138 (propagated-inputs
1139 `(("emacs-dash" ,emacs-dash)
1140 ("emacs-f" ,emacs-f)
1141 ("emacs-flycheck" ,emacs-flycheck)
1142 ("emacs-haskell-mode" ,emacs-haskell-mode)
1143 ("emacs-s" ,emacs-s)
1144 ("emacs-company" ,emacs-company)
1145 ("emacs-lcr" ,emacs-lcr)))
1146 (home-page "https://github.com/jyp/dante")
1147 (synopsis "Minor mode for interactive Haskell")
1148 (description
1149 "This package provides a minor mode for Haskell development that
1150 supports type hints, definition-jumping, completion, and more.")
1151 (license license:gpl3+))))
1152
1153 (define-public emacs-flycheck
1154 ;; Last release version was more than 500 commits ago.
1155 (let ((commit "9bcf6b665e15db94870bebc81dc8248c3eec20d3")
1156 (revision "2"))
1157 (package
1158 (name "emacs-flycheck")
1159 (version (git-version "31" revision commit))
1160 (source
1161 (origin
1162 (method git-fetch)
1163 (uri (git-reference
1164 (url "https://github.com/flycheck/flycheck/")
1165 (commit commit)))
1166 (sha256
1167 (base32 "015ixss5bjr7gvhj8mkw5x2x1hy6fvvsjarr2xpv0gskkkngs7pg"))
1168 (file-name (git-file-name name version))))
1169 (build-system emacs-build-system)
1170 (propagated-inputs
1171 `(("emacs-dash" ,emacs-dash)))
1172 (native-inputs
1173 `(("emacs-shut-up" ,emacs-shut-up)))
1174 (arguments
1175 `(#:phases
1176 (modify-phases %standard-phases
1177 (add-after 'unpack 'change-flycheck-version
1178 (lambda _
1179 (substitute* "flycheck.el"
1180 (("\\(pkg-info-version-info 'flycheck\\)")
1181 (string-append "\"" ,version "\"")))
1182 #t)))
1183 ;; TODO: many failing tests
1184 #:tests? #f
1185 #:test-command '("emacs" "-Q" "--batch" "-L" "."
1186 "--load" "test/flycheck-test"
1187 "--load" "test/run.el"
1188 "-f" "flycheck-run-tests-main")))
1189 (home-page "https://www.flycheck.org")
1190 (synopsis "On-the-fly syntax checking")
1191 (description
1192 "This package provides on-the-fly syntax checking for GNU Emacs. It is a
1193 replacement for the older Flymake extension which is part of GNU Emacs, with
1194 many improvements and additional features.
1195
1196 Flycheck provides fully-automatic, fail-safe, on-the-fly background syntax
1197 checking for over 30 programming and markup languages with more than 70
1198 different tools. It highlights errors and warnings inline in the buffer, and
1199 provides an optional IDE-like error list.")
1200 (license license:gpl3+)))) ;+GFDLv1.3+ for the manual
1201
1202 (define-public emacs-flymake-shellcheck
1203 ;; No tag, version grabbed from source .el file.
1204 (let ((commit "78956f0e5bb9c4d35989657a55929e8e3f5691e6")
1205 (revision "0"))
1206 (package
1207 (name "emacs-flymake-shellcheck")
1208 (version (git-version "0.1" revision commit))
1209 (source
1210 (origin
1211 (method git-fetch)
1212 (uri (git-reference
1213 (url "https://github.com/federicotdn/flymake-shellcheck")
1214 (commit commit)))
1215 (file-name (git-file-name name version))
1216 (sha256
1217 (base32 "068mx5p4drwgppy4ry1rfq6qi79w6d82b4rnpl2jm37grsg94lix"))))
1218 (build-system emacs-build-system)
1219 (home-page "https://github.com/federicotdn/flymake-shellcheck")
1220 (synopsis "Flymake backend for Bash/Sh powered by ShellCheck")
1221 (description
1222 "This package provides a backend for Flymake to use the
1223 tool ShellCheck for static analyzing @command{bash} and @command{sh}
1224 scripts.")
1225 (license license:gpl3+))))
1226
1227 (define-public emacs-a
1228 (package
1229 (name "emacs-a")
1230 (version "0.1.1")
1231 (source (origin
1232 (method git-fetch)
1233 (uri (git-reference
1234 (url "https://github.com/plexus/a.el")
1235 (commit (string-append "v" version))))
1236 (file-name (git-file-name name version))
1237 (sha256
1238 (base32
1239 "00v9w6qg3bkwdhypq0ssf0phdh0f4bcq59c20lngd6vhk0204dqi"))))
1240 (build-system emacs-build-system)
1241 (home-page "https://github.com/plexus/a.el/")
1242 (synopsis
1243 "Emacs library for dealing with association lists and hash tables")
1244 (description "@code{emacs-a} provides Emacs Lisp functions for dealing
1245 with associative structures in a uniform and functional way. These functions
1246 can take association lists, hash tables, and in some cases vectors (where the
1247 index is considered the key).")
1248 (license license:gpl3+)))
1249
1250 (define-public emacs-ace-jump-mode
1251 (package
1252 (name "emacs-ace-jump-mode")
1253 (version "2.0")
1254 (home-page "https://github.com/winterTTr/ace-jump-mode")
1255 (source (origin
1256 (method git-fetch)
1257 (uri (git-reference
1258 (url home-page)
1259 (commit (string-append "v" version))))
1260 (sha256
1261 (base32
1262 "1bwvzh056ls2v7y26a0s4j5mj582dmds04lx4x6iqihs04ss74bb"))
1263 (file-name (git-file-name name version))))
1264 (build-system emacs-build-system)
1265 (synopsis "Cursor location minor mode for fast navigation")
1266 (description "Ace-jump-mode is a fast/direct cursor location minor
1267 mode. It creates an N-Branch search tree internally and marks all
1268 the possible position with predefined keys in within the whole Emacs
1269 view. This allows you to move to the character, word, or line almost
1270 directly.")
1271 (license license:gpl3+)))
1272
1273 (define-public emacs-anaphora
1274 (package
1275 (name "emacs-anaphora")
1276 (version "1.0.4")
1277 (source
1278 (origin
1279 (method git-fetch)
1280 (uri (git-reference
1281 (url "https://github.com/rolandwalker/anaphora")
1282 (commit (string-append "v" version))))
1283 (file-name (git-file-name name version))
1284 (sha256
1285 (base32
1286 "11fgiy029sqz7nvdm7dcal95lacryz9zql0x5h05z48nrrcl4bib"))))
1287 (build-system emacs-build-system)
1288 (home-page "https://github.com/rolandwalker/anaphora/")
1289 (synopsis "Anaphoric expressions for Emacs Lisp")
1290 (description "@code{emacs-anaphora} implements anaphoric expressions for
1291 Emacs Lisp.
1292
1293 Anaphoric expressions implicitly create one or more temporary variables which
1294 can be referred to during the expression. This technique can improve clarity
1295 in certain cases. It also enables recursion for anonymous functions.")
1296 (license license:public-domain)))
1297
1298 (define-public emacs-xr
1299 (package
1300 (name "emacs-xr")
1301 (version "1.19")
1302 (source
1303 (origin
1304 (method url-fetch)
1305 (uri (string-append "https://elpa.gnu.org/packages/xr-" version ".tar"))
1306 (sha256
1307 (base32 "1aa3iqh0r635jw8k89zh8y4am9d4hfrqpk9mrdh2b51invjn8llq"))))
1308 (build-system emacs-build-system)
1309 (home-page "https://elpa.gnu.org/packages/xr.html")
1310 (synopsis "Convert string regexp to rx notation")
1311 (description
1312 "This is an inverse companion to the @code{rx} package for translating
1313 regexps in string form to the @code{rx} notation. Its chief uses are:
1314
1315 @itemize
1316 @item Migrating existing code to @code{rx} form, for better readability and
1317 maintainability
1318 @item Understanding complex regexp strings and finding errors in them
1319 @end itemize
1320
1321 In addition to Emacs regexps, this package can also parse and troubleshoot
1322 skip set strings, which are arguments to @code{skip-chars-forward} and
1323 @code{skip-chars-backward}.")
1324 (license license:gpl3+)))
1325
1326 (define-public emacs-ample-regexps
1327 (let ((commit "153969ce547afe410b8986f01c9ed4087c9cd20b")
1328 (revision "2"))
1329 (package
1330 (name "emacs-ample-regexps")
1331 (version (git-version "0.1" revision commit))
1332 (source
1333 (origin
1334 (method git-fetch)
1335 (uri (git-reference
1336 (url "https://github.com/immerrr/ample-regexps.el")
1337 (commit commit)))
1338 (file-name (git-file-name name version))
1339 (sha256
1340 (base32
1341 "0dkp7bcd7h2ds40wyszy11nmh7c2jxrwy04ayz7pbxh53ir7s2k0"))))
1342 (build-system emacs-build-system)
1343 (native-inputs
1344 `(("ert-runner" ,emacs-ert-runner)))
1345 (arguments
1346 `(#:tests? #t
1347 #:test-command '("ert-runner" "-l" "ample-regexps")))
1348 (home-page "https://github.com/immerrr/ample-regexps.el")
1349 (synopsis "Compose and reuse Emacs regexps")
1350 (description
1351 "This package allows common parts of regexps to be easily picked out
1352 and reused.")
1353 (license license:gpl3+))))
1354
1355 (define-public emacs-ample-theme
1356 (let ((commit "536966adf882446165a1f756830028faa792c7a9")
1357 (revision "1"))
1358 (package
1359 (name "emacs-ample-theme")
1360 (version (git-version "0.0.0" revision commit))
1361 (source (origin
1362 (method git-fetch)
1363 (uri (git-reference
1364 (url "https://github.com/jordonbiondo/ample-theme")
1365 (commit commit)))
1366 (file-name (git-file-name name version))
1367 (sha256
1368 (base32
1369 "07bpv8dag40qjnm5000pgzpazj4whfxf93x2vprz26sg3mjfx0nf"))))
1370 (build-system emacs-build-system)
1371 (home-page "https://github.com/jordonbiondo/ample-theme")
1372 (synopsis "Theme for Emacs providing dark, light, and flat versions")
1373 (description "Ample themes is a collection of three themes sharing a
1374 similar pallet with a light, dark and flat versions with a focus on being easy
1375 on the eyes during night and day. They only support GUI and 256 colour
1376 terminals.")
1377 (license license:gpl3+))))
1378
1379 (define-public emacs-reformatter
1380 (package
1381 (name "emacs-reformatter")
1382 (version "0.6")
1383 (source
1384 (origin
1385 (method git-fetch)
1386 (uri (git-reference
1387 (url "https://github.com/purcell/reformatter.el")
1388 (commit version)))
1389 (file-name (git-file-name name version))
1390 (sha256
1391 (base32 "1dfn7c3gpavpiwd73v2pasd8wd8b62dczhg9iv1cgh8vaqlsf92x"))))
1392 (build-system emacs-build-system)
1393 (home-page "https://github.com/purcell/reformatter.el")
1394 (synopsis "Define commands which run reformatters on the current buffer")
1395 (description
1396 "This library lets elisp authors easily define an idiomatic command to
1397 reformat the current buffer using a command-line program, together with an
1398 optional minor mode which can apply this command automatically on save.")
1399 (license license:gpl3+)))
1400
1401 (define-public emacs-relint
1402 (package
1403 (name "emacs-relint")
1404 (version "1.18")
1405 (source
1406 (origin
1407 (method url-fetch)
1408 (uri (string-append "https://elpa.gnu.org/packages/"
1409 "relint-" version ".tar"))
1410 (sha256
1411 (base32 "0zfislsksrkn6qs0w26yaff5xr7xqy2x235dcdpz8s2v35b6dhci"))))
1412 (build-system emacs-build-system)
1413 (propagated-inputs `(("emacs-xr" ,emacs-xr)))
1414 (home-page "https://github.com/mattiase/relint")
1415 (synopsis "Elisp regexp mistake finder")
1416 (description
1417 "Relint (regular expression lint) scans Elisp files for mistakes in
1418 regexps, including deprecated syntax and bad practice. It also checks the
1419 regexp-like arguments to @code{skip-chars-forward} and
1420 @code{skip-chars-backward}.")
1421 (license license:gpl3+)))
1422
1423 (define-public emacs-bug-hunter
1424 (let ((commit "b88d981afa9154b236c5a3a83b50d5889d46c6a7")
1425 (revision "1"))
1426 (package
1427 (name "emacs-bug-hunter")
1428 (version (git-version "1.3.1" revision commit))
1429 (source
1430 (origin
1431 (method git-fetch)
1432 (uri (git-reference
1433 (url "https://github.com/Malabarba/elisp-bug-hunter")
1434 (commit commit)))
1435 (file-name (git-file-name name commit))
1436 (sha256
1437 (base32
1438 "134fj493sdn93pyyac8rpz1fzahzmayvphsrmqp3wvgysmfqm38l"))))
1439 (build-system emacs-build-system)
1440 (home-page "https://github.com/Malabarba/elisp-bug-hunter")
1441 (synopsis "Hunt down errors by bisecting elisp files")
1442 (description
1443 "The Bug Hunter is an Emacs library that finds the source of an error
1444 or unexpected behavior inside an elisp configuration file (typically
1445 @file{init.el} or @file{.emacs}).")
1446 (license license:gpl3+))))
1447
1448 \f
1449 ;;;
1450 ;;; Web browsing.
1451 ;;;
1452
1453 (define-public emacs-w3m
1454 ;; Emacs-w3m follows a "rolling release" model.
1455 (package
1456 (name "emacs-w3m")
1457 (version "2018-11-11")
1458 (source (origin
1459 (method cvs-fetch)
1460 (uri (cvs-reference
1461 (root-directory
1462 ":pserver:anonymous@cvs.namazu.org:/storage/cvsroot")
1463 (module "emacs-w3m")
1464 (revision version)))
1465 (file-name (string-append name "-" version "-checkout"))
1466 (sha256
1467 (base32
1468 "0nvahdbjs12zg7zsk4gql02mvnv56cf1rwj2f5p42lwp3xvswiwp"))))
1469 (build-system gnu-build-system)
1470 (native-inputs `(("autoconf" ,autoconf)
1471 ("texinfo" ,texinfo)
1472 ("emacs" ,emacs-minimal)))
1473 (inputs `(("w3m" ,w3m)
1474 ("imagemagick" ,imagemagick)))
1475 (arguments
1476 `(#:modules ((guix build gnu-build-system)
1477 (guix build utils)
1478 (guix build emacs-utils))
1479 #:imported-modules (,@%gnu-build-system-modules
1480 (guix build emacs-utils))
1481 #:configure-flags
1482 (let ((out (assoc-ref %outputs "out")))
1483 (list (string-append "--with-lispdir="
1484 out "/share/emacs/site-lisp")
1485 (string-append "--with-icondir="
1486 out "/share/images/emacs-w3m")
1487 ;; Leave .el files uncompressed, otherwise GC can't
1488 ;; identify run-time dependencies. See
1489 ;; <http://lists.gnu.org/archive/html/guix-devel/2015-12/msg00208.html>
1490 "--without-compress-install"))
1491 #:tests? #f ; no check target
1492 #:phases
1493 (modify-phases %standard-phases
1494 (add-after 'unpack 'autoconf
1495 (lambda _
1496 (invoke "autoconf")))
1497 (add-before 'configure 'support-emacs!
1498 (lambda _
1499 ;; For some reason 'AC_PATH_EMACS' thinks that 'Emacs 26' is
1500 ;; unsupported.
1501 (substitute* "configure"
1502 (("EMACS_FLAVOR=unsupported")
1503 "EMACS_FLAVOR=emacs"))
1504 #t))
1505 (add-before 'build 'patch-exec-paths
1506 (lambda* (#:key inputs outputs #:allow-other-keys)
1507 (let ((out (assoc-ref outputs "out"))
1508 (w3m (assoc-ref inputs "w3m"))
1509 (imagemagick (assoc-ref inputs "imagemagick"))
1510 (coreutils (assoc-ref inputs "coreutils")))
1511 (make-file-writable "w3m.el")
1512 (emacs-substitute-variables "w3m.el"
1513 ("w3m-command" (string-append w3m "/bin/w3m"))
1514 ("w3m-touch-command"
1515 (string-append coreutils "/bin/touch"))
1516 ("w3m-icon-directory"
1517 (string-append out "/share/images/emacs-w3m")))
1518 (make-file-writable "w3m-image.el")
1519 (emacs-substitute-variables "w3m-image.el"
1520 ("w3m-imagick-convert-program"
1521 (string-append imagemagick "/bin/convert"))
1522 ("w3m-imagick-identify-program"
1523 (string-append imagemagick "/bin/identify")))
1524 #t)))
1525 (replace 'install
1526 (lambda* (#:key outputs #:allow-other-keys)
1527 (invoke "make" "install" "install-icons")
1528 (with-directory-excursion
1529 (string-append (assoc-ref outputs "out")
1530 "/share/emacs/site-lisp")
1531 (for-each delete-file '("ChangeLog" "ChangeLog.1"))
1532 (symlink "w3m-load.el" "w3m-autoloads.el")
1533 #t))))))
1534 (home-page "http://emacs-w3m.namazu.org/")
1535 (synopsis "Simple Web browser for Emacs based on w3m")
1536 (description
1537 "Emacs-w3m is an emacs interface for the w3m web browser.")
1538 (license license:gpl2+)))
1539
1540 (define-public emacs-wget
1541 (package
1542 (name "emacs-wget")
1543 (version "0.5.0")
1544 (source (origin
1545 (method url-fetch)
1546 (uri (string-append "mirror://debian/pool/main/w/wget-el/wget-el_"
1547 version ".orig.tar.gz"))
1548 (sha256
1549 (base32 "10byvyv9dk0ib55gfqm7bcpxmx2qbih1jd03gmihrppr2mn52nff"))))
1550 (build-system gnu-build-system)
1551 (inputs `(("wget" ,wget)))
1552 (native-inputs `(("emacs" ,emacs-minimal)))
1553 (arguments
1554 `(#:modules ((guix build gnu-build-system)
1555 (guix build utils)
1556 (guix build emacs-utils))
1557 #:imported-modules (,@%gnu-build-system-modules
1558 (guix build emacs-utils))
1559 #:tests? #f ; no check target
1560 #:phases
1561 (modify-phases %standard-phases
1562 (replace 'configure
1563 (lambda* (#:key outputs #:allow-other-keys)
1564 (substitute* "Makefile"
1565 (("/usr/local") (assoc-ref outputs "out"))
1566 (("/site-lisp/emacs-wget") "/site-lisp"))
1567 #t))
1568 (add-before 'build 'patch-exec-paths
1569 (lambda* (#:key inputs outputs #:allow-other-keys)
1570 (let ((wget (assoc-ref inputs "wget")))
1571 (emacs-substitute-variables "wget.el"
1572 ("wget-command" (string-append wget "/bin/wget"))))
1573 #t))
1574 (add-after 'install 'post-install
1575 (lambda* (#:key outputs #:allow-other-keys)
1576 (emacs-generate-autoloads
1577 "wget" (string-append (assoc-ref outputs "out")
1578 "/share/emacs/site-lisp/"))
1579 #t)))))
1580 (home-page "https://www.emacswiki.org/emacs/EmacsWget")
1581 (synopsis "Simple file downloader for Emacs based on wget")
1582 (description
1583 "Emacs-wget is an emacs interface for the wget file downloader.")
1584 (license license:gpl2+)))
1585
1586 (define-public emacs-eww-lnum
1587 (package
1588 (name "emacs-eww-lnum")
1589 (version "1.1")
1590 (source (origin
1591 (method git-fetch)
1592 (uri (git-reference
1593 (url "https://github.com/m00natic/eww-lnum")
1594 (commit version)))
1595 (file-name (git-file-name name version))
1596 (sha256
1597 (base32
1598 "0gs6bi3s2sszc6v2b26929azmn5513kvyin99n4d0ark1jdbjmv2"))))
1599 (build-system emacs-build-system)
1600 (home-page "https://github.com/m00natic/eww-lnum")
1601 (synopsis "Conkeror-like functionality for Eww")
1602 (description "This is extension to the Emacs browser Eww that adds
1603 Conkeror-like functionality. In short, currently visible links, forms,
1604 buttons are temporarily assigned numbers with which the former can be
1605 immediately activated. Also filtering can be applied so selection can be
1606 incrementally confined in Isearch manner.")
1607 (license license:gpl3+)))
1608
1609
1610 \f
1611 ;;;
1612 ;;; Multimedia.
1613 ;;;
1614
1615 (define emacs-emms-print-metadata
1616 (package
1617 (name "emacs-emms-print-metadata")
1618 (version "6.2")
1619 (source
1620 (origin
1621 (method url-fetch)
1622 (uri (string-append "https://elpa.gnu.org/packages/"
1623 "emms-" version ".tar"))
1624 (sha256
1625 (base32 "0d95sjrh9vpl41vz26y8clgji987z15lj4ky2kr9yrl0zpa8yv35"))))
1626 (build-system gnu-build-system)
1627 (arguments
1628 `(#:make-flags '("emms-print-metadata")
1629 #:tests? #f ; No tests.
1630 #:phases
1631 (modify-phases %standard-phases
1632 (delete 'configure)
1633 (replace 'install
1634 (lambda* (#:key outputs #:allow-other-keys)
1635 (let* ((out (assoc-ref outputs "out")))
1636 (install-file "src/emms-print-metadata"
1637 (string-append out "/bin"))
1638 (install-file "emms-print-metadata.1"
1639 (string-append out "/share/man/man1"))
1640 #t))))))
1641 (inputs
1642 `(("taglib" ,taglib)))
1643 (home-page "https://www.gnu.org/software/emms/")
1644 (synopsis "The Emacs Multimedia System")
1645 (description
1646 "EMMS is the Emacs Multimedia System. It is a small front-end which
1647 can control one of the supported external players. Thus, it supports
1648 whatever formats are supported by your music player. It also
1649 supports tagging and playlist management, all behind a clean and
1650 light user interface.")
1651 (license license:gpl3+)))
1652
1653 (define-public emacs-emms
1654 (package
1655 (inherit emacs-emms-print-metadata)
1656 (name "emacs-emms")
1657 (build-system emacs-build-system)
1658 (arguments
1659 `(#:phases
1660 (modify-phases %standard-phases
1661 (add-after 'unpack 'set-external-programs
1662 ;; Specify the absolute file names of the various programs
1663 ;; so that everything works out-of-the-box. (tinytag missing)
1664 (lambda* (#:key inputs outputs #:allow-other-keys)
1665 (let ((out (assoc-ref outputs "out"))
1666 (emms-print-metadata (assoc-ref inputs "emms-print-metadata"))
1667 (flac (assoc-ref inputs "flac"))
1668 (vorbis (assoc-ref inputs "vorbis-tools"))
1669 (alsa (assoc-ref inputs "alsa-utils"))
1670 (mpg321 (assoc-ref inputs "mpg321"))
1671 (mp3info (assoc-ref inputs "mp3info"))
1672 (mutagen (assoc-ref inputs "mutagen"))
1673 (exiftool (assoc-ref inputs "perl-image-exiftool"))
1674 (opus (assoc-ref inputs "opus-tools")))
1675 (emacs-substitute-variables "emms-player-mpg321-remote.el"
1676 ("emms-player-mpg321-remote-command"
1677 (string-append mpg321 "/bin/mpg321")))
1678 (substitute* "emms-player-simple.el"
1679 (("\"ogg123\"")
1680 (string-append "\"" vorbis "/bin/ogg123\"")))
1681 (substitute* "emms-player-simple.el"
1682 (("\"mpg321\"")
1683 (string-append "\"" mpg321 "/bin/mpg321\"")))
1684 (emacs-substitute-variables "emms-info-ogginfo.el"
1685 ("emms-info-ogginfo-program-name"
1686 (string-append vorbis "/bin/ogginfo")))
1687 (emacs-substitute-variables "emms-info-opusinfo.el"
1688 ("emms-info-opusinfo-program-name"
1689 (string-append opus "/bin/opusinfo")))
1690 (emacs-substitute-variables "emms-info-libtag.el"
1691 ("emms-info-libtag-program-name"
1692 (string-append emms-print-metadata "/bin/emms-print-metadata")))
1693 (emacs-substitute-variables "emms-info-mp3info.el"
1694 ("emms-info-mp3info-program-name"
1695 (string-append mp3info "/bin/mp3info")))
1696 (emacs-substitute-variables "emms-info-metaflac.el"
1697 ("emms-info-metaflac-program-name"
1698 (string-append flac "/bin/metaflac")))
1699 (emacs-substitute-variables "emms-source-file.el"
1700 ("emms-source-file-gnu-find" (which "find")))
1701 (substitute* "emms-volume-amixer.el"
1702 (("\"amixer\"")
1703 (string-append "\"" alsa "/bin/amixer\"")))
1704 (substitute* "emms-tag-editor.el"
1705 (("\"mid3v2\"")
1706 (string-append "\"" mutagen "/bin/mid3v2\"")))
1707 (substitute* "emms-info-exiftool.el"
1708 (("\"exiftool\"")
1709 (string-append "\"" exiftool "/bin/exiftool\"")))
1710 #t))))))
1711 (inputs
1712 `(("emms-print-metadata" ,emacs-emms-print-metadata)
1713 ("alsa-utils" ,alsa-utils)
1714 ("flac" ,flac) ;for metaflac
1715 ("vorbis-tools" ,vorbis-tools)
1716 ("mpg321" ,mpg321)
1717 ("mp3info" ,mp3info)
1718 ("mutagen" ,python-mutagen)
1719 ("perl-image-exiftool" ,perl-image-exiftool)
1720 ("opus-tools" ,opus-tools)))))
1721
1722 (define-public emacs-emms-mode-line-cycle
1723 (package
1724 (name "emacs-emms-mode-line-cycle")
1725 (version "0.2.5")
1726 (source
1727 (origin
1728 (method git-fetch)
1729 (uri (git-reference
1730 (url "https://github.com/momomo5717/emms-mode-line-cycle")
1731 (commit version)))
1732 (file-name (git-file-name name version))
1733 (sha256
1734 (base32
1735 "0q80f0plch6k4lhs8c9qm3mfycfbp3kn5sjrk9zxgxwnn901y9mp"))))
1736 (build-system emacs-build-system)
1737 (propagated-inputs
1738 `(("emms" ,emacs-emms)))
1739 (home-page "https://github.com/momomo5717/emms-mode-line-cycle")
1740 (synopsis "Display the EMMS mode line as a ticker")
1741 (description
1742 "This is a minor mode for updating the EMMS mode-line string cyclically
1743 within a specified width. It is useful for displaying long track titles.")
1744 (license license:gpl3+)))
1745
1746 \f
1747 ;;;
1748 ;;; Miscellaneous.
1749 ;;;
1750
1751 (define-public emacs-ace-link
1752 (package
1753 (name "emacs-ace-link")
1754 (version "0.5.0")
1755 (source
1756 (origin
1757 (method git-fetch)
1758 (uri (git-reference
1759 (url "https://github.com/abo-abo/ace-link")
1760 (commit version)))
1761 (file-name (git-file-name name version))
1762 (sha256
1763 (base32
1764 "147dz79vg4ym5wg3d544bw2khdb2j3hr73rw4qfm64wf0q2dj0vk"))))
1765 (build-system emacs-build-system)
1766 (propagated-inputs
1767 `(("emacs-avy" ,emacs-avy)))
1768 (home-page "https://github.com/abo-abo/ace-link")
1769 (synopsis "Quickly follow links in Emacs")
1770 (description
1771 "Currently, to jump to a link in a @code{Info-mode}, @code{help-mode},
1772 @code{woman-mode}, @code{org-mode}, @code{eww-mode}, @code{compilation-mode},
1773 @code{goto-address-mode} buffer, you can tab through the links to select the
1774 one you want. This is an O(N) operation, where the N is the amount of links.
1775 This package turns this into an O(1) operation. It does so by assigning a
1776 letter to each link using avy.")
1777 (license license:gpl3+)))
1778
1779 (define-public emacs-auto-sudoedit
1780 (package
1781 (name "emacs-auto-sudoedit")
1782 (version "1.0.0")
1783 (source
1784 (origin
1785 (method git-fetch)
1786 (uri (git-reference
1787 (url "https://github.com/ncaq/auto-sudoedit")
1788 (commit (string-append "v" version))))
1789 (file-name (git-file-name name version))
1790 (sha256
1791 (base32 "10p0hc95j382km8655pqld9wxg10j1f36czzppkdd6a55cxarv9f"))))
1792 (propagated-inputs
1793 `(("emacs-f" ,emacs-f)))
1794 (build-system emacs-build-system)
1795 (home-page "https://github.com/ncaq/auto-sudoedit")
1796 (synopsis "Automatically re-open read-only files with sudo")
1797 (description
1798 "This package automatically reopens a file or directory with
1799 @command{sudo} if it cannot write to it.")
1800 (license license:expat)))
1801
1802 (define-public emacs-bbdb
1803 (package
1804 (name "emacs-bbdb")
1805 (version "3.2")
1806 (source
1807 (origin
1808 (method url-fetch)
1809 (uri (string-append "https://elpa.gnu.org/packages/"
1810 "bbdb-" version ".tar"))
1811 (sha256
1812 (base32 "1p56dg0mja2b2figy7yhdx714zd5j6njzn0k07zjka3jc06izvjx"))))
1813 (build-system emacs-build-system)
1814 (arguments
1815 ;; XXX: The following file cannot be byte-compiled, because et requires
1816 ;; `vm-autoloads', from the VM package, with is neither in Emacs nor
1817 ;; packaged in Guix. So, don't bother for now.
1818 `(#:exclude '("bbdb-vm\\.el")))
1819 (home-page "http://elpa.gnu.org/packages/bbdb.html")
1820 (synopsis "Contact management utility for Emacs")
1821 (description
1822 "BBDB is the Insidious Big Brother Database for GNU Emacs. It provides
1823 an address book for email and snail mail addresses, phone numbers and the
1824 like. It can be linked with various Emacs mail clients (Message and Mail
1825 mode, Rmail, Gnus, MH-E, and VM). BBDB is fully customizable.")
1826 (license license:gpl3+)))
1827
1828 (define-public emacs-bluetooth
1829 (package
1830 (name "emacs-bluetooth")
1831 (version "0.2")
1832 (source
1833 (origin
1834 (method url-fetch)
1835 (uri (string-append "https://elpa.gnu.org/packages/"
1836 "bluetooth-" version ".el"))
1837 (sha256
1838 (base32 "1dq04p6ms0zx4awlypp4crkz7dzal4xg8ac7p8fqacz196rczssp"))))
1839 (build-system emacs-build-system)
1840 (inputs
1841 `(("bluez" ,bluez)))
1842 (propagated-inputs
1843 `(("emacs-dash" ,emacs-dash)))
1844 (home-page "https://gitlab.com/rstocker/emacs-bluetooth")
1845 (synopsis "Manage Bluetooth devices using Emacs")
1846 (description
1847 "This package implements basic Bluetooth management functionality, such
1848 as connecting and disconnecting devices, setting properties and aliases,
1849 putting the adapter in discovery mode and controlling its power supply. It
1850 also includes a pairing agent.")
1851 (license license:gpl3+)))
1852
1853 (define-public emacs-aggressive-indent
1854 (package
1855 (name "emacs-aggressive-indent")
1856 (version "1.8.3")
1857 (source (origin
1858 (method url-fetch)
1859 (uri (string-append "https://elpa.gnu.org/packages/"
1860 "aggressive-indent-" version ".el"))
1861 (sha256
1862 (base32
1863 "0jnzccl50x0wapprgwxinp99pwwa6j43q6msn4gv437j7swy8wnj"))))
1864 (build-system emacs-build-system)
1865 (home-page "https://elpa.gnu.org/packages/aggressive-indent.html")
1866 (synopsis "Minor mode to aggressively keep your code always indented")
1867 (description
1868 "@code{aggressive-indent-mode} is a minor mode that keeps your code
1869 always indented. It reindents after every change, making it more reliable
1870 than @code{electric-indent-mode}.")
1871 (license license:gpl2+)))
1872
1873 (define-public emacs-gcmh
1874 ;; No tagged release upstream.
1875 (let ((commit "84c43a4c0b41a595ac6e299fa317d2831813e580")
1876 (revision "0"))
1877 (package
1878 (name "emacs-gcmh")
1879 (version (git-version "0.1" revision commit))
1880 (source
1881 (origin
1882 (method git-fetch)
1883 (uri (git-reference
1884 (url "https://gitlab.com/koral/gcmh")
1885 (commit commit)))
1886 (sha256
1887 (base32 "1r3wiqhrzh7wvqy484nl031fd4bn4cpvkv9646s4cjgvnnnv7jz3"))
1888 (file-name (git-file-name name version))))
1889 (build-system emacs-build-system)
1890 (home-page "https://gitlab.com/koral/gcmh")
1891 (synopsis "Emacs Garbage Collector Magic Hack")
1892 (description
1893 "This package enforces a sneaky @dfn{garbage collector} (GC) strategy
1894 to minimize GC interference with the activity. During normal use a high GC
1895 threshold is set. When idling GC is immediately triggered and a low threshold
1896 is set.")
1897 (license license:gpl3+))))
1898
1899 (define-public emacs-ctrlf
1900 (package
1901 (name "emacs-ctrlf")
1902 (version "1.2")
1903 (source
1904 (origin
1905 (method git-fetch)
1906 (uri (git-reference
1907 (url "https://github.com/raxod502/ctrlf")
1908 (commit (string-append "v" version))))
1909 (file-name (git-file-name name version))
1910 (sha256
1911 (base32 "1f0k3432brc96am6az6xr1nks1vacqzixhdgwfn2xklb8if9a5xi"))))
1912 (build-system emacs-build-system)
1913 (home-page "https://github.com/raxod502/ctrlf/")
1914 (synopsis "Single-buffer text search in Emacs")
1915 (description "CTRLF (pronounced @emph{control F}) is an intuitive and
1916 efficient solution for single-buffer text search in Emacs, replacing packages
1917 such as Isearch, Swiper, and helm-swoop. It takes inspiration from the
1918 widely-adopted and battle-tested @samp{Ctrl+F} interfaces in programs such as
1919 web browsers, but follows the flow and keybindings of Isearch.")
1920 (license license:expat)))
1921
1922 (define-public emacs-dhall-mode
1923 ;; There is no proper release. The base version is extracted from the
1924 ;; "Version" keyword in the main file.
1925 (let ((revision "1")
1926 (commit "484bcf8f78f1183ef45c3b04a362bb73690c6b9b"))
1927 (package
1928 (name "emacs-dhall-mode")
1929 (version (git-version "0.1.3" revision commit))
1930 (source
1931 (origin
1932 (method git-fetch)
1933 (uri
1934 (git-reference
1935 (url "https://github.com/psibi/dhall-mode")
1936 (commit commit)))
1937 (file-name (git-file-name name version))
1938 (sha256
1939 (base32 "1wggg8jlzg9rph4jhxp6yiri178rnasbv38838i973kjgqjxrl76"))))
1940 (build-system emacs-build-system)
1941 (propagated-inputs
1942 `(("emacs-reformatter" ,emacs-reformatter)))
1943 (home-page "https://github.com/psibi/dhall-mode")
1944 (synopsis "Major mode for working with Dhall configuration language")
1945 (description
1946 "Dhall-mode provides an Emacs Major mode for working with the Dhall
1947 configuration language. It features:
1948
1949 @itemize
1950 @item Syntax highlighting
1951 @item Multiline support for String
1952 @item Basic indentation, commenting
1953 @item Automatic formatting on save using dhall-format.
1954 @item Error highlighting.
1955 @end itemize")
1956 (license license:gpl3+))))
1957
1958 (define-public emacs-link-hint
1959 ;; Last release was in 2015.
1960 (let ((commit "d74a483652486260c052941fedeadddb1ea71f88")
1961 (revision "1"))
1962 (package
1963 (name "emacs-link-hint")
1964 (version (git-version "0.1" revision commit))
1965 (source
1966 (origin
1967 (method git-fetch)
1968 (uri (git-reference
1969 (url "https://github.com/noctuid/link-hint.el")
1970 (commit commit)))
1971 (file-name (git-file-name name version))
1972 (sha256
1973 (base32
1974 "0dghxd165fbds6czy9bfwpid3i4irgp3q08n9mg57sfifi0cmij0"))))
1975 (build-system emacs-build-system)
1976 (propagated-inputs
1977 `(("emacs-avy" ,emacs-avy)))
1978 (home-page "https://github.com/noctuid/link-hint.el")
1979 (synopsis "Vimperator-style link-hinting in Emacs")
1980 (description "This package provides commands for visiting and acting on
1981 links.")
1982 (license license:gpl3+))))
1983
1984 (define-public emacs-ag
1985 (package
1986 (name "emacs-ag")
1987 (version "0.48")
1988 (source (origin
1989 (method git-fetch)
1990 (uri (git-reference
1991 (url "https://github.com/Wilfred/ag.el")
1992 (commit version)))
1993 (file-name (git-file-name name version))
1994 (sha256
1995 (base32
1996 "1p918y24vcn2pdliaymd210xp9fvhd4a1srqbv2lfiqrh59yjidx"))))
1997 (build-system emacs-build-system)
1998 (arguments
1999 `(#:phases
2000 (modify-phases %standard-phases
2001 (add-before 'install 'make-info
2002 (lambda _
2003 (with-directory-excursion "docs"
2004 (invoke "make" "info"))))
2005 (add-after 'install 'install-info
2006 (lambda* (#:key outputs #:allow-other-keys)
2007 (let* ((out (assoc-ref outputs "out"))
2008 (info (string-append out "/share/info")))
2009 (install-file "docs/_build/texinfo/agel.info" info)
2010 #t))))))
2011 (native-inputs
2012 `(("python-sphinx" ,python-sphinx)
2013 ("texinfo" ,texinfo)))
2014 (propagated-inputs
2015 `(("dash" ,emacs-dash)
2016 ("s" ,emacs-s)
2017 ;; We need to use 'ag' as the executable on remote systems.
2018 ("the-silver-searcher" ,the-silver-searcher)))
2019 (home-page "https://github.com/Wilfred/ag.el")
2020 (synopsis "Front-end for ag (the-silver-searcher) for Emacs")
2021 (description "This package provides the ability to use the silver
2022 searcher, a code searching tool, sometimes abbreviated to @code{ag}. Features
2023 include version control system awareness, use of Perl compatible regular
2024 expressions, editing the search results directly and searching file names
2025 rather than the contents of files.")
2026 (license license:gpl3+)))
2027
2028 (define-public emacs-async
2029 (package
2030 (name "emacs-async")
2031 (home-page "https://github.com/jwiegley/emacs-async")
2032 (version "1.9.4")
2033 (source (origin
2034 (method git-fetch)
2035 (uri (git-reference
2036 (url home-page)
2037 (commit (string-append "v" version))))
2038 (file-name (git-file-name name version))
2039 (sha256
2040 (base32
2041 "0hhpyxb3d531jb2f3wvzx25183f0anm8nxv6mh0p825q2gkm6ly7"))))
2042 (build-system emacs-build-system)
2043 (synopsis "Asynchronous processing in Emacs")
2044 (description
2045 "This package provides the ability to call asynchronous functions and
2046 processes. For example, it can be used to run dired commands (for copying,
2047 moving, etc.) asynchronously using @code{dired-async-mode}. Also it is used
2048 as a library for other Emacs packages.")
2049 (license license:gpl3+)))
2050
2051 (define-public emacs-auctex
2052 (package
2053 (name "emacs-auctex")
2054 (version "12.3.1")
2055 (source
2056 (origin
2057 (method url-fetch)
2058 (uri (string-append "https://elpa.gnu.org/packages/"
2059 "auctex-" version ".tar"))
2060 (sha256
2061 (base32 "0kn48mmsvp1yp8fjcl4lriymhyskv5s70wscmf596xf56s7mqas4"))))
2062 (build-system emacs-build-system)
2063 ;; We use 'emacs' because AUCTeX requires dbus at compile time
2064 ;; ('emacs-minimal' does not provide dbus).
2065 (arguments
2066 `(#:emacs ,emacs
2067 #:include '("\\.el$" "^images/" "^latex/" "\\.info$")
2068 #:exclude '("^tests/" "^latex/README")
2069 #:phases
2070 (modify-phases %standard-phases
2071 (add-after 'unpack 'configure
2072 (lambda* (#:key inputs #:allow-other-keys)
2073 (emacs-substitute-variables "preview.el"
2074 ("preview-gs-command"
2075 (string-append (assoc-ref inputs "ghostscript") "/bin/gs")))
2076 (substitute* "preview.el"
2077 (("\"dvipng ")
2078 (string-append "\"" (assoc-ref inputs "texlive")
2079 "/bin/dvipng "))
2080 (("\"dvips ")
2081 (string-append "\"" (assoc-ref inputs "texlive")
2082 "/bin/dvips "))
2083 (("\"pdf2dsc ")
2084 (string-append "\"" (assoc-ref inputs "ghostscript")
2085 "/bin/pdf2dsc ")))))
2086 (add-after 'install 'install-doc
2087 (lambda* (#:key outputs #:allow-other-keys)
2088 (let* ((out (assoc-ref outputs "out"))
2089 (etc-dir (string-append out "/share/" ,name "/"
2090 ,version "/etc")))
2091 (with-directory-excursion "doc"
2092 (setenv "HOME" (getenv "TMPDIR")) ; for mktextfm
2093 (invoke "pdftex" "tex-ref")
2094 (install-file "tex-ref.pdf"
2095 (string-append etc-dir "/refcards")))
2096 #t))))))
2097 (native-inputs
2098 `(("perl" ,perl)))
2099 (inputs
2100 `(("ghostscript" ,ghostscript)
2101 ("texlive" ,(texlive-union (list texlive-amsfonts)))))
2102 (home-page "https://www.gnu.org/software/auctex/")
2103 (synopsis "Integrated environment for TeX")
2104 (description
2105 "AUCTeX is a comprehensive customizable integrated environment for
2106 writing input files for TeX, LaTeX, ConTeXt, Texinfo, and docTeX using Emacs
2107 or XEmacs.")
2108 (license license:gpl3+)))
2109
2110 (define-public emacs-autothemer
2111 (package
2112 (name "emacs-autothemer")
2113 (version "0.2.2")
2114 (source
2115 (origin
2116 (method git-fetch)
2117 (uri (git-reference
2118 (url "https://github.com/sebastiansturm/autothemer")
2119 (commit version)))
2120 (file-name (git-file-name name version))
2121 (sha256
2122 (base32
2123 "0cd2pqh6k32sjidkcd8682y4l6mx52xw4a05f38kk8nsrk28m74k"))))
2124 (build-system emacs-build-system)
2125 (propagated-inputs
2126 `(("emacs-dash" ,emacs-dash)))
2127 (home-page "https://github.com/sebastiansturm/autothemer")
2128 (synopsis "Conveniently create Emacs themes")
2129 (description
2130 "Autothemer provides a thin layer on top of @code{deftheme} and
2131 @code{custom-theme-set-faces} that creates a new custom color theme, based on
2132 a set of simplified face specifications and a user-supplied color palette")
2133 (license license:gpl3+)))
2134
2135 (define-public emacs-howm
2136 (package
2137 (name "emacs-howm")
2138 (version "1.4.6")
2139 (source
2140 (origin
2141 (method url-fetch)
2142 (uri (string-append "https://howm.sourceforge.jp/a/"
2143 "howm-" version ".tar.gz"))
2144 (sha256
2145 (base32 "17ihch1zbk08ih7gc232jlmbw7hax8ldb9glxp8d75k4asa98qh5"))))
2146 (build-system gnu-build-system)
2147 (native-inputs
2148 `(("emacs" ,emacs-minimal)))
2149 (arguments
2150 `(#:configure-flags
2151 (list (string-append "--with-howmdir=" %output
2152 "/share/emacs/site-lisp/"))
2153 #:modules ((guix build gnu-build-system)
2154 ((guix build emacs-build-system) #:prefix emacs:)
2155 (guix build utils))
2156 #:imported-modules (,@%gnu-build-system-modules
2157 (guix build emacs-build-system)
2158 (guix build emacs-utils))
2159 #:phases
2160 (modify-phases %standard-phases
2161 (add-after 'install 'make-autoloads
2162 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
2163 (home-page "https://howm.osdn.jp/")
2164 (synopsis "Note-taking tool for Emacs")
2165 (description "Howm is a note-taking tool for Emacs. Like
2166 code@{emacs-wiki.el}, it facilitates using hyperlinks and doing full-text
2167 searches. Unlike code@{emacs-wiki.el}, it can be combined with any format.")
2168 (license license:gpl1+)))
2169
2170 (define-public emacs-bm
2171 (package
2172 (name "emacs-bm")
2173 (version "201905")
2174 (source
2175 (origin
2176 (method git-fetch)
2177 (uri (git-reference
2178 (url "https://github.com/joodland/bm")
2179 (commit version)))
2180 (file-name (git-file-name name version))
2181 (sha256
2182 (base32 "180b3rc13asrmsdh7v405d54jkrininvaj52xhp71vw91ng51dkn"))))
2183 (build-system emacs-build-system)
2184 (home-page "https://github.com/joodland/bm")
2185 (synopsis "Visual bookmarks for Emacs")
2186 (description "This package provides visible, buffer local bookmarks and
2187 the ability to jump forward and backward to the next bookmark.")
2188 (license license:gpl2+)))
2189
2190 (define-public emacs-calfw
2191 (package
2192 (name "emacs-calfw")
2193 (version "1.6")
2194 (source
2195 (origin
2196 (method git-fetch)
2197 (uri (git-reference
2198 (url "https://github.com/kiwanami/emacs-calfw")
2199 (commit (string-append "v" version))))
2200 (file-name (git-file-name name version))
2201 (sha256
2202 (base32
2203 "0r42cagvmvvib76kd15nd9ix55ys6i549vxnls4z16s864695zpa"))))
2204 (build-system emacs-build-system)
2205 (propagated-inputs
2206 `(("emacs-howm" ,emacs-howm)))
2207 (home-page "https://github.com/kiwanami/emacs-calfw/")
2208 (synopsis "Calendar framework for Emacs")
2209 (description
2210 "This package displays a calendar view with various schedule data in the
2211 Emacs buffer.")
2212 (license license:gpl3+)))
2213
2214 (define-public emacs-caps-lock
2215 (package
2216 (name "emacs-caps-lock")
2217 (version "1.0")
2218 (source
2219 (origin
2220 (method url-fetch)
2221 (uri (string-append "https://elpa.gnu.org/packages/"
2222 "caps-lock-" version ".el"))
2223 (sha256
2224 (base32 "1i4hwam81p4dr0bk8257fkiz4xmv6knkjxj7a00fa35kgx5blpva"))))
2225 (build-system emacs-build-system)
2226 (home-page "http://elpa.gnu.org/packages/caps-lock.html")
2227 (synopsis "Caps Lock as a minor mode")
2228 (description
2229 "This package provides a minor mode to emulate the behavior of a Caps
2230 Lock key.")
2231 (license license:gpl3+)))
2232
2233 (define-public emacs-chronometrist
2234 (package
2235 (name "emacs-chronometrist")
2236 (version "0.5.5")
2237 (source
2238 (origin
2239 (method git-fetch)
2240 (uri (git-reference
2241 (url "https://github.com/contrapunctus-1/chronometrist.git")
2242 (commit (string-append "v" version))))
2243 (file-name (git-file-name name version))
2244 (sha256
2245 (base32 "1zccyfpgq68ixrcl8jq2r38165ngkqrb42y2hkyab6gxhvh4wkpl"))))
2246 (build-system emacs-build-system)
2247 (arguments
2248 `(#:phases
2249 (modify-phases %standard-phases
2250 (add-after 'unpack 'chdir-elisp
2251 ;; Elisp directory is not in root of the source.
2252 (lambda _
2253 (chdir "elisp")
2254 #t))
2255 (add-after 'install 'install-doc
2256 ;; Documentation consists of several Markdown files.
2257 (lambda* (#:key outputs #:allow-other-keys)
2258 (let* ((out (assoc-ref outputs "out"))
2259 (doc (string-append out
2260 "/share/doc/emacs-chronometrist-"
2261 ,version)))
2262 (with-directory-excursion "../doc"
2263 (for-each (lambda (f) (install-file f doc))
2264 (cons* "../UNLICENSE"
2265 "../WTFPL"
2266 (find-files "." "\\.md$")))))
2267 #t)))))
2268 (propagated-inputs
2269 `(("emacs-anaphora" ,emacs-anaphora)
2270 ("emacs-dash" ,emacs-dash)
2271 ("emacs-s" ,emacs-s)
2272 ("emacs-ts" ,emacs-ts)))
2273 (home-page "https://github.com/contrapunctus-1/chronometrist")
2274 (synopsis "Time tracker for Emacs")
2275 (description "Chronometrist is a time tracker in Emacs, largely modelled
2276 after the Android application, @emph{A Time Tracker}.
2277
2278 Its features are:
2279 @itemize
2280 @item Simple and efficient to use,
2281 @item Displays useful information about your time usage,
2282 @item Support for both mouse and keyboard,
2283 @item Human errors in tracking are easily fixed by editing a plain text file,
2284 @item Hooks to let you perform arbitrary actions when starting/stopping tasks.
2285 @end itemize")
2286 ;; Software is dual-licensed.
2287 (license (list license:unlicense license:wtfpl2))))
2288
2289 (define-public emacs-direnv
2290 (package
2291 (name "emacs-direnv")
2292 (version "2.1.0")
2293 (source
2294 (origin
2295 (method git-fetch)
2296 (uri (git-reference
2297 (url "https://github.com/wbolster/emacs-direnv")
2298 (commit version)))
2299 (file-name (git-file-name name version))
2300 (sha256
2301 (base32 "0xkqn4604k2imas6azy1www56br8ls4iv9a44pxcd8h94j1fp44d"))))
2302 (build-system emacs-build-system)
2303 (propagated-inputs
2304 `(("dash" ,emacs-dash)
2305 ("with-editor" ,emacs-with-editor)))
2306 (home-page "https://github.com/wbolster/emacs-direnv")
2307 (synopsis "Direnv integration for Emacs")
2308 (description
2309 "This package provides support for invoking direnv to get the environment
2310 for the current file and updating the environment within Emacs to match.
2311
2312 Direnv can be invoked manually, and a global minor mode is included that will
2313 update the environment when the active buffer changes.
2314
2315 Using emacs-direnv means that programs started from Emacs will use the
2316 environment set through Direnv.")
2317 (license license:gpl3+)))
2318
2319 (define-public emacs-elf-mode
2320 (package
2321 (name "emacs-elf-mode")
2322 (version "0.1.0")
2323 (source
2324 (origin
2325 (method git-fetch)
2326 (uri
2327 (git-reference
2328 (url "https://github.com/abo-abo/elf-mode")
2329 (commit version)))
2330 (file-name (git-file-name name version))
2331 (sha256
2332 (base32 "0cbvjbk2893ag1iy8ggixpirfiyhssm7fii96hb9jqdz874cdl0k"))))
2333 (build-system emacs-build-system)
2334 (home-page "https://github.com/abo-abo/elf-mode")
2335 (synopsis "Show symbol list when opening a binary file in Emacs")
2336 (description "This Emacs package provides a command showing the symbols
2337 that the binary uses instead of the actual binary contents.")
2338 (license license:gpl3+)))
2339
2340 (define-public emacs-form-feed
2341 (package
2342 (name "emacs-form-feed")
2343 (version "0.2.2")
2344 (source
2345 (origin
2346 (method git-fetch)
2347 (uri (git-reference
2348 (url "https://github.com/wasamasa/form-feed")
2349 (commit version)))
2350 (file-name (git-file-name name version))
2351 (sha256
2352 (base32 "171jna631b2iqcimfsik9c66gii8nc0zdb58m077w00rn7rcxbh2"))))
2353 (build-system emacs-build-system)
2354 (home-page "https://github.com/wasamasa/form-feed")
2355 (synopsis "Display ^L glyphs as horizontal lines")
2356 (description
2357 "This package provides a minor mode @code{form-feed-mode} to display page
2358 delimiters which usually appear as ^L glyphs on a single line as horizontal
2359 lines spanning the entire window. The minor mode is suitable for inclusion
2360 into mode hooks and is intended to be used that way.")
2361 (license license:gpl3+)))
2362
2363 (define-public emacs-ggtags
2364 (package
2365 (name "emacs-ggtags")
2366 (version "0.8.13")
2367 (source
2368 (origin
2369 (method url-fetch)
2370 (uri (string-append "https://elpa.gnu.org/packages/ggtags-"
2371 version ".el"))
2372 (sha256
2373 (base32
2374 "1qa7lcrcmf76sf6dy8sxbg4adq7rg59fm0n5848w3qxgsr0h45fg"))))
2375 (build-system emacs-build-system)
2376 (inputs
2377 `(("global" ,global)))
2378 (arguments
2379 `(#:phases
2380 (modify-phases %standard-phases
2381 (add-after 'unpack 'configure
2382 (lambda* (#:key inputs #:allow-other-keys)
2383 (chmod "ggtags.el" #o644)
2384 (emacs-substitute-variables "ggtags.el"
2385 ("ggtags-executable-directory"
2386 (string-append (assoc-ref inputs "global") "/bin")))
2387 #t)))))
2388 (home-page "https://github.com/leoliu/ggtags")
2389 (synopsis "Frontend to the GNU Global source code tagging system")
2390 (description "@code{ggtags} provides a frontend to the GNU Global source
2391 code tagging system.
2392
2393 Features:
2394
2395 @itemize
2396 @item Build on @code{compile.el} for asynchronicity and its large feature-set.
2397 @item Automatically update Global's tag files when needed with tuning for
2398 large source trees.
2399 @item Intuitive navigation among multiple matches with mode-line display of
2400 current match, total matches and exit status.
2401 @item Read tag with completion.
2402 @item Show definition at point.
2403 @item Jump to #include files.
2404 @item Support search history and saving a search to register/bookmark.
2405 @item Query replace.
2406 @item Manage Global's environment variables on a per-project basis.
2407 @item Highlight (definition) tag at point.
2408 @item Abbreviated display of file names.
2409 @item Support all Global search backends: @code{grep}, @code{idutils}, etc.
2410 @item Support exuberant ctags @url{http://ctags.sourceforge.net/} and
2411 @code{pygments} backend.
2412 @item Support all Global's output formats: @code{grep}, @code{ctags-x},
2413 @code{cscope} etc.
2414 @item Support projects on remote hosts (e.g. via @code{tramp}).
2415 @item Support eldoc.
2416 @item Search @code{GTAGSLIBPATH} for references and symbols.
2417 @end itemize\n")
2418 (license license:gpl3+)))
2419
2420 (define-public emacs-go-mode
2421 (package
2422 (name "emacs-go-mode")
2423 (version "1.5.0")
2424 (source (origin
2425 (method git-fetch)
2426 (uri (git-reference
2427 (url "https://github.com/dominikh/go-mode.el")
2428 (commit (string-append "v" version))))
2429 (file-name (git-file-name name version))
2430 (sha256
2431 (base32
2432 "1nd2h50yb0493wvf1h7fzplq45rmqn2w7kxpgnlxzhkvq99v8vzf"))))
2433 (build-system emacs-build-system)
2434 (arguments
2435 `(#:phases
2436 (modify-phases %standard-phases
2437 (add-after 'unpack 'make-writable
2438 (lambda _
2439 (for-each make-file-writable (find-files "." "\\.el$"))
2440 #t)))))
2441 (home-page "https://github.com/dominikh/go-mode.el")
2442 (synopsis "Go mode for Emacs")
2443 (description
2444 "This package provides go-mode, an Emacs mode for working with software
2445 written in the Go programming language.")
2446 (license license:bsd-3)))
2447
2448 (define-public emacs-google-maps
2449 ;; There has been no new release tag since 2013.
2450 (let ((commit "2eb16ff609f5a9f8d02c15238a111fbb7db6c146")
2451 (revision "1"))
2452 (package
2453 (name "emacs-google-maps")
2454 (version (git-version "1.0.0" revision commit))
2455 (source
2456 (origin
2457 (method git-fetch)
2458 (uri (git-reference
2459 (url "https://github.com/jd/google-maps.el")
2460 (commit commit)))
2461 (file-name (git-file-name name version))
2462 (sha256
2463 (base32 "1bl0dnksbf14d0xcnvdy9qpvzc5c8jwkxpmfvgayj6djikxnw2md"))))
2464 (build-system emacs-build-system)
2465 (home-page "https://github.com/jd/google-maps.el")
2466 (synopsis "Access Google Maps from Emacs")
2467 (description "The @code{google-maps} package displays Google Maps
2468 directly inside Emacs. It requires a Google Map Static API key to function.")
2469 (license license:gpl3+))))
2470
2471 (define-public emacs-graphviz-dot-mode
2472 (package
2473 (name "emacs-graphviz-dot-mode")
2474 (version "0.4.2")
2475 (source
2476 (origin
2477 (method git-fetch)
2478 (uri (git-reference
2479 (url "https://github.com/ppareit/graphviz-dot-mode")
2480 (commit (string-append "v" version))))
2481 (file-name (git-file-name name version))
2482 (sha256
2483 (base32 "1v1p85wk73nfsvv66qf90flgf9dqhmv15z1r7q4zmc4ifklqn08m"))))
2484 (build-system emacs-build-system)
2485 (arguments
2486 `(#:phases
2487 (modify-phases %standard-phases
2488 (add-before 'install 'make-info
2489 (lambda* (#:key inputs #:allow-other-keys)
2490 (with-directory-excursion "texinfo"
2491 (substitute* "Makefile"
2492 (("\\/usr\\/bin\\/gzip")
2493 (string-append (assoc-ref inputs "gzip") "/bin/gzip")))
2494 (invoke "make"
2495 "clean"
2496 "info"
2497 (string-append "TEXINFODIR="
2498 (assoc-ref inputs "texinfo")
2499 "/bin")))))
2500 (add-after 'install 'install-info
2501 (lambda* (#:key outputs #:allow-other-keys)
2502 (let* ((out (assoc-ref outputs "out"))
2503 (info (string-append out "/share/info")))
2504 (install-file "texinfo/graphviz-dot-mode.info.gz" info)
2505 #t))))))
2506 (native-inputs
2507 `(("gzip" ,gzip)
2508 ("texinfo" ,texinfo)))
2509 (propagated-inputs
2510 `(("emacs-company" ,emacs-company)))
2511 (home-page "http://ppareit.github.com/graphviz-dot-mode")
2512 (synopsis "Major mode for editing Graphviz DOT files")
2513 (description
2514 "This Emacs package helps you to create @file{.dot} or @file{.gv} files
2515 using the DOT syntax, and use Graphviz to convert these files to diagrams.")
2516 (license license:gpl2+)))
2517
2518 (define-public emacs-imenu-list
2519 (package
2520 (name "emacs-imenu-list")
2521 (version "0.8")
2522 (source
2523 (origin
2524 (method git-fetch)
2525 (uri
2526 (git-reference
2527 (url "https://github.com/bmag/imenu-list")
2528 (commit (string-append "v" version))))
2529 (file-name (git-file-name name version))
2530 (sha256
2531 (base32 "13xh9bdl3k6ccfq83wjmkpi4269qahv4davki4wq18dr4amrzhlx"))))
2532 (build-system emacs-build-system)
2533 (home-page "https://github.com/bmag/imenu-list")
2534 (synopsis
2535 "Automatically tracks the current buffer's imenu entries")
2536 (description
2537 "This Emacs minor mode creates an automatically updated buffer called
2538 @code{*Ilist*} that is populated with the current buffer's imenu entries.
2539 This buffer is typically shown as a sidebar (Emacs vertically splits the
2540 window).")
2541 (license license:gpl3+)))
2542
2543 (define-public emacs-mmm-mode
2544 (package
2545 (name "emacs-mmm-mode")
2546 (version "0.5.8")
2547 (source
2548 (origin
2549 (method url-fetch)
2550 (uri (string-append "https://elpa.gnu.org/packages/"
2551 "mmm-mode-" version ".tar"))
2552 (sha256
2553 (base32 "05ckf4zapdpvnd3sqpw6kxaa567zh536a36m9qzx3sqyjbyn5fb4"))))
2554 (build-system emacs-build-system)
2555 (home-page "https://github.com/purcell/mmm-mode")
2556 (synopsis "Allow multiple major modes in an Emacs buffer")
2557 (description
2558 "MMM Mode is a minor mode that allows multiple major modes to coexist in
2559 a single buffer.")
2560 (license license:gpl3+)))
2561
2562 (define-public emacs-mmt
2563 (package
2564 (name "emacs-mmt")
2565 (version "0.2.0")
2566 (source
2567 (origin
2568 (method git-fetch)
2569 (uri (git-reference
2570 (url "https://github.com/mrkkrp/mmt")
2571 (commit version)))
2572 (file-name (git-file-name name version))
2573 (sha256
2574 (base32 "13vbfc5597v0gd87qyhn10f93nb477vjpg3jlpphbax9fvkf4gav"))))
2575 (build-system emacs-build-system)
2576 (home-page "https://github.com/mrkkrp/mmt")
2577 (synopsis "Classic tools to write Emacs Lisp macros")
2578 (description "Emacs MMT is a package that contains classic tools for Emacs
2579 Lisp developers who want to write macros with convenience.")
2580 (license license:gpl3+)))
2581
2582 (define-public emacs-tablist
2583 (package
2584 (name "emacs-tablist")
2585 (version "1.0")
2586 (source (origin
2587 (method git-fetch)
2588 (uri (git-reference
2589 (url "https://github.com/politza/tablist")
2590 (commit (string-append "v" version))))
2591 (file-name (git-file-name name version))
2592 (sha256
2593 (base32
2594 "0pzsdg0rm59daw34ppss79cg05z9wnr8nkmdcc48nkd0p69ip2yy"))))
2595 (build-system emacs-build-system)
2596 (home-page "https://github.com/politza/tablist")
2597 (synopsis "Extension for @code{tabulated-list-mode}")
2598 (description "Tablist is the Emacs package that provides several
2599 additional features to @code{tabulated-list-mode}: it adds marks,
2600 filters, new key bindings and faces. It can be enabled by
2601 @code{tablist-mode} or @code{tablist-minor-mode} commands.")
2602 (license license:gpl3+)))
2603
2604 (define-public emacs-djvu
2605 (package
2606 (name "emacs-djvu")
2607 (version "1.1")
2608 (source
2609 (origin
2610 (method url-fetch)
2611 (uri (string-append "https://elpa.gnu.org/packages/"
2612 "djvu-" version ".el"))
2613 (sha256
2614 (base32 "0njgyx09q225hliacsnjk8wallg5i6xkz6bj501pb05nwqfbvfk7"))))
2615 (build-system emacs-build-system)
2616 (inputs `(("djview" ,djview)
2617 ("djvulibre" ,djvulibre)))
2618 (arguments
2619 `(#:phases
2620 (modify-phases %standard-phases
2621 (add-after 'unpack 'configure
2622 (lambda* (#:key inputs outputs #:allow-other-keys)
2623 (let ((file "djvu.el")
2624 (djview (assoc-ref inputs "djview"))
2625 (djvulibre (assoc-ref inputs "djvulibre")))
2626 ;; Specify the absolute executable locations.
2627 (chmod file #o644)
2628 (substitute* file
2629 (("\"djvused\"") (string-append "\"" djvulibre "/bin/djvused\""))
2630 (("\"djvm\"") (string-append "\"" djvulibre "/bin/djvm\""))
2631 (("\"ddjvu\"") (string-append "\"" djvulibre "/bin/ddjvu\"")))
2632 (emacs-substitute-variables file
2633 ("djvu-djview-command" (string-append djview "/bin/djview"))))
2634 #t)))))
2635 (home-page "http://elpa.gnu.org/packages/djvu.html")
2636 (synopsis "Edit and view Djvu files via djvused")
2637 (description
2638 "This package is a front end for the command-line program djvused from
2639 DjVuLibre, see @url{http://djvu.sourceforge.net/}.")
2640 (license license:gpl3+)))
2641
2642 (define-public emacs-pabbrev
2643 (package
2644 (name "emacs-pabbrev")
2645 (version "4.2.1")
2646 (source
2647 (origin
2648 (method url-fetch)
2649 (uri (string-append "https://elpa.gnu.org/packages/"
2650 "pabbrev-" version ".el"))
2651 (sha256
2652 (base32 "19v5adk61y8fpigw7k6wz6dj79jwr450hnbi7fj0jvb21cvjmfxh"))))
2653 (build-system emacs-build-system)
2654 (home-page "http://elpa.gnu.org/packages/pabbrev.html")
2655 (synopsis "Predictive abbreviation expansion")
2656 (description
2657 "The code provides a abbreviation expansion for Emacs. It is
2658 fairly similar to Dabbrev expansion, which works based on the contents
2659 of the current buffer (or other buffers).
2660
2661 Predictive abbreviation expansion works based on the previously
2662 written text. Unlike dynamic abbreviation, the text is analysed
2663 during idle time, while Emacs is doing nothing else.")
2664 (license license:gpl3+)))
2665
2666 (define-public emacs-pdf-tools
2667 ;; XXX: Development branch fixes an incompatibility with Emacs 27+. See
2668 ;; <https://github.com/politza/pdf-tools/issues/616>.
2669 (let ((commit "c510442ab89c8a9e9881230eeb364f4663f59e76")
2670 (revision "1"))
2671 (package
2672 (name "emacs-pdf-tools")
2673 (version (git-version "0.90" revision commit))
2674 (source
2675 (origin
2676 (method git-fetch)
2677 (uri (git-reference
2678 (url "https://github.com/politza/pdf-tools")
2679 (commit commit)))
2680 (file-name (git-file-name name version))
2681 (sha256
2682 (base32 "17z3cpn76g9dp62drjrgrqpp1bgf4gl5k5gspylskpvd4kj4bq4d"))))
2683 (build-system gnu-build-system)
2684 (arguments
2685 `(#:tests? #f ; there are no tests
2686 #:modules ((guix build gnu-build-system)
2687 ((guix build emacs-build-system) #:prefix emacs:)
2688 (guix build utils)
2689 (guix build emacs-utils))
2690 #:imported-modules (,@%gnu-build-system-modules
2691 (guix build emacs-build-system)
2692 (guix build emacs-utils))
2693 #:phases
2694 (modify-phases %standard-phases
2695 ;; Build server side using 'gnu-build-system'.
2696 (add-after 'unpack 'enter-server-dir
2697 (lambda _ (chdir "server") #t))
2698 (add-after 'enter-server-dir 'autogen
2699 (lambda _
2700 (invoke "bash" "autogen.sh")))
2701
2702 ;; Build emacs side using 'emacs-build-system'.
2703 (add-after 'compress-documentation 'enter-lisp-dir
2704 (lambda _ (chdir "../lisp") #t))
2705 (add-after 'enter-lisp-dir 'emacs-patch-variables
2706 (lambda* (#:key outputs #:allow-other-keys)
2707 (for-each make-file-writable (find-files "."))
2708
2709 ;; Set path to epdfinfo program.
2710 (emacs-substitute-variables "pdf-info.el"
2711 ("pdf-info-epdfinfo-program"
2712 (string-append (assoc-ref outputs "out")
2713 "/bin/epdfinfo")))
2714 ;; Set 'pdf-tools-handle-upgrades' to nil to avoid "auto
2715 ;; upgrading" that pdf-tools tries to perform.
2716 (emacs-substitute-variables "pdf-tools.el"
2717 ("pdf-tools-handle-upgrades" '()))))
2718 (add-after 'emacs-patch-variables 'emacs-add-source-to-load-path
2719 (assoc-ref emacs:%standard-phases 'add-source-to-load-path))
2720 (add-after 'emacs-add-source-to-load-path 'emacs-install
2721 (assoc-ref emacs:%standard-phases 'install))
2722 (add-after 'emacs-install 'emacs-build
2723 (assoc-ref emacs:%standard-phases 'build))
2724 (add-after 'emacs-install 'emacs-make-autoloads
2725 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
2726 (native-inputs
2727 `(("autoconf" ,autoconf)
2728 ("automake" ,automake)
2729 ("pkg-config" ,pkg-config)
2730 ("emacs" ,emacs-minimal)))
2731 (inputs
2732 `(("poppler" ,poppler)
2733 ("cairo" ,cairo)
2734 ("glib" ,glib)
2735 ("libpng" ,libpng)
2736 ("zlib" ,zlib)))
2737 (propagated-inputs
2738 `(("tablist" ,emacs-tablist)))
2739 (home-page "https://github.com/politza/pdf-tools")
2740 (synopsis "Emacs support library for PDF files")
2741 (description
2742 "PDF Tools is, among other things, a replacement of DocView for PDF
2743 files. The key difference is that pages are not pre-rendered by
2744 e.g. ghostscript and stored in the file-system, but rather created on-demand
2745 and stored in memory.")
2746 (license license:gpl3+))))
2747
2748 (define-public emacs-dash
2749 (package
2750 (name "emacs-dash")
2751 (version "2.17.0")
2752 (source (origin
2753 (method git-fetch)
2754 (uri (git-reference
2755 (url "https://github.com/magnars/dash.el")
2756 (commit version)))
2757 (file-name (git-file-name name version))
2758 (sha256
2759 (base32
2760 "153f55dqkhs8w2xlf6b88wp5vlkap7h8vjd9wxh4jp2ram5g4l1n"))))
2761 (build-system emacs-build-system)
2762 (arguments
2763 `(#:tests? #t
2764 #:test-command '("./run-tests.sh")))
2765 (home-page "https://github.com/magnars/dash.el")
2766 (synopsis "Modern list library for Emacs")
2767 (description "This package provides a modern list API library for Emacs.")
2768 (license license:gpl3+)))
2769
2770 (define-public emacs-bui
2771 (package
2772 (name "emacs-bui")
2773 (version "1.2.1")
2774 (source (origin
2775 (method git-fetch)
2776 (uri (git-reference
2777 (url "https://notabug.org/alezost/emacs-bui.git")
2778 (commit (string-append "v" version))))
2779 (file-name (git-file-name name version))
2780 (sha256
2781 (base32
2782 "0sszdl4kvqbihdh8d7mybpp0d8yw2p3gyiipjcxz9xhvvmw3ww4x"))))
2783 (build-system emacs-build-system)
2784 (propagated-inputs
2785 `(("dash" ,emacs-dash)))
2786 (home-page "https://notabug.org/alezost/emacs-bui")
2787 (synopsis "Buffer interface library for Emacs")
2788 (description
2789 "BUI (Buffer User Interface) is a library for making @code{list} and
2790 @code{info} interfaces to display an arbitrary data of the same
2791 type, for example: packages, buffers, files, etc.")
2792 (license license:gpl3+)))
2793
2794 (define-public emacs-guix
2795 (let ((commit "58a840d0671091e3064e36244790ef8839da87d6")
2796 (revision "2"))
2797 (package
2798 (name "emacs-guix")
2799 (version (git-version "0.5.2" revision commit))
2800 (source (origin
2801 (method git-fetch)
2802 (uri (git-reference
2803 (url "https://gitlab.com/emacs-guix/emacs-guix")
2804 (commit commit)))
2805 (file-name (git-file-name name version))
2806 (sha256
2807 (base32
2808 "1qnr5sixmvrhr9rinrhfy7sy20mikjvvwbdixwkbx30qpcdwgwj1"))))
2809 (build-system gnu-build-system)
2810 (native-inputs
2811 `(("autoconf" ,autoconf)
2812 ("automake" ,automake)
2813 ("pkg-config" ,pkg-config)
2814 ("texinfo" ,texinfo)
2815 ("emacs" ,emacs-minimal)))
2816 (inputs
2817 `(("guile" ,@(assoc-ref (package-native-inputs guix) "guile"))
2818 ("guix" ,guix)))
2819 (propagated-inputs
2820 `(("geiser" ,emacs-geiser)
2821 ("guile-gcrypt" ,guile-gcrypt)
2822 ("dash" ,emacs-dash)
2823 ("bui" ,emacs-bui)
2824 ("edit-indirect" ,emacs-edit-indirect)
2825 ("magit-popup" ,emacs-magit-popup)))
2826 (home-page "https://emacs-guix.gitlab.io/website/")
2827 (synopsis "Emacs interface for GNU Guix")
2828 (description
2829 "Emacs-Guix provides a visual interface, tools and features for the GNU
2830 Guix package manager. Particularly, it allows you to do various package
2831 management tasks from Emacs. To begin with, run @code{M-x guix-about} or
2832 @code{M-x guix-help} command.")
2833 (license license:gpl3+))))
2834
2835 (define-public emacs-build-farm
2836 (package
2837 (name "emacs-build-farm")
2838 (version "0.2.2")
2839 (source (origin
2840 (method git-fetch)
2841 (uri (git-reference
2842 (url "https://notabug.org/alezost/emacs-build-farm.git")
2843 (commit (string-append "v" version))))
2844 (file-name (git-file-name name version))
2845 (sha256
2846 (base32
2847 "0i0bwbav5861j2y15j9nd5m9rdqg9q97zgcbld8pivr9nyxy63lz"))))
2848 (build-system emacs-build-system)
2849 (propagated-inputs
2850 `(("bui" ,emacs-bui)
2851 ("magit-popup" ,emacs-magit-popup)))
2852 (home-page "https://notabug.org/alezost/emacs-build-farm")
2853 (synopsis "Emacs interface for Hydra and Cuirass build farms")
2854 (description
2855 "This Emacs package provides an interface for Hydra and
2856 Cuirass (build farms used by Nix and Guix). It allows you to look at
2857 various data related to the build farm projects, jobsets, builds and
2858 evaluations. The entry point is @code{M-x build-farm} command.")
2859 (license license:gpl3+)))
2860
2861 (define-public emacs-d-mode
2862 (package
2863 (name "emacs-d-mode")
2864 (version "2.0.10")
2865 (source
2866 (origin
2867 (method git-fetch)
2868 (uri (git-reference
2869 (url "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode")
2870 (commit version)))
2871 (file-name (git-file-name name version))
2872 (sha256
2873 (base32 "0915kb9jcaixgindhj85fmykkhvj31ckp1yg6746fznwdgfrlifv"))))
2874 (build-system emacs-build-system)
2875 (propagated-inputs
2876 `(("emacs-undercover" ,emacs-undercover)))
2877 (home-page "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode")
2878 (synopsis "Emacs major mode for editing D code")
2879 (description "This package provides an Emacs major mode for highlighting
2880 code written in the D programming language. This mode is currently known to
2881 work with Emacs 24 and 25.")
2882 (license license:gpl2+)))
2883
2884 (define-public emacs-extempore-mode
2885 ;; Use the latest commit at time of packaging. There are no releases or tags.
2886 (let ((commit "09518ae6650d7be33a4633a4c0f31b7130d04c6e")
2887 (revision "1"))
2888 (package
2889 (name "emacs-extempore-mode")
2890 (version (git-version "0.0.0" revision commit))
2891 (source
2892 (origin
2893 (method git-fetch)
2894 (uri (git-reference
2895 (url "https://github.com/extemporelang/extempore-emacs-mode")
2896 (commit commit)))
2897 (file-name (git-file-name name version))
2898 (sha256
2899 (base32 "0hfza9lzdsz94gxhmzyp9fwviscv19rmnjgd0q613faayn11sjsp"))))
2900 (build-system emacs-build-system)
2901 (home-page "https://github.com/extemporelang/extempore-emacs-mode")
2902 (synopsis "Emacs major mode for Extempore source files")
2903 (description
2904 "This package provides a major mode for editing Extempore code. It can
2905 create an Extempore REPL, connect the current @code{extempore-mode} buffer to a
2906 running Extempore process, and more.")
2907 (license license:bsd-2))))
2908
2909 (define-public emacs-kakoune
2910 ;; Package has no release. Version is extracted from "Version:" keyword in
2911 ;; main file.
2912 (let ((commit "d73d14e69ea38076af50cc69f846808383ff539d")
2913 (revision "0"))
2914 (package
2915 (name "emacs-kakoune")
2916 (version (git-version "0.1" revision commit))
2917 (source
2918 (origin
2919 (method git-fetch)
2920 (uri (git-reference
2921 (url "https://github.com/jmorag/kakoune.el")
2922 (commit commit)))
2923 (file-name (git-file-name name version))
2924 (sha256
2925 (base32 "0nk6jdy1y5mc3ryd0smiqghrk6iv34d5grc7f7migmshlbq0np92"))))
2926 (build-system emacs-build-system)
2927 (propagated-inputs
2928 `(("emacs-expand-region" ,emacs-expand-region)
2929 ("emacs-multiple-cursors" ,emacs-multiple-cursors)
2930 ("emacs-ryo-modal" ,emacs-ryo-modal)))
2931 (home-page "https://github.com/jmorag/kakoune.el")
2932 (synopsis "Emacs simple simulation, but not emulation, of Kakoune")
2933 (description "This package provides many, but not all of the editing
2934 primitives in the Kakoune editor. Unlike Evil mode for Vim, this is a very
2935 shallow emulation, which seeks to do as little work as possible, leveraging
2936 Emacs native editing commands and the work of other packages wherever
2937 possible.")
2938 (license license:expat))))
2939
2940 (define-public emacs-kana
2941 ;; Package has no release. Version is extracted from "Version:" keyword in
2942 ;; main file.
2943 (let ((commit "b239c3c3c6124b46ff720cca7b80ecbafd7fa489")
2944 (revision "0"))
2945 (package
2946 (name "emacs-kana")
2947 (version (git-version "1.0.0" revision commit))
2948 (source
2949 (origin
2950 (method git-fetch)
2951 (uri (git-reference
2952 (url "https://github.com/chenyanming/kana")
2953 (commit commit)))
2954 (file-name (git-file-name name version))
2955 (sha256
2956 (base32 "0vrrl1kniq4h111jvnapvx3wybvsl3alfaygw634mmryr3h7pwi8"))))
2957 (build-system emacs-build-system)
2958 (home-page "https://github.com/chenyanming/kana")
2959 (synopsis "Learn Japanese Kana in Emacs")
2960 (description
2961 "This Emacs mode displays Hiragana and Katakana flashcards. It can use
2962 functionality from Emacs Kanji mode if it is installed.")
2963 (license license:gpl3+))))
2964
2965 (define-public emacs-kanji
2966 ;; Package has no release. Version is extracted from "Version:" keyword in
2967 ;; main file.
2968 (let ((commit "5e9d5b72468ece11cfb81b729be6babf63ede425")
2969 (revision "0"))
2970 (package
2971 (name "emacs-kanji")
2972 (version (git-version "1.0" revision commit))
2973 (source
2974 (origin
2975 (method git-fetch)
2976 (uri (git-reference
2977 (url "https://github.com/wsgac/kanji-mode")
2978 (commit commit)))
2979 (file-name (git-file-name name version))
2980 (sha256
2981 (base32 "1zh7klqaza840q5f44zzh1wrnd6sqa2k93z3dgx3yhhsxfd1dxvy"))))
2982 (build-system emacs-build-system)
2983 (home-page "https://github.com/wsgac/kanji-mode")
2984 (synopsis "Emacs minor mode for displaying Japanese Kanji stroke order")
2985 (description
2986 "This minor mode displays the stroke order of the Kanji sign under
2987 cursor in a transient buffer. It has a built-in collection of SVG images
2988 depicting stroke orders for all Kanji. The collection is a slightly modified
2989 and limited version of the images provided by the KanjiVG project.")
2990 (license license:gpl3+))))
2991
2992 (define-public emacs-keyfreq
2993 (package
2994 (name "emacs-keyfreq")
2995 (version "20160516.716")
2996 (source
2997 (origin
2998 (method url-fetch)
2999 (uri (string-append "http://melpa.org/packages/keyfreq-"
3000 version ".el"))
3001 (sha256
3002 (base32
3003 "008hd7d06qskc3mx0bbdgpgy2pwxr8185fzlyqf9qjg49y74p6g8"))))
3004 (build-system emacs-build-system)
3005 (home-page "https://github.com/dacap/keyfreq")
3006 (synopsis "Track Emacs command frequencies")
3007 (description "@code{emacs-keyfeq} tracks and shows how many times you used
3008 a command.")
3009 (license license:gpl3+)))
3010
3011 (define-public emacs-olivetti
3012 (package
3013 (name "emacs-olivetti")
3014 (version "1.11.1")
3015 (source
3016 (origin
3017 (method git-fetch)
3018 (uri (git-reference
3019 (url "https://github.com/rnkn/olivetti")
3020 (commit (string-append "v" version))))
3021 (file-name (git-file-name name version))
3022 (sha256
3023 (base32 "0rghxjdzyfykd4qc2zkavvbyf9xc899k1b8hbk890f1y3vakqvqz"))))
3024 (build-system emacs-build-system)
3025 (home-page "https://github.com/rnkn/olivetti")
3026 (synopsis "Emacs minor mode for a nice writing environment")
3027 (description "This package provides an Emacs minor mode that puts writing
3028 in the center.")
3029 (license license:gpl3+)))
3030
3031 (define-public emacs-undo-tree
3032 (package
3033 (name "emacs-undo-tree")
3034 (version "0.7.5")
3035 (source
3036 (origin
3037 (method url-fetch)
3038 (uri (string-append "https://elpa.gnu.org/packages/"
3039 "undo-tree-" version ".el"))
3040 (sha256
3041 (base32 "00admi87gqm0akhfqm4dcp9fw8ihpygy030955jswkha4zs7lw2p"))))
3042 (build-system emacs-build-system)
3043 (home-page "http://www.dr-qubit.org/emacs.php")
3044 (synopsis "Treat undo history as a tree")
3045 (description
3046 "Tree-like interface to Emacs undo system, providing
3047 graphical tree presentation of all previous states of buffer that
3048 allows easily move between them.")
3049 (license license:gpl3+)))
3050
3051 (define-public emacs-s
3052 (package
3053 (name "emacs-s")
3054 (version "1.12.0")
3055 (source
3056 (origin
3057 (method git-fetch)
3058 (uri (git-reference
3059 (url "https://github.com/magnars/s.el")
3060 (commit version)))
3061 (file-name (git-file-name name version))
3062 (sha256
3063 (base32 "1g8mqd13llj007al4nlxxx4z2lcsg3wk970mgjn0avwrhjjgdmmv"))))
3064 (build-system emacs-build-system)
3065 (arguments
3066 `(#:tests? #t
3067 #:emacs ,emacs ; FIXME: tests fail with emacs-minimal
3068 #:test-command '("./run-tests.sh")))
3069 (home-page "https://github.com/magnars/s.el")
3070 (synopsis "Emacs string manipulation library")
3071 (description "This package provides an Emacs library for manipulating
3072 strings.")
3073 (license license:gpl3+)))
3074
3075 (define-public emacs-symon
3076 (package
3077 (name "emacs-symon")
3078 (version "20160630")
3079 (source
3080 (origin
3081 (method git-fetch)
3082 (uri (git-reference
3083 (url "https://github.com/zk-phi/symon")
3084 (commit version)))
3085 (file-name (git-file-name name version))
3086 (sha256
3087 (base32 "1q7di9s8k710nx98wnqnbkkhdimrn0jf6z4xkm4c78l6s5idjwlz"))))
3088 (build-system emacs-build-system)
3089 (home-page "https://github.com/zk-phi/symon")
3090 (synopsis "Tiny graphical system monitor")
3091 (description
3092 "Tiny graphical system monitor for the Emacs minibuffer when idle.")
3093 (license license:gpl2+)))
3094
3095 (define-public emacs-sx
3096 (let ((version "20191229")
3097 (revision "0")
3098 (commit "e9d1093c97507a6d7b4f4710ef65200dae725e5f"))
3099 (package
3100 (name "emacs-sx")
3101 (version (git-version version revision commit))
3102 (source
3103 (origin
3104 (method git-fetch)
3105 (uri (git-reference
3106 (url "https://github.com/vermiculus/sx.el")
3107 (commit commit)))
3108 (file-name (git-file-name name version))
3109 (sha256
3110 (base32 "0m90ddwm8j0y6d1ppqhd2gil1107k202blw6mzm5bdambn4nfqkf"))))
3111 (build-system emacs-build-system)
3112 (propagated-inputs
3113 `(("emacs-markdown-mode" ,emacs-markdown-mode)))
3114 (home-page "https://github.com/vermiculus/sx.el")
3115 (synopsis "Emacs StackExchange client")
3116 (description
3117 "Emacs StackExchange client. Ask and answer questions on
3118 Stack Overflow, Super User, and other StackExchange sites.")
3119 (license license:gpl3+))))
3120
3121 (define-public emacs-toc-org
3122 (package
3123 (name "emacs-toc-org")
3124 (version "1.1.0")
3125 (source
3126 (origin
3127 (method git-fetch)
3128 (uri (git-reference
3129 (url "https://github.com/snosov1/toc-org")
3130 (commit version)))
3131 (file-name (git-file-name name version))
3132 (sha256
3133 (base32 "0lk0rji85a1c0c5r9an0fdvsm4n4jyixsknmr8ywha3lfmc2p0l8"))))
3134 (build-system emacs-build-system)
3135 (home-page "https://github.com/snosov1/toc-org")
3136 (synopsis "Table of Contents generator for Emacs Org mode")
3137 (description
3138 "This package generates a table of contents when saving in Org and
3139 Markdown files.")
3140 (license license:gpl2+)))
3141
3142 (define-public emacs-toml-mode
3143 (let ((version "0.1.3")
3144 (revision "0")
3145 (commit "f6c61817b00f9c4a3cab1bae9c309e0fc45cdd06"))
3146 (package
3147 (name "emacs-toml-mode")
3148 (version (git-version version revision commit))
3149 (source
3150 (origin
3151 (method git-fetch)
3152 (uri (git-reference
3153 (url "https://github.com/dryman/toml-mode.el")
3154 (commit commit)))
3155 (file-name (git-file-name name version))
3156 (sha256
3157 (base32 "05b4ksay85c8y5ncax0qsvnmplwsfiw24z16a58gkarjz938hb57"))))
3158 (build-system emacs-build-system)
3159 (home-page "https://github.com/dryman/toml-mode.el")
3160 (synopsis "Emacs major mode for editing TOML files")
3161 (description
3162 ;; XXX: Ideally we'd use @acronym for "TOML", but Guile's Texinfo
3163 ;; parser does not currently support @comma{}, making it impossible
3164 ;; to use commas in the @acronym arguments.
3165 "This package provides a major mode for editing files in @dfn{TOML}
3166 (Tom's Obvious, Minimal Language) data format.")
3167 (license license:gpl3+))))
3168
3169 (define-public emacs-twittering-mode
3170 (package
3171 (name "emacs-twittering-mode")
3172 (version "3.1.0")
3173 (source
3174 (origin
3175 (method url-fetch)
3176 (uri (string-append "mirror://sourceforge/twmode"
3177 "/twittering-mode-" version
3178 "/twittering-mode-" version ".tar.xz"))
3179 (sha256
3180 (base32 "02imis1gxz90lah0b5n37j2hlsaw5igss11d85vpsm5d1bgw8j28"))))
3181 (build-system emacs-build-system)
3182 (home-page "http://twmode.sourceforge.net")
3183 (synopsis "Emacs major mode for Twitter")
3184 (description
3185 "Twittering mode is an Emacs major mode for Twitter.
3186 You can check timelines, tweet, mark posts as favorites and so on with
3187 Emacs.")
3188 (license license:gpl2+)))
3189
3190 (define-public emacs-f
3191 (package
3192 (name "emacs-f")
3193 (version "0.20.0")
3194 (source (origin
3195 (method git-fetch)
3196 (uri (git-reference
3197 (url "https://github.com/rejeep/f.el")
3198 (commit (string-append "v" version))))
3199 (file-name (git-file-name name version))
3200 (sha256
3201 (base32
3202 "1a47xk3yp1rp17fqg7ldl3d3fb888h0fz3sysqfdz1bfdgs8a9bk"))))
3203 (build-system emacs-build-system)
3204 (propagated-inputs
3205 `(("emacs-s" ,emacs-s)
3206 ("emacs-dash" ,emacs-dash)))
3207 (home-page "https://github.com/rejeep/f.el")
3208 (synopsis "Emacs API for working with files and directories")
3209 (description "This package provides an Emacs library for working with
3210 files and directories.")
3211 (license license:gpl3+)))
3212
3213 (define-public emacs-fountain-mode
3214 (package
3215 (name "emacs-fountain-mode")
3216 (version "3.3.0")
3217 (source
3218 (origin
3219 (method git-fetch)
3220 (uri (git-reference
3221 (url "https://github.com/rnkn/fountain-mode")
3222 (commit (string-append "v" version))))
3223 (file-name (git-file-name name version))
3224 (sha256
3225 (base32 "04jrv6i4ah3i8c9hcd9wyaw2vrxr46f50qb9qwna2v7qa5vaway3"))))
3226 (build-system emacs-build-system)
3227 (home-page "https://github.com/rnkn/fountain-mode")
3228 (synopsis "Major mode for screenwriting in Fountain markup")
3229 (description "Fountain Mode is a scriptwriting program for GNU Emacs
3230 using the Fountain plain text markup format.")
3231 (license license:gpl3+)))
3232
3233 (define-public emacs-fringe-helper
3234 (let ((commit "ef4a9c023bae18ec1ddd7265f1f2d6d2e775efdd")
3235 (revision "1"))
3236 (package
3237 (name "emacs-fringe-helper")
3238 (version (git-version "1.0.1" revision commit))
3239 (source
3240 (origin
3241 (method git-fetch)
3242 (uri (git-reference
3243 (url "https://github.com/nschum/fringe-helper.el")
3244 (commit commit)))
3245 (file-name (git-file-name name version))
3246 (sha256
3247 (base32 "0ra9rc53l1gvkqank8apasl3r7wz2yfjrcvmfk3wpxhh24ppxv9d"))))
3248 (build-system emacs-build-system)
3249 (arguments
3250 `(#:tests? #t
3251 #:test-command '("emacs" "--batch"
3252 "-l" "tests.el"
3253 "-f" "ert-run-tests-batch-and-exit")))
3254 (home-page "https://github.com/nschum/fringe-helper.el")
3255 (synopsis "Helper functions for fringe bitmaps")
3256 (description
3257 "This package allows fringe bitmaps to be defined with a visual string
3258 representation.")
3259 (license license:gpl2+))))
3260
3261 (define-public emacs-git-gutter
3262 (package
3263 (name "emacs-git-gutter")
3264 (version "0.90")
3265 (source
3266 (origin
3267 (method git-fetch)
3268 (uri (git-reference
3269 (url "https://github.com/syohex/emacs-git-gutter")
3270 (commit version)))
3271 (file-name (git-file-name name version))
3272 (sha256
3273 (base32 "1abagq0psip7cgsqbfjv72qy60ywsny0ibsfcn74ldj6a9v17mz5"))))
3274 (build-system emacs-build-system)
3275 (home-page "https://github.com/syohex/emacs-git-gutter")
3276 (synopsis "See and manage hunks of text in a version control system")
3277 (description
3278 "This package is an Emacs minor mode for displaying and interacting with
3279 hunks of text managed in a version control system. Added modified and deleted
3280 areas can be indicated with symbols on the edge of the buffer, and commands
3281 can be used to move between and perform actions on these hunks.
3282
3283 Git, Mercurial, Subversion and Bazaar are supported, and many parts of the
3284 display and behaviour is easily customisable.")
3285 (license license:gpl3+)))
3286
3287 (define-public emacs-git-gutter-fringe
3288 (let ((commit "16226caab44174301f1659f7bf8cc67a76153445")
3289 (revision "1"))
3290 (package
3291 (name "emacs-git-gutter-fringe")
3292 (version (git-version "0.23" revision commit))
3293 (source
3294 (origin
3295 (method git-fetch)
3296 (uri (git-reference
3297 (url "https://github.com/syohex/git-gutter-fringe")
3298 (commit commit)))
3299 (file-name (git-file-name name version))
3300 (sha256
3301 (base32 "1y77gjl0yznamdj0f55d418zb75k22izisjg7ikvrfsl2yfqf3pm"))))
3302 (build-system emacs-build-system)
3303 (propagated-inputs
3304 `(("emacs-git-gutter" ,emacs-git-gutter)
3305 ("emacs-fringe-helper" ,emacs-fringe-helper)))
3306 (home-page "https://github.com/syohex/git-gutter-fringe")
3307 (synopsis "See and manage hunks of text in a version control system")
3308 (description
3309 "This package extends @code{git-gutter} to use the fringe area of a
3310 window.")
3311 (license license:gpl3+))))
3312
3313 (define-public emacs-git-link
3314 (package
3315 (name "emacs-git-link")
3316 (version "0.7.5")
3317 (source
3318 (origin
3319 (method git-fetch)
3320 (uri (git-reference
3321 (url "https://github.com/sshaw/git-link")
3322 (commit (string-append "v" version))))
3323 (file-name (git-file-name name version))
3324 (sha256
3325 (base32 "04xa6lp8wkjb6zs096bf4sz124grcjj15xv1h009bmn2j95rggj6"))))
3326 (build-system emacs-build-system)
3327 (arguments
3328 `(#:tests? #t
3329 #:test-command '("make" "test")))
3330 (home-page "https://github.com/sshaw/git-link")
3331 (synopsis "Create links for files and commits in GitHub/GitLab/etc. repos")
3332 (description
3333 "@code{git-link} returns the URL for the current buffer's file location
3334 at the current line number or active region. @code{git-link-commit} returns
3335 the URL for a commit. URLs are added to the kill ring.")
3336 (license license:gpl3+)))
3337
3338 (define-public emacs-apheleia
3339 (package
3340 (name "emacs-apheleia")
3341 (version "1.0")
3342 (source
3343 (origin
3344 (method git-fetch)
3345 (uri (git-reference
3346 (url "https://github.com/raxod502/apheleia")
3347 (commit (string-append "v" version))))
3348 (file-name (git-file-name name version))
3349 (sha256
3350 (base32 "04pls7zahy4jfkikv6fvd9vfpm4glhyanmmkx79hgi9pwdv966rf"))))
3351 (build-system emacs-build-system)
3352 (home-page "https://github.com/raxod502/apheleia")
3353 (synopsis "Reformat buffer stably")
3354 (description
3355 "This package allows for a buffer to be reformatted without moving point,
3356 so that running a formatting tool like @code{Prettier} or @code{Black} upon
3357 saving won't move point back to the beginning of the buffer.")
3358 (license license:gpl3+)))
3359
3360 (define-public emacs-git-timemachine
3361 (package
3362 (name "emacs-git-timemachine")
3363 (version "4.11")
3364 (source
3365 (origin
3366 (method git-fetch)
3367 (uri (git-reference
3368 (url "https://gitlab.com/pidu/git-timemachine.git")
3369 (commit version)))
3370 (file-name (git-file-name name version))
3371 (sha256
3372 (base32
3373 "1pz4l1xnq6s67w5yq9107vm8dg7rqf8n9dmbn90jys97c722g70n"))))
3374 (build-system emacs-build-system)
3375 (propagated-inputs
3376 `(("emacs-transient" ,emacs-transient)))
3377 (home-page "https://gitlab.com/pidu/git-timemachine")
3378 (synopsis "Step through historic versions of Git-controlled files")
3379 (description "This package enables you to step through historic versions
3380 of files under Git version control from within Emacs.")
3381 (license license:gpl3+)))
3382
3383 (define-public emacs-minitest
3384 (let ((commit "1aadb7865c1dc69c201cecee275751ecec33a182")
3385 (revision "1"))
3386 (package
3387 (name "emacs-minitest")
3388 (version (git-version "0.8.0" revision commit))
3389 (source (origin
3390 (method git-fetch)
3391 (uri (git-reference
3392 (url "https://github.com/arthurnn/minitest-emacs")
3393 (commit commit)))
3394 (file-name (git-file-name name commit))
3395 (sha256
3396 (base32
3397 "1l18zqpdzbnqj2qawq8hj7z7pl8hr8z9d8ihy8jaiqma915hmhj1"))))
3398 (build-system emacs-build-system)
3399 (arguments
3400 '(#:include (cons "^snippets\\/minitest-mode\\/" %default-include)
3401 #:exclude (delete "^[^/]*tests?\\.el$" %default-exclude)))
3402 (propagated-inputs
3403 `(("emacs-dash" ,emacs-dash)
3404 ("emacs-f" ,emacs-f)))
3405 (home-page "https://github.com/arthurnn/minitest-emacs")
3406 (synopsis "Emacs minitest mode")
3407 (description
3408 "The minitest mode provides commands to run the tests for the current
3409 file or line, as well as rerunning the previous tests, or all the tests for a
3410 project.
3411
3412 This package also includes relevant snippets for yasnippet.")
3413 (license license:expat))))
3414
3415 (define-public emacs-gdscript-mode
3416 (package
3417 (name "emacs-gdscript-mode")
3418 (version "1.4.0")
3419 (source
3420 (origin
3421 (method git-fetch)
3422 (uri (git-reference
3423 (url "https://github.com/godotengine/emacs-gdscript-mode")
3424 (commit version)))
3425 (file-name (git-file-name name version))
3426 (sha256
3427 (base32 "09q0himrz7a6xgz0jmcl85qc5xhk5fwi6d2vw1n8qaiavm96ksdy"))))
3428 (build-system emacs-build-system)
3429 (home-page "https://github.com/godotengine/emacs-gdscript-mode")
3430 (synopsis "GDScript support and syntax highlighting in Emacs")
3431 (description
3432 "This package adds support for the GDScript programming language from the
3433 Godot game engine in Emacs. It features all the essentials, e.g., syntax
3434 highlighting, code folding, indentation, automatic pairing, auto-completion,
3435 and code formatting.")
3436 (license license:gpl3+)))
3437
3438 (define-public emacs-el-mock
3439 (package
3440 (name "emacs-el-mock")
3441 (version "1.25.1")
3442 (source
3443 (origin
3444 (method git-fetch)
3445 (uri (git-reference
3446 (url "https://github.com/rejeep/el-mock.el")
3447 (commit (string-append "v" version))))
3448 (file-name (git-file-name name version))
3449 (sha256
3450 (base32 "13mv1rhgkwiww2wh5w926jz7idppp492wir1vdl245c5x50dh4f7"))))
3451 (build-system emacs-build-system)
3452 (home-page "https://github.com/rejeep/el-mock.el")
3453 (synopsis "Tiny mock and stub framework in Emacs Lisp")
3454 (description
3455 "Emacs Lisp Mock is a library for mocking and stubbing using readable
3456 syntax. Most commonly Emacs Lisp Mock is used in conjunction with Emacs Lisp
3457 Expectations, but it can be used in other contexts.")
3458 (license license:gpl3+)))
3459
3460 (define-public emacs-espuds
3461 (package
3462 (name "emacs-espuds")
3463 (version "0.3.3")
3464 (source
3465 (origin
3466 (method git-fetch)
3467 (uri (git-reference
3468 (url "https://github.com/ecukes/espuds")
3469 (commit (string-append "v" version))))
3470 (file-name (git-file-name name version))
3471 (sha256
3472 (base32 "16r4j27j9yfdiy841w9q5ykkc6n3wrm7hvfacagb32mydk821ijg"))))
3473 (build-system emacs-build-system)
3474 (propagated-inputs
3475 `(("emacs-s" ,emacs-s)
3476 ("emacs-dash" ,emacs-dash)
3477 ("emacs-f" ,emacs-f)))
3478 (home-page "https://github.com/ecukes/espuds")
3479 (synopsis "Common step definitions for Ecukes")
3480 (description "Espuds is a collection of the most commonly used step
3481 definitions for testing with the Ecukes framework.")
3482 (license license:gpl3+)))
3483
3484 (define-public emacs-spark
3485 (let ((version "20160503") ; no proper tag, use date of commit
3486 (commit "0bf148c3ede3b31d56fd75f347cdd0b0eae60025")
3487 (revision "1"))
3488 (package
3489 (name "emacs-spark")
3490 (version (git-version version revision commit))
3491 (source
3492 (origin
3493 (method git-fetch)
3494 (uri (git-reference
3495 (url "https://github.com/alvinfrancis/spark")
3496 (commit commit)))
3497 (file-name (git-file-name name version))
3498 (sha256
3499 (base32
3500 "1ykqr86j17mi95s08d9fp02d7ych1331b04dcqxzxnmpkhwngyj1"))))
3501 (build-system emacs-build-system)
3502 (home-page "https://github.com/alvinfrancis/spark")
3503 (synopsis "Sparkline generation library for Emacs Lisp")
3504 (description "@code{emacs-spark} is a sparkline generation library for
3505 Emacs Lisp. It generates a sparkline string given a list of numbers. It is a
3506 port of @code{cl-spark} to Emacs Lisp.")
3507 (license license:expat))))
3508
3509 (define-public emacs-es-mode
3510 (package
3511 (name "emacs-es-mode")
3512 (version "4.3.0")
3513 (source
3514 (origin
3515 (method git-fetch)
3516 (uri (git-reference
3517 (url "https://github.com/dakrone/es-mode")
3518 (commit version)))
3519 (file-name (git-file-name name version))
3520 (sha256
3521 (base32 "1qhfnd5anp5qrmravv7ks5ix763xnki2f5jwcyj70qyxwr0l60cg"))))
3522 (build-system emacs-build-system)
3523 (propagated-inputs
3524 ;; The version of org in Emacs 24.5 is not sufficient, and causes tables
3525 ;; to be rendered incorrectly
3526 `(("emacs-dash" ,emacs-dash)
3527 ("emacs-org" ,emacs-org)
3528 ("emacs-spark" ,emacs-spark)))
3529 (home-page "https://github.com/dakrone/es-mode")
3530 (synopsis "Major mode for editing Elasticsearch queries")
3531 (description "@code{es-mode} includes highlighting, completion and
3532 indentation support for Elasticsearch queries. Also supported are
3533 @code{es-mode} blocks in @code{org-mode}, for which the results of queries can
3534 be processed through @code{jq}, or in the case of aggregations, can be
3535 rendered in to a table. In addition, there is an @code{es-command-center}
3536 mode, which displays information about Elasticsearch clusters.")
3537 (license license:gpl3+)))
3538
3539 (define-public emacs-expand-region
3540 (package
3541 (name "emacs-expand-region")
3542 (version "0.11.0")
3543 (source
3544 (origin
3545 (method git-fetch)
3546 (uri (git-reference
3547 (url "https://github.com/magnars/expand-region.el")
3548 (commit version)))
3549 (file-name (git-file-name name version))
3550 (sha256
3551 (base32 "0h40dhc3kn8fq86xnwi5lz7ql8my8737y7wkqr897p15y90swr35"))))
3552 (build-system emacs-build-system)
3553 (home-page "https://github.com/magnars/expand-region.el")
3554 (synopsis "Increase selected region by semantic units")
3555 (description
3556 "Expand region increases the selected region by semantic units. Just
3557 keep pressing the key until it selects what you want. There's also
3558 @code{er/contract-region} if you expand too far.")
3559 (license license:gpl3+)))
3560
3561 (define-public emacs-explain-pause-mode
3562 (let ((commit "2356c8c3639cbeeb9751744dbe737267849b4b51")
3563 (revision "0"))
3564 (package
3565 (name "emacs-explain-pause-mode")
3566 (version (git-version "0.1" revision commit))
3567 (source (origin
3568 (method git-fetch)
3569 (uri (git-reference
3570 (url "https://github.com/lastquestion/explain-pause-mode")
3571 (commit commit)))
3572 (file-name (git-file-name name version))
3573 (sha256
3574 (base32
3575 "0frnfwqal9mrnrz6q4v7vcai26ahaw81894arff1yjw372pfgv7v"))))
3576 (build-system emacs-build-system)
3577 (native-inputs
3578 `(("emacs" ,emacs-buttercup)))
3579 (arguments
3580 '(#:tests? #t
3581 ;; Don't run case-tests as they will fail to create sockets because
3582 ;; the path is too long
3583 #:test-command '("make" "byte-compile" "unit-tests")
3584 ;; Parallel testing will cause the tests to run before
3585 ;; byte-compilation is finished
3586 #:parallel-tests? #f))
3587 (home-page "https://github.com/lastquestion/explain-pause-mode")
3588 (synopsis "Top-like interface to determine why Emacs paused")
3589 (description
3590 "This package monitors Emacs function calls and records their execution
3591 time. This information can be reviewed to determine what is causing the user
3592 interface to pause.")
3593 (license license:gpl3+))))
3594
3595 (define-public emacs-fill-column-indicator
3596 (package
3597 (name "emacs-fill-column-indicator")
3598 (version "1.90")
3599 (source
3600 (origin
3601 (method git-fetch)
3602 (uri (git-reference
3603 (url "https://github.com/alpaker/Fill-Column-Indicator")
3604 (commit version)))
3605 (file-name (git-file-name name version))
3606 (sha256
3607 (base32 "0snjznxdwwfdgccdcvrnk467416r244r2r5qcm2sga8l0ha9gw9z"))))
3608 (build-system emacs-build-system)
3609 (home-page "https://www.emacswiki.org/emacs/FillColumnIndicator")
3610 (synopsis "Graphically indicate the fill column")
3611 (description
3612 "Fill-column-indicator graphically indicates the location of the fill
3613 column by drawing a thin line down the length of the editing window.")
3614 (license license:gpl3+)))
3615
3616 (define-public emacs-grep-a-lot
3617 (package
3618 (name "emacs-grep-a-lot")
3619 (version "1.0.7")
3620 (source
3621 (origin
3622 (method git-fetch)
3623 (uri (git-reference
3624 (url "https://github.com/ZungBang/emacs-grep-a-lot")
3625 (commit "9f9f645b9e308a0d887b66864ff97d0fca1ba4ad")))
3626 (file-name (git-file-name name version))
3627 (sha256
3628 (base32 "1f8262mrlinzgnn4m49hbj1hm3c1mvzza24py4b37sasn49546lw"))))
3629 (build-system emacs-build-system)
3630 (home-page "https://github.com/ZungBang/emacs-grep-a-lot")
3631 (synopsis "Enables multiple grep buffers in Emacs")
3632 (description
3633 "This Emacs package allows managing multiple grep buffers.")
3634 (license license:gpl3+)))
3635
3636 (define-public emacs-fd
3637 (package
3638 (name "emacs-fd")
3639 (version "0.1.0")
3640 (source (origin
3641 (method git-fetch)
3642 (uri (git-reference
3643 (url "https://github.com/yqrashawn/fd-dired")
3644 (commit version)))
3645 (file-name (git-file-name name version))
3646 (sha256
3647 (base32
3648 "1fas0fpvym2lyzybwm44gly9jz6a2fpp72yxnwfbqqjkfgk9910y"))))
3649 (build-system emacs-build-system)
3650 (home-page "https://github.com/yqrashawn/fd-dired")
3651 (synopsis "Dired-mode interface for fd result")
3652 (description "This package provides a dired-mode interface for fd's
3653 result.")
3654 (license license:gpl3+)))
3655
3656 (define-public emacs-rg
3657 (package
3658 (name "emacs-rg")
3659 (version "2.0.2")
3660 (source
3661 (origin
3662 (method git-fetch)
3663 (uri (git-reference
3664 (url "https://github.com/dajva/rg.el")
3665 (commit version)))
3666 (file-name (git-file-name name version))
3667 (sha256
3668 (base32 "15qcnsnbni0aincm9pxpfhff3c5ivd5zs2s2qchjzhcn4kdm6kxr"))))
3669 (build-system emacs-build-system)
3670 (arguments
3671 '(#:phases
3672 (modify-phases %standard-phases
3673 (add-after 'unpack 'hardcode-rg-path
3674 ;; Hardcode the path to ripgrep.
3675 (lambda _
3676 (let ((file "rg.el"))
3677 (chmod file #o644)
3678 (emacs-substitute-sexps file
3679 ("(defcustom rg-executable" (which "rg")))))))))
3680 (propagated-inputs
3681 `(("emacs-s" ,emacs-s)
3682 ("emacs-transient" ,emacs-transient)
3683 ("emacs-wgrep" ,emacs-wgrep)))
3684 (inputs
3685 `(("ripgrep" ,ripgrep)))
3686 (home-page "https://rgel.readthedocs.io/en/latest/")
3687 (synopsis "Search tool based on @code{ripgrep}")
3688 (description
3689 "@code{rg} is an Emacs search package based on the @code{ripgrep} command
3690 line tool. It allows one to interactively search based on the editing context
3691 then refine or modify the search results.")
3692 (license license:gpl3+)))
3693
3694 (define-public emacs-inf-ruby
3695 (package
3696 (name "emacs-inf-ruby")
3697 (version "2.5.2")
3698 (source
3699 (origin
3700 (method git-fetch)
3701 (uri (git-reference
3702 (url "https://github.com/nonsequitur/inf-ruby")
3703 (commit version)))
3704 (file-name (git-file-name name version))
3705 (sha256
3706 (base32 "0a1hhvfbl6mq8rjsi77fg9fh5a91hi5scjrg9rjqc5ffbql67y0v"))))
3707 (build-system emacs-build-system)
3708 (home-page "https://github.com/nonsequitur/inf-ruby")
3709 (synopsis "Provides a REPL buffer connected to a Ruby subprocess in Emacs")
3710 (description
3711 "@code{inf-ruby} provides a Read Eval Print Loop (REPL) buffer, allowing
3712 for easy interaction with a ruby subprocess. Features include support for
3713 detecting specific uses of Ruby, e.g. when using rails, and using a
3714 appropriate console.")
3715 (license license:gpl3+)))
3716
3717 (define-public emacs-znc
3718 (package
3719 (name "emacs-znc")
3720 (version "0.0.2")
3721 (source
3722 (origin
3723 (method url-fetch)
3724 (uri (string-append "https://marmalade-repo.org/packages/znc-"
3725 version ".el"))
3726 (sha256
3727 (base32
3728 "1d8lqvybgyazin5z0g1c4l3rg1vzrrvf0saqs53jr1zcdg0lianh"))))
3729 (build-system emacs-build-system)
3730 (home-page "https://github.com/sshirokov/ZNC.el")
3731 (synopsis "Make ERC and ZNC get along better")
3732 (description
3733 "This is a thin wrapper around @code{erc} that enables one to use the ZNC
3734 IRC bouncer with ERC.")
3735 (license license:expat)))
3736
3737 (define-public emacs-erc-status-sidebar
3738 (let ((commit "ea4189a1dbfe60117359c36e681ad7c389e2968c")
3739 (revision "1"))
3740 (package
3741 (name "emacs-erc-status-sidebar")
3742 (version (git-version "0.1" revision commit))
3743 (source
3744 (origin
3745 (method git-fetch)
3746 (uri (git-reference
3747 (url "https://github.com/drewbarbs/erc-status-sidebar")
3748 (commit commit)))
3749 (file-name (git-file-name name version))
3750 (sha256
3751 (base32 "1hwlhzgx03z8891sblz56zdp8zj0izh72kxykgcnz5rrkyc3vfi3"))))
3752 (build-system emacs-build-system)
3753 (home-page "https://github.com/drewbarbs/erc-status-sidebar")
3754 (synopsis "Hexchat-like activity overview for ERC channels")
3755 (description
3756 "This package provides a Hexchat-like status bar for joined channels in
3757 ERC, an Emacs client for IRC (Internet Relay Chat). It relies on the
3758 @code{erc-track} module, and displays all the same information
3759 @code{erc-track} does in the mode line, but in an alternative format.")
3760 (license license:expat))))
3761
3762 (define-public emacs-shut-up
3763 (package
3764 (name "emacs-shut-up")
3765 (version "0.3.2")
3766 (source
3767 (origin
3768 (method git-fetch)
3769 (uri (git-reference
3770 (url "https://github.com/cask/shut-up")
3771 (commit (string-append "v" version))))
3772 (file-name (git-file-name name version))
3773 (sha256
3774 (base32 "103yvfgkj78i4bnv1fwk76izsa8h4wyj3vwj1vq7xggj607hkxzq"))))
3775 (build-system emacs-build-system)
3776 (home-page "https://github.com/cask/shut-up")
3777 (synopsis "Silence Emacs")
3778 (description "This package silences most output of Emacs when running an
3779 Emacs shell script.")
3780 (license license:expat)))
3781
3782 (define-public emacs-undercover
3783 (package
3784 (name "emacs-undercover")
3785 (version "0.6.1")
3786 (source
3787 (origin
3788 (method git-fetch)
3789 (uri (git-reference
3790 (url "https://github.com/sviridov/undercover.el")
3791 (commit version)))
3792 (file-name (git-file-name name version))
3793 (sha256
3794 (base32 "080bmfwyfi8663y8x594770hqz7mff7zvj2v03qdfwbhdr9w9y29"))))
3795 (build-system emacs-build-system)
3796 (propagated-inputs
3797 `(("emacs-dash" ,emacs-dash)
3798 ("emacs-shut-up" ,emacs-shut-up)))
3799 (home-page "https://github.com/sviridov/undercover.el")
3800 (synopsis "Test coverage library for Emacs Lisp")
3801 (description
3802 "Undercover is a test coverage library for software written in Emacs
3803 Lisp.")
3804 (license license:expat)))
3805
3806 (define-public emacs-paren-face
3807 (package
3808 (name "emacs-paren-face")
3809 (version "1.0.6")
3810 (source
3811 (origin
3812 (method git-fetch)
3813 (uri (git-reference
3814 (url "https://github.com/tarsius/paren-face")
3815 (commit version)))
3816 (file-name (git-file-name name version))
3817 (sha256
3818 (base32 "17bdcxah216z928387yx6z9lmp4jsi461n8fwiqaibn2qy5fagas"))))
3819 (build-system emacs-build-system)
3820 (home-page "https://github.com/tarsius/paren-face")
3821 (synopsis "Face for parentheses in Lisp modes")
3822 (description
3823 "This library defines a face named @code{parenthesis} used just for
3824 parentheses. The intended purpose of this face is to make parentheses less
3825 visible in Lisp code by dimming them. Lispers probably don't need to be
3826 constantly made aware of the existence of the parentheses. Dimming them might
3827 be even more useful for people new to Lisp who have not yet learned to
3828 subconsciously blend out the parentheses.")
3829 (license license:gpl3+)))
3830
3831 (define-public emacs-page-break-lines
3832 (package
3833 (name "emacs-page-break-lines")
3834 (version "0.11")
3835 (source
3836 (origin
3837 (method git-fetch)
3838 (uri (git-reference
3839 (url "https://github.com/purcell/page-break-lines")
3840 (commit version)))
3841 (file-name (git-file-name name version))
3842 (sha256
3843 (base32 "1wp974716ih2cz9kdmdz7xwjy1qnnfzdzlfr9kchknagw8d9nn12"))))
3844 (build-system emacs-build-system)
3845 (home-page "https://github.com/purcell/page-break-lines")
3846 (synopsis "Display page breaks as tidy horizontal lines")
3847 (description
3848 "This library provides a global mode which displays form feed characters
3849 as horizontal rules.")
3850 (license license:gpl3+)))
3851
3852 (define-public emacs-simple-httpd
3853 (package
3854 (name "emacs-simple-httpd")
3855 (version "1.5.1")
3856 (source
3857 (origin
3858 (method git-fetch)
3859 (uri (git-reference
3860 (url "https://github.com/skeeto/emacs-web-server")
3861 (commit version)))
3862 (file-name (git-file-name name version))
3863 (sha256
3864 (base32 "0dpn92rg813c4pq7a1vzj3znyxzp2lmvxqz6pzcqi0l2xn5r3wvb"))))
3865 (build-system emacs-build-system)
3866 (home-page "https://github.com/skeeto/emacs-web-server")
3867 (synopsis "HTTP server in pure Emacs Lisp")
3868 (description
3869 "This package provides a simple HTTP server written in Emacs Lisp to
3870 serve files and directory listings.")
3871 (license license:unlicense)))
3872
3873 (define-public emacs-skewer-mode
3874 (package
3875 (name "emacs-skewer-mode")
3876 (version "1.8.0")
3877 (source
3878 (origin
3879 (method git-fetch)
3880 (uri (git-reference
3881 (url "https://github.com/skeeto/skewer-mode")
3882 (commit version)))
3883 (file-name (git-file-name name version))
3884 (sha256
3885 (base32 "1ha7jl7776pk1bki5zj2q0jy66450mn8xr3aqjc0m9kj3gc9qxgw"))))
3886 (build-system emacs-build-system)
3887 (propagated-inputs
3888 `(("emacs-simple-httpd" ,emacs-simple-httpd)
3889 ("emacs-js2-mode" ,emacs-js2-mode)))
3890 (arguments '(#:include '("\\.el$" "\\.js$" "\\.html$")))
3891 (home-page "https://github.com/skeeto/skewer-mode")
3892 (synopsis "Live web development in Emacs")
3893 (description
3894 "Skewer-mode provides live interaction with JavaScript, CSS, and HTML in
3895 a web browser. Expressions are sent on-the-fly from an editing buffer to be
3896 evaluated in the browser, just like Emacs does with an inferior Lisp process
3897 in Lisp modes.")
3898 (license license:unlicense)))
3899
3900 (define-public emacs-litable
3901 (let ((commit "b0278f3f8dcff424bfbdfdefb545b1fbff33206f"))
3902 (package
3903 (name "emacs-litable")
3904 (version (git-version "0.1" "0" commit))
3905 (source (origin
3906 (method git-fetch)
3907 (uri (git-reference
3908 (url "https://github.com/Fuco1/litable")
3909 (commit commit)))
3910 (file-name (git-file-name name version))
3911 (sha256
3912 (base32
3913 "0bny40hv9a024n01clxns351cs4j4ifhgcc7m4743xncqf612p7g"))))
3914 (build-system emacs-build-system)
3915 (propagated-inputs
3916 `(("emacs-dash" ,emacs-dash)))
3917 (home-page "https://github.com/Fuco1/litable/")
3918 (synopsis "Dynamic evaluation replacement with Emacs")
3919 (description "This package provides dynamic evaluation in Emacs.")
3920 (license license:gpl3+))))
3921
3922 (define-public emacs-literate-calc-mode
3923 (let ((commit "e855bd718fa7d0d70b8f43264e10664369dd3a37")
3924 (revision "0"))
3925 (package
3926 (name "emacs-literate-calc-mode")
3927 (version (git-version "0.1" revision commit))
3928 (source
3929 (origin
3930 (method git-fetch)
3931 (uri (git-reference
3932 (url "https://github.com/sulami/literate-calc-mode.el")
3933 (commit commit)))
3934 (file-name (git-file-name name version))
3935 (sha256
3936 (base32 "0mk4cig8g8ibz97mvyan79fkypyanh7r0h7h20ibafq09nb0mw01"))))
3937 (build-system emacs-build-system)
3938 (propagated-inputs
3939 `(("emacs-s" ,emacs-s)))
3940 (home-page "https://github.com/sulami/literate-calc-mode.el")
3941 (synopsis "Literate programming for Emacs Calc")
3942 (description
3943 "This library provides literate programming for Calc. There is both
3944 a major and a minor mode. The major mode does some basic syntax highlighting,
3945 while the minor mode only evaluates all Calc statements while typing. In
3946 particular, the minor mode works quite well with Org or Markdown modes, or
3947 other markup language major modes.")
3948 (license license:gpl3+))))
3949
3950 (define-public emacs-standard-dirs
3951 (package
3952 (name "emacs-standard-dirs")
3953 (version "2.0.0")
3954 (home-page "https://github.com/lafrenierejm/standard-dirs.el")
3955 (source
3956 (origin
3957 (method git-fetch)
3958 (uri (git-reference
3959 (url home-page)
3960 (commit version)))
3961 (file-name (git-file-name name version))
3962 (sha256
3963 (base32 "0r814qcrhvx4qlx4sdzwdmrhiryslqclx0bnpp0qcrbx6g8qfl25"))))
3964 (build-system emacs-build-system)
3965 (propagated-inputs
3966 `(("emacs-f" ,emacs-f)
3967 ("emacs-s" ,emacs-s)))
3968 (synopsis "Platform-specific paths for config, cache, and other data")
3969 (description
3970 "This package provides platform-specific paths for reading and writing
3971 configuration, cache, and other data.")
3972 (license license:gpl3+)))
3973
3974 (define-public emacs-string-inflection
3975 (package
3976 (name "emacs-string-inflection")
3977 (version "1.0.6")
3978 (source (origin
3979 (method git-fetch)
3980 (uri (git-reference
3981 (url "https://github.com/akicho8/string-inflection")
3982 (commit "a150e7bdda60b7824d3a936750ce23f73b0e4edd")))
3983 (file-name (git-file-name name version))
3984 (sha256
3985 (base32
3986 "1k0sm552iawi49v4zis6dbb81d1rzgky9v0dpv7nj31gnb7bmy7k"))))
3987 (build-system emacs-build-system)
3988 (native-inputs
3989 `(("ert-runner" ,emacs-ert-runner)))
3990 (arguments
3991 `(#:tests? #t
3992 #:test-command '("ert-runner")))
3993 (home-page "https://github.com/akicho8/string-inflection")
3994 (synopsis "Convert symbol names between different naming conventions")
3995 (description
3996 "This Emacs package provides convenient methods for manipulating the
3997 naming style of a symbol. It supports different naming conventions such as:
3998
3999 @enumerate
4000 @item camel case
4001 @item Pascal case
4002 @item all upper case
4003 @item lower case separated by underscore
4004 @item etc...
4005 @end enumerate\n")
4006 (license license:gpl2+)))
4007
4008 (define-public emacs-stripe-buffer
4009 (package
4010 (name "emacs-stripe-buffer")
4011 (version "0.2.5")
4012 (source
4013 (origin
4014 (method git-fetch)
4015 (uri (git-reference
4016 (url "https://github.com/sabof/stripe-buffer")
4017 (commit version)))
4018 (file-name (git-file-name name version))
4019 (sha256
4020 (base32 "035ym1c1vzg6hjsnd258z4dkrfc11lj4c0y4gpgybhk54dq3w9dk"))))
4021 (build-system emacs-build-system)
4022 (home-page "https://github.com/sabof/stripe-buffer/")
4023 (synopsis "Add stripes to list buffers")
4024 (description
4025 "This Emacs package adds faces to add stripes to list buffers and org
4026 tables.")
4027 (license license:gpl2+)))
4028
4029 (define-public emacs-org-beautify-theme
4030 ;; Latest release (0.4) is not tagged, use commit hash.
4031 (let ((commit "df6a1114fda313e1689363e196c8284fbe2a2738")
4032 (revision "0"))
4033 (package
4034 (name "emacs-org-beautify-theme")
4035 (version "0.4")
4036 (source
4037 (origin
4038 (method git-fetch)
4039 (uri (git-reference
4040 (url "https://github.com/jonnay/org-beautify-theme")
4041 (commit commit)))
4042 (file-name (git-file-name name version))
4043 (sha256
4044 (base32 "1lkz7736swimad12khwbbqc4gxjydgr1k45p4mx03s25pv1w920y"))))
4045 (build-system emacs-build-system)
4046 (home-page "https://github.com/jonnay/org-beautify-theme")
4047 (synopsis "Theme to make Org mode look more beautiful")
4048 (description
4049 "The theme adds padding between headings, increases the size of titles,
4050 strike through completed TODO headings, changes Org blocks, changes Org check
4051 boxes, and more.")
4052 (license license:gpl3+))))
4053
4054 (define-public emacs-org-rich-yank
4055 (package
4056 (name "emacs-org-rich-yank")
4057 (version "0.2.1")
4058 (source
4059 (origin
4060 (method git-fetch)
4061 (uri (git-reference
4062 (url "https://github.com/unhammer/org-rich-yank")
4063 (commit (string-append "v" version))))
4064 (file-name (git-file-name name version))
4065 (sha256
4066 (base32 "0gxb0fnh5gxjmld0hnk5hli0cvdd8gjd27m30bk2b80kwldxlq1z"))))
4067 (build-system emacs-build-system)
4068 (home-page "https://github.com/unhammer/org-rich-yank")
4069 (synopsis "Automatically surround source code pasted into Org with
4070 @code{#+BEGIN_SRC} blocks")
4071 (description
4072 "This package provides a utility function for Org buffers that makes a
4073 @code{_SRC} block with the appropriate language annotation for code that has
4074 been copied from an Emacs major mode.")
4075 (license license:gpl2+)))
4076
4077 (define-public emacs-ob-erlang
4078 (let ((revision "1")
4079 (commit "f1a8c665b8f7d0ab32267a9961de8eed872e6333"))
4080 (package
4081 (name "emacs-ob-erlang")
4082 (version (git-version "20180827" revision commit))
4083 (source (origin
4084 (method git-fetch)
4085 (uri (git-reference
4086 (url "https://github.com/xfwduke/ob-erlang")
4087 (commit commit)))
4088 (file-name (git-file-name name version))
4089 (sha256
4090 (base32
4091 "0b5zajqiy6955yvlqwy92prrqy89lqchsv4ss2ylws3p4s14rhij"))))
4092 (build-system emacs-build-system)
4093 (home-page "https://github.com/xfwduke/ob-erlang/")
4094 (synopsis "Org-babel support for Erlang")
4095 (description "This package adds support for working with Erlang code
4096 blocks with @code{org-babel} in @code{org-mode}.")
4097 (license license:gpl3+))))
4098
4099 (define-public emacs-ob-restclient
4100 (let ((commit "f7449b2068498fe9d8ab9589e0a638148861533f"))
4101 (package
4102 (name "emacs-ob-restclient")
4103 (version (git-version "0.02" "2" commit))
4104 (source
4105 (origin
4106 (method git-fetch)
4107 (uri (git-reference
4108 (url "https://github.com/alf/ob-restclient.el")
4109 (commit commit)))
4110 (file-name (git-file-name name version))
4111 (sha256
4112 (base32 "0s3931w9ab3yfml2pmq71rw21yf6hpg7m3vihxyy3vs6zli1cvmq"))))
4113 (propagated-inputs
4114 `(("emacs-restclient" ,emacs-restclient)))
4115 (build-system emacs-build-system)
4116 (home-page "https://github.com/alf/ob-restclient.el")
4117 (synopsis "Org-babel functionality for @code{restclient-mode}")
4118 (description
4119 "This package integrates @code{restclient-mode} with Org.")
4120 (license license:gpl3+))))
4121
4122 (define-public emacs-org-now
4123 (let ((commit "8f6b277a73f1c66e58ccb4b7f40d406851befc91"))
4124 (package
4125 (name "emacs-org-now")
4126 (version (git-version "0.1-pre" "1" commit))
4127 (source
4128 (origin
4129 (method git-fetch)
4130 (uri (git-reference
4131 (url "https://github.com/alphapapa/org-now")
4132 (commit commit)))
4133 (file-name (git-file-name name version))
4134 (sha256
4135 (base32 "117zzkryznznk6h4i1jqzdn888nl019xrgxm2gza0lndx8dxsg2c"))))
4136 (propagated-inputs
4137 `(("emacs-dash" ,emacs-dash)))
4138 (build-system emacs-build-system)
4139 (home-page "https://github.com/alphapapa/org-now")
4140 (synopsis "Show current Org tasks in a sidebar")
4141 (description
4142 "This package provides commands to show Org headings in a sidebar
4143 window while working on them. After defining one heading as the \"now\"
4144 heading, other headings can be refiled to it with one command, and back to
4145 their original location with another.")
4146 (license license:gpl3+))))
4147
4148 (define-public emacs-rich-minority
4149 (package
4150 (name "emacs-rich-minority")
4151 (version "1.0.3")
4152 (source
4153 (origin
4154 (method git-fetch)
4155 (uri (git-reference
4156 (url "https://github.com/Malabarba/rich-minority")
4157 (commit version)))
4158 (file-name (git-file-name name version))
4159 (sha256
4160 (base32
4161 "1kn7c9qr9ykj68iqffzzmjsr6aazwac8cxb7j960sjb282rq0yyj"))))
4162 (build-system emacs-build-system)
4163 (home-page "https://github.com/Malabarba/rich-minority")
4164 (synopsis "Clean-up and beautify the list of minor modes")
4165 (description
4166 "This Emacs package hides and/or highlights minor modes in the
4167 mode-line.")
4168 (license license:gpl2+)))
4169
4170 (define-public emacs-robe
4171 (package
4172 (name "emacs-robe")
4173 (version "0.8.2")
4174 (source
4175 (origin
4176 (method git-fetch)
4177 (uri (git-reference
4178 (url "https://github.com/dgutov/robe")
4179 (commit version)))
4180 (file-name (git-file-name name version))
4181 (sha256
4182 (base32 "0qw18wi54yg971n4wnjqkd8lqj5lbs9ra8bvmngif2bzhqlfdsbn"))))
4183 (build-system emacs-build-system)
4184 (arguments
4185 '(#:include (cons "^lib\\/" %default-include)))
4186 (propagated-inputs
4187 `(("emacs-inf-ruby" ,emacs-inf-ruby)))
4188 (home-page "https://github.com/dgutov/robe")
4189 (synopsis "Ruby code assistance tool for Emacs")
4190 (description
4191 "Robe can provide information on loaded classes and modules in Ruby code,
4192 as well as where methods are defined. This allows the user to jump to method
4193 definitions, modules and classes, display method documentation and provide
4194 method and constant name completion.")
4195 (license license:gpl3+)))
4196
4197 (define-public emacs-robot-mode
4198 (let ((commit "32846e7e80ae3471b7c07f9709dcaa4f9b9ed4a0")
4199 (revision "1"))
4200 (package
4201 (name "emacs-robot-mode")
4202 (version (git-version "0.0.0" revision commit))
4203 (source (origin
4204 (method git-fetch)
4205 (uri (git-reference
4206 ;; A better maintained fork of robot-mode.
4207 (url "https://github.com/jvalkeejarvi/robot-mode")
4208 (commit commit)))
4209 (file-name (git-file-name name version))
4210 (sha256
4211 (base32
4212 "1i8wf7m0gml8zvvmlgppjzv78b432686p1qdbzgclc7qfcvzag0d"))))
4213 (build-system emacs-build-system)
4214 (propagated-inputs `(("emacs-s" ,emacs-s)))
4215 (home-page "https://github.com/jvalkeejarvi/robot-mode")
4216 (synopsis "Emacs mode for Robot Framework")
4217 (description "This major mode facilitates editing Robot Framework source
4218 files with features such as syntax highlighting, comments, finding keywords,
4219 completing keywords and smart indentation.")
4220 (license license:gpl3+))))
4221
4222 (define-public emacs-rspec
4223 (let ((commit "66ea7cc9699d6edc6115daa024818adbd85efc20")
4224 (revision "1"))
4225 (package
4226 (name "emacs-rspec")
4227 (version (git-version "1.11" revision commit))
4228 (source
4229 (origin
4230 (method git-fetch)
4231 (uri (git-reference
4232 (url "https://github.com/pezra/rspec-mode")
4233 (commit commit)))
4234 (file-name (git-file-name name version))
4235 (sha256
4236 (base32 "0b11s8r0pi7ah54km4yg4fqff8wkk409d25qnlwm1l94pdwjd1c8"))))
4237 (build-system emacs-build-system)
4238 (arguments
4239 `(#:include (cons "^snippets\\/rspec-mode\\/" %default-include)
4240 #:tests? #t
4241 #:test-command '("make" "test")))
4242 (home-page "https://github.com/pezra/rspec-mode")
4243 (synopsis "Provides a rspec mode for working with RSpec")
4244 (description
4245 "The Emacs RSpec mode provides keybindings for Ruby source files, e.g. to
4246 verify the spec associated with the current buffer, or entire project, as well
4247 as moving between the spec files, and corresponding code files.
4248
4249 Also included are keybindings for spec files and Dired buffers, as well as
4250 snippets for yasnippet.")
4251 (license license:gpl3+))))
4252
4253 (define-public emacs-smart-mode-line
4254 (package
4255 (name "emacs-smart-mode-line")
4256 (version "2.13")
4257 (source
4258 (origin
4259 (method git-fetch)
4260 (uri (git-reference
4261 (url "https://github.com/Malabarba/smart-mode-line")
4262 (commit version)))
4263 (file-name (git-file-name name version))
4264 (sha256
4265 (base32 "164b697xm1rwcggv37dymhf3npbyh2bs59z8b6m5x35lb4c3lf8b"))))
4266 (build-system emacs-build-system)
4267 (propagated-inputs
4268 `(("emacs-rich-minority" ,emacs-rich-minority)))
4269 (home-page "https://github.com/Malabarba/smart-mode-line")
4270 (synopsis "Color-coded smart mode-line")
4271 (description
4272 "Smart Mode Line is a mode-line theme for Emacs. It aims to be easy to
4273 read from small to large monitors by using colors, a prefix feature, and smart
4274 truncation.")
4275 (license license:gpl2+)))
4276
4277 (define-public emacs-sqlite
4278 ;; XXX: There is no tagged commit.
4279 (let ((commit "dad42b8bbca4994be1871343dd18fd6528ee5797")
4280 (revision "0"))
4281 (package
4282 (name "emacs-sqlite")
4283 (build-system emacs-build-system)
4284 (version (git-version "1.0" revision commit))
4285 (source
4286 (origin
4287 (method git-fetch)
4288 (uri (git-reference
4289 (url "https://gitlab.com/cnngimenez/sqlite.el")
4290 (commit commit)))
4291 (file-name (git-file-name name version))
4292 (sha256
4293 (base32 "06ln4vijl8kii3nzc5cscgsadx1fqgxksflijd3ain83bn8g4wrd"))))
4294 (home-page "https://gitlab.com/cnngimenez/sqlite.el")
4295 (synopsis "SQLite interface for Emacs Lisp")
4296 (description "Emacs SQLite is a simple SQLite interface for connecting
4297 and retrieving information using the SQLite program through Elisp programming.
4298 It is not intended as a user interface.")
4299 (license license:gpl3+))))
4300
4301 (define-public emacs-sr-speedbar
4302 (let ((commit "77a83fb50f763a465c021eca7343243f465b4a47")
4303 (revision "0"))
4304 (package
4305 (name "emacs-sr-speedbar")
4306 (version (git-version "20161025" revision commit))
4307 (source
4308 (origin
4309 (method git-fetch)
4310 (uri (git-reference
4311 (url "https://github.com/emacsorphanage/sr-speedbar")
4312 (commit commit)))
4313 (file-name (git-file-name name version))
4314 (sha256
4315 (base32
4316 "0sd12555hk7z721y00kv3crdybvcn1i08wmd148z5imayzibj153"))))
4317 (build-system emacs-build-system)
4318 (home-page "https://www.emacswiki.org/emacs/SrSpeedbar")
4319 (synopsis "Same frame Emacs @code{speedbar}")
4320 (description
4321 "This Emacs package allows you to show @code{M-x speedbar} in the
4322 same frame (in an extra window). You can customize the initial width of
4323 the speedbar window.")
4324 (license license:gpl3+))))
4325
4326 (define-public emacs-shell-switcher
4327 (package
4328 (name "emacs-shell-switcher")
4329 (version "1.0.1")
4330 (source
4331 (origin
4332 (method git-fetch)
4333 (uri (git-reference
4334 (url "https://github.com/DamienCassou/shell-switcher")
4335 (commit (string-append "v" version))))
4336 (file-name (git-file-name name version))
4337 (sha256
4338 (base32 "0ia7sdip4hl27avckv3qpqgm3k4ynvp3xxq1cy53bqfzzx0gcria"))))
4339 (build-system emacs-build-system)
4340 (home-page "https://github.com/DamienCassou/shell-switcher")
4341 (synopsis "Provide fast switching between shell buffers")
4342 (description
4343 "This package provides commands to quickly switch between shell buffers.")
4344 (license license:gpl3+)))
4345
4346 (define-public emacs-shx
4347 (package
4348 (name "emacs-shx")
4349 (version "1.5.0")
4350 (source (origin
4351 (method git-fetch)
4352 (uri (git-reference
4353 (url "https://github.com/riscy/shx-for-emacs")
4354 (commit (string-append "v" version))))
4355 (file-name (git-file-name name version))
4356 (sha256
4357 (base32 "1cb5w6p9gnfxgh8qp7yj2f5ibpk1b4b5af3ynldaaj6yfpa8hqzn"))))
4358 (build-system emacs-build-system)
4359 (arguments
4360 `(#:tests? #t
4361 #:test-command
4362 '("emacs" "--batch" "--quiet"
4363 "--script" "test/script.el")))
4364 (home-page "https://github.com/riscy/shx-for-emacs")
4365 (synopsis "Extras for the comint-mode shell")
4366 (description
4367 "This package extends @code{comint-mode}: it parses markup in the output
4368 stream, enabling plots and graphics to be embedded, and adds command-line
4369 functions which plug into Emacs (e.g. use @code{:e <filename>} to edit a
4370 file).")
4371 (license license:gpl3+)))
4372
4373 (define-public emacs-names
4374 (let ((commit "d8baba5360e5253938a25d3e005455b6d2d86971")
4375 (version "20151201.0")
4376 (revision "8"))
4377 (package
4378 (name "emacs-names")
4379 (version (git-version version revision commit))
4380 (source
4381 (origin
4382 (method git-fetch)
4383 (uri (git-reference
4384 (url "https://github.com/Malabarba/names")
4385 (commit commit)))
4386 (file-name (git-file-name name version))
4387 (sha256
4388 (base32
4389 "11wyha2q8y7bzqq3jrzix8n97ywvsibvddrahqcps1a1yqk4hzfz"))))
4390 (build-system emacs-build-system)
4391 (home-page "https://github.com/Malabarba/names/")
4392 (synopsis "Namespace implementation for Emacs Lisp")
4393 (description
4394 "This package provides a macro that writes your namespaces for you.")
4395 (license license:gpl3+))))
4396
4397 (define-public emacs-evil-leader
4398 (package
4399 (name "emacs-evil-leader")
4400 (version "0.4.3")
4401 (source
4402 (origin
4403 (method git-fetch)
4404 (uri
4405 (git-reference
4406 (url "https://github.com/cofi/evil-leader")
4407 (commit version)))
4408 (file-name (git-file-name name version))
4409 (sha256
4410 (base32 "1k2zinchs0jjllp8zkpggckyy63dkyi5yig3p46vh4w45jdzysk5"))))
4411 (inputs
4412 `(("emacs-evil" ,emacs-evil)))
4413 (build-system emacs-build-system)
4414 (home-page "https://github.com/cofi/evil-leader")
4415 (synopsis "Implement <leader> feature from Vim")
4416 (description
4417 "Evil Leader provides the @code{<leader>} feature from Vim that provides
4418 an easy way to bind keys under a configurable prefix key.")
4419 (license license:gpl3+)))
4420
4421 (define-public emacs-evil-textobj-syntax
4422 (let ((commit "2d9ba8c75c754b409aea7469f46a5cfa52a872f3")
4423 (version "0")
4424 (revision "1"))
4425 (package
4426 (name "emacs-evil-textobj-syntax")
4427 (version (git-version version revision commit))
4428 (source
4429 (origin
4430 (method git-fetch)
4431 (uri (git-reference
4432 (url "https://github.com/laishulu/evil-textobj-syntax/")
4433 (commit commit)))
4434 (file-name (git-file-name name version))
4435 (sha256
4436 (base32
4437 "031p5i3274dazp7rz6m5y38shfgszm1clmkcf58qfqlvy978ammc"))))
4438 (build-system emacs-build-system)
4439 (propagated-inputs `(("emacs-evil" ,emacs-evil)
4440 ("emacs-names" ,emacs-names)))
4441 (home-page "https://github.com/laishulu/evil-textobj-syntax/")
4442 (synopsis "Text objects based on syntax highlighting")
4443 (description
4444 "This package provides text objects for @code{evil-mode} with
4445 boundaries defined by syntax highlighting.")
4446 (license license:gpl3+))))
4447
4448 (define-public emacs-flycheck-flow
4449 (let ((commit "9e8e52cfc98af6a23fd906f9cb5d5d470d8cf82d")
4450 (version "1.1")
4451 (revision "1"))
4452 (package
4453 (name "emacs-flycheck-flow")
4454 (version (git-version version revision commit))
4455 (source
4456 (origin
4457 (method git-fetch)
4458 (uri (git-reference
4459 (url "https://github.com/lbolla/emacs-flycheck-flow")
4460 (commit commit)))
4461 (file-name (git-file-name name version))
4462 (sha256
4463 (base32
4464 "14qldlisbmxzammr500gyha2hiv2xgyzfc6mysqii06kbcqn1ik1"))))
4465 (build-system emacs-build-system)
4466 (propagated-inputs
4467 `(("emacs-flycheck" ,emacs-flycheck)))
4468 (home-page "https://github.com/lbolla/emacs-flycheck-flow")
4469 (synopsis "Flow support for @code{flycheck-mode}")
4470 (description
4471 "This package allows @code{flycheck-mode} to provide syntax-checking
4472 for Flow files.")
4473 (license license:gpl3+))))
4474
4475 (define-public emacs-flycheck-grammalecte
4476 (package
4477 (name "emacs-flycheck-grammalecte")
4478 (version "1.2")
4479 (source
4480 (origin
4481 (method url-fetch)
4482 (uri (string-append "https://git.deparis.io/"
4483 "flycheck-grammalecte/snapshot/"
4484 "flycheck-grammalecte-" version ".tar.xz"))
4485 (sha256
4486 (base32 "1mzmzyik843r4j0ibpwqrxmb0g4xmirrf3lxr010bddkmmxf749a"))))
4487 (build-system emacs-build-system)
4488 (arguments
4489 `(#:include '("\\.(el|py)$")
4490 #:exclude '("^test-profile.el$")
4491 #:emacs ,emacs ;need libxml support
4492 #:phases
4493 (modify-phases %standard-phases
4494 (add-after 'unpack 'specify-python-location
4495 ;; Hard-code python3 executable location in the library.
4496 (lambda* (#:key inputs #:allow-other-keys)
4497 (let ((python3 (string-append (assoc-ref inputs "python")
4498 "/bin/python3")))
4499 (substitute* "flycheck-grammalecte.el"
4500 (("\"python3") (string-append "\"" python3)))
4501 (substitute* '("conjugueur.py" "flycheck-grammalecte.py")
4502 (("/usr/bin/env python3?") python3))
4503 #t)))
4504 (add-before 'build 'link-to-grammalecte
4505 ;; XXX: The Python part of the package requires grammalecte, but
4506 ;; the library is not specified in PYTHONPATH, since we're not
4507 ;; using Python build system. As a workaround, we symlink
4508 ;; grammalecte libraries here.
4509 (lambda* (#:key inputs outputs #:allow-other-keys)
4510 (let* ((out (assoc-ref outputs "out"))
4511 (grammalecte (assoc-ref inputs "grammalecte"))
4512 (version ,(version-major+minor (package-version python))))
4513 (with-directory-excursion
4514 (string-append out "/share/emacs/site-lisp")
4515 (symlink (string-append grammalecte "/lib/"
4516 "python" version "/site-packages/"
4517 "grammalecte")
4518 "grammalecte"))
4519 #t))))))
4520 (inputs
4521 `(("grammalecte" ,grammalecte)
4522 ("python" ,python)))
4523 (propagated-inputs
4524 `(("emacs-flycheck" ,emacs-flycheck)))
4525 (home-page "https://git.deparis.io/flycheck-grammalecte/")
4526 (synopsis "Integrate Grammalecte with Flycheck")
4527 (description
4528 "Integrate the French grammar and typography checker Grammalecte with
4529 Flycheck to automatically look for mistakes in your writings. It also
4530 provides an easy way to find synonyms and antonyms for a given word (to avoid
4531 repetitions for example).")
4532 (license license:gpl3+)))
4533
4534 (define-public emacs-flycheck-guile
4535 (package
4536 (name "emacs-flycheck-guile")
4537 (version "0.2")
4538 (source
4539 (origin
4540 (method git-fetch)
4541 (uri
4542 (git-reference
4543 (url "https://github.com/flatwhatson/flycheck-guile")
4544 (commit version)))
4545 (file-name (git-file-name name version))
4546 (sha256
4547 (base32 "0cs5r0ik6a3bl1k3imjl0r8y1i69kx9x9m9cgxj470qk34brwyj5"))))
4548 (propagated-inputs
4549 `(("emacs-flycheck" ,emacs-flycheck)
4550 ("emacs-geiser" ,emacs-geiser)))
4551 (build-system emacs-build-system)
4552 (home-page "https://github.com/flatwhatson/flycheck-guile")
4553 (synopsis "GNU Guile support for Flycheck")
4554 (description
4555 "This package provides a Flycheck checker for GNU Guile using @code{guild
4556 compile}.")
4557 (license license:gpl3+)))
4558
4559 (define-public emacs-flycheck-ledger
4560 (package
4561 (name "emacs-flycheck-ledger")
4562 (version "0.5")
4563 (source
4564 (origin
4565 (method git-fetch)
4566 (uri (git-reference
4567 (url "https://github.com/purcell/flycheck-ledger.git")
4568 (commit version)))
4569 (file-name (git-file-name name version))
4570 (sha256
4571 (base32 "1djrj3is0dzrl2703bw7bclf33dp4xqmy144q7xj5pvpb9v3kf50"))))
4572 (inputs `(("ledger" ,ledger)))
4573 (arguments
4574 `(#:phases
4575 (modify-phases %standard-phases
4576 (add-after 'unpack 'configure
4577 (lambda* (#:key inputs outputs #:allow-other-keys)
4578 (let ((ledger (assoc-ref inputs "ledger")))
4579 ;; Specify the absolute executable location of ledger.
4580 (substitute* "flycheck-ledger.el"
4581 (("\"ledger\"") (string-append "\"" ledger "\""))))
4582 #t)))))
4583 (propagated-inputs
4584 `(("emacs-flycheck" ,emacs-flycheck)))
4585 (build-system emacs-build-system)
4586 (home-page "https://github.com/purcell/flycheck-ledger")
4587 (synopsis "Ledger support for Flycheck")
4588 (description
4589 "This Flycheck checker uses the output of @code{ledger balance} on the
4590 current file to find errors such as unbalanced transactions and syntax
4591 errors.")
4592 (license license:gpl3+)))
4593
4594 (define-public emacs-flycheck-rust
4595 (package
4596 (name "emacs-flycheck-rust")
4597 (version "1.1")
4598 (source
4599 (origin
4600 (method git-fetch)
4601 (uri
4602 (git-reference
4603 (url "https://github.com/flycheck/flycheck-rust")
4604 (commit version)))
4605 (file-name (git-file-name name version))
4606 (sha256
4607 (base32 "1fh6j5w2387nh2fwwjphkhq17cgj5m2q5k0fhidvgc2w65lzbr1r"))))
4608 (propagated-inputs
4609 `(("emacs-dash" ,emacs-dash)
4610 ("emacs-flycheck" ,emacs-flycheck)
4611 ("emacs-let-alist" ,emacs-let-alist)))
4612 (build-system emacs-build-system)
4613 (home-page "https://github.com/flycheck/flycheck-rust")
4614 (synopsis "Rust/Cargo support for Flycheck")
4615 (description
4616 "This Flycheck extension configures Flycheck automatically for
4617 the current Cargo project.")
4618 (license license:gpl3+)))
4619
4620 (define-public emacs-elisp-demos
4621 (package
4622 (name "emacs-elisp-demos")
4623 (version "2020.02.19")
4624 (source
4625 (origin
4626 (method git-fetch)
4627 (uri (git-reference
4628 (url "https://github.com/xuchunyang/elisp-demos")
4629 (commit version)))
4630 (file-name (git-file-name name version))
4631 (sha256
4632 (base32
4633 "0mckgaz92v3y2vlkggx9kd51fd1mahylw39c42l51dyv8wscm7sc"))))
4634 (build-system emacs-build-system)
4635 (arguments
4636 `(#:include '("\\.el$" "\\.org$")
4637 #:tests? #t
4638 #:test-command '("make" "test")))
4639 (home-page "https://github.com/xuchunyang/elisp-demos/")
4640 (synopsis "Enhance @code{*Help*} buffers with additional examples")
4641 (description
4642 "This package injects example uses of Elisp functions into their
4643 respective @code{*Help*} buffers.")
4644 (license license:gpl3+)))
4645
4646 (define-public emacs-docker-compose-mode
4647 (package
4648 (name "emacs-docker-compose-mode")
4649 (version "1.1.0")
4650 (source
4651 (origin
4652 (method git-fetch)
4653 (uri (git-reference
4654 (url "https://github.com/meqif/docker-compose-mode")
4655 (commit version)))
4656 (file-name (git-file-name name version))
4657 (sha256
4658 (base32
4659 "1fbcxwfvm33xcdj3cs26d9i1zyrryyjjkv7sc3mfxd45nq8d3ivj"))))
4660 (build-system emacs-build-system)
4661 (propagated-inputs
4662 `(("emacs-dash" ,emacs-dash)
4663 ("emacs-f" ,emacs-f)))
4664 (home-page "https://github.com/meqif/docker-compose-mode/")
4665 (synopsis "Major mode for editing @file{docker-compose} files")
4666 (description
4667 "This is a major mode for @file{docker-compose} files that provides
4668 completion of relevant keywords.")
4669 (license license:expat)))
4670
4671 (define-public emacs-dvc
4672 (let ((revision "591") ;no tags or official releases
4673 (guix-revision "1"))
4674 (package
4675 (name "emacs-dvc")
4676 (version (string-append "0.0.0-" guix-revision "." revision))
4677 (source
4678 (origin
4679 (method bzr-fetch)
4680 (uri (bzr-reference
4681 (url "lp:dvc")
4682 (revision revision)))
4683 (sha256
4684 (base32
4685 "03pqn493w70wcpgaxvqnfgynxghw114l9pyiv3r414d84vzhan6h"))
4686 (file-name (string-append name "-" version "-checkout"))))
4687 (build-system gnu-build-system)
4688 (arguments
4689 `(#:configure-flags
4690 (list (string-append "--with-lispdir=" (assoc-ref %outputs "out")
4691 "/share/emacs/site-lisp/"))
4692 #:tests? #f ;no test suite
4693 #:phases
4694 (modify-phases %standard-phases
4695 (add-before 'build 'set-home
4696 ;; Something in dvc-bookmarks.el attempts to write config files in
4697 ;; $HOME during the autoload generation.
4698 (lambda _ (setenv "HOME" (getenv "TMPDIR")) #t))
4699 (add-before 'build 'fix-texinfo
4700 ;; See https://bugs.launchpad.net/dvc/+bug/1264383.
4701 (lambda _
4702 (substitute* "texinfo/dvc-intro.texinfo"
4703 (("@itemx update ``to''")
4704 "@item update ``to''")
4705 (("@itemx brief")
4706 "@item brief")
4707 (("@itemx full")
4708 "@item full")
4709 (("@itemx drop")
4710 "@item drop")
4711 (("@itemx left file")
4712 "@item left file"))
4713 #t)))))
4714 (native-inputs
4715 `(("autoconf" ,autoconf)
4716 ("automake" ,automake) ;for aclocal
4717 ("emacs" ,emacs-minimal)
4718 ("texinfo" ,texinfo)))
4719 (home-page "http://xsteve.at/prg/emacs_dvc/index.html")
4720 (synopsis "Emacs front-end for various distributed version control systems.")
4721 (description "DVC is a legacy Emacs front-end for a number of
4722 distributed version control systems. It currently supports GNU Arch, GNU
4723 Bazaar, git, Mercurial, and Monotone. It also provides some integration with
4724 Gnus, e.g., for applying patches received by email.")
4725 (license license:gpl2+))))
4726
4727 (define-public emacs-sudo-edit
4728 (let ((commit "cc3d478937b1accd38742bfceba92af02ee9357d")
4729 (revision "6"))
4730 (package
4731 (name "emacs-sudo-edit")
4732 (version (git-version "0.1.0" revision commit))
4733 (source
4734 (origin
4735 (method git-fetch)
4736 (uri (git-reference
4737 (url "https://github.com/nflath/sudo-edit")
4738 (commit commit)))
4739 (file-name (git-file-name name version))
4740 (sha256
4741 (base32
4742 "1qv58x5j5a3v1s2ylhck1ykbfclq0mbi0gsvaql3nyv8cxazqlwl"))))
4743 (build-system emacs-build-system)
4744 (native-inputs
4745 `(("emacs-undercover" ,emacs-undercover)))
4746 (arguments
4747 `(#:phases
4748 (modify-phases %standard-phases
4749 (add-before 'check 'fix-makefile
4750 (lambda _
4751 (substitute* "Makefile"
4752 (("\\$\\(CASK\\) exec ") ""))
4753 #t)))
4754 #:tests? #t
4755 #:test-command '("make" "test")))
4756 (home-page "https://github.com/nflath/sudo-edit/")
4757 (synopsis "Open files as another user")
4758 (description
4759 "This package allows editing files as another user, including the root
4760 user.")
4761 (license license:gpl3+))))
4762
4763 (define-public emacs-miniedit
4764 (package
4765 (name "emacs-miniedit")
4766 (version "2.0")
4767 (source
4768 (origin
4769 (method git-fetch)
4770 (uri (git-reference
4771 (url "https://github.com/emacsmirror/miniedit")
4772 (commit version)))
4773 (file-name (git-file-name name version))
4774 (sha256
4775 (base32
4776 "1850z96gly0jnr50472idqz1drzqarr0n23bbasslrc501xkg0bq"))))
4777 (build-system emacs-build-system)
4778 (home-page "https://github.com/emacsmirror/miniedit/")
4779 (synopsis "Enhanced editing for minibuffer fields")
4780 (description
4781 "This package provides a function that can be called from the
4782 minibuffer to enable editing the minibuffer input in another buffer with
4783 @code{text-mode} enabled.")
4784 (license license:gpl2+)))
4785
4786 (define-public emacs-ob-ipython
4787 (package
4788 (name "emacs-ob-ipython")
4789 (version "20180224")
4790 (source (origin
4791 (method git-fetch)
4792 (uri (git-reference
4793 (commit "7147455230841744fb5b95dcbe03320313a77124")
4794 (url "https://github.com/gregsexton/ob-ipython")))
4795 (file-name (git-file-name name version))
4796 (sha256
4797 (base32
4798 "1a10fc2jk37ni5sjjvf87s5nyaz2a6h2mlj5dxh4dhv5sd3bb85p"))))
4799 (build-system emacs-build-system)
4800 (propagated-inputs
4801 `(("emacs-f" ,emacs-f)))
4802 (home-page "http://www.gregsexton.org")
4803 (synopsis "Org-Babel functions for IPython evaluation")
4804 (description "This package adds support to Org-Babel for evaluating Python
4805 source code using IPython.")
4806 (license license:gpl3+)))
4807
4808 (define-public emacs-debbugs
4809 (package
4810 (name "emacs-debbugs")
4811 (version "0.26")
4812 (source
4813 (origin
4814 (method url-fetch)
4815 (uri (string-append "https://elpa.gnu.org/packages/debbugs-"
4816 version ".tar"))
4817 (sha256
4818 (base32 "14n2rrs3ccvlp8fhxs08awlqdfawxwbj8nq1xpa0wwlbfvxnf24c"))))
4819 (build-system emacs-build-system)
4820 (arguments '(#:include '("\\.el$" "\\.wsdl$" "\\.info$")))
4821 (propagated-inputs
4822 `(("emacs-async" ,emacs-async)))
4823 (home-page "https://elpa.gnu.org/packages/debbugs.html")
4824 (synopsis "Access the Debbugs bug tracker in Emacs")
4825 (description
4826 "This package lets you access the @uref{http://bugs.gnu.org,GNU Bug
4827 Tracker} from within Emacs.
4828
4829 For instance, it defines the command @code{M-x debbugs-gnu} for listing bugs,
4830 and the command @code{M-x debbugs-gnu-search} for bug searching. If you
4831 prefer the listing of bugs as TODO items of @code{org-mode}, you could use
4832 @code{M-x debbugs-org} and related commands.
4833
4834 A minor mode @code{debbugs-browse-mode} let you browse URLs to the GNU Bug
4835 Tracker as well as bug identifiers prepared for @code{bug-reference-mode}.")
4836 (license license:gpl3+)))
4837
4838 (define-public emacs-ert-expectations
4839 (package
4840 (name "emacs-ert-expectations")
4841 (version "0.2")
4842 (source
4843 (origin
4844 (method url-fetch)
4845 (uri "https://www.emacswiki.org/emacs/download/ert-expectations.el")
4846 (sha256
4847 (base32
4848 "0cwy3ilsid90abzzjb7ha2blq9kmv3gfp3icwwfcz6qczgirq6g7"))))
4849 (build-system emacs-build-system)
4850 (home-page "https://www.emacswiki.org/emacs/ert-expectations.el")
4851 (synopsis "Simple unit test framework for Emacs Lisp")
4852 (description "@code{emacs-ert-expectations} is a simple unit test
4853 framework for Emacs Lisp to be used with @code{ert}.")
4854 (license license:gpl3+)))
4855
4856 (define-public emacs-deferred
4857 (package
4858 (name "emacs-deferred")
4859 (version "0.5.1")
4860 (home-page "https://github.com/kiwanami/emacs-deferred")
4861 (source (origin
4862 (method git-fetch)
4863 (uri (git-reference
4864 (url home-page)
4865 (commit (string-append "v" version))))
4866 (file-name (git-file-name name version))
4867 (sha256
4868 (base32
4869 "0xy9zb6wwkgwhcxdnslqk52bq3z24chgk6prqi4ks0qcf2bwyh5h"))))
4870 (build-system emacs-build-system)
4871 (arguments
4872 `(#:phases
4873 (modify-phases %standard-phases
4874 (add-after 'unpack 'set-shell
4875 ;; Setting the SHELL environment variable is required for the tests
4876 ;; to find sh.
4877 (lambda _
4878 (setenv "SHELL" (which "sh"))
4879 #t))
4880 (add-before 'check 'fix-makefile
4881 (lambda _
4882 (substitute* "Makefile"
4883 (("\\$\\(CASK\\) exec ") ""))
4884 #t)))
4885 #:tests? #t
4886 #:test-command '("make" "test")))
4887 (native-inputs
4888 `(("emacs-ert-expectations" ,emacs-ert-expectations)
4889 ("emacs-undercover" ,emacs-undercover)
4890 ("ert-runner" ,emacs-ert-runner)))
4891 (synopsis "Simple asynchronous functions for Emacs Lisp")
4892 (description
4893 "The @code{deferred.el} library provides support for asynchronous tasks.
4894 The API is almost the same as that of
4895 @uref{https://github.com/cho45/jsdeferred, JSDeferred}, a JavaScript library
4896 for asynchronous tasks.")
4897 (license license:gpl3+)))
4898
4899 (define-public emacs-butler
4900 (package
4901 (name "emacs-butler")
4902 (version "0.2.4")
4903 (home-page "https://github.com/AshtonKem/Butler")
4904 (source (origin
4905 (method git-fetch)
4906 (uri (git-reference
4907 (url home-page)
4908 (commit version)))
4909 (file-name (git-file-name name version))
4910 (sha256
4911 (base32
4912 "1pii9dw4skq7nr4na6qxqasl36av8cwjp71bf1fgppqpcd9z8skj"))))
4913 (build-system emacs-build-system)
4914 (propagated-inputs
4915 `(("emacs-deferred" ,emacs-deferred)))
4916 (synopsis "Emacs client for Jenkins")
4917 (description
4918 "Butler provides an interface to connect to Jenkins continuous
4919 integration servers. Users can specify a list of server in the
4920 @code{butler-server-list} variable and then use @code{M-x butler-status} to
4921 view the build status of those servers' build jobs, and possibly to trigger
4922 build jobs.")
4923 (license license:gpl3+)))
4924
4925 (define-public emacs-company
4926 (package
4927 (name "emacs-company")
4928 (version "0.9.13")
4929 (source
4930 (origin
4931 (method url-fetch)
4932 (uri (string-append "https://elpa.gnu.org/packages/"
4933 "company-" version ".tar"))
4934 (sha256
4935 (base32 "1c9x9wlzzsn7vrsm57l2l44nqx455saa6wrm853szzg09qn8dlnw"))))
4936 (build-system emacs-build-system)
4937 (home-page "https://company-mode.github.io/")
4938 (synopsis "Modular text completion framework")
4939 (description
4940 "Company is a modular completion mechanism. Modules for retrieving
4941 completion candidates are called back-ends, modules for displaying them are
4942 front-ends. Company comes with many back-ends, e.g., @code{company-elisp}.
4943 These are distributed in separate files and can be used individually.")
4944 (license license:gpl3+)))
4945
4946 (define-public emacs-company-box
4947 ;; There is no release yet. Version is extracted from the main
4948 ;; file.
4949 (let ((version "0.0.1")
4950 (revision "0")
4951 (commit "be37a9a30dc112ab172af21af694e2cb04a74f85"))
4952 (package
4953 (name "emacs-company-box")
4954 (version (git-version version revision commit))
4955 (source
4956 (origin
4957 (method git-fetch)
4958 (uri (git-reference
4959 (url "https://github.com/sebastiencs/company-box")
4960 (commit commit)))
4961 (file-name (git-file-name name version))
4962 (sha256
4963 (base32 "13fgmdy51gqdwijqfvb784pirx4lgva0y7ysi0c3fcx8f82cdj59"))))
4964 (build-system emacs-build-system)
4965 (propagated-inputs
4966 `(("emacs-company" ,emacs-company)
4967 ("emacs-dash" ,emacs-dash)
4968 ("emacs-frame-local" ,emacs-frame-local)))
4969 (home-page "https://github.com/sebastiencs/company-box")
4970 (synopsis "Company front-end with icons")
4971 (description
4972 "Company box is a Company front-end. It supports different
4973 colors for different backends, associates icons to functions,
4974 variables... and their backends, and displays candidate's
4975 documentation. It is not limited by the current window size or
4976 buffer's text properties.
4977
4978 This package is not compatible with a TTY.")
4979 (license license:gpl3+))))
4980
4981 (define-public emacs-company-posframe
4982 (let ((version "0.1.0")
4983 (revision "2")
4984 (commit "4bfb8bccef4b64479f4147de6bf6fbd05df2a67e"))
4985 (package
4986 (name "emacs-company-posframe")
4987 (version (git-version version revision commit))
4988 (source (origin
4989 (method git-fetch)
4990 (uri (git-reference
4991 (url "https://github.com/tumashu/company-posframe")
4992 (commit commit)))
4993 (file-name (git-file-name name version))
4994 (sha256
4995 (base32
4996 "0k19gkh8xbap4j1jjqw6lnkp1v2q76fz3ryrns7kvbzmca3y5599"))))
4997 (build-system emacs-build-system)
4998 (propagated-inputs
4999 `(("emacs-company" ,emacs-company)
5000 ("emacs-posframe" ,emacs-posframe)))
5001 (home-page "https://github.com/tumashu/company-posframe")
5002 (synopsis "Use a posframe for @code{emacs-company}'s candidate menu")
5003 (description
5004 "Allows @code{emacs-company} to use child frames for its candidate menus.
5005
5006 @code{emacs-company-posframe} is fast enough for daily use and supports CJK
5007 languages.")
5008 (license license:gpl3+))))
5009
5010 (define-public emacs-irony-mode
5011 (package
5012 (name "emacs-irony-mode")
5013 (version "1.4.0")
5014 (home-page "https://github.com/Sarcasm/irony-mode")
5015 (source (origin
5016 (method git-fetch)
5017 (uri (git-reference
5018 (url (string-append home-page ".git"))
5019 (commit (string-append "v" version))))
5020 (file-name (git-file-name name version))
5021 (sha256
5022 (base32
5023 "0n2nfcq58md1p2xdhq1smh8v7lsyj0ci7ma5xyd6bkg5rvhsh10i"))))
5024 (build-system emacs-build-system)
5025 (inputs `(("server" ,emacs-irony-mode-server)))
5026 (arguments `(#:phases
5027 (modify-phases %standard-phases
5028 (add-after 'unpack 'configure
5029 (lambda* (#:key inputs #:allow-other-keys)
5030 (chmod "irony.el" #o644)
5031 (emacs-substitute-variables "irony.el"
5032 ("irony-server-install-prefix"
5033 (assoc-ref inputs "server")))
5034 #t)))))
5035 (synopsis "C/C++/ObjC Code completion and syntax checks for Emacs")
5036 (description "Irony-mode provides Clang-assisted syntax checking and
5037 completion for C, C++, and ObjC in GNU Emacs. Using @code{libclang} it can
5038 provide syntax checking and autocompletion on compiler level which is very
5039 resistant against false positives. It also integrates well with other
5040 packages like @code{eldoc-mode} and especially @code{company-mode} as
5041 described on the homepage.")
5042 (license license:gpl3+)))
5043
5044 (define-public emacs-irony-mode-server
5045 (package (inherit emacs-irony-mode)
5046 (name "emacs-irony-mode-server")
5047 (inputs
5048 `(("clang" ,clang)))
5049 (arguments
5050 `(#:phases
5051 (modify-phases %standard-phases
5052 (replace 'configure
5053 (lambda* (#:key outputs #:allow-other-keys)
5054 (let ((out (assoc-ref outputs "out")))
5055 (invoke "cmake"
5056 "server"
5057 (string-append "-DCMAKE_INSTALL_PREFIX=" out)) #t))))))
5058 (build-system cmake-build-system)
5059 (synopsis "Server for the Emacs @dfn{irony mode}")))
5060
5061 (define-public emacs-company-irony
5062 (package
5063 (name "emacs-company-irony")
5064 (version "1.1.0")
5065 (source (origin
5066 (method git-fetch)
5067 (uri (git-reference
5068 (url "https://github.com/Sarcasm/company-irony")
5069 (commit (string-append "v" version))))
5070 (sha256 (base32
5071 "1qgyam2vyjw90kpxns5cd6bq3qiqjhzpwrlvmi18vyb69qcgqd8a"))
5072 (file-name (git-file-name name version))))
5073 (build-system emacs-build-system)
5074 (inputs
5075 `(("emacs-irony-mode" ,emacs-irony-mode)
5076 ("emacs-company" ,emacs-company)))
5077 (synopsis "C++ completion backend for Company using irony-mode")
5078 (description "This backend for company-mode allows for C++ code completion
5079 with irony-mode using clang-tooling.")
5080 (home-page "https://github.com/Sarcasm/company-irony")
5081 (license license:gpl3+)))
5082
5083 (define-public emacs-flycheck-irony
5084 (package
5085 (name "emacs-flycheck-irony")
5086 (version "0.1.0")
5087 (source (origin
5088 (method git-fetch)
5089 (uri (git-reference
5090 (url "https://github.com/Sarcasm/flycheck-irony")
5091 (commit (string-append "v" version))))
5092 (file-name (git-file-name name version))
5093 (sha256
5094 (base32 "0qa5a8wzvzxwqql92ibc9s43k8sj3vwn7skz9hfr8av0skkhx996"))))
5095 (build-system emacs-build-system)
5096 (inputs
5097 `(("irony-mode" ,emacs-irony-mode)
5098 ("flycheck-mode" ,emacs-flycheck)
5099 ("emacs-company" ,emacs-company)))
5100 (synopsis "Live syntax checking frontend for Flycheck using irony-mode")
5101 (description "This package provides a frontend for Flycheck that lets
5102 irony-mode do the syntax checking.")
5103 (home-page "https://github.com/Sarcasm/flycheck-irony")
5104 (license license:gpl3+)))
5105
5106 (define-public emacs-irony-eldoc
5107 (package
5108 (name "emacs-irony-eldoc")
5109 (version (package-version emacs-irony-mode))
5110 (source
5111 (origin
5112 (method git-fetch)
5113 (uri (git-reference
5114 (url "https://github.com/ikirill/irony-eldoc")
5115 (commit "0df5831eaae264a25422b061eb2792aadde8b3f2")))
5116 (file-name (git-file-name name version))
5117 (sha256
5118 (base32 "1l5qpr66v1l12fb50yh73grb2rr85xxmbj19mm33b5rdrq2bqmmd"))))
5119 (build-system emacs-build-system)
5120 (inputs
5121 `(("irony-mode" ,emacs-irony-mode)))
5122 (synopsis "Eldoc integration for irony-mode")
5123 (description "Irony-eldoc is an eldoc extension that shows documentation
5124 for the current function or variable in the minibuffer.")
5125 (home-page "https://github.com/ikirill/irony-eldoc")
5126 (license license:gpl3+)))
5127
5128 (define-public emacs-company-quickhelp
5129 ;; XXX: release version 2.3.0 is on an unmaintained branch for some reason,
5130 ;; so we use the latest 2.2.0 commit instead
5131 (let ((commit "479676cade80a9f03802ca3d956591820ed5c537")
5132 (revision "1"))
5133 (package
5134 (name "emacs-company-quickhelp")
5135 (version (git-version "2.2.0" revision commit))
5136 (source
5137 (origin
5138 (method git-fetch)
5139 (uri (git-reference
5140 (url "https://github.com/expez/company-quickhelp")
5141 (commit commit)))
5142 (file-name (git-file-name name version))
5143 (sha256
5144 (base32 "0hbqpnaf4hnin3nmdzmfj3v22kk9a97b6zssqs96ns36d9h52xcp"))))
5145 (build-system emacs-build-system)
5146 (propagated-inputs
5147 `(("emacs-pos-tip" ,emacs-pos-tip)
5148 ("emacs-company" ,emacs-company)))
5149 (home-page "https://github.com/expez/company-quickhelp")
5150 (synopsis "Popup documentation for completion candidates")
5151 (description "@code{company-quickhelp} shows documentation for the
5152 completion candidate when using the Company text completion framework.")
5153 (license license:gpl3+))))
5154
5155 (define-public emacs-math-symbol-lists
5156 (let ((commit "dc7531cff0c845d5470a50c24d5d7309b2ced7eb")
5157 (revision "1"))
5158 (package
5159 (name "emacs-math-symbol-lists")
5160 (version (git-version "1.2.1" revision commit))
5161 (source
5162 (origin
5163 (method git-fetch)
5164 (uri (git-reference
5165 (url "https://github.com/vspinu/math-symbol-lists")
5166 (commit commit)))
5167 (file-name (git-file-name name version))
5168 (sha256
5169 (base32 "094m21i9rns6m59cmhxcivxxafbg52w8f8na4y3v47aq67zmhhqm"))))
5170 (build-system emacs-build-system)
5171 (home-page "https://github.com/vspinu/math-symbol-lists")
5172 (synopsis "Lists of Unicode math symbols and @code{LaTeX} commands")
5173 (description "This is a storage package used by completion engines like
5174 @code{company-math}.")
5175 (license license:gpl3+))))
5176
5177 (define-public emacs-company-coq
5178 (package
5179 (name "emacs-company-coq")
5180 (version "1.0.1")
5181 (source
5182 (origin
5183 (method git-fetch)
5184 (uri
5185 (git-reference
5186 (url "https://github.com/cpitclaudel/company-coq")
5187 (commit version)))
5188 (file-name (git-file-name name version))
5189 (sha256
5190 (base32 "0dxi4h8xqq5647k7h89s4pi8nwyj3brlhsckrv3p3b1g4dr6mk3b"))))
5191 (inputs
5192 `(("emacs-company" ,emacs-company)
5193 ("emacs-company-math" ,emacs-company-math)
5194 ("emacs-dash" ,emacs-dash)
5195 ("emacs-yasnippet" ,emacs-yasnippet)))
5196 (build-system emacs-build-system)
5197 (home-page "https://github.com/cpitclaudel/company-coq")
5198 (synopsis "Emacs extensions for Proof General's Coq mode")
5199 (description "This package includes a collection of Company mode backends
5200 for Proof-General's Coq mode, and many useful extensions to Proof-General. It
5201 features:
5202
5203 @itemize
5204 @item Prettification of operators, types, and subscripts,
5205 @item Auto-completion,
5206 @item Insertion of cases,
5207 @item Fully explicit intros,
5208 @item Outlines, code folding, and jumping to definition,
5209 @item Help with errors,
5210 @item and more.
5211 @end itemize")
5212 (license license:gpl3+)))
5213
5214 (define-public emacs-company-math
5215 (let ((commit "600e49449644f6835f9dc3501bc58461999e8ab9")
5216 (revision "1"))
5217 (package
5218 (name "emacs-company-math")
5219 (version (git-version "1.3" revision commit))
5220 (source
5221 (origin
5222 (method git-fetch)
5223 (uri (git-reference
5224 (url "https://github.com/vspinu/company-math")
5225 (commit commit)))
5226 (file-name (git-file-name name version))
5227 (sha256
5228 (base32
5229 "1ps2lpkzn8mjbpcbvvy1qz3xbgrh6951x8y9bsd1fm32drdph9lh"))))
5230 (build-system emacs-build-system)
5231 (propagated-inputs
5232 `(("emacs-math-symbol-lists" ,emacs-math-symbol-lists)
5233 ("emacs-company" ,emacs-company)))
5234 (home-page "https://github.com/vspinu/company-math")
5235 (synopsis "Completion backends for Unicode math symbols and @code{LaTeX} tags")
5236 (description "This package provides a backend for use with
5237 @code{company-mode} allowing for completion of common math symbols.")
5238 (license license:gpl3+))))
5239
5240 (define-public emacs-compdef
5241 (let ((commit "67104a38763cc819644f711248b170a43bce151b")
5242 (revision "2"))
5243 (package
5244 (name "emacs-compdef")
5245 (version (git-version "0.2" revision commit))
5246 (source
5247 (origin
5248 (method git-fetch)
5249 (uri (git-reference
5250 (url "https://gitlab.com/jjzmajic/compdef.git")
5251 (commit commit)))
5252 (file-name (git-file-name name version))
5253 (sha256
5254 (base32 "1f6y6cr67gps9jp5hd20xszfd3k26v70g6z4g5db6wdkvlnc2wkg"))))
5255 (build-system emacs-build-system)
5256 (home-page "https://gitlab.com/jjzmajic/compdef")
5257 (synopsis "Set local completion backends")
5258 (description "This package provides a function to cleanly set local
5259 completion backends according to mode, and integrates with
5260 @code{use-package}.")
5261 (license license:gpl3+))))
5262
5263 (define-public emacs-icomplete-vertical
5264 (package
5265 (name "emacs-icomplete-vertical")
5266 (version "0.1")
5267 (source
5268 (origin
5269 (method git-fetch)
5270 (uri (git-reference
5271 (url "https://github.com/oantolin/icomplete-vertical")
5272 (commit version)))
5273 (file-name (git-file-name name version))
5274 (sha256
5275 (base32
5276 "1bqnlvv1gvrjriazvzd3bq98r8ii6fqax0zznhvkl1ij5pf55a90"))))
5277 (build-system emacs-build-system)
5278 (home-page "https://github.com/oantolin/icomplete-vertical")
5279 (synopsis "Display icomplete candidates vertically")
5280 (description
5281 "This package defines a global minor mode to display Icomplete
5282 completion candidates vertically.")
5283 (license license:gpl3+)))
5284
5285 (define-public emacs-handle
5286 (let ((commit "51c050bc1c6e5caf0eb47ecd985daea1db7241ab")
5287 (revision "2"))
5288 (package
5289 (name "emacs-handle")
5290 (version (git-version "0.1" revision commit))
5291 (source
5292 (origin
5293 (method git-fetch)
5294 (uri (git-reference
5295 (url "https://gitlab.com/jjzmajic/handle.git")
5296 (commit commit)))
5297 (file-name (git-file-name name version))
5298 (sha256
5299 (base32 "14f15qzfmwdslml4rv37zb5d1lsjf0jibriz636hb7q7knx1n4sg"))))
5300 (build-system emacs-build-system)
5301 (propagated-inputs
5302 `(("emacs-parent-mode" ,emacs-parent-mode)))
5303 (home-page "https://gitlab.com/jjzmajic/handle")
5304 (synopsis "Handle generic functions across related major modes")
5305 (description "This package provides generic functions that specialize on
5306 major modes and intended purpose rather than on arguments. Different
5307 callables for tasks like expression evaluation, definition-jumping, and more
5308 can now be grouped accordingly and tried in sequence until one of them
5309 succeeds.")
5310 (license license:gpl3+))))
5311
5312 (define-public emacs-nswbuff
5313 (let ((commit "362da7f3687e2eb5bb11667347de85f4a9d002bc")
5314 (revision "1"))
5315 (package
5316 (name "emacs-nswbuff")
5317 (version (git-version "1.0" revision commit))
5318 (source
5319 (origin
5320 (method git-fetch)
5321 (uri (git-reference
5322 (url "https://github.com/joostkremers/nswbuff")
5323 (commit commit)))
5324 (file-name (git-file-name name version))
5325 (sha256
5326 (base32 "0l2xfz8z5qd4hz3kv6zn7h6qq3narkilri8a071y1n8j31jps4ma"))))
5327 (build-system emacs-build-system)
5328 (home-page "https://github.com/joostkremers/nswbuff")
5329 (synopsis "Quickly switch between buffers")
5330 (description "This package allows for navigating between buffers within
5331 a customizable list.")
5332 (license license:gpl3+))))
5333
5334 (define-public emacs-phi-search
5335 (let ((commit "9a089b8271cb1cff9640848850298c9ec855286c")
5336 (revision "1"))
5337 (package
5338 (name "emacs-phi-search")
5339 (version (git-version "20160630" revision commit))
5340 (source
5341 (origin
5342 (method git-fetch)
5343 (uri (git-reference
5344 (url "https://github.com/zk-phi/phi-search")
5345 (commit commit)))
5346 (file-name (git-file-name name version))
5347 (sha256
5348 (base32 "1gr5plcbrfdc4pglfj905s89hf8x0kc083h30wcnd81bnw9jwz1x"))))
5349 (build-system emacs-build-system)
5350 (home-page "https://github.com/zk-phi/phi-search")
5351 (synopsis "Interactive search compatible with @code{multiple-cursors}")
5352 (description "This package can be used with @code{multiple-cursors} to
5353 provide an incremental search that moves all fake cursors in sync.")
5354 (license license:gpl2+))))
5355
5356 (define-public emacs-phi-search-mc
5357 (let ((commit "7aa671910f766437089aec26c3aa7814222d1356")
5358 (revision "1"))
5359 (package
5360 (name "emacs-phi-search-mc")
5361 (version (git-version "2.2.1" revision commit))
5362 (source
5363 (origin
5364 (method git-fetch)
5365 (uri (git-reference
5366 (url "https://github.com/knu/phi-search-mc.el")
5367 (commit commit)))
5368 (file-name (git-file-name name version))
5369 (sha256
5370 (base32 "0wr86ad0yl52im6b9z0b9pzmhcn39qg5m9878yfv1nbxliw40lcd"))))
5371 (build-system emacs-build-system)
5372 (propagated-inputs
5373 `(("emacs-phi-search" ,emacs-phi-search)
5374 ("emacs-multiple-cursors" ,emacs-multiple-cursors)))
5375 (home-page "https://github.com/knu/phi-search-mc.el")
5376 (synopsis "Extend @code{phi-search} with additional
5377 @code{multiple-cursors} functionality")
5378 (description "This package provides further integration between
5379 @code{multiple-cursors} and @code{phi-search}, a package that allows for
5380 interactive searches to move multiple fake cursors.")
5381 (license license:bsd-2))))
5382
5383 (define-public emacs-multiple-cursors
5384 (package
5385 (name "emacs-multiple-cursors")
5386 (version "1.4.0")
5387 (source
5388 (origin
5389 (method git-fetch)
5390 (uri (git-reference
5391 (url "https://github.com/magnars/multiple-cursors.el")
5392 (commit version)))
5393 (file-name (git-file-name name version))
5394 (sha256
5395 (base32 "1ijgvzv5r44xqvz751fd5drbvrspapw6xwv47582w255j363r6ss"))))
5396 (build-system emacs-build-system)
5397 (home-page "https://github.com/magnars/multiple-cursors.el")
5398 (synopsis "Multiple cursors for Emacs")
5399 (description
5400 "This package adds support to Emacs for editing text with multiple
5401 simultaneous cursors.")
5402 (license license:gpl3+)))
5403
5404 (define-public emacs-mc-extras
5405 (let ((commit "053abc52181b8718559d7361a587bbb795faf164")
5406 (revision "1"))
5407 (package
5408 (name "emacs-mc-extras")
5409 (version (git-version "1.2.4" revision commit))
5410 (source
5411 (origin
5412 (method git-fetch)
5413 (uri (git-reference
5414 (url "https://github.com/knu/mc-extras.el")
5415 (commit commit)))
5416 (file-name (git-file-name name version))
5417 (sha256
5418 (base32 "16y48qrd20m20vypvys5jp4v4gc1qrqlkm75s1pk1r68i9zrw481"))))
5419 (build-system emacs-build-system)
5420 (propagated-inputs
5421 `(("emacs-multiple-cursors" ,emacs-multiple-cursors)))
5422 (home-page "https://github.com/knu/mc-extras.el")
5423 (synopsis "Extra functions for manipulating multiple cursors")
5424 (description
5425 "This package provides additional functions for
5426 @code{multiple-cursors}, including functions for marking s-expressions,
5427 comparing characters, removing cursors, and more.")
5428 (license license:bsd-2))))
5429
5430 (define-public emacs-typo
5431 (package
5432 (name "emacs-typo")
5433 (version "1.1")
5434 (home-page "https://github.com/jorgenschaefer/typoel")
5435 (source (origin
5436 (method git-fetch)
5437 (uri (git-reference
5438 (url home-page)
5439 (commit (string-append "v" version))))
5440 (file-name (git-file-name name version))
5441 (sha256
5442 (base32
5443 "1jhd4grch5iz12gyxwfbsgh4dmz5hj4bg4gnvphccg8dsnni05k2"))))
5444 (build-system emacs-build-system)
5445 (synopsis "Minor mode for typographic editing")
5446 (description
5447 "This package provides two Emacs modes, @code{typo-mode} and
5448 @code{typo-global-mode}. These modes automatically insert Unicode characters
5449 for quotation marks, dashes, and ellipses. For example, typing @kbd{\"}
5450 automatically inserts a Unicode opening or closing quotation mark, depending
5451 on context.")
5452 (license license:gpl3+)))
5453
5454 (define-public emacs-company-lsp
5455 (package
5456 (name "emacs-company-lsp")
5457 (version "2.1.0")
5458 (source (origin
5459 (method git-fetch)
5460 (uri (git-reference
5461 (url "https://github.com/tigersoldier/company-lsp")
5462 (commit version)))
5463 (file-name (git-file-name name version))
5464 (sha256
5465 (base32
5466 "1hy1x2w0yp5brm7714d1hziz3rpkywb5jp3yj78ibmi9ifny9vri"))))
5467 (build-system emacs-build-system)
5468 (propagated-inputs
5469 `(("emacs-dash" ,emacs-dash)
5470 ("emacs-lsp-mode" ,emacs-lsp-mode)
5471 ("emacs-company" ,emacs-company)
5472 ("emacs-s" ,emacs-s)
5473 ("emacs-dash" ,emacs-dash)))
5474 (native-inputs
5475 `(("emacs-buttercup" ,emacs-buttercup)))
5476 (arguments
5477 `(#:tests? #t
5478 #:test-command '("buttercup" "-L" ".")))
5479 (home-page "https://github.com/tigersoldier/company-lsp")
5480 (synopsis "Completion for @code{lsp-mode}")
5481 (description
5482 "This package provides completion features that are not possible with
5483 @code{lsp-mode} and @code{company-capf} alone, including support for trigger
5484 characters and asynchronous fetching of completion candidates.")
5485 (license license:gpl3+)))
5486
5487 (define-public emacs-scala-mode
5488 (package
5489 (name "emacs-scala-mode")
5490 (version "1.1.0")
5491 (source
5492 (origin
5493 (method git-fetch)
5494 (uri (git-reference
5495 (url "https://github.com/hvesalai/emacs-scala-mode")
5496 (commit (string-append "v" version))))
5497 (file-name (git-file-name name version))
5498 (sha256
5499 (base32 "1072lsin7dxadc0xyhy42wd0cw549axbbd4dy95wfmfcc1xbzjwv"))))
5500 (build-system emacs-build-system)
5501 (home-page "https://github.com/hvesalai/emacs-scala-mode")
5502 (synopsis "Emacs major mode for Scala")
5503 (description
5504 "This package provides basic Emacs support for the Scala language,
5505 including: local indenting of code, comments and multi-line strings, motion
5506 commands and highlighting.")
5507 ;; There are no copyright headers in the source code. The LICENSE file
5508 ;; indicates GPL3.
5509 (license license:gpl3)))
5510
5511 (define-public emacs-sbt-mode
5512 (package
5513 (name "emacs-sbt-mode")
5514 (version "2.0.0")
5515 (source
5516 (origin
5517 (method git-fetch)
5518 (uri (git-reference
5519 (url "https://github.com/hvesalai/emacs-sbt-mode")
5520 (commit (string-append "v" version))))
5521 (file-name (git-file-name name version))
5522 (sha256
5523 (base32 "0lv9ridzk9x6rkf7lj21srnszypyq04vqg05vl10zhpz1yqlnbjd"))))
5524 (build-system emacs-build-system)
5525 (home-page "https://github.com/hvesalai/emacs-sbt-mode")
5526 (synopsis "Basic functionality for interacting with sbt inside Emacs")
5527 (description
5528 "This mode provides basic functionality required for successfully
5529 interacting with sbt inside Emacs. The core functionality includes
5530 interacting with the sbt shell and Scala console, compiling code and
5531 navigation to errors.")
5532 (license license:gpl3+)))
5533
5534 (define-public emacs-scheme-complete
5535 (let ((commit "9b5cf224bf2a5994bc6d5b152ff487517f1a9bb5"))
5536 (package
5537 (name "emacs-scheme-complete")
5538 (version (string-append "20151223." (string-take commit 8)))
5539 (source
5540 (origin
5541 (method git-fetch)
5542 (uri (git-reference
5543 (url "https://github.com/ashinn/scheme-complete")
5544 (commit commit)))
5545 (file-name (git-file-name name version))
5546 (sha256
5547 (base32
5548 "141wn9l0m33w0g3dqmx8nxbfdny1r5xbr6ak61rsz21bk0qafs7x"))
5549 (patches
5550 (search-patches "emacs-scheme-complete-scheme-r5rs-info.patch"))))
5551 (build-system emacs-build-system)
5552 (home-page "https://github.com/ashinn/scheme-complete")
5553 (synopsis "Smart tab completion for Scheme in Emacs")
5554 (description
5555 "This file provides a single function, @code{scheme-smart-complete},
5556 which you can use for intelligent, context-sensitive completion for any Scheme
5557 implementation in Emacs. To use it just load this file and bind that function
5558 to a key in your preferred mode.")
5559 (license license:public-domain))))
5560
5561 (define-public emacs-scel
5562 (let ((version "20170629")
5563 (revision "1")
5564 (commit "aeea3ad4be9306d14c3a734a4ff54fee10ac135b"))
5565 (package
5566 (name "emacs-scel")
5567 (version (git-version version revision commit))
5568 (source
5569 (origin
5570 (method git-fetch)
5571 (uri (git-reference
5572 (url "https://github.com/supercollider/scel")
5573 (commit commit)))
5574 (file-name (git-file-name name version))
5575 (sha256
5576 (base32
5577 "0jvmzs1lsjyndqshhii2y4mnr3wghai26i3p75453zrpxpg0zvvw"))))
5578 (build-system emacs-build-system)
5579 (arguments
5580 `(#:modules ((guix build emacs-build-system)
5581 ((guix build cmake-build-system) #:prefix cmake:)
5582 (guix build utils))
5583 #:imported-modules (,@%emacs-build-system-modules
5584 (guix build cmake-build-system))
5585 #:phases
5586 (modify-phases %standard-phases
5587 (add-after 'unpack 'configure
5588 (lambda* (#:key outputs #:allow-other-keys)
5589 (substitute* "el/CMakeLists.txt"
5590 (("share/emacs/site-lisp/SuperCollider")
5591 (string-append
5592 "share/emacs/site-lisp")))
5593 ((assoc-ref cmake:%standard-phases 'configure)
5594 #:outputs outputs
5595 #:configure-flags '("-DSC_EL_BYTECOMPILE=OFF"))))
5596 (add-after 'add-source-to-load-path 'add-el-dir-to-emacs-load-path
5597 (lambda _
5598 (setenv "EMACSLOADPATH"
5599 (string-append (getcwd) "/el:" (getenv "EMACSLOADPATH")))
5600 #t))
5601 (replace 'install (assoc-ref cmake:%standard-phases 'install)))))
5602 (inputs
5603 `(("supercollider" ,supercollider)))
5604 (native-inputs
5605 `(("cmake" ,cmake-minimal)))
5606 (home-page "https://github.com/supercollider/scel")
5607 (synopsis "SuperCollider Emacs interface")
5608 (description "@code{emacs-scel} is an Emacs interface to SuperCollider.
5609 SuperCollider is a platform for audio synthesis and algorithmic composition.")
5610 (license license:gpl2+))))
5611
5612 (define-public emacs-company-auctex
5613 (let ((commit "48c42c58ce2f0e693301b0cb2d085055410c1b25")
5614 (revision "1"))
5615 (package
5616 (name "emacs-company-auctex")
5617 (version (git-version "0" revision commit))
5618 (source (origin
5619 (method git-fetch)
5620 (uri (git-reference
5621 (url "https://github.com/alexeyr/company-auctex")
5622 (commit commit)))
5623 (file-name (git-file-name name version))
5624 (sha256
5625 (base32
5626 "10qn7frn5wcmrlci3v6iliqzj7r9dls87h9zp3xkgrgn4bqprfp8"))))
5627 (build-system emacs-build-system)
5628 (propagated-inputs
5629 `(("emacs-yasnippet" ,emacs-yasnippet)
5630 ("emacs-auctex" ,emacs-auctex)
5631 ("emacs-company" ,emacs-company)))
5632 (home-page "https://github.com/alexeyr/company-auctex/")
5633 (synopsis "Completion for @code{AUCTeX}")
5634 (description
5635 "This package provides a group of backends permitting auto-completion
5636 for @code{AUCTeX}.")
5637 (license license:gpl3+))))
5638
5639 (define-public emacs-mit-scheme-doc
5640 (package
5641 (name "emacs-mit-scheme-doc")
5642 (version "20140203")
5643 (source
5644 (origin
5645 (modules '((guix build utils)))
5646 (snippet
5647 ;; keep only file of interest
5648 '(begin
5649 (for-each delete-file '("dot-emacs.el" "Makefile"))
5650 (install-file "6.945-config/mit-scheme-doc.el" ".")
5651 (delete-file-recursively "6.945-config")
5652 #t))
5653 (file-name (string-append name "-" version ".tar.bz2"))
5654 (method url-fetch)
5655 (uri (string-append "http://groups.csail.mit.edu/mac/users/gjs/"
5656 "6.945/dont-panic/emacs-basic-config.tar.bz2"))
5657 (sha256
5658 (base32
5659 "0dqidg2bd66pawqfarvwca93w5gqf9mikn1k2a2rmd9ymfjpziq1"))))
5660 (build-system emacs-build-system)
5661 (inputs `(("mit-scheme" ,mit-scheme)))
5662 (arguments
5663 `(#:phases
5664 (modify-phases %standard-phases
5665 (add-after 'unpack 'configure-doc
5666 (lambda* (#:key inputs #:allow-other-keys)
5667 (let* ((mit-scheme-dir (assoc-ref inputs "mit-scheme"))
5668 (doc-dir (string-append mit-scheme-dir "/share/doc/"
5669 "mit-scheme-"
5670 ,(package-version mit-scheme))))
5671 (substitute* "mit-scheme-doc.el"
5672 (("http://www\\.gnu\\.org/software/mit-scheme/documentation/mit-scheme-ref/")
5673 (string-append "file:" doc-dir "/mit-scheme-ref/")))))))))
5674 (home-page "https://groups.csail.mit.edu/mac/users/gjs/6.945/dont-panic/")
5675 (synopsis "MIT-Scheme documentation lookup for Emacs")
5676 (description
5677 "This package provides a set of Emacs functions to search definitions of
5678 identifiers in the MIT-Scheme documentation.")
5679 (license license:gpl2+)))
5680
5681 (define-public emacs-constants
5682 (package
5683 (name "emacs-constants")
5684 (version "2.6")
5685 (home-page "https://staff.fnwi.uva.nl/c.dominik/Tools/constants")
5686 (source
5687 (origin
5688 (method git-fetch)
5689 (uri (git-reference
5690 (url "https://github.com/fedeinthemix/emacs-constants")
5691 (commit (string-append "v" version))))
5692 (file-name (git-file-name name version))
5693 (sha256
5694 (base32 "0f5sh6b45a8p9kancjp9jk44ws8ww6x50a0i6zgyyvr7dbvii1a0"))))
5695 (build-system emacs-build-system)
5696 (synopsis "Enter definition of constants into an Emacs buffer")
5697 (description
5698 "This package provides functions for inserting the definition of natural
5699 constants and units into an Emacs buffer.")
5700 (license license:gpl2+)))
5701
5702 (define-public emacs-tagedit
5703 (package
5704 (name "emacs-tagedit")
5705 (version "1.4.0")
5706 (source
5707 (origin
5708 (method git-fetch)
5709 (uri (git-reference
5710 (url "https://github.com/magnars/tagedit")
5711 (commit version)))
5712 (file-name (git-file-name name version))
5713 (sha256
5714 (base32 "0kq40g46s8kgiafrhdq99h79rz9h5fvgz59k7ralmf86bl4sdmdb"))))
5715 (build-system emacs-build-system)
5716 (propagated-inputs
5717 `(("emacs-s" ,emacs-s)
5718 ("emacs-dash" ,emacs-dash)))
5719 (home-page "https://github.com/magnars/tagedit")
5720 (synopsis "Some paredit-like features for html-mode")
5721 (description
5722 "This package provides a collection of paredit-like functions for editing
5723 in @code{html-mode}.")
5724 (license license:gpl3+)))
5725
5726 (define-public emacs-slime
5727 (package
5728 (name "emacs-slime")
5729 (version "2.26")
5730 (source
5731 (origin
5732 (method git-fetch)
5733 (uri (git-reference
5734 (url "https://github.com/slime/slime")
5735 (commit (string-append "v" version))))
5736 (file-name (git-file-name name version))
5737 (sha256
5738 (base32 "0mxb1wnw19v0s72w2wkz5afdlzvpy5nn7pr4vav403qybac0sw5c"))))
5739 (build-system emacs-build-system)
5740 (native-inputs
5741 `(("texinfo" ,texinfo)))
5742 (arguments
5743 `(#:include '("\\.el$" "\\.lisp$" "\\.asd$" "contrib")
5744 #:exclude '("^slime-tests.el" "^contrib/test/"
5745 "^contrib/Makefile$" "^contrib/README.md$")
5746 #:phases
5747 (modify-phases %standard-phases
5748 (add-after 'unpack 'make-git-checkout-writable
5749 (lambda _
5750 (for-each make-file-writable (find-files "."))
5751 #t))
5752 (add-before 'install 'configure
5753 (lambda* _
5754 (emacs-substitute-variables "slime.el"
5755 ("inferior-lisp-program" "sbcl"))
5756 #t))
5757 (add-before 'install 'install-doc
5758 (lambda* (#:key outputs #:allow-other-keys)
5759 (let* ((out (assoc-ref outputs "out"))
5760 (info-dir (string-append out "/share/info"))
5761 (doc-dir (string-append out "/share/doc/"
5762 ,name "-" ,version))
5763 (doc-files '("doc/slime-refcard.pdf"
5764 "README.md" "NEWS" "PROBLEMS"
5765 "CONTRIBUTING.md")))
5766 (with-directory-excursion "doc"
5767 (substitute* "Makefile"
5768 (("infodir=/usr/local/info")
5769 (string-append "infodir=" info-dir)))
5770 (invoke "make" "html/index.html")
5771 (invoke "make" "slime.info")
5772 (install-file "slime.info" info-dir)
5773 (copy-recursively "html" (string-append doc-dir "/html")))
5774 (for-each (lambda (f)
5775 (install-file f doc-dir)
5776 (delete-file f))
5777 doc-files)
5778 (delete-file-recursively "doc")
5779 #t))))))
5780 (home-page "https://github.com/slime/slime")
5781 (synopsis "Superior Lisp Interaction Mode for Emacs")
5782 (description
5783 "SLIME extends Emacs with support for interactive programming in
5784 Common Lisp. The features are centered around @command{slime-mode},
5785 an Emacs minor mode that complements the standard @command{lisp-mode}.
5786 While lisp-mode supports editing Lisp source files, @command{slime-mode}
5787 adds support for interacting with a running Common Lisp process
5788 for compilation, debugging, documentation lookup, and so on.")
5789 (license (list license:gpl2+ license:public-domain))))
5790
5791 (define-public emacs-popup
5792 (package
5793 (name "emacs-popup")
5794 (version "0.5.8")
5795 (source
5796 (origin
5797 (method git-fetch)
5798 (uri (git-reference
5799 (url "https://github.com/auto-complete/popup-el")
5800 (commit (string-append "v" version))))
5801 (file-name (git-file-name name version))
5802 (sha256
5803 (base32 "0qrsz4z9q2bfq9xv4n94mvyslm232v2ql9r1fjycx7rnmpqggiwl"))))
5804 (build-system emacs-build-system)
5805 (home-page "https://github.com/auto-complete/popup-el")
5806 (synopsis "Visual Popup User Interface for Emacs")
5807 (description
5808 "Popup.el is a visual popup user interface library for Emacs.
5809 This provides a basic API and common UI widgets such as popup tooltips
5810 and popup menus.")
5811 (license license:gpl3+)))
5812
5813 (define-public emacs-python-black
5814 (package
5815 (name "emacs-python-black")
5816 (version "1.0.0")
5817 (source
5818 (origin
5819 (method git-fetch)
5820 (uri (git-reference
5821 (url "https://github.com/wbolster/emacs-python-black")
5822 (commit version)))
5823 (file-name (git-file-name name version))
5824 (sha256
5825 (base32
5826 "0fjnd85nlkck156dj6cahk8chhgkbgl2kwywqzi8bl4yj700m4dk"))))
5827 (build-system emacs-build-system)
5828 (propagated-inputs
5829 `(("emacs-dash" ,emacs-dash)
5830 ("emacs-reformatter" ,emacs-reformatter)
5831 ("python-black-macchiato" ,python-black-macchiato)))
5832 (arguments `(#:tests? #f))
5833 (home-page "https://github.com/wbolster/emacs-python-black")
5834 (synopsis "Reformat Python code via @code{python-black}")
5835 (description
5836 "This package makes it easy to reformat Python code using
5837 @code{python-black} and @code{python-black-macchiato} for entire and partial
5838 buffers, respectively.")
5839 (license license:bsd-3)))
5840
5841 (define-public emacs-py-isort
5842 (package
5843 (name "emacs-py-isort")
5844 (version "2016.1")
5845 (source
5846 (origin
5847 (method git-fetch)
5848 (uri (git-reference
5849 (url "https://github.com/paetzke/py-isort.el")
5850 (commit (string-append "v" version))))
5851 (file-name (git-file-name name version))
5852 (sha256
5853 (base32 "08i55gv392wc12x8v3dca0dmz8a8p9ljsqhyajsb6qv1k120wqhx"))))
5854 (build-system emacs-build-system)
5855 (arguments
5856 `(#:tests? #f)) ;tests fail with "emacs: standard input is not a tty"
5857 (propagated-inputs
5858 `(("python-isort" ,python-isort)))
5859 (home-page "https://github.com/paetzke/py-isort.el")
5860 (synopsis "Sort the imports in Python buffers")
5861 (description
5862 "This package provides commands and a minor mode to sort Python imports
5863 using @code{python-isort}.")
5864 (license license:gpl3+)))
5865
5866 (define-public emacs-python-environment
5867 (package
5868 (name "emacs-python-environment")
5869 (version "0.0.2")
5870 (source
5871 (origin
5872 (method git-fetch)
5873 (uri (git-reference
5874 (url "https://github.com/tkf/emacs-python-environment/")
5875 (commit version)))
5876 (file-name (git-file-name name version))
5877 (sha256
5878 (base32 "0q6bib9nr6xiq6npzbngyfcjk87yyvwzq1zirr3z1h5wadm34lsk"))))
5879 (build-system emacs-build-system)
5880 (propagated-inputs
5881 `(("emacs-deferred" ,emacs-deferred)))
5882 (home-page "https://github.com/tkf/emacs-python-environment")
5883 (synopsis "Provides a @code{virtualenv} API in Emacs Lisp")
5884 (description
5885 "This package permits automated installation of tools written in Python.")
5886 (license license:gpl3+)))
5887
5888 (define-public emacs-jedi
5889 (package
5890 (name "emacs-jedi")
5891 (version "0.2.8")
5892 (source (origin
5893 (method git-fetch)
5894 (uri (git-reference
5895 (url "https://github.com/tkf/emacs-jedi/")
5896 (commit (string-append "v" version))))
5897 (file-name (git-file-name name version))
5898 (sha256
5899 (base32
5900 "1bckxppfzd5gwn0aw4h86igb7igal9axqncq7j8zmflg7zppncf1"))))
5901 (build-system emacs-build-system)
5902 (native-inputs
5903 `(("emacs-mocker" ,emacs-mocker)))
5904 (propagated-inputs
5905 `(("emacs-auto-complete" ,emacs-auto-complete)
5906 ("emacs-python-environment" ,emacs-python-environment)
5907 ("emacs-epc" ,emacs-epc)))
5908 (home-page "https://github.com/tkf/emacs-jedi")
5909 (synopsis "Provides Python completion in Emacs")
5910 (description
5911 "This package provides completion in Python buffers and also helps find
5912 the locations of docstrings, arguments, and functions.")
5913 (license license:gpl3+)))
5914
5915 (define-public emacs-company-jedi
5916 (package
5917 (name "emacs-company-jedi")
5918 (version "0.04")
5919 (source (origin
5920 (method git-fetch)
5921 (uri (git-reference
5922 (url "https://github.com/syohex/emacs-company-jedi")
5923 (commit version)))
5924 (file-name (git-file-name name version))
5925 (sha256
5926 (base32
5927 "1ihqapp4dv92794rsgyq0rmhwika60cmradqd4bn9b72ss6plxs1"))))
5928 (build-system emacs-build-system)
5929 (propagated-inputs
5930 `(("emacs-jedi" ,emacs-jedi)
5931 ("emacs-company" ,emacs-company)))
5932 (home-page "https://github.com/syohex/emacs-company-jedi")
5933 (synopsis "Provides Python completion in @code{company-mode}")
5934 (description
5935 "This package provides a Company backend for Python.")
5936 (license license:gpl3+)))
5937
5938 (define-public emacs-puppet-mode
5939 (let ((commit "b3ed5057166a4f49dfa9be638523a348b55a2fd2")
5940 (revision "1"))
5941 (package
5942 (name "emacs-puppet-mode")
5943 ;; The last release, 0.3 was several years ago, and there have been many
5944 ;; commits since
5945 (version (git-version "0.3" revision commit))
5946 (source
5947 (origin
5948 (method url-fetch)
5949 (uri (string-append
5950 "https://raw.githubusercontent.com/voxpupuli/puppet-mode/"
5951 commit "/puppet-mode.el"))
5952 (sha256
5953 (base32
5954 "1indycxawsl0p2aqqg754f6735q3cmah9vd886rpn0ncc3ipi1xm"))))
5955 (build-system emacs-build-system)
5956 (home-page "https://github.com/voxpupuli/puppet-mode")
5957 (synopsis "Emacs major mode for the Puppet configuration language")
5958 (description
5959 "This package provides support for the Puppet configuration language,
5960 including syntax highlighting, indentation of expressions and statements,
5961 linting of manifests and integration with Puppet Debugger.")
5962 ;; Also incorporates work covered by the Apache License, Version 2.0
5963 (license license:gpl3+))))
5964
5965 (define-public emacs-god-mode
5966 (package
5967 (name "emacs-god-mode")
5968 (version "2.17.0")
5969 (source
5970 (origin
5971 (method git-fetch)
5972 (uri (git-reference
5973 (url "https://github.com/chrisdone/god-mode")
5974 (commit version)))
5975 (file-name (git-file-name name version))
5976 (sha256
5977 (base32
5978 "1d2nrj35fzhnycchi0b7m5mbk5fyq7bgpbkkvc5xzqafclrsnapi"))))
5979 (build-system emacs-build-system)
5980 (home-page "https://github.com/chrisdone/god-mode")
5981 (synopsis "Minor mode for entering commands without modifier keys")
5982 (description
5983 "This package provides a global minor mode for entering Emacs commands
5984 without modifier keys. It's similar to Vim's separation of commands and
5985 insertion mode. When enabled all keys are implicitly prefixed with
5986 @samp{C-} (among other helpful shortcuts).")
5987 (license license:gpl3+)))
5988
5989 (define-public emacs-jinja2-mode
5990 (package
5991 (name "emacs-jinja2-mode")
5992 (version "0.2")
5993 (source
5994 (origin
5995 (method git-fetch)
5996 (uri (git-reference
5997 (url "https://github.com/paradoxxxzero/jinja2-mode")
5998 (commit (string-append "v" version))))
5999 (file-name (git-file-name name version))
6000 (sha256
6001 (base32 "0l26wcy496k6xk7q5sf905xir0p73ziy6c44is77854lv3y0z381"))))
6002 (build-system emacs-build-system)
6003 (home-page "https://github.com/paradoxxxzero/jinja2-mode")
6004 (synopsis "Major mode for jinja2")
6005 (description
6006 "Emacs major mode for jinja2 with: syntax highlighting,
6007 sgml/html integration, and indentation (working with sgml).")
6008 (license license:gpl3+)))
6009
6010 (define-public emacs-company-cabal
6011 ;; The latest version is 0.3.0, but no release has been provided after 0.2.1.
6012 (let ((commit "62112a7259e24bd6c08885629a185afe512b7d3d")
6013 (revision "1"))
6014 (package
6015 (name "emacs-company-cabal")
6016 (version (git-version "0.3.0" revision commit))
6017 (source (origin
6018 (method git-fetch)
6019 (uri (git-reference
6020 (url "https://github.com/iquiw/company-cabal/")
6021 (commit commit)))
6022 (file-name (git-file-name name version))
6023 (sha256
6024 (base32
6025 "1gf45xwjzdm8i4q6c6khk4dbg1mmp2r0awz2sjr4dcr2dbd1n7mg"))))
6026 (build-system emacs-build-system)
6027 (propagated-inputs
6028 `(("emacs-company" ,emacs-company)))
6029 (arguments
6030 `(#:include (cons "^tools\\/" %default-include)))
6031 (home-page "https://github.com/iquiw/company-cabal/")
6032 (synopsis "Company completion for Haskell Cabal files")
6033 (description
6034 "This package allows for completion of field names, section names,
6035 field values, and more within @code{haskell-cabal-mode}.")
6036 (license license:gpl3+))))
6037
6038 (define-public emacs-rfcview
6039 (package
6040 (name "emacs-rfcview")
6041 (version "0.13")
6042 (home-page "http://www.loveshack.ukfsn.org/emacs")
6043 (source (origin
6044 (method url-fetch)
6045 (uri "http://www.loveshack.ukfsn.org/emacs/rfcview.el")
6046 (sha256
6047 (base32
6048 "0ympj5rxig383zl2jf0pzdsa80nnq0dpvjiriq0ivfi98fj7kxbz"))))
6049 (build-system emacs-build-system)
6050 (synopsis "Prettify Request for Comments (RFC) documents")
6051 (description "The Internet Engineering Task Force (IETF) and the Internet
6052 Society (ISOC) publish various Internet-related protocols and specifications
6053 as \"Request for Comments\" (RFC) documents and Internet Standard (STD)
6054 documents. RFCs and STDs are published in a simple text form. This package
6055 provides an Emacs major mode, rfcview-mode, which makes it more pleasant to
6056 read these documents in Emacs. It prettifies the text and adds
6057 hyperlinks/menus for easier navigation. It also provides functions for
6058 browsing the index of RFC documents and fetching them from remote servers or
6059 local directories.")
6060 (license license:gpl3+)))
6061
6062 (define-public emacs-ffap-rfc-space
6063 (package
6064 (name "emacs-ffap-rfc-space")
6065 (version "12")
6066 (home-page "https://user42.tuxfamily.org/ffap-rfc-space/index.html")
6067 (source (origin
6068 (method url-fetch)
6069 (uri "http://download.tuxfamily.org/user42/ffap-rfc-space.el")
6070 (sha256
6071 (base32
6072 "1iv61dv57a73mdps7rn6zmgz7nqh14v0ninidyrasy45b1nv6gck"))))
6073 (build-system emacs-build-system)
6074 (synopsis "Make ffap recognize an RFC with a space before its number")
6075 (description "The Internet Engineering Task Force (IETF) and the
6076 Internet Society (ISOC) publish various Internet-related protocols and
6077 specifications as \"Request for Comments\" (RFC) documents. The
6078 built-in Emacs module \"ffap\" (Find File at Point) has the ability to
6079 recognize names at point which look like \"RFC1234\" and \"RFC-1234\"
6080 and load the appropriate RFC from a remote server. However, it fails
6081 to recognize a name like \"RFC 1234\". This package enhances ffap so
6082 that it correctly finds RFCs even when a space appears before the
6083 number.")
6084 (license license:gpl3+)))
6085
6086 (define-public emacs-feature-mode
6087 (let ((version "20190801")
6088 (revision "1")
6089 (commit "11ae1671629bfedaa553c7b819676d64eb320992"))
6090 (package
6091 (name "emacs-feature-mode")
6092 (version (git-version version revision commit))
6093 (source (origin
6094 (method git-fetch)
6095 (uri (git-reference
6096 (url "https://github.com/michaelklishin/cucumber.el")
6097 (commit commit)))
6098 (file-name (git-file-name name version))
6099 (sha256
6100 (base32
6101 "0yd4gkxz9xcbgibfgr8apsid3f83nmg5jgqk5nql0linj5gymc28"))))
6102 (build-system emacs-build-system)
6103 (arguments
6104 `(#:include (cons* "^features\\/" "snippets\\/" "^support\\/"
6105 %default-include)))
6106 (home-page "https://github.com/michaelklishin/cucumber.el/")
6107 (synopsis "Emacs mode for editing Gherkin plain text user stories")
6108 (description "Major mode for editing Gherkin (popularized by the
6109 Cucumber tool) user stories. Also known by the name @code{cucumber.el}.")
6110 (license license:gpl2+))))
6111
6112 (define-public emacs-org-bullets
6113 (package
6114 (name "emacs-org-bullets")
6115 (version "0.2.4")
6116 (source
6117 (origin
6118 (method git-fetch)
6119 (uri (git-reference
6120 (url "https://github.com/sabof/org-bullets")
6121 (commit version)))
6122 (file-name (git-file-name name version))
6123 (sha256
6124 (base32 "10nr4sjffnqbllv6gmak6pviyynrb7pi5nvrq331h5alm3xcpq0w"))))
6125 (build-system emacs-build-system)
6126 (home-page "https://github.com/sabof/org-bullets")
6127 (synopsis "Show bullets in org-mode as UTF-8 characters")
6128 (description
6129 "This package provides an Emacs minor mode causing bullets in
6130 @code{org-mode} to be rendered as UTF-8 characters.")
6131 (license license:gpl3+)))
6132
6133 (define-public emacs-org-drill
6134 (package
6135 (name "emacs-org-drill")
6136 (version "2.7.0")
6137 (source
6138 (origin
6139 (method git-fetch)
6140 (uri (git-reference
6141 (url "https://gitlab.com/phillord/org-drill")
6142 (commit version)))
6143 (file-name (git-file-name name version))
6144 (sha256
6145 (base32 "13y302lyscdqrba1sfx60yf5ji2xi7fbsvjsjbw7hiz63kg6rccy"))))
6146 (build-system emacs-build-system)
6147 (propagated-inputs
6148 `(("emacs-org" ,emacs-org)
6149 ("emacs-persist" ,emacs-persist)))
6150 (home-page "https://gitlab.com/phillord/org-drill")
6151 (synopsis "Flash card memorization system using Org mode")
6152 (description
6153 "This package uses spaced repetition algorithms to conduct interactive
6154 drill sessions to aid in memorization. In these sessions you are shown flash
6155 cards created in Org mode.")
6156 (license license:gpl3+)))
6157
6158 (define-public emacs-org-superstar
6159 (package
6160 (name "emacs-org-superstar")
6161 (version "1.4.0")
6162 (source
6163 (origin
6164 (method git-fetch)
6165 (uri (git-reference
6166 (url "https://github.com/integral-dw/org-superstar-mode")
6167 (commit (string-append "v" version))))
6168 (file-name (git-file-name name version))
6169 (sha256
6170 (base32 "1aklp6nk05ghpq7ybsbvn28wrygfwqvq58k1hjll97nbhd7h0gyb"))))
6171 (build-system emacs-build-system)
6172 (propagated-inputs
6173 `(("emacs-org" ,emacs-org)))
6174 (home-page "https://github.com/integral-dw/org-superstar-mode")
6175 (synopsis "Prettify headings and plain lists in Org mode")
6176 (description "This package prettifies headings and plain lists in
6177 Org mode. It is a direct descendant of @code{org-bullets}, with most
6178 of the code base completely rewritten.
6179
6180 Currently, this package prettifies Org heading lines by:
6181 @itemize
6182 @item replacing trailing bullets by UTF-8 bullets,
6183 @item hiding leading stars, customizing their look or removing them from vision,
6184 @item applying a custom face to the header bullet,
6185 @item applying a custom face to the leading bullets,
6186 @item using double-bullets for inline tasks,
6187 @item (optional) using special bullets for TODO keywords.
6188 @end itemize
6189
6190 It also prettifies Org plain list bullets by:
6191 @itemize
6192 @item replacing each bullet type (*, + and -) with UTF-8 bullets,
6193 @item applying a custom face to item bullets.
6194 @end itemize
6195
6196 Features degrade gracefully when viewed from terminal.")
6197 (license license:gpl3+)))
6198
6199 (define-public emacs-org-pomodoro
6200 ;; Last release version was from 2016.
6201 (let ((commit "aa07c11318f91219336197e62c47bc7a3d090479")
6202 (revision "1"))
6203 (package
6204 (name "emacs-org-pomodoro")
6205 (version (git-version "2.1.0" revision commit))
6206 (source
6207 (origin
6208 (method git-fetch)
6209 (uri (git-reference
6210 (url "https://github.com/marcinkoziej/org-pomodoro")
6211 (commit commit)))
6212 (file-name (git-file-name name version))
6213 (sha256
6214 (base32 "0nbprh2nhnmb7ngp9ndr6zr37ashcsvpi5slv7a37x1dl7j6w1k4"))))
6215 (build-system emacs-build-system)
6216 (propagated-inputs
6217 `(("emacs-alert" ,emacs-alert)))
6218 (arguments
6219 `(#:include (cons "^resources\\/" %default-include)
6220 #:tests? #t
6221 #:test-command '("emacs" "--batch"
6222 "-l" "org-pomodoro-tests.el"
6223 "-f" "ert-run-tests-batch-and-exit")
6224 #:phases
6225 (modify-phases %standard-phases
6226 (add-before 'check 'make-tests-writable
6227 (lambda _
6228 (make-file-writable "org-pomodoro-tests.el")
6229 #t))
6230 (add-before 'check 'add-require
6231 (lambda _
6232 (emacs-batch-edit-file "org-pomodoro-tests.el"
6233 `(progn (progn (goto-char (point-min))
6234 (re-search-forward
6235 "ert-deftest")
6236 (beginning-of-line)
6237 (forward-line -1)
6238 (insert "(require 'org-pomodoro)"))
6239 (basic-save-buffer)))
6240 #t)))))
6241 (home-page "https://github.com/marcinkoziej/org-pomodoro")
6242 (synopsis "Pomodoro technique for org-mode")
6243 (description "@code{emacs-org-pomodoro} adds very basic support for
6244 Pomodoro technique in Emacs org-mode.
6245
6246 Run @code{M-x org-pomodoro} for the task at point or select one of the
6247 last tasks that you clocked time for. Each clocked-in pomodoro starts
6248 a timer of 25 minutes and after each pomodoro a break timer of 5
6249 minutes is started automatically. Every 4 breaks a long break is
6250 started with 20 minutes. All values are customizable.")
6251 (license license:gpl3+))))
6252
6253 (define-public emacs-org-sidebar
6254 (package
6255 (name "emacs-org-sidebar")
6256 (version "0.2")
6257 (source
6258 (origin
6259 (method git-fetch)
6260 (uri (git-reference
6261 (url "https://github.com/alphapapa/org-sidebar")
6262 (commit version)))
6263 (file-name (git-file-name name version))
6264 (sha256
6265 (base32 "106h06vjfbqfj761vbxwymd6612ds8c6fk053yzgbrqzm3hn2c03"))))
6266 (build-system emacs-build-system)
6267 (propagated-inputs
6268 `(("emacs-dash" ,emacs-dash)
6269 ("emacs-org-super-agenda" ,emacs-org-super-agenda)
6270 ("emacs-org" ,emacs-org)
6271 ("emacs-org-ql" ,emacs-org-ql)
6272 ("emacs-s" ,emacs-s)))
6273 (home-page "https://github.com/alphapapa/org-sidebar")
6274 (synopsis "Helpful sidebar for Org buffers")
6275 (description "This package provides a sidebar for Org buffers. At the
6276 top is a chronological list of scheduled and deadlined tasks in the current
6277 buffer (similar to the Org agenda ,but without all its features), and below
6278 that is a list of all other non-done to-do items. If the buffer is narrowed,
6279 the sidebar only shows items in the narrowed portion; this allows seeing an
6280 overview of tasks in a subtree.")
6281 (license license:gpl3+)))
6282
6283 (define-public emacs-org-trello
6284 (package
6285 (name "emacs-org-trello")
6286 (version "0.8.1")
6287 (source
6288 (origin
6289 (method git-fetch)
6290 (uri (git-reference
6291 (url "https://github.com/org-trello/org-trello")
6292 (commit version)))
6293 (file-name (git-file-name name version))
6294 (sha256
6295 (base32
6296 "02gx3kv4mkij69ln8x8wf9n28x17pbb4kv85v78d3lxph7ykqimc"))))
6297 (build-system emacs-build-system)
6298 (propagated-inputs
6299 `(("emacs-dash" ,emacs-dash)
6300 ("emacs-deferred" ,emacs-deferred)
6301 ("emacs-f" ,emacs-f)
6302 ("emacs-helm" ,emacs-helm)
6303 ("emacs-request" ,emacs-request)
6304 ("emacs-s" ,emacs-s)))
6305 (home-page "https://org-trello.github.io")
6306 (synopsis "Emacs minor mode for interacting with Trello")
6307 (description "This package provides an Emacs minor mode to extend
6308 @code{org-mode} with Trello abilities. Trello is an online project
6309 organizer.")
6310 (license license:gpl3+)))
6311
6312 (define-public emacs-org-tanglesync
6313 (let ((commit "d99181f173b4e55b4e835d99fcd415e62beb047f")
6314 (revision "2"))
6315 (package
6316 (name "emacs-org-tanglesync")
6317 (version (git-version "0.6" revision commit))
6318 (source
6319 (origin
6320 (method git-fetch)
6321 (uri (git-reference
6322 (url "https://github.com/mtekman/org-tanglesync.el")
6323 (commit commit)))
6324 (file-name (git-file-name name version))
6325 (sha256
6326 (base32 "0x94gy1bgfd1f3p9w2bfrqj11bwy9ql0cpi1gw6srpj7kykx0lml"))))
6327 (build-system emacs-build-system)
6328 (propagated-inputs
6329 `(("emacs-org" ,emacs-org)))
6330 (home-page "https://github.com/mtekman/org-tanglesync.el")
6331 (synopsis "Sync Org source blocks with tangled external files")
6332 (description "This package automatically pulls changes from source code
6333 to their corresponding tangled blocks.")
6334 (license license:gpl3+))))
6335
6336 (define-public emacs-company-flow
6337 (let ((commit "76ef585c70d2a3206c2eadf24ba61e59124c3a16")
6338 (revision "1"))
6339 (package
6340 (name "emacs-company-flow")
6341 (version (git-version "0.1.0" revision commit))
6342 (source (origin
6343 (method git-fetch)
6344 (uri (git-reference
6345 (url "https://github.com/aaronjensen/company-flow/")
6346 (commit commit)))
6347 (file-name (git-file-name name version))
6348 (sha256
6349 (base32
6350 "0zs9cblnbkxa0dxw4lyllmybqizxcdx96gv8jlhx20nrjpi78piw"))))
6351 (build-system emacs-build-system)
6352 (propagated-inputs
6353 `(("emacs-company" ,emacs-company)
6354 ("emacs-dash" ,emacs-dash)))
6355 (home-page "https://github.com/aaronjensen/company-flow/")
6356 (synopsis "Flow backend for @code{company-mode}")
6357 (description
6358 "This package provides completion for JavaScript files utilizing Flow.")
6359 (license license:gpl3+))))
6360
6361 (define-public emacs-habitica
6362 (let ((commit "c45c602ddf9d6cbb0e3baf5cb3e1b7ef90f2759d")
6363 (revision "1"))
6364 (package
6365 (name "emacs-habitica")
6366 (version (git-version "1.0" revision commit))
6367 (source
6368 (origin
6369 (method git-fetch)
6370 (uri (git-reference
6371 (url "https://github.com/abrochard/emacs-habitica")
6372 (commit commit)))
6373 (file-name (git-file-name name version))
6374 (sha256
6375 (base32
6376 "0wgnzn3z98bl28jgqi7xklw9fwx2wwgihj3mq0jb8ah4vn70d0j3"))))
6377 (build-system emacs-build-system)
6378 (home-page "https://github.com/abrochard/emacs-habitica")
6379 (synopsis "Emacs interface for Habitica")
6380 (description "Emacs extension for @uref{https://habitica.com/, Habitica},
6381 a RPG style habit tracker and todo list.")
6382 (license license:gpl3+))))
6383
6384 (define-public emacs-atom-one-dark-theme
6385 (let ((commit "1f1185bf667a38d3d0d180ce85fd4c131818aae2")
6386 (revision "0"))
6387 (package
6388 (name "emacs-atom-one-dark-theme")
6389 (version (git-version "0.4.0" revision commit))
6390 (source (origin
6391 (method git-fetch)
6392 (uri (git-reference
6393 (url "https://github.com/jonathanchu/atom-one-dark-theme")
6394 (commit commit)))
6395 (sha256
6396 (base32
6397 "1alma16hg3mfjly8a9s3mrswkjjx4lrpdnf43869hn2ibkn7zx9z"))
6398 (file-name (git-file-name name version))))
6399 (build-system emacs-build-system)
6400 (home-page "https://github.com/jonathanchu/atom-one-dark-theme")
6401 (synopsis "Atom One Dark color theme for Emacs")
6402 (description "An Emacs port of the Atom One Dark theme from Atom.io.")
6403 (license license:gpl3+))))
6404
6405 (define-public emacs-zenburn-theme
6406 (package
6407 (name "emacs-zenburn-theme")
6408 (version "2.6")
6409 (source
6410 (origin
6411 (method git-fetch)
6412 (uri (git-reference
6413 (url "https://github.com/bbatsov/zenburn-emacs")
6414 (commit (string-append "v" version))))
6415 (file-name (git-file-name name version))
6416 (sha256
6417 (base32 "1n87r5hs7h5r8dgfid66skpzcypl9hssr9m3npp916g6jfsi782f"))))
6418 (build-system emacs-build-system)
6419 (home-page "https://github.com/bbatsov/zenburn-emacs")
6420 (synopsis "Low contrast color theme for Emacs")
6421 (description
6422 "Zenburn theme is a port of the popular Vim Zenburn theme for Emacs.
6423 It is built on top of the custom theme support in Emacs 24 or later.")
6424 (license license:gpl3+)))
6425
6426 (define-public emacs-moe-theme-el
6427 (let ((commit "6e086d855d6bb446bbd1090742815589a81a915f")
6428 (version "1.0")
6429 (revision "1"))
6430 (package
6431 (name "emacs-moe-theme-el")
6432 (version (git-version version revision commit))
6433 (source
6434 (origin
6435 (method git-fetch)
6436 (uri (git-reference
6437 (url "https://github.com/kuanyui/moe-theme.el")
6438 (commit commit)))
6439 (file-name (git-file-name name version))
6440 (sha256
6441 (base32 "0xj4wfd7h4jqnr193pizm9frf6lmwjr0dsdv2l9mqh9k691z1dnc"))))
6442 (build-system emacs-build-system)
6443 (home-page "https://github.com/kuanyui/moe-theme.el")
6444 (synopsis "Anime-inspired color themes")
6445 (description
6446 "This package provides vibrant color schemes with light and dark
6447 variants.")
6448 (license license:gpl3+))))
6449
6450 (define-public emacs-solarized-theme
6451 (package
6452 (name "emacs-solarized-theme")
6453 (version "1.3.1")
6454 (source
6455 (origin
6456 (method git-fetch)
6457 (uri (git-reference
6458 (url "https://github.com/bbatsov/solarized-emacs/")
6459 (commit (string-append "v" version))))
6460 (file-name (git-file-name name version))
6461 (sha256
6462 (base32 "15ql8xcixgm7mbs7rsbybwszanqibq057j5b5ds89a31dw7zxf1g"))))
6463 (build-system emacs-build-system)
6464 (propagated-inputs
6465 `(("emacs-dash" ,emacs-dash)))
6466 (home-page "https://github.com/bbatsov/solarized-emacs")
6467 (synopsis "Port of the Solarized theme for Emacs")
6468 (description
6469 "Solarized for Emacs is a port of the Solarized theme for Vim. This
6470 package provides a light and a dark variant.")
6471 (license license:gpl3+)))
6472
6473 (define-public emacs-poet-theme
6474 (let ((commit "d84f7b259cc9b6ff8d442cf4c38bd6c7065ff8f4")
6475 (revision "0"))
6476 (package
6477 (name "emacs-poet-theme")
6478 (version (git-version "0" revision commit))
6479 (source
6480 (origin
6481 (method git-fetch)
6482 (uri (git-reference
6483 (url "https://github.com/kunalb/poet")
6484 (commit commit)))
6485 (file-name (git-file-name name version))
6486 (sha256
6487 (base32
6488 "0a84jdaj619mb59a46dmkk2sfs42rylqk9ryl1drgs8d3lia79mz"))))
6489 (build-system emacs-build-system)
6490 (home-page "https://github.com/kunalb/poet/")
6491 (synopsis "Emacs theme for prose")
6492 (description
6493 "Emacs has very good support for multiple fonts in a single file. Poet
6494 uses this support to make it much more convenient to write prose within Emacs,
6495 with particular attention paid to @code{org-mode} and @code{markdown-mode}.
6496 Code blocks, tables, etc are formatted in monospace text with the appropriate
6497 backgrounds.")
6498 (license license:expat))))
6499
6500 (define-public emacs-ahungry-theme
6501 (package
6502 (name "emacs-ahungry-theme")
6503 (version "1.10.0")
6504 (source
6505 (origin (method url-fetch)
6506 (uri (string-append "https://elpa.gnu.org/packages/ahungry-theme-"
6507 version ".tar"))
6508 (sha256
6509 (base32
6510 "14q5yw56n82qph09bk7wmj5b1snhh9w0nk5s1l7yn9ldg71xq6pm"))))
6511 (build-system emacs-build-system)
6512 (home-page "https://github.com/ahungry/color-theme-ahungry")
6513 (synopsis "Ahungry color theme for Emacs")
6514 (description "Ahungry theme for Emacs provides bright and bold colors.
6515 If you load it from a terminal, you will be able to make use of the
6516 transparent background. If you load it from a GUI, it will default to a
6517 dark background.")
6518 (license license:gpl3+)))
6519
6520 (define-public emacs-gruvbox-theme
6521 (package
6522 (name "emacs-gruvbox-theme")
6523 (version "1.28.0")
6524 (source (origin
6525 (method git-fetch)
6526 (uri (git-reference
6527 (url "https://github.com/greduan/emacs-theme-gruvbox")
6528 (commit version)))
6529 (file-name (git-file-name name version))
6530 (sha256
6531 (base32
6532 "00qq92gp1g55pzm97rh7k0dgxy44pxziridl8kqm4rbpi31r7k9p"))))
6533 (build-system emacs-build-system)
6534 (propagated-inputs
6535 `(("emacs-autothemer" ,emacs-autothemer)))
6536 (home-page "https://github.com/greduan/emacs-theme-gruvbox")
6537 (synopsis "Gruvbox is a retro groove color scheme ported from Vim")
6538 (description
6539 "Gruvbox is heavily inspired by badwolf, jellybeans and solarized.
6540
6541 Designed as a bright theme with pastel 'retro groove' colors and light/dark
6542 mode switching in the way of solarized. The main focus when developing gruvbox
6543 is to keep colors easily distinguishable, contrast enough and still pleasant
6544 for the eyes.")
6545 (license license:expat))) ; MIT license
6546
6547 (define-public emacs-spacegray-theme
6548 (let ((commit "9826265c2bceb2ebc1c5e16a45021da0253ace97")
6549 (revision "0"))
6550 (package
6551 (name "emacs-spacegray-theme")
6552 (version (git-version "0" revision commit))
6553 (source (origin
6554 (method git-fetch)
6555 (uri (git-reference
6556 (url "https://github.com/bruce/emacs-spacegray-theme")
6557 (commit commit)))
6558 (file-name (git-file-name name version))
6559 (sha256
6560 (base32
6561 "0aplwmm17ypbns5blc4rf5rr6dasj0zp5ibykpfl43fh4bd8z89n"))))
6562 (build-system emacs-build-system)
6563 (home-page "https://github.com/bruce/emacs-spacegray-theme")
6564 (synopsis "Port of Sublime Text's Spacegray theme for Emacs")
6565 (description
6566 "@code{spacegray-theme} is an Emacs port of the Spacegray theme from
6567 Sublime Text. It features a dark blue/gray background and soft blue, green,
6568 orange and red as accent colors.")
6569 (license license:expat)))) ; MIT license
6570
6571 (define-public emacs-2048-game
6572 (package
6573 (name "emacs-2048-game")
6574 (version "20151026.1233")
6575 (source
6576 (origin
6577 (method url-fetch)
6578 (uri (string-append "https://melpa.org/packages/2048-game-"
6579 version ".el"))
6580 (sha256
6581 (base32
6582 "0gy2pvz79whpavp4jmz8h9krzn7brmvv3diixi1d4w51pcdvaldd"))))
6583 (build-system emacs-build-system)
6584 (home-page "https://hg.sr.ht/~zck/game-2048")
6585 (synopsis "Implementation of the game 2048 in Emacs Lisp")
6586 (description
6587 "This program is an implementation of 2048 for Emacs.
6588 The goal of this game is to create a tile with value 2048. The size of the
6589 board and goal value can be customized.")
6590 (license license:gpl3+)))
6591
6592 (define-public emacs-chess
6593 (package
6594 (name "emacs-chess")
6595 (version "2.0.4")
6596 (source
6597 (origin
6598 (method url-fetch)
6599 (uri (string-append "https://elpa.gnu.org/packages/"
6600 "chess-" version ".tar"))
6601 (sha256
6602 (base32 "1sq1bjmp513vldfh7hc2bbfc54665abqiz0kqgqq3gijckaxn5js"))))
6603 (build-system emacs-build-system)
6604 (arguments
6605 `(#:phases
6606 (modify-phases %standard-phases
6607 (add-after 'install 'install-pieces
6608 (lambda* (#:key outputs #:allow-other-keys)
6609 (let* ((out (assoc-ref outputs "out"))
6610 (pieces
6611 (string-append out "/share/emacs/site-lisp/pieces")))
6612 (mkdir-p pieces)
6613 (copy-recursively "pieces" pieces)
6614 #t))))))
6615 (home-page "https://elpa.gnu.org/packages/chess.html")
6616 (synopsis "Play chess in GNU Emacs")
6617 (description
6618 "Chess is an Emacs Lisp library and several clients on top of the
6619 underlying library functionality for performing various activities related to
6620 the game of chess.")
6621 (license license:gpl3+)))
6622
6623 (define-public emacs-4clojure
6624 ;; There is no release. Base version is extracted from Version keyword in
6625 ;; the main file.
6626 (let ((commit "4eccf8c7d4341a36c269451838114b27836699f9")
6627 (revision "1"))
6628 (package
6629 (name "emacs-4clojure")
6630 (version (git-version "0.2.1" revision commit))
6631 (source
6632 (origin
6633 (method git-fetch)
6634 (uri (git-reference
6635 (url "https://github.com/emacsorphanage/4clojure")
6636 (commit commit)))
6637 (file-name (git-file-name name version))
6638 (sha256
6639 (base32 "19x653lzc1dxil4ix257hciidbdmbhaxhs6qhlkwi9ygjrlrgvnk"))))
6640 (build-system emacs-build-system)
6641 (propagated-inputs
6642 `(("emacs-request" ,emacs-request)))
6643 (home-page "https://github.com/emacsorphanage/4clojure/")
6644 (synopsis "Open and evaluate 4clojure questions in Emacs")
6645 (description "Emacs 4clojure interacts with
6646 @url{http://www.4clojure.com, 4clojure} problems. You can open a specific
6647 question and move to the next or previous one. You can also verify your
6648 answers.")
6649 (license license:gpl3+))))
6650
6651 (define-public emacs-base16-theme
6652 (package
6653 (name "emacs-base16-theme")
6654 (version "2.2")
6655 (source
6656 (origin
6657 (method git-fetch)
6658 (uri (git-reference
6659 (url "https://github.com/belak/base16-emacs")
6660 (commit version)))
6661 (file-name (git-file-name name version))
6662 (sha256
6663 (base32 "01w89g413s1da6rf94y1xnhw79cjy2bqb01yfjs58cy492cm0vr6"))))
6664 (build-system emacs-build-system)
6665 (home-page "https://github.com/belak/base16-emacs")
6666 (synopsis "Base16 color themes for Emacs")
6667 (description
6668 "Base16 provides carefully chosen syntax highlighting and a default set
6669 of sixteen colors suitable for a wide range of applications. Base16 is not a
6670 single theme but a set of guidelines with numerous implementations.")
6671 (license license:expat)))
6672
6673 (define-public emacs-solaire-mode
6674 (package
6675 (name "emacs-solaire-mode")
6676 (version "1.0.9")
6677 (source
6678 (origin
6679 (method git-fetch)
6680 (uri (git-reference
6681 (url "https://github.com/hlissner/emacs-solaire-mode")
6682 (commit (string-append "v" version))))
6683 (file-name (git-file-name name version))
6684 (sha256
6685 (base32 "011m4r7s6i9lgjymh7jgq5jwwrpz4vmpvp3c8d4ix96v5hi04kzg"))))
6686 (build-system emacs-build-system)
6687 (home-page "https://github.com/hlissner/emacs-solaire-mode")
6688 (synopsis "Change background of file-visiting buffers in Emacs")
6689 (description
6690 "@code{solaire-mode} is inspired by editors which visually distinguish
6691 code-editing windows from sidebars, popups, terminals, ecetera. It changes the
6692 background of file-visiting buffers (and certain aspects of the UI) to make
6693 them easier to distinguish from other, less important buffers.")
6694 (license license:expat)))
6695
6696 (define-public emacs-prescient
6697 (package
6698 (name "emacs-prescient")
6699 (version "5.0")
6700 (source
6701 (origin
6702 (method git-fetch)
6703 (uri (git-reference
6704 (url "https://github.com/raxod502/prescient.el")
6705 (commit (string-append "v" version))))
6706 (file-name (git-file-name name version))
6707 (sha256
6708 (base32 "001q4l730bhw4d508jxlpzh1z459qzpg6rbncp12jrfm5yidksix"))))
6709 (build-system emacs-build-system)
6710 (propagated-inputs
6711 `(("emacs-company" ,emacs-company)
6712 ("emacs-ivy" ,emacs-ivy)
6713 ("emacs-selectrum" ,emacs-selectrum)))
6714 (home-page "https://github.com/raxod502/prescient.el/")
6715 (synopsis "Emacs library for sorting and filtering candidates")
6716 (description
6717 "Prescient is a library for sorting and filtering, as well as extensions
6718 for Ivy and Company that make use of the library.")
6719 (license license:expat)))
6720
6721 (define-public emacs-selectrum
6722 (package
6723 (name "emacs-selectrum")
6724 (version "3.0")
6725 (source
6726 (origin
6727 (method git-fetch)
6728 (uri (git-reference
6729 (url "https://github.com/raxod502/selectrum")
6730 (commit (string-append "v" version))))
6731 (file-name (git-file-name name version))
6732 (sha256
6733 (base32 "0j10yxlikyg7qxcmp4fnddyd5nc3hlz080d1zcbijq020a08k86g"))))
6734 (build-system emacs-build-system)
6735 (home-page "https://github.com/raxod502/selectrum/")
6736 (synopsis "Incremental narrowing in Emacs")
6737 (description "Selectrum is a solution for incremental narrowing in
6738 Emacs, replacing Helm, Ivy, and IDO. Its design philosophy is based
6739 on choosing the right abstractions and prioritizing consistency and
6740 predictability over special-cased improvements for particular cases.
6741 As such, Selectrum follows existing Emacs conventions where they exist
6742 and are reasonable, and it declines to implement features which have
6743 marginal benefit compared to the additional complexity of a new
6744 interface.")
6745 (license license:expat)))
6746
6747 (define-public emacs-smartparens
6748 (package
6749 (name "emacs-smartparens")
6750 (version "1.11.0")
6751 (source
6752 (origin
6753 (method git-fetch)
6754 (uri (git-reference
6755 (url "https://github.com/Fuco1/smartparens")
6756 (commit version)))
6757 (file-name (git-file-name name version))
6758 (sha256
6759 (base32 "0zij2f2rjjym98w68jkp10n1ckpfprlkk217c3fg16hz5nq4vnm6"))))
6760 (build-system emacs-build-system)
6761 (propagated-inputs
6762 `(("emacs-dash" ,emacs-dash)
6763 ("emacs-markdown-mode" ,emacs-markdown-mode)))
6764 (home-page "https://github.com/Fuco1/smartparens")
6765 (synopsis "Paredit-like insertion, wrapping and navigation with user
6766 defined pairs")
6767 (description
6768 "Smartparens is a minor mode for Emacs that deals with parens pairs
6769 and tries to be smart about it. It started as a unification effort to
6770 combine functionality of several existing packages in a single,
6771 compatible and extensible way to deal with parentheses, delimiters, tags
6772 and the like. Some of these packages include autopair, textmate,
6773 wrap-region, electric-pair-mode, paredit and others. With the basic
6774 features found in other packages it also brings many improvements as
6775 well as completely new features.")
6776 (license license:gpl3+)))
6777
6778 (define-public emacs-highlight-symbol
6779 ;; We prefer a more recent commit that provides an option to squelch
6780 ;; echo-area alerts that can drown out useful information like eldoc
6781 ;; messages.
6782 (let ((commit "7a789c779648c55b16e43278e51be5898c121b3a")
6783 (version "1.3")
6784 (revision "1"))
6785 (package
6786 (name "emacs-highlight-symbol")
6787 (version (git-version version revision commit))
6788 (source
6789 (origin
6790 (method git-fetch)
6791 (uri (git-reference
6792 (url "https://github.com/nschum/highlight-symbol.el")
6793 (commit commit)))
6794 (file-name (git-file-name name version))
6795 (sha256
6796 (base32 "19cgyk0sh8nsmf3jbi92i8qsdx4l4yilfq5jj9zfdbj9p5gvwx96"))))
6797 (build-system emacs-build-system)
6798 (home-page "https://nschum.de/src/emacs/highlight-symbol/")
6799 (synopsis "Automatic and manual symbol highlighting for Emacs")
6800 (description
6801 "Use @code{highlight-symbol} to toggle highlighting of the symbol at
6802 point throughout the current buffer. Use @code{highlight-symbol-mode} to keep
6803 the symbol at point highlighted.
6804
6805 The functions @code{highlight-symbol-next}, @code{highlight-symbol-prev},
6806 @code{highlight-symbol-next-in-defun} and
6807 @code{highlight-symbol-prev-in-defun} allow for cycling through the locations
6808 of any symbol at point. Use @code{highlight-symbol-nav-mode} to enable key
6809 bindings @code{M-p} and @code{M-p} for navigation. When
6810 @code{highlight-symbol-on-navigation-p} is set, highlighting is triggered
6811 regardless of @code{highlight-symbol-idle-delay}.
6812
6813 @code{highlight-symbol-query-replace} can be used to replace the symbol. ")
6814 (license license:gpl2+))))
6815
6816 (define-public emacs-symbol-overlay
6817 (package
6818 (name "emacs-symbol-overlay")
6819 (version "4.2")
6820 (source
6821 (origin
6822 (method git-fetch)
6823 (uri (git-reference
6824 (url "https://github.com/wolray/symbol-overlay")
6825 (commit version)))
6826 (file-name (git-file-name name version))
6827 (sha256
6828 (base32 "10n0871xzycifyqp73xnbqmrgy60imlb26yhm3p6vfj3d84mg1b2"))))
6829 (build-system emacs-build-system)
6830 (home-page "https://github.com/wolray/symbol-overlay")
6831 (synopsis "Highlight symbols and perform various search operations on them")
6832 (description
6833 "This package provides functions for highlighting and navigating
6834 between symbols.")
6835 (license license:gpl3+)))
6836
6837 (define-public emacs-hl-todo
6838 (package
6839 (name "emacs-hl-todo")
6840 (version "3.1.2")
6841 (source (origin
6842 (method git-fetch)
6843 (uri (git-reference
6844 (url "https://github.com/tarsius/hl-todo")
6845 (commit (string-append "v" version))))
6846 (file-name (git-file-name name version))
6847 (sha256
6848 (base32
6849 "1i5mdmkbrxqx75grwl01pywbgl8pasr00mq6fidspp0aligsbg6w"))))
6850 (build-system emacs-build-system)
6851 (home-page "https://github.com/tarsius/hl-todo")
6852 (synopsis "Emacs mode to highlight TODO and similar keywords")
6853 (description
6854 "This package provides an Emacs mode to highlight TODO and similar
6855 keywords in comments and strings. This package also provides commands for
6856 moving to the next or previous keyword and to invoke @code{occur} with a
6857 regexp that matches all known keywords.")
6858 (license license:gpl3+)))
6859
6860 (define-public emacs-perspective
6861 (package
6862 (name "emacs-perspective")
6863 (version "2.11")
6864 (source
6865 (origin
6866 (method git-fetch)
6867 (uri (git-reference
6868 (url "https://github.com/nex3/perspective-el")
6869 (commit version)))
6870 (file-name (git-file-name name version))
6871 (sha256
6872 (base32
6873 "0nka5z6226r174ligja023qx2bb1pfyjbanafxprbyxkr17b2794"))))
6874 (build-system emacs-build-system)
6875 (arguments
6876 `(#:tests? #t
6877 #:test-command '("emacs" "-Q" "-batch" "-L" "."
6878 "-l" "test/test-perspective.el"
6879 "-f" "ert-run-tests-batch-and-exit")))
6880 (home-page "https://github.com/nex3/perspective-el")
6881 (synopsis "Switch between named \"perspectives\"")
6882 (description
6883 "This package provides tagged workspaces in Emacs, similar to workspaces in
6884 windows managers such as Awesome and XMonad. @code{perspective.el} provides
6885 multiple workspaces (or \"perspectives\") for each Emacs frame. Each
6886 perspective is composed of a window configuration and a set of buffers.
6887 Switching to a perspective activates its window configuration, and when in a
6888 perspective only its buffers are available by default.")
6889 ;; This package is released under the same license as Emacs (GPLv3+) or
6890 ;; the Expat license.
6891 (license license:gpl3+)))
6892
6893 (define-public emacs-persp-mode
6894 (package
6895 (name "emacs-persp-mode")
6896 (version "2.9.8")
6897 (source
6898 (origin
6899 (method git-fetch)
6900 (uri (git-reference
6901 (url "https://github.com/Bad-ptr/persp-mode.el")
6902 (commit (string-append "v" version))))
6903 (file-name (git-file-name name version))
6904 (sha256
6905 (base32
6906 "0b4y7a6j70s9lvr37riyy9k5kh3yvmx0m6nd9c0c8572ji4ij65g"))))
6907 (build-system emacs-build-system)
6908 (home-page "https://github.com/Bad-ptr/persp-mode.el")
6909 (synopsis "Switch between named \"perspectives\" shared among frames")
6910 (description
6911 "This package extends @code{perspective.el} to enable perspectives that
6912 can be saved to and restored from a file.")
6913 (license license:gpl2+)))
6914
6915 (define-public emacs-test-simple
6916 (package
6917 (name "emacs-test-simple")
6918 (version "1.3.0")
6919 (source
6920 (origin
6921 (method url-fetch)
6922 (uri (string-append "https://elpa.gnu.org/packages/test-simple-"
6923 version ".el"))
6924 (sha256
6925 (base32
6926 "1yd61jc9ds95a5n09052kwc5gasy57g4lxr0jsff040brlyi9czz"))))
6927 (build-system emacs-build-system)
6928 (home-page "https://github.com/rocky/emacs-test-simple")
6929 (synopsis "Simple unit test framework for Emacs Lisp")
6930 (description
6931 "Test Simple is a simple unit test framework for Emacs Lisp. It
6932 alleviates the need for context macros, enclosing specifications or required
6933 test tags. It supports both interactive and non-interactive use.")
6934 (license license:gpl3+)))
6935
6936 (define-public emacs-load-relative
6937 (package
6938 (name "emacs-load-relative")
6939 (version "1.3.1")
6940 (source
6941 (origin
6942 (method url-fetch)
6943 (uri (string-append "https://elpa.gnu.org/packages/load-relative-"
6944 version ".el"))
6945 (sha256
6946 (base32 "1m37scr82lqqy954fchjxrmdh4lngrl4d1yzxhp3yfjhsydizhrj"))))
6947 (build-system emacs-build-system)
6948 (home-page "https://github.com/rocky/emacs-load-relative")
6949 (synopsis "Emacs Lisp relative file loading related functions")
6950 (description
6951 "Provides functions which facilitate writing multi-file Emacs packages
6952 and running from the source tree without having to \"install\" code or fiddle
6953 with @{load-path}.
6954
6955 The main function, @code{load-relative}, loads an Emacs Lisp file relative to
6956 another (presumably currently running) Emacs Lisp file.")
6957 (license license:gpl3+)))
6958
6959 (define-public emacs-loc-changes
6960 (package
6961 (name "emacs-loc-changes")
6962 (version "1.2")
6963 (source
6964 (origin
6965 (method url-fetch)
6966 (uri (string-append "https://elpa.gnu.org/packages/loc-changes-"
6967 version ".el"))
6968 (sha256
6969 (base32
6970 "1x8fn8vqasayf1rb8a6nma9n6nbvkx60krmiahyb05vl5rrsw6r3"))))
6971 (build-system emacs-build-system)
6972 (home-page "https://github.com/rocky/emacs-loc-changes")
6973 (synopsis "Keeps track of positions even after buffer changes")
6974 (description
6975 "This Emacs package provides a mean to track important buffer positions
6976 after buffer changes.")
6977 (license license:gpl3+)))
6978
6979 (define-public emacs-realgud
6980 (package
6981 (name "emacs-realgud")
6982 (version "1.5.1")
6983 (source
6984 (origin
6985 (method git-fetch)
6986 (uri (git-reference
6987 (url "https://github.com/realgud/realgud/")
6988 (commit version)))
6989 (sha256
6990 (base32
6991 "1d3s23jk0i34wpyxfajydgyyvsxnpbqrfl0mgydsq7zw2c75ylnq"))
6992 (file-name (git-file-name name version))))
6993 (build-system emacs-build-system)
6994 (arguments
6995 `(#:tests? #t
6996 #:phases
6997 (modify-phases %standard-phases
6998 (add-after 'unpack 'fix-realgud:run-process-void-error
6999 ;; See: https://github.com/realgud/realgud/issues/269.
7000 (lambda _
7001 (substitute* '("realgud/debugger/gdb/gdb.el"
7002 "realgud/debugger/gub/gub.el")
7003 (("^\\(require 'load-relative\\).*" anchor)
7004 (string-append anchor
7005 "(require-relative-list \
7006 '(\"../../common/run\") \"realgud:\")\n")))
7007 #t))
7008 (add-after 'unpack 'fix-autogen-script
7009 (lambda _
7010 (substitute* "autogen.sh"
7011 (("./configure") "sh configure"))
7012 #t))
7013 (add-after 'fix-autogen-script 'autogen
7014 (lambda _
7015 (setenv "CONFIG_SHELL" "sh")
7016 (invoke "sh" "autogen.sh")))
7017 (add-after 'fix-autogen-script 'set-home
7018 (lambda _
7019 (setenv "HOME" (getenv "TMPDIR"))
7020 #t))
7021 (add-before 'patch-el-files 'remove-realgud-pkg.el
7022 (lambda _
7023 ;; FIXME: `patch-el-files' crashes on this file with error:
7024 ;; unable to locate "bashdb".
7025 (delete-file "./test/test-regexp-bashdb.el")
7026 #t)))
7027 #:include (cons* ".*\\.el$" %default-include)))
7028 (native-inputs
7029 `(("autoconf" ,autoconf)
7030 ("automake" ,automake)
7031 ("emacs-test-simple" ,emacs-test-simple)))
7032 (propagated-inputs
7033 `(("emacs-load-relative" ,emacs-load-relative)
7034 ("emacs-loc-changes" ,emacs-loc-changes)))
7035 (home-page "https://github.com/realgud/realgud/")
7036 (synopsis
7037 "Modular front-end for interacting with external debuggers")
7038 (description
7039 "RealGUD is a modular, extensible GNU Emacs front-end for interacting
7040 with external debuggers. It integrates various debuggers such as gdb, pdb,
7041 ipdb, jdb, lldb, bashdb, zshdb, etc. and allows to visually step code in the
7042 sources. Unlike GUD, it also supports running multiple debug sessions in
7043 parallel.")
7044 (license license:gpl3+)))
7045
7046 (define-public emacs-request
7047 (package
7048 (name "emacs-request")
7049 (version "0.3.2")
7050 (source (origin
7051 (method git-fetch)
7052 (uri (git-reference
7053 (url "https://github.com/tkf/emacs-request")
7054 (commit (string-append "v" version))))
7055 (file-name (git-file-name name version))
7056 (sha256
7057 (base32
7058 "1djywhvvb6kwdj0nd3axjvb7k2g06dzkc6hsf29w9rsk96vr8ryl"))))
7059 (build-system emacs-build-system)
7060 (arguments
7061 `(#:tests? #f)) ; requires network access.
7062 (propagated-inputs
7063 `(("emacs-deferred" ,emacs-deferred)))
7064 (home-page "https://github.com/tkf/emacs-request")
7065 (synopsis "Package for speaking HTTP in Emacs Lisp")
7066 (description "This package provides a HTTP request library with multiple
7067 backends. It supports url.el which is shipped with Emacs and the curl command
7068 line program.")
7069 (license license:gpl3+)))
7070
7071 (define-public emacs-rudel
7072 (package
7073 (name "emacs-rudel")
7074 (version "0.3.2")
7075 (source
7076 (origin
7077 (method url-fetch)
7078 (uri (string-append "https://elpa.gnu.org/packages/rudel-"
7079 version ".tar"))
7080 (sha256
7081 (base32 "03hcvpp6ykavidwn5x48gs986w1i5icvh7ks6p74pdaagpgw4jmk"))))
7082 (build-system emacs-build-system)
7083 (home-page "http://rudel.sourceforge.net/")
7084 (synopsis "Collaborative editing framework")
7085 (description
7086 "Rudel is a collaborative editing environment for GNU Emacs. Its purpose
7087 is to share buffers with other users in order to edit the contents of those
7088 buffers collaboratively. Rudel supports multiple backends to enable
7089 communication with other collaborative editors using different protocols,
7090 though currently Obby (for use with the Gobby editor) is the only
7091 fully-functional one.")
7092 (license license:gpl3+)))
7093
7094 (define-public emacs-hydra
7095 (package
7096 (name "emacs-hydra")
7097 (version "0.15.0")
7098 (source
7099 (origin
7100 (method git-fetch)
7101 (uri (git-reference
7102 (url "https://github.com/abo-abo/hydra")
7103 (commit version)))
7104 (file-name (git-file-name name version))
7105 (sha256
7106 (base32
7107 "0fapvhmhgc9kppf3bvkgry0cd7gyilg7sfvlscfrfjxpx4xvwsfy"))))
7108 (build-system emacs-build-system)
7109 (arguments
7110 `(#:tests? #t
7111 #:test-command '("make" "test")))
7112 (home-page "https://github.com/abo-abo/hydra")
7113 (synopsis "Make Emacs bindings that stick around")
7114 (description
7115 "This package can be used to tie related commands into a family of short
7116 bindings with a common prefix---a Hydra. Once you summon the Hydra (through
7117 the prefixed binding), all the heads can be called in succession with only a
7118 short extension. Any binding that isn't the Hydra's head vanquishes the
7119 Hydra. Note that the final binding, besides vanquishing the Hydra, will still
7120 serve its original purpose, calling the command assigned to it. This makes
7121 the Hydra very seamless; it's like a minor mode that disables itself
7122 automatically.")
7123 (license license:gpl3+)))
7124
7125 (define-public emacs-interleave
7126 (package
7127 (name "emacs-interleave")
7128 (version "1.4.0")
7129 (source
7130 (origin
7131 (method git-fetch)
7132 (uri
7133 (git-reference
7134 (url "https://github.com/rudolfochrist/interleave")
7135 (commit (string-append "interleave-" version))))
7136 (file-name (git-file-name name version))
7137 (sha256
7138 (base32 "0l5b681mrpk12lx5c16m7kc13p29z6zismwg1llsjg7cdmrmsrcb"))))
7139 (build-system emacs-build-system)
7140 (home-page "https://github.com/rudolfochrist/interleave")
7141 (synopsis "Emacs minor mode to interleave notes and text books")
7142 (description
7143 "Interleave is a minor mode that presents a document viewer side
7144 by side to an Org buffer with your notes relevant to the current page.")
7145 (license license:gpl3+)))
7146
7147 (define-public emacs-ivy
7148 (package
7149 (name "emacs-ivy")
7150 (version "0.13.1")
7151 (source
7152 (origin
7153 (method url-fetch)
7154 (uri (string-append "https://elpa.gnu.org/packages/ivy-" version ".tar"))
7155 (sha256
7156 (base32 "0n0ixhdykbdpis4krkqq6zncbby28p34742q96n0l91w0p19slcx"))))
7157 (build-system emacs-build-system)
7158 (propagated-inputs
7159 `(("emacs-hydra" ,emacs-hydra)))
7160 (home-page "https://github.com/abo-abo/swiper")
7161 (synopsis "Incremental vertical completion for Emacs")
7162 (description
7163 "This package provides @code{ivy-read} as an alternative to
7164 @code{completing-read} and similar functions. No attempt is made to determine
7165 the best candidate. Instead, the user can navigate candidates with
7166 @code{ivy-next-line} and @code{ivy-previous-line}. The matching is done by
7167 splitting the input text by spaces and re-building it into a regular
7168 expression.")
7169 (license license:gpl3+)))
7170
7171 (define-public emacs-counsel
7172 (package
7173 (name "emacs-counsel")
7174 (version "0.13.1")
7175 (source
7176 (origin
7177 (method url-fetch)
7178 (uri (string-append "https://elpa.gnu.org/packages/"
7179 "counsel-" version ".el"))
7180 (sha256
7181 (base32 "1y3hr3j5bh5mbyh1cqzxx04181qpvj4xyv1gym2gxcjd30nfllli"))))
7182 (build-system emacs-build-system)
7183 (propagated-inputs
7184 `(("emacs-swiper" ,emacs-swiper)))
7185 (home-page "https://github.com/abo-abo/swiper")
7186 (synopsis "Various completion functions using Ivy")
7187 (description
7188 "Just call one of the interactive functions in a file to complete the
7189 corresponding thing using Ivy.
7190
7191 The following completions are currently available:
7192 @itemize
7193 @item Symbol completion for Elisp, Common Lisp, Python, Clojure, C, C++.
7194 @item Describe functions for Elisp: function, variable, library, command,
7195 @item bindings, theme.
7196 @item Navigation functions: imenu, ace-line, semantic, outline.
7197 @item Git utilities: git-files, git-grep, git-log, git-stash, git-checkout.
7198 @item Grep utilities: grep, ag, pt, recoll, ack, rg.
7199 @item System utilities: process list, rhythmbox, linux-app.
7200 @item Many more.
7201 @end itemize")
7202 (license license:gpl3+)))
7203
7204 (define-public emacs-swiper
7205 (package
7206 (name "emacs-swiper")
7207 (version "0.13.1")
7208 (source
7209 (origin
7210 (method url-fetch)
7211 (uri (string-append "https://elpa.gnu.org/packages/"
7212 "swiper-" version ".el"))
7213 (sha256
7214 (base32 "06ild7kck0x5ry8bf0al24nh04q01q3jhj6jjl4xz8n2s6jnn70y"))))
7215 (build-system emacs-build-system)
7216 (propagated-inputs
7217 `(("emacs-ivy" ,emacs-ivy)))
7218 (home-page "https://github.com/abo-abo/swiper")
7219 (synopsis "Isearch with an overview")
7220 (description
7221 "This package gives an overview of the current regex search candidates.
7222 The search regex can be split into groups with a space. Each group is
7223 highlighted with a different face.
7224
7225 It can double as a quick `regex-builder', although only single lines will be
7226 matched.")
7227 (license license:gpl3+)))
7228
7229 (define-public emacs-ivy-xref
7230 (let ((commit "1a35fc0f070388701b05b0a455cbe262e924d547")
7231 (revision "1"))
7232 (package
7233 (name "emacs-ivy-xref")
7234 (version (git-version "0.1" revision commit))
7235 (source
7236 (origin
7237 (method git-fetch)
7238 (uri (git-reference
7239 (url "https://github.com/alexmurray/ivy-xref")
7240 (commit commit)))
7241 (file-name (git-file-name name version))
7242 (sha256
7243 (base32
7244 "0d71nm9d9ajp5i6dnl8h1hw9jqp8gd1ajgninb1h13i80rplzl9k"))))
7245 (build-system emacs-build-system)
7246 (propagated-inputs
7247 `(("emacs-ivy" ,emacs-ivy)))
7248 (home-page "https://github.com/alexmurray/ivy-xref")
7249 (synopsis "Ivy interface for @code{xref}")
7250 (description "This package provides an Ivy interface for selecting from
7251 @code{xref} results.")
7252 (license license:gpl3))))
7253
7254 (define-public emacs-ivy-pass
7255 (let ((commit "5b523de1151f2109fdd6a8114d0af12eef83d3c5")
7256 (revision "1"))
7257 (package
7258 (name "emacs-ivy-pass")
7259 (version (git-version "0.1" revision commit))
7260 (source
7261 (origin
7262 (method git-fetch)
7263 (uri (git-reference
7264 (url "https://github.com/ecraven/ivy-pass")
7265 (commit commit)))
7266 (file-name (git-file-name name version))
7267 (sha256
7268 (base32
7269 "18crb4zh2pjf0cmv3b913m9vfng27girjwfqc3mk7vqd1r5a49yk"))))
7270 (build-system emacs-build-system)
7271 (propagated-inputs
7272 `(("emacs-ivy" ,emacs-ivy)
7273 ("emacs-password-store" ,emacs-password-store)
7274 ("password-store" ,password-store)))
7275 (home-page "https://github.com/ecraven/ivy-pass")
7276 (synopsis "Ivy interface for password store (pass)")
7277 (description "This package provides an Ivy interface for working with
7278 the password store @code{pass}.")
7279 (license license:gpl3))))
7280
7281 (define-public emacs-ivy-yasnippet
7282 (let ((commit "32580b4fd23ebf9ca7dde96704f7d53df6e253cd")
7283 (revision "2"))
7284 (package
7285 (name "emacs-ivy-yasnippet")
7286 (version (git-version "0.1" revision commit))
7287 (source
7288 (origin
7289 (method git-fetch)
7290 (uri (git-reference
7291 (url "https://github.com/mkcms/ivy-yasnippet")
7292 (commit commit)))
7293 (file-name (git-file-name name version))
7294 (sha256
7295 (base32
7296 "1wfg6mmd5gl1qgvayyzpxlkh9s7jgn20y8l1vh1zbj1czvv51xp8"))))
7297 (build-system emacs-build-system)
7298 (propagated-inputs
7299 `(("emacs-ivy" ,emacs-ivy)
7300 ("emacs-yasnippet" ,emacs-yasnippet)
7301 ("emacs-dash" ,emacs-dash)))
7302 (home-page "https://github.com/mkcms/ivy-yasnippet")
7303 (synopsis "Preview @code{yasnippets} with @code{ivy}")
7304 (description "This package allows you to select @code{yasnippet}
7305 snippets using @code{ivy} completion. When current selection changes in the
7306 minibuffer, the snippet contents are temporarily expanded in the buffer. To
7307 use it, call @code{M-x ivy-yasnippet} (but make sure you have enabled
7308 @code{yas-minor-mode} first).")
7309 (license license:gpl3+))))
7310
7311 (define-public emacs-ivy-rich
7312 (package
7313 (name "emacs-ivy-rich")
7314 (version "0.1.6")
7315 (source
7316 (origin
7317 (method git-fetch)
7318 (uri (git-reference
7319 (url "https://github.com/Yevgnen/ivy-rich")
7320 (commit version)))
7321 (file-name (git-file-name name version))
7322 (sha256
7323 (base32 "1ra18v6lgz3m6asm6d5b92zn1x22yiz4cwxd9b54dnvwi11121m7"))))
7324 (build-system emacs-build-system)
7325 (propagated-inputs
7326 `(("emacs-ivy" ,emacs-ivy)))
7327 (home-page "https://github.com/Yevgnen/ivy-rich")
7328 (synopsis "More friendly interface for @code{ivy}")
7329 (description
7330 "This package extends Ivy by showing more information in the minibuffer
7331 for each candidate. It adds columns showing buffer modes, file sizes,
7332 docstrings, etc. If @code{emacs-all-the-icons} is installed, it can show
7333 icons as well.")
7334 (license license:gpl3+)))
7335
7336 (define-public emacs-avy
7337 (package
7338 (name "emacs-avy")
7339 (version "0.5.0")
7340 (source
7341 (origin
7342 (method git-fetch)
7343 (uri (git-reference
7344 (url "https://github.com/abo-abo/avy")
7345 (commit version)))
7346 (file-name (git-file-name name version))
7347 (sha256
7348 (base32 "09qdni1s74i5pv8741szl5g4ynj8fxn0x65qmwa9rmfkbimnc0fs"))))
7349 (build-system emacs-build-system)
7350 (arguments
7351 `(#:tests? #t
7352 #:test-command '("make" "test")))
7353 (home-page "https://github.com/abo-abo/avy")
7354 (synopsis "Tree-based completion for Emacs")
7355 (description
7356 "This package provides a generic completion method based on building a
7357 balanced decision tree with each candidate being a leaf. To traverse the tree
7358 from the root to a desired leaf, typically a sequence of @code{read-key} can
7359 be used.
7360
7361 In order for @code{read-key} to make sense, the tree needs to be visualized
7362 appropriately, with a character at each branch node. So this completion
7363 method works only for things that you can see on your screen, all at once,
7364 such as the positions of characters, words, line beginnings, links, or
7365 windows.")
7366 (license license:gpl3+)))
7367
7368 (define-public emacs-ace-window
7369 (package
7370 (name "emacs-ace-window")
7371 (version "0.10.0")
7372 (source
7373 (origin
7374 (method git-fetch)
7375 (uri (git-reference
7376 (url "https://github.com/abo-abo/ace-window")
7377 (commit version)))
7378 (file-name (git-file-name name version))
7379 (sha256
7380 (base32
7381 "0f3r40d5yxp2pm2j0nn86s29nqj8py0jxjbj50v4ci3hsd92d8jl"))))
7382 (build-system emacs-build-system)
7383 (propagated-inputs
7384 `(("emacs-avy" ,emacs-avy)))
7385 (home-page "https://github.com/abo-abo/ace-window")
7386 (synopsis "Quickly switch windows in Emacs")
7387 (description
7388 "@code{ace-window} is meant to replace @code{other-window}.
7389 In fact, when there are only two windows present, @code{other-window} is
7390 called. If there are more, each window will have its first character
7391 highlighted. Pressing that character will switch to that window.")
7392 (license license:gpl3+)))
7393
7394 (define-public emacs-windsize
7395 ;; There is no proper release. The base version is extracted from the
7396 ;; "Version" keyword in the main file.
7397 (let ((revision "1")
7398 (commit "62c2846bbe95b0a73e996c75e4a644d05f57aaaa"))
7399 (package
7400 (name "emacs-windsize")
7401 (version (git-version "0.1" revision commit))
7402 (source
7403 (origin
7404 (method git-fetch)
7405 (uri (git-reference
7406 (url "https://github.com/grammati/windsize")
7407 (commit commit)))
7408 (file-name (git-file-name name version))
7409 (sha256
7410 (base32 "13kfrmv3vmkfanxv9nym5v43hx5p7xkgqmx65zcxh4gcbaham1mi"))))
7411 (build-system emacs-build-system)
7412 (home-page "https://github.com/grammati/windsize")
7413 (synopsis "Easy resizing of Emacs windows")
7414 (description
7415 "This package allows moving the borders of the active window
7416 with the arrow keys. It prefers to move the right or bottom border when
7417 possible, and falls back to moving the left or top border otherwise.")
7418 (license license:gpl3+))))
7419
7420 (define-public emacs-iedit
7421 ;; Last release version was in 2016.
7422 (let ((commit "e2c100cdd67b7d82835d281ac2cd1bf4f374bc8f")
7423 (revision "1"))
7424 (package
7425 (name "emacs-iedit")
7426 (version (git-version "0.9.9.9" revision commit))
7427 (source
7428 (origin
7429 (method git-fetch)
7430 (uri (git-reference
7431 (url "https://github.com/victorhge/iedit")
7432 (commit commit)))
7433 (file-name (git-file-name name version))
7434 (sha256
7435 (base32 "0wr3w2id95wx2rma8n1ifjrv9rx37ly26ijc5zi58id0yrip3hnc"))))
7436 (build-system emacs-build-system)
7437 (home-page "https://www.emacswiki.org/emacs/Iedit")
7438 (synopsis "Edit multiple regions in the same way simultaneously")
7439 (description
7440 "This package is an Emacs minor mode and allows you to edit one
7441 occurrence of some text in a buffer (possibly narrowed) or region, and
7442 simultaneously have other occurrences edited in the same way.
7443
7444 You can also use Iedit mode as a quick way to temporarily show only the buffer
7445 lines that match the current text being edited. This gives you the effect of
7446 a temporary @code{keep-lines} or @code{occur}.")
7447 (license license:gpl3+))))
7448
7449 (define-public emacs-zoutline
7450 (package
7451 (name "emacs-zoutline")
7452 (version "0.2.0")
7453 (source
7454 (origin
7455 (method git-fetch)
7456 (uri (git-reference
7457 (url "https://github.com/abo-abo/zoutline")
7458 (commit version)))
7459 (sha256
7460 (base32
7461 "1w0zh6vs7klgivq5r030a82mcfg1zwic4x3fimyiqyg5n8p67hyx"))
7462 (file-name (git-file-name name version))))
7463 (build-system emacs-build-system)
7464 (home-page "https://github.com/abo-abo/zoutline")
7465 (synopsis "Simple outline library")
7466 (description
7467 "This library provides helpers for outlines. Outlines allow users to
7468 navigate code in a tree-like fashion.")
7469 (license license:gpl3+)))
7470
7471 (define-public emacs-lispy
7472 ;; No release since May 2019 and tons of fixes have landed on master.
7473 ;; https://github.com/abo-abo/lispy/issues/513
7474 (let ((commit "5c8a59ae7dd3dd342e7c86a8c0acdbd13e2989f3"))
7475 (package
7476 (name "emacs-lispy")
7477 (version (git-version "0.27.0" "1" commit))
7478 (home-page "https://github.com/abo-abo/lispy")
7479 (source (origin
7480 (method git-fetch)
7481 (uri (git-reference
7482 (url "https://github.com/abo-abo/lispy")
7483 (commit commit)))
7484 (sha256
7485 (base32
7486 "0738v9bp4dlxbwsnykvc35yh4dl4pvw25jl8srb7r3744ydvgyii"))
7487 (file-name (git-file-name name version))))
7488 (build-system emacs-build-system)
7489 (propagated-inputs
7490 `(("emacs-ace-window" ,emacs-ace-window)
7491 ("emacs-hydra" ,emacs-hydra)
7492 ("emacs-iedit" ,emacs-iedit)
7493 ("emacs-swiper" ,emacs-swiper)
7494 ("emacs-zoutline" ,emacs-zoutline)))
7495 (native-inputs
7496 `(("which" ,which)
7497 ("emacs-clojure-mode" ,emacs-clojure-mode)
7498 ("emacs-undercover" ,emacs-undercover)))
7499 (arguments
7500 `(#:include (cons* "^lispy-clojure\\.clj$"
7501 "^lispy-python\\.py$"
7502 %default-include)
7503 #:phases
7504 ;; XXX: Some failing tests
7505 (modify-phases %standard-phases
7506 (add-before 'check 'make-test-writable
7507 (lambda _
7508 (make-file-writable "lispy-test.el")
7509 #t))
7510 (add-before 'check 'remove-failing-test
7511 (lambda _
7512 (emacs-batch-edit-file "lispy-test.el"
7513 `(progn
7514 (dolist (test '("lispy-eval-python-str" "lispy--clojure-dot-object"))
7515 (goto-char (point-min))
7516 (re-search-forward
7517 (concat "ert-deftest " test))
7518 (beginning-of-line)
7519 (kill-sexp))
7520 (basic-save-buffer)))
7521 #t)))
7522 #:tests? #t
7523 ;; Set BEMACS to prevent the test suite from loading straight.el.
7524 #:test-command '("make" "test" "BEMACS=emacs -batch")))
7525 (synopsis "Modal S-expression editing")
7526 (description
7527 "Due to the structure of Lisp syntax it's very rare for the programmer
7528 to want to insert characters right before \"(\" or right after \")\". Thus
7529 unprefixed printable characters can be used to call commands when the point is
7530 at one of these special locations. Lispy provides unprefixed keybindings for
7531 S-expression editing when point is at the beginning or end of an
7532 S-expression.")
7533 (license license:gpl3+))))
7534
7535 (define-public emacs-lispyville
7536 (let ((commit "1bf38088c981f5ab4ef2e2684952ab6af96378db")
7537 (revision "2"))
7538 (package
7539 (name "emacs-lispyville")
7540 (version (git-version "0.1" revision commit))
7541 (home-page "https://github.com/noctuid/lispyville")
7542 (source (origin
7543 (method git-fetch)
7544 (uri (git-reference (url home-page) (commit commit)))
7545 (sha256
7546 (base32
7547 "07z8qqvaxf963kwn7l2gk47989zb7r3d8ybqjs2cg6hzmzb77wbw"))
7548 (file-name (git-file-name name version))))
7549 (propagated-inputs
7550 `(("emacs-evil" ,emacs-evil)
7551 ("emacs-lispy" ,emacs-lispy)))
7552 (build-system emacs-build-system)
7553 (synopsis "Minor mode for integrating Evil with lispy")
7554 (description
7555 "LispyVille's main purpose is to provide a Lisp editing environment
7556 suited towards Evil users. It can serve as a minimal layer on top of lispy
7557 for better integration with Evil, but it does not require the use of lispy’s
7558 keybinding style. The provided commands allow for editing Lisp in normal
7559 state and will work even without lispy being enabled.")
7560 (license license:gpl3+))))
7561
7562 (define-public emacs-lpy
7563 (let ((commit "43b401fe15f0f0d01edb189378b9498121e9f766")
7564 (revision "3"))
7565 (package
7566 (name "emacs-lpy")
7567 (version (git-version "0.1.0" revision commit))
7568 (source
7569 (origin
7570 (method git-fetch)
7571 (uri (git-reference
7572 (url "https://github.com/abo-abo/lpy")
7573 (commit commit)))
7574 (sha256
7575 (base32
7576 "0xj1r7cn1rivaxhvawvmgx9fg3xilpfw4lkf2x2aqplr4s85ijas"))
7577 (file-name (git-file-name name version))))
7578 (propagated-inputs
7579 `(("emacs-zoutline" ,emacs-zoutline)
7580 ("emacs-lispy" ,emacs-lispy)))
7581 (build-system emacs-build-system)
7582 (home-page "https://github.com/abo-abo/lpy")
7583 (synopsis "Modal editing for Python")
7584 (description
7585 "This package provides a minor mode for Python that binds useful
7586 commands to unprefixed keys, such as @code{j} or @code{e}, under certain
7587 circumstances, and leaves the keys untouched outside of those situations,
7588 allowing unprefixed keys to insert their respective characters as expected.")
7589 (license license:gpl3+))))
7590
7591 (define-public emacs-clojure-mode
7592 (package
7593 (name "emacs-clojure-mode")
7594 (version "5.12.0")
7595 (source
7596 (origin
7597 (method git-fetch)
7598 (uri (git-reference
7599 (url "https://github.com/clojure-emacs/clojure-mode")
7600 (commit version)))
7601 (file-name (git-file-name name version))
7602 (sha256
7603 (base32 "14ipfy9ji39pnb9x7bzjp8lyqyxk168fx017m823j7a2g9i0sgp3"))))
7604 (build-system emacs-build-system)
7605 (native-inputs
7606 `(("emacs-buttercup" ,emacs-buttercup)
7607 ("emacs-dash" ,emacs-dash)
7608 ("emacs-paredit" ,emacs-paredit)
7609 ("emacs-s" ,emacs-s)))
7610 (arguments
7611 `(#:tests? #t
7612 #:test-command '("buttercup")
7613 #:phases
7614 (modify-phases %standard-phases
7615 (add-before 'check 'fix-tests
7616 ;; See: https://github.com/clojure-emacs/clojure-mode/issues/568
7617 (lambda _
7618 (substitute* "clojure-mode.el"
7619 (("\\(list \\(cdr project\\)\\)" line)
7620 (string-append "\"Return the list of directory roots of the PROJECT.\"\n"
7621 line)))
7622 #t)))))
7623 (home-page "https://github.com/clojure-emacs/clojure-mode")
7624 (synopsis "Major mode for Clojure code")
7625 (description
7626 "This Emacs package provides font-lock, indentation, navigation and basic
7627 refactoring for the @uref{http://clojure.org, Clojure programming language}.
7628 It is recommended to use @code{clojure-mode} with Paredit or Smartparens.")
7629 (license license:gpl3+)))
7630
7631 (define-public emacs-epl
7632 (package
7633 (name "emacs-epl")
7634 (version "0.9")
7635 (source
7636 (origin
7637 (method git-fetch)
7638 (uri (git-reference
7639 (url "https://github.com/cask/epl")
7640 (commit version)))
7641 (file-name (git-file-name name version))
7642 (sha256
7643 (base32 "0d3z5z90ln8ipk1yds1n1p8fj9yyh2kpspqjs7agl38indra3nb4"))))
7644 (build-system emacs-build-system)
7645 (home-page "https://github.com/cask/epl")
7646 (synopsis "Emacs Package Library")
7647 (description
7648 "A package management library for Emacs, based on @code{package.el}.
7649
7650 The purpose of this library is to wrap all the quirks and hassle of
7651 @code{package.el} into a sane API.")
7652 (license license:gpl3+)))
7653
7654 (define-public emacs-counsel-notmuch
7655 ;; Upstream provides no release. Extract version for main file.
7656 (let ((commit "a4a1562935e4180c42524c51609d1283e9be0688")
7657 (revision "0"))
7658 (package
7659 (name "emacs-counsel-notmuch")
7660 (version (git-version "1.0" revision commit))
7661 (source
7662 (origin
7663 (method git-fetch)
7664 (uri (git-reference
7665 (url "https://github.com/fuxialexander/counsel-notmuch.git")
7666 (commit commit)))
7667 (file-name (git-file-name name version))
7668 (sha256
7669 (base32 "01k1321d961kc2i660a5595bqk0d85f16snsxngsn5si6y83kqr7"))))
7670 (build-system emacs-build-system)
7671 (arguments
7672 `(#:phases
7673 (modify-phases %standard-phases
7674 (add-after 'unpack 'locate-notmuch
7675 (lambda* (#:key inputs #:allow-other-keys)
7676 (make-file-writable "counsel-notmuch.el")
7677 (emacs-substitute-variables "counsel-notmuch.el"
7678 ("counsel-notmuch-path"
7679 (string-append (assoc-ref inputs "notmuch")
7680 "/bin/notmuch")))
7681 #t)))))
7682 (inputs
7683 `(("emacs-counsel" ,emacs-counsel)
7684 ("notmuch" ,notmuch)
7685 ("emacs-s" ,emacs-s)))
7686 (home-page "https://github.com/fuxialexander/counsel-notmuch")
7687 (synopsis "Search emails in Notmuch asynchronously with Ivy")
7688 (description
7689 "This package can be used to search emails in Notmuch
7690 asynchronously, with Counsel and Ivy. Simply call
7691 @code{counsel-notmuch} and input your Notmuch query.")
7692 (license license:gpl3+))))
7693
7694 (define-public emacs-counsel-projectile
7695 (package
7696 (name "emacs-counsel-projectile")
7697 (version "0.3.1")
7698 (source (origin
7699 (method git-fetch)
7700 (uri (git-reference
7701 (url "https://github.com/ericdanan/counsel-projectile")
7702 (commit version)))
7703 (file-name (git-file-name name version))
7704 (sha256
7705 (base32
7706 "1k4n5lw6wwbgpwv0dg9dw0bjzi0hvbgkzrs1zmq36yhfz6y8gwnh"))))
7707 (build-system emacs-build-system)
7708 (propagated-inputs
7709 `(("emacs-counsel" ,emacs-counsel)
7710 ("emacs-projectile" ,emacs-projectile)))
7711 (home-page "https://github.com/ericdanan/counsel-projectile")
7712 (synopsis "Enhance Projectile with Ivy")
7713 (description
7714 "This package uses Ivy to provide additional actions for Projectile
7715 commands and replacements for existing functions.")
7716 (license license:gpl3+)))
7717
7718 (define-public emacs-qml-mode
7719 (package
7720 (name "emacs-qml-mode")
7721 (version "0.4")
7722 (source (origin
7723 (method git-fetch)
7724 (uri (git-reference
7725 (url "https://github.com/coldnew/qml-mode")
7726 (commit version)))
7727 (file-name (git-file-name name version))
7728 (sha256
7729 (base32
7730 "1sncsvzjfgmhp4m8w5jd4y51k24n2jfpgvrkd64wlhhzbj3wb947"))))
7731 (build-system emacs-build-system)
7732 (home-page "https://github.com/coldnew/qml-mode/")
7733 (synopsis "Qt Modeling Language (QML) mode for Emacs")
7734 (description "This package provides the @code{qml-mode} major Emacs mode
7735 for editing source files written in the Qt Modeling Language (QML) user
7736 interface markup language. It provides syntax highlighting and basic
7737 navigation commands. @code{qml-mode} is derived from code{js-mode}, the Emacs
7738 builtin JavaScript mode.")
7739 (license license:gpl2+)))
7740
7741 (define-public emacs-queue
7742 (package
7743 (name "emacs-queue")
7744 (version "0.2")
7745 (source (origin
7746 (method url-fetch)
7747 (uri (string-append "https://elpa.gnu.org/packages/queue-"
7748 version ".el"))
7749 (sha256
7750 (base32
7751 "0cx2848sqnnkkr4zisvqadzxngjyhmb36mh0q3if7q19yjjhmrkb"))))
7752 (build-system emacs-build-system)
7753 (home-page "http://www.dr-qubit.org/tags/computing-code-emacs.html")
7754 (synopsis "Queue data structure for Emacs")
7755 (description
7756 "This Emacs library provides queue data structure. These queues can be
7757 used both as a first-in last-out (FILO) and as a first-in first-out (FIFO)
7758 stack, i.e. elements can be added to the front or back of the queue, and can
7759 be removed from the front. This type of data structure is sometimes called an
7760 \"output-restricted deque\".")
7761 (license license:gpl3+)))
7762
7763 (define-public emacs-quickrun
7764 (package
7765 (name "emacs-quickrun")
7766 (version "2.3.1")
7767 (source
7768 (origin
7769 (method git-fetch)
7770 (uri (git-reference
7771 (url "https://github.com/emacsorphanage/quickrun")
7772 (commit version)))
7773 (sha256
7774 (base32 "0a1n2v09h0n7d9p2izflqqang4ny0b46dlqvmxvkkik4bb6f4wcz"))
7775 (file-name (git-file-name name version))))
7776 (build-system emacs-build-system)
7777 (home-page "https://github.com/emacsorphanage/quickrun")
7778 (synopsis "Execute editing buffer and show its output quickly")
7779 (description
7780 "This package evaluates the content of a buffer, or region, and displays
7781 the result. Quickrun executes not only script languages (Perl, Ruby, Python
7782 etc), but also compiling languages (C, C++, Go, Java etc) and markup
7783 languages.")
7784 (license license:gpl3+)))
7785
7786 (define-public emacs-pkg-info
7787 (package
7788 (name "emacs-pkg-info")
7789 (version "0.6")
7790 (source
7791 (origin
7792 (method git-fetch)
7793 (uri (git-reference
7794 (url "https://github.com/lunaryorn/pkg-info.el")
7795 (commit version)))
7796 (file-name (git-file-name name version))
7797 (sha256
7798 (base32 "0nk12dcppdyhav6m6yf7abpywyd7amxd4237zsfd32w4zxsx39k1"))))
7799 (build-system emacs-build-system)
7800 (propagated-inputs `(("emacs-epl" ,emacs-epl)))
7801 (home-page "https://github.com/lunaryorn/pkg-info.el")
7802 (synopsis "Information about Emacs packages")
7803 (description
7804 "This library extracts information from the installed Emacs packages.")
7805 (license license:gpl3+)))
7806
7807 (define-public emacs-spinner
7808 (package
7809 (name "emacs-spinner")
7810 (version "1.7.3")
7811 (source (origin
7812 (method url-fetch)
7813 (uri (string-append "https://elpa.gnu.org/packages/spinner-"
7814 version ".el"))
7815 (sha256
7816 (base32
7817 "19kp1mmndbmw11sgvv2ggfjl4pyf5zrsbh3871f0965pw9z8vahd"))))
7818 (build-system emacs-build-system)
7819 (home-page "https://github.com/Malabarba/spinner.el")
7820 (synopsis "Emacs mode-line spinner for operations in progress")
7821 (description
7822 "This Emacs package adds spinners and progress-bars to the mode-line for
7823 ongoing operations.")
7824 (license license:gpl3+)))
7825
7826 (define-public emacs-sparql-mode
7827 (package
7828 (name "emacs-sparql-mode")
7829 (version "4.0.2")
7830 (source
7831 (origin
7832 (method git-fetch)
7833 (uri (git-reference
7834 (url "https://github.com/ljos/sparql-mode")
7835 (commit (string-append "v" version))))
7836 (file-name (git-file-name name version))
7837 (sha256
7838 (base32 "0hqp8r24wvzrkl630wbm0lynrcrnawv2yn2a3xgwqwwhwgva35rn"))))
7839 (build-system emacs-build-system)
7840 (propagated-inputs
7841 `(("emacs-company" ,emacs-company)))
7842 (home-page "https://github.com/ljos/sparql-mode")
7843 (synopsis "SPARQL mode for Emacs")
7844 (description
7845 "This package is a major mode for Emacs that provides syntax highlighting
7846 for SPARQL. It can also execute queries against a SPARQL HTTP endpoint, such
7847 as Fuseki or DBPedia.")
7848 (license license:gpl3+)))
7849
7850 (define-public emacs-better-defaults
7851 (package
7852 (name "emacs-better-defaults")
7853 (version "0.1.3")
7854 (source
7855 (origin
7856 (method git-fetch)
7857 (uri (git-reference
7858 (url "https://github.com/technomancy/better-defaults")
7859 (commit version)))
7860 (file-name (git-file-name name version))
7861 (sha256
7862 (base32
7863 "1rxznx2l0cdpiz8mad8s6q17m1fngpgb1cki7ch6yh18r3qz8ysr"))))
7864 (build-system emacs-build-system)
7865 (home-page "https://github.com/technomancy/better-defaults")
7866 (synopsis "Better defaults for Emacs")
7867 (description
7868 "Better defaults attempts to address the most obvious deficiencies of the
7869 Emacs default configuration in uncontroversial ways that nearly everyone can
7870 agree upon.")
7871 (license license:gpl3+)))
7872
7873 (define-public emacs-undohist-el
7874 (let ((commit "d2239a5f736724ceb9e3b6bcaa86f4064805cda0")
7875 (revision "1"))
7876 (package
7877 (name "emacs-undohist-el")
7878 (version (git-version "0" revision commit))
7879 (source
7880 (origin
7881 (method git-fetch)
7882 (uri (git-reference
7883 (url "https://github.com/m2ym/undohist-el")
7884 (commit commit)))
7885 (file-name (git-file-name name version))
7886 (sha256
7887 (base32
7888 "1c0daw246ky7b1x5b8h55x79pl1pjqk1k348l487bdd8zdj4w9wx"))
7889 (patches
7890 (search-patches "emacs-undohist-ignored.patch"))))
7891 (build-system emacs-build-system)
7892 (home-page "https://github.com/m2ym/undohist-el")
7893 (synopsis "Save undo history between sessions")
7894 (description "This package allows persistent use of undo history for
7895 individual file buffers.")
7896 (license license:gpl3+))))
7897
7898 (define-public emacs-eprime
7899 (let ((commit "17a481af26496be91c07139a9bfc05cfe722506f"))
7900 (package
7901 (name "emacs-eprime")
7902 (version (string-append "20140513-" (string-take commit 7)))
7903 (source (origin
7904 (method url-fetch)
7905 (uri (string-append "https://raw.githubusercontent.com"
7906 "/AndrewHynes/eprime-mode/"
7907 commit "/eprime-mode.el"))
7908 (file-name (string-append "eprime-" version ".el"))
7909 (sha256
7910 (base32
7911 "0v68lggkyq7kbcr9zyi573m2g2x251xy3jadlaw8kx02l8krwq8d"))))
7912 (build-system emacs-build-system)
7913 (home-page "https://github.com/AndrewHynes/eprime-mode")
7914 (synopsis "E-prime checking mode for Emacs")
7915 (description "This package provides an E-prime checking mode for Emacs
7916 that highlights non-conforming text. The subset of the English language called
7917 E-Prime forbids the use of the \"to be\" form to strengthen your writing.")
7918 (license license:gpl3+))))
7919
7920 (define-public emacs-julia-mode
7921 (package
7922 (name "emacs-julia-mode")
7923 (version "0.4")
7924 (source
7925 (origin
7926 (method git-fetch)
7927 (uri (git-reference
7928 (url "https://github.com/JuliaEditorSupport/julia-emacs")
7929 (commit version)))
7930 (file-name (git-file-name name version))
7931 (sha256
7932 (base32
7933 "1w131jb9mhvyjxa0p93iwfhzidgbcs6b8i6jg79yisqb9wchik99"))))
7934 (build-system emacs-build-system)
7935 (arguments
7936 `(#:tests? #t
7937 #:test-command '("emacs" "--batch"
7938 "-l" "julia-mode-tests.el"
7939 "-f" "ert-run-tests-batch-and-exit")))
7940 (home-page "https://github.com/JuliaEditorSupport/julia-emacs")
7941 (synopsis "Major mode for Julia")
7942 (description "This Emacs package provides a mode for the Julia
7943 programming language.")
7944 (license license:expat)))
7945
7946 (define-public emacs-smex
7947 (package
7948 (name "emacs-smex")
7949 (version "3.0")
7950 (source (origin
7951 (method url-fetch)
7952 (uri (string-append "https://raw.githubusercontent.com"
7953 "/nonsequitur/smex/" version "/smex.el"))
7954 (file-name (string-append "smex-" version ".el"))
7955 (sha256
7956 (base32
7957 "0ar310zx9k5y4i1vl2rawvi712xj9gx77160860jbs691p77cxqp"))))
7958 (build-system emacs-build-system)
7959 (home-page "https://github.com/nonsequitur/smex/")
7960 (synopsis "M-x interface with Ido-style fuzzy matching")
7961 (description
7962 "Smex is a M-x enhancement for Emacs. Built on top of Ido, it provides a
7963 convenient interface to your recently and most frequently used commands. And
7964 to all the other commands, too.")
7965 (license license:gpl3+)))
7966
7967 (define-public emacs-js2-mode
7968 (let ((commit "40aab27581279d0fdbfeb9afeb85f39d401a927f")
7969 (revision "1"))
7970 (package
7971 (name "emacs-js2-mode")
7972 (version (git-version "20190219" revision commit))
7973 (source
7974 (origin
7975 (method git-fetch)
7976 (uri (git-reference
7977 (url "https://github.com/mooz/js2-mode")
7978 (commit commit)))
7979 (file-name (git-file-name name version))
7980 (sha256
7981 (base32 "0ysd0ji3vvk2zpjcg1wl7b2hva8471vq0ypib4h6spnpjdr43vzk"))))
7982 (build-system emacs-build-system)
7983 (arguments
7984 `(#:tests? #t
7985 #:test-command '("make" "test")))
7986 (home-page "https://github.com/mooz/js2-mode/")
7987 (synopsis "Improved JavaScript editing mode for Emacs")
7988 (description
7989 "Js2-mode provides a JavaScript major mode for Emacs that is more
7990 advanced than the built-in javascript-mode. Features include accurate syntax
7991 highlighting using a recursive-descent parser, on-the-fly reporting of syntax
7992 errors and strict-mode warnings, smart line-wrapping within comments and
7993 strings, and code folding.")
7994 (license license:gpl3+))))
7995
7996 (define-public emacs-nodejs-repl
7997 (package
7998 (name "emacs-nodejs-repl")
7999 (version "0.2.2")
8000 (source (origin
8001 (method git-fetch)
8002 (uri (git-reference
8003 (url "https://github.com/abicky/nodejs-repl.el")
8004 (commit version)))
8005 (file-name (git-file-name name version))
8006 (sha256
8007 (base32
8008 "1kkj888k9x5n0i7xkia177gzsa84my3g8n0n7v65281cc4f1yhk5"))))
8009 (build-system emacs-build-system)
8010 (inputs
8011 `(("node" ,node)))
8012 (native-inputs
8013 `(("emacs-ert-expectations" ,emacs-ert-expectations)))
8014 (arguments
8015 `(#:phases
8016 (modify-phases %standard-phases
8017 (add-after 'unpack 'set-shell
8018 ;; Setting the SHELL environment variable is required for the tests
8019 ;; to find sh.
8020 (lambda _
8021 (setenv "SHELL" (which "sh"))
8022 #t))
8023 (add-after 'unpack 'configure
8024 (lambda* (#:key inputs outputs #:allow-other-keys)
8025 (let ((node (assoc-ref inputs "node")))
8026 ;; Specify the absolute file names of the various
8027 ;; programs so that everything works out-of-the-box.
8028 (make-file-writable "nodejs-repl.el")
8029 (emacs-substitute-variables
8030 "nodejs-repl.el"
8031 ("nodejs-repl-command"
8032 (string-append node "/bin/node")))))))
8033 #:tests? #t
8034 #:test-command '("emacs" "-Q" "--batch"
8035 "-L" "."
8036 "-l" "test/test.el"
8037 "-f" "ert-run-tests-batch-and-exit")))
8038 (home-page "https://github.com/abicky/nodejs-repl.el")
8039 (synopsis "Node.js REPL inside Emacs")
8040 (description
8041 "This program is derived from comint-mode and provides the following
8042 features:
8043
8044 @itemize
8045 @item TAB completion same as Node.js REPL
8046 @item file name completion in string
8047 @item incremental history search
8048 @end itemize")
8049 (license license:gpl3+)))
8050
8051 (define-public emacs-typescript-mode
8052 (package
8053 (name "emacs-typescript-mode")
8054 (version "0.3")
8055 (source (origin
8056 (method git-fetch)
8057 (uri (git-reference
8058 (url "https://github.com/ananthakumaran/typescript.el")
8059 (commit (string-append "v" version))))
8060 (file-name (git-file-name name version))
8061 (sha256
8062 (base32
8063 "002f1xfhq43fjaqliwrgxspryfahpa82va5dw3p8kwil2xwvc6mh"))))
8064 (build-system emacs-build-system)
8065 (home-page "https://github.com/ananthakumaran/typescript.el")
8066 (synopsis "Emacs major mode for editing Typescript code")
8067 (description
8068 "This is based on Karl Landstrom's barebones @code{typescript-mode}.
8069 This is much more robust and works with @code{cc-mode}'s comment
8070 filling (mostly). The modifications to the original @code{javascript.el} mode
8071 mainly consisted in replacing \"javascript\" with \"typescript\"
8072
8073 The main features of this Typescript mode are syntactic highlighting (enabled
8074 with @code{font-lock-mode} or @code{global-font-lock-mode}), automatic
8075 indentation and filling of comments and C preprocessor fontification.")
8076 (license license:gpl3+)))
8077
8078 (define-public emacs-tide
8079 (package
8080 (name "emacs-tide")
8081 (version "3.2.3")
8082 (source (origin
8083 (method git-fetch)
8084 (uri (git-reference
8085 (url "https://github.com/ananthakumaran/tide")
8086 (commit (string-append "v" version))))
8087 (file-name (git-file-name name version))
8088 (sha256
8089 (base32
8090 "19kjq4kr2j853p5qp1s79zxmrfprli82lsnphbrlp9vbnib28xyd"))))
8091 (build-system emacs-build-system)
8092 (propagated-inputs
8093 `(("emacs-dash" ,emacs-dash)
8094 ("emacs-s" ,emacs-s)
8095 ("emacs-flycheck" ,emacs-flycheck)
8096 ("emacs-typescript-mode" ,emacs-typescript-mode)))
8097 (home-page "https://github.com/ananthakumaran/tide")
8098 (synopsis "Typescript IDE for Emacs")
8099 (description
8100 "Tide is an Interactive Development Environment (IDE) for Emacs which
8101 provides the following features:
8102
8103 @itemize
8104 @item ElDoc
8105 @item Auto complete
8106 @item Flycheck
8107 @item Jump to definition, Jump to type definition
8108 @item Find occurrences
8109 @item Rename symbol
8110 @item Imenu
8111 @item Compile On Save
8112 @item Highlight Identifiers
8113 @item Code Fixes
8114 @item Code Refactor
8115 @item Organize Imports
8116 @end itemize")
8117 (license license:gpl3+)))
8118
8119 (define-public emacs-markdown-mode
8120 (package
8121 (name "emacs-markdown-mode")
8122 (version "2.4")
8123 (source
8124 (origin
8125 (method git-fetch)
8126 (uri (git-reference
8127 (url "https://github.com/jrblevin/markdown-mode")
8128 (commit (string-append "v" version))))
8129 (file-name (git-file-name name version))
8130 (sha256
8131 (base32 "0g0ja4h651yfabm3k6gbw4y8w7wibc9283fyfzb33kjj38ivl5d7"))))
8132 (build-system emacs-build-system)
8133 (home-page "https://jblevins.org/projects/markdown-mode/")
8134 (synopsis "Emacs Major mode for Markdown files")
8135 (description
8136 "Markdown-mode is a major mode for editing Markdown-formatted text files
8137 in Emacs.")
8138 (license license:gpl3+)))
8139
8140 (define-public emacs-evil-markdown
8141 (let ((commit "685d7fbb81bc02fa32779d2a127b99a0c8c7436b")
8142 (revision "2"))
8143 (package
8144 (name "emacs-evil-markdown")
8145 (version (git-version "0.0.2" revision commit))
8146 (source
8147 (origin
8148 (method git-fetch)
8149 (uri (git-reference
8150 (url "https://github.com/Somelauw/evil-markdown")
8151 (commit commit)))
8152 (file-name (git-file-name name version))
8153 (sha256
8154 (base32 "1z1sjn6dcqv8mmkh6nfcwhnql2z6xr9yx3hs77bfxj79pf3c466p"))))
8155 (build-system emacs-build-system)
8156 (propagated-inputs
8157 `(("emacs-evil" ,emacs-evil)
8158 ("emacs-markdown-mode" ,emacs-markdown-mode)))
8159 (home-page "https://github.com/Somelauw/evil-markdown/")
8160 (synopsis "Evil keybindings for @code{markdown-mode}")
8161 (description
8162 "This package provides custom text objects and bindings for
8163 @code{markdown-mode}.")
8164 (license license:gpl3+))))
8165
8166 (define-public emacs-edit-indirect
8167 (package
8168 (name "emacs-edit-indirect")
8169 (version "0.1.6")
8170 (source
8171 (origin
8172 (method git-fetch)
8173 (uri (git-reference
8174 (url "https://github.com/Fanael/edit-indirect")
8175 (commit version)))
8176 (file-name (git-file-name name version))
8177 (sha256
8178 (base32 "189nvmlkki1jfszm9i0crbb1p4nzgmbly0wpvpg0i8vmw7vrpl40"))))
8179 (build-system emacs-build-system)
8180 (home-page "https://github.com/Fanael/edit-indirect")
8181 (synopsis "Edit regions in separate buffers")
8182 (description "This package allows you to edit regions in separate buffers,
8183 like @code{org-edit-src-code} but for arbitrary regions.")
8184 (license license:bsd-2)))
8185
8186 (define-public emacs-projectile
8187 (package
8188 (name "emacs-projectile")
8189 (version "2.2.0")
8190 (source (origin
8191 (method url-fetch)
8192 (uri (string-append "https://raw.githubusercontent.com/bbatsov"
8193 "/projectile/v" version "/projectile.el"))
8194 (file-name (string-append "projectile-" version ".el"))
8195 (sha256
8196 (base32
8197 "1d983siysg98bjbb2r99qbrpvpf6dn85si8gyak4z05m67s8sn6v"))))
8198 (build-system emacs-build-system)
8199 (propagated-inputs
8200 `(("emacs-dash" ,emacs-dash)
8201 ("emacs-pkg-info" ,emacs-pkg-info)))
8202 (home-page "https://github.com/bbatsov/projectile")
8203 (synopsis "Manage and navigate projects in Emacs easily")
8204 (description
8205 "This library provides easy project management and navigation. The
8206 concept of a project is pretty basic - just a folder containing special file.
8207 Currently git, mercurial and bazaar repos are considered projects by default.
8208 If you want to mark a folder manually as a project just create an empty
8209 .projectile file in it.")
8210 (license license:gpl3+)))
8211
8212 (define-public emacs-skeletor
8213 (let ((commit "47c5b761aee8452716c97a69949ac2f675affe13")
8214 (revision "1"))
8215 (package
8216 (name "emacs-skeletor")
8217 (version (git-version "1.6.1" revision commit))
8218 (source (origin
8219 (method git-fetch)
8220 (uri (git-reference
8221 (url "https://github.com/chrisbarrett/skeletor.el")
8222 (commit commit)))
8223 (file-name (git-file-name name version))
8224 (sha256
8225 (base32
8226 "12bdgykfh4mwsqdazxjdvha62h3q3v33159ypy91f6x59y01fi0n"))))
8227 (build-system emacs-build-system)
8228 (propagated-inputs
8229 `(("emacs-s" ,emacs-s)
8230 ("emacs-f" ,emacs-f)
8231 ("emacs-dash" ,emacs-dash)
8232 ("emacs-let-alist" ,emacs-let-alist)))
8233 (native-inputs
8234 `(("emacs-ert-runner" ,emacs-ert-runner)))
8235 (arguments
8236 `(#:include (cons "^project-skeletons\\/" %default-include)
8237 ;; XXX: one failing test involving initializing a git repo
8238 #:phases
8239 (modify-phases %standard-phases
8240 (add-before 'check 'make-test-writable
8241 (lambda _
8242 (make-file-writable "test/skeletor-test.el")
8243 #t))
8244 (add-before 'check 'remove-git-test
8245 (lambda _
8246 (emacs-batch-edit-file "test/skeletor-test.el"
8247 `(progn
8248 (progn
8249 (goto-char (point-min))
8250 (re-search-forward
8251 "ert-deftest initialises-git-repo")
8252 (beginning-of-line)
8253 (kill-sexp))
8254 (basic-save-buffer)))
8255 #t)))
8256 #:tests? #t
8257 #:test-command '("ert-runner")))
8258 (home-page "https://github.com/chrisbarrett/skeletor.el")
8259 (synopsis "Project skeletons for Emacs")
8260 (description "This package provides project templates and automates the
8261 mundane parts of setting up a new project, such as version control, licenses,
8262 and tooling.")
8263 (license license:gpl3+))))
8264
8265 (define-public emacs-elfeed
8266 (package
8267 (name "emacs-elfeed")
8268 (version "3.3.0")
8269 (source
8270 (origin
8271 (method git-fetch)
8272 (uri (git-reference
8273 (url "https://github.com/skeeto/elfeed")
8274 (commit version)))
8275 (file-name (git-file-name name version))
8276 (sha256
8277 (base32 "0j8a94val4ml7g1vcjgzk1w89h55sxfdrwnncmz6qbh1y2xsz8c5"))))
8278 (build-system emacs-build-system)
8279 (arguments
8280 `(#:tests? #t
8281 #:test-command '("make" "test")))
8282 (home-page "https://github.com/skeeto/elfeed")
8283 (synopsis "Atom/RSS feed reader for Emacs")
8284 (description
8285 "Elfeed is an extensible web feed reader for Emacs, supporting both Atom
8286 and RSS, with a user interface inspired by notmuch.")
8287 (license license:gpl3+)))
8288
8289 (define-public emacs-elfeed-org
8290 (let ((commit "77b6bbf222487809813de260447d31c4c59902c9"))
8291 (package
8292 (name "emacs-elfeed-org")
8293 (version (git-version "0.1" "1" commit))
8294 (source
8295 (origin
8296 (method git-fetch)
8297 (uri (git-reference
8298 (url "https://github.com/remyhonig/elfeed-org")
8299 (commit commit)))
8300 (file-name (git-file-name name version))
8301 (sha256
8302 (base32 "0a2ibka82xq1dhy2z7rd2y9zhcj8rna8357881yz49wf55ccgm53"))))
8303 (build-system emacs-build-system)
8304 (propagated-inputs
8305 `(("emacs-elfeed" ,emacs-elfeed)
8306 ("emacs-org" ,emacs-org)
8307 ("emacs-dash" ,emacs-dash)
8308 ("emacs-s" ,emacs-s)))
8309 (native-inputs
8310 `(("ert-runner" ,emacs-ert-runner)
8311 ("emacs-xtest" ,emacs-xtest)))
8312 (arguments
8313 `(#:tests? #t
8314 #:test-command '("ert-runner" "-L" "org-mode/lisp")
8315 #:phases
8316 (modify-phases %standard-phases
8317 (add-before 'check 'chmod
8318 (lambda _
8319 (chmod "test/fixture-mark-feed-ignore.org" #o644)
8320 #t)))))
8321 (home-page "https://github.com/remyhonig/elfeed-org")
8322 (synopsis "Configure Elfeed with an Org-mode file")
8323 (description
8324 "@code{elfeed-org} lets you manage your Elfeed subscriptions
8325 in Org-mode. Maintaining tags for all RSS feeds is cumbersome using
8326 the regular flat list, where there is no hierarchy and tag names are
8327 duplicated a lot. Org-mode makes the book keeping of tags and feeds
8328 much easier.")
8329 (license license:gpl3+))))
8330
8331 (define-public emacs-el-x
8332 (package
8333 (name "emacs-el-x")
8334 (version "0.3.1")
8335 (source (origin
8336 (method git-fetch)
8337 (uri (git-reference
8338 (url "https://github.com/sigma/el-x")
8339 (commit (string-append "v" version))))
8340 (file-name (git-file-name name version))
8341 (sha256
8342 (base32
8343 "1i6j44ssxm1xdg0mf91nh1lnprwsaxsx8vsrf720nan7mfr283h5"))))
8344 (build-system emacs-build-system)
8345 (arguments
8346 `(#:phases
8347 (modify-phases %standard-phases
8348 ;; Move the source files to the top level, which is included in
8349 ;; the EMACSLOADPATH.
8350 (add-after 'unpack 'move-source-files
8351 (lambda _
8352 (let ((el-files (find-files "./lisp" ".*\\.el$")))
8353 (for-each (lambda (f)
8354 (rename-file f (basename f)))
8355 el-files))
8356 #t)))))
8357 (home-page "https://github.com/sigma/el-x")
8358 (synopsis "Emacs Lisp extensions")
8359 (description "command@{emacs-el-x} defines the @code{dflet} macro to
8360 provide the historic behavior of @code{flet}, as well as
8361 @code{declare-function} stub for older Emacs.")
8362 (license license:gpl2+)))
8363
8364 (define-public emacs-mocker
8365 (package
8366 (name "emacs-mocker")
8367 (version "0.3.1")
8368 (source (origin
8369 (method git-fetch)
8370 (uri (git-reference
8371 (url "https://github.com/sigma/mocker.el")
8372 (commit (string-append "v" version))))
8373 (file-name (git-file-name name version))
8374 (sha256
8375 (base32
8376 "1lav7am41v63xgavq8pr88y828jmd1cxd4prjq7jlbxm6nvrwxh2"))))
8377 (build-system emacs-build-system)
8378 (arguments
8379 `(#:tests? #t
8380 #:test-command '("ert-runner")))
8381 (native-inputs
8382 `(("ert-runner" ,emacs-ert-runner)))
8383 (propagated-inputs
8384 `(("emacs-el-x" ,emacs-el-x)))
8385 (home-page "https://github.com/sigma/mocker.el")
8386 (synopsis "Mocking framework for Emacs Lisp")
8387 (description "Mocker.el is a framework for writing tests in Emacs Lisp.
8388 It uses regular Lisp rather than a domain specific language (DSL), which
8389 maximizes flexibility (at the expense of conciseness).")
8390 (license license:gpl2+)))
8391
8392 (define-public emacs-find-file-in-project
8393 (package
8394 (name "emacs-find-file-in-project")
8395 (version "5.7.10")
8396 (source (origin
8397 (method git-fetch)
8398 (uri (git-reference
8399 (url "https://github.com/technomancy/find-file-in-project")
8400 (commit version)))
8401 (file-name (git-file-name name version))
8402 (sha256
8403 (base32
8404 "156sfd5xs831sdlkf7p5m20hzznv1zlf9nm3pfm8n8ixp13fnzj0"))))
8405 (build-system emacs-build-system)
8406 (arguments
8407 `(#:tests? #t
8408 #:test-command '("ert-runner" "tests")))
8409 (native-inputs
8410 `(("ert-runner" ,emacs-ert-runner)))
8411 (home-page "https://github.com/technomancy/find-file-in-project")
8412 (synopsis "File/directory finder for Emacs")
8413 (description "@code{find-file-in-project} finds files or
8414 directories quickly in the current project. The project root is detected
8415 automatically when Git, Subversion or Mercurial are used. It also provides
8416 functions to assist in reviewing changes on files.")
8417 (license license:gpl3+)))
8418
8419 (define-public emacs-pyvenv
8420 (package
8421 (name "emacs-pyvenv")
8422 (version "1.21")
8423 (source (origin
8424 (method git-fetch)
8425 (uri (git-reference
8426 (url "https://github.com/jorgenschaefer/pyvenv")
8427 (commit (string-append "v" version))))
8428 (file-name (git-file-name name version))
8429 (sha256
8430 (base32
8431 "055sgk8zf4wb5nqsf3qasf5gg861zlb1831733f1qcrd2ij5gzxx"))))
8432 (build-system emacs-build-system)
8433 (arguments
8434 `(#:phases
8435 (modify-phases %standard-phases
8436 ;; This phase incorrectly attempts to substitute "activate" and fails
8437 ;; doing so.
8438 (delete 'patch-el-files))
8439 #:tests? #t
8440 #:test-command '("ert-runner")))
8441 (native-inputs
8442 `(("ert-runner" ,emacs-ert-runner)
8443 ("emacs-mocker" ,emacs-mocker)))
8444 (home-page "https://github.com/jorgenschaefer/pyvenv")
8445 (synopsis "Python virtual environment interface for Emacs")
8446 (description "pyvenv.el is a minor mode to support using Python virtual
8447 environments (virtualenv) inside Emacs.")
8448 (license license:gpl3+)))
8449
8450 (define-public emacs-highlight-indent-guides
8451 (let ((version "0.8.5") ; from package metadata
8452 (revision "0")
8453 (commit "c2c9de4d01edfb89609c91d4d7f1d81312015a2c"))
8454 (package
8455 (name "emacs-highlight-indent-guides")
8456 (version (git-version version revision commit))
8457 (source
8458 (origin
8459 (method git-fetch)
8460 (uri (git-reference
8461 (url "https://github.com/DarthFennec/highlight-indent-guides")
8462 (commit commit)))
8463 (file-name (git-file-name name version))
8464 (sha256
8465 (base32 "10chvqnmdmkx6i9sigqframr85ziyafiz44glwhvhjajfkv42ad2"))))
8466 (build-system emacs-build-system)
8467 (home-page
8468 "https://github.com/DarthFennec/highlight-indent-guides")
8469 (synopsis "Minor mode to highlight indentation")
8470 (description
8471 "This package provides a minor mode to highlight indentation levels via
8472 font-lock. Indent widths are dynamically discovered, which means this
8473 correctly highlights in any mode, regardless of indent width, even in
8474 languages with non-uniform indentation such as Haskell. This mode works
8475 properly around hard tabs and mixed indentation and behaves well in large
8476 buffers.")
8477 (license license:expat))))
8478
8479 (define-public emacs-highlight-indentation
8480 ;; Last release version is from 2015.
8481 (let ((commit "d03803f2c06749c430443a3d24e039cbafc9c58f")
8482 (revision "1"))
8483 (package
8484 (name "emacs-highlight-indentation")
8485 (version (git-version "0.7.0" revision commit))
8486 (source
8487 (origin
8488 (method git-fetch)
8489 (uri (git-reference
8490 (url "https://github.com/antonj/Highlight-Indentation-for-Emacs")
8491 (commit commit)))
8492 (file-name (git-file-name name version))
8493 (sha256
8494 (base32
8495 "1jq0gf4kcx9hvrw40rnw5c2qynjpjw1vsjbi2i4lqjbsnfnxn4wz"))))
8496 (build-system emacs-build-system)
8497 (home-page "https://github.com/antonj/Highlight-Indentation-for-Emacs/")
8498 (synopsis "Highlighting indentation for Emacs")
8499 (description "This package provides two minor modes to highlight
8500 indentation guides in Emacs:
8501
8502 @enumerate
8503 @item @code{highlight-indentation-mode}, which displays guidelines
8504 indentation (space indentation only).
8505 @item @code{highlight-indentation-current-column-mode}, which displays
8506 guidelines for the current-point indentation (space indentation only).
8507 @end enumerate")
8508 (license license:gpl2+))))
8509
8510 (define-public emacs-elpy
8511 (package
8512 (name "emacs-elpy")
8513 (version "1.34.0")
8514 (source (origin
8515 (method git-fetch)
8516 (uri (git-reference
8517 (url "https://github.com/jorgenschaefer/elpy")
8518 (commit version)))
8519 (file-name (git-file-name name version))
8520 (sha256
8521 (base32
8522 "1x1z298axbh4xalssnq9nkf2z1sdgmx839vb01xz18kr9lfavx1x"))))
8523 (build-system emacs-build-system)
8524 (arguments
8525 `(#:include (cons* "^elpy/[^/]+\\.py$" "^snippets\\/" %default-include)
8526 #:phases
8527 (modify-phases %standard-phases
8528 ;; The following tests fail when building with Emacs 27 (see:
8529 ;; https://github.com/jorgenschaefer/elpy/issues/1812).
8530 (add-after 'unpack 'disable-problematic-tests
8531 (lambda _
8532 (substitute* "test/elpy-company-backend-test.el"
8533 (("elpy-company-backend-should-add-shell-candidates.*" all)
8534 (string-append all " (skip-unless nil)\n")))
8535 (substitute* "test/elpy-folding-fold-comments-test.el"
8536 (("elpy-fold-at-point-should-fold-and-unfold-comments.*" all)
8537 (string-append all " (skip-unless nil)\n")))
8538 #t))
8539 ;; The default environment of the RPC uses Virtualenv to install
8540 ;; Python dependencies from PyPI. We don't want/need this in Guix.
8541 (add-before 'check 'do-not-use-virtualenv
8542 (lambda _
8543 (setenv "ELPY_TEST_DONT_USE_VIRTUALENV" "1")
8544 (substitute* "elpy-rpc.el"
8545 (("defcustom elpy-rpc-virtualenv-path 'default")
8546 "defcustom elpy-rpc-virtualenv-path 'system"))
8547 #t))
8548 (add-before 'check 'build-doc
8549 (lambda _
8550 (with-directory-excursion "docs"
8551 (invoke "make" "info" "man"))
8552 ;; Move .info file at the root so that it can installed by the
8553 ;; 'move-doc phase.
8554 (rename-file "docs/_build/texinfo/Elpy.info" "Elpy.info")
8555 #t))
8556 (add-after 'build-doc 'install-manpage
8557 (lambda* (#:key outputs #:allow-other-keys)
8558 (let* ((out (assoc-ref outputs "out"))
8559 (man1 (string-append out "/share/man/man1")))
8560 (mkdir-p man1)
8561 (copy-file "docs/_build/man/elpy.1"
8562 (string-append man1 "/elpy.1")))
8563 #t)))
8564 #:tests? #t
8565 #:test-command '("ert-runner")))
8566 (propagated-inputs
8567 `(("emacs-company" ,emacs-company)
8568 ("emacs-find-file-in-project" ,emacs-find-file-in-project)
8569 ("emacs-highlight-indentation" ,emacs-highlight-indentation)
8570 ("emacs-yasnippet" ,emacs-yasnippet)
8571 ("pyvenv" ,emacs-pyvenv)
8572 ("s" ,emacs-s)
8573 ;; The following are recommended Python dependencies that make Elpy
8574 ;; much more useful. Installing these avoids Elpy prompting to install them
8575 ;; from PyPI using pip.
8576 ("python-autopep8" ,python-autopep8)
8577 ("python-black" ,python-black)
8578 ("python-flake8" ,python-flake8)
8579 ("python-jedi" ,python-jedi)
8580 ("python-rope" ,python-rope)
8581 ("python-yapf" ,python-yapf)))
8582 (native-inputs
8583 `(("ert-runner" ,emacs-ert-runner)
8584 ("emacs-f" ,emacs-f)
8585 ("python" ,python-wrapper)
8586 ;; For documentation.
8587 ("python-sphinx" ,python-sphinx)
8588 ("texinfo" ,texinfo)))
8589 (home-page "https://github.com/jorgenschaefer/elpy")
8590 (synopsis "Python development environment for Emacs")
8591 (description "Elpy brings powerful Python editing to Emacs. It combines
8592 and configures a number of other packages written in Emacs Lisp as well as
8593 Python, together offering features such as navigation, documentation,
8594 completion, interactive development and more.")
8595 (license license:gpl3+)))
8596
8597 (define-public emacs-rainbow-delimiters
8598 (package
8599 (name "emacs-rainbow-delimiters")
8600 (version "2.1.4")
8601 (source (origin
8602 (method git-fetch)
8603 (uri (git-reference
8604 (url "https://github.com/Fanael/rainbow-delimiters")
8605 (commit version)))
8606 (file-name (git-file-name name version))
8607 (sha256
8608 (base32
8609 "1zr2669savnmkc68hiqsq9wccm6bs1j6jbmlac1xqh6nq7xgq36g"))))
8610 (build-system emacs-build-system)
8611 (home-page "https://github.com/Fanael/rainbow-delimiters")
8612 (arguments
8613 `(#:tests? #t
8614 #:test-command '("emacs" "-Q" "-batch"
8615 "-l" "rainbow-delimiters-test.el"
8616 "-f" "ert-run-tests-batch-and-exit")))
8617 (synopsis "Highlight brackets according to their depth")
8618 (description
8619 "Rainbow-delimiters is a \"rainbow parentheses\"-like mode for Emacs which
8620 highlights parentheses, brackets, and braces according to their depth. Each
8621 successive level is highlighted in a different color, making it easy to spot
8622 matching delimiters, orient yourself in the code, and tell which statements
8623 are at a given level.")
8624 (license license:gpl3+)))
8625
8626 (define-public emacs-rainbow-identifiers
8627 (package
8628 (name "emacs-rainbow-identifiers")
8629 (version "0.2.2")
8630 (source (origin
8631 (method url-fetch)
8632 (uri (string-append "https://raw.githubusercontent.com/Fanael"
8633 "/rainbow-identifiers/" version
8634 "/rainbow-identifiers.el"))
8635 (file-name (string-append "rainbow-identifiers-" version ".el"))
8636 (sha256
8637 (base32
8638 "0325abxj47k0g1i8nqrq70w2wr6060ckhhf92krv1s072b3jzm31"))))
8639 (build-system emacs-build-system)
8640 (home-page "https://github.com/Fanael/rainbow-identifiers")
8641 (synopsis "Highlight identifiers in source code")
8642 (description
8643 "Rainbow identifiers mode is an Emacs minor mode providing highlighting of
8644 identifiers based on their names. Each identifier gets a color based on a hash
8645 of its name.")
8646 (license license:bsd-2)))
8647
8648 (define-public emacs-rainbow-mode
8649 (package
8650 (name "emacs-rainbow-mode")
8651 (version "1.0.5")
8652 (source
8653 (origin
8654 (method url-fetch)
8655 (uri (string-append "https://elpa.gnu.org/packages/"
8656 "rainbow-mode-" version ".el"))
8657 (sha256
8658 (base32 "159fps843k5pap9k04a7ll1k3gw6d9c6w08lq4bbc3lqg78aa2l9"))))
8659 (build-system emacs-build-system)
8660 (home-page "https://elpa.gnu.org/packages/rainbow-mode.html")
8661 (synopsis "Colorize color names in buffers")
8662 (description
8663 "This minor mode sets background color to strings that match color
8664 names, e.g., @samp{#0000ff} is displayed in white with a blue background.")
8665 (license license:gpl3+)))
8666
8667 (define-public emacs-ryo-modal
8668 ;; Package has no release. Version is extracted from "Version:" keyword in
8669 ;; main file.
8670 (let ((commit "3a54312eea7023a86ca3f8eb3c03c872554bff2f")
8671 (revision "0"))
8672 (package
8673 (name "emacs-ryo-modal")
8674 (version (git-version "0.4" revision commit))
8675 (source
8676 (origin
8677 (method git-fetch)
8678 (uri (git-reference
8679 (url "https://github.com/Kungsgeten/ryo-modal")
8680 (commit commit)))
8681 (file-name (git-file-name name version))
8682 (sha256
8683 (base32 "1cyvp3bi6yhckbdnq98xvghmhdzghya5y9wd7hxjawibs75rza95"))))
8684 (build-system emacs-build-system)
8685 (home-page "https://github.com/Kungsgeten/ryo-modal")
8686 (synopsis "Emacs minor mode for defining modal editing environments")
8687 (description "RYO modal provides a convenient way of defining modal
8688 keybindings in Emacs, and does not come with any predefined bindings.")
8689 (license license:expat))))
8690
8691 (define-public emacs-visual-fill-column
8692 (package
8693 (name "emacs-visual-fill-column")
8694 (version "1.11")
8695 (source (origin
8696 (method url-fetch)
8697 (uri (string-append "https://codeload.github.com/joostkremers/"
8698 "visual-fill-column/tar.gz/" version))
8699 (file-name (string-append name "-" version ".tar.gz"))
8700 (sha256
8701 (base32
8702 "13jnviakp607zcms7f8ams56mr8wffnq1pghlc6fvqs39663pgwh"))))
8703 (build-system emacs-build-system)
8704 (home-page "https://github.com/joostkremers/visual-fill-column")
8705 (synopsis "Fill-column for visual-line-mode")
8706 (description
8707 "@code{visual-fill-column-mode} is a small Emacs minor mode that mimics
8708 the effect of @code{fill-column} in @code{visual-line-mode}. Instead of
8709 wrapping lines at the window edge, which is the standard behaviour of
8710 @code{visual-line-mode}, it wraps lines at @code{fill-column}. If
8711 @code{fill-column} is too large for the window, the text is wrapped at the
8712 window edge.")
8713 (license license:gpl3+)))
8714
8715 (define-public emacs-writeroom
8716 (package
8717 (name "emacs-writeroom")
8718 (version "3.10")
8719 (source
8720 (origin
8721 (method git-fetch)
8722 (uri (git-reference
8723 (url "https://github.com/joostkremers/writeroom-mode")
8724 (commit version)))
8725 (file-name (git-file-name name version))
8726 (sha256
8727 (base32
8728 "0la4q2dm123l4rdfh0ry03b99ihvh324y7iw12az909198bcx335"))))
8729 (build-system emacs-build-system)
8730 (propagated-inputs
8731 `(("emacs-visual-fill-column" ,emacs-visual-fill-column)))
8732 (home-page "https://github.com/joostkremers/writeroom-mode")
8733 (synopsis "Distraction-free writing for Emacs")
8734 (description
8735 "This package defines a minor mode for distraction-free writing. Some of
8736 the default effects include entering fullscreen, deleting other windows of the
8737 current frame, disabling the mode line, and adding margins to the buffer that
8738 restrict the text width to 80 characters.")
8739 (license license:bsd-3)))
8740
8741 (define-public emacs-ido-completing-read+
8742 (package
8743 (name "emacs-ido-completing-read+")
8744 (version "3.12")
8745 (source (origin
8746 (method url-fetch)
8747 (uri (string-append "https://raw.githubusercontent.com"
8748 "/DarwinAwardWinner/ido-ubiquitous/v"
8749 version "/ido-completing-read+.el"))
8750 (file-name (string-append "ido-completing-read+-" version ".el"))
8751 (sha256
8752 (base32
8753 "1cyalb0p7nfsm4n6n9q6rjmvn6adqc0fq8ybnlj3n41n289dkfjf"))))
8754 (build-system emacs-build-system)
8755 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
8756 (synopsis "Replacement for completing-read using ido")
8757 (description
8758 "The ido-completing-read+ function is a wrapper for ido-completing-read.
8759 Importantly, it detects edge cases that ordinary ido cannot handle and either
8760 adjusts them so ido can handle them, or else simply falls back to the standard
8761 Emacs completion function instead.")
8762 (license license:gpl3+)))
8763
8764 (define-public emacs-ido-ubiquitous
8765 (package
8766 (name "emacs-ido-ubiquitous")
8767 (version "3.12")
8768 (source (origin
8769 (method url-fetch)
8770 (uri (string-append "https://raw.githubusercontent.com"
8771 "/DarwinAwardWinner/ido-ubiquitous/v"
8772 version "/ido-ubiquitous.el"))
8773 (file-name (string-append "ido-ubiquitous-" version ".el"))
8774 (sha256
8775 (base32
8776 "197ypji0fb6jsdcq40rpnknwlh3imas6s6jbsvkfm0pz9988c3q2"))))
8777 (build-system emacs-build-system)
8778 (propagated-inputs
8779 `(("emacs-ido-completing-read+" ,emacs-ido-completing-read+)))
8780 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
8781 (synopsis "Use ido (nearly) everywhere")
8782 (description
8783 "Ido-ubiquitous enables ido-style completion for almost every function
8784 that uses the standard completion function completing-read.")
8785 (license license:gpl3+)))
8786
8787 (define-public emacs-yaml-mode
8788 (package
8789 (name "emacs-yaml-mode")
8790 (version "0.0.15")
8791 (source
8792 (origin
8793 (method git-fetch)
8794 (uri (git-reference
8795 (url "https://github.com/yoshiki/yaml-mode")
8796 (commit version)))
8797 (file-name (git-file-name name version))
8798 (sha256
8799 (base32 "0gsa153yp8lmwrvcc3nzpw5lj037y7q2nm23k5k404r5as4k355l"))))
8800 (build-system emacs-build-system)
8801 (home-page "https://github.com/yoshiki/yaml-mode")
8802 (synopsis "Major mode for editing YAML files")
8803 (description
8804 "Yaml mode is an Emacs major mode for editing files in the YAML data
8805 serialization format. As YAML and Python share the fact that indentation
8806 determines structure, this mode provides indentation and indentation command
8807 behavior very similar to that of Python mode.")
8808 (license license:gpl3+)))
8809
8810 (define-public emacs-gitlab-ci-mode
8811 (package
8812 (name "emacs-gitlab-ci-mode")
8813 (version "20190425.11.10")
8814 (source (origin
8815 (method git-fetch)
8816 (uri (git-reference
8817 (url "https://gitlab.com/joewreschnig/gitlab-ci-mode.git")
8818 (commit (string-append "v" version))))
8819 (file-name (git-file-name name version))
8820 (sha256
8821 (base32
8822 "1jkp9mnbiccqnha9zs646znqyqvy5jjb81kah7ghbkzdqqk2avm0"))))
8823 (build-system emacs-build-system)
8824 (propagated-inputs
8825 `(("emacs-yaml-mode" ,emacs-yaml-mode)))
8826 (home-page "https://gitlab.com/joewreschnig/gitlab-ci-mode/")
8827 (synopsis "Emacs mode for editing GitLab CI files")
8828 (description
8829 "@code{gitlab-ci-mode} is an Emacs major mode for editing GitLab CI
8830 files. It provides syntax highlighting and completion for keywords and
8831 special variables. An interface to GitLab’s CI file linter is also provided
8832 via @code{gitlab-ci-lint}.")
8833 (license license:gpl3+)))
8834
8835 (define-public emacs-gitlab-snip-helm
8836 (package
8837 (name "emacs-gitlab-snip-helm")
8838 (version "0.0.2")
8839 (source (origin
8840 (method git-fetch)
8841 (uri (git-reference
8842 (url "https://gitlab.com/sasanidas/gitlab-snip-helm.git")
8843 (commit version)))
8844 (file-name (git-file-name name version))
8845 (sha256
8846 (base32
8847 "1c5js19zyb1z61hapvbfcl5jhrjqij46cxldgqij6al0scw44dga"))))
8848 (build-system emacs-build-system)
8849 (propagated-inputs
8850 `(("emacs-dash" ,emacs-dash)
8851 ("emacs-helm" ,emacs-helm)))
8852 (home-page "https://gitlab.com/sasanidas/gitlab-snip-helm/")
8853 (synopsis "GitLab snippet API interaction for Emacs")
8854 (description "This package provides GitLab snippet API interaction for
8855 Emacs.")
8856 (license license:gpl3+)))
8857
8858 (define-public emacs-web-mode
8859 (package
8860 (name "emacs-web-mode")
8861 (version "17")
8862 (source
8863 (origin
8864 (method git-fetch)
8865 (uri (git-reference
8866 (url "https://github.com/fxbois/web-mode")
8867 (commit (string-append "v" version))))
8868 (file-name (git-file-name name version))
8869 (sha256
8870 (base32 "0jr5a1nzp8nbdng0k2fcaymiiv9ngrbknbrqaswgqn3akvx793jk"))))
8871 (build-system emacs-build-system)
8872 (synopsis "Major mode for editing web templates")
8873 (description "Web mode is an Emacs major mode for editing web templates
8874 aka HTML files embedding parts (CSS/JavaScript) and blocks (pre rendered by
8875 client/server side engines). Web mode is compatible with many template
8876 engines: PHP, JSP, ASP, Django, Twig, Jinja, Mustache, ERB, FreeMarker,
8877 Velocity, Cheetah, Smarty, CTemplate, Mustache, Blade, ErlyDTL, Go Template,
8878 Dust.js, React/JSX, Angularjs, ejs, etc.")
8879 (home-page "http://web-mode.org/")
8880 (license license:gpl3+)))
8881
8882 (define-public emacs-wgrep
8883 (package
8884 (name "emacs-wgrep")
8885 (version "2.3.2")
8886 (source (origin
8887 (method git-fetch)
8888 (uri (git-reference
8889 (url "https://github.com/mhayashi1120/Emacs-wgrep")
8890 (commit version)))
8891 (file-name (git-file-name name version))
8892 (sha256
8893 (base32
8894 "00cwqzb94jlq4mwgv8z7r3mn0a6mhq95z6j189kacq9g4473zh8d"))))
8895 (build-system emacs-build-system)
8896 (home-page "https://github.com/mhayashi1120/Emacs-wgrep")
8897 (synopsis "Edit a grep buffer and apply those changes to the files")
8898 (description
8899 "Emacs wgrep allows you to edit a grep buffer and apply those changes
8900 to the file buffer. Several backends are supported beside the classic grep:
8901 ack, ag, helm and pt.")
8902 (license license:gpl3+)))
8903
8904 (define-public emacs-helm
8905 (package
8906 (name "emacs-helm")
8907 (version "3.6.5")
8908 (source
8909 (origin
8910 (method git-fetch)
8911 (uri (git-reference
8912 (url "https://github.com/emacs-helm/helm")
8913 (commit (string-append "v" version))))
8914 (file-name (git-file-name name version))
8915 (sha256
8916 (base32 "0yzpb84346v42ig4h0rsnvzmln58ilhc0gsq0ggc7038ypqkdw4d"))))
8917 (build-system emacs-build-system)
8918 (propagated-inputs
8919 `(("emacs-async" ,emacs-async)
8920 ("emacs-popup" ,emacs-popup)))
8921 (home-page "https://emacs-helm.github.io/helm/")
8922 (synopsis "Incremental completion and selection narrowing
8923 framework for Emacs")
8924 (description "Helm is incremental completion and selection narrowing
8925 framework for Emacs. It will help steer you in the right direction when
8926 you're looking for stuff in Emacs (like buffers, files, etc). Helm is a fork
8927 of @code{anything.el} originally written by Tamas Patrovic and can be
8928 considered to be its successor. Helm sets out to clean up the legacy code in
8929 @code{anything.el} and provide a cleaner, leaner and more modular tool, that's
8930 not tied in the trap of backward compatibility.")
8931 (license license:gpl3+)))
8932
8933 (define-public emacs-helm-org
8934 (let ((commit "8457e1e46227bf87726e05c42cec5a4b51c2ef7b")
8935 (revision "3"))
8936 (package
8937 (name "emacs-helm-org")
8938 (version (git-version "1.0" revision commit))
8939 (source
8940 (origin
8941 (method git-fetch)
8942 (uri (git-reference
8943 (url "https://github.com/emacs-helm/helm-org")
8944 (commit commit)))
8945 (file-name (git-file-name name version))
8946 (sha256
8947 (base32 "0kcjhwwi492n9m2w894hvdavfvhj45zygy7bwvx103wvpay5h6h6"))))
8948 (build-system emacs-build-system)
8949 (propagated-inputs
8950 `(("emacs-helm" ,emacs-helm)))
8951 (home-page "https://github.com/emacs-helm/helm-org")
8952 (synopsis "Helm interface to the Silver Searcher")
8953 (description
8954 "This package provides a frontend for grepping tools like ag and ack,
8955 as well as features for editing search results.")
8956 (license license:gpl3+))))
8957
8958 (define-public emacs-helm-swoop
8959 (package
8960 (name "emacs-helm-swoop")
8961 (version "3.0.0")
8962 (source
8963 (origin
8964 (method git-fetch)
8965 (uri (git-reference
8966 (url "https://github.com/emacsorphanage/helm-swoop")
8967 (commit version)))
8968 (file-name (git-file-name name version))
8969 (sha256
8970 (base32 "1qjay0fvryxa8n1ws6r1by512p2fylb2nj7ycm1497fcalb0d706"))))
8971 (build-system emacs-build-system)
8972 (propagated-inputs
8973 `(("emacs-helm" ,emacs-helm)))
8974 (home-page "https://github.com/emacsorphanage/helm-swoop")
8975 (synopsis "Filter and jump to lines in an Emacs buffer using Helm")
8976 (description
8977 "This package builds on the Helm interface to provide several commands
8978 for search-based navigation of buffers.")
8979 (license license:gpl2+)))
8980
8981 (define-public emacs-helm-ag
8982 (package
8983 (name "emacs-helm-ag")
8984 (version "0.62")
8985 (source
8986 (origin
8987 (method git-fetch)
8988 (uri (git-reference
8989 (url "https://github.com/syohex/emacs-helm-ag")
8990 (commit version)))
8991 (file-name (git-file-name name version))
8992 (sha256
8993 (base32 "0xgbpp8xqdiyvfs64x0q909g77ml28z3irw2lnasvpsg0dfdm2zy"))))
8994 (build-system emacs-build-system)
8995 (propagated-inputs
8996 `(("emacs-helm" ,emacs-helm)))
8997 (home-page "https://github.com/syohex/emacs-helm-ag")
8998 (synopsis "Helm interface to the Silver Searcher")
8999 (description
9000 "This package provides a frontend for grepping tools like ag and ack,
9001 as well as features for editing search results.")
9002 (license license:gpl3+)))
9003
9004 (define-public emacs-helm-projectile
9005 (package
9006 (name "emacs-helm-projectile")
9007 (version "1.0.0")
9008 (source
9009 (origin
9010 (method git-fetch)
9011 (uri (git-reference
9012 (url "https://github.com/bbatsov/helm-projectile")
9013 (commit (string-append "v" version))))
9014 (file-name (git-file-name name version))
9015 (sha256
9016 (base32 "05gpg90gg03yalmv9fw1y9k21i2l617iipvs0p9n80aln8nrzs8g"))))
9017 (build-system emacs-build-system)
9018 (propagated-inputs
9019 `(("emacs-helm" ,emacs-helm)
9020 ("emacs-projectile" ,emacs-projectile)))
9021 (home-page "https://github.com/bbatsov/helm-projectile")
9022 (synopsis "Helm integration for Projectile")
9023 (description
9024 "This Emacs library provides a Helm interface for Projectile.")
9025 (license license:gpl3+)))
9026
9027 (define-public emacs-taskrunner
9028 (let ((commit "3afd4a546d42339543d3d4e51b175fc3e82b3358")
9029 (revision "1"))
9030 (package
9031 (name "emacs-taskrunner")
9032 (version (git-version "0.6" revision commit))
9033 (source
9034 (origin
9035 (method git-fetch)
9036 (uri (git-reference
9037 (url "https://github.com/emacs-taskrunner/emacs-taskrunner")
9038 (commit commit)))
9039 (file-name (git-file-name name version))
9040 (sha256
9041 (base32
9042 "1lkdvmjn3alhqxq2i64sdr977sbw3g0b2670d9bwyzi67qh0jxrv"))))
9043 (build-system emacs-build-system)
9044 (propagated-inputs
9045 `(("emacs-async" ,emacs-async)
9046 ("emacs-projectile" ,emacs-projectile)))
9047 (home-page "https://github.com/emacs-taskrunner/emacs-taskrunner")
9048 (synopsis "Retrieve tasks from various build systems and task-runners")
9049 (description "This package parses Makefiles and build-system files for
9050 multiple project types.")
9051 (license license:gpl3+))))
9052
9053 (define-public emacs-ivy-taskrunner
9054 (let ((commit "75d8d67cfe3c29663fe0f5508a887adf40ed5162")
9055 (revision "1"))
9056 (package
9057 (name "emacs-ivy-taskrunner")
9058 (version (git-version "0.9" revision commit))
9059 (source
9060 (origin
9061 (method git-fetch)
9062 (uri (git-reference
9063 (url "https://github.com/emacs-taskrunner/ivy-taskrunner")
9064 (commit commit)))
9065 (file-name (git-file-name name version))
9066 (sha256
9067 (base32
9068 "1wf4s4k0ap21f7g5w6128an8nsvbja7f5n889vcml5b6gjz058db"))))
9069 (build-system emacs-build-system)
9070 (propagated-inputs
9071 `(("emacs-ivy" ,emacs-ivy)
9072 ("emacs-taskrunner" ,emacs-taskrunner)
9073 ("emacs-projectile" ,emacs-projectile)))
9074 (home-page "https://github.com/emacs-taskrunner/ivy-taskrunner")
9075 (synopsis "Retrieve build-system tasks using Ivy")
9076 (description "This package provides an Ivy interface for selecting
9077 Makefile targets.")
9078 (license license:gpl3+))))
9079
9080 (define-public emacs-helm-taskrunner
9081 (let ((commit "1910dac19cbc7bd4fd08b0faf9affd455339fbea")
9082 (revision "1"))
9083 (package
9084 (name "emacs-helm-taskrunner")
9085 (version (git-version "0.9" revision commit))
9086 (source
9087 (origin
9088 (method git-fetch)
9089 (uri (git-reference
9090 (url "https://github.com/emacs-taskrunner/helm-taskrunner")
9091 (commit commit)))
9092 (file-name (git-file-name name version))
9093 (sha256
9094 (base32
9095 "182lmr858fx6rdhp1fy7kv8dvrhzcnxzwfck1q22s6xs8x85d5q7"))))
9096 (build-system emacs-build-system)
9097 (propagated-inputs
9098 `(("emacs-helm" ,emacs-helm)
9099 ("emacs-taskrunner" ,emacs-taskrunner)
9100 ("emacs-projectile" ,emacs-projectile)))
9101 (home-page "https://github.com/emacs-taskrunner/helm-taskrunner")
9102 (synopsis "Retrieve build-system tasks using Helm")
9103 (description "This package provides a Helm interface for selecting
9104 Makefile targets.")
9105 (license license:gpl3+))))
9106
9107 (define-public emacs-helm-make
9108 (let ((commit "feae8df22bc4b20705ea08ac9adfc2b43bb348d0")
9109 (revision "1"))
9110 (package
9111 (name "emacs-helm-make")
9112 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
9113 (source
9114 (origin
9115 (method git-fetch)
9116 (uri (git-reference
9117 (url "https://github.com/abo-abo/helm-make")
9118 (commit commit)))
9119 (file-name (git-file-name name version))
9120 (sha256
9121 (base32
9122 "1y2v77mmd1bfkkz51cnk1l0dg3lvvxc39wlamnm7wjns66dbvlam"))))
9123 (build-system emacs-build-system)
9124 (propagated-inputs
9125 `(("emacs-helm" ,emacs-helm)
9126 ("emacs-projectile" ,emacs-projectile)))
9127 (home-page "https://github.com/abo-abo/helm-make")
9128 (synopsis "Select a Makefile target with helm")
9129 (description "@code{helm-make} or @code{helm-make-projectile} will give
9130 you a @code{helm} selection of directory Makefile's targets. Selecting a
9131 target will call @code{compile} on it.")
9132 (license license:gpl3+))))
9133
9134 (define-public emacs-cider
9135 (package
9136 (name "emacs-cider")
9137 (version "0.26.1")
9138 (source
9139 (origin
9140 (method git-fetch)
9141 (uri (git-reference
9142 (url "https://github.com/clojure-emacs/cider")
9143 (commit (string-append "v" version))))
9144 (file-name (git-file-name name version))
9145 (sha256
9146 (base32 "0m77jbxl380dp1wyj12m82bb06r80js8yxl530ryp1mwvy74f00d"))))
9147 (build-system emacs-build-system)
9148 (arguments
9149 '(#:exclude ;don't exclude 'cider-test.el'
9150 '("^\\.dir-locals\\.el$" "^test/")))
9151 (propagated-inputs
9152 `(("emacs-clojure-mode" ,emacs-clojure-mode)
9153 ("emacs-parseedn" ,emacs-parseedn)
9154 ("emacs-pkg-info" ,emacs-pkg-info)
9155 ("emacs-queue" ,emacs-queue)
9156 ("emacs-sesman" ,emacs-sesman)
9157 ("emacs-spinner" ,emacs-spinner)))
9158 (home-page "https://cider.mx/")
9159 (synopsis "Clojure development environment for Emacs")
9160 (description
9161 "CIDER (Clojure Interactive Development Environment that Rocks) aims to
9162 provide an interactive development experience similar to the one you'd get
9163 when programming in Emacs Lisp, Common Lisp (with SLIME or Sly), Scheme (with
9164 Geiser) and Smalltalk.
9165
9166 CIDER is the successor to the now deprecated combination of using SLIME +
9167 swank-clojure for Clojure development.
9168
9169 There are plenty of differences between CIDER and SLIME, but the core ideas
9170 are pretty much the same (and SLIME served as the principle inspiration for
9171 CIDER).")
9172 (license license:gpl3+)))
9173
9174 ;; There hasn't been a tag or release since 2016, so we take the latest
9175 ;; commit.
9176 (define-public emacs-sly
9177 (let ((commit "8e22c1f62667434ec1acd1e0c6b7ec1c22dc0958")
9178 ;; Update together with sbcl-slynk-boot0.
9179 (revision "6"))
9180 (package
9181 (name "emacs-sly")
9182 (version (git-version "1.0.0" revision commit))
9183 (source
9184 (origin
9185 (method git-fetch)
9186 (uri (git-reference
9187 (url "https://github.com/joaotavora/sly")
9188 (commit commit)))
9189 (file-name (git-file-name name version))
9190 (sha256
9191 (base32
9192 "09wyqixsn7k889i54amf8bwjg6iyirp89xmcrgfwal010kh1ixcl"))))
9193 (build-system emacs-build-system)
9194 (native-inputs
9195 `(("texinfo" ,texinfo)))
9196 (arguments
9197 `(#:include (cons* "^contrib\\/" "^lib\\/" "^slynk\\/" %default-include)
9198 #:phases
9199 ;; The package provides autoloads.
9200 (modify-phases %standard-phases
9201 (delete 'make-autoloads)
9202 (add-before 'install 'install-doc
9203 (lambda* (#:key outputs #:allow-other-keys)
9204 (let* ((out (assoc-ref outputs "out"))
9205 (info-dir (string-append out "/share/info"))
9206 (doc-dir (string-append out "/share/doc/"
9207 ,name "-" ,version))
9208 (doc-files '(;; "doc/sly-refcard.pdf" ; See sly-refcard.pdf below.
9209 "README.md" "NEWS.md" "PROBLEMS.md"
9210 "CONTRIBUTING.md")))
9211 (with-directory-excursion "doc"
9212 (substitute* "Makefile"
9213 (("infodir=/usr/local/info")
9214 (string-append "infodir=" info-dir))
9215 ;; Don't rebuild contributors.texi since we are not in
9216 ;; the git repo.
9217 (("contributors.texi: Makefile texinfo-tabulate.awk")
9218 "contributors.texi:"))
9219 (invoke "make" "html/index.html")
9220 (invoke "make" "sly.info")
9221 ;; TODO: We need minimal texlive with "preprint" package
9222 ;; (for fullpage.sty). (invoke "make" "sly-refcard.pdf")
9223 (install-file "sly.info" info-dir)
9224 (copy-recursively "html" (string-append doc-dir "/html")))
9225 (for-each (lambda (f)
9226 (install-file f doc-dir)
9227 (delete-file f))
9228 doc-files)
9229 (delete-file-recursively "doc")
9230 #t))))))
9231 (home-page "https://github.com/joaotavora/sly")
9232 (synopsis "Sylvester the Cat's Common Lisp IDE")
9233 (description
9234 "SLY is Sylvester the Cat's Common Lisp IDE. SLY is a fork of SLIME, and
9235 contains the following improvements over it:
9236
9237 @enumerate
9238 @item Completely redesigned REPL based on Emacs's own full-featured
9239 @code{comint.el}.
9240 @item Live code annotations via a new @code{sly-stickers} contrib.
9241 @item Consistent interactive button interface. Everything can be copied to
9242 the REPL.
9243 @item Multiple inspectors with independent history.
9244 @item Regexp-capable @code{M-x sly-apropos}.
9245 @item Contribs are first class SLY citizens and enabled by default.
9246 @item Use ASDF to loads contribs on demand.
9247 @end enumerate
9248
9249 SLY tracks SLIME's bugfixes and all its familiar features (debugger, inspector,
9250 xref, etc...) are still available, but with better integration.")
9251 (license license:gpl3+))))
9252
9253 (define-public emacs-sly-quicklisp
9254 (let ((commit "01ebe3976a244309f2e277c09206831135a0b66c")
9255 (revision "1"))
9256 (package
9257 (name "emacs-sly-quicklisp")
9258 (version (git-version "0.0.0" revision commit))
9259 (home-page "https://github.com/joaotavora/sly-quicklisp")
9260 (source
9261 (origin
9262 (method git-fetch)
9263 (uri (git-reference
9264 (url home-page)
9265 (commit commit)))
9266 (file-name (git-file-name name version))
9267 (sha256
9268 (base32
9269 "1vfqmvayf35g6y3ljsm3rlzv5jm50qikhh4lv2zkkswj6gkkb1cv"))))
9270 (build-system emacs-build-system)
9271 (propagated-inputs
9272 `(("emacs-sly" ,emacs-sly)))
9273 (arguments
9274 `(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
9275 #:phases
9276 ;; The package provides autoloads.
9277 (modify-phases %standard-phases
9278 (delete 'make-autoloads)
9279 (delete 'enable-autoloads-compilation))))
9280 (synopsis "Quicklisp support for SLY")
9281 (description
9282 "@command{sly-quicklisp} is an external contrib for SLY that provides a
9283 sly-quickload command that prompts the user for a package to install. ")
9284 (license license:gpl3+))))
9285
9286 (define-public emacs-sly-asdf
9287 (let ((commit "32ce14994e8faee9321605cec36d156b02996c46")
9288 (revision "4"))
9289 (package
9290 (name "emacs-sly-asdf")
9291 (version (git-version "0.1.0" revision commit))
9292 (home-page "https://github.com/mmgeorge/sly-asdf")
9293 (source
9294 (origin
9295 (method git-fetch)
9296 (uri (git-reference
9297 (url home-page)
9298 (commit commit)))
9299 (file-name (git-file-name name version))
9300 (sha256
9301 (base32
9302 "09x8l37wwqw74xc2frwzbfdb1if8rb3szg5akdk3v2qhik4sm3dd"))))
9303 (build-system emacs-build-system)
9304 (propagated-inputs
9305 `(("emacs-sly" ,emacs-sly)
9306 ("emacs-popup" ,emacs-popup)))
9307 (arguments
9308 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)))
9309 (synopsis "ASDF contrib for SLY")
9310 (description
9311 "@command{sly-asdf} is an external contrib for SLY that provides
9312 additional support for working with ASDF projects.")
9313 (license license:gpl3+))))
9314
9315 (define-public emacs-sly-named-readtables
9316 (let ((commit "a5a42674ccffa97ccd5e4e9742beaf3ea719931f")
9317 (revision "1"))
9318 (package
9319 (name "emacs-sly-named-readtables")
9320 (version (git-version "0.1" revision commit))
9321 (home-page "https://github.com/joaotavora/sly-named-readtables")
9322 (source
9323 (origin
9324 (method git-fetch)
9325 (uri (git-reference
9326 (url home-page)
9327 (commit commit)))
9328 (file-name (git-file-name name version))
9329 (sha256
9330 (base32
9331 "16asd119rzqrlclps2q6yrkis8jy5an5xgzzqvb7jdyq39zxg54q"))))
9332 (build-system emacs-build-system)
9333 (propagated-inputs
9334 `(("emacs-sly" ,emacs-sly)))
9335 (arguments
9336 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
9337 #:phases (modify-phases %standard-phases
9338 ;; Byte compilation of the autoload file fails.
9339 (delete 'enable-autoloads-compilation))))
9340 (synopsis "Named-readtables support for SLY")
9341 (description
9342 "@command{sly-named-readtables} is an external contrib for SLY that
9343 enables different readtables to be active in different parts of the same
9344 file.")
9345 (license license:gpl3+))))
9346
9347 (define-public emacs-sly-macrostep
9348 (let ((commit "5113e4e926cd752b1d0bcc1508b3ebad5def5fad")
9349 (revision "2"))
9350 (package
9351 (name "emacs-sly-macrostep")
9352 (version (git-version "0.1" revision commit))
9353 (home-page "https://github.com/joaotavora/sly-macrostep")
9354 (source
9355 (origin
9356 (method git-fetch)
9357 (uri (git-reference
9358 (url home-page)
9359 (commit commit)))
9360 (file-name (git-file-name name version))
9361 (sha256
9362 (base32
9363 "1nxf28gn4f3n0wnv7nb5sgl36fz175y470zs9hig4kq8cp0yal0r"))))
9364 (build-system emacs-build-system)
9365 (propagated-inputs
9366 `(("emacs-sly" ,emacs-sly)
9367 ("emacs-macrostep" ,emacs-macrostep)))
9368 (arguments
9369 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
9370 #:phases
9371 ;; The package provides autoloads.
9372 (modify-phases %standard-phases
9373 (delete 'make-autoloads)
9374 (delete 'enable-autoloads-compilation))))
9375 (synopsis "Expand Common Lisp macros inside source files with SLY")
9376 (description
9377 "@command{sly-macrostep} is a SLY contrib for expanding CL macros right
9378 inside the source file.")
9379 (license license:gpl3+))))
9380
9381 (define-public emacs-sly-package-inferred
9382 (let ((commit "800e71e2be631422277e2ec77e6d6f6ea20e95ef")
9383 (revision "1"))
9384 (package
9385 (name "emacs-sly-package-inferred")
9386 (version (git-version "0.1" revision commit))
9387 (home-page "https://github.com/40ants/sly-package-inferred")
9388 (source
9389 (origin
9390 (method git-fetch)
9391 (uri (git-reference
9392 (url home-page)
9393 (commit commit)))
9394 (file-name (git-file-name name version))
9395 (sha256
9396 (base32
9397 "1216idyp034nkqddhw4p53jkhhdxa6xnjjmsvijpf4rxqnfqvapg"))))
9398 (build-system emacs-build-system)
9399 (propagated-inputs
9400 `(("emacs-sly" ,emacs-sly)))
9401 (arguments
9402 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
9403 #:phases
9404 ;; The package provides autoloads.
9405 (modify-phases %standard-phases
9406 (delete 'make-autoloads))))
9407 (synopsis "Improved package inferred systems support for SLY")
9408 (description
9409 "@command{sly-package-inferred} is an external contrib for SLY that
9410 replaces its completion with a function which is better suited for systems
9411 using package inferred style.")
9412 (license license:gpl3+))))
9413
9414 (define-public emacs-lua-mode
9415 (package
9416 (name "emacs-lua-mode")
9417 (version "20201010")
9418 (home-page "https://github.com/immerrr/lua-mode/")
9419 (source
9420 (origin
9421 (method git-fetch)
9422 (uri (git-reference
9423 (url home-page)
9424 (commit (string-append "v" version))))
9425 (file-name (git-file-name name version))
9426 (sha256
9427 (base32 "0zf43f7fkrgki6pbc09zak975p4jx1yf3ipfs38hypfl9s5d6xrf"))))
9428 (build-system emacs-build-system)
9429 (arguments
9430 `(#:tests? #t
9431 #:test-command '("buttercup" "-l" "lua-mode.el")))
9432 (native-inputs
9433 `(("emacs-buttercup" ,emacs-buttercup)
9434 ("lua" ,lua)))
9435 (synopsis "Major mode for lua")
9436 (description
9437 "This Emacs package provides a mode for @uref{https://www.lua.org/,
9438 Lua programming language}.")
9439 (license license:gpl2+)))
9440
9441 (define-public emacs-ebuild-mode
9442 (package
9443 (name "emacs-ebuild-mode")
9444 (version "1.51")
9445 (source
9446 (origin
9447 (method url-fetch)
9448 (uri (string-append
9449 "https://dev.gentoo.org/~ulm/emacs/"
9450 "ebuild-mode-" version ".tar.xz"))
9451 (file-name (string-append name "-" version ".tar.xz"))
9452 (sha256
9453 (base32 "0sfmd6ns2qdmybcynlvc4fqzkbkzmm54rn87wyirdcqnpy0x03i2"))))
9454 (build-system emacs-build-system)
9455 (arguments
9456 '(#:phases
9457 (modify-phases %standard-phases
9458 (add-after 'install 'install-doc
9459 (lambda* (#:key outputs #:allow-other-keys)
9460 (invoke "make" "ebuild-mode.info")
9461 (install-file "ebuild-mode.info"
9462 (string-append (assoc-ref outputs "out")
9463 "/share/info"))
9464 #t)))))
9465 (native-inputs
9466 `(("texinfo" ,texinfo)))
9467 (home-page "https://devmanual.gentoo.org")
9468 (synopsis "Major modes for Gentoo package files")
9469 (description
9470 "This Emacs package provides modes for ebuild, eclass, eblit, GLEP42
9471 news items, openrc and runscripts.")
9472 (license license:gpl2+)))
9473
9474 (define-public emacs-evil
9475 (package
9476 (name "emacs-evil")
9477 (version "1.14.0")
9478 (source
9479 (origin
9480 (method git-fetch)
9481 (uri (git-reference
9482 (url "https://github.com/emacs-evil/evil")
9483 (commit version)))
9484 (file-name (git-file-name name version))
9485 (sha256
9486 (base32
9487 "17xrn3s6a4afmls8fw8nnxa1jq9dmj2qqrxa2vngh50hxpz8840p"))))
9488 (arguments
9489 `(#:phases
9490 (modify-phases %standard-phases
9491 (add-before 'check 'fix-test-helpers
9492 (lambda _
9493 (substitute* "evil-test-helpers.el"
9494 (("\\(undo-tree-mode 1\\)") ""))
9495 #t))
9496 (add-before 'install 'make-info
9497 (lambda _
9498 (with-directory-excursion "doc/build/texinfo"
9499 (invoke "makeinfo" "--no-split"
9500 "-o" "evil.info" "evil.texi")))))))
9501 (build-system emacs-build-system)
9502 (native-inputs `(("texinfo" ,texinfo)))
9503 (home-page "https://github.com/emacs-evil/evil")
9504 (synopsis "Extensible Vi layer for Emacs")
9505 (description
9506 "Evil is an extensible vi layer for Emacs. It emulates the
9507 main features of Vim, and provides facilities for writing custom
9508 extensions.")
9509 (license license:gpl3+)))
9510
9511 (define-public emacs-evil-collection
9512 (let ((commit "8c256263ad100fecd6246c6c55cbb19dab717c39")
9513 (revision "18"))
9514 (package
9515 (name "emacs-evil-collection")
9516 (version (git-version "0.0.3" revision commit))
9517 (source (origin
9518 (method git-fetch)
9519 (uri (git-reference
9520 (url "https://github.com/emacs-evil/evil-collection")
9521 (commit commit)))
9522 (file-name (git-file-name name version))
9523 (sha256
9524 (base32
9525 "0hz1yfv5g016dm99bwnibbmyhbi21qlc39ckd7p3s82az89hgf2n"))))
9526 (build-system emacs-build-system)
9527 (propagated-inputs
9528 `(("emacs-evil" ,emacs-evil)
9529 ("emacs-annalist" ,emacs-annalist)))
9530 (arguments
9531 `(#:include (cons* "^modes\\/" %default-include)))
9532 (home-page "https://github.com/emacs-evil/evil-collection")
9533 (synopsis "Collection of Evil bindings for many major and minor modes")
9534 (description "This is a collection of Evil bindings for the parts of
9535 Emacs that Evil does not cover properly by default, such as @code{help-mode},
9536 @code{M-x calendar}, Eshell and more.")
9537 (license license:gpl3+))))
9538
9539 (define-public emacs-goto-chg
9540 (let ((commit "1829a13026c597e358f716d2c7793202458120b5")
9541 (version "1.7.3")
9542 (revision "1"))
9543 (package
9544 (name "emacs-goto-chg")
9545 (version (git-version version revision commit))
9546 (source
9547 (origin
9548 (method git-fetch)
9549 (uri (git-reference
9550 (url "https://github.com/emacs-evil/goto-chg")
9551 (commit commit)))
9552 (file-name (git-file-name name version))
9553 (sha256
9554 (base32
9555 "1y603maw9xwdj3qiarmf1bp13461f9f5ackzicsbynl0i9la3qki"))))
9556 (build-system emacs-build-system)
9557 (propagated-inputs
9558 `(("emacs-undo-tree" ,emacs-undo-tree)))
9559 (home-page "https://github.com/emacs-evil/goto-chg")
9560 (synopsis "Go to the last change in the Emacs buffer")
9561 (description
9562 "This package provides @code{M-x goto-last-change} command that goes to
9563 the point of the most recent edit in the current Emacs buffer. When repeated,
9564 go to the second most recent edit, etc. Negative argument, @kbd{C-u -}, is
9565 used for reverse direction.")
9566 (license license:gpl2+))))
9567
9568 (define-public emacs-janpath-evil-numbers
9569 (let ((commit "d988041c1fe6e941dc8d591390750b237f71f524")
9570 (version "0.5")
9571 (revision "1"))
9572 (package
9573 (name "emacs-janpath-evil-numbers")
9574 (version (git-version version revision commit))
9575 (source
9576 (origin
9577 (method git-fetch)
9578 (uri (git-reference
9579 (url "https://github.com/janpath/evil-numbers")
9580 (commit commit)))
9581 (file-name (git-file-name name version))
9582 (sha256
9583 (base32
9584 "16zixhxxcb83m82f2cfiardfn99j3w41v6vh1qk6j9pplrlfw70v"))))
9585 (build-system emacs-build-system)
9586 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9587 (home-page "https://github.com/janpath/evil-numbers")
9588 (synopsis "Increment and decrement numeric literals")
9589 (description
9590 "This package provides functionality to search for a number up to the
9591 end of a line and increment or decrement it.")
9592 (license license:gpl3+))))
9593
9594 (define-public emacs-evil-owl
9595 (let ((commit "24c5f43df375194386344e69bc720ea3986c9510")
9596 (revision "3"))
9597 (package
9598 (name "emacs-evil-owl")
9599 (version (git-version "0.0.1" revision commit))
9600 (source
9601 (origin
9602 (method git-fetch)
9603 (uri (git-reference
9604 (url "https://github.com/mamapanda/evil-owl")
9605 (commit commit)))
9606 (file-name (git-file-name name version))
9607 (sha256
9608 (base32
9609 "0bqzch14whlmrcasakah3psrzswvkzd7mmi8hx5s64kfp29wbdhi"))))
9610 (build-system emacs-build-system)
9611 (propagated-inputs
9612 `(("emacs-evil" ,emacs-evil)))
9613 (arguments
9614 `(#:tests? #t
9615 #:test-command '("make" "test")))
9616 (home-page "https://github.com/mamapanda/evil-owl")
9617 (synopsis "Preview candidates when using Evil registers and marks")
9618 (description
9619 "This package supplements Evil's register- and mark-based commands with
9620 a popup window for previewing candidates.")
9621 (license license:gpl3+))))
9622
9623 (define-public emacs-evil-args
9624 (let ((commit "758ad5ae54ad34202064fec192c88151c08cb387")
9625 (revision "1"))
9626 (package
9627 (name "emacs-evil-args")
9628 (version (git-version "1.0" revision commit))
9629 (source
9630 (origin
9631 (method git-fetch)
9632 (uri (git-reference
9633 (url "https://github.com/wcsmith/evil-args")
9634 (commit commit)))
9635 (file-name (git-file-name name version))
9636 (sha256
9637 (base32
9638 "0k35glgsirc3cph8v5hhjrqfh4ndwh8a28qbr03y3jl8s453xcj7"))))
9639 (build-system emacs-build-system)
9640 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9641 (home-page "https://github.com/wcsmith/evil-args")
9642 (synopsis "Motions and text objects for delimited arguments in Evil")
9643 (description
9644 "This package provides motions and text objects for delimited
9645 arguments, such as arguments separated by commas and semicolons.")
9646 (license license:expat))))
9647
9648 (define-public emacs-evil-escape
9649 (package
9650 (name "emacs-evil-escape")
9651 (version "3.14")
9652 (source
9653 (origin
9654 (method git-fetch)
9655 (uri
9656 (git-reference
9657 (url "https://github.com/syl20bnr/evil-escape")
9658 (commit (string-append "v" version))))
9659 (file-name (git-file-name name version))
9660 (sha256
9661 (base32 "0s8lmmm25qabicwaj9jybpbd8mkc62yl7jnhk1lpablydjkv3w2i"))))
9662 (propagated-inputs
9663 `(("emacs-evil" ,emacs-evil)))
9664 (build-system emacs-build-system)
9665 (home-page "https://github.com/syl20bnr/evil-escape")
9666 (synopsis "Escape from insert state and everything else in Emacs")
9667 (description
9668 "Evil escape provides a customizable key sequence to escape from insert
9669 state and everything else in Emacs.")
9670 (license license:gpl3+)))
9671
9672 (define-public emacs-evil-exchange
9673 (let ((commit "47691537815150715e64e6f6ec79be7746c96120")
9674 (version "0.41")
9675 (revision "1"))
9676 (package
9677 (name "emacs-evil-exchange")
9678 (version (git-version version revision commit))
9679 (source
9680 (origin
9681 (method git-fetch)
9682 (uri (git-reference
9683 (url "https://github.com/Dewdrops/evil-exchange")
9684 (commit commit)))
9685 (file-name (git-file-name name version))
9686 (sha256
9687 (base32
9688 "0bjpn4yqig17ddym6wqq5fm1b294q74hzcbj9a6gs97fqiwf88xa"))))
9689 (build-system emacs-build-system)
9690 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9691 (native-inputs `(("emacs-ert-runner" ,emacs-ert-runner)))
9692 (arguments
9693 `(#:phases
9694 (modify-phases %standard-phases
9695 (add-before 'check 'fix-makefile
9696 (lambda _
9697 (substitute* "Makefile"
9698 (("cask exec ") ""))
9699 #t)))
9700 #:tests? #t
9701 #:test-command '("make" "test")))
9702 (home-page "https://github.com/Dewdrops/evil-exchange")
9703 (synopsis "Exchange text easily within Evil")
9704 (description
9705 "This package, a port of @code{vim-exchange}, provides an Evil operator
9706 for exchanging text.")
9707 (license license:gpl3+))))
9708
9709 (define-public emacs-evil-replace-with-register
9710 (let ((commit "91cc7bf21a94703c441cc9212214075b226b7f67")
9711 (version "0.1")
9712 (revision "1"))
9713 (package
9714 (name "emacs-evil-replace-with-register")
9715 (version (git-version version revision commit))
9716 (source
9717 (origin
9718 (method git-fetch)
9719 (uri (git-reference
9720 (url "https://github.com/Dewdrops/evil-ReplaceWithRegister")
9721 (commit commit)))
9722 (file-name (git-file-name name version))
9723 (sha256
9724 (base32
9725 "14rpn76qrf287s3y2agmddcxi27r226i53ixjvd694ss039g0r11"))))
9726 (build-system emacs-build-system)
9727 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9728 (home-page "https://github.com/Dewdrops/evil-ReplaceWithRegister")
9729 (synopsis "Quickly replace text with the contents of a register")
9730 (description
9731 "This package provides an Evil operator for replacing text with the
9732 contents of a register.")
9733 (license license:gpl3+))))
9734
9735 (define-public emacs-evil-indent-plus
9736 (let ((commit "0c7501e6efed661242c3a20e0a6c79a6455c2c40")
9737 (version "1.0.0")
9738 (revision "1"))
9739 (package
9740 (name "emacs-evil-indent-plus")
9741 (version (git-version version revision commit))
9742 (source
9743 (origin
9744 (method git-fetch)
9745 (uri (git-reference
9746 (url "https://github.com/TheBB/evil-indent-plus")
9747 (commit commit)))
9748 (file-name (git-file-name name version))
9749 (sha256
9750 (base32
9751 "1g6r1ydscwjvmhh1zg4q3nap4avk8lb9msdqrh7dff6pla0r2qs6"))))
9752 (build-system emacs-build-system)
9753 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9754 (home-page "https://github.com/TheBB/evil-indent-plus")
9755 (synopsis "Text objects based on indentation")
9756 (description
9757 "This package adds new text objects for @code{evil-mode} based on
9758 blocks having the same or higher indentation, including or excluding
9759 surrounding lines.")
9760 (license license:gpl2+))))
9761
9762 (define-public emacs-evil-text-object-python
9763 (let ((commit "9a064fe6475429145cbcc3b270fcc963b67adb15")
9764 (version "1.0.1")
9765 (revision "1"))
9766 (package
9767 (name "emacs-evil-text-object-python")
9768 (version (git-version version revision commit))
9769 (source
9770 (origin
9771 (method git-fetch)
9772 (uri (git-reference
9773 (url "https://github.com/wbolster/evil-text-object-python")
9774 (commit commit)))
9775 (file-name (git-file-name name version))
9776 (sha256
9777 (base32
9778 "074zpm6mmr1wfl6d5xdf8jk1fs4ccpbzf4ahhkwga9g71xiplszv"))))
9779 (build-system emacs-build-system)
9780 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9781 (home-page "https://github.com/wbolster/evil-text-object-python")
9782 (synopsis "Text objects for Python")
9783 (description
9784 "This package provides @code{evil-mode} text objects for Python.")
9785 (license license:gpl3+))))
9786
9787 (define-public emacs-evil-lion
9788 (let ((commit "6b03593f5dd6e7c9ca02207f9a73615cf94c93ab")
9789 (revision "1"))
9790 (package
9791 (name "emacs-evil-lion")
9792 (version (git-version "0.0.2" revision commit))
9793 (source
9794 (origin
9795 (method git-fetch)
9796 (uri (git-reference
9797 (url "https://github.com/edkolev/evil-lion")
9798 (commit commit)))
9799 (file-name (git-file-name name version))
9800 (sha256
9801 (base32
9802 "1a162hynp0jcsn50c1w5a02mrw9w3q05c7lkqzqd25px3d0p772q"))))
9803 (build-system emacs-build-system)
9804 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9805 (arguments
9806 `(#:tests? #t
9807 #:test-command '("make" "test")))
9808 (home-page "https://github.com/edkolev/evil-lion")
9809 (synopsis "Align operator for @code{evil-mode}")
9810 (description
9811 "This package, a port of @code{vim-lion}, provides an operator for
9812 aligning text objects based on separators.")
9813 (license license:gpl3+))))
9814
9815 (define-public emacs-evil-expat
9816 (let ((commit "f4fcd0aa3edc359adb5c986b5dd9188d220d84e2")
9817 (revision "1"))
9818 (package
9819 (name "emacs-evil-expat")
9820 (version (git-version "0.0.1" revision commit))
9821 (source
9822 (origin
9823 (method git-fetch)
9824 (uri (git-reference
9825 (url "https://github.com/edkolev/evil-expat")
9826 (commit commit)))
9827 (file-name (git-file-name name version))
9828 (sha256
9829 (base32
9830 "0872ix682hkdz0k8pn6sb54rqkx00rz5fxpd5j2snx406yagpaxz"))))
9831 (build-system emacs-build-system)
9832 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9833 (arguments
9834 `(#:tests? #t
9835 #:test-command '("make" "test")))
9836 (home-page "https://github.com/edkolev/evil-expat")
9837 (synopsis "Extra @code{ex} commands for @code{evil-mode}")
9838 (description
9839 "This package provides additional commands for the @code{ex} command
9840 line, including functions for version control with Git and for copying and
9841 pasting into and from @code{tmux} paste buffers.")
9842 (license license:gpl3+))))
9843
9844 (define-public emacs-evil-nerd-commenter
9845 (package
9846 (name "emacs-evil-nerd-commenter")
9847 (version "3.3.8")
9848 (source
9849 (origin
9850 (method git-fetch)
9851 (uri (git-reference
9852 (url "https://github.com/redguardtoo/evil-nerd-commenter")
9853 (commit version)))
9854 (file-name (git-file-name name version))
9855 (sha256
9856 (base32
9857 "0qd5a89mzvdyhd8lm13iwp220vzpd6dajwx54frlc5bzsxdmg6vc"))))
9858 (build-system emacs-build-system)
9859 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9860 (arguments
9861 `(#:tests? #t
9862 #:test-command '("make" "test")))
9863 (home-page "https://github.com/redguardtoo/evil-nerd-commenter")
9864 (synopsis "Comment and uncomment lines efficiently")
9865 (description
9866 "This package provides text objects and operators for comments within
9867 @code{evil-mode}.")
9868 (license license:gpl3+)))
9869
9870 (define-public emacs-evil-visual-replace
9871 (package
9872 (name "emacs-evil-visual-replace")
9873 (version "0.0.5")
9874 (source
9875 (origin
9876 (method git-fetch)
9877 (uri (git-reference
9878 (url "https://github.com/troyp/evil-visual-replace")
9879 (commit version)))
9880 (file-name (git-file-name name version))
9881 (sha256
9882 (base32
9883 "1gfyrq7xfzmzh3x8k5f08n027dlbwi0pkkxf9c39fkxp4jngibsz"))))
9884 (build-system emacs-build-system)
9885 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9886 (home-page "https://github.com/troyp/evil-visual-replace")
9887 (synopsis "Replacement commands for @code{evil-mode} visual blocks")
9888 (description
9889 "This package provides versions of @code{query-replace} and
9890 @code{replace-regexp} that work for @code{evil-mode} visual blocks.")
9891 (license license:gpl2+)))
9892
9893 (define-public emacs-evil-visualstar
9894 (let ((commit "06c053d8f7381f91c53311b1234872ca96ced752")
9895 (version "0.0.2")
9896 (revision "1"))
9897 (package
9898 (name "emacs-evil-visualstar")
9899 (version (git-version version revision commit))
9900 (source
9901 (origin
9902 (method git-fetch)
9903 (uri (git-reference
9904 (url "https://github.com/bling/evil-visualstar")
9905 (commit commit)))
9906 (file-name (git-file-name name version))
9907 (sha256
9908 (base32
9909 "0mkbzw12fav945icibc2293m5haxqr3hzkyli2cf4ssk6yvn0x4c"))))
9910 (build-system emacs-build-system)
9911 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9912 (home-page "https://github.com/bling/evil-visualstar")
9913 (synopsis "Instantly search using the visual selection")
9914 (description
9915 "This package provides @code{evil-mode} functions for using selected text
9916 to search.")
9917 (license license:gpl3+))))
9918
9919 (define-public emacs-monky
9920 (package
9921 (name "emacs-monky")
9922 (version "0.1")
9923 (source (origin
9924 (method git-fetch)
9925 (uri (git-reference
9926 (url "https://github.com/ananthakumaran/monky")
9927 (commit version)))
9928 (file-name (git-file-name name version))
9929 (sha256
9930 (base32
9931 "1fgn7al4zwz2k5wb5dy3byqg9lsrjk9fra341mxh5ma2pfwxjgps"))))
9932 (build-system emacs-build-system)
9933 (home-page "https://ananthakumaran.in/monky/index.html")
9934 (arguments
9935 `(#:tests? #t
9936 #:test-command '("emacs" "--batch"
9937 "-l" "test/monky-unit-test.el"
9938 "-f" "ert-run-tests-batch-and-exit")))
9939 (synopsis "Interactive interface for the Mercurial version control system")
9940 (description
9941 "Monky provides an Emacs interface for Mercurial (Hg). Using Monky, you
9942 can selectively commit files, view the diffs, and other things.")
9943 (license license:gpl3+)))
9944
9945 (define-public emacs-monroe
9946 (package
9947 (name "emacs-monroe")
9948 (version "0.3.1")
9949 (source
9950 (origin
9951 (method git-fetch)
9952 (uri (git-reference
9953 (url "https://github.com/sanel/monroe")
9954 (commit version)))
9955 (file-name (git-file-name name version))
9956 (sha256
9957 (base32 "101lfrykdbv37spkbw7zihhx26bc1lhjyxbanrcp9880bxj04jiy"))))
9958 (build-system emacs-build-system)
9959 (home-page "https://github.com/sanel/monroe")
9960 (synopsis "Clojure nREPL client for Emacs")
9961 (description
9962 "Monroe is a nREPL client for Emacs, focused on simplicity and easy
9963 distribution, primarily targeting Clojure users")
9964 (license license:gpl3+)))
9965
9966 (define-public emacs-orgalist
9967 (package
9968 (name "emacs-orgalist")
9969 (version "1.13")
9970 (source
9971 (origin
9972 (method url-fetch)
9973 (uri (string-append "https://elpa.gnu.org/packages/"
9974 "orgalist-" version ".el"))
9975 (sha256
9976 (base32 "1wkxc5kcy1g4lx6pd78pa8znncjyl9zyhsvz7wpp56qmhq4hlav3"))))
9977 (build-system emacs-build-system)
9978 (home-page "https://elpa.gnu.org/packages/orgalist.html")
9979 (synopsis "Manage Org-like lists in non-Org buffers")
9980 (description "Orgalist writes and manages Org mode's plain lists in
9981 non-Org buffers. More specifically, it supports the syntax of Org mode for
9982 numbered, unnumbered, description items, checkboxes, and counter cookies.
9983
9984 The library also implements radio lists, i.e., lists written in Org syntax
9985 later translated into the host format, e.g., LaTeX or HTML.")
9986 (license license:gpl3+)))
9987
9988 (define-public emacs-writegood-mode
9989 (package
9990 (name "emacs-writegood-mode")
9991 (version "2.0.2")
9992 (home-page "https://github.com/bnbeckwith/writegood-mode")
9993 (source (origin
9994 (method git-fetch)
9995 (uri (git-reference
9996 (url home-page)
9997 (commit (string-append "v" version))))
9998 (sha256
9999 (base32
10000 "1nnjn1r669hvvzfycllwap4w04m8rfsk4nzcg8057m1f263kj31b"))
10001 (file-name (string-append name "-checkout"))))
10002 (build-system emacs-build-system)
10003 (synopsis "Polish up poor writing on the fly")
10004 (description
10005 "This minor mode tries to find and highlight problems with your writing
10006 in English as you type. It primarily detects \"weasel words\" and abuse of
10007 passive voice.")
10008 (license license:gpl3+)))
10009
10010 (define-public emacs-neotree
10011 (package
10012 (name "emacs-neotree")
10013 (version "0.5.2")
10014 (home-page "https://github.com/jaypei/emacs-neotree")
10015 (source (origin
10016 (method git-fetch)
10017 (uri (git-reference
10018 (url home-page)
10019 (commit version)))
10020 (sha256
10021 (base32
10022 "0hx72fq10772bbyqrj7mhhp02k26cccjxdadiqm1ykainhfmn1x0"))
10023 (file-name (git-file-name name version))))
10024 (build-system emacs-build-system)
10025 (synopsis "Folder tree view for Emacs")
10026 (description "This Emacs package provides a folder tree view.")
10027 (license license:gpl3+)))
10028
10029 (define-public emacs-org
10030 (package
10031 (name "emacs-org")
10032 ;; emacs-org-contrib inherits from this package. Please update it as
10033 ;; well.
10034 (version "9.4")
10035 (source
10036 (origin
10037 (method url-fetch)
10038 (uri (string-append "https://elpa.gnu.org/packages/org-" version ".tar"))
10039 (sha256
10040 (base32 "1awkrh3y90q7c0as3327rqj0zylf5cpjzr1pyvbzymli16irhwb6"))))
10041 (build-system emacs-build-system)
10042 (arguments
10043 `(#:phases
10044 (modify-phases %standard-phases
10045 (add-after 'install 'install-documentation
10046 (lambda* (#:key outputs #:allow-other-keys)
10047 (let* ((share (string-append (assoc-ref outputs "out") "/share"))
10048 (info-dir (string-append share "/info"))
10049 (doc-dir (string-append share "/doc/" ,name "-" ,version)))
10050 (install-file "org" info-dir)
10051 (install-file "orgcard.pdf" doc-dir))
10052 #t)))))
10053 (home-page "https://orgmode.org/")
10054 (synopsis "Outline-based notes management and organizer")
10055 (description "Org is an Emacs mode for keeping notes, maintaining TODO
10056 lists, and project planning with a fast and effective lightweight markup
10057 language. It also is an authoring system with unique support for literate
10058 programming and reproducible research.")
10059 (license license:gpl3+)))
10060
10061 (define-public emacs-org-contrib
10062 (package
10063 (inherit emacs-org)
10064 (name "emacs-org-contrib")
10065 (version "20200914")
10066 (source
10067 (origin
10068 (method url-fetch)
10069 (uri (string-append "https://orgmode.org/elpa/"
10070 "org-plus-contrib-" version ".tar"))
10071 (sha256
10072 (base32 "1naq25g4d95cx29axx428rnpc4m9hd0j7w1l0vqwkdjyr5qfj0ab"))
10073 ;; ob-sclang.el is packaged separately to avoid the dependency on
10074 ;; SuperCollider and qtwebengine.
10075 (modules '((guix build utils)))
10076 (snippet '(begin (delete-file "ob-sclang.el") #t))))
10077 (arguments
10078 `(#:modules ((guix build emacs-build-system)
10079 (guix build utils)
10080 (guix build emacs-utils)
10081 (ice-9 ftw)
10082 (srfi srfi-1))
10083 #:phases
10084 (modify-phases %standard-phases
10085 (add-after 'install 'delete-org-files
10086 (lambda* (#:key inputs outputs #:allow-other-keys)
10087 (let* ((out (assoc-ref outputs "out"))
10088 (org (assoc-ref inputs "org"))
10089 (contrib-files
10090 (map basename (find-files out)))
10091 (org+contrib-files
10092 (map basename (find-files org)))
10093 (duplicates (lset-intersection string=?
10094 contrib-files
10095 org+contrib-files)))
10096 (with-directory-excursion
10097 (string-append out "/share/emacs/site-lisp")
10098 (for-each delete-file duplicates))
10099 #t))))))
10100 (propagated-inputs
10101 `(("arduino-mode" ,emacs-arduino-mode)
10102 ("cider" ,emacs-cider)
10103 ("org" ,emacs-org)))
10104 (synopsis "Contributed packages to Org mode")
10105 (description "Org is an Emacs mode for keeping notes, maintaining TODO
10106 lists, and project planning with a fast and effective plain-text system.
10107
10108 This package is equivalent to org-plus-contrib, but only includes additional
10109 files that you would find in @file{contrib/} from the git repository.")))
10110
10111 (define-public emacs-ob-sclang
10112 (package
10113 (inherit emacs-org-contrib)
10114 (name "emacs-ob-sclang")
10115 (source
10116 (origin (inherit (package-source emacs-org-contrib))
10117 (modules '((guix build utils)))
10118 (snippet
10119 '(begin
10120 (for-each (lambda (file)
10121 (unless (equal? file "./ob-sclang.el")
10122 (delete-file file)))
10123 (find-files "." "\\.el"))
10124 #t))))
10125 (propagated-inputs
10126 `(("org" ,emacs-org)
10127 ("scel" ,emacs-scel)))
10128 (synopsis "Org Babel support for SuperCollider")
10129 (description "This package adds support for evaluating @code{sclang}
10130 Org mode source blocks. It is extracted from the @code{emacs-org-contrib}
10131 package.")))
10132
10133 (define-public emacs-org-edna
10134 (package
10135 (name "emacs-org-edna")
10136 (version "1.1.2")
10137 (source (origin
10138 (method bzr-fetch)
10139 (uri (bzr-reference
10140 (url "bzr://bzr.savannah.nongnu.org/org-edna-el")
10141 (revision version)))
10142 (file-name (string-append name "-" version "-checkout"))
10143 (sha256
10144 (base32
10145 "01dblddgx0yid5hrgl4swbr4grhv057kfbdy122wihzqpsrgq86n"))))
10146 (build-system emacs-build-system)
10147 (home-page "https://savannah.nongnu.org/projects/org-edna-el/")
10148 (synopsis "Manage Org task dependencies")
10149 (description "This package provides an extensible means of specifying
10150 conditions which must be fulfilled before a task can be completed and actions
10151 to take once it is. Org Edna runs when either the BLOCKER or TRIGGER
10152 properties are set on a heading, and when it is changing from a TODO state to
10153 a DONE state.")
10154 (license license:gpl3+)))
10155
10156 (define-public emacs-flx
10157 (package
10158 (name "emacs-flx")
10159 (version "0.6.1")
10160 (source
10161 (origin
10162 (method git-fetch)
10163 (uri (git-reference
10164 (url "https://github.com/lewang/flx")
10165 (commit (string-append "v" version))))
10166 (sha256
10167 (base32
10168 "0sjybrcnb2sl33swy3q664vqrparajcl0m455gciiih2j87hwadc"))
10169 (file-name (git-file-name name version))))
10170 (build-system emacs-build-system)
10171 (home-page "https://github.com/lewang/flx")
10172 (synopsis "Fuzzy matching for Emacs")
10173 (description
10174 "Flx provides fuzzy matching for emacs a la sublime text.
10175 The sorting algorithm is a balance between word beginnings (abbreviation)
10176 and contiguous matches (substring). The longer the substring match,
10177 the higher it scores. This maps well to how we think about matching.
10178 Flx has support for ido (interactively do things) through flx-ido.")
10179 (license license:gpl3+)))
10180
10181 (define-public emacs-cyberpunk-theme
10182 (package
10183 (name "emacs-cyberpunk-theme")
10184 (version "1.22")
10185 (source
10186 (origin
10187 (method git-fetch)
10188 (uri (git-reference
10189 (url "https://github.com/n3mo/cyberpunk-theme.el/")
10190 (commit version)))
10191 (sha256
10192 (base32
10193 "06nff38pcy5rgz13svkajsg0jjk73qy4a8m7p9f76yxcywxlgxlc"))
10194 (file-name (git-file-name name version))))
10195 (build-system emacs-build-system)
10196 (home-page "https://github.com/n3mo/cyberpunk-theme.el")
10197 (synopsis "Cyberpunk theme for Emacs built-in color theme support")
10198 (description
10199 "Cyberpunk color theme for the Emacs 24+ built-in color theme support
10200 known loosely as deftheme. Many mode-specific customizations are included.")
10201 (license license:gpl3+)))
10202
10203 (define-public emacs-danneskjold-theme
10204 (let* ((commit "8733d2fe8743e8a01826ea6d4430ef376c727e57")
10205 (revision "1"))
10206 (package
10207 (name "emacs-danneskjold-theme")
10208 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
10209 (home-page "https://github.com/rails-to-cosmos/danneskjold-theme")
10210 (source
10211 (origin
10212 (method git-fetch)
10213 (uri (git-reference
10214 (url home-page)
10215 (commit commit)))
10216 (file-name (git-file-name name version))
10217 (sha256
10218 (base32
10219 "0s6rbsb0y8i8m5b9xm4gw1p1cxsxdqnqxqqb638pygz9f76mbir1"))))
10220 (build-system emacs-build-system)
10221 (arguments
10222 `(#:phases
10223 (modify-phases %standard-phases
10224 (add-after 'unpack 'delete-screenshots
10225 (lambda _
10226 (delete-file-recursively "screenshots") #t)))))
10227 (synopsis "High-contrast Emacs theme")
10228 (description
10229 "@code{danneskjold-theme} is a high-contrast theme for Emacs.")
10230 (license license:gpl3+))))
10231
10232 (define-public emacs-dream-theme
10233 (let* ((commit "107a11d74365046f28a1802a2bdb5e69e4a7488b")
10234 (revision "1"))
10235 (package
10236 (name "emacs-dream-theme")
10237 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
10238 (source
10239 (origin
10240 (method git-fetch)
10241 (uri (git-reference
10242 (url "https://github.com/djcb/dream-theme")
10243 (commit commit)))
10244 (file-name (git-file-name name version))
10245 (sha256
10246 (base32
10247 "0za18nfkq4xqm35k6006vsixcbmvmxqgma4iw5sw37h8vmcsdylk"))))
10248 (build-system emacs-build-system)
10249 (home-page "https://github.com/djcb/dream-theme")
10250 (synopsis "High-contrast Emacs theme")
10251 (description
10252 "@code{dream-theme} is a dark, clean theme for Emacs. It is inspired
10253 by zenburn, sinburn and similar themes, but slowly diverging from them.")
10254 (license license:gpl3+))))
10255
10256 (define-public emacs-dracula-theme
10257 (package
10258 (name "emacs-dracula-theme")
10259 (version "1.7.0")
10260 (source
10261 (origin
10262 (method git-fetch)
10263 (uri (git-reference
10264 (url "https://github.com/dracula/emacs")
10265 (commit (string-append "v" version))))
10266 (file-name (git-file-name name version))
10267 (sha256
10268 (base32 "15y2djc5jljlvls1x9kp50m1kp0dcksmyixafsyimj66xpq9ngh0"))))
10269 (build-system emacs-build-system)
10270 (home-page "https://draculatheme.com/")
10271 (synopsis "Dark theme for Emacs")
10272 (description
10273 "Dracula is a dark color theme for many editors, shells and more. This
10274 package provides the Emacs theme.")
10275 (license license:expat)))
10276
10277 (define-public emacs-auto-complete
10278 (package
10279 (name "emacs-auto-complete")
10280 (version "1.5.1")
10281 (source
10282 (origin
10283 (method git-fetch)
10284 (uri (git-reference
10285 (url "https://github.com/auto-complete/auto-complete")
10286 (commit (string-append "v" version))))
10287 (sha256
10288 (base32
10289 "04i9b11iksg6acn885wl3qgi5xpsm3yszlqmd2x21yhprndlz7gb"))
10290 (file-name (git-file-name name version))))
10291 (build-system emacs-build-system)
10292 (propagated-inputs
10293 `(("emacs-popup" ,emacs-popup)))
10294 (home-page "https://github.com/auto-complete/auto-complete")
10295 (synopsis "Intelligent auto-completion extension for Emacs")
10296 (description
10297 "Auto-Complete is an intelligent auto-completion extension for Emacs.
10298 It extends the standard Emacs completion interface and provides an environment
10299 that allows users to concentrate more on their own work. Its features are:
10300 a visual interface, reduce overhead of completion by using statistic method,
10301 extensibility.")
10302 (license license:gpl3+)))
10303
10304 (define-public emacs-nginx-mode
10305 (package
10306 (name "emacs-nginx-mode")
10307 (version "1.1.9")
10308 (source
10309 (origin
10310 (method git-fetch)
10311 (uri (git-reference
10312 (url "https://github.com/ajc/nginx-mode")
10313 (commit (string-append "v" version))))
10314 (file-name (git-file-name name version))
10315 (sha256
10316 (base32 "17dh5pr3gh6adrbqx588gimxbb2fr7iv2qrxv6r48w2727l344xs"))))
10317 (build-system emacs-build-system)
10318 (home-page "https://github.com/ajc/nginx-mode")
10319 (synopsis "Emacs major mode for editing nginx config files")
10320 (description "This package provides an Emacs major mode for
10321 editing nginx config files.")
10322 (license license:gpl2+)))
10323
10324 (define-public emacs-stream
10325 (package
10326 (name "emacs-stream")
10327 (version "2.2.5")
10328 (source
10329 (origin
10330 (method url-fetch)
10331 (uri (string-append "https://elpa.gnu.org/packages/"
10332 "stream-" version ".tar"))
10333 (file-name (git-file-name name version))
10334 (sha256
10335 (base32 "00c3n4gyxzv7vczqms0d62kl8zsmjfyxa92mwxn2snyx857a9jfw"))))
10336 (build-system emacs-build-system)
10337 (home-page "http://elpa.gnu.org/packages/stream.html")
10338 (synopsis "Implementation of streams for Emacs")
10339 (description "This library provides an implementation of streams for Emacs.
10340 Streams are implemented as delayed evaluation of cons cells.")
10341 (license license:gpl3+)))
10342
10343 (define-public emacs-cl-print
10344 (let ((commit "1a70c553dfb04352afb5b8696fe0cef8acc8f991")
10345 (revision "1"))
10346 (package
10347 (name "emacs-cl-print")
10348 (version (git-version "1.0" revision commit))
10349 (source
10350 (origin
10351 (method git-fetch)
10352 (uri (git-reference
10353 (url "https://github.com/emacsmirror/cl-print")
10354 (commit commit)))
10355 (file-name (git-file-name name version))
10356 (sha256
10357 (base32 "164zbnsi5mssvcpy0158fm7fw5cmd1r5nkpn29fmd2b2scy3gm79"))))
10358 (build-system emacs-build-system)
10359 (home-page "https://github.com/emacsmirror/cl-print")
10360 (synopsis "CL-style generic printing")
10361 (description "This package provides a generic function,
10362 @code{cl-print-object}, to which the programmer can add any method they
10363 please.")
10364 (license license:gpl3+))))
10365
10366 (define-public emacs-el-search
10367 (let ((commit "07bed84dd8ae9e4c6c648834224b1d33fdbd51e0")
10368 (revision "2"))
10369 (package
10370 (name "emacs-el-search")
10371 (version (git-version "1.12.6.1" revision commit))
10372 (source
10373 (origin
10374 (method git-fetch)
10375 (uri (git-reference
10376 (url "https://github.com/emacsmirror/el-search")
10377 (commit commit)))
10378 (file-name (git-file-name name version))
10379 (sha256
10380 (base32 "10w1ldgijdhfsrazp0y3bm76jv5wvdn94k1yp0pmc2m1896b58ak"))))
10381 (build-system emacs-build-system)
10382 (inputs
10383 `(("emacs-stream" ,emacs-stream)
10384 ("emacs-cl-print" ,emacs-cl-print)))
10385 (home-page "https://github.com/emacsmirror/el-search")
10386 (synopsis "Expression based interactive search for emacs-lisp-mode")
10387 (description "This package provides expression based interactive search
10388 procedures for emacs-lisp-mode.")
10389 (license license:gpl3+))))
10390
10391 (define-public emacs-ht
10392 (package
10393 (name "emacs-ht")
10394 (version "2.2")
10395 (source
10396 (origin
10397 (method git-fetch)
10398 (uri (git-reference
10399 (url "https://github.com/Wilfred/ht.el")
10400 (commit version)))
10401 (file-name (git-file-name name version))
10402 (sha256
10403 (base32 "1p3qa7g0wa0wbviv2f8bda39cjys3naayk5xjm3nxxmqsyy8papx"))))
10404 (build-system emacs-build-system)
10405 (propagated-inputs `(("emacs-dash" ,emacs-dash)))
10406 (native-inputs
10407 `(("emacs-ert-runner" ,emacs-ert-runner)))
10408 (arguments
10409 `(#:tests? #t
10410 #:test-command '("ert-runner")))
10411 (home-page "https://github.com/Wilfred/ht.el")
10412 (synopsis "Hash table library for Emacs")
10413 (description
10414 "This package simplifies the use of hash tables in elisp. It also
10415 provides functions to convert hash tables from and to alists and plists.")
10416 (license license:gpl3+)))
10417
10418 (define-public emacs-log4e
10419 (package
10420 (name "emacs-log4e")
10421 (version "0.3.0")
10422 (source
10423 (origin
10424 (method git-fetch)
10425 (uri (git-reference
10426 (url "https://github.com/aki2o/log4e")
10427 (commit (string-append "v" version))))
10428 (file-name (git-file-name name version))
10429 (sha256
10430 (base32 "1l28n7a0v2zkknc70i1wn6qb5i21dkhfizzk8wcj28v44cgzk022"))))
10431 (build-system emacs-build-system)
10432 (arguments
10433 `(#:phases
10434 (modify-phases %standard-phases
10435 (add-after 'unpack 'remove-tests
10436 ;; Guile builder complains about null characters in some
10437 ;; strings of test files. Remove "test" directory (it is not
10438 ;; needed anyway).
10439 (lambda _
10440 (delete-file-recursively "test"))))))
10441 (home-page "https://github.com/aki2o/log4e")
10442 (synopsis "Logging framework for elisp")
10443 (description
10444 "This package provides a logging framework for elisp. It allows
10445 you to deal with multiple log levels.")
10446 (license license:gpl3+)))
10447
10448 (define-public emacs-gntp
10449 (package
10450 (name "emacs-gntp")
10451 (version "0.1")
10452 (source
10453 (origin
10454 (method git-fetch)
10455 (uri (git-reference
10456 (url "https://github.com/tekai/gntp.el")
10457 (commit (string-append "v" version))))
10458 (file-name (git-file-name name version))
10459 (sha256
10460 (base32 "1nvyjjjydrimpxy4cpg90si7sr8lmldbhlcm2mx8npklp9pn5y3a"))))
10461 (build-system emacs-build-system)
10462 (home-page "https://github.com/tekai/gntp.el")
10463 (synopsis "Growl Notification Protocol for Emacs")
10464 (description
10465 "This package implements the Growl Notification Protocol GNTP
10466 described at @uref{http://www.growlforwindows.com/gfw/help/gntp.aspx}.
10467 It is incomplete as it only lets you send but not receive
10468 notifications.")
10469 (license license:bsd-3)))
10470
10471 (define-public emacs-alert
10472 (package
10473 (name "emacs-alert")
10474 (version "1.3")
10475 (source
10476 (origin
10477 (method git-fetch)
10478 (uri (git-reference
10479 (url "https://github.com/jwiegley/alert")
10480 (commit (string-append "v" version))))
10481 (file-name (git-file-name name version))
10482 (sha256
10483 (base32 "0lc0p5cl4hfrzw1z2ghb11k1lvljn5m08jw5fmgwgxv667kwh49r"))))
10484 (build-system emacs-build-system)
10485 (propagated-inputs
10486 `(("emacs-gntp" ,emacs-gntp)
10487 ("emacs-log4e" ,emacs-log4e)))
10488 (home-page "https://github.com/jwiegley/alert")
10489 (synopsis "Growl-style notification system for Emacs")
10490 (description
10491 "Alert is a Growl-workalike for Emacs which uses a common notification
10492 interface and multiple, selectable \"styles\", whose use is fully
10493 customizable by the user.")
10494 (license license:gpl2+)))
10495
10496 (define-public emacs-zones
10497 (package
10498 (name "emacs-zones")
10499 (version "2019.7.13")
10500 (source
10501 (origin
10502 (method url-fetch)
10503 (uri (string-append "https://elpa.gnu.org/packages/"
10504 "zones-" version ".el"))
10505 (sha256
10506 (base32 "0qp1ba2pkqx9d35g7z8hf8qs2k455krf2a92l4rka3ipsbnmq5k1"))))
10507 (build-system emacs-build-system)
10508 (home-page "https://www.emacswiki.org/emacs/Zones")
10509 (synopsis "Define and act on multiple zones of buffer text")
10510 (description
10511 "Library @file{zones.el} lets you easily define and subsequently act on
10512 multiple zones of buffer text. You can think of this as enlarging the notion
10513 of region. In effect, it can remove the requirement of target text being
10514 a contiguous sequence of characters. A set of buffer zones is, in effect,
10515 a (typically) noncontiguous set of text.")
10516 (license license:gpl3+)))
10517
10518 (define-public emacs-mu4e-alert
10519 (package
10520 (name "emacs-mu4e-alert")
10521 (version "1.0")
10522 (source
10523 (origin
10524 (method git-fetch)
10525 (uri (git-reference
10526 (url "https://github.com/iqbalansari/mu4e-alert")
10527 (commit (string-append "v" version))))
10528 (file-name (git-file-name name version))
10529 (sha256
10530 (base32 "1nvsfbfsma59ilf7c3vjngnmx3aapwvvvaafdy5szm5r6lkicqvg"))))
10531 (build-system emacs-build-system)
10532 (propagated-inputs
10533 `(("emacs-alert" ,emacs-alert)
10534 ("emacs-s" ,emacs-s)
10535 ("emacs-ht" ,emacs-ht)
10536 ("mu" ,mu)))
10537 (home-page "https://github.com/iqbalansari/mu4e-alert")
10538 (synopsis "Desktop notification for mu4e")
10539 (description
10540 "This package provides desktop notifications for mu4e.
10541 Additionally it can display the number of unread emails in the
10542 mode-line.")
10543 (license license:gpl3+)))
10544
10545 (define-public emacs-mu4e-jump-to-list
10546 (let ((commit "358bba003543b49ffa266e503e54aebd0ebe614b")
10547 (revision "1"))
10548 (package
10549 (name "emacs-mu4e-jump-to-list")
10550 (version (git-version "1.0" revision commit))
10551 (source
10552 (origin
10553 (method git-fetch)
10554 (uri (git-reference
10555 (url "https://gitlab.com/wavexx/mu4e-jump-to-list.el.git")
10556 (commit commit)))
10557 (file-name (git-file-name name version))
10558 (sha256
10559 (base32
10560 "00y9nap61q1z2cdql4k9g7fgi2gdgd9iy5s5lzrd9a4agbx6r7sv"))))
10561 (build-system emacs-build-system)
10562 (propagated-inputs
10563 `(("mu" ,mu)))
10564 (home-page "https://gitlab.com/wavexx/mu4e-jump-to-list.el")
10565 (synopsis "Select and view mailing lists in mu4e")
10566 (description
10567 "@code{mu4e-jump-to-list} allows you to select and view mailing lists
10568 automatically using existing List-ID headers in your mu database. Just press
10569 \"l\" in the headers view and any mailing list you've subscribed to will be
10570 automatically discovered and presented in recency order.")
10571 (license license:gpl3+))))
10572
10573 (define-public emacs-mu4e-patch
10574 (let ((commit "522da46c1653b1cacc79cde91d6534da7ae9517d")
10575 (revision "1"))
10576 (package
10577 (name "emacs-mu4e-patch")
10578 (version (git-version "0.1.0" revision commit))
10579 (source (origin
10580 (method git-fetch)
10581 (uri (git-reference
10582 (url "https://github.com/seanfarley/mu4e-patch")
10583 (commit commit)))
10584 (file-name (git-file-name name version))
10585 (sha256
10586 (base32
10587 "10lzf3b70pk6rzdrgx0ww0gc94v0ydh9zj1gbsa20xw27ds7hmfn"))))
10588 (build-system emacs-build-system)
10589 (propagated-inputs
10590 `(("mu" ,mu)))
10591 (home-page "https://github.com/seanfarley/mu4e-patch")
10592 (synopsis "Colorize patch-like emails in mu4e")
10593 (description
10594 "Extension for mu4e to colorize patch-like emails with diff-mode.
10595 This is based on Frank Terbeck's @code{gnus-article-treat-patch.el} but has
10596 been adapted to work with mu4e.")
10597 (license license:gpl3+))))
10598
10599 (define-public emacs-pretty-mode
10600 (package
10601 (name "emacs-pretty-mode")
10602 (version "2.0.3")
10603 (source
10604 (origin
10605 (method git-fetch)
10606 (uri (git-reference
10607 (url "https://github.com/akatov/pretty-mode/")
10608 (commit version)))
10609 (file-name (git-file-name name version))
10610 (sha256
10611 (base32
10612 "013fig9i4fyx16krp2vfv953p3rwdzr38zs6i50af4pqz4vrcfvh"))))
10613 (build-system emacs-build-system)
10614 (home-page "https://github.com/akatov/pretty-mode")
10615 (synopsis "Redisplay parts of the buffer as Unicode symbols")
10616 (description
10617 "Emacs minor mode for redisplaying parts of the buffer as pretty symbols.")
10618 (license license:gpl3+)))
10619
10620 (define-public emacs-yasnippet
10621 (package
10622 (name "emacs-yasnippet")
10623 (version "0.14.0")
10624 (source
10625 (origin
10626 (method git-fetch)
10627 (uri (git-reference
10628 (url "https://github.com/joaotavora/yasnippet")
10629 (commit version)))
10630 (file-name (git-file-name name version))
10631 (sha256
10632 (base32 "0via9dzw8m5lzymg1h78xkwjssh39zr3g6ccyamlf1rjzjsyxknv"))))
10633 (build-system emacs-build-system)
10634 (arguments
10635 `(#:tests? #t
10636 #:test-command '("emacs" "--batch"
10637 "-l" "yasnippet-tests.el"
10638 "-f" "ert-run-tests-batch-and-exit")
10639 #:phases
10640 (modify-phases %standard-phases
10641 ;; Set HOME, otherwise test-rebindings fails.
10642 (add-before 'check 'set-home
10643 (lambda _
10644 (setenv "HOME" (getcwd))
10645 #t)))))
10646 (home-page "https://github.com/joaotavora/yasnippet")
10647 (synopsis "Yet another snippet extension for Emacs")
10648 (description "YASnippet is a template system for Emacs. It allows you to
10649 type an abbreviation and automatically expand it into function templates.")
10650 (license license:gpl3+)))
10651
10652 (define-public emacs-yasnippet-snippets
10653 (package
10654 (name "emacs-yasnippet-snippets")
10655 (version "0.23")
10656 (source
10657 (origin
10658 (method git-fetch)
10659 (uri (git-reference
10660 (url "https://github.com/AndreaCrotti/yasnippet-snippets")
10661 (commit version)))
10662 (file-name (git-file-name name version))
10663 (sha256
10664 (base32 "18pcnjnqvcky6i49p38vy3ms5xiisn27vy47pc3vsgr3r2n87mqb"))))
10665 (build-system trivial-build-system)
10666 (arguments
10667 `(#:modules ((guix build utils))
10668 #:builder
10669 (begin
10670 (use-modules (guix build utils))
10671 (let* ((source (assoc-ref %build-inputs "source"))
10672 (out (assoc-ref %outputs "out"))
10673 (snippet-dir
10674 (string-append out "/share/emacs/yasnippet-snippets/")))
10675 (with-directory-excursion source
10676 (mkdir-p snippet-dir)
10677 (copy-recursively "snippets" snippet-dir)))
10678 #t)))
10679 (home-page "https://github.com/AndreaCrotti/yasnippet-snippets")
10680 (synopsis "Collection of YASnippet snippets for many languages")
10681 (description
10682 "Provides Andrea Crotti's collection of YASnippet snippets. After installation,
10683 the snippets will be in \"~/.guix-profile/share/emacs/yasnippet-snippets/\".
10684 To make YASnippet aware of these snippets, add the above directory to
10685 @code{yas-snippet-dirs}.")
10686 (license license:gpl3+)))
10687
10688 (define-public emacs-helm-c-yasnippet
10689 (let ((commit "65ca732b510bfc31636708aebcfe4d2d845b59b0")
10690 (revision "1"))
10691 (package
10692 (name "emacs-helm-c-yasnippet")
10693 (version (string-append "0.6.7" "-" revision "."
10694 (string-take commit 7)))
10695 (source (origin
10696 (method git-fetch)
10697 (uri (git-reference
10698 (url "https://github.com/emacs-jp/helm-c-yasnippet")
10699 (commit commit)))
10700 (file-name (git-file-name name version))
10701 (sha256
10702 (base32
10703 "1cbafjqlzxbg19xfdqsinsh7afq58gkf44rsg1qxfgm8g6zhr7f8"))))
10704 (build-system emacs-build-system)
10705 (propagated-inputs
10706 `(("emacs-helm" ,emacs-helm)
10707 ("emacs-yasnippet" ,emacs-yasnippet)))
10708 (home-page "https://github.com/emacs-jp/helm-c-yasnippet")
10709 (synopsis "Helm integration for Yasnippet")
10710 (description "This Emacs library provides Helm interface for
10711 Yasnippet.")
10712 (license license:gpl2+))))
10713
10714 (define-public emacs-helm-system-packages
10715 (package
10716 (name "emacs-helm-system-packages")
10717 (version "1.10.2")
10718 (source (origin
10719 (method git-fetch)
10720 (uri (git-reference
10721 (url "https://github.com/emacs-helm/helm-system-packages")
10722 (commit (string-append "v" version))))
10723 (file-name (git-file-name name version))
10724 (sha256
10725 (base32
10726 "13a8jpj4wwm0yjv8hnsizgjf8wi3r2ap87lyvw7g4c7snp2dydwa"))))
10727 (build-system emacs-build-system)
10728 (inputs
10729 `(("recutils" ,recutils)))
10730 (propagated-inputs
10731 `(("emacs-helm" ,emacs-helm)))
10732 (arguments
10733 `(#:phases
10734 (modify-phases %standard-phases
10735 (add-after 'unpack 'configure
10736 (lambda* (#:key inputs outputs #:allow-other-keys)
10737 (let ((recutils (assoc-ref inputs "recutils")))
10738 ;; Specify the absolute file names of the various
10739 ;; programs so that everything works out-of-the-box.
10740 (substitute* "helm-system-packages-guix.el"
10741 (("recsel") (string-append recutils "/bin/recsel")))))))))
10742 (home-page "https://github.com/emacs-helm/helm-system-packages")
10743 (synopsis "Helm System Packages is an interface to your package manager")
10744 (description "List all available packages in Helm (with installed
10745 packages displayed in their own respective face). Fuzzy-search, mark and
10746 execute the desired action over any selections of packages: Install,
10747 uninstall, display packages details (in Org Mode) or insert details at point,
10748 find files owned by packages... And much more, including performing all the
10749 above over the network.")
10750 (license license:gpl3+)))
10751
10752 (define-public emacs-helm-org-rifle
10753 (package
10754 (name "emacs-helm-org-rifle")
10755 (version "1.7.0")
10756 (source
10757 (origin
10758 (method git-fetch)
10759 (uri (git-reference
10760 (url "https://github.com/alphapapa/helm-org-rifle")
10761 (commit version)))
10762 (file-name (git-file-name name version))
10763 (sha256
10764 (base32
10765 "058zvh7cdall7dl3xay9ibcjvs13fbqp8fli3lz980pinmsds3r2"))))
10766 (build-system emacs-build-system)
10767 (propagated-inputs
10768 `(("emacs-dash" ,emacs-dash)
10769 ("emacs-f" ,emacs-f)
10770 ("emacs-helm" ,emacs-helm)
10771 ("emacs-org" ,emacs-org)
10772 ("emacs-s" ,emacs-s)))
10773 (home-page "https://github.com/alphapapa/helm-org-rifle")
10774 (synopsis "Rifle through Org files")
10775 (description "This package searches both headings and contents of entries
10776 in Org buffers and displays matching entries.")
10777 (license license:gpl3+)))
10778
10779 (define-public emacs-dired-git-info
10780 ;; Upstream has no proper release. The base version is extracted from the
10781 ;; "Version" keyword in the main file.
10782 (let ((commit "91d57e3a4c5104c66a3abc18e281ee55e8979176")
10783 (revision "0"))
10784 (package
10785 (name "emacs-dired-git-info")
10786 (version (git-version "0.3.1" revision commit))
10787 (source
10788 (origin
10789 (method git-fetch)
10790 (uri
10791 (git-reference
10792 (url "https://github.com/clemera/dired-git-info")
10793 (commit commit)))
10794 (file-name (git-file-name name version))
10795 (sha256
10796 (base32 "1dr4iv95s4barxxj56znqkl9z0lg5jw731jmjr01s6vn8ar69gik"))))
10797 (build-system emacs-build-system)
10798 (home-page "https://github.com/clemera/dired-git-info/")
10799 (synopsis "Show git info in Emacs Dired")
10800 (description "This Emacs package provides a minor mode which shows git
10801 information inside the Dired buffer.")
10802 (license license:gpl3+))))
10803
10804 (define-public emacs-dired-toggle-sudo
10805 (let ((commit "13bbe52c54893f5aa3e56228450ffdd0c9e1d169")
10806 (revision "0"))
10807 (package
10808 (name "emacs-dired-toggle-sudo")
10809 (version (git-version "1.0" revision commit))
10810 (source
10811 (origin
10812 (method git-fetch)
10813 (uri (git-reference
10814 (url "https://github.com/renard/dired-toggle-sudo")
10815 (commit commit)))
10816 (file-name (git-file-name name version))
10817 (sha256
10818 (base32
10819 "1fw1pb1z6krqd1pfxxhr6rrfr9ckkcb0zsjzbjk0i2i1q5cg6car"))))
10820 (build-system emacs-build-system)
10821 (home-page "https://github.com/renard/dired-toggle-sudo")
10822 (synopsis "Browse directory with @code{sudo} privileges")
10823 (description "This package allows for the use of @code{dired} with
10824 @code{sudo} privileges.")
10825 (license license:wtfpl2))))
10826
10827 (define-public emacs-diredfl
10828 (package
10829 (name "emacs-diredfl")
10830 (version "0.4")
10831 (source
10832 (origin
10833 (method git-fetch)
10834 (uri
10835 (git-reference
10836 (url "https://github.com/purcell/diredfl")
10837 (commit version)))
10838 (file-name (git-file-name name version))
10839 (sha256
10840 (base32 "1zb2lz7rp58zqvpniqcsmqabi7nqg2d8bfd0hgmq68bn2hd25b5z"))))
10841 (build-system emacs-build-system)
10842 (home-page "https://github.com/purcell/diredfl/")
10843 (synopsis "Extra Emacs font lock rules for a more colourful Dired")
10844 (description "This library enables additional font locking in Dired mode.
10845 This is adapted from the extra font lock rules provided by Drew Adams' Dired+
10846 package.")
10847 (license license:gpl3+)))
10848
10849 (define-public emacs-memoize
10850 (package
10851 (name "emacs-memoize")
10852 (version "1.1")
10853 (source
10854 (origin
10855 (method git-fetch)
10856 (uri (git-reference
10857 (url "https://github.com/skeeto/emacs-memoize")
10858 (commit version)))
10859 (file-name (git-file-name name version))
10860 (sha256
10861 (base32 "04qgnlg4x6va7x364dhj1wbjmz8p5iq2vk36mn9198k2vxmijwzk"))))
10862 (build-system emacs-build-system)
10863 (arguments
10864 `(#:tests? #t
10865 #:test-command '("emacs" "--batch"
10866 "-l" "memoize-test.el"
10867 "-f" "ert-run-tests-batch-and-exit")))
10868 (home-page "https://github.com/skeeto/emacs-memoize")
10869 (synopsis "Emacs lisp memoization library")
10870 (description "@code{emacs-memoize} is an Emacs library for
10871 memoizing functions.")
10872 (license license:unlicense)))
10873
10874 (define-public emacs-linum-relative
10875 (package
10876 (name "emacs-linum-relative")
10877 (version "0.6")
10878 (source
10879 (origin
10880 (method git-fetch)
10881 (uri (git-reference
10882 (url "https://github.com/coldnew/linum-relative")
10883 (commit version)))
10884 (file-name (git-file-name name version))
10885 (sha256
10886 (base32 "0b3n1gk2w1p72x0zfdz9l70winq2fnjpjrgq0awxx730xk7ypp5n"))))
10887 (build-system emacs-build-system)
10888 (home-page "https://github.com/coldnew/linum-relative")
10889 (synopsis "Relative line numbering for Emacs")
10890 (description "@code{emacs-linum-relative} displays the relative line
10891 number on the left margin in Emacs.")
10892 (license license:gpl2+)))
10893
10894 (define-public emacs-idle-highlight
10895 (package
10896 (name "emacs-idle-highlight")
10897 (version "1.1.3")
10898 (source
10899 (origin
10900 (method git-fetch)
10901 (uri (git-reference
10902 (url "https://github.com/nonsequitur/idle-highlight-mode")
10903 (commit version)))
10904 (file-name (git-file-name name version))
10905 (sha256
10906 (base32 "0x4w1ksrw7dicl84zpf4d4scg672dyan9g95jkn6zvri0lr8xciv"))))
10907 (build-system emacs-build-system)
10908 (home-page "https://www.emacswiki.org/emacs/IdleHighlight")
10909 (synopsis "Highlights all occurrences of the word the point is on")
10910 (description
10911 "This Emacs package provides @code{idle-highlight-mode} that sets
10912 an idle timer to highlight all occurrences in the buffer of the word under
10913 the point.")
10914 (license license:gpl3+)))
10915
10916 (define-public emacs-ox-twbs
10917 (package
10918 (name "emacs-ox-twbs")
10919 (version "1.1.1")
10920 (source
10921 (origin
10922 (method git-fetch)
10923 (uri (git-reference
10924 (url "https://github.com/marsmining/ox-twbs")
10925 (commit (string-append "v" version))))
10926 (file-name (git-file-name name version))
10927 (sha256
10928 (base32 "0kd45p8y7ykadmai4jn1x1pgpafyqggwb1ccbjzalxw4k9wmd45f"))))
10929 (build-system emacs-build-system)
10930 (home-page "https://github.com/marsmining/ox-twbs")
10931 (synopsis "Export org-mode docs as HTML compatible with Twitter Bootstrap")
10932 (description
10933 "This Emacs package outputs your org-mode docs with a simple, clean and
10934 modern look. It implements a new HTML back-end for exporting org-mode docs as
10935 HTML compatible with Twitter Bootstrap. By default, HTML is exported with
10936 jQuery and Bootstrap resources included via osscdn.")
10937 (license license:gpl3+)))
10938
10939 (define-public emacs-highlight-sexp
10940 (package
10941 (name "emacs-highlight-sexp")
10942 (version "1.0")
10943 (source
10944 (origin
10945 (method git-fetch)
10946 (uri (git-reference
10947 (url "https://github.com/daimrod/highlight-sexp")
10948 (commit (string-append "v" version))))
10949 (file-name (git-file-name name version))
10950 (sha256
10951 (base32 "12cyk2q5g6p4ac2hykw1cag7dp1prjjnck5f7nalwwaklmy62y79"))))
10952 (build-system emacs-build-system)
10953 (home-page "https://github.com/daimrod/highlight-sexp")
10954 (synopsis "Minor mode that highlights the s-exp at the current position")
10955 (description
10956 "This Emacs package highlights the s-exp at the current position.")
10957 (license license:gpl3+)))
10958
10959 (define-public emacs-highlight-stages
10960 (let ((commit "29cbc5b78261916da042ddb107420083da49b271")
10961 (revision "1"))
10962 (package
10963 (name "emacs-highlight-stages")
10964 (version (string-append "1.1.0" "-" revision "." (string-take commit 7)))
10965 (source
10966 (origin
10967 (method git-fetch)
10968 (uri (git-reference
10969 (url "https://github.com/zk-phi/highlight-stages")
10970 (commit commit)))
10971 (file-name (git-file-name name version))
10972 (sha256
10973 (base32
10974 "0r6nbcrr0dqpgm8dir8ahzjy7rw4nrac48byamzrq96r7ajlxlv0"))
10975 (patches
10976 (search-patches "emacs-highlight-stages-add-gexp.patch"))))
10977 (build-system emacs-build-system)
10978 (home-page "https://github.com/wigust/highlight-stages")
10979 (synopsis "Minor mode that highlights (quasi-quoted) expressions")
10980 (description "@code{highlight-stages} provides an Emacs minor mode that
10981 highlights quasi-quoted expressions.")
10982 (license license:gpl3+))))
10983
10984 (define-public emacspeak
10985 (package
10986 (name "emacspeak")
10987 (version "52.0")
10988 (source
10989 (origin
10990 (method url-fetch)
10991 (uri (string-append
10992 "https://github.com/tvraman/emacspeak/releases/download/"
10993 version "/emacspeak-" version ".tar.bz2"))
10994 (sha256
10995 (base32 "0x5b0s38r5ih2lk7f5hasi9arrgxlmmq5jaddadbxi8in2gw2jzl"))))
10996 (build-system gnu-build-system)
10997 (arguments
10998 '(#:make-flags (list (string-append "prefix="
10999 (assoc-ref %outputs "out")))
11000 #:phases
11001 (modify-phases %standard-phases
11002 (add-after 'unpack 'delete-broken-symlink
11003 (lambda _
11004 (delete-file "lisp/sudoku.el")
11005 #t))
11006 (replace 'configure
11007 (lambda _
11008 (setenv "SHELL" (which "sh"))
11009 ;; Configure Emacspeak according to etc/install.org.
11010 (invoke "make" "config")))
11011 (add-after 'build 'build-espeak
11012 (lambda _
11013 (invoke "make" "espeak")))
11014 (replace 'install
11015 (lambda* (#:key inputs outputs #:allow-other-keys)
11016 (let* ((out (assoc-ref outputs "out"))
11017 (bin (string-append out "/bin"))
11018 (lisp (string-append out "/share/emacs/site-lisp/emacspeak"))
11019 (info (string-append out "/share/info"))
11020 (emacs (string-append (assoc-ref inputs "emacs")
11021 "/bin/emacs")))
11022 ;; According to etc/install.org, the Emacspeak directory should
11023 ;; be copied to its installation destination.
11024 (for-each
11025 (lambda (file)
11026 (copy-recursively file (string-append lisp "/" file)))
11027 '("etc" "info" "js" "lisp" "media" "servers" "sounds"
11028 "stumpwm" "xsl"))
11029 ;; Make sure emacspeak is loaded from the correct directory.
11030 (substitute* "run"
11031 (("\\./lisp/emacspeak-setup.el")
11032 (string-append lisp "/lisp/emacspeak-setup.el")))
11033 ;; Install the convenient startup script.
11034 (mkdir-p bin)
11035 (copy-file "run" (string-append bin "/emacspeak")))
11036 #t))
11037 (add-after 'install 'wrap-program
11038 (lambda* (#:key inputs outputs #:allow-other-keys)
11039 (let* ((out (assoc-ref outputs "out"))
11040 (emacspeak (string-append out "/bin/emacspeak"))
11041 (espeak (string-append (assoc-ref inputs "espeak")
11042 "/bin/espeak")))
11043 ;; The environment variable DTK_PROGRAM tells emacspeak what
11044 ;; program to use for speech.
11045 (wrap-program emacspeak
11046 `("DTK_PROGRAM" ":" prefix (,espeak)))
11047 #t))))
11048 #:tests? #f)) ; no check target
11049 (inputs
11050 `(("emacs" ,emacs)
11051 ("espeak" ,espeak-ng)
11052 ("perl" ,perl)
11053 ("tcl" ,tcl)
11054 ("tclx" ,tclx)))
11055 (home-page "http://emacspeak.sourceforge.net")
11056 (synopsis "Audio desktop interface for Emacs")
11057 (description
11058 "Emacspeak is a speech interface that allows visually impaired users to
11059 interact independently and efficiently with the computer. Audio
11060 formatting---a technique pioneered by AsTeR---and full support for W3C's Aural
11061 CSS (ACSS) allows Emacspeak to produce rich aural presentations of electronic
11062 information. By seamlessly blending all aspects of the Internet such as
11063 Web-surfing and messaging, Emacspeak speech-enables local and remote
11064 information via a consistent and well-integrated user interface.")
11065 (license license:gpl2+)))
11066
11067 (define-public emacs-adaptive-wrap
11068 (package
11069 (name "emacs-adaptive-wrap")
11070 (version "0.7")
11071 (source
11072 (origin
11073 (method url-fetch)
11074 (uri (string-append "https://elpa.gnu.org/packages/"
11075 "adaptive-wrap-" version ".el"))
11076 (sha256
11077 (base32 "10fb8gzvkbnrgzv28n1rczs03dvapr7rvi0kd73j6yf1zg2iz6qp"))))
11078 (build-system emacs-build-system)
11079 (home-page "https://elpa.gnu.org/packages/adaptive-wrap.html")
11080 (synopsis "Smart line-wrapping with wrap-prefix")
11081 (description
11082 "This Emacs package provides the @code{adaptive-wrap-prefix-mode}
11083 minor mode which sets the wrap-prefix property on the fly so that
11084 single-long-line paragraphs get word-wrapped in a way similar to what
11085 you'd get with @kbd{M-q} using @code{adaptive-fill-mode}, but without
11086 actually changing the buffer's text.")
11087 (license license:gpl3+)))
11088
11089 (define-public emacs-diff-hl
11090 (package
11091 (name "emacs-diff-hl")
11092 (version "1.8.7")
11093 (source
11094 (origin
11095 (method git-fetch)
11096 (uri (git-reference
11097 (url "https://github.com/dgutov/diff-hl")
11098 (commit version)))
11099 (file-name (git-file-name name version))
11100 (sha256
11101 (base32 "0i7x6qgr3nydcwhw72sbc8z9x9dfhgkf0dqj9nakvx36vn1bblbq"))))
11102 (build-system emacs-build-system)
11103 (home-page "https://github.com/dgutov/diff-hl")
11104 (synopsis
11105 "Highlight uncommitted changes using VC")
11106 (description
11107 "@code{diff-hl-mode} highlights uncommitted changes on the side of the
11108 window (using the fringe, by default), allows you to jump between
11109 the hunks and revert them selectively.")
11110 (license license:gpl3+)))
11111
11112 (define-public emacs-diminish
11113 (package
11114 (name "emacs-diminish")
11115 (version "0.45")
11116 (source
11117 (origin
11118 (method git-fetch)
11119 (uri (git-reference
11120 (url "https://github.com/myrjola/diminish.el")
11121 (commit (string-append "v" version))))
11122 (file-name (git-file-name name version))
11123 (sha256
11124 (base32 "0qpgfgp8hrzz4vdifxq8h25n0a0jlzgf7aa1fpy6r0080v5rqbb6"))))
11125 (build-system emacs-build-system)
11126 (home-page "https://github.com/myrjola/diminish.el")
11127 (synopsis "Diminish minor modes with no modeline display")
11128 (description "@code{emacs-diminish} implements hiding or
11129 abbreviation of the mode line displays (lighters) of minor modes.")
11130 (license license:gpl2+)))
11131
11132 (define-public emacs-use-package
11133 (package
11134 (name "emacs-use-package")
11135 (version "2.4.1")
11136 (source (origin
11137 (method git-fetch)
11138 (uri (git-reference
11139 (url "https://github.com/jwiegley/use-package")
11140 (commit version)))
11141 (file-name (git-file-name name version))
11142 (sha256
11143 (base32
11144 "088kl3bml0rs5bkfymgzr15ram9qvy66h1kaisrbkynh0yxvf8g9"))))
11145 (build-system emacs-build-system)
11146 (native-inputs
11147 `(("texinfo" ,texinfo)))
11148 (propagated-inputs
11149 `(("emacs-diminish" ,emacs-diminish)))
11150 (arguments
11151 `(#:tests? #t
11152 #:test-command '("emacs" "--batch"
11153 "-l" "use-package-tests.el"
11154 "-f" "ert-run-tests-batch-and-exit")
11155 #:phases
11156 (modify-phases %standard-phases
11157 (add-before 'install 'install-manual
11158 (lambda* (#:key outputs #:allow-other-keys)
11159 (let* ((out (assoc-ref outputs "out"))
11160 (info-dir (string-append out "/share/info")))
11161 (mkdir-p info-dir)
11162 (install-file "use-package.info" info-dir)
11163 #t)))
11164 (add-before 'install-manual 'build-manual
11165 (lambda _
11166 (invoke "makeinfo" "use-package.texi")
11167 #t)))))
11168 (home-page "https://github.com/jwiegley/use-package")
11169 (synopsis "Declaration for simplifying your .emacs")
11170 (description "The use-package macro allows you to isolate package
11171 configuration in your @file{.emacs} file in a way that is both
11172 performance-oriented and tidy.")
11173 (license license:gpl2+)))
11174
11175 (define-public emacs-leaf
11176 (package
11177 (name "emacs-leaf")
11178 (version "4.3.2")
11179 (source
11180 (origin
11181 (method url-fetch)
11182 (uri (string-append "https://elpa.gnu.org/packages/"
11183 "leaf-" version ".tar"))
11184 (sha256
11185 (base32 "190sfnnii9jnj8amjkdabd8w9k2xyalhg4h488a5gzjxdzz2s6zi"))))
11186 (build-system emacs-build-system)
11187 (home-page "https://github.com/conao3/leaf.el")
11188 (synopsis "Simplify your init.el configuration, extended use-package")
11189 (description
11190 "This package provides macros that allows you to declaratively configure
11191 settings typical of an Elisp package with various keywords. The syntax is
11192 similar, but not identical to use-package -- overall, leaf aims at a cleaner
11193 and more predictable implementation.")
11194 (license license:agpl3+)))
11195
11196 (define-public emacs-strace-mode
11197 (let* ((commit "6a69b4b06db6797af56f33eda5cb28af94e59f11")
11198 (revision "1"))
11199 (package
11200 (name "emacs-strace-mode")
11201 (version (string-append "0.0.2-" revision "." (string-take commit 7)))
11202 (source (origin
11203 (method git-fetch)
11204 (uri (git-reference
11205 (url "https://github.com/pkmoore/strace-mode")
11206 (commit commit)))
11207 (file-name (git-file-name name version))
11208 (sha256
11209 (base32
11210 "1lbk2kzdznf2bkfazizfbimaxxzfzv00lrz1ran9dc2zqbc0bj9f"))))
11211 (build-system emacs-build-system)
11212 (home-page "https://github.com/pkmoore/strace-mode")
11213 (synopsis "Emacs major mode to highlight strace outputs")
11214 (description "@code{emacs-strace-mode} provides an Emacs major mode
11215 highlighting strace outputs.")
11216 (license license:gpl3+))))
11217
11218 (define-public emacs-default-encrypt
11219 (package
11220 (name "emacs-default-encrypt")
11221 (version "4.4")
11222 (source
11223 (origin
11224 (method url-fetch)
11225 (uri (string-append
11226 "https://informationelle-selbstbestimmung-im-internet.de"
11227 "/emacs/jl-encrypt" version "/jl-encrypt.el"))
11228 (file-name (string-append "jl-encrypt-" version ".el"))
11229 (sha256
11230 (base32
11231 "0w9ggz075j1zwg7d0rv9k8238g600p7czfnnsnawswi7yps2xk78"))))
11232 (build-system emacs-build-system)
11233 (home-page
11234 "https://informationelle-selbstbestimmung-im-internet.de/Emacs.html")
11235 (synopsis "Automatically encrypt or sign Gnus messages in Emacs")
11236 (description
11237 "DefaultEncrypt is designed to be used with Gnus in Emacs. It
11238 automatically encrypts messages that you send (e.g., email) when public keys
11239 for all recipients are available, and it protects you from accidentally
11240 sending un-encrypted messages. It can also be configured to automatically
11241 sign messages that you send. For details and instructions on how to use
11242 DefaultEncrypt, please refer to the home page or read the comments in the
11243 source file, @file{jl-encrypt.el}.")
11244 (license license:gpl3+)))
11245
11246 (define-public emacs-extend-smime
11247 (package
11248 (name "emacs-extend-smime")
11249 (version "3.3")
11250 (source
11251 (origin
11252 (method url-fetch)
11253 (uri (string-append
11254 "https://informationelle-selbstbestimmung-im-internet.de"
11255 "/emacs/jl-smime" version "/jl-smime.el"))
11256 (file-name (string-append "jl-smime-" version ".el"))
11257 (sha256
11258 (base32
11259 "1iv8s2wjmv3v5qfwlcy9hvvrmxxvp3f8m1krlr789q7bbh35jynh"))))
11260 (build-system emacs-build-system)
11261 (home-page
11262 "https://informationelle-selbstbestimmung-im-internet.de/Emacs.html")
11263 (synopsis "Improved S/MIME support for Gnus in Emacs")
11264 (propagated-inputs
11265 `(("emacs-default-encrypt" ,emacs-default-encrypt)))
11266 (description
11267 ;; TRANSLATORS: ExtendSMIME, DefaultEncrypt, and emacs-default-encrypt
11268 ;; should not be translated. The name "emacs-default-encrypt" refers to
11269 ;; the Guix package that provides DefaultEncrypt.
11270 "ExtendSMIME is designed to be used with Gnus in Emacs. It enhances
11271 DefaultEncrypt (emacs-default-encrypt) to support S/MIME (Secure/Multipurpose
11272 Internet Mail Extensions) via LDAP (Lightweight Directory Access Protocol).
11273 Before a message (e.g., email) is sent, ExtendSMIME searches for missing
11274 certificates via LDAP and imports them into @code{gpgsm}. When certificates
11275 for all recipients are available, DefaultEncrypt automatically encrypts the
11276 message. For details and instructions on how to use ExtendSMIME, please refer
11277 to the home page or read the comments in the source file,
11278 @file{jl-smime.el}.")
11279 (license license:gpl3+)))
11280
11281 (define-public emacs-htmlize
11282 (package
11283 (name "emacs-htmlize")
11284 (version "1.55")
11285 (source
11286 (origin
11287 (method git-fetch)
11288 (uri (git-reference
11289 (url "https://github.com/hniksic/emacs-htmlize")
11290 (commit (string-append "release/" version))))
11291 (file-name (git-file-name name version))
11292 (sha256
11293 (base32 "0gi3xshscpa53qrj8yplfsqahcilc2ybcc2p7gnh5nbnf2n1n97x"))))
11294 (build-system emacs-build-system)
11295 (home-page "https://github.com/hniksic/emacs-htmlize")
11296 (synopsis "Convert buffer text and decorations to HTML")
11297 (description "@code{emacs-htmlize} converts the buffer text and
11298 the associated decorations to HTML. Output to CSS, inline CSS and
11299 fonts is supported.")
11300 (license license:gpl2+)))
11301
11302 (define-public emacs-xmlgen
11303 (package
11304 (name "emacs-xmlgen")
11305 (version "0.5")
11306 (source
11307 (origin
11308 (method git-fetch)
11309 (uri (git-reference
11310 (url "https://github.com/philjackson/xmlgen")
11311 (commit version)))
11312 (file-name (git-file-name name version))
11313 (sha256
11314 (base32 "096i29v0badx0a6339h9ckdz78zj59gbjdp7vj7vhkq9d830392s"))))
11315 (build-system emacs-build-system)
11316 (arguments
11317 `(#:tests? #t
11318 #:test-command '("emacs" "--batch"
11319 "-l" "xmlgen-test.el"
11320 "-f" "ert-run-tests-batch-and-exit")))
11321 (home-page "https://github.com/philjackson/xmlgen")
11322 (synopsis "S-expression to XML domain specific language (DSL) in
11323 Emacs Lisp")
11324 (description "@code{emacs-xmlgen} provides S-expression to XML
11325 conversion for Emacs Lisp.")
11326 (license license:gpl2+)))
11327
11328 (define-public emacs-cdlatex
11329 (package
11330 (name "emacs-cdlatex")
11331 (version "4.7")
11332 (source
11333 (origin
11334 (method git-fetch)
11335 (uri (git-reference
11336 (url "https://github.com/cdominik/cdlatex")
11337 (commit version)))
11338 (file-name (git-file-name name version))
11339 (sha256
11340 (base32 "1jj9vmhc4s3ych08bjm1c2xwi81z1p20rj7bvxrgvb5aga2ghi9d"))))
11341 (build-system emacs-build-system)
11342 (propagated-inputs
11343 `(("emacs-auctex" ,emacs-auctex)))
11344 (home-page "https://github.com/cdominik/cdlatex")
11345 (synopsis "Fast Emacs input methods for LaTeX environments and
11346 math")
11347 (description "CDLaTeX is an Emacs minor mode supporting fast
11348 insertion of environment templates and math in LaTeX. Similar
11349 commands are also offered as part of the AUCTeX package, but it is not
11350 the same - CDLaTeX focuses on speediness for inserting LaTeX
11351 constructs.")
11352 (license license:gpl3+)))
11353
11354 (define-public emacs-cnfonts
11355 (package
11356 (name "emacs-cnfonts")
11357 (version "0.9.1")
11358 (source
11359 (origin
11360 (method git-fetch)
11361 (uri (git-reference
11362 (url "https://github.com/tumashu/cnfonts")
11363 (commit (string-append "v" version))))
11364 (file-name (git-file-name name version))
11365 (sha256
11366 (base32 "11d44lf0m0kbzq1mvyqkl4aprys0xqaarp08nij57xnynin1rynx"))))
11367 (build-system emacs-build-system)
11368 (home-page "https://github.com/tumashu/cnfonts")
11369 (synopsis "Emacs Chinese fonts setup tool")
11370 (description "cnfonts is a Chinese fonts setup tool, allowing for easy
11371 configuration of Chinese fonts.")
11372 (license license:gpl2+)))
11373
11374 (define-public emacs-csharp-mode
11375 (package
11376 (name "emacs-csharp-mode")
11377 (version "0.10.0")
11378 (source
11379 (origin
11380 (method git-fetch)
11381 (uri (git-reference
11382 (url "https://github.com/josteink/csharp-mode")
11383 (commit (string-append "v" version))))
11384 (file-name (git-file-name name version))
11385 (sha256
11386 (base32 "0vwkbla2gkfa9dzxfvrvr7hd2z16769iwbycl7k6l701dnwli1fw"))))
11387 (build-system emacs-build-system)
11388 (home-page "https://github.com/josteink/csharp-mode")
11389 (synopsis "Major mode for C# code")
11390 (description
11391 "This is a C# editing mode for Emacs, based on CC mode. It handles
11392 syntax coloring, indentation, insertion of matched pairs of curly braces and
11393 documentation generation. In addition, it provides menu-based navigation
11394 using Imenu, and Compilation mode support for MSBuild, devenv and xbuild.")
11395 ;; XXX: Project switched to GPL3+ after 0.10.0 release.
11396 (license license:gpl2+)))
11397
11398 (define-public emacs-php-mode
11399 (package
11400 (name "emacs-php-mode")
11401 (version "1.23.0")
11402 (source
11403 (origin
11404 (method git-fetch)
11405 (uri (git-reference
11406 (url "https://github.com/ejmr/php-mode")
11407 (commit (string-append "v" version))))
11408 (file-name (git-file-name name version))
11409 (sha256
11410 (base32 "0wnkcxg6djy4jvxhshiy1iw6b5cf79pjwjhfd1a060cavhfm4v5c"))))
11411 (build-system emacs-build-system)
11412 (home-page "https://github.com/ejmr/php-mode")
11413 (synopsis "Major mode for editing PHP code")
11414 (description
11415 "PHP mode is a major mode for editing PHP source code. It's an extension
11416 of C mode; thus it inherits all C mode's navigation functionality. But it
11417 colors according to the PHP grammar and indents according to the PEAR coding
11418 guidelines. It also includes a couple handy IDE-type features such as
11419 documentation search and a source and class browser.")
11420 (license license:gpl3+)))
11421
11422 (define-public emacs-pos-tip
11423 (package
11424 (name "emacs-pos-tip")
11425 (version "0.4.6")
11426 (source
11427 (origin
11428 (method git-fetch)
11429 (uri (git-reference
11430 (url "https://github.com/pitkali/pos-tip")
11431 (commit version)))
11432 (file-name (git-file-name name version))
11433 (sha256
11434 (base32 "0w8bnspnk871qndp18hs0wk4x9x31xr9rwbvf5dc8mcbnj29ch33"))))
11435 (build-system emacs-build-system)
11436 ;; The following functions and variables needed by emacs-pos-tip are
11437 ;; not included in emacs-minimal:
11438 ;; x-display-pixel-width, x-display-pixel-height, x-show-tip
11439 (arguments `(#:emacs ,emacs))
11440 (home-page "https://github.com/pitkali/pos-tip")
11441 (synopsis "Show tooltip at point")
11442 (description "The standard library tooltip.el provides a function for
11443 displaying a tooltip at the mouse position. However, locating a tooltip at an
11444 arbitrary buffer position in a window is not easy. Pos-tip provides such a
11445 function to be used by other frontend programs.")
11446 (license license:gpl2+)))
11447
11448 (define-public emacs-pyim-basedict
11449 (package
11450 (name "emacs-pyim-basedict")
11451 (version "0.3.1")
11452 (source
11453 (origin
11454 (method git-fetch)
11455 (uri (git-reference
11456 (url "https://github.com/tumashu/pyim-basedict")
11457 (commit (string-append "v" version))))
11458 (file-name (git-file-name name version))
11459 (sha256
11460 (base32 "0576r8ap9gp91ycjf1d47pn13kxp0f9fysn09zlq44hr0s1y2y5d"))))
11461 (build-system emacs-build-system)
11462 (home-page "https://github.com/tumashu/pyim-basedict")
11463 (synopsis "Input method dictionary of pyim")
11464 (description "Pyim-basedict is the default pinyin input method dictionary,
11465 containing words from the Rime project.")
11466 (license license:gpl2+)))
11467
11468 (define-public emacs-pyim
11469 (package
11470 (name "emacs-pyim")
11471 (version "1.8")
11472 (source
11473 (origin
11474 (method git-fetch)
11475 (uri (git-reference
11476 (url "https://github.com/tumashu/pyim")
11477 (commit (string-append "v" version))))
11478 (file-name (git-file-name name version))
11479 (sha256
11480 (base32
11481 "16rma4cv7xgky0g3x4an27v30jdi6i1sqw43cl99zhkqvp43l3f9"))))
11482 (build-system emacs-build-system)
11483 (propagated-inputs
11484 `(("emacs-async" ,emacs-async)
11485 ("emacs-pyim-basedict" ,emacs-pyim-basedict)
11486 ("emacs-popup" ,emacs-popup)
11487 ("emacs-posframe" ,emacs-posframe)))
11488 (home-page "https://github.com/tumashu/pyim")
11489 (synopsis "Chinese input method")
11490 (description "Chinese input method which supports quanpin, shuangpin, wubi
11491 and cangjie.")
11492 (license license:gpl2+)))
11493
11494 (define-public emacs-posframe
11495 (package
11496 (name "emacs-posframe")
11497 (version "0.8.2")
11498 (source
11499 (origin
11500 (method url-fetch)
11501 (uri (string-append "https://elpa.gnu.org/packages/"
11502 "posframe-" version ".el"))
11503 (sha256
11504 (base32 "1yrk2bnlx5bpkjkzqialf0q4bdp9c5pipnvj3zsb5hbjni24x0yb"))))
11505 (build-system emacs-build-system)
11506 ;; emacs-minimal does not include the function font-info.
11507 (arguments
11508 `(#:emacs ,emacs))
11509 (home-page "https://github.com/tumashu/posframe")
11510 (synopsis "Pop a posframe (a child frame) at point")
11511 (description
11512 "Posframe can pop a posframe at point. A posframe is a child frame
11513 displayed within its root window's buffer. Posframe is fast and works well
11514 with CJK languages.")
11515 (license license:gpl3+)))
11516
11517 (define-public emacs-el2org
11518 (package
11519 (name "emacs-el2org")
11520 (version "0.6.0")
11521 (source
11522 (origin
11523 (method git-fetch)
11524 (uri (git-reference
11525 (url "https://github.com/tumashu/el2org")
11526 (commit (string-append "v" version))))
11527 (file-name (git-file-name name version))
11528 (sha256
11529 (base32 "0mzddqny6wpg1fv99xrvlv7rxmaifvmy5bvj4in4pldhm4cx4q1b"))))
11530 (build-system emacs-build-system)
11531 (home-page "https://github.com/tumashu/el2org")
11532 (synopsis "Convert Emacs-lisp file to org file")
11533 (description "El2org is a simple tool, which can convert Emacs-lisp file
11534 to org file, you can use this tool to write orgify commentary.")
11535 (license license:gpl2+)))
11536
11537 (define-public emacs-mustache
11538 (package
11539 (name "emacs-mustache")
11540 (version "0.23")
11541 (source
11542 (origin
11543 (method git-fetch)
11544 (uri (git-reference
11545 (url "https://github.com/Wilfred/mustache.el")
11546 (commit version)))
11547 (file-name (git-file-name name version))
11548 (sha256
11549 (base32 "1n2ymd92qpvsby6ms0l3kjhdzzc47rri2aiscc6bs07hm4mjpr9q"))))
11550 (build-system emacs-build-system)
11551 (propagated-inputs
11552 `(("emacs-dash" ,emacs-dash)
11553 ("emacs-ht" ,emacs-ht)
11554 ("emacs-s" ,emacs-s)))
11555 (home-page "https://github.com/Wilfred/mustache.el")
11556 (synopsis "Mustache templating library for Emacs")
11557 (description "Mustache templating library for Emacs, mustache is
11558 a simple web template system, which is described as a logic-less system
11559 because it lacks any explicit control flow statements, both looping and
11560 conditional evaluation can be achieved using section tags processing lists
11561 and lambdas.")
11562 (license license:gpl3+)))
11563
11564 (define-public emacs-org2web
11565 (package
11566 (name "emacs-org2web")
11567 (version "0.9.1")
11568 (source
11569 (origin
11570 (method git-fetch)
11571 (uri (git-reference
11572 (url "https://github.com/tumashu/org2web")
11573 (commit (string-append "v" version))))
11574 (file-name (git-file-name name version))
11575 (sha256
11576 (base32 "0wsvfn409a2ivbich8b8zqza78sprirg4bl7igx536ydqclmi0n7"))))
11577 (build-system emacs-build-system)
11578 (propagated-inputs
11579 `(("emacs-dash" ,emacs-dash)
11580 ("emacs-el2org" ,emacs-el2org)
11581 ("emacs-ht" ,emacs-ht)
11582 ("emacs-mustache" ,emacs-mustache)
11583 ("emacs-simple-httpd" ,emacs-simple-httpd)))
11584 (home-page "https://github.com/tumashu/org2web")
11585 (synopsis "Static site generator based on org-mode ")
11586 (description "Org2web is a static site generator based on org-mode,
11587 which code derived from Kelvin H's org-page.")
11588 (license license:gpl2+)))
11589
11590 (define-public emacs-xelb
11591 (package
11592 (name "emacs-xelb")
11593 (version "0.18")
11594 (source (origin
11595 (method url-fetch)
11596 (uri (string-append "https://elpa.gnu.org/packages/xelb-"
11597 version ".tar"))
11598 (sha256
11599 (base32
11600 "1fp5mzl63sh0h3ws4l5p4qgvi7ny8a3fj6k4dhqa98xgw2bx03v7"))))
11601 (build-system emacs-build-system)
11602 ;; The following functions and variables needed by emacs-xelb are
11603 ;; not included in emacs-minimal:
11604 ;; x-display-screens, x-keysym-table, x-alt-keysym, x-meta-keysym
11605 ;; x-hyper-keysym, x-super-keysym, libxml-parse-xml-region
11606 ;; x-display-pixel-width, x-display-pixel-height
11607 (arguments
11608 `(#:emacs ,emacs
11609 #:phases
11610 (modify-phases %standard-phases
11611 (add-after 'unpack 'regenerate-el-files
11612 (lambda* (#:key inputs #:allow-other-keys)
11613 (invoke "make"
11614 (string-append "PROTO_PATH="
11615 (assoc-ref inputs "xcb-proto")
11616 "/share/xcb")
11617 (string-append "EMACS_BIN="
11618 (assoc-ref inputs "emacs")
11619 "/bin/emacs -Q")))))))
11620 (native-inputs `(("xcb-proto" ,xcb-proto)))
11621 (home-page "https://github.com/ch11ng/xelb")
11622 (synopsis "X protocol Emacs Lisp binding")
11623 (description "@code{emacs-xelb} is a pure Emacs Lisp implementation of the
11624 X11 protocol based on the XML description files from the XCB project. It
11625 features an object-oriented API and permits a certain degree of concurrency.
11626 It should enable you to implement low-level X11 applications.")
11627 (license license:gpl3+)))
11628
11629 (define-public emacs-exwm
11630 (package
11631 (name "emacs-exwm")
11632 (version "0.24")
11633 (synopsis "Emacs X window manager")
11634 (source
11635 (origin
11636 (method url-fetch)
11637 (uri (string-append "https://elpa.gnu.org/packages/"
11638 "exwm-" version ".tar"))
11639 (sha256
11640 (base32 "0lj1a3cmbpf4h6x8k6x8cdm1qb51ca6filydnvi5zcda8zpl060s"))
11641 (patches
11642 ;; Patch fixing fullscreen view. Applied upstream as
11643 ;; edb930005b0ba83051ca8a59b493e9a3c8ef580a. It can be removed in
11644 ;; next release.
11645 (search-patches "emacs-exwm-fix-fullscreen-states.patch"))))
11646 (build-system emacs-build-system)
11647 (propagated-inputs
11648 `(("emacs-xelb" ,emacs-xelb)))
11649 (inputs
11650 `(("xhost" ,xhost)
11651 ("dbus" ,dbus)))
11652 ;; The following functions and variables needed by emacs-exwm are
11653 ;; not included in emacs-minimal:
11654 ;; scroll-bar-mode, fringe-mode
11655 ;; x-display-pixel-width, x-display-pixel-height
11656 (arguments
11657 `(#:emacs ,emacs
11658 #:phases
11659 (modify-phases %standard-phases
11660 (add-after 'build 'install-xsession
11661 (lambda* (#:key inputs outputs #:allow-other-keys)
11662 (let* ((out (assoc-ref outputs "out"))
11663 (xsessions (string-append out "/share/xsessions"))
11664 (bin (string-append out "/bin"))
11665 (exwm-executable (string-append bin "/exwm")))
11666 ;; Add a .desktop file to xsessions
11667 (mkdir-p xsessions)
11668 (mkdir-p bin)
11669 (make-desktop-entry-file
11670 (string-append xsessions "/exwm.desktop")
11671 #:name ,name
11672 #:comment ,synopsis
11673 #:exec exwm-executable
11674 #:try-exec exwm-executable)
11675 ;; Add a shell wrapper to bin
11676 (with-output-to-file exwm-executable
11677 (lambda _
11678 (format #t "#!~a ~@
11679 ~a +SI:localuser:$USER ~@
11680 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
11681 (string-append (assoc-ref inputs "bash") "/bin/sh")
11682 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
11683 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
11684 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
11685 '(cond
11686 ((file-exists-p "~/.exwm")
11687 (load-file "~/.exwm"))
11688 ((not (featurep 'exwm))
11689 (require 'exwm)
11690 (require 'exwm-config)
11691 (exwm-config-default)
11692 (message (concat "exwm configuration not found. "
11693 "Falling back to default configuration...")))))))
11694 (chmod exwm-executable #o555)
11695 #t))))))
11696 (home-page "https://github.com/ch11ng/exwm")
11697 (description
11698 "EXWM is a full-featured tiling X window manager for Emacs built on top
11699 of XELB.")
11700 (license license:gpl3+)))
11701
11702 (define-public emacs-xelb-no-x-toolkit
11703 (package
11704 (inherit emacs-xelb)
11705 (name "emacs-xelb-no-x-toolkit")
11706 (arguments
11707 (substitute-keyword-arguments (package-arguments emacs-xelb)
11708 ((#:emacs emacs) `,emacs-no-x-toolkit)))))
11709
11710 (define-public emacs-exwm-no-x-toolkit
11711 (package
11712 (inherit emacs-exwm)
11713 (name "emacs-exwm-no-x-toolkit")
11714 (synopsis "Emacs X window manager (without an X toolkit)")
11715 (propagated-inputs
11716 `(("emacs-xelb-no-x-toolkit" ,emacs-xelb-no-x-toolkit)))
11717 (arguments
11718 (substitute-keyword-arguments (package-arguments emacs-exwm)
11719 ((#:emacs emacs) `,emacs-no-x-toolkit)))))
11720
11721 (define-public emacs-switch-window
11722 (package
11723 (name "emacs-switch-window")
11724 (version "1.6.2")
11725 (source
11726 (origin
11727 (method git-fetch)
11728 (uri (git-reference
11729 (url "https://github.com/dimitri/switch-window")
11730 (commit (string-append "v" version))))
11731 (file-name (git-file-name name version))
11732 (sha256
11733 (base32
11734 "0rci96asgamr6qp6nkyr5vwrnslswjxcjd96yccy4aivh0g66yfg"))))
11735 (build-system emacs-build-system)
11736 (home-page "https://github.com/dimitri/switch-window")
11737 (synopsis "Emacs window switch tool")
11738 (description "Switch-window is an emacs window switch tool, which
11739 offer a visual way to choose a window to switch to, delete, split or
11740 other operations.")
11741 (license license:wtfpl2)))
11742
11743 (define-public emacs-exwm-x
11744 (package
11745 (name "emacs-exwm-x")
11746 (version "1.9.0")
11747 (synopsis "Derivative window manager based on EXWM")
11748 (source
11749 (origin
11750 (method git-fetch)
11751 (uri (git-reference
11752 (url "https://github.com/tumashu/exwm-x")
11753 (commit (string-append "v" version))))
11754 (file-name (git-file-name name version))
11755 (sha256
11756 (base32
11757 "03l3dl7s1qys1kkh40rm1sfx7axy1b8sf5f6nyksj9ps6d30p5i4"))))
11758 (build-system emacs-build-system)
11759 (propagated-inputs
11760 `(("emacs-counsel" ,emacs-counsel)
11761 ("emacs-exwm" ,emacs-exwm)
11762 ("emacs-switch-window" ,emacs-switch-window)
11763 ("emacs-use-package" ,emacs-use-package)))
11764 (inputs
11765 `(("xhost" ,xhost)
11766 ("dbus" ,dbus)))
11767 ;; Need emacs instead of emacs-minimal,
11768 ;; for emacs's bin path will be inserted into bin/exwm-x file.
11769 (arguments
11770 `(#:emacs ,emacs
11771 #:phases
11772 (modify-phases %standard-phases
11773 (add-after 'build 'install-xsession
11774 (lambda* (#:key inputs outputs #:allow-other-keys)
11775 (let* ((out (assoc-ref outputs "out"))
11776 (xsessions (string-append out "/share/xsessions"))
11777 (bin (string-append out "/bin"))
11778 (exwm-executable (string-append bin "/exwm-x")))
11779 ;; Add a .desktop file to xsessions
11780 (mkdir-p xsessions)
11781 (mkdir-p bin)
11782 (with-output-to-file
11783 (string-append xsessions "/exwm-x.desktop")
11784 (lambda _
11785 (format #t "[Desktop Entry]~@
11786 Name=~a~@
11787 Comment=~a~@
11788 Exec=~a~@
11789 TryExec=~@*~a~@
11790 Type=Application~%" ,name ,synopsis exwm-executable)))
11791 ;; Add a shell wrapper to bin
11792 (with-output-to-file exwm-executable
11793 (lambda _
11794 (format #t "#!~a ~@
11795 ~a +SI:localuser:$USER ~@
11796 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
11797 (string-append (assoc-ref inputs "bash") "/bin/sh")
11798 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
11799 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
11800 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
11801 '(require 'exwmx-loader))))
11802 (chmod exwm-executable #o555)
11803 #t))))))
11804 (home-page "https://github.com/tumashu/exwm-x")
11805 (description "EXWM-X is a derivative window manager based on EXWM, with focus
11806 on mouse-control.")
11807 (license license:gpl3+)))
11808
11809 (define-public emacs-gnugo
11810 (package
11811 (name "emacs-gnugo")
11812 (version "3.1.0")
11813 (source
11814 (origin
11815 (method url-fetch)
11816 (uri (string-append "https://elpa.gnu.org/packages/gnugo-"
11817 version ".tar"))
11818 (sha256
11819 (base32
11820 "0xpjvs250gg71qwapdsb1hlc61gs0gpkjds01srf784fvyxx2gf1"))))
11821 (build-system emacs-build-system)
11822 (arguments
11823 `(#:phases (modify-phases %standard-phases
11824 (add-after 'unpack 'configure-default-gnugo-xpms-variable
11825 (lambda _
11826 (substitute* "gnugo.el"
11827 (("defvar gnugo-xpms nil")
11828 "defvar gnugo-xpms #'gnugo-imgen-create-xpms"))
11829 #t)))))
11830 (propagated-inputs
11831 `(("emacs-ascii-art-to-unicode" ,emacs-ascii-art-to-unicode)
11832 ("emacs-xpm" ,emacs-xpm)))
11833 (home-page "https://elpa.gnu.org/packages/gnugo.html")
11834 (synopsis "Emacs major mode for playing GNU Go")
11835 (description "This package provides an Emacs based interface for GNU Go.
11836 It has a graphical mode where the board and stones are drawn using XPM images
11837 and supports the use of a mouse.")
11838 (license license:gpl3+)))
11839
11840 (define-public emacs-gnuplot
11841 (package
11842 (name "emacs-gnuplot")
11843 (version "0.7.0")
11844 (source
11845 (origin
11846 (method git-fetch)
11847 (uri (git-reference
11848 (url "https://github.com/emacsorphanage/gnuplot-mode")
11849 (commit version)))
11850 (file-name (git-file-name name version))
11851 (sha256
11852 (base32 "0bwri3cvm2vr27kyqkrddm28fs08axnd4nm9amfgp54xp20bn4yn"))))
11853 (build-system emacs-build-system)
11854 (home-page "https://github.com/emacsorphanage/gnuplot-mode")
11855 (synopsis "Emacs major mode for interacting with Gnuplot")
11856 (description
11857 "Emacs Gnuplot is an Emacs major mode for interacting with Gnuplot.")
11858 (license license:gpl2+)))
11859
11860 (define-public emacs-transpose-frame
11861 (package
11862 (name "emacs-transpose-frame")
11863 (version "0.1.0")
11864 (source
11865 (origin
11866 (method url-fetch)
11867 (uri "https://www.emacswiki.org/emacs/download/transpose-frame.el")
11868 (file-name (string-append "transpose-frame-" version ".el"))
11869 (sha256
11870 (base32
11871 "1f67yksgw9s6j0033hmqzaxx2a93jm11sd5ys7cc3li5gfh680m4"))))
11872 (build-system emacs-build-system)
11873 (home-page "https://www.emacswiki.org/emacs/TransposeFrame")
11874 (synopsis "Transpose window arrangement in current frame")
11875 (description "@code{emacs-transpose-frame} provides some interactive
11876 functions which allows users to transpose windows arrangement in currently
11877 selected frame.")
11878 (license license:bsd-2)))
11879
11880 (define-public emacs-key-chord
11881 (package
11882 (name "emacs-key-chord")
11883 (version "0.6")
11884 (source
11885 (origin
11886 (method url-fetch)
11887 (uri "https://www.emacswiki.org/emacs/download/key-chord.el")
11888 (file-name (string-append "key-chord-" version ".el"))
11889 (sha256
11890 (base32
11891 "03m44pqggfrd53nh9dvpdjgm0rvca34qxmd30hr33hzprzjambxg"))))
11892 (build-system emacs-build-system)
11893 (home-page "https://www.emacswiki.org/emacs/key-chord.el")
11894 (synopsis "Map pairs of simultaneously pressed keys to Emacs commands")
11895 (description "@code{emacs-key-chord} provides @code{key-chord-mode}, a
11896 mode for binding key chords to commands. A key chord is defined as two keys
11897 pressed simultaneously or a single key quickly pressed twice.")
11898 (license license:gpl2+)))
11899
11900 (define-public emacs-evil-surround
11901 (package
11902 (name "emacs-evil-surround")
11903 (version "1.1.1")
11904 (source
11905 (origin
11906 (method git-fetch)
11907 (uri (git-reference
11908 (url "https://github.com/emacs-evil/evil-surround")
11909 (commit version)))
11910 (file-name (git-file-name name version))
11911 (sha256
11912 (base32 "1gfgmr4909m36gknprcam6q4rkcqfbi6w43ky7x6jnlmgb6mxggg"))))
11913 (build-system emacs-build-system)
11914 (propagated-inputs
11915 `(("emacs-evil" ,emacs-evil)))
11916 (arguments
11917 `(#:tests? #t
11918 #:test-command '("make" "test")))
11919 (home-page "https://github.com/emacs-evil/evil-surround")
11920 (synopsis "Easily modify surrounding parentheses and quotes")
11921 (description "@code{emacs-evil-surround} allows easy deletion, change and
11922 addition of surrounding pairs, such as parentheses and quotes, in evil mode.")
11923 (license license:gpl3+)))
11924
11925 (define-public emacs-evil-commentary
11926 (package
11927 (name "emacs-evil-commentary")
11928 (version "2.1.1")
11929 (source
11930 (origin
11931 (method git-fetch)
11932 (uri (git-reference
11933 (url "https://github.com/linktohack/evil-commentary")
11934 (commit (string-append "v" version))))
11935 (file-name (git-file-name name version))
11936 (sha256
11937 (base32 "0zjs9zyqfygnpxapvf0ymmiid40i06cxbhjzd81zw33nafgkf6r4"))))
11938 (build-system emacs-build-system)
11939 (propagated-inputs
11940 `(("emacs-evil" ,emacs-evil)))
11941 (home-page "https://github.com/linktohack/evil-commentary")
11942 (synopsis "Comment out code in evil mode")
11943 (description "@code{emacs-evil-commentary} adds keybindings to easily
11944 comment out lines of code in evil mode. It provides @code{gcc} to comment out
11945 lines, and @code{gc} to comment out the target of a motion.")
11946 (license license:gpl3+)))
11947
11948 ;; Tests for emacs-ansi have a circular dependency with ert-runner, and
11949 ;; therefore cannot be run
11950 (define-public emacs-ansi
11951 (let ((commit "a41d5cc719297515d85bb5256980cd1204a71b88")
11952 (revision "1"))
11953 (package
11954 (name "emacs-ansi")
11955 (version (git-version "0.4.1" revision commit))
11956 (source
11957 (origin
11958 (method git-fetch)
11959 (uri (git-reference
11960 (url "https://github.com/rejeep/ansi.el")
11961 (commit commit)))
11962 (file-name (git-file-name name version))
11963 (sha256
11964 (base32 "051v8dmji90chwbsyqsqry7h35mksal2j6rgw1kpmjsni86d79y1"))))
11965 (build-system emacs-build-system)
11966 (propagated-inputs
11967 `(("emacs-dash" ,emacs-dash)
11968 ("emacs-s" ,emacs-s)))
11969 (home-page "https://github.com/rejeep/ansi.el")
11970 (synopsis "Convert strings to ANSI")
11971 (description "@code{emacs-ansi} defines functions that turns simple
11972 strings to ANSI strings. Turning a string into an ANSI string can be to add
11973 color to a text, add color in the background of a text or adding a style, such
11974 as bold, underscore or italic.")
11975 (license license:gpl3+))))
11976
11977 ;; Tests for emacs-commander have a circular dependency with ert-runner, and
11978 ;; therefore cannot be run
11979 (define-public emacs-commander
11980 (package
11981 (name "emacs-commander")
11982 (version "0.7.0")
11983 (source
11984 (origin
11985 (method git-fetch)
11986 (uri (git-reference
11987 (url "https://github.com/rejeep/commander.el")
11988 (commit (string-append "v" version))))
11989 (file-name (git-file-name name version))
11990 (sha256
11991 (base32 "1j6hhyzww7wfwk6bllbb5mk4hw4qs8hsgfbfdifsam9c6i4spm45"))))
11992 (build-system emacs-build-system)
11993 (propagated-inputs
11994 `(("emacs-dash" ,emacs-dash)
11995 ("emacs-f" ,emacs-f)
11996 ("emacs-s" ,emacs-s)))
11997 (home-page "https://github.com/rejeep/commander.el")
11998 (synopsis "Emacs command line parser")
11999 (description "@code{emacs-commander} provides command line parsing for
12000 Emacs.")
12001 (license license:gpl3+)))
12002
12003 (define-public emacs-eglot
12004 (package
12005 (name "emacs-eglot")
12006 (version "1.6")
12007 (source
12008 (origin
12009 (method url-fetch)
12010 (uri (string-append "https://elpa.gnu.org/packages/"
12011 "eglot-" version ".tar"))
12012 (sha256
12013 (base32 "15hd6sx7qrpvlvhwwkcgdiki8pswwf4mm7hkm0xvznskfcp44spx"))))
12014 (build-system emacs-build-system)
12015 (propagated-inputs
12016 `(("emacs-jsonrpc" ,emacs-jsonrpc)))
12017 (home-page "https://github.com/joaotavora/eglot")
12018 (synopsis "Client for Language Server Protocol (LSP) servers")
12019 (description
12020 "Emacs Polyglot, or Eglot, is an Emacs @acronym{Language Server Protocol,
12021 LSP} client that stays out of the way. It guesses the LSP program to start
12022 for the current file, using the major mode as a hint. It prompts you to enter
12023 one if it fails.")
12024 (license license:gpl3+)))
12025
12026 ;; Tests for ert-runner have a circular dependency with ecukes, and therefore
12027 ;; cannot be run
12028 (define-public emacs-ert-runner
12029 (package
12030 (name "emacs-ert-runner")
12031 (version "0.8.0")
12032 (source
12033 (origin
12034 (method git-fetch)
12035 (uri (git-reference
12036 (url "https://github.com/rejeep/ert-runner.el")
12037 (commit (string-append "v" version))))
12038 (file-name (git-file-name name version))
12039 (sha256
12040 (base32
12041 "08gygn9fjank5gpi4v6ynrkn0jbknxbwsn7md4p9ndygdbmnkf98"))))
12042 (build-system emacs-build-system)
12043 (inputs
12044 `(("emacs-ansi" ,emacs-ansi)
12045 ("emacs-commander" ,emacs-commander)
12046 ("emacs-dash" ,emacs-dash)
12047 ("emacs-f" ,emacs-f)
12048 ("emacs-s" ,emacs-s)
12049 ("emacs-shut-up" ,emacs-shut-up)))
12050 (arguments
12051 `(#:phases
12052 (modify-phases %standard-phases
12053 (add-after 'install 'install-executable
12054 (lambda* (#:key inputs outputs #:allow-other-keys)
12055 (let ((out (assoc-ref outputs "out"))
12056 (source-directory (string-append
12057 (getenv "TMPDIR") "/source")))
12058 (substitute* "bin/ert-runner"
12059 (("ERT_RUNNER=\"\\$\\(dirname \\$\\(dirname \\$0\\)\\)")
12060 (string-append "ERT_RUNNER=\"" out
12061 "/share/emacs/site-lisp")))
12062 (install-file "bin/ert-runner" (string-append out "/bin"))
12063 (wrap-program (string-append out "/bin/ert-runner")
12064 (list "EMACSLOADPATH" ":" 'prefix
12065 ;; Do not capture the transient source directory in
12066 ;; the wrapper.
12067 (delete source-directory
12068 (string-split (getenv "EMACSLOADPATH") #\:))))
12069 #t))))
12070 #:include (cons* "^reporters/.*\\.el$" %default-include)))
12071 (home-page "https://github.com/rejeep/ert-runner.el")
12072 (synopsis "Opinionated Ert testing workflow")
12073 (description "@code{ert-runner} is a tool for Emacs projects tested
12074 using ERT. It assumes a certain test structure setup and can therefore make
12075 running tests easier.")
12076 (license license:gpl3+)))
12077
12078 (define-public emacs-xtest
12079 (package
12080 (name "emacs-xtest")
12081 (version "1.1.0")
12082 (source (origin
12083 (method git-fetch)
12084 (uri (git-reference
12085 (url "https://github.com/promethial/xtest")
12086 (commit (string-append "v" version))))
12087 (file-name (git-file-name name version))
12088 (sha256
12089 (base32
12090 "1wqx6hlqcmqiljydih5fx89dw06g8w728pyn4iqsap8jwgjngb09"))))
12091 (arguments
12092 `(#:exclude '()))
12093 (build-system emacs-build-system)
12094 (home-page "https://github.com/promethial/xtest/")
12095 (synopsis "Simple testing with Emacs")
12096 (description "This package provides a simple testing library for Emacs.")
12097 (license license:gpl3+)))
12098
12099 (define-public emacs-disable-mouse
12100 (package
12101 (name "emacs-disable-mouse")
12102 (version "0.3")
12103 (source
12104 (origin
12105 (method git-fetch)
12106 (uri (git-reference
12107 (url "https://github.com/purcell/disable-mouse")
12108 (commit version)))
12109 (file-name (git-file-name name version))
12110 (sha256
12111 (base32 "0l6mai68ns3qw3rlvjvzsnqwdy7bxqiy0vdwflq0l1plxb1vazyc"))))
12112 (build-system emacs-build-system)
12113 (home-page "https://github.com/purcell/disable-mouse")
12114 (synopsis "Disable mouse commands globally")
12115 (description
12116 "Provides @code{disable-mouse-mode} and @code{global-disable-mouse-mode},
12117 pair of minor modes which suppress all mouse events by intercepting them and
12118 running a customisable handler command (@code{ignore} by default). ")
12119 (license license:gpl3+)))
12120
12121 (define-public emacs-json-reformat
12122 (package
12123 (name "emacs-json-reformat")
12124 (version "0.0.6")
12125 (source
12126 (origin
12127 (method git-fetch)
12128 (uri (git-reference
12129 (url "https://github.com/gongo/json-reformat")
12130 (commit version)))
12131 (file-name (git-file-name name version))
12132 (sha256
12133 (base32 "0qp4n2k6s69jj4gwwimkpadjv245y54wk3bxb1x96f034gkp81vs"))
12134 (patches (search-patches "emacs-json-reformat-fix-tests.patch"))))
12135 (build-system emacs-build-system)
12136 (propagated-inputs
12137 `(("emacs-undercover" ,emacs-undercover)))
12138 (native-inputs
12139 `(("emacs-dash" ,emacs-dash)
12140 ("emacs-shut-up" ,emacs-shut-up)
12141 ("ert-runner" ,emacs-ert-runner)))
12142 (arguments
12143 `(#:tests? #t
12144 #:test-command '("ert-runner")
12145 #:phases
12146 (modify-phases %standard-phases
12147 (add-before 'check 'make-tests-writable
12148 (lambda _
12149 (for-each make-file-writable (find-files "test"))
12150 #t))
12151 (add-before 'check 'delete-json-objects-order-test
12152 (lambda _
12153 (emacs-batch-edit-file "test/json-reformat-test.el"
12154 `(progn (progn (goto-char (point-min))
12155 (re-search-forward
12156 "ert-deftest json-reformat-test:json-reformat-region")
12157 (beginning-of-line)
12158 (kill-sexp))
12159 (basic-save-buffer)))
12160 #t)))))
12161 (home-page "https://github.com/gongo/json-reformat")
12162 (synopsis "Reformatting tool for JSON")
12163 (description "@code{json-reformat} provides a reformatting tool for
12164 @url{http://json.org/, JSON}.")
12165 (license license:gpl3+)))
12166
12167 (define-public emacs-json-snatcher
12168 (package
12169 (name "emacs-json-snatcher")
12170 (version "1.0.0")
12171 (source
12172 (origin
12173 (method git-fetch)
12174 (uri (git-reference
12175 (url "https://github.com/Sterlingg/json-snatcher")
12176 (commit version)))
12177 (file-name (git-file-name name version))
12178 (sha256
12179 (base32 "05zsgnk7grgw9jzwl80h5sxfpifxlr37b4mkbvx7mjq4z14xc2jw"))))
12180 (build-system emacs-build-system)
12181 (home-page "https://github.com/sterlingg/json-snatcher")
12182 (synopsis "Grabs the path to JSON values in a JSON file")
12183 (description "@code{emacs-json-snatcher} grabs the path to JSON values in
12184 a @url{http://json.org/, JSON} file.")
12185 (license license:gpl3+)))
12186
12187 (define-public emacs-json-mode
12188 (package
12189 (name "emacs-json-mode")
12190 (version "1.7.0")
12191 (source
12192 (origin
12193 (method git-fetch)
12194 (uri (git-reference
12195 (url "https://github.com/joshwnj/json-mode")
12196 (commit (string-append "v" version))))
12197 (file-name (git-file-name name version))
12198 (sha256
12199 (base32 "0i79lqzdg59vkqwjd3q092xxn9vhxspb1vn4pkis0vfvn46g01jy"))))
12200 (build-system emacs-build-system)
12201 (propagated-inputs
12202 `(("emacs-json-reformat" ,emacs-json-reformat)
12203 ("emacs-json-snatcher" ,emacs-json-snatcher)))
12204 (home-page "https://github.com/joshwnj/json-mode")
12205 (synopsis "Major mode for editing JSON files")
12206 (description "@code{json-mode} extends the builtin js-mode syntax
12207 highlighting.")
12208 (license license:gpl3+)))
12209
12210 (define-public emacs-jsonrpc
12211 (package
12212 (name "emacs-jsonrpc")
12213 (version "1.0.12")
12214 (source
12215 (origin
12216 (method url-fetch)
12217 (uri (string-append "https://elpa.gnu.org/packages/"
12218 "jsonrpc-" version ".el"))
12219 (sha256
12220 (base32 "0cqp05awikbrn88ifld3vwnv6cxgmr83wlnsvxw8bqb96djz70ad"))))
12221 (build-system emacs-build-system)
12222 (home-page "http://elpa.gnu.org/packages/jsonrpc.html")
12223 (synopsis "JSON-RPC library")
12224 (description
12225 "This library implements the JSONRPC 2.0 specification as
12226 described in @url{http://www.jsonrpc.org/}. As the name suggests,
12227 JSONRPC is a generic Remote Procedure Call protocol designed around
12228 JSON objects.")
12229 (license license:gpl3+)))
12230
12231 (define-public emacs-restclient
12232 (let ((commit "ac8aad6c6b9e9d918062fa3c89c22c2f4ec48bc3")
12233 (version "0")
12234 (revision "3")) ;Guix package revision,
12235 ;upstream doesn't have official releases
12236 (package
12237 (name "emacs-restclient")
12238 (version (git-version version revision commit))
12239 (source (origin
12240 (method git-fetch)
12241 (uri (git-reference
12242 (url "https://github.com/pashky/restclient.el")
12243 (commit commit)))
12244 (sha256
12245 (base32
12246 "1a2c7xzy7rsan1zcdskia6m7n6j29xacfkqjlfdhzk6rr1bpzkwk"))
12247 (file-name (git-file-name name version))))
12248 (build-system emacs-build-system)
12249 (propagated-inputs
12250 `(("emacs-helm" ,emacs-helm)
12251 ("emacs-jq-mode" ,emacs-jq-mode)))
12252 (home-page "https://github.com/pashky/restclient.el")
12253 (synopsis "Explore and test HTTP REST webservices")
12254 (description
12255 "This tool allows for testing and exploration of HTTP REST Web services
12256 from within Emacs. Restclient runs queries from a plan-text query sheet,
12257 displays results pretty-printed in XML or JSON with @code{restclient-mode}")
12258 (license license:public-domain))))
12259
12260 (define-public emacs-jq-mode
12261 (package
12262 (name "emacs-jq-mode")
12263 (version "0.5.0")
12264 (source
12265 (origin
12266 (method git-fetch)
12267 (uri (git-reference
12268 (url "https://github.com/ljos/jq-mode")
12269 (commit (string-append "v" version))))
12270 (file-name (git-file-name name version))
12271 (sha256
12272 (base32 "0xk0if5i9cz4w06lx8v1vdm112pn1ybqgfw048sx15yyvfzgril1"))))
12273 (build-system emacs-build-system)
12274 (home-page "https://github.com/ljos/jq-mode")
12275 (synopsis "Major mode for editing jq queries")
12276 (description
12277 "Jq mode is an Emacs major mode for editing jq-scripts.")
12278 (license license:gpl3+)))
12279
12280 (define-public emacs-whitespace-cleanup-mode
12281 (let ((commit "72427144b054b0238a86e1348c45d986b8830d9d")
12282 (revision "1"))
12283 (package
12284 (name "emacs-whitespace-cleanup-mode")
12285 (version (git-version "0.10" revision commit))
12286 (source (origin
12287 (method git-fetch)
12288 (uri (git-reference
12289 (url "https://github.com/purcell/whitespace-cleanup-mode")
12290 (commit commit)))
12291 (sha256
12292 (base32
12293 "1zlk534jbwrsabcg3kqlzk4h4hwya60lh6q2n1v4yn4rpf5ghsag"))
12294 (file-name (git-file-name name version))))
12295 (build-system emacs-build-system)
12296 (home-page "https://github.com/purcell/whitespace-cleanup-mode")
12297 (synopsis "Intelligently call @code{whitespace-cleanup} on save")
12298 (description
12299 "This package provides a minor mode that calls
12300 @code{whitespace-cleanup} before saving the current buffer only if the
12301 whitespace in the buffer was initially clean.")
12302 (license license:gpl3+))))
12303
12304 (define-public emacs-eimp
12305 (let ((version "1.4.0")
12306 (commit "2e7536fe6d8f7faf1bad7a8ae37faba0162c3b4f")
12307 (revision "1"))
12308 (package
12309 (name "emacs-eimp")
12310 (version (git-version version revision commit))
12311 (source
12312 (origin
12313 (method git-fetch)
12314 (uri (git-reference
12315 (url "https://github.com/nicferrier/eimp")
12316 (commit commit)))
12317 (file-name (git-file-name name version))
12318 (sha256
12319 (base32
12320 "154d57yafxbcf39r89n5j43c86rp2fki3lw3gwy7ww2g6qkclcra"))))
12321 (build-system emacs-build-system)
12322 (arguments
12323 `(#:phases
12324 (modify-phases %standard-phases
12325 (add-after 'unpack 'configure
12326 (lambda* (#:key inputs #:allow-other-keys)
12327 (let ((imagemagick (assoc-ref inputs "imagemagick")))
12328 ;; eimp.el is read-only in git.
12329 (chmod "eimp.el" #o644)
12330 (emacs-substitute-variables "eimp.el"
12331 ("eimp-mogrify-program"
12332 (string-append imagemagick "/bin/mogrify"))))
12333 #t)))))
12334 (inputs
12335 `(("imagemagick" ,imagemagick)))
12336 (home-page "https://github.com/nicferrier/eimp")
12337 (synopsis "Interactive image manipulation utility for Emacs")
12338 (description "@code{emacs-eimp} allows interactive image manipulation
12339 from within Emacs. It uses the code@{mogrify} utility from ImageMagick to do
12340 the actual transformations.")
12341 (license license:gpl2+))))
12342
12343 (define-public emacs-dired-hacks
12344 (let ((commit "886befe113fae397407c804f72c45613d1d43535")
12345 (revision "2"))
12346 (package
12347 (name "emacs-dired-hacks")
12348 (version (git-version "0.0.1" revision commit))
12349 (source (origin
12350 (method git-fetch)
12351 (uri (git-reference
12352 (url "https://github.com/Fuco1/dired-hacks")
12353 (commit commit)))
12354 (file-name (git-file-name name version))
12355 (sha256
12356 (base32
12357 "1cvibg90ggyrivpjmcfprpi2fx7dpa68f8kzg08s88gw5ib75djl"))))
12358 (build-system emacs-build-system)
12359 (propagated-inputs
12360 `(("emacs-dash" ,emacs-dash)
12361 ("emacs-eimp" ,emacs-eimp)
12362 ("emacs-f" ,emacs-f)
12363 ("emacs-s" ,emacs-s)))
12364 (home-page "https://github.com/Fuco1/dired-hacks")
12365 (synopsis
12366 "Collection of useful dired additions")
12367 (description
12368 "This package provides the following collection of Emacs dired mode
12369 additions:
12370
12371 @itemize
12372 @item dired-avfs
12373 @item dired-columns
12374 @item dired-filter
12375 @item dired-hacks-utils
12376 @item dired-images
12377 @item dired-list
12378 @item dired-narrow
12379 @item dired-open
12380 @item dired-rainbow
12381 @item dired-ranger
12382 @item dired-subtree
12383 @item dired-tagsistant
12384 @end itemize\n")
12385 (license license:gpl3+))))
12386
12387 (define-public emacs-dired-sidebar
12388 (let ((commit "21ccb6723bea69f2e2ca25998268d8a039f904cc")
12389 (revision "1"))
12390 (package
12391 (name "emacs-dired-sidebar")
12392 (home-page "https://github.com/jojojames/dired-sidebar")
12393 (version (git-version "0.1.0" revision commit))
12394 (source (origin
12395 (method git-fetch)
12396 (uri (git-reference (url home-page) (commit commit)))
12397 (file-name (git-file-name name version))
12398 (sha256
12399 (base32
12400 "0mck4qk6srbbf8xnn2sg11j822z4ybxvgavvy402d5sli515i8ca"))))
12401 (build-system emacs-build-system)
12402 (propagated-inputs
12403 `(("emacs-dired-subtree" ,emacs-dired-hacks)))
12404 (synopsis "Sidebar for Emacs using Dired")
12405 (description
12406 "This package provides a sidebar for Emacs similar to @code{NeoTree}
12407 or @code{treemacs}, but leveraging @code{Dired} to do the job of display.")
12408 (license license:gpl3+))))
12409
12410 (define-public emacs-which-key
12411 (package
12412 (name "emacs-which-key")
12413 (version "3.5.0")
12414 (source
12415 (origin
12416 (method git-fetch)
12417 (uri (git-reference
12418 (url "https://github.com/justbur/emacs-which-key")
12419 (commit (string-append "v" version))))
12420 (file-name (git-file-name name version))
12421 (sha256
12422 (base32 "13lgjsm9pwgjsxg7lzc1c9sw2bzssxikfj6grnshqfll8kz8yr4r"))))
12423 (build-system emacs-build-system)
12424 (arguments
12425 `(#:tests? #t
12426 #:test-command '("emacs" "--batch"
12427 "-l" "which-key-tests.el"
12428 "-f" "ert-run-tests-batch-and-exit")))
12429 (home-page "https://github.com/justbur/emacs-which-key")
12430 (synopsis "Display available key bindings in popup")
12431 (description
12432 "@code{emacs-which-key} is a minor mode for Emacs that displays the key
12433 bindings following your currently entered incomplete command (a prefix) in a
12434 popup. For example, after enabling the minor mode if you enter C-x and wait
12435 for the default of 1 second, the minibuffer will expand with all of the
12436 available key bindings that follow C-x (or as many as space allows given your
12437 settings).")
12438 (license license:gpl3+)))
12439
12440 (define-public emacs-hercules
12441 (package
12442 (name "emacs-hercules")
12443 (version "0.2.1")
12444 (source
12445 (origin
12446 (method git-fetch)
12447 (uri (git-reference
12448 (url "https://gitlab.com/jjzmajic/hercules.el.git")
12449 (commit (string-append "v" version))))
12450 (file-name (git-file-name name version))
12451 (sha256
12452 (base32
12453 "19939pf5d6p2facmfhpyghx0vipb5k6ry3bmkmjfkj1zp132zfqf"))))
12454 (build-system emacs-build-system)
12455 (propagated-inputs
12456 `(("emacs-which-key" ,emacs-which-key)))
12457 (home-page "https://gitlab.com/jjzmajic/hercules.el")
12458 (synopsis "Call a chain of related commands without repeated prefix keys")
12459 (description
12460 "This package provides sticky-key-like functionality to obviate the
12461 need for repeated prefix-key sequences, and can reuse existing keymaps. The
12462 list of commands is displayed in a handy popup.")
12463 (license license:gpl3+)))
12464
12465 (define-public emacs-ws-butler
12466 (package
12467 (name "emacs-ws-butler")
12468 (version "0.6")
12469 (source (origin
12470 (method git-fetch)
12471 (uri (git-reference
12472 (url "https://github.com/lewang/ws-butler")
12473 (commit "323b651dd70ee40a25accc940b8f80c3a3185205")))
12474 (file-name (git-file-name name version))
12475 (sha256
12476 (base32
12477 "1a4b0lsmwq84qfx51c5xy4fryhb1ysld4fhgw2vr37izf53379sb"))))
12478 (build-system emacs-build-system)
12479 (native-inputs
12480 `(("ert-runner" ,emacs-ert-runner)))
12481 (arguments
12482 `(#:tests? #t
12483 #:test-command '("ert-runner" "tests")))
12484 (home-page "https://github.com/lewang/ws-butler")
12485 (synopsis "Trim spaces from end of lines")
12486 (description
12487 "This Emacs package automatically and unobtrusively trims whitespace
12488 characters from end of lines.")
12489 (license license:gpl3+)))
12490
12491 (define-public emacs-openwith
12492 (let ((changeset "aeb78782ec87680ea9f082a3f20a3675b3770cf9")
12493 (revision "0"))
12494 (package
12495 (name "emacs-openwith")
12496 (home-page "https://bitbucket.org/jpkotta/openwith")
12497 (version (git-version "0.0.1" revision changeset))
12498 (source (origin
12499 (method hg-fetch)
12500 (uri (hg-reference (url home-page) (changeset changeset)))
12501 (file-name (git-file-name name version))
12502 (sha256
12503 (base32
12504 "1wl6gnxsyhaad4cl9bxjc0qbc5jzvlwbwjbajs0n1s6qr07d6r01"))))
12505 (build-system emacs-build-system)
12506 (synopsis "Open external applications for files with Emacs")
12507 (description
12508 "This package enables you to associate file name patterns with external
12509 applications that are automatically invoked when you use commands like
12510 @code{find-file}. For example, you can have it open @code{png} files with
12511 @code{feh} and @code{mp4} files with @code{mpv}. This is especially useful
12512 when browsing files with Dired.")
12513 (license license:gpl2+))))
12514
12515 (define-public emacs-org-edit-latex
12516 (package
12517 (name "emacs-org-edit-latex")
12518 (version "0.8.0")
12519 (source
12520 (origin
12521 (method git-fetch)
12522 (uri (git-reference
12523 (url "https://github.com/et2010/org-edit-latex")
12524 (commit (string-append "v" version))))
12525 (file-name (git-file-name name version))
12526 (sha256
12527 (base32 "0zcllyhx9n9vcr5w87h0hfz25v52lvh5fi717cb7mf3jh89zh842"))))
12528 (build-system emacs-build-system)
12529 (propagated-inputs
12530 `(("emacs-auctex" ,emacs-auctex)
12531 ;; The version of org in Emacs 25.2 is not sufficient, because the
12532 ;; `org-latex-make-preamble' function is required.
12533 ("emacs-org" ,emacs-org)))
12534 (home-page "https://github.com/et2010/org-edit-latex")
12535 (synopsis "Edit a latex fragment just like editing a src block")
12536 (description "@code{emacs-org-edit-latex} is an extension for org-mode.
12537 It lets you edit a latex fragment in a dedicated buffer just like editing a
12538 src block.")
12539 (license license:gpl3+)))
12540
12541 (define-public emacs-emamux
12542 (package
12543 (name "emacs-emamux")
12544 (version "0.14")
12545 (source
12546 (origin
12547 (method git-fetch)
12548 (uri (git-reference
12549 (url "https://github.com/syohex/emacs-emamux")
12550 (commit version)))
12551 (file-name (git-file-name name version))
12552 (sha256
12553 (base32 "19y69qw79miim9cz5ji54gwspjkcp9g2c1xr5s7jj2fiabnxax6b"))))
12554 (build-system emacs-build-system)
12555 (home-page "https://github.com/syohex/emacs-emamux")
12556 (synopsis "Manipulate Tmux from Emacs")
12557 (description
12558 "@code{emacs-emamux} lets Emacs interact with the @code{tmux} terminal
12559 multiplexer.")
12560 (license license:gpl3+)))
12561
12562 (define-public emacs-rpm-spec-mode
12563 (package
12564 (name "emacs-rpm-spec-mode")
12565 (version "0.16")
12566 (source
12567 (origin
12568 (method url-fetch)
12569 ;; URI has the Fedora release number instead of the version
12570 ;; number. This will have to updated manually every new release.
12571 (uri (string-append
12572 "https://src.fedoraproject.org/cgit/rpms"
12573 "/emacs-rpm-spec-mode.git/snapshot"
12574 "/emacs-rpm-spec-mode-f26.tar.gz"))
12575 (sha256
12576 (base32
12577 "17dz80lhjrc89fj17pysl8slahzrqdkxgcjdk55zls6jizkr6kz3"))))
12578 (build-system emacs-build-system)
12579 (home-page "http://pkgs.fedoraproject.org/cgit/rpms/emacs-rpm-spec-mode.git")
12580 (synopsis "Emacs major mode for editing RPM spec files")
12581 (description "@code{emacs-rpm-spec-mode} provides an Emacs major mode for
12582 editing RPM spec files.")
12583 (license license:gpl2+)))
12584
12585 (define-public emacs-lcr
12586 (package
12587 (name "emacs-lcr")
12588 (version "1.1")
12589 (source
12590 (origin
12591 (method git-fetch)
12592 (uri (git-reference
12593 (url "https://github.com/jyp/lcr")
12594 (commit version)))
12595 (file-name (git-file-name name version))
12596 (sha256
12597 (base32 "0mc55icihxqpf8b05990q1lc2nj2792wcgyr73xsiqx0963sjaj8"))))
12598 (build-system emacs-build-system)
12599 (propagated-inputs
12600 `(("emacs-dash" ,emacs-dash)))
12601 (home-page "https://github.com/jyp/lcr")
12602 (synopsis "Lightweight coroutines in Emacs Lisp")
12603 (description "This package provides macros that can translate code into
12604 equivalent continuation-passing code, as well as miscellaneous utility
12605 functions written in continuation-passing style.")
12606 (license license:gpl3+)))
12607
12608 (define-public emacs-attrap
12609 (let ((commit "18cd1f7832870a36c404e872fa83a271fe8e688d")
12610 (revision "2"))
12611 (package
12612 (name "emacs-attrap")
12613 (version (git-version "1.0" revision commit))
12614 (source (origin
12615 (method git-fetch)
12616 (uri (git-reference
12617 (url "https://github.com/jyp/attrap")
12618 (commit commit)))
12619 (sha256
12620 (base32
12621 "078391949h0fgmshin8f79a1a595m06ig577rkgjqgngcp0d61l9"))
12622 (file-name (git-file-name name version))))
12623 (build-system emacs-build-system)
12624 (propagated-inputs
12625 `(("emacs-dash" ,emacs-dash)
12626 ("emacs-f" ,emacs-f)
12627 ("emacs-flycheck" ,emacs-flycheck)
12628 ("emacs-s" ,emacs-s)))
12629 (home-page "https://github.com/jyp/attrap")
12630 (synopsis "Fix coding error at point")
12631 (description "This package provides a command to fix the Flycheck error
12632 at point.")
12633 (license license:gpl3+))))
12634
12635 (define-public emacs-git-messenger
12636 (package
12637 (name "emacs-git-messenger")
12638 (version "0.18")
12639 (source
12640 (origin
12641 (method git-fetch)
12642 (uri (git-reference
12643 (url "https://github.com/syohex/emacs-git-messenger")
12644 (commit version)))
12645 (file-name (git-file-name name version))
12646 (sha256
12647 (base32 "04fnby2nblk8l70gv09asxkmnn53fh1pdfs77ix44npp99fyw8ix"))))
12648 (build-system emacs-build-system)
12649 (propagated-inputs
12650 `(("emacs-popup" ,emacs-popup)))
12651 (arguments
12652 `(#:tests? #t
12653 #:test-command '("emacs" "--batch" "-l" "test/test.el"
12654 "-f" "ert-run-tests-batch-and-exit")))
12655 (home-page "https://github.com/syohex/emacs-git-messenger")
12656 (synopsis "Popup commit message at current line")
12657 (description "@code{emacs-git-messenger} provides
12658 @code{git-messenger:popup-message}, a function that when called, will popup
12659 the last git commit message for the current line. This uses git-blame
12660 internally.")
12661 (license license:gpl3+)))
12662
12663 (define-public emacs-gitpatch
12664 (package
12665 (name "emacs-gitpatch")
12666 (version "0.5.1")
12667 (source
12668 (origin
12669 (method git-fetch)
12670 (uri (git-reference
12671 (url "https://github.com/tumashu/gitpatch")
12672 (commit (string-append "v" version))))
12673 (file-name (git-file-name name version))
12674 (sha256
12675 (base32 "1drf4fvmak7brf16axkh4nfz8pg44i7pjhfjz3dbkycbpp8y5vig"))))
12676 (build-system emacs-build-system)
12677 (home-page "https://github.com/tumashu/gitpatch")
12678 (synopsis "Mail git patch from Emacs")
12679 (description "@code{emacs-gitpatch} lets users easily send git patches,
12680 created by @code{git format-patch}, from @code{magit}, @code{dired} and
12681 @code{ibuffer} buffers.")
12682 (license license:gpl3+)))
12683
12684 (define-public emacs-erc-hl-nicks
12685 (package
12686 (name "emacs-erc-hl-nicks")
12687 (version "1.3.4")
12688 (source
12689 (origin
12690 (method git-fetch)
12691 (uri (git-reference
12692 (url "https://github.com/leathekd/erc-hl-nicks")
12693 (commit version)))
12694 (file-name (git-file-name name version))
12695 (sha256
12696 (base32 "0k57scxa8rm859fqsm8srhps7rlq06jzazhjbwnadzrh8i5fyvra"))))
12697 (build-system emacs-build-system)
12698 (synopsis "Nickname highlighting for Emacs ERC")
12699 (description "@code{erc-hl-nicks} highlights nicknames in ERC, an IRC
12700 client for Emacs. The main features are:
12701 @itemize
12702 @item Auto-colorizes nicknames without having to specify colors
12703 @item Ignores certain characters that IRC clients add to nicknames to avoid
12704 duplicates (nickname, nickname’, nickname\", etc.)
12705 @item Attempts to produce colors with a sufficient amount of contrast between
12706 the nick color and the background color
12707 @end itemize\n")
12708 (home-page "https://github.com/leathekd/erc-hl-nicks")
12709 (license license:gpl3+)))
12710
12711 (define-public emacs-engine-mode
12712 (package
12713 (name "emacs-engine-mode")
12714 (version "2.1.1")
12715 (source
12716 (origin
12717 (method git-fetch)
12718 (uri (git-reference
12719 (url "https://github.com/hrs/engine-mode")
12720 (commit (string-append "v" version))))
12721 (file-name (git-file-name name version))
12722 (sha256
12723 (base32 "1xka8i4cdvp5r2v2mkli1zz17x1sdsnmszbhqav2rf94v656d91i"))))
12724 (build-system emacs-build-system)
12725 (synopsis "Minor mode for defining and querying search engines")
12726 (description "@code{engine-mode} is a global minor mode for Emacs. It
12727 enables you to easily define search engines, bind them to keybindings, and
12728 query them from the comfort of your editor.")
12729 (home-page "https://github.com/hrs/engine-mode")
12730 (license license:gpl3+)))
12731
12732 (define-public emacs-prop-menu
12733 (package
12734 (name "emacs-prop-menu")
12735 (version "0.1.2")
12736 (source
12737 (origin
12738 (method git-fetch)
12739 (uri (git-reference
12740 (url "https://github.com/david-christiansen/prop-menu-el")
12741 (commit version)))
12742 (file-name (git-file-name name version))
12743 (sha256
12744 (base32
12745 "18ap2liz5r5a8ja2zz9182fnfm47jnsbyblpq859zks356k37iwc"))))
12746 (build-system emacs-build-system)
12747 (home-page
12748 "https://github.com/david-christiansen/prop-menu-el")
12749 (synopsis
12750 "Create and display a context menu based on text and overlay properties")
12751 (description
12752 "This is a library for computing context menus based on text
12753 properties and overlays. The intended use is to have tools that
12754 annotate source code and others that use these annotations, without
12755 requiring a direct coupling between them, but maintaining
12756 discoverability.
12757
12758 Major modes that wish to use this library should first define an
12759 appropriate value for @code{prop-menu-item-functions}. Then, they should
12760 bind @code{prop-menu-by-completing-read} to an appropriate
12761 key. Optionally, a mouse pop-up can be added by binding
12762 @code{prop-menu-show-menu} to a mouse event.")
12763 (license license:gpl3+)))
12764
12765 (define-public emacs-idris-mode
12766 (let ((commit "b77eadd8ac2048d5c882b4464bd9673e45dd6a59")
12767 (revision "0"))
12768 (package
12769 (name "emacs-idris-mode")
12770 (version (git-version "1.0" revision commit))
12771 (source
12772 (origin
12773 (method git-fetch)
12774 (uri (git-reference
12775 (url "https://github.com/idris-hackers/idris-mode")
12776 (commit commit)))
12777 (file-name (git-file-name name commit))
12778 (sha256
12779 (base32
12780 "1v8av6jza1j00ln75zjwaca0vmmv0fhhhi94p84rlfzgzykyb9g1"))))
12781 (build-system emacs-build-system)
12782 (propagated-inputs
12783 `(("emacs-prop-menu" ,emacs-prop-menu)))
12784 (home-page
12785 "https://github.com/idris-hackers/idris-mode")
12786 (synopsis "Major mode for editing Idris code")
12787 (description
12788 "This is an Emacs mode for editing Idris code. It is compatible with
12789 the latest versions of Idris 1.")
12790 (license license:gpl3+))))
12791
12792 (define-public emacs-browse-at-remote
12793 (package
12794 (name "emacs-browse-at-remote")
12795 (version "0.14.0")
12796 (source
12797 (origin
12798 (method git-fetch)
12799 (uri (git-reference
12800 (url "https://github.com/rmuslimov/browse-at-remote")
12801 (commit version)))
12802 (file-name (git-file-name name version))
12803 (sha256
12804 (base32 "0bx4ns0jb0sqrjk1nsspvl3mhz3n12925azf7brlwb1vcgnji09v"))))
12805 (build-system emacs-build-system)
12806 (propagated-inputs
12807 `(("emacs-f" ,emacs-f)
12808 ("emacs-s" ,emacs-s)))
12809 (native-inputs
12810 `(("ert-runner" ,emacs-ert-runner)))
12811 (arguments
12812 `(#:tests? #t
12813 #:test-command '("ert-runner")))
12814 (home-page "https://github.com/rmuslimov/browse-at-remote")
12815 (synopsis "Open github/gitlab/bitbucket/stash page from Emacs")
12816 (description
12817 "This Emacs package allows you to open a target page on
12818 github/gitlab (or bitbucket) by calling @code{browse-at-remote} command.
12819 It supports dired buffers and opens them in tree mode at destination.")
12820 (license license:gpl3+)))
12821
12822 (define-public emacs-tiny
12823 (let ((commit "fd8a6b0b0c564d8242259e20e557ee6041f40908")
12824 (revision "1"))
12825 (package
12826 (name "emacs-tiny")
12827 (version (git-version "0.2.1" revision commit))
12828 (source
12829 (origin
12830 (method git-fetch)
12831 (uri (git-reference
12832 (url "https://github.com/abo-abo/tiny")
12833 (commit commit)))
12834 (file-name (git-file-name name version))
12835 (sha256
12836 (base32
12837 "1498j392ap2mk4zmsm2id16pfgvj78r428da9vw7hdrzzibai2cx"))))
12838 (build-system emacs-build-system)
12839 (arguments
12840 `(#:tests? #t
12841 #:test-command '("make" "test")))
12842 (home-page "https://github.com/abo-abo/tiny")
12843 (synopsis "Quickly generate linear ranges in Emacs")
12844 (description
12845 "The main command of the @code{tiny} extension for Emacs is @code{tiny-expand}.
12846 It is meant to quickly generate linear ranges, e.g. 5, 6, 7, 8. Some elisp
12847 proficiency is an advantage, since you can transform your numeric range with
12848 an elisp expression.")
12849 (license license:gpl3+))))
12850
12851 (define-public emacs-emojify
12852 (package
12853 (name "emacs-emojify")
12854 (version "1.2")
12855 (source
12856 (origin
12857 (method git-fetch)
12858 (uri (git-reference
12859 (url "https://github.com/iqbalansari/emacs-emojify")
12860 (commit (string-append "v" version))))
12861 (file-name (git-file-name name version))
12862 (sha256
12863 (base32
12864 "1fqnj5x7ivjkm5y927dqqnm85q5hzczlb0hrfpjalrhasa6ijsrm"))))
12865 (build-system emacs-build-system)
12866 (arguments
12867 `(#:include (cons "^data/" %default-include)))
12868 (propagated-inputs
12869 `(("emacs-ht" ,emacs-ht)))
12870 (home-page "https://github.com/iqbalansari/emacs-emojify")
12871 (synopsis "Display emojis in Emacs")
12872 (description "This package displays emojis in Emacs similar to how Github,
12873 Slack, and other websites do. It can display plain ASCII like @code{:)} as
12874 well as Github-style emojis like @code{:smile:}. It provides a minor mode
12875 @code{emojify-mode} to enable the display of emojis in a buffer.")
12876 (license license:gpl3+)))
12877
12878 (define-public emacs-make-it-so
12879 (let ((commit "b73dfb640588123c9eece230ad72b37604f5c126")
12880 (revision "2"))
12881 (package
12882 (name "emacs-make-it-so")
12883 (version (git-version "0.1.0" revision commit))
12884 (source
12885 (origin
12886 (method git-fetch)
12887 (uri (git-reference
12888 (url "https://github.com/abo-abo/make-it-so")
12889 (commit commit)))
12890 (file-name (git-file-name name version))
12891 (sha256
12892 (base32
12893 "0p6xhyinzzkrwzbpxqfm8hlii0ikvmmylya240bwsa77w0g1k6xq"))))
12894 (build-system emacs-build-system)
12895 (arguments
12896 `(#:include (cons "^recipes/" %default-include)))
12897 (propagated-inputs
12898 `(("emacs-ivy" ,emacs-ivy)))
12899 (home-page "https://github.com/abo-abo/make-it-so")
12900 (synopsis "Transform files with Makefile recipes")
12901 (description "This package provides an interface for selecting from
12902 different conversion recipes, often including tools like @code{ffmpeg} or
12903 @code{convert}. The conversion command need only be written once, and
12904 subsequent invocations can be readily customized. Several recipes are
12905 included by default, and more can be readily added.")
12906 (license license:gpl3+))))
12907
12908 (define-public emacs-unidecode
12909 (let ((commit "5502ada9287b4012eabb879f12f5b0a9df52c5b7")
12910 (revision "1"))
12911 (package
12912 (name "emacs-unidecode")
12913 (version (git-version "0.2" revision commit))
12914 (source
12915 (origin
12916 (method git-fetch)
12917 (uri (git-reference
12918 (url "https://github.com/sindikat/unidecode")
12919 (commit commit)))
12920 (file-name (git-file-name name version))
12921 (sha256
12922 (base32
12923 "03x3nakbhmakwm977mwrf8jifvjnfwzpjv6wrwpizbqjnkgfchmn"))))
12924 (build-system emacs-build-system)
12925 (arguments
12926 `(#:include (cons* "^tools/" "^data/" %default-include)
12927 #:tests? #t
12928 #:test-command '("emacs" "--batch"
12929 "-l" "unidecode-test.el"
12930 "-f" "ert-run-tests-batch-and-exit")
12931 #:phases
12932 (modify-phases %standard-phases
12933 (add-before 'check 'make-tests-writable
12934 (lambda _
12935 (make-file-writable "unidecode-test.el")
12936 #t))
12937 (add-before 'check 'add-require
12938 (lambda _
12939 (emacs-batch-edit-file "unidecode-test.el"
12940 `(progn (progn (goto-char (point-min))
12941 (re-search-forward
12942 "ert-deftest")
12943 (forward-line -1)
12944 (insert "(require 'unidecode)"))
12945 (basic-save-buffer)))
12946 #t)))))
12947 (home-page "https://github.com/sindikat/unidecode")
12948 (synopsis "Transliterate Unicode text to ASCII")
12949 (description "This package provides functions for converting Unicode to ASCII.")
12950 (license license:gpl2+))))
12951
12952 (define-public emacs-pubmed
12953 (package
12954 (name "emacs-pubmed")
12955 (version "0.2.1")
12956 (source
12957 (origin
12958 (method git-fetch)
12959 (uri (git-reference
12960 (url "https://gitlab.com/fvdbeek/emacs-pubmed.git")
12961 (commit (string-append "v" version))))
12962 (file-name (git-file-name name version))
12963 (sha256
12964 (base32
12965 "15bwjxc7g43m5pi8z17anaqqkvi209r7kk1chmf175477gvrv7c0"))))
12966 (build-system emacs-build-system)
12967 (propagated-inputs
12968 `(("emacs-deferred" ,emacs-deferred)
12969 ("emacs-esxml" ,emacs-esxml)
12970 ("emacs-s" ,emacs-s)
12971 ("emacs-unidecode" ,emacs-unidecode)))
12972 (home-page "https://gitlab.com/fvdbeek/emacs-pubmed")
12973 (synopsis "Interface to PubMed")
12974 (description "This package provides an Emacs interface to the PubMed
12975 database of references on life sciences.")
12976 (license license:gpl3+)))
12977
12978 (define-public emacs-websocket
12979 (package
12980 (name "emacs-websocket")
12981 (version "1.12")
12982 (source
12983 (origin
12984 (method url-fetch)
12985 (uri (string-append "https://elpa.gnu.org/packages/"
12986 "websocket-" version ".tar"))
12987 (sha256
12988 (base32 "0ap4z80c6pzpb69wrx0hsvwzignxmd2b9xy974by9gf5xm2wpa8w"))))
12989 (build-system emacs-build-system)
12990 (home-page "https://elpa.gnu.org/packages/websocket.html")
12991 (synopsis "Emacs WebSocket client and server")
12992 (description
12993 "This is an Elisp library for WebSocket clients to talk to WebSocket
12994 servers, and for WebSocket servers to accept connections from WebSocket
12995 clients. This library is designed to be used by other library writers, to
12996 write applications that use WebSockets, and is not useful by itself.")
12997 (license license:gpl3+)))
12998
12999 (define-public emacs-oauth2
13000 (package
13001 (name "emacs-oauth2")
13002 (version "0.15")
13003 (source
13004 (origin
13005 (method url-fetch)
13006 (uri (string-append "https://elpa.gnu.org/packages/"
13007 "oauth2-" version ".el"))
13008 (sha256
13009 (base32 "0ij17g6i8d4cyzc8v6sy2qglwhzd767331gavll6d507krdh3ca3"))))
13010 (build-system emacs-build-system)
13011 (home-page "https://elpa.gnu.org/packages/oauth2.html")
13012 (synopsis "OAuth 2.0 authorization protocol implementation")
13013 (description
13014 "This package provides an Elisp implementation of the OAuth 2.0 draft.
13015 The main entry point is @code{oauth2-auth-and-store} which will return a token
13016 structure. This token structure can be then used with
13017 @code{oauth2-url-retrieve-synchronously} or @code{oauth2-url-retrieve} to
13018 retrieve any data that need OAuth authentication to be accessed. If the token
13019 needs to be refreshed, the code handles it automatically and stores the new
13020 value of the access token.")
13021 (license license:gpl3+)))
13022
13023 (define-public emacs-auth-source-xoauth2
13024 (package
13025 (name "emacs-auth-source-xoauth2")
13026 (version "1.0")
13027 (source
13028 (origin
13029 (method git-fetch)
13030 (uri (git-reference
13031 (url "https://github.com/ccrusius/auth-source-xoauth2")
13032 (commit (string-append "v" version))))
13033 (file-name (git-file-name name version))
13034 (sha256
13035 (base32 "0nl859csl8xcd6ybpjj15ph8l8fxwkwf45kbylss68alkyf1rl3v"))))
13036 (build-system emacs-build-system)
13037 (home-page "https://github.com/ccrusius/auth-source-xoauth2")
13038 (synopsis "XOAuth2 authentication capabilities for Emacs auth-source")
13039 (description
13040 "This package adds XOAuth2 authentication capabilities to Emacs
13041 auth-source. This integration requires some preliminary work on the users’
13042 part, which includes creating tokens.")
13043 (license license:asl2.0)))
13044
13045 (define-public emacs-circe
13046 (package
13047 (name "emacs-circe")
13048 (version "2.11")
13049 (source
13050 (origin
13051 (method git-fetch)
13052 (uri (git-reference
13053 (url "https://github.com/jorgenschaefer/circe")
13054 (commit (string-append "v" version))))
13055 (file-name (git-file-name name version))
13056 (sha256
13057 (base32 "0cr9flk310yn2jgvj4hbqw9nj5wlfi0fazdkqafzidgz6iq150wd"))))
13058 (build-system emacs-build-system)
13059 (arguments
13060 `(#:tests? #t
13061 #:test-command '("buttercup" "-L" ".")
13062 #:phases
13063 (modify-phases %standard-phases
13064 ;; The HOME environment variable should be set to an existing
13065 ;; directory for the tests to succeed.
13066 (add-before 'check 'set-home
13067 (lambda _
13068 (setenv "HOME" "/tmp")
13069 #t)))))
13070 (native-inputs
13071 `(("emacs-buttercup" ,emacs-buttercup)))
13072 ;; In order to securely connect to an IRC server using TLS, Circe requires
13073 ;; the GnuTLS binary.
13074 (propagated-inputs
13075 `(("gnutls" ,gnutls)))
13076 (home-page "https://github.com/jorgenschaefer/circe")
13077 (synopsis "Client for IRC in Emacs")
13078 (description "Circe is a Client for IRC in Emacs. It integrates well with
13079 the rest of the editor, using standard Emacs key bindings and indicating
13080 activity in channels in the status bar so it stays out of your way unless you
13081 want to use it.")
13082 (license license:gpl3+)))
13083
13084 (define-public emacs-tracking
13085 (package
13086 (inherit emacs-circe)
13087 (name "emacs-tracking")
13088 (arguments
13089 ;; "tracking.el" is a library extracted from Circe package. It requires
13090 ;; "shorten.el".
13091 `(#:include '("^shorten.el$" "^tracking.el$")
13092 ,@(package-arguments emacs-circe)))
13093 (home-page "https://github.com/jorgenschaefer/circe/wiki/Tracking")
13094 (synopsis "Buffer tracking library")
13095 (description "@code{tracking.el} provides a way for different modes to
13096 notify the user that a buffer needs attention. The user then can cycle
13097 through them using @key{C-c C-SPC}.")
13098 (license license:gpl3+)))
13099
13100 (define-public emacs-slack
13101 (let ((commit "a6d9f49bc6161f12c594d25254e77eedf4a67666")
13102 (revision "8"))
13103 (package
13104 (name "emacs-slack")
13105 (version (git-version "0.0.2" revision commit))
13106 (source (origin
13107 (method git-fetch)
13108 (uri (git-reference
13109 (url "https://github.com/yuya373/emacs-slack")
13110 (commit commit)))
13111 (file-name (git-file-name name commit))
13112 (sha256
13113 (base32
13114 "0crjjankqi4bqjk5pdz4r2ixf56n1nnq8ab1gz3sbl3v6as6262w"))))
13115 (build-system emacs-build-system)
13116 (arguments
13117 `(#:phases
13118 (modify-phases %standard-phases
13119 ;; HOME needs to exist for source compilation.
13120 (add-before 'build 'set-HOME
13121 (lambda _ (setenv "HOME" "/tmp") #t)))))
13122 (propagated-inputs
13123 `(("emacs-alert" ,emacs-alert)
13124 ("emacs-emojify" ,emacs-emojify)
13125 ("emacs-helm" ,emacs-helm)
13126 ("emacs-request" ,emacs-request)
13127 ("emacs-websocket" ,emacs-websocket)
13128 ("emacs-oauth2" ,emacs-oauth2)
13129 ("emacs-circe" ,emacs-circe)))
13130 (home-page "https://github.com/yuya373/emacs-slack")
13131 (synopsis "Slack client for Emacs")
13132 (description "This package provides an Emacs client for the Slack
13133 messaging service.")
13134 (license license:gpl3+))))
13135
13136 (define-public emacs-bash-completion
13137 (package
13138 (name "emacs-bash-completion")
13139 (version "3.1.0")
13140 (source
13141 (origin
13142 (method git-fetch)
13143 (uri (git-reference
13144 (url "https://github.com/szermatt/emacs-bash-completion")
13145 (commit (string-append "v" version))))
13146 (file-name (git-file-name name version))
13147 (sha256
13148 (base32 "11j2k3irixp47r2iglxdmjphahqhgnxg98n2xwagwzyq99lsamj4"))))
13149 (inputs `(("bash" ,bash)))
13150 (build-system emacs-build-system)
13151 (arguments
13152 `(#:phases
13153 (modify-phases %standard-phases
13154 (add-after 'unpack 'make-git-checkout-writable
13155 (λ _
13156 (for-each make-file-writable (find-files "."))
13157 #t))
13158 (add-before 'install 'configure
13159 (lambda* (#:key inputs #:allow-other-keys)
13160 (let ((bash (assoc-ref inputs "bash")))
13161 (emacs-substitute-variables "bash-completion.el"
13162 ("bash-completion-prog" (string-append bash "/bin/bash"))))
13163 #t)))))
13164 (home-page "https://github.com/szermatt/emacs-bash-completion")
13165 (synopsis "Bash completion for the shell buffer")
13166 (description
13167 "@code{bash-completion} defines dynamic completion hooks for shell-mode
13168 and shell-command prompts that are based on Bash completion.")
13169 (license license:gpl2+)))
13170
13171 (define-public emacs-easy-kill
13172 (package
13173 (name "emacs-easy-kill")
13174 (version "0.9.3")
13175 (source (origin
13176 (method url-fetch)
13177 (uri (string-append "https://elpa.gnu.org/packages/easy-kill-"
13178 version ".tar"))
13179 (sha256
13180 (base32
13181 "17nw0mglmg877axwg1d0gs03yc0p04lzmd3pl0nsnqbh3303fnqb"))))
13182 (build-system emacs-build-system)
13183 (home-page "https://github.com/leoliu/easy-kill")
13184 (synopsis "Kill and mark things easily in Emacs")
13185 (description
13186 "This package provides commands @code{easy-kill} and @code{easy-mark} to
13187 let users kill or mark things easily.")
13188 (license license:gpl3+)))
13189
13190 (define-public emacs-csv-mode
13191 (package
13192 (name "emacs-csv-mode")
13193 (version "1.12")
13194 (source
13195 (origin
13196 (method url-fetch)
13197 (uri (string-append "https://elpa.gnu.org/packages/"
13198 "csv-mode-" version ".tar"))
13199 (sha256
13200 (base32 "0bya12smlrzwv4cbcmch4kg1fazp4k0ndrh1z17ix9p8c14d0v1j"))))
13201 (build-system emacs-build-system)
13202 (home-page "https://elpa.gnu.org/packages/csv-mode.html")
13203 (synopsis "Major mode for editing comma/char separated values")
13204 (description
13205 "This Emacs package implements CSV mode, a major mode for editing records
13206 in a generalized CSV (character-separated values) format.")
13207 (license license:gpl3+)))
13208
13209 (define-public emacs-transmission
13210 (package
13211 (name "emacs-transmission")
13212 (version "0.12.1")
13213 (source
13214 (origin
13215 (method git-fetch)
13216 (uri (git-reference
13217 (url "https://github.com/holomorph/transmission")
13218 (commit version)))
13219 (file-name (git-file-name name version))
13220 (sha256
13221 (base32 "0kvg2gawsgy440x1fsl2c4pkxwp3zirq9rzixanklk0ryijhd3ry"))))
13222 (build-system emacs-build-system)
13223 (home-page "https://github.com/holomorph/transmission")
13224 (synopsis "Emacs interface to a Transmission session")
13225 (description "This package provides an Emacs interface to interact with a
13226 running session of the Transmission Bittorrent client.
13227
13228 Features:
13229
13230 @itemize
13231 @item List, add, start/stop, verify, remove torrents.
13232 @item Set speed limits, ratio limits, bandwidth priorities, trackers.
13233 @item Navigate to the corresponding file list, torrent info, peer info
13234 contexts.
13235 @item Toggle downloading and set priorities for individual files.
13236 @end itemize\n")
13237 (license license:gpl3+)))
13238
13239 (define-public emacs-polymode
13240 (package
13241 (name "emacs-polymode")
13242 (version "0.2")
13243 (source (origin
13244 (method git-fetch)
13245 (uri (git-reference
13246 (url "https://github.com/polymode/polymode")
13247 (commit (string-append "v" version))))
13248 (file-name (git-file-name name version))
13249 (sha256
13250 (base32
13251 "04v0gnzfsjb50bgly6kvpryx8cyzwjaq2llw4qv9ijw1l6ixmq3b"))))
13252 (build-system emacs-build-system)
13253 (home-page "https://github.com/polymode/polymode")
13254 (synopsis "Framework for multiple Emacs modes based on indirect buffers")
13255 (description
13256 "Polymode is an Emacs package that offers generic support for multiple
13257 major modes inside a single Emacs buffer. It is lightweight, object oriented
13258 and highly extensible. Creating a new polymode typically takes only a few
13259 lines of code. Polymode also provides extensible facilities for external
13260 literate programming tools for exporting, weaving and tangling.")
13261 (license license:gpl3+)))
13262
13263 (define-public emacs-polymode-ansible
13264 (let ((commit "b26094d029e25dc797b94254f797e7807a57e4c8"))
13265 (package
13266 (name "emacs-polymode-ansible")
13267 ;; No upstream version release yet.
13268 (version (git-version "0.1" "1" commit))
13269 (source
13270 (origin
13271 (method git-fetch)
13272 (uri (git-reference
13273 (url "https://gitlab.com/mavit/poly-ansible")
13274 (commit commit)))
13275 (file-name (git-file-name name version))
13276 (sha256
13277 (base32
13278 "055shddqibib3hx2ykwdz910nrqws40cd407mq946l2bf6v87gj6"))))
13279 (build-system emacs-build-system)
13280 (propagated-inputs
13281 `(("emacs-ansible-doc" ,emacs-ansible-doc)
13282 ("emacs-jinja2-mode" ,emacs-jinja2-mode)
13283 ("emacs-polymode" ,emacs-polymode)
13284 ("emacs-yaml-mode" ,emacs-yaml-mode)))
13285 (properties '((upstream-name . "poly-ansible")))
13286 (home-page "https://gitlab.com/mavit/poly-ansible/")
13287 (synopsis "Polymode for Ansible - Jinja2 in YAML")
13288 (description
13289 "Edit YAML files for Ansible containing embedded Jinja2 templating.")
13290 (license license:gpl3+))))
13291
13292 (define-public emacs-powershell
13293 ;; Tagged branch 0.1 is outdated (2015).
13294 (let ((revision "0")
13295 (commit "d1b3f95669343399f199f291ef76c09a0ede5e60"))
13296 (package
13297 (name "emacs-powershell")
13298 (build-system emacs-build-system)
13299 (version (git-version "0.3" revision commit))
13300 (source
13301 (origin
13302 (method git-fetch)
13303 (uri (git-reference
13304 (url "https://github.com/jschaf/powershell.el")
13305 (commit commit)))
13306 (file-name (git-file-name name version))
13307 (sha256
13308 (base32 "1cxhzaaig88zhylyycvb3849r85j1ijqklnh9zbqsfl2zhpb0g5c"))))
13309 (home-page "https://github.com/jschaf/powershell.el")
13310 (synopsis "Emacs mode for editing PowerShell scripts")
13311 (description
13312 "Powershell is an Emacs major mode for editing and running
13313 Microsoft PowerShell files.")
13314 (license license:gpl3+))))
13315
13316 (define-public emacs-polymode-org
13317 (package
13318 (name "emacs-polymode-org")
13319 (version "0.2")
13320 (source
13321 (origin
13322 (method git-fetch)
13323 (uri (git-reference
13324 (url "https://github.com/polymode/poly-org")
13325 (commit (string-append "v" version))))
13326 (file-name (git-file-name name version))
13327 (sha256
13328 (base32
13329 "04x6apjad4kg30456z1j4ipp64yjgkcaim6hqr6bb0rmrianqhck"))))
13330 (build-system emacs-build-system)
13331 (propagated-inputs
13332 `(("emacs-polymode" ,emacs-polymode)))
13333 (properties '((upstream-name . "poly-org")))
13334 (home-page "https://github.com/polymode/poly-org")
13335 (synopsis "Polymode definitions for Org mode buffers")
13336 (description
13337 "Provides definitions for @code{emacs-polymode} to support
13338 @code{emacs-org} buffers. Edit source blocks in an Org mode buffer using the
13339 native modes of the blocks' languages while remaining inside the primary Org
13340 buffer.")
13341 (license license:gpl3+)))
13342
13343 (define-public eless
13344 (package
13345 (name "eless")
13346 (version "0.3")
13347 (source
13348 (origin
13349 (method git-fetch)
13350 (uri (git-reference
13351 (url "https://github.com/kaushalmodi/eless")
13352 (commit (string-append "v" version))))
13353 (file-name (git-file-name name version))
13354 (sha256
13355 (base32 "0jr7vhh4vw69llhi0fh9ljscljkszkj0acdxl04da5hvqv6pnqbb"))))
13356 (build-system trivial-build-system)
13357 (inputs
13358 `(("bash" ,bash)))
13359 (arguments
13360 `(#:modules ((guix build utils))
13361 #:builder
13362 (begin
13363 (use-modules (guix build utils))
13364 (copy-recursively (assoc-ref %build-inputs "source") "source")
13365 (chdir "source")
13366 (substitute* "eless" (("/usr/bin/env bash")
13367 (string-append (assoc-ref %build-inputs "bash")
13368 "/bin/bash")))
13369 (install-file "eless" (string-append %output "/bin"))
13370 (install-file "doc/eless.info" (string-append %output "/share/info"))
13371 #t)))
13372 (home-page "https://github.com/kaushalmodi/eless")
13373 (synopsis "Use Emacs as a paginator")
13374 (description "@code{eless} provides a combination of Bash script
13375 and a minimal Emacs view-mode.
13376
13377 Features:
13378
13379 @itemize
13380 @item Independent of a user’s Emacs config.
13381 @item Customizable via the @code{(locate-user-emacs-file \"elesscfg\")} config.
13382 @item Not require an Emacs server to be already running.
13383 @item Syntax highlighting.
13384 @item Org-mode file rendering.
13385 @item @code{man} page viewer.
13386 @item Info viewer.
13387 @item Dired, wdired, (batch edit symbolic links).
13388 @item Colored diffs, git diff, git log, ls with auto ANSI detection.
13389 @item Filter log files lines matching a regexp.
13390 @item Auto-revert log files similar to @code{tail -f}.
13391 @item Quickly change frame and font sizes.
13392 @end itemize\n")
13393 (license license:expat)))
13394
13395 (define-public emacs-evil-matchit
13396 (package
13397 (name "emacs-evil-matchit")
13398 (version "2.3.9")
13399 (source
13400 (origin
13401 (method git-fetch)
13402 (uri (git-reference
13403 (url "https://github.com/redguardtoo/evil-matchit")
13404 (commit version)))
13405 (file-name (git-file-name name version))
13406 (sha256
13407 (base32 "1jk5qkqz3c4fnh6d2y889k5ycz8ipbkmzk4i8bl86xv9rhis1pv9"))))
13408 (build-system emacs-build-system)
13409 (propagated-inputs
13410 `(("emacs-evil" ,emacs-evil)))
13411 (home-page "https://github.com/redguardtoo/evil-matchit")
13412 (synopsis "Vim matchit ported into Emacs")
13413 (description
13414 "@code{evil-matchit} is a minor mode for jumping between matching tags in
13415 evil mode using @kbd{%}. It is a port of @code{matchit} for Vim.")
13416 (license license:gpl3+)))
13417
13418 (define-public emacs-evil-smartparens
13419 (package
13420 (name "emacs-evil-smartparens")
13421 (version "0.4.0")
13422 (source
13423 (origin
13424 (method git-fetch)
13425 (uri (git-reference
13426 (url "https://github.com/expez/evil-smartparens")
13427 (commit version)))
13428 (file-name (git-file-name name version))
13429 (sha256
13430 (base32 "1di4qz5fbrlwbg16c2j0m7y8zqfxw027qd7zqmc3rwk9znbhg7wl"))))
13431 (build-system emacs-build-system)
13432 (propagated-inputs
13433 `(("emacs-evil" ,emacs-evil)
13434 ("emacs-smartparens" ,emacs-smartparens)))
13435 (home-page "https://github.com/expez/evil-smartparens")
13436 (synopsis "Emacs Evil integration for Smartparens")
13437 (description "@code{emacs-evil-smartparens} is an Emacs minor mode which
13438 makes Evil play nice with Smartparens. Evil is an Emacs minor mode that
13439 emulates Vim features and provides Vim-like key bindings.")
13440 (license license:gpl3+)))
13441
13442 (define-public emacs-evil-quickscope
13443 (package
13444 (name "emacs-evil-quickscope")
13445 (version "0.1.4")
13446 (source
13447 (origin
13448 (method git-fetch)
13449 (uri (git-reference
13450 (url "https://github.com/blorbx/evil-quickscope")
13451 (commit (string-append "v" version))))
13452 (file-name (git-file-name name version))
13453 (sha256
13454 (base32 "1ja9ggj70wf0nmma4xnc1zdzg2crq9h1cv3cj7cgwjmllflgkfq7"))))
13455 (build-system emacs-build-system)
13456 (propagated-inputs
13457 `(("emacs-evil" ,emacs-evil)))
13458 (arguments
13459 `(#:tests? #t
13460 #:test-command '("emacs" "--batch"
13461 "-l" "evil-quickscope-tests.el"
13462 "-f" "ert-run-tests-batch-and-exit")))
13463 (home-page "https://github.com/blorbx/evil-quickscope")
13464 (synopsis "Target highlighting for emacs evil-mode f,F,t and T commands")
13465 (description "@code{emacs-evil-quickscope} highlights targets for Evil
13466 mode’s f,F,t,T keys, allowing for quick navigation within a line. It is a
13467 port of quick-scope for Vim. Evil is an Emacs minor mode that emulates Vim
13468 features and provides Vim-like key bindings.")
13469 (license license:gpl3+)))
13470
13471 (define-public emacs-bongo
13472 (package
13473 (name "emacs-bongo")
13474 (version "1.1")
13475 (source
13476 (origin
13477 (method git-fetch)
13478 (uri (git-reference
13479 (url "https://github.com/dbrock/bongo")
13480 (commit version)))
13481 (file-name (git-file-name name version))
13482 (sha256
13483 (base32 "1nszph9mn98flyhn1jq3y6mdh6jymjkvj5ng36ql016dj92apvhv"))))
13484 (build-system emacs-build-system)
13485 (home-page "https://github.com/dbrock/bongo")
13486 (synopsis "Media player for Emacs")
13487 (description
13488 "This package provides a flexible media player for Emacs. @code{Bongo}
13489 supports multiple backends such as @code{vlc}, @code{mpg123},
13490 @code{ogg123}, @code{speexdec}, @code{timidity}, @code{mikmod} and
13491 @code{afplay}.")
13492 (license license:gpl2+)))
13493
13494 (define-public emacs-groovy-modes
13495 (package
13496 (name "emacs-groovy-modes")
13497 (version "2.0")
13498 (source (origin
13499 (method git-fetch)
13500 (uri (git-reference
13501 (url "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes")
13502 (commit version)))
13503 (file-name (git-file-name name version))
13504 (sha256
13505 (base32
13506 "0c1d4cbnlny8gpcd20zr1wxx6ggf28jgh7sgd5r1skpsvjpbfqx2"))))
13507 (build-system emacs-build-system)
13508 (propagated-inputs
13509 `(("emacs-s" ,emacs-s)))
13510 (home-page "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes")
13511 (synopsis "Groovy related modes for Emacs")
13512 (description
13513 "This package provides @code{groovy-mode} for syntax highlighting in
13514 Groovy source files, REPL integration with run-groovy and Grails project
13515 navigation with the grails mode.")
13516 (license license:gpl3+)))
13517
13518 (define-public emacs-jenkinsfile-mode
13519 (let ((commit "00d259ff9b870d234540e00e1d7c83cccdb063b8")
13520 (revision "1"))
13521 (package
13522 (name "emacs-jenkinsfile-mode")
13523 (version (git-version "0.0.1" revision commit))
13524 (source (origin
13525 (method git-fetch)
13526 (uri (git-reference
13527 (url "https://github.com/john2x/jenkinsfile-mode")
13528 (commit commit)))
13529 (file-name (git-file-name name version))
13530 (sha256
13531 (base32
13532 "0srf6xdjnrd4v4ks9pal7i48wmkcl4q5ry7d0yzfx1c9pz2qg9zx"))))
13533 (propagated-inputs
13534 `(("emacs-groovy-modes" ,emacs-groovy-modes)))
13535 (build-system emacs-build-system)
13536 (home-page "https://github.com/john2x/jenkinsfile-mode/")
13537 (synopsis "Emacs major-mode for editing Jenkinsfile")
13538 (description "This package provides a @code{jenkinsfile-mode} derived
13539 from @code{groovy-mode} for editing Jenkins declarative pipeline files.")
13540 (license license:gpl3+))))
13541
13542 (define-public emacs-org-tree-slide
13543 (let ((commit "036a36eec1cf712d3db155572aed325daa372eb5")
13544 (revision "2"))
13545 (package
13546 (name "emacs-org-tree-slide")
13547 (version (git-version "2.8.4" revision commit))
13548 (source (origin
13549 (method git-fetch)
13550 (uri (git-reference
13551 (url "https://github.com/takaxp/org-tree-slide")
13552 (commit commit)))
13553 (sha256
13554 (base32
13555 "1r8ncx25xmxicgciyv5przp68y8qgy40fm10ba55awvql4xcm0yk"))
13556 (file-name (git-file-name name version))))
13557 (build-system emacs-build-system)
13558 (home-page "https://github.com/takaxp/org-tree-slide")
13559 (synopsis "Presentation tool for org-mode")
13560 (description
13561 "Org-tree-slide provides a slideshow mode to view org-mode files. Use
13562 @code{org-tree-slide-mode} to enter the slideshow mode, and then @kbd{C->} and
13563 @kbd{C-<} to jump to the next and previous slide.")
13564 (license license:gpl3+))))
13565
13566 (define-public emacs-scratch-el
13567 (let ((commit "2cdf2b841ce7a0987093f65b0cc431947549f897")
13568 (revision "1"))
13569 (package
13570 (name "emacs-scratch-el")
13571 (version (git-version "1.2" revision commit))
13572 (source (origin
13573 (method git-fetch)
13574 (uri (git-reference
13575 (url "https://github.com/ieure/scratch-el")
13576 (commit commit)))
13577 (file-name (git-file-name name version))
13578 (sha256
13579 (base32
13580 "0wscsndynjmnliajqaz28r1ww81j8wh84zwaaswx51abhwgl0idf"))))
13581 (build-system emacs-build-system)
13582 (native-inputs
13583 `(("texinfo" ,texinfo)))
13584 (arguments
13585 '(#:phases
13586 (modify-phases %standard-phases
13587 (add-after 'install 'install-doc
13588 (lambda* (#:key outputs #:allow-other-keys)
13589 (unless (invoke "makeinfo" "scratch.texi")
13590 (error "makeinfo failed"))
13591 (install-file "scratch.info"
13592 (string-append (assoc-ref outputs "out")
13593 "/share/info"))
13594 #t)))))
13595 (home-page "https://github.com/ieure/scratch-el/")
13596 (synopsis "Create scratch buffers with the same mode as current buffer")
13597 (description "Scratch is an extension to Emacs that enables one to create
13598 scratch buffers that are in the same mode as the current buffer. This is
13599 notably useful when working on code in some language; you may grab code into a
13600 scratch buffer, and, by virtue of this extension, do so using the Emacs
13601 formatting rules for that language.")
13602 (license license:bsd-2))))
13603
13604 (define-public emacs-kv
13605 (package
13606 (name "emacs-kv")
13607 (version "0.0.19")
13608 (source
13609 (origin
13610 (method git-fetch)
13611 (uri (git-reference
13612 (url "https://github.com/nicferrier/emacs-kv")
13613 (commit "721148475bce38a70e0b678ba8aa923652e8900e")))
13614 (file-name (git-file-name name version))
13615 (sha256
13616 (base32
13617 "0r0lz2s6gvy04fwnafai668jsf4546h4k6zd6isx5wpk0n33pj5m"))))
13618 (build-system emacs-build-system)
13619 (arguments
13620 `(#:tests? #t
13621 #:test-command '("emacs" "--batch" "-l" "kv-tests.el"
13622 "-f" "ert-run-tests-batch-and-exit")))
13623 (home-page "https://github.com/nicferrier/emacs-kv")
13624 (synopsis "Key/Value data structures library for Emacs Lisp")
13625 (description "@code{emacs-kv} is a collection of tools for dealing with
13626 key/value data structures such as plists, alists and hash-tables in Emacs
13627 Lisp.")
13628 (license license:gpl3+)))
13629
13630 (define-public emacs-esxml
13631 (package
13632 (name "emacs-esxml")
13633 (version "0.3.4")
13634 (source (origin
13635 (method git-fetch)
13636 (uri (git-reference
13637 (url "https://github.com/tali713/esxml")
13638 (commit version)))
13639 (file-name (git-file-name name version))
13640 (sha256
13641 (base32
13642 "00vv8a75wdklygdyr4km9mc2ismxak69c45jmcny41xl44rp9x8m"))))
13643 (build-system emacs-build-system)
13644 (arguments
13645 `(#:phases
13646 (modify-phases %standard-phases
13647 (add-after 'unpack 'fix-sources
13648 (lambda _
13649 ;; See: https://github.com/tali713/esxml/pull/28.
13650 (substitute* "css-lite.el"
13651 ((";;; main interface")
13652 (string-append ";;; main interface\n"
13653 "(require 'cl-lib)"))
13654 (("mapcan")
13655 "cl-mapcan")
13656 (("',\\(cl-mapcan #'process-css-rule rules\\)")
13657 "(cl-mapcan #'process-css-rule ',rules)"))
13658 (substitute* "esxml-form.el"
13659 ((",esxml-form-field-defn")
13660 "#'esxml-form-field-defn"))
13661 ;; See: https://github.com/tali713/esxml/issues/25
13662 (delete-file "esxpath.el")
13663 #t)))))
13664 (propagated-inputs
13665 `(("emacs-kv" ,emacs-kv)))
13666 (home-page "https://github.com/tali713/esxml/")
13667 (synopsis "SXML for EmacsLisp")
13668 (description "This is XML/XHTML done with S-Expressions in EmacsLisp.
13669 Simply, this is the easiest way to write HTML or XML in Lisp. This library
13670 uses the native form of XML representation as used by many libraries already
13671 included within Emacs. See @code{esxml-to-xml} for a concise description of
13672 the format.")
13673 (license license:gpl3+)))
13674
13675 (define-public emacs-nov-el
13676 (package
13677 (name "emacs-nov-el")
13678 (version "0.3.1")
13679 (source
13680 (origin
13681 (method git-fetch)
13682 (uri (git-reference
13683 (url "https://depp.brause.cc/nov.el.git")
13684 (commit version)))
13685 (file-name (git-file-name name version))
13686 (sha256
13687 (base32 "13r7lvyyyv62m57m4s4xjs4qz2ckhqk6ib514px7qzc7mdzcz9i9"))))
13688 (build-system emacs-build-system)
13689 (arguments
13690 `(#:phases
13691 (modify-phases %standard-phases
13692 (add-after 'unpack 'embed-path-to-unzip
13693 (lambda _
13694 (substitute* "nov.el"
13695 (("\\(executable-find \"unzip\"\\)")
13696 (string-append "\"" (which "unzip") "\"")))
13697 #t)))))
13698 (propagated-inputs
13699 `(("emacs-dash" ,emacs-dash)
13700 ("emacs-esxml" ,emacs-esxml)))
13701 (inputs
13702 `(("unzip" ,unzip)))
13703 (home-page "https://depp.brause.cc/nov.el/")
13704 (synopsis "Major mode for reading EPUBs in Emacs")
13705 (description "@code{nov.el} provides a major mode for reading EPUB
13706 documents.
13707
13708 Features:
13709
13710 @itemize
13711 @item Basic navigation (jump to TOC, previous/next chapter)
13712 @item Remembering and restoring the last read position
13713 @item Jump to next chapter when scrolling beyond end
13714 @item Renders EPUB2 (@code{.ncx}) and EPUB3 (@code{<nav>}) TOCs
13715 @item Hyperlinks to internal and external targets
13716 @item Supports textual and image documents
13717 @item View source of document files
13718 @item Metadata display
13719 @item Image rescaling
13720 @end itemize
13721 ")
13722 (license license:gpl3+)))
13723
13724 (define-public epipe
13725 (package
13726 (name "epipe")
13727 (version "0.1.0")
13728 (source
13729 (origin
13730 (method git-fetch)
13731 (uri (git-reference
13732 (url "https://github.com/cute-jumper/epipe")
13733 (commit version)))
13734 (file-name (git-file-name name version))
13735 (sha256
13736 (base32 "0lkisi1s7sn12nx8zh58qmsxwnk1rjwryj18wcbr148xqz3swg57"))))
13737 (build-system trivial-build-system)
13738 (inputs
13739 `(("bash" ,bash)
13740 ("perl" ,perl)))
13741 (arguments
13742 `(#:modules
13743 ((guix build utils))
13744 #:builder
13745 (begin
13746 (use-modules (guix build utils))
13747 ;; Extract source.
13748 (copy-recursively (assoc-ref %build-inputs "source") "source")
13749 (chdir "source")
13750 ;; Patch shebangs.
13751 (substitute* "epipe"
13752 (("/usr/bin/env bash")
13753 (string-append (assoc-ref %build-inputs "bash") "/bin/bash")))
13754 (patch-shebang "epipe.pl"
13755 (list (string-append (assoc-ref %build-inputs "perl")
13756 "/bin")))
13757 ;; Install.
13758 (for-each (lambda (file)
13759 (install-file file (string-append %output "/bin")))
13760 '("epipe" "epipe.pl"))
13761 #t)))
13762 (home-page "https://github.com/cute-jumper/epipe")
13763 (synopsis "Pipe to the @code{emacsclient}")
13764 (description "@code{epipe} provides an utility to use your editor in
13765 the pipeline, featuring the support for running @code{emacsclient}.")
13766 (license license:gpl3+)))
13767
13768 (define-public emacs-hcl-mode
13769 (package
13770 (name "emacs-hcl-mode")
13771 (version "0.03")
13772 (source
13773 (origin
13774 (method git-fetch)
13775 (uri (git-reference
13776 (url "https://github.com/syohex/emacs-hcl-mode")
13777 (commit version)))
13778 (file-name (git-file-name name version))
13779 (sha256
13780 (base32 "0jqrgq15jz6pvx38pnwkizzfiih0d3nxqphyrc92nqpcyimg8b6g"))))
13781 (build-system emacs-build-system)
13782 (home-page "https://github.com/syohex/emacs-hcl-mode")
13783 (synopsis "Major mode for the Hashicorp Configuration Language")
13784 (description
13785 "@code{emacs-hcl-mode} provides an Emacs major mode for working with
13786 @acronym{HCL, Hashicorp Configuration Language}. It provides syntax
13787 highlighting and indentation support.")
13788 (license license:gpl3+)))
13789
13790 (define-public emacs-terraform-mode
13791 (package
13792 (name "emacs-terraform-mode")
13793 (version "0.06")
13794 (source
13795 (origin
13796 (method git-fetch)
13797 (uri (git-reference
13798 (url "https://github.com/syohex/emacs-terraform-mode")
13799 (commit version)))
13800 (file-name (git-file-name name version))
13801 (sha256
13802 (base32 "05hn8kskx9lcgn7bzgam99c629zlryir2pickwrqndacjrqpdykx"))))
13803 (build-system emacs-build-system)
13804 (propagated-inputs
13805 `(("emacs-hcl-mode" ,emacs-hcl-mode)))
13806 (home-page "https://github.com/syohex/emacs-terraform-mode")
13807 (synopsis "Major mode for Terraform")
13808 (description
13809 "@code{emacs-terraform-mode} provides a major mode for working with
13810 @uref{https://www.terraform.io/, Terraform} configuration files. Most of the
13811 functionality is inherited from @code{hcl-mode}.")
13812 (license license:gpl3+)))
13813
13814 (define-public emacs-exec-path-from-shell
13815 (package
13816 (name "emacs-exec-path-from-shell")
13817 (version "1.12")
13818 (source
13819 (origin
13820 (method git-fetch)
13821 (uri (git-reference
13822 (url "https://github.com/purcell/exec-path-from-shell")
13823 (commit version)))
13824 (file-name (git-file-name name version))
13825 (sha256
13826 (base32
13827 "1ga8bpxngd3ph2hdiik92c612ki71qxw818i6rgx6f6a5r0sbf3p"))))
13828 (build-system emacs-build-system)
13829 (home-page "https://github.com/purcell/exec-path-from-shell")
13830 (synopsis "Get environment variables such as @var{PATH} from the shell")
13831 (description
13832 "This library allows the user to set Emacs @var{exec-path} and @var{PATH}
13833 from the shell @var{PATH}, so that @code{shell-command}, @code{compile} and
13834 the like work as expected on systems on which Emacs is not guaranteed to
13835 inherit a login shell's environment variables. It also allows other
13836 environment variables to be retrieved from the shell, so that Emacs will see
13837 the same values you get in a terminal.")
13838 (license license:gpl3+)))
13839
13840 (define-public emacs-frog-menu
13841 (package
13842 (name "emacs-frog-menu")
13843 (version "0.2.11")
13844 (source
13845 (origin
13846 (method url-fetch)
13847 (uri (string-append "https://elpa.gnu.org/packages/"
13848 "frog-menu-" version ".el"))
13849 (sha256
13850 (base32 "06iw11z61fd0g4w3562k3smcmzaq3nivvvc6gzm8y8k5pcrqzdff"))))
13851 (build-system emacs-build-system)
13852 (propagated-inputs
13853 `(("emacs-avy" ,emacs-avy)
13854 ("emacs-posframe" ,emacs-posframe)))
13855 (home-page "https://github.com/clemera/frog-menu")
13856 (synopsis "Quickly pick items from ad hoc menus")
13857 (description
13858 "This package provides a popup offering a preview of a list of candidates
13859 on which user-defined dispatch actions can act.")
13860 (license license:gpl3+)))
13861
13862 (define-public emacs-frog-jump-buffer
13863 (let ((commit "2d7b342785ae27d45f5d252272df6eb773c78e20")
13864 (revision "1"))
13865 (package
13866 (name "emacs-frog-jump-buffer")
13867 (version (git-version "0.1.4" revision commit))
13868 (source
13869 (origin
13870 (method git-fetch)
13871 (uri (git-reference
13872 (url "https://github.com/waymondo/frog-jump-buffer")
13873 (commit commit)))
13874 (file-name (git-file-name name version))
13875 (sha256
13876 (base32
13877 "1z00by8hiss1r2lwmzrl8pnz6jykia2849dqqm4l3z5rf6lwvc0f"))))
13878 (build-system emacs-build-system)
13879 (propagated-inputs
13880 `(("emacs-dash" ,emacs-dash)
13881 ("emacs-frog-menu" ,emacs-frog-menu)
13882 ("emacs-avy" ,emacs-avy)))
13883 (home-page "https://github.com/waymondo/frog-jump-buffer")
13884 (synopsis "Jump to any Emacs buffer with minimal keystrokes")
13885 (description
13886 "This package provides a preview window of buffers that can be switched
13887 to with quicklink-style selections.")
13888 (license license:gpl3+))))
13889
13890 (define-public emacs-deft
13891 (package
13892 (name "emacs-deft")
13893 (version "0.8")
13894 (source
13895 (origin
13896 (method git-fetch)
13897 (uri (git-reference
13898 (url "https://github.com/jrblevin/deft")
13899 (commit (string-append "v" version))))
13900 (file-name (git-file-name name version))
13901 (sha256
13902 (base32
13903 "0z7cilgiz6krvl5h2z72hkch43qxmypb0k6p5vxn5lx1p6v0mrf2"))))
13904 (build-system emacs-build-system)
13905 (home-page "https://jblevins.org/projects/deft/")
13906 (synopsis "Quickly browse, filter, and edit plain text notes")
13907 (description
13908 "Deft is an Emacs mode for quickly browsing, filtering, and editing
13909 directories of plain text notes, inspired by Notational Velocity.")
13910 (license license:bsd-3)))
13911
13912 (define-public emacs-anzu
13913 (package
13914 (name "emacs-anzu")
13915 (version "0.62")
13916 (source
13917 (origin
13918 (method git-fetch)
13919 (uri (git-reference
13920 (url "https://github.com/syohex/emacs-anzu")
13921 (commit version)))
13922 (file-name (git-file-name name version))
13923 (sha256
13924 (base32 "1lzvc0ihcbplir4hqfyxfqpsd78arz15gk92kmq4f8ggbkl37fan"))))
13925 (build-system emacs-build-system)
13926 (home-page "https://github.com/syohex/emacs-anzu")
13927 (synopsis "Show number of matches in mode-line while searching")
13928 (description
13929 "Anzu provides a minor mode which displays \"current match/total
13930 matches\" in the mode line in various search modes. This is an Emacs port of
13931 Anzu.zim.")
13932 (license license:gpl3+)))
13933
13934 (define-public emacs-ascii-art-to-unicode
13935 (package
13936 (name "emacs-ascii-art-to-unicode")
13937 (version "1.12")
13938 (source
13939 (origin
13940 (method url-fetch)
13941 (uri (string-append "https://elpa.gnu.org/packages/ascii-art-to-unicode-"
13942 version ".el"))
13943 (sha256
13944 (base32
13945 "1w9h2lyriafxj71r79774gh822cz8mry3gdfzyj6ym6v9mvqypna"))))
13946 (build-system emacs-build-system)
13947 (home-page "https://elpa.gnu.org/packages/ascii-art-to-unicode.html")
13948 (synopsis "ASCII to Unicode art converter for Emacs")
13949 (description "This Emacs package provides the commands @command{aa2u} and
13950 @command{aa2u-rectangle}. Both of these commands can be used to convert
13951 simple ASCII art line drawings to Unicode; the former works on the active
13952 region of the buffer, while the latter works on rectangular selections.")
13953 (license license:gpl3+)))
13954
13955 (define-public emacs-emmet-mode
13956 (let ((commit "1acb821e0142136344ccf40c1e5fb664d7db2e70")
13957 (revision "1"))
13958 (package
13959 (name "emacs-emmet-mode")
13960 (version (git-version "1.0.8" revision commit))
13961 (source (origin
13962 (method git-fetch)
13963 (uri (git-reference
13964 (url "https://github.com/smihica/emmet-mode")
13965 (commit commit)))
13966 (file-name (git-file-name name version))
13967 (sha256
13968 (base32
13969 "1p25h191bm0h5b3w5apg7wks51k7pb7h4dlww4jbl9ri4d33fzcl"))))
13970 (build-system emacs-build-system)
13971 (home-page "https://github.com/smihica/emmet-mode")
13972 (synopsis "Unofficial Emmet's support for Emacs")
13973 (description
13974 "Unfold CSS-selector-like expressions to markup. It is intended to be
13975 used with SGML-like languages: XML, HTML, XHTML, XSL, etc.")
13976 (license license:gpl3+))))
13977
13978 (define-public emacs-ergoemacs-mode
13979 (let ((commit "3ce23bba3cb50562693860f87f3528c471d603ba")
13980 (revision "1"))
13981 (package
13982 (name "emacs-ergoemacs-mode")
13983 (version (git-version "5.16.10.12" revision commit))
13984 (source
13985 (origin
13986 (method git-fetch)
13987 (uri (git-reference
13988 (url "https://github.com/ergoemacs/ergoemacs-mode")
13989 (commit commit)))
13990 (file-name (git-file-name name version))
13991 (sha256
13992 (base32
13993 "1s3b9bridl78hh1mxmdk9nqlmqhibbaxk0a1cixmsf23s06w8w6l"))))
13994 (build-system emacs-build-system)
13995 (propagated-inputs
13996 `(("emacs-undo-tree" ,emacs-undo-tree)))
13997 (home-page "https://ergoemacs.github.io/")
13998 (synopsis "Emacs mode based on common modern interface and ergonomics")
13999 (description
14000 "This package provides an efficient Emacs keybinding set based on
14001 statistics of command frequency, and supports common shortcuts for open,
14002 close, copy, cut, paste, undo, redo.")
14003 (license license:gpl3+))))
14004
14005 (define-public emacs-password-store
14006 (package
14007 (name "emacs-password-store")
14008 (version "1.7.3")
14009 (source (origin
14010 (method url-fetch)
14011 (uri
14012 (string-append "https://git.zx2c4.com/password-store/snapshot/"
14013 "password-store-" version ".tar.xz"))
14014 (sha256
14015 (base32
14016 "1x53k5dn3cdmvy8m4fqdld4hji5n676ksl0ql4armkmsds26av1b"))))
14017 (build-system emacs-build-system)
14018 (arguments
14019 `(#:phases
14020 (modify-phases %standard-phases
14021 (add-after 'unpack 'extract-el-file
14022 (lambda _
14023 (copy-file "contrib/emacs/password-store.el" "password-store.el")
14024 (delete-file-recursively "contrib")
14025 (delete-file-recursively "man")
14026 (delete-file-recursively "src")
14027 (delete-file-recursively "tests"))))))
14028 (propagated-inputs
14029 `(("emacs-f" ,emacs-f)
14030 ("emacs-s" ,emacs-s)
14031 ("emacs-with-editor" ,emacs-with-editor)
14032 ("password-store" ,password-store)))
14033 (home-page "https://git.zx2c4.com/password-store/tree/contrib/emacs")
14034 (synopsis "Password store (pass) support for Emacs")
14035 (description
14036 "This package provides functions for working with pass (\"the
14037 standard Unix password manager\").")
14038 (license license:gpl2+)))
14039
14040 (define-public emacs-auth-source-pass
14041 (let ((commit "847a1f54ed48856b4dfaaa184583ef2c84173edf")
14042 (revision "2"))
14043 (package
14044 (name "emacs-auth-source-pass")
14045 (version (git-version "5.0.0" revision commit))
14046 (source
14047 (origin
14048 (method git-fetch)
14049 (uri (git-reference
14050 (url "https://github.com/DamienCassou/auth-password-store")
14051 (commit commit)))
14052 (file-name (git-file-name name version))
14053 (sha256
14054 (base32 "0g48z5w6n3c54zqfpx65dfyl9jqbl15idvbb1hhw2pd9f9r8fykk"))))
14055 (build-system emacs-build-system)
14056 (arguments
14057 `(#:tests? #t
14058 #:test-command '("emacs" "--batch"
14059 "-L" "."
14060 "-l" "test/auth-source-pass-tests.el"
14061 "-f" "ert-run-tests-batch-and-exit")))
14062 (home-page "https://github.com/DamienCassou/auth-password-store")
14063 (synopsis "Integrate @code{auth-source} with @code{password-store}")
14064 (description "This package helps Emacs integrate with the Unix
14065 @code{password-store} application.")
14066 (license license:gpl3+))))
14067
14068 (define-public emacs-pass
14069 (package
14070 (name "emacs-pass")
14071 (version "2.0")
14072 (source
14073 (origin
14074 (method git-fetch)
14075 (uri (git-reference
14076 (url "https://github.com/NicolasPetton/pass")
14077 (commit version)))
14078 (file-name (git-file-name name version))
14079 (sha256
14080 (base32 "0jc8j421mlflspg24jvrqc2n3y5n3cpk3hjy560il8g36xi1049p"))))
14081 (build-system emacs-build-system)
14082 (propagated-inputs
14083 `(("emacs-password-store" ,emacs-password-store)
14084 ("emacs-f" ,emacs-f)))
14085 (home-page "https://github.com/NicolasPetton/pass")
14086 (synopsis "Major mode for @file{password-store.el}")
14087 (description "This is a major mode for managing password-store (pass)
14088 keychains. The keychain entries are displayed in a directory-like structure
14089 and can be consulted and modified.")
14090 (license license:gpl3+)))
14091
14092 (define-public emacs-psc-ide
14093 ;; There is no proper release. The base version is extracted from the
14094 ;; "Version" keyword in the main file.
14095 (let ((commit "7fc2b841be25f5bc5e1eb7d0634436181c38b3fe")
14096 (revision "1"))
14097 (package
14098 (name "emacs-psc-ide")
14099 (version (git-version "0.1.0" revision commit))
14100 (source
14101 (origin
14102 (method git-fetch)
14103 (uri
14104 (git-reference
14105 (url "https://github.com/purescript-emacs/psc-ide-emacs")
14106 (commit commit)))
14107 (file-name (git-file-name name version))
14108 (sha256
14109 (base32 "0r0fymyai30jimm34z1cmav4wgij8ci6s1d9y7qigygfbbfrdsmj"))))
14110 (build-system emacs-build-system)
14111 (propagated-inputs
14112 `(("emacs-company" ,emacs-company)
14113 ("emacs-dash" ,emacs-dash)
14114 ("emacs-flycheck" ,emacs-flycheck)
14115 ("emacs-let-alist" ,emacs-let-alist)
14116 ("emacs-s" ,emacs-s)))
14117 (home-page "https://github.com/purescript-emacs/psc-ide-emacs")
14118 (synopsis "Emacs integration for PureScript's psc-ide tool")
14119 (description
14120 "This package provices Emacs integration for @code{psc-ide}, an IDE
14121 protocol for PureScript programming language. It features:
14122
14123 @itemize
14124 @item Completions
14125 @item Type at point
14126 @item Go to definition
14127 @item Automatic imports
14128 @item Case split
14129 @item Build system integration, and
14130 @item Flycheck support
14131 @end itemize")
14132 (license license:gpl3+))))
14133
14134 (define-public emacs-evil-anzu
14135 (package
14136 (name "emacs-evil-anzu")
14137 (version "0.03")
14138 (source
14139 (origin
14140 (method git-fetch)
14141 (uri (git-reference
14142 (url "https://github.com/syohex/emacs-evil-anzu")
14143 (commit version)))
14144 (file-name (git-file-name name version))
14145 (sha256
14146 (base32 "0lw7fg4gqwj30r0l6k2ni36sxqkf65zf0d0z3rxnpwbxlf8dlkrr"))))
14147 (build-system emacs-build-system)
14148 (propagated-inputs
14149 `(("emacs-evil" ,emacs-evil)
14150 ("emacs-anzu" ,emacs-anzu)))
14151 (home-page "https://github.com/syohex/emacs-evil-anzu")
14152 (synopsis "Anzu for evil-mode")
14153 (description "@code{anzu} provides a minor mode that displays the current
14154 match and total match information in the mode-line in various search modes.")
14155 (license license:gpl3+)))
14156
14157 (define-public emacs-pg
14158 (let ((commit "4f6516ec3946d95dcef49abb6703cc89ecb5183d"))
14159 (package
14160 (name "emacs-pg")
14161 (version (git-version "0.1" "1" commit))
14162 (source (origin
14163 (method git-fetch)
14164 (uri (git-reference (url "https://github.com/cbbrowne/pg.el")
14165 (commit commit)))
14166 (file-name (git-file-name name version))
14167 (sha256
14168 (base32
14169 "1zh7v4nnpzvbi8yj1ynlqlawk5bmlxi6s80b5f2y7hkdqb5q26k0"))))
14170 (build-system emacs-build-system)
14171 (home-page "https://github.com/cbbrowne/pg.el")
14172 (synopsis "Emacs Lisp interface for PostgreSQL")
14173 (description
14174 "This package provides an Emacs Lisp interface for PostgreSQL.")
14175 (license license:gpl3+))))
14176
14177 (define-public emacs-finalize
14178 (package
14179 (name "emacs-finalize")
14180 (version "2.0.0")
14181 (source
14182 (origin
14183 (method git-fetch)
14184 (uri (git-reference
14185 (url "https://github.com/skeeto/elisp-finalize")
14186 (commit version)))
14187 (file-name (git-file-name name version))
14188 (sha256
14189 (base32 "1gvlm4i62af5jscwz0jccc8ra0grprxpg2rlq91d5nn8dn5lpy79"))))
14190 (build-system emacs-build-system)
14191 (home-page "https://github.com/skeeto/elisp-finalize")
14192 (synopsis "Finalizers for Emacs Lisp")
14193 (description
14194 "This package runs a callback (a finalizer)
14195 after its registered lisp object has been garbage collected. This allows
14196 extra resources, such as buffers and processes, to be cleaned up after the
14197 object has been freed.")
14198 (license license:unlicense)))
14199
14200 (define-public emacs-emacsql
14201 (package
14202 (name "emacs-emacsql")
14203 (version "3.0.0")
14204 (source (origin
14205 (method git-fetch)
14206 (uri (git-reference
14207 (url "https://github.com/skeeto/emacsql")
14208 (commit (string-append version))))
14209 (file-name (git-file-name name version))
14210 (sha256
14211 (base32
14212 "1c84gxr1majqj4b59wgdy3lzm3ap66w9qsrnkx8hdbk9895ak81g"))))
14213 (build-system emacs-build-system)
14214 (arguments
14215 `(#:modules ((guix build emacs-build-system)
14216 (guix build utils)
14217 (guix build emacs-utils)
14218 (srfi srfi-26))
14219 #:phases
14220 (modify-phases %standard-phases
14221 (delete 'build) ;‘build-emacsql-sqlite’ compiles ‘*.el’ files.
14222 (add-before 'install 'patch-elisp-shell-shebangs
14223 (lambda _
14224 (substitute* (find-files "." "\\.el")
14225 (("/bin/sh") (which "sh")))
14226 #t))
14227 (add-after 'patch-elisp-shell-shebangs 'setenv-shell
14228 (lambda _
14229 (setenv "SHELL" "sh")))
14230 (add-after 'setenv-shell 'build-emacsql-sqlite
14231 (lambda _
14232 (invoke "make" "binary" "CC=gcc")))
14233 (add-after 'build-emacsql-sqlite 'install-emacsql-sqlite
14234 ;; This build phase installs emacs-emacsql binary.
14235 (lambda* (#:key outputs #:allow-other-keys)
14236 (install-file "sqlite/emacsql-sqlite"
14237 (string-append (assoc-ref outputs "out")
14238 "/bin"))
14239 #t))
14240 (add-after 'install-emacsql-sqlite 'patch-emacsql-sqlite.el
14241 ;; This build phase removes interactive prompts
14242 ;; and makes sure Emacs look for binaries in the right places.
14243 (lambda* (#:key outputs #:allow-other-keys)
14244 (let ((file "emacsql-sqlite.el"))
14245 (chmod file #o644)
14246 (emacs-substitute-sexps file
14247 ;; Make sure Emacs looks for ‘GCC’ binary in the right place.
14248 ("(executable-find" (which "gcc"))
14249 ;; Make sure Emacs looks for ‘emacsql-sqlite’ binary
14250 ;; in the right place.
14251 ("(defvar emacsql-sqlite-executable"
14252 (string-append (assoc-ref outputs "out")
14253 "/bin/emacsql-sqlite"))))))
14254 (replace 'install
14255 (lambda* (#:key outputs #:allow-other-keys)
14256 (let* ((out (assoc-ref outputs "out")))
14257 (install-file "sqlite/emacsql-sqlite"
14258 (string-append out "/bin"))
14259 (for-each (cut install-file <>
14260 (string-append out "/share/emacs/site-lisp"))
14261 (find-files "." "\\.elc*$")))
14262 #t)))))
14263 (inputs
14264 `(("emacs-minimal" ,emacs-minimal)
14265 ("mariadb" ,mariadb "lib")
14266 ("mariadb-dev" ,mariadb "dev")
14267 ("postgresql" ,postgresql)))
14268 (propagated-inputs
14269 `(("emacs-finalize" ,emacs-finalize)
14270 ("emacs-pg" ,emacs-pg)))
14271 (home-page "https://github.com/skeeto/emacsql")
14272 (synopsis "Emacs high-level SQL database front-end")
14273 (description "Any readable Lisp value can be stored as a value in EmacSQL,
14274 including numbers, strings, symbols, lists, vectors, and closures. EmacSQL
14275 has no concept of @code{TEXT} values; it's all just Lisp objects. The Lisp
14276 object @code{nil} corresponds 1:1 with @code{NULL} in the database.")
14277 (license license:gpl3+)))
14278
14279 (define-public emacs-emacsql-sqlite3
14280 (package
14281 (name "emacs-emacsql-sqlite3")
14282 (version "1.0.1")
14283 (source (origin
14284 (method git-fetch)
14285 (uri (git-reference
14286 (url "https://github.com/cireu/emacsql-sqlite3")
14287 (commit version)))
14288 (file-name (git-file-name name version))
14289 (sha256
14290 (base32
14291 "1yy9y27rckm776jnl2rh1fz3bh09690xwzq7102vlw7xkb9s7jhj"))))
14292 (build-system emacs-build-system)
14293 (native-inputs
14294 `(("ert-runner" ,emacs-ert-runner)))
14295 (inputs
14296 `(("sqlite" ,sqlite)))
14297 (propagated-inputs
14298 `(("emacs-emacsql" ,emacs-emacsql)))
14299 (arguments
14300 `(#:tests? #t
14301 #:test-command '("emacs" "-Q" "--batch" "-L" "."
14302 "--load" "emacsql-sqlite3-test.el"
14303 "-f" "ert-run-tests-batch-and-exit")
14304 #:phases
14305 (modify-phases %standard-phases
14306 (add-after 'unpack 'embed-path-to-sqlite3
14307 (lambda _
14308 (substitute* "emacsql-sqlite3.el"
14309 (("\\(executable-find \"sqlite3\"\\)")
14310 (string-append "\"" (which "sqlite3") "\"")))
14311 #t)))))
14312 (home-page "https://github.com/cireu/emacsql-sqlite3")
14313 (synopsis "EmacSQL backend for SQLite")
14314 (description "This is yet another EmacSQL backend for SQLite which uses
14315 official @command{sqlite3} executable to access SQL database.")
14316 (license license:gpl3+)))
14317
14318 (define-public emacs-closql
14319 ;; Take a commit newer than 1.0.0 release because of Emacs upgrade to 26.3.
14320 (let ((commit "70b98dbae53611d10a461d9b4a6f71086910dcef"))
14321 (package
14322 (name "emacs-closql")
14323 (version (git-version "1.0.0" "1" commit))
14324 (source
14325 (origin
14326 (method git-fetch)
14327 (uri (git-reference
14328 (url "https://github.com/emacscollective/closql")
14329 (commit commit)))
14330 (file-name (git-file-name name version))
14331 (sha256
14332 (base32
14333 "1wvhrihg663f61yzc7f0vha2abjdnlwbk0gjcwakdfk1bhwf5ikh"))))
14334 (build-system emacs-build-system)
14335 (propagated-inputs
14336 `(("emacs-emacsql" ,emacs-emacsql)))
14337 (home-page "https://github.com/emacscollective/closql")
14338 (synopsis "Store EIEIO objects using EmacSQL")
14339 (description
14340 "This package stores uniform EIEIO objects in an EmacSQL
14341 database. SQLite is used as backend. This library imposes some restrictions
14342 on what kind of objects can be stored; it isn't intended to store arbitrary
14343 objects. All objects have to share a common superclass and subclasses cannot
14344 add any additional instance slots.")
14345 (license license:gpl3))))
14346
14347 (define-public emacs-epkg
14348 (package
14349 (name "emacs-epkg")
14350 (version "3.2.2")
14351 (source
14352 (origin
14353 (method git-fetch)
14354 (uri (git-reference
14355 (url "https://github.com/emacscollective/epkg")
14356 (commit (string-append "v" version))))
14357 (file-name (git-file-name name version))
14358 (sha256
14359 (base32
14360 "1pxz611qb3m33r6343h0xhwqvvhjl131zyc2klplzgb23rkm8lk0"))))
14361 (build-system emacs-build-system)
14362 (propagated-inputs
14363 `(("emacs-closql" ,emacs-closql)
14364 ("emacs-dash" ,emacs-dash)))
14365 (home-page "https://emacsmirror.net")
14366 (synopsis "Browse the Emacsmirror package database")
14367 (description "This package provides access to a local copy of the
14368 Emacsmirror package database. It provides low-level functions for querying
14369 the database and a @file{package.el} user interface for browsing the database.
14370 Epkg itself is not a package manager.
14371
14372 Getting a local copy:
14373
14374 @example
14375 git clone https://github.com/emacsmirror/epkgs.git ~/.emacs.d/epkgs
14376 cd ~/.emacs.d/epkgs
14377 git submodule init
14378 git config --global url.https://github.com/.insteadOf git@@github.com:
14379 git submodule update
14380 @end example
14381
14382 Some submodule may be missing. In this case Git will prompt for a GitHub user
14383 name and password. To skip it press a @key{Return} key.
14384
14385 You could get a Epkg package list by invoking @code{epkg-list-packages} in
14386 Emacs.")
14387 (license license:gpl3+)))
14388
14389 (define-public emacs-elisp-slime-nav
14390 (package
14391 (name "emacs-elisp-slime-nav")
14392 (version "0.9")
14393 (source
14394 (origin
14395 (method git-fetch)
14396 (uri (git-reference
14397 (url "https://github.com/purcell/elisp-slime-nav")
14398 (commit version)))
14399 (file-name (git-file-name name version))
14400 (sha256
14401 (base32 "11vyy0bvzbs1h1kggikrvhd658j7c730w0pdp6qkm60rigvfi1ih"))))
14402 (build-system emacs-build-system)
14403 (home-page "https://github.com/purcell/elisp-slime-nav")
14404 (synopsis "Make @code{M-.} and @code{M-,} work for elisp like they do in SLIME")
14405 (description
14406 "This package provides SLIME's convenient @code{M-.}and @code{M-,} navigation
14407 in @code{emacs-lisp-mode}, together with an elisp equivalent of
14408 @code{slime-describe-symbol}.")
14409 (license license:gpl3+)))
14410
14411 (define-public emacs-dedicated
14412 (package
14413 (name "emacs-dedicated")
14414 (version "1.0.0")
14415 (source
14416 (origin
14417 (method git-fetch)
14418 (uri (git-reference
14419 (url "https://github.com/emacsorphanage/dedicated")
14420 (commit version)))
14421 (file-name (git-file-name name version))
14422 (sha256
14423 (base32 "0pba9s0h37sxyqh733vi6k5raa4cs7aradipf3826inw36jcw414"))))
14424 (build-system emacs-build-system)
14425 (home-page "https://github.com/emacsorphanage/dedicated")
14426 (synopsis "Emacs minor mode for toggling a windows's \"dedicated\" flag")
14427 (description
14428 "This simple Emacs minor mode allows you to toggle a window's
14429 \"dedicated\" flag. When a window is \"dedicated\", Emacs will not select
14430 files into that window. This can be quite handy since many commands will use
14431 another window to show results (compilation mode, starting info, and so on).
14432 A dedicated window won't be used for such a purpose. For details, please read
14433 the source file.")
14434 (license license:gpl2+)))
14435
14436 (define-public emacs-nnreddit
14437 (let ((commit "9843f99d01fd8f1eea2fc685965a7c7f4eeb187a")
14438 (revision "1"))
14439 (package
14440 (name "emacs-nnreddit")
14441 (version (string-append "0.0.1-" revision "."
14442 (string-take commit 7)))
14443 (source (origin
14444 (method git-fetch)
14445 (uri (git-reference
14446 (url "https://github.com/paul-issartel/nnreddit")
14447 (commit commit)))
14448 (file-name (git-file-name name version))
14449 (sha256
14450 (base32
14451 "0j4h3bnga640250jdq8bwyja49r41ssrsjd6lba4gzzllqk02nbn"))))
14452 (build-system emacs-build-system)
14453 (home-page "https://github.com/paul-issartel/nnreddit")
14454 (synopsis "Reddit backend for the Gnus newsreader")
14455 (description "@url{https://www.reddit.com} backend for the Gnus
14456 newsreader.")
14457 (license license:gpl3+))))
14458
14459 (define-public emacs-makey
14460 (package
14461 (name "emacs-makey")
14462 (version "0.3")
14463 (source
14464 (origin
14465 (method git-fetch)
14466 (uri (git-reference
14467 (url "https://github.com/mickeynp/makey")
14468 (commit version)))
14469 (file-name (git-file-name name version))
14470 (sha256
14471 (base32 "1rr7vpm3xxzcaam3m8xni3ajy8ycyljix07n2jzczayri9sd8csy"))))
14472 (build-system emacs-build-system)
14473 (home-page "https://github.com/mickeynp/makey")
14474 (synopsis "Emacs interactive command-line mode")
14475 (description
14476 "This package provides an Emacs interactive command-line mode.")
14477 (license license:gpl3+)))
14478
14479 (define-public emacs-outorg
14480 (let ((commit "78b0695121fb974bc4e971eb4ef7f8afd6d89d64"))
14481 (package
14482 (name "emacs-outorg")
14483 (version (git-version "2.0" "1" commit))
14484 (source
14485 (origin
14486 (method git-fetch)
14487 (uri (git-reference
14488 (url "https://github.com/alphapapa/outorg")
14489 (commit commit)))
14490 (file-name (git-file-name name version))
14491 (sha256
14492 (base32
14493 "03aclh4m3f7rb821gr9pwvnqkkl91px3qxdcarpf3ypa1x4fxvlj"))))
14494 (build-system emacs-build-system)
14495 (home-page "https://github.com/alphapapa/outorg")
14496 (synopsis "Org-style comment editing")
14497 (description "Outorg is for editing comment-sections of source-code
14498 files in temporary Org-mode buffers. It turns conventional
14499 literate-programming upside-down in that the default mode is the
14500 programming-mode, and special action has to be taken to switch to the
14501 text-mode (i.e. Org-mode).")
14502 (license license:gpl3+))))
14503
14504 (define-public emacs-outshine
14505 (package
14506 (name "emacs-outshine")
14507 (version "3.0.1")
14508 (source (origin
14509 (method git-fetch)
14510 (uri (git-reference
14511 (url "https://github.com/alphapapa/outshine")
14512 (commit (string-append "v" version))))
14513 (file-name (git-file-name name version))
14514 (sha256
14515 (base32
14516 "1lh9f5dgdbwfyzxk6nsg1xwdjs8gc6p9mbyyhp6f8fnk3h0y88cg"))))
14517 (build-system emacs-build-system)
14518 (propagated-inputs
14519 `(("emacs-outorg" ,emacs-outorg)))
14520 (home-page "https://github.com/alphapapa/outshine")
14521 (synopsis "Emacs outline with outshine")
14522 (description "Outshine attempts to bring the look and feel of
14523 @code{org-mode} to an Emacs outside of the Org major-mode. It is an extension
14524 of @code{outline-minor-mode} (@code{org-mode} itself derives from
14525 outline-mode), so there is no such thing like an outshine mode, only
14526 @code{outline-minor-mode} with outshine extensions loaded.")
14527 (license license:gpl3+)))
14528
14529 (define-public emacs-frecency
14530 (let ((commit "31ef9ff4af1a4fed3dcc24ea74037feea8795c87")
14531 (version "0.1-pre")
14532 (revision "1"))
14533 (package
14534 (name "emacs-frecency")
14535 (version (git-version version revision commit))
14536 (source (origin
14537 (method git-fetch)
14538 (uri (git-reference
14539 (url "https://github.com/alphapapa/frecency.el")
14540 (commit commit)))
14541 (sha256
14542 (base32
14543 "051aihjdg3x22svaxhwylpi8i6s2x9j8syvsj1jgilgjjdy15l6j"))
14544 (file-name (git-file-name name version))))
14545 (build-system emacs-build-system)
14546 (propagated-inputs
14547 `(("emacs-a" ,emacs-a)
14548 ("emacs-dash" ,emacs-dash)))
14549 (home-page "https://github.com/alphapapa/frecency.el")
14550 (synopsis "Sort items by frequency and recency of access")
14551 (description "This package provides a way of sorting items via
14552 a heuristic based on frequency and recency.")
14553 (license license:gpl3+))))
14554
14555 (define-public emacs-org-recent-headings
14556 (package
14557 (name "emacs-org-recent-headings")
14558 (version "0.1")
14559 (source (origin
14560 (method git-fetch)
14561 (uri (git-reference
14562 (url "https://github.com/alphapapa/org-recent-headings")
14563 (commit version)))
14564 (file-name (git-file-name name version))
14565 (sha256
14566 (base32
14567 "0gsrzmg3mssh9s28yjm9m866fnhm1pcligssz1q6brga6dm6f2yy"))))
14568 (build-system emacs-build-system)
14569 (propagated-inputs
14570 `(("emacs-org" ,emacs-org)
14571 ("emacs-dash" ,emacs-dash)
14572 ("emacs-frecency" ,emacs-frecency)))
14573 (home-page "https://github.com/alphapapa/org-recent-headings")
14574 (synopsis "Navigate to recently used Org headings and lists")
14575 (description "This package maintains a list of recently used Org headings,
14576 as well as functions for navigating between these headings.")
14577 (license license:gpl3+)))
14578
14579 (define-public emacs-org-super-agenda
14580 ;; emacs-org-sidebar depends on a newer commit than the latest release version.
14581 (let ((commit "a87ca11fbbe72ab6c1c4c3b55ae9e1e93ebfb8ba")
14582 (revision "3"))
14583 (package
14584 (name "emacs-org-super-agenda")
14585 (version (git-version "1.1.1" revision commit))
14586 (source (origin
14587 (method git-fetch)
14588 (uri (git-reference
14589 (url "https://github.com/alphapapa/org-super-agenda")
14590 (commit commit)))
14591 (file-name (git-file-name name version))
14592 (sha256
14593 (base32
14594 "08b7babdaqblb6jff57an4kbcxk6fkhf668620fipfjgbsnqv3ff"))))
14595 (build-system emacs-build-system)
14596 (propagated-inputs
14597 `(("emacs-org" ,emacs-org)
14598 ("emacs-dash" ,emacs-dash)
14599 ("emacs-ts" ,emacs-ts)
14600 ("emacs-ht" ,emacs-ht)
14601 ("emacs-s" ,emacs-s)))
14602 (home-page "https://github.com/alphapapa/org-super-agenda")
14603 (synopsis "Supercharged Org agenda")
14604 (description "This package allows items in the Org agenda to be grouped
14605 into sections while preserving the structure imposed by any timestamps.")
14606 (license license:gpl3+))))
14607
14608 (define-public emacs-org-make-toc
14609 (package
14610 (name "emacs-org-make-toc")
14611 (version "0.5")
14612 (source (origin
14613 (method git-fetch)
14614 (uri (git-reference
14615 (url "https://github.com/alphapapa/org-make-toc")
14616 (commit version)))
14617 (file-name (git-file-name name version))
14618 (sha256
14619 (base32
14620 "180ji6nnj6qj0rs1rdp1zlcrfsqf7ikb44ym8icbp5d6al2s4hnr"))))
14621 (build-system emacs-build-system)
14622 (propagated-inputs
14623 `(("emacs-org" ,emacs-org)
14624 ("emacs-dash" ,emacs-dash)
14625 ("emacs-s" ,emacs-s)))
14626 (home-page "https://github.com/alphapapa/org-make-toc")
14627 (synopsis "Maintain a table of contents for an Org file")
14628 (description "This package facilitates the creation and maintenance of
14629 tables of contents.")
14630 (license license:gpl3+)))
14631
14632 (define-public emacs-ts
14633 (package
14634 (name "emacs-ts")
14635 (version "0.2")
14636 (source
14637 (origin
14638 (method git-fetch)
14639 (uri (git-reference
14640 (url "https://github.com/alphapapa/ts.el")
14641 (commit version)))
14642 (sha256
14643 (base32 "0hmzc1ppnkkr0lfq5fhzqr6icv6iqz824a6bnns7zr466hhqp3qb"))
14644 (file-name (git-file-name name version))))
14645 (build-system emacs-build-system)
14646 (propagated-inputs
14647 `(("emacs-s" ,emacs-s)
14648 ("emacs-dash" ,emacs-dash)))
14649 (arguments
14650 ;; XXX: Three tests are failing because of a timezone-related issue
14651 ;; with how they're written. On my machine, all the failing test
14652 ;; results are 18000 seconds (5 hours) off.
14653
14654 ;; The ts-parse-org function accepts a string without any timezone
14655 ;; info, not assumed to be in Unix time, and converts it to a so-called
14656 ;; ts struct. The ts-unix function (accessor) accepts a ts struct,
14657 ;; then seems to assume the struct's corresponding time is in terms of
14658 ;; the user's current time zone, before returning a Unix time in
14659 ;; seconds.
14660
14661 ;; The failing tests all have similar problems, but nothing else about
14662 ;; the library seems particularly off.
14663
14664 `(#:tests? #t
14665 #:test-command '("emacs" "--batch"
14666 "-l" "test/test.el"
14667 "-f" "ert-run-tests-batch-and-exit")
14668 #:phases
14669 (modify-phases %standard-phases
14670 (add-before 'check 'make-tests-writable
14671 (lambda _
14672 (make-file-writable "test/test.el")
14673 #t))
14674 (add-before 'check 'delete-failing-tests
14675 (lambda _
14676 (emacs-batch-edit-file "test/test.el"
14677 `(progn (progn
14678 (goto-char (point-min))
14679 (dolist (test-regexp
14680 '("ert-deftest ts-format"
14681 "ert-deftest ts-parse-org\\_>"
14682 "ert-deftest ts-parse-org-element"
14683 "ert-deftest ts-update"))
14684 (re-search-forward test-regexp)
14685 (beginning-of-line)
14686 (kill-sexp)))
14687 (basic-save-buffer)))
14688 #t)))))
14689 (home-page "https://github.com/alphapapa/ts.el")
14690 (synopsis "Timestamp and date/time library")
14691 (description "This package facilitates manipulating dates, times, and
14692 timestamps by providing a @code{ts} struct.")
14693 (license license:gpl3+)))
14694
14695 (define-public emacs-peg
14696 (package
14697 (name "emacs-peg")
14698 (version "1.0")
14699 (source
14700 (origin
14701 (method url-fetch)
14702 (uri (string-append "https://elpa.gnu.org/packages/peg-" version ".tar"))
14703 (sha256
14704 (base32 "0skr5dz9k34r409hisnj37n1b7n62l3md0glnfx578xkbmxlpcxl"))))
14705 (build-system emacs-build-system)
14706 (home-page "https://elpa.gnu.org/packages/peg.html")
14707 (synopsis "Parsing Expression Grammars in Elisp")
14708 (description "This package provides a macro that parses the current buffer
14709 according to a parsing expression grammar.")
14710 (license license:gpl3+)))
14711
14712 (define-public emacs-org-ql
14713 (package
14714 (name "emacs-org-ql")
14715 (version "0.3.2")
14716 (source (origin
14717 (method git-fetch)
14718 (uri (git-reference
14719 (url "https://github.com/alphapapa/org-ql")
14720 (commit version)))
14721 (sha256
14722 (base32
14723 "11bhpi2l28vp8mm9nx18jljbqdnh9vxpv9kp1dn9lpsgivcdbc34"))
14724 (file-name (git-file-name name version))))
14725 (build-system emacs-build-system)
14726 (propagated-inputs
14727 `(("emacs-s" ,emacs-s)
14728 ("emacs-f" ,emacs-f)
14729 ("emacs-ov" ,emacs-ov)
14730 ("emacs-peg" ,emacs-peg)
14731 ("emacs-org-super-agenda" ,emacs-org-super-agenda)
14732 ("emacs-ts" ,emacs-ts)
14733 ("emacs-org" ,emacs-org)
14734 ("emacs-helm" ,emacs-helm)
14735 ("emacs-helm-org" ,emacs-helm-org)
14736 ("emacs-dash" ,emacs-dash)))
14737 (native-inputs
14738 `(("emacs-buttercup" ,emacs-buttercup)))
14739 (arguments
14740 `(#:phases
14741 (modify-phases %standard-phases
14742 (add-after 'unpack 'require-helm
14743 (lambda _
14744 (substitute* "helm-org-ql.el"
14745 (("^;;;; Requirements")
14746 ";;;; Requirements\n(require 'helm)\n(require 'helm-org)"))
14747 #t)))
14748 #:tests? #t
14749 #:test-command '("buttercup" "-L" ".")))
14750 (home-page "https://github.com/alphapapa/org-ql/")
14751 (synopsis "Query language for Org buffers")
14752 (description "This package provides a Lispy query language for Org
14753 files, allowing for actions to be performed based on search criteria.")
14754 (license license:gpl3+)))
14755
14756 (define-public emacs-org-auto-expand
14757 (let ((commit "4938d5f6460e2f8f051ba9ac000b291bfa43ef62")
14758 (revision "1"))
14759 (package
14760 (name "emacs-org-auto-expand")
14761 (version (git-version "0.1" revision commit))
14762 (source (origin
14763 (method git-fetch)
14764 (uri (git-reference
14765 (url "https://github.com/alphapapa/org-auto-expand")
14766 (commit commit)))
14767 (file-name (git-file-name name version))
14768 (sha256
14769 (base32
14770 "1my0c6xmkh37lwi6l472lz9d86lf20h6xcllzlxm1lxa24rhva6v"))))
14771 (build-system emacs-build-system)
14772 (propagated-inputs
14773 `(("emacs-org" ,emacs-org)
14774 ("emacs-dash" ,emacs-dash)))
14775 (home-page "https://github.com/alphapapa/org-auto-expand")
14776 (synopsis "Automatically expand certain Org headings")
14777 (description "This package allows a customizable set of headings in Org
14778 files to be expanded upon opening them.")
14779 (license license:gpl3+))))
14780
14781 (define-public emacs-parsebib
14782 (package
14783 (name "emacs-parsebib")
14784 (version "2.3.3")
14785 (source
14786 (origin
14787 (method git-fetch)
14788 (uri (git-reference
14789 (url "https://github.com/joostkremers/parsebib")
14790 (commit version)))
14791 (file-name (git-file-name name version))
14792 (sha256
14793 (base32 "0mpgyy9qfb5x4fvlmb274hgayjbwf0bgk65dxyx31zikjwpcd56p"))))
14794 (build-system emacs-build-system)
14795 (home-page "https://github.com/joostkremers/parsebib")
14796 (synopsis "Library for parsing @file{.bib} files")
14797 (description
14798 "This package provides an Emacs library for parsing @file{.bib} files.")
14799 (license license:gpl3+)))
14800
14801 (define-public emacs-ebib
14802 (package
14803 (name "emacs-ebib")
14804 (version "2.22.1")
14805 (source
14806 (origin
14807 (method git-fetch)
14808 (uri (git-reference
14809 (url "https://github.com/joostkremers/ebib")
14810 (commit version)))
14811 (file-name (git-file-name name version))
14812 (sha256
14813 (base32 "0spiz5r2y4pdpyc4d3f9w228giq0j9rm8f5h5akzn5rwiq9pfkwz"))))
14814 (build-system emacs-build-system)
14815 (propagated-inputs
14816 `(("emacs-parsebib" ,emacs-parsebib)))
14817 (home-page "https://joostkremers.github.io/ebib/")
14818 (synopsis "BibTeX database manager for Emacs")
14819 (description
14820 "Ebib is a BibTeX database manager that runs in GNU Emacs.
14821 With Ebib you can create, sort and manage your @file{.bib} database files, all
14822 within Emacs. It supports searching, multi-line field values and
14823 @samp{@@String} and @samp{@@Preamble} definitions. Ebib integrates
14824 with (La)TeX mode, Org mode and other Emacs editing modes.")
14825 ;; The Ebib source files are released under a BSD license with
14826 ;; the exception of org-ebib.el, which is released under the GNU
14827 ;; GPL.
14828 (license (list license:bsd-3
14829 license:gpl3+))))
14830
14831 (define-public emacs-biblio
14832 (package
14833 (name "emacs-biblio")
14834 (version "0.2")
14835 (source
14836 (origin
14837 (method git-fetch)
14838 (uri (git-reference
14839 (url "https://github.com/cpitclaudel/biblio.el")
14840 (commit version)))
14841 (file-name (git-file-name name version))
14842 (sha256
14843 (base32 "1gxjind6r235az59dr8liv03d8994mqb8a7m28j3c12q7p70aziz"))))
14844 (build-system emacs-build-system)
14845 (propagated-inputs
14846 `(("emacs-dash" ,emacs-dash)
14847 ("emacs-let-alist" ,emacs-let-alist)))
14848 (home-page "https://github.com/cpitclaudel/biblio.el")
14849 (synopsis "Browse and import bibliographic references")
14850 (description "This package provides an extensible Emacs package for
14851 browsing and fetching references.
14852
14853 @file{biblio.el} makes it easy to browse and gather bibliographic references
14854 and publications from various sources, by keywords or by DOI. References are
14855 automatically fetched from well-curated sources, and formatted as BibTeX.")
14856 (license license:gpl3+)))
14857
14858 (define-public emacs-helm-bibtex
14859 (let ((commit "d4471232be26793fbf56c0ac3690b5f537c378b9")
14860 (revision "2"))
14861 (package
14862 (name "emacs-helm-bibtex")
14863 (version (string-append "2.0.0" "-" revision "."
14864 (string-take commit 7)))
14865 (source
14866 (origin
14867 (method git-fetch)
14868 (uri (git-reference
14869 (url "https://github.com/tmalsburg/helm-bibtex")
14870 (commit commit)))
14871 (file-name (git-file-name name version))
14872 (sha256
14873 (base32
14874 "1bkzhic6qckb267025il1r3xcpz99kisphxiafni1pxvf9jafr0j"))))
14875 (build-system emacs-build-system)
14876 (propagated-inputs
14877 `(("emacs-helm" ,emacs-helm)
14878 ("emacs-parsebib" ,emacs-parsebib)
14879 ("emacs-s" ,emacs-s)
14880 ("emacs-dash" ,emacs-dash)
14881 ("emacs-f" ,emacs-f)
14882 ("emacs-biblio" ,emacs-biblio)
14883 ("emacs-ivy" ,emacs-ivy)))
14884 (home-page "https://github.com/tmalsburg/helm-bibtex")
14885 (synopsis "Bibliography manager based on Helm")
14886 (description "This package provides bibliography manager for Emacs,
14887 based on Helm and the bibtex-completion backend.
14888
14889 Key features:
14890
14891 @itemize
14892 @item Quick access to your bibliography from within Emacs
14893 @item Powerful search capabilities
14894 @item Provides instant search results as you type
14895 @item Tightly integrated with LaTeX authoring, emails, Org mode, etc.
14896 @item Open the PDFs, URLs, or DOIs associated with an entry
14897 @item Insert LaTeX cite commands, Ebib links, or Pandoc citations,
14898 BibTeX entries, or plain text references at point, attach PDFs to emails
14899 @item Support for note taking
14900 @item Quick access to online bibliographic databases such as Pubmed,
14901 arXiv, Google Scholar, Library of Congress, etc.
14902 @item Imports BibTeX entries from CrossRef and other sources.
14903 @end itemize\n")
14904 (license license:gpl3+))))
14905
14906 (define-public emacs-ewmctrl
14907 (let ((commit "3d0217c4d6cdb5c308b6cb4293574f470d4faacf"))
14908 (package
14909 (name "emacs-ewmctrl")
14910 (version (git-version "0.0.1" "1" commit))
14911 (source
14912 (origin
14913 (method git-fetch)
14914 (uri (git-reference
14915 (url "https://github.com/flexibeast/ewmctrl")
14916 (commit commit)))
14917 (file-name (git-file-name name version))
14918 (sha256
14919 (base32
14920 "0ilwvx0qryv3v6xf0gxqwnfm6pf96gxap8h9g3f6z6lk9ff4n1wi"))))
14921 (build-system emacs-build-system)
14922 (arguments
14923 '(#:phases
14924 (modify-phases %standard-phases
14925 (add-after 'unpack 'patch-ewmctrl
14926 ;; This build phase makes sure ‘ewmctrl’ looks
14927 ;; for ‘wmctrl’ in the right place.
14928 (lambda _
14929 (let ((file "ewmctrl.el"))
14930 (chmod file #o644)
14931 (emacs-substitute-sexps file
14932 ("(defcustom ewmctrl-wmctrl-path" (which "wmctrl")))))))))
14933 (inputs
14934 `(("wmctrl" ,wmctrl)))
14935 (home-page "https://github.com/flexibeast/ewmctrl")
14936 (synopsis "Emacs interface to @code{wmctrl}")
14937 (description "@code{ewmctrl} provides an Emacs interface to
14938 @code{wmctrl} command-line window-management program.")
14939 (license license:gpl3+))))
14940
14941 (define-public emacs-erc-image
14942 (let ((commit "82fb3871f02e24b1e880770b9a3d187aab43d0f0")
14943 (revision "3"))
14944 (package
14945 (name "emacs-erc-image")
14946 (version (git-version "0" revision commit))
14947 (source
14948 (origin
14949 (method git-fetch)
14950 (uri (git-reference
14951 (url "https://github.com/kidd/erc-image.el")
14952 (commit commit)))
14953 (file-name (git-file-name name version))
14954 (sha256
14955 (base32
14956 "1q8mkf612fb4fjp8h4kbr107wn083iqfdgv8f80pcmil8y33dw9i"))))
14957 (build-system emacs-build-system)
14958 (arguments
14959 `(#:phases (modify-phases %standard-phases
14960 ;; The package autoloader fails to provide
14961 ;; the image module when handled by Guix.
14962 ;; Disable this phase, and let the package
14963 ;; handle the `eval-after-load' procedure.
14964 (delete 'make-autoloads))))
14965 (home-page "https://github.com/kidd/erc-image.el")
14966 (synopsis "Show inlined images (png/jpg/gif/svg) in ERC buffers")
14967 (description "This plugin subscribes to hooks @code{erc-insert-modify-hook}
14968 and @code{erc-send-modify-hook} to download and show images.")
14969 (license license:gpl3+))))
14970
14971 (define-public emacs-helm-gtags
14972 (package
14973 (name "emacs-helm-gtags")
14974 (version "1.5.7")
14975 (source
14976 (origin
14977 (method git-fetch)
14978 (uri (git-reference
14979 (url "https://github.com/syohex/emacs-helm-gtags")
14980 (commit version)))
14981 (file-name (git-file-name name version))
14982 (sha256
14983 (base32 "1kc1jzk10nfd2v20g8dwnb6a944afrwdwnkzl06w4ba8k4yim7gi"))))
14984 (build-system emacs-build-system)
14985 (propagated-inputs
14986 `(("emacs-helm" ,emacs-helm)))
14987 (home-page "https://github.com/syohex/emacs-helm-gtags")
14988 (synopsis "Emacs Helm interface to GNU Global")
14989 (description
14990 "@code{emacs-helm-gtags} provides a Emacs Helm interface to GNU Global.")
14991 (license license:gpl3+)))
14992
14993 (define-public emacs-list-utils
14994 (package
14995 (name "emacs-list-utils")
14996 (version "0.4.6")
14997 (source
14998 (origin
14999 (method git-fetch)
15000 (uri (git-reference
15001 (url "https://github.com/rolandwalker/list-utils")
15002 (commit (string-append "v" version))))
15003 (file-name (git-file-name name version))
15004 (sha256
15005 (base32 "07hbz2md52ccy95gv4d5n6szrfmpfqf3w4kwqdg2cf54c7kgf7hw"))))
15006 (build-system emacs-build-system)
15007 (home-page "https://github.com/rolandwalker/list-utils")
15008 (synopsis "List-manipulation utility functions")
15009 (description "This package provides a list manipulation library for Emacs.")
15010 (license license:gpl3+)))
15011
15012 (define-public emacs-parsec
15013 ;; Last release is too old (2016).
15014 (let ((revision "0")
15015 (commit "2cbbbc2254aa7bcaa4fb5e07c8c1bf2f381dba26"))
15016 (package
15017 (name "emacs-parsec")
15018 (version (git-version "0.1.3" revision commit))
15019 (source
15020 (origin
15021 (method git-fetch)
15022 (uri (git-reference
15023 (url "https://github.com/cute-jumper/parsec.el")
15024 (commit commit)))
15025 (file-name (git-file-name name version))
15026 (sha256
15027 (base32 "1g1s8s45g3kkbi3h7w0pmadmzdswb64mkdvdpg2lihg341kx37gm"))))
15028 (build-system emacs-build-system)
15029 (home-page "https://github.com/cute-jumper/parsec.el")
15030 (synopsis "Parser combinator library for Emacs Lisp")
15031 (description
15032 "Parsec is a parser combinator library for Emacs Lisp, similar to
15033 Haskell's Parsec library. It contains most of the parser combinators in
15034 Text.Parsec.Combinator, and more combinators can be added if necessary! Most
15035 of the parser combinators have the same behavior as their Haskell
15036 counterparts. Parsec also comes with a simple error handling mechanism so
15037 that it can display an error message showing how the parser fails.")
15038 (license license:gpl3+))))
15039
15040 (define-public emacs-move-text
15041 (package
15042 (name "emacs-move-text")
15043 (version "2.0.8")
15044 (source
15045 (origin
15046 (method git-fetch)
15047 (uri (git-reference
15048 (url "https://github.com/emacsfodder/move-text")
15049 (commit version)))
15050 (file-name (git-file-name name version))
15051 (sha256
15052 (base32 "06jxk5g23822gfmwrxhc34zand3dr8p2wjh1zs3j61ibz6n0nmz1"))))
15053 (build-system emacs-build-system)
15054 (home-page "https://github.com/emacsfodder/move-text")
15055 (synopsis "Move current line or region with M-up or M-down")
15056 (description "This package provide functions to move the current line
15057 using @kbd{M-up} or @kbd{M-down} if a region is marked, it will move the
15058 region instead.")
15059 (license license:gpl3+)))
15060
15061 (define-public emacs-validate
15062 (package
15063 (name "emacs-validate")
15064 (version "1.0.5")
15065 (source (origin
15066 (method git-fetch)
15067 (uri (git-reference
15068 (url "https://github.com/Malabarba/validate.el")
15069 (commit version)))
15070 (file-name (git-file-name name version))
15071 (sha256
15072 (base32
15073 "1l12ibx6cw4mgicgjpw71fb4fr4sd0k54lvbpq7ngc29br3j6i4v"))))
15074 (build-system emacs-build-system)
15075 (home-page "https://github.com/Malabarba/validate.el")
15076 (synopsis "Emacs library for scheme validation")
15077 (description "This Emacs library provides two functions that perform
15078 schema validation.")
15079 (license license:gpl3+)))
15080
15081 (define-public emacs-rainbow-blocks
15082 (let ((commit "dd435d7bb34ff6f162a5f315df308b90b7e9f842"))
15083 (package
15084 (name "emacs-rainbow-blocks")
15085 (version (git-version "1.0.0" "1" commit))
15086 (source (origin
15087 (method git-fetch)
15088 (uri (git-reference
15089 (url "https://github.com/istib/rainbow-blocks")
15090 (commit commit)))
15091 (file-name (git-file-name name version))
15092 (sha256
15093 (base32
15094 "06yfb3i7wzvqrhkb61zib9xvpb5i00s4frizkzff66im05k0n795"))))
15095 (build-system emacs-build-system)
15096 (home-page "https://github.com/istib/rainbow-blocks")
15097 (synopsis "Highlight sexp blocks")
15098 (description "Rainbow-blocks is an Emacs mode that highlights blocks
15099 made of parentheses, brackets, and braces according to their depth. Each
15100 successive level is highlighted in a different color. This makes it easy to
15101 orient yourself in the code, and tell which statements are at a given level.")
15102 (license license:gpl3+))))
15103
15104 (define-public emacs-hierarchy
15105 (package
15106 (name "emacs-hierarchy")
15107 (version "0.7.0")
15108 (source
15109 (origin
15110 (method git-fetch)
15111 (uri (git-reference
15112 (url "https://github.com/DamienCassou/hierarchy")
15113 (commit (string-append "v" version))))
15114 (file-name (git-file-name name version))
15115 (sha256
15116 (base32 "1kykbb1sil5cycfa5aj8dhsxc5yrx1641i2np5kwdjid6ahdlz5r"))))
15117 (build-system emacs-build-system)
15118 (native-inputs
15119 `(("emacs-buttercup" ,emacs-buttercup)))
15120 (arguments
15121 `(#:tests? #t
15122 #:test-command '("buttercup" "-L" ".")))
15123 (home-page "https://github.com/DamienCassou/hierarchy")
15124 (synopsis "Library to create and display hierarchy structures")
15125 (description "This package provides an Emacs library to create, query,
15126 navigate and display hierarchy structures.")
15127 (license license:gpl3+)))
15128
15129 (define-public emacs-tree-mode
15130 (let ((commit "b06078826d5875d74b0e7b7ac47b0d0917610534")
15131 (revision "1"))
15132 (package
15133 (name "emacs-tree-mode")
15134 (version (string-append "0.0.1" "-" revision "."
15135 (string-take commit 7)))
15136 (source
15137 (origin
15138 (method git-fetch)
15139 (uri (git-reference
15140 (url "https://github.com/emacsorphanage/tree-mode")
15141 (commit commit)))
15142 (file-name (git-file-name name version))
15143 (sha256
15144 (base32
15145 "13bbdhdmqg4x9yghanhr8fsbsxbnypzxdxgicz31sjjm675kpnix"))))
15146 (build-system emacs-build-system)
15147 (home-page "https://github.com/emacsorphanage/tree-mode")
15148 (synopsis "Emacs mode to manage tree widgets")
15149 (description
15150 "This package provides an Emacs library to manage tree widgets.")
15151 (license license:gpl3+))))
15152
15153 (define-public emacs-md4rd
15154 (package
15155 (name "emacs-md4rd")
15156 (version "0.3.1")
15157 (source (origin
15158 (method git-fetch)
15159 (uri (git-reference
15160 (url "https://github.com/ahungry/md4rd")
15161 (commit version)))
15162 (file-name (git-file-name name version))
15163 (sha256
15164 (base32
15165 "1n6g6k4adzkkn1g7z4j27s35xy12c1fg2r08gv345ddr3wplq4ri"))))
15166 (propagated-inputs
15167 `(("emacs-hierarchy" ,emacs-hierarchy)
15168 ("emacs-request" ,emacs-request)
15169 ("emacs-dash" ,emacs-dash)
15170 ("emacs-s" ,emacs-s)
15171 ("emacs-tree-mode" ,emacs-tree-mode)))
15172 (build-system emacs-build-system)
15173 (home-page "https://github.com/ahungry/md4rd")
15174 (synopsis "Emacs Mode for Reddit")
15175 (description
15176 "This package allows reading Reddit from within Emacs interactively.")
15177 (license license:gpl3+)))
15178
15179 (define-public emacs-pulseaudio-control
15180 (let ((commit "7e1a87068379075a5e9ce36c64c686c03d20d379")
15181 (revision "3"))
15182 (package
15183 (name "emacs-pulseaudio-control")
15184 (version (git-version "0.0.1" revision commit))
15185 (source
15186 (origin
15187 (method git-fetch)
15188 (uri (git-reference
15189 (url "https://github.com/flexibeast/pulseaudio-control")
15190 (commit commit)))
15191 (file-name (git-file-name name version))
15192 (sha256
15193 (base32
15194 "0wcaqyh15x56255rrj350089z15pnwixa2vf0ly6dv0hjmzmh3mr"))))
15195 (build-system emacs-build-system)
15196 (arguments
15197 '(#:phases (modify-phases %standard-phases
15198 (add-after 'unpack 'patch-file-name
15199 (lambda* (#:key inputs #:allow-other-keys)
15200 (let ((pulseaudio (assoc-ref inputs "pulseaudio")))
15201 (chmod "pulseaudio-control.el" #o600)
15202 (emacs-substitute-variables "pulseaudio-control.el"
15203 ("pulseaudio-control-pactl-path"
15204 (string-append pulseaudio "/bin/pactl")))
15205 #t))))))
15206 (inputs `(("pulseaudio" ,pulseaudio)))
15207 (home-page "https://github.com/flexibeast/pulseaudio-control")
15208 (synopsis "Control @code{pulseaudio} from Emacs")
15209 (description
15210 "This package allows controlling @code{pulseaudio} from Emacs.")
15211 (license license:gpl3+))))
15212
15213 (define-public emacs-datetime
15214 (package
15215 (name "emacs-datetime")
15216 (version "0.6.6")
15217 (source
15218 (origin
15219 (method git-fetch)
15220 (uri (git-reference
15221 (url "https://github.com/doublep/datetime")
15222 (commit version)))
15223 (file-name (git-file-name name version))
15224 (sha256
15225 (base32
15226 "0a3q667pybpmsjkbgf6287jwgpnx8brp5314wb8zbczw6ncygnbi"))))
15227 (build-system emacs-build-system)
15228 (inputs
15229 `(("emacs-extmap" ,emacs-extmap)))
15230 (home-page "https://github.com/doublep/datetime/")
15231 (synopsis "Library to work with dates in Emacs")
15232 (description "Parsing, formatting, matching and recoding
15233 timestamps and date-time format strings library for Emacs.")
15234 (license license:gpl3+)))
15235
15236 (define-public emacs-org-mind-map
15237 (let ((commit "9d6e262bedd94daf9de269f4d56de277275677cb")
15238 (revision "1"))
15239 (package
15240 (name "emacs-org-mind-map")
15241 (version (string-append "0.0.1" "-" revision "."
15242 (string-take commit 7)))
15243 (source
15244 (origin
15245 (method git-fetch)
15246 (uri (git-reference
15247 (url "https://github.com/theodorewiles/org-mind-map")
15248 (commit commit)))
15249 (file-name (git-file-name name version))
15250 (sha256
15251 (base32
15252 "0jgkkgq7g64zckrmjib0hvz0qy3ynz5vz13qbmlpf096l3bb65wn"))))
15253 (propagated-inputs
15254 `(("emacs-dash" ,emacs-dash)))
15255 (build-system emacs-build-system)
15256 (home-page "https://github.com/theodorewiles/org-mind-map")
15257 (synopsis "Create Graphviz directed graphs from Org files")
15258 (description
15259 "This package creates Graphviz directed graphs from Org files.")
15260 (license license:gpl3+))))
15261
15262 (define-public emacs-npm-mode
15263 (package
15264 (name "emacs-npm-mode")
15265 (version "0.6.0")
15266 (source
15267 (origin
15268 (method git-fetch)
15269 (uri (git-reference
15270 (url "https://github.com/mojochao/npm-mode")
15271 (commit version)))
15272 (file-name (git-file-name name version))
15273 (sha256
15274 (base32 "1mh6nbffciw4yhv049kdhh796ysj1x21ndm3fwymhskb3dy0w1ss"))))
15275 (build-system emacs-build-system)
15276 (home-page "https://github.com/mojochao/npm-mode")
15277 (synopsis "Minor mode for working with @code{npm} projects")
15278 (description
15279 "@code{npm-mode} provides a minor mode to work with @code{npm} projects.")
15280 (license license:gpl3+)))
15281
15282 (define-public emacs-itail
15283 (let ((commit "6e43c20da03be3b9c6ece93b7dc3495975ec1888")
15284 (revision "1"))
15285 (package
15286 (name "emacs-itail")
15287 (version (string-append "0.0.1" "-" revision "."
15288 (string-take commit 7)))
15289 (source
15290 (origin
15291 (method git-fetch)
15292 (uri (git-reference
15293 (url "https://github.com/re5et/itail")
15294 (commit commit)))
15295 (file-name (git-file-name name version))
15296 (sha256
15297 (base32
15298 "044nzxh1hq41faxw3lix0wy78vfz304pjcaa5a11dqfz7q3gx5cv"))))
15299 (build-system emacs-build-system)
15300 (home-page "https://github.com/re5et/itail")
15301 (synopsis "Interactive @code{tail} Emacs mode")
15302 (description "@code{itail} provides interactive @code{tail} mode
15303 that allows you to filter the tail with unix pipes and highlight the
15304 contents of the tailed file. Works locally or on remote files using
15305 tramp.")
15306 (license license:gpl3+))))
15307
15308 (define-public emacs-loop
15309 (package
15310 (name "emacs-loop")
15311 (version "1.3")
15312 (source
15313 (origin
15314 (method git-fetch)
15315 (uri (git-reference
15316 (url "https://github.com/Wilfred/loop.el")
15317 (commit version)))
15318 (file-name (git-file-name name version))
15319 (sha256
15320 (base32 "1gs95xnmnn8aa4794k7h8mw1sz1nfdh9v0caqj6yvnsdnwy74n5x"))))
15321 (build-system emacs-build-system)
15322 (native-inputs
15323 `(("emacs-ert-runner" ,emacs-ert-runner)
15324 ("emacs-undercover" ,emacs-undercover)))
15325 (arguments
15326 `(#:tests? #t
15327 #:test-command '("ert-runner")))
15328 (home-page "https://github.com/Wilfred/loop.el")
15329 (synopsis "Imperative loop structures for Emacs")
15330 (description "Loop structures familiar to users of other languages. This
15331 library adds a selection of popular loop structures as well as break and
15332 continue.")
15333 (license license:gpl3+)))
15334
15335 (define-public emacs-elisp-refs
15336 (package
15337 (name "emacs-elisp-refs")
15338 (version "1.3")
15339 (source
15340 (origin
15341 (method git-fetch)
15342 (uri (git-reference
15343 (url "https://github.com/Wilfred/elisp-refs")
15344 (commit version)))
15345 (file-name (git-file-name name version))
15346 (sha256
15347 (base32 "0w7k91xf69zc0zkjrw8h8sjdjf9xq9qs5zhvajhd718lzf93564b"))))
15348 (build-system emacs-build-system)
15349 (propagated-inputs
15350 `(("emacs-dash" ,emacs-dash)
15351 ("emacs-f" ,emacs-f)
15352 ("emacs-list-utils" ,emacs-list-utils)
15353 ("emacs-loop" ,emacs-loop)
15354 ("emacs-s" ,emacs-s)
15355 ("emacs-shut-up" ,emacs-shut-up)))
15356 (native-inputs
15357 `(("emacs-ert-runner" ,emacs-ert-runner)
15358 ("emacs-undercover" ,emacs-undercover)))
15359 (arguments
15360 `(#:tests? #t
15361 #:test-command '("ert-runner")
15362 #:phases
15363 (modify-phases %standard-phases
15364 (add-before 'check 'disable-refs-next-match-test
15365 ;; Hack to disable the failing test for emacs27
15366 ;; https://github.com/Wilfred/elisp-refs/issues/29
15367 (lambda _
15368 (substitute* "test/unit-test.el"
15369 (("ert-deftest elisp-refs-next-match")
15370 "defun elisp-refs-next-match"))
15371 #t)))))
15372 (home-page "https://github.com/Wilfred/elisp-refs")
15373 (synopsis "Find callers of elisp functions or macros")
15374 (description "Find references to functions, macros or variables. Unlike a
15375 dumb text search, @code{elisp-refs} actually parses the code, so it's never
15376 confused by comments or @code{foo-bar} matching @code{foo}.")
15377 (license license:gpl3+)))
15378
15379 (define-public emacs-crux
15380 (let ((commit "308f17d914e2cd79cbc809de66d02b03ceb82859")
15381 (revision "2"))
15382 (package
15383 (name "emacs-crux")
15384 (version (git-version "0.3.0" revision commit))
15385 (source
15386 (origin
15387 (method git-fetch)
15388 (uri (git-reference
15389 (url "https://github.com/bbatsov/crux")
15390 (commit commit)))
15391 (file-name (git-file-name name version))
15392 (sha256
15393 (base32
15394 "0rf84finwlvmy0xpgyljjvnrijlmkzjyw9rh97svgxp9c1rzfk0x"))))
15395 (build-system emacs-build-system)
15396 (home-page "https://github.com/bbatsov/crux")
15397 (synopsis "Collection of useful functions for Emacs")
15398 (description
15399 "@code{crux} provides a collection of useful functions for Emacs.")
15400 (license license:gpl3+))))
15401
15402 (define-public emacs-edit-server
15403 (package
15404 (name "emacs-edit-server")
15405 (version "1.15")
15406 (source
15407 (origin
15408 (method git-fetch)
15409 (uri (git-reference
15410 (url "https://github.com/stsquad/emacs_chrome")
15411 (commit (string-append "v" version))))
15412 (file-name (git-file-name name version))
15413 (sha256
15414 (base32 "0xxby3ghs38i1l7kag12rnzlzcg9297pm8k6kqq3aqzsg9d2950y"))))
15415 (build-system emacs-build-system)
15416 (arguments
15417 `(#:phases
15418 (modify-phases %standard-phases
15419 (add-after 'unpack 'chdir-elisp
15420 ;; Elisp directory is not in root of the source.
15421 (lambda _
15422 (chdir "servers"))))))
15423 (home-page "https://github.com/stsquad/emacs_chrome")
15424 (synopsis "Server that responds to edit requests from Chromium")
15425 (description
15426 "This package provides an edit server to respond to requests from Emacs.")
15427 (license license:gpl3+)))
15428
15429 (define-public emacs-m-buffer-el
15430 (package
15431 (name "emacs-m-buffer-el")
15432 (version "0.15")
15433 (source
15434 (origin
15435 (method git-fetch)
15436 (uri (git-reference
15437 (url "https://github.com/phillord/m-buffer-el")
15438 (commit (string-append "v" version))))
15439 (file-name (git-file-name name version))
15440 (sha256
15441 (base32
15442 "1sx76i59razwccvn6x7rx5a124bfyjw9fcbxf4gj7nsg33qiq809"))))
15443 (arguments
15444 `(#:phases
15445 (modify-phases %standard-phases
15446 (add-before 'install 'check
15447 (lambda* (#:key inputs #:allow-other-keys)
15448 (invoke "emacs" "--batch" "-L" "."
15449 "-l" "test/m-buffer-test.el"
15450 "-l" "test/m-buffer-at-test.el"
15451 "-f" "ert-run-tests-batch-and-exit"))))))
15452 (build-system emacs-build-system)
15453 (home-page "https://github.com/phillord/m-buffer-el")
15454 (synopsis "List oriented buffer operations for Emacs")
15455 (description "@code{m-buffer} provides a set of list-orientated functions
15456 for operating over the contents of Emacs buffers.")
15457 (license license:gpl3+)))
15458
15459 (define-public emacs-let-alist
15460 (package
15461 (name "emacs-let-alist")
15462 (version "1.0.6")
15463 (source
15464 (origin
15465 (method url-fetch)
15466 (uri (string-append
15467 "https://elpa.gnu.org/packages/let-alist-" version ".el"))
15468 (sha256
15469 (base32 "0szj7vnjzz4zci5fvz7xqgcpi4pzdyyf4qi2s8xar2hi7v3yaawr"))))
15470 (build-system emacs-build-system)
15471 (home-page "https://elpa.gnu.org/packages/let-alist.html")
15472 (synopsis "Easily let-bind values of an assoc-list by their names")
15473 (description "This package offers a single macro, @code{let-alist}. This
15474 macro takes a first argument (whose value must be an alist) and a body.")
15475 (license license:gpl3+)))
15476
15477 (define-public emacs-esup
15478 (let ((commit "0de8af8233d9ce1b67f05a50f25c481c4f1118d8")
15479 (revision "1"))
15480 (package
15481 (name "emacs-esup")
15482 (version (git-version "0.7.1" revision commit))
15483 (source
15484 (origin
15485 (method git-fetch)
15486 (uri (git-reference
15487 (url "https://github.com/jschaf/esup")
15488 (commit commit)))
15489 (file-name (git-file-name name version))
15490 (sha256
15491 (base32
15492 "01khb3xyj0ylwib6ryzzvqmkh5wvzxiq2n3l0s3h9zv7wx849bzv"))))
15493 (build-system emacs-build-system)
15494 (native-inputs
15495 `(("emacs-noflet" ,emacs-noflet)
15496 ("emacs-undercover" ,emacs-undercover)
15497 ("emacs-buttercup" ,emacs-buttercup)))
15498 (propagated-inputs
15499 `(("emacs-dash" ,emacs-dash)))
15500 (arguments
15501 `(#:tests? #t
15502 #:test-command '("buttercup" "-L" ".")))
15503 (home-page "https://github.com/jschaf/esup")
15504 (synopsis "Emacs start up profiler")
15505 (description "Benchmark Emacs Startup time without ever leaving
15506 your Emacs.")
15507 (license license:gpl2+))))
15508
15509 (define-public emacs-restart-emacs
15510 (let ((commit "9aa90d3df9e08bc420e1c9845ee3ff568e911bd9")
15511 (revision "1"))
15512 (package
15513 (name "emacs-restart-emacs")
15514 (version (git-version "0.1.1" revision commit))
15515 (source
15516 (origin
15517 (method git-fetch)
15518 (uri (git-reference
15519 (url "https://github.com/iqbalansari/restart-emacs")
15520 (commit commit)))
15521 (file-name (git-file-name name version))
15522 (sha256
15523 (base32 "02x1a85k7r95z8091zgjiaj9nf0zvx1jy4xvl3hr12qbnrx1wfav"))))
15524 (build-system emacs-build-system)
15525 (home-page "https://github.com/iqbalansari/restart-emacs")
15526 (synopsis "Restart Emacs from within Emacs")
15527 (description "This package provides a simple command to restart Emacs from
15528 within Emacs.")
15529 (license license:gpl3+))))
15530
15531 (define-public emacs-sourcemap
15532 (package
15533 (name "emacs-sourcemap")
15534 (version "0.03")
15535 (source
15536 (origin
15537 (method git-fetch)
15538 (uri (git-reference
15539 (url "https://github.com/syohex/emacs-sourcemap")
15540 (commit version)))
15541 (file-name (git-file-name name version))
15542 (sha256
15543 (base32 "115g2mfpbfywp8xnag4gsb50klfvplqfh928a5mabb5s8v4a3582"))))
15544 (build-system emacs-build-system)
15545 (home-page "https://github.com/syohex/emacs-sourcemap")
15546 (synopsis "Sourcemap parser")
15547 (description "Sourcemap parser")
15548 (license license:gpl3+)))
15549
15550 (define-public emacs-macrostep
15551 (let ((commit "424e3734a1ee526a1bd7b5c3cd1d3ef19d184267"))
15552 (package
15553 (name "emacs-macrostep")
15554 (version (git-version "0.9" "1" commit))
15555 (source (origin
15556 (method git-fetch)
15557 (uri (git-reference
15558 (url "https://github.com/joddie/macrostep")
15559 (commit commit)))
15560 (file-name (git-file-name name version))
15561 (sha256
15562 (base32
15563 "1fm40mxdn289cyzgw992223dgrjmwxn4q8svyyxfaxjrpb38jhjz"))))
15564 (build-system emacs-build-system)
15565 (arguments
15566 '(#:phases
15567 (modify-phases %standard-phases
15568 (add-before 'check 'remove-test
15569 ;; Fails because of requirement ‘/bin/sh’.
15570 (lambda _
15571 (let ((file "macrostep-test.el"))
15572 (chmod file #o644)
15573 (emacs-batch-edit-file file
15574 `(progn (progn (goto-char (point-min))
15575 (re-search-forward
15576 "(ert-deftest macrostep-expand-c-macros")
15577 (beginning-of-line)
15578 (kill-sexp))
15579 (basic-save-buffer))))))
15580 (add-before 'install 'check
15581 (lambda _
15582 (invoke "emacs" "--batch" "-L" "."
15583 "-l" "macrostep-test.el"
15584 "-f" "ert-run-tests-batch-and-exit"))))))
15585 (home-page "https://github.com/joddie/macrostep")
15586 (synopsis "Interactive macro-expander for Emacs")
15587 (description "@code{macrostep} is an Emacs minor mode for interactively
15588 stepping through the expansion of macros in Emacs Lisp source code. It lets
15589 you see exactly what happens at each step of the expansion process by
15590 pretty-printing the expanded forms inline in the source buffer, which is
15591 temporarily read-only while macro expansions are visible. You can expand and
15592 collapse macro forms one step at a time, and evaluate or instrument the
15593 expansions for debugging with Edebug as normal (but see “Bugs and known
15594 limitations”, below). Single-stepping through the expansion is particularly
15595 useful for debugging macros that expand into another macro form. These can be
15596 difficult to debug with Emacs’ built-in macroexpand, which continues expansion
15597 until the top-level form is no longer a macro call.")
15598 (license license:gpl3+))))
15599
15600 (define-public emacs-parent-mode
15601 (package
15602 (name "emacs-parent-mode")
15603 (version "2.3")
15604 (source
15605 (origin
15606 (method git-fetch)
15607 (uri (git-reference
15608 (url "https://github.com/Fanael/parent-mode")
15609 (commit version)))
15610 (file-name (git-file-name name version))
15611 (sha256
15612 (base32 "0i5bc7lyyrx6swqlrp9l5x72yzwi53qn6ldrfs99gh08b3yvsnni"))))
15613 (build-system emacs-build-system)
15614 (home-page "https://github.com/Fanael/parent-mode")
15615 (synopsis "Get major mode's parent modes")
15616 (description "Get major mode's parent modes")
15617 (license license:gpl3+)))
15618
15619 (define-public emacs-lacarte
15620 (package
15621 (name "emacs-lacarte")
15622 (version "0.1")
15623 (source (origin
15624 (method url-fetch)
15625 (uri "https://www.emacswiki.org/emacs/download/lacarte.el")
15626 (sha256
15627 (base32
15628 "1sbmk37ljq5j7dsw5c37sbxvlfgdqswh7bi4dknyjzfxlq50f4am"))))
15629 (build-system emacs-build-system)
15630 (home-page "https://www.emacswiki.org/emacs/lacarte.el")
15631 (synopsis "Execute menu items as commands, with completion")
15632 (description "Execute menu items as commands, with completion.")
15633 (license license:gpl3)))
15634
15635 (define-public emacs-isearch-prop
15636 (let ((commit "4a2765f835dd115d472142da05215c4c748809f4")
15637 (revision "2"))
15638 (package
15639 (name "emacs-isearch-prop")
15640 (version (git-version "0" revision commit))
15641 (source
15642 (origin
15643 (method git-fetch)
15644 (uri (git-reference
15645 (url "https://github.com/emacsmirror/isearch-prop")
15646 (commit commit)))
15647 (file-name (git-file-name name version))
15648 (sha256
15649 (base32
15650 "06gdk5m84q6pxwng8rjxny1zkll8f3m2x6lw4xyib2dvg7iaslh3"))))
15651 (build-system emacs-build-system)
15652 (home-page "https://www.emacswiki.org/emacs/isearch-prop.el")
15653 (synopsis "Extensions to @code{isearch.el}")
15654 (description "The Emacs library @code{isearch-prop.el} lets you search within
15655 contexts. You can limit incremental search to a set of zones of
15656 buffer text, search contexts that in effect constitute a multi-region.
15657 These zones can be defined in various ways, including some ways
15658 provided specially by this library.")
15659 (license license:gpl3+))))
15660
15661 (define-public emacs-company-lua
15662 (let ((commit "29f6819de4d691e5fd0b62893a9f4fbc1c6fcb52")
15663 (revision "2"))
15664 (package
15665 (name "emacs-company-lua")
15666 (version (git-version "0.1" "2" commit))
15667 (source
15668 (origin
15669 (method git-fetch)
15670 (uri (git-reference
15671 (url "https://github.com/ptrv/company-lua")
15672 (commit commit)))
15673 (file-name (git-file-name name version))
15674 (sha256
15675 (base32
15676 "0ny2dcc7c585p7v3j6q0rpkbj1qmf2ismy8a5020jpr585xvz0hh"))))
15677 (build-system emacs-build-system)
15678 (propagated-inputs
15679 `(("emacs-company" ,emacs-company)
15680 ("emacs-s" ,emacs-s)
15681 ("emacs-f" ,emacs-f)
15682 ("emacs-lua-mode" ,emacs-lua-mode)))
15683 (arguments
15684 `(#:include (cons* "^lua\\/" %default-include)))
15685 (home-page "https://github.com/ptrv/company-lua")
15686 (synopsis "Company backend for Lua")
15687 (description
15688 "This package provides Company backend for Lua programming language.")
15689 (license license:gpl3+))))
15690
15691 (define-public emacs-beginend
15692 (package
15693 (name "emacs-beginend")
15694 (version "2.2.0")
15695 (source
15696 (origin
15697 (method git-fetch)
15698 (uri (git-reference
15699 (url "https://github.com/DamienCassou/beginend")
15700 (commit (string-append "v" version))))
15701 (file-name (git-file-name name version))
15702 (sha256
15703 (base32 "1r9033zlx2q2dk3bjz004flxdiw79qiswq0zqdjnlzwassvk0f35"))))
15704 ;; TODO: Run tests.
15705 (build-system emacs-build-system)
15706 (inputs
15707 `(("emacs-undercover" ,emacs-undercover))) ; For tests.
15708 (home-page "https://github.com/DamienCassou/beginend")
15709 (synopsis "Redefine @code{M-<} and @code{M->} for Emacs modes")
15710 (description "@code{beginend} redefines @code{M-<} and @code{M->}
15711 keybindings for Emacs modes so that point moves to meaningful
15712 locations. Redefined keys are still accessible by pressing the same
15713 key again.")
15714 (license license:gpl3+)))
15715
15716 (define-public emacs-mbsync
15717 (let ((commit "b62491c0e0d89eb9c66261a16d7ac81231c9c453")
15718 (revision "4"))
15719 (package
15720 (name "emacs-mbsync")
15721 (version (git-version "0.1.2" revision commit))
15722 (source
15723 (origin
15724 (method git-fetch)
15725 (uri (git-reference
15726 (url "https://github.com/dimitri/mbsync-el")
15727 (commit commit)))
15728 (file-name (git-file-name name version))
15729 (sha256
15730 (base32
15731 "1zlih37mkqjn2czl12zn7lgxxljvrwhqqpbksj9c91zn0f0rm3mz"))))
15732 (build-system emacs-build-system)
15733 (home-page "https://github.com/dimitri/mbsync-el")
15734 (synopsis "Interface to mbsync for Emacs")
15735 (description "This package calls @code{mbsync} from
15736 within Emacs.")
15737 (license license:gpl3+))))
15738
15739 (define-public emacs-ibuffer-projectile
15740 (let ((commit "76496214144687cee0b5139be2e61b1e400cac87")
15741 (revision "2"))
15742 (package
15743 (name "emacs-ibuffer-projectile")
15744 (version (git-version "0.2" revision commit))
15745 (source
15746 (origin
15747 (method git-fetch)
15748 (uri (git-reference
15749 (url "https://github.com/purcell/ibuffer-projectile")
15750 (commit commit)))
15751 (file-name (git-file-name name version))
15752 (sha256
15753 (base32
15754 "0vv9xwb1qd5x8zhqmmsn1nrpd11cql9hxb7483nsdhcfwl4apqav"))))
15755 (build-system emacs-build-system)
15756 (propagated-inputs
15757 `(("emacs-projectile" ,emacs-projectile)))
15758 (home-page "https://github.com/purcell/ibuffer-projectile")
15759 (synopsis "Group ibuffer's list by projectile root")
15760 (description "Adds functionality to Emacs @code{ibuffer} for
15761 grouping buffers by their projectile root directory.")
15762 (license license:gpl3+))))
15763
15764 (define-public emacs-elm-mode
15765 (package
15766 (name "emacs-elm-mode")
15767 (version "0.21.0")
15768 (source
15769 (origin
15770 (method git-fetch)
15771 (uri
15772 (git-reference
15773 (url "https://github.com/jcollard/elm-mode")
15774 (commit (string-append "v" version))))
15775 (file-name (git-file-name name version))
15776 (sha256
15777 (base32 "0iwk4fmw8hq3ry4ky1zc7lgl4cpbnrjyk74c2xzddfspi3ks41fd"))))
15778 (propagated-inputs
15779 `(("emacs-dash" ,emacs-dash)
15780 ("emacs-f" ,emacs-f)
15781 ("emacs-reformatter" ,emacs-reformatter)
15782 ("emacs-s" ,emacs-s)))
15783 (build-system emacs-build-system)
15784 (home-page "https://github.com/jcollard/elm-mode")
15785 (synopsis "Emacs major mode for editing Elm source code")
15786 (description
15787 "This package provides a major mode for editing Elm source code, and
15788 working with common core and third-party Elm tools. Its features are:
15789
15790 @itemize
15791 @item Syntax highlighting
15792 @item Intelligent indentation
15793 @item Integration with elm-make
15794 @item Integration with elm-repl
15795 @item Integration with elm-reactor
15796 @item Integration with elm-package
15797 @item Integration with elm-oracle
15798 @item Integration with elm-format
15799 @item Integration with elm-test
15800 @end itemize")
15801 (license license:gpl3+)))
15802
15803 (define-public emacs-helm-mode-manager
15804 (package
15805 (name "emacs-helm-mode-manager")
15806 (version "1.0.0")
15807 (source
15808 (origin
15809 (method git-fetch)
15810 (uri (git-reference
15811 (url "https://github.com/istib/helm-mode-manager")
15812 (commit version)))
15813 (file-name (git-file-name name version))
15814 (sha256
15815 (base32
15816 "1srx5f0s9x7zan7ayqd6scxfhcvr3nkd4yzs96hphd87rb18apzk"))))
15817 (build-system emacs-build-system)
15818 (propagated-inputs
15819 `(("emacs-helm" ,emacs-helm)))
15820 (home-page "https://github.com/istib/helm-mode-manager/")
15821 (synopsis "Switch and toggle Emacs major and minor modes using Helm")
15822 (description "This package provides a Helm interface for toggling Emacs
15823 major or minor mode.
15824
15825 @itemize
15826 @item @code{helm-switch-major-mode} list of all major modes
15827 @item @code{helm-enable-minor-mode} list of all inactive minor modes
15828 @item @code{helm-disable-minor-mode} list of all ACTIVE minor modes
15829 @end itemize\n
15830
15831 Hitting @code{RET} enables the mode, @code{C-z} shows the mode
15832 documentation.")
15833 (license license:gpl3+)))
15834
15835 (define-public emacs-hy-mode
15836 (package
15837 (name "emacs-hy-mode")
15838 (version "1.0.4")
15839 (source
15840 (origin
15841 (method git-fetch)
15842 (uri (git-reference
15843 (url "https://github.com/hylang/hy-mode")
15844 (commit (string-append "v" version))))
15845 (file-name (git-file-name name version))
15846 (sha256
15847 (base32 "0gihxlmfminadaqdr8d2zccd7wwygl3m0gfzxsk5izi7f8hl4w7f"))))
15848 (build-system emacs-build-system)
15849 (propagated-inputs
15850 `(("emacs-dash" ,emacs-dash)
15851 ("emacs-s" ,emacs-s)))
15852 (home-page "https://github.com/hylang/hy-mode")
15853 (synopsis "Major mode for Hylang")
15854 (description "This package provides a major mode for Hylang.")
15855 (license license:gpl3+)))
15856
15857 (define-public emacs-web-beautify
15858 (package
15859 (name "emacs-web-beautify")
15860 (version "0.3.2")
15861 (source
15862 (origin
15863 (method git-fetch)
15864 (uri (git-reference
15865 (url "https://github.com/yasuyk/web-beautify")
15866 (commit version)))
15867 (file-name (git-file-name name version))
15868 (sha256
15869 (base32 "0vms7zz3ym53wf1zdrkbf2ky2xjr1v134ngsd0jr8azyi8siw84d"))))
15870 (build-system emacs-build-system)
15871 (home-page "https://github.com/yasuyk/web-beautify")
15872 (synopsis "Format HTML, CSS and JavaScript, JSON")
15873 (description "This package provides an Emacs functions to format HTML,
15874 CSS, JavaScript, JSON.")
15875 (license license:gpl3+)))
15876
15877 (define-public emacs-helm-shell-history
15878 (let ((commit "110d3c35c52fe4b89b29e79ea4c8626bce7266a1"))
15879 (package
15880 (name "emacs-helm-shell-history")
15881 (version (git-version "0.1" "1" commit))
15882 (source
15883 (origin
15884 (method git-fetch)
15885 (uri (git-reference
15886 (url "https://github.com/yuutayamada/helm-shell-history")
15887 (commit commit)))
15888 (file-name (git-file-name name version))
15889 (sha256
15890 (base32
15891 "18fkjcz69g4dyaxhf9j8svr5x6dhsdnglddwisis8hdn504scpfj"))))
15892 (build-system emacs-build-system)
15893 (arguments
15894 '(#:phases
15895 (modify-phases %standard-phases
15896 (add-before 'check 'patch-helm-shell-history-file
15897 (lambda _
15898 (let ((file "helm-shell-history.el"))
15899 (chmod file #o644)
15900 (emacs-substitute-sexps file
15901 ("(defvar helm-shell-history-file"
15902 `(expand-file-name "~/.bash_history"))))
15903 #t)))))
15904 (propagated-inputs
15905 `(("emacs-helm" ,emacs-helm)))
15906 (home-page "https://github.com/yuutayamada/helm-shell-history")
15907 (synopsis "Find shell history with Emacs Helm")
15908 (description "This package provides an Emacs Helm interface to search
15909 throw a shell history.")
15910 (license license:gpl3+))))
15911
15912 (define-public emacs-discover-my-major
15913 (package
15914 (name "emacs-discover-my-major")
15915 (version "1.0")
15916 (source
15917 (origin
15918 (method git-fetch)
15919 (uri (git-reference
15920 (url "https://framagit.org/steckerhalter/discover-my-major.git/")
15921 (commit version)))
15922 (file-name (git-file-name name version))
15923 (sha256
15924 (base32
15925 "1wlqyl03hhnflbyay3qlvdzqzvv5rbybcjpfddggda7ias9h0pr4"))))
15926 (build-system emacs-build-system)
15927 (propagated-inputs
15928 `(("emacs-makey" ,emacs-makey)))
15929 (home-page "https://framagit.org/steckerhalter/discover-my-major/")
15930 (synopsis "Discover key bindings for the current Emacs major mode")
15931 (description "This package discovers key bindings and
15932 their meaning for the current Emacs major-mode.")
15933 (license license:gpl3+)))
15934
15935 (define-public emacs-org-ref
15936 ;; No release since June 2017.
15937 (let ((commit "5bb9be2232db72b04754d7e4c02a3976ad422f6f")
15938 (revision "2"))
15939 (package
15940 (name "emacs-org-ref")
15941 (version (git-version "1.1.1" revision commit))
15942 (source
15943 (origin
15944 (method git-fetch)
15945 (uri (git-reference
15946 (url "https://github.com/jkitchin/org-ref")
15947 (commit commit)))
15948 (file-name (git-file-name name version))
15949 (sha256
15950 (base32 "15gcvbfj19kyv4nxa632b261dwhb26m99plq230qhv9ssfwfgxbx"))))
15951 (build-system emacs-build-system)
15952 (propagated-inputs
15953 `(("emacs-dash" ,emacs-dash)
15954 ("emacs-f" ,emacs-f)
15955 ("emacs-helm" ,emacs-helm)
15956 ("emacs-helm-bibtex" ,emacs-helm-bibtex)
15957 ("emacs-htmlize" ,emacs-htmlize)
15958 ("emacs-hydra" ,emacs-hydra)
15959 ("emacs-ivy" ,emacs-ivy)
15960 ("emacs-key-chord" ,emacs-key-chord)
15961 ("emacs-pdf-tools" ,emacs-pdf-tools)
15962 ("emacs-s" ,emacs-s)))
15963 (home-page "https://github.com/jkitchin/org-ref")
15964 (synopsis "Citations, cross-references and bibliographies in Org mode")
15965 (description
15966 "Org Ref is an Emacs library that provides rich support for citations,
15967 labels and cross-references in Org mode.
15968
15969 The basic idea of Org Ref is that it defines a convenient interface to insert
15970 citations from a reference database (e.g., from BibTeX files), and a set of
15971 functional Org links for citations, cross-references and labels that export
15972 properly to LaTeX, and that provide clickable functionality to the user. Org
15973 Ref interfaces with Helm BibTeX to facilitate citation entry, and it can also
15974 use RefTeX.
15975
15976 It also provides a fairly large number of utilities for finding bad citations,
15977 extracting BibTeX entries from citations in an Org file, and functions to
15978 create and modify BibTeX entries from a variety of sources, most notably from
15979 a DOI.
15980
15981 Org Ref is especially suitable for Org documents destined for LaTeX export and
15982 scientific publication. Org Ref is also useful for research documents and
15983 notes.")
15984 (license license:gpl3+))))
15985
15986 (define-public emacs-org-reveal
15987 (let ((commit "84039bb499290926511b04749882ecb5eda45a0c"))
15988 (package
15989 (name "emacs-org-reveal")
15990 (version (git-version "20200607" "1" commit))
15991 (source (origin
15992 (method git-fetch)
15993 (uri (git-reference
15994 (url "https://github.com/yjwen/org-reveal")
15995 (commit commit)))
15996 (file-name (git-file-name name version))
15997 (sha256
15998 (base32
15999 "1fx3xmnkpfljrdmy0dsyq79k93ky57gcqm1ad9qbzykk7qjvmmi8"))))
16000 (build-system emacs-build-system)
16001 (home-page "https://github.com/yjwen/org-reveal")
16002 (synopsis "Org and Reveal.js powered HTML presentation tool")
16003 (description "Org-Reveal is a @command{org-mode} extension that allows
16004 to create beautiful presentations (slides) with 3D effects from simple but
16005 powerful Org contents.")
16006 (license license:gpl3+))))
16007
16008 (define-public emacs-org-re-reveal
16009 (package
16010 (name "emacs-org-re-reveal")
16011 (version "3.1.1")
16012 (source (origin
16013 (method git-fetch)
16014 (uri (git-reference
16015 (url "https://gitlab.com/oer/org-re-reveal")
16016 (commit version)))
16017 (file-name (git-file-name name version))
16018 (sha256
16019 (base32
16020 "0an799lxy1j48zlg00982d1rhg46ls4fz4v7r7qdh6228icq5hij"))))
16021 (build-system emacs-build-system)
16022 (propagated-inputs
16023 `(("emacs-htmlize" ,emacs-htmlize)
16024 ("emacs-org" ,emacs-org)))
16025 (home-page "https://gitlab.com/oer/org-re-reveal")
16026 (synopsis "Build HTML presentations with reveal.js from Org source files")
16027 (description "This project started as fork of org-reveal. It provides an
16028 export back-end for HTML presentations with reveal.js from Org mode source
16029 files.")
16030 (license license:gpl3+)))
16031
16032 (define-public emacs-add-hooks
16033 (package
16034 (name "emacs-add-hooks")
16035 (version "3.1.1")
16036 (source
16037 (origin
16038 (method git-fetch)
16039 (uri (git-reference
16040 (url "https://github.com/nickmccurdy/add-hooks")
16041 (commit version)))
16042 (file-name (git-file-name name version))
16043 (sha256
16044 (base32 "1jv9fpcsm572zg0j1mbpbfkqgdlqapy89xhhj19pswkhjns1y2wl"))))
16045 (build-system emacs-build-system)
16046 (home-page "https://github.com/nickmccurdy/add-hooks/")
16047 (synopsis "Emacs function for setting multiple hooks")
16048 (description "This package provides a @code{add-hooks} function tidies up
16049 duplicate hook and function names further into a single declarative call.")
16050 (license license:gpl3+)))
16051
16052 (define-public emacs-fancy-battery
16053 (package
16054 (name "emacs-fancy-battery")
16055 (version "0.2")
16056 (source
16057 (origin
16058 (method git-fetch)
16059 (uri (git-reference
16060 (url "https://github.com/emacsorphanage/fancy-battery")
16061 (commit version)))
16062 (file-name (git-file-name name version))
16063 (sha256
16064 (base32 "05lwcwf412m717yhwpjrswqkm8c3i7391rmiwv2k8xc1vk6dpp4g"))))
16065 (build-system emacs-build-system)
16066 (home-page "https://github.com/emacsorphanage/fancy-battery")
16067 (synopsis "Display battery status in Emacs mode line")
16068 (description "This package provides @code{fancy-battery-mode} which is
16069 like the built-in @code{display-battery-mode}, but more fancy. It just the
16070 remaining time, uses colours to indicate the status of the battery, and is
16071 more customizable.")
16072 (license license:gpl3)))
16073
16074 (define-public emacs-fancy-narrow
16075 (package
16076 (name "emacs-fancy-narrow")
16077 (version "0.9.5")
16078 (source
16079 (origin
16080 (method git-fetch)
16081 (uri (git-reference
16082 (url "https://github.com/Malabarba/fancy-narrow")
16083 (commit version)))
16084 (file-name (git-file-name name version))
16085 (sha256
16086 (base32 "0vcr1gnqawvc1yclqs23jvxm6bqix8kpflf1c7znb0wzxmz9kx7y"))))
16087 (build-system emacs-build-system)
16088 (home-page "https://github.com/Malabarba/fancy-narrow/releases")
16089 (synopsis "Imitate @code{narrow-to-region} with more eye candy")
16090 (description
16091 "Unlike @code{narrow-to-region}, which completely hides text outside
16092 the narrowed region, this package simply de-emphasizes the text, makes it
16093 read-only, and makes it unreachable. This leads to a much more natural
16094 feeling where the region stays static (instead of being brutally moved to a
16095 blank slate) and is clearly highlighted with respect to the rest of the
16096 buffer.")
16097 (license license:gpl2+)))
16098
16099 (define-public emacs-know-your-http-well
16100 (package
16101 (name "emacs-know-your-http-well")
16102 (version "0.5.0")
16103 (source
16104 (origin
16105 (method git-fetch)
16106 (uri (git-reference
16107 (url "https://github.com/for-GET/know-your-http-well")
16108 (commit (string-append "v" version))))
16109 (file-name (git-file-name name version))
16110 (sha256
16111 (base32 "1lppggnii2r9fvlhh33gbdrwb50za8lnalavlq9s86ngndn4n94k"))))
16112 (arguments
16113 `(#:phases
16114 (modify-phases %standard-phases
16115 (add-after 'unpack 'install-json-files
16116 (lambda* (#:key outputs #:allow-other-keys)
16117 (for-each (lambda (directory)
16118 (copy-recursively directory
16119 (string-append
16120 (assoc-ref outputs "out")
16121 directory)))
16122 '("js" "json"))))
16123 (add-after 'unpack 'chdir-elisp
16124 ;; Elisp directory is not in root of the source.
16125 (lambda _
16126 (chdir "emacs"))))))
16127 (build-system emacs-build-system)
16128 (home-page "https://github.com/for-GET/know-your-http-well")
16129 (synopsis "Meaning of HTTP headers codes")
16130 (description "Meaning of HTTP headers codes.")
16131 (license license:gpl3+)))
16132
16133 (define-public emacs-navi-mode
16134 (let ((commit "c1d38e8237f4e14af020a0b7d4f118ea198ab674"))
16135 (package
16136 (name "emacs-navi-mode")
16137 (version (git-version "2.0" "1" commit))
16138 (source
16139 (origin
16140 (method git-fetch)
16141 (uri (git-reference
16142 (url "https://github.com/alphapapa/navi")
16143 (commit commit)))
16144 (file-name (git-file-name name version))
16145 (sha256
16146 (base32
16147 "0jj5spk14hgb7zb1cd2n8whcw4k1kd5zb6llwj96v178yaws7l8k"))))
16148 (build-system emacs-build-system)
16149 (propagated-inputs
16150 `(("emacs-outshine" ,emacs-outshine)
16151 ("emacs-outorg" ,emacs-outorg)))
16152 (home-page "https://github.com/alphapapa/navi")
16153 (synopsis "Emacs major-mode for easy buffer-navigation")
16154 (description
16155 "This package provides an Emacs major-mode for easy buffer-navigation")
16156 (license license:gpl3+))))
16157
16158 (define-public emacs-download-region
16159 (let ((commit "eb9e557529a73b4cfc8281c70dd0d95db333fffa")
16160 (revision "1"))
16161 (package
16162 (name "emacs-download-region")
16163 (version (string-append "0.0.1" "-" revision "."
16164 (string-take commit 7)))
16165 (source
16166 (origin
16167 (method git-fetch)
16168 (uri (git-reference
16169 (url "https://github.com/zk-phi/download-region")
16170 (commit commit)))
16171 (file-name (git-file-name name version))
16172 (sha256
16173 (base32
16174 "0v52djg39b6k2snizd9x0qc009ws5y0ywqsfwhqgcbs5ymzh7dsc"))))
16175 (build-system emacs-build-system)
16176 (home-page "https://github.com/zk-phi/download-region")
16177 (synopsis "In buffer download manager for Emacs")
16178 (description "@code{download-region} provides in buffer
16179 downloading manager for Emacs.")
16180 (license license:gpl3+))))
16181
16182 (define-public emacs-helpful
16183 (package
16184 (name "emacs-helpful")
16185 (version "0.18")
16186 (source
16187 (origin
16188 (method git-fetch)
16189 (uri (git-reference
16190 (url "https://github.com/Wilfred/helpful")
16191 (commit version)))
16192 (file-name (git-file-name name version))
16193 (sha256
16194 (base32 "0gdjxykqkal2x765mi51m99i5ql23i1fy909wy4mzj5ajhjfgqcc"))))
16195 (build-system emacs-build-system)
16196 (propagated-inputs
16197 `(("emacs-elisp-refs" ,emacs-elisp-refs)
16198 ("emacs-dash" ,emacs-dash)
16199 ("emacs-s" ,emacs-s)
16200 ("emacs-f" ,emacs-f)
16201 ("emacs-shut-up" ,emacs-shut-up)))
16202 (native-inputs
16203 `(("emacs-ert-runner" ,emacs-ert-runner)
16204 ("emacs-undercover" ,emacs-undercover)))
16205 (arguments
16206 `(#:tests? #t
16207 #:test-command '("ert-runner")))
16208 (home-page "https://github.com/Wilfred/helpful")
16209 (synopsis "More contextual information in Emacs help")
16210 (description "@code{helpful} is an alternative to the built-in Emacs help
16211 that provides much more contextual information.
16212
16213 @itemize
16214 @item Show the source code for interactively defined functions (unlike the
16215 built-in Help).
16216 @item Fall back to the raw sexp if no source is available.
16217 @item Show where a function is being called.
16218 @item Docstrings will Highlight the summary (the first sentence), include
16219 cross-references, hide superfluous puncuation.
16220 @item Show you the properties that have been applied to the current
16221 symbol. This provides visibility of features like edebug or byte-code
16222 optimisation.
16223 @item Provide a separate @code{helpful-command} function to view interactive
16224 functions.
16225 @item Display any keybindings that apply to interactive functions.
16226 @item Trace, disassemble functions from inside Helpful. This is discoverable
16227 and doesn't require memorisation of commands.
16228 @end itemize\n")
16229 (license license:gpl3+)))
16230
16231 (define-public emacs-logview
16232 (package
16233 (name "emacs-logview")
16234 (version "0.9")
16235 (source
16236 (origin
16237 (method git-fetch)
16238 (uri (git-reference
16239 (url "https://github.com/doublep/logview")
16240 (commit version)))
16241 (file-name (git-file-name name version))
16242 (sha256
16243 (base32 "1qhzs75pxnaksbhczmpdcy2zmrqavlzkzss7ik5nv2wf9vs0sn02"))))
16244 (propagated-inputs
16245 `(("emacs-datetime" ,emacs-datetime)))
16246 (build-system emacs-build-system)
16247 (home-page "https://github.com/doublep/logview/")
16248 (synopsis "Emacs mode for viewing log files")
16249 (description "@code{logview} provides an Emacs mode to view log files.")
16250 (license license:gpl3+)))
16251
16252 (define-public emacs-suggest
16253 (package
16254 (name "emacs-suggest")
16255 (version "0.7")
16256 (home-page "https://github.com/Wilfred/suggest.el")
16257 (source
16258 (origin
16259 (method git-fetch)
16260 (uri (git-reference
16261 (url home-page)
16262 (commit version)))
16263 (file-name (git-file-name name version))
16264 (sha256
16265 (base32
16266 "01v8plska5d3g19sb1m4ph1i3ayprfzk8mi6mpabjy6zad397xjl"))))
16267 (build-system emacs-build-system)
16268 (propagated-inputs
16269 `(("emacs-loop" ,emacs-loop)
16270 ("emacs-dash" ,emacs-dash)
16271 ("emacs-s" ,emacs-s)
16272 ("emacs-f" ,emacs-f)
16273 ("emacs-spinner" ,emacs-spinner)
16274 ("emacs-shut-up" ,emacs-shut-up)))
16275 (native-inputs
16276 `(("emacs-ert-runner" ,emacs-ert-runner)
16277 ("emacs-undercover" ,emacs-undercover)))
16278 (arguments
16279 `(#:tests? #t
16280 #:test-command '("ert-runner")))
16281 (synopsis "Suggest Elisp functions that give the output requested")
16282 (description "Suggest.el will find functions that give the output
16283 requested. It's a great way of exploring list, string and arithmetic
16284 functions.")
16285 (license license:gpl3+)))
16286
16287 (define-public emacs-benchmark-init
16288 (package
16289 (name "emacs-benchmark-init")
16290 (version "1.0")
16291 (source
16292 (origin
16293 (method git-fetch)
16294 (uri (git-reference
16295 (url "https://github.com/dholm/benchmark-init-el")
16296 (commit version)))
16297 (file-name (git-file-name name version))
16298 (sha256
16299 (base32 "1kyn1izm5sbqbp9whnhk9dn3yc7zy8bz5san5w3ivi3rpx15fh94"))))
16300 (build-system emacs-build-system)
16301 (home-page "https://github.com/dholm/benchmark-init-el")
16302 (synopsis "Benchmark Emacs @code{require} and @code{load} calls")
16303 (description "@code{benchmark-init} provides a way to keep track of where
16304 time is being spent during Emacs startup in order to optimize startup time.")
16305 (license license:gpl3+)))
16306
16307 (define-public emacs-magit-gerrit
16308 (let ((version "0.3")
16309 (revision "1")
16310 (commit "ece6f369694aca17f3ac166ed2801b432acfe20d"))
16311 (package
16312 (name "emacs-magit-gerrit")
16313 (version (git-version version revision commit))
16314 (source (origin
16315 (method git-fetch)
16316 (uri (git-reference
16317 (url "https://github.com/terranpro/magit-gerrit")
16318 (commit commit)))
16319 (file-name (git-file-name name version))
16320 (sha256
16321 (base32
16322 "0mms0gxv9a3ns8lk5k2wjibm3088y1cmpr3axjdh6ppv7r5wdvii"))))
16323 (build-system emacs-build-system)
16324 (propagated-inputs
16325 `(("emacs-magit" ,emacs-magit)))
16326 (home-page "https://github.com/terranpro/magit-gerrit")
16327 (synopsis "Magit extension for Gerrit")
16328 (description "This Magit extension provides integration with Gerrit,
16329 which makes it possible to conduct Gerrit code reviews directly from within
16330 Emacs.")
16331 (license license:gpl3+))))
16332
16333 (define-public emacs-magit-org-todos-el
16334 (let ((commit "df206287737b9671f2e36ae7b1474ebbe9940d2a"))
16335 (package
16336 (name "emacs-magit-org-todos-el")
16337 (version (git-version "0.1.1" "1" commit))
16338 (source
16339 (origin
16340 (method git-fetch)
16341 (uri (git-reference
16342 (url "https://github.com/danielma/magit-org-todos.el")
16343 (commit commit)))
16344 (file-name (git-file-name name version))
16345 (sha256
16346 (base32
16347 "0kdp7k7jnnrkhsg0xh1c3h7iz0vgi120gf5xwl1hxy61avivnxrn"))))
16348 (propagated-inputs
16349 `(("magit" ,emacs-magit)))
16350 (build-system emacs-build-system)
16351 (home-page "https://github.com/danielma/magit-org-todos.el")
16352 (synopsis "Get todo.org into Emacs Magit status")
16353 (description "This package allows you to get @file{todo.org} into your
16354 magit status.
16355
16356 If you have a @file{todo.org} file with @code{TODO} items in the root of your
16357 repository, @code{magit-org-todos} will create a section in your Magit status
16358 buffer with each of your todos.")
16359 (license license:gpl3+))))
16360
16361 (define-public emacs-vcsh
16362 (package
16363 (name "emacs-vcsh")
16364 (version "0.4.4")
16365 (source
16366 (origin
16367 (method git-fetch)
16368 (uri (git-reference
16369 (url "https://gitlab.com/stepnem/vcsh-el.git")
16370 (commit version)))
16371 (file-name (git-file-name name version))
16372 (sha256
16373 (base32 "183pffdiqb7qqmjq31wxl3fpv8qswqgg99gb716rddiyk15ysri7"))))
16374 (build-system emacs-build-system)
16375 (home-page "https://gitlab.com/stepnem/vcsh-el")
16376 (synopsis "Emacs VCSH integration")
16377 (description
16378 "This library provides basic ``enter'' functionality and a few
16379 convenience commands to initialize a @acronym{VCSH, Version Control System for
16380 $HOME} repository and add files to it. It can be used in conjunction with
16381 Magit.")
16382 (license license:public-domain)))
16383
16384 (define-public emacs-f3
16385 (package
16386 (name "emacs-f3")
16387 (version "0.1")
16388 (source
16389 (origin
16390 (method git-fetch)
16391 (uri (git-reference
16392 (url "https://github.com/cosmicexplorer/f3")
16393 (commit version)))
16394 (file-name (git-file-name name version))
16395 (sha256
16396 (base32 "1qg48zbjdjqimw4516ymrsilz41zkib9321q0caf9474s9xyp2bi"))))
16397 (build-system emacs-build-system)
16398 (propagated-inputs
16399 `(("emacs-helm" ,emacs-helm)))
16400 (home-page "https://github.com/cosmicexplorer/f3")
16401 (synopsis "Fantastic File Finder for Emacs")
16402 (description
16403 "The Fantastic File Finder for Emacs. Find files fast, using helm.")
16404 (license license:gpl3+)))
16405
16406 (define-public emacs-lice-el
16407 (let ((commit "482e58ab83fff86ed754b00be27b62a219597e7c"))
16408 (package
16409 (name "emacs-lice-el")
16410 (version (git-version "0.2" "2" commit))
16411 (source (origin
16412 (method git-fetch)
16413 (uri (git-reference
16414 (url "https://github.com/buzztaiki/lice-el")
16415 (commit commit)))
16416 (file-name (git-file-name name version))
16417 (sha256
16418 (base32
16419 "0yxkjyhfk8kpr8yqz54gdx6xwkj4s8bnbz60162jh12crj0bs5n7"))))
16420 (build-system emacs-build-system)
16421 (arguments
16422 `(#:phases
16423 (modify-phases %standard-phases
16424 (add-after 'unpack 'patch-template-directory
16425 (lambda* (#:key outputs #:allow-other-keys)
16426 (chmod "lice.el" #o666)
16427 (emacs-substitute-variables "lice.el"
16428 ("lice:system-template-directory"
16429 (string-append (assoc-ref outputs "out")
16430 "/share/emacs-lice-el/template")))
16431 #t))
16432 (add-after 'install 'install-templates
16433 (lambda* (#:key outputs #:allow-other-keys)
16434 (copy-recursively
16435 "template"
16436 (string-append (assoc-ref outputs "out")
16437 "/share/emacs-lice-el/template"))
16438 #t)))))
16439 (home-page "https://github.com/buzztaiki/lice-el")
16440 (synopsis "License and header template for Emacs")
16441 (description "@code{lice.el} provides following features:
16442
16443 @itemize
16444 @item License template management.
16445 @item File header insertion.
16446 @end itemize\n")
16447 (license license:gpl3+))))
16448
16449 (define-public emacs-academic-phrases
16450 (let ((commit "0823ed8c24b26c32f909b896a469833ec4d7b656"))
16451 (package
16452 (name "emacs-academic-phrases")
16453 (version (git-version "0.1" "1" commit))
16454 (source
16455 (origin
16456 (method git-fetch)
16457 (uri (git-reference
16458 (url "https://github.com/nashamri/academic-phrases")
16459 (commit commit)))
16460 (file-name (git-file-name name version))
16461 (sha256
16462 (base32
16463 "0qfzsq8jh05w4zkr0cvq3i1hdn97bq344vcqjg46sib26x3wpz6r"))))
16464 (build-system emacs-build-system)
16465 (propagated-inputs
16466 `(("emacs-dash" ,emacs-dash)
16467 ("emacs-s" ,emacs-s)
16468 ("emacs-ht" ,emacs-ht)))
16469 (home-page "https://github.com/nashamri/academic-phrases")
16470 (synopsis "Bypass that mental block when writing your papers")
16471 (description
16472 "When writing your academic paper, you might get stuck trying to find
16473 the right phrase that captures your intention. This package tries to
16474 alleviate that problem by presenting you with a list of phrases organized by
16475 the topic or by the paper section that you are writing. This package has
16476 around 600 phrases so far.
16477
16478 Using this package is easy, just call @code{academic-phrases} to get a list of
16479 phrases organized by topic, or call @code{academic-phrases-by-section} to
16480 browse the phrases by the paper section and fill-in the blanks if required.")
16481 (license license:gpl3+))))
16482
16483 (define-public emacs-auto-yasnippet
16484 (let ((commit "624b0d9711222073a2a3f2186e2605eb99fc83c9")
16485 (revision "2"))
16486 (package
16487 (name "emacs-auto-yasnippet")
16488 (version (git-version "0.3.0" revision commit))
16489 (source (origin
16490 (method git-fetch)
16491 (uri (git-reference
16492 (url "https://github.com/abo-abo/auto-yasnippet")
16493 (commit commit)))
16494 (file-name (git-file-name name version))
16495 (sha256
16496 (base32
16497 "15g8wi067f345xhpi0c12w0h04p4f4lpccwmdjdfj8hzfl4gyxy9"))))
16498 (build-system emacs-build-system)
16499 (arguments
16500 '(#:tests? #t
16501 #:test-command '("make" "test")))
16502 (propagated-inputs
16503 `(("emacs-yasnippet" ,emacs-yasnippet)))
16504 (home-page "https://github.com/abo-abo/auto-yasnippet/")
16505 (synopsis "Quickly create disposable yasnippets")
16506 (description "This package provides a hybrid of keyboard macros and
16507 yasnippet. You create the snippet on the go, usually to be used just in the
16508 one place. It's fast, because you're not leaving the current buffer, and all
16509 you do is enter the code you'd enter anyway, just placing ~ where you'd like
16510 yasnippet fields and mirrors to be.")
16511 (license license:gpl3+))))
16512
16513 (define-public emacs-highlight-numbers
16514 (package
16515 (name "emacs-highlight-numbers")
16516 (version "0.2.3")
16517 (source
16518 (origin
16519 (method git-fetch)
16520 (uri (git-reference
16521 (url "https://github.com/Fanael/highlight-numbers")
16522 (commit version)))
16523 (file-name (git-file-name name version))
16524 (sha256
16525 (base32 "1r07mpyr7rhd7bkg778hx6vbhb4n9ixgzkpszhgks7ri6ia38pj8"))))
16526 (build-system emacs-build-system)
16527 (propagated-inputs
16528 `(("emacs-parent-mode" ,emacs-parent-mode)))
16529 (home-page "https://github.com/Fanael/highlight-numbers")
16530 (synopsis "Highlight numbers in source code")
16531 (description "@code{highlight-numbers-mode} provides a minor mode for
16532 syntax highlighting of numeric literals in source code.
16533
16534 It s customizable: it's easy to add or redefine what exactly constitutes a
16535 \"number\" in given major mode. See @code{highlight-numbers-modelist}.")
16536 (license license:gpl3+)))
16537
16538 (define-public emacs-darkroom
16539 (package
16540 (name "emacs-darkroom")
16541 (version "0.3")
16542 (source
16543 (origin
16544 (method url-fetch)
16545 (uri (string-append "https://elpa.gnu.org/packages/"
16546 "darkroom-" version ".el"))
16547 (sha256
16548 (base32 "0l1xg5kqmjw22k78qnsln0ifx2dx74xxqj0qp8xxcpqvzzx0xh86"))))
16549 (build-system emacs-build-system)
16550 (home-page "https://elpa.gnu.org/packages/darkroom.html")
16551 (synopsis "Remove visual distractions and focus on writing")
16552 (description "@code{darkroom-mode} makes visual distractions disappear.
16553 The mode-line is temporarily elided, text is enlarged and margins are adjusted
16554 so that it's centered on the window.
16555
16556 @code{darkroom-tentative-mode} is similar, but it doesn't immediately turn-on
16557 @code{darkroom-mode}, unless the current buffer lives in the sole window of
16558 the Emacs frame (i.e. all other windows are deleted). Whenever the frame is
16559 split to display more windows and more buffers, the buffer exits
16560 @code{darkroom-mode}. Whenever they are deleted, the buffer re-enters
16561 @code{darkroom-mode}.")
16562 (license license:gpl3+)))
16563
16564 (define-public emacs-rsw-elisp
16565 (package
16566 (name "emacs-rsw-elisp")
16567 (version "1.0.5")
16568 (source (origin
16569 (method git-fetch)
16570 (uri (git-reference
16571 (url "https://github.com/rswgnu/rsw-elisp")
16572 (commit version)))
16573 (file-name (git-file-name name version))
16574 (sha256
16575 (base32
16576 "0dfq8myg0r91900bk1s70amsmm4mjk2qsg12v5pk7lla5d2vnyaf"))))
16577 (build-system emacs-build-system)
16578 (home-page "https://github.com/rswgnu/rsw-elisp")
16579 (synopsis "Improved expressions that interactively evaluate Emacs Lisp")
16580 (description "This package improves and replaces the GNU Emacs commands
16581 that interactively evaluate Emacs Lisp expressions. The new commands replace
16582 standard key bindings and are all prefixed with @code{rsw-elisp-}. They work
16583 the same way as the old commands when called non-interactively; only the
16584 interactive behavior should be different.")
16585 (license license:gpl3+)))
16586
16587 (define-public emacs-default-text-scale
16588 (let ((commit "968e985e219235f3e744d6d967e592acbaf6e0a8")
16589 (revision "1"))
16590 (package
16591 (name "emacs-default-text-scale")
16592 (version (string-append "0.1" "-" revision "."
16593 (string-take commit 7)))
16594 (source (origin
16595 (method git-fetch)
16596 (uri (git-reference
16597 (url "https://github.com/purcell/default-text-scale")
16598 (commit commit)))
16599 (file-name (git-file-name name version))
16600 (sha256
16601 (base32
16602 "0zds01c3q5yny6ab1fxfkzzgn1kgl3q23lxxap905f4qd70v922h"))))
16603 (build-system emacs-build-system)
16604 (home-page "https://github.com/purcell/default-text-scale")
16605 (synopsis "Adjust the font size in all Emacs frames")
16606 (description "This package provides commands for increasing or
16607 decreasing the default font size in all GUI Emacs frames.")
16608 (license license:gpl3+))))
16609
16610 (define-public emacs-mixed-pitch
16611 ;; This commit contains fixes for visual alignment of line numbers and
16612 ;; org-indent-mode.
16613 (let ((commit "d305108f9520e196b533f05d1dcc284cf535faaf")
16614 (tag "1.1.0")
16615 (revision "0"))
16616 (package
16617 (name "emacs-mixed-pitch")
16618 (version (git-version tag revision commit))
16619 (source
16620 (origin
16621 (method git-fetch)
16622 (uri (git-reference
16623 (url "https://gitlab.com/jabranham/mixed-pitch.git")
16624 (commit commit)))
16625 (file-name (git-file-name name version))
16626 (sha256
16627 (base32 "0yx89is3g2m8af8vfsz5rgjmfmx7mfrxlffb1x6y4b8lh9l0k6dj"))))
16628 (build-system emacs-build-system)
16629 (home-page "https://gitlab.com/jabranham/mixed-pitch")
16630 (synopsis "Mix variable- and fixed-pitch fonts in the same Emacs buffer")
16631 (description
16632 "@code{mixed-pitch-mode} is a minor mode that enables mixing
16633 variable-pitch and fixed-pitch fonts in the same buffer. The list
16634 @code{mixed-pitch-fixed-pitch-faces} defines the faces that are kept
16635 fixed-pitch,everything else becomes variable-pitch.")
16636 (license license:gpl3+))))
16637
16638 (define-public emacs-visual-regexp
16639 (package
16640 (name "emacs-visual-regexp")
16641 (version "1.1.2")
16642 (source
16643 (origin
16644 (method git-fetch)
16645 (uri (git-reference
16646 (url "https://github.com/benma/visual-regexp.el")
16647 (commit (string-append "v" version))))
16648 (file-name (git-file-name name version))
16649 (sha256
16650 (base32 "12p3rlhdphwmx1kxsjzcl2wj3i6qgpvw8iwhg1whs6yqgaxivixd"))))
16651 (build-system emacs-build-system)
16652 (home-page "https://github.com/benma/visual-regexp.el/")
16653 (synopsis "Regexp command with interactive visual feedback")
16654 (description "This package provides an Emacs regexp command with
16655 interactive visual feedback.")
16656 (license license:gpl3+)))
16657
16658 (define-public emacs-faceup
16659 (let ((commit "6c92dad56a133e14e7b27831e1bcf9b3a71ff154")
16660 (revision "1"))
16661 (package
16662 (name "emacs-faceup")
16663 (version (string-append "0.0.1" "-" revision "."
16664 (string-take commit 7)))
16665 (source
16666 (origin
16667 (method git-fetch)
16668 (uri (git-reference
16669 (url "https://github.com/Lindydancer/faceup")
16670 (commit commit)))
16671 (file-name (git-file-name name version))
16672 (sha256
16673 (base32
16674 "1yzmy7flrhrh0i10bdszx8idx6r8h6czm4vm4q0z6fp5fw94zwrx"))))
16675 (build-system emacs-build-system)
16676 (home-page "https://github.com/Lindydancer/faceup")
16677 (synopsis "Markup language for faces and font-lock regression testing")
16678 (description "Emacs is capable of highlighting buffers based on
16679 language-specific @code{font-lock} rules. This package makes it possible to
16680 perform regression test for packages that provide font-lock rules.")
16681 (license license:gpl3+))))
16682
16683 (define-public emacs-racket-mode
16684 (let ((commit "5eb31a284c8db5102bc71b1e2c6ce3a095ae085b")
16685 (revision "6"))
16686 (package
16687 (name "emacs-racket-mode")
16688 (version (git-version "0.0.2" revision commit))
16689 (source
16690 (origin
16691 (method git-fetch)
16692 (uri (git-reference
16693 (url "https://github.com/greghendershott/racket-mode")
16694 (commit commit)))
16695 (file-name (git-file-name name version))
16696 (sha256
16697 (base32
16698 "081h6rd0gv88m0wvnmghi242kl39x1sz34qr4cq9vz04iwvnmgrm"))))
16699 (build-system emacs-build-system)
16700 (arguments
16701 `(#:include '("\\.el$" "\\.rkt$")))
16702 (propagated-inputs
16703 `(("emacs-faceup" ,emacs-faceup)
16704 ("emacs-pos-tip" ,emacs-pos-tip)
16705 ("emacs-s" ,emacs-s)))
16706 (home-page "https://www.racket-mode.com/")
16707 (synopsis "Major mode for the Racket language")
16708 (description "@code{racket-mode} provides:
16709
16710 @itemize
16711 @item Focus on Racket (not various Schemes).
16712 @item Follow DrRacket concepts where applicable.
16713 @item Thorough font-lock and indent.
16714 @end itemize\n")
16715 (license license:gpl3+))))
16716
16717 (define-public emacs-grep-context
16718 (let ((commit "5a4e3efdf775755c1bbefcfe4b461c1166d81d7d")
16719 (revision "1"))
16720 (package
16721 (name "emacs-grep-context")
16722 (version (git-version "0.1.0" revision commit))
16723 (source
16724 (origin
16725 (method git-fetch)
16726 (uri (git-reference
16727 (url "https://github.com/mkcms/grep-context")
16728 (commit commit)))
16729 (file-name (git-file-name name version))
16730 (sha256
16731 (base32
16732 "00q7l4a3c0ay6g5ff9bfa2qgkiswsyh4s6pqnpg0zpzhvv5710f5"))))
16733 (build-system emacs-build-system)
16734 (propagated-inputs
16735 `(("emacs-dash" ,emacs-dash)))
16736 (home-page "https://github.com/mkcms/grep-context")
16737 (synopsis "Increase context in compilation and grep buffers")
16738 (description
16739 "This package provides an Emacs package for more context in
16740 compilation/grep buffers. Works with @code{wgrep}, @code{ack}, @code{ag},
16741 @code{ivy}.")
16742 (license license:gpl3+))))
16743
16744 (define-public emacs-helm-firefox
16745 (let ((commit "0ad34b7b5abc485a86cae6920c14de861cbeb085")
16746 (revision "1"))
16747 (package
16748 (name "emacs-helm-firefox")
16749 (version (string-append "0.0.1" "-" revision "."
16750 (string-take commit 7)))
16751 (source
16752 (origin
16753 (method git-fetch)
16754 (uri (git-reference
16755 (url "https://github.com/emacs-helm/helm-firefox")
16756 (commit commit)))
16757 (file-name (git-file-name name version))
16758 (sha256
16759 (base32
16760 "08mjsi2f9s29fkk35cj1rrparjnkm836qmbfdwdz7y51f9varjbs"))))
16761 (propagated-inputs
16762 `(("emacs-helm" ,emacs-helm)))
16763 (build-system emacs-build-system)
16764 (home-page "https://github.com/emacs-helm/helm-firefox")
16765 (synopsis "Display firefox bookmarks with Emacs Helm interface")
16766 (description "Display firefox bookmarks with Emacs Helm interface")
16767 (license license:gpl3+))))
16768
16769 (define-public emacs-interactive-align
16770 (package
16771 (name "emacs-interactive-align")
16772 (version "0.4.2")
16773 (source
16774 (origin
16775 (method git-fetch)
16776 (uri (git-reference
16777 (url "https://github.com/mkcms/interactive-align")
16778 (commit (string-append "v" version))))
16779 (file-name (git-file-name name version))
16780 (sha256
16781 (base32
16782 "0bh03w91i622hbar5dcq631ndxx1y8kd3h655pgw1g0lqkv1mlnc"))))
16783 (build-system emacs-build-system)
16784 (home-page "https://github.com/mkcms/interactive-align/")
16785 (synopsis "Interactive align-regexp command in Emacs")
16786 (description "Interactive align-regexp command in Emacs")
16787 (license license:gpl3+)))
16788
16789 (define-public emacs-shift-number
16790 (package
16791 (name "emacs-shift-number")
16792 (version "0.1")
16793 (source
16794 (origin
16795 (method git-fetch)
16796 (uri (git-reference
16797 (url "https://github.com/alezost/shift-number.el")
16798 (commit (string-append "v" version))))
16799 (file-name (git-file-name name version))
16800 (sha256
16801 (base32
16802 "0zlwmzsxkv4mkggylxfx2fkrwgz7dz3zbg2gkn2rxcpy2k2gla64"))))
16803 (build-system emacs-build-system)
16804 (home-page "https://github.com/alezost/shift-number.el")
16805 (synopsis "Increase or decrease the number at point")
16806 (description "@code{emacs-shift-number} provides commands
16807 @code{shift-number-up} to increase and @code{shift-number-down} to
16808 decrease the number at point.")
16809 (license license:gpl3+)))
16810
16811 (define-public emacs-highlight-defined
16812 (package
16813 (name "emacs-highlight-defined")
16814 (version "0.1.5")
16815 (source
16816 (origin
16817 (method git-fetch)
16818 (uri (git-reference
16819 (url "https://github.com/Fanael/highlight-defined")
16820 (commit version)))
16821 (file-name (git-file-name name version))
16822 (sha256
16823 (base32 "08czwa165rnd5z0dwwdddn7zi5w63sdk31l47bj0598kbly01n7r"))))
16824 (build-system emacs-build-system)
16825 (home-page "https://github.com/Fanael/highlight-defined")
16826 (synopsis "Syntax highlighting of known Elisp symbols")
16827 (description "Minor mode providing syntax highlighting of known Emacs Lisp
16828 symbols. Currently the code distinguishes Lisp functions, built-in functions,
16829 macros, faces and variables. To enable call @code{highlight-defined-mode}. ")
16830 (license license:gpl3+)))
16831
16832 (define-public emacs-parinfer-mode
16833 (package
16834 (name "emacs-parinfer-mode")
16835 (version "0.4.10")
16836 (source
16837 (origin
16838 (method git-fetch)
16839 (uri (git-reference
16840 (url "https://github.com/DogLooksGood/parinfer-mode")
16841 (commit (string-append "v" version))))
16842 (file-name (git-file-name name version))
16843 (sha256
16844 (base32 "0v97ncb0w1slb0x8861l3yr1kqz6fgw1fwl1z9lz6hh8p2ih34sk"))))
16845 (propagated-inputs
16846 `(("emacs-dash" ,emacs-dash)
16847 ("emacs-rainbow-delimiters" ,emacs-rainbow-delimiters)
16848 ("emacs-company" ,emacs-company)))
16849 (build-system emacs-build-system)
16850 (home-page "https://github.com/DogLooksGood/parinfer-mode/")
16851 (synopsis "Lisp structure editing mode")
16852 (description "@code{parinfer-mode} is a proof-of-concept editor
16853 mode for Lisp programming languages. It will infer some changes to
16854 keep Parens and Indentation inline with one another.")
16855 (license license:gpl3+)))
16856
16857 (define-public emacs-helm-eww
16858 (package
16859 (name "emacs-helm-eww")
16860 (version "1.2")
16861 (source (origin
16862 (method git-fetch)
16863 (uri (git-reference
16864 (url "https://github.com/emacs-helm/helm-eww")
16865 (commit version)))
16866 (file-name (git-file-name name version))
16867 (sha256
16868 (base32
16869 "0hpq1h0p69c9k6hkd2mjpprx213sc5475q7pr2zpmwrjdzgcv70z"))))
16870 (propagated-inputs
16871 `(("emacs-helm" ,emacs-helm)))
16872 (build-system emacs-build-system)
16873 (home-page "https://github.com/emacs-helm/helm-eww/")
16874 (synopsis "Helm interface to EWW")
16875 (description "This package provides a Helm interface for EWW buffers,
16876 bookmarks and history.")
16877 (license license:gpl3+)))
16878
16879 (define-public emacs-stumpwm-mode
16880 (let ((commit "920f8fc1488f7953f205e1dda4c2ecbbbda56d6")
16881 (revision "3"))
16882 (package
16883 (name "emacs-stumpwm-mode")
16884 (version (git-version "0.0.1" revision commit))
16885 (source (origin
16886 (method git-fetch)
16887 (uri (git-reference
16888 (url "https://github.com/stumpwm/stumpwm-contrib")
16889 (commit commit)))
16890 (file-name (git-file-name name version))
16891 (sha256
16892 (base32
16893 "0giac390bq95ag41xkxqp8jjrhfx1wpgglz7jg5rkm0wjhcwmyml"))))
16894 (build-system emacs-build-system)
16895 (arguments
16896 `(#:phases
16897 (modify-phases %standard-phases
16898 (add-after 'unpack 'chdir-elisp
16899 ;; Elisp directory is not in root of the source.
16900 (lambda _
16901 (chdir "util/swm-emacs"))))))
16902 (home-page "https://github.com/stumpwm/stumpwm-contrib")
16903 (synopsis "Emacs minor-mode for Stumpwm")
16904 (description "Emacs minor-mode for Stumpwm")
16905 (license license:gpl3+))))
16906
16907 (define-public emacs-irfc
16908 (package
16909 (name "emacs-irfc")
16910 (version "20130824.507-1")
16911 (source
16912 (origin
16913 (method url-fetch)
16914 (uri "https://www.emacswiki.org/emacs/download/irfc.el")
16915 (file-name (string-append "irfc-" version ".el"))
16916 (sha256
16917 (base32
16918 "0rbfrza56kvspvgrwg0b5bj30d0qncqdsmfxn3y5caq4ifcj77hv"))))
16919 (build-system emacs-build-system)
16920 (home-page "https://www.emacswiki.org/emacs/download/irfc.el")
16921 (synopsis "Interface for IETF RFC document")
16922 (description
16923 "This package provides an Emacs interface for IETF RFC document.")
16924 (license license:gpl3+)))
16925
16926 (define-public emacs-ido-vertical-mode
16927 (package
16928 (name "emacs-ido-vertical-mode")
16929 (version "0.1.6")
16930 (source
16931 (origin
16932 (method git-fetch)
16933 (uri (git-reference
16934 (url "https://github.com/creichert/ido-vertical-mode.el")
16935 (commit (string-append "v" version))))
16936 (file-name (git-file-name name version))
16937 (sha256
16938 (base32 "1lv82q639xjnmvby56nwqn23ijh6f163bk675s33dkingm8csj8k"))))
16939 (build-system emacs-build-system)
16940 (home-page "https://github.com/creichert/ido-vertical-mode.el")
16941 (synopsis "Makes ido-mode display vertically")
16942 (description "Makes ido-mode display prospects vertically.")
16943 (license license:gpl3+)))
16944
16945 (define-public emacs-wordgen
16946 (package
16947 (name "emacs-wordgen")
16948 (version "0.1.4")
16949 (source
16950 (origin
16951 (method git-fetch)
16952 (uri (git-reference
16953 (url "https://github.com/Fanael/wordgen.el")
16954 (commit version)))
16955 (file-name (git-file-name name version))
16956 (sha256
16957 (base32 "06vbc9ycz1nbjwjkg99y3lj6jwb6lnwnmkqf09yr00jjrrfhfash"))))
16958 (build-system emacs-build-system)
16959 (home-page "https://github.com/Fanael/wordgen.el")
16960 (synopsis "Random word generator")
16961 (description "This package provides functions to generate random words
16962 using user-provided rules.")
16963 (license license:gpl3+)))
16964
16965 (define-public emacs-on-screen
16966 (package
16967 (name "emacs-on-screen")
16968 (version "1.3.3")
16969 (source
16970 (origin
16971 (method url-fetch)
16972 (uri (string-append
16973 "https://elpa.gnu.org/packages/on-screen-" version ".el"))
16974 (file-name (string-append name "-" version ".el"))
16975 (sha256
16976 (base32 "0ga4hw23ki583li2z2hr7l6hk1nc2kdg4afndg06cm9jn158wza7"))))
16977 (build-system emacs-build-system)
16978 (home-page "https://github.com/michael-heerdegen/on-screen.el")
16979 (synopsis "Guide your eyes while scrolling")
16980 (description
16981 "Scrolling can be distracting because your eyes may lose
16982 orientation. This library implements a minor mode that highlights
16983 the previously visible buffer part after each scroll.")
16984 (license license:gpl3+)))
16985
16986 (define-public emacs-highlight-escape-sequences
16987 ;; No release upstream. Extract version from main file.
16988 (let ((commit "08d846a7aa748209d65fecead2b6a766c3e5cb41")
16989 (revision "0"))
16990 (package
16991 (name "emacs-highlight-escape-sequences")
16992 (version (git-version "0.4" revision commit))
16993 (source
16994 (origin
16995 (method git-fetch)
16996 (uri (git-reference
16997 (url "https://github.com/dgutov/highlight-escape-sequences")
16998 (commit commit)))
16999 (file-name (git-file-name name version))
17000 (sha256
17001 (base32 "05mc3w1f8ykf80914a1yddw6j8cmh0h57llm07xh89s53821v2is"))))
17002 (build-system emacs-build-system)
17003 (home-page "https://github.com/dgutov/highlight-escape-sequences")
17004 (synopsis "Highlight escape sequences in Emacs")
17005 (description "@code{highlight-escape-sequences} provides an
17006 Emacs minor mode to escape sequences in code.")
17007 (license license:gpl3+))))
17008
17009 (define-public emacs-dashboard
17010 (package
17011 (name "emacs-dashboard")
17012 (version "1.6.0")
17013 (source
17014 (origin
17015 (method git-fetch)
17016 (uri (git-reference
17017 (url "https://github.com/rakanalh/emacs-dashboard")
17018 (commit version)))
17019 (file-name (git-file-name name version))
17020 (sha256
17021 (base32 "1g6g8vad1kdmv1zxp95a8sn70idl26isqjb3xk1r95pqnx1cn591"))))
17022 (build-system emacs-build-system)
17023 (propagated-inputs
17024 `(("emacs-page-break-lines" ,emacs-page-break-lines)))
17025 (arguments
17026 '(#:include '("\\.el$" "\\.txt$" "\\.png$")
17027 #:phases
17028 (modify-phases %standard-phases
17029 (add-after 'unpack 'patch-dashboard-widgets
17030 ;; This phase fixes compilation error.
17031 (lambda _
17032 (chmod "dashboard-widgets.el" #o666)
17033 (emacs-substitute-variables "dashboard-widgets.el"
17034 ("dashboard-init-info"
17035 '(format "Loaded in %s" (emacs-init-time))))
17036 #t)))))
17037 (home-page "https://github.com/rakanalh/emacs-dashboard")
17038 (synopsis "Startup screen extracted from Spacemacs")
17039 (description "This package provides an extensible Emacs dashboard, with
17040 sections for bookmarks, projectil projects, org-agenda and more. ")
17041 (license license:gpl3+)))
17042
17043 (define-public emacs-slime-company
17044 (package
17045 (name "emacs-slime-company")
17046 (version "1.1")
17047 (source
17048 (origin
17049 (method git-fetch)
17050 (uri (git-reference
17051 (url "https://github.com/anwyn/slime-company")
17052 (commit (string-append "v" version))))
17053 (file-name (git-file-name name version))
17054 (sha256
17055 (base32 "1hl1hqkc1pxga9k2k8k15d7dip7sfsmwf4wm4sh346m6nj606q8g"))))
17056 (build-system emacs-build-system)
17057 (propagated-inputs
17058 `(("emacs-slime" ,emacs-slime)
17059 ("emacs-company" ,emacs-company)))
17060 (home-page "https://company-mode.github.io")
17061 (synopsis "SLIME completion backend for @code{company-mode}")
17062 (description
17063 "This is a backend implementation for the completion package
17064 @code{company-mode} which supports the normal and the fuzzy completion
17065 modes of SLIME.")
17066 (license license:gpl3+)))
17067
17068 (define-public emacs-sml-mode
17069 (package
17070 (name "emacs-sml-mode")
17071 (version "6.10")
17072 (source
17073 (origin
17074 (method url-fetch)
17075 (uri (string-append "https://elpa.gnu.org/packages/sml-mode-"
17076 version ".el"))
17077 (sha256
17078 (base32 "01yf0s474r9xhj6nbs14ljn9ccxb5yy758i17c8nmgmqvm8fx7sb"))))
17079 (build-system emacs-build-system)
17080 (home-page "https://elpa.gnu.org/packages/sml-mode.html")
17081 (synopsis "Major mode for editing (Standard) ML")
17082 (description "SML-MODE is a major Emacs mode for editing Standard ML.
17083 It provides syntax highlighting and automatic indentation and
17084 comes with sml-proc which allows interaction with an inferior SML
17085 interactive loop.")
17086 (license license:gpl3+)))
17087
17088 (define-public emacs-eros
17089 (let ((commit "dd8910279226259e100dab798b073a52f9b4233a")
17090 (revision "2"))
17091 (package
17092 (name "emacs-eros")
17093 (version (git-version "0.0.1" revision commit))
17094 (source
17095 (origin
17096 (method git-fetch)
17097 (uri (git-reference
17098 (url "https://github.com/xiongtx/eros")
17099 (commit commit)))
17100 (file-name (git-file-name name version))
17101 (sha256
17102 (base32
17103 "08chj3a0lw4ygi2sv7wj0i6ihfbi8jhylr8p92inif8b88r6wg3k"))))
17104 (build-system emacs-build-system)
17105 (home-page "https://github.com/xiongtx/eros")
17106 (synopsis "Evaluation result overlays")
17107 (description "@code{eros} provides evaluation result overlays.")
17108 (license license:gpl3+))))
17109
17110 (define-public emacs-stickyfunc-enhance
17111 (let ((commit "13bdba51fcd83ccbc3267959d23afc94d458dcb0")
17112 (revision "1"))
17113 (package
17114 (name "emacs-stickyfunc-enhance")
17115 (version "0.1")
17116 (source
17117 (origin
17118 (method git-fetch)
17119 (uri (git-reference
17120 (url "https://github.com/tuhdo/semantic-stickyfunc-enhance")
17121 (commit commit)))
17122 (file-name (git-file-name name version))
17123 (sha256
17124 (base32
17125 "16dxjsr5nj20blww4xpd4jzgjprzzh1nwvb810ggdmp9paf4iy0g"))))
17126 (build-system emacs-build-system)
17127 (home-page "https://github.com/tuhdo/semantic-stickyfunc-enhance")
17128 (synopsis "Enhancement to stock @code{semantic-stickyfunc-mode}")
17129 (description
17130 "@code{semantic-stickyfunc-mode} shows the function point is currently
17131 in at the first line of the current buffer. This is useful when you have a
17132 very long function that spreads more than a screen, and you don't have to
17133 scroll up to read the function name and then scroll down to original position.")
17134 (license license:gpl3+))))
17135
17136 (define-public emacs-git-auto-commit-mode
17137 (package
17138 (name "emacs-git-auto-commit-mode")
17139 (version "4.7.0")
17140 (source
17141 (origin
17142 (method git-fetch)
17143 (uri (git-reference
17144 (url "https://github.com/ryuslash/git-auto-commit-mode")
17145 (commit version)))
17146 (file-name (git-file-name name version))
17147 (sha256
17148 (base32 "0gpib57f7xza04g3iyihw5v15hb7pncqsmvyggib902yvcxlkvqf"))))
17149 (build-system emacs-build-system)
17150 (native-inputs
17151 `(("emacs-buttercup" ,emacs-buttercup)
17152 ("git" ,git)))
17153 (arguments
17154 `(#:tests? #t
17155 #:test-command '("buttercup" "-L" ".")))
17156 (home-page "https://github.com/ryuslash/git-auto-commit-mode")
17157 (synopsis "Emacs Minor mode to automatically commit and push")
17158 (description "@code{git-auto-commit-mode} is an Emacs minor mode that
17159 tries to commit changes to a file after every save.
17160
17161 When @code{gac-automatically-push-p} is non-nil, it also tries to push to the
17162 current upstream.")
17163 (license license:gpl3+)))
17164
17165 (define-public emacs-scroll-on-drag
17166 (let ((commit "888abd04c34753b1fc4b2fe541bc004ebec5c996")
17167 (revision "1"))
17168 (package
17169 (name "emacs-scroll-on-drag")
17170 (version (git-version "0.1" revision commit))
17171 (source
17172 (origin
17173 (method git-fetch)
17174 (uri (git-reference
17175 (url "https://gitlab.com/ideasman42/emacs-scroll-on-drag.git")
17176 (commit commit)))
17177 (file-name (git-file-name name version))
17178 (sha256
17179 (base32
17180 "1si4hdqa3jw1inbyh3wb3i5i9grbms1nwky3vyk9zg7iznwm8a9p"))))
17181 (build-system emacs-build-system)
17182 (home-page "https://gitlab.com/ideasman42/emacs-scroll-on-drag")
17183 (synopsis "Interactive scrolling")
17184 (description "This package permits scrolling at increasing speeds based
17185 on drag distance.")
17186 (license license:gpl3+))))
17187
17188 (define-public emacs-company-restclient
17189 (package
17190 (name "emacs-company-restclient")
17191 (version "0.3.0")
17192 (source
17193 (origin
17194 (method git-fetch)
17195 (uri (git-reference
17196 (url "https://github.com/iquiw/company-restclient")
17197 (commit (string-append "v" version))))
17198 (file-name (git-file-name name version))
17199 (sha256
17200 (base32 "0yp0hlrgcr6yy1xkjvfckys2k24x9xg7y6336ma61bdwn5lpv0x0"))))
17201 (build-system emacs-build-system)
17202 (propagated-inputs
17203 `(("emacs-company" ,emacs-company)
17204 ("emacs-know-your-http-well" ,emacs-know-your-http-well)
17205 ("emacs-restclient" ,emacs-restclient)))
17206 (home-page "https://github.com/iquiw/company-restclient")
17207 (synopsis "Company-mode completion back-end for restclient-mode")
17208 (description "@code{company-mode} back-end for
17209 @code{restclient-mode}.
17210
17211 It provides auto-completion for HTTP methods and headers in
17212 @code{restclient-mode}. Completion source is given by
17213 @code{know-your-http-well}.")
17214 (license license:gpl3+)))
17215
17216 (define-public emacs-noflet
17217 (let ((version "20170629")
17218 (revision "1")
17219 (commit "7ae84dc3257637af7334101456dafe1759c6b68a"))
17220 (package
17221 (name "emacs-noflet")
17222 (version (git-version version revision commit))
17223 (source
17224 (origin
17225 (method git-fetch)
17226 (uri (git-reference
17227 (url "https://github.com/nicferrier/emacs-noflet")
17228 (commit commit)))
17229 (file-name (git-file-name name version))
17230 (sha256
17231 (base32
17232 "0g70gnmfi8n24jzfci9nrj0n9bn1qig7b8f9f325rin8h7x32ypf"))))
17233 (build-system emacs-build-system)
17234 (arguments
17235 `(#:phases
17236 (modify-phases %standard-phases
17237 (add-after 'unpack 'require-dash
17238 ;; noflet.el uses -map from dash, but (require 'dash) is
17239 ;; missing. So, add it.
17240 (lambda _
17241 (substitute* "noflet.el"
17242 ((";;; Code:") ";;; Code:\n(require 'dash)"))
17243 #t)))))
17244 (propagated-inputs
17245 `(("emacs-dash" ,emacs-dash)))
17246 (home-page "https://github.com/nicferrier/emacs-noflet")
17247 (synopsis "Locally override functions")
17248 (description "@code{emacs-noflet} lets you locally override functions,
17249 in the manner of @command{flet}, but with access to the original function
17250 through the symbol: @command{this-fn}.")
17251 (license license:gpl3+))))
17252
17253 (define-public emacs-dumb-jump
17254 (package
17255 (name "emacs-dumb-jump")
17256 (version "0.5.3")
17257 (source
17258 (origin
17259 (method git-fetch)
17260 (uri (git-reference
17261 (url "https://github.com/jacktasia/dumb-jump")
17262 (commit (string-append "v" version))))
17263 (file-name (git-file-name name version))
17264 (sha256
17265 (base32 "1njf60264snhxrd36m4z687lqfkis0p9mmrr7cf1c8l0lfdvawxi"))))
17266 (build-system emacs-build-system)
17267 (arguments
17268 `(#:tests? #f ; FIXME: Tests freeze when run.
17269 #:test-command '("ert-runner")
17270 #:phases
17271 (modify-phases %standard-phases
17272 (add-after 'unpack 'set-shell
17273 (lambda _
17274 ;; Setting the SHELL environment variable is required for the
17275 ;; tests to find sh.
17276 (setenv "SHELL" (which "sh"))
17277 #t)))))
17278 (native-inputs
17279 `(("emacs-el-mock" ,emacs-el-mock)
17280 ("emacs-noflet" ,emacs-noflet)
17281 ("emacs-undercover" ,emacs-undercover)
17282 ("ert-runner" ,emacs-ert-runner)))
17283 (propagated-inputs
17284 `(("emacs-f" ,emacs-f)
17285 ("emacs-popup" ,emacs-popup)))
17286 (home-page "https://github.com/jacktasia/dumb-jump")
17287 (synopsis "Jump to definition for multiple languages without configuration")
17288 (description "Dumb Jump is an Emacs \"jump to definition\" package with
17289 support for multiple programming languages that favors \"just working\" over
17290 speed or accuracy. This means minimal --- and ideally zero --- configuration
17291 with absolutely no stored indexes (tags) or persistent background processes.
17292 Dumb Jump performs best with The Silver Searcher @command{ag} or ripgrep
17293 @command{rg} installed.")
17294 (license license:gpl3+)))
17295
17296 (define-public emacs-dts-mode
17297 (let ((commit "9ee0854446dcc6c53d2b8d2941051768dba50344")
17298 (revision "1"))
17299 (package
17300 (name "emacs-dts-mode")
17301 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
17302 (source
17303 (origin
17304 (method git-fetch)
17305 (uri (git-reference
17306 (url "https://github.com/bgamari/dts-mode")
17307 (commit commit)))
17308 (file-name (git-file-name name version))
17309 (sha256
17310 (base32
17311 "1k8lljdbc90nd29xrhdrsscxavzdq532wq2mg7ljc94krj7538b1"))))
17312 (build-system emacs-build-system)
17313 (home-page "https://github.com/bgamari/dts-mode.git")
17314 (synopsis "Emacs minor mode for editing device tree files")
17315 (description
17316 "This package provides an Emacs minor mode for highlighting
17317 device tree files.")
17318 (license license:gpl3+))))
17319
17320 (define-public emacs-daemons
17321 (package
17322 (name "emacs-daemons")
17323 (version "2.0.0")
17324 (source
17325 (origin
17326 (method git-fetch)
17327 (uri (git-reference
17328 (url "https://github.com/cbowdon/daemons.el")
17329 (commit version)))
17330 (file-name (git-file-name name version))
17331 (sha256
17332 (base32
17333 "00bkzfaw3bqykcks610vk9wlpa2z360xn32bpsrycacwfv29j7g4"))))
17334 (build-system emacs-build-system)
17335 (home-page "https://github.com/cbowdon/daemons.el")
17336 (synopsis "Emacs UI for managing init system services")
17337 (description
17338 "This is an Emacs mode to give you a UI for managing init system
17339 daemons (services) for those getting tired of typing out @code{sudo service
17340 my_thing reload} all the time. It offers a consistent UI over different init
17341 systems.")
17342 (license license:gpl3+)))
17343
17344 (define-public emacs-isearch+
17345 (let ((commit "7c251b91a67bf914066e23e269ba52fda5b45f5f")
17346 (revision "2"))
17347 (package
17348 (name "emacs-isearch+")
17349 (version (git-version "0" revision commit))
17350 (source
17351 (origin
17352 (method git-fetch)
17353 (uri (git-reference
17354 (url "https://github.com/emacsmirror/isearch-plus")
17355 (commit commit)))
17356 (file-name (git-file-name name version))
17357 (sha256
17358 (base32
17359 "1w2799714jcdycjlxgs8lpmmz6dmzvcvqy8xwxhvmgpb60g4f2yr"))))
17360 (build-system emacs-build-system)
17361 (home-page "https://www.emacswiki.org/emacs/isearch+.el")
17362 (synopsis "Extensions to @code{isearch.el}")
17363 (description "This package extends @code{isearch} with advice, dynamic
17364 filters, highlighting of regexp group levels, and more.")
17365 (license license:gpl2+))))
17366
17367 (define-public emacs-eshell-bookmark
17368 (package
17369 (name "emacs-eshell-bookmark")
17370 (version "2.0.0")
17371 (source
17372 (origin
17373 (method git-fetch)
17374 (uri (git-reference
17375 (url "https://github.com/Fuco1/eshell-bookmark")
17376 (commit version)))
17377 (file-name (git-file-name name version))
17378 (sha256
17379 (base32
17380 "14dmsnixf9vqdhsixw693sml0fn80zcf0b37z049fb40cmppqxdw"))))
17381 (build-system emacs-build-system)
17382 (home-page "https://github.com/Fuco1/eshell-bookmark")
17383 (synopsis "Provide @file{bookmark.el} integration for @code{eshell}")
17384 (description
17385 "This package allows for bookmarking @code{eshell} buffers. Upon
17386 visiting the bookmark, a new @code{eshell} session will be opened in the
17387 appropriate directory if no @code{eshell} session is active.")
17388 (license license:gpl3+)))
17389
17390 (define-public emacs-eshell-syntax-highlighting
17391 (package
17392 (name "emacs-eshell-syntax-highlighting")
17393 (version "0.2")
17394 (source
17395 (origin
17396 (method git-fetch)
17397 (uri (git-reference
17398 (url "https://github.com/akreisher/eshell-syntax-highlighting")
17399 (commit version)))
17400 (file-name (git-file-name name version))
17401 (sha256
17402 (base32 "0id27874wsb5y169030x8g1ldpa1mnskv1s2j3ygqiyh5fvpfash"))))
17403 (build-system emacs-build-system)
17404 (home-page "https://github.com/akreisher/eshell-syntax-highlighting")
17405 (synopsis "Add syntax highlighting to Eshell")
17406 (description
17407 "This package highlights user commands at the Eshell interactive prompt
17408 to provide feedback on the validity of commands and syntax.")
17409 (license license:gpl3+)))
17410
17411 (define-public emacs-eshell-z
17412 (package
17413 (name "emacs-eshell-z")
17414 (version "0.4")
17415 (source
17416 (origin
17417 (method git-fetch)
17418 (uri (git-reference
17419 (url "https://github.com/xuchunyang/eshell-z")
17420 (commit (string-append "v" version))))
17421 (file-name (git-file-name name version))
17422 (sha256
17423 (base32
17424 "13dwaq8q23rwmrkpy3gvf7aswrkk6b9ak5221xl7n0bld4wdhq3j"))))
17425 (build-system emacs-build-system)
17426 (home-page "https://github.com/xuchunyang/eshell-z")
17427 (synopsis "Quick navigation to frequently visited directories")
17428 (description
17429 "This package is a port of @code{z}, and keeps track of visited directories
17430 and commands invoked within them in order to enable navigation via input of
17431 matching regexps.")
17432 (license license:gpl3+)))
17433
17434 (define-public emacs-esh-autosuggest
17435 (package
17436 (name "emacs-esh-autosuggest")
17437 (version "2.0.0")
17438 (source
17439 (origin
17440 (method git-fetch)
17441 (uri (git-reference
17442 (url "https://github.com/dieggsy/esh-autosuggest")
17443 (commit version)))
17444 (file-name (git-file-name name version))
17445 (sha256
17446 (base32
17447 "116pdjgpjy9b0psm5kzwkwy7dq8vn0p6dy75dl1zsy2xrjf1iqdw"))))
17448 (build-system emacs-build-system)
17449 (propagated-inputs `(("emacs-company" ,emacs-company)))
17450 (home-page "https://github.com/dieggsy/esh-autosuggest")
17451 (synopsis "Fish-like autosuggestions in Eshell")
17452 (description
17453 "This package assumes you use something other than company for eshell
17454 completion (e.g. @code{eshell-pcomplete}, @code{completion-at-point},
17455 @code{helm-esh-pcomplete}). @code{company-mode} is used solely as a mechanism
17456 for history autosuggestions.
17457
17458 Unless you're using @code{use-package}'s hook keyword, you can enable the
17459 autosuggestions with:
17460 @code{(add-hook 'eshell-mode-hook #'esh-autosuggest-mode)}")
17461 (license license:gpl3+)))
17462
17463 (define-public emacs-desktop-environment
17464 (package
17465 (name "emacs-desktop-environment")
17466 (version "0.3.0")
17467 (source
17468 (origin
17469 (method git-fetch)
17470 (uri (git-reference
17471 (url "https://gitlab.petton.fr/DamienCassou/desktop-environment")
17472 (commit (string-append "v" version))))
17473 (file-name (git-file-name name version))
17474 (sha256
17475 (base32
17476 "195n99xvxyh4cfxjpfa1h1maalqrxf7nyi0bh3lqa1z6z5bdb6x2"))))
17477 (build-system emacs-build-system)
17478 (home-page "https://gitlab.petton.fr/DamienCassou/desktop-environment")
17479 (synopsis "Control your GNU/Linux desktop environment from Emacs")
17480 (description
17481 "This package helps you control your GNU/Linux desktop from Emacs.
17482 With @code{desktop-environment}, you can control the brightness and volume as
17483 well as take screenshots and lock your screen. The package depends on the
17484 availability of shell commands to do the hard work for us. These commands can
17485 be changed by customizing the appropriate variables.")
17486 (license license:gpl3+)))
17487
17488 (define-public emacs-org-caldav
17489 (let ((commit "a563500c9884f38ce08793e2964f8274adde163d"))
17490 (package
17491 (name "emacs-org-caldav")
17492 (version (git-version "0.0.0" "1" commit))
17493 (source
17494 (origin
17495 (method git-fetch)
17496 (uri (git-reference
17497 (url "https://github.com/dengste/org-caldav")
17498 (commit commit)))
17499 (file-name (git-file-name name version))
17500 (sha256
17501 (base32
17502 "18qi1iv5dc0gsvkv9ifal3cjpm568nlb907v8a53cnm4439x1l0l"))))
17503 (build-system emacs-build-system)
17504 (arguments
17505 ;; Tests require to have two specific calendars on a test server.
17506 `(#:exclude '("^org-caldav-testsuite\\.el")))
17507 (propagated-inputs
17508 `(("emacs-org" ,emacs-org)))
17509 (home-page "https://github.com/dengste/org-caldav")
17510 (synopsis "Sync Org files with external calendars via the CalDAV protocol")
17511 (description "Synchronize between events in Org files and a CalDAV
17512 calendar.")
17513 (license license:gpl3+))))
17514
17515 (define-public emacs-zotxt
17516 (package
17517 (name "emacs-zotxt")
17518 (version "20180518")
17519 (source
17520 (origin
17521 (method git-fetch)
17522 (uri (git-reference
17523 (url "https://github.com/egh/zotxt-emacs")
17524 (commit "23a4a9f74a658222027d53a9a83cd4bcc583ca8b")))
17525 (file-name (git-file-name name version))
17526 (sha256
17527 (base32 "09fq3w9yk9kn6bz7y9kgpiw612dvj3yzsdk734js6zgb0p8lfd2c"))))
17528 (build-system emacs-build-system)
17529 (propagated-inputs
17530 `(("emacs-deferred" ,emacs-deferred)
17531 ("emacs-request" ,emacs-request)))
17532 (home-page "https://github.com/egh/zotxt-emacs")
17533 (synopsis "Integrate Emacs with Zotero")
17534 (description "This package provides two integration features between Emacs
17535 and the Zotero research assistant: Insertion of links to Zotero items into an
17536 Org-mode file, and citations of Zotero items in Pandoc Markdown files.")
17537 (license license:gpl3+)))
17538
17539 (define-public emacs-evil-magit
17540 (let ((commit "253c644807013fe92429acdef418748794b8f254")
17541 (revision "4"))
17542 (package
17543 (name "emacs-evil-magit")
17544 (version (git-version "0.4.2" revision commit))
17545 (source
17546 (origin
17547 (method git-fetch)
17548 (uri (git-reference
17549 (url "https://github.com/emacs-evil/evil-magit")
17550 (commit commit)))
17551 (file-name (git-file-name name version))
17552 (sha256
17553 (base32
17554 "08mh7phxsdb9w4dfs0pmr4l4fdzzr2rm88z2s8karfi5j5ik2ag5"))))
17555 (build-system emacs-build-system)
17556 (propagated-inputs
17557 `(("emacs-evil" ,emacs-evil)
17558 ("magit" ,emacs-magit)))
17559 (arguments
17560 `(#:tests? #t
17561 #:test-command '("emacs" "-Q" "-batch"
17562 "-L" "."
17563 "-l" "evil-magit-tests"
17564 "-f" "ert-run-tests-batch-and-exit")))
17565 (home-page
17566 "https://github.com/emacs-evil/evil-magit")
17567 (synopsis "Evil-based key bindings for Magit")
17568 (description
17569 "This Emacs library configures Magit and Evil to play well with each other.
17570 For some background see @url{https://github.com/magit/evil-magit/issues/1}.
17571 See the README at @url{https://github.com/justbur/evil-magit} for a table
17572 describing the key binding changes.")
17573 (license license:gpl3+))))
17574
17575 (define-public emacs-evil-multiedit
17576 (package
17577 (name "emacs-evil-multiedit")
17578 (version "1.3.9")
17579 (source
17580 (origin
17581 (method git-fetch)
17582 (uri (git-reference
17583 (url "https://github.com/hlissner/evil-multiedit")
17584 (commit (string-append "v" version))))
17585 (file-name (git-file-name name version))
17586 (sha256
17587 (base32
17588 "19h3kqylqzbjv4297wkzzxdmn9yxbg6z4ga4ssrqri90xs7m3rw3"))))
17589 (build-system emacs-build-system)
17590 (propagated-inputs
17591 `(("emacs-evil" ,emacs-evil)
17592 ("emacs-iedit" ,emacs-iedit)))
17593 (native-inputs
17594 `(("emacs-ert-runner" ,emacs-ert-runner)))
17595 (arguments
17596 `(#:phases
17597 (modify-phases %standard-phases
17598 (add-before 'check 'fix-makefile
17599 (lambda _
17600 (substitute* "Makefile"
17601 (("@cask exec ") ""))
17602 #t)))
17603 #:tests? #t
17604 #:test-command '("make" "test")))
17605 (home-page
17606 "https://github.com/hlissner/evil-multiedit")
17607 (synopsis "Multiple cursors for Evil mode")
17608 (description
17609 "This plugin was an answer to the lack of proper multiple cursor support
17610 in Emacs+Evil. It allows you to select and edit matches interactively,
17611 integrating @code{iedit-mode} into Evil mode with an attempt at sensible
17612 defaults.")
17613 (license license:gpl3+)))
17614
17615 (define-public emacs-evil-mc
17616 (let ((commit "1cabb869fe70cef49f7dc06f015c3ade1a969c8c")
17617 (revision "2"))
17618 (package
17619 (name "emacs-evil-mc")
17620 (version (git-version "0.0.3" revision commit))
17621 (source
17622 (origin
17623 (method git-fetch)
17624 (uri (git-reference
17625 (url "https://github.com/gabesoft/evil-mc")
17626 (commit commit)))
17627 (file-name (git-file-name name version))
17628 (sha256
17629 (base32 "0p83p90faq1p02lmsfs7zrnky3cyzgy8z4m83a81r9kakjzhkrnb"))))
17630 (build-system emacs-build-system)
17631 (propagated-inputs
17632 `(("emacs-evil" ,emacs-evil)))
17633 (native-inputs
17634 `(("emacs-espuds" ,emacs-espuds)))
17635 (home-page "https://github.com/gabesoft/evil-mc")
17636 (synopsis "Interactive search compatible with @code{multiple-cursors}")
17637 (description "This package can be used with @code{multiple-cursors} to
17638 provide an incremental search that moves all fake cursors in sync.")
17639 (license license:expat))))
17640
17641 (define-public emacs-evil-org
17642 (let ((commit "9d4be14118bf27094a30dbff349b815f098aacbf"))
17643 (package
17644 (name "emacs-evil-org")
17645 (version (git-version "1.0.2" "1" commit))
17646 (source
17647 (origin
17648 (method git-fetch)
17649 (uri (git-reference
17650 (url "https://github.com/Somelauw/evil-org-mode")
17651 (commit commit)))
17652 (file-name (git-file-name name version))
17653 (sha256
17654 (base32
17655 "1fxxfkinb0gq4p5b686r7z4jrkv98zfgh5z889zkjacncv8ibswn"))))
17656 (build-system emacs-build-system)
17657 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
17658 (home-page
17659 "https://github.com/Somelauw/evil-org-mode")
17660 (synopsis "Evil keybindings for Org mode")
17661 (description
17662 "This package adds supplemental Evil mode key-bindings to Emacs
17663 Org-mode. It features:
17664 @itemize
17665 @item normal, visual and insert mode bindings;
17666 @item key bindings organised in key themes;
17667 @item operators like > and < to work on headings;
17668 @item text objects;
17669 @item table support;
17670 @item calendar (date selection) support;
17671 @item agenda support.
17672 @end itemize\n")
17673 (license license:gpl3+))))
17674
17675 (define-public emacs-debpaste
17676 (package
17677 (name "emacs-debpaste")
17678 (version "0.1.5")
17679 (home-page "https://github.com/alezost/debpaste.el")
17680 (source
17681 (origin
17682 (method git-fetch)
17683 (uri (git-reference (url home-page)
17684 (commit (string-append "v" version))))
17685 (file-name (git-file-name name version))
17686 (sha256
17687 (base32
17688 "1wi70r56pd5z0x4dp4m58p9asq03j74kdm4fi9vai83vsl2z9amq"))))
17689 (build-system emacs-build-system)
17690 (propagated-inputs
17691 `(("emacs-xml-rpc" ,emacs-xml-rpc)))
17692 (synopsis "Manipulate pastes from the Debian Pastezone")
17693 (description "Debpaste is an Emacs interface for the Debian Pastezone,
17694 allowing you to receive, post, and delete pastes. It communicates with the
17695 server using XML-RPC.")
17696 (license license:gpl3+)))
17697
17698 (define-public emacs-xml-rpc
17699 (let ((commit "8f624f8b964e9145acb504e4457c9510e87dd93c")
17700 (revision "1"))
17701 (package
17702 (name "emacs-xml-rpc")
17703 (version (git-version "1.6.12" revision commit))
17704 (source
17705 (origin
17706 (method git-fetch)
17707 (uri (git-reference
17708 (url "https://github.com/hexmode/xml-rpc-el")
17709 (commit commit)))
17710 (file-name (git-file-name name version))
17711 (sha256
17712 (base32
17713 "0xa54z52rsfl3n0xgmbycj4zazp8ksgdwcq56swzs6wp72zlalmj"))))
17714 (build-system emacs-build-system)
17715 (home-page "https://github.com/hexmode/xml-rpc-el")
17716 (synopsis "XML-RPC client for Emacs")
17717 (description "This package provides an XML-RPC client for Emacs capable
17718 of both synchronous and asynchronous method calls using the @code{url}
17719 package's async retrieval functionality. @file{xml-rpc.el} represents XML-RPC
17720 datatypes as Lisp values, automatically converting to and from the XML
17721 datastructures as needed, both for method parameters and return values, making
17722 using XML-RPC methods fairly transparent to the Lisp code.")
17723 (license license:gpl3+))))
17724
17725 (define-public emacs-xpm
17726 (package
17727 (name "emacs-xpm")
17728 (version "1.0.4")
17729 (source
17730 (origin
17731 (method url-fetch)
17732 (uri (string-append "https://elpa.gnu.org/packages/xpm-"
17733 version ".tar"))
17734 (sha256
17735 (base32
17736 "075miyashh9cm3b0gk6ngld3rm8bfgnh4qxnhxmmvjgzf6a64grh"))))
17737 (build-system emacs-build-system)
17738 (home-page "https://elpa.gnu.org/packages/xpm.html")
17739 (synopsis "XPM image editing mode for Emacs")
17740 (description "This Emacs package makes editing XPM images easy (and maybe
17741 fun). Editing is done directly on the (textual) image format, for maximal
17742 cohesion with the Emacs Way.")
17743 (license license:gpl3+)))
17744
17745 (define-public emacs-fish-completion
17746 (package
17747 (name "emacs-fish-completion")
17748 (version "1.2")
17749 (source
17750 (origin
17751 (method git-fetch)
17752 (uri (git-reference
17753 (url "https://gitlab.com/Ambrevar/emacs-fish-completion.git")
17754 (commit version)))
17755 (file-name (git-file-name name version))
17756 (sha256
17757 (base32
17758 "17lqip1i1rrsvxzz4bx9rqf1fvwd3hriwg3sj6qxmfc8pylnp37q"))))
17759 (build-system emacs-build-system)
17760 (inputs `(("fish" ,fish)))
17761 (arguments
17762 `(#:phases
17763 (modify-phases %standard-phases
17764 (add-after 'unpack 'configure
17765 (lambda* (#:key inputs outputs #:allow-other-keys)
17766 (let ((fish (assoc-ref inputs "fish")))
17767 ;; Specify the absolute file names of the various
17768 ;; programs so that everything works out-of-the-box.
17769 (make-file-writable "fish-completion.el")
17770 (emacs-substitute-variables
17771 "fish-completion.el"
17772 ("fish-completion-command"
17773 (string-append fish "/bin/fish")))))))))
17774 (home-page
17775 "https://gitlab.com/Ambrevar/emacs-fish-completion")
17776 (synopsis "Fish completion for Emacs pcomplete")
17777 (description
17778 "This package provides completion for the Fish shell to pcomplete (used
17779 by shell and Eshell). You can set it up globally with:
17780
17781 @example
17782 (when (and (executable-find \"fish\")
17783 (require 'fish-completion nil t))
17784 (global-fish-completion-mode))
17785 @end example
17786
17787 Alternatively, you can call the @code{fish-completion-mode} manually or in
17788 shell/Eshell mode hook.
17789
17790 The package @code{emacs-bash-completion} is an optional dependency: if available,
17791 @code{fish-completion-complete} can be configured to fall back on bash to further
17792 try completing. See @code{fish-completion-fallback-on-bash-p}.")
17793 (license license:gpl3+)))
17794
17795 (define-public emacs-gif-screencast
17796 (package
17797 (name "emacs-gif-screencast")
17798 (version "1.1")
17799 (source
17800 (origin
17801 (method git-fetch)
17802 (uri (git-reference
17803 (url "https://gitlab.com/Ambrevar/emacs-gif-screencast.git")
17804 (commit version)))
17805 (file-name (git-file-name name version))
17806 (sha256
17807 (base32
17808 "1g1by8lvf8c9vzm4wwsi5kp285kaj0ahsl54048ympin4pi0njw9"))))
17809 (build-system emacs-build-system)
17810 (inputs
17811 `(("scrot" ,scrot)
17812 ("imagemagick" ,imagemagick)
17813 ("gifsicle" ,gifsicle)))
17814 (arguments
17815 `(#:phases
17816 (modify-phases %standard-phases
17817 (add-after 'unpack 'configure
17818 (lambda* (#:key inputs outputs #:allow-other-keys)
17819 (let ((scrot (assoc-ref inputs "scrot"))
17820 (imagemagick (assoc-ref inputs "imagemagick"))
17821 (gifsicle (assoc-ref inputs "gifsicle")))
17822 (make-file-writable "gif-screencast.el")
17823 ;; Specify the absolute file names of the various
17824 ;; programs so that everything works out-of-the-box.
17825 (emacs-substitute-variables
17826 "gif-screencast.el"
17827 ("gif-screencast-program"
17828 (string-append scrot "/bin/scrot"))
17829 ("gif-screencast-convert-program"
17830 (string-append imagemagick "/bin/convert"))
17831 ("gif-screencast-cropping-program"
17832 (string-append imagemagick "/bin/mogrify"))
17833 ("gif-screencast-optimize-program"
17834 (string-append gifsicle "/bin/gifsicle")))))))))
17835 (home-page
17836 "https://gitlab.com/Ambrevar/emacs-gif-screencast")
17837 (synopsis "One-frame-per-action GIF recording")
17838 (description
17839 "Call @code{gif-screencast} to start a recording.
17840 A screenshot is taken for every user action. Call
17841 @code{gif-screencast-stop} (<f9> by default) to finish recording and create
17842 the GIF result.")
17843 (license license:gpl3+)))
17844
17845 (define-public emacs-google-translate
17846 (package
17847 (name "emacs-google-translate")
17848 (version "0.12.0")
17849 (source
17850 (origin
17851 (method git-fetch)
17852 (uri (git-reference
17853 (url "https://github.com/atykhonov/google-translate/")
17854 (commit (string-append "v" version))))
17855 (file-name (git-file-name name version))
17856 (sha256
17857 (base32
17858 "0rwpij2bm8d4jq2w5snkp88mfryplw8166dsrjm407n2p6xr48zx"))))
17859 (build-system emacs-build-system)
17860 (home-page "https://github.com/atykhonov/google-translate")
17861 (synopsis "Emacs interface to Google Translate")
17862 (description
17863 "This package provides an Emacs interface to the Google Translate
17864 on-line service.")
17865 (license license:gpl3+)))
17866
17867 (define-public emacs-helm-company
17868 (package
17869 (name "emacs-helm-company")
17870 (version "0.2.5")
17871 (source
17872 (origin
17873 (method git-fetch)
17874 (uri (git-reference
17875 (url "https://github.com/Sodel-the-Vociferous/helm-company")
17876 (commit (string-append "v" version))))
17877 (file-name (git-file-name name version))
17878 (sha256
17879 (base32
17880 "1ci37w6ahnqrfpb284gjvxmimlf61sdxb9k192yy9q983cksv2hx"))))
17881 (build-system emacs-build-system)
17882 (propagated-inputs
17883 `(("emacs-helm" ,emacs-helm)
17884 ("emacs-company" ,emacs-company)))
17885 (native-inputs
17886 `(("emacs-ert-runner" ,emacs-ert-runner)))
17887 (arguments
17888 `(#:tests? #t
17889 #:test-command '("ert-runner")))
17890 (home-page "https://github.com/Sodel-the-Vociferous/helm-company")
17891 (synopsis "Helm interface for company-mode")
17892 (description
17893 "This is a Helm interface to company-mode, a text completion
17894 framework.")
17895 (license license:gpl3+)))
17896
17897 (define-public emacs-helm-descbinds
17898 (let ((commit "033be73f21778633813264ce1634a6e1ad873d8e"))
17899 (package
17900 (name "emacs-helm-descbinds")
17901 (version (git-version "1.13" "1" commit))
17902 (source
17903 (origin
17904 (method git-fetch)
17905 (uri (git-reference
17906 (url "https://github.com/emacs-helm/helm-descbinds")
17907 (commit commit)))
17908 (file-name (git-file-name name version))
17909 (sha256
17910 (base32
17911 "1n89p56qwa243w1c85i5awnaf7piwjsvfi7nmnsrwm33hix5dknk"))))
17912 (build-system emacs-build-system)
17913 (propagated-inputs `(("emacs-helm" ,emacs-helm)))
17914 (home-page "https://github.com/emacs-helm/helm-descbinds")
17915 (synopsis "Convenient @code{describe-bindings} with Helm")
17916 (description
17917 "This package is a replacement of @code{describe-bindings} for Helm.
17918 @code{describe-bindings} is replaced with @code{helm-descbinds}. As usual,
17919 type @code{C-h b}, or any incomplete key sequence plus @code{C-h}, to run
17920 @code{helm-descbinds}. The bindings are presented in a similar way as
17921 @code{describe-bindings} does, but you can use completion to find the command
17922 you searched for and execute it, or view its documentation.")
17923 (license license:gpl3+))))
17924
17925 (define-public emacs-helm-emms
17926 (let ((commit "37e5aa029abfa5a5c48636314de8157142944fa2"))
17927 (package
17928 (name "emacs-helm-emms")
17929 (version (git-version "1.3" "3" commit))
17930 (source
17931 (origin
17932 (method git-fetch)
17933 (uri (git-reference
17934 (url "https://github.com/emacs-helm/helm-emms")
17935 (commit commit)))
17936 (file-name (git-file-name name version))
17937 (sha256
17938 (base32
17939 "0r1ai6xhzayyik30w2sx9n62bxxwm12vfmjspv0daqif9az8y3vg"))))
17940 (build-system emacs-build-system)
17941 (propagated-inputs
17942 `(("emacs-helm" ,emacs-helm)
17943 ("emacs-emms" ,emacs-emms)))
17944 (home-page
17945 "https://github.com/emacs-helm/helm-emms")
17946 (synopsis "Emms for Helm")
17947 (description "Helm interface for Emms to browse all tracks and all folders
17948 from @code{emms-source-file-default-directory}.")
17949 (license license:gpl3+))))
17950
17951 (define-public emacs-helm-exwm
17952 (package
17953 (name "emacs-helm-exwm")
17954 (version "0.0.2")
17955 (source
17956 (origin
17957 (method git-fetch)
17958 (uri (git-reference
17959 (url "https://github.com/emacs-helm/helm-exwm")
17960 (commit version)))
17961 (file-name (git-file-name name version))
17962 (sha256
17963 (base32 "0g4k01ps14bp2az8v6dcag9llg045k2b4kdis81xx4lvw76znr9v"))))
17964 (build-system emacs-build-system)
17965 (propagated-inputs
17966 `(("emacs-helm" ,emacs-helm)
17967 ("emacs-exwm" ,emacs-exwm)))
17968 (home-page
17969 "https://github.com/emacs-helm/helm-exwm")
17970 (synopsis "Helm for EXWM buffers")
17971 (description
17972 "@code{helm-exwm} runs a Helm session over the list of EXWM buffers.
17973 @code{helm-exwm-switch} is a convenience X application launcher using Helm to
17974 switch between the various windows of one or several specific applications.
17975 See @code{helm-exwm-switch-browser} for an example.")
17976 (license license:gpl3+)))
17977
17978 (define-public emacs-helm-flycheck
17979 (let ((commit "3cf7d3bb194acacc6395f88360588013d92675d6"))
17980 (package
17981 (name "emacs-helm-flycheck")
17982 (version (git-version "0.4" "1" commit))
17983 (source
17984 (origin
17985 (method git-fetch)
17986 (uri (git-reference
17987 (url "https://github.com/yasuyk/helm-flycheck")
17988 (commit commit)))
17989 (file-name (git-file-name name version))
17990 (sha256
17991 (base32
17992 "1a2yfxhz04klwhcandqvfzysxp6b7bxyxx1xk1x3kds5hif5fkl4"))))
17993 (build-system emacs-build-system)
17994 (propagated-inputs
17995 `(("emacs-dash" ,emacs-dash)
17996 ("emacs-flycheck" ,emacs-flycheck)
17997 ("emacs-helm" ,emacs-helm)))
17998 (home-page "https://github.com/yasuyk/helm-flycheck")
17999 (synopsis "Show Flycheck errors with Helm")
18000 (description
18001 "This integrates Flycheck with Helm.")
18002 (license license:gpl3+))))
18003
18004 (define-public emacs-helm-ls-git
18005 (let ((commit "76654c776a7f6e2e5290645e748aac2a746f7daa"))
18006 (package
18007 (name "emacs-helm-ls-git")
18008 (version (git-version "1.9.1" "1" commit))
18009 (source
18010 (origin
18011 (method git-fetch)
18012 (uri (git-reference
18013 (url "https://github.com/emacs-helm/helm-ls-git")
18014 (commit commit)))
18015 (file-name (git-file-name name version))
18016 (sha256
18017 (base32
18018 "0vsq1n3xl3ghy5zik2scm7jrs501n4kybdqd6yw6j0cv4jxdqbr0"))))
18019 (build-system emacs-build-system)
18020 (propagated-inputs `(("emacs-helm" ,emacs-helm)))
18021 (home-page "https://github.com/emacs-helm/helm-ls-git")
18022 (synopsis "Helm interface for listing the files in a Git repository")
18023 (description
18024 "This package provides a Helm interface for Git files.
18025 @itemize
18026 @item Display the open buffers in project.
18027 @item Display a status source showing state of project (modified files etc.).
18028 @item Display a list of all files in project under git control.
18029 @item Quickly look at diffs of modified files.
18030 @item Allow switching to @code{git status} with your preferred frontend
18031 (vc-dir, Magit,etc.).
18032 @item Full integration of git-grep, also allow usage of @code{helm-grep} (you
18033 can use ack-grep instead of grep).
18034 @item Integrate usage of gid from id-utils.
18035 @item Full integration with @code{helm-find-files}, allow you to browse
18036 projects unrelated to current-buffer.
18037 @item In addition, all actions of type files and buffers are provided.
18038 @end itemize\n")
18039 (license license:gpl3+))))
18040
18041 (define-public emacs-helm-mu
18042 (let ((commit "77e6fea24e01481418738421dbcfe28ef1bd63cf"))
18043 (package
18044 (name "emacs-helm-mu")
18045 (version (git-version "20180513" "1" commit))
18046 (source
18047 (origin
18048 (method git-fetch)
18049 (uri (git-reference
18050 (url "https://github.com/emacs-helm/helm-mu")
18051 (commit commit)))
18052 (file-name (git-file-name name version))
18053 (sha256
18054 (base32 "1lh0ahxdc5b2z18m9p30gwg8sbg33sjwkjr38p7h5xsm5fm7i0fz"))))
18055 (build-system emacs-build-system)
18056 (propagated-inputs
18057 `(("emacs-helm" ,emacs-helm)
18058 ("mu" ,mu)))
18059 (home-page
18060 "https://github.com/emacs-helm/helm-mu")
18061 (synopsis
18062 "Helm sources for searching emails and contacts")
18063 (description
18064 "Helm sources for searching emails and contacts using @code{mu} and
18065 @code{mu4e}. Mu is an indexer for maildirs and mu4e is a mutt-like MUA for
18066 Emacs build on top of mu. Mu is highly efficient making it possible to get
18067 instant results even for huge maildirs. It also provides search operators,
18068 e.g: @code{from:Peter to:Anne flag:attach search term}.")
18069 (license license:gpl3+))))
18070
18071 (define-public emacs-helm-pass
18072 (package
18073 (name "emacs-helm-pass")
18074 (version "0.3")
18075 (source
18076 (origin
18077 (method git-fetch)
18078 (uri (git-reference
18079 (url "https://github.com/emacs-helm/helm-pass")
18080 (commit version)))
18081 (file-name (git-file-name name version))
18082 (sha256
18083 (base32
18084 "0vglaknmir3yv4iwibwn8r40ran8d04gcyp99hx73ldmf3zqpnxv"))))
18085 (build-system emacs-build-system)
18086 (propagated-inputs
18087 `(("emacs-helm" ,emacs-helm)
18088 ("emacs-password-store" ,emacs-password-store)))
18089 (home-page "https://github.com/emacs-helm/helm-pass")
18090 (synopsis "Helm interface to pass, the standard Unix password manager")
18091 (description
18092 "Users of @code{helm-pass} may also be interested in functionality
18093 provided by other Emacs packages dealing with pass:
18094 @itemize
18095 @item @code{emacs-password-store}, which @code{helm-pass} relies on.
18096 @item @code{emacs-pass}, a major mode for @code{pass}.
18097 @item @code{auth-source-pass.el}: integration of Emacs' auth-source with
18098 @code{pass}, included in Emacs 26+).
18099 @end itemize\n")
18100 (license license:gpl3+)))
18101
18102 (define-public emacs-image+
18103 (let ((commit "6834d0c09bb4df9ecc0d7a559bd7827fed48fffc"))
18104 (package
18105 (name "emacs-image+")
18106 (version (git-version "0.6.2" "1" commit))
18107 (source
18108 (origin
18109 (method git-fetch)
18110 (uri (git-reference
18111 (url "https://github.com/mhayashi1120/Emacs-imagex")
18112 (commit commit)))
18113 (file-name (git-file-name name version))
18114 (sha256
18115 (base32
18116 "0v66wk9nh0raih4jhrzmmyi5lbysjnmbv791vm2230ffi2hmwxnd"))))
18117 (build-system emacs-build-system)
18118 (inputs `(("imagemagick" ,imagemagick)))
18119 (arguments
18120 `(#:phases
18121 (modify-phases %standard-phases
18122 (add-after 'unpack 'configure
18123 (lambda* (#:key inputs outputs #:allow-other-keys)
18124 (let ((imagemagick (assoc-ref inputs "imagemagick")))
18125 ;; Specify the absolute file names of the various
18126 ;; programs so that everything works out-of-the-box.
18127 (chmod "image+.el" #o666)
18128 (emacs-substitute-variables
18129 "image+.el"
18130 ("imagex-convert-command"
18131 (string-append imagemagick "/bin/convert"))
18132 ("imagex-identify-command"
18133 (string-append imagemagick "/bin/identify")))))))))
18134 (home-page "https://github.com/mhayashi1120/Emacs-imagex")
18135 (synopsis "Image manipulation extensions for Emacs")
18136 (description
18137 "Image+ provides keybindings allowing you to zoom in or zoom out of an
18138 image, rotate it, save modified images, and more.")
18139 (license license:gpl3+))))
18140
18141 (define-public emacs-package-lint
18142 (let ((commit "69bb89d00ba212b734c676ad056aa793c450b288"))
18143 (package
18144 (name "emacs-package-lint")
18145 (version (git-version "0.5" "1" commit))
18146 (source
18147 (origin
18148 (method git-fetch)
18149 (uri (git-reference
18150 (url "https://github.com/purcell/package-lint")
18151 (commit commit)))
18152 (file-name (git-file-name name version))
18153 (sha256
18154 (base32
18155 "1hfricsgmy3x9snnd2p4xq6vnnv94qdsxxnxp07b3hqc9bhw31rq"))))
18156 (build-system emacs-build-system)
18157 (home-page "https://github.com/purcell/package-lint")
18158 (synopsis "Linting library for elisp package authors")
18159 (description
18160 "This provides a list of issues with the Emacs package metadata of a file,
18161 e.g. the package dependencies it requires. See function
18162 @code{package-lint-buffer}. Checks will currently be enabled only if a
18163 \"Package-Requires:\" or \"Package-Version:\" header is present in the
18164 file.")
18165 (license license:gpl3+))))
18166
18167 (define-public emacs-picpocket
18168 (let ((version "40")
18169 (commit "6fd88b8711c4370662c0f9c462170187d092a046"))
18170 (package
18171 (name "emacs-picpocket")
18172 (version version)
18173 (source
18174 (origin
18175 (method git-fetch)
18176 (uri (git-reference
18177 (url "https://github.com/johanclaesson/picpocket")
18178 (commit commit)))
18179 (file-name (git-file-name name version))
18180 (sha256
18181 (base32 "1mdzzxf7xm7zwrpnqqxa27d1cr31pd72d7ilbwljv13qp177a3yw"))))
18182 (build-system emacs-build-system)
18183 (arguments ; needed for running tests
18184 `(#:tests? #t
18185 #:emacs ,emacs
18186 #:test-command '("emacs" "--batch"
18187 "-l" "picpocket-test.el"
18188 "-f" "ert-run-tests-batch-and-exit")))
18189 (home-page "https://github.com/johanclaesson/picpocket")
18190 (synopsis "Image viewer for Emacs")
18191 (description
18192 "Picpocket is an image viewer for GNU Emacs. It has commands for:
18193
18194 @itemize
18195 @item File operations on the picture files (delete, move, copy, hardlink).
18196 @item Scale and rotate the picture.
18197 @item Associate pictures with tags which are saved to disk.
18198 @item Filter pictures according to tags.
18199 @item Customizing keystrokes for quick tagging and file operations.
18200 @item Undo and browse history of undoable commands.
18201 @end itemize")
18202 (license license:gpl3+))))
18203
18204 (define-public emacs-mu4e-conversation
18205 (let ((commit "98110bb9c300fc9866dee8e0023355f9f79c9b96")
18206 (revision "5"))
18207 (package
18208 (name "emacs-mu4e-conversation")
18209 (version (git-version "0.0.1" revision commit))
18210 (source
18211 (origin
18212 (method git-fetch)
18213 (uri (git-reference
18214 (url "https://gitlab.com/Ambrevar/mu4e-conversation.git")
18215 (commit commit)))
18216 (file-name (git-file-name name version))
18217 (sha256
18218 (base32
18219 "080s96jkcw2p288sp1vgds91rgl693iz6hi2dv56p2ih0nnivwlg"))))
18220 (build-system emacs-build-system)
18221 (propagated-inputs
18222 `(("mu" ,mu)))
18223 (home-page
18224 "https://gitlab.com/Ambrevar/mu4e-conversation")
18225 (synopsis
18226 "Show a complete thread in a single buffer")
18227 (description
18228 "This package offers an alternate view to mu4e's e-mail display. It
18229 shows all e-mails of a thread in a single view, where each correspondent has
18230 their own face. Threads can be displayed linearly (in which case e-mails are
18231 displayed in chronological order) or as an Org document where the node tree
18232 maps the thread tree.")
18233 (license license:gpl3+))))
18234
18235 (define-public emacs-pinentry
18236 (let ((commit "dcc9ba03252ee5d39e03bba31b420e0708c3ba0c")
18237 (revision "1"))
18238 (package
18239 (name "emacs-pinentry")
18240 (version (git-version "0.1" revision commit))
18241 (source
18242 (origin
18243 (method url-fetch)
18244 (uri (string-append
18245 "http://git.savannah.gnu.org/cgit/emacs/elpa.git/plain"
18246 "/packages/pinentry/pinentry.el?id=" commit))
18247 (file-name (string-append "pinentry.el"))
18248 (sha256
18249 (base32
18250 "1lf30q6r8nz5cjzclbb9bbymsk2y75nskvb55hnjdv93gr3j0sik"))))
18251 (build-system emacs-build-system)
18252 (propagated-inputs
18253 `(("gnupg" ,gnupg)))
18254 (home-page "https://elpa.gnu.org/packages/pinentry.html")
18255 (synopsis "GnuPG Pinentry server implementation")
18256 (description
18257 "This package allows GnuPG passphrase to be prompted through the
18258 minibuffer instead of graphical dialog.
18259
18260 To use, add @code{allow-emacs-pinentry} to @code{~/.gnupg/gpg-agent.conf},
18261 reload the configuration with @code{gpgconf --reload gpg-agent}, and start the
18262 server with @code{M-x pinentry-start}.")
18263 (license license:gpl3+))))
18264
18265 (define-public emacs-so-long
18266 (let ((commit "cfae473b1bf65f78ddb015159e667ec0103d881c")
18267 (revision "2"))
18268 (package
18269 (name "emacs-so-long")
18270 (version (git-version "1.0" revision commit))
18271 (source
18272 (origin
18273 (method git-fetch)
18274 (uri (git-reference
18275 (url "https://git.savannah.gnu.org/git/so-long.git")
18276 (commit commit)))
18277 (file-name (git-file-name name version))
18278 (sha256
18279 (base32
18280 "0g943n5cl9lz5s7hszg6yvp10xd1xvd8mfgxyg0yckmp8fqkswin"))))
18281 (build-system emacs-build-system)
18282 (home-page "https://www.emacswiki.org/emacs/SoLong")
18283 (synopsis "Improve performance in files with long lines")
18284 (description "This package improves the performance of Emacs when
18285 viewing files with long lines. It is included as standard with Emacs 27 or
18286 later.")
18287 (license license:gpl3+))))
18288
18289 (define-public emacs-github-review
18290 (let ((commit "a13a3b4f1b6114a32af843971a145ab880f51232")
18291 (revision "2"))
18292 (package
18293 (name "emacs-github-review")
18294 (version (git-version "0.1" revision commit))
18295 (source
18296 (origin
18297 (method git-fetch)
18298 (uri (git-reference
18299 (url "https://github.com/charignon/github-review")
18300 (commit commit)))
18301 (file-name (git-file-name name version))
18302 (sha256
18303 (base32
18304 "0injfpxzgfhmqalba845j5l5cdcxxqz43knhxwinf36g52nfabl0"))))
18305 (build-system emacs-build-system)
18306 (inputs
18307 `(("emacs-dash" ,emacs-dash)
18308 ("emacs-s" ,emacs-s)
18309 ("emacs-ghub" ,emacs-ghub)))
18310 (native-inputs
18311 `(("emacs-buttercup" ,emacs-buttercup)
18312 ("emacs-undercover" ,emacs-undercover)))
18313 (arguments
18314 `(#:tests? #t
18315 #:test-command '("buttercup" "-L" "test/github-review-test.el")))
18316 (home-page "https://github.com/charignon/github-review")
18317 (synopsis "Review GitHub pull requests within Emacs")
18318 (description "This package provides commands to pull in, comment on, and
18319 accept and reject GitHub pull requests.")
18320 (license license:gpl3+))))
18321
18322 (define-public emacs-deadgrep
18323 (let ((commit "7e50e71c6ff4e17dded43e0836dae4e5ec020fcf")
18324 (revision "1"))
18325 (package
18326 (name "emacs-deadgrep")
18327 (version (git-version "0.10" revision commit))
18328 (source
18329 (origin
18330 (method git-fetch)
18331 (uri (git-reference
18332 (url "https://github.com/Wilfred/deadgrep")
18333 (commit commit)))
18334 (file-name (git-file-name name version))
18335 (sha256
18336 (base32
18337 "1vjhrq02l8gvdn2haygzq7277hnhjchs9xrfpcnh76gqip200gx4"))))
18338 (build-system emacs-build-system)
18339 (propagated-inputs
18340 `(("emacs-dash" ,emacs-dash)
18341 ("emacs-s" ,emacs-s)
18342 ("emacs-spinner" ,emacs-spinner)))
18343 (home-page "https://github.com/Wilfred/deadgrep")
18344 (synopsis "Frontend for @code{ripgrep}")
18345 (description "This package provides an Emacs interface for performing
18346 searches with @code{ripgrep}.")
18347 (license license:gpl3+))))
18348
18349 (define-public emacs-focus
18350 (let ((commit "ab42b8779929beeb7878c7fb3d3ccd80d9327c7f")
18351 (version "0.1.1")
18352 (revision "1"))
18353 (package
18354 (name "emacs-focus")
18355 (version (git-version version revision commit))
18356 (source
18357 (origin
18358 (method git-fetch)
18359 (uri (git-reference
18360 (url "https://github.com/larstvei/Focus")
18361 (commit commit)))
18362 (file-name (git-file-name name version))
18363 (sha256
18364 (base32
18365 "079v1syid7h2vr2ya6hs6hl0pgj60qdsw60mqw4cj2zllmkrkwj4"))))
18366 (build-system emacs-build-system)
18367 (home-page "https://github.com/larstvei/Focus")
18368 (synopsis "Minor mode for focusing in on relevant text")
18369 (description "This package provides a minor mode that dims the color of
18370 text in neighboring sections.")
18371 (license license:gpl3+))))
18372
18373 (define-public emacs-pandoc-mode
18374 (package
18375 (name "emacs-pandoc-mode")
18376 (version "2.27.2")
18377 (source
18378 (origin
18379 (method git-fetch)
18380 (uri (git-reference
18381 (url "https://github.com/joostkremers/pandoc-mode")
18382 (commit version)))
18383 (file-name (git-file-name name version))
18384 (sha256
18385 (base32
18386 "04bqc7mhgkfks3nsvimd3rrriv4nqbksmv5ahlbbd03aqa2b0vrv"))))
18387 (build-system emacs-build-system)
18388 (propagated-inputs
18389 `(("emacs-dash" ,emacs-dash)
18390 ("emacs-hydra" ,emacs-hydra)))
18391 (home-page "https://github.com/joostkremers/pandoc-mode")
18392 (synopsis "Minor mode for interacting with Pandoc")
18393 (description "This package provides a Hydra menu for interacting with the
18394 Pandoc, the document-conversion tool.")
18395 (license license:bsd-3)))
18396
18397 (define-public emacs-hlint-refactor-mode
18398 (let ((commit "c4307f86aad6d02e32e9b30cb6edc115584c791c")
18399 (revision "1"))
18400 (package
18401 (name "emacs-hlint-refactor-mode")
18402 (version (git-version "0.0.1" revision commit))
18403 (source
18404 (origin
18405 (method git-fetch)
18406 (uri (git-reference
18407 (url "https://github.com/mpickering/hlint-refactor-mode")
18408 (commit commit)))
18409 (file-name (git-file-name name version))
18410 (sha256
18411 (base32
18412 "1c71w9s34n0i7mm4njchxn6s3ri1y6mh3akgbg4nq41d42h8iap3"))))
18413 (build-system emacs-build-system)
18414 (propagated-inputs
18415 `(("apply-refact" ,apply-refact)
18416 ("hlint" ,hlint)))
18417 (home-page "https://github.com/mpickering/hlint-refactor-mode")
18418 (synopsis "Emacs bindings for @code{hlint}'s @code{--refactor} option")
18419 (description "This package applies refactoring suggestions from
18420 @code{hlint}.")
18421 (license license:expat))))
18422
18423 (define-public emacs-ccls
18424 (let ((commit "aab3e31fd716daf59f9794e62d473357263e8cc0")
18425 (revision "4"))
18426 (package
18427 (name "emacs-ccls")
18428 (version (git-version "0.1" revision commit))
18429 (source
18430 (origin
18431 (method git-fetch)
18432 (uri (git-reference
18433 (url "https://github.com/MaskRay/emacs-ccls")
18434 (commit commit)))
18435 (file-name (git-file-name name version))
18436 (sha256
18437 (base32
18438 "1ykgw21ypyhwlyflppjcgqrj1xw4d9rld4z65qvwhk3f12cv113j"))))
18439 (build-system emacs-build-system)
18440 (propagated-inputs
18441 `(("ccls" ,ccls)
18442 ("emacs-dash" ,emacs-dash)
18443 ("emacs-projectile" ,emacs-projectile)
18444 ("emacs-lsp-mode" ,emacs-lsp-mode)))
18445 (home-page "https://github.com/MaskRay/emacs-ccls")
18446 (synopsis "Emacs support for the @code{ccls} language server")
18447 (description "This package extends @code{lsp-mode} to work with @code{C}
18448 and @code{C++} files through the @code{ccls} language server.")
18449 (license license:expat))))
18450
18451 (define-public emacs-org-brain
18452 (package
18453 (name "emacs-org-brain")
18454 (version "0.5")
18455 (source
18456 (origin
18457 (method git-fetch)
18458 (uri (git-reference
18459 (url "https://github.com/Kungsgeten/org-brain")
18460 (commit "3faf9303af3f2356e3444e69c22dc6c5774047d1")))
18461 (file-name (git-file-name name version))
18462 (sha256
18463 (base32
18464 "1ad681zk6kckw2zbk0r4iaj4bw8cfqrbd1s3gdwgdjlzq81q9mmj"))))
18465 (build-system emacs-build-system)
18466 (home-page "https://github.com/Kungsgeten/org-brain")
18467 (synopsis "Org-mode wiki and concept-mapping for Emacs")
18468 (description "@code{emacs-org-brain} implements a variant of concept
18469 mapping in Emacs, using @code{org-mode}. An org-brain is a network of
18470 org-mode entries, where each entry is a file or a headline, and you can get a
18471 visual overview of the relationships between the entries: parents, children,
18472 siblings and friends. This visual overview can also be used to browse your
18473 entries. You can think of entries as nodes in a mind map, or pages in a
18474 wiki.")
18475 (license license:expat)))
18476
18477 (define-public emacs-recent-addresses
18478 (let ((commit "afbbfdc43b81e620acf827ca20d297e0c517b6eb")
18479 (revision "1"))
18480 (package
18481 (name "emacs-recent-addresses")
18482 (home-page "https://nschum.de/src/emacs/recent-addresses/")
18483 (version (git-version "0.1" revision commit))
18484 (source (origin
18485 (method git-fetch)
18486 (uri (git-reference
18487 ;; Note: Use a branch that works with Helm. Submitted
18488 ;; at <https://github.com/nschum/recent-addresses.el/pull/1>.
18489 (url "https://github.com/civodul/recent-addresses.el")
18490 (commit commit)))
18491 (sha256
18492 (base32
18493 "0ajrq0galjmdyjdjyxazykjyax3gh6hvfk4s7l657pi11g0q5zax"))
18494 (file-name (git-file-name name version))))
18495 (build-system emacs-build-system)
18496 (synopsis "Record recently-used email addressed and auto-complete them")
18497 (description
18498 "@code{recent-addresses} is an Emacs package that allows you to quickly
18499 look up previously used email addresses. It can be used alongside the Gnus
18500 email client.")
18501 (license license:gpl2+))))
18502
18503 (define-public emacs-fold-dwim
18504 (let ((commit "c46f4bb2ce91b4e307136320e72c28dd50b6cd8b")
18505 (revision "0"))
18506 (package
18507 (name "emacs-fold-dwim")
18508 (version (git-version "1.2" revision commit))
18509 (home-page "https://github.com/emacsattic/fold-dwim")
18510 (source (origin
18511 (method git-fetch)
18512 (uri (git-reference (url home-page) (commit commit)))
18513 (sha256
18514 (base32
18515 "1yz1wis31asw6xa5maliyd1ck2q02xnnh7dc6swgj9cb4wi7k6i1"))
18516 (file-name (git-file-name name version))))
18517 (build-system emacs-build-system)
18518 (synopsis "Unified user interface for Emacs folding modes")
18519 (description
18520 "DWIM stands for \"do what I mean\", as in the idea that one keystroke
18521 can do different things depending on the context. In this package, it means
18522 that, if the cursor is in a currently hidden folded construction, we want to
18523 show it; if it's not, we want to hide whatever fold the cursor is in.")
18524 (license license:gpl2+))))
18525
18526 (define-public emacs-markup-faces
18527 (package
18528 (name "emacs-markup-faces")
18529 (version "1.0.0")
18530 (source
18531 (origin
18532 (method url-fetch)
18533 (uri (string-append "https://stable.melpa.org/packages/markup-faces-"
18534 version ".el"))
18535 (sha256
18536 (base32
18537 "124dxbaa25fwxnpwsygpz7pw6da6dnnw7y2lic3jf8rgz7lw4v32"))))
18538 (build-system emacs-build-system)
18539 (home-page "https://github.com/sensorflo/markup-faces")
18540 (synopsis "Collection of Emacs faces for markup language modes")
18541 (description "emacs-markup-faces is like font-lock-faces, but tailored for
18542 markup languages instead programming languages. The sub group markup-faces-text
18543 is also intended for 'text viewing modes' such as info or (wo)man. This gives a
18544 common look and feel, or let's say theme, across different markup language modes
18545 and 'text viewing modes' respectively.")
18546 (license license:gpl3+)))
18547
18548 (define-public emacs-adoc-mode
18549 (package
18550 (name "emacs-adoc-mode")
18551 (version "0.6.6")
18552 (source
18553 (origin
18554 (method git-fetch)
18555 (uri (git-reference
18556 (url "https://github.com/sensorflo/adoc-mode")
18557 (commit (string-append "V" version))))
18558 (file-name (git-file-name name version))
18559 (sha256
18560 (base32
18561 "0kp2aafjhqxz3mjr9hkkss85r4n51chws5a2qj1xzb63dh36liwm"))))
18562 (build-system emacs-build-system)
18563 (arguments
18564 `(#:phases
18565 (modify-phases %standard-phases
18566 ;; See: https://github.com/sensorflo/adoc-mode/issues/39.
18567 (add-after 'unpack 'disable-failing-tests
18568 (lambda _
18569 (let-syntax
18570 ((disable-tests
18571 (syntax-rules ()
18572 ((_ file ())
18573 (syntax-error "test names list must not be empty"))
18574 ((_ file (test-name ...))
18575 (substitute* file
18576 (((string-append "^\\(ert-deftest " test-name ".*") all)
18577 (string-append all "(skip-unless nil)\n")) ...)))))
18578 (disable-tests "adoc-mode-test.el"
18579 ("adoctest-test-tempo-delimited-blocks"
18580 "adoctest-test-tempo-macros"
18581 "adoctest-test-tempo-paragraphs"
18582 "adoctest-test-tempo-passthroug-macros"
18583 "adoctest-test-tempo-quotes")))
18584 #t)))
18585 #:tests? #t
18586 #:test-command '("emacs" "-Q" "-batch"
18587 "-l" "adoc-mode-test.el"
18588 "-f" "ert-run-tests-batch-and-exit")))
18589 (propagated-inputs
18590 `(("emacs-markup-faces" ,emacs-markup-faces)))
18591 (home-page "https://github.com/sensorflo/adoc-mode/wiki")
18592 (synopsis "AsciiDoc mode for Emacs")
18593 (description "This package provides an Emacs major mode for editing AsciiDoc
18594 files. It focuses on highlighting the document to improve readability.")
18595 (license license:gpl2+)))
18596
18597 (define-public emacs-racer
18598 (package
18599 (name "emacs-racer")
18600 (version "1.2")
18601 (source
18602 (origin
18603 (method git-fetch)
18604 (uri
18605 (git-reference
18606 (url "https://github.com/racer-rust/emacs-racer")
18607 (commit version)))
18608 (file-name (git-file-name name version))
18609 (sha256
18610 (base32 "0xj5iki10cg8j8vvqjlw6lfx97k3agwirhchcjnzbnkry48x9qi6"))))
18611 (arguments
18612 `(#:tests? #t
18613 #:test-command '("make" "test")
18614 #:phases
18615 (modify-phases %standard-phases
18616 (add-before 'check 'fix-makefile
18617 (lambda _
18618 (substitute* "Makefile"
18619 (("\\$\\{CASK\\} exec ") ""))
18620 #t))
18621 ;; Two tests are failing with Emacs 27, as reported here:
18622 ;; <https://github.com/racer-rust/emacs-racer/issues/136>. Disable
18623 ;; them.
18624 (add-before 'check 'fix-failing-tests
18625 (lambda _
18626 (substitute* "test/racer-test.el"
18627 (("`Write`") "Write")
18628 (("^\\\\\\[`str\\]:.*") "")
18629 ((" \\[`str`\\]") " str"))
18630 #t)))))
18631 (native-inputs
18632 `(("emacs-ert-runner" ,emacs-ert-runner)
18633 ("emacs-undercover" ,emacs-undercover)))
18634 (propagated-inputs
18635 `(("emacs-dash" ,emacs-dash)
18636 ("emacs-f" ,emacs-f)
18637 ("emacs-pos-tip" ,emacs-pos-tip)
18638 ("emacs-rust-mode" ,emacs-rust-mode)
18639 ("emacs-s" ,emacs-s)))
18640 (build-system emacs-build-system)
18641 (home-page "https://github.com/racer-rust/emacs-racer")
18642 (synopsis "Racer support for Emacs")
18643 (description
18644 "This is the official Emacs package for Racer. It supports code
18645 completion of variables, functions and modules. It can also jump to
18646 definition of functions and types, and show a help buffer based on the
18647 docstring of the thing at point.")
18648 (license license:expat)))
18649
18650 (define-public emacs-rust-mode
18651 (package
18652 (name "emacs-rust-mode")
18653 (version "0.5.0")
18654 (source (origin
18655 (method git-fetch)
18656 (uri (git-reference
18657 (url "https://github.com/rust-lang/rust-mode")
18658 (commit version)))
18659 (file-name (git-file-name name version))
18660 (sha256
18661 (base32
18662 "1f3nnl0d7p9b5cv1bpm0hj898qmr2psxfvmqr61bh684z7fgc045"))))
18663 (build-system emacs-build-system)
18664 (arguments
18665 `(#:phases
18666 (modify-phases %standard-phases
18667 (replace 'check
18668 (lambda _
18669 (invoke "sh" "run_rust_emacs_tests.sh"))))))
18670 (home-page "https://github.com/rust-lang/rust-mode")
18671 (synopsis "Major Emacs mode for editing Rust source code")
18672 (description "This package provides a major Emacs mode for editing Rust
18673 source code.")
18674 (license (list license:expat
18675 license:asl2.0))))
18676
18677 (define-public emacs-ztree
18678 (let ((commit "c54425a094353ec40a8179f9eab3596f76c6cf94"))
18679 (package
18680 (name "emacs-ztree")
18681 (version (git-version "1.0.5" "1" commit))
18682 (source
18683 (origin
18684 (method git-fetch)
18685 (uri (git-reference
18686 (url "https://github.com/fourier/ztree")
18687 (commit commit)))
18688 (file-name (git-file-name name version))
18689 (sha256
18690 (base32
18691 "0j8fpxds8m1zi04nrs8vv21091abvh4n8ab76f1sgdxnp4l5cfb0"))))
18692 (build-system emacs-build-system)
18693 (home-page "https://github.com/fourier/ztree")
18694 (synopsis "Directory tree comparison mode for Emacs")
18695 (description "Ztree is a project dedicated to implementation of several
18696 text-tree applications inside GNU Emacs. It consists of 2 subprojects:
18697 @command{ztree-diff} and @command{ztree-dir} (the basis of
18698 @command{ztree-diff}).")
18699 (license license:gpl3))))
18700
18701 (define-public emacs-helm-org-contacts
18702 (let ((commit "e7f11615802df55bb8b679450b5a5ef82a9081f9"))
18703 (package
18704 (name "emacs-helm-org-contacts")
18705 (version (git-version "20200310" "1" commit))
18706 (source
18707 (origin
18708 (method git-fetch)
18709 (uri (git-reference
18710 (url "https://github.com/tmalsburg/helm-org-contacts")
18711 (commit commit)))
18712 (file-name (git-file-name name version))
18713 (sha256
18714 (base32
18715 "06a1gbrq3qcfsn0kyv4i24x1xxfrrwqa3kgfj4xa4va88q2vqyb5"))))
18716 (build-system emacs-build-system)
18717 (propagated-inputs
18718 `(("emacs-dash" ,emacs-dash)
18719 ("emacs-helm" ,emacs-helm)
18720 ("emacs-s" ,emacs-s)))
18721 (home-page "https://github.com/tmalsburg/helm-org-contacts")
18722 (synopsis "Helm source for org-contacts")
18723 (description "This Helm source can be used to search contacts stored in
18724 org-contacts format. There are actions for inserting postal addresses, email
18725 addresses, and phone numbers in the buffer where @command{helm-org-contacts}
18726 was called.")
18727 (license license:gpl3))))
18728
18729 (define-public emacs-dired-du
18730 (package
18731 (name "emacs-dired-du")
18732 (version "0.5.2")
18733 (source
18734 (origin
18735 (method url-fetch)
18736 (uri (string-append
18737 "https://elpa.gnu.org/packages/dired-du-" version ".tar"))
18738 (sha256
18739 (base32 "0vhph7vcicsiq28b10h3b4dvnhckcy4gccpdgsad5j7pwa5k26m1"))))
18740 (build-system emacs-build-system)
18741 (home-page "https://elpa.gnu.org/packages/dired-du.html")
18742 (synopsis "Dired with recursive directory sizes")
18743 (description
18744 "Display the recursive size of directories in Dired.
18745 This file defines a minor mode @command{dired-du-mode} to show the recursive
18746 size of directories in Dired buffers. If @command{du} program is available,
18747 then the directory sizes are obtained with it. Otherwise, the directory sizes
18748 are obtained with Lisp. The former is faster and provide a more precise
18749 value. For directories where the user doesn't have read permission, the
18750 recursive size is not obtained. Once this mode is enabled, every new Dired
18751 buffer displays recursive dir sizes.")
18752 (license license:gpl3+)))
18753
18754 (define-public emacs-dired-rsync
18755 (package
18756 (name "emacs-dired-rsync")
18757 (version "0.4")
18758 (source (origin
18759 (method git-fetch)
18760 (uri (git-reference
18761 (url "https://github.com/stsquad/dired-rsync")
18762 (commit version)))
18763 (file-name (git-file-name name version))
18764 (sha256
18765 (base32
18766 "0jzbn0izxqgz719gb6fpr60zbcb6w1ama13ngpvrig82nlhs37fv"))))
18767 (build-system emacs-build-system)
18768 (propagated-inputs
18769 `(("emacs-s" ,emacs-s)
18770 ("emacs-dash" ,emacs-dash)))
18771 (home-page "https://github.com/stsquad/dired-rsync/")
18772 (synopsis "Support for rsync from Emacs dired buffers")
18773 (description "This package adds a single command @code{dired-rsync} which
18774 allows the user to copy marked files in a dired buffer via @code{rsync}. This
18775 is useful, especially for large files, because the copy happens in the
18776 background and doesn’t lock up Emacs. It is also more efficient than using
18777 tramps own encoding methods for moving data between systems.")
18778 (license license:gpl3+)))
18779
18780 (define-public emacs-pcre2el
18781 ;; Last release is very old so we get the latest commit.
18782 (let ((commit "0b5b2a2c173aab3fd14aac6cf5e90ad3bf58fa7d"))
18783 (package
18784 (name "emacs-pcre2el")
18785 (version (git-version "1.8" "1" commit))
18786 (source
18787 (origin
18788 (method git-fetch)
18789 (uri (git-reference
18790 (url "https://github.com/joddie/pcre2el")
18791 (commit commit)))
18792 (file-name (git-file-name name version))
18793 (sha256
18794 (base32
18795 "14br6ad138qx1z822wqssswqiihxiynz1k69p6mcdisr2q8yyi1z"))))
18796 (build-system emacs-build-system)
18797 (home-page "https://github.com/joddie/pcre2el")
18798 (synopsis "Convert between PCRE, Emacs and rx regexp syntax")
18799 (description "@code{pcre2el} or @code{rxt} (RegeXp Translator or RegeXp
18800 Tools) is a utility for working with regular expressions in Emacs, based on a
18801 recursive-descent parser for regexp syntax. In addition to converting (a
18802 subset of) PCRE syntax into its Emacs equivalent, it can do the following:
18803
18804 @itemize
18805 @item convert Emacs syntax to PCRE
18806 @item convert either syntax to @code{rx}, an S-expression based regexp syntax
18807 @item untangle complex regexps by showing the parse tree in @code{rx} form and
18808 highlighting the corresponding chunks of code
18809 @item show the complete list of strings (productions) matching a regexp,
18810 provided the list is finite
18811 @item provide live font-locking of regexp syntax (so far only for Elisp
18812 buffers – other modes on the TODO list).
18813 @end itemize\n")
18814 (license license:gpl3))))
18815
18816 (define-public emacs-magit-todos
18817 (package
18818 (name "emacs-magit-todos")
18819 (version "1.4.1")
18820 (source
18821 (origin
18822 (method git-fetch)
18823 (uri (git-reference
18824 (url "https://github.com/alphapapa/magit-todos")
18825 (commit version)))
18826 (file-name (git-file-name name version))
18827 (sha256
18828 (base32
18829 "1rcl6j53yabxqk3jzgaxvm3wqq7rayf1hdib2v2fapw5b0layym6"))))
18830 (build-system emacs-build-system)
18831 (propagated-inputs
18832 `(("emacs-async" ,emacs-async)
18833 ("emacs-dash" ,emacs-dash)
18834 ("emacs-f" ,emacs-f)
18835 ("emacs-hl-todo" ,emacs-hl-todo)
18836 ("magit" ,emacs-magit)
18837 ("emacs-pcre2el" ,emacs-pcre2el)
18838 ("emacs-s" ,emacs-s)))
18839 (home-page "https://github.com/alphapapa/magit-todos")
18840 (synopsis "Show source files' TODOs (and FIXMEs, etc) in Magit status buffer")
18841 (description "This package displays keyword entries from source code
18842 comments and Org files in the Magit status buffer. Activating an item jumps
18843 to it in its file. By default, it uses keywords from @code{hl-todo}, minus a
18844 few (like NOTE).")
18845 (license license:gpl3)))
18846
18847 (define-public emacs-git-annex
18848 ;; Unreleased version has a fontification fix.
18849 (let ((commit "1324d3f23c534fe79391a2c256bb8803054e383b")
18850 (revision "2"))
18851 (package
18852 (name "emacs-git-annex")
18853 (version (git-version "1.1" revision commit))
18854 (source
18855 (origin
18856 (method git-fetch)
18857 (uri (git-reference
18858 (url "https://github.com/jwiegley/git-annex-el")
18859 (commit commit)))
18860 (file-name (git-file-name name version))
18861 (sha256
18862 (base32
18863 "1lfky2nsrlndlbvk6vwbswnvbvkz1sxgg0n3r5q6xykdkjym0lrh"))))
18864 (build-system emacs-build-system)
18865 (home-page "https://github.com/jwiegley/git-annex-el")
18866 (synopsis "Emacs integration for git-annex")
18867 (description "Enhances Dired and buffers visiting annex files with
18868 git-annex functionality. In Dired, the names of annex files are shortened by
18869 hiding the symbolic links and fontified based on whether content is present.
18870 Commands for performing some common operations (e.g., unlocking and adding
18871 files) are provided.")
18872 (license license:gpl2+))))
18873
18874 (define-public emacs-hackernews
18875 (let ((commit "2362d7b00e59da7caddc8c0adc24dccb42fddef9")
18876 (revision "2"))
18877 (package
18878 (name "emacs-hackernews")
18879 (version (git-version "0.5.0" revision commit))
18880 (source
18881 (origin
18882 (method git-fetch)
18883 (uri (git-reference
18884 (url "https://github.com/clarete/hackernews.el")
18885 (commit commit)))
18886 (file-name (git-file-name name version))
18887 (sha256
18888 (base32
18889 "1hcc5b173yzcvvd2ls3jxrmsw2w9bi21m9hcpcirkn0nh93ywadv"))))
18890 (build-system emacs-build-system)
18891 (home-page "https://github.com/clarete/hackernews.el")
18892 (synopsis "Hacker News client for Emacs")
18893 (description "The @command{hackernews} package is able to fetch stories
18894 from six different Hacker News feeds, namely top, new, best, ask, show and job
18895 stories. The default feed is top stories, which corresponds to the Hacker
18896 News homepage.")
18897 (license license:gpl3))))
18898
18899 (define-public emacs-youtube-dl
18900 (let ((commit "af877b5bc4f01c04fccfa7d47a2c328926f20ef4")
18901 (revision "2"))
18902 (package
18903 (name "emacs-youtube-dl")
18904 (version (git-version "1.0" "2" commit))
18905 (source
18906 (origin
18907 (method git-fetch)
18908 (uri (git-reference
18909 (url "https://github.com/skeeto/youtube-dl-emacs/")
18910 (commit commit)))
18911 (file-name (git-file-name name version))
18912 (sha256
18913 (base32
18914 "0zkl9jkjbx0lmp9ylv4rqg1zwqibk053s4rp7s1h0i18nzk7vn8j"))))
18915 (build-system emacs-build-system)
18916 (inputs
18917 `(("youtube-dl" ,youtube-dl)))
18918 (arguments
18919 `(#:phases
18920 (modify-phases %standard-phases
18921 (add-after 'unpack 'configure
18922 (lambda* (#:key inputs #:allow-other-keys)
18923 (let ((youtube-dl (assoc-ref inputs "youtube-dl")))
18924 ;; .el is read-only in git.
18925 (chmod "youtube-dl.el" #o644)
18926 ;; Specify the absolute file names of the various
18927 ;; programs so that everything works out-of-the-box.
18928 (emacs-substitute-variables
18929 "youtube-dl.el"
18930 ("youtube-dl-program"
18931 (string-append youtube-dl "/bin/youtube-dl")))))))))
18932 (home-page "https://github.com/skeeto/youtube-dl-emacs/")
18933 (synopsis "Emacs youtube-dl download manager")
18934 (description "This package manages a video download queue for
18935 @command{youtube-dl}, which serves as the back end. It manages a single
18936 @command{youtube-dl} subprocess, downloading one video at a time. New videos
18937 can be queued at any time.")
18938 (license license:unlicense))))
18939
18940 (define-public emacs-ytdl
18941 (package
18942 (name "emacs-ytdl")
18943 (version "1.3.5")
18944 (source
18945 (origin
18946 (method git-fetch)
18947 (uri (git-reference
18948 (url "https://gitlab.com/tuedachu/ytdl")
18949 (commit version)))
18950 (file-name (git-file-name name version))
18951 (sha256
18952 (base32 "1xv93ny942gha1ipic5r6z4icjsb7src7ssdck9983kks3zacjk7"))))
18953 (build-system emacs-build-system)
18954 (inputs
18955 `(("youtube-dl" ,youtube-dl)))
18956 (propagated-inputs
18957 `(("async" ,emacs-async)
18958 ("transient" ,emacs-transient)))
18959 (arguments
18960 `(#:phases
18961 (modify-phases %standard-phases
18962 (add-after 'unpack 'configure
18963 (lambda* (#:key inputs #:allow-other-keys)
18964 (let ((youtube-dl (assoc-ref inputs "youtube-dl")))
18965 ;; .el is read-only in git.
18966 (make-file-writable "ytdl.el")
18967 ;; Specify the absolute file names of the various programs so
18968 ;; that everything works out-of-the-box.
18969 (emacs-substitute-variables "ytdl.el"
18970 ("ytdl-command" (string-append youtube-dl "/bin/youtube-dl")))
18971 #t))))))
18972 (home-page "https://gitlab.com/tuedachu/ytdl")
18973 (synopsis "Emacs interface for youtube-dl")
18974 (description
18975 "This package manages a video download queue for @command{youtube-dl},
18976 which serves as the back end. New videos can be queued at any time. All
18977 youtube-dl backends are supported. It is possible to create download profiles
18978 depending on the downloaded URL.")
18979 (license license:gpl3+)))
18980
18981 (define-public emacs-org-web-tools
18982 (package
18983 (name "emacs-org-web-tools")
18984 (version "1.0")
18985 (source
18986 (origin
18987 (method git-fetch)
18988 (uri (git-reference
18989 (url "https://github.com/alphapapa/org-web-tools")
18990 (commit version)))
18991 (file-name (git-file-name name version))
18992 (sha256
18993 (base32
18994 "0kak9h5ny00d39gnwspv53nadnag01brw2fq9zk5wpfc91h9bjng"))))
18995 (build-system emacs-build-system)
18996 (propagated-inputs
18997 `(("emacs-dash" ,emacs-dash)
18998 ("emacs-esxml" ,emacs-esxml)
18999 ("emacs-s" ,emacs-s)))
19000 (inputs
19001 `(("pandoc" ,pandoc)))
19002 (arguments
19003 `(#:phases
19004 (modify-phases %standard-phases
19005 (add-after 'unpack 'patch-exec-paths
19006 (lambda* (#:key inputs #:allow-other-keys)
19007 (let ((pandoc (assoc-ref inputs "pandoc")))
19008 (substitute* "org-web-tools.el"
19009 (("\"pandoc\"") (string-append "\"" pandoc "/bin/pandoc\"")))
19010 #t))))))
19011 (home-page "https://github.com/alphapapa/org-web-tools")
19012 (synopsis "Display/Process web page as Org-mode content")
19013 (description "This package contains library functions and commands useful
19014 for retrieving web page content and processing it into Org-mode content.
19015
19016 For example, you can copy a URL to the clipboard or kill-ring, then run a
19017 command that downloads the page, isolates the “readable” content with
19018 @command{eww-readable}, converts it to Org-mode content with Pandoc, and
19019 displays it in an Org-mode buffer. Another command does all of that but
19020 inserts it as an Org entry instead of displaying it in a new buffer.")
19021 (license license:gpl3+)))
19022
19023 (define-public emacs-blimp
19024 (let ((commit "e420763d6d18b5d1be552cdbc47f91418343db03"))
19025 (package
19026 (name "emacs-blimp")
19027 (version (git-version "0.0.0" "1" commit))
19028 (source
19029 (origin
19030 (method git-fetch)
19031 (uri (git-reference
19032 (url "https://github.com/walseb/blimp")
19033 (commit commit)))
19034 (file-name (git-file-name name version))
19035 (sha256
19036 (base32
19037 "09wmhpym516b81dfq8smdmysh1fn610dzlyvyl2rkx8600f0fizd"))))
19038 (build-system emacs-build-system)
19039 (propagated-inputs
19040 `(("emacs-eimp" ,emacs-eimp)))
19041 (home-page "https://github.com/walseb/blimp")
19042 (synopsis "Emacs wrapper around all Imagemagick commands")
19043 (description "Blimp (Bustling Image Manipulation Package) is a complete
19044 wrapper around all Imagemagick commands with descriptions, autocompletion (for
19045 some commands) and hints displayed in prompt using @command{eimp.el} to
19046 execute its commands and resize images.")
19047 (license license:gpl3+))))
19048
19049 (define-public emacs-synosaurus
19050 (let ((commit "8bf95b935976ec0a1964cf175ed57cc5f6f93bdb"))
19051 (package
19052 (name "emacs-synosaurus")
19053 (version (git-version "0.1.0" "1" commit))
19054 (source
19055 (origin
19056 (method git-fetch)
19057 (uri (git-reference
19058 (url "https://github.com/hpdeifel/synosaurus")
19059 (commit commit)))
19060 (file-name (git-file-name name version))
19061 (sha256
19062 (base32
19063 "15by9jccab6kyplxa6k0glzaivxkqdigl33gl2qi2cvy6f2q7gva"))))
19064 (build-system emacs-build-system)
19065 (propagated-inputs
19066 `(("wordnet" ,wordnet)))
19067 (arguments
19068 `(#:phases
19069 (modify-phases %standard-phases
19070 (add-after 'unpack 'configure
19071 (lambda* (#:key inputs outputs #:allow-other-keys)
19072 (let ((wn (assoc-ref inputs "wordnet")))
19073 ;; .el is read-only in git.
19074 (chmod "synosaurus-wordnet.el" #o644)
19075 ;; Specify the absolute file names of the various
19076 ;; programs so that everything works out-of-the-box.
19077 (emacs-substitute-variables
19078 "synosaurus-wordnet.el"
19079 ("wordnet-command"
19080 (string-append wn "/bin/wn")))))))))
19081 (home-page "https://github.com/hpdeifel/synosaurus")
19082 (synopsis "Extensible thesaurus mode for Emacs")
19083 (description "Synosaurus is a thesaurus fontend for Emacs with pluggable
19084 backends, including the @command{wordnet} offline backend.")
19085 (license license:gpl3+))))
19086
19087 (define-public emacs-editorconfig
19088 (package
19089 (name "emacs-editorconfig")
19090 (version "0.8.1")
19091 (source
19092 (origin
19093 (method git-fetch)
19094 (uri (git-reference
19095 (url "https://github.com/editorconfig/editorconfig-emacs")
19096 (commit (string-append "v" version))))
19097 (file-name (git-file-name name version))
19098 (sha256
19099 (base32
19100 "1djlhkap7zddknzvjsjz0agpfsms1ih05zcpg1bikid2vs4gddyr"))))
19101 (build-system emacs-build-system)
19102 (home-page "https://github.com/editorconfig/editorconfig-emacs")
19103 (synopsis "Define and maintain consistent coding styles between different
19104 editors and IDEs")
19105 (description "The EditorConfig project consists of a file format for
19106 defining coding styles and a collection of text editor plugins that enable
19107 editors to read the file format and adhere to defined styles. EditorConfig
19108 files are easily readable and they work nicely with version control systems.")
19109 (license license:gpl3+)))
19110
19111 (define-public emacs-all-the-icons
19112 (package
19113 (name "emacs-all-the-icons")
19114 (version "4.0.1")
19115 (source
19116 (origin
19117 (method git-fetch)
19118 (uri (git-reference
19119 (url "https://github.com/domtronn/all-the-icons.el")
19120 (commit version)))
19121 (file-name (git-file-name name version))
19122 (sha256
19123 (base32 "0yh7gnv9xfqn8q4rzaa6wpyn9575vyfxy7d3afly2mqsb367fgm5"))))
19124 (build-system emacs-build-system)
19125 (arguments
19126 `(#:include '("\\.el$" "^data/" "^fonts/")
19127 ;; Compiling "test/" fails with "Symbol’s value as variable is void:
19128 ;; all-the-icons--root-code". Ignoring tests.
19129 #:exclude '("^test/")
19130 #:tests? #f))
19131 (propagated-inputs
19132 `(("f" ,emacs-f)
19133 ("memoize" ,emacs-memoize)))
19134 (home-page "https://github.com/domtronn/all-the-icons.el")
19135 (synopsis "Collect icon fonts and propertize them within Emacs")
19136 (description
19137 "All-the-icons is a utility package to collect various icon fonts and
19138 propertize them within Emacs. Icon fonts allow you to propertize and format
19139 icons the same way you would normal text. This enables things such as better
19140 scaling of and anti aliasing of the icons.")
19141 ;; Package is released under Expat license. Elisp files are licensed
19142 ;; under GPL3+. Fonts come with various licenses: Expat for
19143 ;; "all-the-icons.ttf" and "file-icons.ttf", Apache License 2.0 for
19144 ;; "material-design-icons.ttf", and SIL OFL 1.1 for "fontawesome.ttf",
19145 ;; "ocitcons.ttf" and "weathericons.ttf".
19146 (license
19147 (list license:expat license:gpl3+ license:silofl1.1 license:asl2.0))))
19148
19149 (define-public emacs-wttrin
19150 (let ((commit "df5427ce2a5ad4dab652dbb1c4a1834d7ddc2abc")
19151 (revision "1"))
19152 (package
19153 (name "emacs-wttrin")
19154 (version (git-version "0.2.0" revision commit))
19155 (source (origin
19156 (method git-fetch)
19157 (uri (git-reference
19158 (url "https://github.com/bcbcarl/emacs-wttrin")
19159 (commit commit)))
19160 (file-name (git-file-name name version))
19161 (sha256
19162 (base32
19163 "1ai655f10iayb4vw0ass2j3x83f4vsv90326mnywkzfl3sxd432z"))))
19164 (build-system emacs-build-system)
19165 (propagated-inputs
19166 `(("emacs-xterm-color" ,emacs-xterm-color)))
19167 (home-page "https://github.com/bcbcarl/emacs-wttrin")
19168 (synopsis "Frontend for weather web service @url{wttr.in}")
19169 (description "This package provides local weather information from
19170 @url{wttr.in}.")
19171 (license license:expat))))
19172
19173 (define-public emacs-browse-kill-ring
19174 (let ((commit "1ef72cc6accd94cd7032c02b1b2c78ae7f1d1965")
19175 (revision "0"))
19176 (package
19177 (name "emacs-browse-kill-ring")
19178 (version (git-version "2.0.0" revision commit))
19179 (source
19180 (origin
19181 (method git-fetch)
19182 (uri (git-reference
19183 (url "https://github.com/browse-kill-ring/browse-kill-ring")
19184 (commit commit)))
19185 (file-name (git-file-name name version))
19186 (sha256
19187 (base32
19188 "0mil32g7hcw376jibs5hdyv00xbaql3m4a27rwqaafg0x59avxdj"))))
19189 (build-system emacs-build-system)
19190 (home-page "https://github.com/browse-kill-ring/browse-kill-ring")
19191 (synopsis "Interactively insert items from kill-ring")
19192 (description
19193 "Did you ever feel that @code{C-y M-y M-y M-y ...} is not a great way
19194 of trying to find that piece of text you know you killed a while back? Then
19195 @code{browse-kill-ring.el} is for you.")
19196 (license license:gpl2+))))
19197
19198 (define-public emacs-powerline
19199 (package
19200 (name "emacs-powerline")
19201 (version "2.4")
19202 (source
19203 (origin
19204 (method git-fetch)
19205 (uri (git-reference
19206 (url "https://github.com/milkypostman/powerline")
19207 (commit version)))
19208 (file-name (git-file-name name version))
19209 (sha256
19210 (base32
19211 "1hp3xp18943n0rlggz55150020ivw8gvi1vyxkr4z8xhpwq4gaar"))))
19212 (build-system emacs-build-system)
19213 (home-page "https://github.com/milkypostman/powerline/")
19214 (synopsis "Mode-line plugin for Emacs")
19215 (description "Powerline is a utility plugin which allows you to create
19216 a better-looking, more functional Emacs mode-line. A collection of predefined
19217 themes comes with the package.")
19218 (license license:gpl3+)))
19219
19220 (define-public emacs-spaceline
19221 (package
19222 (name "emacs-spaceline")
19223 (version "2.0.1")
19224 (source
19225 (origin
19226 (method git-fetch)
19227 (uri (git-reference
19228 (url "https://github.com/TheBB/spaceline")
19229 (commit (string-append "v" version))))
19230 (file-name (git-file-name name version))
19231 (sha256
19232 (base32
19233 "1q8r95zfrh0vxna5ml2pq9b9f66clfqcl4d2qy2aizkvzyxg6skl"))))
19234 (build-system emacs-build-system)
19235 (propagated-inputs
19236 `(("dash" ,emacs-dash)
19237 ("powerline" ,emacs-powerline)
19238 ("s" ,emacs-s)))
19239 (home-page "https://github.com/TheBB/spaceline")
19240 (synopsis "Powerline theme from Spacemacs")
19241 (description "Spaceline provides Spacemacs' mode-line theme.
19242 This package provides features for three kinds of users.
19243
19244 @itemize
19245 @item You just want to use the Spacemacs mode-line theme and forget about it.
19246 @item You want to use something similar to the Spacemacs mode-line theme, but
19247 with a handful of easy tweaks.
19248 @item You want an easy-to-use library for building your own mode-line from
19249 scratch, and you think the Spacemacs theme looks good.
19250 @end itemize")
19251 (license license:gpl3+)))
19252
19253 (define-public emacs-spaceline-next
19254 (let ((commit "1b26af2c1a701481ac5d90928fe0200e389756c3")
19255 (last-release-version "2.0.1")
19256 (revision "0"))
19257 (package
19258 (inherit emacs-spaceline)
19259 (name "emacs-spaceline-next")
19260 (version (git-version last-release-version revision commit))
19261 (source
19262 (origin
19263 (method git-fetch)
19264 (uri (git-reference
19265 (url "https://github.com/TheBB/spaceline.git")
19266 (commit commit)))
19267 (sha256
19268 (base32 "11lwckqcgzsahrkkm5wk1ph4kc7d4yz05r7251g8c9f0q6vdj9dp"))
19269 (file-name (git-file-name name version)))))))
19270
19271 (define-public emacs-column-marker
19272 (package
19273 (name "emacs-column-marker")
19274 (version "9")
19275 (source
19276 (origin
19277 (method url-fetch)
19278 (uri "https://www.emacswiki.org/emacs/download/column-marker.el")
19279 (sha256 (base32 "05bv198zhqw5hqq6cr11mhz02dpca74hhp1ycwq369m0yb2naxy9"))))
19280 (build-system emacs-build-system)
19281 (home-page "https://www.emacswiki.org/emacs/ColumnMarker")
19282 (synopsis "Emacs mode for highlighting columns")
19283 (description
19284 "With @code{column-marker.el} you can highlight any number of text columns.
19285 Three such highlight column markers are provided by default. This is
19286 especially useful for languages like COBOL or Fortran where certain columns
19287 have special meaning. It is also handy for aligning text across long vertical
19288 distances. Multi-column characters, such as @kbd{TAB} are treated
19289 correctly.")
19290 (license license:gpl2+)))
19291
19292 (define-public emacs-slime-repl-ansi-color
19293 (let ((commit "ad03263f5d4de473bc173b64a6fc3dc1106393d7"))
19294 (package
19295 (name "emacs-slime-repl-ansi-color")
19296 (version (git-version "0.0.0" "1" commit))
19297 (source (origin
19298 (method git-fetch)
19299 (uri (git-reference
19300 (url "https://github.com/deadtrickster/slime-repl-ansi-color")
19301 (commit commit)))
19302 (file-name (git-file-name name version))
19303 (sha256
19304 (base32
19305 "0bpg7gxz310x7bnlg324c507sxc5gxwwz6h64h6kdq141r73vbi4"))))
19306 (build-system emacs-build-system)
19307 (home-page "https://github.com/deadtrickster/slime-repl-ansi-color")
19308 (synopsis "Color ANSI codes in the REPL of SLIME")
19309 (description "Color ANSI codes in the REPL of SLIME")
19310 (license license:gpl2+))))
19311
19312 (define-public emacs-helm-slime
19313 (package
19314 (name "emacs-helm-slime")
19315 (version "0.4.0")
19316 (source (origin
19317 (method git-fetch)
19318 (uri (git-reference
19319 (url "https://github.com/emacs-helm/helm-slime")
19320 (commit version)))
19321 (file-name (git-file-name name version))
19322 (sha256
19323 (base32
19324 "0mrpjhpijdrq353fnfvdj9l9xfsz390qlcvifcair9732ma7i8l0"))))
19325 (build-system emacs-build-system)
19326 (propagated-inputs
19327 `(("emacs-helm" ,emacs-helm)
19328 ("emacs-slime" ,emacs-slime)))
19329 (home-page "https://github.com/emacs-helm/helm-slime")
19330 (synopsis "Helm for SLIME, the Superior Lisp Interaction Mode for Emacs")
19331 (description "Helm-SLIME defines a few new commands:
19332
19333 @itemize
19334 @item helm-slime-complete: Select a symbol from the SLIME completion systems.
19335 @item helm-slime-list-connections: Yet another slime-list-connections with Helm.
19336 @item: helm-slime-apropos: Yet another slime-apropos with Helm.
19337 @item helm-slime-repl-history: Select an input from the SLIME REPL history and insert it.
19338 @end itemize\n")
19339 (license license:gpl3+)))
19340
19341 (define-public emacs-helm-sly
19342 (package
19343 (name "emacs-helm-sly")
19344 (version "0.5.0")
19345 (source (origin
19346 (method git-fetch)
19347 (uri (git-reference
19348 (url "https://github.com/emacs-helm/helm-sly")
19349 (commit version)))
19350 (file-name (git-file-name name version))
19351 (sha256
19352 (base32
19353 "1690rxwwg69jbcjhi51nyjlx3gziaiaa8ssyal71gmc6schq2592"))))
19354 (build-system emacs-build-system)
19355 (propagated-inputs
19356 `(("emacs-helm" ,emacs-helm)
19357 ("emacs-sly" ,emacs-sly)))
19358 (home-page "https://github.com/emacs-helm/helm-sly")
19359 (synopsis "Helm for SLY, a Common Lisp interaction mode for Emacs")
19360 (description "Helm-SLY defines a few new commands:
19361
19362 @itemize
19363 @item @code{helm-sly-list-connections}: Yet another Lisp connection list with
19364 Helm.
19365 @item @code{helm-sly-apropos}: Yet another @command{apropos} with Helm.
19366 @item @code{helm-sly-mini}: Like @command{helm-sly-list-connections}, but
19367 include an extra source of Lisp-related buffers, like the events buffer or the
19368 scratch buffer.
19369 @end itemize\n")
19370 (license license:gpl3+)))
19371
19372 (define-public emacs-gtk-look
19373 (package
19374 (name "emacs-gtk-look")
19375 (version "29")
19376 (source (origin
19377 (method url-fetch)
19378 (uri "https://download.tuxfamily.org/user42/gtk-look.el")
19379 (sha256
19380 (base32
19381 "14p2nwrd51cr1v06fxbjjn6jdrkf9d6vcxhmscm0kl677s25ypsp"))))
19382 (build-system emacs-build-system)
19383 (arguments
19384 `(#:phases
19385 (modify-phases %standard-phases
19386 (add-after 'unpack 'configure
19387 (lambda _
19388 ;; File is read-only.
19389 (chmod "gtk-look.el" #o644)
19390 (emacs-substitute-variables "gtk-look.el"
19391 ("gtk-lookup-devhelp-indices"
19392 '(list (expand-file-name "~/.guix-profile/share/gtk-doc/html/*/*.devhelp*"))))
19393 #t)))))
19394 (home-page "http://user42.tuxfamily.org/gtk-look/index.html")
19395 (synopsis "Find and display HTML documentation for GTK, GNOME and Glib")
19396 (description "@command{gtk-look} finds and displays HTML documentation for
19397 GTK, GNOME and Glib functions and variables in Emacs, similar to what
19398 info-lookup-symbol does for info files (C-h S). The documentation is expected
19399 to be devhelp indexes with HTML files. The location of the indexes can be
19400 customized. In addition to C code development @command{gtk-look} is good for
19401
19402 @itemize
19403 @item @command{perl-gtk2}, recognising class funcs like
19404 @command{Gtk2::Label->new} and bare method names like @command{set_text}.
19405 @item @command{guile-gnome}, recognising methods like @command{set-text} and
19406 classes like @command{<gtk-window>}.
19407 @end itemize\n")
19408 (license license:gpl3+)))
19409
19410 (define-public emacs-ov
19411 (package
19412 (name "emacs-ov")
19413 (version "1.0.6")
19414 (source (origin
19415 (method git-fetch)
19416 (uri (git-reference
19417 (url "https://github.com/ShingoFukuyama/ov.el")
19418 (commit version)))
19419 (file-name (git-file-name name version))
19420 (sha256
19421 (base32
19422 "0qxk2rf84j86syxi8xknsq252irwg7sz396v3bb4wqz4prpj0kzc"))))
19423 (build-system emacs-build-system)
19424 (home-page "https://github.com/ShingoFukuyama/ov.el")
19425 (synopsis "Overlay library for Emacs Lisp")
19426 (description "@code{ov.el} provides a simple way to manipulate overlays in
19427 Emacs.")
19428 (license license:gpl3+)))
19429
19430 (define-public emacs-matrix-client
19431 (let ((commit "a0623667b07a4bf60980c97b078e9faed97ace79"))
19432 (package
19433 (name "emacs-matrix-client")
19434 (version (git-version "0.0.0" "4" commit))
19435 (source (origin
19436 (method git-fetch)
19437 (uri (git-reference
19438 (url "https://github.com/jgkamat/matrix-client-el")
19439 (commit commit)))
19440 (file-name (git-file-name name version))
19441 (sha256
19442 (base32
19443 "1zya8id3y9wzjaj7nplq7br6nhm3lsskv0fkn1xr1y77fzcfgcdb"))))
19444 (build-system emacs-build-system)
19445 (arguments
19446 `(#:phases
19447 (modify-phases %standard-phases
19448 (add-after 'unpack 'add-missing-require
19449 ;; Fix a filter error at runtime due to a missing require.
19450 ;; Reported upstream:
19451 ;; <https://github.com/alphapapa/matrix-client.el/issues/76>
19452 (lambda _
19453 (substitute* "matrix-client-room.el"
19454 (("\\(require 'dash-functional\\)" all)
19455 (string-append all "\n" "(require 'anaphora)")))
19456 #t)))))
19457 (propagated-inputs
19458 `(("a" ,emacs-a)
19459 ("anaphora" ,emacs-anaphora)
19460 ("dash" ,emacs-dash)
19461 ("esxml" ,emacs-esxml)
19462 ("f" ,emacs-f)
19463 ("frame-purpose" ,emacs-frame-purpose)
19464 ("ht" ,emacs-ht)
19465 ("ov" ,emacs-ov)
19466 ("rainbow-identifiers" ,emacs-rainbow-identifiers)
19467 ("request" ,emacs-request)
19468 ("s" ,emacs-s)
19469 ("tracking" ,emacs-tracking)))
19470 (home-page "https://github.com/jgkamat/matrix-client-el")
19471 (synopsis "Matrix client for Emacs")
19472 (description "@code{matrix-client} is a simple chat UI to Matrix.org
19473 rooms. It also provides an API which allows Emacs to seamlessly create
19474 RPC channels with users and other software.")
19475 (license license:gpl3+))))
19476
19477 (define-public emacs-sesman
19478 (package
19479 (name "emacs-sesman")
19480 (version "0.3.4")
19481 (source
19482 (origin
19483 (method git-fetch)
19484 (uri (git-reference
19485 (url "https://github.com/vspinu/sesman")
19486 (commit (string-append "v" version))))
19487 (file-name (git-file-name name version))
19488 (sha256
19489 (base32
19490 "0z5jb4vpbjsi63w3wjy6d2lgz33qdfvrgfb3bszv4hcf6a96y7fc"))))
19491 (build-system emacs-build-system)
19492 (arguments
19493 `(#:phases
19494 (modify-phases %standard-phases
19495 (add-after 'unpack 'set-shell
19496 ;; Setting the SHELL environment variable is required for the tests
19497 ;; to find sh.
19498 (lambda _
19499 (setenv "SHELL" (which "sh"))
19500 #t)))
19501 #:tests? #t
19502 #:test-command '("make" "test")))
19503 (home-page "https://github.com/vspinu/sesman")
19504 (synopsis "Session manager for Emacs based IDEs")
19505 (description "Sesman provides facilities for session management and
19506 interactive session association with the current contexts (project, directory,
19507 buffers). While sesman can be used to manage arbitrary sessions, it primary
19508 targets the Emacs based IDEs (CIDER, ESS, Geiser, Robe, SLIME etc.)")
19509 (license license:gpl3+)))
19510
19511 (define-public emacs-buttercup
19512 (package
19513 (name "emacs-buttercup")
19514 (version "1.23")
19515 (source
19516 (origin
19517 (method git-fetch)
19518 (uri (git-reference
19519 (url "https://github.com/jorgenschaefer/emacs-buttercup")
19520 (commit (string-append "v" version))))
19521 (file-name (git-file-name name version))
19522 (sha256
19523 (base32
19524 "0ym1hajy47n5f1rxic8qfxrwd8zc1r7csz1v4hrwhwm4qld4krfr"))))
19525 (build-system emacs-build-system)
19526 (arguments
19527 `(#:tests? #t
19528 #:test-command '("make" "test")
19529 #:phases
19530 (modify-phases %standard-phases
19531 (add-after 'install 'install-bin
19532 (lambda* (#:key outputs #:allow-other-keys)
19533 (install-file "bin/buttercup"
19534 (string-append (assoc-ref outputs "out") "/bin"))
19535 #t)))))
19536 (home-page "https://github.com/jorgenschaefer/emacs-buttercup")
19537 (synopsis "Behavior driven emacs lisp testing framework")
19538 (description "Buttercup is a behavior-driven development framework for
19539 testing Emacs Lisp code. It groups related tests so they can share
19540 common set-up and tear-down code, and allows the programmer to \"spy\" on
19541 functions to ensure they are called with the right arguments during testing.")
19542 (license license:gpl3+)))
19543
19544 (define-public emacs-cort
19545 ;; Choosing a recent commit to fix some bugs.
19546 ;; https://github.com/conao3/cort.el/issues/106
19547 (let ((commit "495c3972b92b57a0cb5dd65ce5de9d3c6b8b6509")
19548 (revision "1"))
19549 (package
19550 (name "emacs-cort")
19551 (version (git-version "3.0.5" revision commit))
19552 (source (origin
19553 (method git-fetch)
19554 (uri (git-reference
19555 (url "https://github.com/conao3/cort.el")
19556 (commit commit)))
19557 (file-name (git-file-name name version))
19558 (sha256
19559 (base32
19560 "0f4irq1arh9c7lf9a5bla25am0jy5r6lj8ayb8k9k7lrirzhyk99"))))
19561 (build-system emacs-build-system)
19562 (propagated-inputs
19563 `(("emacs-ansi" ,emacs-ansi)))
19564 (arguments
19565 `(#:tests? #t
19566 #:test-command '("emacs" "--batch" "--quick"
19567 "--directory=." "--load=cort-tests.el"
19568 "--funcall=cort-test-run")))
19569 (home-page "https://github.com/conao3/cort.el")
19570 (synopsis "Unit test framework for the Emacs Lisp")
19571 (description "@code{cort} is a lightweight Emacs Lisp unit test library.")
19572 (license license:gpl3+))))
19573
19574 (define-public emacs-wordnut
19575 (let ((commit "feac531404041855312c1a046bde7ea18c674915")
19576 (revision "0"))
19577 (package
19578 (name "emacs-wordnut")
19579 (version (git-version "0.1" revision commit))
19580 (home-page "https://github.com/gromnitsky/wordnut")
19581 (source (origin
19582 (method git-fetch)
19583 (uri (git-reference (url home-page) (commit commit)))
19584 (sha256
19585 (base32
19586 "1jl0b6g64a9w0q7bfvwha67vgws5xd15b7mkfyb5gkz3pymqhfxn"))
19587 (patches
19588 (search-patches "emacs-wordnut-require-adaptive-wrap.patch"))
19589 (file-name (git-file-name name version))))
19590 (build-system emacs-build-system)
19591 (propagated-inputs
19592 `(("wordnet" ,wordnet)
19593 ("emacs-adaptive-wrap" ,emacs-adaptive-wrap)))
19594 (synopsis "Major mode for WordNet")
19595 (description "This Emacs package provides an interface for
19596 @code{wordnet}. Features include completion, if the query is not found
19597 too ambiguous and navigation in the result buffer.")
19598 (license license:gpl3+))))
19599
19600 (define-public emacs-frame-local
19601 ;; There is no release yet. Version is extracted from the main
19602 ;; file.
19603 (let ((version "0.0.1")
19604 (revision "0")
19605 (commit "7ee1106c3bcd4022f48421f8cb1ef4f995da816e"))
19606 (package
19607 (name "emacs-frame-local")
19608 (version (git-version version revision commit))
19609 (source
19610 (origin
19611 (method git-fetch)
19612 (uri (git-reference
19613 (url "https://github.com/sebastiencs/frame-local")
19614 (commit commit)))
19615 (file-name (git-file-name name version))
19616 (sha256
19617 (base32 "0zfxsxdh3bd3fd566zl0byp13p5b8f4cgkwl637imvarvahczigp"))))
19618 (build-system emacs-build-system)
19619 (home-page "https://github.com/sebastiencs/frame-local")
19620 (synopsis "Access variables local to an Emacs frame")
19621 (description
19622 "This packages allows setting and accessing variables local to
19623 an Emacs frame. Note that the variables created with this package do
19624 not have any relation with variables defined by @code{defvar},
19625 @code{defconst}, etc.")
19626 (license license:gpl3+))))
19627
19628 (define-public emacs-frame-purpose
19629 (package
19630 (name "emacs-frame-purpose")
19631 (version "1.0")
19632 (source (origin
19633 (method git-fetch)
19634 (uri (git-reference
19635 (url "https://github.com/alphapapa/frame-purpose.el")
19636 (commit version)))
19637 (sha256
19638 (base32
19639 "0jq2aam1yvccw887ighd1wm2xkvk5bv53ffiz3crcl16a255aj4q"))
19640 (file-name (git-file-name name version))))
19641 (build-system emacs-build-system)
19642 (inputs
19643 `(("dash" ,emacs-dash)))
19644 (synopsis "Purpose-specific frames for Emacs")
19645 (description "@code{frame-purpose} makes it easy to open purpose-specific
19646 frames that only show certain buffers, e.g. by buffers’ major mode, their
19647 filename or directory, etc, with custom frame/X-window titles, icons, and
19648 other frame parameters.")
19649 (home-page "https://github.com/alphapapa/frame-purpose.el")
19650 (license license:gpl3+)))
19651
19652 (define-public emacs-arduino-mode
19653 (let ((commit "23ae47c9f28f559e70b790b471f20310e163a39b")
19654 (revision "1")) ;no release yet
19655 (package
19656 (name "emacs-arduino-mode")
19657 (version (git-version "0" revision commit))
19658 (source (origin
19659 (method git-fetch)
19660 (uri (git-reference
19661 (url "https://github.com/stardiviner/arduino-mode")
19662 (commit commit)))
19663 (sha256
19664 (base32
19665 "08vnbz9gpah1l93fzfd87aawrhcnh2v1kyfxgsn88pdwg8awz8rx"))
19666 (file-name (git-file-name name version))))
19667 (build-system emacs-build-system)
19668 (inputs
19669 `(("spinner" ,emacs-spinner)
19670 ("flycheck" ,emacs-flycheck)))
19671 (arguments
19672 `(#:phases
19673 (modify-phases %standard-phases
19674 ;; Emacs complains that "defmethod" and "defgeneric" are obsolete
19675 ;; macros when compiling. Substitute them with the recommended
19676 ;; macros "cl-defmethod" and "cl-defgeneric", respectively.
19677 (add-after 'unpack 'fix-obsolete
19678 (lambda _
19679 (substitute* "ede-arduino.el"
19680 (("defmethod") "cl-defmethod")
19681 (("defgeneric") "cl-defgeneric"))
19682 #t)))))
19683 (synopsis "Emacs major mode for editing Arduino sketches")
19684 (description "Emacs major mode for editing Arduino sketches.")
19685 (home-page "https://github.com/stardiviner/arduino-mode")
19686 (license license:gpl3+))))
19687
19688 (define-public emacs-annalist
19689 (let ((commit "e0601539c9ac0171a684ea3ff6266d215d1d08e6")
19690 (revision "1"))
19691 (package
19692 (name "emacs-annalist")
19693 (version (git-version "1.0.0" revision commit))
19694 (source (origin
19695 (method git-fetch)
19696 (uri (git-reference
19697 (url "https://github.com/noctuid/annalist.el")
19698 (commit commit)))
19699 (sha256
19700 (base32
19701 "10bmimdzpi6cql4sb2hbgdvrza83xbac50bi9qng4z662pfnlaam"))
19702 (file-name (git-file-name name version))))
19703 (build-system emacs-build-system)
19704 (native-inputs
19705 `(("emacs-buttercup" ,emacs-buttercup)
19706 ("emacs-lispy" ,emacs-lispy)
19707 ("emacs-evil" ,emacs-evil)))
19708 (arguments
19709 `(#:phases
19710 (modify-phases %standard-phases
19711 (add-before 'check 'fix-makefile
19712 (lambda _
19713 (substitute* "Makefile"
19714 (("cask exec ") ""))
19715 #t)))
19716 #:tests? #t
19717 #:test-command '("make" "test")))
19718 (home-page "https://github.com/noctuid/annalist.el")
19719 (synopsis "Record and display information with Org headings and tables")
19720 (description "This package allows for keybindings, settings, hooks, and
19721 advice to be recorded and displayed.")
19722 (license license:gpl3+))))
19723
19724 (define-public emacs-general
19725 (let ((commit "a0b17d207badf462311b2eef7c065b884462cb7c")
19726 (revision "4"))
19727 (package
19728 (name "emacs-general")
19729 (version (git-version "0" revision commit))
19730 (source
19731 (origin
19732 (method git-fetch)
19733 (uri (git-reference
19734 (url "https://github.com/noctuid/general.el")
19735 (commit commit)))
19736 (sha256
19737 (base32 "0wn5rk3gkimdklip392mnjrmkymgrb7q9skifi03cbpjam1anzvv"))
19738 (file-name (git-file-name name version))))
19739 (build-system emacs-build-system)
19740 (native-inputs
19741 `(("emacs-buttercup" ,emacs-buttercup)
19742 ("emacs-evil" ,emacs-evil)
19743 ("emacs-which-key" ,emacs-which-key)
19744 ("emacs-use-package" ,emacs-use-package)))
19745 (arguments
19746 `(#:tests? #t
19747 #:test-command '("buttercup" "-L" "test/test-general.el")))
19748 (home-page "https://github.com/noctuid/general.el")
19749 (synopsis "More convenient key definitions in emacs")
19750 (description "@code{general.el} provides a more convenient method for
19751 binding keys in emacs (for both evil and non-evil users). Like
19752 @code{use-package}, which provides a convenient, unified interface for
19753 managing packages, @code{general.el} is intended to provide a convenient,
19754 unified interface for key definitions. While this package does implement some
19755 completely new functionality (such as the ability to make vim-style
19756 keybindings under non-prefix keys with an optional timeout), its primary
19757 purpose is to build on existing functionality to make key definition more
19758 clear and concise. @code{general-define-key} is user-extensible and supports
19759 defining multiple keys in multiple keymaps at once, implicitly wrapping key
19760 strings with (@code{kbd ...}), using named prefix key sequences (like the
19761 leader key in vim), and much more.")
19762 (license license:gpl3+))))
19763
19764 (define-public emacs-tldr
19765 (let ((commit "7203d1be3dcbf12131846ffe06601933fa874d74"))
19766 (package
19767 (name "emacs-tldr")
19768 (version (git-version "0" "1" commit))
19769 (home-page "https://github.com/kuanyui/tldr.el")
19770 (source (origin
19771 (method git-fetch)
19772 (uri (git-reference
19773 (url (string-append home-page ".git"))
19774 (commit commit)))
19775 (sha256
19776 (base32
19777 "1bw6la463l2yfm7rp76ga4makfy4kpxgwi7ni5gxk31w11g26ryk"))
19778 (file-name (git-file-name name version))))
19779 (build-system emacs-build-system)
19780 (propagated-inputs
19781 `(("emacs-request" ,emacs-request)))
19782 (synopsis "Simplified and community-driven man pages for Emacs")
19783 (description "@code{emacs-tldr} allows the user to access tldr pages
19784 from within emacs. The @code{tldr} pages are a community effort to simplify
19785 the man pages with practical examples.")
19786 (license license:wtfpl2))))
19787
19788 (define-public emacs-window-layout
19789 (package
19790 (name "emacs-window-layout")
19791 (version "1.4")
19792 (home-page "https://github.com/kiwanami/emacs-window-layout")
19793 (source (origin
19794 (method git-fetch)
19795 (uri (git-reference
19796 (url home-page)
19797 (commit (string-append "v" version))))
19798 (sha256
19799 (base32
19800 "0wgqi8r844lbx52fn6az8c1n8m681rp6dkfzd54wmdk1ka7zmvv6"))
19801 (file-name (git-file-name name version))))
19802 (build-system emacs-build-system)
19803 (synopsis "Simple window layout management framework for emacs")
19804 (description "A window-layout management library that can split a frame
19805 or a window into some windows according to a layout recipe.")
19806 (license license:gpl3+)))
19807
19808 (define-public emacs-e2wm
19809 (package
19810 (name "emacs-e2wm")
19811 (version "1.4")
19812 (home-page "https://github.com/kiwanami/emacs-window-manager")
19813 (source (origin
19814 (method git-fetch)
19815 (uri (git-reference
19816 (url home-page)
19817 (commit (string-append "v" version))))
19818 (sha256
19819 (base32
19820 "12midsrx07pdrsr1qbl2rpi7xyhxqx08bkz7n7gf8vsmqkpfp56s"))
19821 (file-name (git-file-name name version))))
19822 (build-system emacs-build-system)
19823 (propagated-inputs
19824 `(("emacs-window-layout" ,emacs-window-layout)))
19825 (synopsis "Equilibrium Emacs Window Manager")
19826 (description "E2WM is a window manager for Emacs. It enables to
19827 customize the place of pop-up window, how the windows are split, how the
19828 buffers are located in the windows, keybinds to manipulate windows and
19829 buffers, etc. It also has plug-ins to help your Emacs life.")
19830 (license license:gpl3+)))
19831
19832 (define-public emacs-ctable
19833 (let ((commit "b8830d1ca95abb100a81bc32011bd17d5ecba000"))
19834 (package
19835 (name "emacs-ctable")
19836 (version (git-version "0.1.2" "1" commit))
19837 (home-page "https://github.com/kiwanami/emacs-ctable")
19838 (source (origin
19839 (method git-fetch)
19840 (uri (git-reference
19841 (url home-page)
19842 (commit commit)))
19843 (sha256
19844 (base32
19845 "0pg303pnqscrsbx9579hc815angszsgf9vpd2z2f8p4f4ka6a00h"))
19846 (file-name (git-file-name name version))))
19847 (build-system emacs-build-system)
19848 (synopsis "Table component for Emacs Lisp")
19849 (description "This program is a table component for Emacs Lisp. Other
19850 programs can use this table component for the application UI.")
19851 (license license:gpl3+))))
19852
19853 (define-public emacs-leetcode
19854 (let ((commit "8624496af9e105c3e07d88844b37ede87540d604")
19855 (revision "1"))
19856 (package
19857 (name "emacs-leetcode")
19858 (version (git-version "0" "1" commit))
19859 (home-page "https://github.com/ginqi7/leetcode-emacs.git")
19860 (source (origin
19861 (method git-fetch)
19862 (uri (git-reference
19863 (url "https://github.com/ginqi7/leetcode-emacs")
19864 (commit commit)))
19865 (sha256
19866 (base32
19867 "11pp7ydlmwrv7djf9mwk4xzn295xbmdnj5x13bfj5yjpjr89p531"))
19868 (file-name (git-file-name name version))))
19869 (build-system emacs-build-system)
19870 (propagated-inputs
19871 `(("emacs-names" ,emacs-names)
19872 ("emacs-ctable" ,emacs-ctable)))
19873 (synopsis "Solve and submit LeetCode problems from within Emacs")
19874 (description "This package provides an Emacs interface to LeetCode
19875 allowing users to log in and solve problems of their choice using Emacs.")
19876 (license license:unlicense))))
19877
19878 (define-public emacs-epc
19879 (let ((commit "e1bfa5ca163273859336e3cc89b4b6460f7f8cda"))
19880 (package
19881 (name "emacs-epc")
19882 (version (git-version "0.1.1" "1" commit))
19883 (home-page "https://github.com/kiwanami/emacs-epc")
19884 (source (origin
19885 (method git-fetch)
19886 (uri (git-reference
19887 (url home-page)
19888 (commit commit)))
19889 (sha256
19890 (base32
19891 "15nkrjgi64f829isfd6xrhl4zw8jirr8pkas7nisrbk1av868hx0"))
19892 (file-name (git-file-name name version))))
19893 (build-system emacs-build-system)
19894 (propagated-inputs
19895 `(("emacs-deferred" ,emacs-deferred)
19896 ("emacs-ctable" ,emacs-ctable)))
19897 (synopsis "RPC stack for Emacs Lisp")
19898 (description "This program is an asynchronous RPC stack for Emacs.
19899 Using this RPC stack, Emacs can communicate with the peer process
19900 smoothly. Because the protocol employs S-expression encoding and consists of
19901 asynchronous communications, the RPC response is fairly good.")
19902 (license license:gpl3+))))
19903
19904 (define-public emacs-edbi
19905 (let ((commit "6f50aaf4bde75255221f2292c7a4ad3fa9d918c0"))
19906 (package
19907 (name "emacs-edbi")
19908 (version (git-version "0.1.3" "1" commit))
19909 (home-page "https://github.com/kiwanami/emacs-edbi")
19910 (source (origin
19911 (method git-fetch)
19912 (uri (git-reference
19913 (url home-page)
19914 (commit commit)))
19915 (sha256
19916 (base32
19917 "0x0igyvdcm4863n7zndvcv6wgzwgn7324cbfjja6xd7r0k936zdy"))
19918 (file-name (git-file-name name version))))
19919 (build-system emacs-build-system)
19920 (inputs
19921 `(("perl" ,perl)
19922 ("perl-rpc-epc-service" ,perl-rpc-epc-service)
19923 ("perl-dbi" ,perl-dbi)
19924 ;; TODO: Adding support for perl-dbd-mysql and others would
19925 ;; dramatically increase the closure size. Make several packages?
19926 ("perl-dbd-sqlite" ,perl-dbd-sqlite)))
19927 (propagated-inputs
19928 `(("emacs-e2wm" ,emacs-e2wm)
19929 ("emacs-epc" ,emacs-epc)))
19930 (arguments
19931 `(#:include '("\\.el$" "\\.pl$")
19932 #:phases
19933 (modify-phases %standard-phases
19934 (add-after 'install 'patch-path
19935 (lambda* (#:key inputs outputs #:allow-other-keys)
19936 (let ((perl (assoc-ref inputs "perl"))
19937 (dir (string-append (assoc-ref outputs "out")
19938 "/share/emacs/site-lisp")))
19939 (substitute* (string-append dir "/edbi.el")
19940 (("\"perl\"") (string-append "\"" perl "/bin/perl\"")))
19941 (chmod (string-append dir "/edbi-bridge.pl") #o555)
19942 (wrap-program (string-append dir "/edbi-bridge.pl")
19943 `("PERL5LIB" ":" prefix (,(getenv "PERL5LIB"))))
19944 #t))))))
19945 (synopsis "Database Interface for Emacs Lisp")
19946 (description "This program connects the database server through Perl's
19947 DBI, and provides DB-accessing API and the simple management UI.")
19948 (license license:gpl3+))))
19949
19950 (define-public emacs-edbi-sqlite
19951 (let ((commit "52cb9ca1af7691b592f2cfd2f007847e7a4ccd5f"))
19952 (package
19953 (name "emacs-edbi-sqlite")
19954 (version (git-version "0.1.1" "1" commit))
19955 (home-page "https://github.com/proofit404/edbi-sqlite")
19956 (source (origin
19957 (method git-fetch)
19958 (uri (git-reference
19959 (url home-page)
19960 (commit commit)))
19961 (sha256
19962 (base32
19963 "1vll81386fx90lq5sy4rlxcik6mvw7zx5cc51f0yaca9bkcckp51"))
19964 (file-name (git-file-name name version))))
19965 (build-system emacs-build-system)
19966 (propagated-inputs
19967 `(("emacs-edbi" ,emacs-edbi)))
19968 (synopsis "Open SQLite files in Emacs")
19969 (description "This package is a convenience wrapper for @command{edbi}
19970 to open SQLite databases.")
19971 (license license:gpl3+))))
19972
19973 (define-public emacs-nix-mode
19974 (package
19975 (name "emacs-nix-mode")
19976 (version "1.4.5")
19977 (source
19978 (origin
19979 (method git-fetch)
19980 (uri (git-reference
19981 (url "https://github.com/NixOS/nix-mode")
19982 (commit (string-append "v" version))))
19983 (file-name (git-file-name name version))
19984 (sha256
19985 (base32 "1bqlhkxg0faddhvxx909dq46dxdxk4mdyhdpww92dmzgxdpq38sx"))))
19986 (build-system emacs-build-system)
19987 (inputs
19988 `(("emacs-company" ,emacs-company)
19989 ("emacs-json-mode" ,emacs-json-mode)
19990 ("emacs-mmm-mode" ,emacs-mmm-mode)))
19991 (home-page "https://github.com/NixOS/nix-mode")
19992 (synopsis "Emacs major mode for editing Nix expressions")
19993 (description "@code{nixos-mode} provides an Emacs major mode for editing
19994 Nix expressions. It supports syntax highlighting, indenting and refilling of
19995 comments.")
19996 (license license:lgpl2.1+)))
19997
19998 (define-public emacs-libmpdel
19999 (package
20000 (name "emacs-libmpdel")
20001 (version "1.1.2")
20002 (source (origin
20003 (method git-fetch)
20004 (uri (git-reference
20005 (url "https://gitea.petton.fr/mpdel/libmpdel.git")
20006 (commit (string-append "v" version))))
20007 (file-name (git-file-name name version))
20008 (sha256
20009 (base32
20010 "0dnjndpv6bmz5blfs75ynmbm32g23l4slg5p3941b1i94a08qzpy"))))
20011 (build-system emacs-build-system)
20012 (home-page "https://gitea.petton.fr/mpdel/libmpdel")
20013 (synopsis "Emacs library to communicate with Music Player Daemon (MPD)")
20014 (description
20015 "An Emacs library client to communicate with Music Player Daemon (MPD), a
20016 flexible, powerful, server-side application for playing music.")
20017 (license license:gpl3+)))
20018
20019 (define-public emacs-mpdel
20020 (package
20021 (name "emacs-mpdel")
20022 (version "1.0.0")
20023 (source
20024 (origin
20025 (method git-fetch)
20026 (uri (git-reference
20027 (url "https://gitea.petton.fr/mpdel/mpdel.git")
20028 (commit (string-append "v" version))))
20029 (file-name (git-file-name name version))
20030 (sha256
20031 (base32
20032 "0pyyvbzskr44dxbmlp3y0r6s459fd51cvwjmnjaqxfxflr5v891g"))))
20033 (build-system emacs-build-system)
20034 (inputs
20035 `(("emacs-libmpdel" ,emacs-libmpdel)))
20036 (home-page "https://gitea.petton.fr/mpdel/mpdel")
20037 (synopsis "Emacs user interface for Music Player Daemon (MPD)")
20038 (description
20039 "MPDel provides an Emacs user interface to control playback (play, pause,
20040 next, volume) and display and control the current playlist as well as your
20041 stored playlists.")
20042 (license license:gpl3+)))
20043
20044 (define-public emacs-vterm
20045 (let ((version "0")
20046 (revision "3")
20047 (commit "14e4afdfc160b2e625c3e483d169786ac00cb4fe"))
20048 (package
20049 (name "emacs-vterm")
20050 (version (git-version version revision commit))
20051 (source (origin
20052 (method git-fetch)
20053 (uri (git-reference
20054 (url "https://github.com/akermu/emacs-libvterm")
20055 (commit commit)))
20056 (file-name (git-file-name name version))
20057 (sha256
20058 (base32
20059 "0wl613rxw493i3397n34qwqnd5fkyqrnn1fx3y2040xhvjl9rx70"))))
20060 (build-system emacs-build-system)
20061 (arguments
20062 `(#:modules ((guix build emacs-build-system)
20063 ((guix build cmake-build-system) #:prefix cmake:)
20064 (guix build emacs-utils)
20065 (guix build utils))
20066 #:imported-modules (,@%emacs-build-system-modules
20067 (guix build cmake-build-system))
20068 #:phases
20069 (modify-phases %standard-phases
20070 (add-before 'add-source-to-load-path 'substitute-vterm-module-path
20071 (lambda* (#:key outputs #:allow-other-keys)
20072 (chmod "vterm.el" #o644)
20073 (emacs-substitute-sexps "vterm.el"
20074 ("(require 'vterm-module nil t)"
20075 `(module-load
20076 ,(string-append (assoc-ref outputs "out")
20077 "/lib/vterm-module.so"))))
20078 #t))
20079 (add-after 'build 'configure
20080 ;; Run cmake.
20081 (lambda* (#:key outputs #:allow-other-keys)
20082 ((assoc-ref cmake:%standard-phases 'configure)
20083 #:outputs outputs
20084 #:out-of-source? #f
20085 #:configure-flags '("-DUSE_SYSTEM_LIBVTERM=ON"))
20086 #t))
20087 (add-after 'configure 'make
20088 ;; Run make.
20089 (lambda* (#:key (make-flags '()) outputs #:allow-other-keys)
20090 ;; Compile the shared object file.
20091 (apply invoke "make" "all" make-flags)
20092 ;; Move the file into /lib.
20093 (install-file
20094 "vterm-module.so"
20095 (string-append (assoc-ref outputs "out") "/lib"))
20096 #t)))
20097 #:tests? #f))
20098 (native-inputs
20099 `(("cmake" ,cmake-minimal)
20100 ("libtool" ,libtool)
20101 ("libvterm" ,libvterm)))
20102 (home-page "https://github.com/akermu/emacs-libvterm")
20103 (synopsis "Emacs libvterm integration")
20104 (description "This package implements a bridge to @code{libvterm} to
20105 display a terminal in an Emacs buffer.")
20106 (license license:gpl3+))))
20107
20108 (define-public emacs-simple-mpc
20109 ;; There have been no releases.
20110 (let ((commit "bee8520e81292b4c7353e45b193f9a13b482f5b2")
20111 (revision "1"))
20112 (package
20113 (name "emacs-simple-mpc")
20114 (version (git-version "0" revision commit))
20115 (source
20116 (origin
20117 (method git-fetch)
20118 (uri (git-reference
20119 (url "https://github.com/jorenvo/simple-mpc")
20120 (commit commit)))
20121 (file-name (git-file-name name version))
20122 (sha256
20123 (base32
20124 "1ja06pv007cmzjjgka95jlg31k7d29jrih1yxyblsxv85s9sg21q"))))
20125 (build-system emacs-build-system)
20126 (propagated-inputs `(("emacs-s" ,emacs-s)))
20127 (home-page "https://github.com/jorenvo/simple-mpc")
20128 (synopsis "Simple Emacs frontend to mpc")
20129 (description "This package provides an Emacs major mode which acts as a
20130 front end to mpc, a client for the @dfn{Music Player Daemon} (MPD).")
20131 (license license:gpl3+))))
20132
20133 (define-public emacs-mkmcc-gnuplot-mode
20134 (package
20135 (name "emacs-mkmcc-gnuplot-mode")
20136 (version "1.2.0")
20137 (source
20138 (origin
20139 (method git-fetch)
20140 (uri (git-reference
20141 (url "https://github.com/mkmcc/gnuplot-mode")
20142 (commit "601f6392986f0cba332c87678d31ae0d0a496ce7")))
20143 (file-name (git-file-name name version))
20144 (sha256
20145 (base32
20146 "14f0yh1rjqc3337j4sbqzfb7pjim2c8a7wk1a73xkrdkmjn82vgb"))))
20147 (build-system emacs-build-system)
20148 (home-page "https://mkmcc.github.io/software/gnuplot-mode.html")
20149 (synopsis "Minimal emacs major mode for editing gnuplot scripts")
20150 (description "@code{emacs-mkmcc-gnuplot-mode} is a minimal emacs major
20151 mode for editing gnuplot scripts. It provides syntax highlighting,
20152 indentation and a command to plot the file.")
20153 (license license:gpl3+)))
20154
20155 (define-public emacs-cmake-font-lock
20156 (let ((commit "e0ceaaae19c13b66f781512e3295bfc6707b56f4")
20157 (revision "1"))
20158 (package
20159 (name "emacs-cmake-font-lock")
20160 (version (git-version "0.1.5" revision commit))
20161 (source (origin
20162 (method git-fetch)
20163 (uri (git-reference
20164 (url "https://github.com/Lindydancer/cmake-font-lock")
20165 (commit commit)))
20166 (file-name (git-file-name name version))
20167 (sha256
20168 (base32
20169 "03gsyn95dlmsn15bl353bphi3qy7ccn5bss3f7n97kf38bllh0yf"))))
20170 (build-system emacs-build-system)
20171 (native-inputs
20172 `(("emacs-faceup" ,emacs-faceup)))
20173 (arguments
20174 `(#:include (cons "^admin\\/" %default-include)))
20175 (home-page "https://github.com/Lindydancer/cmake-font-lock")
20176 (synopsis "Advanced type-aware syntax-highlighting for CMake")
20177 (description "This package highlights function arguments in CMake
20178 according to their use.")
20179 (license license:gpl3+))))
20180
20181 (define-public emacs-dtrt-indent
20182 (package
20183 (name "emacs-dtrt-indent")
20184 (version "1.2")
20185 (source (origin
20186 (method git-fetch)
20187 (uri (git-reference
20188 (url "https://github.com/jscheid/dtrt-indent")
20189 (commit version)))
20190 (file-name (git-file-name name version))
20191 (sha256
20192 (base32
20193 "0p5v5xwr0s59hv3s0f85byafphc85qv76g41crad9fhnxzab9rly"))))
20194 (build-system emacs-build-system)
20195 (home-page "https://github.com/jscheid/dtrt-indent")
20196 (synopsis "Minor mode that guesses the indentation offset")
20197 (description "This package provides a minor mode that guesses the
20198 indentation offset originally used for creating source code files and
20199 transparently adjusts the corresponding settings in Emacs, making it more
20200 convenient to edit foreign files.")
20201 (license license:gpl2+)))
20202
20203 (define-public emacs-repo
20204 (package
20205 (name "emacs-repo")
20206 (version "0.1.3")
20207 (source (origin
20208 (method git-fetch)
20209 (uri (git-reference
20210 (url "https://github.com/canatella/repo-el")
20211 (commit version)))
20212 (file-name (git-file-name name version))
20213 (sha256
20214 (base32
20215 "0rbvcvm7bfr6ncji7cllfxyyr6x7n9fx863byp243phsj3n93adz"))))
20216 (build-system emacs-build-system)
20217 (native-inputs
20218 `(("emacs-el-mock" ,emacs-el-mock)
20219 ("ert-runner" ,emacs-ert-runner)))
20220 (propagated-inputs
20221 `(("emacs-f" ,emacs-f)
20222 ("magit" ,emacs-magit)))
20223 (home-page "https://github.com/canatella/repo-el")
20224 (synopsis "Emacs interface for the Google Repo tool")
20225 (description "This package provides integration of the Google Repo tool
20226 with emacs. It displays the output of the @code{repo status} command in a
20227 buffer and launches Magit from the status buffer for the project at point.")
20228 (license license:gpl3+)))
20229
20230 (define-public emacs-alect-themes
20231 (package
20232 (name "emacs-alect-themes")
20233 (version "0.9")
20234 (source (origin
20235 (method git-fetch)
20236 (uri (git-reference
20237 (url "https://github.com/alezost/alect-themes")
20238 (commit (string-append "v" version))))
20239 (file-name (git-file-name name version))
20240 (sha256
20241 (base32
20242 "0nffxpdm0sa7bynwi0rmlwpc4qmvbda5ankhzz7fmk4ap9fkjxv9"))))
20243 (build-system emacs-build-system)
20244 (home-page "https://github.com/alezost/alect-themes")
20245 (synopsis "Low contrast, light, dark and black color theme for Emacs")
20246 (description "@code{emacs-alect-themes} provides configurable light, dark
20247 and black color themes for Emacs. The themes are intended to be used with
20248 GUI.")
20249 (license license:gpl3+)))
20250
20251 (define-public emacs-google-c-style
20252 (let ((commit "6271f3f473ceb3a7fef99388a3040903b1a145f1")
20253 (revision "0"))
20254 (package
20255 (name "emacs-google-c-style")
20256 (version (git-version "0.1" revision commit))
20257 (source (origin
20258 (method git-fetch)
20259 (uri (git-reference
20260 (url "https://github.com/google/styleguide")
20261 (commit commit)))
20262 (file-name (git-file-name name version))
20263 (sha256
20264 (base32
20265 "1jghyyasdl15c4gaqaxmdn43am63k6bykn5ab83f1ahv9zi1krxk"))))
20266 (build-system emacs-build-system)
20267 (home-page "https://github.com/google/styleguide")
20268 (synopsis "Emacs settings file for Google C/C++ style")
20269 (description "@code{emacs-google-c-style} provides an Emacs settings
20270 file for Google C and C++ style.")
20271 (license license:gpl1+))))
20272
20273 (define-public emacs-redshank
20274 (let ((commit "f98e68f532e622bcd464292ca4a9cf5fbea14ebb")
20275 (revision "1"))
20276 (package
20277 (name "emacs-redshank")
20278 (version (git-version "0.1" revision commit))
20279 (source (origin
20280 (method git-fetch)
20281 (uri (git-reference
20282 (url "http://www.foldr.org/~michaelw/projects/redshank.git")
20283 (commit commit)))
20284 (file-name (git-file-name name version))
20285 (sha256
20286 (base32
20287 "1jdkgvd5xy9hl5q611jwah2n05abjp7qcy9sj4k1z11x0ii62b6p"))))
20288 (build-system emacs-build-system)
20289 (propagated-inputs
20290 `(("emacs-paredit" ,emacs-paredit)))
20291 (home-page "http://www.foldr.org/~michaelw/emacs/redshank/")
20292 (synopsis "Common Lisp Editing Extensions (for Emacs)")
20293 (description "Redshank is a collection of code-wrangling Emacs macros
20294 mostly geared towards Common Lisp, but some are useful for other Lisp
20295 dialects, too. Redshank's code transformations aim to be expression-based (as
20296 opposed to character-based).")
20297 (license license:gpl1+))))
20298
20299 (define-public emacs-disk-usage
20300 (package
20301 (name "emacs-disk-usage")
20302 (version "1.3.3")
20303 (source
20304 (origin
20305 (method git-fetch)
20306 (uri (git-reference
20307 (url "https://gitlab.com/Ambrevar/emacs-disk-usage.git")
20308 (commit version)))
20309 (file-name (git-file-name name version))
20310 (sha256
20311 (base32
20312 "0hv2gsd8k5fbjgckgiyisq4rn1i7y4rchbjy8kmixjv6mx563bll"))))
20313 (build-system emacs-build-system)
20314 (home-page "https://gitlab.com/Ambrevar/emacs-disk-usage")
20315 (synopsis "Sort and browse disk usage listings with Emacs")
20316 (description "Disk Usage is a file system analyzer: it offers a tabulated
20317 view of file listings sorted by size. Directory sizes are computed
20318 recursively. The results are cached for speed.")
20319 (license license:gpl3+)))
20320
20321 (define-public emacs-orgit
20322 (package
20323 (name "emacs-orgit")
20324 (version "1.5.3")
20325 (home-page "https://github.com/magit/orgit")
20326 (source (origin
20327 (method git-fetch)
20328 (uri (git-reference
20329 (url home-page)
20330 (commit (string-append "v" version))))
20331 (file-name (git-file-name name version))
20332 (sha256
20333 (base32
20334 "1ywavzki510rslsgfm0cnn3mlh644p61ha2nfb715xhkg7cd3j9g"))))
20335 (build-system emacs-build-system)
20336 (propagated-inputs
20337 `(("emacs-dash" ,emacs-dash)
20338 ("emacs-magit" ,emacs-magit)))
20339 (synopsis "Support for Org links to Magit buffers")
20340 (description "This package defines several Org link types, which can be
20341 used to link to certain Magit buffers. Use the command
20342 @command{org-store-link} while such a buffer is current to store a link.
20343 Later you can insert it into an Org buffer using the command
20344 @code{org-insert-link}.")
20345 (license license:gpl3+)))
20346
20347 (define-public emacs-amx
20348 (package
20349 (name "emacs-amx")
20350 (version "3.3")
20351 (source
20352 (origin
20353 (method git-fetch)
20354 (uri (git-reference
20355 (url "https://github.com/DarwinAwardWinner/amx")
20356 (commit (string-append "v" version))))
20357 (file-name (git-file-name name version))
20358 (sha256
20359 (base32 "0ikjzs119g57cwh2v3jmy63lggqc0ib99q5gsl93slkk4y2ihavw"))))
20360 (build-system emacs-build-system)
20361 (propagated-inputs
20362 `(("emacs-s" ,emacs-s)))
20363 (home-page "https://github.com/DarwinAwardWinner/amx")
20364 (synopsis "Alternative M-x interface for Emacs")
20365 (description "Amx is an alternative interface for M-x in Emacs. It
20366 provides several enhancements over the ordinary
20367 @code{execute-extended-command}, such as prioritizing your most-used commands
20368 in the completion list and showing keyboard shortcuts, and it supports several
20369 completion systems for selecting commands, such as Ido and Ivy.")
20370 (license license:gpl3+)))
20371
20372 (define-public emacs-lorem-ipsum
20373 (let ((commit "4b39f6fed455d67f635b3837cf5668bf74d0f6cd"))
20374 (package
20375 (name "emacs-lorem-ipsum")
20376 (version (git-version "0.2" "1" commit))
20377 (home-page "https://github.com/jschaf/emacs-lorem-ipsum/")
20378 (source (origin
20379 (method git-fetch)
20380 (uri (git-reference
20381 (url home-page)
20382 (commit commit)))
20383 (file-name (git-file-name name version))
20384 (sha256
20385 (base32
20386 "0a3b18p3vdjci89prsgdzjnfxsl8p67vjhf8ai4qdng7zvh50lir"))))
20387 (build-system emacs-build-system)
20388 (synopsis "Insert dummy pseudo Latin text in Emacs")
20389 (description "This package provides convenience functions to insert
20390 dummy Latin text into a buffer. This can be useful if you need to produce
20391 paragraphs or pages of text for testing purposes.")
20392 (license license:gpl3+))))
20393
20394 (define-public emacs-lisp-extra-font-lock
20395 (let ((commit "4605eccbe1a7fcbd3cacf5b71249435413b4db4f"))
20396 (package
20397 (name "emacs-lisp-extra-font-lock")
20398 (version (git-version "0.0.6" "1" commit))
20399 (home-page "https://github.com/Lindydancer/lisp-extra-font-lock")
20400 (source (origin
20401 (method git-fetch)
20402 (uri (git-reference
20403 (url home-page)
20404 (commit commit)))
20405 (file-name (git-file-name name version))
20406 (sha256
20407 (base32
20408 "152vcp3mdlv33jf5va4rinl1d0k960gnfhbrqqrafazgx9j3ya8w"))))
20409 (build-system emacs-build-system)
20410 (synopsis "Highlight bound variables and quoted expressions in Emacs")
20411 (description "This package highlight the location where local variables
20412 is created (bound, for example, by let) as well as quoted and backquoted
20413 constant expressions.")
20414 (license license:gpl3+))))
20415
20416 (define-public emacs-docker-tramp
20417 (package
20418 (name "emacs-docker-tramp")
20419 (version "0.1")
20420 (source
20421 (origin
20422 (method git-fetch)
20423 (uri (git-reference
20424 (url "https://github.com/emacs-pe/docker-tramp.el")
20425 (commit (string-append "v" version))))
20426 (file-name (git-file-name name version))
20427 (sha256
20428 (base32
20429 "0lxvzmfg52fhxrhbvp92zwp7cv4i1rlxnkyyzgngj3sjm7y60yvg"))))
20430 (build-system emacs-build-system)
20431 (home-page "https://github.com/emacs-pe/docker-tramp.el")
20432 (synopsis "TRAMP integration for docker containers")
20433 (description
20434 "This package provides a TRAMP method for Docker containers.")
20435 (license license:gpl3+)))
20436
20437 (define-public emacs-docker
20438 (package
20439 (name "emacs-docker")
20440 (version "1.3.0")
20441 (source (origin
20442 (method git-fetch)
20443 (uri (git-reference
20444 (url "https://github.com/Silex/docker.el")
20445 (commit version)))
20446 (file-name (git-file-name name version))
20447 (sha256
20448 (base32
20449 "1g8r1faqp0z0vqp9qrl8m84pa0v2ddvc91klphdkfmldwv7rfipw"))))
20450 (inputs
20451 `(("emacs-undercover" ,emacs-undercover)))
20452 (propagated-inputs
20453 `(("emacs-dash" ,emacs-dash)
20454 ("emacs-docker-tramp" ,emacs-docker-tramp)
20455 ("emacs-magit-popup" ,emacs-magit-popup)
20456 ("emacs-s" ,emacs-s)
20457 ("emacs-tablist" ,emacs-tablist)
20458 ("emacs-json-mode" ,emacs-json-mode)))
20459 (arguments
20460 `(#:phases
20461 (modify-phases %standard-phases
20462 (delete 'check)))) ;no tests
20463 (build-system emacs-build-system)
20464 (home-page "https://github.com/Silex/docker.el")
20465 (synopsis "Manage docker from Emacs")
20466 (description "This package provides an Emacs interface for Docker.")
20467 (license license:gpl3+)))
20468
20469 (define-public emacs-dockerfile-mode
20470 (package
20471 (name "emacs-dockerfile-mode")
20472 (version "1.3")
20473 (source
20474 (origin
20475 (method git-fetch)
20476 (uri (git-reference
20477 (url "https://github.com/spotify/dockerfile-mode")
20478 (commit (string-append "v" version))))
20479 (file-name (git-file-name name version))
20480 (sha256
20481 (base32
20482 "1br73dsls42fn4rwagljkpa3l4wwj6f7jxfn3gmgl6c54z81av3v"))))
20483 (build-system emacs-build-system)
20484 (propagated-inputs
20485 `(("emacs-s" ,emacs-s)))
20486 (home-page "https://github.com/spotify/dockerfile-mode")
20487 (synopsis "Major mode for editing Dockerfile")
20488 (description
20489 "This package provides a major mode @code{dockerfile-mode} for use with
20490 the standard @code{Dockerfile} file format.")
20491 (license license:asl2.0)))
20492
20493 (define-public emacs-lsp-mode
20494 (package
20495 (name "emacs-lsp-mode")
20496 (version "7.0.1")
20497 (source
20498 (origin
20499 (method git-fetch)
20500 (uri (git-reference
20501 (url "https://github.com/emacs-lsp/lsp-mode")
20502 (commit version)))
20503 (file-name (git-file-name name version))
20504 (sha256
20505 (base32 "1z8zm7qr21hvhl6rnbznv2l9drh1pp5y4zkjrx5ac4x77b8i4aaz"))))
20506 (build-system emacs-build-system)
20507 (propagated-inputs
20508 `(("emacs-dash" ,emacs-dash)
20509 ("emacs-f" ,emacs-f)
20510 ("emacs-ht" ,emacs-ht)
20511 ("emacs-hydra" ,emacs-hydra)
20512 ("emacs-markdown-mode" ,emacs-markdown-mode)
20513 ("emacs-spinner" ,emacs-spinner)))
20514 (home-page "https://emacs-lsp.github.io/lsp-mode/")
20515 (synopsis "Emacs client and library for the Language Server Protocol")
20516 (description
20517 "LSP mode is a client and library implementation for the Language Server
20518 Protocol. This mode creates an IDE-like experience by providing optional
20519 integration with other popular Emacs packages like Company, Flycheck, and
20520 Projectile.")
20521 (license license:gpl3+)))
20522
20523 (define-public emacs-pfuture
20524 (package
20525 (name "emacs-pfuture")
20526 (version "1.9")
20527 (source (origin
20528 (method git-fetch)
20529 (uri (git-reference
20530 (url "https://github.com/Alexander-Miller/pfuture")
20531 (commit version)))
20532 (file-name (git-file-name name version))
20533 (sha256
20534 (base32
20535 "1chpin5277vbl2xvsl04pzzk7a9dbcvclibm2496gz6yvd19pwsf"))))
20536 (build-system emacs-build-system)
20537 (home-page
20538 "https://github.com/Alexander-Miller/pfuture")
20539 (synopsis "Simple wrapper around asynchronous processes for Emacs")
20540 (description "This package provides a simple wrapper around asynchronous
20541 processes for Emacs")
20542 (license license:gpl3+)))
20543
20544 (define-public emacs-treemacs
20545 (package
20546 (name "emacs-treemacs")
20547 (version "2.8")
20548 (source (origin
20549 (method git-fetch)
20550 (uri (git-reference
20551 (url "https://github.com/Alexander-Miller/treemacs")
20552 (commit version)))
20553 (file-name (git-file-name name version))
20554 (sha256
20555 (base32
20556 "0m083g3pg0n4ymi1w0jx34awr7cqbm4r561adij9kklblxsz7sc2"))))
20557 (build-system emacs-build-system)
20558 (propagated-inputs
20559 `(("emacs-ace-window" ,emacs-ace-window)
20560 ("emacs-dash" ,emacs-dash)
20561 ("emacs-f" ,emacs-f)
20562 ("emacs-ht" ,emacs-ht)
20563 ("emacs-hydra" ,emacs-hydra)
20564 ("emacs-pfuture" ,emacs-pfuture)
20565 ("emacs-s" ,emacs-s)))
20566 (native-inputs
20567 `(("emacs-buttercup" ,emacs-buttercup)
20568 ("emacs-el-mock" ,emacs-el-mock)))
20569 (inputs
20570 `(("python" ,python)))
20571 (arguments
20572 `(#:tests? #t
20573 #:phases
20574 (modify-phases %standard-phases
20575 (add-after 'unpack 'fix-makefile
20576 (lambda _
20577 (substitute* "Makefile"
20578 (("@\\$\\(CASK\\) exec ") "")
20579 ;; Guix does not need to prepare dependencies before testing.
20580 (("test: prepare") "test:"))
20581 #t))
20582 (add-after 'fix-makefile 'chdir-elisp
20583 ;; Elisp directory is not in root of the source.
20584 (lambda _
20585 (chdir "src/elisp")))
20586 (replace 'check
20587 ;; FIXME: Work around ‘treemacs--parse-collapsed-dirs’ and
20588 ;; `treemacs-collect-child-nodes' test failures.
20589 (lambda _
20590 (with-directory-excursion "../.." ;treemacs root
20591 (chmod "test/test-treemacs.el" #o644)
20592 (emacs-substitute-sexps "test/test-treemacs.el"
20593 ("(describe \"treemacs--parse-collapsed-dirs\"" "")
20594 ("\"Finds only direct childre\"" ""))
20595 (invoke "make" "test"))))
20596 (add-before 'install 'patch-paths
20597 (lambda* (#:key inputs outputs #:allow-other-keys)
20598 (with-directory-excursion "../.." ;treemacs root
20599 (chmod "src/elisp/treemacs-core-utils.el" #o644)
20600 (emacs-substitute-variables "src/elisp/treemacs-core-utils.el"
20601 ("treemacs-dir"
20602 (string-append (assoc-ref outputs "out") "/")))
20603 (chmod "src/elisp/treemacs-icons.el" #o644)
20604 (substitute* "src/elisp/treemacs-icons.el"
20605 (("icons/default") "share/emacs-treemacs/images"))
20606 (chmod "src/elisp/treemacs-customization.el" #o644)
20607 (emacs-substitute-variables "src/elisp/treemacs-customization.el"
20608 ("treemacs-python-executable"
20609 (string-append (assoc-ref inputs "python") "/bin/python3")))
20610 (chmod "src/elisp/treemacs-async.el" #o644)
20611 (substitute* "src/elisp/treemacs-async.el"
20612 (("src/scripts") (string-append "share/" ,name "/scripts"))))
20613 #t))
20614 (add-after 'install 'install-data
20615 (lambda* (#:key outputs #:allow-other-keys)
20616 (let ((out (assoc-ref outputs "out")))
20617 (with-directory-excursion "../.." ;treemacs root
20618 (copy-recursively "icons/default"
20619 (string-append out "/share/" ,name "/images"))
20620 (copy-recursively
20621 "src/scripts"
20622 (string-append out "/share/" ,name "/scripts"))
20623 #t)))))))
20624 (home-page "https://github.com/Alexander-Miller/treemacs")
20625 (synopsis "Emacs tree style file explorer")
20626 (description
20627 "Treemacs is a file and project explorer similar to NeoTree or Vim's
20628 NerdTree, but largely inspired by the Project Explorer in Eclipse. It shows
20629 the file system outlines of your projects in a simple tree layout allowing
20630 quick navigation and exploration, while also possessing basic file management
20631 utilities.")
20632 (license license:gpl3+)))
20633
20634 (define-public emacs-treemacs-extra
20635 (package
20636 (inherit emacs-treemacs)
20637 (name "emacs-treemacs-extra")
20638 (propagated-inputs
20639 `(,@(package-propagated-inputs emacs-treemacs)
20640 ("emacs-evil" ,emacs-evil)
20641 ("emacs-magit" ,emacs-magit)
20642 ("emacs-projectile" ,emacs-projectile)
20643 ("emacs-persp-mode" ,emacs-persp-mode)))
20644 (arguments
20645 (substitute-keyword-arguments
20646 (package-arguments emacs-treemacs)
20647 ((#:phases phases)
20648 `(modify-phases ,phases
20649 (add-after 'chdir-elisp 'copy-extra
20650 (lambda _
20651 (copy-recursively "../extra" ".")))))))))
20652
20653 (define-public emacs-libyaml
20654 ;; Upstream made no release so far.
20655 (let ((version "0")
20656 (revision "1")
20657 (commit "703e0d448c7ee24e25b513a3c65980c80e166805"))
20658 (package
20659 (name "emacs-libyaml")
20660 (version (git-version version revision commit))
20661 (source
20662 (origin
20663 (method git-fetch)
20664 (uri (git-reference
20665 (url "https://github.com/syohex/emacs-libyaml")
20666 (commit commit)))
20667 (file-name (git-file-name name version))
20668 (sha256
20669 (base32 "08l7pm9v50ykd3fkbm0bh2kcd57cadbc5i9r6rj51vd32w3pl2yl"))))
20670 (build-system emacs-build-system)
20671 (arguments
20672 `(#:tests? #f ;no test
20673 #:modules ((guix build emacs-build-system)
20674 (guix build emacs-utils)
20675 (guix build utils))
20676 #:imported-modules (,@%emacs-build-system-modules
20677 (guix build gnu-build-system))
20678 #:phases
20679 (modify-phases %standard-phases
20680 (add-before 'add-source-to-load-path 'substitute-libyaml-core-path
20681 (lambda* (#:key outputs #:allow-other-keys)
20682 (chmod "libyaml.el" #o644)
20683 (substitute* "libyaml.el"
20684 (("^\\(require 'libyaml-core\\)")
20685 (string-append "(module-load \"" (assoc-ref outputs "out")
20686 "/lib/libyaml-core.so\")")))
20687 #t))
20688 (add-after 'check 'make
20689 ;; Run make.
20690 (lambda* (#:key (make-flags '()) outputs #:allow-other-keys)
20691 ;; Compile the shared object file.
20692 (apply invoke "make" "all" "CPPFLAGS=" make-flags)
20693 ;; Move the file into /lib.
20694 (install-file "libyaml-core.so"
20695 (string-append (assoc-ref outputs "out") "/lib"))
20696 #t)))))
20697 (native-inputs `(("libyaml" ,libyaml)))
20698 (home-page "https://github.com/syohex/emacs-libyaml")
20699 (synopsis "Libyaml bindings for Emacs")
20700 (description
20701 "This package implements bindings for LibYAML to be able to parse YAML
20702 files in Elisp.")
20703 (license license:gpl3+))))
20704
20705 (define-public emacs-lsp-java
20706 (package
20707 (name "emacs-lsp-java")
20708 (version "2.2")
20709 (source (origin
20710 (method git-fetch)
20711 (uri (git-reference
20712 (url "https://github.com/emacs-lsp/lsp-java")
20713 (commit version)))
20714 (file-name (git-file-name name version))
20715 (sha256
20716 (base32
20717 "0hcnvbyaqyypgby1bfj4zbrbq97amk8hfx0sj4w73rl46yf4jk3j"))))
20718 (build-system emacs-build-system)
20719 (propagated-inputs
20720 `(("emacs-lsp-mode" ,emacs-lsp-mode)
20721 ("emacs-markdown-mode" ,emacs-markdown-mode)
20722 ("emacs-dash" ,emacs-dash)
20723 ("emacs-f" ,emacs-f)
20724 ("emacs-ht" ,emacs-ht)
20725 ("emacs-request" ,emacs-request)
20726 ("emacs-treemacs" ,emacs-treemacs)))
20727 (home-page "https://github.com/emacs-lsp/lsp-java/")
20728 (synopsis "Java support for lsp-mode")
20729 (description "Emacs Java IDE using Eclipse JDT Language Server.")
20730 (license license:gpl3+)))
20731
20732 (define-public emacs-lsp-ui
20733 (package
20734 (name "emacs-lsp-ui")
20735 (version "7.0.1")
20736 (source (origin
20737 (method git-fetch)
20738 (uri (git-reference
20739 (url "https://github.com/emacs-lsp/lsp-ui")
20740 (commit version)))
20741 (file-name (git-file-name name version))
20742 (sha256
20743 (base32
20744 "09dmhhxmfjnzdc5kygwsjf8nwqlnq9rbgrca679s2wy93miqj7vc"))))
20745 (build-system emacs-build-system)
20746 (propagated-inputs
20747 `(("emacs-dash" ,emacs-dash)
20748 ("emacs-lsp-mode" ,emacs-lsp-mode)
20749 ("emacs-markdown-mode" ,emacs-markdown-mode)
20750 ("emacs-flycheck" ,emacs-flycheck)))
20751 (home-page "https://github.com/emacs-lsp/lsp-ui")
20752 (synopsis "User interface extensions for @code{lsp-mode}")
20753 (description
20754 "@code{LSP-ui} contains several enhancements and integrations for
20755 @code{lsp-mode}, such as visual flychecking, displaying references in-line,
20756 and code peeking.")
20757 (license license:gpl3+)))
20758
20759 (define-public emacs-lsp-lua-emmy
20760 (let ((commit "ab53fb2a8b8942804eb75bab5624fd19f1d360bf"))
20761 (package
20762 (name "emacs-lsp-lua-emmy")
20763 (version (git-version "0.1.0" "1" commit))
20764 (source (origin
20765 (method git-fetch)
20766 (uri (git-reference
20767 (url "https://github.com/phenix3443/lsp-lua-emmy")
20768 (commit commit)))
20769 (file-name (git-file-name name version))
20770 (sha256
20771 (base32
20772 "0rbizis73n1w5ig07fj1han74chbc1zpbp5bn37rj0gz608aqka8"))))
20773 (build-system emacs-build-system)
20774 (propagated-inputs
20775 `(("emacs-lsp-mode" ,emacs-lsp-mode)))
20776 (home-page "https://github.com/phenix3443/lsp-lua-emmy/")
20777 (synopsis "Lua support in @code{lsp-mode} client for Emacs")
20778 (description "This package provides a Lua language support in
20779 @code{lsp-mode} client for Emacs.")
20780 (license license:gpl3+))))
20781
20782 (define-public emacs-lsp-ivy
20783 (let ((commit "caf1e1d7e22ed0b5fe18dd508d1a6f83dd163288")
20784 (revision "2"))
20785 (package
20786 (name "emacs-lsp-ivy")
20787 (version (git-version "0.1" revision commit))
20788 (source (origin
20789 (method git-fetch)
20790 (uri (git-reference
20791 (url "https://github.com/emacs-lsp/lsp-ivy")
20792 (commit commit)))
20793 (file-name (git-file-name name version))
20794 (sha256
20795 (base32
20796 "084ds4qhzhivfnicy3h7z4mblxgcqx8pfnkbjr9qjrfng7cisy4z"))))
20797 (build-system emacs-build-system)
20798 (propagated-inputs
20799 `(("emacs-ivy" ,emacs-ivy)
20800 ("emacs-lsp-mode" ,emacs-lsp-mode)
20801 ("emacs-dash" ,emacs-dash)))
20802 (home-page "https://github.com/emacs-lsp/lsp-ivy")
20803 (synopsis "Provide LSP-enhanced completion for symbols")
20804 (description
20805 "This package enhances @code{ivy} with completion for symbols from
20806 workspaces with a LSP-compliant server running.")
20807 (license license:gpl3+))))
20808
20809 (define-public emacs-helm-lsp
20810 (let ((commit "3a58ca4cfd94b9ab1e15e819d3b16ef568e8889b")
20811 (revision "1"))
20812 (package
20813 (name "emacs-helm-lsp")
20814 (version (git-version "0.1" revision commit))
20815 (source (origin
20816 (method git-fetch)
20817 (uri (git-reference
20818 (url "https://github.com/emacs-lsp/helm-lsp")
20819 (commit commit)))
20820 (file-name (git-file-name name version))
20821 (sha256
20822 (base32
20823 "0wh5zai3s17ss2q8wcdd6d87hv1h3nbyrxxs4js9cas8m6y2ssjv"))))
20824 (build-system emacs-build-system)
20825 (propagated-inputs
20826 `(("emacs-helm" ,emacs-helm)
20827 ("emacs-lsp-mode" ,emacs-lsp-mode)
20828 ("emacs-dash" ,emacs-dash)))
20829 (home-page "https://github.com/emacs-lsp/helm-lsp")
20830 (synopsis "Provide LSP-enhanced completion for symbols")
20831 (description
20832 "This package enhances @code{helm} with completion for symbols from
20833 workspaces with a LSP-compliant server running.")
20834 (license license:gpl3+))))
20835
20836 (define-public emacs-helm-notmuch
20837 (package
20838 (name "emacs-helm-notmuch")
20839 (version "1.2")
20840 (home-page "https://github.com/emacs-helm/helm-notmuch/")
20841 (source (origin
20842 (method git-fetch)
20843 (uri (git-reference
20844 (url home-page)
20845 (commit version)))
20846 (file-name (git-file-name name version))
20847 (sha256
20848 (base32
20849 "1k038dbdpaa411gl4071x19fklhnizhr346plxw23lsnxir9dhqc"))))
20850 (build-system emacs-build-system)
20851 (propagated-inputs
20852 `(("emacs-helm" ,emacs-helm)
20853 ("notmuch" ,notmuch)))
20854 (synopsis "Search emails with Emacs Notmuch and Helm")
20855 (description
20856 "This package can be used to search emails in Emacs, searching result
20857 displays as you type thanks to Helm, though @command{notmuch-search} does the
20858 real search.")
20859 (license license:gpl3+)))
20860
20861 (define-public emacs-elmacro
20862 (let ((commit "89b9b0feabafd01fee48111d67131c4c9b5fed9a"))
20863 (package
20864 (name "emacs-elmacro")
20865 (version (git-version "1.1.0" "1" commit))
20866 (home-page "https://github.com/Silex/elmacro")
20867 (source (origin
20868 (method git-fetch)
20869 (uri (git-reference
20870 (url home-page)
20871 (commit commit)))
20872 (file-name (git-file-name name version))
20873 (sha256
20874 (base32
20875 "06wkzafh6vbcjf0m3sl253mgcq32p8cdv7vsfmyx51baa36938ha"))))
20876 (build-system emacs-build-system)
20877 (propagated-inputs
20878 `(("emacs-s" ,emacs-s)
20879 ("emacs-dash" ,emacs-dash)))
20880 (synopsis "Convert keyboard macros to Emacs Lisp")
20881 (description
20882 "This package displays keyboard macros or latest interactive commands
20883 as Emacs Lisp.")
20884 (license license:gpl3+))))
20885
20886 (define-public emacs-transient
20887 (let ((revision "1")
20888 (commit "a6e4cced303b3febd59412b24a97eaf1e855e6d7"))
20889 (package
20890 (name "emacs-transient")
20891 (version (git-version "0.2.0" revision commit))
20892 (source (origin
20893 (method git-fetch)
20894 (uri (git-reference
20895 (url "https://github.com/magit/transient")
20896 (commit commit)))
20897 (file-name (git-file-name name version))
20898 (sha256
20899 (base32
20900 "01xsw9sxr50valc2q590ngy3ra2ll01p39l9cbzvqqz6mxyymxmd"))))
20901 (build-system emacs-build-system)
20902 (arguments
20903 `(#:tests? #f ;no test suite
20904 #:phases
20905 (modify-phases %standard-phases
20906 (add-after 'unpack 'build-info-manual
20907 (lambda _
20908 (invoke "make" "info")
20909 ;; Move the info file to lisp so that it gets installed by the
20910 ;; emacs-build-system.
20911 (rename-file "docs/transient.info" "lisp/transient.info")
20912 #t))
20913 (add-after 'build-info-manual 'enter-lisp-directory
20914 (lambda _
20915 (chdir "lisp")
20916 #t)))))
20917 (native-inputs
20918 `(("texinfo" ,texinfo)))
20919 (propagated-inputs
20920 `(("dash" ,emacs-dash)))
20921 (home-page "https://magit.vc/manual/transient")
20922 (synopsis "Transient commands in Emacs")
20923 (description "Taking inspiration from prefix keys and prefix arguments
20924 in Emacs, Transient implements a similar abstraction involving a prefix
20925 command, infix arguments and suffix commands. We could call this abstraction
20926 a \"transient command\", but because it always involves at least two
20927 commands (a prefix and a suffix) we prefer to call it just a \"transient\".")
20928 (license license:gpl3+))))
20929
20930 (define-public emacs-forge
20931 (let ((commit "09bf8adc9c9afb492632e612f51f39e1cc15fca0"))
20932 (package
20933 (name "emacs-forge")
20934 (version (git-version "0.1.0" "4" commit))
20935 (source
20936 (origin
20937 (method git-fetch)
20938 (uri (git-reference
20939 (url "https://github.com/magit/forge")
20940 (commit commit)))
20941 (file-name (git-file-name name version))
20942 (sha256
20943 (base32
20944 "148h1rvmfmxyrfy2q5l0vzblr7lpsyw1si30hfwhzsj8fvj21qcr"))))
20945 (build-system emacs-build-system)
20946 (native-inputs
20947 `(("texinfo" ,texinfo)))
20948 (propagated-inputs
20949 `(("emacs-closql" ,emacs-closql)
20950 ("emacs-dash" ,emacs-dash)
20951 ("emacs-emacsql-sqlite" ,emacs-emacsql)
20952 ("emacs-ghub" ,emacs-ghub)
20953 ("emacs-let-alist" ,emacs-let-alist)
20954 ("emacs-magit" ,emacs-magit)
20955 ("emacs-markdown-mode" ,emacs-markdown-mode)
20956 ("emacs-transient" ,emacs-transient)))
20957 (arguments
20958 `(#:tests? #f ;no tests
20959 #:phases
20960 (modify-phases %standard-phases
20961 (add-after 'unpack 'build-info-manual
20962 (lambda _
20963 (invoke "make" "info")
20964 ;; Move the info file to lisp so that it gets installed by the
20965 ;; emacs-build-system.
20966 (rename-file "docs/forge.info" "lisp/forge.info")))
20967 (add-after 'build-info-manual 'chdir-lisp
20968 (lambda _
20969 (chdir "lisp")
20970 #t)))))
20971 (home-page "https://github.com/magit/forge/")
20972 (synopsis "Access Git forges from Magit")
20973 (description "Work with Git forges, such as Github and Gitlab, from the
20974 comfort of Magit and the rest of Emacs.")
20975 (license license:gpl3+))))
20976
20977 (define-public emacs-matcha
20978 (let ((commit "c7df5cf5cdac9ae369e241342389ccda0205eab9"))
20979 (package
20980 (name "emacs-matcha")
20981 (version (git-version "0.0.1" "1" commit)) ;no upstream release
20982 (source (origin
20983 (method git-fetch)
20984 (uri (git-reference
20985 (url "https://github.com/jojojames/matcha")
20986 (commit commit)))
20987 (file-name (git-file-name name version))
20988 (sha256
20989 (base32
20990 "1lfnh1glg6al677m7ci0x8g5wjdhjxlfl3nv1f1ppsw4dpnwsj9b"))))
20991 (propagated-inputs
20992 `(("emacs-hydra" ,emacs-hydra)
20993 ("emacs-transient" ,emacs-transient)))
20994 (build-system emacs-build-system)
20995 (home-page "https://github.com/jojojames/matcha/")
20996 (synopsis "Collection of hydras with a generic interface to launch them")
20997 (description "Matcha provides a collection of transients for various
20998 packages with a consistent way to use them.")
20999 (license license:gpl3+))))
21000
21001 (define-public emacs-undo-propose-el
21002 (let ((commit "f80baee566807d733fbacbab08a897bcd62579c3")
21003 (revision "3"))
21004 (package
21005 (name "emacs-undo-propose-el")
21006 (version (git-version "3.0.0" revision commit))
21007 (source
21008 (origin
21009 (method git-fetch)
21010 (uri (git-reference
21011 (url "https://github.com/jackkamm/undo-propose-el")
21012 (commit commit)))
21013 (file-name (git-file-name name version))
21014 (sha256
21015 (base32
21016 "00rqz63bhh66q78l646q3w16gydygj8h4d8np0dpbifgzciak90b"))))
21017 (build-system emacs-build-system)
21018 (arguments
21019 `(#:tests? #t
21020 #:test-command '("make" "test")))
21021 (home-page "https://github.com/jackkamm/undo-propose-el")
21022 (synopsis "Simple and safe navigation of @code{undo} history")
21023 (description "This package permits navigation of @code{undo} history in a
21024 temporary buffer, which is read-only save for @code{undo} commands, and
21025 subsequent committal of a chain of @code{undo} commands as a single edit in
21026 the @code{undo} history.")
21027 (license license:gpl3+))))
21028
21029 (define-public emacs-elisp-docstring-mode
21030 (let ((commit "f512e509dd690f65133e55563ebbfd2dede5034f")
21031 (version "0.0.1")
21032 (revision "1"))
21033 (package
21034 (name "emacs-elisp-docstring-mode")
21035 (version (git-version version revision commit))
21036 (source
21037 (origin
21038 (method git-fetch)
21039 (uri (git-reference
21040 (url "https://github.com/Fuco1/elisp-docstring-mode")
21041 (commit commit)))
21042 (file-name (git-file-name name version))
21043 (sha256
21044 (base32
21045 "0al8m75p359h4n82rf0dsl22qfdg9cwwywn5pn7x6gb96c7qrqaa"))))
21046 (build-system emacs-build-system)
21047 (home-page "https://github.com/Fuco1/elisp-docstring-mode")
21048 (synopsis "Major mode for editing Emacs Lisp docstrings")
21049 (description "This package provides font lock and automatic escaping and
21050 unescaping of quotes.")
21051 (license license:gpl3+))))
21052
21053 (define-public emacs-vimrc-mode
21054 (let ((commit "13bc150a870d5d4a95f1111e4740e2b22813c30e")
21055 (version "0.3.1")
21056 (revision "1"))
21057 (package
21058 (name "emacs-vimrc-mode")
21059 (version (git-version version revision commit))
21060 (source
21061 (origin
21062 (method git-fetch)
21063 (uri (git-reference
21064 (url "https://github.com/mcandre/vimrc-mode")
21065 (commit commit)))
21066 (file-name (git-file-name name version))
21067 (sha256
21068 (base32
21069 "0026dqs3hwygk2k2xfra90w5sfnxrfj7l69jz7sq5glavbf340pk"))))
21070 (build-system emacs-build-system)
21071 (home-page "https://github.com/mcandre/vimrc-mode")
21072 (synopsis "Major mode for Vimscript")
21073 (description "This package provides font lock and @code{beginning-} and
21074 @code{end-of-defun} functions for Vimscript files.")
21075 (license license:gpl3+))))
21076
21077 (define-public emacs-flycheck-elm
21078 (let ((revision "0")
21079 (commit "1b60050efd4729bfba548f3e5adbcb58436667cb"))
21080 (package
21081 (name "emacs-flycheck-elm")
21082 (version (git-version "0" revision commit))
21083 (source
21084 (origin
21085 (method git-fetch)
21086 (uri
21087 (git-reference
21088 (url "https://github.com/bsermons/flycheck-elm")
21089 (commit commit)))
21090 (file-name (git-file-name name version))
21091 (sha256
21092 (base32 "1kjms9d2c98ffd1qxs879qhg0n4jzic0r5kni9y4gz3v09ww8zms"))))
21093 (build-system emacs-build-system)
21094 (propagated-inputs
21095 `(("emacs-flycheck" ,emacs-flycheck)
21096 ("emacs-let-alist" ,emacs-let-alist)))
21097 (home-page "https://github.com/bsermons/flycheck-elm")
21098 (synopsis "Flycheck support for the Elm language")
21099 (description "Flycheck Elm adds Flycheck support for Elm language.")
21100 (license license:gpl3+))))
21101
21102 (define-public emacs-flycheck-haskell
21103 (let ((commit "32ddff87165a7d3a35e7318bee997b5b4bd41278")
21104 (revision "2"))
21105 (package
21106 (name "emacs-flycheck-haskell")
21107 (version (git-version "0.8" revision commit))
21108 (source
21109 (origin
21110 (method git-fetch)
21111 (uri (git-reference
21112 (url "https://github.com/flycheck/flycheck-haskell")
21113 (commit commit)))
21114 (file-name (git-file-name name version))
21115 (sha256
21116 (base32
21117 "10pgsbagq6qj4mshq5sypv0q0khck92b30sc793b4g1pfpsxvgjn"))))
21118 (build-system emacs-build-system)
21119 (propagated-inputs
21120 `(("emacs-dash" ,emacs-dash)
21121 ("emacs-flycheck" ,emacs-flycheck)
21122 ("emacs-haskell-mode" ,emacs-haskell-mode)
21123 ("emacs-let-alist" ,emacs-let-alist)))
21124 (arguments
21125 `(#:include '("\\.el$" "\\.hs$")))
21126 (home-page "https://github.com/flycheck/flycheck-haskell")
21127 (synopsis "Flycheck for Haskell")
21128 (description "This package configures syntax-checking for Haskell
21129 buffers.")
21130 (license license:gpl3+))))
21131
21132 (define-public emacs-js2-refactor-el
21133 (let ((commit "d4c40b5fc86d3edd7c6a7d83ac86483ee1cb7a28")
21134 (revision "2"))
21135 (package
21136 (name "emacs-js2-refactor-el")
21137 (version (git-version "0.9.0" revision commit))
21138 (source
21139 (origin
21140 (method git-fetch)
21141 (uri (git-reference
21142 (url "https://github.com/magnars/js2-refactor.el")
21143 (commit commit)))
21144 (file-name (git-file-name name version))
21145 (sha256
21146 (base32
21147 "08b25y3raz0p98zxk9xdd8nj9shqd6mzrqhbq1gg4cwsmi7h7ly1"))))
21148 (build-system emacs-build-system)
21149 (propagated-inputs
21150 `(("emacs-dash" ,emacs-dash)
21151 ("emacs-s" ,emacs-s)
21152 ("emacs-js2-mode" ,emacs-js2-mode)
21153 ("emacs-yasnippet" ,emacs-yasnippet)
21154 ("emacs-multiple-cursors" ,emacs-multiple-cursors)))
21155 (native-inputs
21156 `(("emacs-buttercup" ,emacs-buttercup)
21157 ("emacs-espuds" ,emacs-espuds)))
21158 (home-page "https://github.com/magnars/js2-refactor.el")
21159 (synopsis "JavaScript refactoring in Emacs")
21160 (description "This package provides various refactoring functions for
21161 JavaScript.")
21162 (license license:gpl3+))))
21163
21164 (define-public emacs-prettier
21165 (let ((commit "e9b73e81d3e1642aec682195f127a42dfb0b5774")
21166 (version "0.1.0")
21167 (revision "1"))
21168 (package
21169 (name "emacs-prettier")
21170 (version (git-version version revision commit))
21171 (source
21172 (origin
21173 (method git-fetch)
21174 (uri (git-reference
21175 (url "https://github.com/prettier/prettier-emacs")
21176 (commit commit)))
21177 (file-name (git-file-name name version))
21178 (sha256
21179 (base32
21180 "0hj4fv3fgc60i6jrsx4a81s5c9fsxxafhhs3q2q1dypsscjci9ph"))))
21181 (build-system emacs-build-system)
21182 (home-page "https://github.com/prettier/prettier-emacs")
21183 (synopsis "Automatic formatting of JavaScript code")
21184 (description "This package integrates Prettier with Emacs, and
21185 provides a minor mode that autoformats the buffer upon saving.")
21186 (license license:expat))))
21187
21188 (define-public emacs-fish-mode
21189 (package
21190 (name "emacs-fish-mode")
21191 (version "0.1.4")
21192 (source
21193 (origin
21194 (method git-fetch)
21195 (uri (git-reference
21196 (url "https://github.com/wwwjfy/emacs-fish")
21197 (commit version)))
21198 (file-name (git-file-name name version))
21199 (sha256
21200 (base32
21201 "0a74ghmjjrxfdhk4mvq6lar4w6l6lc4iilabs99smqr2fn5rsslq"))))
21202 (build-system emacs-build-system)
21203 (home-page "https://github.com/wwwjfy/emacs-fish")
21204 (synopsis "Major mode for Fish shell scripts")
21205 (description "This package provides syntax highlighting and indentation
21206 functions for Fish shell scripts.")
21207 (license license:gpl3+)))
21208
21209 (define-public emacs-eshell-up
21210 (let ((commit "9c100bae5c3020e8d9307e4332d3b64e7dc28519")
21211 (version "0.0.3")
21212 (revision "12"))
21213 (package
21214 (name "emacs-eshell-up")
21215 (version (git-version version revision commit))
21216 (source
21217 (origin
21218 (method git-fetch)
21219 (uri (git-reference
21220 (url "https://github.com/peterwvj/eshell-up")
21221 (commit commit)))
21222 (file-name (git-file-name name version))
21223 (sha256
21224 (base32
21225 "00zdbcncjabgj5mp47l1chymx5na18v2g4kj730dgmj3rnl3iz2q"))))
21226 (build-system emacs-build-system)
21227 (home-page "https://github.com/peterwvj/eshell-up")
21228 (synopsis "Quickly go to a parent directory in @code{Eshell}")
21229 (description "This package provides quick navigation to a specific
21230 parent directory using @code{Eshell}.")
21231 (license license:gpl3+))))
21232
21233 (define-public emacs-tco-el
21234 (let ((commit "482db5313f090b17ed22ccd856f0e141dc75afe6")
21235 (revision "1"))
21236 (package
21237 (name "emacs-tco-el")
21238 (version (git-version "0.3" revision commit))
21239 (source
21240 (origin
21241 (method git-fetch)
21242 (uri (git-reference
21243 (url "https://github.com/Wilfred/tco.el")
21244 (commit commit)))
21245 (file-name (git-file-name name version))
21246 (sha256
21247 (base32
21248 "1z7xkbrqznk6ni687qqknp8labcyhl8y6576hjfri89fn21385y9"))))
21249 (build-system emacs-build-system)
21250 (propagated-inputs
21251 `(("emacs-dash" ,emacs-dash)))
21252 (native-inputs
21253 `(("emacs-ert-runner" ,emacs-ert-runner)
21254 ("emacs-undercover" ,emacs-undercover)))
21255 (arguments
21256 `(#:tests? #t
21257 #:test-command '("ert-runner")))
21258 (home-page "https://github.com/Wilfred/tco.el")
21259 (synopsis "Tail-call optimization for Emacs Lisp")
21260 (description "This package provides tail-call optimization for Emacs
21261 Lisp functions that call themselves in tail position.")
21262 (license license:gpl3+))))
21263
21264 (define-public emacs-equake
21265 (let ((commit "7eddc025ee61b83029363e22219af228b8c20681")
21266 (revision "2"))
21267 (package
21268 (name "emacs-equake")
21269 (version (git-version "0.85" revision commit))
21270 (source
21271 (origin
21272 (method git-fetch)
21273 (uri (git-reference
21274 (url "https://gitlab.com/emacsomancer/equake/")
21275 (commit commit)))
21276 (file-name (git-file-name name version))
21277 (sha256
21278 (base32
21279 "1c55pbqak3d02sw6z1139baxzy401b90g0gxzcc3j6sgplz6sc6w"))))
21280 (build-system emacs-build-system)
21281 (propagated-inputs
21282 `(("emacs-dash" ,emacs-dash)
21283 ("emacs-tco-el" ,emacs-tco-el)))
21284 (home-page "https://gitlab.com/emacsomancer/equake/")
21285 (synopsis "Drop-down console for @code{Eshell} and terminal emulators")
21286 (description "This package provides a Quake-style drop-down console
21287 compatible with Emacs' shell modes.")
21288 (license license:gpl3+))))
21289
21290 (define-public emacs-vdiff
21291 ;; There is no proper tag, but the commit below matches the version bump.
21292 (let ((commit "007e44be19d068fd6b49874b6e9b8df8b1f552bd"))
21293 (package
21294 (name "emacs-vdiff")
21295 (version "0.2.4")
21296 (source
21297 (origin
21298 (method git-fetch)
21299 (uri (git-reference
21300 (url "https://github.com/justbur/emacs-vdiff")
21301 (commit commit)))
21302 (file-name (git-file-name name version))
21303 (sha256
21304 (base32 "197xrwph1llrzjgkhlvagiwdgfp68pb45w5afg89ndahpqc2725s"))))
21305 (build-system emacs-build-system)
21306 (propagated-inputs
21307 `(("emacs-hydra" ,emacs-hydra)))
21308 (arguments
21309 `(#:tests? #t
21310 #:test-command '("emacs" "-Q" "-batch" "-L" "."
21311 "-l" "vdiff-test.el"
21312 "-f" "ert-run-tests-batch-and-exit")))
21313 (home-page "https://github.com/justbur/emacs-vdiff/")
21314 (synopsis "Frontend for diffing based on vimdiff")
21315 (description
21316 "This package permits comparisons of two or three buffers based on diff
21317 output.")
21318 (license license:gpl3+))))
21319
21320 (define-public emacs-vdiff-magit
21321 ;; Need to use a more recent commit than the latest release version because
21322 ;; of Magit and Transient
21323 (let ((commit "b100d126c69e5c26a61ae05aa1778bcc4302b597")
21324 (version "0.3.2")
21325 (revision "8"))
21326 (package
21327 (name "emacs-vdiff-magit")
21328 (version (git-version version revision commit))
21329 (source
21330 (origin
21331 (method git-fetch)
21332 (uri (git-reference
21333 (url "https://github.com/justbur/emacs-vdiff-magit/")
21334 (commit commit)))
21335 (file-name (git-file-name name version))
21336 (sha256
21337 (base32
21338 "16cjmrzflf2i1w01973sl944xrfanakba8sb4dpwi79d92xp03xy"))))
21339 (build-system emacs-build-system)
21340 (propagated-inputs
21341 `(("emacs-vdiff" ,emacs-vdiff)
21342 ("emacs-magit" ,emacs-magit)
21343 ("emacs-transient" ,emacs-transient)))
21344 (home-page "https://github.com/justbur/emacs-vdiff-magit/")
21345 (synopsis "Frontend for diffing based on vimdiff")
21346 (description "This package permits comparisons of two or three buffers
21347 based on diff output.")
21348 (license license:gpl3+))))
21349
21350 (define-public emacs-all-the-icons-dired
21351 (let ((commit "980b7747d6c4a7992a1ec56afad908956db0a519")
21352 (version "1.0")
21353 (revision "1"))
21354 (package
21355 (name "emacs-all-the-icons-dired")
21356 (version (git-version version revision commit))
21357 (source
21358 (origin
21359 (method git-fetch)
21360 (uri (git-reference
21361 (url "https://github.com/jtbm37/all-the-icons-dired/")
21362 (commit commit)))
21363 (file-name (git-file-name name version))
21364 (sha256
21365 (base32
21366 "1pvbgyxfj4j205nj1r02045f1y4wgavdsk7f45hxkkhms1rj8jyy"))))
21367 (build-system emacs-build-system)
21368 (propagated-inputs
21369 `(("emacs-all-the-icons" ,emacs-all-the-icons)))
21370 (home-page "https://github.com/jtbm37/all-the-icons-dired/")
21371 (synopsis "Show icons for each file in @code{dired-mode}")
21372 (description "This package allows icons from @file{all-the-icons.el} to
21373 be used in @code{dired-mode}.")
21374 (license license:gpl3+))))
21375
21376 (define-public emacs-exwm-edit
21377 (let ((commit "e1291e311840f1049106fe98cec032a1c75efd2b")
21378 (version "0.0.1")
21379 (revision "3"))
21380 (package
21381 (name "emacs-exwm-edit")
21382 (version (git-version version revision commit))
21383 (source
21384 (origin
21385 (method git-fetch)
21386 (uri (git-reference
21387 (url "https://github.com/agzam/exwm-edit/")
21388 (commit commit)))
21389 (file-name (git-file-name name version))
21390 (sha256
21391 (base32
21392 "031cb8fvv5n30djr9lpl6vz3rl15zykfvjlgkjc8l33a3l5mw8j0"))))
21393 (build-system emacs-build-system)
21394 (propagated-inputs
21395 `(("emacs-exwm" ,emacs-exwm)))
21396 (home-page "https://github.com/agzam/exwm-edit/")
21397 (synopsis "Open temp buffers for editing text from EXWM buffers")
21398 (description "This package facilitates editing text from EXWM buffers by
21399 generating a temp buffer in which any useful Emacs utilities and modes can be
21400 invoked.")
21401 (license license:gpl3+))))
21402
21403 (define-public emacs-ert-async
21404 (package
21405 (name "emacs-ert-async")
21406 (version "0.1.2")
21407 (source
21408 (origin
21409 (method git-fetch)
21410 (uri (git-reference
21411 (url "https://github.com/rejeep/ert-async.el")
21412 (commit (string-append "v" version))))
21413 (file-name (git-file-name name version))
21414 (sha256
21415 (base32
21416 "0hn9i405nfhjd1h9vnwj43nxbbz00khrwkjq0acfyxjaz1shfac9"))))
21417 (build-system emacs-build-system)
21418 (home-page "https://github.com/rejeep/ert-async.el")
21419 (synopsis "Async support for ERT")
21420 (description "This package allows ERT to work with asynchronous tests.")
21421 (license license:gpl3+)))
21422
21423 (define-public emacs-prodigy-el
21424 (let ((commit "0a12eec1f001a4eef16b2c0c524f02f2647a4ff1")
21425 (revision "2"))
21426 (package
21427 (name "emacs-prodigy-el")
21428 (version (git-version "0.7.0" revision commit))
21429 (source
21430 (origin
21431 (method git-fetch)
21432 (uri (git-reference
21433 (url "https://github.com/rejeep/prodigy.el")
21434 (commit commit)))
21435 (file-name (git-file-name name version))
21436 (sha256
21437 (base32
21438 "02kysq57kqzg0zkhaf302ada9cp9spgp71z8vbdq4c7dl6x75h4g"))))
21439 (build-system emacs-build-system)
21440 (propagated-inputs
21441 `(("emacs-dash" ,emacs-dash)
21442 ("emacs-s" ,emacs-s)
21443 ("emacs-f" ,emacs-f)))
21444 (native-inputs
21445 `(("emacs-el-mock" ,emacs-el-mock)
21446 ("emacs-ert-async" ,emacs-ert-async)))
21447 (home-page "https://github.com/rejeep/prodigy.el")
21448 (synopsis "Manage external services from within Emacs")
21449 (description "This package provides a GUI for defining and monitoring services.")
21450 (license license:gpl3+))))
21451
21452 (define-public emacs-web-server
21453 (package
21454 (name "emacs-web-server")
21455 (version "0.1.2")
21456 (source
21457 (origin
21458 (method url-fetch)
21459 (uri (string-append "https://elpa.gnu.org/packages/"
21460 "web-server-" version ".tar"))
21461 (sha256
21462 (base32 "10lcsl4dg2yr9zjd99gq9jz150wvvh6r5y9pd88l8y9vz16f2lim"))))
21463 (build-system emacs-build-system)
21464 (home-page "https://github.com/eschulte/emacs-web-server/")
21465 (synopsis "Web server with handlers in Emacs Lisp")
21466 (description "This package supports HTTP GET and POST requests with
21467 url-encoded parameters, as well as web sockets.")
21468 (license license:gpl3+)))
21469
21470 (define-public emacs-markdown-preview-mode
21471 (package
21472 (name "emacs-markdown-preview-mode")
21473 (version "0.9.2")
21474 (source
21475 (origin
21476 (method git-fetch)
21477 (uri (git-reference
21478 (url "https://github.com/ancane/markdown-preview-mode")
21479 (commit (string-append "v" version))))
21480 (file-name (git-file-name name version))
21481 (sha256
21482 (base32
21483 "1d1id99gagymvzdfa1mwqh8y3szm8ii47rpijkfi1qnifjg5jaq9"))))
21484 (build-system emacs-build-system)
21485 (propagated-inputs
21486 `(("emacs-markdown-mode" ,emacs-markdown-mode)
21487 ("emacs-websocket" ,emacs-websocket)
21488 ("emacs-web-server" ,emacs-web-server)))
21489 (arguments '(#:include '("\\.el$" "\\.html$")))
21490 (home-page "https://github.com/ancane/markdown-preview-mode")
21491 (synopsis "Preview Markdown files")
21492 (description "This package provides a minor mode for preview of Markdown
21493 files, and sends rendered Markdown to a web browser.")
21494 (license license:gpl3+)))
21495
21496 (define-public emacs-dotenv-mode
21497 (package
21498 (name "emacs-dotenv-mode")
21499 (version "0.2.4")
21500 (source
21501 (origin
21502 (method git-fetch)
21503 (uri (git-reference
21504 (url "https://github.com/preetpalS/emacs-dotenv-mode")
21505 (commit (string-append "v" version))))
21506 (file-name (git-file-name name version))
21507 (sha256
21508 (base32
21509 "1fplkhxnsgdrg10iqsmw162zny2idz4vvv35spsb9j0hsk8imclc"))))
21510 (build-system emacs-build-system)
21511 (home-page "https://github.com/preetpalS/emacs-dotenv-mode")
21512 (synopsis "Major mode for @file{.env} files")
21513 (description "This package provides syntax highlighting for @file{.env}
21514 files.")
21515 (license license:gpl3+)))
21516
21517 (define-public emacs-add-node-modules-path
21518 (let ((commit "f31e69ccb681f882aebb806ce6e9478e3ac39708")
21519 (version "1.2.0")
21520 (revision "10"))
21521 (package
21522 (name "emacs-add-node-modules-path")
21523 (version (git-version version revision commit))
21524 (source
21525 (origin
21526 (method git-fetch)
21527 (uri (git-reference
21528 (url "https://github.com/codesuki/add-node-modules-path")
21529 (commit commit)))
21530 (file-name (git-file-name name version))
21531 (sha256
21532 (base32
21533 "0p106bqmvdr8by5iv02bshm339qbrjcch2d15mrm4h3nav03v306"))))
21534 (build-system emacs-build-system)
21535 (home-page "https://github.com/codesuki/add-node-modules-path")
21536 (synopsis "Add @file{node_modules} to the buffer-local @file{exec-path}")
21537 (description "This package searches the parent directories of the
21538 current file for the project's @file{node_modules/.bin/} directory, allowing
21539 Emacs to find project-specific installations of packages.")
21540 (license license:expat))))
21541
21542 (define-public emacs-flow-minor-mode
21543 (let ((commit "d1b32a7dd0d33c6a00a106da5f4b2323602cbd3e")
21544 (version "0.3")
21545 (revision "4"))
21546 (package
21547 (name "emacs-flow-minor-mode")
21548 (version (git-version version revision commit))
21549 (source
21550 (origin
21551 (method git-fetch)
21552 (uri (git-reference
21553 (url "https://github.com/an-sh/flow-minor-mode")
21554 (commit commit)))
21555 (file-name (git-file-name name version))
21556 (sha256
21557 (base32
21558 "169r4ib9qg9q6fm3p0p23qs1qx4pa9pg1qvyq4ysr85i7kwygppl"))))
21559 (build-system emacs-build-system)
21560 (home-page "https://github.com/an-sh/flow-minor-mode")
21561 (synopsis "Minor mode for JavaScript Flow files")
21562 (description "This package integrates Flow with Emacs, allowing for
21563 definition-jumping and type-checking on demand.")
21564 (license license:bsd-3))))
21565
21566 (define-public emacs-rjsx-mode
21567 (let ((commit "0e7fa6b4facdec4f85a7a8865bdf59dfd57217b5")
21568 (revision "2"))
21569 (package
21570 (name "emacs-rjsx-mode")
21571 (version (git-version "0.4" revision commit))
21572 (source
21573 (origin
21574 (method git-fetch)
21575 (uri (git-reference
21576 (url "https://github.com/felipeochoa/rjsx-mode")
21577 (commit commit)))
21578 (file-name (git-file-name name version))
21579 (sha256
21580 (base32
21581 "0s0871sx3ch09kgvbcp9na4zdrfrda62xjq8m9knbq5vnj8q8qpi"))))
21582 (build-system emacs-build-system)
21583 (propagated-inputs
21584 `(("emacs-js2-mode" ,emacs-js2-mode)))
21585 (arguments
21586 `(#:tests? #t
21587 #:test-command '("make" "test")))
21588 (home-page "https://github.com/felipeochoa/rjsx-mode")
21589 (synopsis "Major mode for JSX files")
21590 (description "This package extends the parser of @code{js2-mode} to
21591 support JSX syntax.")
21592 (license license:expat))))
21593
21594 (define-public emacs-origami-el
21595 (let ((commit "1f38085c8f9af7842765ed63f7d6dfe4dab59366")
21596 (version "1.0")
21597 (revision "1"))
21598 (package
21599 (name "emacs-origami-el")
21600 (version (git-version version revision commit))
21601 (source
21602 (origin
21603 (method git-fetch)
21604 (uri (git-reference
21605 (url "https://github.com/gregsexton/origami.el")
21606 (commit commit)))
21607 (file-name (git-file-name name version))
21608 (sha256
21609 (base32
21610 "0ha1qsz2p36pqa0sa2sp83lspbgx5lr7930qxnwd585liajzdd9x"))))
21611 (build-system emacs-build-system)
21612 (propagated-inputs
21613 `(("emacs-dash" ,emacs-dash)
21614 ("emacs-s" ,emacs-s)))
21615 (home-page "https://github.com/gregsexton/origami.el")
21616 (synopsis "Flexible text-folding")
21617 (description "This package provides a minor mode for collapsing and
21618 expanding regions of text without modifying the actual contents.")
21619 (license license:expat))))
21620
21621 (define-public emacs-peep-dired
21622 (let ((commit "c88a9a3050197840edfe145f11e0bb9488de32f4")
21623 (version "0")
21624 (revision "1"))
21625 (package
21626 (name "emacs-peep-dired")
21627 (version (git-version version revision commit))
21628 (source
21629 (origin
21630 (method git-fetch)
21631 (uri (git-reference
21632 (url "https://github.com/asok/peep-dired")
21633 (commit commit)))
21634 (file-name (git-file-name name version))
21635 (sha256
21636 (base32
21637 "1wy5qpnfri1gha2cnl6q20qar8dbl2mimpb43bnhmm2g3wgjyad6"))))
21638 (build-system emacs-build-system)
21639 (home-page "https://github.com/asok/peep-dired")
21640 (synopsis "Preview files in another window")
21641 (description "This package provides a minor mode that allows files to be
21642 previewed by scrolling up and down within a @code{dired} buffer.")
21643 (license license:gpl3+))))
21644
21645 (define-public emacs-counsel-etags
21646 (package
21647 (name "emacs-counsel-etags")
21648 (version "1.9.11")
21649 (source
21650 (origin
21651 (method git-fetch)
21652 (uri (git-reference
21653 (url "https://github.com/redguardtoo/counsel-etags")
21654 (commit version)))
21655 (file-name (git-file-name name version))
21656 (sha256
21657 (base32 "0h0br41vkrx9l7bqr55bafqd715drxxwm41qif6iffhgdpvf69ym"))))
21658 (build-system emacs-build-system)
21659 (propagated-inputs
21660 `(("emacs-counsel" ,emacs-counsel)))
21661 (arguments
21662 `(#:tests? #t
21663 #:test-command '("make" "test")))
21664 (home-page "https://github.com/redguardtoo/counsel-etags")
21665 (synopsis "Fast @code{Ctags}/@code{Etags} solution with @code{ivy-mode}")
21666 (description "This package uses @code{ivy-mode} to facilitate navigating
21667 and searching through @code{Ctags} files.")
21668 (license license:gpl3+)))
21669
21670 (define-public emacs-ivy-clipmenu
21671 (let ((commit "d2071f2c5043a05d610cd1952e84176ca78c31dc"))
21672 (package
21673 (name "emacs-ivy-clipmenu")
21674 (version (git-version "0.0.1" "1" commit))
21675 (source (origin
21676 (method git-fetch)
21677 (uri (git-reference
21678 (url "https://github.com/wpcarro/ivy-clipmenu.el")
21679 (commit commit)))
21680 (file-name (git-file-name name version))
21681 (sha256
21682 (base32
21683 "0npd8glzk5z4n7y9mzbsbzi0cf3by19fqcki052jr3dga363lds7"))))
21684 (propagated-inputs
21685 `(("emacs-f" ,emacs-f)
21686 ("emacs-ivy" ,emacs-ivy)))
21687 (build-system emacs-build-system)
21688 (home-page "https://github.com/wpcarro/ivy-clipmenu.el")
21689 (synopsis "Ivy integration with clipmenu")
21690 (description "Ivy integration with the clipboard manager, clipmenu.")
21691 (license license:expat))))
21692
21693 (define-public emacs-org-download
21694 (let ((commit "42ac361ef5502017e6fc1bceb00333eba90402f4")
21695 (revision "3"))
21696 (package
21697 (name "emacs-org-download")
21698 (version (git-version "0.1.0" revision commit))
21699 (source (origin
21700 (method git-fetch)
21701 (uri (git-reference
21702 (url "https://github.com/abo-abo/org-download")
21703 (commit commit)))
21704 (file-name (git-file-name name version))
21705 (sha256
21706 (base32 "0cg4y7hy7xbq4vrbdicfzgvyaf3cjbx2zkqd4yl0y2garz71j99l"))))
21707 (build-system emacs-build-system)
21708 (propagated-inputs
21709 `(("emacs-org" ,emacs-org)
21710 ("emacs-async" ,emacs-async)))
21711 (home-page "https://github.com/abo-abo/org-download")
21712 (synopsis "Facilitate moving images")
21713 (description "This package provides utilities for managing image files
21714 copied into @code{org-mode} buffers.")
21715 (license license:gpl3+))))
21716
21717 (define-public emacs-dash-docs
21718 (let ((commit "111fd9b97001f1ad887b45e5308a14ddd68ce70a")
21719 (revision "1"))
21720 (package
21721 (name "emacs-dash-docs")
21722 (version (git-version "1.4.0" revision commit))
21723 (source
21724 (origin
21725 (method git-fetch)
21726 (uri (git-reference
21727 (url "https://github.com/dash-docs-el/dash-docs")
21728 (commit commit)))
21729 (file-name (git-file-name name version))
21730 (sha256
21731 (base32
21732 "0sckb7z0ylflva212bns7iq9mfnffgjghi0qspsbfwra35zb9xng"))))
21733 (build-system emacs-build-system)
21734 (propagated-inputs
21735 `(("emacs-async" ,emacs-async)))
21736 (native-inputs
21737 `(("emacs-undercover" ,emacs-undercover)
21738 ("emacs-ert-runner" ,emacs-ert-runner)))
21739 (arguments
21740 `(#:tests? #t
21741 #:test-command '("ert-runner")
21742 #:phases
21743 ;; this test requires network access, so remove it
21744 (modify-phases %standard-phases
21745 (add-before 'check 'make-tests-writable
21746 (lambda _
21747 (make-file-writable "test/dash-docs-test.el")
21748 #t))
21749 (add-before 'check 'delete-test
21750 (lambda _
21751 (emacs-batch-edit-file "test/dash-docs-test.el"
21752 `(progn (progn
21753 (goto-char (point-min))
21754 (re-search-forward "ert-deftest dash-docs-official-docsets-test")
21755 (beginning-of-line)
21756 (kill-sexp))
21757 (basic-save-buffer)))
21758 #t)))))
21759 (home-page "https://github.com/dash-docs-el/dash-docs")
21760 (synopsis "Offline documentation browser for APIs using Dash docsets")
21761 (description "This package exposes functionality to work with Dash docsets.")
21762 (license license:gpl3+))))
21763
21764 (define-public emacs-helm-dash
21765 (let ((commit "7f853bd34da666f0e9a883011c80f451b06f6c59")
21766 (revision "2"))
21767 (package
21768 (name "emacs-helm-dash")
21769 (version (git-version "1.3.0" revision commit))
21770 (source
21771 (origin
21772 (method git-fetch)
21773 (uri (git-reference
21774 (url "https://github.com/areina/helm-dash")
21775 (commit commit)))
21776 (file-name (git-file-name name version))
21777 (sha256
21778 (base32
21779 "0r192vzry1212ihabg9pgw9xar8zdgnbgy0vsgvfm8s5wj6ny7jp"))))
21780 (build-system emacs-build-system)
21781 (propagated-inputs
21782 `(("emacs-helm" ,emacs-helm)
21783 ("emacs-dash-docs" ,emacs-dash-docs)))
21784 (home-page "https://github.com/areina/helm-dash")
21785 (synopsis "Offline documentation browser for APIs using Dash docsets")
21786 (description "This package uses Helm to install and navigate through
21787 Dash docsets.")
21788 (license license:gpl3+))))
21789
21790 (define-public emacs-counsel-dash
21791 (let ((commit "370d5f6f14b5294d0eb717f7b2a6a8e93df1ed24")
21792 (revision "4"))
21793 (package
21794 (name "emacs-counsel-dash")
21795 (version (git-version "0.1.3" revision commit))
21796 (source
21797 (origin
21798 (method git-fetch)
21799 (uri (git-reference
21800 (url "https://github.com/dash-docs-el/counsel-dash")
21801 (commit commit)))
21802 (file-name (git-file-name name version))
21803 (sha256
21804 (base32 "1fn38vbz46ijarjvhgw7iy7dj9s2a2miy95fyy9f8b5sj8nrdfvz"))))
21805 (build-system emacs-build-system)
21806 (propagated-inputs
21807 `(("emacs-counsel" ,emacs-counsel)
21808 ("emacs-dash-docs" ,emacs-dash-docs)))
21809 (home-page "https://github.com/dash-docs-el/counsel-dash")
21810 (synopsis "Offline documentation browser for APIs using Dash docsets")
21811 (description "This package uses @code{ivy-mode} to install and navigate
21812 through Dash docsets.")
21813 (license license:expat))))
21814
21815 (define-public emacs-calibredb
21816 (package
21817 (name "emacs-calibredb")
21818 (version "2.7.0")
21819 (source
21820 (origin
21821 (method git-fetch)
21822 (uri (git-reference
21823 (url "https://github.com/chenyanming/calibredb.el")
21824 (commit version)))
21825 (file-name (git-file-name name version))
21826 (sha256
21827 (base32 "1w3kz9iny72gk54jdafz8sy5sv6hnpm3rw4fn1r8aznx4p00f9dy"))))
21828 (build-system emacs-build-system)
21829 (propagated-inputs
21830 `(("emacs-dash" ,emacs-dash)
21831 ("emacs-s" ,emacs-s)
21832 ("emacs-transient" ,emacs-transient)))
21833 (home-page "https://github.com/chenyanming/calibredb.el")
21834 (synopsis "Yet another calibre client for Emacs")
21835 (description "This package integrates calibre into Emacs.
21836 @enumerate
21837 @item Powerful ebook dashboard.
21838 @item Manage ebooks, actually not only ebooks!
21839 @item Manage Ebook libraries.
21840 @item Another bookmarks solution, by setting the tags and comments.
21841 @item Quick search, filter, make actions on items with ivy and helm.
21842 @item Org-ref support.
21843 @end enumerate")
21844 (license license:gpl3)))
21845
21846 (define-public emacs-el-patch
21847 (package
21848 (name "emacs-el-patch")
21849 (version "2.2.3")
21850 (source
21851 (origin
21852 (method git-fetch)
21853 (uri (git-reference
21854 (url "https://github.com/raxod502/el-patch")
21855 (commit version)))
21856 (file-name (git-file-name name version))
21857 (sha256
21858 (base32
21859 "18djslz177q6q33y82zmg2v6n9236a76kiqfvxdk4vbqzjbq82f7"))))
21860 (build-system emacs-build-system)
21861 (home-page "https://github.com/raxod502/el-patch")
21862 (synopsis "Future-proof your Emacs customizations")
21863 (description "This package allows for an alternate definition of an Elisp
21864 function to be specified and for any differences from the original definition
21865 to be examined using Ediff.")
21866 (license license:expat)))
21867
21868 (define-public emacs-info-plus
21869 (let ((commit "4a6b93c170169594e1e8ea60cd799a1a88a969da")
21870 (revision "2"))
21871 (package
21872 (name "emacs-info-plus")
21873 (version (git-version "0" revision commit))
21874 (source
21875 (origin
21876 (method git-fetch)
21877 (uri (git-reference
21878 (url "https://github.com/emacsmirror/info-plus")
21879 (commit commit)))
21880 (file-name (git-file-name name version))
21881 (sha256
21882 (base32
21883 "1xzmx7m1qbl3b1x6yq1db1a108xqaa64ljfv1hdw763zmy4kc6m0"))))
21884 (build-system emacs-build-system)
21885 (home-page "https://github.com/emacsmirror/info-plus")
21886 (synopsis "Extensions to @file{info.el}")
21887 (description "This package extends Emacs' @file{info.el} by allowing
21888 outline-enabled table of contents, additional metadata association for Info
21889 nodes, and more.")
21890 (license license:gpl2+))))
21891
21892 (define-public emacs-eval-sexp-fu-el
21893 (package
21894 (name "emacs-eval-sexp-fu-el")
21895 (version "0.5.0")
21896 (source
21897 (origin
21898 (method git-fetch)
21899 (uri (git-reference
21900 (url "https://github.com/hchbaw/eval-sexp-fu.el")
21901 (commit (string-append "v" version))))
21902 (file-name (git-file-name name version))
21903 (sha256
21904 (base32
21905 "01mpnpgmlnfbi2yw9dxz5iw72mw3lk223bj172i4fnx3xdrrxbij"))))
21906 (build-system emacs-build-system)
21907 (home-page "https://github.com/hchbaw/eval-sexp-fu.el")
21908 (synopsis "Enhancements for evaluating s-expressions")
21909 (description "This package provides provides variants of
21910 @code{eval-last-sexp} that work on the containing list or s-expression, as
21911 well as an option for visually flashing evaluated s-expressions.")
21912 (license license:gpl3+)))
21913
21914 (define-public emacs-counsel-tramp
21915 (package
21916 (name "emacs-counsel-tramp")
21917 (version "0.7.5")
21918 (source
21919 (origin
21920 (method git-fetch)
21921 (uri (git-reference
21922 (url "https://github.com/masasam/emacs-counsel-tramp")
21923 (commit version)))
21924 (file-name (git-file-name name version))
21925 (sha256
21926 (base32 "18qlwyjqxap2qfbz14ma6yqp4p3v4q2y8idc355s4szjdd2as2lr"))))
21927 (build-system emacs-build-system)
21928 (propagated-inputs
21929 `(("emacs-counsel" ,emacs-counsel)))
21930 (home-page "https://github.com/masasam/emacs-counsel-tramp")
21931 (synopsis "Ivy interface for TRAMP")
21932 (description
21933 "This package allows @code{ivy-mode} to display and filter SSH servers.")
21934 (license license:gpl3+)))
21935
21936 (define-public emacs-tramp
21937 (package
21938 (name "emacs-tramp")
21939 (version "2.4.4.3")
21940 (source
21941 (origin
21942 (method url-fetch)
21943 (uri (string-append "https://elpa.gnu.org/packages/"
21944 "tramp-" version ".tar"))
21945 (sha256
21946 (base32 "0ms739a61d7jkq0lkf4dxql6kjrq435d6ds079bb1fpzglbnqkym"))))
21947 (build-system emacs-build-system)
21948 (arguments
21949 `(#:emacs ,emacs ;need D-Bus
21950 #:phases
21951 (modify-phases %standard-phases
21952 ;; All but one "/bin/" directory refer to remote
21953 ;; environments, which may not be Guix. Do not patch them
21954 ;; blindly. However, local encoding shell has to be patched.
21955 (replace 'patch-el-files
21956 (lambda* (#:key inputs #:allow-other-keys)
21957 (let ((sh (assoc-ref inputs "bash"))
21958 (file "tramp.el"))
21959 (emacs-substitute-variables file
21960 ("tramp-encoding-shell" (string-append sh "/bin/sh"))))
21961 #t)))))
21962 (inputs
21963 `(("bash" ,bash)))
21964 (home-page "https://savannah.gnu.org/projects/tramp")
21965 (synopsis "Remote file editing package for Emacs")
21966 (description
21967 "Tramp stands for ``Transparent Remote (file) Access, Multiple
21968 Protocol''. This package provides remote file editing, using
21969 a combination of @command{rsh} and @command{rcp} or other work-alike
21970 programs, such as @command{ssh} and @command{scp}.")
21971 (license license:gpl3+)))
21972
21973 (define-public emacs-tramp-auto-auth
21974 (let ((commit "f15a12dfab651aff60f4a9d70f868030a12344ac"))
21975 (package
21976 (name "emacs-tramp-auto-auth")
21977 (version (git-version "20191027" "1" commit))
21978 (source
21979 (origin
21980 (method git-fetch)
21981 (uri (git-reference
21982 (url "https://github.com/oitofelix/tramp-auto-auth")
21983 (commit commit)))
21984 (file-name (git-file-name name version))
21985 (sha256
21986 (base32
21987 "09nkjgwppjfgv04q0gv468qihgx4y3p39lpwbd6vbh3wgbccas9k"))))
21988 (build-system emacs-build-system)
21989 (home-page "https://github.com/oitofelix/tramp-auto-auth")
21990 (synopsis "TRAMP automatic authentication library")
21991 (description "This package provides @code{tramp-auto-auth-mode} Emacs
21992 global minor mode whose purpose is to automatically feed TRAMP sub-processes
21993 with passwords for paths matching regexps.")
21994 (license license:gpl3+))))
21995
21996 (define-public emacs-eacl
21997 (package
21998 (name "emacs-eacl")
21999 (version "2.0.1")
22000 (source
22001 (origin
22002 (method git-fetch)
22003 (uri (git-reference
22004 (url "https://github.com/redguardtoo/eacl")
22005 (commit version)))
22006 (file-name (git-file-name name version))
22007 (sha256
22008 (base32
22009 "0ksn11sm3g1ja5lpjz3hrzzw8b480mfcb3q589m52qjgvvn5iyfv"))))
22010 (build-system emacs-build-system)
22011 (propagated-inputs
22012 `(("emacs-ivy" ,emacs-ivy)))
22013 (home-page "https://github.com/redguardtoo/eacl")
22014 (synopsis "Auto-complete lines by using @code{grep} on a project")
22015 (description "This package provides auto-completion commands for single
22016 and multiple lines of code in a project.")
22017 (license license:gpl3+)))
22018
22019 (define-public emacs-semantic-refactor
22020 ;; The last release, 0.5, was made on 2015-07-26 and there have been 47
22021 ;; commits since then.
22022 (let ((commit "6f2c97d17fb70f4ca2112f5a2b99a8ec162004f5"))
22023 (package
22024 (name "emacs-semantic-refactor")
22025 (version (git-version "0.5" "1" commit))
22026 (source
22027 (origin
22028 (method git-fetch)
22029 (uri (git-reference
22030 (url "https://github.com/tuhdo/semantic-refactor")
22031 (commit commit)))
22032 (file-name (git-file-name name version))
22033 (sha256
22034 (base32
22035 "1lyz3zjkx2csh0xdy1zpx8s32qp1p3sig57mwi9xhgpqjyf0axmb"))))
22036 (build-system emacs-build-system)
22037 (home-page "https://github.com/tuhdo/semantic-refactor")
22038 (synopsis "Refactoring tool for C/C++ and Lisp dialects")
22039 (description "This package provides a refactoring tool based on the
22040 Emacs Semantic parser framework. For C and C++ it supports operations such as:
22041
22042 @enumerate
22043 @item Generating class implementations
22044 @item Generating function prototypes
22045 @item Converting functions to function pointers
22046 @item Moving semantic units
22047 @item etc...
22048 @end enumerate
22049
22050 For Lisp dialects like Clojure, ELisp, and Scheme, it supports operations such
22051 as:
22052
22053 @enumerate
22054 @item Formatting the whole buffer
22055 @item Converting sexpressions to one or multiple lines
22056 @item etc...
22057 @end enumerate\n")
22058 (license license:gpl3+))))
22059
22060 (define-public emacs-nhexl-mode
22061 (package
22062 (name "emacs-nhexl-mode")
22063 (version "1.5")
22064 (source
22065 (origin
22066 (method url-fetch)
22067 (uri (string-append "https://elpa.gnu.org/packages/"
22068 "nhexl-mode-" version ".el"))
22069 (sha256
22070 (base32 "0qvxfg7sv4iqyjxzaim6b4v9k5hav36qd4vkf9jwzw6p5fri8w8d"))))
22071 (build-system emacs-build-system)
22072 (home-page "https://elpa.gnu.org/packages/nhexl-mode.html")
22073 (synopsis "Minor mode to edit files via hex-dump format")
22074 (description
22075 "This package implements NHexl mode, a minor mode for editing files
22076 in hex dump format. The mode command is called @command{nhexl-mode}.
22077
22078 This minor mode implements similar functionality to @command{hexl-mode},
22079 but using a different implementation technique, which makes it
22080 usable as a \"plain\" minor mode. It works on any buffer, and does
22081 not mess with the undo log or with the major mode.
22082
22083 It also comes with:
22084
22085 @itemize
22086 @item @command{nhexl-nibble-edit-mode}: a \"nibble editor\" minor mode, where
22087 the cursor pretends to advance by nibbles (4-bit) and the self-insertion keys
22088 (which only work for hex-digits) will only modify the nibble under point.
22089 @item @command{nhexl-overwrite-only-mode}: a minor mode to try and avoid
22090 moving text. In this minor mode, not only self-inserting keys overwrite
22091 existing text, but commands like `yank' and @command{kill-region} as well.
22092 @item It overrides @code{C-u} to use hexadecimal, so you can do @code{C-u a 4
22093 C-f} to advance by #xa4 characters.
22094 @end itemize")
22095 (license license:gpl3+)))
22096
22097 (define-public emacs-helm-wikipedia
22098 (let ((commit "126f044e0a0e1432e0791c33ce2a41875d704a9b"))
22099 (package
22100 (name "emacs-helm-wikipedia")
22101 (version (git-version "0.0.0" "1" commit))
22102 (home-page "https://github.com/emacs-helm/helm-wikipedia/")
22103 (source
22104 (origin
22105 (method git-fetch)
22106 (uri (git-reference
22107 (url home-page)
22108 (commit commit)))
22109 (file-name (git-file-name name version))
22110 (sha256
22111 (base32
22112 "148a5xsnbsiddhf9cl7yxdk41lrv38h0pip91kcflw9d7l0dp7pr"))))
22113 (build-system emacs-build-system)
22114 (inputs
22115 `(("helm" ,emacs-helm)))
22116 (synopsis "Search suggestions and article extracts from Wikipedia for Emacs")
22117 (description
22118 "This package provides an Emacs Helm interface for search suggestions
22119 and article extracts for Wikipedia.")
22120 (license license:gpl3+))))
22121
22122 (define-public emacs-webfeeder
22123 (package
22124 (name "emacs-webfeeder")
22125 (version "1.1.0")
22126 (source
22127 (origin
22128 (method url-fetch)
22129 (uri (string-append
22130 "https://elpa.gnu.org/packages/webfeeder-"
22131 version
22132 ".tar"))
22133 (sha256
22134 (base32
22135 "09wz6v58xc86hdnz6g54ckaxkm6844yyk2ffbxh4s5sdvgqrzdd8"))))
22136 (build-system emacs-build-system)
22137 (home-page "https://gitlab.com/Ambrevar/emacs-webfeeder")
22138 (synopsis "Build RSS and Atom webfeeds from HTML files")
22139 (description
22140 "Webfeeder is an Emacs library to generate RSS and Atom feeds from HTML
22141 files. The various elements of the HTML input are parsed with customizable
22142 functions (e.g. @code{webfeeder-title-function}).")
22143 (license license:gpl3+)))
22144
22145 (define-public emacs-evil-numbers
22146 (let ((commit "6ea1c8c3a9b37bed63d48f1128e9a4910e68187e"))
22147 (package
22148 (name "emacs-evil-numbers")
22149 (version (git-version "0.4" "1" commit))
22150 (source (origin
22151 (method git-fetch)
22152 (uri (git-reference
22153 (url "https://github.com/dieggsy/evil-numbers")
22154 (commit commit)))
22155 (file-name (git-file-name name version))
22156 (sha256
22157 (base32
22158 "1aq95hj8x13py0pwsnc6wvd8cc5yv5qin8ym9js42y5966vwj4np"))))
22159 (build-system emacs-build-system)
22160 (home-page "https://github.com/dieggsy/evil-numbers")
22161 (synopsis "Increment and decrement numbers in Emacs")
22162 (description "This package increments and decrements binary, octal,
22163 decimal and hex literals. It works like C-a/C-x in Vim, i.e. searches for
22164 number up to EOL and then increments or decrements and keeps zero padding up
22165 (unlike in Vim). When a region is active, as in Evil's visual mode, all the
22166 numbers within that region will be incremented/decremented (unlike in Vim).
22167
22168 It is a fork of https://github.com/cofi/evil-numbers, which is unmaintained.")
22169 (license license:gpl3+))))
22170
22171 (define-public emacs-rotate-text
22172 (package
22173 (name "emacs-rotate-text")
22174 (version "0.1")
22175 (source (origin
22176 (method git-fetch)
22177 (uri (git-reference
22178 (url "https://github.com/nschum/rotate-text.el")
22179 (commit version)))
22180 (file-name (git-file-name name version))
22181 (sha256
22182 (base32
22183 "1cgxv4aibkvv6lnssynn0438a615fz3zq8hg9sb0lhfgsr99pxln"))))
22184 (build-system emacs-build-system)
22185 (home-page "https://nschum.de/src/emacs/rotate-text/")
22186 (synopsis "Cycle through words, symbols and patterns in Emacs")
22187 (description "@code{rotate-text} allows you rotate to commonly
22188 interchanged text with a single keystroke. For example, you can toggle
22189 between \"frame-width\" and \"frame-height\", between \"public\",
22190 \"protected\" and \"private\" and between \"variable1\", \"variable2\" through
22191 \"variableN\".")
22192 (license license:gpl2+)))
22193
22194 (define-public emacs-ediprolog
22195 (package
22196 (name "emacs-ediprolog")
22197 (version "2.1")
22198 (source
22199 (origin
22200 (method url-fetch)
22201 (uri (string-append
22202 "https://elpa.gnu.org/packages/ediprolog-"
22203 version
22204 ".el"))
22205 (sha256
22206 (base32 "1piimsmzpirw8plrpy79xbpnvynzzhcxi31g6lg6is8gridiv3md"))))
22207 (build-system emacs-build-system)
22208 (home-page "https://elpa.gnu.org/packages/ediprolog.html")
22209 (synopsis "Emacs Does Interactive Prolog")
22210 (description "This package provides a major mode that let the user
22211 interact with SWI-Prolog in all buffers. For instance, one can consult Prolog
22212 programs and evaluate embedded queries. This mode is focused on the command
22213 @code{ediprolog-dwim} (Do What I Mean) which is supposed to, depending on the
22214 context, carry out the appropriate action.")
22215 (license license:gpl3+)))
22216
22217 (define-public emacs-evil-cleverparens
22218 (let ((commit "8c45879d49bfa6d4e414b6c1df700a4a51cbb869")
22219 (revision "1"))
22220 (package
22221 (name "emacs-evil-cleverparens")
22222 (version (git-version "2017-07-17" revision commit))
22223 (source (origin
22224 (method git-fetch)
22225 (uri (git-reference
22226 (url "https://github.com/luxbock/evil-cleverparens")
22227 (commit commit)))
22228 (sha256 (base32 "0lhnybpnk4n2yhlcnj9zxn0vi5hpjfaqfhvyfy7ckzz74g8v7iyw"))
22229 (file-name (git-file-name name version))))
22230 (build-system emacs-build-system)
22231 (propagated-inputs
22232 `(("emacs-evil" ,emacs-evil)
22233 ("emacs-paredit" ,emacs-paredit)
22234 ("emacs-smartparens" ,emacs-smartparens)))
22235 (home-page "https://github.com/luxbock/evil-cleverparens")
22236 (synopsis "Emacs modal editing optimized for editing Lisp")
22237 (description "@code{evil-cleverparens} remaps Evil keybindings to allow
22238 modal editing with screwing up the structure of Lisp code. Alternatives for
22239 verb commands which would are normally destructive (such as deletion) are
22240 provided. Those alternative commands are and bound by default to their
22241 corresponding Evil keys.")
22242 (license license:expat))))
22243
22244 (define-public emacs-evil-traces
22245 (let ((commit "1931e3ea2c64b4aec393a9c25063c330deff55e3")
22246 (revision "2"))
22247 (package
22248 (name "emacs-evil-traces")
22249 (version (git-version "0.0.1" revision commit))
22250 (source (origin
22251 (method git-fetch)
22252 (uri (git-reference
22253 (url "https://github.com/mamapanda/evil-traces")
22254 (commit commit)))
22255 (file-name (git-file-name name version))
22256 (sha256
22257 (base32
22258 "12p9lfxscs182vbd4dy0m5gacs3d4kyprbz5yndpwvl8g2qsqplz"))))
22259 (build-system emacs-build-system)
22260 (propagated-inputs
22261 `(("emacs-evil" ,emacs-evil)))
22262 (arguments
22263 `(#:phases
22264 (modify-phases %standard-phases
22265 (add-after 'unpack 'set-shell
22266 ;; Setting the SHELL environment variable is required for the tests
22267 ;; to find sh.
22268 (lambda _
22269 (setenv "SHELL" (which "sh"))
22270 #t)))
22271 #:tests? #t
22272 #:test-command '("make" "test")))
22273 (home-page "https://github.com/mamapanda/evil-traces")
22274 (synopsis "Visual hints for @code{evil-ex}")
22275 (description "This package adds visual hints to certain @code{ex}
22276 commands in @code{evil-mode}.")
22277 (license license:gpl3+))))
22278
22279 (define-public emacs-evil-tmux-navigator
22280 (package
22281 (name "emacs-evil-tmux-navigator")
22282 (version "0.1.5")
22283 (source
22284 (origin
22285 (method git-fetch)
22286 (uri
22287 (git-reference
22288 (url "https://github.com/keith/evil-tmux-navigator")
22289 (commit version)))
22290 (file-name (git-file-name name version))
22291 (sha256
22292 (base32
22293 "1na44rbc03sr5b4z9pvnps6n4nmrqcz58nywix9825l74a419ijx"))))
22294 (propagated-inputs
22295 `(("emacs-evil" ,emacs-evil)))
22296 (build-system emacs-build-system)
22297 (home-page "https://github.com/keith/evil-tmux-navigator")
22298 (synopsis
22299 "Navigate seamlessly between emacs windows and tmux panes")
22300 (description
22301 "This package lets you use C-h, C-j, C-k and C-l to navigate between
22302 Emacs windows and tmux panes.")
22303 (license license:expat)))
22304
22305 (define-public emacs-xclip
22306 (package
22307 (name "emacs-xclip")
22308 (version "1.10")
22309 (source
22310 (origin
22311 (method url-fetch)
22312 (uri (string-append "https://elpa.gnu.org/packages/"
22313 "xclip-" version ".el"))
22314 (sha256
22315 (base32 "0i3i9kwfg8qmhcmqhhnrb1kljgwkccv63s9q1mjwqfjldyfh8j8i"))))
22316 (build-system emacs-build-system)
22317 (home-page "http://elpa.gnu.org/packages/xclip.html")
22318 (synopsis "Copy and paste GUI clipboard from Emacs in text terminal")
22319 (description
22320 "This package allows Emacs to copy to and paste from the GUI clipboard
22321 when running in text terminal.
22322
22323 It can use external command-line tools for that, e.g., @command{xclip} or
22324 @command{xsel}, which you may need to install in order for the package to
22325 work.")
22326 (license license:gpl3+)))
22327
22328 (define-public emacs-xterm-color
22329 (package
22330 (name "emacs-xterm-color")
22331 (version "1.9")
22332 (source (origin
22333 (method git-fetch)
22334 (uri (git-reference
22335 (url "https://github.com/atomontage/xterm-color")
22336 (commit version)))
22337 (file-name (git-file-name name version))
22338 (sha256
22339 (base32
22340 "0i9ivc5xhl5y5v0l18kbhfg8s2abb9zaimyx951b8bc0f5as68xm"))))
22341 (build-system emacs-build-system)
22342 (home-page "https://github.com/atomontage/xterm-color")
22343 (synopsis "ANSI & xterm-256 color text property translator for Emacs")
22344 (description "@code{xterm-color.el} is an ANSI control sequence to
22345 text-property translator.")
22346 (license license:bsd-2)))
22347
22348 (define-public emacs-org-noter
22349 (package
22350 (name "emacs-org-noter")
22351 (version "1.4.1")
22352 (source
22353 (origin
22354 (method git-fetch)
22355 (uri (git-reference
22356 (url "https://github.com/weirdNox/org-noter")
22357 (commit version)))
22358 (file-name (git-file-name name version))
22359 (sha256
22360 (base32
22361 "1vwfpdi7hfkxx4vi0cwg7rvqby3i0mymzdkyzrqzv30dazmcjpag"))))
22362 (build-system emacs-build-system)
22363 (propagated-inputs `(("emacs-org" ,emacs-org)))
22364 (home-page "https://github.com/weirdNox/org-noter")
22365 (synopsis "Synchronized, Org-mode, document annotator")
22366 (description
22367 "This package lets you create notes that are kept in sync when you
22368 scroll through the document, but that are external to it---the notes
22369 themselves live in an Org-mode file. As such, this leverages the power of
22370 Org-mode (the notes may have outlines, latex fragments, babel, etc...) while
22371 acting like notes that are made @emph{in} the document.")
22372 (license license:gpl3+)))
22373
22374 (define-public emacs-org-redmine
22375 (let ((commit "e77d013bc3784947c46a5c53f03cd7d3c68552fc"))
22376 (package
22377 (name "emacs-org-redmine")
22378 (version (git-version "0.1" "1" commit))
22379 (source (origin
22380 (method git-fetch)
22381 (uri (git-reference
22382 (url "https://github.com/gongo/org-redmine")
22383 (commit commit)))
22384 (file-name (git-file-name name version))
22385 (sha256
22386 (base32
22387 "06miv3mf2a39vkf6mmm5ssc47inqh7dq82khsyc03anz4d4lj822"))))
22388 (build-system emacs-build-system)
22389 (home-page "https://github.com/gongo/org-redmine/")
22390 (synopsis "Redmine tools using Emacs")
22391 (description "This program provides an Emacs client for Redmine.")
22392 (license license:gpl3+))))
22393
22394 (define-public emacs-multi-term
22395 ;; No upstream release. Extract version from main file.
22396 (let ((commit "017c77c550115936860e2ea71b88e585371475d5")
22397 (revision "0"))
22398 (package
22399 (name "emacs-multi-term")
22400 (version (git-version "1.5" revision commit))
22401 (source
22402 (origin
22403 (method git-fetch)
22404 (uri (git-reference
22405 (url "https://github.com/manateelazycat/multi-term")
22406 (commit commit)))
22407 (file-name (git-file-name name version))
22408 (sha256
22409 (base32 "043dqd8i8h6hbcg11rzprxin2yq5lb902zlrb7mxah44vyp8wrdi"))))
22410 (build-system emacs-build-system)
22411 (inputs
22412 `(("zsh" ,zsh)))
22413 (home-page "https://github.com/manateelazycat/multi-term")
22414 (synopsis "Manage multiple terminal buffers in Emacs")
22415 (description
22416 "This package enhances @code{term.el} with the following features:
22417
22418 @enumerate
22419 @item Functions to switch between multiple terminal buffers
22420 @item List of keys to be intercepted by @code{emacs-multi-term} instead of by
22421 the underlying terminal
22422 @item Kills the unused buffer left after exiting the terminal
22423 @item Kills the running sub-processes along with the terminal when killing the
22424 it forcibly
22425 @item Dedicated window for debugging program.
22426 @end enumerate")
22427 (license license:gpl3+))))
22428
22429 (define-public emacs-elpher
22430 (package
22431 (name "emacs-elpher")
22432 (version "2.10.2")
22433 (source
22434 (origin
22435 (method git-fetch)
22436 (uri (git-reference
22437 (url "git://thelambdalab.xyz/elpher.git")
22438 (commit (string-append "v" version))))
22439 (file-name (git-file-name name version))
22440 (sha256
22441 (base32 "0xqiisirpvw4ka9417pq4r73x937wl3qbf8cpn2i03akm8d58smd"))))
22442 (build-system emacs-build-system)
22443 (native-inputs
22444 `(("texinfo" ,texinfo)))
22445 (arguments
22446 `(#:phases
22447 (modify-phases %standard-phases
22448 (add-before 'install 'build-doc
22449 (lambda _
22450 (invoke "makeinfo" "elpher.texi"))))))
22451 (home-page "gopher://thelambdalab.xyz/1/projects/elpher/")
22452 (synopsis "Gopher client for Emacs")
22453 (description "Elpher is a full-featured gopher client for Emacs. Its
22454 features include intuitive keyboard and mouse-driven browsing, out-of-the-box
22455 compatibility with evil-mode, clickable web and gopher links in plain text,
22456 caching of visited sites, pleasant and configurable visualization of Gopher
22457 directories, direct visualisation of image files, jumping directly to links by
22458 name (with autocompletion), a simple bookmark management system and
22459 connections using TLS encryption.")
22460 (license license:gpl3+)))
22461
22462 (define-public emacs-zerodark-theme
22463 (package
22464 (name "emacs-zerodark-theme")
22465 (version "4.6")
22466 (source
22467 (origin
22468 (method git-fetch)
22469 (uri (git-reference
22470 (url "https://github.com/NicolasPetton/zerodark-theme")
22471 (commit version)))
22472 (file-name (git-file-name name version))
22473 (sha256
22474 (base32
22475 "0pfyd1iqs7l2ngwgvj9n0r9k1px7yl16h8n502xdyf0pprxcs4p6"))))
22476 (build-system emacs-build-system)
22477 (propagated-inputs
22478 `(("emacs-flycheck" ,emacs-flycheck)
22479 ("emacs-all-the-icons" ,emacs-all-the-icons)))
22480 (home-page
22481 "https://gitlab.petton.fr/nico/zerodark-theme")
22482 (synopsis
22483 "Dark, medium contrast theme for Emacs")
22484 (description
22485 "Zerodark is a dark theme inspired from One Dark and Niflheim.
22486 An optional mode-line format can be enabled with @code{zerodark-setup-modeline-format}.")
22487 (license license:gpl3+)))
22488
22489 (define-public emacs-gnus-alias
22490 (package
22491 (name "emacs-gnus-alias")
22492 (version "20150316")
22493 (source (origin
22494 (method git-fetch)
22495 (uri (git-reference
22496 (url "https://github.com/hexmode/gnus-alias")
22497 (commit "9447d3ccb4c0e75d0468899cccff7aa249657bac")))
22498 (file-name (git-file-name name version))
22499 (sha256
22500 (base32
22501 "1i278npayv3kfxxd1ypi9n83q5l402sbc1zkm11pf8g006ifqsp4"))))
22502 (build-system emacs-build-system)
22503 (home-page "https://melpa.org/#/gnus-alias")
22504 (synopsis "Alternative to @code{gnus-posting-styles}")
22505 (description "This Emacs add-on provides a simple mechanism to switch
22506 Identities when using a @code{message-mode} or a @code{message-mode} derived
22507 mode. Identities can include @code{From} and @code{Organisation} headers,
22508 extra headers, body and signature. Other features include:
22509
22510 @itemize
22511 @item Switch Identities in a message buffer.
22512 @item Access original message to help determine Identity of the followup/reply
22513 message.
22514 @item Act on a forwarded message as if it were a message being replied to.
22515 @item Start a new message with a given Identity pre-selected.
22516 @end itemize")
22517 (license license:gpl2+)))
22518
22519 (define-public emacs-ox-epub
22520 (package
22521 (name "emacs-ox-epub")
22522 (version "0.3")
22523 (source (origin
22524 (method git-fetch)
22525 (uri (git-reference
22526 (url "https://github.com/ofosos/ox-epub")
22527 (commit (string-append "v" version))))
22528 (file-name (git-file-name name version))
22529 (sha256
22530 (base32
22531 "057sqmvm8hwkhcg3yd4i8zz2xlqsqrpyiklyiw750s3i5mxdn0k7"))))
22532 (build-system emacs-build-system)
22533 (home-page "https://github.com/ofosos/ox-epub")
22534 (synopsis "Export org mode projects to EPUB")
22535 (description "@code{ox-epub} extends the (X)HTML exporter to generate
22536 @code{.epub} files directly from OrgMode. This will export EPUB version 2,
22537 which should give broad compatibility. It should also be relatiely easy to
22538 convert the resulting @code{.epub} to a @code{.mobi} file. Needs a working
22539 zip utility (default is @code{zip}).")
22540 (license license:gpl3+)))
22541
22542 (define-public emacs-ox-hugo
22543 (package
22544 (name "emacs-ox-hugo")
22545 (version "0.8")
22546 (source
22547 (origin
22548 (method git-fetch)
22549 (uri (git-reference
22550 (url "https://github.com/kaushalmodi/ox-hugo")
22551 (commit (string-append "v" version))))
22552 (file-name (git-file-name name version))
22553 (sha256
22554 (base32
22555 "11h464cyc28ld0b0zridgm4drydc1qjxbm1y24zrwlkyqqjk6yr7"))))
22556 (build-system emacs-build-system)
22557 (home-page "https://ox-hugo.scripter.co")
22558 (synopsis "Hugo markdown back-end for Org export engine")
22559 (description
22560 "Ox-hugo is an Org exporter backend that exports Org to Hugo-compatible
22561 Markdown, Blackfriday, and also generates the front-matter in TOML or YAML
22562 format.")
22563 (license license:gpl3+)))
22564
22565 (define-public emacs-ox-pandoc
22566 (package
22567 (name "emacs-ox-pandoc")
22568 (version "20180510")
22569 (source (origin
22570 (method git-fetch)
22571 (uri (git-reference
22572 (url "https://github.com/kawabata/ox-pandoc")
22573 (commit "aa37dc7e94213d4ebedb85c384c1ba35007da18e")))
22574 (file-name (git-file-name name version))
22575 (sha256
22576 (base32
22577 "0iibxplgdp34bpq1yll2gmqjd8d8lnqn4mqjvx6cdf0y438yr4jz"))))
22578 (build-system emacs-build-system)
22579 (inputs
22580 `(("pandoc" ,pandoc)))
22581 (propagated-inputs
22582 `(("emacs-dash" ,emacs-dash)
22583 ("emacs-ht" ,emacs-ht)))
22584 (home-page "https://github.com/kawabata/ox-pandoc")
22585 (synopsis "Org exporter for Pandoc")
22586 (description "@code{ox-pandoc} is an exporter for converting Org-mode
22587 files to numerous other formats via Pandoc.")
22588 (license license:gpl3+)))
22589
22590 (define-public emacs-wc-mode
22591 (package
22592 (name "emacs-wc-mode")
22593 (version "1.3")
22594 (source (origin
22595 (method git-fetch)
22596 (uri (git-reference
22597 (url "https://github.com/bnbeckwith/wc-mode")
22598 (commit (string-append "v" version))))
22599 (file-name (git-file-name name version))
22600 (sha256
22601 (base32
22602 "0pjlxv46zzqdq6q131jb306vqlg4sfqls1x8vag7mmfw462hafqp"))))
22603 (build-system emacs-build-system)
22604 (home-page "https://github.com/bnbeckwith/wc-mode")
22605 (synopsis "Running word count with goals (minor mode)")
22606 (description "@code{wc-mode} is a minor mode, providing a ‘wc’ function
22607 for Emacs buffers as well as a modeline addition with live word, line and
22608 character counts. Additionally, a user can set specific goals for adding or
22609 deleting words. These goals were partly inspired by 750words.com where the
22610 goal of the site is to encourage writing by setting a goal of 750 words at a
22611 time.")
22612 (license license:gpl3+)))
22613
22614 (define-public emacs-mastodon
22615 (package
22616 (name "emacs-mastodon")
22617 (version "0.9.0")
22618 (source (origin
22619 (method git-fetch)
22620 (uri (git-reference
22621 (url "https://github.com/jdenen/mastodon.el")
22622 (commit version)))
22623 (file-name (git-file-name name version))
22624 (sha256
22625 (base32
22626 "0hwax6y9dghqwsbnb6f1bnc7gh8xsh5cvcnayk2sn49x8b0zi5h1"))))
22627 (build-system emacs-build-system)
22628 (arguments
22629 `(#:phases
22630 (modify-phases %standard-phases
22631 ;; Move the source files to the top level, which is included in
22632 ;; the EMACSLOADPATH.
22633 (add-after 'unpack 'move-source-files
22634 (lambda _
22635 (let ((el-files (find-files "./lisp" ".*\\.el$")))
22636 (for-each (lambda (f)
22637 (rename-file f (basename f)))
22638 el-files))
22639 #t)))))
22640 (home-page "https://github.com/jdenen/mastodon.el")
22641 (synopsis "Emacs client for Mastodon")
22642 (description "@code{mastodon.el} is an Emacs client for Mastodon, the
22643 federated microblogging social network.")
22644 (license license:gpl3+)))
22645
22646 (define-public emacs-ebdb
22647 (package
22648 (name "emacs-ebdb")
22649 (version "0.6.20")
22650 (source
22651 (origin
22652 (method url-fetch)
22653 (uri (string-append "https://elpa.gnu.org/packages/"
22654 "ebdb-" version ".tar"))
22655 (sha256
22656 (base32 "1rhmnz2g4nmk893gzxm1hfwqf5nan20yss5mxilfpza2jh4368h3"))))
22657 (build-system emacs-build-system)
22658 (home-page "https://github.com/girzel/ebdb")
22659 (synopsis "EIEIO port of BBDB, Emacs's contact-management package")
22660 (description
22661 "EBDB is a contact management/addressbook package for Emacs. It's
22662 a re-write of the Insidious Big Brother Database (BBDB) using Emacs
22663 Lisp's (relatively new) EIEIO object oriented libraries.")
22664 (license license:gpl3+)))
22665
22666 (define-public emacs-refactor
22667 (package
22668 (name "emacs-refactor")
22669 (version "0.4")
22670 (source (origin
22671 (method git-fetch)
22672 (uri (git-reference
22673 (url "https://github.com/Wilfred/emacs-refactor")
22674 (commit version)))
22675 (file-name (git-file-name name version))
22676 (sha256
22677 (base32
22678 "1yky7vlv91501xb43xk19rr8mxlvrsxhawsc98jivf64nad5dqay"))))
22679 (build-system emacs-build-system)
22680 (propagated-inputs
22681 `(("emacs-dash" ,emacs-dash)
22682 ("emacs-s" ,emacs-s)
22683 ("emacs-popup" ,emacs-popup)
22684 ("emacs-list-utils" ,emacs-list-utils)
22685 ("emacs-iedit" ,emacs-iedit)))
22686 (home-page "https://github.com/Wilfred/emacs-refactor/")
22687 (synopsis "Language-specific refactoring in Emacs")
22688 (description "Emacs Refactor (EMR) is a framework for providing
22689 language-specific refactoring in Emacs. It includes refactoring commands for
22690 a variety of languages, including elisp itself.")
22691 (license license:gpl3+)))
22692
22693 (define-public emacs-flyspell-correct
22694 (package
22695 (name "emacs-flyspell-correct")
22696 (version "0.5")
22697 (source
22698 (origin
22699 (method git-fetch)
22700 (uri (git-reference
22701 (url "https://github.com/d12frosted/flyspell-correct")
22702 (commit (string-append "v" version))))
22703 (file-name (git-file-name name version))
22704 (sha256
22705 (base32
22706 "1r9hmz7sihhy7npv6nxp04sy57glzmfax5d67mwn96fdnc0yhlnd"))))
22707 (build-system emacs-build-system)
22708 (propagated-inputs
22709 `(("emacs-helm" ,emacs-helm)
22710 ("emacs-ivy" ,emacs-ivy)
22711 ("emacs-popup" ,emacs-popup)))
22712 (home-page
22713 "https://github.com/d12frosted/flyspell-correct")
22714 (synopsis
22715 "Correcting words with flyspell via custom interfaces")
22716 (description
22717 "This package provides functionality for correcting words via custom
22718 interfaces. Several interfaces are supported beside the classic ido: popup,
22719 helm and ivy.")
22720 (license license:gpl3+)))
22721
22722 (define-public emacs-org-emms
22723 (let ((commit "07a8917f3d628c32e5de1dbd118ac08203772533")
22724 (revision "1"))
22725 (package
22726 (name "emacs-org-emms")
22727 (version
22728 (git-version "0.1" revision commit))
22729 (source
22730 (origin
22731 (method git-fetch)
22732 (uri (git-reference
22733 (url "https://gitlab.com/jagrg/org-emms.git")
22734 (commit commit)))
22735 (file-name (git-file-name name commit))
22736 (sha256
22737 (base32
22738 "1sqsm5sv311xfdk4f4rsnvprdf2v2vm7l1b3vqi7pc0g8adlnw1d"))))
22739 (build-system emacs-build-system)
22740 (propagated-inputs
22741 `(("emms" ,emacs-emms)
22742 ("emacs-org" ,emacs-org)))
22743 (home-page "https://gitlab.com/jagrg/org-emms")
22744 (synopsis "Play multimedia files from org-mode")
22745 (description
22746 "This package provides a new org link type for playing back multimedia
22747 files from org-mode using EMMS, The Emacs Multimedia System. If the link
22748 contains a track position, playback will start at the specified position.")
22749 (license license:gpl3+))))
22750
22751 (define-public emacs-org-jira
22752 (package
22753 (name "emacs-org-jira")
22754 (version "4.3.1")
22755 (source
22756 (origin
22757 (method git-fetch)
22758 (uri (git-reference
22759 (url "https://github.com/ahungry/org-jira")
22760 (commit version)))
22761 (file-name (git-file-name name version))
22762 (sha256
22763 (base32
22764 "1l80r2a9zzbfk2c78i40h0ww79vm9v4j6xi2h5i4w9kqh10rs6h2"))))
22765 (build-system emacs-build-system)
22766 (propagated-inputs
22767 `(("emacs-request" ,emacs-request)
22768 ("emacs-s" ,emacs-s)
22769 ("emacs-dash" ,emacs-dash)
22770 ("emacs-org" ,emacs-org)))
22771 (home-page "https://github.com/ahungry/org-jira")
22772 (synopsis "Syncing between Jira and Org-mode")
22773 (description
22774 "This package provides an extension to org-mode for syncing issues with
22775 JIRA issue servers.")
22776 (license license:gpl3+)))
22777
22778 (define-public emacs-systemd-mode
22779 (package
22780 (name "emacs-systemd-mode")
22781 (version "1.6")
22782 (source (origin
22783 (method git-fetch)
22784 (uri (git-reference
22785 (url "https://github.com/holomorph/systemd-mode")
22786 (commit (string-append "v" version))))
22787 (file-name (git-file-name name version))
22788 (sha256
22789 (base32
22790 "0ylgnvpfindg4cxccbqy02ic7p0i9rygf1w16dm1filwhbqvjplq"))))
22791 (build-system emacs-build-system)
22792 (arguments '(#:include '("\\.el$" "\\.txt$")))
22793 (home-page "https://github.com/holomorph/systemd-mode")
22794 (synopsis
22795 "Major mode for editing systemd units")
22796 (description
22797 "Major mode for editing systemd units in GNU Emacs.")
22798 (license license:gpl3+)))
22799
22800 (define-public emacs-ssh-config-mode
22801 (let ((commit "4c1dfa57d452cb5654453bf186c8ff63e1e71b56")
22802 (revision "1"))
22803 (package
22804 (name "emacs-ssh-config-mode")
22805 (version (git-version "8.0" revision commit))
22806 (source
22807 (origin
22808 (method git-fetch)
22809 (uri
22810 (git-reference
22811 (url "https://github.com/jhgorrell/ssh-config-mode-el")
22812 (commit commit)))
22813 (file-name (git-file-name name commit))
22814 (sha256
22815 (base32
22816 "0crglfdazzckizbwzmgl2rn6j85avfzkr1q7ijxd17rp2anvr9bd"))))
22817 (build-system emacs-build-system)
22818 (arguments '(#:include '("\\.el$" "\\.txt$")))
22819 (home-page
22820 "https://github.com/jhgorrell/ssh-config-mode-el")
22821 (synopsis
22822 "Mode for fontification of ~/.ssh/config")
22823 (description
22824 "This package fontifies the ssh config keywords and creates
22825 keybindings for skipping from host section to host section.")
22826 (license license:gpl3+))))
22827
22828 (define-public emacs-ssh-agency
22829 (package
22830 (name "emacs-ssh-agency")
22831 (version "0.4")
22832 (source (origin
22833 (method git-fetch)
22834 (uri (git-reference
22835 (url "https://github.com/magit/ssh-agency")
22836 (commit version)))
22837 (file-name (git-file-name name version))
22838 (sha256
22839 (base32
22840 "0895n7bss4wdydic1gflr03f2cwdyqywl16gvb599lpn288jhwvz"))))
22841 (build-system emacs-build-system)
22842 (propagated-inputs
22843 `(("dash" ,emacs-dash)))
22844 (home-page "https://github.com/magit/ssh-agency")
22845 (synopsis "Manage @code{ssh-agent} from Emacs")
22846 (description
22847 "This package provides functions to startup @code{ssh-agent}, set the
22848 needed environment variables in Emacs, and prompt for passphrases from within
22849 Emacs so that pushes and pulls from @code{magit} will not require entering any
22850 passphrase.
22851
22852 It can also be useful on Unix-like platforms to delay having to enter your
22853 passphrase until the first time you push to a remote.")
22854 (license license:gpl3+)))
22855
22856 (define-public emacs-tao-theme
22857 (let ((commit "c5107fbe7e752f4e58c2d2147ff18a1ebb12937c")
22858 (revision "0"))
22859 (package
22860 (name "emacs-tao-theme")
22861 (version (git-version "0" revision commit))
22862 (source
22863 (origin
22864 (method git-fetch)
22865 (uri (git-reference
22866 (url "https://github.com/11111000000/tao-theme-emacs")
22867 (commit commit)))
22868 (file-name (git-file-name name version))
22869 (sha256
22870 (base32
22871 "07vvlglmkj87hpxz79s3bl2cjn71vain57fdxs7j9vlr5jkchxwn"))))
22872 (build-system emacs-build-system)
22873 (home-page "https://github.com/11111000000/tao-theme-emacs")
22874 (synopsis "Parameterized uncolored color themes for Emacs")
22875 (description
22876 "This package provides two parameterized uncolored color themes for
22877 Emacs: @code{tao-yin} and @code{tao-yang}. The default
22878 @code{tao-theme-scale-fn} is @code{tao-theme-golden-scale}.
22879
22880 You can customize: @code{tao-theme-scale-fn}, that returns 16 2-digit numbers;
22881 @code{tao-theme-scale-filter-fn}, for edge filter; and
22882 @code{tao-theme-use-height}.")
22883 (license license:gpl3+))))
22884
22885 (define-public emacs-almost-mono-themes
22886 (let ((commit "c3a85c1a665530a5d830665969725cdba8eceb75")
22887 (revision "0"))
22888 (package
22889 (name "emacs-almost-mono-themes")
22890 (version (git-version "0" revision commit))
22891 (source
22892 (origin
22893 (method git-fetch)
22894 (uri (git-reference
22895 (url "https://github.com/cryon/almost-mono-themes")
22896 (commit commit)))
22897 (file-name (git-file-name name version))
22898 (sha256
22899 (base32
22900 "034k32xkr5ma415hlkbl35z0jxc4sa1inf87hg3y6lrlfl83fyjh"))))
22901 (build-system emacs-build-system)
22902 (home-page "https://github.com/cryon/almost-mono-themes")
22903 (synopsis "Almost monochromatic themes for emacs in a few variants")
22904 (description
22905 "This package provides a collection of almost monochrome Emacs themes:
22906 @code{almost-mono-black} and @code{almost-mono-white}.")
22907 (license license:gpl3+))))
22908
22909 (define-public emacs-quasi-monochrome
22910 (let ((commit "68060dbbc0bbfe4924387392874186c5a29bb434")
22911 (revision "0"))
22912 (package
22913 (name "emacs-quasi-monochrome")
22914 (version (git-version "1.2" revision commit))
22915 (source
22916 (origin
22917 (method git-fetch)
22918 (uri (git-reference
22919 (url "https://github.com/lbolla/emacs-quasi-monochrome")
22920 (commit commit)))
22921 (file-name (git-file-name name version))
22922 (sha256
22923 (base32
22924 "0zp2xr0bjfqrpb0bqczzick1vvbjmipjavrdi70kw6a9caynvq22"))))
22925 (build-system emacs-build-system)
22926 (home-page "https://github.com/lbolla/emacs-quasi-monochrome")
22927 (synopsis "Dark color theme for Emacs")
22928 (description
22929 "This package provides a dark color theme with a black background, high
22930 contrast and few colors.")
22931 (license license:gpl3+))))
22932
22933 (define-public emacs-doom-themes
22934 (let ((commit "e803fc4ac8cf7118e2d1544d8241b848b5e79e9f")
22935 (revision "5")
22936 (version "2.1.6"))
22937 (package
22938 (name "emacs-doom-themes")
22939 (version (git-version version revision commit))
22940 (source (origin
22941 (method git-fetch)
22942 (uri (git-reference
22943 (url "https://github.com/hlissner/emacs-doom-themes")
22944 (commit commit)))
22945 (file-name (git-file-name name version))
22946 (sha256
22947 (base32 "128hdmf0jkzr12fv2r6z349qiwba6q97hsb6b1n2qlhi0v5v3mfh"))))
22948 (build-system emacs-build-system)
22949 (native-inputs
22950 `(("emacs-ert-runner" ,emacs-ert-runner)))
22951 (arguments
22952 `(#:tests? #t
22953 #:test-command '("ert-runner")
22954 #:modules ((guix build emacs-build-system)
22955 (guix build utils)
22956 (guix build emacs-utils)
22957 (srfi srfi-1))
22958 #:phases
22959 (modify-phases %standard-phases
22960 (add-after 'unpack 'move-themes
22961 (lambda _
22962 ;; Move the source files to the top level, which is in the
22963 ;; EMACSLOADPATH.
22964 (for-each (lambda (f)
22965 (rename-file f (basename f)))
22966 (find-files "./themes" ".*\\.el$"))
22967 #t)))))
22968 (synopsis "Wide collection of color themes for Emacs")
22969 (description "Emacs-doom-themes contains numerous popular color themes for
22970 Emacs that integrate with major modes like Org-mode.")
22971 (home-page "https://github.com/hlissner/emacs-doom-themes")
22972 (license license:expat))))
22973
22974 (define-public emacs-modus-operandi-theme
22975 (package
22976 (name "emacs-modus-operandi-theme")
22977 (version "0.13.0")
22978 (source
22979 (origin
22980 (method git-fetch)
22981 (uri (git-reference
22982 (url "https://gitlab.com/protesilaos/modus-themes")
22983 (commit version)))
22984 (file-name (git-file-name name version))
22985 (sha256
22986 (base32 "0i6n3pzrmlgabsijy6z0hhs71q7g99yagwr2m33lr30skqc9rvdn"))))
22987 (build-system emacs-build-system)
22988 (arguments
22989 `(#:phases
22990 (modify-phases %standard-phases
22991 (add-after 'unpack 'remove-other-theme
22992 (lambda _
22993 (delete-file "modus-vivendi-theme.el")
22994 #t)))))
22995 (home-page "https://gitlab.com/protesilaos/modus-themes")
22996 (synopsis "Accessible light theme (WCAG AAA)")
22997 (description
22998 "Modus operandi is the light version of the Modus accessible themes for
22999 GNU Emacs. The contrast ratio between foreground and background values should
23000 always be greater than 7:1, which conforms with the WCAG AAA accessibility
23001 standard. This is the highest standard of its kind.")
23002 (license license:gpl3+)))
23003
23004 (define-public emacs-modus-vivendi-theme
23005 (package
23006 (name "emacs-modus-vivendi-theme")
23007 (version "0.13.0")
23008 (source
23009 (origin
23010 (method git-fetch)
23011 (uri (git-reference
23012 (url "https://gitlab.com/protesilaos/modus-themes")
23013 (commit version)))
23014 (file-name (git-file-name name version))
23015 (sha256
23016 (base32 "0i6n3pzrmlgabsijy6z0hhs71q7g99yagwr2m33lr30skqc9rvdn"))))
23017 (build-system emacs-build-system)
23018 (arguments
23019 `(#:phases
23020 (modify-phases %standard-phases
23021 (add-after 'unpack 'remove-other-theme
23022 (lambda _
23023 (delete-file "modus-operandi-theme.el")
23024 #t)))))
23025 (home-page "https://gitlab.com/protesilaos/modus-themes")
23026 (synopsis "Accessible dark theme (WCAG AAA)")
23027 (description
23028 "Modus vivendi is the dark version of the Modus accessible themes for GNU
23029 Emacs. The contrast ratio between foreground and background values should
23030 always be greater than 7:1, which conforms with the WCAG AAA accessibility
23031 standard. This is the highest standard of its kind.")
23032 (license license:gpl3+)))
23033
23034 (define-public emacs-modus-themes
23035 (deprecated-package "emacs-modus-themes" emacs-modus-operandi-theme))
23036
23037 (define-public emacs-punpun-theme
23038 (let ((commit "2f78125609277b2478abdebd8f9d5ee10a823b65")
23039 (revision "0"))
23040 (package
23041 (name "emacs-punpun-theme")
23042 (version (git-version "0" revision commit))
23043 (source
23044 (origin
23045 (method git-fetch)
23046 (uri (git-reference
23047 (url "https://github.com/wasamasa/punpun-theme")
23048 (commit commit)))
23049 (file-name (git-file-name name version))
23050 (sha256
23051 (base32
23052 "1sgxrj3igzq86h3whfymxf4qzv9kpvcrlhbvjmnp7fwrplys0n7d"))))
23053 (build-system emacs-build-system)
23054 (home-page "https://github.com/wasamasa/punpun-theme")
23055 (synopsis "Bleak Emacs theme")
23056 (description
23057 "A bleak theme. Uses shades of gray and the occasional splash of
23058 color. Designed for 256-color terminals. Comes in light and dark!")
23059 (license license:gpl3+))))
23060
23061 (define-public emacs-spacemacs-theme
23062 (let ((commit "f79c40fb241e204539fde97200abae91e828e585")
23063 (revision "1"))
23064 (package
23065 (name "emacs-spacemacs-theme")
23066 (version (git-version "0" revision commit)) ;no release yet
23067 (source
23068 (origin
23069 (method git-fetch)
23070 (uri (git-reference
23071 (url "https://github.com/nashamri/spacemacs-theme")
23072 (commit commit)))
23073 (file-name (git-file-name name version))
23074 (sha256
23075 (base32 "1l2kkiyrskkpx8f901v0wrzaah1wjg15zdyv88spj3mh3hwd3b6n"))))
23076 (build-system emacs-build-system)
23077 (home-page "https://github.com/nashamri/spacemacs-theme")
23078 (synopsis
23079 "Light and dark theme for spacemacs that supports GUI and terminal")
23080 (description
23081 "Spacemacs theme is an Emacs color theme that started as
23082 a theme for Spacemacs. The theme comes with dark and light variants
23083 and it should work well with 256 color terminals.")
23084 (license license:gpl3+))))
23085
23086 (define-public emacs-elixir-mode
23087 (package
23088 (name "emacs-elixir-mode")
23089 (version "2.3.1")
23090 (source
23091 (origin
23092 (method git-fetch)
23093 (uri (git-reference
23094 (url "https://github.com/elixir-editors/emacs-elixir")
23095 (commit (string-append "v" version))))
23096 (file-name (git-file-name name version))
23097 (sha256
23098 (base32 "06bi68x49v6f7flpz279mm4jpg31ll3s274givm3pvr8slcxs6xg"))))
23099 (build-system emacs-build-system)
23100 (propagated-inputs
23101 `(("emacs-pkg-info" ,emacs-pkg-info)))
23102 (home-page
23103 "https://github.com/elixir-editors/emacs-elixir")
23104 (synopsis "Major mode for editing Elixir files")
23105 (description
23106 "Elixir-Mode provides font-locking, indentation and navigation support
23107 for the Elixir programming language.")
23108 (license license:gpl3+)))
23109
23110 (define-public emacs-dimmer
23111 (package
23112 (name "emacs-dimmer")
23113 (version "0.4.2")
23114 (source
23115 (origin
23116 (method git-fetch)
23117 (uri (git-reference
23118 (url "https://github.com/gonewest818/dimmer.el")
23119 (commit version)))
23120 (file-name (git-file-name name version))
23121 (sha256
23122 (base32
23123 "0dw0qh5hm1x76s5cqxvylvmjgy0jwy11xm258g6kmx6w1k6r1d2l"))))
23124 (build-system emacs-build-system)
23125 (home-page "https://github.com/gonewest818/dimmer.el")
23126 (synopsis "Visually highlights the selected buffer in Emacs")
23127 (description "Dimmer provides a minor mode that indicates which buffer is
23128 currently active by dimming the faces in the other buffers. It does this
23129 nondestructively, and computes the dimmed faces dynamically such that your
23130 overall color scheme is shown in a muted form without requiring you to define
23131 what is a \"dim\" version of every face.")
23132 (license license:gpl3+)))
23133
23134 (define-public emacs-minibuffer-line
23135 (package
23136 (name "emacs-minibuffer-line")
23137 (version "0.1")
23138 (source
23139 (origin
23140 (method url-fetch)
23141 (uri (string-append
23142 "https://elpa.gnu.org/packages/minibuffer-line-"
23143 version
23144 ".el"))
23145 (sha256
23146 (base32 "1ny4iirp26na5118wfgxlv6fxlrdclzdbd9m0lkrv51w0qw7spil"))))
23147 (build-system emacs-build-system)
23148 (home-page "https://elpa.gnu.org/packages/minibuffer-line.html")
23149 (synopsis "Display status info in the minibuffer window")
23150 (description
23151 "This package lets you display various status information in the
23152 minibuffer window instead of the mode-line. Of course, this is only displayed
23153 when the minibuffer window is not already used for other things (e.g. a
23154 minibuffer or an each area message).
23155
23156 The contents and aspect is controlled by the @code{minibuffer-line-format}
23157 variable and the @code{minibuffer-line} face.")
23158 (license license:gpl3+)))
23159
23160 (define-public emacs-eshell-prompt-extras
23161 (package
23162 (name "emacs-eshell-prompt-extras")
23163 (version "1.0")
23164 (home-page "https://github.com/zwild/eshell-prompt-extras")
23165 (source
23166 (origin
23167 (method git-fetch)
23168 (uri (git-reference
23169 (url home-page)
23170 (commit version)))
23171 (file-name (git-file-name name version))
23172 (sha256
23173 (base32
23174 "0gb07mns23dgqqr6qfy7d6ndizy15sqgbgfaig6k5xbjnwi02v9g"))))
23175 (build-system emacs-build-system)
23176 (synopsis "Display extra information and color for your Eshell prompt")
23177 (description "This library displays various customizable elements for
23178 @code{eshell} prompts: remote user, remote host, python virtual environment
23179 info, git branch, git dirty info and git unpushed number. Multiple themes are
23180 available.")
23181 (license license:gpl3+)))
23182
23183 (define-public emacs-eshell-did-you-mean
23184 (package
23185 (name "emacs-eshell-did-you-mean")
23186 (version "0.1")
23187 (home-page "https://github.com/xuchunyang/eshell-did-you-mean")
23188 (source
23189 (origin
23190 (method git-fetch)
23191 (uri (git-reference
23192 (url home-page)
23193 (commit (string-append "v" version))))
23194 (file-name (git-file-name name version))
23195 (sha256
23196 (base32
23197 "0v0wshck5n4hspcv1zk1g2nm6xiigcjp16lx0dc8wzkl6ymljvbg"))))
23198 (build-system emacs-build-system)
23199 (synopsis "Display suggestions on 'command not found' in Eshell")
23200 (description "This library adds a list of 'Did you mean...' suggestions
23201 when the command was not found in Eshell. The suggestions are found after the
23202 commands that bear resemblance to the input command.")
23203 (license license:gpl3+)))
23204
23205 (define-public emacs-unfill
23206 (package
23207 (name "emacs-unfill")
23208 (version "0.2")
23209 (home-page "https://github.com/purcell/unfill")
23210 (source
23211 (origin
23212 (method git-fetch)
23213 (uri (git-reference
23214 (url home-page)
23215 (commit version)))
23216 (file-name (git-file-name name version))
23217 (sha256
23218 (base32 "0wyradin5igp25nsd3n22i2ppxhmy49ac1iq1w2715v8pfmiydnc"))))
23219 (build-system emacs-build-system)
23220 (synopsis "Inverse of Emacs' @code{fill-paragraph} and @code{fill-region}")
23221 (description
23222 "The functions in this package provide the inverse of Emacs'
23223 @code{fill-paragraph} and @code{fill-region}.")
23224 (license license:gpl3+)))
23225
23226 (define-public emacs-windower
23227 (package
23228 (name "emacs-windower")
23229 (version "0.0.1")
23230 (home-page "https://gitlab.com/ambrevar/emacs-windower")
23231 (source
23232 (origin
23233 (method git-fetch)
23234 (uri (git-reference
23235 (url home-page)
23236 (commit version)))
23237 (file-name (git-file-name name version))
23238 (sha256
23239 (base32 "0h24gb1ip0czfasxm8wwcc3v19g7mznzw2sxkmmfb5iis59p7dfy"))))
23240 (build-system emacs-build-system)
23241 (synopsis "Helper functions for window manipulation in Emacs")
23242 (description
23243 "This package provides helper functions for window manipulation in Emacs,
23244 such as:
23245
23246 @itemize
23247 @item switch to last buffer,
23248 @item toggle single window display,
23249 @item toggle between horizontal and vertical splits,
23250 @item move borders more naturally,
23251 @item swap windows à-la @code{windmove}.
23252 @end itemize")
23253 (license license:gpl3+)))
23254
23255 (define-public emacs-flycheck-cpplint
23256 (let ((commit "1d8a090861572258ab704915263feeb3a436c3d2")
23257 (revision "1"))
23258 (package
23259 (name "emacs-flycheck-cpplint")
23260 (version (git-version "0.1" revision commit))
23261 (source
23262 (origin
23263 (method git-fetch)
23264 (uri (git-reference
23265 (url "https://github.com/flycheck/flycheck-google-cpplint")
23266 (commit commit)))
23267 (file-name (git-file-name name version))
23268 (sha256
23269 (base32 "0l6sg83f6z8x2alnblpv03rj442sbnkkkcbf8i0agjmx3713a5yx"))))
23270 (build-system emacs-build-system)
23271 (arguments
23272 `(#:phases
23273 (modify-phases %standard-phases
23274 (add-after 'unpack 'set-cpplint-path
23275 (lambda _
23276 (substitute* "flycheck-google-cpplint.el"
23277 (("\"cpplint.py\"")
23278 (string-append "\"" (which "cpplint") "\"")))
23279 #t)))))
23280 (inputs
23281 `(("cpplint" ,cpplint)))
23282 (propagated-inputs
23283 `(("flycheck-mode" ,emacs-flycheck)))
23284 (synopsis "Google C++ checker for Flycheck")
23285 (description "This package provides a interface for @code{cpplint} over
23286 Flycheck plugin. @code{cpplint} is a static code checker for C++, following
23287 Google guidelines.")
23288 (home-page "https://github.com/flycheck/flycheck-google-cpplint")
23289 (license license:gpl3+))))
23290
23291 (define-public emacs-helm-fish-completion
23292 (package
23293 (name "emacs-helm-fish-completion")
23294 (version "0.6")
23295 (home-page "https://github.com/emacs-helm/helm-fish-completion")
23296 (source
23297 (origin
23298 (method git-fetch)
23299 (uri (git-reference
23300 (url home-page)
23301 (commit version)))
23302 (file-name (git-file-name name version))
23303 (sha256
23304 (base32 "1j2vfngq3512naaayv9kx0d1q2zg1xgs69l8afc7swg72h0l0imw"))))
23305 (build-system emacs-build-system)
23306 (propagated-inputs
23307 `(("helm" ,emacs-helm)
23308 ("fish-completion" ,emacs-fish-completion)))
23309 (synopsis "Helm interface for Emacs fish-completion")
23310 (description "Helm Fish Completion is a Helm interface for Emacs
23311 fish-completion. It can be used in both Eshell and M-x shell.")
23312 (license license:gpl3+)))
23313
23314 (define-public emacs-telega
23315 ;; This package has versions newer than indicated on MELPA.
23316 ;; Get the current version from `telega-version` in telega.el.
23317 ;; or by running M-x telega-version.
23318 (let ((commit "e53996777570a5bed84d21f6c8defd4f51c8e255")
23319 (revision "0")
23320 (version "0.6.28"))
23321 (package
23322 (name "emacs-telega")
23323 (version (git-version version revision commit))
23324 (source
23325 (origin
23326 (method git-fetch)
23327 (uri (git-reference
23328 (url "https://github.com/zevlg/telega.el")
23329 (commit commit)))
23330 (sha256
23331 (base32
23332 "058x6svgy33lyqjqq0l3byv8bysqig9jmh3kx8shaqr0ypfrjhi3"))
23333 (patches (search-patches
23334 "emacs-telega-patch-server-functions.patch"
23335 "emacs-telega-test-env.patch"))
23336 (file-name (git-file-name name version))))
23337 (build-system gnu-build-system)
23338 (arguments
23339 `(#:modules ((guix build gnu-build-system)
23340 ((guix build emacs-build-system) #:prefix emacs:)
23341 (guix build utils)
23342 (guix build emacs-utils))
23343 #:imported-modules (,@%gnu-build-system-modules
23344 (guix build emacs-build-system)
23345 (guix build emacs-utils))
23346 #:test-target "test"
23347 ;; TODO: Currently tgVOIP is not functional, thus we have disabled it
23348 ;; temporarily.
23349 ;; #:make-flags (list "WITH_VOIP=t")
23350 #:phases
23351 (modify-phases %standard-phases
23352 (add-after 'unpack 'prefix-patch
23353 (lambda _
23354 (substitute* "server/Makefile"
23355 (("CC=cc")
23356 "CC=gcc")
23357 (("INSTALL_PREFIX=\\$\\(HOME\\)/.telega")
23358 (string-append "INSTALL_PREFIX=" (assoc-ref %outputs "out")
23359 "/bin"))
23360 ;; Manually invoke `run_tests.py` after install phase.
23361 (("python3 run_tests.py")
23362 ""))
23363 #t))
23364 (add-after 'check 'telega-paths-patch
23365 (lambda* (#:key inputs #:allow-other-keys)
23366 ;; Hard-code paths to `ffplay` and `ffmpeg`.
23367 (let ((ffplay-bin (string-append (assoc-ref inputs "ffmpeg")
23368 "/bin/ffplay"))
23369 (ffmpeg-bin (string-append (assoc-ref inputs "ffmpeg")
23370 "/bin/ffmpeg")))
23371 (substitute* "telega-ffplay.el"
23372 (("\\(executable-find \"ffplay\"\\)")
23373 (string-append
23374 "(and (file-executable-p \"" ffplay-bin "\")"
23375 "\"" ffplay-bin "\")"))
23376 (("\\(executable-find \"ffmpeg\"\\)")
23377 (string-append
23378 "(and (file-executable-p \"" ffmpeg-bin "\")"
23379 "\"" ffmpeg-bin "\")"))))
23380 ;; Modify telega-util to reflect unique dir name in
23381 ;; `telega-install-data' phase.
23382 (substitute* "telega-util.el"
23383 (("\\(concat \"etc/\" filename\\) telega--lib-directory")
23384 "(concat \"telega-data/\" filename)
23385 (locate-dominating-file telega--lib-directory
23386 \"telega-data\")"))
23387 ;; Modify telega.el to reflect unique dir name in
23388 ;; `telega-install-contrib' phase.
23389 (substitute* "telega.el"
23390 (("\\(push \\(expand-file-name \"contrib\" telega--lib-directory\\) load-path\\)")
23391 "(push (expand-file-name \"telega-contrib\"
23392 (locate-dominating-file telega--lib-directory
23393 \"telega-contrib\")) load-path)"))
23394 #t))
23395 ;; The server test suite has a hardcoded path.
23396 ;; Reset this behavior to use the proper path.
23397 (add-after 'unpack 'server-suite-patch
23398 (lambda _
23399 (substitute* "server/run_tests.py"
23400 (("~/.telega/telega-server")
23401 (string-append (assoc-ref %outputs "out")
23402 "/bin/telega-server")))
23403 #t))
23404 (add-after 'install 'run-server-suite
23405 (lambda _
23406 (invoke "python3" "server/run_tests.py")
23407 #t))
23408 (delete 'configure)
23409 ;; Build emacs-side using `emacs-build-system'
23410 (add-after 'compress-documentation 'emacs-add-source-to-load-path
23411 (assoc-ref emacs:%standard-phases 'add-source-to-load-path))
23412 ;; Manually invoke bytecompilation for the contrib
23413 ;; subdirectory.
23414 (add-after 'emacs-add-source-to-load-path 'emacs-bytecomp-contrib
23415 (lambda _
23416 (substitute* "Makefile"
23417 (("byte-recompile-directory \".\"")
23418 "byte-recompile-directory \"contrib\""))
23419 (invoke "make" "compile")
23420 #t))
23421 (add-after 'emacs-bytecomp-contrib 'emacs-install
23422 (assoc-ref emacs:%standard-phases 'install))
23423 ;; This step installs subdir /etc, which contains images, sounds and
23424 ;; various other data, next to the site-lisp dir.
23425 (add-after 'emacs-install 'telega-install-data
23426 (lambda* (#:key outputs #:allow-other-keys)
23427 (copy-recursively
23428 "etc"
23429 (string-append (assoc-ref outputs "out")
23430 "/share/emacs/telega-data/"))
23431 #t))
23432 (add-after 'emacs-install 'telega-install-contrib
23433 (lambda* (#:key outputs #:allow-other-keys)
23434 (copy-recursively
23435 "contrib"
23436 (string-append (assoc-ref outputs "out")
23437 "/share/emacs/telega-contrib"))
23438 #t))
23439 (add-after 'telega-install-contrib 'emacs-build
23440 (assoc-ref emacs:%standard-phases 'build))
23441 (add-after 'telega-install-contrib 'emacs-make-autoloads
23442 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
23443 (inputs
23444 `(("ffmpeg" ,ffmpeg))) ; mp4/gif support.
23445 (propagated-inputs
23446 `(("emacs-visual-fill-column" ,emacs-visual-fill-column)
23447 ("emacs-company" ,emacs-company)
23448 ("emacs-rainbow-identifiers"
23449 ,emacs-rainbow-identifiers)
23450 ("libwebp" ,libwebp))) ; sticker support.
23451 (native-inputs
23452 `(("tdlib" ,tdlib)
23453 ;; Use Emacs with wide ints on 32-bit architectures.
23454 ("emacs" ,(match (%current-system)
23455 ((or "i686-linux" "armhf-linux")
23456 emacs-wide-int)
23457 (_
23458 emacs)))
23459 ("python" ,python)))
23460 (synopsis "GNU Emacs client for the Telegram messenger")
23461 (description
23462 "Telega is a full-featured, unofficial GNU Emacs-based client for the
23463 Telegram messaging platform.")
23464 (home-page "https://github.com/zevlg/telega.el")
23465 (license license:gpl3+))))
23466
23467 (define-public emacs-doom-modeline
23468 (package
23469 (name "emacs-doom-modeline")
23470 (version "3.0.0")
23471 (source (origin
23472 (method git-fetch)
23473 (uri (git-reference
23474 (url "https://github.com/seagle0128/doom-modeline")
23475 (commit (string-append "v" version))))
23476 (sha256
23477 (base32
23478 "08m75rl5i812pa87zcsjvb4mm3jjhpwzgx9mf2m7sxj807airz5d"))
23479 (file-name (git-file-name name version))))
23480 (build-system emacs-build-system)
23481 (arguments
23482 `(#:test-command '("ert-runner")))
23483 (native-inputs `(("emacs-ert-runner" ,emacs-ert-runner)))
23484 (propagated-inputs
23485 `(("emacs-all-the-icons" ,emacs-all-the-icons)
23486 ("emacs-dash" ,emacs-dash)
23487 ("emacs-shrink-path" ,emacs-shrink-path)))
23488 (synopsis "Fancy and fast mode-line inspired by minimalism design")
23489 (description "Doom modeline is a complete modeline for GNU Emacs inspired
23490 by the Doom theme collection. This modeline features support for mode-specific
23491 icon support, git integration, and several other utilities.")
23492 (home-page "https://github.com/seagle0128/doom-modeline/")
23493 (license license:gpl3+)))
23494
23495 (define-public emacs-mood-line
23496 (package
23497 (name "emacs-mood-line")
23498 (version "1.2.4")
23499 (source
23500 (origin
23501 (method git-fetch)
23502 (uri (git-reference
23503 (url "https://gitlab.com/jessieh/mood-line")
23504 (commit version)))
23505 (file-name (git-file-name name version))
23506 (sha256
23507 (base32 "0fh9j9fkgl433nykfzjnzap5labi4sdndfk1nv4f904ij69pmvxb"))))
23508 (build-system emacs-build-system)
23509 (home-page "https://gitlab.com/jessieh/mood-line")
23510 (synopsis "Minimal mode-line for Emacs")
23511 (description
23512 "Mood-line is a minimal Emacs mode-line configuration that aims to
23513 replicate some of the features of the Doom modeline package.")
23514 (license license:gpl2+)))
23515
23516 (define-public emacs-frames-only-mode
23517 (package
23518 (name "emacs-frames-only-mode")
23519 (version "1.0.0")
23520 (source
23521 (origin
23522 (method git-fetch)
23523 (uri (git-reference
23524 (url "https://github.com/davidshepherd7/frames-only-mode")
23525 (commit version)))
23526 (file-name (git-file-name name version))
23527 (sha256
23528 (base32 "0y0sdjixaxvywrlp2sw51wnczhk51q1svl5aghbk9rkxpwv9ys9v"))))
23529 (build-system emacs-build-system)
23530 (propagated-inputs
23531 `(("emacs-dash" ,emacs-dash)
23532 ("emacs-s" ,emacs-s)))
23533 (home-page "https://github.com/davidshepherd7/frames-only-mode")
23534 (synopsis "Use frames instead of Emacs windows")
23535 (description
23536 "This is an Emacs global minor mode to use Emacs frames instead of Emacs'
23537 internal windowing system. This combines particularly well with tiling window
23538 managers such as XMonad.")
23539 (license license:gpl3+)))
23540
23541 (define-public emacs-shrink-path
23542 (package
23543 (name "emacs-shrink-path")
23544 (version "0.3.1")
23545 (source
23546 (origin
23547 (method git-fetch)
23548 (uri (git-reference
23549 (url "https://gitlab.com/bennya/shrink-path.el.git")
23550 (commit (string-append "v" version))))
23551 (sha256
23552 (base32
23553 "0kx0c4syd7k6ff9j463bib32pz4wq0rzjlg6b0yqnymlzfr1mbki"))
23554 (file-name (git-file-name name version))))
23555 (build-system emacs-build-system)
23556 (propagated-inputs
23557 `(("emacs-s" ,emacs-s)
23558 ("emacs-dash" ,emacs-dash)
23559 ("emacs-f" ,emacs-f)))
23560 (home-page "https://gitlab.com/bennya/shrink-path.el")
23561 (synopsis "Fish-style path truncation in emacs-lisp")
23562 (description "This package provides utility functions that allow for
23563 Fish-style truncated directories in eshell and various modelines.")
23564 (license license:gpl3+)))
23565
23566 (define-public emacs-org-present
23567 (let ((commit "d13acd70eff6a1608bc991920232146a0de76b21"))
23568 (package
23569 (name "emacs-org-present")
23570 (version "0.0.1")
23571 (source
23572 (origin
23573 (method git-fetch)
23574 (uri (git-reference
23575 (url "https://github.com/rlister/org-present")
23576 (commit commit)))
23577 (file-name (git-file-name name version))
23578 (sha256
23579 (base32
23580 "0jz8xiny3rv9ql0p623byz32pip1b82j2c2nyfz2wd114kiabb6q"))))
23581 (build-system emacs-build-system)
23582 (synopsis "Ultra-minimalist presentation minor-mode for Emacs org-mode")
23583 (description "Org-present is an extremely minimalist presentation tool
23584 for Emacs org-mode. Simply layout your presentation with each slide under a
23585 top-level header, start the minor mode with @code{org-present}, and page through
23586 each slide with left/right keys.")
23587 (home-page "https://github.com/rlister/org-present")
23588 (license license:gpl2))))
23589
23590 (define-public emacs-fullframe
23591 (package
23592 (name "emacs-fullframe")
23593 (version "0.5.0")
23594 (source
23595 (origin
23596 (method git-fetch)
23597 (uri (git-reference
23598 (url "https://github.com/tomterl/fullframe")
23599 (commit version)))
23600 (sha256
23601 (base32
23602 "0m43qnhp6ibsskpjkxc86p3lrjsjc0ndqml3lbd65s79x4x7i3fi"))
23603 (file-name (git-file-name name version))))
23604 (build-system emacs-build-system)
23605 (home-page "https://github.com/tomterl/fullframe")
23606 (synopsis "Generalized automatic execution in a single frame")
23607 (description "This library provides helpers for single-window-per-frame
23608 execution of buffer-exposing commands.")
23609 (license license:gpl3+)))
23610
23611 (define-public emacs-eshell-toggle
23612 (let ((commit "ddfbe0a693497c4d4bc5494a19970ba4f6ab9033")
23613 (revision "1"))
23614 (package
23615 (name "emacs-eshell-toggle")
23616 (version (git-version "0.10.0" revision commit))
23617 (source
23618 (origin
23619 (method git-fetch)
23620 (uri (git-reference
23621 (url "https://github.com/4DA/eshell-toggle")
23622 (commit commit)))
23623 (sha256
23624 (base32
23625 "0xqrp8pwbmfxjdqipgpw5nw633mvhjjjm3k3j9sh9xdpmw05hhws"))
23626 (file-name (git-file-name name version))))
23627 (build-system emacs-build-system)
23628 (propagated-inputs
23629 `(("emacs-dash" ,emacs-dash)))
23630 (home-page "https://github.com/4DA/eshell-toggle")
23631 (synopsis "Show and hide an @code{eshell} instance")
23632 (description "This package toggles an @code{eshell} instance for the
23633 current buffer.")
23634 (license license:gpl3+))))
23635
23636 (define-public emacs-repl-toggle
23637 (package
23638 (name "emacs-repl-toggle")
23639 (version "0.6.1")
23640 (source
23641 (origin
23642 (method git-fetch)
23643 (uri (git-reference
23644 (url "https://github.com/tomterl/repl-toggle")
23645 (commit version)))
23646 (sha256
23647 (base32
23648 "12h3xxja3isnhvrqx7m2g7a5d8h68cc85pbqyhiipfxyafyl1yxd"))
23649 (file-name (git-file-name name version))))
23650 (build-system emacs-build-system)
23651 (propagated-inputs
23652 `(("emacs-fullframe" ,emacs-fullframe)))
23653 (home-page "https://github.com/tomterl/repl-toggle")
23654 (synopsis "Switch to and from current major mode's REPL")
23655 (description "This package provides a function to switch to and from a
23656 REPL appropriate to the current major mode.")
23657 (license license:gpl3+)))
23658
23659 (define-public emacs-rime
23660 (package
23661 (name "emacs-rime")
23662 (version "1.0.3")
23663 (source
23664 (origin
23665 (method git-fetch)
23666 (uri (git-reference
23667 (url "https://github.com/DogLooksGood/emacs-rime")
23668 (commit (string-append "v" version))))
23669 (file-name (git-file-name name version))
23670 (sha256
23671 (base32 "08rzkiqwcl8j3i2yyibll5lcsj8720plzm9zfdgmxgkw7vhcyix5"))))
23672 (build-system emacs-build-system)
23673 (arguments
23674 '(#:phases
23675 (modify-phases %standard-phases
23676 (add-after 'unpack 'patch-rime-data-path
23677 (lambda* (#:key inputs #:allow-other-keys)
23678 (make-file-writable "rime.el")
23679 (emacs-substitute-variables "rime.el"
23680 ("rime-share-data-dir"
23681 (string-append (assoc-ref inputs "rime-data")
23682 "/share/rime-data")))
23683 #t))
23684 (add-before 'install 'build-emacs-module
23685 (lambda _
23686 (invoke "make" "lib")))
23687 (add-after 'install 'install-emacs-module
23688 (lambda* (#:key outputs #:allow-other-keys)
23689 (install-file "librime-emacs.so"
23690 (string-append (assoc-ref outputs "out")
23691 "/share/emacs/site-lisp"))
23692 #t)))))
23693 (inputs
23694 `(("librime" ,librime)
23695 ("rime-data" ,rime-data)))
23696 (propagated-inputs
23697 `(("emacs-dash" ,emacs-dash)
23698 ("emacs-popup" ,emacs-popup)
23699 ("emacs-posframe" ,emacs-posframe)))
23700 (home-page "https://github.com/DogLooksGood/emacs-rime")
23701 (synopsis "Rime input method in Emacs")
23702 (description
23703 "Rime is an Emacs input method built upon Rime input method engine.")
23704 (license license:gpl3+)))
23705
23706 (define-public emacs-blackout
23707 (let ((commit "4bac44671fca4c98d96aa94c79946bf4d4baf0ee")
23708 (revision "1"))
23709 (package
23710 (name "emacs-blackout")
23711 (version (git-version "1.0" revision commit))
23712 (source
23713 (origin
23714 (method git-fetch)
23715 (uri (git-reference
23716 (url "https://github.com/raxod502/blackout")
23717 (commit commit)))
23718 (sha256
23719 (base32
23720 "1wnh0nwy6r3a18sy9sqmrwv04vnmaflxy4g7mq8jiyyjijri7l1b"))
23721 (file-name (git-file-name name version))))
23722 (build-system emacs-build-system)
23723 (home-page "https://github.com/raxod502/blackout")
23724 (synopsis "Clean up mode lighters")
23725 (description "This package provides a function for hiding and customizing
23726 display of major and minor modes in the mode line.")
23727 (license license:gpl3+))))
23728
23729 (define-public emacs-ivy-omni-org
23730 (let ((commit "5460a9fc061a4a5ae8372dc8df966ced94abab58")
23731 (revision "1"))
23732 (package
23733 (name "emacs-ivy-omni-org")
23734 (version (git-version "0.2.1" revision commit))
23735 (source
23736 (origin
23737 (method git-fetch)
23738 (uri (git-reference
23739 (url "https://github.com/akirak/ivy-omni-org")
23740 (commit commit)))
23741 (file-name (git-file-name name version))
23742 (sha256
23743 (base32
23744 "1np1f51hc3phkl5w02a9a79gl38ra2d535i784fn4pqaasvm0rq8"))))
23745 (build-system emacs-build-system)
23746 (propagated-inputs
23747 `(("emacs-ivy" ,emacs-ivy)
23748 ("emacs-dash" ,emacs-dash)))
23749 (synopsis "Browse anything in Org mode")
23750 (description "This package allows Org items to be accessed via the Ivy
23751 interface.")
23752 (home-page "https://github.com/akirak/ivy-omni-org")
23753 (license license:gpl3+))))
23754
23755 (define-public emacs-ivy-posframe
23756 (package
23757 (name "emacs-ivy-posframe")
23758 (version "0.5.2")
23759 (source
23760 (origin
23761 (method url-fetch)
23762 (uri (string-append "https://elpa.gnu.org/packages/"
23763 "ivy-posframe-" version ".el"))
23764 (sha256
23765 (base32 "01zc2yj7g4lfz7qblx7k6sg54v0h4w0frnnmsf92lwypfijd2lsj"))))
23766 (build-system emacs-build-system)
23767 (propagated-inputs
23768 `(("emacs-ivy" ,emacs-ivy)
23769 ("emacs-posframe" ,emacs-posframe)))
23770 (home-page "https://github.com/tumashu/ivy-posframe")
23771 (synopsis "Pop a posframe (a child frame) to show Ivy candidates")
23772 (description
23773 "This package provides an Emacs Ivy extension, which let Ivy use
23774 posframe to show its candidate menu.")
23775 (license license:gpl3+)))
23776
23777 (define-public emacs-shackle
23778 (let ((commit "7ccbe513852a1d1700b698547efca14b8940319d")
23779 (revision "1"))
23780 (package
23781 (name "emacs-shackle")
23782 (version (git-version "1.0.3" revision commit))
23783 (source
23784 (origin
23785 (method git-fetch)
23786 (uri (git-reference
23787 (url "https://github.com/wasamasa/shackle")
23788 (commit commit)))
23789 (file-name (git-file-name name version))
23790 (sha256
23791 (base32
23792 "0agsp8ia4irr540r898ifhjqp28n1zsq1pilv1kc272spn3qhvp9"))))
23793 (build-system emacs-build-system)
23794 (synopsis "Enforce rules for popups")
23795 (description "This package provides a global minor mode in which users
23796 can specify how popup-displaying functions occupy the screen.")
23797 (home-page "https://github.com/wasamasa/shackle")
23798 (license license:gpl3+))))
23799
23800 (define-public emacs-helm-lacarte
23801 (let ((commit "40a6c449720be521435b6b1da7911af3a0b9dca0")
23802 (revision "1"))
23803 (package
23804 (name "emacs-helm-lacarte")
23805 (version (git-version "0" revision commit))
23806 (source
23807 (origin
23808 (method git-fetch)
23809 (uri (git-reference
23810 (url "https://github.com/emacs-helm/helm-lacarte")
23811 (commit commit)))
23812 (file-name (git-file-name name version))
23813 (sha256
23814 (base32
23815 "0dkfd3lap2v7b4nckzv8v7hczmzwzhbl75haqkra107ln91ldbwc"))))
23816 (build-system emacs-build-system)
23817 (propagated-inputs
23818 `(("emacs-helm" ,emacs-helm)
23819 ("emacs-lacarte" ,emacs-lacarte)))
23820 (synopsis "Helm interface to @code{lacarte.el}")
23821 (description "This package provides a Helm interface to
23822 @code{lacarte.el}, a package that displays mode-specific commands as menu
23823 items.")
23824 (home-page "https://github.com/emacs-helm/helm-lacarte")
23825 (license license:gpl3+))))
23826
23827 (define-public emacs-esh-help
23828 (let ((commit "417673ed18a983930a66a6692dbfb288a995cb80")
23829 (revision "1"))
23830 (package
23831 (name "emacs-esh-help")
23832 (version (git-version "1.0.1" revision commit))
23833 (source
23834 (origin
23835 (method git-fetch)
23836 (uri (git-reference
23837 (url "https://github.com/tom-tan/esh-help")
23838 (commit commit)))
23839 (file-name (git-file-name name version))
23840 (sha256
23841 (base32
23842 "0x7d51a6ljl014zy7mi27vzcqqbcwg9z4drq29fr2ajk82mqhlgd"))))
23843 (build-system emacs-build-system)
23844 (propagated-inputs
23845 `(("emacs-dash" ,emacs-dash)))
23846 (synopsis "Help functions for Eshell")
23847 (description "This package provides a @code{run-help} function inspired
23848 by @code{zsh} as well as @code{eldoc} support.")
23849 (home-page "https://github.com/tom-tan/esh-help")
23850 (license license:gpl3+))))
23851
23852 (define-public emacs-isearch-dabbrev
23853 (let ((commit "1efe7abba4923015cbc2462395deaec5446a9cc8")
23854 (revision "1"))
23855 (package
23856 (name "emacs-isearch-dabbrev")
23857 (version (git-version "0.1" revision commit))
23858 (source
23859 (origin
23860 (method git-fetch)
23861 (uri (git-reference
23862 (url "https://github.com/Dewdrops/isearch-dabbrev")
23863 (commit commit)))
23864 (file-name (git-file-name name version))
23865 (sha256
23866 (base32
23867 "17d0816awadvsw1qc7r0p6ira75jmgxaj9hsk9ypayxsaf6ynyrb"))))
23868 (build-system emacs-build-system)
23869 (synopsis "Use @code{dabbrev} within @code{isearch}")
23870 (description "This package allows @code{dabbrev-expand} to be used
23871 within @code{isearch-mode}.")
23872 (home-page "https://github.com/Dewdrops/isearch-dabbrev")
23873 (license license:gpl3+))))
23874
23875 (define-public emacs-helm-linux-disks
23876 (let ((commit "2cdc8116a08534289eb0dc76461d0f93a0bdf231")
23877 (revision "1"))
23878 (package
23879 (name "emacs-helm-linux-disks")
23880 (version (git-version "0.1" revision commit))
23881 (source
23882 (origin
23883 (method git-fetch)
23884 (uri (git-reference
23885 (url "https://github.com/Akirak/helm-linux-disks")
23886 (commit commit)))
23887 (file-name (git-file-name name version))
23888 (sha256
23889 (base32
23890 "1limw82zd8jz3mhh9rqlmhj4cjhfgybs9argfjid1an3vpyhc85i"))))
23891 (build-system emacs-build-system)
23892 (propagated-inputs
23893 `(("emacs-helm" ,emacs-helm)))
23894 (synopsis "Mount/unmount volumes in Linux via Helm")
23895 (description "This package provides a Helm interface to run operations
23896 on removable volumes in Linux.")
23897 (home-page "https://github.com/Akirak/helm-linux-disks")
23898 (license license:gpl3+))))
23899
23900 (define-public emacs-psession
23901 (let ((commit "3e97267c92b164584e06a6c70ee7491714c7c12c")
23902 (revision "1"))
23903 (package
23904 (name "emacs-psession")
23905 (version (git-version "1.5" revision commit))
23906 (source
23907 (origin
23908 (method git-fetch)
23909 (uri (git-reference
23910 (url "https://github.com/thierryvolpiatto/psession")
23911 (commit commit)))
23912 (file-name (git-file-name name version))
23913 (sha256
23914 (base32
23915 "15frl618393bc891d0yi3mdxzvbq790a86vfvp3dyd5riz4ddg95"))))
23916 (build-system emacs-build-system)
23917 (propagated-inputs
23918 `(("emacs-async" ,emacs-async)))
23919 (synopsis "Persistent save of @code{elisp} objects.")
23920 (description "This package provides minor modes for saving Emacs session
23921 data, including buffers, window configuration, variables, and more.")
23922 (home-page "https://github.com/thierryvolpiatto/psession")
23923 (license license:gpl3+))))
23924
23925 (define-public emacs-parseedn
23926 (package
23927 (name "emacs-parseedn")
23928 (version "0.1.0")
23929 (source
23930 (origin
23931 (method git-fetch)
23932 (uri (git-reference
23933 (url "https://github.com/clojure-emacs/parseedn")
23934 (commit (string-append "v" version))))
23935 (file-name (git-file-name name version))
23936 (sha256
23937 (base32
23938 "11wi3hwcgmy54p6ivpijqm7v0hj6j75a19qk5z779bqfrp79b4pc"))))
23939 (build-system emacs-build-system)
23940 (propagated-inputs
23941 `(("emacs-a" ,emacs-a)
23942 ("emacs-parseclj" ,emacs-parseclj)))
23943 (home-page "https://cider.mx")
23944 (synopsis "EDN parser for Emacs Lisp")
23945 (description
23946 "An Emacs Lisp library for parsing EDN (Clojure) data.
23947 It uses parseclj's shift-reduce parser internally.")
23948 (license license:gpl3+)))
23949
23950 (define-public emacs-parseclj
23951 (package
23952 (name "emacs-parseclj")
23953 (version "0.1.0")
23954 (source
23955 (origin
23956 (method git-fetch)
23957 (uri (git-reference
23958 (url "https://github.com/clojure-emacs/parseclj")
23959 (commit (string-append "v" version))))
23960 (file-name (git-file-name name version))
23961 (sha256
23962 (base32
23963 "03bm5dm4hmkqimv4wqxjjh5814pxysmm7z54bv2rf7zwv1x7dggr"))))
23964 (build-system emacs-build-system)
23965 (propagated-inputs `(("emacs-a" ,emacs-a)))
23966 (home-page "https://cider.mx")
23967 (synopsis "Clojure parser for Emacs Lisp")
23968 (description
23969 "An Emacs Lisp library for parsing Clojure code and EDN data.
23970 It supports several input and output formats, all powered by the
23971 same shift-reduce parser function.")
23972 (license license:gpl3+)))
23973
23974 (define-public emacs-hide-mode-line
23975 (package
23976 (name "emacs-hide-mode-line")
23977 (version "1.0.2")
23978 (source (origin
23979 (method git-fetch)
23980 (uri (git-reference
23981 (url "https://github.com/hlissner/emacs-hide-mode-line")
23982 (commit (string-append "v" version))))
23983 (file-name (git-file-name name version))
23984 (sha256
23985 (base32
23986 "0dfzjgxfkcw4wisbyldsm1km18pfp9j8xgadn6qnsz11l55bpgyp"))))
23987 (build-system emacs-build-system)
23988 (synopsis "Emacs plugin that hides the mode-line")
23989 (description "A minor mode that hides the mode-line in your current
23990 buffer. It can be used to toggle an alternative mode-line, toggle its visibility,
23991 or simply disable the mode-line in buffers where it is not very useful.")
23992 (home-page "https://github.com/hlissner/emacs-hide-mode-line")
23993 (license license:expat)))
23994
23995 (define-public emacs-helm-cider
23996 ;; No new release since March 2018.
23997 (let ((commit "9363cc537f06233345aa3af5cd46aa5681ad607b"))
23998 (package
23999 (name "emacs-helm-cider")
24000 (version (git-version "0.4.0" "1" commit))
24001 (home-page "https://github.com/clojure-emacs/helm-cider")
24002 (source (origin
24003 (method git-fetch)
24004 (uri (git-reference
24005 (url home-page)
24006 (commit commit)))
24007 (file-name (git-file-name name version))
24008 (sha256
24009 (base32
24010 "0vfn4smqba1vsshz48ggkj8gs94la0sxb1sq4shrb41qj2x3dci7"))))
24011 (build-system emacs-build-system)
24012 (propagated-inputs
24013 `(("emacs-helm" ,emacs-helm)
24014 ("emacs-cider" ,emacs-cider)))
24015 (synopsis "Helm interface to Clojure's CIDER")
24016 (description "Helm-CIDER adds Helm interfaces to
24017 @command{cider-apropos}, @command{cider-apropos-documentation},
24018 @command{cider-browse-ns} (namespaces).
24019
24020 It also provides original Helm commands: @command{helm-cider-spec},
24021 @command{helm-cider-spec-ns}, @command{helm-cider-repl-history},
24022 @command{helm-cider-cheatsheet}.")
24023 (license license:gpl3+))))
24024
24025 (define-public emacs-edn
24026 ;; No release since February 2016
24027 (let ((commit "be9e32d1b49e35247b263b0243df7cfdc8d413ab"))
24028 (package
24029 (name "emacs-edn")
24030 (version (git-version "1.1.2" "1" commit))
24031 (home-page "https://github.com/expez/edn.el")
24032 (source (origin
24033 (method git-fetch)
24034 (uri (git-reference
24035 (url home-page)
24036 (commit commit)))
24037 (file-name (git-file-name name version))
24038 (sha256
24039 (base32
24040 "1xp2hjhn52k6l1g6ypva6dsklpawni7gvjafbz6404f9dyxflh7l"))))
24041 (build-system emacs-build-system)
24042 (propagated-inputs
24043 `(("emacs-peg" ,emacs-peg)))
24044 (synopsis "Read and write EDN from Elisp")
24045 (description "This is an Emacs Lisp library for reading and writing the
24046 data format @code{edn}. See @url{https://github.com/edn-format/edn}.")
24047 (license license:gpl3+))))
24048
24049 (define-public emacs-helm-clojuredocs
24050 (let ((commit "5a7f0f2cb401be0b09e73262a1c18265ab9a3cea"))
24051 (package
24052 (name "emacs-helm-clojuredocs")
24053 (version (git-version "0.3" "1" commit))
24054 (home-page "https://github.com/mbuczko/helm-clojuredocs")
24055 (source (origin
24056 (method git-fetch)
24057 (uri (git-reference
24058 (url home-page)
24059 (commit commit)))
24060 (file-name (git-file-name name version))
24061 (sha256
24062 (base32
24063 "015b8zxh91ljhqvn6z43gy08di54xcw9skw0i7frj3d7gk984qhl"))))
24064 (build-system emacs-build-system)
24065 (propagated-inputs
24066 `(("emacs-helm" ,emacs-helm)
24067 ("emacs-edn" ,emacs-edn)))
24068 (synopsis "Search help on clojuredocs.org with Helm")
24069 (description "This package provides a Helm interface to lookup Clojure
24070 documentation on @url{https://clojuredocs.org} with Helm.
24071
24072 Two function are exposed:
24073 @itemize
24074 @item @command{helm-clojuredocs}: opens a Helm session with no initial
24075 pattern. Searching starts with minimal 3 characters entered.
24076 @item @command{helm-clojuredocs-at-point}: opens a Helm session with initial
24077 pattern guessed from thing under current cursor position.
24078 @end itemize\n")
24079 (license license:gpl3+))))
24080
24081 (define-public emacs-helm-selector
24082 (package
24083 (name "emacs-helm-selector")
24084 (version "0.3")
24085 (home-page "https://github.com/emacs-helm/helm-selector")
24086 (source
24087 (origin
24088 (method git-fetch)
24089 (uri (git-reference
24090 (url home-page)
24091 (commit version)))
24092 (file-name (git-file-name name version))
24093 (sha256
24094 (base32
24095 "134rxm4zicn565k3q5q15iiqcvcyiq6lsvmsqr53ifjjbq8pd9y6"))))
24096 (build-system emacs-build-system)
24097 (propagated-inputs
24098 `(("emacs-helm" ,emacs-helm)))
24099 (synopsis "Convenient related-buffer selection for Emacs Helm")
24100 (description "Helm Selector is a collection of Helm helper functions for
24101 convenient buffer selection.
24102
24103 It is especially helpful to create Helm sessions to navigate buffers of a
24104 given mode in a “do what I mean” fashion:
24105
24106 If current buffer is not of mode X, switch to last buffer of mode X. If
24107 current buffer is of mode X, show a Helm session of all buffers in mode X. In
24108 the Helm session, it’s also possible to input an arbitrary name which will be
24109 used for the creation of a new buffer of mode X.")
24110 (license license:gpl3+)))
24111
24112 (define-public emacs-helm-wordnut
24113 (let ((commit "9681a9535a839cd5d042c302945ae595852fe7bf"))
24114 (package
24115 (name "emacs-helm-wordnut")
24116 (version (git-version "0.1" "1" commit))
24117 (home-page "https://github.com/emacs-helm/helm-wordnut")
24118 (source
24119 (origin
24120 (method git-fetch)
24121 (uri (git-reference
24122 (url home-page)
24123 (commit commit)))
24124 (file-name (git-file-name name version))
24125 (sha256
24126 (base32
24127 "0msj7nbsb363pxamxi7n2z08cp5jizkpjbwia8f5a161wjglrihs"))))
24128 (build-system emacs-build-system)
24129 (inputs
24130 `(("wordnet" ,wordnet)))
24131 (propagated-inputs
24132 `(("emacs-helm" ,emacs-helm)))
24133 (arguments
24134 `(#:phases
24135 (modify-phases %standard-phases
24136 (add-after 'unpack 'configure
24137 (lambda* (#:key inputs #:allow-other-keys)
24138 (let ((wn (assoc-ref inputs "wordnet")))
24139 ;; .el is read-only in git.
24140 (chmod "helm-wordnut.el" #o644)
24141 ;; Specify the absolute file names of the various
24142 ;; programs so that everything works out-of-the-box.
24143 (emacs-substitute-variables "helm-wordnut.el"
24144 ("helm-wordnut-prog" (string-append wn "/bin/wn"))
24145 ("helm-wordnut-wordnet-location"
24146 (string-append wn "/dict")))))))))
24147 (synopsis "Emacs Helm interface for Wordnet")
24148 (description "This package is merely a combination of two other Emacs
24149 packages: @code{helm-wordnet} and @code{wordnut}. It features word completion
24150 with Helm and displays a buffer of all the different result types available to
24151 Wordnet.")
24152 (license license:gpl3+))))
24153
24154 (define-public emacs-metal-mercury-mode
24155 (let ((commit "99e2d8fb7177cae3bfa2dec2910fc28216d5f5a8")
24156 (revision "1")
24157 (version "0.0.0"))
24158 (package
24159 (name "emacs-metal-mercury-mode")
24160 (version (git-version version revision commit))
24161 (source
24162 (origin
24163 (method git-fetch)
24164 (uri (git-reference
24165 (url "https://github.com/ahungry/metal-mercury-mode")
24166 (commit commit)))
24167 (sha256
24168 (base32
24169 "0iil5k3rgifz2vqwsy12rbv5rzyvidq4sgwazsb2hzys8xynmfn5"))
24170 (file-name (git-file-name name version))))
24171 (build-system emacs-build-system)
24172 (propagated-inputs
24173 `(("emacs-dash" ,emacs-dash)))
24174 (synopsis "Major mode for editing Mercury files")
24175 (description
24176 "Major mode for editing Mercury files. This is a rewrite of the original
24177 mercury-mode provided by Emacs as a wrapper around prolog-mode.")
24178 (home-page "https://github.com/ahungry/metal-mercury-mode")
24179 (license license:gpl3+))))
24180
24181 (define-public emacs-boxquote
24182 ;; The following commit is 2.1 release with a switch to GPL3+ license.
24183 (let ((commit "7e47e0e2853bc1215739b2e28f260e9eed93b2c5")
24184 (revision "0"))
24185 (package
24186 (name "emacs-boxquote")
24187 (version (git-version "2.1" revision commit))
24188 (source
24189 (origin
24190 (method git-fetch)
24191 (uri (git-reference
24192 (url "https://github.com/davep/boxquote.el")
24193 (commit commit)))
24194 (file-name (git-file-name name version))
24195 (sha256
24196 (base32 "1aqhg24gajvllbqxb0zxrnx6sddas37k2ldfinqyszd856sjhsg3"))))
24197 (build-system emacs-build-system)
24198 (home-page "https://github.com/davep/boxquote.el")
24199 (synopsis "Quote text with different kinds of boxes")
24200 (description "@code{boxquote} provides a set of functions for using
24201 a text quoting style that partially boxes in the left hand side of an area of
24202 text, such a marking style might be used to show externally included text or
24203 example code.")
24204 (license license:gpl3+))))
24205
24206 (define-public emacs-buffer-move
24207 (package
24208 (name "emacs-buffer-move")
24209 (version "0.6.2")
24210 (source
24211 (origin
24212 (method git-fetch)
24213 (uri (git-reference
24214 (url "https://github.com/lukhas/buffer-move")
24215 (commit version)))
24216 (file-name (git-file-name name version))
24217 (sha256
24218 (base32 "0xdks4jfqyhkh34y48iq3gz8swp0f526kwnaai5mhgvazvs4za8c"))))
24219 (build-system emacs-build-system)
24220 (home-page "https://github.com/lukhas/buffer-move")
24221 (synopsis "Functions for moving Emacs' buffers around")
24222 (description
24223 "This package define functions for swapping buffers between windows
24224 contained in the same frame. An alternate behavior is to have the current
24225 window switch to the previous buffer instead of swapping with the other
24226 window.")
24227 (license license:gpl3+)))
24228
24229 (define-public emacs-company-ebdb
24230 (package
24231 (name "emacs-company-ebdb")
24232 (version "1.1")
24233 (source
24234 (origin
24235 (method url-fetch)
24236 (uri (string-append "https://elpa.gnu.org/packages/"
24237 "company-ebdb-" version ".el"))
24238 (sha256
24239 (base32 "146qpiigz12zp1823ggxfrx090g0mxs7gz1ba7sa0iq6ibgzwwm9"))))
24240 (build-system emacs-build-system)
24241 (propagated-inputs
24242 `(("emacs-company" ,emacs-company)))
24243 (home-page "https://elpa.gnu.org/packages/company-ebdb.html")
24244 (synopsis "Company completion backend for EBDB in Message mode")
24245 (description "@code{company-ebdb} provides Company mode integration for
24246 EBDB. It is copied more or less intact from @code{company-bbdb}, originally
24247 by Jan Tatarik.")
24248 (license license:gpl3+)))
24249
24250 (define-public emacs-mwim
24251 ;; Use the latest commit not in a release version as of yet, since it
24252 ;; contains a bug fix for the cases where `comment-start-skip' is nil.
24253 (let ((commit "b4f3edb4c0fb8f8b71cecbf8095c2c25a8ffbf85")
24254 (revision "0"))
24255 (package
24256 (name "emacs-mwim")
24257 (version (git-version "0.4" revision commit))
24258 (source
24259 (origin
24260 (method git-fetch)
24261 (uri (git-reference
24262 (url "https://github.com/alezost/mwim.el")
24263 (commit commit)))
24264 (file-name (git-file-name name version))
24265 (sha256
24266 (base32 "0l3k611gp9g2x2vfmh92wnhnda81dslpwwpb8mxmzk308man77ya"))))
24267 (build-system emacs-build-system)
24268 (home-page "https://github.com/alezost/mwim.el")
24269 (synopsis "Move to the beginning/end of line, code or comment")
24270 (description "@code{mwim} provides several commands to switch between
24271 various line positions, like moving to the beginning/end of code, line, or
24272 comment.")
24273 (license license:gpl3+))))
24274
24275 (define-public emacs-delight
24276 (package
24277 (name "emacs-delight")
24278 (version "1.7")
24279 (source
24280 (origin
24281 (method url-fetch)
24282 (uri (string-append "https://elpa.gnu.org/packages/"
24283 "delight-" version ".el"))
24284 (sha256
24285 (base32 "0pihsghrf9xnd1kqlq48qmjcmp5ra95wwwgrb3l8m1wagmmc0bi1"))))
24286 (build-system emacs-build-system)
24287 (home-page "https://elpa.gnu.org/packages/delight.html")
24288 (synopsis "Dimmer switch for your mode-line lighter text")
24289 (description "@code{delight} enables customizing or hiding the
24290 mode-line text (lighter) of major and minor modes.")
24291 (license license:gpl3+)))
24292
24293 (define-public emacs-unkillable-scratch
24294 ;; Use the latest (unreleased) commit as of now, since it contains a handy
24295 ;; `unkillable-scratch-do-not-reset-scratch-buffer' customization to not
24296 ;; repopulate the scratch buffer with `initial-scratch-message'.
24297 (let ((commit "b24c2a760529833f230c14cb02ff6e7ec92288ab")
24298 (revision "0"))
24299 (package
24300 (name "emacs-unkillable-scratch")
24301 (version (git-version "1.0.0" revision commit))
24302 (source
24303 (origin
24304 (method git-fetch)
24305 (uri (git-reference
24306 (url "https://github.com/EricCrosson/unkillable-scratch")
24307 (commit commit)))
24308 (file-name (git-file-name name version))
24309 (sha256
24310 (base32 "13wjbcxr3km4s96yhpavgs5acs5pvqv3ih1p84diqb3x3i6wd4pa"))))
24311 (build-system emacs-build-system)
24312 (home-page "https://github.com/EricCrosson/unkillable-scratch")
24313 (synopsis "Prevents the *scratch* buffer from being killed")
24314 (description "@code{unkillable-scratch} helps prevent killing buffers
24315 matching a given regexp.")
24316 (license license:gpl2+))))
24317
24318 (define-public emacs-switch-buffer-functions
24319 (package
24320 (name "emacs-switch-buffer-functions")
24321 (version "0.0.1")
24322 (source
24323 (origin
24324 (method git-fetch)
24325 (uri (git-reference
24326 (url "https://github.com/10sr/switch-buffer-functions-el")
24327 (commit (string-append "v" version))))
24328 (file-name (git-file-name name version))
24329 (sha256
24330 (base32 "0pq53b8wrjbrxd5hnrcdi0z7mffp4bax55hn90k9ca3j76lhbn1k"))))
24331 (build-system emacs-build-system)
24332 (home-page "https://github.com/10sr/switch-buffer-functions-el")
24333 (synopsis "Hooks run when switching current buffer")
24334 (description "This package provides a hook variable
24335 @code{switch-buffer-functions}. The hooks will be run when the current buffer
24336 is changed after an interactive command, i.e., when @code{post-command-hook}
24337 hooks are run. The hooked functions will be called with both the previous and
24338 the current buffer.")
24339 (license license:unlicense)))
24340
24341 (define-public emacs-erc-scrolltoplace
24342 (package
24343 (name "emacs-erc-scrolltoplace")
24344 (version "0.1.0")
24345 (source
24346 (origin
24347 (method git-fetch)
24348 (uri (git-reference
24349 (url "https://gitlab.com/jgkamat/erc-scrolltoplace.git")
24350 (commit version)))
24351 (file-name (git-file-name name version))
24352 (sha256
24353 (base32 "11zpqwh1mlfifbgnvhc63bvnhg340jgxssm3m43hr1sxsyb52lh6"))))
24354 (build-system emacs-build-system)
24355 (propagated-inputs
24356 `(("emacs-switch-buffer-functions" ,emacs-switch-buffer-functions)))
24357 (home-page "https://gitlab.com/jgkamat/erc-scrolltoplace")
24358 (synopsis "ERC module to replace scrolltobottom while using keep-place")
24359 (description "@code{erc-scrolltoplace} is an ERC module to try
24360 to emulate @code{scrolltobottom} while @code{keep-place} is enabled.")
24361 (license license:gpl3+)))
24362
24363 (define-public emacs-dmenu
24364 ;; Use the latest commit, as there are no tagged releases.
24365 (let ((commit "e8cc9b27c79d3ecc252267c082ab8e9c82eab264")
24366 (revision "0"))
24367 (package
24368 (name "emacs-dmenu")
24369 (version (git-version "0.1" revision commit))
24370 (source
24371 (origin
24372 (method git-fetch)
24373 (uri (git-reference
24374 (url "https://github.com/lujun9972/el-dmenu")
24375 (commit commit)))
24376 (file-name (git-file-name name version))
24377 (sha256
24378 (base32 "098ncygms1r33zhjlq4fj2p4jc91v5whqrm3fazzdk7sd6dilf25"))))
24379 (build-system emacs-build-system)
24380 (home-page "https://github.com/lujun9972/el-dmenu")
24381 (synopsis "Simulate the @command{dmenu} command line program")
24382 (description "This package provides a @command{dmenu} command for
24383 launching other commands/applications from within Emacs, similar to the
24384 @command{dmenu} program. This is especially useful when using EXWM.")
24385 (license license:gpl3+))))
24386
24387 (define-public emacs-no-littering
24388 (package
24389 (name "emacs-no-littering")
24390 (version "1.2.0")
24391 (source
24392 (origin
24393 (method git-fetch)
24394 (uri (git-reference
24395 (url "https://github.com/emacscollective/no-littering")
24396 (commit (string-append "v" version))))
24397 (file-name (git-file-name name version))
24398 (sha256
24399 (base32 "1hma9var0nmrmjlh16s49hbfc1s4jvfd2prqxf14lxfd51404niw"))))
24400 (build-system emacs-build-system)
24401 (home-page "https://github.com/emacscollective/no-littering")
24402 (synopsis "Help keep ~/.emacs.d/ clean")
24403 (description "The default paths used to store configuration files and
24404 persistent data are not consistent across Emacs packages, be them built-in or
24405 third-party ones. @code{no-littering} sets out to help clean
24406 @file{~/.emacs.d/} by putting configuration files and persistent data files in
24407 two user-defined directories, as well as using more descriptive names for
24408 files and subdirectories when appropriate.")
24409 (license license:gpl3+)))
24410
24411 (define-public emacs-meson-mode
24412 (package
24413 (name "emacs-meson-mode")
24414 (version "0.3")
24415 (source
24416 (origin
24417 (method git-fetch)
24418 (uri (git-reference
24419 (url "https://github.com/wentasah/meson-mode")
24420 (commit (string-append "v" version))))
24421 (file-name (git-file-name name version))
24422 (sha256
24423 (base32 "0hlqvq3j4f6g16nj3bm2wbkncn8hv8c8iqd0sch3w80wwqnr622y"))))
24424 (build-system emacs-build-system)
24425 (home-page "https://github.com/wentasah/meson-mode")
24426 (synopsis "Major mode for Meson build system files")
24427 (description
24428 "This is an Emacs major mode for Meson build system files. Syntax
24429 highlighting works reliably. Indentation works too, but there are probably
24430 cases where it breaks.")
24431 (license license:gpl3+)))
24432
24433 (define-public emacs-message-x
24434 ;; Use the latest commit, as there are no tagged releases.
24435 (let ((commit "5524de7bbfdd8749c110f48de5afb024d9f83133")
24436 (revision "0"))
24437 (package
24438 (name "emacs-message-x")
24439 (version (git-version "1.23" revision commit))
24440 (source
24441 (origin
24442 (method git-fetch)
24443 (uri (git-reference
24444 (url "https://github.com/emacsmirror/message-x")
24445 (commit commit)))
24446 (file-name (git-file-name name version))
24447 (sha256
24448 (base32 "0qy1xf11j357lsnbb829hnbg7fq1cii4cx54fwf0wgjh1bv2abvj"))))
24449 (build-system emacs-build-system)
24450 (home-page "https://www.emacswiki.org/emacs/message-x.el")
24451 (synopsis "Customizable completion in message headers")
24452 (description "@code{message-x} assigns a context-sensitive function to
24453 the TAB key in Message mode. When on a header line, it performs completion
24454 based on which header we are in (for example, newsgroup name completion makes
24455 sense on the @samp{Newsgroups} header, whereas mail alias expansion makes
24456 sense in the @samp{To} and @samp{Cc} headers). When in the message body, this
24457 executes a different function (default: @code{indent-relative}).")
24458 (license license:gpl2+))))
24459
24460 (define-public emacs-glsl-mode
24461 ;; No tag, version grabbed from source .el file.
24462 (let ((commit "b07112016436d9634cd4ef747f9af6b01366d136")
24463 (revision "0"))
24464 (package
24465 (name "emacs-glsl-mode")
24466 (version (git-version "2.4" revision commit))
24467 (source
24468 (origin
24469 (method git-fetch)
24470 (uri (git-reference
24471 (url "https://github.com/jimhourihan/glsl-mode")
24472 (commit commit)))
24473 (file-name (git-file-name name version))
24474 (sha256
24475 (base32 "0bav9ipfm0vy26n74ngsmjzc7fsyqz6xmriadzx55s44h8p5dn1s"))))
24476 (build-system emacs-build-system)
24477 (home-page "https://github.com/jimhourihan/glsl-mode")
24478 (synopsis "Major mode for Open GLSL shader files")
24479 (description
24480 "This package provides a major mode for editing OpenGLSL grammar files,
24481 usually files ending with @file{.vert}, @file{.frag}, @file{.glsl} or
24482 @file{.geom}. It is based on C mode plus some features and pre-specified
24483 fontifications.")
24484 (license license:gpl3+))))
24485
24486 (define-public emacs-gnus-harvest
24487 (let ((commit "feda071a87b799bd5d23cacde3ee71f0b166e75d")
24488 (revision "0"))
24489 (package
24490 (name "emacs-gnus-harvest")
24491 (version (git-version "1.0" revision commit))
24492 (source
24493 (origin
24494 (method git-fetch)
24495 (uri (git-reference
24496 (url "https://github.com/jwiegley/gnus-harvest")
24497 (commit commit)))
24498 (file-name (git-file-name name version))
24499 (sha256
24500 (base32 "08zb7vc3v3wdxkzgi902vlc5ybfvm8fxrvm5drnwfsjj9873pbcb"))))
24501 (build-system emacs-build-system)
24502 (inputs
24503 `(("sqlite" ,sqlite)))
24504 (arguments
24505 `(#:phases
24506 (modify-phases %standard-phases
24507 (add-before 'build 'patch-exec-paths
24508 (lambda* (#:key inputs #:allow-other-keys)
24509 (let ((sqlite (assoc-ref inputs "sqlite"))
24510 (file "gnus-harvest.el"))
24511 (make-file-writable file)
24512 (emacs-substitute-variables file
24513 ("gnus-harvest-sqlite-program"
24514 (string-append sqlite "/bin/sqlite3"))))
24515 #t)))))
24516 (home-page "https://github.com/jwiegley/gnus-harvest")
24517 (synopsis
24518 "Harvest email addresses from read/written Gnus articles")
24519 (description "@code{gnus-harvest} notices email address in every message
24520 or post you read or write, and collects them in a SQLite database, which can
24521 be easily and quickly queried to determine the completion list. It optionally
24522 uses BBDB and Message-X.")
24523 (license license:gpl3+))))
24524
24525 (define-public emacs-auto-dictionary-mode
24526 (package
24527 (name "emacs-auto-dictionary-mode")
24528 (version "1.1")
24529 (source
24530 (origin
24531 (method git-fetch)
24532 (uri (git-reference
24533 (url "https://github.com/nschum/auto-dictionary-mode")
24534 (commit version)))
24535 (file-name (git-file-name name version))
24536 (sha256
24537 (base32 "191294k92qp8gmfypf0q8j8qrym96aqikzvyb9p03wqvbr3r1dsk"))))
24538 (build-system emacs-build-system)
24539 (home-page "http://nschum.de/src/emacs/auto-dictionary/")
24540 (synopsis "Automatic dictionary switcher for Emacs spell checking")
24541 (description "@code{auto-dictionary} is a minor mode that hooks into
24542 Flyspell's on-the-fly spell checking and extends these checks to also detect
24543 language. Auto-dictionary then sets @code{ispell-dictionary} to use the
24544 detected language.")
24545 (license license:gpl2+)))
24546
24547 (define-public emacs-persist
24548 (package
24549 (name "emacs-persist")
24550 (version "0.4")
24551 (source
24552 (origin
24553 (method url-fetch)
24554 (uri (string-append "https://elpa.gnu.org/packages/"
24555 "persist-" version ".tar"))
24556 (sha256
24557 (base32 "0gpxy41qawzss2526j9a7lys60vqma1lvamn4bfabwza7gfhac0q"))))
24558 (build-system emacs-build-system)
24559 (home-page "http://elpa.gnu.org/packages/persist.html")
24560 (synopsis "Persist variables between Emacs sessions")
24561 (description
24562 "This package provides variables which persist across sessions.
24563 Values are stored in a directory in @code{user-emacs-directory}, using
24564 one file per value. This makes it easy to delete or remove unused
24565 variables.")
24566 (license license:gpl3+)))
24567
24568 (define-public emacs-company-emoji
24569 (package
24570 (name "emacs-company-emoji")
24571 (version "2.5.2")
24572 (source
24573 (origin
24574 (method git-fetch)
24575 (uri (git-reference
24576 (url "https://github.com/dunn/company-emoji/")
24577 (commit version)))
24578 (file-name (git-file-name name version))
24579 (sha256
24580 (base32 "0r9zcbm3nb3zw5cwrkl098v5b49jbga5404bj7j55g6k4rwkjar2"))))
24581 (build-system emacs-build-system)
24582 (propagated-inputs
24583 `(("emacs-company" ,emacs-company)))
24584 (home-page "https://github.com/dunn/company-emoji/")
24585 (synopsis "Company completion back-end for emoji")
24586 (description
24587 "This library is a Company back-end providing auto-completion for
24588 emoji.")
24589 (license license:gpl3+)))
24590
24591 (define-public emacs-exiftool
24592 (package
24593 (name "emacs-exiftool")
24594 (version "0.3.2")
24595 (source
24596 (origin
24597 (method git-fetch)
24598 (uri (git-reference
24599 (url "https://git.systemreboot.net/exiftool.el/")
24600 (commit (string-append "v" version))))
24601 (file-name (git-file-name name version))
24602 (sha256
24603 (base32
24604 "0bv58is66cz21yhc0qqkp1z4nk13zfi2l7i6pjbhyi0g1n88qqyv"))))
24605 (build-system emacs-build-system)
24606 (arguments
24607 `(#:tests? #t
24608 #:test-command '("make" "-C" "tests")
24609 #:phases
24610 (modify-phases %standard-phases
24611 (add-after 'unpack 'configure
24612 (lambda* (#:key inputs #:allow-other-keys)
24613 (make-file-writable "exiftool.el")
24614 (emacs-substitute-variables "exiftool.el"
24615 ("exiftool-executable"
24616 (string-append (assoc-ref inputs "perl-image-exiftool")
24617 "/bin/exiftool")))
24618 #t)))))
24619 (inputs
24620 `(("perl-image-exiftool" ,perl-image-exiftool)))
24621 (home-page "https://git.systemreboot.net/exiftool.el/about/")
24622 (synopsis "Elisp wrapper around ExifTool")
24623 (description "@code{emacs-exiftool} is an Elisp wrapper around ExifTool.
24624 ExifTool supports reading and writing metadata in various formats including
24625 EXIF, XMP and IPTC.")
24626 (license license:gpl3+)))
24627
24628 (define-public emacs-password-generator
24629 (package
24630 (name "emacs-password-generator")
24631 (version "1.01")
24632 (home-page "https://github.com/zargener/emacs-password-genarator")
24633 (source
24634 (origin
24635 (method git-fetch)
24636 (uri (git-reference
24637 (url home-page)
24638 (commit "904cdb591a04305ba882ce19e1d117f5fa60f7d3")))
24639 (file-name (git-file-name name version))
24640 (sha256
24641 (base32
24642 "1qgvn79qz1h8ykm5i1qv2fja4v2y0g2i0n5sf7byhnqhqlwn63nv"))))
24643 (build-system emacs-build-system)
24644 (synopsis "Generate passwords inside Emacs")
24645 (description "@code{emacs-password-generator} provides simple functions to
24646 generate random passwords and insert them into the current buffer. It also
24647 supports generation of phonetic and numeric passwords.")
24648 (license license:artistic2.0)))
24649
24650 (define-public emacs-csv
24651 (package
24652 (name "emacs-csv")
24653 (version "2.1")
24654 (home-page "https://gitlab.com/u11/csv.el")
24655 (source
24656 (origin
24657 (method git-fetch)
24658 (uri (git-reference
24659 (url home-page)
24660 (commit (string-append "V" version))))
24661 (file-name (git-file-name name version))
24662 (sha256
24663 (base32
24664 "1vmazjrfcsa9aa9aw8bq5sazdhqvhxyj837dyw5lmh8gk7z0xdaa"))))
24665 (build-system emacs-build-system)
24666 (synopsis "Elisp functions for reading and parsing CSV files")
24667 (description
24668 "@code{csv.el} provides functions for reading and parsing @acronym{CSV,
24669 Comma-Separated Values} files. It follows the format as defined in RFC 4180
24670 @emph{Common Format and MIME Type for CSV
24671 Files} (@url{http://tools.ietf.org/html/rfc4180}).")
24672 (license license:gpl3+)))
24673
24674 (define-public emacs-org-journal
24675 (package
24676 (name "emacs-org-journal")
24677 (version "2.1.1")
24678 (source
24679 (origin
24680 (method git-fetch)
24681 (uri (git-reference
24682 (url "https://github.com/bastibe/org-journal")
24683 (commit version)))
24684 (file-name (git-file-name name version))
24685 (sha256
24686 (base32 "1p9i6v3bwi1ab576vc9qg1ki91197d6nkkg857s52zsan1zlkzzw"))))
24687 (build-system emacs-build-system)
24688 (home-page "https://github.com/bastibe/org-journal")
24689 (synopsis "Simple Org mode journaling mode")
24690 (description
24691 "Org Journal is a set of functions to maintain a simple personal diary /
24692 journal using in Emacs, adapted from
24693 @url{https://www.emacswiki.org/emacs/PersonalDiary}. Convenient bindings
24694 allow the creation of journal records in the current daily, weekly, monthly or
24695 yearly file and search within all records or specified time intervals. All
24696 records can be browsed and searched from the Emacs Calendar for convenience.
24697 All entries in a specified TODO state will be carried over to the next day.")
24698 (license license:bsd-3)))
24699
24700 (define-public emacs-org-static-blog
24701 (package
24702 (name "emacs-org-static-blog")
24703 (version "1.3.0")
24704 (source
24705 (origin
24706 (method git-fetch)
24707 (uri (git-reference
24708 (url "https://github.com/bastibe/org-static-blog")
24709 (commit version)))
24710 (file-name (git-file-name name version))
24711 (sha256
24712 (base32 "15iy3z8rglaqbx1fz14inh18ksgjsmq30b8hyv3lgjvcc9ssaiw0"))))
24713 (build-system emacs-build-system)
24714 (home-page "https://github.com/bastibe/org-static-blog")
24715 (synopsis
24716 "Simple Org mode based static blog generator")
24717 (description
24718 "@code{emacs-org-static-blog} is one more static blog generator, it
24719 focuses on being simple. All files are simple Org files in a directory. The
24720 only requirement is that every Org file must have a @samp{title} and
24721 a @samp{date} keywords, and optionally, a @samp{filetags} keyword.")
24722 (license license:bsd-3)))
24723
24724 (define-public emacs-ddskk
24725 ;; XXX: Upstream adds code names to their release tags, so version and code
24726 ;; name below need to be updated together.
24727 (let ((version "16.3")
24728 (code-name "Kutomatsunai"))
24729 (package
24730 (name "emacs-ddskk")
24731 (version version)
24732 (source
24733 (origin
24734 (method git-fetch)
24735 (uri (git-reference
24736 (url "https://github.com/skk-dev/ddskk")
24737 (commit (string-append "ddskk-" version "_" code-name))))
24738 (file-name (git-file-name name version))
24739 (sha256
24740 (base32 "0ln4x8f35z5y3kf9m718g223bn3lzcmw40jfjg2j5yi24ydf1wm9"))))
24741 (build-system gnu-build-system)
24742 (arguments
24743 `(#:modules ((guix build gnu-build-system)
24744 (guix build utils)
24745 (guix build emacs-utils))
24746 #:imported-modules (,@%gnu-build-system-modules
24747 (guix build emacs-utils))
24748 #:test-target "test"
24749 #:phases
24750 (modify-phases %standard-phases
24751 (replace 'configure
24752 (lambda* (#:key outputs #:allow-other-keys)
24753 (make-file-writable "SKK-MK")
24754 (emacs-substitute-variables "SKK-MK"
24755 ("PREFIX" (assoc-ref outputs "out"))
24756 ("LISPDIR" '(expand-file-name "/share/emacs/site-lisp" PREFIX))
24757 ("SKK_PREFIX" "")
24758 ("SKK_INFODIR" '(expand-file-name "info" PREFIX)))
24759 (for-each make-file-writable (find-files "./doc"))
24760 #t)))))
24761 (native-inputs
24762 `(("emacs-minimal" ,emacs-minimal)))
24763 (home-page "https://github.com/skk-dev/ddskk")
24764 (synopsis "Simple Kana to Kanji conversion program")
24765 (description
24766 "Daredevil SKK is a version of @acronym{SKK, Simple Kana to Kanji
24767 conversion program}, a Japanese input method on Emacs.")
24768 (license license:gpl2+))))
24769
24770 (define-public emacs-objed
24771 (package
24772 (name "emacs-objed")
24773 (version "0.8.3")
24774 (source
24775 (origin
24776 (method url-fetch)
24777 (uri (string-append
24778 "https://elpa.gnu.org/packages/objed-" version ".tar"))
24779 (sha256
24780 (base32
24781 "1s38d6bvggdk5p45ww1jb4gxifzgjwgw1m6ar920nlg0j4fgbcvr"))))
24782 (build-system emacs-build-system)
24783 (home-page "https://github.com/clemera/objed")
24784 (synopsis "Navigate and edit text objects")
24785 (description
24786 "@code{emacs-objed} allows navigating and editing text objects. It
24787 enables modal editing and composition of commands, too. It combines ideas of
24788 other Editors like Vim or Kakoune and tries to align them with regular Emacs
24789 conventions.")
24790 (license license:gpl3+)))
24791
24792 (define-public emacs-haskell-snippets
24793 ;; The commit below is 5 commits ahead of release, and includes a build fix.
24794 (let ((commit "07b0f460b946fd1be26c29652cb0468b47782f3a"))
24795 (package
24796 (name "emacs-haskell-snippets")
24797 (version (git-version "0.1.0" "0" commit))
24798 (source
24799 (origin
24800 (method git-fetch)
24801 (uri
24802 (git-reference
24803 (url "https://github.com/haskell/haskell-snippets")
24804 (commit commit)))
24805 (file-name (git-file-name name version))
24806 (sha256
24807 (base32 "0a7y3awi9hcyahggf0ghsdwvsmrhr9yq634wy9lkqjzrm2hqj0ci"))))
24808 (build-system emacs-build-system)
24809 (arguments
24810 `(#:phases
24811 (modify-phases %standard-phases
24812 (add-after 'install 'install-snippets
24813 (lambda* (#:key outputs #:allow-other-keys)
24814 (let* ((out (assoc-ref outputs "out"))
24815 (snippets
24816 (string-append
24817 out "/share/emacs/site-lisp/snippets/haskell-mode")))
24818 (mkdir-p snippets)
24819 (copy-recursively "snippets/haskell-mode" snippets)
24820 #t))))))
24821 (propagated-inputs
24822 `(("emacs-yasnippet" ,emacs-yasnippet)))
24823 (home-page "https://github.com/haskell/haskell-snippets")
24824 (synopsis "Official collection of YASnippet Haskell snippets for Emacs")
24825 (description "Haskell-Snippets is a collection of YASnippet Haskell
24826 snippets for Emacs.")
24827 (license license:expat))))
24828
24829 (define-public emacs-org-roam
24830 (package
24831 (name "emacs-org-roam")
24832 (version "1.2.2")
24833 (source
24834 (origin
24835 (method git-fetch)
24836 (uri (git-reference
24837 (url "https://github.com/org-roam/org-roam")
24838 (commit (string-append "v" version))))
24839 (file-name (git-file-name name version))
24840 (sha256
24841 (base32 "0fanv0nl03qn65amxsq4q544zrhv94a37gdg9bwydik9439avbsc"))))
24842 (build-system emacs-build-system)
24843 (propagated-inputs
24844 `(("emacs-company" ,emacs-company)
24845 ("emacs-dash" ,emacs-dash)
24846 ("emacs-emacsql-sqlite3" ,emacs-emacsql-sqlite3)
24847 ("emacs-f" ,emacs-f)
24848 ("emacs-org-ref" ,emacs-org-ref)
24849 ("emacs-s" ,emacs-s)))
24850 (home-page "https://github.com/org-roam/org-roam/")
24851 (synopsis "Non-hierarchical note-taking with Org mode")
24852 (description "Emacs Org Roam is a solution for taking non-hierarchical
24853 notes with Org mode. Notes are captured without hierarchy and are connected
24854 by tags. Notes can be found and created quickly. Org Roam should also work
24855 as a plug-and-play solution for anyone already using Org mode for their
24856 personal wiki.")
24857 (license license:gpl3+)))
24858
24859 (define-public emacs-org-generate
24860 (package
24861 (name "emacs-org-generate")
24862 (version "1.0.0")
24863 (source (origin
24864 (method git-fetch)
24865 (uri (git-reference
24866 (url "https://github.com/conao3/org-generate.el.git")
24867 (commit (string-append "v" version))))
24868 (file-name (git-file-name name version))
24869 (sha256
24870 (base32
24871 "0z2frp5mn3lp2xskwanw2rncrwa50x3aphy87vfxmhx4fqlqrzy8"))))
24872 (inputs
24873 `(("emacs-cort" ,emacs-cort))) ;tests suite
24874 (propagated-inputs
24875 `(("emacs-mustache" ,emacs-mustache)))
24876 (arguments
24877 `(#:tests? #t
24878 #:test-command '("emacs" "--batch" "--quick"
24879 "--directory=." "--load=org-generate-tests.el"
24880 "--funcall=cort-test-run")))
24881 (build-system emacs-build-system)
24882 (home-page "https://github.com/conao3/org-generate.el")
24883 (synopsis "Generate template files and folders from Org document")
24884 (description "This package generates files and folders from Emacs
24885 org-mode templates.")
24886 (license license:gpl3+)))
24887
24888 (define-public emacs-uml-mode
24889 ;; Package has no release. Version is extracted from "Version:" keyword in
24890 ;; main file.
24891 (let ((commit "4c37ac1c4424b2313cd8f16ba48a98a4cc214200")
24892 (revision "1"))
24893 (package
24894 (name "emacs-uml-mode")
24895 (version (git-version "0.0.4" revision commit))
24896 (source
24897 (origin
24898 (method git-fetch)
24899 (uri (git-reference
24900 (url "https://github.com/ianxm/emacs-uml")
24901 (commit commit)))
24902 (file-name (git-file-name name version))
24903 (sha256
24904 (base32 "145i4srnfvd1vyibri2a1l6p9mbjvkkwlrpi41134pbarqffcnka"))))
24905 (build-system emacs-build-system)
24906 (home-page "https://github.com/ianxm/emacs-uml")
24907 (synopsis "Minor mode for editing ASCII UML sequence diagrams")
24908 (description "Emacs UML mode is a minor mode that makes it easy to build
24909 ASCII UML sequence diagrams in Emacs, which can be embedded in source code,
24910 comments or emails.")
24911 (license license:gpl3+))))
24912
24913 (define-public emacs-trashed
24914 (package
24915 (name "emacs-trashed")
24916 (version "1.9.0")
24917 (source
24918 (origin
24919 (method git-fetch)
24920 (uri (git-reference
24921 (url "https://github.com/shingo256/trashed/")
24922 (commit version)))
24923 (file-name (git-file-name name version))
24924 (sha256
24925 (base32 "13grdi12iwlw4fiphdfmvclfpbr6ajlgfbfyi7v41z8k3rxz4ypz"))))
24926 (build-system emacs-build-system)
24927 (home-page "https://github.com/shingo256/trashed/")
24928 (synopsis "View and edit system trash can in Emacs")
24929 (description "Open, view, browse, restore or permanently delete trashed
24930 files or directories in trash can with Dired-like look and feel. The trash
24931 can has to be compliant with freedesktop.org. In Emacs, you can trash files by
24932 deleting them with @code{(setq delete-by-moving-to-trash t)}. This package
24933 provides a simple but convenient user interface to manage those trashed
24934 files.")
24935 (license license:gpl3+)))
24936
24937 (define-public emacs-plantuml-mode
24938 (package
24939 (name "emacs-plantuml-mode")
24940 (version "1.4.1")
24941 (source
24942 (origin
24943 (method git-fetch)
24944 (uri (git-reference
24945 (url "https://github.com/skuro/plantuml-mode")
24946 (commit (string-append "v" version))))
24947 (file-name (git-file-name name version))
24948 (sha256
24949 (base32 "0yp41d2dmf3sx7qnl5x0zdjcr9y71b2wwc9m0q31v22xqn938ipc"))))
24950 (arguments
24951 '(#:phases
24952 (modify-phases %standard-phases
24953 (add-after 'unpack 'use-local-plantuml
24954 (lambda* (#:key inputs #:allow-other-keys)
24955 (let ((plantuml (assoc-ref inputs "plantuml"))
24956 (file "plantuml-mode.el"))
24957 (chmod file #o644)
24958 (emacs-substitute-variables file
24959 ("plantuml-jar-path"
24960 (string-append plantuml "/share/java/plantuml.jar"))
24961 ("plantuml-executable-path"
24962 (string-append plantuml "/bin/plantuml"))
24963 ("plantuml-server-url" 'nil)
24964 ("plantuml-default-exec-mode" ''executable))
24965 (emacs-batch-edit-file file
24966 `(progn (progn
24967 (goto-char (point-min))
24968 (re-search-forward "(defun plantuml-download-jar")
24969 (beginning-of-line)
24970 (kill-sexp))
24971 (basic-save-buffer)))
24972 #t))))))
24973 (inputs
24974 `(("plantuml" ,plantuml)))
24975 (propagated-inputs
24976 `(("emacs-dash" ,emacs-dash)))
24977 (build-system emacs-build-system)
24978 (home-page "https://github.com/skuro/plantuml-mode")
24979 (synopsis "Major mode for editing PlantUML sources")
24980 (description "This package provides a major mode for editing PlantUML
24981 sources. It features syntax highlighting, autocompletion, preview of buffer
24982 or region and use of locally installed binaries.")
24983 (license license:gpl3+)))
24984
24985 (define-public emacs-execline
24986 (let ((commit "c75dd9b2c54d8e59fc35fd4bd98d8e213948a3f5")
24987 (revision "1"))
24988 (package
24989 (name "emacs-execline")
24990 (version (git-version "0.1" revision commit))
24991 (source (origin
24992 (method git-fetch)
24993 (uri (git-reference
24994 (url "https://gitlab.com/KAction/emacs-execline/")
24995 (commit commit)))
24996 (file-name (git-file-name name version))
24997 (sha256
24998 (base32
24999 "02q531c9wvdwflhggflnci4a36h2bb90bq25bbhw6i2lvrd9sk55"))))
25000 (build-system emacs-build-system)
25001 (propagated-inputs
25002 `(("emacs-s" ,emacs-s)))
25003 (arguments
25004 `(#:tests? #t
25005 #:test-command '("emacs" "-Q" "-batch" "-L" "."
25006 "-l" "t/indent.el"
25007 "-f" "ert-run-tests-batch-and-exit")))
25008 (home-page "https://gitlab.com/KAction/emacs-execline/")
25009 (synopsis "Major Emacs mode for editing execline scripts")
25010 (description
25011 "This package provides a major mode for editing execline scripts.
25012
25013 Features:
25014 @itemize
25015 @item Syntax highlighting of commends, builtin commands and variable substitution.
25016 @item Completion of builtin commands.
25017 @item Working @code{comment-region} command.
25018 @item Indentation of blocks.
25019 @item Automatic enable of mode in @file{*.exec} files.
25020 @item Automatic enable of mode in files with @code{execlineb} interpreter.
25021 @end itemize\n")
25022 (license license:gpl3+))))
25023
25024 (define-public emacs-shell-pop
25025 (let ((commit "4b4394037940a890a313d715d203d9ead2d156a6")
25026 (revision "0"))
25027 (package
25028 (name "emacs-shell-pop")
25029 (version (git-version "0.64" revision commit))
25030 (source
25031 (origin
25032 (method git-fetch)
25033 (uri (git-reference
25034 (url "https://github.com/kyagi/shell-pop-el")
25035 (commit commit)))
25036 (file-name (git-file-name name version))
25037 (sha256
25038 (base32 "0s77n6b9iw1x3dv91ybkpgy3zvqd12si7zw3lg0m2b6j1akrawsg"))))
25039 (build-system emacs-build-system)
25040 (home-page "https://github.com/kyagi/shell-pop-el")
25041 (synopsis "Utility which helps with pop up shell buffer")
25042 (description
25043 "This Emacs utility helps you pop up and pop out shell buffer window
25044 easily. Four pre-set options are: @samp{shell}, @samp{terminal},
25045 @samp{ansi-term}, and @samp{eshell}. You can also set your custom shell if
25046 you use some other configuration.")
25047 (license license:gpl3+))))
25048
25049 (define-public emacs-extmap
25050 (package
25051 (name "emacs-extmap")
25052 (version "1.1.1")
25053 (source
25054 (origin
25055 (method git-fetch)
25056 (uri (git-reference
25057 (url "https://github.com/doublep/extmap")
25058 (commit version)))
25059 (file-name (git-file-name name version))
25060 (sha256
25061 (base32
25062 "09kia3mr4si8kn46kyiza9nl669b22vmgc70ng3mqz742lph5siw"))))
25063 (build-system emacs-build-system)
25064 (home-page "https://github.com/doublep/extmap")
25065 (synopsis "Externally-stored constant mapping for Emacs Lisp")
25066 (description "A very simple package that lets you build a
25067 read-only, constant database that maps Emacs Lisp symbols to
25068 arbitrary Emacs Lisp objects.")
25069 (license license:gpl3+)))
25070
25071 (define-public emacs-csound-mode
25072 (package
25073 (name "emacs-csound-mode")
25074 (version "0.2.1")
25075 (source
25076 (origin
25077 (method git-fetch)
25078 (uri (git-reference
25079 (url "https://github.com/hlolli/csound-mode")
25080 (commit version)))
25081 (file-name (git-file-name name version))
25082 (sha256
25083 (base32
25084 "1c88ak0jaj51fwiqniqxd7xyk23wjl9m57znzm8j267ld8g12znp"))))
25085 (build-system emacs-build-system)
25086 (arguments
25087 `(#:phases
25088 (modify-phases %standard-phases
25089 (add-after 'unpack 'disable-breaking-compilation
25090 (lambda _
25091 (for-each (lambda (file)
25092 (chmod file #o600) ; needed to write changes.
25093 (emacs-batch-disable-compilation file))
25094 '("csound-font-lock.el"))
25095 #t)))))
25096 (inputs
25097 `(("emacs-highlight" ,emacs-highlight)
25098 ("emacs-multi" ,emacs-multi)
25099 ("emacs-shut-up" ,emacs-shut-up)))
25100 (home-page "https://github.com/hlolli/csound-mode")
25101 (synopsis "Emacs major mode for coding in CSound")
25102 (description "Provides both a basic major mode for editing
25103 CSound files, as well as a REPL for fast feedback when composing
25104 and sound-designing.")
25105 (license license:gpl3+)))
25106
25107 (define-public emacs-multi
25108 (package
25109 (name "emacs-multi")
25110 (version "2.0.1")
25111 (source
25112 (origin
25113 (method git-fetch)
25114 (uri (git-reference
25115 (url "https://github.com/kurisuwhyte/emacs-multi")
25116 (commit (string-append "v" version))))
25117 (file-name (git-file-name name version))
25118 (sha256
25119 (base32
25120 "11zabs7qpdhri6n90ck7pgwcbz46d813nyl73h5m1i8jvz1wzx7v"))))
25121 (build-system emacs-build-system)
25122 (home-page "https://github.com/kurisuwhyte/emacs-multi")
25123 (synopsis "Clojure-style multi-methods for Emacs Lisp")
25124 (description "Provides Emacs Lisp with a form of polymorphism
25125 by way of predicate dispatching. Methods consist of a dispatch
25126 function, and a series of branches. The dispatch function is
25127 applied to the arguments, and the result value is checked against
25128 the expectations of each branch to define which one to invoke.")
25129 (license license:expat)))
25130
25131 (define-public emacs-highlight
25132 (let ((commit "9258a2b8362d737115cbd87618f947eadb140411")
25133 (revision "1"))
25134 (package
25135 (name "emacs-highlight")
25136 (version "0.0.0")
25137 (source
25138 (origin
25139 (method git-fetch)
25140 (uri (git-reference
25141 (url "https://github.com/emacsmirror/highlight/")
25142 (commit commit)))
25143 (file-name (git-file-name name commit))
25144 (sha256
25145 (base32
25146 "0pbqzgbfkm8smi23j94hirxh2r1yc0ipyjbbv1y906br6bx5c1a8"))))
25147 (build-system emacs-build-system)
25148 (home-page "https://github.com/emacsmirror/highlight")
25149 (synopsis "Highlighting commands for GNU Emacs")
25150 (description "This library adds the possibility for ad-hoc
25151 applying highlighting to any face in GNU Emacs. The functionality
25152 of this library depends on overlays, which by default are not
25153 picked up when copy-pasting text from buffer to buffer.")
25154 (license license:gpl2+))))
25155
25156 (define-public emacs-org-webring
25157 (package
25158 (name "emacs-org-webring")
25159 (version "1.9.8-rc4")
25160 (source
25161 (origin
25162 (method git-fetch)
25163 (uri (git-reference
25164 (url "https://git.sr.ht/~brettgilio/org-webring")
25165 (commit version)))
25166 (file-name (git-file-name name version))
25167 (sha256
25168 (base32
25169 "0z2q29i9ng2vkzb6qbwb0dzvz8yv44p0kg07lx59pcdbv7mznjmc"))))
25170 (build-system emacs-build-system)
25171 (arguments
25172 `(#:phases
25173 (modify-phases %standard-phases
25174 (add-after 'install 'install-assets
25175 (lambda* (#:key outputs #:allow-other-keys)
25176 (let* ((out (assoc-ref outputs "out"))
25177 (assets
25178 (string-append out "/share/emacs/org-webring-assets")))
25179 (mkdir-p assets)
25180 (copy-recursively "assets" assets)
25181 #t))))))
25182 (propagated-inputs
25183 `(("emacs-xmlgen" ,emacs-xmlgen)))
25184 (home-page "https://sr.ht/~brettgilio/org-webring")
25185 (synopsis "Generate webrings for Org-based sites / blogs")
25186 (description "Org-webring is an alternative implementation of a
25187 feed-based webring, taking inspiration from openring by Drew DeVault.
25188 Intended to integrate with Org-based websites and blogs (either
25189 directly, or indirectly, as in ox-hugo), it will fetch a given list of
25190 web feed files and correctly parse and format the elements to be
25191 displayed for sharing.")
25192 (license license:gpl3+)))
25193
25194 (define-public emacs-scpaste
25195 (let ((commit "cd4fa0aafecd839736e0b6cba68b4fc4d7045472")
25196 (revision "0"))
25197 (package
25198 (name "emacs-scpaste")
25199 (version "0.6.5")
25200 (source
25201 (origin
25202 (method git-fetch)
25203 (uri (git-reference
25204 (url "https://git.sr.ht/~technomancy/scpaste")
25205 (commit commit)))
25206 (file-name (git-file-name name commit))
25207 (sha256
25208 (base32
25209 "1nvwbwl26z03963g9c82b3ggm39r95z1vp7c9qsa9mjm46dyq27w"))))
25210 (build-system emacs-build-system)
25211 (propagated-inputs
25212 `(("emacs-htmlize" ,emacs-htmlize)))
25213 (home-page "https://git.sr.ht/~technomancy/scpaste")
25214 (synopsis "Emacs-based static HTML pastebin")
25215 (description "This library will place an HTML copy of a
25216 buffer on an active webserver to which the user has SSH access.
25217 It is similar in purpose to services such as Gist or Pastebin,
25218 but is much simpler since it assumes the user has access to a
25219 publicly-accessible HTTP server.")
25220 (license license:gpl3+))))
25221
25222 (define-public emacs-company-reftex
25223 (package
25224 (name "emacs-company-reftex")
25225 (version "0.1.0")
25226 (source
25227 (origin
25228 (method git-fetch)
25229 (uri (git-reference
25230 (url "https://github.com/TheBB/company-reftex")
25231 (commit "275ef708f08d3bf0eb30632148e5c6184eeaacdb")))
25232 (file-name (git-file-name name version))
25233 (sha256
25234 (base32
25235 "118cgw5lsffqdqz95mnkw36mmnsbg9m52r2np4m7v14mjjwr9fby"))))
25236 (build-system emacs-build-system)
25237 (propagated-inputs
25238 `(("emacs-company" ,emacs-company)
25239 ("emacs-s" ,emacs-s)))
25240 (home-page "https://github.com/TheBB/company-reftex")
25241 (synopsis "RefTeX backends for company-mode")
25242 (description "This package provides company-mode backends for completing
25243 label references and citations in LaTeX. It is based on RefTeX, which is
25244 included with Emacs.")
25245 (license license:gpl3+)))
25246
25247 (define-public emacs-html-to-hiccup
25248 ;; Package has no release. Version is extracted from "Version:" keyword in
25249 ;; main file.
25250 (let ((commit "50a52e2b0d13d865187acdf775b8203d5003f2f1")
25251 (revision "0"))
25252 (package
25253 (name "emacs-html-to-hiccup")
25254 (version (git-version "1" revision commit))
25255 (source
25256 (origin
25257 (method git-fetch)
25258 (uri (git-reference
25259 (url "https://github.com/plexus/html-to-hiccup")
25260 (commit commit)))
25261 (file-name (git-file-name name version))
25262 (sha256
25263 (base32 "1qi092mw2n08v6yr0j6hlpx0pnlcnhxjqbsrlw9pn4yin6zk91yp"))))
25264 (build-system emacs-build-system)
25265 (propagated-inputs
25266 `(("dash" ,emacs-dash)
25267 ("s" ,emacs-s)))
25268 (home-page "https://github.com/plexus/html-to-hiccup")
25269 (synopsis "Turn HTML into Hiccup syntax")
25270 (description
25271 "This is an Emacs package that turns HTML into Hiccup syntax
25272 which is a popular notation to use when doing Clojure/ClojureScript
25273 web development.")
25274 ;; There is a conflict between the repository official LICENSE
25275 ;; file and the header of the main elisp file which indicates
25276 ;; that it is licensed under the GPL version 3 or later.
25277 (license (list license:mpl2.0 license:gpl3+)))))
25278
25279 (define-public emacs-iter2
25280 (package
25281 (name "emacs-iter2")
25282 (version "1.0")
25283 (source
25284 (origin
25285 (method git-fetch)
25286 (uri (git-reference
25287 (url "https://github.com/doublep/iter2")
25288 (commit version)))
25289 (file-name (git-file-name name version))
25290 (sha256
25291 (base32 "0gaq3z2v1q4r9mkyq71dzmqakhi0p8g7ph4z0n3a11rvyc3z9ykx"))))
25292 (build-system emacs-build-system)
25293 (home-page "https://github.com/doublep/iter2")
25294 (synopsis "Reimplementation of Elisp generators")
25295 (description "@code{iter2} is a fully compatible reimplementation of
25296 built-in generator package. It provides @code{iter2-defun} and
25297 @code{iter2-lambda} forms that can be used in place of @code{iter-defun} and
25298 @code{iter-lambda}. All other functions and macros (e.g. @code{iter-yield},
25299 @code{iter-next}) are intentionally not duplicated: just use the ones from the
25300 original package.")
25301 (license license:gpl3+)))
25302
25303 (define-public emacs-promise
25304 (package
25305 (name "emacs-promise")
25306 (version "1.1")
25307 (source
25308 (origin
25309 (method git-fetch)
25310 (uri (git-reference
25311 (url "https://github.com/chuntaro/emacs-promise")
25312 (commit version)))
25313 (file-name (git-file-name name version))
25314 (sha256
25315 (base32 "1xb34zdbwjvahfhycjphdkm925kgd22dr298c57hwxza4ljc2hxj"))))
25316 (build-system emacs-build-system)
25317 (home-page "https://github.com/chuntaro/emacs-promise")
25318 (synopsis "Promises/A+ for Emacs")
25319 (description "This is a simple implementation of Promises/A+.
25320
25321 This implementation ports the following Promises/A+ features
25322 faithfully. See @url{https://github.com/then/promise}.
25323
25324 @itemize
25325 @item The same API as the JavaScript version of Promise can be used.
25326 @item It has all the @code{then}, @code{catch}, @code{resolve}, @code{reject},
25327 @code{all}, @code{race}, etc.
25328 @item It supports \"thenable\".
25329 @item It supports \"Inheritance of Promise\".
25330 @item It supports \"rejection-tracking\".
25331 @end itemize\n")
25332 (license license:gpl3+)))
25333
25334 (define-public emacs-async-await
25335 (package
25336 (name "emacs-async-await")
25337 (version "1.1")
25338 (source
25339 (origin
25340 (method git-fetch)
25341 (uri (git-reference
25342 (url "https://github.com/chuntaro/emacs-async-await")
25343 (commit version)))
25344 (file-name (git-file-name name version))
25345 (sha256
25346 (base32 "0aav9qdswnw7ynqlzn0sm34as5fj2d85syxgg8zjabzp6646ay29"))))
25347 (build-system emacs-build-system)
25348 (propagated-inputs
25349 `(("promise" ,emacs-promise)
25350 ("iter2" ,emacs-iter2)))
25351 (home-page "https://github.com/chuntaro/emacs-async-await")
25352 (synopsis "Async/Await for Emacs")
25353 (description "This is a simple implementation of Async/Await inspired by
25354 the TypeScript implementation.")
25355 (license license:gpl3+)))
25356
25357 (define-public emacs-rocket-chat
25358 ;; No release.
25359 (let ((commit "96fe27a8678de5ae4061f635108a7192eee13f98"))
25360 (package
25361 (name "emacs-rocket-chat")
25362 (version (git-version "0.0.0" "1" commit))
25363 (source
25364 (origin
25365 (method git-fetch)
25366 (uri (git-reference
25367 (url "https://github.com/4hiziri/rocket-chat")
25368 (commit commit)))
25369 (file-name (git-file-name name version))
25370 (sha256
25371 (base32 "02a4j0yy7330kfr3rd3k2agdj01ii6989nki598anbamq6xvj5ql"))))
25372 (build-system emacs-build-system)
25373 (propagated-inputs
25374 `(("async-await" ,emacs-async-await)
25375 ("request" ,emacs-request)))
25376 (home-page "https://github.com/4hiziri/rocket-chat")
25377 (synopsis "Emacs Rocket.chat client")
25378 (description "This package provides an Emacs client for the Rocket.chat
25379 service.")
25380 (license license:expat))))
25381
25382 (define-public emacs-monokai-theme
25383 (package
25384 (name "emacs-monokai-theme")
25385 (version "3.5.3")
25386 (source
25387 (origin
25388 (method git-fetch)
25389 (uri (git-reference
25390 (url "https://github.com/oneKelvinSmith/monokai-emacs")
25391 (commit (string-append "v" version))))
25392 (file-name (git-file-name name version))
25393 (sha256
25394 (base32 "0dy8c3349j7fmp8052hbgvk0b7ldlv5jqpg0paq1i0hlypivd30i"))))
25395 (build-system emacs-build-system)
25396 (home-page "https://github.com/oneKelvinSmith/monokai-emacs")
25397 (synopsis "High contrast color theme for Emacs")
25398 (description
25399 "Monokai theme is a port of the popular TextMate Monokai theme for
25400 Emacs.")
25401 (license license:gpl3+)))
25402
25403 (define-public emacs-nord-theme
25404 (package
25405 (name "emacs-nord-theme")
25406 (version "0.5.0")
25407 (source
25408 (origin
25409 (method git-fetch)
25410 (uri (git-reference
25411 (url "https://github.com/arcticicestudio/nord-emacs")
25412 (commit (string-append "v" version))))
25413 (file-name (git-file-name name version))
25414 (sha256
25415 (base32 "096f8cik4jz89bvkifwp3gm9iraqrd75ljy2q9js724v7yj88711"))))
25416 (build-system emacs-build-system)
25417 (home-page "https://www.nordtheme.com/")
25418 (synopsis "Low contrast arctic color theme for Emacs")
25419 (description
25420 "Nord is an arctic, north-bluish color scheme created for a clean and
25421 uncluttered design pattern to achieve optimal focus and readability for code
25422 syntax highlighting and UI components.")
25423 (license license:expat)))