gnu: Add emacs-fd.
[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 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 Jan 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 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 ;;;
81 ;;; This file is part of GNU Guix.
82 ;;;
83 ;;; GNU Guix is free software; you can redistribute it and/or modify it
84 ;;; under the terms of the GNU General Public License as published by
85 ;;; the Free Software Foundation; either version 3 of the License, or (at
86 ;;; your option) any later version.
87 ;;;
88 ;;; GNU Guix is distributed in the hope that it will be useful, but
89 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
90 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
91 ;;; GNU General Public License for more details.
92 ;;;
93 ;;; You should have received a copy of the GNU General Public License
94 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
95
96 (define-module (gnu packages emacs-xyz)
97 #:use-module ((guix licenses) #:prefix license:)
98 #:use-module (guix packages)
99 #:use-module (guix cvs-download)
100 #:use-module (guix download)
101 #:use-module (guix bzr-download)
102 #:use-module (guix git-download)
103 #:use-module (guix hg-download)
104 #:use-module (guix build-system gnu)
105 #:use-module (guix build-system cmake)
106 #:use-module (guix build-system emacs)
107 #:use-module (guix build-system glib-or-gtk)
108 #:use-module (guix build-system perl)
109 #:use-module (guix build-system trivial)
110 #:use-module (gnu packages)
111 #:use-module (gnu packages admin)
112 #:use-module (gnu packages audio)
113 #:use-module (gnu packages bash)
114 #:use-module (gnu packages cmake)
115 #:use-module (gnu packages code)
116 #:use-module (gnu packages cpp)
117 #:use-module (gnu packages curl)
118 #:use-module (gnu packages databases)
119 #:use-module (gnu packages dictionaries)
120 #:use-module (gnu packages emacs)
121 #:use-module (gnu packages guile)
122 #:use-module (gnu packages gtk)
123 #:use-module (gnu packages gnome)
124 #:use-module (gnu packages haskell-apps)
125 #:use-module (gnu packages ncurses)
126 #:use-module (gnu packages python)
127 #:use-module (gnu packages python-xyz)
128 #:use-module (gnu packages telephony)
129 #:use-module (gnu packages terminals)
130 #:use-module (gnu packages tex)
131 #:use-module (gnu packages texinfo)
132 #:use-module (gnu packages tcl)
133 #:use-module (gnu packages tls)
134 #:use-module (gnu packages pkg-config)
135 #:use-module (gnu packages xorg)
136 #:use-module (gnu packages lesstif)
137 #:use-module (gnu packages llvm)
138 #:use-module (gnu packages image)
139 #:use-module (gnu packages linux)
140 #:use-module (gnu packages libevent)
141 #:use-module (gnu packages lua)
142 #:use-module (gnu packages music)
143 #:use-module (gnu packages version-control)
144 #:use-module (gnu packages imagemagick)
145 #:use-module (gnu packages w3m)
146 #:use-module (gnu packages web)
147 #:use-module (gnu packages wget)
148 #:use-module (gnu packages autotools)
149 #:use-module (gnu packages base)
150 #:use-module (gnu packages compression)
151 #:use-module (gnu packages node)
152 #:use-module (gnu packages xml)
153 #:use-module (gnu packages glib)
154 #:use-module (gnu packages acl)
155 #:use-module (gnu packages mail)
156 #:use-module (gnu packages messaging)
157 #:use-module (gnu packages package-management)
158 #:use-module (gnu packages perl)
159 #:use-module (gnu packages pdf)
160 #:use-module (gnu packages ruby)
161 #:use-module (gnu packages rust-apps)
162 #:use-module (gnu packages scheme)
163 #:use-module (gnu packages speech)
164 #:use-module (gnu packages xiph)
165 #:use-module (gnu packages mp3)
166 #:use-module (gnu packages gettext)
167 #:use-module (gnu packages fribidi)
168 #:use-module (gnu packages gd)
169 #:use-module (gnu packages fontutils)
170 #:use-module (gnu packages password-utils)
171 #:use-module (gnu packages pulseaudio)
172 #:use-module (gnu packages sphinx)
173 #:use-module (gnu packages xdisorg)
174 #:use-module (gnu packages shells)
175 #:use-module (gnu packages sqlite)
176 #:use-module (gnu packages gnupg)
177 #:use-module (gnu packages video)
178 #:use-module (gnu packages haskell-xyz)
179 #:use-module (gnu packages wordnet)
180 #:use-module (gnu packages photo)
181 #:use-module (gnu packages uml)
182 #:use-module (guix utils)
183 #:use-module (srfi srfi-1)
184 #:use-module (ice-9 match))
185
186 ;;;
187 ;;; Emacs hacking.
188 ;;;
189
190 (define-public emacs-geiser
191 (package
192 (name "emacs-geiser")
193 (version "0.11.2")
194 (source (origin
195 (method git-fetch)
196 (uri (git-reference
197 (url "https://gitlab.com/jaor/geiser/")
198 (commit version)))
199 (file-name (git-file-name name version))
200 (sha256
201 (base32
202 "1khi1bghsjx6cs5acizmlbw9z19s4qycnji9krdbn42cbpv0rysv"))))
203 (build-system gnu-build-system)
204 (arguments
205 '(#:phases
206 (modify-phases %standard-phases
207 (add-after 'install 'post-install
208 (lambda* (#:key outputs #:allow-other-keys)
209 (symlink "geiser-install.el"
210 (string-append (assoc-ref outputs "out")
211 "/share/emacs/site-lisp/"
212 "geiser-autoloads.el"))
213 #t)))))
214 (inputs `(("guile" ,guile-2.2)))
215 (native-inputs
216 `(("emacs" ,emacs-minimal)
217 ("autoconf" ,autoconf)
218 ("automake" ,automake)
219 ("texinfo" ,texinfo)))
220 (home-page "https://nongnu.org/geiser/")
221 (synopsis "Collection of Emacs modes for Guile and Racket hacking")
222 (description
223 "Geiser is a collection of Emacs major and minor modes that conspire with
224 one or more Scheme implementations to keep the Lisp Machine Spirit alive. The
225 continuously running Scheme interpreter takes the center of the stage in
226 Geiser. A bundle of Elisp shims orchestrates the dialog between the Scheme
227 implementation, Emacs and, ultimately, the schemer, giving them access to live
228 metadata.")
229 (license license:bsd-3)))
230
231 (define-public emacs-ac-geiser
232 (let ((commit "93818c936ee7e2f1ba1b315578bde363a7d43d05")
233 (revision "0"))
234 (package
235 (name "emacs-ac-geiser")
236 (version (git-version "0.1" revision commit))
237 (source
238 (origin
239 (uri (git-reference
240 (url "https://github.com/xiaohanyu/ac-geiser.git")
241 (commit commit)))
242 (method git-fetch)
243 (sha256
244 (base32 "00n2qa26yilaj837n1yp6lbqa4gf30nkkbvanl7m9ih7k48ssqmw"))
245 (file-name (git-file-name name version))))
246 (build-system emacs-build-system)
247 (propagated-inputs
248 `(("geiser" ,emacs-geiser)
249 ("auto-complete" ,emacs-auto-complete)))
250 (synopsis "Auto-complete backend for geiser")
251 (description
252 "This package provides an auto-complete source for Scheme projects
253 using geiser.")
254 (license license:bsd-3)
255 (home-page "https://github.com/xiaohanyu/ac-geiser"))))
256
257 (define-public emacs-hyperbole
258 (package
259 (name "emacs-hyperbole")
260 (version "7.0.6")
261 (source
262 (origin
263 (method url-fetch)
264 (uri (string-append "https://elpa.gnu.org/packages/"
265 "hyperbole-" version ".tar"))
266 (sha256
267 (base32 "08gi4v76s53nfmn3s0qcxc3zii0pspjfd6ry7jq1kgm3z34x8hab"))
268 (patches
269 (search-patches "emacs-hyperbole-toggle-messaging.patch"))))
270 (build-system emacs-build-system)
271 (arguments
272 `(#:include '("DEMO"
273 "DEMO-ROLO.otl"
274 "HY-ABOUT"
275 "\\.el$"
276 "\\.info$"
277 "\\.kotl$")
278 #:phases
279 (modify-phases %standard-phases
280 ;; Fix build issues about missing "domainname" and "hpmap:dir-user"
281 ;; parent dir.
282 (add-after 'unpack 'fix-build
283 (lambda* (#:key inputs #:allow-other-keys)
284 (substitute* "hypb.el"
285 (("/bin/domainname")
286 (string-append (assoc-ref inputs "inetutils")
287 "/bin/dnsdomainname")))
288 (substitute* "hyperbole.el"
289 (("\\(hyperb:check-dir-user\\)") ""))
290 #t)))))
291 (inputs
292 `(("inetutils" ,inetutils)))
293 (home-page "https://www.gnu.org/software/hyperbole/")
294 (synopsis "The Everyday Hypertextual Information Manager")
295 (description
296 "GNU Hyperbole, or just Hyperbole, is an easy-to-use, yet powerful and
297 programmable hypertextual information management system implemented as a GNU
298 Emacs package. It offers rapid views and interlinking of all kinds of textual
299 information, utilizing Emacs for editing. It can dramatically increase your
300 productivity and greatly reduce the number of keyboard/mouse keys you'll need
301 to work efficiently. Hyperbole lets you:
302
303 @itemize
304 @item Quickly create hyperlink buttons either from the keyboard or by dragging
305 between a source and destination window with a mouse button depressed. Later,
306 activate buttons by pressing/clicking on them or by giving the name of the
307 button.
308 @item Activate many kinds of \"implicit buttons\" recognized by context within
309 text buffers, e.g. URLs, grep output lines, and git commits. A single key or
310 mouse button automatically does the right thing in dozens of contexts; just
311 press and go.
312 @item Build outlines with multi-level numbered outline nodes, e.g. 1.4.8.6,
313 that all renumber automatically as any node or tree is moved in the outline.
314 Each node also has a permanent hyperlink anchor that you can reference from
315 any other node.
316 @item Manage all your contacts quickly with hierarchical categories and embed
317 hyperlinks within each entry. Or create an archive of documents with
318 hierarchical entries and use the same search mechanism to quickly find any
319 matching entry.
320 @item Use single keys to easily manage your Emacs windows or frames and
321 quickly retrieve saved window and frame configurations.
322 @item Search for things in your current buffers, in a directory tree or across
323 major web search engines with the touch of a few keys.
324 @end itemize
325
326 The common thread in all these features is making retrieval, management and
327 display of information fast and easy. That is Hyperbole's purpose.")
328 (license license:gpl3+)))
329
330 (define-public emacs-paredit
331 (package
332 (name "emacs-paredit")
333 (version "24")
334 (source (origin
335 (method url-fetch)
336 (uri (string-append "http://mumble.net/~campbell/emacs/paredit-"
337 version ".el"))
338 (sha256
339 (base32
340 "0pp3n8q6kc70blqsaw0zlzp6bc327dpgdrjr0cnh7hqg1lras7ka"))))
341 (build-system emacs-build-system)
342 (home-page "http://mumble.net/~campbell/emacs/paredit/")
343 (synopsis "Emacs minor mode for editing parentheses")
344 (description
345 "ParEdit (paredit.el) is a minor mode for performing structured editing
346 of S-expression data. The typical example of this would be Lisp or Scheme
347 source code.
348
349 ParEdit helps **keep parentheses balanced** and adds many keys for moving
350 S-expressions and moving around in S-expressions. Its behavior can be jarring
351 for those who may want transient periods of unbalanced parentheses, such as
352 when typing parentheses directly or commenting out code line by line.")
353 (license license:gpl3+)))
354
355 (define-public git-modes
356 (package
357 (name "emacs-git-modes")
358 (version "1.2.8")
359 (source (origin
360 (method git-fetch)
361 (uri (git-reference
362 (url "https://github.com/magit/git-modes")
363 (commit version)))
364 (file-name (git-file-name name version))
365 (sha256
366 (base32
367 "08hy7rbfazs6grkpk54i82bz0i0c74zcjk96cip8970h6jn3mj72"))))
368 (build-system emacs-build-system)
369 (home-page "https://github.com/magit/git-modes")
370 (synopsis "Emacs major modes for Git configuration files")
371 (description
372 "This package provides Emacs major modes for editing various Git
373 configuration files, such as .gitattributes, .gitignore, and .git/config.")
374 (license license:gpl3+)))
375
376 (define-public emacs-with-editor
377 (package
378 (name "emacs-with-editor")
379 (version "2.9.2")
380 (source
381 (origin
382 (method git-fetch)
383 (uri (git-reference
384 (url "https://github.com/magit/with-editor.git")
385 (commit (string-append "v" version))))
386 (file-name (git-file-name name version))
387 (sha256
388 (base32 "1m8bm8q5zakfjdkd0662gbkvzmcrlkxy1856xns2nfiflrkpw88b"))))
389 (build-system emacs-build-system)
390 (propagated-inputs
391 `(("emacs-dash" ,emacs-dash)))
392 (home-page "https://github.com/magit/with-editor")
393 (synopsis "Emacs library for using Emacsclient as EDITOR")
394 (description
395 "This package provides an Emacs library to use the Emacsclient as
396 @code{$EDITOR} of child processes, making sure they know how to call home.
397 For remote processes a substitute is provided, which communicates with Emacs
398 on stdout instead of using a socket as the Emacsclient does.")
399 (license license:gpl3+)))
400
401 (define-public emacs-libgit
402 (let ((commit "0ef8b13aef011a98b7da756e4f1ce3bb18e4d55a")
403 (revision "1"))
404 (package
405 (name "emacs-libgit")
406 (version (git-version "20200515" revision commit))
407 (source (origin
408 (method git-fetch)
409 (uri (git-reference
410 (url "https://github.com/magit/libegit2.git")
411 (commit commit)))
412 (file-name (git-file-name name version))
413 (sha256
414 (base32
415 "0pnjr3bg6y6354dfjjxfj0g51swzgl1fncpprah75x4k94rd369f"))
416 (patches (search-patches
417 ;; Submitted for inclusion upstream (see:
418 ;; https://github.com/magit/libegit2/pull/96).
419 "emacs-libgit-use-system-libgit2.patch"))))
420 ;; Use the cmake-build-system as it provides support for cross builds.
421 (build-system cmake-build-system)
422 (arguments
423 `(#:configure-flags '("-DUSE_SYSTEM_LIBGIT2=x")
424 ;; Add the emacs-build-system byte compilation and install phases.
425 #:imported-modules (,@%cmake-build-system-modules
426 (guix build emacs-build-system)
427 (guix build emacs-utils))
428 #:modules ((guix build cmake-build-system)
429 ((guix build emacs-build-system) #:prefix emacs:)
430 (guix build emacs-utils)
431 (guix build utils))
432 #:phases
433 (modify-phases %standard-phases
434 (add-after 'unpack 'set-libgit--module-file
435 (lambda* (#:key outputs #:allow-other-keys)
436 (let ((out (assoc-ref outputs "out")))
437 (make-file-writable "libgit.el")
438 (emacs-substitute-variables "libgit.el"
439 ("libgit--module-file"
440 (string-append out "/share/emacs/site-lisp/libegit2.so")))
441 #t)))
442 (add-before 'install 'prepare-for-install
443 (lambda _
444 (let ((s (string-append "../" ,name "-" ,version "-checkout")))
445 (copy-file "libegit2.so" (string-append s "/libegit2.so"))
446 (chdir s)
447 #t)))
448 (replace 'install
449 (lambda* (#:key outputs #:allow-other-keys)
450 (let ((install (assoc-ref emacs:%standard-phases 'install)))
451 (install #:outputs outputs
452 #:include (cons "\\.so$"
453 emacs:%default-include)))))
454 (add-after 'install 'make-autoloads
455 (assoc-ref emacs:%standard-phases 'make-autoloads))
456 (add-after 'make-autoloads 'enable-autoloads-compilation
457 (assoc-ref emacs:%standard-phases 'enable-autoloads-compilation))
458 (add-after 'enable-autoloads-compilation 'patch-el-files
459 (assoc-ref emacs:%standard-phases 'patch-el-files))
460 (add-after 'patch-el-files 'emacs-build
461 (assoc-ref emacs:%standard-phases 'build))
462 (add-after 'emacs-build 'validate-compiled-autoloads
463 (assoc-ref emacs:%standard-phases 'validate-compiled-autoloads)))))
464 (native-inputs
465 `(("pkg-config" ,pkg-config)
466 ("emacs" ,emacs-no-x)
467 ("git" ,git-minimal)))
468 (inputs
469 `(("libgit2" ,libgit2)))
470 (home-page "https://github.com/magit/libegit2")
471 (synopsis "Emacs bindings for libgit2")
472 (description "This is an experimental module written in C providing
473 libgit2 bindings for Emacs, intended to boost the performance of Magit.")
474 ;; The LICENSE file says GPL v2+, but libgit.el says GPL v3+.
475 (license license:gpl3+))))
476
477 (define-public emacs-magit
478 ;; There hasn't been an official release since 2018-11-16.
479 (let ((commit "7f486d47fe7042edba8d9a855a4c2c301a30bc6b")
480 (revision "6"))
481 (package
482 (name "emacs-magit")
483 (version (git-version "2.90.1" revision commit))
484 (source
485 (origin
486 (method git-fetch)
487 (uri (git-reference
488 (url "https://github.com/magit/magit.git")
489 (commit commit)))
490 (file-name (git-file-name name version))
491 (sha256
492 (base32 "05kyc5y5wa1p3h8j7mbgvfc4zcj998zi26lnnmksj9wnvahzxfms"))))
493 (build-system emacs-build-system)
494 (arguments
495 `(#:emacs ,emacs-no-x ;module support is required
496 #:tests? #t
497 #:test-command '("make" "test")
498 #:phases
499 (modify-phases %standard-phases
500 (add-after 'unpack 'build-info-manual
501 (lambda _
502 (invoke "make" "info")
503 ;; Copy info files to the lisp directory, which acts as
504 ;; the root of the project for the emacs-build-system.
505 (for-each (lambda (f)
506 (install-file f "lisp"))
507 (find-files "Documentation" "\\.info$"))
508 (chdir "lisp")
509 #t))
510 (add-after 'build-info-manual 'set-magit-version
511 (lambda _
512 (make-file-writable "magit.el")
513 (emacs-substitute-variables "magit.el"
514 ("magit-version" ,version))
515 #t))
516 (add-after 'set-magit-version 'patch-exec-paths
517 (lambda* (#:key inputs #:allow-other-keys)
518 (let ((perl (assoc-ref inputs "perl")))
519 (make-file-writable "magit-sequence.el")
520 (emacs-substitute-variables "magit-sequence.el"
521 ("magit-perl-executable" (string-append perl "/bin/perl")))
522 #t)))
523 (add-before 'check 'configure-git
524 (lambda _
525 ;; Otherwise some tests fail with error "unable to auto-detect
526 ;; email address".
527 (setenv "HOME" (getcwd))
528 (invoke "git" "config" "--global" "user.name" "toto")
529 (invoke "git" "config" "--global" "user.email"
530 "toto@toto.com")))
531 (add-after 'configure-git 'disable-tramp-test
532 (lambda _
533 ;; There is an issue causing TRAMP to fail in the build
534 ;; environment. Setting the tramp-remote-shell parameter of
535 ;; the sudo-method to the file name of the shell didn't help.
536 (chdir "..")
537 (substitute* "t/magit-tests.el"
538 (("^\\(ert-deftest magit-toplevel:tramp.*" all)
539 (string-append all " (skip-unless nil)")))
540 #t))
541 (add-before 'install 'enter-lisp-directory
542 (lambda _
543 (chdir "lisp")
544 #t)))))
545 (native-inputs
546 `(("texinfo" ,texinfo)))
547 (inputs
548 `(("git" ,git)
549 ("perl" ,perl)))
550 (propagated-inputs
551 `(("emacs-dash" ,emacs-dash)
552 ("emacs-libgit" ,emacs-libgit)
553 ("emacs-transient" ,emacs-transient)
554 ("emacs-with-editor" ,emacs-with-editor)))
555 (home-page "https://magit.vc/")
556 (synopsis "Emacs interface for the Git version control system")
557 (description
558 "With Magit, you can inspect and modify your Git repositories
559 with Emacs. You can review and commit the changes you have made to
560 the tracked files, for example, and you can browse the history of past
561 changes. There is support for cherry picking, reverting, merging,
562 rebasing, and other common Git operations.")
563 (license license:gpl3+))))
564
565 (define-public emacs-magit-svn
566 (let ((commit "9e33ceee32f665db59909e1c00a667ccdd04178f"))
567 (package
568 (name "emacs-magit-svn")
569 (version (git-version "2.2.1" "2" commit))
570 (source (origin
571 (method git-fetch)
572 (uri (git-reference
573 (url "https://github.com/magit/magit-svn")
574 (commit commit)))
575 (file-name (git-file-name name version))
576 (sha256
577 (base32
578 "1mlqz8dh6jy5rv72lgkxv253dgh73fmbaidskicypapvbl3lr6xy"))))
579 (build-system emacs-build-system)
580 (propagated-inputs `(("dash" ,emacs-dash)
581 ("with-editor" ,emacs-with-editor)
582 ("magit" ,emacs-magit)
583 ("transient" ,emacs-transient)))
584 (home-page "https://github.com/magit/magit-svn")
585 (synopsis "Git-SVN extension to Magit")
586 (description
587 "This package is an extension to Magit, the Git Emacs mode, providing
588 support for Git-SVN.")
589 (license license:gpl3+))))
590
591 (define-public emacs-magit-popup
592 (package
593 (name "emacs-magit-popup")
594 (version "2.13.2")
595 (source
596 (origin
597 (method git-fetch)
598 (uri (git-reference
599 (url "https://github.com/magit/magit-popup.git")
600 (commit (string-append "v" version))))
601 (file-name (git-file-name name version))
602 (sha256
603 (base32 "1ifhph1mj7wjar62d65fjx45qsjwsyslbj7liih3v0r4by5gyxmw"))))
604 (build-system emacs-build-system)
605 (arguments
606 `(#:phases
607 (modify-phases %standard-phases
608 (add-before 'install 'make-info
609 (lambda _
610 (invoke "make" "info"))))))
611 (native-inputs
612 `(("texinfo" ,texinfo)))
613 (propagated-inputs
614 `(("emacs-dash" ,emacs-dash)))
615 (home-page "https://github.com/magit/magit-popup")
616 (synopsis "Define prefix-infix-suffix command combos")
617 (description
618 "This library implements a generic interface for toggling switches and
619 setting options and then invoking an Emacs command which does something with
620 these arguments. The prototypical use is for the command to call an external
621 process, passing on the arguments as command line arguments.")
622 (license license:gpl3+)))
623
624 (define-public emacs-magit-annex
625 (let ((commit "ef5dce6267e9118a5eca82a22bcad0b67826c23a")
626 (revision "1"))
627 (package
628 (name "emacs-magit-annex")
629 (version (git-version "1.7.1" revision commit))
630 (source (origin
631 (method git-fetch)
632 (uri (git-reference
633 (url "https://github.com/magit/magit-annex.git")
634 (commit commit)))
635 (file-name (git-file-name name version))
636 (sha256
637 (base32
638 "0vzkydgl889cq173zjl89g2vrddb9abc4a8gljiz3b4a7n5b1nrd"))))
639 (build-system emacs-build-system)
640 (propagated-inputs
641 `(("magit" ,emacs-magit)
642 ("transient" ,emacs-transient)))
643 (home-page "https://github.com/magit/magit-annex/")
644 (synopsis "Git-annex support for Magit")
645 (description
646 "Magit-annex adds a few git-annex operations to the Magit interface.")
647 (license license:gpl3+))))
648
649 (define-public emacs-minions
650 (package
651 (name "emacs-minions")
652 (version "0.3.2")
653 (source (origin
654 (method git-fetch)
655 (uri (git-reference
656 (url "https://github.com/tarsius/minions.git")
657 (commit (string-append "v" version))))
658 (file-name (git-file-name name version))
659 (sha256
660 (base32
661 "16rplpbfy3dnvqqgavk9jb1f1ihr5875zlixd4zxb1pqxs3jkgw3"))))
662 (build-system emacs-build-system)
663 (propagated-inputs
664 `(("emacs-dash" ,emacs-dash)))
665 (home-page "https://github.com/tarsius/minions")
666 (synopsis "Minor-mode menu for the mode line")
667 (description
668 "This package implements a menu that lists enabled minor-modes, as well
669 as commonly but not currently enabled minor-modes. It can be used to toggle
670 local and global minor-modes, to access mode-specific menus, and to get help
671 about modes.
672
673 This menu is intended as a replacement for the incomplete yet wide list of
674 enabled minor-modes that is displayed in the mode line by default. To use the
675 menu like this, enable Minions mode.
676
677 Alternatively the menu can be bound globally, for example:
678 @code{(global-set-key [S-down-mouse-3] 'minions-minor-modes-menu)}.")
679 (license license:gpl3+)))
680
681 (define-public emacs-treepy
682 (package
683 (name "emacs-treepy")
684 (version "0.1.1")
685 (source (origin
686 (method git-fetch)
687 (uri (git-reference
688 (url "https://github.com/volrath/treepy.el.git")
689 (commit version)))
690 (file-name (git-file-name name version))
691 (sha256
692 (base32
693 "04zwm6gx9pxfvgfkizx6pvb1ql8pqxjyzqp8flz0432x0gq5nlxk"))))
694 (build-system emacs-build-system)
695 (home-page
696 "https://github.com/volrath/treepy.el")
697 (synopsis "Tree traversal tools")
698 (description
699 "Generic tools for recursive and iterative tree traversal based on
700 clojure.walk and clojure.zip respectively.")
701 (license license:gpl3+)))
702
703 (define-public emacs-graphql
704 (package
705 (name "emacs-graphql")
706 (version "0.1.1")
707 (source (origin
708 (modules '((guix build utils)))
709 ;; Remove examples file with references to external packages as
710 ;; they do not exist at compilation time.
711 (snippet
712 '(begin (delete-file "examples.el")
713 #t))
714 (method git-fetch)
715 (uri (git-reference
716 (url "https://github.com/vermiculus/graphql.el.git")
717 (commit version)))
718 (file-name (git-file-name name version))
719 (sha256
720 (base32
721 "0sp0skc1rnhi39szfbq1i99pdgd3bhn4c15cff05iqhjy2d4hniw"))))
722 (build-system emacs-build-system)
723 (home-page
724 "https://github.com/vermiculus/graphql.el")
725 (synopsis "GraphQL utilities")
726 (description
727 "GraphQL.el provides a generally-applicable domain-specific language for
728 creating and executing GraphQL queries against your favorite web services.
729 GraphQL is a data query language and runtime designed and used to request and
730 deliver data to mobile and web apps.")
731 (license license:gpl3+)))
732
733 (define-public emacs-ghub
734 (package
735 (name "emacs-ghub")
736 (version "3.3.0")
737 (source
738 (origin
739 (method git-fetch)
740 (uri (git-reference
741 (url "https://github.com/magit/ghub")
742 (commit (string-append "v" version))))
743 (file-name (git-file-name name version))
744 (sha256
745 (base32 "1229g0d9f4ywwjndx32x4z5jdr0kzyi44hjxmy0sifwfmg9nn251"))))
746 (build-system emacs-build-system)
747 (arguments
748 `(#:phases
749 (modify-phases %standard-phases
750 (add-before 'install 'make-info
751 (lambda _
752 (invoke "make" "info"))))))
753 (native-inputs
754 `(("texinfo" ,texinfo)))
755 (propagated-inputs
756 `(("dash" ,emacs-dash)
757 ("emacs-let-alist" ,emacs-let-alist)
758 ("treepy" ,emacs-treepy)))
759 (home-page "https://github.com/magit/ghub")
760 (synopsis "Emacs client libraries for the APIs of various Git forges")
761 (description
762 "Ghub provides basic support for using the APIs of various Git forges from
763 Emacs packages. It supports the REST APIs of Github, Github GraphQL, Gitlab,
764 Gitea, Gogs and Bitbucket. It abstracts access to API resources using only a
765 handful of functions that are not resource-specific.")
766 (license license:gpl3+)))
767
768 (define-public emacs-typit
769 ;; Last release is from 2017.
770 (let ((commit "231cb7df43253b84323520b8ed70f128d37003af")
771 (revision "1"))
772 (package
773 (name "emacs-typit")
774 (version (git-version "0.2.1" revision commit))
775 (source
776 (origin
777 (method git-fetch)
778 (uri (git-reference
779 (url "https://github.com/mrkkrp/typit.git")
780 (commit commit)))
781 (file-name (git-file-name name version))
782 (sha256
783 (base32 "1savrxs7xl92ifyxpxkkzv2didr7lb405h0dwz1bs1wldr5fb53f"))))
784 (build-system emacs-build-system)
785 (arguments
786 `(#:phases
787 (modify-phases %standard-phases
788 (add-after 'install 'install-dictionaries
789 (lambda* (#:key outputs #:allow-other-keys)
790 (let* ((out (assoc-ref outputs "out"))
791 (site-lisp
792 (string-append
793 out "/share/emacs/site-lisp/dict")))
794 (mkdir-p site-lisp)
795 (copy-recursively "dict" site-lisp)
796 #t))))))
797 (propagated-inputs
798 `(("emacs-f" ,emacs-f)
799 ("emacs-mmt" ,emacs-mmt)))
800 (home-page "https://github.com/mrkkrp/typit")
801 (synopsis "Typing game for Emacs with two difficulties")
802 (description "Emacs Typit is a typing game for Emacs. Words that are
803 picked randomly from the most frequent words in language you're practicing,
804 until time is up.")
805 (license license:gpl3+))))
806
807 (define-public emacs-scribble-mode
808 (let ((commit "217945d54de5e4bb207033f2116baa28f5c5ecf2")
809 (revision "2"))
810 (package
811 (name "emacs-scribble-mode")
812 (version (git-version "0.1" revision commit))
813 (source (origin
814 (method git-fetch)
815 (uri (git-reference
816 (url "https://github.com/emacs-pe/scribble-mode.git")
817 (commit commit)))
818 (file-name (git-file-name name version))
819 (sha256
820 (base32
821 "1s5ccw1a5ack01wd94ywfcrar9j98agchwdh30q7iyxr0d2z4sii"))))
822 (build-system emacs-build-system)
823 (home-page "https://github.com/emacs-pe/scribble-mode")
824 (synopsis "Emacs mode for editing the Scribble documentation syntax.")
825 (description
826 "This package provides basic syntax highlighting and editing support
827 for editing Racket's Scribble documentation syntax in Emacs.")
828 (license license:gpl3+))))
829
830 (define-public emacs-shroud
831 (package
832 (name "emacs-shroud")
833 (version "1.105")
834 (source
835 (origin
836 (method git-fetch)
837 (uri (git-reference
838 (url "https://git.savannah.gnu.org/git/emacs-shroud.git")
839 (commit version)))
840 (file-name (git-file-name name version))
841 (sha256
842 (base32 "0q2pb3w8s833fjhkzicciw2php4lsnismad1dnwgp2lcway757ra"))))
843 (build-system gnu-build-system)
844 (native-inputs
845 `(("autoconf" ,autoconf)
846 ("automake" ,automake)
847 ("texinfo" ,texinfo)
848 ("perl" ,perl)
849 ("emacs-minimal" ,emacs-minimal)))
850 (propagated-inputs
851 `(("emacs-bui" ,emacs-bui)
852 ("emacs-dash" ,emacs-dash)
853 ("emacs-f" ,emacs-f)
854 ("emacs-s" ,emacs-s)
855 ("gnupg" ,gnupg)
856 ("shroud" ,shroud)))
857 (home-page "https://www.nongnu.org/emacs-shroud")
858 (synopsis "Emacs interface to the Shroud password manager")
859 (description
860 "This package provides an Emacs interface to the Shroud password manager,
861 using the Buffers User Interface library. You can view, copy, and edit secrets
862 from within Emacs.")
863 (license license:gpl3+)))
864
865 (define-public emacs-unpackaged-el
866 (let ((commit "746801a677ada6cd6fa076e423aa0953779f3fad")
867 (revision "3"))
868 (package
869 (name "emacs-unpackaged-el")
870 (version (git-version "0" revision commit))
871 (source
872 (origin
873 (method git-fetch)
874 (uri (git-reference
875 (url "https://github.com/alphapapa/unpackaged.el")
876 (commit commit)))
877 (file-name (git-file-name name version))
878 (sha256
879 (base32
880 "0jvb2ci0h0lj368qhbff3pzkxj3nhlligpbkjzi525k9rkjgm7l8"))))
881 (build-system emacs-build-system)
882 (propagated-inputs
883 `(("emacs-dash" ,emacs-dash)
884 ("emacs-org" ,emacs-org)
885 ("emacs-s" ,emacs-s)
886 ("emacs-hydra" ,emacs-hydra)
887 ("emacs-use-package" ,emacs-use-package)))
888 (arguments
889 `(#:phases
890 (modify-phases %standard-phases
891 (add-after 'unpack 'require-hydra
892 (lambda _
893 (substitute* "unpackaged.el"
894 ((";;; Code:") ";;; Code:\n(require 'hydra)"))
895 #t)))))
896 (home-page "https://github.com/alphapapa/unpackaged.el")
897 (synopsis "Useful snippets of Emacs Lisp code")
898 (description "This package provides Emacs Lisp utilities for a variety
899 of tasks, including version control, task management, and regex-based
900 replacement.")
901 (license license:gpl3+))))
902
903 (define-public emacs-haskell-mode
904 (package
905 (name "emacs-haskell-mode")
906 (version "17.1")
907 (source
908 (origin
909 (method git-fetch)
910 (uri (git-reference
911 (url "https://github.com/haskell/haskell-mode")
912 (commit (string-append "v" version))))
913 (file-name (git-file-name name version))
914 (sha256
915 (base32 "0izcasi2v02zh08c863h43m8mmsldzy8pck43cllrfn0zf24v2qn"))))
916 (propagated-inputs
917 `(("emacs-dash" ,emacs-dash)))
918 (native-inputs
919 `(("emacs" ,emacs-minimal)
920 ("emacs-el-search" ,emacs-el-search)
921 ("emacs-stream" ,emacs-stream)
922 ("texinfo" ,texinfo)))
923 (build-system gnu-build-system)
924 (arguments
925 `(#:make-flags (list (string-append "EMACS="
926 (assoc-ref %build-inputs "emacs")
927 "/bin/emacs"))
928 #:modules ((ice-9 match)
929 (srfi srfi-26)
930 ,@%gnu-build-system-modules)
931 #:phases
932 (modify-phases %standard-phases
933 (delete 'configure)
934 (add-before 'build 'pre-build
935 (lambda* (#:key inputs #:allow-other-keys)
936 (define (el-dir store-dir)
937 (match (find-files store-dir "\\.el$")
938 ((f1 f2 ...) (dirname f1))
939 (_ "")))
940
941 (let ((sh (string-append (assoc-ref inputs "bash") "/bin/sh")))
942 (define emacs-prefix? (cut string-prefix? "emacs-" <>))
943
944 (setenv "SHELL" "sh")
945 (setenv "EMACSLOADPATH"
946 (string-concatenate
947 (map (match-lambda
948 (((? emacs-prefix? name) . dir)
949 (string-append (el-dir dir) ":"))
950 (_ ""))
951 inputs)))
952 (substitute* (find-files "." "\\.el") (("/bin/sh") sh))
953 #t)))
954 (add-before 'check 'delete-failing-tests
955 ;; XXX: these tests require GHC executable, which would be a big
956 ;; native input.
957 (lambda _
958 (with-directory-excursion "tests"
959 (for-each delete-file
960 '("haskell-customize-tests.el"
961 "inferior-haskell-tests.el")))
962 #t))
963 (replace 'install
964 (lambda* (#:key outputs #:allow-other-keys)
965 (let* ((out (assoc-ref outputs "out"))
966 (el-dir (string-append out "/share/emacs/site-lisp"))
967 (doc (string-append
968 out "/share/doc/haskell-mode-" ,version))
969 (info (string-append out "/share/info")))
970 (define (copy-to-dir dir files)
971 (for-each (lambda (f)
972 (install-file f dir))
973 files))
974
975 (with-directory-excursion "doc"
976 (invoke "makeinfo" "haskell-mode.texi")
977 (install-file "haskell-mode.info" info))
978 (copy-to-dir doc '("CONTRIBUTING.md" "NEWS" "README.md"))
979 (copy-to-dir el-dir (find-files "." "\\.elc?"))
980 #t))))))
981 (home-page "https://github.com/haskell/haskell-mode")
982 (synopsis "Haskell mode for Emacs")
983 (description
984 "This is an Emacs mode for editing, debugging and developing Haskell
985 programs.")
986 (license license:gpl3+)))
987
988 (define-public emacs-dante
989 (let ((commit "38b589417294c7ea44bf65b73b8046d950f9531b")
990 (revision "1"))
991 (package
992 (name "emacs-dante")
993 (version (git-version "1.6" revision commit))
994 (source (origin
995 (method git-fetch)
996 (uri (git-reference
997 (url "https://github.com/jyp/dante")
998 (commit commit)))
999 (sha256
1000 (base32
1001 "1mnmn635552zlwd4zr68jbvdjipl6gi4mi6wiyck28fsmq8kw96h"))
1002 (file-name (git-file-name name version))))
1003 (build-system emacs-build-system)
1004 (propagated-inputs
1005 `(("emacs-dash" ,emacs-dash)
1006 ("emacs-f" ,emacs-f)
1007 ("emacs-flycheck" ,emacs-flycheck)
1008 ("emacs-haskell-mode" ,emacs-haskell-mode)
1009 ("emacs-s" ,emacs-s)
1010 ("emacs-company" ,emacs-company)
1011 ("emacs-lcr" ,emacs-lcr)))
1012 (home-page "https://github.com/jyp/dante")
1013 (synopsis "Minor mode for interactive Haskell")
1014 (description
1015 "This package provides a minor mode for Haskell development that
1016 supports type hints, definition-jumping, completion, and more.")
1017 (license license:gpl3+))))
1018
1019 (define-public emacs-flycheck
1020 ;; Last release version was more than 500 commits ago.
1021 (let ((commit "9bcf6b665e15db94870bebc81dc8248c3eec20d3")
1022 (revision "2"))
1023 (package
1024 (name "emacs-flycheck")
1025 (version (git-version "31" revision commit))
1026 (source
1027 (origin
1028 (method git-fetch)
1029 (uri (git-reference
1030 (url "https://github.com/flycheck/flycheck/")
1031 (commit commit)))
1032 (sha256
1033 (base32 "015ixss5bjr7gvhj8mkw5x2x1hy6fvvsjarr2xpv0gskkkngs7pg"))
1034 (file-name (git-file-name name version))))
1035 (build-system emacs-build-system)
1036 (propagated-inputs
1037 `(("emacs-dash" ,emacs-dash)))
1038 (native-inputs
1039 `(("emacs-shut-up" ,emacs-shut-up)))
1040 (arguments
1041 `(#:phases
1042 (modify-phases %standard-phases
1043 (add-after 'unpack 'change-flycheck-version
1044 (lambda _
1045 (substitute* "flycheck.el"
1046 (("\\(pkg-info-version-info 'flycheck\\)")
1047 (string-append "\"" ,version "\"")))
1048 #t)))
1049 ;; TODO: many failing tests
1050 #:tests? #f
1051 #:test-command '("emacs" "-Q" "--batch" "-L" "."
1052 "--load" "test/flycheck-test"
1053 "--load" "test/run.el"
1054 "-f" "flycheck-run-tests-main")))
1055 (home-page "https://www.flycheck.org")
1056 (synopsis "On-the-fly syntax checking")
1057 (description
1058 "This package provides on-the-fly syntax checking for GNU Emacs. It is a
1059 replacement for the older Flymake extension which is part of GNU Emacs, with
1060 many improvements and additional features.
1061
1062 Flycheck provides fully-automatic, fail-safe, on-the-fly background syntax
1063 checking for over 30 programming and markup languages with more than 70
1064 different tools. It highlights errors and warnings inline in the buffer, and
1065 provides an optional IDE-like error list.")
1066 (license license:gpl3+)))) ;+GFDLv1.3+ for the manual
1067
1068 (define-public emacs-flymake-shellcheck
1069 ;; No tag, version grabbed from source .el file.
1070 (let ((commit "78956f0e5bb9c4d35989657a55929e8e3f5691e6")
1071 (revision "0"))
1072 (package
1073 (name "emacs-flymake-shellcheck")
1074 (version (git-version "0.1" revision commit))
1075 (source
1076 (origin
1077 (method git-fetch)
1078 (uri (git-reference
1079 (url "https://github.com/federicotdn/flymake-shellcheck.git")
1080 (commit commit)))
1081 (file-name (git-file-name name version))
1082 (sha256
1083 (base32 "068mx5p4drwgppy4ry1rfq6qi79w6d82b4rnpl2jm37grsg94lix"))))
1084 (build-system emacs-build-system)
1085 (home-page "https://github.com/federicotdn/flymake-shellcheck")
1086 (synopsis "Flymake backend for Bash/Sh powered by ShellCheck")
1087 (description
1088 "This package provides a backend for Flymake to use the
1089 tool ShellCheck for static analyzing @command{bash} and @command{sh}
1090 scripts.")
1091 (license license:gpl3+))))
1092
1093 (define-public emacs-a
1094 (package
1095 (name "emacs-a")
1096 (version "0.1.1")
1097 (source (origin
1098 (method git-fetch)
1099 (uri (git-reference
1100 (url "https://github.com/plexus/a.el.git")
1101 (commit (string-append "v" version))))
1102 (file-name (git-file-name name version))
1103 (sha256
1104 (base32
1105 "00v9w6qg3bkwdhypq0ssf0phdh0f4bcq59c20lngd6vhk0204dqi"))))
1106 (build-system emacs-build-system)
1107 (home-page "https://github.com/plexus/a.el/")
1108 (synopsis
1109 "Emacs library for dealing with association lists and hash tables")
1110 (description "@code{emacs-a} provides Emacs Lisp functions for dealing
1111 with associative structures in a uniform and functional way. These functions
1112 can take association lists, hash tables, and in some cases vectors (where the
1113 index is considered the key).")
1114 (license license:gpl3+)))
1115
1116 (define-public emacs-ace-jump-mode
1117 (package
1118 (name "emacs-ace-jump-mode")
1119 (version "2.0")
1120 (home-page "https://github.com/winterTTr/ace-jump-mode")
1121 (source (origin
1122 (method git-fetch)
1123 (uri (git-reference
1124 (url home-page)
1125 (commit (string-append "v" version))))
1126 (sha256
1127 (base32
1128 "1bwvzh056ls2v7y26a0s4j5mj582dmds04lx4x6iqihs04ss74bb"))
1129 (file-name (git-file-name name version))))
1130 (build-system emacs-build-system)
1131 (synopsis "Cursor location minor mode for fast navigation")
1132 (description "Ace-jump-mode is a fast/direct cursor location minor
1133 mode. It creates an N-Branch search tree internally and marks all
1134 the possible position with predefined keys in within the whole Emacs
1135 view. This allows you to move to the character, word, or line almost
1136 directly.")
1137 (license license:gpl3+)))
1138
1139 (define-public emacs-anaphora
1140 (package
1141 (name "emacs-anaphora")
1142 (version "1.0.4")
1143 (source
1144 (origin
1145 (method git-fetch)
1146 (uri (git-reference
1147 (url "https://github.com/rolandwalker/anaphora.git")
1148 (commit (string-append "v" version))))
1149 (file-name (git-file-name name version))
1150 (sha256
1151 (base32
1152 "11fgiy029sqz7nvdm7dcal95lacryz9zql0x5h05z48nrrcl4bib"))))
1153 (build-system emacs-build-system)
1154 (home-page "https://github.com/rolandwalker/anaphora/")
1155 (synopsis "Anaphoric expressions for Emacs Lisp")
1156 (description "@code{emacs-anaphora} implements anaphoric expressions for
1157 Emacs Lisp.
1158
1159 Anaphoric expressions implicitly create one or more temporary variables which
1160 can be referred to during the expression. This technique can improve clarity
1161 in certain cases. It also enables recursion for anonymous functions.")
1162 (license license:public-domain)))
1163
1164 (define-public emacs-xr
1165 (package
1166 (name "emacs-xr")
1167 (version "1.19")
1168 (source
1169 (origin
1170 (method url-fetch)
1171 (uri (string-append "https://elpa.gnu.org/packages/xr-" version ".tar"))
1172 (sha256
1173 (base32 "1aa3iqh0r635jw8k89zh8y4am9d4hfrqpk9mrdh2b51invjn8llq"))))
1174 (build-system emacs-build-system)
1175 (home-page "https://elpa.gnu.org/packages/xr.html")
1176 (synopsis "Convert string regexp to rx notation")
1177 (description
1178 "This is an inverse companion to the @code{rx} package for translating
1179 regexps in string form to the @code{rx} notation. Its chief uses are:
1180
1181 @itemize
1182 @item Migrating existing code to @code{rx} form, for better readability and
1183 maintainability
1184 @item Understanding complex regexp strings and finding errors in them
1185 @end itemize
1186
1187 In addition to Emacs regexps, this package can also parse and troubleshoot
1188 skip set strings, which are arguments to @code{skip-chars-forward} and
1189 @code{skip-chars-backward}.")
1190 (license license:gpl3+)))
1191
1192 (define-public emacs-ample-regexps
1193 (let ((commit "cbe91e148cac1ee8e223874dc956ed4cf607f046")
1194 (revision "1"))
1195 (package
1196 (name "emacs-ample-regexps")
1197 (version (git-version "0.1" revision commit))
1198 (source
1199 (origin
1200 (method git-fetch)
1201 (uri (git-reference
1202 (url "https://github.com/immerrr/ample-regexps.el")
1203 (commit commit)))
1204 (file-name (git-file-name name version))
1205 (sha256
1206 (base32
1207 "1mm4icrwx4mscp7kbbmlc34995r164dhrfczn5ybkyxjzzf76jn1"))))
1208 (build-system emacs-build-system)
1209 (native-inputs
1210 `(("ert-runner" ,emacs-ert-runner)))
1211 (arguments
1212 `(#:tests? #t
1213 #:test-command '("ert-runner" "-l" "ample-regexps")))
1214 (home-page "https://github.com/immerrr/ample-regexps.el")
1215 (synopsis "Compose and reuse Emacs regexps")
1216 (description
1217 "This package allows common parts of regexps to be easily picked out
1218 and reused.")
1219 (license license:gpl3+))))
1220
1221 (define-public emacs-ample-theme
1222 (let ((commit "536966adf882446165a1f756830028faa792c7a9")
1223 (revision "1"))
1224 (package
1225 (name "emacs-ample-theme")
1226 (version (git-version "0.0.0" revision commit))
1227 (source (origin
1228 (method git-fetch)
1229 (uri (git-reference
1230 (url "https://github.com/jordonbiondo/ample-theme")
1231 (commit commit)))
1232 (file-name (git-file-name name version))
1233 (sha256
1234 (base32
1235 "07bpv8dag40qjnm5000pgzpazj4whfxf93x2vprz26sg3mjfx0nf"))))
1236 (build-system emacs-build-system)
1237 (home-page "https://github.com/jordonbiondo/ample-theme")
1238 (synopsis "Theme for Emacs providing dark, light, and flat versions")
1239 (description "Ample themes is a collection of three themes sharing a
1240 similar pallet with a light, dark and flat versions with a focus on being easy
1241 on the eyes during night and day. They only support GUI and 256 colour
1242 terminals.")
1243 (license license:gpl3+))))
1244
1245 (define-public emacs-reformatter
1246 (package
1247 (name "emacs-reformatter")
1248 (version "0.4")
1249 (source
1250 (origin
1251 (method git-fetch)
1252 (uri (git-reference
1253 (url "https://github.com/purcell/reformatter.el.git")
1254 (commit version)))
1255 (file-name (git-file-name name version))
1256 (sha256
1257 (base32
1258 "0hhy6x1bkwlhdlarsgm06g3am4yh02yqv8qs34szpzgy53x84qah"))))
1259 (build-system emacs-build-system)
1260 (home-page "https://github.com/purcell/reformatter.el")
1261 (synopsis "Define commands which run reformatters on the current buffer")
1262 (description
1263 "This library lets elisp authors easily define an idiomatic command to
1264 reformat the current buffer using a command-line program, together with an
1265 optional minor mode which can apply this command automatically on save.")
1266 (license license:gpl3+)))
1267
1268 (define-public emacs-relint
1269 (package
1270 (name "emacs-relint")
1271 (version "1.18")
1272 (source
1273 (origin
1274 (method url-fetch)
1275 (uri (string-append "https://elpa.gnu.org/packages/"
1276 "relint-" version ".tar"))
1277 (sha256
1278 (base32 "0zfislsksrkn6qs0w26yaff5xr7xqy2x235dcdpz8s2v35b6dhci"))))
1279 (build-system emacs-build-system)
1280 (propagated-inputs `(("emacs-xr" ,emacs-xr)))
1281 (home-page "https://github.com/mattiase/relint")
1282 (synopsis "Elisp regexp mistake finder")
1283 (description
1284 "Relint (regular expression lint) scans Elisp files for mistakes in
1285 regexps, including deprecated syntax and bad practice. It also checks the
1286 regexp-like arguments to @code{skip-chars-forward} and
1287 @code{skip-chars-backward}.")
1288 (license license:gpl3+)))
1289
1290 (define-public emacs-bug-hunter
1291 (let ((commit "b88d981afa9154b236c5a3a83b50d5889d46c6a7")
1292 (revision "1"))
1293 (package
1294 (name "emacs-bug-hunter")
1295 (version (git-version "1.3.1" revision commit))
1296 (source
1297 (origin
1298 (method git-fetch)
1299 (uri (git-reference
1300 (url "https://github.com/Malabarba/elisp-bug-hunter.git")
1301 (commit commit)))
1302 (file-name (git-file-name name commit))
1303 (sha256
1304 (base32
1305 "134fj493sdn93pyyac8rpz1fzahzmayvphsrmqp3wvgysmfqm38l"))))
1306 (build-system emacs-build-system)
1307 (propagated-inputs
1308 `(("emacs-seq" ,emacs-seq)))
1309 (home-page "https://github.com/Malabarba/elisp-bug-hunter")
1310 (synopsis "Hunt down errors by bisecting elisp files")
1311 (description
1312 "The Bug Hunter is an Emacs library that finds the source of an error
1313 or unexpected behavior inside an elisp configuration file (typically
1314 @file{init.el} or @file{.emacs}).")
1315 (license license:gpl3+))))
1316
1317 \f
1318 ;;;
1319 ;;; Web browsing.
1320 ;;;
1321
1322 (define-public emacs-w3m
1323 ;; Emacs-w3m follows a "rolling release" model.
1324 (package
1325 (name "emacs-w3m")
1326 (version "2018-11-11")
1327 (source (origin
1328 (method cvs-fetch)
1329 (uri (cvs-reference
1330 (root-directory
1331 ":pserver:anonymous@cvs.namazu.org:/storage/cvsroot")
1332 (module "emacs-w3m")
1333 (revision version)))
1334 (file-name (string-append name "-" version "-checkout"))
1335 (sha256
1336 (base32
1337 "0nvahdbjs12zg7zsk4gql02mvnv56cf1rwj2f5p42lwp3xvswiwp"))))
1338 (build-system gnu-build-system)
1339 (native-inputs `(("autoconf" ,autoconf)
1340 ("texinfo" ,texinfo)
1341 ("emacs" ,emacs-minimal)))
1342 (inputs `(("w3m" ,w3m)
1343 ("imagemagick" ,imagemagick)))
1344 (arguments
1345 `(#:modules ((guix build gnu-build-system)
1346 (guix build utils)
1347 (guix build emacs-utils))
1348 #:imported-modules (,@%gnu-build-system-modules
1349 (guix build emacs-utils))
1350 #:configure-flags
1351 (let ((out (assoc-ref %outputs "out")))
1352 (list (string-append "--with-lispdir="
1353 out "/share/emacs/site-lisp")
1354 (string-append "--with-icondir="
1355 out "/share/images/emacs-w3m")
1356 ;; Leave .el files uncompressed, otherwise GC can't
1357 ;; identify run-time dependencies. See
1358 ;; <http://lists.gnu.org/archive/html/guix-devel/2015-12/msg00208.html>
1359 "--without-compress-install"))
1360 #:tests? #f ; no check target
1361 #:phases
1362 (modify-phases %standard-phases
1363 (add-after 'unpack 'autoconf
1364 (lambda _
1365 (invoke "autoconf")))
1366 (add-before 'configure 'support-emacs!
1367 (lambda _
1368 ;; For some reason 'AC_PATH_EMACS' thinks that 'Emacs 26' is
1369 ;; unsupported.
1370 (substitute* "configure"
1371 (("EMACS_FLAVOR=unsupported")
1372 "EMACS_FLAVOR=emacs"))
1373 #t))
1374 (add-before 'build 'patch-exec-paths
1375 (lambda* (#:key inputs outputs #:allow-other-keys)
1376 (let ((out (assoc-ref outputs "out"))
1377 (w3m (assoc-ref inputs "w3m"))
1378 (imagemagick (assoc-ref inputs "imagemagick"))
1379 (coreutils (assoc-ref inputs "coreutils")))
1380 (make-file-writable "w3m.el")
1381 (emacs-substitute-variables "w3m.el"
1382 ("w3m-command" (string-append w3m "/bin/w3m"))
1383 ("w3m-touch-command"
1384 (string-append coreutils "/bin/touch"))
1385 ("w3m-icon-directory"
1386 (string-append out "/share/images/emacs-w3m")))
1387 (make-file-writable "w3m-image.el")
1388 (emacs-substitute-variables "w3m-image.el"
1389 ("w3m-imagick-convert-program"
1390 (string-append imagemagick "/bin/convert"))
1391 ("w3m-imagick-identify-program"
1392 (string-append imagemagick "/bin/identify")))
1393 #t)))
1394 (replace 'install
1395 (lambda* (#:key outputs #:allow-other-keys)
1396 (invoke "make" "install" "install-icons")
1397 (with-directory-excursion
1398 (string-append (assoc-ref outputs "out")
1399 "/share/emacs/site-lisp")
1400 (for-each delete-file '("ChangeLog" "ChangeLog.1"))
1401 (symlink "w3m-load.el" "w3m-autoloads.el")
1402 #t))))))
1403 (home-page "http://emacs-w3m.namazu.org/")
1404 (synopsis "Simple Web browser for Emacs based on w3m")
1405 (description
1406 "Emacs-w3m is an emacs interface for the w3m web browser.")
1407 (license license:gpl2+)))
1408
1409 (define-public emacs-wget
1410 (package
1411 (name "emacs-wget")
1412 (version "0.5.0")
1413 (source (origin
1414 (method url-fetch)
1415 (uri (string-append "mirror://debian/pool/main/w/wget-el/wget-el_"
1416 version ".orig.tar.gz"))
1417 (sha256
1418 (base32 "10byvyv9dk0ib55gfqm7bcpxmx2qbih1jd03gmihrppr2mn52nff"))))
1419 (build-system gnu-build-system)
1420 (inputs `(("wget" ,wget)))
1421 (native-inputs `(("emacs" ,emacs-minimal)))
1422 (arguments
1423 `(#:modules ((guix build gnu-build-system)
1424 (guix build utils)
1425 (guix build emacs-utils))
1426 #:imported-modules (,@%gnu-build-system-modules
1427 (guix build emacs-utils))
1428 #:tests? #f ; no check target
1429 #:phases
1430 (modify-phases %standard-phases
1431 (replace 'configure
1432 (lambda* (#:key outputs #:allow-other-keys)
1433 (substitute* "Makefile"
1434 (("/usr/local") (assoc-ref outputs "out"))
1435 (("/site-lisp/emacs-wget") "/site-lisp"))
1436 #t))
1437 (add-before 'build 'patch-exec-paths
1438 (lambda* (#:key inputs outputs #:allow-other-keys)
1439 (let ((wget (assoc-ref inputs "wget")))
1440 (emacs-substitute-variables "wget.el"
1441 ("wget-command" (string-append wget "/bin/wget"))))
1442 #t))
1443 (add-after 'install 'post-install
1444 (lambda* (#:key outputs #:allow-other-keys)
1445 (emacs-generate-autoloads
1446 "wget" (string-append (assoc-ref outputs "out")
1447 "/share/emacs/site-lisp/"))
1448 #t)))))
1449 (home-page "https://www.emacswiki.org/emacs/EmacsWget")
1450 (synopsis "Simple file downloader for Emacs based on wget")
1451 (description
1452 "Emacs-wget is an emacs interface for the wget file downloader.")
1453 (license license:gpl2+)))
1454
1455 (define-public emacs-eww-lnum
1456 (package
1457 (name "emacs-eww-lnum")
1458 (version "1.1")
1459 (source (origin
1460 (method git-fetch)
1461 (uri (git-reference
1462 (url "https://github.com/m00natic/eww-lnum.git")
1463 (commit version)))
1464 (file-name (git-file-name name version))
1465 (sha256
1466 (base32
1467 "0gs6bi3s2sszc6v2b26929azmn5513kvyin99n4d0ark1jdbjmv2"))))
1468 (build-system emacs-build-system)
1469 (home-page "https://github.com/m00natic/eww-lnum")
1470 (synopsis "Conkeror-like functionality for Eww")
1471 (description "This is extension to the Emacs browser Eww that adds
1472 Conkeror-like functionality. In short, currently visible links, forms,
1473 buttons are temporarily assigned numbers with which the former can be
1474 immediately activated. Also filtering can be applied so selection can be
1475 incrementally confined in Isearch manner.")
1476 (license license:gpl3+)))
1477
1478
1479 \f
1480 ;;;
1481 ;;; Multimedia.
1482 ;;;
1483
1484 (define-public emacs-emms
1485 (package
1486 (name "emacs-emms")
1487 (version "5.42")
1488 (source
1489 (origin
1490 (method url-fetch)
1491 (uri (string-append "https://elpa.gnu.org/packages/"
1492 "emms-" version ".tar"))
1493 (sha256
1494 (base32 "1khx1fvllrs6w9kxk12mp1hj309c90mc7lkq1vvlqlr7vd6zmnpj"))))
1495 (build-system emacs-build-system)
1496 (arguments
1497 `(#:phases
1498 (modify-phases %standard-phases
1499 (add-after 'unpack 'set-external-programs
1500 ;; Specify the absolute file names of the various programs
1501 ;; so that everything works out-of-the-box.
1502 (lambda* (#:key inputs outputs #:allow-other-keys)
1503 (let ((out (assoc-ref outputs "out"))
1504 (flac (assoc-ref inputs "flac"))
1505 (vorbis (assoc-ref inputs "vorbis-tools"))
1506 (alsa (assoc-ref inputs "alsa-utils"))
1507 (mpg321 (assoc-ref inputs "mpg321"))
1508 (mp3info (assoc-ref inputs "mp3info"))
1509 (mutagen (assoc-ref inputs "mutagen"))
1510 (opus (assoc-ref inputs "opus-tools")))
1511 (emacs-substitute-variables "emms-player-mpg321-remote.el"
1512 ("emms-player-mpg321-remote-command"
1513 (string-append mpg321 "/bin/mpg321")))
1514 (substitute* "emms-player-simple.el"
1515 (("\"ogg123\"")
1516 (string-append "\"" vorbis "/bin/ogg123\"")))
1517 (substitute* "emms-player-simple.el"
1518 (("\"mpg321\"")
1519 (string-append "\"" mpg321 "/bin/mpg321\"")))
1520 (emacs-substitute-variables "emms-info-ogginfo.el"
1521 ("emms-info-ogginfo-program-name"
1522 (string-append vorbis "/bin/ogginfo")))
1523 (emacs-substitute-variables "emms-info-opusinfo.el"
1524 ("emms-info-opusinfo-program-name"
1525 (string-append opus "/bin/opusinfo")))
1526 (emacs-substitute-variables "emms-info-libtag.el"
1527 ("emms-info-libtag-program-name"
1528 (string-append out "/bin/emms-print-metadata")))
1529 (emacs-substitute-variables "emms-info-mp3info.el"
1530 ("emms-info-mp3info-program-name"
1531 (string-append mp3info "/bin/mp3info")))
1532 (emacs-substitute-variables "emms-info-metaflac.el"
1533 ("emms-info-metaflac-program-name"
1534 (string-append flac "/bin/metaflac")))
1535 (emacs-substitute-variables "emms-source-file.el"
1536 ("emms-source-file-gnu-find" (which "find")))
1537 (substitute* "emms-volume-amixer.el"
1538 (("\"amixer\"")
1539 (string-append "\"" alsa "/bin/amixer\"")))
1540 (substitute* "emms-tag-editor.el"
1541 (("\"mid3v2\"")
1542 (string-append "\"" mutagen "/bin/mid3v2\"")))
1543 #t))))))
1544 (inputs
1545 `(("alsa-utils" ,alsa-utils)
1546 ("flac" ,flac) ;for metaflac
1547 ("vorbis-tools" ,vorbis-tools)
1548 ("mpg321" ,mpg321)
1549 ("taglib" ,taglib)
1550 ("mp3info" ,mp3info)
1551 ("mutagen" ,python-mutagen)
1552 ("opus-tools" ,opus-tools)))
1553 (home-page "https://www.gnu.org/software/emms/")
1554 (synopsis "The Emacs Multimedia System")
1555 (description
1556 "EMMS is the Emacs Multimedia System. It is a small front-end which
1557 can control one of the supported external players. Thus, it supports
1558 whatever formats are supported by your music player. It also
1559 supports tagging and playlist management, all behind a clean and
1560 light user interface.")
1561 (license license:gpl3+)))
1562
1563 (define-public emacs-emms-mode-line-cycle
1564 (package
1565 (name "emacs-emms-mode-line-cycle")
1566 (version "0.2.5")
1567 (source
1568 (origin
1569 (method git-fetch)
1570 (uri (git-reference
1571 (url "https://github.com/momomo5717/emms-mode-line-cycle")
1572 (commit version)))
1573 (file-name (git-file-name name version))
1574 (sha256
1575 (base32
1576 "0q80f0plch6k4lhs8c9qm3mfycfbp3kn5sjrk9zxgxwnn901y9mp"))))
1577 (build-system emacs-build-system)
1578 (propagated-inputs
1579 `(("emms" ,emacs-emms)))
1580 (home-page "https://github.com/momomo5717/emms-mode-line-cycle")
1581 (synopsis "Display the EMMS mode line as a ticker")
1582 (description
1583 "This is a minor mode for updating the EMMS mode-line string cyclically
1584 within a specified width. It is useful for displaying long track titles.")
1585 (license license:gpl3+)))
1586
1587 \f
1588 ;;;
1589 ;;; Miscellaneous.
1590 ;;;
1591
1592 (define-public emacs-ace-link
1593 (package
1594 (name "emacs-ace-link")
1595 (version "0.5.0")
1596 (source
1597 (origin
1598 (method git-fetch)
1599 (uri (git-reference
1600 (url "https://github.com/abo-abo/ace-link.git")
1601 (commit version)))
1602 (file-name (git-file-name name version))
1603 (sha256
1604 (base32
1605 "147dz79vg4ym5wg3d544bw2khdb2j3hr73rw4qfm64wf0q2dj0vk"))))
1606 (build-system emacs-build-system)
1607 (propagated-inputs
1608 `(("emacs-avy" ,emacs-avy)))
1609 (home-page "https://github.com/abo-abo/ace-link")
1610 (synopsis "Quickly follow links in Emacs")
1611 (description
1612 "Currently, to jump to a link in a @code{Info-mode}, @code{help-mode},
1613 @code{woman-mode}, @code{org-mode}, @code{eww-mode}, @code{compilation-mode},
1614 @code{goto-address-mode} buffer, you can tab through the links to select the
1615 one you want. This is an O(N) operation, where the N is the amount of links.
1616 This package turns this into an O(1) operation. It does so by assigning a
1617 letter to each link using avy.")
1618 (license license:gpl3+)))
1619
1620 (define-public emacs-auto-sudoedit
1621 (package
1622 (name "emacs-auto-sudoedit")
1623 (version "1.0.0")
1624 (source
1625 (origin
1626 (method git-fetch)
1627 (uri (git-reference
1628 (url "https://github.com/ncaq/auto-sudoedit.git")
1629 (commit (string-append "v" version))))
1630 (file-name (git-file-name name version))
1631 (sha256
1632 (base32 "10p0hc95j382km8655pqld9wxg10j1f36czzppkdd6a55cxarv9f"))))
1633 (propagated-inputs
1634 `(("emacs-f" ,emacs-f)))
1635 (build-system emacs-build-system)
1636 (home-page "https://github.com/ncaq/auto-sudoedit")
1637 (synopsis "Automatically re-open read-only files with sudo")
1638 (description
1639 "This package automatically reopens a file or directory with
1640 @command{sudo} if it cannot write to it.")
1641 (license license:expat)))
1642
1643 (define-public emacs-bbdb
1644 (package
1645 (name "emacs-bbdb")
1646 (version "3.2")
1647 (source
1648 (origin
1649 (method url-fetch)
1650 (uri (string-append "https://elpa.gnu.org/packages/"
1651 "bbdb-" version ".tar"))
1652 (sha256
1653 (base32 "1p56dg0mja2b2figy7yhdx714zd5j6njzn0k07zjka3jc06izvjx"))))
1654 (build-system emacs-build-system)
1655 (arguments
1656 ;; XXX: The following file cannot be byte-compiled, because et requires
1657 ;; `vm-autoloads', from the VM package, with is neither in Emacs nor
1658 ;; packaged in Guix. So, don't bother for now.
1659 `(#:exclude '("bbdb-vm\\.el")))
1660 (home-page "http://elpa.gnu.org/packages/bbdb.html")
1661 (synopsis "Contact management utility for Emacs")
1662 (description
1663 "BBDB is the Insidious Big Brother Database for GNU Emacs. It provides
1664 an address book for email and snail mail addresses, phone numbers and the
1665 like. It can be linked with various Emacs mail clients (Message and Mail
1666 mode, Rmail, Gnus, MH-E, and VM). BBDB is fully customizable.")
1667 (license license:gpl3+)))
1668
1669 (define-public emacs-bluetooth
1670 (package
1671 (name "emacs-bluetooth")
1672 (version "0.1.2")
1673 (source
1674 (origin
1675 (method url-fetch)
1676 (uri (string-append "https://elpa.gnu.org/packages/"
1677 "bluetooth-" version ".el"))
1678 (sha256
1679 (base32 "1vp2vpyq0ybjni35ics1mg1kiwgvc7x12dlmvygy78sqp52sfkcv"))))
1680 (build-system emacs-build-system)
1681 (inputs
1682 `(("bluez" ,bluez)))
1683 (propagated-inputs
1684 `(("emacs-dash" ,emacs-dash)))
1685 (home-page "https://gitlab.com/rstocker/emacs-bluetooth")
1686 (synopsis "Manage Bluetooth devices using Emacs")
1687 (description
1688 "This package implements basic Bluetooth management functionality, such
1689 as connecting and disconnecting devices, setting properties and aliases,
1690 putting the adapter in discovery mode and controlling its power supply. It
1691 also includes a pairing agent.")
1692 (license license:gpl3+)))
1693
1694 (define-public emacs-aggressive-indent
1695 (package
1696 (name "emacs-aggressive-indent")
1697 (version "1.8.3")
1698 (source (origin
1699 (method url-fetch)
1700 (uri (string-append "https://elpa.gnu.org/packages/"
1701 "aggressive-indent-" version ".el"))
1702 (sha256
1703 (base32
1704 "0jnzccl50x0wapprgwxinp99pwwa6j43q6msn4gv437j7swy8wnj"))))
1705 (build-system emacs-build-system)
1706 (home-page "https://elpa.gnu.org/packages/aggressive-indent.html")
1707 (synopsis "Minor mode to aggressively keep your code always indented")
1708 (description
1709 "@code{aggressive-indent-mode} is a minor mode that keeps your code
1710 always indented. It reindents after every change, making it more reliable
1711 than @code{electric-indent-mode}.")
1712 (license license:gpl2+)))
1713
1714 (define-public emacs-ctrlf
1715 (package
1716 (name "emacs-ctrlf")
1717 (version "1.0")
1718 (source
1719 (origin
1720 (method git-fetch)
1721 (uri (git-reference
1722 (url "https://github.com/raxod502/ctrlf.git")
1723 (commit (string-append "v" version))))
1724 (file-name (git-file-name name version))
1725 (sha256
1726 (base32 "10gnhafas54zj3z9173h1g7b519ac4i26afclmw3w1pk6qyyb03z"))))
1727 (build-system emacs-build-system)
1728 (home-page "https://github.com/raxod502/ctrlf/")
1729 (synopsis "Single-buffer text search in Emacs")
1730 (description "CTRLF (pronounced @emph{control F}) is an intuitive and
1731 efficient solution for single-buffer text search in Emacs, replacing packages
1732 such as Isearch, Swiper, and helm-swoop. It takes inspiration from the
1733 widely-adopted and battle-tested @samp{Ctrl+F} interfaces in programs such as
1734 web browsers, but follows the flow and keybindings of Isearch.")
1735 (license license:expat)))
1736
1737 (define-public emacs-dhall-mode
1738 ;; There is no proper release. The base version is extracted from the
1739 ;; "Version" keyword in the main file.
1740 (let ((revision "0")
1741 (commit "ef4d33debe224c6ba37e51a29b9dc8b74f20f1c2"))
1742 (package
1743 (name "emacs-dhall-mode")
1744 (version (git-version "0.1.3" revision commit))
1745 (source
1746 (origin
1747 (method git-fetch)
1748 (uri
1749 (git-reference
1750 (url "https://github.com/psibi/dhall-mode")
1751 (commit commit)))
1752 (file-name (git-file-name name version))
1753 (sha256
1754 (base32 "1232y2k4l3bsz90pgis78zxmrw7jv09dfaip21yc1w4vpxfyr384"))))
1755 (build-system emacs-build-system)
1756 (propagated-inputs
1757 `(("emacs-reformatter" ,emacs-reformatter)))
1758 (home-page "https://github.com/psibi/dhall-mode")
1759 (synopsis "Major mode for working with Dhall configuration language")
1760 (description
1761 "Dhall-mode provides an Emacs Major mode for working with the Dhall
1762 configuration language. It features:
1763
1764 @itemize
1765 @item Syntax highlighting
1766 @item Multiline support for String
1767 @item Basic indentation, commenting
1768 @item Automatic formatting on save using dhall-format.
1769 @item Error highlighting.
1770 @end itemize")
1771 (license license:gpl3+))))
1772
1773 (define-public emacs-link-hint
1774 ;; Last release was in 2015.
1775 (let ((commit "d74a483652486260c052941fedeadddb1ea71f88")
1776 (revision "1"))
1777 (package
1778 (name "emacs-link-hint")
1779 (version (git-version "0.1" revision commit))
1780 (source
1781 (origin
1782 (method git-fetch)
1783 (uri (git-reference
1784 (url "https://github.com/noctuid/link-hint.el")
1785 (commit commit)))
1786 (file-name (git-file-name name version))
1787 (sha256
1788 (base32
1789 "0dghxd165fbds6czy9bfwpid3i4irgp3q08n9mg57sfifi0cmij0"))))
1790 (build-system emacs-build-system)
1791 (propagated-inputs
1792 `(("emacs-avy" ,emacs-avy)))
1793 (home-page "https://github.com/noctuid/link-hint.el")
1794 (synopsis "Vimperator-style link-hinting in Emacs")
1795 (description "This package provides commands for visiting and acting on
1796 links.")
1797 (license license:gpl3+))))
1798
1799 (define-public emacs-ag
1800 (package
1801 (name "emacs-ag")
1802 (version "0.48")
1803 (source (origin
1804 (method git-fetch)
1805 (uri (git-reference
1806 (url "https://github.com/Wilfred/ag.el.git")
1807 (commit version)))
1808 (file-name (git-file-name name version))
1809 (sha256
1810 (base32
1811 "1p918y24vcn2pdliaymd210xp9fvhd4a1srqbv2lfiqrh59yjidx"))))
1812 (build-system emacs-build-system)
1813 (arguments
1814 `(#:phases
1815 (modify-phases %standard-phases
1816 (add-before 'install 'make-info
1817 (lambda _
1818 (with-directory-excursion "docs"
1819 (invoke "make" "info"))))
1820 (add-after 'install 'install-info
1821 (lambda* (#:key outputs #:allow-other-keys)
1822 (let* ((out (assoc-ref outputs "out"))
1823 (info (string-append out "/share/info")))
1824 (install-file "docs/_build/texinfo/agel.info" info)
1825 #t))))))
1826 (native-inputs
1827 `(("python-sphinx" ,python-sphinx)
1828 ("texinfo" ,texinfo)))
1829 (propagated-inputs
1830 `(("dash" ,emacs-dash)
1831 ("s" ,emacs-s)
1832 ;; We need to use 'ag' as the executable on remote systems.
1833 ("the-silver-searcher" ,the-silver-searcher)))
1834 (home-page "https://github.com/Wilfred/ag.el")
1835 (synopsis "Front-end for ag (the-silver-searcher) for Emacs")
1836 (description "This package provides the ability to use the silver
1837 searcher, a code searching tool, sometimes abbreviated to @code{ag}. Features
1838 include version control system awareness, use of Perl compatible regular
1839 expressions, editing the search results directly and searching file names
1840 rather than the contents of files.")
1841 (license license:gpl3+)))
1842
1843 (define-public emacs-async
1844 (package
1845 (name "emacs-async")
1846 (home-page "https://github.com/jwiegley/emacs-async")
1847 (version "1.9.4")
1848 (source (origin
1849 (method git-fetch)
1850 (uri (git-reference
1851 (url home-page)
1852 (commit (string-append "v" version))))
1853 (file-name (git-file-name name version))
1854 (sha256
1855 (base32
1856 "0hhpyxb3d531jb2f3wvzx25183f0anm8nxv6mh0p825q2gkm6ly7"))))
1857 (build-system emacs-build-system)
1858 (synopsis "Asynchronous processing in Emacs")
1859 (description
1860 "This package provides the ability to call asynchronous functions and
1861 processes. For example, it can be used to run dired commands (for copying,
1862 moving, etc.) asynchronously using @code{dired-async-mode}. Also it is used
1863 as a library for other Emacs packages.")
1864 (license license:gpl3+)))
1865
1866 (define-public emacs-auctex
1867 (package
1868 (name "emacs-auctex")
1869 (version "12.2.4")
1870 (source
1871 (origin
1872 (method url-fetch)
1873 (uri (string-append "https://elpa.gnu.org/packages/"
1874 "auctex-" version ".tar"))
1875 (sha256
1876 (base32 "1yz2h692mr35zgqwlxdq8rzv8n0jixhpaqmbiki00hlysm4zh9py"))))
1877 (build-system emacs-build-system)
1878 ;; We use 'emacs' because AUCTeX requires dbus at compile time
1879 ;; ('emacs-minimal' does not provide dbus).
1880 (arguments
1881 `(#:emacs ,emacs
1882 #:include '("\\.el$" "^images/" "^latex/" "\\.info$")
1883 #:exclude '("^tests/" "^latex/README")
1884 #:phases
1885 (modify-phases %standard-phases
1886 (add-after 'install 'install-doc
1887 (lambda* (#:key outputs #:allow-other-keys)
1888 (let* ((out (assoc-ref outputs "out"))
1889 (etc-dir (string-append out "/share/" ,name "/"
1890 ,version "/etc")))
1891 (with-directory-excursion "doc"
1892 (setenv "HOME" (getenv "TMPDIR")) ; for mktextfm
1893 (invoke "pdftex" "tex-ref")
1894 (install-file "tex-ref.pdf"
1895 (string-append etc-dir "/refcards")))
1896 #t))))))
1897 (native-inputs
1898 `(("perl" ,perl)))
1899 (inputs
1900 `(("texlive" ,(texlive-union (list texlive-amsfonts)))))
1901 (home-page "https://www.gnu.org/software/auctex/")
1902 (synopsis "Integrated environment for TeX")
1903 (description
1904 "AUCTeX is a comprehensive customizable integrated environment for
1905 writing input files for TeX, LaTeX, ConTeXt, Texinfo, and docTeX using Emacs
1906 or XEmacs.")
1907 (license license:gpl3+)))
1908
1909 (define-public emacs-autothemer
1910 (package
1911 (name "emacs-autothemer")
1912 (version "0.2.2")
1913 (source
1914 (origin
1915 (method git-fetch)
1916 (uri (git-reference
1917 (url "https://github.com/sebastiansturm/autothemer.git")
1918 (commit version)))
1919 (file-name (git-file-name name version))
1920 (sha256
1921 (base32
1922 "0cd2pqh6k32sjidkcd8682y4l6mx52xw4a05f38kk8nsrk28m74k"))))
1923 (build-system emacs-build-system)
1924 (propagated-inputs
1925 `(("emacs-dash" ,emacs-dash)))
1926 (home-page "https://github.com/sebastiansturm/autothemer")
1927 (synopsis "Conveniently create Emacs themes")
1928 (description
1929 "Autothemer provides a thin layer on top of @code{deftheme} and
1930 @code{custom-theme-set-faces} that creates a new custom color theme, based on
1931 a set of simplified face specifications and a user-supplied color palette")
1932 (license license:gpl3+)))
1933
1934 (define-public emacs-howm
1935 (package
1936 (name "emacs-howm")
1937 (version "1.4.6")
1938 (source
1939 (origin
1940 (method url-fetch)
1941 (uri (string-append "https://howm.sourceforge.jp/a/"
1942 "howm-" version ".tar.gz"))
1943 (sha256
1944 (base32 "17ihch1zbk08ih7gc232jlmbw7hax8ldb9glxp8d75k4asa98qh5"))))
1945 (build-system gnu-build-system)
1946 (native-inputs
1947 `(("emacs" ,emacs-minimal)))
1948 (arguments
1949 `(#:configure-flags
1950 (list (string-append "--with-howmdir=" %output
1951 "/share/emacs/site-lisp/"))
1952 #:modules ((guix build gnu-build-system)
1953 ((guix build emacs-build-system) #:prefix emacs:)
1954 (guix build utils))
1955 #:imported-modules (,@%gnu-build-system-modules
1956 (guix build emacs-build-system)
1957 (guix build emacs-utils))
1958 #:phases
1959 (modify-phases %standard-phases
1960 (add-after 'install 'make-autoloads
1961 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
1962 (home-page "https://howm.osdn.jp/")
1963 (synopsis "Note-taking tool for Emacs")
1964 (description "Howm is a note-taking tool for Emacs. Like
1965 code@{emacs-wiki.el}, it facilitates using hyperlinks and doing full-text
1966 searches. Unlike code@{emacs-wiki.el}, it can be combined with any format.")
1967 (license license:gpl1+)))
1968
1969 (define-public emacs-bm
1970 (package
1971 (name "emacs-bm")
1972 (version "201905")
1973 (source
1974 (origin
1975 (method git-fetch)
1976 (uri (git-reference
1977 (url "https://github.com/joodland/bm.git")
1978 (commit version)))
1979 (file-name (git-file-name name version))
1980 (sha256
1981 (base32 "180b3rc13asrmsdh7v405d54jkrininvaj52xhp71vw91ng51dkn"))))
1982 (build-system emacs-build-system)
1983 (home-page "https://github.com/joodland/bm")
1984 (synopsis "Visual bookmarks for Emacs")
1985 (description "This package provides visible, buffer local bookmarks and
1986 the ability to jump forward and backward to the next bookmark.")
1987 (license license:gpl2+)))
1988
1989 (define-public emacs-calfw
1990 (package
1991 (name "emacs-calfw")
1992 (version "1.6")
1993 (source
1994 (origin
1995 (method git-fetch)
1996 (uri (git-reference
1997 (url "https://github.com/kiwanami/emacs-calfw.git")
1998 (commit (string-append "v" version))))
1999 (file-name (git-file-name name version))
2000 (sha256
2001 (base32
2002 "0r42cagvmvvib76kd15nd9ix55ys6i549vxnls4z16s864695zpa"))))
2003 (build-system emacs-build-system)
2004 (propagated-inputs
2005 `(("emacs-howm" ,emacs-howm)))
2006 (home-page "https://github.com/kiwanami/emacs-calfw/")
2007 (synopsis "Calendar framework for Emacs")
2008 (description
2009 "This package displays a calendar view with various schedule data in the
2010 Emacs buffer.")
2011 (license license:gpl3+)))
2012
2013 (define-public emacs-caps-lock
2014 (package
2015 (name "emacs-caps-lock")
2016 (version "1.0")
2017 (source
2018 (origin
2019 (method url-fetch)
2020 (uri (string-append "https://elpa.gnu.org/packages/"
2021 "caps-lock-" version ".el"))
2022 (sha256
2023 (base32 "1i4hwam81p4dr0bk8257fkiz4xmv6knkjxj7a00fa35kgx5blpva"))))
2024 (build-system emacs-build-system)
2025 (home-page "http://elpa.gnu.org/packages/caps-lock.html")
2026 (synopsis "Caps Lock as a minor mode")
2027 (description
2028 "This package provides a minor mode to emulate the behavior of a Caps
2029 Lock key.")
2030 (license license:gpl3+)))
2031
2032 (define-public emacs-chronometrist
2033 (package
2034 (name "emacs-chronometrist")
2035 (version "0.4.3")
2036 (source
2037 (origin
2038 (method git-fetch)
2039 (uri (git-reference
2040 (url "https://framagit.org/contrapunctus/chronometrist.git")
2041 (commit (string-append "v" version))))
2042 (file-name (git-file-name name version))
2043 (sha256
2044 (base32 "1ljjqzghcap4admv0hvw6asm148b80mfgjgxjjcw6qc95fkjjjlr"))))
2045 (build-system emacs-build-system)
2046 (propagated-inputs
2047 `(("emacs-dash" ,emacs-dash)
2048 ("emacs-s" ,emacs-s)))
2049 (home-page "https://framagit.org/contrapunctus/chronometrist")
2050 (synopsis "Time tracker for Emacs")
2051 (description "Chronometrist is a time tracker in Emacs, largely modelled
2052 after the Android application, @emph{A Time Tracker}.
2053
2054 Its features are:
2055 @itemize
2056 @item Simple and efficient to use,
2057 @item Displays useful information about your time usage,
2058 @item Support for both mouse and keyboard,
2059 @item Human errors in tracking are easily fixed by editing a plain text file,
2060 @item Hooks to let you perform arbitrary actions when starting/stopping tasks.
2061 @end itemize")
2062 ;; Software is dual-licensed.
2063 (license (list license:unlicense license:wtfpl2))))
2064
2065 (define-public emacs-direnv
2066 (package
2067 (name "emacs-direnv")
2068 (version "2.0.0")
2069 (source
2070 (origin
2071 (method git-fetch)
2072 (uri (git-reference
2073 (url "https://github.com/wbolster/emacs-direnv.git")
2074 (commit version)))
2075 (file-name (git-file-name name version))
2076 (sha256
2077 (base32
2078 "005ibyzsx1fdyrl5iyhqpb1bg83mphzahq7zvw58x00syyqi2z49"))))
2079 (build-system emacs-build-system)
2080 (propagated-inputs
2081 `(("dash" ,emacs-dash)
2082 ("with-editor" ,emacs-with-editor)))
2083 (home-page "https://github.com/wbolster/emacs-direnv")
2084 (synopsis "Direnv integration for Emacs")
2085 (description
2086 "This package provides support for invoking direnv to get the environment
2087 for the current file and updating the environment within Emacs to match.
2088
2089 Direnv can be invoked manually, and a global minor mode is included that will
2090 update the environment when the active buffer changes.
2091
2092 Using emacs-direnv means that programs started from Emacs will use the
2093 environment set through Direnv.")
2094 (license license:gpl3+)))
2095
2096 (define-public emacs-elf-mode
2097 (package
2098 (name "emacs-elf-mode")
2099 (version "0.1.0")
2100 (source
2101 (origin
2102 (method git-fetch)
2103 (uri
2104 (git-reference
2105 (url "https://github.com/abo-abo/elf-mode")
2106 (commit version)))
2107 (file-name (git-file-name name version))
2108 (sha256
2109 (base32 "0cbvjbk2893ag1iy8ggixpirfiyhssm7fii96hb9jqdz874cdl0k"))))
2110 (build-system emacs-build-system)
2111 (home-page "https://github.com/abo-abo/elf-mode")
2112 (synopsis "Show symbol list when opening a binary file in Emacs")
2113 (description "This Emacs package provides a command showing the symbols
2114 that the binary uses instead of the actual binary contents.")
2115 (license license:gpl3+)))
2116
2117 (define-public emacs-form-feed
2118 (package
2119 (name "emacs-form-feed")
2120 (version "0.2.2")
2121 (source
2122 (origin
2123 (method git-fetch)
2124 (uri (git-reference
2125 (url "https://github.com/wasamasa/form-feed.git")
2126 (commit version)))
2127 (file-name (git-file-name name version))
2128 (sha256
2129 (base32 "171jna631b2iqcimfsik9c66gii8nc0zdb58m077w00rn7rcxbh2"))))
2130 (build-system emacs-build-system)
2131 (home-page "https://github.com/wasamasa/form-feed")
2132 (synopsis "Display ^L glyphs as horizontal lines")
2133 (description
2134 "This package provides a minor mode @code{form-feed-mode} to display page
2135 delimiters which usually appear as ^L glyphs on a single line as horizontal
2136 lines spanning the entire window. The minor mode is suitable for inclusion
2137 into mode hooks and is intended to be used that way.")
2138 (license license:gpl3+)))
2139
2140 (define-public emacs-ggtags
2141 (package
2142 (name "emacs-ggtags")
2143 (version "0.8.13")
2144 (source
2145 (origin
2146 (method url-fetch)
2147 (uri (string-append "https://elpa.gnu.org/packages/ggtags-"
2148 version ".el"))
2149 (sha256
2150 (base32
2151 "1qa7lcrcmf76sf6dy8sxbg4adq7rg59fm0n5848w3qxgsr0h45fg"))))
2152 (build-system emacs-build-system)
2153 (inputs
2154 `(("global" ,global)))
2155 (arguments
2156 `(#:phases
2157 (modify-phases %standard-phases
2158 (add-after 'unpack 'configure
2159 (lambda* (#:key inputs #:allow-other-keys)
2160 (chmod "ggtags.el" #o644)
2161 (emacs-substitute-variables "ggtags.el"
2162 ("ggtags-executable-directory"
2163 (string-append (assoc-ref inputs "global") "/bin")))
2164 #t)))))
2165 (home-page "https://github.com/leoliu/ggtags")
2166 (synopsis "Frontend to the GNU Global source code tagging system")
2167 (description "@code{ggtags} provides a frontend to the GNU Global source
2168 code tagging system.
2169
2170 Features:
2171
2172 @itemize
2173 @item Build on @code{compile.el} for asynchronicity and its large feature-set.
2174 @item Automatically update Global's tag files when needed with tuning for
2175 large source trees.
2176 @item Intuitive navigation among multiple matches with mode-line display of
2177 current match, total matches and exit status.
2178 @item Read tag with completion.
2179 @item Show definition at point.
2180 @item Jump to #include files.
2181 @item Support search history and saving a search to register/bookmark.
2182 @item Query replace.
2183 @item Manage Global's environment variables on a per-project basis.
2184 @item Highlight (definition) tag at point.
2185 @item Abbreviated display of file names.
2186 @item Support all Global search backends: @code{grep}, @code{idutils}, etc.
2187 @item Support exuberant ctags @url{http://ctags.sourceforge.net/} and
2188 @code{pygments} backend.
2189 @item Support all Global's output formats: @code{grep}, @code{ctags-x},
2190 @code{cscope} etc.
2191 @item Support projects on remote hosts (e.g. via @code{tramp}).
2192 @item Support eldoc.
2193 @item Search @code{GTAGSLIBPATH} for references and symbols.
2194 @end itemize\n")
2195 (license license:gpl3+)))
2196
2197 (define-public emacs-go-mode
2198 (package
2199 (name "emacs-go-mode")
2200 (version "1.5.0")
2201 (source (origin
2202 (method git-fetch)
2203 (uri (git-reference
2204 (url "https://github.com/dominikh/go-mode.el.git")
2205 (commit (string-append "v" version))))
2206 (file-name (git-file-name name version))
2207 (sha256
2208 (base32
2209 "1nd2h50yb0493wvf1h7fzplq45rmqn2w7kxpgnlxzhkvq99v8vzf"))))
2210 (build-system emacs-build-system)
2211 (arguments
2212 `(#:phases
2213 (modify-phases %standard-phases
2214 (add-after 'unpack 'make-writable
2215 (lambda _
2216 (for-each make-file-writable (find-files "." "\\.el$"))
2217 #t)))))
2218 (home-page "https://github.com/dominikh/go-mode.el")
2219 (synopsis "Go mode for Emacs")
2220 (description
2221 "This package provides go-mode, an Emacs mode for working with software
2222 written in the Go programming language.")
2223 (license license:bsd-3)))
2224
2225 (define-public emacs-google-maps
2226 (package
2227 (name "emacs-google-maps")
2228 (version "1.0.0")
2229 (source (origin
2230 (method git-fetch)
2231 (uri (git-reference
2232 (url "https://github.com/jd/google-maps.el.git")
2233 (commit version)))
2234 (file-name (git-file-name name version))
2235 (sha256
2236 (base32
2237 "183igr5lp20zcqi7rc01fk76sfxdhksd74i11v16gdsifdkjimd0"))))
2238 (build-system emacs-build-system)
2239 (home-page "https://github.com/jd/google-maps.el")
2240 (synopsis "Access Google Maps from Emacs")
2241 (description "The @code{google-maps} package displays Google
2242 Maps directly inside Emacs.")
2243 (license license:gpl3+)))
2244
2245 (define-public emacs-graphviz-dot-mode
2246 (package
2247 (name "emacs-graphviz-dot-mode")
2248 (version "0.4.2")
2249 (source
2250 (origin
2251 (method git-fetch)
2252 (uri (git-reference
2253 (url "https://github.com/ppareit/graphviz-dot-mode.git")
2254 (commit (string-append "v" version))))
2255 (file-name (git-file-name name version))
2256 (sha256
2257 (base32 "1v1p85wk73nfsvv66qf90flgf9dqhmv15z1r7q4zmc4ifklqn08m"))))
2258 (build-system emacs-build-system)
2259 (arguments
2260 `(#:phases
2261 (modify-phases %standard-phases
2262 (add-before 'install 'make-info
2263 (lambda* (#:key inputs #:allow-other-keys)
2264 (with-directory-excursion "texinfo"
2265 (substitute* "Makefile"
2266 (("\\/usr\\/bin\\/gzip")
2267 (string-append (assoc-ref inputs "gzip") "/bin/gzip")))
2268 (invoke "make"
2269 "clean"
2270 "info"
2271 (string-append "TEXINFODIR="
2272 (assoc-ref inputs "texinfo")
2273 "/bin")))))
2274 (add-after 'install 'install-info
2275 (lambda* (#:key outputs #:allow-other-keys)
2276 (let* ((out (assoc-ref outputs "out"))
2277 (info (string-append out "/share/info")))
2278 (install-file "texinfo/graphviz-dot-mode.info.gz" info)
2279 #t))))))
2280 (native-inputs
2281 `(("gzip" ,gzip)
2282 ("texinfo" ,texinfo)))
2283 (propagated-inputs
2284 `(("emacs-company" ,emacs-company)))
2285 (home-page "http://ppareit.github.com/graphviz-dot-mode")
2286 (synopsis "Major mode for editing Graphviz DOT files")
2287 (description
2288 "This Emacs package helps you to create @file{.dot} or @file{.gv} files
2289 using the DOT syntax, and use Graphviz to convert these files to diagrams.")
2290 (license license:gpl2+)))
2291
2292 (define-public emacs-imenu-list
2293 (package
2294 (name "emacs-imenu-list")
2295 (version "0.8")
2296 (source
2297 (origin
2298 (method git-fetch)
2299 (uri
2300 (git-reference
2301 (url "https://github.com/bmag/imenu-list")
2302 (commit (string-append "v" version))))
2303 (file-name (git-file-name name version))
2304 (sha256
2305 (base32 "13xh9bdl3k6ccfq83wjmkpi4269qahv4davki4wq18dr4amrzhlx"))))
2306 (build-system emacs-build-system)
2307 (home-page "https://github.com/bmag/imenu-list")
2308 (synopsis
2309 "Automatically tracks the current buffer's imenu entries")
2310 (description
2311 "This Emacs minor mode creates an automatically updated buffer called
2312 @code{*Ilist*} that is populated with the current buffer's imenu entries.
2313 This buffer is typically shown as a sidebar (Emacs vertically splits the
2314 window).")
2315 (license license:gpl3+)))
2316
2317 (define-public emacs-mmm-mode
2318 (package
2319 (name "emacs-mmm-mode")
2320 (version "0.5.8")
2321 (source
2322 (origin
2323 (method url-fetch)
2324 (uri (string-append "https://elpa.gnu.org/packages/"
2325 "mmm-mode-" version ".tar"))
2326 (sha256
2327 (base32 "05ckf4zapdpvnd3sqpw6kxaa567zh536a36m9qzx3sqyjbyn5fb4"))))
2328 (build-system emacs-build-system)
2329 (home-page "https://github.com/purcell/mmm-mode")
2330 (synopsis "Allow multiple major modes in an Emacs buffer")
2331 (description
2332 "MMM Mode is a minor mode that allows multiple major modes to coexist in
2333 a single buffer.")
2334 (license license:gpl3+)))
2335
2336 (define-public emacs-mmt
2337 (package
2338 (name "emacs-mmt")
2339 (version "0.2.0")
2340 (source
2341 (origin
2342 (method git-fetch)
2343 (uri (git-reference
2344 (url "https://github.com/mrkkrp/mmt.git")
2345 (commit version)))
2346 (file-name (git-file-name name version))
2347 (sha256
2348 (base32 "13vbfc5597v0gd87qyhn10f93nb477vjpg3jlpphbax9fvkf4gav"))))
2349 (build-system emacs-build-system)
2350 (home-page "https://github.com/mrkkrp/mmt")
2351 (synopsis "Classic tools to write Emacs Lisp macros")
2352 (description "Emacs MMT is a package that contains classic tools for Emacs
2353 Lisp developers who want to write macros with convenience.")
2354 (license license:gpl3+)))
2355
2356 (define-public emacs-tablist
2357 (package
2358 (name "emacs-tablist")
2359 (version "1.0")
2360 (source (origin
2361 (method git-fetch)
2362 (uri (git-reference
2363 (url "https://github.com/politza/tablist.git")
2364 (commit (string-append "v" version))))
2365 (file-name (git-file-name name version))
2366 (sha256
2367 (base32
2368 "0pzsdg0rm59daw34ppss79cg05z9wnr8nkmdcc48nkd0p69ip2yy"))))
2369 (build-system emacs-build-system)
2370 (home-page "https://github.com/politza/tablist")
2371 (synopsis "Extension for @code{tabulated-list-mode}")
2372 (description "Tablist is the Emacs package that provides several
2373 additional features to @code{tabulated-list-mode}: it adds marks,
2374 filters, new key bindings and faces. It can be enabled by
2375 @code{tablist-mode} or @code{tablist-minor-mode} commands.")
2376 (license license:gpl3+)))
2377
2378 (define-public emacs-djvu
2379 (package
2380 (name "emacs-djvu")
2381 (version "1.1")
2382 (source
2383 (origin
2384 (method url-fetch)
2385 (uri (string-append "https://elpa.gnu.org/packages/"
2386 "djvu-" version ".el"))
2387 (sha256
2388 (base32 "0njgyx09q225hliacsnjk8wallg5i6xkz6bj501pb05nwqfbvfk7"))))
2389 (build-system emacs-build-system)
2390 (home-page "http://elpa.gnu.org/packages/djvu.html")
2391 (synopsis "Edit and view Djvu files via djvused")
2392 (description
2393 "This package is a front end for the command-line program djvused from
2394 DjVuLibre, see @url{http://djvu.sourceforge.net/}. It assumes you have the
2395 programs @command{djvused}, @command{djview}, @command{ddjvu}, and
2396 @command{djvm} installed.")
2397 (license license:gpl3+)))
2398
2399 (define-public emacs-pabbrev
2400 (package
2401 (name "emacs-pabbrev")
2402 (version "4.2.1")
2403 (source
2404 (origin
2405 (method url-fetch)
2406 (uri (string-append "https://elpa.gnu.org/packages/"
2407 "pabbrev-" version ".el"))
2408 (sha256
2409 (base32 "19v5adk61y8fpigw7k6wz6dj79jwr450hnbi7fj0jvb21cvjmfxh"))))
2410 (build-system emacs-build-system)
2411 (home-page "http://elpa.gnu.org/packages/pabbrev.html")
2412 (synopsis "Predictive abbreviation expansion")
2413 (description
2414 "The code provides a abbreviation expansion for Emacs. It is
2415 fairly similar to Dabbrev expansion, which works based on the contents
2416 of the current buffer (or other buffers).
2417
2418 Predictive abbreviation expansion works based on the previously
2419 written text. Unlike dynamic abbreviation, the text is analysed
2420 during idle time, while Emacs is doing nothing else.")
2421 (license license:gpl3+)))
2422
2423 (define-public emacs-pdf-tools
2424 (package
2425 (name "emacs-pdf-tools")
2426 (version "0.90")
2427 (home-page "https://github.com/politza/pdf-tools")
2428 (source (origin
2429 (method git-fetch)
2430 (uri (git-reference (url home-page)
2431 (commit (string-append "v" version))))
2432 (file-name (git-file-name name version))
2433 (sha256
2434 (base32
2435 "0iv2g5kd14zk3r5dzdw7b7hk4b5w7qpbilcqkja46jgxbb6xnpl9"))))
2436 (build-system gnu-build-system)
2437 (arguments
2438 `(#:tests? #f ; there are no tests
2439 #:modules ((guix build gnu-build-system)
2440 ((guix build emacs-build-system) #:prefix emacs:)
2441 (guix build utils)
2442 (guix build emacs-utils))
2443 #:imported-modules (,@%gnu-build-system-modules
2444 (guix build emacs-build-system)
2445 (guix build emacs-utils))
2446 #:phases
2447 (modify-phases %standard-phases
2448 ;; Build server side using 'gnu-build-system'.
2449 (add-after 'unpack 'enter-server-dir
2450 (lambda _ (chdir "server") #t))
2451 (add-after 'enter-server-dir 'autogen
2452 (lambda _
2453 (invoke "bash" "autogen.sh")))
2454
2455 ;; Build emacs side using 'emacs-build-system'.
2456 (add-after 'compress-documentation 'enter-lisp-dir
2457 (lambda _ (chdir "../lisp") #t))
2458 (add-after 'enter-lisp-dir 'emacs-patch-variables
2459 (lambda* (#:key outputs #:allow-other-keys)
2460 (for-each make-file-writable (find-files "."))
2461
2462 ;; Set path to epdfinfo program.
2463 (emacs-substitute-variables "pdf-info.el"
2464 ("pdf-info-epdfinfo-program"
2465 (string-append (assoc-ref outputs "out")
2466 "/bin/epdfinfo")))
2467 ;; Set 'pdf-tools-handle-upgrades' to nil to avoid "auto
2468 ;; upgrading" that pdf-tools tries to perform.
2469 (emacs-substitute-variables "pdf-tools.el"
2470 ("pdf-tools-handle-upgrades" '()))))
2471 (add-after 'emacs-patch-variables 'emacs-add-source-to-load-path
2472 (assoc-ref emacs:%standard-phases 'add-source-to-load-path))
2473 (add-after 'emacs-add-source-to-load-path 'emacs-install
2474 (assoc-ref emacs:%standard-phases 'install))
2475 (add-after 'emacs-install 'emacs-build
2476 (assoc-ref emacs:%standard-phases 'build))
2477 (add-after 'emacs-install 'emacs-make-autoloads
2478 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
2479 (native-inputs `(("autoconf" ,autoconf)
2480 ("automake" ,automake)
2481 ("pkg-config" ,pkg-config)
2482 ("emacs" ,emacs-minimal)))
2483 (inputs `(("poppler" ,poppler)
2484 ("cairo" ,cairo)
2485 ("glib" ,glib)
2486 ("libpng" ,libpng)
2487 ("zlib" ,zlib)))
2488 (propagated-inputs `(("tablist" ,emacs-tablist)))
2489 (synopsis "Emacs support library for PDF files")
2490 (description
2491 "PDF Tools is, among other things, a replacement of DocView for PDF
2492 files. The key difference is that pages are not pre-rendered by
2493 e.g. ghostscript and stored in the file-system, but rather created on-demand
2494 and stored in memory.")
2495 (license license:gpl3+)))
2496
2497 (define-public emacs-dash
2498 (package
2499 (name "emacs-dash")
2500 (version "2.17.0")
2501 (source (origin
2502 (method git-fetch)
2503 (uri (git-reference
2504 (url "https://github.com/magnars/dash.el.git")
2505 (commit version)))
2506 (file-name (git-file-name name version))
2507 (sha256
2508 (base32
2509 "153f55dqkhs8w2xlf6b88wp5vlkap7h8vjd9wxh4jp2ram5g4l1n"))))
2510 (build-system emacs-build-system)
2511 (arguments
2512 `(#:tests? #t
2513 #:test-command '("./run-tests.sh")))
2514 (home-page "https://github.com/magnars/dash.el")
2515 (synopsis "Modern list library for Emacs")
2516 (description "This package provides a modern list API library for Emacs.")
2517 (license license:gpl3+)))
2518
2519 (define-public emacs-bui
2520 (package
2521 (name "emacs-bui")
2522 (version "1.2.1")
2523 (source (origin
2524 (method git-fetch)
2525 (uri (git-reference
2526 (url "https://notabug.org/alezost/emacs-bui.git")
2527 (commit (string-append "v" version))))
2528 (file-name (git-file-name name version))
2529 (sha256
2530 (base32
2531 "0sszdl4kvqbihdh8d7mybpp0d8yw2p3gyiipjcxz9xhvvmw3ww4x"))))
2532 (build-system emacs-build-system)
2533 (propagated-inputs
2534 `(("dash" ,emacs-dash)))
2535 (home-page "https://notabug.org/alezost/emacs-bui")
2536 (synopsis "Buffer interface library for Emacs")
2537 (description
2538 "BUI (Buffer User Interface) is a library for making @code{list} and
2539 @code{info} interfaces to display an arbitrary data of the same
2540 type, for example: packages, buffers, files, etc.")
2541 (license license:gpl3+)))
2542
2543 (define-public emacs-guix
2544 (package
2545 (name "emacs-guix")
2546 (version "0.5.2")
2547 (source (origin
2548 (method url-fetch)
2549 (uri (string-append "https://emacs-guix.gitlab.io/website/"
2550 "releases/emacs-guix-" version ".tar.gz"))
2551 (sha256
2552 (base32
2553 "0yz64c0z4ygi2k4af18k4r1ncgys18jb8icywkp2g5pgmpn5l7ps"))
2554 (modules '((guix build utils)))
2555 (snippet
2556 '(begin
2557 ;; Add support for Guile 3.0. Remove for versions > 0.5.2.
2558 (substitute* "configure"
2559 (("\"2\\.2 2\\.0\"")
2560 "\"3.0 2.2 2.0\""))
2561 #t))))
2562 (build-system gnu-build-system)
2563 (native-inputs
2564 `(("pkg-config" ,pkg-config)
2565 ("emacs" ,emacs-minimal)))
2566 (inputs
2567 `(("guile" ,@(assoc-ref (package-native-inputs guix) "guile"))
2568 ("guix" ,guix)))
2569 (propagated-inputs
2570 `(("geiser" ,emacs-geiser)
2571 ("guile-gcrypt" ,guile-gcrypt)
2572 ("dash" ,emacs-dash)
2573 ("bui" ,emacs-bui)
2574 ("edit-indirect" ,emacs-edit-indirect)
2575 ("magit-popup" ,emacs-magit-popup)))
2576 (home-page "https://emacs-guix.gitlab.io/website/")
2577 (synopsis "Emacs interface for GNU Guix")
2578 (description
2579 "Emacs-Guix provides a visual interface, tools and features for the GNU
2580 Guix package manager. Particularly, it allows you to do various package
2581 management tasks from Emacs. To begin with, run @code{M-x guix-about} or
2582 @code{M-x guix-help} command.")
2583 (license license:gpl3+)))
2584
2585 (define-public emacs-build-farm
2586 (package
2587 (name "emacs-build-farm")
2588 (version "0.2.2")
2589 (source (origin
2590 (method git-fetch)
2591 (uri (git-reference
2592 (url "https://notabug.org/alezost/emacs-build-farm.git")
2593 (commit (string-append "v" version))))
2594 (file-name (git-file-name name version))
2595 (sha256
2596 (base32
2597 "0i0bwbav5861j2y15j9nd5m9rdqg9q97zgcbld8pivr9nyxy63lz"))))
2598 (build-system emacs-build-system)
2599 (propagated-inputs
2600 `(("bui" ,emacs-bui)
2601 ("magit-popup" ,emacs-magit-popup)))
2602 (home-page "https://notabug.org/alezost/emacs-build-farm")
2603 (synopsis "Emacs interface for Hydra and Cuirass build farms")
2604 (description
2605 "This Emacs package provides an interface for Hydra and
2606 Cuirass (build farms used by Nix and Guix). It allows you to look at
2607 various data related to the build farm projects, jobsets, builds and
2608 evaluations. The entry point is @code{M-x build-farm} command.")
2609 (license license:gpl3+)))
2610
2611 (define-public emacs-d-mode
2612 (package
2613 (name "emacs-d-mode")
2614 (version "2.0.10")
2615 (source
2616 (origin
2617 (method git-fetch)
2618 (uri (git-reference
2619 (url "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode.git")
2620 (commit version)))
2621 (file-name (git-file-name name version))
2622 (sha256
2623 (base32 "0915kb9jcaixgindhj85fmykkhvj31ckp1yg6746fznwdgfrlifv"))))
2624 (build-system emacs-build-system)
2625 (propagated-inputs
2626 `(("emacs-undercover" ,emacs-undercover)))
2627 (home-page "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode")
2628 (synopsis "Emacs major mode for editing D code")
2629 (description "This package provides an Emacs major mode for highlighting
2630 code written in the D programming language. This mode is currently known to
2631 work with Emacs 24 and 25.")
2632 (license license:gpl2+)))
2633
2634 (define-public emacs-extempore-mode
2635 ;; Use the latest commit at time of packaging. There are no releases or tags.
2636 (let ((commit "09518ae6650d7be33a4633a4c0f31b7130d04c6e")
2637 (revision "1"))
2638 (package
2639 (name "emacs-extempore-mode")
2640 (version (git-version "0.0.0" revision commit))
2641 (source
2642 (origin
2643 (method git-fetch)
2644 (uri (git-reference
2645 (url "https://github.com/extemporelang/extempore-emacs-mode.git")
2646 (commit commit)))
2647 (file-name (git-file-name name version))
2648 (sha256
2649 (base32 "0hfza9lzdsz94gxhmzyp9fwviscv19rmnjgd0q613faayn11sjsp"))))
2650 (build-system emacs-build-system)
2651 (home-page "https://github.com/extemporelang/extempore-emacs-mode")
2652 (synopsis "Emacs major mode for Extempore source files")
2653 (description
2654 "This package provides a major mode for editing Extempore code. It can
2655 create an Extempore REPL, connect the current @code{extempore-mode} buffer to a
2656 running Extempore process, and more.")
2657 (license license:bsd-2))))
2658
2659 (define-public emacs-kakoune
2660 ;; Package has no release. Version is extracted from "Version:" keyword in
2661 ;; main file.
2662 (let ((commit "d73d14e69ea38076af50cc69f846808383ff539d")
2663 (revision "0"))
2664 (package
2665 (name "emacs-kakoune")
2666 (version (git-version "0.1" revision commit))
2667 (source
2668 (origin
2669 (method git-fetch)
2670 (uri (git-reference
2671 (url "https://github.com/jmorag/kakoune.el.git")
2672 (commit commit)))
2673 (file-name (git-file-name name version))
2674 (sha256
2675 (base32 "0nk6jdy1y5mc3ryd0smiqghrk6iv34d5grc7f7migmshlbq0np92"))))
2676 (build-system emacs-build-system)
2677 (propagated-inputs
2678 `(("emacs-expand-region" ,emacs-expand-region)
2679 ("emacs-multiple-cursors" ,emacs-multiple-cursors)
2680 ("emacs-ryo-modal" ,emacs-ryo-modal)))
2681 (home-page "https://github.com/jmorag/kakoune.el")
2682 (synopsis "Emacs simple simulation, but not emulation, of Kakoune")
2683 (description "This package provides many, but not all of the editing
2684 primitives in the Kakoune editor. Unlike Evil mode for Vim, this is a very
2685 shallow emulation, which seeks to do as little work as possible, leveraging
2686 Emacs native editing commmands and the work of other packages wherever
2687 possible.")
2688 (license license:expat))))
2689
2690 (define-public emacs-keyfreq
2691 (package
2692 (name "emacs-keyfreq")
2693 (version "20160516.716")
2694 (source
2695 (origin
2696 (method url-fetch)
2697 (uri (string-append "http://melpa.org/packages/keyfreq-"
2698 version ".el"))
2699 (sha256
2700 (base32
2701 "008hd7d06qskc3mx0bbdgpgy2pwxr8185fzlyqf9qjg49y74p6g8"))))
2702 (build-system emacs-build-system)
2703 (home-page "https://github.com/dacap/keyfreq")
2704 (synopsis "Track Emacs command frequencies")
2705 (description "@code{emacs-keyfeq} tracks and shows how many times you used
2706 a command.")
2707 (license license:gpl3+)))
2708
2709 (define-public emacs-olivetti
2710 (package
2711 (name "emacs-olivetti")
2712 (version "1.8.1")
2713 (source (origin
2714 (method git-fetch)
2715 (uri (git-reference
2716 (url "https://github.com/rnkn/olivetti.git")
2717 (commit (string-append "v" version))))
2718 (file-name (git-file-name name version))
2719 (sha256
2720 (base32
2721 "1fbj9s49y5yx5i429awv9rybacfgvhwp7v5h0zw67bpgx4qs44pa"))))
2722 (build-system emacs-build-system)
2723 (home-page "https://github.com/rnkn/olivetti")
2724 (synopsis "Emacs minor mode for a nice writing environment")
2725 (description "This package provides an Emacs minor mode that puts writing
2726 in the center.")
2727 (license license:gpl3+)))
2728
2729 (define-public emacs-undo-tree
2730 (package
2731 (name "emacs-undo-tree")
2732 (version "0.7.4")
2733 (source
2734 (origin
2735 (method url-fetch)
2736 (uri (string-append "https://elpa.gnu.org/packages/"
2737 "undo-tree-" version ".el"))
2738 (sha256
2739 (base32 "018ixl802f076sfyf4gkacpgrdpybin88jd8vq9zgyvc6x2dalfa"))))
2740 (build-system emacs-build-system)
2741 (home-page "http://www.dr-qubit.org/emacs.php")
2742 (synopsis "Treat undo history as a tree")
2743 (description
2744 "Tree-like interface to Emacs undo system, providing
2745 graphical tree presentation of all previous states of buffer that
2746 allows easily move between them.")
2747 (license license:gpl3+)))
2748
2749 (define-public emacs-s
2750 (package
2751 (name "emacs-s")
2752 (version "1.12.0")
2753 (source
2754 (origin
2755 (method git-fetch)
2756 (uri (git-reference
2757 (url "https://github.com/magnars/s.el.git")
2758 (commit version)))
2759 (file-name (git-file-name name version))
2760 (sha256
2761 (base32 "1g8mqd13llj007al4nlxxx4z2lcsg3wk970mgjn0avwrhjjgdmmv"))))
2762 (build-system emacs-build-system)
2763 (arguments
2764 `(#:tests? #t
2765 #:emacs ,emacs ; FIXME: tests fail with emacs-minimal
2766 #:test-command '("./run-tests.sh")))
2767 (home-page "https://github.com/magnars/s.el")
2768 (synopsis "Emacs string manipulation library")
2769 (description "This package provides an Emacs library for manipulating
2770 strings.")
2771 (license license:gpl3+)))
2772
2773 (define-public emacs-symon
2774 (package
2775 (name "emacs-symon")
2776 (version "20160630")
2777 (source
2778 (origin
2779 (method git-fetch)
2780 (uri (git-reference
2781 (url "https://github.com/zk-phi/symon.git")
2782 (commit version)))
2783 (file-name (git-file-name name version))
2784 (sha256
2785 (base32 "1q7di9s8k710nx98wnqnbkkhdimrn0jf6z4xkm4c78l6s5idjwlz"))))
2786 (build-system emacs-build-system)
2787 (home-page "https://github.com/zk-phi/symon")
2788 (synopsis "Tiny graphical system monitor")
2789 (description
2790 "Tiny graphical system monitor for the Emacs minibuffer when idle.")
2791 (license license:gpl2+)))
2792
2793 (define-public emacs-sx
2794 (let ((version "20191229")
2795 (revision "0")
2796 (commit "e9d1093c97507a6d7b4f4710ef65200dae725e5f"))
2797 (package
2798 (name "emacs-sx")
2799 (version (git-version version revision commit))
2800 (source
2801 (origin
2802 (method git-fetch)
2803 (uri (git-reference
2804 (url "https://github.com/vermiculus/sx.el")
2805 (commit commit)))
2806 (file-name (git-file-name name version))
2807 (sha256
2808 (base32 "0m90ddwm8j0y6d1ppqhd2gil1107k202blw6mzm5bdambn4nfqkf"))))
2809 (build-system emacs-build-system)
2810 (propagated-inputs
2811 `(("emacs-markdown-mode" ,emacs-markdown-mode)))
2812 (home-page "https://github.com/vermiculus/sx.el")
2813 (synopsis "Emacs StackExchange client")
2814 (description
2815 "Emacs StackExchange client. Ask and answer questions on
2816 Stack Overflow, Super User, and other StackExchange sites.")
2817 (license license:gpl3+))))
2818
2819 (define-public emacs-toml-mode
2820 (let ((version "0.1.3")
2821 (revision "0")
2822 (commit "f6c61817b00f9c4a3cab1bae9c309e0fc45cdd06"))
2823 (package
2824 (name "emacs-toml-mode")
2825 (version (git-version version revision commit))
2826 (source
2827 (origin
2828 (method git-fetch)
2829 (uri (git-reference
2830 (url "https://github.com/dryman/toml-mode.el.git")
2831 (commit commit)))
2832 (file-name (git-file-name name version))
2833 (sha256
2834 (base32 "05b4ksay85c8y5ncax0qsvnmplwsfiw24z16a58gkarjz938hb57"))))
2835 (build-system emacs-build-system)
2836 (home-page "https://github.com/dryman/toml-mode.el")
2837 (synopsis "Emacs major mode for editing TOML files")
2838 (description
2839 ;; XXX: Ideally we'd use @acronym for "TOML", but Guile's Texinfo
2840 ;; parser does not currently support @comma{}, making it impossible
2841 ;; to use commas in the @acronym arguments.
2842 "This package provides a major mode for editing files in @dfn{TOML}
2843 (Tom's Obvious, Minimal Language) data format.")
2844 (license license:gpl3+))))
2845
2846 (define-public emacs-twittering-mode
2847 (package
2848 (name "emacs-twittering-mode")
2849 (version "3.1.0")
2850 (source
2851 (origin
2852 (method url-fetch)
2853 (uri (string-append "mirror://sourceforge/twmode"
2854 "/twittering-mode-" version
2855 "/twittering-mode-" version ".tar.xz"))
2856 (sha256
2857 (base32 "02imis1gxz90lah0b5n37j2hlsaw5igss11d85vpsm5d1bgw8j28"))))
2858 (build-system emacs-build-system)
2859 (home-page "http://twmode.sourceforge.net")
2860 (synopsis "Emacs major mode for Twitter")
2861 (description
2862 "Twittering mode is an Emacs major mode for Twitter.
2863 You can check timelines, tweet, mark posts as favorites and so on with
2864 Emacs.")
2865 (license license:gpl2+)))
2866
2867 (define-public emacs-f
2868 (package
2869 (name "emacs-f")
2870 (version "0.20.0")
2871 (source (origin
2872 (method git-fetch)
2873 (uri (git-reference
2874 (url "https://github.com/rejeep/f.el.git")
2875 (commit (string-append "v" version))))
2876 (file-name (git-file-name name version))
2877 (sha256
2878 (base32
2879 "1a47xk3yp1rp17fqg7ldl3d3fb888h0fz3sysqfdz1bfdgs8a9bk"))))
2880 (build-system emacs-build-system)
2881 (propagated-inputs
2882 `(("emacs-s" ,emacs-s)
2883 ("emacs-dash" ,emacs-dash)))
2884 (home-page "https://github.com/rejeep/f.el")
2885 (synopsis "Emacs API for working with files and directories")
2886 (description "This package provides an Emacs library for working with
2887 files and directories.")
2888 (license license:gpl3+)))
2889
2890 (define-public emacs-fountain-mode
2891 (package
2892 (name "emacs-fountain-mode")
2893 (version "3.1.0")
2894 (source
2895 (origin
2896 (method git-fetch)
2897 (uri (git-reference
2898 (url "https://github.com/rnkn/fountain-mode")
2899 (commit (string-append "v" version))))
2900 (file-name (git-file-name name version))
2901 (sha256
2902 (base32 "08giwg0jwk8zzj2i4cm08322qr6znrnv9a49za7c6j47bykpwj6s"))))
2903 (build-system emacs-build-system)
2904 (home-page "https://github.com/rnkn/fountain-mode")
2905 (synopsis "Major mode for screenwriting in Fountain markup")
2906 (description "Fountain Mode is a scriptwriting program for GNU Emacs
2907 using the Fountain plain text markup format.")
2908 (license license:gpl3+)))
2909
2910 (define-public emacs-fringe-helper
2911 (let ((commit "ef4a9c023bae18ec1ddd7265f1f2d6d2e775efdd")
2912 (revision "1"))
2913 (package
2914 (name "emacs-fringe-helper")
2915 (version (git-version "1.0.1" revision commit))
2916 (source
2917 (origin
2918 (method git-fetch)
2919 (uri (git-reference
2920 (url "https://github.com/nschum/fringe-helper.el.git")
2921 (commit commit)))
2922 (file-name (git-file-name name version))
2923 (sha256
2924 (base32 "0ra9rc53l1gvkqank8apasl3r7wz2yfjrcvmfk3wpxhh24ppxv9d"))))
2925 (build-system emacs-build-system)
2926 (arguments
2927 `(#:tests? #t
2928 #:test-command '("emacs" "--batch"
2929 "-l" "tests.el"
2930 "-f" "ert-run-tests-batch-and-exit")))
2931 (home-page "https://github.com/nschum/fringe-helper.el")
2932 (synopsis "Helper functions for fringe bitmaps")
2933 (description
2934 "This package allows fringe bitmaps to be defined with a visual string
2935 representation.")
2936 (license license:gpl2+))))
2937
2938 (define-public emacs-git-gutter
2939 (package
2940 (name "emacs-git-gutter")
2941 (version "0.90")
2942 (source
2943 (origin
2944 (method git-fetch)
2945 (uri (git-reference
2946 (url "https://github.com/syohex/emacs-git-gutter.git")
2947 (commit version)))
2948 (file-name (git-file-name name version))
2949 (sha256
2950 (base32 "1abagq0psip7cgsqbfjv72qy60ywsny0ibsfcn74ldj6a9v17mz5"))))
2951 (build-system emacs-build-system)
2952 (home-page "https://github.com/syohex/emacs-git-gutter")
2953 (synopsis "See and manage hunks of text in a version control system")
2954 (description
2955 "This package is an Emacs minor mode for displaying and interacting with
2956 hunks of text managed in a version control system. Added modified and deleted
2957 areas can be indicated with symbols on the edge of the buffer, and commands
2958 can be used to move between and perform actions on these hunks.
2959
2960 Git, Mercurial, Subversion and Bazaar are supported, and many parts of the
2961 display and behaviour is easily customisable.")
2962 (license license:gpl3+)))
2963
2964 (define-public emacs-git-gutter-fringe
2965 (let ((commit "16226caab44174301f1659f7bf8cc67a76153445")
2966 (revision "1"))
2967 (package
2968 (name "emacs-git-gutter-fringe")
2969 (version (git-version "0.23" revision commit))
2970 (source
2971 (origin
2972 (method git-fetch)
2973 (uri (git-reference
2974 (url "https://github.com/syohex/git-gutter-fringe.git")
2975 (commit commit)))
2976 (file-name (git-file-name name version))
2977 (sha256
2978 (base32 "1y77gjl0yznamdj0f55d418zb75k22izisjg7ikvrfsl2yfqf3pm"))))
2979 (build-system emacs-build-system)
2980 (propagated-inputs
2981 `(("emacs-git-gutter" ,emacs-git-gutter)
2982 ("emacs-fringe-helper" ,emacs-fringe-helper)))
2983 (home-page "https://github.com/syohex/git-gutter-fringe")
2984 (synopsis "See and manage hunks of text in a version control system")
2985 (description
2986 "This package extends @code{git-gutter} to use the fringe area of a
2987 window.")
2988 (license license:gpl3+))))
2989
2990 (define-public emacs-git-link
2991 (package
2992 (name "emacs-git-link")
2993 (version "0.7.5")
2994 (source
2995 (origin
2996 (method git-fetch)
2997 (uri (git-reference
2998 (url "https://github.com/sshaw/git-link.git")
2999 (commit (string-append "v" version))))
3000 (file-name (git-file-name name version))
3001 (sha256
3002 (base32 "04xa6lp8wkjb6zs096bf4sz124grcjj15xv1h009bmn2j95rggj6"))))
3003 (build-system emacs-build-system)
3004 (arguments
3005 `(#:tests? #t
3006 #:test-command '("make" "test")))
3007 (home-page "https://github.com/sshaw/git-link")
3008 (synopsis "Create links for files and commits in GitHub/GitLab/etc. repos")
3009 (description
3010 "@code{git-link} returns the URL for the current buffer's file location
3011 at the current line number or active region. @code{git-link-commit} returns
3012 the URL for a commit. URLs are added to the kill ring.")
3013 (license license:gpl3+)))
3014
3015 (define-public emacs-apheleia
3016 (package
3017 (name "emacs-apheleia")
3018 (version "1.0")
3019 (source
3020 (origin
3021 (method git-fetch)
3022 (uri (git-reference
3023 (url "https://github.com/raxod502/apheleia.git")
3024 (commit (string-append "v" version))))
3025 (file-name (git-file-name name version))
3026 (sha256
3027 (base32 "04pls7zahy4jfkikv6fvd9vfpm4glhyanmmkx79hgi9pwdv966rf"))))
3028 (build-system emacs-build-system)
3029 (home-page "https://github.com/raxod502/apheleia")
3030 (synopsis "Reformat buffer stably")
3031 (description
3032 "This package allows for a buffer to be reformatted without moving point,
3033 so that running a formatting tool like @code{Prettier} or @code{Black} upon
3034 saving won't move point back to the beginning of the buffer.")
3035 (license license:gpl3+)))
3036
3037 (define-public emacs-git-timemachine
3038 (package
3039 (name "emacs-git-timemachine")
3040 (version "4.11")
3041 (source
3042 (origin
3043 (method git-fetch)
3044 (uri (git-reference
3045 (url "https://gitlab.com/pidu/git-timemachine.git")
3046 (commit version)))
3047 (file-name (git-file-name name version))
3048 (sha256
3049 (base32
3050 "1pz4l1xnq6s67w5yq9107vm8dg7rqf8n9dmbn90jys97c722g70n"))))
3051 (build-system emacs-build-system)
3052 (propagated-inputs
3053 `(("emacs-transient" ,emacs-transient)))
3054 (home-page "https://gitlab.com/pidu/git-timemachine")
3055 (synopsis "Step through historic versions of Git-controlled files")
3056 (description "This package enables you to step through historic versions
3057 of files under Git version control from within Emacs.")
3058 (license license:gpl3+)))
3059
3060 (define-public emacs-minitest
3061 (let ((commit "1aadb7865c1dc69c201cecee275751ecec33a182")
3062 (revision "1"))
3063 (package
3064 (name "emacs-minitest")
3065 (version (git-version "0.8.0" revision commit))
3066 (source (origin
3067 (method git-fetch)
3068 (uri (git-reference
3069 (url "https://github.com/arthurnn/minitest-emacs")
3070 (commit commit)))
3071 (file-name (git-file-name name commit))
3072 (sha256
3073 (base32
3074 "1l18zqpdzbnqj2qawq8hj7z7pl8hr8z9d8ihy8jaiqma915hmhj1"))))
3075 (build-system emacs-build-system)
3076 (arguments
3077 '(#:include (cons "^snippets\\/minitest-mode\\/" %default-include)
3078 #:exclude (delete "^[^/]*tests?\\.el$" %default-exclude)))
3079 (propagated-inputs
3080 `(("emacs-dash" ,emacs-dash)
3081 ("emacs-f" ,emacs-f)))
3082 (home-page "https://github.com/arthurnn/minitest-emacs")
3083 (synopsis "Emacs minitest mode")
3084 (description
3085 "The minitest mode provides commands to run the tests for the current
3086 file or line, as well as rerunning the previous tests, or all the tests for a
3087 project.
3088
3089 This package also includes relevant snippets for yasnippet.")
3090 (license license:expat))))
3091
3092 (define-public emacs-el-mock
3093 (package
3094 (name "emacs-el-mock")
3095 (version "1.25.1")
3096 (source
3097 (origin
3098 (method git-fetch)
3099 (uri (git-reference
3100 (url "https://github.com/rejeep/el-mock.el.git")
3101 (commit (string-append "v" version))))
3102 (file-name (git-file-name name version))
3103 (sha256
3104 (base32 "13mv1rhgkwiww2wh5w926jz7idppp492wir1vdl245c5x50dh4f7"))))
3105 (build-system emacs-build-system)
3106 (home-page "https://github.com/rejeep/el-mock.el")
3107 (synopsis "Tiny mock and stub framework in Emacs Lisp")
3108 (description
3109 "Emacs Lisp Mock is a library for mocking and stubbing using readable
3110 syntax. Most commonly Emacs Lisp Mock is used in conjunction with Emacs Lisp
3111 Expectations, but it can be used in other contexts.")
3112 (license license:gpl3+)))
3113
3114 (define-public emacs-espuds
3115 (package
3116 (name "emacs-espuds")
3117 (version "0.3.3")
3118 (source
3119 (origin
3120 (method git-fetch)
3121 (uri (git-reference
3122 (url "https://github.com/ecukes/espuds.git")
3123 (commit (string-append "v" version))))
3124 (file-name (git-file-name name version))
3125 (sha256
3126 (base32 "16r4j27j9yfdiy841w9q5ykkc6n3wrm7hvfacagb32mydk821ijg"))))
3127 (build-system emacs-build-system)
3128 (propagated-inputs
3129 `(("emacs-s" ,emacs-s)
3130 ("emacs-dash" ,emacs-dash)
3131 ("emacs-f" ,emacs-f)))
3132 (home-page "https://github.com/ecukes/espuds")
3133 (synopsis "Common step definitions for Ecukes")
3134 (description "Espuds is a collection of the most commonly used step
3135 definitions for testing with the Ecukes framework.")
3136 (license license:gpl3+)))
3137
3138 (define-public emacs-spark
3139 (let ((version "20160503") ; no proper tag, use date of commit
3140 (commit "0bf148c3ede3b31d56fd75f347cdd0b0eae60025")
3141 (revision "1"))
3142 (package
3143 (name "emacs-spark")
3144 (version (git-version version revision commit))
3145 (source
3146 (origin
3147 (method git-fetch)
3148 (uri (git-reference
3149 (url "https://github.com/alvinfrancis/spark.git")
3150 (commit commit)))
3151 (file-name (git-file-name name version))
3152 (sha256
3153 (base32
3154 "1ykqr86j17mi95s08d9fp02d7ych1331b04dcqxzxnmpkhwngyj1"))))
3155 (build-system emacs-build-system)
3156 (home-page "https://github.com/alvinfrancis/spark")
3157 (synopsis "Sparkline generation library for Emacs Lisp")
3158 (description "@code{emacs-spark} is a sparkline generation library for
3159 Emacs Lisp. It generates a sparkline string given a list of numbers. It is a
3160 port of @code{cl-spark} to Emacs Lisp.")
3161 (license license:expat))))
3162
3163 (define-public emacs-es-mode
3164 (package
3165 (name "emacs-es-mode")
3166 (version "4.3.0")
3167 (source
3168 (origin
3169 (method git-fetch)
3170 (uri (git-reference
3171 (url "https://github.com/dakrone/es-mode.git")
3172 (commit version)))
3173 (file-name (git-file-name name version))
3174 (sha256
3175 (base32 "1qhfnd5anp5qrmravv7ks5ix763xnki2f5jwcyj70qyxwr0l60cg"))))
3176 (build-system emacs-build-system)
3177 (propagated-inputs
3178 ;; The version of org in Emacs 24.5 is not sufficient, and causes tables
3179 ;; to be rendered incorrectly
3180 `(("emacs-dash" ,emacs-dash)
3181 ("emacs-org" ,emacs-org)
3182 ("emacs-spark" ,emacs-spark)))
3183 (home-page "https://github.com/dakrone/es-mode")
3184 (synopsis "Major mode for editing Elasticsearch queries")
3185 (description "@code{es-mode} includes highlighting, completion and
3186 indentation support for Elasticsearch queries. Also supported are
3187 @code{es-mode} blocks in @code{org-mode}, for which the results of queries can
3188 be processed through @code{jq}, or in the case of aggregations, can be
3189 rendered in to a table. In addition, there is an @code{es-command-center}
3190 mode, which displays information about Elasticsearch clusters.")
3191 (license license:gpl3+)))
3192
3193 (define-public emacs-expand-region
3194 (package
3195 (name "emacs-expand-region")
3196 (version "0.11.0")
3197 (source
3198 (origin
3199 (method git-fetch)
3200 (uri (git-reference
3201 (url "https://github.com/magnars/expand-region.el.git")
3202 (commit version)))
3203 (file-name (git-file-name name version))
3204 (sha256
3205 (base32 "0h40dhc3kn8fq86xnwi5lz7ql8my8737y7wkqr897p15y90swr35"))))
3206 (build-system emacs-build-system)
3207 (home-page "https://github.com/magnars/expand-region.el")
3208 (synopsis "Increase selected region by semantic units")
3209 (description
3210 "Expand region increases the selected region by semantic units. Just
3211 keep pressing the key until it selects what you want. There's also
3212 @code{er/contract-region} if you expand too far.")
3213 (license license:gpl3+)))
3214
3215 (define-public emacs-fill-column-indicator
3216 (package
3217 (name "emacs-fill-column-indicator")
3218 (version "1.90")
3219 (source
3220 (origin
3221 (method git-fetch)
3222 (uri (git-reference
3223 (url "https://github.com/alpaker/Fill-Column-Indicator.git")
3224 (commit version)))
3225 (file-name (git-file-name name version))
3226 (sha256
3227 (base32 "0snjznxdwwfdgccdcvrnk467416r244r2r5qcm2sga8l0ha9gw9z"))))
3228 (build-system emacs-build-system)
3229 (home-page "https://www.emacswiki.org/emacs/FillColumnIndicator")
3230 (synopsis "Graphically indicate the fill column")
3231 (description
3232 "Fill-column-indicator graphically indicates the location of the fill
3233 column by drawing a thin line down the length of the editing window.")
3234 (license license:gpl3+)))
3235
3236 (define-public emacs-grep-a-lot
3237 (package
3238 (name "emacs-grep-a-lot")
3239 (version "1.0.7")
3240 (source
3241 (origin
3242 (method git-fetch)
3243 (uri (git-reference
3244 (url "https://github.com/ZungBang/emacs-grep-a-lot.git")
3245 (commit "9f9f645b9e308a0d887b66864ff97d0fca1ba4ad")))
3246 (file-name (git-file-name name version))
3247 (sha256
3248 (base32 "1f8262mrlinzgnn4m49hbj1hm3c1mvzza24py4b37sasn49546lw"))))
3249 (build-system emacs-build-system)
3250 (home-page "https://github.com/ZungBang/emacs-grep-a-lot")
3251 (synopsis "Enables multiple grep buffers in Emacs")
3252 (description
3253 "This Emacs package allows managing multiple grep buffers.")
3254 (license license:gpl3+)))
3255
3256 (define-public emacs-fd
3257 (package
3258 (name "emacs-fd")
3259 (version "0.1.0")
3260 (source (origin
3261 (method git-fetch)
3262 (uri (git-reference
3263 (url "https://github.com/yqrashawn/fd-dired.git")
3264 (commit version)))
3265 (file-name (git-file-name name version))
3266 (sha256
3267 (base32
3268 "1fas0fpvym2lyzybwm44gly9jz6a2fpp72yxnwfbqqjkfgk9910y"))))
3269 (build-system emacs-build-system)
3270 (home-page "https://github.com/yqrashawn/fd-dired")
3271 (synopsis "Dired-mode interface for fd result")
3272 (description "This package provides a dired-mode interface for fd's
3273 result.")
3274 (license license:gpl3+)))
3275
3276 (define-public emacs-rg
3277 (package
3278 (name "emacs-rg")
3279 (version "1.8.1")
3280 (source
3281 (origin
3282 (method git-fetch)
3283 (uri (git-reference
3284 (url "https://github.com/dajva/rg.el.git")
3285 (commit version)))
3286 (file-name (git-file-name name version))
3287 (sha256
3288 (base32 "0k7x5z7mh9flwih35cqy8chs54rack3nswdcpw5wcpgv6xim227y"))))
3289 (build-system emacs-build-system)
3290 (arguments
3291 '(#:phases
3292 (modify-phases %standard-phases
3293 (add-after 'unpack 'hardcode-rg-path
3294 ;; Hardcode the path to ripgrep.
3295 (lambda _
3296 (let ((file "rg.el"))
3297 (chmod file #o644)
3298 (emacs-substitute-sexps file
3299 ("(defcustom rg-executable" (which "rg")))))))))
3300 (propagated-inputs
3301 `(("emacs-s" ,emacs-s)
3302 ("emacs-wgrep" ,emacs-wgrep)))
3303 (inputs
3304 `(("ripgrep" ,ripgrep)))
3305 (home-page "https://rgel.readthedocs.io/en/latest/")
3306 (synopsis "Search tool based on @code{ripgrep}")
3307 (description
3308 "@code{rg} is an Emacs search package based on the @code{ripgrep} command
3309 line tool. It allows one to interactively search based on the editing context
3310 then refine or modify the search results.")
3311 (license license:gpl3+)))
3312
3313 (define-public emacs-inf-ruby
3314 (package
3315 (name "emacs-inf-ruby")
3316 (version "2.5.2")
3317 (source
3318 (origin
3319 (method git-fetch)
3320 (uri (git-reference
3321 (url "https://github.com/nonsequitur/inf-ruby.git")
3322 (commit version)))
3323 (file-name (git-file-name name version))
3324 (sha256
3325 (base32 "0a1hhvfbl6mq8rjsi77fg9fh5a91hi5scjrg9rjqc5ffbql67y0v"))))
3326 (build-system emacs-build-system)
3327 (home-page "https://github.com/nonsequitur/inf-ruby")
3328 (synopsis "Provides a REPL buffer connected to a Ruby subprocess in Emacs")
3329 (description
3330 "@code{inf-ruby} provides a Read Eval Print Loop (REPL) buffer, allowing
3331 for easy interaction with a ruby subprocess. Features include support for
3332 detecting specific uses of Ruby, e.g. when using rails, and using a
3333 appropriate console.")
3334 (license license:gpl3+)))
3335
3336 (define-public emacs-znc
3337 (package
3338 (name "emacs-znc")
3339 (version "0.0.2")
3340 (source
3341 (origin
3342 (method url-fetch)
3343 (uri (string-append "https://marmalade-repo.org/packages/znc-"
3344 version ".el"))
3345 (sha256
3346 (base32
3347 "1d8lqvybgyazin5z0g1c4l3rg1vzrrvf0saqs53jr1zcdg0lianh"))))
3348 (build-system emacs-build-system)
3349 (home-page "https://github.com/sshirokov/ZNC.el")
3350 (synopsis "Make ERC and ZNC get along better")
3351 (description
3352 "This is a thin wrapper around @code{erc} that enables one to use the ZNC
3353 IRC bouncer with ERC.")
3354 (license license:expat)))
3355
3356 (define-public emacs-erc-status-sidebar
3357 (let ((commit "ea4189a1dbfe60117359c36e681ad7c389e2968c")
3358 (revision "1"))
3359 (package
3360 (name "emacs-erc-status-sidebar")
3361 (version (git-version "0.1" revision commit))
3362 (source
3363 (origin
3364 (method git-fetch)
3365 (uri (git-reference
3366 (url "https://github.com/drewbarbs/erc-status-sidebar.git")
3367 (commit commit)))
3368 (file-name (git-file-name name version))
3369 (sha256
3370 (base32 "1hwlhzgx03z8891sblz56zdp8zj0izh72kxykgcnz5rrkyc3vfi3"))))
3371 (build-system emacs-build-system)
3372 (propagated-inputs `(("emacs-seq" ,emacs-seq)))
3373 (home-page "https://github.com/drewbarbs/erc-status-sidebar")
3374 (synopsis "Hexchat-like activity overview for ERC channels")
3375 (description
3376 "This package provides a Hexchat-like status bar for joined channels in
3377 ERC, an Emacs client for IRC (Internet Relay Chat). It relies on the
3378 @code{erc-track} module, and displays all the same information
3379 @code{erc-track} does in the mode line, but in an alternative format.")
3380 (license license:expat))))
3381
3382 (define-public emacs-shut-up
3383 (package
3384 (name "emacs-shut-up")
3385 (version "0.3.2")
3386 (source
3387 (origin
3388 (method git-fetch)
3389 (uri (git-reference
3390 (url "https://github.com/cask/shut-up.git")
3391 (commit (string-append "v" version))))
3392 (file-name (git-file-name name version))
3393 (sha256
3394 (base32 "103yvfgkj78i4bnv1fwk76izsa8h4wyj3vwj1vq7xggj607hkxzq"))))
3395 (build-system emacs-build-system)
3396 (home-page "https://github.com/cask/shut-up")
3397 (synopsis "Silence Emacs")
3398 (description "This package silences most output of Emacs when running an
3399 Emacs shell script.")
3400 (license license:expat)))
3401
3402 (define-public emacs-undercover
3403 (package
3404 (name "emacs-undercover")
3405 (version "0.6.1")
3406 (source
3407 (origin
3408 (method git-fetch)
3409 (uri (git-reference
3410 (url "https://github.com/sviridov/undercover.el.git")
3411 (commit version)))
3412 (file-name (git-file-name name version))
3413 (sha256
3414 (base32 "080bmfwyfi8663y8x594770hqz7mff7zvj2v03qdfwbhdr9w9y29"))))
3415 (build-system emacs-build-system)
3416 (propagated-inputs
3417 `(("emacs-dash" ,emacs-dash)
3418 ("emacs-shut-up" ,emacs-shut-up)))
3419 (home-page "https://github.com/sviridov/undercover.el")
3420 (synopsis "Test coverage library for Emacs Lisp")
3421 (description
3422 "Undercover is a test coverage library for software written in Emacs
3423 Lisp.")
3424 (license license:expat)))
3425
3426 (define-public emacs-paren-face
3427 (package
3428 (name "emacs-paren-face")
3429 (version "1.0.5")
3430 (source
3431 (origin
3432 (method git-fetch)
3433 (uri (git-reference
3434 (url "https://github.com/tarsius/paren-face.git")
3435 (commit version)))
3436 (file-name (git-file-name name version))
3437 (sha256
3438 (base32
3439 "04vkg8fhdn8x02dydxbwpizh2yn3sbmn9432v770vbbq6b62k2lx"))))
3440 (build-system emacs-build-system)
3441 (home-page "https://github.com/tarsius/paren-face")
3442 (synopsis "Face for parentheses in lisp modes")
3443 (description
3444 "This library defines a face named @code{parenthesis} used just for
3445 parentheses. The intended purpose of this face is to make parentheses less
3446 visible in Lisp code by dimming them. Lispers probably don't need to be
3447 constantly made aware of the existence of the parentheses. Dimming them might
3448 be even more useful for people new to lisp who have not yet learned to
3449 subconsciously blend out the parentheses.")
3450 (license license:gpl3+)))
3451
3452 (define-public emacs-page-break-lines
3453 (package
3454 (name "emacs-page-break-lines")
3455 (version "0.11")
3456 (source
3457 (origin
3458 (method git-fetch)
3459 (uri (git-reference
3460 (url "https://github.com/purcell/page-break-lines.git")
3461 (commit version)))
3462 (file-name (git-file-name name version))
3463 (sha256
3464 (base32 "1wp974716ih2cz9kdmdz7xwjy1qnnfzdzlfr9kchknagw8d9nn12"))))
3465 (build-system emacs-build-system)
3466 (home-page "https://github.com/purcell/page-break-lines")
3467 (synopsis "Display page breaks as tidy horizontal lines")
3468 (description
3469 "This library provides a global mode which displays form feed characters
3470 as horizontal rules.")
3471 (license license:gpl3+)))
3472
3473 (define-public emacs-simple-httpd
3474 (package
3475 (name "emacs-simple-httpd")
3476 (version "1.5.1")
3477 (source
3478 (origin
3479 (method git-fetch)
3480 (uri (git-reference
3481 (url "https://github.com/skeeto/emacs-web-server.git")
3482 (commit version)))
3483 (file-name (git-file-name name version))
3484 (sha256
3485 (base32 "0dpn92rg813c4pq7a1vzj3znyxzp2lmvxqz6pzcqi0l2xn5r3wvb"))))
3486 (build-system emacs-build-system)
3487 (home-page "https://github.com/skeeto/emacs-web-server")
3488 (synopsis "HTTP server in pure Emacs Lisp")
3489 (description
3490 "This package provides a simple HTTP server written in Emacs Lisp to
3491 serve files and directory listings.")
3492 (license license:unlicense)))
3493
3494 (define-public emacs-skewer-mode
3495 (package
3496 (name "emacs-skewer-mode")
3497 (version "1.8.0")
3498 (source
3499 (origin
3500 (method git-fetch)
3501 (uri (git-reference
3502 (url "https://github.com/skeeto/skewer-mode.git")
3503 (commit version)))
3504 (file-name (git-file-name name version))
3505 (sha256
3506 (base32 "1ha7jl7776pk1bki5zj2q0jy66450mn8xr3aqjc0m9kj3gc9qxgw"))))
3507 (build-system emacs-build-system)
3508 (propagated-inputs
3509 `(("emacs-simple-httpd" ,emacs-simple-httpd)
3510 ("emacs-js2-mode" ,emacs-js2-mode)))
3511 (arguments '(#:include '("\\.el$" "\\.js$" "\\.html$")))
3512 (home-page "https://github.com/skeeto/skewer-mode")
3513 (synopsis "Live web development in Emacs")
3514 (description
3515 "Skewer-mode provides live interaction with JavaScript, CSS, and HTML in
3516 a web browser. Expressions are sent on-the-fly from an editing buffer to be
3517 evaluated in the browser, just like Emacs does with an inferior Lisp process
3518 in Lisp modes.")
3519 (license license:unlicense)))
3520
3521 (define-public emacs-litable
3522 (let ((commit "b0278f3f8dcff424bfbdfdefb545b1fbff33206f"))
3523 (package
3524 (name "emacs-litable")
3525 (version (git-version "0.1" "0" commit))
3526 (source (origin
3527 (method git-fetch)
3528 (uri (git-reference
3529 (url "https://github.com/Fuco1/litable.git")
3530 (commit commit)))
3531 (file-name (git-file-name name version))
3532 (sha256
3533 (base32
3534 "0bny40hv9a024n01clxns351cs4j4ifhgcc7m4743xncqf612p7g"))))
3535 (build-system emacs-build-system)
3536 (propagated-inputs
3537 `(("emacs-dash" ,emacs-dash)))
3538 (home-page "https://github.com/Fuco1/litable/")
3539 (synopsis "Dynamic evaluation replacement with Emacs")
3540 (description "This package provides dynamic evaluation in Emacs.")
3541 (license license:gpl3+))))
3542
3543 (define-public emacs-string-inflection
3544 (package
3545 (name "emacs-string-inflection")
3546 (version "1.0.6")
3547 (source (origin
3548 (method git-fetch)
3549 (uri (git-reference
3550 (url "https://github.com/akicho8/string-inflection")
3551 (commit "a150e7bdda60b7824d3a936750ce23f73b0e4edd")))
3552 (file-name (git-file-name name version))
3553 (sha256
3554 (base32
3555 "1k0sm552iawi49v4zis6dbb81d1rzgky9v0dpv7nj31gnb7bmy7k"))))
3556 (build-system emacs-build-system)
3557 (native-inputs
3558 `(("ert-runner" ,emacs-ert-runner)))
3559 (arguments
3560 `(#:tests? #t
3561 #:test-command '("ert-runner")))
3562 (home-page "https://github.com/akicho8/string-inflection")
3563 (synopsis "Convert symbol names between different naming conventions")
3564 (description
3565 "This Emacs package provides convenient methods for manipulating the
3566 naming style of a symbol. It supports different naming conventions such as:
3567
3568 @enumerate
3569 @item camel case
3570 @item Pascal case
3571 @item all upper case
3572 @item lower case separated by underscore
3573 @item etc...
3574 @end enumerate\n")
3575 (license license:gpl2+)))
3576
3577 (define-public emacs-stripe-buffer
3578 (package
3579 (name "emacs-stripe-buffer")
3580 (version "0.2.5")
3581 (source
3582 (origin
3583 (method git-fetch)
3584 (uri (git-reference
3585 (url "https://github.com/sabof/stripe-buffer.git")
3586 (commit version)))
3587 (file-name (git-file-name name version))
3588 (sha256
3589 (base32 "035ym1c1vzg6hjsnd258z4dkrfc11lj4c0y4gpgybhk54dq3w9dk"))))
3590 (build-system emacs-build-system)
3591 (home-page "https://github.com/sabof/stripe-buffer/")
3592 (synopsis "Add stripes to list buffers")
3593 (description
3594 "This Emacs package adds faces to add stripes to list buffers and org
3595 tables.")
3596 (license license:gpl2+)))
3597
3598 (define-public emacs-org-beautify-theme
3599 ;; Latest release (0.4) is not tagged, use commit hash.
3600 (let ((commit "df6a1114fda313e1689363e196c8284fbe2a2738")
3601 (revision "0"))
3602 (package
3603 (name "emacs-org-beautify-theme")
3604 (version "0.4")
3605 (source
3606 (origin
3607 (method git-fetch)
3608 (uri (git-reference
3609 (url "https://github.com/jonnay/org-beautify-theme")
3610 (commit commit)))
3611 (file-name (git-file-name name version))
3612 (sha256
3613 (base32 "1lkz7736swimad12khwbbqc4gxjydgr1k45p4mx03s25pv1w920y"))))
3614 (build-system emacs-build-system)
3615 (home-page "https://github.com/jonnay/org-beautify-theme")
3616 (synopsis "Theme to make Org mode look more beautiful")
3617 (description
3618 "The theme adds padding between headings, increases the size of titles,
3619 strike through completed TODO headings, changes Org blocks, changes Org check
3620 boxes, and more.")
3621 (license license:gpl3+))))
3622
3623 (define-public emacs-org-rich-yank
3624 (package
3625 (name "emacs-org-rich-yank")
3626 (version "0.2.1")
3627 (source
3628 (origin
3629 (method git-fetch)
3630 (uri (git-reference
3631 (url "https://github.com/unhammer/org-rich-yank.git")
3632 (commit (string-append "v" version))))
3633 (file-name (git-file-name name version))
3634 (sha256
3635 (base32 "0gxb0fnh5gxjmld0hnk5hli0cvdd8gjd27m30bk2b80kwldxlq1z"))))
3636 (build-system emacs-build-system)
3637 (home-page "https://github.com/unhammer/org-rich-yank")
3638 (synopsis "Automatically surround source code pasted into Org with
3639 @code{#+BEGIN_SRC} blocks")
3640 (description
3641 "This package provides a utility function for Org buffers that makes a
3642 @code{_SRC} block with the appropriate language annotation for code that has
3643 been copied from an Emacs major mode.")
3644 (license license:gpl2+)))
3645
3646 (define-public emacs-ob-erlang
3647 (let ((revision "1")
3648 (commit "f1a8c665b8f7d0ab32267a9961de8eed872e6333"))
3649 (package
3650 (name "emacs-ob-erlang")
3651 (version (git-version "20180827" revision commit))
3652 (source (origin
3653 (method git-fetch)
3654 (uri (git-reference
3655 (url "https://github.com/xfwduke/ob-erlang.git")
3656 (commit commit)))
3657 (file-name (git-file-name name version))
3658 (sha256
3659 (base32
3660 "0b5zajqiy6955yvlqwy92prrqy89lqchsv4ss2ylws3p4s14rhij"))))
3661 (build-system emacs-build-system)
3662 (home-page "https://github.com/xfwduke/ob-erlang/")
3663 (synopsis "Org-babel support for Erlang")
3664 (description "This package adds support for working with Erlang code
3665 blocks with @code{org-babel} in @code{org-mode}.")
3666 (license license:gpl3+))))
3667
3668 (define-public emacs-ob-restclient
3669 (let ((commit "53376667eeddb1388fd6c6976f3222e7c8adcd46"))
3670 (package
3671 (name "emacs-ob-restclient")
3672 (version (git-version "0.02" "1" commit))
3673 (source
3674 (origin
3675 (method git-fetch)
3676 (uri (git-reference
3677 (url "https://github.com/alf/ob-restclient.el.git")
3678 (commit commit)))
3679 (file-name (git-file-name name version))
3680 (sha256
3681 (base32 "1djg53cp7y83gic2v71y6r5z76kwrbkp0r69hl25rs99dx6p89dy"))))
3682 (propagated-inputs
3683 `(("emacs-restclient" ,emacs-restclient)))
3684 (build-system emacs-build-system)
3685 (home-page "https://github.com/alf/ob-restclient.el")
3686 (synopsis "Org-babel functionality for @code{restclient-mode}")
3687 (description
3688 "This package integrates @code{restclient-mode} with Org.")
3689 (license license:gpl3+))))
3690
3691 (define-public emacs-org-now
3692 (let ((commit "8f6b277a73f1c66e58ccb4b7f40d406851befc91"))
3693 (package
3694 (name "emacs-org-now")
3695 (version (git-version "0.1-pre" "1" commit))
3696 (source
3697 (origin
3698 (method git-fetch)
3699 (uri (git-reference
3700 (url "https://github.com/alphapapa/org-now.git")
3701 (commit commit)))
3702 (file-name (git-file-name name version))
3703 (sha256
3704 (base32 "117zzkryznznk6h4i1jqzdn888nl019xrgxm2gza0lndx8dxsg2c"))))
3705 (propagated-inputs
3706 `(("emacs-dash" ,emacs-dash)))
3707 (build-system emacs-build-system)
3708 (home-page "https://github.com/alphapapa/org-now")
3709 (synopsis "Show current Org tasks in a sidebar")
3710 (description
3711 "This package provides commands to show Org headings in a sidebar
3712 window while working on them. After defining one heading as the \"now\"
3713 heading, other headings can be refiled to it with one command, and back to
3714 their original location with another.")
3715 (license license:gpl3+))))
3716
3717 (define-public emacs-rich-minority
3718 (package
3719 (name "emacs-rich-minority")
3720 (version "1.0.3")
3721 (source
3722 (origin
3723 (method git-fetch)
3724 (uri (git-reference
3725 (url "https://github.com/Malabarba/rich-minority.git")
3726 (commit version)))
3727 (file-name (git-file-name name version))
3728 (sha256
3729 (base32
3730 "1kn7c9qr9ykj68iqffzzmjsr6aazwac8cxb7j960sjb282rq0yyj"))))
3731 (build-system emacs-build-system)
3732 (home-page "https://github.com/Malabarba/rich-minority")
3733 (synopsis "Clean-up and beautify the list of minor modes")
3734 (description
3735 "This Emacs package hides and/or highlights minor modes in the
3736 mode-line.")
3737 (license license:gpl2+)))
3738
3739 (define-public emacs-robe
3740 (package
3741 (name "emacs-robe")
3742 (version "0.8.2")
3743 (source
3744 (origin
3745 (method git-fetch)
3746 (uri (git-reference
3747 (url "https://github.com/dgutov/robe.git")
3748 (commit version)))
3749 (file-name (git-file-name name version))
3750 (sha256
3751 (base32 "0qw18wi54yg971n4wnjqkd8lqj5lbs9ra8bvmngif2bzhqlfdsbn"))))
3752 (build-system emacs-build-system)
3753 (arguments
3754 '(#:include (cons "^lib\\/" %default-include)))
3755 (propagated-inputs
3756 `(("emacs-inf-ruby" ,emacs-inf-ruby)))
3757 (home-page "https://github.com/dgutov/robe")
3758 (synopsis "Ruby code assistance tool for Emacs")
3759 (description
3760 "Robe can provide information on loaded classes and modules in Ruby code,
3761 as well as where methods are defined. This allows the user to jump to method
3762 definitions, modules and classes, display method documentation and provide
3763 method and constant name completion.")
3764 (license license:gpl3+)))
3765
3766 (define-public emacs-robot-mode
3767 (let ((commit "32846e7e80ae3471b7c07f9709dcaa4f9b9ed4a0")
3768 (revision "1"))
3769 (package
3770 (name "emacs-robot-mode")
3771 (version (git-version "0.0.0" revision commit))
3772 (source (origin
3773 (method git-fetch)
3774 (uri (git-reference
3775 ;; A better maintained fork of robot-mode.
3776 (url "https://github.com/jvalkeejarvi/robot-mode.git")
3777 (commit commit)))
3778 (file-name (git-file-name name version))
3779 (sha256
3780 (base32
3781 "1i8wf7m0gml8zvvmlgppjzv78b432686p1qdbzgclc7qfcvzag0d"))))
3782 (build-system emacs-build-system)
3783 (propagated-inputs `(("emacs-s" ,emacs-s)))
3784 (home-page "https://github.com/jvalkeejarvi/robot-mode")
3785 (synopsis "Emacs mode for Robot Framework")
3786 (description "This major mode facilitates editing Robot Framework source
3787 files with features such as syntax highlighting, comments, finding keywords,
3788 completing keywords and smart indentation.")
3789 (license license:gpl3+))))
3790
3791 (define-public emacs-rspec
3792 (let ((commit "66ea7cc9699d6edc6115daa024818adbd85efc20")
3793 (revision "1"))
3794 (package
3795 (name "emacs-rspec")
3796 (version (git-version "1.11" revision commit))
3797 (source
3798 (origin
3799 (method git-fetch)
3800 (uri (git-reference
3801 (url "https://github.com/pezra/rspec-mode.git")
3802 (commit commit)))
3803 (file-name (git-file-name name version))
3804 (sha256
3805 (base32 "0b11s8r0pi7ah54km4yg4fqff8wkk409d25qnlwm1l94pdwjd1c8"))))
3806 (build-system emacs-build-system)
3807 (arguments
3808 `(#:include (cons "^snippets\\/rspec-mode\\/" %default-include)
3809 #:tests? #t
3810 #:test-command '("make" "test")))
3811 (home-page "https://github.com/pezra/rspec-mode")
3812 (synopsis "Provides a rspec mode for working with RSpec")
3813 (description
3814 "The Emacs RSpec mode provides keybindings for Ruby source files, e.g. to
3815 verify the spec associated with the current buffer, or entire project, as well
3816 as moving between the spec files, and corresponding code files.
3817
3818 Also included are keybindings for spec files and Dired buffers, as well as
3819 snippets for yasnippet.")
3820 (license license:gpl3+))))
3821
3822 (define-public emacs-smart-mode-line
3823 (package
3824 (name "emacs-smart-mode-line")
3825 (version "2.13")
3826 (source
3827 (origin
3828 (method git-fetch)
3829 (uri (git-reference
3830 (url "https://github.com/Malabarba/smart-mode-line.git")
3831 (commit version)))
3832 (file-name (git-file-name name version))
3833 (sha256
3834 (base32 "164b697xm1rwcggv37dymhf3npbyh2bs59z8b6m5x35lb4c3lf8b"))))
3835 (build-system emacs-build-system)
3836 (propagated-inputs
3837 `(("emacs-rich-minority" ,emacs-rich-minority)))
3838 (home-page "https://github.com/Malabarba/smart-mode-line")
3839 (synopsis "Color-coded smart mode-line")
3840 (description
3841 "Smart Mode Line is a mode-line theme for Emacs. It aims to be easy to
3842 read from small to large monitors by using colors, a prefix feature, and smart
3843 truncation.")
3844 (license license:gpl2+)))
3845
3846 (define-public emacs-sr-speedbar
3847 (let ((commit "77a83fb50f763a465c021eca7343243f465b4a47")
3848 (revision "0"))
3849 (package
3850 (name "emacs-sr-speedbar")
3851 (version (git-version "20161025" revision commit))
3852 (source
3853 (origin
3854 (method git-fetch)
3855 (uri (git-reference
3856 (url "https://github.com/emacsorphanage/sr-speedbar.git")
3857 (commit commit)))
3858 (file-name (git-file-name name version))
3859 (sha256
3860 (base32
3861 "0sd12555hk7z721y00kv3crdybvcn1i08wmd148z5imayzibj153"))))
3862 (build-system emacs-build-system)
3863 (home-page "https://www.emacswiki.org/emacs/SrSpeedbar")
3864 (synopsis "Same frame Emacs @code{speedbar}")
3865 (description
3866 "This Emacs package allows you to show @code{M-x speedbar} in the
3867 same frame (in an extra window). You can customize the initial width of
3868 the speedbar window.")
3869 (license license:gpl3+))))
3870
3871 (define-public emacs-shell-switcher
3872 (package
3873 (name "emacs-shell-switcher")
3874 (version "1.0.1")
3875 (source
3876 (origin
3877 (method git-fetch)
3878 (uri (git-reference
3879 (url "https://github.com/DamienCassou/shell-switcher.git")
3880 (commit (string-append "v" version))))
3881 (file-name (git-file-name name version))
3882 (sha256
3883 (base32 "0ia7sdip4hl27avckv3qpqgm3k4ynvp3xxq1cy53bqfzzx0gcria"))))
3884 (build-system emacs-build-system)
3885 (home-page "https://github.com/DamienCassou/shell-switcher")
3886 (synopsis "Provide fast switching between shell buffers")
3887 (description
3888 "This package provides commands to quickly switch between shell buffers.")
3889 (license license:gpl3+)))
3890
3891 (define-public emacs-names
3892 (let ((commit "d8baba5360e5253938a25d3e005455b6d2d86971")
3893 (version "20151201.0")
3894 (revision "8"))
3895 (package
3896 (name "emacs-names")
3897 (version (git-version version revision commit))
3898 (source
3899 (origin
3900 (method git-fetch)
3901 (uri (git-reference
3902 (url "https://github.com/Malabarba/names")
3903 (commit commit)))
3904 (file-name (git-file-name name version))
3905 (sha256
3906 (base32
3907 "11wyha2q8y7bzqq3jrzix8n97ywvsibvddrahqcps1a1yqk4hzfz"))))
3908 (build-system emacs-build-system)
3909 (home-page "https://github.com/Malabarba/names/")
3910 (synopsis "Namespace implementation for Emacs Lisp")
3911 (description
3912 "This package provides a macro that writes your namespaces for you.")
3913 (license license:gpl3+))))
3914
3915 (define-public emacs-evil-leader
3916 (package
3917 (name "emacs-evil-leader")
3918 (version "0.4.3")
3919 (source
3920 (origin
3921 (method git-fetch)
3922 (uri
3923 (git-reference
3924 (url "https://github.com/cofi/evil-leader")
3925 (commit version)))
3926 (file-name (git-file-name name version))
3927 (sha256
3928 (base32 "1k2zinchs0jjllp8zkpggckyy63dkyi5yig3p46vh4w45jdzysk5"))))
3929 (inputs
3930 `(("emacs-evil" ,emacs-evil)))
3931 (build-system emacs-build-system)
3932 (home-page "https://github.com/cofi/evil-leader")
3933 (synopsis "Implement <leader> feature from Vim")
3934 (description
3935 "Evil Leader provides the @code{<leader>} feature from Vim that provides
3936 an easy way to bind keys under a configurable prefix key.")
3937 (license license:gpl3+)))
3938
3939 (define-public emacs-evil-textobj-syntax
3940 (let ((commit "2d9ba8c75c754b409aea7469f46a5cfa52a872f3")
3941 (version "0")
3942 (revision "1"))
3943 (package
3944 (name "emacs-evil-textobj-syntax")
3945 (version (git-version version revision commit))
3946 (source
3947 (origin
3948 (method git-fetch)
3949 (uri (git-reference
3950 (url "https://github.com/laishulu/evil-textobj-syntax/")
3951 (commit commit)))
3952 (file-name (git-file-name name version))
3953 (sha256
3954 (base32
3955 "031p5i3274dazp7rz6m5y38shfgszm1clmkcf58qfqlvy978ammc"))))
3956 (build-system emacs-build-system)
3957 (propagated-inputs `(("emacs-evil" ,emacs-evil)
3958 ("emacs-names" ,emacs-names)))
3959 (home-page "https://github.com/laishulu/evil-textobj-syntax/")
3960 (synopsis "Text objects based on syntax highlighting")
3961 (description
3962 "This package provides text objects for @code{evil-mode} with
3963 boundaries defined by syntax highlighting.")
3964 (license license:gpl3+))))
3965
3966 (define-public emacs-flycheck-flow
3967 (let ((commit "9e8e52cfc98af6a23fd906f9cb5d5d470d8cf82d")
3968 (version "1.1")
3969 (revision "1"))
3970 (package
3971 (name "emacs-flycheck-flow")
3972 (version (git-version version revision commit))
3973 (source
3974 (origin
3975 (method git-fetch)
3976 (uri (git-reference
3977 (url "https://github.com/lbolla/emacs-flycheck-flow")
3978 (commit commit)))
3979 (file-name (git-file-name name version))
3980 (sha256
3981 (base32
3982 "14qldlisbmxzammr500gyha2hiv2xgyzfc6mysqii06kbcqn1ik1"))))
3983 (build-system emacs-build-system)
3984 (propagated-inputs
3985 `(("emacs-flycheck" ,emacs-flycheck)))
3986 (home-page "https://github.com/lbolla/emacs-flycheck-flow")
3987 (synopsis "Flow support for @code{flycheck-mode}")
3988 (description
3989 "This package allows @code{flycheck-mode} to provide syntax-checking
3990 for Flow files.")
3991 (license license:gpl3+))))
3992
3993 (define-public emacs-flycheck-grammalecte
3994 (package
3995 (name "emacs-flycheck-grammalecte")
3996 (version "1.2")
3997 (source
3998 (origin
3999 (method url-fetch)
4000 (uri (string-append "https://git.deparis.io/"
4001 "flycheck-grammalecte/snapshot/"
4002 "flycheck-grammalecte-" version ".tar.xz"))
4003 (sha256
4004 (base32 "1mzmzyik843r4j0ibpwqrxmb0g4xmirrf3lxr010bddkmmxf749a"))))
4005 (build-system emacs-build-system)
4006 (arguments
4007 `(#:include '("\\.(el|py)$")
4008 #:exclude '("^test-profile.el$")
4009 #:emacs ,emacs ;need libxml support
4010 #:phases
4011 (modify-phases %standard-phases
4012 (add-after 'unpack 'specify-python-location
4013 ;; Hard-code python3 executable location in the library.
4014 (lambda* (#:key inputs #:allow-other-keys)
4015 (let ((python3 (string-append (assoc-ref inputs "python")
4016 "/bin/python3")))
4017 (substitute* "flycheck-grammalecte.el"
4018 (("\"python3") (string-append "\"" python3)))
4019 (substitute* '("conjugueur.py" "flycheck-grammalecte.py")
4020 (("/usr/bin/env python3?") python3))
4021 #t)))
4022 (add-before 'build 'link-to-grammalecte
4023 ;; XXX: The Python part of the package requires grammalecte, but
4024 ;; the library is not specified in PYTHONPATH, since we're not
4025 ;; using Python build system. As a workaround, we symlink
4026 ;; grammalecte libraries here.
4027 (lambda* (#:key inputs outputs #:allow-other-keys)
4028 (let* ((out (assoc-ref outputs "out"))
4029 (grammalecte (assoc-ref inputs "grammalecte"))
4030 (version ,(version-major+minor (package-version python))))
4031 (with-directory-excursion
4032 (string-append out "/share/emacs/site-lisp")
4033 (symlink (string-append grammalecte "/lib/"
4034 "python" version "/site-packages/"
4035 "grammalecte")
4036 "grammalecte"))
4037 #t))))))
4038 (inputs
4039 `(("grammalecte" ,grammalecte)
4040 ("python" ,python)))
4041 (propagated-inputs
4042 `(("emacs-flycheck" ,emacs-flycheck)))
4043 (home-page "https://git.deparis.io/flycheck-grammalecte/")
4044 (synopsis "Integrate Grammalecte with Flycheck")
4045 (description
4046 "Integrate the French grammar and typography checker Grammalecte with
4047 Flycheck to automatically look for mistakes in your writings. It also
4048 provides an easy way to find synonyms and antonyms for a given word (to avoid
4049 repetitions for example).")
4050 (license license:gpl3+)))
4051
4052 (define-public emacs-flycheck-guile
4053 (package
4054 (name "emacs-flycheck-guile")
4055 (version "0.1.1")
4056 (source
4057 (origin
4058 (method git-fetch)
4059 (uri
4060 (git-reference
4061 (url "https://github.com/flatwhatson/flycheck-guile")
4062 (commit version)))
4063 (file-name (git-file-name name version))
4064 (sha256
4065 (base32 "163pnsh6r6bral1jg0vqri54g6hygws21vis0zci4114yb3fhkm1"))))
4066 (propagated-inputs
4067 `(("emacs-flycheck" ,emacs-flycheck)
4068 ("emacs-geiser" ,emacs-geiser)))
4069 (build-system emacs-build-system)
4070 (home-page "https://github.com/flatwhatson/flycheck-guile")
4071 (synopsis "GNU Guile support for Flycheck")
4072 (description
4073 "This package provides a Flycheck checker for GNU Guile using @code{guild
4074 compile}.")
4075 (license license:gpl3+)))
4076
4077 (define-public emacs-flycheck-rust
4078 (package
4079 (name "emacs-flycheck-rust")
4080 (version "1.1")
4081 (source
4082 (origin
4083 (method git-fetch)
4084 (uri
4085 (git-reference
4086 (url "https://github.com/flycheck/flycheck-rust")
4087 (commit version)))
4088 (file-name (git-file-name name version))
4089 (sha256
4090 (base32 "1fh6j5w2387nh2fwwjphkhq17cgj5m2q5k0fhidvgc2w65lzbr1r"))))
4091 (propagated-inputs
4092 `(("emacs-dash" ,emacs-dash)
4093 ("emacs-flycheck" ,emacs-flycheck)
4094 ("emacs-let-alist" ,emacs-let-alist)))
4095 (build-system emacs-build-system)
4096 (home-page "https://github.com/flycheck/flycheck-rust")
4097 (synopsis "Rust/Cargo support for Flycheck")
4098 (description
4099 "This Flycheck extension configures Flycheck automatically for
4100 the current Cargo project.")
4101 (license license:gpl3+)))
4102
4103 (define-public emacs-elisp-demos
4104 (package
4105 (name "emacs-elisp-demos")
4106 (version "2020.02.19")
4107 (source
4108 (origin
4109 (method git-fetch)
4110 (uri (git-reference
4111 (url "https://github.com/xuchunyang/elisp-demos")
4112 (commit version)))
4113 (file-name (git-file-name name version))
4114 (sha256
4115 (base32
4116 "0mckgaz92v3y2vlkggx9kd51fd1mahylw39c42l51dyv8wscm7sc"))))
4117 (build-system emacs-build-system)
4118 (arguments
4119 `(#:include '("\\.el$" "\\.org$")
4120 #:tests? #t
4121 #:test-command '("make" "test")))
4122 (home-page "https://github.com/xuchunyang/elisp-demos/")
4123 (synopsis "Enhance @code{*Help*} buffers with additional examples")
4124 (description
4125 "This package injects example uses of Elisp functions into their
4126 respective @code{*Help*} buffers.")
4127 (license license:gpl3+)))
4128
4129 (define-public emacs-docker-compose-mode
4130 (package
4131 (name "emacs-docker-compose-mode")
4132 (version "1.1.0")
4133 (source
4134 (origin
4135 (method git-fetch)
4136 (uri (git-reference
4137 (url "https://github.com/meqif/docker-compose-mode")
4138 (commit version)))
4139 (file-name (git-file-name name version))
4140 (sha256
4141 (base32
4142 "1fbcxwfvm33xcdj3cs26d9i1zyrryyjjkv7sc3mfxd45nq8d3ivj"))))
4143 (build-system emacs-build-system)
4144 (propagated-inputs
4145 `(("emacs-dash" ,emacs-dash)
4146 ("emacs-f" ,emacs-f)))
4147 (home-page "https://github.com/meqif/docker-compose-mode/")
4148 (synopsis "Major mode for editing @file{docker-compose} files")
4149 (description
4150 "This is a major mode for @file{docker-compose} files that provides
4151 completion of relevant keywords.")
4152 (license license:expat)))
4153
4154 (define-public emacs-dvc
4155 (let ((revision "591") ;no tags or official releases
4156 (guix-revision "1"))
4157 (package
4158 (name "emacs-dvc")
4159 (version (string-append "0.0.0-" guix-revision "." revision))
4160 (source
4161 (origin
4162 (method bzr-fetch)
4163 (uri (bzr-reference
4164 (url "lp:dvc")
4165 (revision revision)))
4166 (sha256
4167 (base32
4168 "03pqn493w70wcpgaxvqnfgynxghw114l9pyiv3r414d84vzhan6h"))
4169 (file-name (string-append name "-" version "-checkout"))))
4170 (build-system gnu-build-system)
4171 (arguments
4172 `(#:configure-flags
4173 (list (string-append "--with-lispdir=" (assoc-ref %outputs "out")
4174 "/share/emacs/site-lisp/"))
4175 #:tests? #f ;no test suite
4176 #:phases
4177 (modify-phases %standard-phases
4178 (add-before 'build 'set-home
4179 ;; Something in dvc-bookmarks.el attempts to write config files in
4180 ;; $HOME during the autoload generation.
4181 (lambda _ (setenv "HOME" (getenv "TMPDIR")) #t))
4182 (add-before 'build 'fix-texinfo
4183 ;; See https://bugs.launchpad.net/dvc/+bug/1264383.
4184 (lambda _
4185 (substitute* "texinfo/dvc-intro.texinfo"
4186 (("@itemx update ``to''")
4187 "@item update ``to''")
4188 (("@itemx brief")
4189 "@item brief")
4190 (("@itemx full")
4191 "@item full")
4192 (("@itemx drop")
4193 "@item drop")
4194 (("@itemx left file")
4195 "@item left file"))
4196 #t)))))
4197 (native-inputs
4198 `(("autoconf" ,autoconf)
4199 ("automake" ,automake) ;for aclocal
4200 ("emacs" ,emacs-minimal)
4201 ("texinfo" ,texinfo)))
4202 (home-page "http://xsteve.at/prg/emacs_dvc/index.html")
4203 (synopsis "Emacs front-end for various distributed version control systems.")
4204 (description "DVC is a legacy Emacs front-end for a number of
4205 distributed version control systems. It currently supports GNU Arch, GNU
4206 Bazaar, git, Mercurial, and Monotone. It also provides some integration with
4207 Gnus, e.g., for applying patches received by email.")
4208 (license license:gpl2+))))
4209
4210 (define-public emacs-sudo-edit
4211 (let ((commit "cc3d478937b1accd38742bfceba92af02ee9357d")
4212 (revision "6"))
4213 (package
4214 (name "emacs-sudo-edit")
4215 (version (git-version "0.1.0" revision commit))
4216 (source
4217 (origin
4218 (method git-fetch)
4219 (uri (git-reference
4220 (url "https://github.com/nflath/sudo-edit")
4221 (commit commit)))
4222 (file-name (git-file-name name version))
4223 (sha256
4224 (base32
4225 "1qv58x5j5a3v1s2ylhck1ykbfclq0mbi0gsvaql3nyv8cxazqlwl"))))
4226 (build-system emacs-build-system)
4227 (native-inputs
4228 `(("emacs-undercover" ,emacs-undercover)))
4229 (arguments
4230 `(#:phases
4231 (modify-phases %standard-phases
4232 (add-before 'check 'fix-makefile
4233 (lambda _
4234 (substitute* "Makefile"
4235 (("\\$\\(CASK\\) exec ") ""))
4236 #t)))
4237 #:tests? #t
4238 #:test-command '("make" "test")))
4239 (home-page "https://github.com/nflath/sudo-edit/")
4240 (synopsis "Open files as another user")
4241 (description
4242 "This package allows editing files as another user, including the root
4243 user.")
4244 (license license:gpl3+))))
4245
4246 (define-public emacs-miniedit
4247 (package
4248 (name "emacs-miniedit")
4249 (version "2.0")
4250 (source
4251 (origin
4252 (method git-fetch)
4253 (uri (git-reference
4254 (url "https://github.com/emacsmirror/miniedit")
4255 (commit version)))
4256 (file-name (git-file-name name version))
4257 (sha256
4258 (base32
4259 "1850z96gly0jnr50472idqz1drzqarr0n23bbasslrc501xkg0bq"))))
4260 (build-system emacs-build-system)
4261 (home-page "https://github.com/emacsmirror/miniedit/")
4262 (synopsis "Enhanced editing for minibuffer fields")
4263 (description
4264 "This package provides a function that can be called from the
4265 minibuffer to enable editing the minibuffer input in another buffer with
4266 @code{text-mode} enabled.")
4267 (license license:gpl2+)))
4268
4269 (define-public emacs-ob-ipython
4270 (package
4271 (name "emacs-ob-ipython")
4272 (version "20180224")
4273 (source (origin
4274 (method git-fetch)
4275 (uri (git-reference
4276 (commit "7147455230841744fb5b95dcbe03320313a77124")
4277 (url "https://github.com/gregsexton/ob-ipython.git")))
4278 (file-name (git-file-name name version))
4279 (sha256
4280 (base32
4281 "1a10fc2jk37ni5sjjvf87s5nyaz2a6h2mlj5dxh4dhv5sd3bb85p"))))
4282 (build-system emacs-build-system)
4283 (propagated-inputs
4284 `(("emacs-f" ,emacs-f)))
4285 (home-page "http://www.gregsexton.org")
4286 (synopsis "Org-Babel functions for IPython evaluation")
4287 (description "This package adds support to Org-Babel for evaluating Python
4288 source code using IPython.")
4289 (license license:gpl3+)))
4290
4291 (define-public emacs-debbugs
4292 (package
4293 (name "emacs-debbugs")
4294 (version "0.24")
4295 (source
4296 (origin
4297 (method url-fetch)
4298 (uri (string-append "https://elpa.gnu.org/packages/debbugs-"
4299 version ".tar"))
4300 (sha256
4301 (base32 "1b8qwdvf3jvw0chrdgbymb2ci9ms45mf90nrljxx7jql2lsr3x63"))))
4302 (build-system emacs-build-system)
4303 (arguments '(#:include '("\\.el$" "\\.wsdl$" "\\.info$")))
4304 (propagated-inputs
4305 `(("emacs-async" ,emacs-async)))
4306 (home-page "https://elpa.gnu.org/packages/debbugs.html")
4307 (synopsis "Access the Debbugs bug tracker in Emacs")
4308 (description
4309 "This package lets you access the @uref{http://bugs.gnu.org,GNU Bug
4310 Tracker} from within Emacs.
4311
4312 For instance, it defines the command @code{M-x debbugs-gnu} for listing bugs,
4313 and the command @code{M-x debbugs-gnu-search} for bug searching. If you
4314 prefer the listing of bugs as TODO items of @code{org-mode}, you could use
4315 @code{M-x debbugs-org} and related commands.
4316
4317 A minor mode @code{debbugs-browse-mode} let you browse URLs to the GNU Bug
4318 Tracker as well as bug identifiers prepared for @code{bug-reference-mode}.")
4319 (license license:gpl3+)))
4320
4321 (define-public emacs-ert-expectations
4322 (package
4323 (name "emacs-ert-expectations")
4324 (version "0.2")
4325 (source
4326 (origin
4327 (method url-fetch)
4328 (uri "https://www.emacswiki.org/emacs/download/ert-expectations.el")
4329 (sha256
4330 (base32
4331 "0cwy3ilsid90abzzjb7ha2blq9kmv3gfp3icwwfcz6qczgirq6g7"))))
4332 (build-system emacs-build-system)
4333 (home-page "https://www.emacswiki.org/emacs/ert-expectations.el")
4334 (synopsis "Simple unit test framework for Emacs Lisp")
4335 (description "@code{emacs-ert-expectations} is a simple unit test
4336 framework for Emacs Lisp to be used with @code{ert}.")
4337 (license license:gpl3+)))
4338
4339 (define-public emacs-deferred
4340 (package
4341 (name "emacs-deferred")
4342 (version "0.5.1")
4343 (home-page "https://github.com/kiwanami/emacs-deferred")
4344 (source (origin
4345 (method git-fetch)
4346 (uri (git-reference
4347 (url home-page)
4348 (commit (string-append "v" version))))
4349 (file-name (git-file-name name version))
4350 (sha256
4351 (base32
4352 "0xy9zb6wwkgwhcxdnslqk52bq3z24chgk6prqi4ks0qcf2bwyh5h"))))
4353 (build-system emacs-build-system)
4354 (arguments
4355 `(#:phases
4356 (modify-phases %standard-phases
4357 (add-after 'unpack 'set-shell
4358 ;; Setting the SHELL environment variable is required for the tests
4359 ;; to find sh.
4360 (lambda _
4361 (setenv "SHELL" (which "sh"))
4362 #t))
4363 (add-before 'check 'fix-makefile
4364 (lambda _
4365 (substitute* "Makefile"
4366 (("\\$\\(CASK\\) exec ") ""))
4367 #t)))
4368 #:tests? #t
4369 #:test-command '("make" "test")))
4370 (native-inputs
4371 `(("emacs-ert-expectations" ,emacs-ert-expectations)
4372 ("emacs-undercover" ,emacs-undercover)
4373 ("ert-runner" ,emacs-ert-runner)))
4374 (synopsis "Simple asynchronous functions for Emacs Lisp")
4375 (description
4376 "The @code{deferred.el} library provides support for asynchronous tasks.
4377 The API is almost the same as that of
4378 @uref{https://github.com/cho45/jsdeferred, JSDeferred}, a JavaScript library
4379 for asynchronous tasks.")
4380 (license license:gpl3+)))
4381
4382 (define-public emacs-butler
4383 (package
4384 (name "emacs-butler")
4385 (version "0.2.4")
4386 (home-page "https://github.com/AshtonKem/Butler")
4387 (source (origin
4388 (method git-fetch)
4389 (uri (git-reference
4390 (url home-page)
4391 (commit version)))
4392 (file-name (git-file-name name version))
4393 (sha256
4394 (base32
4395 "1pii9dw4skq7nr4na6qxqasl36av8cwjp71bf1fgppqpcd9z8skj"))))
4396 (build-system emacs-build-system)
4397 (propagated-inputs
4398 `(("emacs-deferred" ,emacs-deferred)))
4399 (synopsis "Emacs client for Jenkins")
4400 (description
4401 "Butler provides an interface to connect to Jenkins continuous
4402 integration servers. Users can specify a list of server in the
4403 @code{butler-server-list} variable and then use @code{M-x butler-status} to
4404 view the build status of those servers' build jobs, and possibly to trigger
4405 build jobs.")
4406 (license license:gpl3+)))
4407
4408 (define-public emacs-company
4409 (package
4410 (name "emacs-company")
4411 (version "0.9.12")
4412 (source
4413 (origin
4414 (method git-fetch)
4415 (uri (git-reference
4416 (url "https://github.com/company-mode/company-mode.git")
4417 (commit version)))
4418 (file-name (git-file-name name version))
4419 (sha256
4420 (base32 "0c31amc6gyfkmb1ii6mm56c75za1yxkj2iyhrjc45nn2mrh7yj7a"))))
4421 (build-system emacs-build-system)
4422 (arguments
4423 `(#:phases
4424 (modify-phases %standard-phases
4425 (add-before 'check 'fix-bin-dir
4426 (lambda _
4427 ;; The company-files-candidates-normal-root test looks
4428 ;; for the /bin directory, but the build environment has
4429 ;; no /bin directory. Modify the test to look for the
4430 ;; /tmp directory.
4431 (substitute* "test/files-tests.el"
4432 (("/bin/") "/tmp/"))
4433 #t)))
4434 #:tests? #t
4435 #:test-command '("make" "test-batch")))
4436 (home-page "https://company-mode.github.io/")
4437 (synopsis "Modular text completion framework")
4438 (description
4439 "Company is a modular completion mechanism. Modules for retrieving
4440 completion candidates are called back-ends, modules for displaying them are
4441 front-ends. Company comes with many back-ends, e.g., @code{company-elisp}.
4442 These are distributed in separate files and can be used individually.")
4443 (license license:gpl3+)))
4444
4445 (define-public emacs-company-posframe
4446 (let ((version "0.1.0")
4447 (revision "1")
4448 (commit "67d899502384fb9ab2870aba0af41523dea7b64f"))
4449 (package
4450 (name "emacs-company-posframe")
4451 (version (git-version version revision commit))
4452 (source (origin
4453 (method git-fetch)
4454 (uri (git-reference
4455 (url "https://github.com/tumashu/company-posframe.git")
4456 (commit commit)))
4457 (file-name (git-file-name name version))
4458 (sha256
4459 (base32
4460 "051smlvz1siwglsd9k9l0m20mygrx4niflmyshha0064287aysxr"))))
4461 (build-system emacs-build-system)
4462 (propagated-inputs
4463 `(("emacs-company" ,emacs-company)
4464 ("emacs-posframe" ,emacs-posframe)))
4465 (home-page "https://github.com/tumashu/company-posframe")
4466 (synopsis "Use a posframe for @code{emacs-company}'s candidate menu")
4467 (description
4468 "Allows @code{emacs-company} to use child frames for its candidate menus.
4469
4470 @code{emacs-company-posframe} is fast enough for daily use and supports CJK
4471 languages.")
4472 (license license:gpl3+))))
4473
4474 (define-public emacs-irony-mode
4475 (package
4476 (name "emacs-irony-mode")
4477 (version "1.4.0")
4478 (home-page "https://github.com/Sarcasm/irony-mode")
4479 (source (origin
4480 (method git-fetch)
4481 (uri (git-reference
4482 (url (string-append home-page ".git"))
4483 (commit (string-append "v" version))))
4484 (file-name (git-file-name name version))
4485 (sha256
4486 (base32
4487 "0n2nfcq58md1p2xdhq1smh8v7lsyj0ci7ma5xyd6bkg5rvhsh10i"))))
4488 (build-system emacs-build-system)
4489 (inputs `(("server" ,emacs-irony-mode-server)))
4490 (arguments `(#:phases
4491 (modify-phases %standard-phases
4492 (add-after 'unpack 'configure
4493 (lambda* (#:key inputs #:allow-other-keys)
4494 (chmod "irony.el" #o644)
4495 (emacs-substitute-variables "irony.el"
4496 ("irony-server-install-prefix"
4497 (assoc-ref inputs "server")))
4498 #t)))))
4499 (synopsis "C/C++/ObjC Code completion and syntax checks for Emacs")
4500 (description "Irony-mode provides Clang-assisted syntax checking and
4501 completion for C, C++, and ObjC in GNU Emacs. Using @code{libclang} it can
4502 provide syntax checking and autocompletion on compiler level which is very
4503 resistant against false positives. It also integrates well with other
4504 packages like @code{eldoc-mode} and especially @code{company-mode} as
4505 described on the homepage.")
4506 (license license:gpl3+)))
4507
4508 (define-public emacs-irony-mode-server
4509 (package (inherit emacs-irony-mode)
4510 (name "emacs-irony-mode-server")
4511 (inputs
4512 `(("clang" ,clang)))
4513 (arguments
4514 `(#:phases
4515 (modify-phases %standard-phases
4516 (replace 'configure
4517 (lambda* (#:key outputs #:allow-other-keys)
4518 (let ((out (assoc-ref outputs "out")))
4519 (invoke "cmake"
4520 "server"
4521 (string-append "-DCMAKE_INSTALL_PREFIX=" out)) #t))))))
4522 (build-system cmake-build-system)
4523 (synopsis "Server for the Emacs @dfn{irony mode}")))
4524
4525 (define-public emacs-company-irony
4526 (package
4527 (name "emacs-company-irony")
4528 (version "1.1.0")
4529 (source (origin
4530 (method git-fetch)
4531 (uri (git-reference
4532 (url "https://github.com/Sarcasm/company-irony.git")
4533 (commit (string-append "v" version))))
4534 (sha256 (base32
4535 "1qgyam2vyjw90kpxns5cd6bq3qiqjhzpwrlvmi18vyb69qcgqd8a"))
4536 (file-name (git-file-name name version))))
4537 (build-system emacs-build-system)
4538 (inputs
4539 `(("emacs-irony-mode" ,emacs-irony-mode)
4540 ("emacs-company" ,emacs-company)))
4541 (synopsis "C++ completion backend for Company using irony-mode")
4542 (description "This backend for company-mode allows for C++ code completion
4543 with irony-mode using clang-tooling.")
4544 (home-page "https://github.com/Sarcasm/company-irony")
4545 (license license:gpl3+)))
4546
4547 (define-public emacs-flycheck-irony
4548 (package
4549 (name "emacs-flycheck-irony")
4550 (version "0.1.0")
4551 (source (origin
4552 (method git-fetch)
4553 (uri (git-reference
4554 (url "https://github.com/Sarcasm/flycheck-irony.git")
4555 (commit (string-append "v" version))))
4556 (file-name (git-file-name name version))
4557 (sha256
4558 (base32 "0qa5a8wzvzxwqql92ibc9s43k8sj3vwn7skz9hfr8av0skkhx996"))))
4559 (build-system emacs-build-system)
4560 (inputs
4561 `(("irony-mode" ,emacs-irony-mode)
4562 ("flycheck-mode" ,emacs-flycheck)
4563 ("emacs-company" ,emacs-company)))
4564 (synopsis "Live syntax checking frontend for Flycheck using irony-mode")
4565 (description "This package provides a frontend for Flycheck that lets
4566 irony-mode do the syntax checking.")
4567 (home-page "https://github.com/Sarcasm/flycheck-irony")
4568 (license license:gpl3+)))
4569
4570 (define-public emacs-irony-eldoc
4571 (package
4572 (name "emacs-irony-eldoc")
4573 (version (package-version emacs-irony-mode))
4574 (source
4575 (origin
4576 (method git-fetch)
4577 (uri (git-reference
4578 (url "https://github.com/ikirill/irony-eldoc.git")
4579 (commit "0df5831eaae264a25422b061eb2792aadde8b3f2")))
4580 (file-name (git-file-name name version))
4581 (sha256
4582 (base32 "1l5qpr66v1l12fb50yh73grb2rr85xxmbj19mm33b5rdrq2bqmmd"))))
4583 (build-system emacs-build-system)
4584 (inputs
4585 `(("irony-mode" ,emacs-irony-mode)))
4586 (synopsis "Eldoc integration for irony-mode")
4587 (description "Irony-eldoc is an eldoc extension that shows documentation
4588 for the current function or variable in the minibuffer.")
4589 (home-page "https://github.com/ikirill/irony-eldoc")
4590 (license license:gpl3+)))
4591
4592 (define-public emacs-company-quickhelp
4593 ;; XXX: release version 2.3.0 is on an unmaintained branch for some reason,
4594 ;; so we use the latest 2.2.0 commit instead
4595 (let ((commit "479676cade80a9f03802ca3d956591820ed5c537")
4596 (revision "1"))
4597 (package
4598 (name "emacs-company-quickhelp")
4599 (version (git-version "2.2.0" revision commit))
4600 (source
4601 (origin
4602 (method git-fetch)
4603 (uri (git-reference
4604 (url "https://github.com/expez/company-quickhelp.git")
4605 (commit commit)))
4606 (file-name (git-file-name name version))
4607 (sha256
4608 (base32 "0hbqpnaf4hnin3nmdzmfj3v22kk9a97b6zssqs96ns36d9h52xcp"))))
4609 (build-system emacs-build-system)
4610 (propagated-inputs
4611 `(("emacs-pos-tip" ,emacs-pos-tip)
4612 ("emacs-company" ,emacs-company)))
4613 (home-page "https://github.com/expez/company-quickhelp")
4614 (synopsis "Popup documentation for completion candidates")
4615 (description "@code{company-quickhelp} shows documentation for the
4616 completion candidate when using the Company text completion framework.")
4617 (license license:gpl3+))))
4618
4619 (define-public emacs-math-symbol-lists
4620 (let ((commit "dc7531cff0c845d5470a50c24d5d7309b2ced7eb")
4621 (revision "1"))
4622 (package
4623 (name "emacs-math-symbol-lists")
4624 (version (git-version "1.2.1" revision commit))
4625 (source
4626 (origin
4627 (method git-fetch)
4628 (uri (git-reference
4629 (url "https://github.com/vspinu/math-symbol-lists.git")
4630 (commit commit)))
4631 (file-name (git-file-name name version))
4632 (sha256
4633 (base32 "094m21i9rns6m59cmhxcivxxafbg52w8f8na4y3v47aq67zmhhqm"))))
4634 (build-system emacs-build-system)
4635 (home-page "https://github.com/vspinu/math-symbol-lists")
4636 (synopsis "Lists of Unicode math symbols and @code{LaTeX} commands")
4637 (description "This is a storage package used by completion engines like
4638 @code{company-math}.")
4639 (license license:gpl3+))))
4640
4641 (define-public emacs-company-coq
4642 (package
4643 (name "emacs-company-coq")
4644 (version "1.0.1")
4645 (source
4646 (origin
4647 (method git-fetch)
4648 (uri
4649 (git-reference
4650 (url "https://github.com/cpitclaudel/company-coq")
4651 (commit version)))
4652 (file-name (git-file-name name version))
4653 (sha256
4654 (base32 "0dxi4h8xqq5647k7h89s4pi8nwyj3brlhsckrv3p3b1g4dr6mk3b"))))
4655 (inputs
4656 `(("emacs-company" ,emacs-company)
4657 ("emacs-company-math" ,emacs-company-math)
4658 ("emacs-dash" ,emacs-dash)
4659 ("emacs-yasnippet" ,emacs-yasnippet)))
4660 (build-system emacs-build-system)
4661 (home-page "https://github.com/cpitclaudel/company-coq")
4662 (synopsis "Emacs extensions for Proof General's Coq mode")
4663 (description "This package includes a collection of Company mode backends
4664 for Proof-General's Coq mode, and many useful extensions to Proof-General. It
4665 features:
4666
4667 @itemize
4668 @item Prettification of operators, types, and subscripts,
4669 @item Auto-completion,
4670 @item Insertion of cases,
4671 @item Fully explicit intros,
4672 @item Outlines, code folding, and jumping to definition,
4673 @item Help with errors,
4674 @item and more.
4675 @end itemize")
4676 (license license:gpl3+)))
4677
4678 (define-public emacs-company-math
4679 (let ((commit "600e49449644f6835f9dc3501bc58461999e8ab9")
4680 (revision "1"))
4681 (package
4682 (name "emacs-company-math")
4683 (version (git-version "1.3" revision commit))
4684 (source
4685 (origin
4686 (method git-fetch)
4687 (uri (git-reference
4688 (url "https://github.com/vspinu/company-math.git")
4689 (commit commit)))
4690 (file-name (git-file-name name version))
4691 (sha256
4692 (base32
4693 "1ps2lpkzn8mjbpcbvvy1qz3xbgrh6951x8y9bsd1fm32drdph9lh"))))
4694 (build-system emacs-build-system)
4695 (propagated-inputs
4696 `(("emacs-math-symbol-lists" ,emacs-math-symbol-lists)
4697 ("emacs-company" ,emacs-company)))
4698 (home-page "https://github.com/vspinu/company-math")
4699 (synopsis "Completion backends for Unicode math symbols and @code{LaTeX} tags")
4700 (description "This package provides a backend for use with
4701 @code{company-mode} allowing for completion of common math symbols.")
4702 (license license:gpl3+))))
4703
4704 (define-public emacs-compdef
4705 (let ((commit "67104a38763cc819644f711248b170a43bce151b")
4706 (revision "2"))
4707 (package
4708 (name "emacs-compdef")
4709 (version (git-version "0.2" revision commit))
4710 (source
4711 (origin
4712 (method git-fetch)
4713 (uri (git-reference
4714 (url "https://gitlab.com/jjzmajic/compdef.git")
4715 (commit commit)))
4716 (file-name (git-file-name name version))
4717 (sha256
4718 (base32 "1f6y6cr67gps9jp5hd20xszfd3k26v70g6z4g5db6wdkvlnc2wkg"))))
4719 (build-system emacs-build-system)
4720 (home-page "https://gitlab.com/jjzmajic/compdef")
4721 (synopsis "Set local completion backends")
4722 (description "This package provides a function to cleanly set local
4723 completion backends according to mode, and integrates with
4724 @code{use-package}.")
4725 (license license:gpl3+))))
4726
4727 (define-public emacs-icomplete-vertical
4728 (package
4729 (name "emacs-icomplete-vertical")
4730 (version "0.1")
4731 (source
4732 (origin
4733 (method git-fetch)
4734 (uri (git-reference
4735 (url "https://github.com/oantolin/icomplete-vertical.git")
4736 (commit version)))
4737 (file-name (git-file-name name version))
4738 (sha256
4739 (base32
4740 "1bqnlvv1gvrjriazvzd3bq98r8ii6fqax0zznhvkl1ij5pf55a90"))))
4741 (build-system emacs-build-system)
4742 (home-page "https://github.com/oantolin/icomplete-vertical")
4743 (synopsis "Display icomplete candidates vertically")
4744 (description
4745 "This package defines a global minor mode to display Icomplete
4746 completion candidates vertically.")
4747 (license license:gpl3+)))
4748
4749 (define-public emacs-handle
4750 (let ((commit "51c050bc1c6e5caf0eb47ecd985daea1db7241ab")
4751 (revision "2"))
4752 (package
4753 (name "emacs-handle")
4754 (version (git-version "0.1" revision commit))
4755 (source
4756 (origin
4757 (method git-fetch)
4758 (uri (git-reference
4759 (url "https://gitlab.com/jjzmajic/handle.git")
4760 (commit commit)))
4761 (file-name (git-file-name name version))
4762 (sha256
4763 (base32 "14f15qzfmwdslml4rv37zb5d1lsjf0jibriz636hb7q7knx1n4sg"))))
4764 (build-system emacs-build-system)
4765 (propagated-inputs
4766 `(("emacs-parent-mode" ,emacs-parent-mode)))
4767 (home-page "https://gitlab.com/jjzmajic/handle")
4768 (synopsis "Handle generic functions across related major modes")
4769 (description "This package provides generic functions that specialize on
4770 major modes and intended purpose rather than on arguments. Different
4771 callables for tasks like expression evaluation, definition-jumping, and more
4772 can now be grouped accordingly and tried in sequence until one of them
4773 succeeds.")
4774 (license license:gpl3+))))
4775
4776 (define-public emacs-nswbuff
4777 (let ((commit "362da7f3687e2eb5bb11667347de85f4a9d002bc")
4778 (revision "1"))
4779 (package
4780 (name "emacs-nswbuff")
4781 (version (git-version "1.0" revision commit))
4782 (source
4783 (origin
4784 (method git-fetch)
4785 (uri (git-reference
4786 (url "https://github.com/joostkremers/nswbuff.git")
4787 (commit commit)))
4788 (file-name (git-file-name name version))
4789 (sha256
4790 (base32 "0l2xfz8z5qd4hz3kv6zn7h6qq3narkilri8a071y1n8j31jps4ma"))))
4791 (build-system emacs-build-system)
4792 (home-page "https://github.com/joostkremers/nswbuff")
4793 (synopsis "Quickly switch between buffers")
4794 (description "This package allows for navigating between buffers within
4795 a customizable list.")
4796 (license license:gpl3+))))
4797
4798 (define-public emacs-phi-search
4799 (let ((commit "9a089b8271cb1cff9640848850298c9ec855286c")
4800 (revision "1"))
4801 (package
4802 (name "emacs-phi-search")
4803 (version (git-version "20160630" revision commit))
4804 (source
4805 (origin
4806 (method git-fetch)
4807 (uri (git-reference
4808 (url "https://github.com/zk-phi/phi-search.git")
4809 (commit commit)))
4810 (file-name (git-file-name name version))
4811 (sha256
4812 (base32 "1gr5plcbrfdc4pglfj905s89hf8x0kc083h30wcnd81bnw9jwz1x"))))
4813 (build-system emacs-build-system)
4814 (home-page "https://github.com/zk-phi/phi-search")
4815 (synopsis "Interactive search compatible with @code{multiple-cursors}")
4816 (description "This package can be used with @code{multiple-cursors} to
4817 provide an incremental search that moves all fake cursors in sync.")
4818 (license license:gpl2+))))
4819
4820 (define-public emacs-phi-search-mc
4821 (let ((commit "7aa671910f766437089aec26c3aa7814222d1356")
4822 (revision "1"))
4823 (package
4824 (name "emacs-phi-search-mc")
4825 (version (git-version "2.2.1" revision commit))
4826 (source
4827 (origin
4828 (method git-fetch)
4829 (uri (git-reference
4830 (url "https://github.com/knu/phi-search-mc.el.git")
4831 (commit commit)))
4832 (file-name (git-file-name name version))
4833 (sha256
4834 (base32 "0wr86ad0yl52im6b9z0b9pzmhcn39qg5m9878yfv1nbxliw40lcd"))))
4835 (build-system emacs-build-system)
4836 (propagated-inputs
4837 `(("emacs-phi-search" ,emacs-phi-search)
4838 ("emacs-multiple-cursors" ,emacs-multiple-cursors)))
4839 (home-page "https://github.com/knu/phi-search-mc.el")
4840 (synopsis "Extend @code{phi-search} with additional
4841 @code{multiple-cursors} functionality")
4842 (description "This package provides further integration between
4843 @code{multiple-cursors} and @code{phi-search}, a package that allows for
4844 interactive searches to move multiple fake cursors.")
4845 (license license:bsd-2))))
4846
4847 (define-public emacs-multiple-cursors
4848 (package
4849 (name "emacs-multiple-cursors")
4850 (version "1.4.0")
4851 (source
4852 (origin
4853 (method git-fetch)
4854 (uri (git-reference
4855 (url "https://github.com/magnars/multiple-cursors.el.git")
4856 (commit version)))
4857 (file-name (git-file-name name version))
4858 (sha256
4859 (base32 "1ijgvzv5r44xqvz751fd5drbvrspapw6xwv47582w255j363r6ss"))))
4860 (build-system emacs-build-system)
4861 (home-page "https://github.com/magnars/multiple-cursors.el")
4862 (synopsis "Multiple cursors for Emacs")
4863 (description
4864 "This package adds support to Emacs for editing text with multiple
4865 simultaneous cursors.")
4866 (license license:gpl3+)))
4867
4868 (define-public emacs-mc-extras
4869 (let ((commit "053abc52181b8718559d7361a587bbb795faf164")
4870 (revision "1"))
4871 (package
4872 (name "emacs-mc-extras")
4873 (version (git-version "1.2.4" revision commit))
4874 (source
4875 (origin
4876 (method git-fetch)
4877 (uri (git-reference
4878 (url "https://github.com/knu/mc-extras.el.git")
4879 (commit commit)))
4880 (file-name (git-file-name name version))
4881 (sha256
4882 (base32 "16y48qrd20m20vypvys5jp4v4gc1qrqlkm75s1pk1r68i9zrw481"))))
4883 (build-system emacs-build-system)
4884 (propagated-inputs
4885 `(("emacs-multiple-cursors" ,emacs-multiple-cursors)))
4886 (home-page "https://github.com/knu/mc-extras.el")
4887 (synopsis "Extra functions for manipulating multiple cursors")
4888 (description
4889 "This package provides additional functions for
4890 @code{multiple-cursors}, including functions for marking s-expressions,
4891 comparing characters, removing cursors, and more.")
4892 (license license:bsd-2))))
4893
4894 (define-public emacs-typo
4895 (package
4896 (name "emacs-typo")
4897 (version "1.1")
4898 (home-page "https://github.com/jorgenschaefer/typoel")
4899 (source (origin
4900 (method git-fetch)
4901 (uri (git-reference
4902 (url home-page)
4903 (commit (string-append "v" version))))
4904 (file-name (git-file-name name version))
4905 (sha256
4906 (base32
4907 "1jhd4grch5iz12gyxwfbsgh4dmz5hj4bg4gnvphccg8dsnni05k2"))))
4908 (build-system emacs-build-system)
4909 (synopsis "Minor mode for typographic editing")
4910 (description
4911 "This package provides two Emacs modes, @code{typo-mode} and
4912 @code{typo-global-mode}. These modes automatically insert Unicode characters
4913 for quotation marks, dashes, and ellipses. For example, typing @kbd{\"}
4914 automatically inserts a Unicode opening or closing quotation mark, depending
4915 on context.")
4916 (license license:gpl3+)))
4917
4918 (define-public emacs-company-lsp
4919 (package
4920 (name "emacs-company-lsp")
4921 (version "2.1.0")
4922 (source (origin
4923 (method git-fetch)
4924 (uri (git-reference
4925 (url "https://github.com/tigersoldier/company-lsp.git")
4926 (commit version)))
4927 (file-name (git-file-name name version))
4928 (sha256
4929 (base32
4930 "1hy1x2w0yp5brm7714d1hziz3rpkywb5jp3yj78ibmi9ifny9vri"))))
4931 (build-system emacs-build-system)
4932 (propagated-inputs
4933 `(("emacs-dash" ,emacs-dash)
4934 ("emacs-lsp-mode" ,emacs-lsp-mode)
4935 ("emacs-company" ,emacs-company)
4936 ("emacs-s" ,emacs-s)
4937 ("emacs-dash" ,emacs-dash)))
4938 (native-inputs
4939 `(("emacs-buttercup" ,emacs-buttercup)))
4940 (arguments
4941 `(#:tests? #t
4942 #:test-command '("buttercup" "-L" ".")))
4943 (home-page "https://github.com/tigersoldier/company-lsp")
4944 (synopsis "Completion for @code{lsp-mode}")
4945 (description
4946 "This package provides completion features that are not possible with
4947 @code{lsp-mode} and @code{company-capf} alone, including support for trigger
4948 characters and asynchronous fetching of completion candidates.")
4949 (license license:gpl3+)))
4950
4951 (define-public emacs-scheme-complete
4952 (let ((commit "9b5cf224bf2a5994bc6d5b152ff487517f1a9bb5"))
4953 (package
4954 (name "emacs-scheme-complete")
4955 (version (string-append "20151223." (string-take commit 8)))
4956 (source
4957 (origin
4958 (method git-fetch)
4959 (uri (git-reference
4960 (url "https://github.com/ashinn/scheme-complete.git")
4961 (commit commit)))
4962 (file-name (git-file-name name version))
4963 (sha256
4964 (base32
4965 "141wn9l0m33w0g3dqmx8nxbfdny1r5xbr6ak61rsz21bk0qafs7x"))
4966 (patches
4967 (search-patches "emacs-scheme-complete-scheme-r5rs-info.patch"))))
4968 (build-system emacs-build-system)
4969 (home-page "https://github.com/ashinn/scheme-complete")
4970 (synopsis "Smart tab completion for Scheme in Emacs")
4971 (description
4972 "This file provides a single function, @code{scheme-smart-complete},
4973 which you can use for intelligent, context-sensitive completion for any Scheme
4974 implementation in Emacs. To use it just load this file and bind that function
4975 to a key in your preferred mode.")
4976 (license license:public-domain))))
4977
4978 (define-public emacs-scel
4979 (let ((version "20170629")
4980 (revision "1")
4981 (commit "aeea3ad4be9306d14c3a734a4ff54fee10ac135b"))
4982 (package
4983 (name "emacs-scel")
4984 (version (git-version version revision commit))
4985 (source
4986 (origin
4987 (method git-fetch)
4988 (uri (git-reference
4989 (url "https://github.com/supercollider/scel.git")
4990 (commit commit)))
4991 (file-name (git-file-name name version))
4992 (sha256
4993 (base32
4994 "0jvmzs1lsjyndqshhii2y4mnr3wghai26i3p75453zrpxpg0zvvw"))))
4995 (build-system emacs-build-system)
4996 (arguments
4997 `(#:modules ((guix build emacs-build-system)
4998 ((guix build cmake-build-system) #:prefix cmake:)
4999 (guix build utils))
5000 #:imported-modules (,@%emacs-build-system-modules
5001 (guix build cmake-build-system))
5002 #:phases
5003 (modify-phases %standard-phases
5004 (add-after 'unpack 'configure
5005 (lambda* (#:key outputs #:allow-other-keys)
5006 (substitute* "el/CMakeLists.txt"
5007 (("share/emacs/site-lisp/SuperCollider")
5008 (string-append
5009 "share/emacs/site-lisp")))
5010 ((assoc-ref cmake:%standard-phases 'configure)
5011 #:outputs outputs
5012 #:configure-flags '("-DSC_EL_BYTECOMPILE=OFF"))))
5013 (add-after 'add-source-to-load-path 'add-el-dir-to-emacs-load-path
5014 (lambda _
5015 (setenv "EMACSLOADPATH"
5016 (string-append (getcwd) "/el:" (getenv "EMACSLOADPATH")))
5017 #t))
5018 (replace 'install (assoc-ref cmake:%standard-phases 'install)))))
5019 (inputs
5020 `(("supercollider" ,supercollider)))
5021 (native-inputs
5022 `(("cmake" ,cmake-minimal)))
5023 (home-page "https://github.com/supercollider/scel")
5024 (synopsis "SuperCollider Emacs interface")
5025 (description "@code{emacs-scel} is an Emacs interface to SuperCollider.
5026 SuperCollider is a platform for audio synthesis and algorithmic composition.")
5027 (license license:gpl2+))))
5028
5029 (define-public emacs-company-auctex
5030 (let ((commit "48c42c58ce2f0e693301b0cb2d085055410c1b25")
5031 (revision "1"))
5032 (package
5033 (name "emacs-company-auctex")
5034 (version (git-version "0" revision commit))
5035 (source (origin
5036 (method git-fetch)
5037 (uri (git-reference
5038 (url "https://github.com/alexeyr/company-auctex")
5039 (commit commit)))
5040 (file-name (git-file-name name version))
5041 (sha256
5042 (base32
5043 "10qn7frn5wcmrlci3v6iliqzj7r9dls87h9zp3xkgrgn4bqprfp8"))))
5044 (build-system emacs-build-system)
5045 (propagated-inputs
5046 `(("emacs-yasnippet" ,emacs-yasnippet)
5047 ("emacs-auctex" ,emacs-auctex)
5048 ("emacs-company" ,emacs-company)))
5049 (home-page "https://github.com/alexeyr/company-auctex/")
5050 (synopsis "Completion for @code{AUCTeX}")
5051 (description
5052 "This package provides a group of backends permitting auto-completion
5053 for @code{AUCTeX}.")
5054 (license license:gpl3+))))
5055
5056 (define-public emacs-mit-scheme-doc
5057 (package
5058 (name "emacs-mit-scheme-doc")
5059 (version "20140203")
5060 (source
5061 (origin
5062 (modules '((guix build utils)))
5063 (snippet
5064 ;; keep only file of interest
5065 '(begin
5066 (for-each delete-file '("dot-emacs.el" "Makefile"))
5067 (install-file "6.945-config/mit-scheme-doc.el" ".")
5068 (delete-file-recursively "6.945-config")
5069 #t))
5070 (file-name (string-append name "-" version ".tar.bz2"))
5071 (method url-fetch)
5072 (uri (string-append "http://groups.csail.mit.edu/mac/users/gjs/"
5073 "6.945/dont-panic/emacs-basic-config.tar.bz2"))
5074 (sha256
5075 (base32
5076 "0dqidg2bd66pawqfarvwca93w5gqf9mikn1k2a2rmd9ymfjpziq1"))))
5077 (build-system emacs-build-system)
5078 (inputs `(("mit-scheme" ,mit-scheme)))
5079 (arguments
5080 `(#:phases
5081 (modify-phases %standard-phases
5082 (add-after 'unpack 'configure-doc
5083 (lambda* (#:key inputs #:allow-other-keys)
5084 (let* ((mit-scheme-dir (assoc-ref inputs "mit-scheme"))
5085 (doc-dir (string-append mit-scheme-dir "/share/doc/"
5086 "mit-scheme-"
5087 ,(package-version mit-scheme))))
5088 (substitute* "mit-scheme-doc.el"
5089 (("http://www\\.gnu\\.org/software/mit-scheme/documentation/mit-scheme-ref/")
5090 (string-append "file:" doc-dir "/mit-scheme-ref/")))))))))
5091 (home-page "https://groups.csail.mit.edu/mac/users/gjs/6.945/dont-panic/")
5092 (synopsis "MIT-Scheme documentation lookup for Emacs")
5093 (description
5094 "This package provides a set of Emacs functions to search definitions of
5095 identifiers in the MIT-Scheme documentation.")
5096 (license license:gpl2+)))
5097
5098 (define-public emacs-constants
5099 (package
5100 (name "emacs-constants")
5101 (version "2.6")
5102 (home-page "https://staff.fnwi.uva.nl/c.dominik/Tools/constants")
5103 (source
5104 (origin
5105 (method git-fetch)
5106 (uri (git-reference
5107 (url "https://github.com/fedeinthemix/emacs-constants.git")
5108 (commit (string-append "v" version))))
5109 (file-name (git-file-name name version))
5110 (sha256
5111 (base32 "0f5sh6b45a8p9kancjp9jk44ws8ww6x50a0i6zgyyvr7dbvii1a0"))))
5112 (build-system emacs-build-system)
5113 (synopsis "Enter definition of constants into an Emacs buffer")
5114 (description
5115 "This package provides functions for inserting the definition of natural
5116 constants and units into an Emacs buffer.")
5117 (license license:gpl2+)))
5118
5119 (define-public emacs-tagedit
5120 (package
5121 (name "emacs-tagedit")
5122 (version "1.4.0")
5123 (source
5124 (origin
5125 (method git-fetch)
5126 (uri (git-reference
5127 (url "https://github.com/magnars/tagedit.git")
5128 (commit version)))
5129 (file-name (git-file-name name version))
5130 (sha256
5131 (base32 "0kq40g46s8kgiafrhdq99h79rz9h5fvgz59k7ralmf86bl4sdmdb"))))
5132 (build-system emacs-build-system)
5133 (propagated-inputs
5134 `(("emacs-s" ,emacs-s)
5135 ("emacs-dash" ,emacs-dash)))
5136 (home-page "https://github.com/magnars/tagedit")
5137 (synopsis "Some paredit-like features for html-mode")
5138 (description
5139 "This package provides a collection of paredit-like functions for editing
5140 in @code{html-mode}.")
5141 (license license:gpl3+)))
5142
5143 (define-public emacs-slime
5144 (package
5145 (name "emacs-slime")
5146 (version "2.24")
5147 (source
5148 (origin
5149 (method git-fetch)
5150 (uri (git-reference
5151 (url "https://github.com/slime/slime.git")
5152 (commit (string-append "v" version))))
5153 (file-name (git-file-name name version))
5154 (sha256
5155 (base32 "0js24x42m7b5iymb4rxz501dff19vav5pywnzv50b673rbkaaqvh"))))
5156 (build-system emacs-build-system)
5157 (native-inputs
5158 `(("texinfo" ,texinfo)))
5159 (arguments
5160 `(#:include '("\\.el$" "\\.lisp$" "\\.asd$" "contrib")
5161 #:exclude '("^slime-tests.el" "^contrib/test/"
5162 "^contrib/Makefile$" "^contrib/README.md$")
5163 #:phases
5164 (modify-phases %standard-phases
5165 (add-after 'unpack 'make-git-checkout-writable
5166 (lambda _
5167 (for-each make-file-writable (find-files "."))
5168 #t))
5169 (add-before 'install 'configure
5170 (lambda* _
5171 (emacs-substitute-variables "slime.el"
5172 ("inferior-lisp-program" "sbcl"))
5173 #t))
5174 (add-before 'install 'install-doc
5175 (lambda* (#:key outputs #:allow-other-keys)
5176 (let* ((out (assoc-ref outputs "out"))
5177 (info-dir (string-append out "/share/info"))
5178 (doc-dir (string-append out "/share/doc/"
5179 ,name "-" ,version))
5180 (doc-files '("doc/slime-refcard.pdf"
5181 "README.md" "NEWS" "PROBLEMS"
5182 "CONTRIBUTING.md")))
5183 (with-directory-excursion "doc"
5184 (substitute* "Makefile"
5185 (("infodir=/usr/local/info")
5186 (string-append "infodir=" info-dir)))
5187 (invoke "make" "html/index.html")
5188 (invoke "make" "slime.info")
5189 (install-file "slime.info" info-dir)
5190 (copy-recursively "html" (string-append doc-dir "/html")))
5191 (for-each (lambda (f)
5192 (install-file f doc-dir)
5193 (delete-file f))
5194 doc-files)
5195 (delete-file-recursively "doc")
5196 #t))))))
5197 (home-page "https://github.com/slime/slime")
5198 (synopsis "Superior Lisp Interaction Mode for Emacs")
5199 (description
5200 "SLIME extends Emacs with support for interactive programming in
5201 Common Lisp. The features are centered around @command{slime-mode},
5202 an Emacs minor mode that complements the standard @command{lisp-mode}.
5203 While lisp-mode supports editing Lisp source files, @command{slime-mode}
5204 adds support for interacting with a running Common Lisp process
5205 for compilation, debugging, documentation lookup, and so on.")
5206 (license (list license:gpl2+ license:public-domain))))
5207
5208 (define-public emacs-popup
5209 (package
5210 (name "emacs-popup")
5211 (version "0.5.3")
5212 (source
5213 (origin
5214 (method git-fetch)
5215 (uri (git-reference
5216 (url "https://github.com/auto-complete/popup-el.git")
5217 (commit (string-append "v" version))))
5218 (file-name (git-file-name name version))
5219 (sha256
5220 (base32 "1y538siabcf1n00wr4iz5gbxfndw661kx2mn9w1g4lg7yi4n0h0h"))))
5221 (build-system emacs-build-system)
5222 (home-page "https://github.com/auto-complete/popup-el")
5223 (synopsis "Visual Popup User Interface for Emacs")
5224 (description
5225 "Popup.el is a visual popup user interface library for Emacs.
5226 This provides a basic API and common UI widgets such as popup tooltips
5227 and popup menus.")
5228 (license license:gpl3+)))
5229
5230 (define-public emacs-python-environment
5231 (package
5232 (name "emacs-python-environment")
5233 (version "0.0.2")
5234 (source
5235 (origin
5236 (method git-fetch)
5237 (uri (git-reference
5238 (url "https://github.com/tkf/emacs-python-environment/")
5239 (commit version)))
5240 (file-name (git-file-name name version))
5241 (sha256
5242 (base32 "0q6bib9nr6xiq6npzbngyfcjk87yyvwzq1zirr3z1h5wadm34lsk"))))
5243 (build-system emacs-build-system)
5244 (propagated-inputs
5245 `(("emacs-deferred" ,emacs-deferred)))
5246 (home-page "https://github.com/tkf/emacs-python-environment")
5247 (synopsis "Provides a @code{virtualenv} API in Emacs Lisp")
5248 (description
5249 "This package permits automated installation of tools written in Python.")
5250 (license license:gpl3+)))
5251
5252 (define-public emacs-jedi
5253 (package
5254 (name "emacs-jedi")
5255 (version "0.2.8")
5256 (source (origin
5257 (method git-fetch)
5258 (uri (git-reference
5259 (url "https://github.com/tkf/emacs-jedi/")
5260 (commit (string-append "v" version))))
5261 (file-name (git-file-name name version))
5262 (sha256
5263 (base32
5264 "1bckxppfzd5gwn0aw4h86igb7igal9axqncq7j8zmflg7zppncf1"))))
5265 (build-system emacs-build-system)
5266 (native-inputs
5267 `(("emacs-mocker" ,emacs-mocker)))
5268 (propagated-inputs
5269 `(("emacs-auto-complete" ,emacs-auto-complete)
5270 ("emacs-python-environment" ,emacs-python-environment)
5271 ("emacs-epc" ,emacs-epc)))
5272 (home-page "https://github.com/tkf/emacs-jedi")
5273 (synopsis "Provides Python completion in Emacs")
5274 (description
5275 "This package provides completion in Python buffers and also helps find
5276 the locations of docstrings, arguments, and functions.")
5277 (license license:gpl3+)))
5278
5279 (define-public emacs-company-jedi
5280 (package
5281 (name "emacs-company-jedi")
5282 (version "0.04")
5283 (source (origin
5284 (method git-fetch)
5285 (uri (git-reference
5286 (url "https://github.com/syohex/emacs-company-jedi")
5287 (commit version)))
5288 (file-name (git-file-name name version))
5289 (sha256
5290 (base32
5291 "1ihqapp4dv92794rsgyq0rmhwika60cmradqd4bn9b72ss6plxs1"))))
5292 (build-system emacs-build-system)
5293 (propagated-inputs
5294 `(("emacs-jedi" ,emacs-jedi)
5295 ("emacs-company" ,emacs-company)))
5296 (home-page "https://github.com/syohex/emacs-company-jedi")
5297 (synopsis "Provides Python completion in @code{company-mode}")
5298 (description
5299 "This package provides a Company backend for Python.")
5300 (license license:gpl3+)))
5301
5302 (define-public emacs-puppet-mode
5303 (let ((commit "b3ed5057166a4f49dfa9be638523a348b55a2fd2")
5304 (revision "1"))
5305 (package
5306 (name "emacs-puppet-mode")
5307 ;; The last release, 0.3 was several years ago, and there have been many
5308 ;; commits since
5309 (version (git-version "0.3" revision commit))
5310 (source
5311 (origin
5312 (method url-fetch)
5313 (uri (string-append
5314 "https://raw.githubusercontent.com/voxpupuli/puppet-mode/"
5315 commit "/puppet-mode.el"))
5316 (sha256
5317 (base32
5318 "1indycxawsl0p2aqqg754f6735q3cmah9vd886rpn0ncc3ipi1xm"))))
5319 (build-system emacs-build-system)
5320 (home-page "https://github.com/voxpupuli/puppet-mode")
5321 (synopsis "Emacs major mode for the Puppet configuration language")
5322 (description
5323 "This package provides support for the Puppet configuration language,
5324 including syntax highlighting, indentation of expressions and statements,
5325 linting of manifests and integration with Puppet Debugger.")
5326 ;; Also incorporates work covered by the Apache License, Version 2.0
5327 (license license:gpl3+))))
5328
5329 (define-public emacs-god-mode
5330 (package
5331 (name "emacs-god-mode")
5332 (version "2.17.0")
5333 (source
5334 (origin
5335 (method git-fetch)
5336 (uri (git-reference
5337 (url "https://github.com/chrisdone/god-mode.git")
5338 (commit version)))
5339 (file-name (git-file-name name version))
5340 (sha256
5341 (base32
5342 "1d2nrj35fzhnycchi0b7m5mbk5fyq7bgpbkkvc5xzqafclrsnapi"))))
5343 (build-system emacs-build-system)
5344 (home-page "https://github.com/chrisdone/god-mode")
5345 (synopsis "Minor mode for entering commands without modifier keys")
5346 (description
5347 "This package provides a global minor mode for entering Emacs commands
5348 without modifier keys. It's similar to Vim's separation of commands and
5349 insertion mode. When enabled all keys are implicitly prefixed with
5350 @samp{C-} (among other helpful shortcuts).")
5351 (license license:gpl3+)))
5352
5353 (define-public emacs-jinja2-mode
5354 (package
5355 (name "emacs-jinja2-mode")
5356 (version "0.2")
5357 (source
5358 (origin
5359 (method git-fetch)
5360 (uri (git-reference
5361 (url "https://github.com/paradoxxxzero/jinja2-mode.git")
5362 (commit (string-append "v" version))))
5363 (file-name (git-file-name name version))
5364 (sha256
5365 (base32 "0l26wcy496k6xk7q5sf905xir0p73ziy6c44is77854lv3y0z381"))))
5366 (build-system emacs-build-system)
5367 (home-page "https://github.com/paradoxxxzero/jinja2-mode")
5368 (synopsis "Major mode for jinja2")
5369 (description
5370 "Emacs major mode for jinja2 with: syntax highlighting,
5371 sgml/html integration, and indentation (working with sgml).")
5372 (license license:gpl3+)))
5373
5374 (define-public emacs-company-cabal
5375 ;; The latest version is 0.3.0, but no release has been provided after 0.2.1.
5376 (let ((commit "62112a7259e24bd6c08885629a185afe512b7d3d")
5377 (revision "1"))
5378 (package
5379 (name "emacs-company-cabal")
5380 (version (git-version "0.3.0" revision commit))
5381 (source (origin
5382 (method git-fetch)
5383 (uri (git-reference
5384 (url "https://github.com/iquiw/company-cabal/")
5385 (commit commit)))
5386 (file-name (git-file-name name version))
5387 (sha256
5388 (base32
5389 "1gf45xwjzdm8i4q6c6khk4dbg1mmp2r0awz2sjr4dcr2dbd1n7mg"))))
5390 (build-system emacs-build-system)
5391 (propagated-inputs
5392 `(("emacs-company" ,emacs-company)))
5393 (arguments
5394 `(#:include (cons "^tools\\/" %default-include)))
5395 (home-page "https://github.com/iquiw/company-cabal/")
5396 (synopsis "Company completion for Haskell Cabal files")
5397 (description
5398 "This package allows for completion of field names, section names,
5399 field values, and more within @code{haskell-cabal-mode}.")
5400 (license license:gpl3+))))
5401
5402 (define-public emacs-rfcview
5403 (package
5404 (name "emacs-rfcview")
5405 (version "0.13")
5406 (home-page "http://www.loveshack.ukfsn.org/emacs")
5407 (source (origin
5408 (method url-fetch)
5409 (uri "http://www.loveshack.ukfsn.org/emacs/rfcview.el")
5410 (sha256
5411 (base32
5412 "0ympj5rxig383zl2jf0pzdsa80nnq0dpvjiriq0ivfi98fj7kxbz"))))
5413 (build-system emacs-build-system)
5414 (synopsis "Prettify Request for Comments (RFC) documents")
5415 (description "The Internet Engineering Task Force (IETF) and the Internet
5416 Society (ISOC) publish various Internet-related protocols and specifications
5417 as \"Request for Comments\" (RFC) documents and Internet Standard (STD)
5418 documents. RFCs and STDs are published in a simple text form. This package
5419 provides an Emacs major mode, rfcview-mode, which makes it more pleasant to
5420 read these documents in Emacs. It prettifies the text and adds
5421 hyperlinks/menus for easier navigation. It also provides functions for
5422 browsing the index of RFC documents and fetching them from remote servers or
5423 local directories.")
5424 (license license:gpl3+)))
5425
5426 (define-public emacs-ffap-rfc-space
5427 (package
5428 (name "emacs-ffap-rfc-space")
5429 (version "12")
5430 (home-page "https://user42.tuxfamily.org/ffap-rfc-space/index.html")
5431 (source (origin
5432 (method url-fetch)
5433 (uri "http://download.tuxfamily.org/user42/ffap-rfc-space.el")
5434 (sha256
5435 (base32
5436 "1iv61dv57a73mdps7rn6zmgz7nqh14v0ninidyrasy45b1nv6gck"))))
5437 (build-system emacs-build-system)
5438 (synopsis "Make ffap recognize an RFC with a space before its number")
5439 (description "The Internet Engineering Task Force (IETF) and the
5440 Internet Society (ISOC) publish various Internet-related protocols and
5441 specifications as \"Request for Comments\" (RFC) documents. The
5442 built-in Emacs module \"ffap\" (Find File at Point) has the ability to
5443 recognize names at point which look like \"RFC1234\" and \"RFC-1234\"
5444 and load the appropriate RFC from a remote server. However, it fails
5445 to recognize a name like \"RFC 1234\". This package enhances ffap so
5446 that it correctly finds RFCs even when a space appears before the
5447 number.")
5448 (license license:gpl3+)))
5449
5450 (define-public emacs-feature-mode
5451 (let ((version "20190801")
5452 (revision "1")
5453 (commit "11ae1671629bfedaa553c7b819676d64eb320992"))
5454 (package
5455 (name "emacs-feature-mode")
5456 (version (git-version version revision commit))
5457 (source (origin
5458 (method git-fetch)
5459 (uri (git-reference
5460 (url "https://github.com/michaelklishin/cucumber.el.git")
5461 (commit commit)))
5462 (file-name (git-file-name name version))
5463 (sha256
5464 (base32
5465 "0yd4gkxz9xcbgibfgr8apsid3f83nmg5jgqk5nql0linj5gymc28"))))
5466 (build-system emacs-build-system)
5467 (arguments
5468 `(#:include (cons* "^features\\/" "snippets\\/" "^support\\/"
5469 %default-include)))
5470 (home-page "https://github.com/michaelklishin/cucumber.el/")
5471 (synopsis "Emacs mode for editing Gherkin plain text user stories")
5472 (description "Major mode for editing Gherkin (popularized by the
5473 Cucumber tool) user stories. Also known by the name @code{cucumber.el}.")
5474 (license license:gpl2+))))
5475
5476 (define-public emacs-org-bullets
5477 (package
5478 (name "emacs-org-bullets")
5479 (version "0.2.4")
5480 (source
5481 (origin
5482 (method git-fetch)
5483 (uri (git-reference
5484 (url "https://github.com/sabof/org-bullets.git")
5485 (commit version)))
5486 (file-name (git-file-name name version))
5487 (sha256
5488 (base32 "10nr4sjffnqbllv6gmak6pviyynrb7pi5nvrq331h5alm3xcpq0w"))))
5489 (build-system emacs-build-system)
5490 (home-page "https://github.com/sabof/org-bullets")
5491 (synopsis "Show bullets in org-mode as UTF-8 characters")
5492 (description
5493 "This package provides an Emacs minor mode causing bullets in
5494 @code{org-mode} to be rendered as UTF-8 characters.")
5495 (license license:gpl3+)))
5496
5497 (define-public emacs-org-superstar
5498 (package
5499 (name "emacs-org-superstar")
5500 (version "1.2.1")
5501 (source
5502 (origin
5503 (method git-fetch)
5504 (uri (git-reference
5505 (url "https://github.com/integral-dw/org-superstar-mode.git")
5506 (commit (string-append "v" version))))
5507 (file-name (git-file-name name version))
5508 (sha256
5509 (base32 "14w06v76xi4f6hpq6xzicrjjv0b802g5zc9as4mpimfy5gx2xpm0"))))
5510 (build-system emacs-build-system)
5511 (propagated-inputs
5512 `(("emacs-org" ,emacs-org)))
5513 (home-page "https://github.com/integral-dw/org-superstar-mode")
5514 (synopsis "Prettify headings and plain lists in Org mode")
5515 (description "This package prettifies headings and plain lists in
5516 Org mode. It is a direct descendant of @code{org-bullets}, with most
5517 of the code base completely rewritten.
5518
5519 Currently, this package prettifies Org heading lines by:
5520 @itemize
5521 @item replacing trailing bullets by UTF-8 bullets,
5522 @item hiding leading stars, customizing their look or removing them from vision,
5523 @item applying a custom face to the header bullet,
5524 @item applying a custom face to the leading bullets,
5525 @item using double-bullets for inline tasks,
5526 @item (optional) using special bullets for TODO keywords.
5527 @end itemize
5528
5529 It also prettifies Org plain list bullets by:
5530 @itemize
5531 @item replacing each bullet type (*, + and -) with UTF-8 bullets,
5532 @item applying a custom face to item bullets.
5533 @end itemize
5534
5535 Features degrade gracefully when viewed from terminal.")
5536 (license license:gpl3+)))
5537
5538 (define-public emacs-org-pomodoro
5539 ;; Last release version was from 2016.
5540 (let ((commit "aa07c11318f91219336197e62c47bc7a3d090479")
5541 (revision "1"))
5542 (package
5543 (name "emacs-org-pomodoro")
5544 (version (git-version "2.1.0" revision commit))
5545 (source
5546 (origin
5547 (method git-fetch)
5548 (uri (git-reference
5549 (url "https://github.com/marcinkoziej/org-pomodoro.git")
5550 (commit commit)))
5551 (file-name (git-file-name name version))
5552 (sha256
5553 (base32 "0nbprh2nhnmb7ngp9ndr6zr37ashcsvpi5slv7a37x1dl7j6w1k4"))))
5554 (build-system emacs-build-system)
5555 (propagated-inputs
5556 `(("emacs-alert" ,emacs-alert)))
5557 (arguments
5558 `(#:include (cons "^resources\\/" %default-include)
5559 #:tests? #t
5560 #:test-command '("emacs" "--batch"
5561 "-l" "org-pomodoro-tests.el"
5562 "-f" "ert-run-tests-batch-and-exit")
5563 #:phases
5564 (modify-phases %standard-phases
5565 (add-before 'check 'make-tests-writable
5566 (lambda _
5567 (make-file-writable "org-pomodoro-tests.el")
5568 #t))
5569 (add-before 'check 'add-require
5570 (lambda _
5571 (emacs-batch-edit-file "org-pomodoro-tests.el"
5572 `(progn (progn (goto-char (point-min))
5573 (re-search-forward
5574 "ert-deftest")
5575 (beginning-of-line)
5576 (forward-line -1)
5577 (insert "(require 'org-pomodoro)"))
5578 (basic-save-buffer)))
5579 #t)))))
5580 (home-page "https://github.com/marcinkoziej/org-pomodoro")
5581 (synopsis "Pomodoro technique for org-mode")
5582 (description "@code{emacs-org-pomodoro} adds very basic support for
5583 Pomodoro technique in Emacs org-mode.
5584
5585 Run @code{M-x org-pomodoro} for the task at point or select one of the
5586 last tasks that you clocked time for. Each clocked-in pomodoro starts
5587 a timer of 25 minutes and after each pomodoro a break timer of 5
5588 minutes is started automatically. Every 4 breaks a long break is
5589 started with 20 minutes. All values are customizable.")
5590 (license license:gpl3+))))
5591
5592 (define-public emacs-org-sidebar
5593 (package
5594 (name "emacs-org-sidebar")
5595 (version "0.2")
5596 (source
5597 (origin
5598 (method git-fetch)
5599 (uri (git-reference
5600 (url "https://github.com/alphapapa/org-sidebar.git")
5601 (commit version)))
5602 (file-name (git-file-name name version))
5603 (sha256
5604 (base32 "106h06vjfbqfj761vbxwymd6612ds8c6fk053yzgbrqzm3hn2c03"))))
5605 (build-system emacs-build-system)
5606 (propagated-inputs
5607 `(("emacs-dash" ,emacs-dash)
5608 ("emacs-org-super-agenda" ,emacs-org-super-agenda)
5609 ("emacs-org" ,emacs-org)
5610 ("emacs-org-ql" ,emacs-org-ql)
5611 ("emacs-s" ,emacs-s)))
5612 (home-page "https://github.com/alphapapa/org-sidebar")
5613 (synopsis "Helpful sidebar for Org buffers")
5614 (description "This package provides a sidebar for Org buffers. At the
5615 top is a chronological list of scheduled and deadlined tasks in the current
5616 buffer (similar to the Org agenda ,but without all its features), and below
5617 that is a list of all other non-done to-do items. If the buffer is narrowed,
5618 the sidebar only shows items in the narrowed portion; this allows seeing an
5619 overview of tasks in a subtree.")
5620 (license license:gpl3+)))
5621
5622 (define-public emacs-org-trello
5623 (package
5624 (name "emacs-org-trello")
5625 (version "0.8.1")
5626 (source
5627 (origin
5628 (method git-fetch)
5629 (uri (git-reference
5630 (url "https://github.com/org-trello/org-trello.git")
5631 (commit version)))
5632 (file-name (git-file-name name version))
5633 (sha256
5634 (base32
5635 "02gx3kv4mkij69ln8x8wf9n28x17pbb4kv85v78d3lxph7ykqimc"))))
5636 (build-system emacs-build-system)
5637 (propagated-inputs
5638 `(("emacs-dash" ,emacs-dash)
5639 ("emacs-deferred" ,emacs-deferred)
5640 ("emacs-f" ,emacs-f)
5641 ("emacs-helm" ,emacs-helm)
5642 ("emacs-request" ,emacs-request)
5643 ("emacs-s" ,emacs-s)))
5644 (home-page "https://org-trello.github.io")
5645 (synopsis "Emacs minor mode for interacting with Trello")
5646 (description "This package provides an Emacs minor mode to extend
5647 @code{org-mode} with Trello abilities. Trello is an online project
5648 organizer.")
5649 (license license:gpl3+)))
5650
5651 (define-public emacs-org-tanglesync
5652 (let ((commit "d99181f173b4e55b4e835d99fcd415e62beb047f")
5653 (revision "2"))
5654 (package
5655 (name "emacs-org-tanglesync")
5656 (version (git-version "0.6" revision commit))
5657 (source
5658 (origin
5659 (method git-fetch)
5660 (uri (git-reference
5661 (url "https://github.com/mtekman/org-tanglesync.el.git")
5662 (commit commit)))
5663 (file-name (git-file-name name version))
5664 (sha256
5665 (base32 "0x94gy1bgfd1f3p9w2bfrqj11bwy9ql0cpi1gw6srpj7kykx0lml"))))
5666 (build-system emacs-build-system)
5667 (propagated-inputs
5668 `(("emacs-org" ,emacs-org)))
5669 (home-page "https://github.com/mtekman/org-tanglesync.el")
5670 (synopsis "Sync Org source blocks with tangled external files")
5671 (description "This package automatically pulls changes from source code
5672 to their corresponding tangled blocks.")
5673 (license license:gpl3+))))
5674
5675 (define-public emacs-company-flow
5676 (let ((commit "76ef585c70d2a3206c2eadf24ba61e59124c3a16")
5677 (revision "1"))
5678 (package
5679 (name "emacs-company-flow")
5680 (version (git-version "0.1.0" revision commit))
5681 (source (origin
5682 (method git-fetch)
5683 (uri (git-reference
5684 (url "https://github.com/aaronjensen/company-flow/")
5685 (commit commit)))
5686 (file-name (git-file-name name version))
5687 (sha256
5688 (base32
5689 "0zs9cblnbkxa0dxw4lyllmybqizxcdx96gv8jlhx20nrjpi78piw"))))
5690 (build-system emacs-build-system)
5691 (propagated-inputs
5692 `(("emacs-company" ,emacs-company)
5693 ("emacs-dash" ,emacs-dash)))
5694 (home-page "https://github.com/aaronjensen/company-flow/")
5695 (synopsis "Flow backend for @code{company-mode}")
5696 (description
5697 "This package provides completion for JavaScript files utilizing Flow.")
5698 (license license:gpl3+))))
5699
5700 (define-public emacs-atom-one-dark-theme
5701 (let ((commit "1f1185bf667a38d3d0d180ce85fd4c131818aae2")
5702 (revision "0"))
5703 (package
5704 (name "emacs-atom-one-dark-theme")
5705 (version (git-version "0.4.0" revision commit))
5706 (source (origin
5707 (method git-fetch)
5708 (uri (git-reference
5709 (url "https://github.com/jonathanchu/atom-one-dark-theme.git")
5710 (commit commit)))
5711 (sha256
5712 (base32
5713 "1alma16hg3mfjly8a9s3mrswkjjx4lrpdnf43869hn2ibkn7zx9z"))
5714 (file-name (git-file-name name version))))
5715 (build-system emacs-build-system)
5716 (home-page "https://github.com/jonathanchu/atom-one-dark-theme")
5717 (synopsis "Atom One Dark color theme for Emacs")
5718 (description "An Emacs port of the Atom One Dark theme from Atom.io.")
5719 (license license:gpl3+))))
5720
5721 (define-public emacs-zenburn-theme
5722 (package
5723 (name "emacs-zenburn-theme")
5724 (version "2.6")
5725 (source
5726 (origin
5727 (method git-fetch)
5728 (uri (git-reference
5729 (url "https://github.com/bbatsov/zenburn-emacs.git")
5730 (commit (string-append "v" version))))
5731 (file-name (git-file-name name version))
5732 (sha256
5733 (base32 "1n87r5hs7h5r8dgfid66skpzcypl9hssr9m3npp916g6jfsi782f"))))
5734 (build-system emacs-build-system)
5735 (home-page "https://github.com/bbatsov/zenburn-emacs")
5736 (synopsis "Low contrast color theme for Emacs")
5737 (description
5738 "Zenburn theme is a port of the popular Vim Zenburn theme for Emacs.
5739 It is built on top of the custom theme support in Emacs 24 or later.")
5740 (license license:gpl3+)))
5741
5742 (define-public emacs-moe-theme-el
5743 (let ((commit "6e086d855d6bb446bbd1090742815589a81a915f")
5744 (version "1.0")
5745 (revision "1"))
5746 (package
5747 (name "emacs-moe-theme-el")
5748 (version (git-version version revision commit))
5749 (source
5750 (origin
5751 (method git-fetch)
5752 (uri (git-reference
5753 (url "https://github.com/kuanyui/moe-theme.el")
5754 (commit commit)))
5755 (file-name (git-file-name name version))
5756 (sha256
5757 (base32 "0xj4wfd7h4jqnr193pizm9frf6lmwjr0dsdv2l9mqh9k691z1dnc"))))
5758 (build-system emacs-build-system)
5759 (home-page "https://github.com/kuanyui/moe-theme.el")
5760 (synopsis "Anime-inspired color themes")
5761 (description
5762 "This package provides vibrant color schemes with light and dark
5763 variants.")
5764 (license license:gpl3+))))
5765
5766 (define-public emacs-solarized-theme
5767 (package
5768 (name "emacs-solarized-theme")
5769 (version "1.3.1")
5770 (source
5771 (origin
5772 (method git-fetch)
5773 (uri (git-reference
5774 (url "https://github.com/bbatsov/solarized-emacs/")
5775 (commit (string-append "v" version))))
5776 (file-name (git-file-name name version))
5777 (sha256
5778 (base32 "15ql8xcixgm7mbs7rsbybwszanqibq057j5b5ds89a31dw7zxf1g"))))
5779 (build-system emacs-build-system)
5780 (propagated-inputs
5781 `(("emacs-dash" ,emacs-dash)))
5782 (home-page "https://github.com/bbatsov/solarized-emacs")
5783 (synopsis "Port of the Solarized theme for Emacs")
5784 (description
5785 "Solarized for Emacs is a port of the Solarized theme for Vim. This
5786 package provides a light and a dark variant.")
5787 (license license:gpl3+)))
5788
5789 (define-public emacs-poet-theme
5790 (let ((commit "d84f7b259cc9b6ff8d442cf4c38bd6c7065ff8f4")
5791 (revision "0"))
5792 (package
5793 (name "emacs-poet-theme")
5794 (version (git-version "0" revision commit))
5795 (source
5796 (origin
5797 (method git-fetch)
5798 (uri (git-reference
5799 (url "https://github.com/kunalb/poet.git")
5800 (commit commit)))
5801 (file-name (git-file-name name version))
5802 (sha256
5803 (base32
5804 "0a84jdaj619mb59a46dmkk2sfs42rylqk9ryl1drgs8d3lia79mz"))))
5805 (build-system emacs-build-system)
5806 (home-page "https://github.com/kunalb/poet/")
5807 (synopsis "Emacs theme for prose")
5808 (description
5809 "Emacs has very good support for multiple fonts in a single file. Poet
5810 uses this support to make it much more convenient to write prose within Emacs,
5811 with particular attention paid to @code{org-mode} and @code{markdown-mode}.
5812 Code blocks, tables, etc are formatted in monospace text with the appropriate
5813 backgrounds.")
5814 (license license:expat))))
5815
5816 (define-public emacs-ahungry-theme
5817 (package
5818 (name "emacs-ahungry-theme")
5819 (version "1.10.0")
5820 (source
5821 (origin (method url-fetch)
5822 (uri (string-append "https://elpa.gnu.org/packages/ahungry-theme-"
5823 version ".tar"))
5824 (sha256
5825 (base32
5826 "14q5yw56n82qph09bk7wmj5b1snhh9w0nk5s1l7yn9ldg71xq6pm"))))
5827 (build-system emacs-build-system)
5828 (home-page "https://github.com/ahungry/color-theme-ahungry")
5829 (synopsis "Ahungry color theme for Emacs")
5830 (description "Ahungry theme for Emacs provides bright and bold colors.
5831 If you load it from a terminal, you will be able to make use of the
5832 transparent background. If you load it from a GUI, it will default to a
5833 dark background.")
5834 (license license:gpl3+)))
5835
5836 (define-public emacs-gruvbox-theme
5837 (package
5838 (name "emacs-gruvbox-theme")
5839 (version "1.28.0")
5840 (source (origin
5841 (method git-fetch)
5842 (uri (git-reference
5843 (url "https://github.com/greduan/emacs-theme-gruvbox.git")
5844 (commit version)))
5845 (file-name (git-file-name name version))
5846 (sha256
5847 (base32
5848 "00qq92gp1g55pzm97rh7k0dgxy44pxziridl8kqm4rbpi31r7k9p"))))
5849 (build-system emacs-build-system)
5850 (propagated-inputs
5851 `(("emacs-autothemer" ,emacs-autothemer)))
5852 (home-page "https://github.com/greduan/emacs-theme-gruvbox")
5853 (synopsis "Gruvbox is a retro groove color scheme ported from Vim")
5854 (description
5855 "Gruvbox is heavily inspired by badwolf, jellybeans and solarized.
5856
5857 Designed as a bright theme with pastel 'retro groove' colors and light/dark
5858 mode switching in the way of solarized. The main focus when developing gruvbox
5859 is to keep colors easily distinguishable, contrast enough and still pleasant
5860 for the eyes.")
5861 (license license:expat))) ; MIT license
5862
5863 (define-public emacs-spacegray-theme
5864 (let ((commit "9826265c2bceb2ebc1c5e16a45021da0253ace97")
5865 (revision "0"))
5866 (package
5867 (name "emacs-spacegray-theme")
5868 (version (git-version "0" revision commit))
5869 (source (origin
5870 (method git-fetch)
5871 (uri (git-reference
5872 (url "https://github.com/bruce/emacs-spacegray-theme.git")
5873 (commit commit)))
5874 (file-name (git-file-name name version))
5875 (sha256
5876 (base32
5877 "0aplwmm17ypbns5blc4rf5rr6dasj0zp5ibykpfl43fh4bd8z89n"))))
5878 (build-system emacs-build-system)
5879 (home-page "https://github.com/bruce/emacs-spacegray-theme")
5880 (synopsis "Port of Sublime Text's Spacegray theme for Emacs")
5881 (description
5882 "@code{spacegray-theme} is an Emacs port of the Spacegray theme from
5883 Sublime Text. It features a dark blue/gray background and soft blue, green,
5884 orange and red as accent colors.")
5885 (license license:expat)))) ; MIT license
5886
5887 (define-public emacs-2048-game
5888 (package
5889 (name "emacs-2048-game")
5890 (version "20151026.1233")
5891 (source
5892 (origin
5893 (method url-fetch)
5894 (uri (string-append "https://melpa.org/packages/2048-game-"
5895 version ".el"))
5896 (sha256
5897 (base32
5898 "0gy2pvz79whpavp4jmz8h9krzn7brmvv3diixi1d4w51pcdvaldd"))))
5899 (build-system emacs-build-system)
5900 (home-page "https://hg.sr.ht/~zck/game-2048")
5901 (synopsis "Implementation of the game 2048 in Emacs Lisp")
5902 (description
5903 "This program is an implementation of 2048 for Emacs.
5904 The goal of this game is to create a tile with value 2048. The size of the
5905 board and goal value can be customized.")
5906 (license license:gpl3+)))
5907
5908 (define-public emacs-4clojure
5909 ;; There is no release. Base version is extracted from Version keyword in
5910 ;; the main file.
5911 (let ((commit "4eccf8c7d4341a36c269451838114b27836699f9")
5912 (revision "1"))
5913 (package
5914 (name "emacs-4clojure")
5915 (version (git-version "0.2.1" revision commit))
5916 (source
5917 (origin
5918 (method git-fetch)
5919 (uri (git-reference
5920 (url "https://github.com/emacsorphanage/4clojure.git")
5921 (commit commit)))
5922 (file-name (git-file-name name version))
5923 (sha256
5924 (base32 "19x653lzc1dxil4ix257hciidbdmbhaxhs6qhlkwi9ygjrlrgvnk"))))
5925 (build-system emacs-build-system)
5926 (propagated-inputs
5927 `(("emacs-request" ,emacs-request)))
5928 (home-page "https://github.com/emacsorphanage/4clojure/")
5929 (synopsis "Open and evaluate 4clojure questions in Emacs")
5930 (description "Emacs 4clojure interacts with
5931 @url{http://www.4clojure.com, 4clojure} problems. You can open a specific
5932 question and move to the next or previous one. You can also verify your
5933 answers.")
5934 (license license:gpl3+))))
5935
5936 (define-public emacs-base16-theme
5937 (package
5938 (name "emacs-base16-theme")
5939 (version "2.2")
5940 (source
5941 (origin
5942 (method git-fetch)
5943 (uri (git-reference
5944 (url "https://github.com/belak/base16-emacs.git")
5945 (commit version)))
5946 (file-name (git-file-name name version))
5947 (sha256
5948 (base32 "01w89g413s1da6rf94y1xnhw79cjy2bqb01yfjs58cy492cm0vr6"))))
5949 (build-system emacs-build-system)
5950 (home-page "https://github.com/belak/base16-emacs")
5951 (synopsis "Base16 color themes for Emacs")
5952 (description
5953 "Base16 provides carefully chosen syntax highlighting and a default set
5954 of sixteen colors suitable for a wide range of applications. Base16 is not a
5955 single theme but a set of guidelines with numerous implementations.")
5956 (license license:expat)))
5957
5958 (define-public emacs-solaire-mode
5959 (package
5960 (name "emacs-solaire-mode")
5961 (version "1.0.9")
5962 (source
5963 (origin
5964 (method git-fetch)
5965 (uri (git-reference
5966 (url "https://github.com/hlissner/emacs-solaire-mode.git")
5967 (commit (string-append "v" version))))
5968 (file-name (git-file-name name version))
5969 (sha256
5970 (base32 "011m4r7s6i9lgjymh7jgq5jwwrpz4vmpvp3c8d4ix96v5hi04kzg"))))
5971 (build-system emacs-build-system)
5972 (home-page "https://github.com/hlissner/emacs-solaire-mode")
5973 (synopsis "Change background of file-visiting buffers in Emacs")
5974 (description
5975 "@code{solaire-mode} is inspired by editors which visually distinguish
5976 code-editing windows from sidebars, popups, terminals, ecetera. It changes the
5977 background of file-visiting buffers (and certain aspects of the UI) to make
5978 them easier to distinguish from other, less important buffers.")
5979 (license license:expat)))
5980
5981 (define-public emacs-prescient
5982 (package
5983 (name "emacs-prescient")
5984 (version "4.1")
5985 (source
5986 (origin
5987 (method git-fetch)
5988 (uri (git-reference
5989 (url "https://github.com/raxod502/prescient.el.git")
5990 (commit (string-append "v" version))))
5991 (file-name (git-file-name name version))
5992 (sha256
5993 (base32 "1rf5cz262hjpck7vpxg15bccdrwrmlhiyxc20liwcjb2ig36nis3"))))
5994 (build-system emacs-build-system)
5995 (propagated-inputs
5996 `(("emacs-company" ,emacs-company)
5997 ("emacs-ivy" ,emacs-ivy)
5998 ("emacs-selectrum" ,emacs-selectrum)))
5999 (home-page "https://github.com/raxod502/prescient.el/")
6000 (synopsis "Emacs library for sorting and filtering candidates")
6001 (description
6002 "Prescient is a library for sorting and filtering, as well as extensions
6003 for Ivy and Company that make use of the library.")
6004 (license license:expat)))
6005
6006 (define-public emacs-selectrum
6007 (package
6008 (name "emacs-selectrum")
6009 (version "1.0")
6010 (source
6011 (origin
6012 (method git-fetch)
6013 (uri (git-reference
6014 (url "https://github.com/raxod502/selectrum.git")
6015 (commit (string-append "v" version))))
6016 (file-name (git-file-name name version))
6017 (sha256
6018 (base32 "105zl102dwbzvk50xh6b824nq6p24kxhky18ghdnk5yi5sv620lm"))))
6019 (build-system emacs-build-system)
6020 (home-page "https://github.com/raxod502/selectrum/")
6021 (synopsis "Incremental narrowing in Emacs")
6022 (description "Selectrum is a solution for incremental narrowing in
6023 Emacs, replacing Helm, Ivy, and IDO. Its design philosophy is based
6024 on choosing the right abstractions and prioritizing consistency and
6025 predictability over special-cased improvements for particular cases.
6026 As such, Selectrum follows existing Emacs conventions where they exist
6027 and are reasonable, and it declines to implement features which have
6028 marginal benefit compared to the additional complexity of a new
6029 interface.")
6030 (license license:expat)))
6031
6032 (define-public emacs-smartparens
6033 (package
6034 (name "emacs-smartparens")
6035 (version "1.11.0")
6036 (source
6037 (origin
6038 (method git-fetch)
6039 (uri (git-reference
6040 (url "https://github.com/Fuco1/smartparens.git")
6041 (commit version)))
6042 (file-name (git-file-name name version))
6043 (sha256
6044 (base32 "0zij2f2rjjym98w68jkp10n1ckpfprlkk217c3fg16hz5nq4vnm6"))))
6045 (build-system emacs-build-system)
6046 (propagated-inputs
6047 `(("emacs-dash" ,emacs-dash)
6048 ("emacs-markdown-mode" ,emacs-markdown-mode)))
6049 (home-page "https://github.com/Fuco1/smartparens")
6050 (synopsis "Paredit-like insertion, wrapping and navigation with user
6051 defined pairs")
6052 (description
6053 "Smartparens is a minor mode for Emacs that deals with parens pairs
6054 and tries to be smart about it. It started as a unification effort to
6055 combine functionality of several existing packages in a single,
6056 compatible and extensible way to deal with parentheses, delimiters, tags
6057 and the like. Some of these packages include autopair, textmate,
6058 wrap-region, electric-pair-mode, paredit and others. With the basic
6059 features found in other packages it also brings many improvements as
6060 well as completely new features.")
6061 (license license:gpl3+)))
6062
6063 (define-public emacs-highlight-symbol
6064 ;; We prefer a more recent commit that provides an option to squelch
6065 ;; echo-area alerts that can drown out useful information like eldoc
6066 ;; messages.
6067 (let ((commit "7a789c779648c55b16e43278e51be5898c121b3a")
6068 (version "1.3")
6069 (revision "1"))
6070 (package
6071 (name "emacs-highlight-symbol")
6072 (version (git-version version revision commit))
6073 (source
6074 (origin
6075 (method git-fetch)
6076 (uri (git-reference
6077 (url "https://github.com/nschum/highlight-symbol.el.git")
6078 (commit commit)))
6079 (file-name (git-file-name name version))
6080 (sha256
6081 (base32 "19cgyk0sh8nsmf3jbi92i8qsdx4l4yilfq5jj9zfdbj9p5gvwx96"))))
6082 (build-system emacs-build-system)
6083 (home-page "https://nschum.de/src/emacs/highlight-symbol/")
6084 (synopsis "Automatic and manual symbol highlighting for Emacs")
6085 (description
6086 "Use @code{highlight-symbol} to toggle highlighting of the symbol at
6087 point throughout the current buffer. Use @code{highlight-symbol-mode} to keep
6088 the symbol at point highlighted.
6089
6090 The functions @code{highlight-symbol-next}, @code{highlight-symbol-prev},
6091 @code{highlight-symbol-next-in-defun} and
6092 @code{highlight-symbol-prev-in-defun} allow for cycling through the locations
6093 of any symbol at point. Use @code{highlight-symbol-nav-mode} to enable key
6094 bindings @code{M-p} and @code{M-p} for navigation. When
6095 @code{highlight-symbol-on-navigation-p} is set, highlighting is triggered
6096 regardless of @code{highlight-symbol-idle-delay}.
6097
6098 @code{highlight-symbol-query-replace} can be used to replace the symbol. ")
6099 (license license:gpl2+))))
6100
6101 (define-public emacs-symbol-overlay
6102 (let ((commit "e40a7c407f24158c45eaa5f54ed41f5e416a51dc")
6103 (revision "1"))
6104 (package
6105 (name "emacs-symbol-overlay")
6106 (version (git-version "4.1" revision commit))
6107 (source
6108 (origin
6109 (method git-fetch)
6110 (uri (git-reference
6111 (url "https://github.com/wolray/symbol-overlay.git")
6112 (commit commit)))
6113 (file-name (git-file-name name version))
6114 (sha256
6115 (base32 "0ibz3392d3jw1l8006h9kf8s7bg6vl7jc92bmqc031a433009ic7"))))
6116 (build-system emacs-build-system)
6117 (home-page "https://github.com/wolray/symbol-overlay")
6118 (synopsis "Highlight symbols and perform various search operations on them")
6119 (description
6120 "This package provides functions for highlighting and navigating
6121 between symbols.")
6122 (license license:gpl3+))))
6123
6124 (define-public emacs-hl-todo
6125 (package
6126 (name "emacs-hl-todo")
6127 (version "3.0.0")
6128 (source (origin
6129 (method git-fetch)
6130 (uri (git-reference
6131 (url "https://github.com/tarsius/hl-todo")
6132 (commit (string-append "v" version))))
6133 (file-name (git-file-name name version))
6134 (sha256
6135 (base32
6136 "07xcc04ivpl5sbgb55qz84mz6wa500h0awzw1zq1ba5mfjjq8hls"))))
6137 (build-system emacs-build-system)
6138 (home-page "https://github.com/tarsius/hl-todo")
6139 (synopsis "Emacs mode to highlight TODO and similar keywords")
6140 (description
6141 "This package provides an Emacs mode to highlight TODO and similar
6142 keywords in comments and strings. This package also provides commands for
6143 moving to the next or previous keyword and to invoke @code{occur} with a
6144 regexp that matches all known keywords.")
6145 (license license:gpl3+)))
6146
6147 (define-public emacs-perspective
6148 (package
6149 (name "emacs-perspective")
6150 (version "2.8")
6151 (source
6152 (origin
6153 (method git-fetch)
6154 (uri (git-reference
6155 (url "https://github.com/nex3/perspective-el.git")
6156 (commit version)))
6157 (file-name (git-file-name name version))
6158 (sha256
6159 (base32
6160 "1gdacw1gkng1dhm12lhfssmac0fijsh3wpbvcmsv2jz3gpnjin1g"))))
6161 (build-system emacs-build-system)
6162 (home-page "https://github.com/nex3/perspective-el")
6163 (synopsis "Switch between named \"perspectives\"")
6164 (description
6165 "This package provides tagged workspaces in Emacs, similar to workspaces in
6166 windows managers such as Awesome and XMonad. @code{perspective.el} provides
6167 multiple workspaces (or \"perspectives\") for each Emacs frame. Each
6168 perspective is composed of a window configuration and a set of buffers.
6169 Switching to a perspective activates its window configuration, and when in a
6170 perspective only its buffers are available by default.")
6171 ;; This package is released under the same license as Emacs (GPLv3+) or
6172 ;; the Expat license.
6173 (license license:gpl3+)))
6174
6175 (define-public emacs-persp-mode
6176 (package
6177 (name "emacs-persp-mode")
6178 (version "2.9.8")
6179 (source
6180 (origin
6181 (method git-fetch)
6182 (uri (git-reference
6183 (url "https://github.com/Bad-ptr/persp-mode.el.git")
6184 (commit (string-append "v" version))))
6185 (file-name (git-file-name name version))
6186 (sha256
6187 (base32
6188 "0b4y7a6j70s9lvr37riyy9k5kh3yvmx0m6nd9c0c8572ji4ij65g"))))
6189 (build-system emacs-build-system)
6190 (home-page "https://github.com/Bad-ptr/persp-mode.el")
6191 (synopsis "Switch between named \"perspectives\" shared among frames")
6192 (description
6193 "This package extends @code{perspective.el} to enable perspectives that
6194 can be saved to and restored from a file.")
6195 (license license:gpl2+)))
6196
6197 (define-public emacs-test-simple
6198 (package
6199 (name "emacs-test-simple")
6200 (version "1.3.0")
6201 (source
6202 (origin
6203 (method url-fetch)
6204 (uri (string-append "https://elpa.gnu.org/packages/test-simple-"
6205 version ".el"))
6206 (sha256
6207 (base32
6208 "1yd61jc9ds95a5n09052kwc5gasy57g4lxr0jsff040brlyi9czz"))))
6209 (build-system emacs-build-system)
6210 (home-page "https://github.com/rocky/emacs-test-simple")
6211 (synopsis "Simple unit test framework for Emacs Lisp")
6212 (description
6213 "Test Simple is a simple unit test framework for Emacs Lisp. It
6214 alleviates the need for context macros, enclosing specifications or required
6215 test tags. It supports both interactive and non-interactive use.")
6216 (license license:gpl3+)))
6217
6218 (define-public emacs-load-relative
6219 (package
6220 (name "emacs-load-relative")
6221 (version "1.3.1")
6222 (source
6223 (origin
6224 (method url-fetch)
6225 (uri (string-append "https://elpa.gnu.org/packages/load-relative-"
6226 version ".el"))
6227 (sha256
6228 (base32 "1m37scr82lqqy954fchjxrmdh4lngrl4d1yzxhp3yfjhsydizhrj"))))
6229 (build-system emacs-build-system)
6230 (home-page "https://github.com/rocky/emacs-load-relative")
6231 (synopsis "Emacs Lisp relative file loading related functions")
6232 (description
6233 "Provides functions which facilitate writing multi-file Emacs packages
6234 and running from the source tree without having to \"install\" code or fiddle
6235 with @{load-path}.
6236
6237 The main function, @code{load-relative}, loads an Emacs Lisp file relative to
6238 another (presumably currently running) Emacs Lisp file.")
6239 (license license:gpl3+)))
6240
6241 (define-public emacs-loc-changes
6242 (package
6243 (name "emacs-loc-changes")
6244 (version "1.2")
6245 (source
6246 (origin
6247 (method url-fetch)
6248 (uri (string-append "https://elpa.gnu.org/packages/loc-changes-"
6249 version ".el"))
6250 (sha256
6251 (base32
6252 "1x8fn8vqasayf1rb8a6nma9n6nbvkx60krmiahyb05vl5rrsw6r3"))))
6253 (build-system emacs-build-system)
6254 (home-page "https://github.com/rocky/emacs-loc-changes")
6255 (synopsis "Keeps track of positions even after buffer changes")
6256 (description
6257 "This Emacs package provides a mean to track important buffer positions
6258 after buffer changes.")
6259 (license license:gpl3+)))
6260
6261 (define-public emacs-realgud
6262 (package
6263 (name "emacs-realgud")
6264 (version "1.5.1")
6265 (source
6266 (origin
6267 (method git-fetch)
6268 (uri (git-reference
6269 (url "https://github.com/realgud/realgud/")
6270 (commit version)))
6271 (sha256
6272 (base32
6273 "1d3s23jk0i34wpyxfajydgyyvsxnpbqrfl0mgydsq7zw2c75ylnq"))
6274 (file-name (git-file-name name version))))
6275 (build-system emacs-build-system)
6276 (arguments
6277 `(#:tests? #t
6278 #:phases
6279 (modify-phases %standard-phases
6280 (add-after 'unpack 'fix-realgud:run-process-void-error
6281 ;; See: https://github.com/realgud/realgud/issues/269.
6282 (lambda _
6283 (substitute* '("realgud/debugger/gdb/gdb.el"
6284 "realgud/debugger/gub/gub.el")
6285 (("^\\(require 'load-relative\\).*" anchor)
6286 (string-append anchor
6287 "(require-relative-list \
6288 '(\"../../common/run\") \"realgud:\")\n")))
6289 #t))
6290 (add-after 'unpack 'fix-autogen-script
6291 (lambda _
6292 (substitute* "autogen.sh"
6293 (("./configure") "sh configure"))
6294 #t))
6295 (add-after 'fix-autogen-script 'autogen
6296 (lambda _
6297 (setenv "CONFIG_SHELL" "sh")
6298 (invoke "sh" "autogen.sh")))
6299 (add-after 'fix-autogen-script 'set-home
6300 (lambda _
6301 (setenv "HOME" (getenv "TMPDIR"))
6302 #t))
6303 (add-before 'patch-el-files 'remove-realgud-pkg.el
6304 (lambda _
6305 ;; FIXME: `patch-el-files' crashes on this file with error:
6306 ;; unable to locate "bashdb".
6307 (delete-file "./test/test-regexp-bashdb.el")
6308 #t)))
6309 #:include (cons* ".*\\.el$" %default-include)))
6310 (native-inputs
6311 `(("autoconf" ,autoconf)
6312 ("automake" ,automake)
6313 ("emacs-test-simple" ,emacs-test-simple)))
6314 (propagated-inputs
6315 `(("emacs-load-relative" ,emacs-load-relative)
6316 ("emacs-loc-changes" ,emacs-loc-changes)))
6317 (home-page "https://github.com/realgud/realgud/")
6318 (synopsis
6319 "Modular front-end for interacting with external debuggers")
6320 (description
6321 "RealGUD is a modular, extensible GNU Emacs front-end for interacting
6322 with external debuggers. It integrates various debuggers such as gdb, pdb,
6323 ipdb, jdb, lldb, bashdb, zshdb, etc. and allows to visually step code in the
6324 sources. Unlike GUD, it also supports running multiple debug sessions in
6325 parallel.")
6326 (license license:gpl3+)))
6327
6328 (define-public emacs-request
6329 (package
6330 (name "emacs-request")
6331 (version "0.3.2")
6332 (source (origin
6333 (method git-fetch)
6334 (uri (git-reference
6335 (url "https://github.com/tkf/emacs-request.git")
6336 (commit (string-append "v" version))))
6337 (file-name (git-file-name name version))
6338 (sha256
6339 (base32
6340 "1djywhvvb6kwdj0nd3axjvb7k2g06dzkc6hsf29w9rsk96vr8ryl"))))
6341 (build-system emacs-build-system)
6342 (arguments
6343 `(#:tests? #f)) ; requires network access.
6344 (propagated-inputs
6345 `(("emacs-deferred" ,emacs-deferred)))
6346 (home-page "https://github.com/tkf/emacs-request")
6347 (synopsis "Package for speaking HTTP in Emacs Lisp")
6348 (description "This package provides a HTTP request library with multiple
6349 backends. It supports url.el which is shipped with Emacs and the curl command
6350 line program.")
6351 (license license:gpl3+)))
6352
6353 (define-public emacs-rudel
6354 (package
6355 (name "emacs-rudel")
6356 (version "0.3.1")
6357 (source
6358 (origin
6359 (method url-fetch)
6360 (uri (string-append "https://elpa.gnu.org/packages/rudel-"
6361 version ".tar"))
6362 (sha256
6363 (base32
6364 "0glqa68g509p0s2vcc0i8kzlddnc9brd9jqhnm5rzxz4i050cvnz"))))
6365 (build-system emacs-build-system)
6366 (home-page "http://rudel.sourceforge.net/")
6367 (synopsis "Collaborative editing framework")
6368 (description
6369 "Rudel is a collaborative editing environment for GNU Emacs. Its purpose
6370 is to share buffers with other users in order to edit the contents of those
6371 buffers collaboratively. Rudel supports multiple backends to enable
6372 communication with other collaborative editors using different protocols,
6373 though currently Obby (for use with the Gobby editor) is the only
6374 fully-functional one.")
6375 (license license:gpl3+)))
6376
6377 (define-public emacs-hydra
6378 (package
6379 (name "emacs-hydra")
6380 (version "0.15.0")
6381 (source
6382 (origin
6383 (method git-fetch)
6384 (uri (git-reference
6385 (url "https://github.com/abo-abo/hydra")
6386 (commit version)))
6387 (file-name (git-file-name name version))
6388 (sha256
6389 (base32
6390 "0fapvhmhgc9kppf3bvkgry0cd7gyilg7sfvlscfrfjxpx4xvwsfy"))))
6391 (build-system emacs-build-system)
6392 (arguments
6393 `(#:tests? #t
6394 #:test-command '("make" "test")))
6395 (home-page "https://github.com/abo-abo/hydra")
6396 (synopsis "Make Emacs bindings that stick around")
6397 (description
6398 "This package can be used to tie related commands into a family of short
6399 bindings with a common prefix---a Hydra. Once you summon the Hydra (through
6400 the prefixed binding), all the heads can be called in succession with only a
6401 short extension. Any binding that isn't the Hydra's head vanquishes the
6402 Hydra. Note that the final binding, besides vanquishing the Hydra, will still
6403 serve its original purpose, calling the command assigned to it. This makes
6404 the Hydra very seamless; it's like a minor mode that disables itself
6405 automatically.")
6406 (license license:gpl3+)))
6407
6408 (define-public emacs-interleave
6409 (package
6410 (name "emacs-interleave")
6411 (version "1.4.0")
6412 (source
6413 (origin
6414 (method git-fetch)
6415 (uri
6416 (git-reference
6417 (url "https://github.com/rudolfochrist/interleave")
6418 (commit (string-append "interleave-" version))))
6419 (file-name (git-file-name name version))
6420 (sha256
6421 (base32 "0l5b681mrpk12lx5c16m7kc13p29z6zismwg1llsjg7cdmrmsrcb"))))
6422 (build-system emacs-build-system)
6423 (home-page "https://github.com/rudolfochrist/interleave")
6424 (synopsis "Emacs minor mode to interleave notes and text books")
6425 (description
6426 "Interleave is a minor mode that presents a document viewer side
6427 by side to an Org buffer with your notes relevant to the current page.")
6428 (license license:gpl3+)))
6429
6430 (define-public emacs-ivy
6431 (package
6432 (name "emacs-ivy")
6433 (version "0.13.1")
6434 (source
6435 (origin
6436 (method url-fetch)
6437 (uri (string-append "https://elpa.gnu.org/packages/ivy-" version ".tar"))
6438 (sha256
6439 (base32 "0n0ixhdykbdpis4krkqq6zncbby28p34742q96n0l91w0p19slcx"))))
6440 (build-system emacs-build-system)
6441 (propagated-inputs
6442 `(("emacs-hydra" ,emacs-hydra)))
6443 (home-page "https://github.com/abo-abo/swiper")
6444 (synopsis "Incremental vertical completion for Emacs")
6445 (description
6446 "This package provides @code{ivy-read} as an alternative to
6447 @code{completing-read} and similar functions. No attempt is made to determine
6448 the best candidate. Instead, the user can navigate candidates with
6449 @code{ivy-next-line} and @code{ivy-previous-line}. The matching is done by
6450 splitting the input text by spaces and re-building it into a regular
6451 expression.")
6452 (license license:gpl3+)))
6453
6454 (define-public emacs-counsel
6455 (package
6456 (name "emacs-counsel")
6457 (version "0.13.1")
6458 (source
6459 (origin
6460 (method url-fetch)
6461 (uri (string-append "https://elpa.gnu.org/packages/"
6462 "counsel-" version ".el"))
6463 (sha256
6464 (base32 "1y3hr3j5bh5mbyh1cqzxx04181qpvj4xyv1gym2gxcjd30nfllli"))))
6465 (build-system emacs-build-system)
6466 (propagated-inputs
6467 `(("emacs-swiper" ,emacs-swiper)))
6468 (home-page "https://github.com/abo-abo/swiper")
6469 (synopsis "Various completion functions using Ivy")
6470 (description
6471 "Just call one of the interactive functions in a file to complete the
6472 corresponding thing using Ivy.
6473
6474 The following completions are currently available:
6475 @itemize
6476 @item Symbol completion for Elisp, Common Lisp, Python, Clojure, C, C++.
6477 @item Describe functions for Elisp: function, variable, library, command,
6478 @item bindings, theme.
6479 @item Navigation functions: imenu, ace-line, semantic, outline.
6480 @item Git utilities: git-files, git-grep, git-log, git-stash, git-checkout.
6481 @item Grep utilities: grep, ag, pt, recoll, ack, rg.
6482 @item System utilities: process list, rhythmbox, linux-app.
6483 @item Many more.
6484 @end itemize")
6485 (license license:gpl3+)))
6486
6487 (define-public emacs-swiper
6488 (package
6489 (name "emacs-swiper")
6490 (version "0.13.1")
6491 (source
6492 (origin
6493 (method url-fetch)
6494 (uri (string-append "https://elpa.gnu.org/packages/"
6495 "swiper-" version ".el"))
6496 (sha256
6497 (base32 "06ild7kck0x5ry8bf0al24nh04q01q3jhj6jjl4xz8n2s6jnn70y"))))
6498 (build-system emacs-build-system)
6499 (propagated-inputs
6500 `(("emacs-ivy" ,emacs-ivy)))
6501 (home-page "https://github.com/abo-abo/swiper")
6502 (synopsis "Isearch with an overview")
6503 (description
6504 "This package gives an overview of the current regex search candidates.
6505 The search regex can be split into groups with a space. Each group is
6506 highlighted with a different face.
6507
6508 It can double as a quick `regex-builder', although only single lines will be
6509 matched.")
6510 (license license:gpl3+)))
6511
6512 (define-public emacs-ivy-xref
6513 (let ((commit "1a35fc0f070388701b05b0a455cbe262e924d547")
6514 (revision "1"))
6515 (package
6516 (name "emacs-ivy-xref")
6517 (version (git-version "0.1" revision commit))
6518 (source
6519 (origin
6520 (method git-fetch)
6521 (uri (git-reference
6522 (url "https://github.com/alexmurray/ivy-xref.git")
6523 (commit commit)))
6524 (file-name (git-file-name name version))
6525 (sha256
6526 (base32
6527 "0d71nm9d9ajp5i6dnl8h1hw9jqp8gd1ajgninb1h13i80rplzl9k"))))
6528 (build-system emacs-build-system)
6529 (propagated-inputs
6530 `(("emacs-ivy" ,emacs-ivy)))
6531 (home-page "https://github.com/alexmurray/ivy-xref")
6532 (synopsis "Ivy interface for @code{xref}")
6533 (description "This package provides an Ivy interface for selecting from
6534 @code{xref} results.")
6535 (license license:gpl3))))
6536
6537 (define-public emacs-ivy-pass
6538 (let ((commit "5b523de1151f2109fdd6a8114d0af12eef83d3c5")
6539 (revision "1"))
6540 (package
6541 (name "emacs-ivy-pass")
6542 (version (git-version "0.1" revision commit))
6543 (source
6544 (origin
6545 (method git-fetch)
6546 (uri (git-reference
6547 (url "https://github.com/ecraven/ivy-pass.git")
6548 (commit commit)))
6549 (file-name (git-file-name name version))
6550 (sha256
6551 (base32
6552 "18crb4zh2pjf0cmv3b913m9vfng27girjwfqc3mk7vqd1r5a49yk"))))
6553 (build-system emacs-build-system)
6554 (propagated-inputs
6555 `(("emacs-ivy" ,emacs-ivy)
6556 ("emacs-password-store" ,emacs-password-store)
6557 ("password-store" ,password-store)))
6558 (home-page "https://github.com/ecraven/ivy-pass")
6559 (synopsis "Ivy interface for password store (pass)")
6560 (description "This package provides an Ivy interface for working with
6561 the password store @code{pass}.")
6562 (license license:gpl3))))
6563
6564 (define-public emacs-ivy-yasnippet
6565 (let ((commit "32580b4fd23ebf9ca7dde96704f7d53df6e253cd")
6566 (revision "2"))
6567 (package
6568 (name "emacs-ivy-yasnippet")
6569 (version (git-version "0.1" revision commit))
6570 (source
6571 (origin
6572 (method git-fetch)
6573 (uri (git-reference
6574 (url "https://github.com/mkcms/ivy-yasnippet.git")
6575 (commit commit)))
6576 (file-name (git-file-name name version))
6577 (sha256
6578 (base32
6579 "1wfg6mmd5gl1qgvayyzpxlkh9s7jgn20y8l1vh1zbj1czvv51xp8"))))
6580 (build-system emacs-build-system)
6581 (propagated-inputs
6582 `(("emacs-ivy" ,emacs-ivy)
6583 ("emacs-yasnippet" ,emacs-yasnippet)
6584 ("emacs-dash" ,emacs-dash)))
6585 (home-page "https://github.com/mkcms/ivy-yasnippet")
6586 (synopsis "Preview @code{yasnippets} with @code{ivy}")
6587 (description "This package allows you to select @code{yasnippet}
6588 snippets using @code{ivy} completion. When current selection changes in the
6589 minibuffer, the snippet contents are temporarily expanded in the buffer. To
6590 use it, call @code{M-x ivy-yasnippet} (but make sure you have enabled
6591 @code{yas-minor-mode} first).")
6592 (license license:gpl3+))))
6593
6594 (define-public emacs-ivy-rich
6595 ;; The latest release version has a small mistake that has since been fixed,
6596 ;; so we use a more recent commit.
6597 (let ((commit "7a667b135983a1f3ad33d6db8514638e2a3bdfb3")
6598 (revision "2"))
6599 (package
6600 (name "emacs-ivy-rich")
6601 (version (git-version "0.1.4" revision commit))
6602 (source
6603 (origin
6604 (method git-fetch)
6605 (uri (git-reference
6606 (url "https://github.com/Yevgnen/ivy-rich.git")
6607 (commit commit)))
6608 (file-name (git-file-name name version))
6609 (sha256
6610 (base32 "1v5j6pak2j1wjw19y7rx9rhxif0bj2h47xyl2knfcl6fi4qiqm9y"))))
6611 (build-system emacs-build-system)
6612 (propagated-inputs
6613 `(("emacs-ivy" ,emacs-ivy)))
6614 (home-page "https://github.com/Yevgnen/ivy-rich")
6615 (synopsis "More friendly interface for @code{ivy}")
6616 (description
6617 "This package extends @code{ivy} by showing more information in the
6618 minibuffer for each candidate. It adds columns showing buffer modes, file
6619 sizes, docstrings, etc. If @code{emacs-all-the-icons} is installed, it can
6620 show icons as well.")
6621 (license license:gpl3+))))
6622
6623 (define-public emacs-avy
6624 (package
6625 (name "emacs-avy")
6626 (version "0.5.0")
6627 (source
6628 (origin
6629 (method git-fetch)
6630 (uri (git-reference
6631 (url "https://github.com/abo-abo/avy.git")
6632 (commit version)))
6633 (file-name (git-file-name name version))
6634 (sha256
6635 (base32 "09qdni1s74i5pv8741szl5g4ynj8fxn0x65qmwa9rmfkbimnc0fs"))))
6636 (build-system emacs-build-system)
6637 (arguments
6638 `(#:tests? #t
6639 #:test-command '("make" "test")))
6640 (home-page "https://github.com/abo-abo/avy")
6641 (synopsis "Tree-based completion for Emacs")
6642 (description
6643 "This package provides a generic completion method based on building a
6644 balanced decision tree with each candidate being a leaf. To traverse the tree
6645 from the root to a desired leaf, typically a sequence of @code{read-key} can
6646 be used.
6647
6648 In order for @code{read-key} to make sense, the tree needs to be visualized
6649 appropriately, with a character at each branch node. So this completion
6650 method works only for things that you can see on your screen, all at once,
6651 such as the positions of characters, words, line beginnings, links, or
6652 windows.")
6653 (license license:gpl3+)))
6654
6655 (define-public emacs-ace-window
6656 (package
6657 (name "emacs-ace-window")
6658 (version "0.10.0")
6659 (source
6660 (origin
6661 (method git-fetch)
6662 (uri (git-reference
6663 (url "https://github.com/abo-abo/ace-window.git")
6664 (commit version)))
6665 (file-name (git-file-name name version))
6666 (sha256
6667 (base32
6668 "0f3r40d5yxp2pm2j0nn86s29nqj8py0jxjbj50v4ci3hsd92d8jl"))))
6669 (build-system emacs-build-system)
6670 (propagated-inputs
6671 `(("emacs-avy" ,emacs-avy)))
6672 (home-page "https://github.com/abo-abo/ace-window")
6673 (synopsis "Quickly switch windows in Emacs")
6674 (description
6675 "@code{ace-window} is meant to replace @code{other-window}.
6676 In fact, when there are only two windows present, @code{other-window} is
6677 called. If there are more, each window will have its first character
6678 highlighted. Pressing that character will switch to that window.")
6679 (license license:gpl3+)))
6680
6681 (define-public emacs-iedit
6682 ;; Last release version was in 2016.
6683 (let ((commit "e2c100cdd67b7d82835d281ac2cd1bf4f374bc8f")
6684 (revision "1"))
6685 (package
6686 (name "emacs-iedit")
6687 (version (git-version "0.9.9.9" revision commit))
6688 (source
6689 (origin
6690 (method git-fetch)
6691 (uri (git-reference
6692 (url "https://github.com/victorhge/iedit.git")
6693 (commit commit)))
6694 (file-name (git-file-name name version))
6695 (sha256
6696 (base32 "0wr3w2id95wx2rma8n1ifjrv9rx37ly26ijc5zi58id0yrip3hnc"))))
6697 (build-system emacs-build-system)
6698 (home-page "https://www.emacswiki.org/emacs/Iedit")
6699 (synopsis "Edit multiple regions in the same way simultaneously")
6700 (description
6701 "This package is an Emacs minor mode and allows you to edit one
6702 occurrence of some text in a buffer (possibly narrowed) or region, and
6703 simultaneously have other occurrences edited in the same way.
6704
6705 You can also use Iedit mode as a quick way to temporarily show only the buffer
6706 lines that match the current text being edited. This gives you the effect of
6707 a temporary @code{keep-lines} or @code{occur}.")
6708 (license license:gpl3+))))
6709
6710 (define-public emacs-zoutline
6711 (package
6712 (name "emacs-zoutline")
6713 (version "0.2.0")
6714 (source
6715 (origin
6716 (method git-fetch)
6717 (uri (git-reference
6718 (url "https://github.com/abo-abo/zoutline")
6719 (commit version)))
6720 (sha256
6721 (base32
6722 "1w0zh6vs7klgivq5r030a82mcfg1zwic4x3fimyiqyg5n8p67hyx"))
6723 (file-name (git-file-name name version))))
6724 (build-system emacs-build-system)
6725 (home-page "https://github.com/abo-abo/zoutline")
6726 (synopsis "Simple outline library")
6727 (description
6728 "This library provides helpers for outlines. Outlines allow users to
6729 navigate code in a tree-like fashion.")
6730 (license license:gpl3+)))
6731
6732 (define-public emacs-lispy
6733 (package
6734 (name "emacs-lispy")
6735 (version "0.27.0")
6736 (home-page "https://github.com/abo-abo/lispy")
6737 (source (origin
6738 (method git-fetch)
6739 (uri (git-reference
6740 (url "https://github.com/abo-abo/lispy")
6741 (commit version)))
6742 (sha256
6743 (base32
6744 "1cm7f4pyl73f3vhkb7ah6bbbrj2sa7n0p31g09k7dy4zgx04bgw6"))
6745 (file-name (git-file-name name version))))
6746 (build-system emacs-build-system)
6747 (propagated-inputs
6748 `(("emacs-ace-window" ,emacs-ace-window)
6749 ("emacs-hydra" ,emacs-hydra)
6750 ("emacs-iedit" ,emacs-iedit)
6751 ("emacs-swiper" ,emacs-swiper)
6752 ("emacs-zoutline" ,emacs-zoutline)))
6753 (native-inputs
6754 `(("emacs-clojure-mode" ,emacs-clojure-mode)
6755 ("emacs-undercover" ,emacs-undercover)))
6756 (arguments
6757 `(#:include (cons* "^lispy-clojure\\.clj$"
6758 "^lispy-python\\.py$"
6759 %default-include)
6760 #:phases
6761 ;; XXX: one failing test involving python evaluation
6762 (modify-phases %standard-phases
6763 (add-before 'check 'make-test-writable
6764 (lambda _
6765 (make-file-writable "lispy-test.el")
6766 #t))
6767 (add-before 'check 'remove-python-eval-test
6768 (lambda _
6769 (emacs-batch-edit-file "lispy-test.el"
6770 `(progn
6771 (progn
6772 (goto-char (point-min))
6773 (re-search-forward
6774 "ert-deftest lispy-eval-python-str")
6775 (beginning-of-line)
6776 (kill-sexp))
6777 (basic-save-buffer)))
6778 #t)))
6779 #:tests? #t
6780 #:test-command '("make" "test")))
6781 (synopsis "Modal S-expression editing")
6782 (description
6783 "Due to the structure of Lisp syntax it's very rare for the programmer
6784 to want to insert characters right before \"(\" or right after \")\". Thus
6785 unprefixed printable characters can be used to call commands when the point is
6786 at one of these special locations. Lispy provides unprefixed keybindings for
6787 S-expression editing when point is at the beginning or end of an
6788 S-expression.")
6789 (license license:gpl3+)))
6790
6791 (define-public emacs-lispyville
6792 (let ((commit "1bf38088c981f5ab4ef2e2684952ab6af96378db")
6793 (revision "2"))
6794 (package
6795 (name "emacs-lispyville")
6796 (version (git-version "0.1" revision commit))
6797 (home-page "https://github.com/noctuid/lispyville")
6798 (source (origin
6799 (method git-fetch)
6800 (uri (git-reference (url home-page) (commit commit)))
6801 (sha256
6802 (base32
6803 "07z8qqvaxf963kwn7l2gk47989zb7r3d8ybqjs2cg6hzmzb77wbw"))
6804 (file-name (git-file-name name version))))
6805 (propagated-inputs
6806 `(("emacs-evil" ,emacs-evil)
6807 ("emacs-lispy" ,emacs-lispy)))
6808 (build-system emacs-build-system)
6809 (synopsis "Minor mode for integrating Evil with lispy")
6810 (description
6811 "LispyVille's main purpose is to provide a Lisp editing environment
6812 suited towards Evil users. It can serve as a minimal layer on top of lispy
6813 for better integration with Evil, but it does not require the use of lispy’s
6814 keybinding style. The provided commands allow for editing Lisp in normal
6815 state and will work even without lispy being enabled.")
6816 (license license:gpl3+))))
6817
6818 (define-public emacs-lpy
6819 (let ((commit "43b401fe15f0f0d01edb189378b9498121e9f766")
6820 (revision "3"))
6821 (package
6822 (name "emacs-lpy")
6823 (version (git-version "0.1.0" revision commit))
6824 (source
6825 (origin
6826 (method git-fetch)
6827 (uri (git-reference
6828 (url "https://github.com/abo-abo/lpy")
6829 (commit commit)))
6830 (sha256
6831 (base32
6832 "0xj1r7cn1rivaxhvawvmgx9fg3xilpfw4lkf2x2aqplr4s85ijas"))
6833 (file-name (git-file-name name version))))
6834 (propagated-inputs
6835 `(("emacs-zoutline" ,emacs-zoutline)
6836 ("emacs-lispy" ,emacs-lispy)))
6837 (build-system emacs-build-system)
6838 (home-page "https://github.com/abo-abo/lpy")
6839 (synopsis "Modal editing for Python")
6840 (description
6841 "This package provides a minor mode for Python that binds useful
6842 commands to unprefixed keys, such as @code{j} or @code{e}, under certain
6843 circumstances, and leaves the keys untouched outside of those situations,
6844 allowing unprefixed keys to insert their respective characters as expected.")
6845 (license license:gpl3+))))
6846
6847 (define-public emacs-clojure-mode
6848 (package
6849 (name "emacs-clojure-mode")
6850 (version "5.11.0")
6851 (source
6852 (origin
6853 (method git-fetch)
6854 (uri (git-reference
6855 (url "https://github.com/clojure-emacs/clojure-mode.git")
6856 (commit version)))
6857 (file-name (git-file-name name version))
6858 (sha256
6859 (base32 "1x1yszp6waa778ki6sw66w1pzcz389wd01gkcldfxxnd7z89ad5d"))))
6860 (build-system emacs-build-system)
6861 (native-inputs
6862 `(("emacs-buttercup" ,emacs-buttercup)
6863 ("emacs-dash" ,emacs-dash)
6864 ("emacs-s" ,emacs-s)))
6865 (arguments
6866 `(#:tests? #t
6867 #:test-command '("buttercup")))
6868 (home-page "https://github.com/clojure-emacs/clojure-mode")
6869 (synopsis "Major mode for Clojure code")
6870 (description
6871 "This Emacs package provides font-lock, indentation, navigation and basic
6872 refactoring for the @uref{http://clojure.org, Clojure programming language}.
6873 It is recommended to use @code{clojure-mode} with Paredit or Smartparens.")
6874 (license license:gpl3+)))
6875
6876 (define-public emacs-epl
6877 (package
6878 (name "emacs-epl")
6879 (version "0.8")
6880 (source
6881 (origin
6882 (method git-fetch)
6883 (uri (git-reference
6884 (url "https://github.com/cask/epl.git")
6885 (commit version)))
6886 (file-name (git-file-name name version))
6887 (sha256
6888 (base32 "0sjxd5y5hxhrbgfkpwx6m724r3841b53hgc61a0g5zwispw5pmrr"))))
6889 (build-system emacs-build-system)
6890 (home-page "https://github.com/cask/epl")
6891 (synopsis "Emacs Package Library")
6892 (description
6893 "A package management library for Emacs, based on @code{package.el}.
6894
6895 The purpose of this library is to wrap all the quirks and hassle of
6896 @code{package.el} into a sane API.")
6897 (license license:gpl3+)))
6898
6899 (define-public emacs-counsel-projectile
6900 (package
6901 (name "emacs-counsel-projectile")
6902 (version "0.3.0")
6903 (source (origin
6904 (method git-fetch)
6905 (uri (git-reference
6906 (url "https://github.com/ericdanan/counsel-projectile")
6907 (commit version)))
6908 (file-name (git-file-name name version))
6909 (sha256
6910 (base32
6911 "1inc4ndl0ysfwvxk4avbgpj4qi9rc93da6476a5c81xmwpsv8wmq"))))
6912 (build-system emacs-build-system)
6913 (propagated-inputs
6914 `(("emacs-counsel" ,emacs-counsel)
6915 ("emacs-projectile" ,emacs-projectile)))
6916 (home-page "https://github.com/ericdanan/counsel-projectile")
6917 (synopsis "Enhance Projectile with Ivy")
6918 (description
6919 "This package uses Ivy to provide additional actions for Projectile
6920 commands and replacements for existing functions.")
6921 (license license:gpl3+)))
6922
6923 (define-public emacs-queue
6924 (package
6925 (name "emacs-queue")
6926 (version "0.2")
6927 (source (origin
6928 (method url-fetch)
6929 (uri (string-append "https://elpa.gnu.org/packages/queue-"
6930 version ".el"))
6931 (sha256
6932 (base32
6933 "0cx2848sqnnkkr4zisvqadzxngjyhmb36mh0q3if7q19yjjhmrkb"))))
6934 (build-system emacs-build-system)
6935 (home-page "http://www.dr-qubit.org/tags/computing-code-emacs.html")
6936 (synopsis "Queue data structure for Emacs")
6937 (description
6938 "This Emacs library provides queue data structure. These queues can be
6939 used both as a first-in last-out (FILO) and as a first-in first-out (FIFO)
6940 stack, i.e. elements can be added to the front or back of the queue, and can
6941 be removed from the front. This type of data structure is sometimes called an
6942 \"output-restricted deque\".")
6943 (license license:gpl3+)))
6944
6945 (define-public emacs-pkg-info
6946 (package
6947 (name "emacs-pkg-info")
6948 (version "0.6")
6949 (source
6950 (origin
6951 (method git-fetch)
6952 (uri (git-reference
6953 (url "https://github.com/lunaryorn/pkg-info.el.git")
6954 (commit version)))
6955 (file-name (git-file-name name version))
6956 (sha256
6957 (base32 "0nk12dcppdyhav6m6yf7abpywyd7amxd4237zsfd32w4zxsx39k1"))))
6958 (build-system emacs-build-system)
6959 (propagated-inputs `(("emacs-epl" ,emacs-epl)))
6960 (home-page "https://github.com/lunaryorn/pkg-info.el")
6961 (synopsis "Information about Emacs packages")
6962 (description
6963 "This library extracts information from the installed Emacs packages.")
6964 (license license:gpl3+)))
6965
6966 (define-public emacs-spinner
6967 (package
6968 (name "emacs-spinner")
6969 (version "1.7.3")
6970 (source (origin
6971 (method url-fetch)
6972 (uri (string-append "https://elpa.gnu.org/packages/spinner-"
6973 version ".el"))
6974 (sha256
6975 (base32
6976 "19kp1mmndbmw11sgvv2ggfjl4pyf5zrsbh3871f0965pw9z8vahd"))))
6977 (build-system emacs-build-system)
6978 (home-page "https://github.com/Malabarba/spinner.el")
6979 (synopsis "Emacs mode-line spinner for operations in progress")
6980 (description
6981 "This Emacs package adds spinners and progress-bars to the mode-line for
6982 ongoing operations.")
6983 (license license:gpl3+)))
6984
6985 (define-public emacs-sparql-mode
6986 (package
6987 (name "emacs-sparql-mode")
6988 (version "2.0.1")
6989 (source
6990 (origin
6991 (method git-fetch)
6992 (uri (git-reference
6993 (url "https://github.com/ljos/sparql-mode.git")
6994 (commit (string-append "v" version))))
6995 (file-name (git-file-name name version))
6996 (sha256
6997 (base32 "0ywhqk6n5k0l85zjwbnrivnvxjzqipqrggv06lify6yv18qmyl6s"))))
6998 (build-system emacs-build-system)
6999 (home-page "https://github.com/ljos/sparql-mode")
7000 (synopsis "SPARQL mode for Emacs")
7001 (description "This package provides a major mode for Emacs that provides
7002 syntax highlighting for SPARQL. It also provides a way to execute queries
7003 against a SPARQL HTTP endpoint, such as is provided by Fuseki. It is also
7004 possible to query other endpoints like DBPedia.")
7005 (license license:gpl3+)))
7006
7007 (define-public emacs-better-defaults
7008 (package
7009 (name "emacs-better-defaults")
7010 (version "0.1.3")
7011 (source
7012 (origin
7013 (method git-fetch)
7014 (uri (git-reference
7015 (url "https://github.com/technomancy/better-defaults")
7016 (commit version)))
7017 (file-name (git-file-name name version))
7018 (sha256
7019 (base32
7020 "1rxznx2l0cdpiz8mad8s6q17m1fngpgb1cki7ch6yh18r3qz8ysr"))))
7021 (build-system emacs-build-system)
7022 (home-page "https://github.com/technomancy/better-defaults")
7023 (synopsis "Better defaults for Emacs")
7024 (description
7025 "Better defaults attempts to address the most obvious deficiencies of the
7026 Emacs default configuration in uncontroversial ways that nearly everyone can
7027 agree upon.")
7028 (license license:gpl3+)))
7029
7030 (define-public emacs-undohist-el
7031 (let ((commit "d2239a5f736724ceb9e3b6bcaa86f4064805cda0")
7032 (revision "1"))
7033 (package
7034 (name "emacs-undohist-el")
7035 (version (git-version "0" revision commit))
7036 (source
7037 (origin
7038 (method git-fetch)
7039 (uri (git-reference
7040 (url "https://github.com/m2ym/undohist-el")
7041 (commit commit)))
7042 (file-name (git-file-name name version))
7043 (sha256
7044 (base32
7045 "1c0daw246ky7b1x5b8h55x79pl1pjqk1k348l487bdd8zdj4w9wx"))
7046 (patches
7047 (search-patches "emacs-undohist-ignored.patch"))))
7048 (build-system emacs-build-system)
7049 (home-page "https://github.com/m2ym/undohist-el")
7050 (synopsis "Save undo history between sessions")
7051 (description "This package allows persistent use of undo history for
7052 individual file buffers.")
7053 (license license:gpl3+))))
7054
7055 (define-public emacs-eprime
7056 (let ((commit "17a481af26496be91c07139a9bfc05cfe722506f"))
7057 (package
7058 (name "emacs-eprime")
7059 (version (string-append "20140513-" (string-take commit 7)))
7060 (source (origin
7061 (method url-fetch)
7062 (uri (string-append "https://raw.githubusercontent.com"
7063 "/AndrewHynes/eprime-mode/"
7064 commit "/eprime-mode.el"))
7065 (file-name (string-append "eprime-" version ".el"))
7066 (sha256
7067 (base32
7068 "0v68lggkyq7kbcr9zyi573m2g2x251xy3jadlaw8kx02l8krwq8d"))))
7069 (build-system emacs-build-system)
7070 (home-page "https://github.com/AndrewHynes/eprime-mode")
7071 (synopsis "E-prime checking mode for Emacs")
7072 (description "This package provides an E-prime checking mode for Emacs
7073 that highlights non-conforming text. The subset of the English language called
7074 E-Prime forbids the use of the \"to be\" form to strengthen your writing.")
7075 (license license:gpl3+))))
7076
7077 (define-public emacs-julia-mode
7078 ;; XXX: Upstream version remained stuck at 0.3. See
7079 ;; <https://github.com/JuliaEditorSupport/julia-emacs/issues/46>.
7080 (let ((commit "115d4dc8a07445301772da8376b232fa8c7168f4")
7081 (revision "1"))
7082 (package
7083 (name "emacs-julia-mode")
7084 (version (string-append "0.3-" revision "." (string-take commit 8)))
7085 (source
7086 (origin
7087 (method git-fetch)
7088 (uri (git-reference
7089 (url "https://github.com/JuliaEditorSupport/julia-emacs.git")
7090 (commit commit)))
7091 (file-name (git-file-name name version))
7092 (sha256
7093 (base32
7094 "1is4dcv6blslpzbjcg8l2jpxi8xj96q4cm0nxjxsyswpm8bw8ki0"))))
7095 (build-system emacs-build-system)
7096 (arguments
7097 `(#:tests? #t
7098 #:test-command '("emacs" "--batch"
7099 "-l" "julia-mode-tests.el"
7100 "-f" "ert-run-tests-batch-and-exit")))
7101 (home-page "https://github.com/JuliaEditorSupport/julia-emacs")
7102 (synopsis "Major mode for Julia")
7103 (description "This Emacs package provides a mode for the Julia
7104 programming language.")
7105 (license license:expat))))
7106
7107 (define-public emacs-smex
7108 (package
7109 (name "emacs-smex")
7110 (version "3.0")
7111 (source (origin
7112 (method url-fetch)
7113 (uri (string-append "https://raw.githubusercontent.com"
7114 "/nonsequitur/smex/" version "/smex.el"))
7115 (file-name (string-append "smex-" version ".el"))
7116 (sha256
7117 (base32
7118 "0ar310zx9k5y4i1vl2rawvi712xj9gx77160860jbs691p77cxqp"))))
7119 (build-system emacs-build-system)
7120 (home-page "https://github.com/nonsequitur/smex/")
7121 (synopsis "M-x interface with Ido-style fuzzy matching")
7122 (description
7123 "Smex is a M-x enhancement for Emacs. Built on top of Ido, it provides a
7124 convenient interface to your recently and most frequently used commands. And
7125 to all the other commands, too.")
7126 (license license:gpl3+)))
7127
7128 (define-public emacs-js2-mode
7129 (package
7130 (name "emacs-js2-mode")
7131 (version "20190219")
7132 (source
7133 (origin
7134 (method git-fetch)
7135 (uri (git-reference
7136 (url "https://github.com/mooz/js2-mode.git")
7137 (commit version)))
7138 (file-name (git-file-name name version))
7139 (sha256
7140 (base32 "0766bbr4piia9vfr4ivd2gwi8dxah654adv6h28ylz4q8xmfzm1b"))))
7141 (build-system emacs-build-system)
7142 (arguments
7143 `(#:tests? #t
7144 #:test-command '("make" "test")))
7145 (home-page "https://github.com/mooz/js2-mode/")
7146 (synopsis "Improved JavaScript editing mode for Emacs")
7147 (description
7148 "Js2-mode provides a JavaScript major mode for Emacs that is more
7149 advanced than the built-in javascript-mode. Features include accurate syntax
7150 highlighting using a recursive-descent parser, on-the-fly reporting of syntax
7151 errors and strict-mode warnings, smart line-wrapping within comments and
7152 strings, and code folding.")
7153 (license license:gpl3+)))
7154
7155 (define-public emacs-nodejs-repl
7156 (package
7157 (name "emacs-nodejs-repl")
7158 (version "0.2.2")
7159 (source (origin
7160 (method git-fetch)
7161 (uri (git-reference
7162 (url "https://github.com/abicky/nodejs-repl.el")
7163 (commit version)))
7164 (file-name (git-file-name name version))
7165 (sha256
7166 (base32
7167 "1kkj888k9x5n0i7xkia177gzsa84my3g8n0n7v65281cc4f1yhk5"))))
7168 (build-system emacs-build-system)
7169 (inputs
7170 `(("node" ,node)))
7171 (native-inputs
7172 `(("emacs-ert-expectations" ,emacs-ert-expectations)))
7173 (arguments
7174 `(#:phases
7175 (modify-phases %standard-phases
7176 (add-after 'unpack 'set-shell
7177 ;; Setting the SHELL environment variable is required for the tests
7178 ;; to find sh.
7179 (lambda _
7180 (setenv "SHELL" (which "sh"))
7181 #t))
7182 (add-after 'unpack 'configure
7183 (lambda* (#:key inputs outputs #:allow-other-keys)
7184 (let ((node (assoc-ref inputs "node")))
7185 ;; Specify the absolute file names of the various
7186 ;; programs so that everything works out-of-the-box.
7187 (make-file-writable "nodejs-repl.el")
7188 (emacs-substitute-variables
7189 "nodejs-repl.el"
7190 ("nodejs-repl-command"
7191 (string-append node "/bin/node")))))))
7192 #:tests? #t
7193 #:test-command '("emacs" "-Q" "--batch"
7194 "-L" "."
7195 "-l" "test/test.el"
7196 "-f" "ert-run-tests-batch-and-exit")))
7197 (home-page "https://github.com/abicky/nodejs-repl.el")
7198 (synopsis "Node.js REPL inside Emacs")
7199 (description
7200 "This program is derived from comint-mode and provides the following
7201 features:
7202
7203 @itemize
7204 @item TAB completion same as Node.js REPL
7205 @item file name completion in string
7206 @item incremental history search
7207 @end itemize")
7208 (license license:gpl3+)))
7209
7210 (define-public emacs-typescript-mode
7211 (package
7212 (name "emacs-typescript-mode")
7213 (version "0.3")
7214 (source (origin
7215 (method git-fetch)
7216 (uri (git-reference
7217 (url "https://github.com/ananthakumaran/typescript.el")
7218 (commit (string-append "v" version))))
7219 (file-name (git-file-name name version))
7220 (sha256
7221 (base32
7222 "002f1xfhq43fjaqliwrgxspryfahpa82va5dw3p8kwil2xwvc6mh"))))
7223 (build-system emacs-build-system)
7224 (home-page "https://github.com/ananthakumaran/typescript.el")
7225 (synopsis "Emacs major mode for editing Typescript code")
7226 (description
7227 "This is based on Karl Landstrom's barebones @code{typescript-mode}.
7228 This is much more robust and works with @code{cc-mode}'s comment
7229 filling (mostly). The modifications to the original @code{javascript.el} mode
7230 mainly consisted in replacing \"javascript\" with \"typescript\"
7231
7232 The main features of this Typescript mode are syntactic highlighting (enabled
7233 with @code{font-lock-mode} or @code{global-font-lock-mode}), automatic
7234 indentation and filling of comments and C preprocessor fontification.")
7235 (license license:gpl3+)))
7236
7237 (define-public emacs-tide
7238 (package
7239 (name "emacs-tide")
7240 (version "3.2.3")
7241 (source (origin
7242 (method git-fetch)
7243 (uri (git-reference
7244 (url "https://github.com/ananthakumaran/tide")
7245 (commit (string-append "v" version))))
7246 (file-name (git-file-name name version))
7247 (sha256
7248 (base32
7249 "19kjq4kr2j853p5qp1s79zxmrfprli82lsnphbrlp9vbnib28xyd"))))
7250 (build-system emacs-build-system)
7251 (propagated-inputs
7252 `(("emacs-dash" ,emacs-dash)
7253 ("emacs-s" ,emacs-s)
7254 ("emacs-flycheck" ,emacs-flycheck)
7255 ("emacs-typescript-mode" ,emacs-typescript-mode)))
7256 (home-page "https://github.com/ananthakumaran/tide")
7257 (synopsis "Typescript IDE for Emacs")
7258 (description
7259 "Tide is an Interactive Development Environment (IDE) for Emacs which
7260 provides the following features:
7261
7262 @itemize
7263 @item ElDoc
7264 @item Auto complete
7265 @item Flycheck
7266 @item Jump to definition, Jump to type definition
7267 @item Find occurrences
7268 @item Rename symbol
7269 @item Imenu
7270 @item Compile On Save
7271 @item Highlight Identifiers
7272 @item Code Fixes
7273 @item Code Refactor
7274 @item Organize Imports
7275 @end itemize")
7276 (license license:gpl3+)))
7277
7278 (define-public emacs-markdown-mode
7279 (package
7280 (name "emacs-markdown-mode")
7281 (version "2.4")
7282 (source
7283 (origin
7284 (method git-fetch)
7285 (uri (git-reference
7286 (url "https://github.com/jrblevin/markdown-mode.git")
7287 (commit (string-append "v" version))))
7288 (file-name (git-file-name name version))
7289 (sha256
7290 (base32 "0g0ja4h651yfabm3k6gbw4y8w7wibc9283fyfzb33kjj38ivl5d7"))))
7291 (build-system emacs-build-system)
7292 (home-page "https://jblevins.org/projects/markdown-mode/")
7293 (synopsis "Emacs Major mode for Markdown files")
7294 (description
7295 "Markdown-mode is a major mode for editing Markdown-formatted text files
7296 in Emacs.")
7297 (license license:gpl3+)))
7298
7299 (define-public emacs-evil-markdown
7300 (let ((commit "685d7fbb81bc02fa32779d2a127b99a0c8c7436b")
7301 (revision "2"))
7302 (package
7303 (name "emacs-evil-markdown")
7304 (version (git-version "0.0.2" revision commit))
7305 (source
7306 (origin
7307 (method git-fetch)
7308 (uri (git-reference
7309 (url "https://github.com/Somelauw/evil-markdown.git")
7310 (commit commit)))
7311 (file-name (git-file-name name version))
7312 (sha256
7313 (base32 "1z1sjn6dcqv8mmkh6nfcwhnql2z6xr9yx3hs77bfxj79pf3c466p"))))
7314 (build-system emacs-build-system)
7315 (propagated-inputs
7316 `(("emacs-evil" ,emacs-evil)
7317 ("emacs-markdown-mode" ,emacs-markdown-mode)))
7318 (home-page "https://github.com/Somelauw/evil-markdown/")
7319 (synopsis "Evil keybindings for @code{markdown-mode}")
7320 (description
7321 "This package provides custom text objects and bindings for
7322 @code{markdown-mode}.")
7323 (license license:gpl3+))))
7324
7325 (define-public emacs-edit-indirect
7326 (package
7327 (name "emacs-edit-indirect")
7328 (version "0.1.5")
7329 (source
7330 (origin
7331 (method git-fetch)
7332 (uri (git-reference
7333 (url "https://github.com/Fanael/edit-indirect")
7334 (commit version)))
7335 (file-name (git-file-name name version))
7336 (sha256
7337 (base32
7338 "0by1x53pji39fjrj5bd446kz831nv0vdgw2jqasbym4pc1p2947r"))))
7339 (build-system emacs-build-system)
7340 (home-page "https://github.com/Fanael/edit-indirect")
7341 (synopsis "Edit regions in separate buffers")
7342 (description "This package allows you to edit regions in separate buffers,
7343 like @code{org-edit-src-code} but for arbitrary regions.")
7344 (license license:gpl3+)))
7345
7346 (define-public emacs-projectile
7347 (package
7348 (name "emacs-projectile")
7349 (version "2.1.0")
7350 (source (origin
7351 (method url-fetch)
7352 (uri (string-append "https://raw.githubusercontent.com/bbatsov"
7353 "/projectile/v" version "/projectile.el"))
7354 (file-name (string-append "projectile-" version ".el"))
7355 (sha256
7356 (base32
7357 "1jj9wk91clyph3zmxkd7y7d6gdqmjd1vndhyq5fxp7i7dy013571"))))
7358 (build-system emacs-build-system)
7359 (propagated-inputs
7360 `(("emacs-dash" ,emacs-dash)
7361 ("emacs-pkg-info" ,emacs-pkg-info)))
7362 (home-page "https://github.com/bbatsov/projectile")
7363 (synopsis "Manage and navigate projects in Emacs easily")
7364 (description
7365 "This library provides easy project management and navigation. The
7366 concept of a project is pretty basic - just a folder containing special file.
7367 Currently git, mercurial and bazaar repos are considered projects by default.
7368 If you want to mark a folder manually as a project just create an empty
7369 .projectile file in it.")
7370 (license license:gpl3+)))
7371
7372 (define-public emacs-skeletor
7373 (let ((commit "47c5b761aee8452716c97a69949ac2f675affe13")
7374 (revision "1"))
7375 (package
7376 (name "emacs-skeletor")
7377 (version (git-version "1.6.1" revision commit))
7378 (source (origin
7379 (method git-fetch)
7380 (uri (git-reference
7381 (url "https://github.com/chrisbarrett/skeletor.el.git")
7382 (commit commit)))
7383 (file-name (git-file-name name version))
7384 (sha256
7385 (base32
7386 "12bdgykfh4mwsqdazxjdvha62h3q3v33159ypy91f6x59y01fi0n"))))
7387 (build-system emacs-build-system)
7388 (propagated-inputs
7389 `(("emacs-s" ,emacs-s)
7390 ("emacs-f" ,emacs-f)
7391 ("emacs-dash" ,emacs-dash)
7392 ("emacs-let-alist" ,emacs-let-alist)))
7393 (native-inputs
7394 `(("emacs-ert-runner" ,emacs-ert-runner)))
7395 (arguments
7396 `(#:include (cons "^project-skeletons\\/" %default-include)
7397 ;; XXX: one failing test involving initializing a git repo
7398 #:phases
7399 (modify-phases %standard-phases
7400 (add-before 'check 'make-test-writable
7401 (lambda _
7402 (make-file-writable "test/skeletor-test.el")
7403 #t))
7404 (add-before 'check 'remove-git-test
7405 (lambda _
7406 (emacs-batch-edit-file "test/skeletor-test.el"
7407 `(progn
7408 (progn
7409 (goto-char (point-min))
7410 (re-search-forward
7411 "ert-deftest initialises-git-repo")
7412 (beginning-of-line)
7413 (kill-sexp))
7414 (basic-save-buffer)))
7415 #t)))
7416 #:tests? #t
7417 #:test-command '("ert-runner")))
7418 (home-page "https://github.com/chrisbarrett/skeletor.el")
7419 (synopsis "Project skeletons for Emacs")
7420 (description "This package provides project templates and automates the
7421 mundane parts of setting up a new project, such as version control, licenses,
7422 and tooling.")
7423 (license license:gpl3+))))
7424
7425 (define-public emacs-elfeed
7426 (package
7427 (name "emacs-elfeed")
7428 (version "3.3.0")
7429 (source
7430 (origin
7431 (method git-fetch)
7432 (uri (git-reference
7433 (url "https://github.com/skeeto/elfeed.git")
7434 (commit version)))
7435 (file-name (git-file-name name version))
7436 (sha256
7437 (base32 "0j8a94val4ml7g1vcjgzk1w89h55sxfdrwnncmz6qbh1y2xsz8c5"))))
7438 (build-system emacs-build-system)
7439 (arguments
7440 `(#:tests? #t
7441 #:test-command '("make" "test")))
7442 (home-page "https://github.com/skeeto/elfeed")
7443 (synopsis "Atom/RSS feed reader for Emacs")
7444 (description
7445 "Elfeed is an extensible web feed reader for Emacs, supporting both Atom
7446 and RSS, with a user interface inspired by notmuch.")
7447 (license license:gpl3+)))
7448
7449 (define-public emacs-elfeed-org
7450 (let ((commit "77b6bbf222487809813de260447d31c4c59902c9"))
7451 (package
7452 (name "emacs-elfeed-org")
7453 (version (git-version "0.1" "1" commit))
7454 (source
7455 (origin
7456 (method git-fetch)
7457 (uri (git-reference
7458 (url "https://github.com/remyhonig/elfeed-org.git")
7459 (commit commit)))
7460 (file-name (git-file-name name version))
7461 (sha256
7462 (base32 "0a2ibka82xq1dhy2z7rd2y9zhcj8rna8357881yz49wf55ccgm53"))))
7463 (build-system emacs-build-system)
7464 (propagated-inputs
7465 `(("emacs-elfeed" ,emacs-elfeed)
7466 ("emacs-org" ,emacs-org)
7467 ("emacs-dash" ,emacs-dash)
7468 ("emacs-s" ,emacs-s)))
7469 (native-inputs
7470 `(("ert-runner" ,emacs-ert-runner)
7471 ("emacs-xtest" ,emacs-xtest)))
7472 (arguments
7473 `(#:tests? #t
7474 #:test-command '("ert-runner" "-L" "org-mode/lisp")
7475 #:phases
7476 (modify-phases %standard-phases
7477 (add-before 'check 'chmod
7478 (lambda _
7479 (chmod "test/fixture-mark-feed-ignore.org" #o644)
7480 #t)))))
7481 (home-page "https://github.com/remyhonig/elfeed-org")
7482 (synopsis "Configure Elfeed with an Org-mode file")
7483 (description
7484 "@code{elfeed-org} lets you manage your Elfeed subscriptions
7485 in Org-mode. Maintaining tags for all RSS feeds is cumbersome using
7486 the regular flat list, where there is no hierarchy and tag names are
7487 duplicated a lot. Org-mode makes the book keeping of tags and feeds
7488 much easier.")
7489 (license license:gpl3+))))
7490
7491 (define-public emacs-el-x
7492 (package
7493 (name "emacs-el-x")
7494 (version "0.3.1")
7495 (source (origin
7496 (method git-fetch)
7497 (uri (git-reference
7498 (url "https://github.com/sigma/el-x.git")
7499 (commit (string-append "v" version))))
7500 (file-name (git-file-name name version))
7501 (sha256
7502 (base32
7503 "1i6j44ssxm1xdg0mf91nh1lnprwsaxsx8vsrf720nan7mfr283h5"))))
7504 (build-system emacs-build-system)
7505 (arguments
7506 `(#:phases
7507 (modify-phases %standard-phases
7508 ;; Move the source files to the top level, which is included in
7509 ;; the EMACSLOADPATH.
7510 (add-after 'unpack 'move-source-files
7511 (lambda _
7512 (let ((el-files (find-files "./lisp" ".*\\.el$")))
7513 (for-each (lambda (f)
7514 (rename-file f (basename f)))
7515 el-files))
7516 #t)))))
7517 (home-page "https://github.com/sigma/el-x")
7518 (synopsis "Emacs Lisp extensions")
7519 (description "command@{emacs-el-x} defines the @code{dflet} macro to
7520 provide the historic behavior of @code{flet}, as well as
7521 @code{declare-function} stub for older Emacs.")
7522 (license license:gpl2+)))
7523
7524 (define-public emacs-mocker
7525 (package
7526 (name "emacs-mocker")
7527 (version "0.3.1")
7528 (source (origin
7529 (method git-fetch)
7530 (uri (git-reference
7531 (url "https://github.com/sigma/mocker.el.git")
7532 (commit (string-append "v" version))))
7533 (file-name (git-file-name name version))
7534 (sha256
7535 (base32
7536 "1lav7am41v63xgavq8pr88y828jmd1cxd4prjq7jlbxm6nvrwxh2"))))
7537 (build-system emacs-build-system)
7538 (arguments
7539 `(#:tests? #t
7540 #:test-command '("ert-runner")))
7541 (native-inputs
7542 `(("ert-runner" ,emacs-ert-runner)))
7543 (propagated-inputs
7544 `(("emacs-el-x" ,emacs-el-x)))
7545 (home-page "https://github.com/sigma/mocker.el")
7546 (synopsis "Mocking framework for Emacs Lisp")
7547 (description "Mocker.el is a framework for writing tests in Emacs Lisp.
7548 It uses regular Lisp rather than a domain specific language (DSL), which
7549 maximizes flexibility (at the expense of conciseness).")
7550 (license license:gpl2+)))
7551
7552 (define-public emacs-find-file-in-project
7553 (package
7554 (name "emacs-find-file-in-project")
7555 (version "5.7.7")
7556 (source (origin
7557 (method git-fetch)
7558 (uri (git-reference
7559 (url "https://github.com/technomancy/find-file-in-project.git")
7560 (commit version)))
7561 (file-name (git-file-name name version))
7562 (sha256
7563 (base32
7564 "1skjbh7m0cck2rwmgzrrds51gipqf1jqghyfx15drc1n6kwivx3h"))))
7565 (build-system emacs-build-system)
7566 (arguments
7567 `(#:tests? #t
7568 #:test-command '("ert-runner" "tests")))
7569 (native-inputs
7570 `(("ert-runner" ,emacs-ert-runner)))
7571 (home-page "https://github.com/technomancy/find-file-in-project")
7572 (synopsis "File/directory finder for Emacs")
7573 (description "@code{find-file-in-project} finds files or
7574 directories quickly in the current project. The project root is detected
7575 automatically when Git, Subversion or Mercurial are used. It also provides
7576 functions to assist in reviewing changes on files.")
7577 (license license:gpl3+)))
7578
7579 (define-public emacs-pyvenv
7580 (package
7581 (name "emacs-pyvenv")
7582 (version "1.21")
7583 (source (origin
7584 (method git-fetch)
7585 (uri (git-reference
7586 (url "https://github.com/jorgenschaefer/pyvenv.git")
7587 (commit (string-append "v" version))))
7588 (file-name (git-file-name name version))
7589 (sha256
7590 (base32
7591 "055sgk8zf4wb5nqsf3qasf5gg861zlb1831733f1qcrd2ij5gzxx"))))
7592 (build-system emacs-build-system)
7593 (arguments
7594 `(#:phases
7595 (modify-phases %standard-phases
7596 ;; This phase incorrectly attempts to substitute "activate" and fails
7597 ;; doing so.
7598 (delete 'patch-el-files))
7599 #:tests? #t
7600 #:test-command '("ert-runner")))
7601 (native-inputs
7602 `(("ert-runner" ,emacs-ert-runner)
7603 ("emacs-mocker" ,emacs-mocker)))
7604 (home-page "https://github.com/jorgenschaefer/pyvenv")
7605 (synopsis "Python virtual environment interface for Emacs")
7606 (description "pyvenv.el is a minor mode to support using Python virtual
7607 environments (virtualenv) inside Emacs.")
7608 (license license:gpl3+)))
7609
7610 (define-public emacs-highlight-indent-guides
7611 (let ((version "0.8.5") ; from package metadata
7612 (revision "0")
7613 (commit "c2c9de4d01edfb89609c91d4d7f1d81312015a2c"))
7614 (package
7615 (name "emacs-highlight-indent-guides")
7616 (version (git-version version revision commit))
7617 (source
7618 (origin
7619 (method git-fetch)
7620 (uri (git-reference
7621 (url "https://github.com/DarthFennec/highlight-indent-guides.git")
7622 (commit commit)))
7623 (file-name (git-file-name name version))
7624 (sha256
7625 (base32 "10chvqnmdmkx6i9sigqframr85ziyafiz44glwhvhjajfkv42ad2"))))
7626 (build-system emacs-build-system)
7627 (home-page
7628 "https://github.com/DarthFennec/highlight-indent-guides")
7629 (synopsis "Minor mode to highlight indentation")
7630 (description
7631 "This package provides a minor mode to highlight indentation levels via
7632 font-lock. Indent widths are dynamically discovered, which means this
7633 correctly highlights in any mode, regardless of indent width, even in
7634 languages with non-uniform indentation such as Haskell. This mode works
7635 properly around hard tabs and mixed indentation and behaves well in large
7636 buffers.")
7637 (license license:expat))))
7638
7639 (define-public emacs-highlight-indentation
7640 ;; Last release version is from 2015.
7641 (let ((commit "d03803f2c06749c430443a3d24e039cbafc9c58f")
7642 (revision "1"))
7643 (package
7644 (name "emacs-highlight-indentation")
7645 (version (git-version "0.7.0" revision commit))
7646 (source
7647 (origin
7648 (method git-fetch)
7649 (uri (git-reference
7650 (url "https://github.com/antonj/Highlight-Indentation-for-Emacs.git")
7651 (commit commit)))
7652 (file-name (git-file-name name version))
7653 (sha256
7654 (base32
7655 "1jq0gf4kcx9hvrw40rnw5c2qynjpjw1vsjbi2i4lqjbsnfnxn4wz"))))
7656 (build-system emacs-build-system)
7657 (home-page "https://github.com/antonj/Highlight-Indentation-for-Emacs/")
7658 (synopsis "Highlighting indentation for Emacs")
7659 (description "This package provides two minor modes to highlight
7660 indentation guides in Emacs:
7661
7662 @enumerate
7663 @item @code{highlight-indentation-mode}, which displays guidelines
7664 indentation (space indentation only).
7665 @item @code{highlight-indentation-current-column-mode}, which displays
7666 guidelines for the current-point indentation (space indentation only).
7667 @end enumerate")
7668 (license license:gpl2+))))
7669
7670 (define-public emacs-elpy
7671 (package
7672 (name "emacs-elpy")
7673 (version "1.34.0")
7674 (source (origin
7675 (method git-fetch)
7676 (uri (git-reference
7677 (url "https://github.com/jorgenschaefer/elpy.git")
7678 (commit version)))
7679 (file-name (git-file-name name version))
7680 (sha256
7681 (base32
7682 "1x1z298axbh4xalssnq9nkf2z1sdgmx839vb01xz18kr9lfavx1x"))))
7683 (build-system emacs-build-system)
7684 (arguments
7685 `(#:include (cons* "^elpy/[^/]+\\.py$" "^snippets\\/" %default-include)
7686 #:phases
7687 (modify-phases %standard-phases
7688 ;; The following tests fail when building with Emacs 27 (see:
7689 ;; https://github.com/jorgenschaefer/elpy/issues/1812).
7690 (add-after 'unpack 'disable-problematic-tests
7691 (lambda _
7692 (substitute* "test/elpy-company-backend-test.el"
7693 (("elpy-company-backend-should-add-shell-candidates.*" all)
7694 (string-append all " (skip-unless nil)\n")))
7695 (substitute* "test/elpy-folding-fold-comments-test.el"
7696 (("elpy-fold-at-point-should-fold-and-unfold-comments.*" all)
7697 (string-append all " (skip-unless nil)\n")))
7698 #t))
7699 ;; The default environment of the RPC uses Virtualenv to install
7700 ;; Python dependencies from PyPI. We don't want/need this in Guix.
7701 (add-before 'check 'do-not-use-virtualenv
7702 (lambda _
7703 (setenv "ELPY_TEST_DONT_USE_VIRTUALENV" "1")
7704 (substitute* "elpy-rpc.el"
7705 (("defcustom elpy-rpc-virtualenv-path 'default")
7706 "defcustom elpy-rpc-virtualenv-path 'system"))
7707 #t))
7708 (add-before 'check 'build-doc
7709 (lambda _
7710 (with-directory-excursion "docs"
7711 (invoke "make" "info" "man"))
7712 ;; Move .info file at the root so that it can installed by the
7713 ;; 'move-doc phase.
7714 (rename-file "docs/_build/texinfo/Elpy.info" "Elpy.info")
7715 #t))
7716 (add-after 'build-doc 'install-manpage
7717 (lambda* (#:key outputs #:allow-other-keys)
7718 (let* ((out (assoc-ref outputs "out"))
7719 (man1 (string-append out "/share/man/man1")))
7720 (mkdir-p man1)
7721 (copy-file "docs/_build/man/elpy.1"
7722 (string-append man1 "/elpy.1")))
7723 #t)))
7724 #:tests? #t
7725 #:test-command '("ert-runner")))
7726 (propagated-inputs
7727 `(("emacs-company" ,emacs-company)
7728 ("emacs-find-file-in-project" ,emacs-find-file-in-project)
7729 ("emacs-highlight-indentation" ,emacs-highlight-indentation)
7730 ("emacs-yasnippet" ,emacs-yasnippet)
7731 ("pyvenv" ,emacs-pyvenv)
7732 ("s" ,emacs-s)
7733 ;; The following are recommended Python dependencies that make Elpy
7734 ;; much more useful. Installing these avoids Elpy prompting to install them
7735 ;; from PyPI using pip.
7736 ("python-autopep8" ,python-autopep8)
7737 ("python-black" ,python-black)
7738 ("python-flake8" ,python-flake8)
7739 ("python-jedi" ,python-jedi)
7740 ("python-rope" ,python-rope)
7741 ("python-yapf" ,python-yapf)))
7742 (native-inputs
7743 `(("ert-runner" ,emacs-ert-runner)
7744 ("emacs-f" ,emacs-f)
7745 ("python" ,python-wrapper)
7746 ;; For documentation.
7747 ("python-sphinx" ,python-sphinx)
7748 ("texinfo" ,texinfo)))
7749 (home-page "https://github.com/jorgenschaefer/elpy")
7750 (synopsis "Python development environment for Emacs")
7751 (description "Elpy brings powerful Python editing to Emacs. It combines
7752 and configures a number of other packages written in Emacs Lisp as well as
7753 Python, together offering features such as navigation, documentation,
7754 completion, interactive development and more.")
7755 (license license:gpl3+)))
7756
7757 (define-public emacs-rainbow-delimiters
7758 (package
7759 (name "emacs-rainbow-delimiters")
7760 (version "2.1.4")
7761 (source (origin
7762 (method git-fetch)
7763 (uri (git-reference
7764 (url "https://github.com/Fanael/rainbow-delimiters.git")
7765 (commit version)))
7766 (file-name (git-file-name name version))
7767 (sha256
7768 (base32
7769 "1zr2669savnmkc68hiqsq9wccm6bs1j6jbmlac1xqh6nq7xgq36g"))))
7770 (build-system emacs-build-system)
7771 (home-page "https://github.com/Fanael/rainbow-delimiters")
7772 (arguments
7773 `(#:tests? #t
7774 #:test-command '("emacs" "-Q" "-batch"
7775 "-l" "rainbow-delimiters-test.el"
7776 "-f" "ert-run-tests-batch-and-exit")))
7777 (synopsis "Highlight brackets according to their depth")
7778 (description
7779 "Rainbow-delimiters is a \"rainbow parentheses\"-like mode for Emacs which
7780 highlights parentheses, brackets, and braces according to their depth. Each
7781 successive level is highlighted in a different color, making it easy to spot
7782 matching delimiters, orient yourself in the code, and tell which statements
7783 are at a given level.")
7784 (license license:gpl3+)))
7785
7786 (define-public emacs-rainbow-identifiers
7787 (package
7788 (name "emacs-rainbow-identifiers")
7789 (version "0.2.2")
7790 (source (origin
7791 (method url-fetch)
7792 (uri (string-append "https://raw.githubusercontent.com/Fanael"
7793 "/rainbow-identifiers/" version
7794 "/rainbow-identifiers.el"))
7795 (file-name (string-append "rainbow-identifiers-" version ".el"))
7796 (sha256
7797 (base32
7798 "0325abxj47k0g1i8nqrq70w2wr6060ckhhf92krv1s072b3jzm31"))))
7799 (build-system emacs-build-system)
7800 (home-page "https://github.com/Fanael/rainbow-identifiers")
7801 (synopsis "Highlight identifiers in source code")
7802 (description
7803 "Rainbow identifiers mode is an Emacs minor mode providing highlighting of
7804 identifiers based on their names. Each identifier gets a color based on a hash
7805 of its name.")
7806 (license license:bsd-2)))
7807
7808 (define-public emacs-rainbow-mode
7809 (package
7810 (name "emacs-rainbow-mode")
7811 (version "1.0.4")
7812 (source
7813 (origin
7814 (method url-fetch)
7815 (uri (string-append "https://elpa.gnu.org/packages/"
7816 "rainbow-mode-" version ".el"))
7817 (sha256
7818 (base32 "0rp76gix1ph1wrmdax6y2m3i9y1dmgv7ikjz8xsl5lizkygsy9cg"))))
7819 (build-system emacs-build-system)
7820 (home-page "https://elpa.gnu.org/packages/rainbow-mode.html")
7821 (synopsis "Colorize color names in buffers")
7822 (description
7823 "This minor mode sets background color to strings that match color
7824 names, e.g., @samp{#0000ff} is displayed in white with a blue background.")
7825 (license license:gpl3+)))
7826
7827 (define-public emacs-ryo-modal
7828 ;; Package has no release. Version is extracted from "Version:" keyword in
7829 ;; main file.
7830 (let ((commit "3a54312eea7023a86ca3f8eb3c03c872554bff2f")
7831 (revision "0"))
7832 (package
7833 (name "emacs-ryo-modal")
7834 (version (git-version "0.4" revision commit))
7835 (source
7836 (origin
7837 (method git-fetch)
7838 (uri (git-reference
7839 (url "https://github.com/Kungsgeten/ryo-modal.git")
7840 (commit commit)))
7841 (file-name (git-file-name name version))
7842 (sha256
7843 (base32 "1cyvp3bi6yhckbdnq98xvghmhdzghya5y9wd7hxjawibs75rza95"))))
7844 (build-system emacs-build-system)
7845 (home-page "https://github.com/Kungsgeten/ryo-modal")
7846 (synopsis "Emacs minor mode for defining modal editing environments")
7847 (description "RYO modal provides a convenient way of defining modal
7848 keybindings in Emacs, and does not come with any predefined bindings.")
7849 (license license:expat))))
7850
7851 (define-public emacs-visual-fill-column
7852 (package
7853 (name "emacs-visual-fill-column")
7854 (version "1.11")
7855 (source (origin
7856 (method url-fetch)
7857 (uri (string-append "https://codeload.github.com/joostkremers/"
7858 "visual-fill-column/tar.gz/" version))
7859 (file-name (string-append name "-" version ".tar.gz"))
7860 (sha256
7861 (base32
7862 "13jnviakp607zcms7f8ams56mr8wffnq1pghlc6fvqs39663pgwh"))))
7863 (build-system emacs-build-system)
7864 (home-page "https://github.com/joostkremers/visual-fill-column")
7865 (synopsis "Fill-column for visual-line-mode")
7866 (description
7867 "@code{visual-fill-column-mode} is a small Emacs minor mode that mimics
7868 the effect of @code{fill-column} in @code{visual-line-mode}. Instead of
7869 wrapping lines at the window edge, which is the standard behaviour of
7870 @code{visual-line-mode}, it wraps lines at @code{fill-column}. If
7871 @code{fill-column} is too large for the window, the text is wrapped at the
7872 window edge.")
7873 (license license:gpl3+)))
7874
7875 (define-public emacs-writeroom
7876 (package
7877 (name "emacs-writeroom")
7878 (version "3.9")
7879 (source
7880 (origin
7881 (method git-fetch)
7882 (uri (git-reference
7883 (url "https://github.com/joostkremers/writeroom-mode.git")
7884 (commit version)))
7885 (file-name (git-file-name name version))
7886 (sha256
7887 (base32
7888 "1nrppnfqsaki6myp58w8jhmzb94rzskh5n98glcn4ghr8sqnafi8"))))
7889 (build-system emacs-build-system)
7890 (propagated-inputs
7891 `(("emacs-visual-fill-column" ,emacs-visual-fill-column)))
7892 (home-page "https://github.com/joostkremers/writeroom-mode")
7893 (synopsis "Distraction-free writing for Emacs")
7894 (description
7895 "This package defines a minor mode for distraction-free writing. Some of
7896 the default effects include entering fullscreen, deleting other windows of the
7897 current frame, disabling the mode line, and adding margins to the buffer that
7898 restrict the text width to 80 characters.")
7899 (license license:bsd-3)))
7900
7901 (define-public emacs-ido-completing-read+
7902 (package
7903 (name "emacs-ido-completing-read+")
7904 (version "3.12")
7905 (source (origin
7906 (method url-fetch)
7907 (uri (string-append "https://raw.githubusercontent.com"
7908 "/DarwinAwardWinner/ido-ubiquitous/v"
7909 version "/ido-completing-read+.el"))
7910 (file-name (string-append "ido-completing-read+-" version ".el"))
7911 (sha256
7912 (base32
7913 "1cyalb0p7nfsm4n6n9q6rjmvn6adqc0fq8ybnlj3n41n289dkfjf"))))
7914 (build-system emacs-build-system)
7915 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
7916 (synopsis "Replacement for completing-read using ido")
7917 (description
7918 "The ido-completing-read+ function is a wrapper for ido-completing-read.
7919 Importantly, it detects edge cases that ordinary ido cannot handle and either
7920 adjusts them so ido can handle them, or else simply falls back to the standard
7921 Emacs completion function instead.")
7922 (license license:gpl3+)))
7923
7924 (define-public emacs-ido-ubiquitous
7925 (package
7926 (name "emacs-ido-ubiquitous")
7927 (version "3.12")
7928 (source (origin
7929 (method url-fetch)
7930 (uri (string-append "https://raw.githubusercontent.com"
7931 "/DarwinAwardWinner/ido-ubiquitous/v"
7932 version "/ido-ubiquitous.el"))
7933 (file-name (string-append "ido-ubiquitous-" version ".el"))
7934 (sha256
7935 (base32
7936 "197ypji0fb6jsdcq40rpnknwlh3imas6s6jbsvkfm0pz9988c3q2"))))
7937 (build-system emacs-build-system)
7938 (propagated-inputs
7939 `(("emacs-ido-completing-read+" ,emacs-ido-completing-read+)))
7940 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
7941 (synopsis "Use ido (nearly) everywhere")
7942 (description
7943 "Ido-ubiquitous enables ido-style completion for almost every function
7944 that uses the standard completion function completing-read.")
7945 (license license:gpl3+)))
7946
7947 (define-public emacs-yaml-mode
7948 (package
7949 (name "emacs-yaml-mode")
7950 (version "0.0.14")
7951 (source (origin
7952 (method git-fetch)
7953 (uri (git-reference
7954 (url "https://github.com/yoshiki/yaml-mode.git")
7955 (commit version)))
7956 (file-name (git-file-name name version))
7957 (sha256
7958 (base32
7959 "18g064ardqi1f3xz7j6rs1x9fvv9sn0iq9vgid8c6qvxq7gwj00r"))))
7960 (build-system emacs-build-system)
7961 (home-page "https://github.com/yoshiki/yaml-mode")
7962 (synopsis "Major mode for editing YAML files")
7963 (description
7964 "Yaml-mode is an Emacs major mode for editing files in the YAML data
7965 serialization format. It was initially developed by Yoshiki Kurihara and many
7966 features were added by Marshall Vandegrift. As YAML and Python share the fact
7967 that indentation determines structure, this mode provides indentation and
7968 indentation command behavior very similar to that of python-mode.")
7969 (license license:gpl3+)))
7970
7971 (define-public emacs-gitlab-ci-mode
7972 (package
7973 (name "emacs-gitlab-ci-mode")
7974 (version "20190425.11.10")
7975 (source (origin
7976 (method git-fetch)
7977 (uri (git-reference
7978 (url "https://gitlab.com/joewreschnig/gitlab-ci-mode.git")
7979 (commit (string-append "v" version))))
7980 (file-name (git-file-name name version))
7981 (sha256
7982 (base32
7983 "1jkp9mnbiccqnha9zs646znqyqvy5jjb81kah7ghbkzdqqk2avm0"))))
7984 (build-system emacs-build-system)
7985 (propagated-inputs
7986 `(("emacs-yaml-mode" ,emacs-yaml-mode)))
7987 (home-page "https://gitlab.com/joewreschnig/gitlab-ci-mode/")
7988 (synopsis "Emacs mode for editing GitLab CI files")
7989 (description
7990 "@code{gitlab-ci-mode} is an Emacs major mode for editing GitLab CI
7991 files. It provides syntax highlighting and completion for keywords and
7992 special variables. An interface to GitLab’s CI file linter is also provided
7993 via @code{gitlab-ci-lint}.")
7994 (license license:gpl3+)))
7995
7996 (define-public emacs-gitlab-snip-helm
7997 (package
7998 (name "emacs-gitlab-snip-helm")
7999 (version "0.0.2")
8000 (source (origin
8001 (method git-fetch)
8002 (uri (git-reference
8003 (url "https://gitlab.com/sasanidas/gitlab-snip-helm.git")
8004 (commit version)))
8005 (file-name (git-file-name name version))
8006 (sha256
8007 (base32
8008 "1c5js19zyb1z61hapvbfcl5jhrjqij46cxldgqij6al0scw44dga"))))
8009 (build-system emacs-build-system)
8010 (propagated-inputs
8011 `(("emacs-dash" ,emacs-dash)
8012 ("emacs-helm" ,emacs-helm)))
8013 (home-page "https://gitlab.com/sasanidas/gitlab-snip-helm/")
8014 (synopsis "GitLab snippet API interaction for Emacs")
8015 (description "This package provides GitLab snippet API interaction for
8016 Emacs.")
8017 (license license:gpl3+)))
8018
8019 (define-public emacs-web-mode
8020 (package
8021 (name "emacs-web-mode")
8022 (version "17")
8023 (source
8024 (origin
8025 (method git-fetch)
8026 (uri (git-reference
8027 (url "https://github.com/fxbois/web-mode.git")
8028 (commit (string-append "v" version))))
8029 (file-name (git-file-name name version))
8030 (sha256
8031 (base32 "0jr5a1nzp8nbdng0k2fcaymiiv9ngrbknbrqaswgqn3akvx793jk"))))
8032 (build-system emacs-build-system)
8033 (synopsis "Major mode for editing web templates")
8034 (description "Web mode is an Emacs major mode for editing web templates
8035 aka HTML files embedding parts (CSS/JavaScript) and blocks (pre rendered by
8036 client/server side engines). Web mode is compatible with many template
8037 engines: PHP, JSP, ASP, Django, Twig, Jinja, Mustache, ERB, FreeMarker,
8038 Velocity, Cheetah, Smarty, CTemplate, Mustache, Blade, ErlyDTL, Go Template,
8039 Dust.js, React/JSX, Angularjs, ejs, etc.")
8040 (home-page "http://web-mode.org/")
8041 (license license:gpl3+)))
8042
8043 (define-public emacs-wgrep
8044 (package
8045 (name "emacs-wgrep")
8046 (version "2.3.2")
8047 (source (origin
8048 (method git-fetch)
8049 (uri (git-reference
8050 (url "https://github.com/mhayashi1120/Emacs-wgrep")
8051 (commit version)))
8052 (file-name (git-file-name name version))
8053 (sha256
8054 (base32
8055 "00cwqzb94jlq4mwgv8z7r3mn0a6mhq95z6j189kacq9g4473zh8d"))))
8056 (build-system emacs-build-system)
8057 (home-page "https://github.com/mhayashi1120/Emacs-wgrep")
8058 (synopsis "Edit a grep buffer and apply those changes to the files")
8059 (description
8060 "Emacs wgrep allows you to edit a grep buffer and apply those changes
8061 to the file buffer. Several backends are supported beside the classic grep:
8062 ack, ag, helm and pt.")
8063 (license license:gpl3+)))
8064
8065 (define-public emacs-helm
8066 (package
8067 (name "emacs-helm")
8068 (version "3.6.3")
8069 (source
8070 (origin
8071 (method git-fetch)
8072 (uri (git-reference
8073 (url "https://github.com/emacs-helm/helm.git")
8074 (commit (string-append "v" version))))
8075 (file-name (git-file-name name version))
8076 (sha256
8077 (base32 "175v0x2w3if2r9k5l8n7gf256v9y8zwxwgfnpm3j4bldrnyxqjg0"))))
8078 (build-system emacs-build-system)
8079 (propagated-inputs
8080 `(("emacs-async" ,emacs-async)
8081 ("emacs-popup" ,emacs-popup)))
8082 (home-page "https://emacs-helm.github.io/helm/")
8083 (synopsis "Incremental completion and selection narrowing
8084 framework for Emacs")
8085 (description "Helm is incremental completion and selection narrowing
8086 framework for Emacs. It will help steer you in the right direction when
8087 you're looking for stuff in Emacs (like buffers, files, etc). Helm is a fork
8088 of @code{anything.el} originally written by Tamas Patrovic and can be
8089 considered to be its successor. Helm sets out to clean up the legacy code in
8090 @code{anything.el} and provide a cleaner, leaner and more modular tool, that's
8091 not tied in the trap of backward compatibility.")
8092 (license license:gpl3+)))
8093
8094 (define-public emacs-helm-org
8095 (let ((commit "8457e1e46227bf87726e05c42cec5a4b51c2ef7b")
8096 (revision "3"))
8097 (package
8098 (name "emacs-helm-org")
8099 (version (git-version "1.0" revision commit))
8100 (source
8101 (origin
8102 (method git-fetch)
8103 (uri (git-reference
8104 (url "https://github.com/emacs-helm/helm-org.git")
8105 (commit commit)))
8106 (file-name (git-file-name name version))
8107 (sha256
8108 (base32 "0kcjhwwi492n9m2w894hvdavfvhj45zygy7bwvx103wvpay5h6h6"))))
8109 (build-system emacs-build-system)
8110 (propagated-inputs
8111 `(("emacs-helm" ,emacs-helm)))
8112 (home-page "https://github.com/emacs-helm/helm-org")
8113 (synopsis "Helm interface to the Silver Searcher")
8114 (description
8115 "This package provides a frontend for grepping tools like ag and ack,
8116 as well as features for editing search results.")
8117 (license license:gpl3+))))
8118
8119 (define-public emacs-helm-swoop
8120 (package
8121 (name "emacs-helm-swoop")
8122 (version "2.0.0")
8123 (source
8124 (origin
8125 (method git-fetch)
8126 (uri (git-reference
8127 (url "https://github.com/emacsorphanage/helm-swoop.git")
8128 (commit version)))
8129 (file-name (git-file-name name version))
8130 (sha256
8131 (base32 "0k0ns92g45x8dbymqpl6ylk5mj3wiw2h03f48q5cy1z8in0c4rjd"))))
8132 (build-system emacs-build-system)
8133 (propagated-inputs
8134 `(("emacs-helm" ,emacs-helm)))
8135 (home-page "https://github.com/emacsorphanage/helm-swoop")
8136 (synopsis "Filter and jump to lines in an Emacs buffer using Helm")
8137 (description
8138 "This package builds on the Helm interface to provide several commands
8139 for search-based navigation of buffers.")
8140 (license license:gpl2+)))
8141
8142 (define-public emacs-helm-ag
8143 (package
8144 (name "emacs-helm-ag")
8145 (version "0.59")
8146 (source
8147 (origin
8148 (method git-fetch)
8149 (uri (git-reference
8150 (url "https://github.com/syohex/emacs-helm-ag.git")
8151 (commit version)))
8152 (file-name (git-file-name name version))
8153 (sha256
8154 (base32 "0vsz2b5qw4qahlf74059z4p1grinhfz28f0psw4c3qf4jasv3b9j"))))
8155 (build-system emacs-build-system)
8156 (propagated-inputs
8157 `(("emacs-helm" ,emacs-helm)))
8158 (home-page "https://github.com/syohex/emacs-helm-ag")
8159 (synopsis "Helm interface to the Silver Searcher")
8160 (description
8161 "This package provides a frontend for grepping tools like ag and ack,
8162 as well as features for editing search results.")
8163 (license license:gpl3+)))
8164
8165 ;; There hasn't been a tag or release since 2016, so we take the latest
8166 ;; commit.
8167 (define-public emacs-helm-projectile
8168 (let ((commit "5328b74dddcee8d1913803ca8167868831a07463")
8169 (version "0.14.0")
8170 (revision "1"))
8171 (package
8172 (name "emacs-helm-projectile")
8173 (version (git-version version revision commit))
8174 (source
8175 (origin
8176 (method git-fetch)
8177 (uri (git-reference
8178 (url "https://github.com/bbatsov/helm-projectile.git")
8179 (commit commit)))
8180 (file-name (git-file-name name version))
8181 (sha256
8182 (base32 "0a811cblrvc8llpv771b8dppgxs6bwjyvjy3qn2xns4nigvn93s0"))))
8183 (build-system emacs-build-system)
8184 (propagated-inputs
8185 `(("emacs-helm" ,emacs-helm)
8186 ("emacs-projectile" ,emacs-projectile)))
8187 (home-page "https://github.com/bbatsov/helm-projectile")
8188 (synopsis "Helm integration for Projectile")
8189 (description
8190 "This Emacs library provides a Helm interface for Projectile.")
8191 (license license:gpl3+))))
8192
8193 (define-public emacs-taskrunner
8194 (let ((commit "3afd4a546d42339543d3d4e51b175fc3e82b3358")
8195 (revision "1"))
8196 (package
8197 (name "emacs-taskrunner")
8198 (version (git-version "0.6" revision commit))
8199 (source
8200 (origin
8201 (method git-fetch)
8202 (uri (git-reference
8203 (url "https://github.com/emacs-taskrunner/emacs-taskrunner.git")
8204 (commit commit)))
8205 (file-name (git-file-name name version))
8206 (sha256
8207 (base32
8208 "1lkdvmjn3alhqxq2i64sdr977sbw3g0b2670d9bwyzi67qh0jxrv"))))
8209 (build-system emacs-build-system)
8210 (propagated-inputs
8211 `(("emacs-async" ,emacs-async)
8212 ("emacs-projectile" ,emacs-projectile)))
8213 (home-page "https://github.com/emacs-taskrunner/emacs-taskrunner")
8214 (synopsis "Retrieve tasks from various build systems and task-runners")
8215 (description "This package parses Makefiles and build-system files for
8216 multiple project types.")
8217 (license license:gpl3+))))
8218
8219 (define-public emacs-ivy-taskrunner
8220 (let ((commit "75d8d67cfe3c29663fe0f5508a887adf40ed5162")
8221 (revision "1"))
8222 (package
8223 (name "emacs-ivy-taskrunner")
8224 (version (git-version "0.9" revision commit))
8225 (source
8226 (origin
8227 (method git-fetch)
8228 (uri (git-reference
8229 (url "https://github.com/emacs-taskrunner/ivy-taskrunner.git")
8230 (commit commit)))
8231 (file-name (git-file-name name version))
8232 (sha256
8233 (base32
8234 "1wf4s4k0ap21f7g5w6128an8nsvbja7f5n889vcml5b6gjz058db"))))
8235 (build-system emacs-build-system)
8236 (propagated-inputs
8237 `(("emacs-ivy" ,emacs-ivy)
8238 ("emacs-taskrunner" ,emacs-taskrunner)
8239 ("emacs-projectile" ,emacs-projectile)))
8240 (home-page "https://github.com/emacs-taskrunner/ivy-taskrunner")
8241 (synopsis "Retrieve build-system tasks using Ivy")
8242 (description "This package provides an Ivy interface for selecting
8243 Makefile targets.")
8244 (license license:gpl3+))))
8245
8246 (define-public emacs-helm-taskrunner
8247 (let ((commit "1910dac19cbc7bd4fd08b0faf9affd455339fbea")
8248 (revision "1"))
8249 (package
8250 (name "emacs-helm-taskrunner")
8251 (version (git-version "0.9" revision commit))
8252 (source
8253 (origin
8254 (method git-fetch)
8255 (uri (git-reference
8256 (url "https://github.com/emacs-taskrunner/helm-taskrunner.git")
8257 (commit commit)))
8258 (file-name (git-file-name name version))
8259 (sha256
8260 (base32
8261 "182lmr858fx6rdhp1fy7kv8dvrhzcnxzwfck1q22s6xs8x85d5q7"))))
8262 (build-system emacs-build-system)
8263 (propagated-inputs
8264 `(("emacs-helm" ,emacs-helm)
8265 ("emacs-taskrunner" ,emacs-taskrunner)
8266 ("emacs-projectile" ,emacs-projectile)))
8267 (home-page "https://github.com/emacs-taskrunner/helm-taskrunner")
8268 (synopsis "Retrieve build-system tasks using Helm")
8269 (description "This package provides a Helm interface for selecting
8270 Makefile targets.")
8271 (license license:gpl3+))))
8272
8273 (define-public emacs-helm-make
8274 (let ((commit "feae8df22bc4b20705ea08ac9adfc2b43bb348d0")
8275 (revision "1"))
8276 (package
8277 (name "emacs-helm-make")
8278 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
8279 (source
8280 (origin
8281 (method git-fetch)
8282 (uri (git-reference
8283 (url "https://github.com/abo-abo/helm-make.git")
8284 (commit commit)))
8285 (file-name (git-file-name name version))
8286 (sha256
8287 (base32
8288 "1y2v77mmd1bfkkz51cnk1l0dg3lvvxc39wlamnm7wjns66dbvlam"))))
8289 (build-system emacs-build-system)
8290 (propagated-inputs
8291 `(("emacs-helm" ,emacs-helm)
8292 ("emacs-projectile" ,emacs-projectile)))
8293 (home-page "https://github.com/abo-abo/helm-make")
8294 (synopsis "Select a Makefile target with helm")
8295 (description "@code{helm-make} or @code{helm-make-projectile} will give
8296 you a @code{helm} selection of directory Makefile's targets. Selecting a
8297 target will call @code{compile} on it.")
8298 (license license:gpl3+))))
8299
8300 (define-public emacs-cider
8301 (package
8302 (name "emacs-cider")
8303 (version "0.25.0")
8304 (source
8305 (origin
8306 (method git-fetch)
8307 (uri (git-reference
8308 (url "https://github.com/clojure-emacs/cider.git")
8309 (commit (string-append "v" version))))
8310 (file-name (git-file-name name version))
8311 (sha256
8312 (base32 "1sdd7vzw948q01kc8im1asiq1j06q0mnn2s8kj83f8sbdnfy0qbk"))))
8313 (build-system emacs-build-system)
8314 (arguments
8315 '(#:exclude ;don't exclude 'cider-test.el'
8316 '("^\\.dir-locals\\.el$" "^test/")))
8317 (propagated-inputs
8318 `(("emacs-clojure-mode" ,emacs-clojure-mode)
8319 ("emacs-parseedn" ,emacs-parseedn)
8320 ("emacs-pkg-info" ,emacs-pkg-info)
8321 ("emacs-queue" ,emacs-queue)
8322 ("emacs-sesman" ,emacs-sesman)
8323 ("emacs-spinner" ,emacs-spinner)))
8324 (home-page "https://cider.mx/")
8325 (synopsis "Clojure development environment for Emacs")
8326 (description
8327 "CIDER (Clojure Interactive Development Environment that Rocks) aims to
8328 provide an interactive development experience similar to the one you'd get
8329 when programming in Emacs Lisp, Common Lisp (with SLIME or Sly), Scheme (with
8330 Geiser) and Smalltalk.
8331
8332 CIDER is the successor to the now deprecated combination of using SLIME +
8333 swank-clojure for Clojure development.
8334
8335 There are plenty of differences between CIDER and SLIME, but the core ideas
8336 are pretty much the same (and SLIME served as the principle inspiration for
8337 CIDER).")
8338 (license license:gpl3+)))
8339
8340 ;; There hasn't been a tag or release since 2016, so we take the latest
8341 ;; commit.
8342 (define-public emacs-sly
8343 (let ((commit "6a2f543cb21f14104c2253af5a1427b884a987ae")
8344 ;; Update together with sbcl-slynk-boot0.
8345 (revision "5"))
8346 (package
8347 (name "emacs-sly")
8348 (version (git-version "1.0.0" revision commit))
8349 (source
8350 (origin
8351 (method git-fetch)
8352 (uri (git-reference
8353 (url "https://github.com/joaotavora/sly.git")
8354 (commit commit)))
8355 (file-name (git-file-name name version))
8356 (sha256
8357 (base32
8358 "0wbpg9p9yg2hd62l15pvy50fk3hndq5zzyqlyyf04g368s895144"))))
8359 (build-system emacs-build-system)
8360 (native-inputs
8361 `(("texinfo" ,texinfo)))
8362 (arguments
8363 `(#:include (cons* "^contrib\\/" "^lib\\/" "^slynk\\/" %default-include)
8364 #:phases
8365 ;; The package provides autoloads.
8366 (modify-phases %standard-phases
8367 (delete 'make-autoloads)
8368 (add-before 'install 'install-doc
8369 (lambda* (#:key outputs #:allow-other-keys)
8370 (let* ((out (assoc-ref outputs "out"))
8371 (info-dir (string-append out "/share/info"))
8372 (doc-dir (string-append out "/share/doc/"
8373 ,name "-" ,version))
8374 (doc-files '(;; "doc/sly-refcard.pdf" ; See sly-refcard.pdf below.
8375 "README.md" "NEWS.md" "PROBLEMS.md"
8376 "CONTRIBUTING.md")))
8377 (with-directory-excursion "doc"
8378 (substitute* "Makefile"
8379 (("infodir=/usr/local/info")
8380 (string-append "infodir=" info-dir))
8381 ;; Don't rebuild contributors.texi since we are not in
8382 ;; the git repo.
8383 (("contributors.texi: Makefile texinfo-tabulate.awk")
8384 "contributors.texi:"))
8385 (invoke "make" "html/index.html")
8386 (invoke "make" "sly.info")
8387 ;; TODO: We need minimal texlive with "preprint" package
8388 ;; (for fullpage.sty). (invoke "make" "sly-refcard.pdf")
8389 (install-file "sly.info" info-dir)
8390 (copy-recursively "html" (string-append doc-dir "/html")))
8391 (for-each (lambda (f)
8392 (install-file f doc-dir)
8393 (delete-file f))
8394 doc-files)
8395 (delete-file-recursively "doc")
8396 #t))))))
8397 (home-page "https://github.com/joaotavora/sly")
8398 (synopsis "Sylvester the Cat's Common Lisp IDE")
8399 (description
8400 "SLY is Sylvester the Cat's Common Lisp IDE. SLY is a fork of SLIME, and
8401 contains the following improvements over it:
8402
8403 @enumerate
8404 @item Completely redesigned REPL based on Emacs's own full-featured
8405 @code{comint.el}.
8406 @item Live code annotations via a new @code{sly-stickers} contrib.
8407 @item Consistent interactive button interface. Everything can be copied to
8408 the REPL.
8409 @item Multiple inspectors with independent history.
8410 @item Regexp-capable @code{M-x sly-apropos}.
8411 @item Contribs are first class SLY citizens and enabled by default.
8412 @item Use ASDF to loads contribs on demand.
8413 @end enumerate
8414
8415 SLY tracks SLIME's bugfixes and all its familiar features (debugger, inspector,
8416 xref, etc...) are still available, but with better integration.")
8417 (license license:gpl3+))))
8418
8419 (define-public emacs-sly-quicklisp
8420 (let ((commit "01ebe3976a244309f2e277c09206831135a0b66c")
8421 (revision "1"))
8422 (package
8423 (name "emacs-sly-quicklisp")
8424 (version (git-version "0.0.0" revision commit))
8425 (home-page "https://github.com/joaotavora/sly-quicklisp")
8426 (source
8427 (origin
8428 (method git-fetch)
8429 (uri (git-reference
8430 (url home-page)
8431 (commit commit)))
8432 (file-name (git-file-name name version))
8433 (sha256
8434 (base32
8435 "1vfqmvayf35g6y3ljsm3rlzv5jm50qikhh4lv2zkkswj6gkkb1cv"))))
8436 (build-system emacs-build-system)
8437 (propagated-inputs
8438 `(("emacs-sly" ,emacs-sly)))
8439 (arguments
8440 `(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
8441 #:phases
8442 ;; The package provides autoloads.
8443 (modify-phases %standard-phases
8444 (delete 'make-autoloads)
8445 (delete 'enable-autoloads-compilation))))
8446 (synopsis "Quicklisp support for SLY")
8447 (description
8448 "@command{sly-quicklisp} is an external contrib for SLY that provides a
8449 sly-quickload command that prompts the user for a package to install. ")
8450 (license license:gpl3+))))
8451
8452 (define-public emacs-sly-asdf
8453 (let ((commit "32ce14994e8faee9321605cec36d156b02996c46")
8454 (revision "4"))
8455 (package
8456 (name "emacs-sly-asdf")
8457 (version (git-version "0.1.0" revision commit))
8458 (home-page "https://github.com/mmgeorge/sly-asdf")
8459 (source
8460 (origin
8461 (method git-fetch)
8462 (uri (git-reference
8463 (url home-page)
8464 (commit commit)))
8465 (file-name (git-file-name name version))
8466 (sha256
8467 (base32
8468 "09x8l37wwqw74xc2frwzbfdb1if8rb3szg5akdk3v2qhik4sm3dd"))))
8469 (build-system emacs-build-system)
8470 (propagated-inputs
8471 `(("emacs-sly" ,emacs-sly)
8472 ("emacs-popup" ,emacs-popup)))
8473 (arguments
8474 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)))
8475 (synopsis "ASDF contrib for SLY")
8476 (description
8477 "@command{sly-asdf} is an external contrib for SLY that provides
8478 additional support for working with ASDF projects.")
8479 (license license:gpl3+))))
8480
8481 (define-public emacs-sly-named-readtables
8482 (let ((commit "a5a42674ccffa97ccd5e4e9742beaf3ea719931f")
8483 (revision "1"))
8484 (package
8485 (name "emacs-sly-named-readtables")
8486 (version (git-version "0.1" revision commit))
8487 (home-page "https://github.com/joaotavora/sly-named-readtables")
8488 (source
8489 (origin
8490 (method git-fetch)
8491 (uri (git-reference
8492 (url home-page)
8493 (commit commit)))
8494 (file-name (git-file-name name version))
8495 (sha256
8496 (base32
8497 "16asd119rzqrlclps2q6yrkis8jy5an5xgzzqvb7jdyq39zxg54q"))))
8498 (build-system emacs-build-system)
8499 (propagated-inputs
8500 `(("emacs-sly" ,emacs-sly)))
8501 (arguments
8502 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
8503 #:phases (modify-phases %standard-phases
8504 ;; Byte compilation of the autoload file fails.
8505 (delete 'enable-autoloads-compilation))))
8506 (synopsis "Named-readtables support for SLY")
8507 (description
8508 "@command{sly-named-readtables} is an external contrib for SLY that
8509 enables different readtables to be active in different parts of the same
8510 file.")
8511 (license license:gpl3+))))
8512
8513 (define-public emacs-sly-macrostep
8514 (let ((commit "be2d24545092d164be1a91031d8881afd29c9ec0")
8515 (revision "1"))
8516 (package
8517 (name "emacs-sly-macrostep")
8518 (version (git-version "0.1" revision commit))
8519 (home-page "https://github.com/joaotavora/sly-macrostep")
8520 (source
8521 (origin
8522 (method git-fetch)
8523 (uri (git-reference
8524 (url home-page)
8525 (commit commit)))
8526 (file-name (git-file-name name version))
8527 (sha256
8528 (base32
8529 "0v8m3zkccpqd2l8m9340y672l2mm3mrry8422nva5kfvpcwdayqb"))))
8530 (build-system emacs-build-system)
8531 (propagated-inputs
8532 `(("emacs-sly" ,emacs-sly)
8533 ("emacs-macrostep" ,emacs-macrostep)))
8534 (arguments
8535 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
8536 #:phases
8537 ;; The package provides autoloads.
8538 (modify-phases %standard-phases
8539 (delete 'make-autoloads)
8540 (delete 'enable-autoloads-compilation))))
8541 (synopsis "Expand Common Lisp macros inside source files with SLY")
8542 (description
8543 "@command{sly-macrostep} is a SLY contrib for expanding CL macros right
8544 inside the source file.")
8545 (license license:gpl3+))))
8546
8547 (define-public emacs-sly-package-inferred
8548 (let ((commit "800e71e2be631422277e2ec77e6d6f6ea20e95ef")
8549 (revision "1"))
8550 (package
8551 (name "emacs-sly-package-inferred")
8552 (version (git-version "0.1" revision commit))
8553 (home-page "https://github.com/40ants/sly-package-inferred")
8554 (source
8555 (origin
8556 (method git-fetch)
8557 (uri (git-reference
8558 (url home-page)
8559 (commit commit)))
8560 (file-name (git-file-name name version))
8561 (sha256
8562 (base32
8563 "1216idyp034nkqddhw4p53jkhhdxa6xnjjmsvijpf4rxqnfqvapg"))))
8564 (build-system emacs-build-system)
8565 (propagated-inputs
8566 `(("emacs-sly" ,emacs-sly)))
8567 (arguments
8568 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
8569 #:phases
8570 ;; The package provides autoloads.
8571 (modify-phases %standard-phases
8572 (delete 'make-autoloads))))
8573 (synopsis "Improved package inferred systems support for SLY")
8574 (description
8575 "@command{sly-package-inferred} is an external contrib for SLY that
8576 replaces its completion with a function which is better suited for systems
8577 using package inferred style.")
8578 (license license:gpl3+))))
8579
8580 (define-public emacs-lua-mode
8581 (let ((commit "35b6e4c20b8b4eaf783ccc8e613d0dd06dbd165c")
8582 (revision "0"))
8583 (package
8584 (name "emacs-lua-mode")
8585 (version (git-version "20200508" revision commit))
8586 (home-page "https://github.com/immerrr/lua-mode/")
8587 (source (origin
8588 (method git-fetch)
8589 (uri (git-reference
8590 (url home-page)
8591 (commit commit)))
8592 (file-name (git-file-name name version))
8593 (sha256
8594 (base32
8595 "1hai6rqjm5py0bp57nhggmj9qigwdj3a46ngacpnjc1qmy9kkgfk"))))
8596 (build-system emacs-build-system)
8597 (arguments
8598 `(#:tests? #t
8599 #:test-command '("buttercup" "-l" "lua-mode.el")))
8600 (native-inputs
8601 `(("emacs-buttercup" ,emacs-buttercup)
8602 ("lua" ,lua)))
8603 (synopsis "Major mode for lua")
8604 (description
8605 "This Emacs package provides a mode for @uref{https://www.lua.org/,
8606 Lua programming language}.")
8607 (license license:gpl2+))))
8608
8609 (define-public emacs-ebuild-mode
8610 (package
8611 (name "emacs-ebuild-mode")
8612 (version "1.50")
8613 (source
8614 (origin
8615 (method url-fetch)
8616 (uri (string-append
8617 "https://dev.gentoo.org/~ulm/emacs/"
8618 "ebuild-mode-" version ".tar.xz"))
8619 (file-name (string-append name "-" version ".tar.xz"))
8620 (sha256
8621 (base32 "0bgi98vx6ahxijw69kfdiy3rkjdg7yi6k3bkjyasak5920m6fj1d"))))
8622 (build-system emacs-build-system)
8623 (arguments
8624 '(#:phases
8625 (modify-phases %standard-phases
8626 (add-after 'install 'install-doc
8627 (lambda* (#:key outputs #:allow-other-keys)
8628 (invoke "make" "ebuild-mode.info")
8629 (install-file "ebuild-mode.info"
8630 (string-append (assoc-ref outputs "out")
8631 "/share/info"))
8632 #t)))))
8633 (native-inputs
8634 `(("texinfo" ,texinfo)))
8635 (home-page "https://devmanual.gentoo.org")
8636 (synopsis "Major modes for Gentoo package files")
8637 (description
8638 "This Emacs package provides modes for ebuild, eclass, eblit, GLEP42
8639 news items, openrc and runscripts.")
8640 (license license:gpl2+)))
8641
8642 (define-public emacs-evil
8643 (package
8644 (name "emacs-evil")
8645 (version "1.14.0")
8646 (source
8647 (origin
8648 (method git-fetch)
8649 (uri (git-reference
8650 (url "https://github.com/emacs-evil/evil")
8651 (commit version)))
8652 (file-name (git-file-name name version))
8653 (sha256
8654 (base32
8655 "17xrn3s6a4afmls8fw8nnxa1jq9dmj2qqrxa2vngh50hxpz8840p"))))
8656 (arguments
8657 `(#:phases
8658 (modify-phases %standard-phases
8659 (add-before 'check 'fix-test-helpers
8660 (lambda _
8661 (substitute* "evil-test-helpers.el"
8662 (("\\(undo-tree-mode 1\\)") ""))
8663 #t)))))
8664 (build-system emacs-build-system)
8665 (home-page "https://github.com/emacs-evil/evil")
8666 (synopsis "Extensible Vi layer for Emacs")
8667 (description
8668 "Evil is an extensible vi layer for Emacs. It emulates the
8669 main features of Vim, and provides facilities for writing custom
8670 extensions.")
8671 (license license:gpl3+)))
8672
8673 (define-public emacs-evil-collection
8674 (let ((commit "c68aed6a9694836602ada224160bc5b4c0a37919")
8675 (revision "15"))
8676 (package
8677 (name "emacs-evil-collection")
8678 (version (git-version "0.0.3" revision commit))
8679 (source (origin
8680 (method git-fetch)
8681 (uri (git-reference
8682 (url "https://github.com/emacs-evil/evil-collection")
8683 (commit commit)))
8684 (file-name (git-file-name name version))
8685 (sha256
8686 (base32
8687 "1xhrzl0vy540a572f9fnh5a039bpqsrkv0kh6bqw0rki70w7x0xx"))))
8688 (build-system emacs-build-system)
8689 (propagated-inputs
8690 `(("emacs-evil" ,emacs-evil)
8691 ("emacs-annalist" ,emacs-annalist)))
8692 (arguments
8693 `(#:include (cons* "^modes\\/" %default-include)))
8694 (home-page "https://github.com/emacs-evil/evil-collection")
8695 (synopsis "Collection of Evil bindings for many major and minor modes")
8696 (description "This is a collection of Evil bindings for the parts of
8697 Emacs that Evil does not cover properly by default, such as @code{help-mode},
8698 @code{M-x calendar}, Eshell and more.")
8699 (license license:gpl3+))))
8700
8701 (define-public emacs-goto-chg
8702 (let ((commit "1829a13026c597e358f716d2c7793202458120b5")
8703 (version "1.7.3")
8704 (revision "1"))
8705 (package
8706 (name "emacs-goto-chg")
8707 (version (git-version version revision commit))
8708 (source
8709 (origin
8710 (method git-fetch)
8711 (uri (git-reference
8712 (url "https://github.com/emacs-evil/goto-chg")
8713 (commit commit)))
8714 (file-name (git-file-name name version))
8715 (sha256
8716 (base32
8717 "1y603maw9xwdj3qiarmf1bp13461f9f5ackzicsbynl0i9la3qki"))))
8718 (build-system emacs-build-system)
8719 (propagated-inputs
8720 `(("emacs-undo-tree" ,emacs-undo-tree)))
8721 (home-page "https://github.com/emacs-evil/goto-chg")
8722 (synopsis "Go to the last change in the Emacs buffer")
8723 (description
8724 "This package provides @code{M-x goto-last-change} command that goes to
8725 the point of the most recent edit in the current Emacs buffer. When repeated,
8726 go to the second most recent edit, etc. Negative argument, @kbd{C-u -}, is
8727 used for reverse direction.")
8728 (license license:gpl2+))))
8729
8730 (define-public emacs-janpath-evil-numbers
8731 (let ((commit "d988041c1fe6e941dc8d591390750b237f71f524")
8732 (version "0.5")
8733 (revision "1"))
8734 (package
8735 (name "emacs-janpath-evil-numbers")
8736 (version (git-version version revision commit))
8737 (source
8738 (origin
8739 (method git-fetch)
8740 (uri (git-reference
8741 (url "https://github.com/janpath/evil-numbers")
8742 (commit commit)))
8743 (file-name (git-file-name name version))
8744 (sha256
8745 (base32
8746 "16zixhxxcb83m82f2cfiardfn99j3w41v6vh1qk6j9pplrlfw70v"))))
8747 (build-system emacs-build-system)
8748 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
8749 (home-page "https://github.com/janpath/evil-numbers")
8750 (synopsis "Increment and decrement numeric literals")
8751 (description
8752 "This package provides functionality to search for a number up to the
8753 end of a line and increment or decrement it.")
8754 (license license:gpl3+))))
8755
8756 (define-public emacs-evil-owl
8757 (let ((commit "24c5f43df375194386344e69bc720ea3986c9510")
8758 (revision "3"))
8759 (package
8760 (name "emacs-evil-owl")
8761 (version (git-version "0.0.1" revision commit))
8762 (source
8763 (origin
8764 (method git-fetch)
8765 (uri (git-reference
8766 (url "https://github.com/mamapanda/evil-owl")
8767 (commit commit)))
8768 (file-name (git-file-name name version))
8769 (sha256
8770 (base32
8771 "0bqzch14whlmrcasakah3psrzswvkzd7mmi8hx5s64kfp29wbdhi"))))
8772 (build-system emacs-build-system)
8773 (propagated-inputs
8774 `(("emacs-evil" ,emacs-evil)))
8775 (arguments
8776 `(#:tests? #t
8777 #:test-command '("make" "test")))
8778 (home-page "https://github.com/mamapanda/evil-owl")
8779 (synopsis "Preview candidates when using Evil registers and marks")
8780 (description
8781 "This package supplements Evil's register- and mark-based commands with
8782 a popup window for previewing candidates.")
8783 (license license:gpl3+))))
8784
8785 (define-public emacs-evil-args
8786 (let ((commit "758ad5ae54ad34202064fec192c88151c08cb387")
8787 (revision "1"))
8788 (package
8789 (name "emacs-evil-args")
8790 (version (git-version "1.0" revision commit))
8791 (source
8792 (origin
8793 (method git-fetch)
8794 (uri (git-reference
8795 (url "https://github.com/wcsmith/evil-args.git")
8796 (commit commit)))
8797 (file-name (git-file-name name version))
8798 (sha256
8799 (base32
8800 "0k35glgsirc3cph8v5hhjrqfh4ndwh8a28qbr03y3jl8s453xcj7"))))
8801 (build-system emacs-build-system)
8802 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
8803 (home-page "https://github.com/wcsmith/evil-args")
8804 (synopsis "Motions and text objects for delimited arguments in Evil")
8805 (description
8806 "This package provides motions and text objects for delimited
8807 arguments, such as arguments separated by commas and semicolons.")
8808 (license license:expat))))
8809
8810 (define-public emacs-evil-escape
8811 (package
8812 (name "emacs-evil-escape")
8813 (version "3.14")
8814 (source
8815 (origin
8816 (method git-fetch)
8817 (uri
8818 (git-reference
8819 (url "https://github.com/syl20bnr/evil-escape")
8820 (commit (string-append "v" version))))
8821 (file-name (git-file-name name version))
8822 (sha256
8823 (base32 "0s8lmmm25qabicwaj9jybpbd8mkc62yl7jnhk1lpablydjkv3w2i"))))
8824 (propagated-inputs
8825 `(("emacs-evil" ,emacs-evil)))
8826 (build-system emacs-build-system)
8827 (home-page "https://github.com/syl20bnr/evil-escape")
8828 (synopsis "Escape from insert state and everything else in Emacs")
8829 (description
8830 "Evil escape provides a customizable key sequence to escape from insert
8831 state and everything else in Emacs.")
8832 (license license:gpl3+)))
8833
8834 (define-public emacs-evil-exchange
8835 (let ((commit "47691537815150715e64e6f6ec79be7746c96120")
8836 (version "0.41")
8837 (revision "1"))
8838 (package
8839 (name "emacs-evil-exchange")
8840 (version (git-version version revision commit))
8841 (source
8842 (origin
8843 (method git-fetch)
8844 (uri (git-reference
8845 (url "https://github.com/Dewdrops/evil-exchange")
8846 (commit commit)))
8847 (file-name (git-file-name name version))
8848 (sha256
8849 (base32
8850 "0bjpn4yqig17ddym6wqq5fm1b294q74hzcbj9a6gs97fqiwf88xa"))))
8851 (build-system emacs-build-system)
8852 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
8853 (native-inputs `(("emacs-ert-runner" ,emacs-ert-runner)))
8854 (arguments
8855 `(#:phases
8856 (modify-phases %standard-phases
8857 (add-before 'check 'fix-makefile
8858 (lambda _
8859 (substitute* "Makefile"
8860 (("cask exec ") ""))
8861 #t)))
8862 #:tests? #t
8863 #:test-command '("make" "test")))
8864 (home-page "https://github.com/Dewdrops/evil-exchange")
8865 (synopsis "Exchange text easily within Evil")
8866 (description
8867 "This package, a port of @code{vim-exchange}, provides an Evil operator
8868 for exchanging text.")
8869 (license license:gpl3+))))
8870
8871 (define-public emacs-evil-replace-with-register
8872 (let ((commit "91cc7bf21a94703c441cc9212214075b226b7f67")
8873 (version "0.1")
8874 (revision "1"))
8875 (package
8876 (name "emacs-evil-replace-with-register")
8877 (version (git-version version revision commit))
8878 (source
8879 (origin
8880 (method git-fetch)
8881 (uri (git-reference
8882 (url "https://github.com/Dewdrops/evil-ReplaceWithRegister")
8883 (commit commit)))
8884 (file-name (git-file-name name version))
8885 (sha256
8886 (base32
8887 "14rpn76qrf287s3y2agmddcxi27r226i53ixjvd694ss039g0r11"))))
8888 (build-system emacs-build-system)
8889 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
8890 (home-page "https://github.com/Dewdrops/evil-ReplaceWithRegister")
8891 (synopsis "Quickly replace text with the contents of a register")
8892 (description
8893 "This package provides an Evil operator for replacing text with the
8894 contents of a register.")
8895 (license license:gpl3+))))
8896
8897 (define-public emacs-evil-indent-plus
8898 (let ((commit "0c7501e6efed661242c3a20e0a6c79a6455c2c40")
8899 (version "1.0.0")
8900 (revision "1"))
8901 (package
8902 (name "emacs-evil-indent-plus")
8903 (version (git-version version revision commit))
8904 (source
8905 (origin
8906 (method git-fetch)
8907 (uri (git-reference
8908 (url "https://github.com/TheBB/evil-indent-plus")
8909 (commit commit)))
8910 (file-name (git-file-name name version))
8911 (sha256
8912 (base32
8913 "1g6r1ydscwjvmhh1zg4q3nap4avk8lb9msdqrh7dff6pla0r2qs6"))))
8914 (build-system emacs-build-system)
8915 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
8916 (home-page "https://github.com/TheBB/evil-indent-plus")
8917 (synopsis "Text objects based on indentation")
8918 (description
8919 "This package adds new text objects for @code{evil-mode} based on
8920 blocks having the same or higher indentation, including or excluding
8921 surrounding lines.")
8922 (license license:gpl2+))))
8923
8924 (define-public emacs-evil-text-object-python
8925 (let ((commit "9a064fe6475429145cbcc3b270fcc963b67adb15")
8926 (version "1.0.1")
8927 (revision "1"))
8928 (package
8929 (name "emacs-evil-text-object-python")
8930 (version (git-version version revision commit))
8931 (source
8932 (origin
8933 (method git-fetch)
8934 (uri (git-reference
8935 (url "https://github.com/wbolster/evil-text-object-python")
8936 (commit commit)))
8937 (file-name (git-file-name name version))
8938 (sha256
8939 (base32
8940 "074zpm6mmr1wfl6d5xdf8jk1fs4ccpbzf4ahhkwga9g71xiplszv"))))
8941 (build-system emacs-build-system)
8942 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
8943 (home-page "https://github.com/wbolster/evil-text-object-python")
8944 (synopsis "Text objects for Python")
8945 (description
8946 "This package provides @code{evil-mode} text objects for Python.")
8947 (license license:gpl3+))))
8948
8949 (define-public emacs-evil-lion
8950 (let ((commit "6b03593f5dd6e7c9ca02207f9a73615cf94c93ab")
8951 (revision "1"))
8952 (package
8953 (name "emacs-evil-lion")
8954 (version (git-version "0.0.2" revision commit))
8955 (source
8956 (origin
8957 (method git-fetch)
8958 (uri (git-reference
8959 (url "https://github.com/edkolev/evil-lion")
8960 (commit commit)))
8961 (file-name (git-file-name name version))
8962 (sha256
8963 (base32
8964 "1a162hynp0jcsn50c1w5a02mrw9w3q05c7lkqzqd25px3d0p772q"))))
8965 (build-system emacs-build-system)
8966 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
8967 (arguments
8968 `(#:tests? #t
8969 #:test-command '("make" "test")))
8970 (home-page "https://github.com/edkolev/evil-lion")
8971 (synopsis "Align operator for @code{evil-mode}")
8972 (description
8973 "This package, a port of @code{vim-lion}, provides an operator for
8974 aligning text objects based on separators.")
8975 (license license:gpl3+))))
8976
8977 (define-public emacs-evil-expat
8978 (let ((commit "f4fcd0aa3edc359adb5c986b5dd9188d220d84e2")
8979 (revision "1"))
8980 (package
8981 (name "emacs-evil-expat")
8982 (version (git-version "0.0.1" revision commit))
8983 (source
8984 (origin
8985 (method git-fetch)
8986 (uri (git-reference
8987 (url "https://github.com/edkolev/evil-expat")
8988 (commit commit)))
8989 (file-name (git-file-name name version))
8990 (sha256
8991 (base32
8992 "0872ix682hkdz0k8pn6sb54rqkx00rz5fxpd5j2snx406yagpaxz"))))
8993 (build-system emacs-build-system)
8994 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
8995 (arguments
8996 `(#:tests? #t
8997 #:test-command '("make" "test")))
8998 (home-page "https://github.com/edkolev/evil-expat")
8999 (synopsis "Extra @code{ex} commands for @code{evil-mode}")
9000 (description
9001 "This package provides additional commands for the @code{ex} command
9002 line, including functions for version control with Git and for copying and
9003 pasting into and from @code{tmux} paste buffers.")
9004 (license license:gpl3+))))
9005
9006 (define-public emacs-evil-nerd-commenter
9007 (package
9008 (name "emacs-evil-nerd-commenter")
9009 (version "3.3.8")
9010 (source
9011 (origin
9012 (method git-fetch)
9013 (uri (git-reference
9014 (url "https://github.com/redguardtoo/evil-nerd-commenter")
9015 (commit version)))
9016 (file-name (git-file-name name version))
9017 (sha256
9018 (base32
9019 "0qd5a89mzvdyhd8lm13iwp220vzpd6dajwx54frlc5bzsxdmg6vc"))))
9020 (build-system emacs-build-system)
9021 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9022 (arguments
9023 `(#:tests? #t
9024 #:test-command '("make" "test")))
9025 (home-page "https://github.com/redguardtoo/evil-nerd-commenter")
9026 (synopsis "Comment and uncomment lines efficiently")
9027 (description
9028 "This package provides text objects and operators for comments within
9029 @code{evil-mode}.")
9030 (license license:gpl3+)))
9031
9032 (define-public emacs-evil-visual-replace
9033 (package
9034 (name "emacs-evil-visual-replace")
9035 (version "0.0.5")
9036 (source
9037 (origin
9038 (method git-fetch)
9039 (uri (git-reference
9040 (url "https://github.com/troyp/evil-visual-replace")
9041 (commit version)))
9042 (file-name (git-file-name name version))
9043 (sha256
9044 (base32
9045 "1gfyrq7xfzmzh3x8k5f08n027dlbwi0pkkxf9c39fkxp4jngibsz"))))
9046 (build-system emacs-build-system)
9047 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9048 (home-page "https://github.com/troyp/evil-visual-replace")
9049 (synopsis "Replacement commands for @code{evil-mode} visual blocks")
9050 (description
9051 "This package provides versions of @code{query-replace} and
9052 @code{replace-regexp} that work for @code{evil-mode} visual blocks.")
9053 (license license:gpl2+)))
9054
9055 (define-public emacs-evil-visualstar
9056 (let ((commit "06c053d8f7381f91c53311b1234872ca96ced752")
9057 (version "0.0.2")
9058 (revision "1"))
9059 (package
9060 (name "emacs-evil-visualstar")
9061 (version (git-version version revision commit))
9062 (source
9063 (origin
9064 (method git-fetch)
9065 (uri (git-reference
9066 (url "https://github.com/bling/evil-visualstar")
9067 (commit commit)))
9068 (file-name (git-file-name name version))
9069 (sha256
9070 (base32
9071 "0mkbzw12fav945icibc2293m5haxqr3hzkyli2cf4ssk6yvn0x4c"))))
9072 (build-system emacs-build-system)
9073 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9074 (home-page "https://github.com/bling/evil-visualstar")
9075 (synopsis "Instantly search using the visual selection")
9076 (description
9077 "This package provides @code{evil-mode} functions for using selected text
9078 to search.")
9079 (license license:gpl3+))))
9080
9081 (define-public emacs-monky
9082 (package
9083 (name "emacs-monky")
9084 (version "0.1")
9085 (source (origin
9086 (method git-fetch)
9087 (uri (git-reference
9088 (url "https://github.com/ananthakumaran/monky.git")
9089 (commit version)))
9090 (file-name (git-file-name name version))
9091 (sha256
9092 (base32
9093 "1fgn7al4zwz2k5wb5dy3byqg9lsrjk9fra341mxh5ma2pfwxjgps"))))
9094 (build-system emacs-build-system)
9095 (home-page "https://ananthakumaran.in/monky/index.html")
9096 (arguments
9097 `(#:tests? #t
9098 #:test-command '("emacs" "--batch"
9099 "-l" "test/monky-unit-test.el"
9100 "-f" "ert-run-tests-batch-and-exit")))
9101 (synopsis "Interactive interface for the Mercurial version control system")
9102 (description
9103 "Monky provides an Emacs interface for Mercurial (Hg). Using Monky, you
9104 can selectively commit files, view the diffs, and other things.")
9105 (license license:gpl3+)))
9106
9107 (define-public emacs-monroe
9108 (package
9109 (name "emacs-monroe")
9110 (version "0.3.1")
9111 (source
9112 (origin
9113 (method git-fetch)
9114 (uri (git-reference
9115 (url "https://github.com/sanel/monroe.git")
9116 (commit version)))
9117 (file-name (git-file-name name version))
9118 (sha256
9119 (base32 "101lfrykdbv37spkbw7zihhx26bc1lhjyxbanrcp9880bxj04jiy"))))
9120 (build-system emacs-build-system)
9121 (home-page "https://github.com/sanel/monroe")
9122 (synopsis "Clojure nREPL client for Emacs")
9123 (description
9124 "Monroe is a nREPL client for Emacs, focused on simplicity and easy
9125 distribution, primarily targeting Clojure users")
9126 (license license:gpl3+)))
9127
9128 (define-public emacs-orgalist
9129 (package
9130 (name "emacs-orgalist")
9131 (version "1.12")
9132 (source
9133 (origin
9134 (method url-fetch)
9135 (uri (string-append "https://elpa.gnu.org/packages/"
9136 "orgalist-" version ".el"))
9137 (sha256
9138 (base32 "1hwm7j0hbv2pg9w885ky1c9qga3grcfq8v216jv2ivkw8xzavysd"))))
9139 (build-system emacs-build-system)
9140 (home-page "https://elpa.gnu.org/packages/orgalist.html")
9141 (synopsis "Manage Org-like lists in non-Org buffers")
9142 (description "Orgalist writes and manages Org mode's plain lists in
9143 non-Org buffers. More specifically, it supports the syntax of Org mode for
9144 numbered, unnumbered, description items, checkboxes, and counter cookies.
9145
9146 The library also implements radio lists, i.e., lists written in Org syntax
9147 later translated into the host format, e.g., LaTeX or HTML.")
9148 (license license:gpl3+)))
9149
9150 (define-public emacs-writegood-mode
9151 (package
9152 (name "emacs-writegood-mode")
9153 (version "2.0.2")
9154 (home-page "https://github.com/bnbeckwith/writegood-mode")
9155 (source (origin
9156 (method git-fetch)
9157 (uri (git-reference
9158 (url home-page)
9159 (commit (string-append "v" version))))
9160 (sha256
9161 (base32
9162 "1nnjn1r669hvvzfycllwap4w04m8rfsk4nzcg8057m1f263kj31b"))
9163 (file-name (string-append name "-checkout"))))
9164 (build-system emacs-build-system)
9165 (synopsis "Polish up poor writing on the fly")
9166 (description
9167 "This minor mode tries to find and highlight problems with your writing
9168 in English as you type. It primarily detects \"weasel words\" and abuse of
9169 passive voice.")
9170 (license license:gpl3+)))
9171
9172 (define-public emacs-neotree
9173 (package
9174 (name "emacs-neotree")
9175 (version "0.5.2")
9176 (home-page "https://github.com/jaypei/emacs-neotree")
9177 (source (origin
9178 (method git-fetch)
9179 (uri (git-reference
9180 (url home-page)
9181 (commit version)))
9182 (sha256
9183 (base32
9184 "0hx72fq10772bbyqrj7mhhp02k26cccjxdadiqm1ykainhfmn1x0"))
9185 (file-name (git-file-name name version))))
9186 (build-system emacs-build-system)
9187 (synopsis "Folder tree view for Emacs")
9188 (description "This Emacs package provides a folder tree view.")
9189 (license license:gpl3+)))
9190
9191 (define-public emacs-org
9192 (package
9193 (name "emacs-org")
9194 ;; emacs-org-contrib inherits from this package. Please update it as
9195 ;; well.
9196 (version "9.3.6")
9197 (source
9198 (origin
9199 (method url-fetch)
9200 (uri (string-append "https://elpa.gnu.org/packages/org-" version ".tar"))
9201 (sha256
9202 (base32 "0jwpgfzjvf1hd3mx582pw86hysdryaqzp69hk6azi9kmq4bzk87d"))))
9203 (build-system emacs-build-system)
9204 (arguments
9205 `(#:phases
9206 (modify-phases %standard-phases
9207 (add-after 'install 'install-documentation
9208 (lambda* (#:key outputs #:allow-other-keys)
9209 (let* ((share (string-append (assoc-ref outputs "out") "/share"))
9210 (info-dir (string-append share "/info"))
9211 (doc-dir (string-append share "/doc/" ,name "-" ,version)))
9212 (install-file "org" info-dir)
9213 (install-file "orgcard.pdf" doc-dir))
9214 #t)))))
9215 (home-page "https://orgmode.org/")
9216 (synopsis "Outline-based notes management and organizer")
9217 (description "Org is an Emacs mode for keeping notes, maintaining TODO
9218 lists, and project planning with a fast and effective lightweight markup
9219 language. It also is an authoring system with unique support for literate
9220 programming and reproducible research.")
9221 (license license:gpl3+)))
9222
9223 (define-public emacs-org-contrib
9224 (package
9225 (inherit emacs-org)
9226 (name "emacs-org-contrib")
9227 (version "20200213")
9228 (source
9229 (origin
9230 (method url-fetch)
9231 (uri (string-append "https://orgmode.org/elpa/"
9232 "org-plus-contrib-" version ".tar"))
9233 (sha256
9234 (base32 "0g6rrrwplrifz4ip0jg638m4kvpvdg03hwnyghd813w0lm935mh5"))))
9235 (arguments
9236 `(#:modules ((guix build emacs-build-system)
9237 (guix build utils)
9238 (guix build emacs-utils)
9239 (ice-9 ftw)
9240 (srfi srfi-1))
9241 #:phases
9242 (modify-phases %standard-phases
9243 (add-after 'install 'delete-org-files
9244 (lambda* (#:key inputs outputs #:allow-other-keys)
9245 (let* ((out (assoc-ref outputs "out"))
9246 (org (assoc-ref inputs "org"))
9247 (contrib-files
9248 (map basename (find-files out)))
9249 (org+contrib-files
9250 (map basename (find-files org)))
9251 (duplicates (lset-intersection string=?
9252 contrib-files
9253 org+contrib-files)))
9254 (with-directory-excursion
9255 (string-append out "/share/emacs/site-lisp")
9256 (for-each delete-file duplicates))
9257 #t))))))
9258 (propagated-inputs
9259 `(("arduino-mode" ,emacs-arduino-mode)
9260 ("cider" ,emacs-cider)
9261 ("org" ,emacs-org)
9262 ("scel" ,emacs-scel)))
9263 (synopsis "Contributed packages to Org mode")
9264 (description "Org is an Emacs mode for keeping notes, maintaining TODO
9265 lists, and project planning with a fast and effective plain-text system.
9266
9267 This package is equivalent to org-plus-contrib, but only includes additional
9268 files that you would find in @file{contrib/} from the git repository.")))
9269
9270 (define-public emacs-flx
9271 (package
9272 (name "emacs-flx")
9273 (version "0.6.1")
9274 (source
9275 (origin
9276 (method git-fetch)
9277 (uri (git-reference
9278 (url "https://github.com/lewang/flx.git")
9279 (commit (string-append "v" version))))
9280 (sha256
9281 (base32
9282 "0sjybrcnb2sl33swy3q664vqrparajcl0m455gciiih2j87hwadc"))
9283 (file-name (git-file-name name version))))
9284 (build-system emacs-build-system)
9285 (home-page "https://github.com/lewang/flx")
9286 (synopsis "Fuzzy matching for Emacs")
9287 (description
9288 "Flx provides fuzzy matching for emacs a la sublime text.
9289 The sorting algorithm is a balance between word beginnings (abbreviation)
9290 and contiguous matches (substring). The longer the substring match,
9291 the higher it scores. This maps well to how we think about matching.
9292 Flx has support for ido (interactively do things) through flx-ido.")
9293 (license license:gpl3+)))
9294
9295 (define-public emacs-cyberpunk-theme
9296 (package
9297 (name "emacs-cyberpunk-theme")
9298 (version "1.22")
9299 (source
9300 (origin
9301 (method git-fetch)
9302 (uri (git-reference
9303 (url "https://github.com/n3mo/cyberpunk-theme.el/")
9304 (commit version)))
9305 (sha256
9306 (base32
9307 "06nff38pcy5rgz13svkajsg0jjk73qy4a8m7p9f76yxcywxlgxlc"))
9308 (file-name (git-file-name name version))))
9309 (build-system emacs-build-system)
9310 (home-page "https://github.com/n3mo/cyberpunk-theme.el")
9311 (synopsis "Cyberpunk theme for Emacs built-in color theme support")
9312 (description
9313 "Cyberpunk color theme for the Emacs 24+ built-in color theme support
9314 known loosely as deftheme. Many mode-specific customizations are included.")
9315 (license license:gpl3+)))
9316
9317 (define-public emacs-danneskjold-theme
9318 (let* ((commit "8733d2fe8743e8a01826ea6d4430ef376c727e57")
9319 (revision "1"))
9320 (package
9321 (name "emacs-danneskjold-theme")
9322 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
9323 (home-page "https://github.com/rails-to-cosmos/danneskjold-theme")
9324 (source
9325 (origin
9326 (method git-fetch)
9327 (uri (git-reference
9328 (url home-page)
9329 (commit commit)))
9330 (file-name (git-file-name name version))
9331 (sha256
9332 (base32
9333 "0s6rbsb0y8i8m5b9xm4gw1p1cxsxdqnqxqqb638pygz9f76mbir1"))))
9334 (build-system emacs-build-system)
9335 (arguments
9336 `(#:phases
9337 (modify-phases %standard-phases
9338 (add-after 'unpack 'delete-screenshots
9339 (lambda _
9340 (delete-file-recursively "screenshots") #t)))))
9341 (synopsis "High-contrast Emacs theme")
9342 (description
9343 "@code{danneskjold-theme} is a high-contrast theme for Emacs.")
9344 (license license:gpl3+))))
9345
9346 (define-public emacs-dream-theme
9347 (let* ((commit "107a11d74365046f28a1802a2bdb5e69e4a7488b")
9348 (revision "1"))
9349 (package
9350 (name "emacs-dream-theme")
9351 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
9352 (source
9353 (origin
9354 (method git-fetch)
9355 (uri (git-reference
9356 (url "https://github.com/djcb/dream-theme")
9357 (commit commit)))
9358 (file-name (git-file-name name version))
9359 (sha256
9360 (base32
9361 "0za18nfkq4xqm35k6006vsixcbmvmxqgma4iw5sw37h8vmcsdylk"))))
9362 (build-system emacs-build-system)
9363 (home-page "https://github.com/djcb/dream-theme")
9364 (synopsis "High-contrast Emacs theme")
9365 (description
9366 "@code{dream-theme} is a dark, clean theme for Emacs. It is inspired
9367 by zenburn, sinburn and similar themes, but slowly diverging from them.")
9368 (license license:gpl3+))))
9369
9370 (define-public emacs-dracula-theme
9371 (package
9372 (name "emacs-dracula-theme")
9373 (version "1.7.0")
9374 (source
9375 (origin
9376 (method git-fetch)
9377 (uri (git-reference
9378 (url "https://github.com/dracula/emacs")
9379 (commit (string-append "v" version))))
9380 (file-name (git-file-name name version))
9381 (sha256
9382 (base32 "15y2djc5jljlvls1x9kp50m1kp0dcksmyixafsyimj66xpq9ngh0"))))
9383 (build-system emacs-build-system)
9384 (home-page "https://draculatheme.com/")
9385 (synopsis "Dark theme for Emacs")
9386 (description
9387 "Dracula is a dark color theme for many editors, shells and more. This
9388 package provides the Emacs theme.")
9389 (license license:expat)))
9390
9391 (define-public emacs-auto-complete
9392 (package
9393 (name "emacs-auto-complete")
9394 (version "1.5.1")
9395 (source
9396 (origin
9397 (method git-fetch)
9398 (uri (git-reference
9399 (url "https://github.com/auto-complete/auto-complete.git")
9400 (commit (string-append "v" version))))
9401 (sha256
9402 (base32
9403 "04i9b11iksg6acn885wl3qgi5xpsm3yszlqmd2x21yhprndlz7gb"))
9404 (file-name (git-file-name name version))))
9405 (build-system emacs-build-system)
9406 (propagated-inputs
9407 `(("emacs-popup" ,emacs-popup)))
9408 (home-page "https://github.com/auto-complete/auto-complete")
9409 (synopsis "Intelligent auto-completion extension for Emacs")
9410 (description
9411 "Auto-Complete is an intelligent auto-completion extension for Emacs.
9412 It extends the standard Emacs completion interface and provides an environment
9413 that allows users to concentrate more on their own work. Its features are:
9414 a visual interface, reduce overhead of completion by using statistic method,
9415 extensibility.")
9416 (license license:gpl3+)))
9417
9418 (define-public emacs-nginx-mode
9419 (package
9420 (name "emacs-nginx-mode")
9421 (version "1.1.9")
9422 (source
9423 (origin
9424 (method git-fetch)
9425 (uri (git-reference
9426 (url "https://github.com/ajc/nginx-mode.git")
9427 (commit (string-append "v" version))))
9428 (file-name (git-file-name name version))
9429 (sha256
9430 (base32 "17dh5pr3gh6adrbqx588gimxbb2fr7iv2qrxv6r48w2727l344xs"))))
9431 (build-system emacs-build-system)
9432 (home-page "https://github.com/ajc/nginx-mode")
9433 (synopsis "Emacs major mode for editing nginx config files")
9434 (description "This package provides an Emacs major mode for
9435 editing nginx config files.")
9436 (license license:gpl2+)))
9437
9438 (define-public emacs-stream
9439 (package
9440 (name "emacs-stream")
9441 (version "2.2.5")
9442 (source
9443 (origin
9444 (method url-fetch)
9445 (uri (string-append "https://elpa.gnu.org/packages/"
9446 "stream-" version ".tar"))
9447 (file-name (git-file-name name version))
9448 (sha256
9449 (base32 "00c3n4gyxzv7vczqms0d62kl8zsmjfyxa92mwxn2snyx857a9jfw"))))
9450 (build-system emacs-build-system)
9451 (home-page "http://elpa.gnu.org/packages/stream.html")
9452 (synopsis "Implementation of streams for Emacs")
9453 (description "This library provides an implementation of streams for Emacs.
9454 Streams are implemented as delayed evaluation of cons cells.")
9455 (license license:gpl3+)))
9456
9457 (define-public emacs-cl-print
9458 (let ((commit "1a70c553dfb04352afb5b8696fe0cef8acc8f991")
9459 (revision "1"))
9460 (package
9461 (name "emacs-cl-print")
9462 (version (git-version "1.0" revision commit))
9463 (source
9464 (origin
9465 (method git-fetch)
9466 (uri (git-reference
9467 (url "https://github.com/emacsmirror/cl-print.git")
9468 (commit commit)))
9469 (file-name (git-file-name name version))
9470 (sha256
9471 (base32 "164zbnsi5mssvcpy0158fm7fw5cmd1r5nkpn29fmd2b2scy3gm79"))))
9472 (build-system emacs-build-system)
9473 (home-page "https://github.com/emacsmirror/cl-print")
9474 (synopsis "CL-style generic printing")
9475 (description "This package provides a generic function,
9476 @code{cl-print-object}, to which the programmer can add any method they
9477 please.")
9478 (license license:gpl3+))))
9479
9480 (define-public emacs-el-search
9481 (let ((commit "07bed84dd8ae9e4c6c648834224b1d33fdbd51e0")
9482 (revision "2"))
9483 (package
9484 (name "emacs-el-search")
9485 (version (git-version "1.12.6.1" revision commit))
9486 (source
9487 (origin
9488 (method git-fetch)
9489 (uri (git-reference
9490 (url "https://github.com/emacsmirror/el-search.git")
9491 (commit commit)))
9492 (file-name (git-file-name name version))
9493 (sha256
9494 (base32 "10w1ldgijdhfsrazp0y3bm76jv5wvdn94k1yp0pmc2m1896b58ak"))))
9495 (build-system emacs-build-system)
9496 (inputs
9497 `(("emacs-stream" ,emacs-stream)
9498 ("emacs-cl-print" ,emacs-cl-print)))
9499 (home-page "https://github.com/emacsmirror/el-search")
9500 (synopsis "Expression based interactive search for emacs-lisp-mode")
9501 (description "This package provides expression based interactive search
9502 procedures for emacs-lisp-mode.")
9503 (license license:gpl3+))))
9504
9505 (define-public emacs-ht
9506 (package
9507 (name "emacs-ht")
9508 (version "2.2")
9509 (source
9510 (origin
9511 (method git-fetch)
9512 (uri (git-reference
9513 (url "https://github.com/Wilfred/ht.el.git")
9514 (commit version)))
9515 (file-name (git-file-name name version))
9516 (sha256
9517 (base32 "1p3qa7g0wa0wbviv2f8bda39cjys3naayk5xjm3nxxmqsyy8papx"))))
9518 (build-system emacs-build-system)
9519 (propagated-inputs `(("emacs-dash" ,emacs-dash)))
9520 (native-inputs
9521 `(("emacs-ert-runner" ,emacs-ert-runner)))
9522 (arguments
9523 `(#:tests? #t
9524 #:test-command '("ert-runner")))
9525 (home-page "https://github.com/Wilfred/ht.el")
9526 (synopsis "Hash table library for Emacs")
9527 (description
9528 "This package simplifies the use of hash tables in elisp. It also
9529 provides functions to convert hash tables from and to alists and plists.")
9530 (license license:gpl3+)))
9531
9532 (define-public emacs-log4e
9533 (package
9534 (name "emacs-log4e")
9535 (version "0.3.0")
9536 (source
9537 (origin
9538 (method git-fetch)
9539 (uri (git-reference
9540 (url "https://github.com/aki2o/log4e.git")
9541 (commit (string-append "v" version))))
9542 (file-name (git-file-name name version))
9543 (sha256
9544 (base32 "1l28n7a0v2zkknc70i1wn6qb5i21dkhfizzk8wcj28v44cgzk022"))))
9545 (build-system emacs-build-system)
9546 (arguments
9547 `(#:phases
9548 (modify-phases %standard-phases
9549 (add-after 'unpack 'remove-tests
9550 ;; Guile builder complains about null characters in some
9551 ;; strings of test files. Remove "test" directory (it is not
9552 ;; needed anyway).
9553 (lambda _
9554 (delete-file-recursively "test"))))))
9555 (home-page "https://github.com/aki2o/log4e")
9556 (synopsis "Logging framework for elisp")
9557 (description
9558 "This package provides a logging framework for elisp. It allows
9559 you to deal with multiple log levels.")
9560 (license license:gpl3+)))
9561
9562 (define-public emacs-gntp
9563 (package
9564 (name "emacs-gntp")
9565 (version "0.1")
9566 (source
9567 (origin
9568 (method git-fetch)
9569 (uri (git-reference
9570 (url "https://github.com/tekai/gntp.el.git")
9571 (commit (string-append "v" version))))
9572 (file-name (git-file-name name version))
9573 (sha256
9574 (base32 "1nvyjjjydrimpxy4cpg90si7sr8lmldbhlcm2mx8npklp9pn5y3a"))))
9575 (build-system emacs-build-system)
9576 (home-page "https://github.com/tekai/gntp.el")
9577 (synopsis "Growl Notification Protocol for Emacs")
9578 (description
9579 "This package implements the Growl Notification Protocol GNTP
9580 described at @uref{http://www.growlforwindows.com/gfw/help/gntp.aspx}.
9581 It is incomplete as it only lets you send but not receive
9582 notifications.")
9583 (license license:bsd-3)))
9584
9585 (define-public emacs-alert
9586 (package
9587 (name "emacs-alert")
9588 (version "1.3")
9589 (source
9590 (origin
9591 (method git-fetch)
9592 (uri (git-reference
9593 (url "https://github.com/jwiegley/alert.git")
9594 (commit (string-append "v" version))))
9595 (file-name (git-file-name name version))
9596 (sha256
9597 (base32 "0lc0p5cl4hfrzw1z2ghb11k1lvljn5m08jw5fmgwgxv667kwh49r"))))
9598 (build-system emacs-build-system)
9599 (propagated-inputs
9600 `(("emacs-gntp" ,emacs-gntp)
9601 ("emacs-log4e" ,emacs-log4e)))
9602 (home-page "https://github.com/jwiegley/alert")
9603 (synopsis "Growl-style notification system for Emacs")
9604 (description
9605 "Alert is a Growl-workalike for Emacs which uses a common notification
9606 interface and multiple, selectable \"styles\", whose use is fully
9607 customizable by the user.")
9608 (license license:gpl2+)))
9609
9610 (define-public emacs-zones
9611 (package
9612 (name "emacs-zones")
9613 (version "2019.7.13")
9614 (source
9615 (origin
9616 (method url-fetch)
9617 (uri (string-append "https://elpa.gnu.org/packages/"
9618 "zones-" version ".el"))
9619 (sha256
9620 (base32 "0qp1ba2pkqx9d35g7z8hf8qs2k455krf2a92l4rka3ipsbnmq5k1"))))
9621 (build-system emacs-build-system)
9622 (home-page "https://www.emacswiki.org/emacs/Zones")
9623 (synopsis "Define and act on multiple zones of buffer text")
9624 (description
9625 "Library @file{zones.el} lets you easily define and subsequently act on
9626 multiple zones of buffer text. You can think of this as enlarging the notion
9627 of region. In effect, it can remove the requirement of target text being
9628 a contiguous sequence of characters. A set of buffer zones is, in effect,
9629 a (typically) noncontiguous set of text.")
9630 (license license:gpl3+)))
9631
9632 (define-public emacs-mu4e-alert
9633 (package
9634 (name "emacs-mu4e-alert")
9635 (version "1.0")
9636 (source
9637 (origin
9638 (method git-fetch)
9639 (uri (git-reference
9640 (url "https://github.com/iqbalansari/mu4e-alert.git")
9641 (commit (string-append "v" version))))
9642 (file-name (git-file-name name version))
9643 (sha256
9644 (base32 "1nvsfbfsma59ilf7c3vjngnmx3aapwvvvaafdy5szm5r6lkicqvg"))))
9645 (build-system emacs-build-system)
9646 (propagated-inputs
9647 `(("emacs-alert" ,emacs-alert)
9648 ("emacs-s" ,emacs-s)
9649 ("emacs-ht" ,emacs-ht)
9650 ("mu" ,mu)))
9651 (home-page "https://github.com/iqbalansari/mu4e-alert")
9652 (synopsis "Desktop notification for mu4e")
9653 (description
9654 "This package provides desktop notifications for mu4e.
9655 Additionally it can display the number of unread emails in the
9656 mode-line.")
9657 (license license:gpl3+)))
9658
9659 (define-public emacs-mu4e-jump-to-list
9660 (let ((commit "358bba003543b49ffa266e503e54aebd0ebe614b")
9661 (revision "1"))
9662 (package
9663 (name "emacs-mu4e-jump-to-list")
9664 (version (git-version "1.0" revision commit))
9665 (source
9666 (origin
9667 (method git-fetch)
9668 (uri (git-reference
9669 (url "https://gitlab.com/wavexx/mu4e-jump-to-list.el.git")
9670 (commit commit)))
9671 (file-name (git-file-name name version))
9672 (sha256
9673 (base32
9674 "00y9nap61q1z2cdql4k9g7fgi2gdgd9iy5s5lzrd9a4agbx6r7sv"))))
9675 (build-system emacs-build-system)
9676 (propagated-inputs
9677 `(("mu" ,mu)))
9678 (home-page "https://gitlab.com/wavexx/mu4e-jump-to-list.el")
9679 (synopsis "Select and view mailing lists in mu4e")
9680 (description
9681 "@code{mu4e-jump-to-list} allows you to select and view mailing lists
9682 automatically using existing List-ID headers in your mu database. Just press
9683 \"l\" in the headers view and any mailing list you've subscribed to will be
9684 automatically discovered and presented in recency order.")
9685 (license license:gpl3+))))
9686
9687 (define-public emacs-mu4e-patch
9688 (let ((commit "522da46c1653b1cacc79cde91d6534da7ae9517d")
9689 (revision "1"))
9690 (package
9691 (name "emacs-mu4e-patch")
9692 (version (git-version "0.1.0" revision commit))
9693 (source (origin
9694 (method git-fetch)
9695 (uri (git-reference
9696 (url "https://github.com/seanfarley/mu4e-patch")
9697 (commit commit)))
9698 (file-name (git-file-name name version))
9699 (sha256
9700 (base32
9701 "10lzf3b70pk6rzdrgx0ww0gc94v0ydh9zj1gbsa20xw27ds7hmfn"))))
9702 (build-system emacs-build-system)
9703 (propagated-inputs
9704 `(("mu" ,mu)))
9705 (home-page "https://github.com/seanfarley/mu4e-patch")
9706 (synopsis "Colorize patch-like emails in mu4e")
9707 (description
9708 "Extension for mu4e to colorize patch-like emails with diff-mode.
9709 This is based on Frank Terbeck's @code{gnus-article-treat-patch.el} but has
9710 been adapted to work with mu4e.")
9711 (license license:gpl3+))))
9712
9713 (define-public emacs-pretty-mode
9714 (package
9715 (name "emacs-pretty-mode")
9716 (version "2.0.3")
9717 (source
9718 (origin
9719 (method git-fetch)
9720 (uri (git-reference
9721 (url "https://github.com/akatov/pretty-mode/")
9722 (commit version)))
9723 (file-name (git-file-name name version))
9724 (sha256
9725 (base32
9726 "013fig9i4fyx16krp2vfv953p3rwdzr38zs6i50af4pqz4vrcfvh"))))
9727 (build-system emacs-build-system)
9728 (home-page "https://github.com/akatov/pretty-mode")
9729 (synopsis "Redisplay parts of the buffer as Unicode symbols")
9730 (description
9731 "Emacs minor mode for redisplaying parts of the buffer as pretty symbols.")
9732 (license license:gpl3+)))
9733
9734 (define-public emacs-yasnippet
9735 (package
9736 (name "emacs-yasnippet")
9737 (version "0.14.0")
9738 (source
9739 (origin
9740 (method git-fetch)
9741 (uri (git-reference
9742 (url "https://github.com/joaotavora/yasnippet.git")
9743 (commit version)))
9744 (file-name (git-file-name name version))
9745 (sha256
9746 (base32 "0via9dzw8m5lzymg1h78xkwjssh39zr3g6ccyamlf1rjzjsyxknv"))))
9747 (build-system emacs-build-system)
9748 (arguments
9749 `(#:tests? #t
9750 #:test-command '("emacs" "--batch"
9751 "-l" "yasnippet-tests.el"
9752 "-f" "ert-run-tests-batch-and-exit")
9753 #:phases
9754 (modify-phases %standard-phases
9755 ;; Set HOME, otherwise test-rebindings fails.
9756 (add-before 'check 'set-home
9757 (lambda _
9758 (setenv "HOME" (getcwd))
9759 #t)))))
9760 (home-page "https://github.com/joaotavora/yasnippet")
9761 (synopsis "Yet another snippet extension for Emacs")
9762 (description "YASnippet is a template system for Emacs. It allows you to
9763 type an abbreviation and automatically expand it into function templates.")
9764 (license license:gpl3+)))
9765
9766 (define-public emacs-yasnippet-snippets
9767 (package
9768 (name "emacs-yasnippet-snippets")
9769 (version "0.20")
9770 (source
9771 (origin
9772 (method git-fetch)
9773 (uri (git-reference
9774 (url "https://github.com/AndreaCrotti/yasnippet-snippets")
9775 (commit version)))
9776 (file-name (git-file-name name version))
9777 (sha256
9778 (base32 "095w7cdmfwmmr6426mbq15n0a5izgbmv9408m9yh1pqz5x3v3vsx"))))
9779 (build-system trivial-build-system)
9780 (arguments
9781 `(#:modules ((guix build utils))
9782 #:builder
9783 (begin
9784 (use-modules (guix build utils))
9785 (let* ((source (assoc-ref %build-inputs "source"))
9786 (out (assoc-ref %outputs "out"))
9787 (snippet-dir
9788 (string-append out "/share/emacs/yasnippet-snippets/")))
9789 (with-directory-excursion source
9790 (mkdir-p snippet-dir)
9791 (copy-recursively "snippets" snippet-dir)))
9792 #t)))
9793 (home-page "https://github.com/AndreaCrotti/yasnippet-snippets")
9794 (synopsis "Collection of YASnippet snippets for many languages")
9795 (description
9796 "Provides Andrea Crotti's collection of YASnippet snippets. After installation,
9797 the snippets will be in \"~/.guix-profile/share/emacs/yasnippet-snippets/\".
9798 To make YASnippet aware of these snippets, add the above directory to
9799 @code{yas-snippet-dirs}.")
9800 (license license:gpl3+)))
9801
9802 (define-public emacs-helm-c-yasnippet
9803 (let ((commit "65ca732b510bfc31636708aebcfe4d2d845b59b0")
9804 (revision "1"))
9805 (package
9806 (name "emacs-helm-c-yasnippet")
9807 (version (string-append "0.6.7" "-" revision "."
9808 (string-take commit 7)))
9809 (source (origin
9810 (method git-fetch)
9811 (uri (git-reference
9812 (url "https://github.com/emacs-jp/helm-c-yasnippet")
9813 (commit commit)))
9814 (file-name (git-file-name name version))
9815 (sha256
9816 (base32
9817 "1cbafjqlzxbg19xfdqsinsh7afq58gkf44rsg1qxfgm8g6zhr7f8"))))
9818 (build-system emacs-build-system)
9819 (propagated-inputs
9820 `(("emacs-helm" ,emacs-helm)
9821 ("emacs-yasnippet" ,emacs-yasnippet)))
9822 (home-page "https://github.com/emacs-jp/helm-c-yasnippet")
9823 (synopsis "Helm integration for Yasnippet")
9824 (description "This Emacs library provides Helm interface for
9825 Yasnippet.")
9826 (license license:gpl2+))))
9827
9828 (define-public emacs-helm-system-packages
9829 ;; There won't be a new release after 1.10.1 until
9830 ;; https://github.com/emacs-helm/helm-system-packages/issues/25 is fixed,
9831 ;; and latest commits fix import issues with Guix.
9832 (let ((commit "6572340f41611ef1991e9612d34d59130957ee4a"))
9833 (package
9834 (name "emacs-helm-system-packages")
9835 (version (git-version "1.10.1" "1" commit))
9836 (source (origin
9837 (method git-fetch)
9838 (uri (git-reference
9839 (url "https://github.com/emacs-helm/helm-system-packages")
9840 (commit commit)))
9841 (file-name (git-file-name name version))
9842 (sha256
9843 (base32
9844 "0mcz6vkpk12vsyd37xv1rbg4v442sxc3lj8yxskqg294xbdaclz4"))))
9845 (build-system emacs-build-system)
9846 (inputs
9847 `(("recutils" ,recutils)))
9848 (propagated-inputs
9849 `(("emacs-helm" ,emacs-helm)))
9850 (arguments
9851 `(#:phases
9852 (modify-phases %standard-phases
9853 (add-after 'unpack 'configure
9854 (lambda* (#:key inputs outputs #:allow-other-keys)
9855 (let ((recutils (assoc-ref inputs "recutils")))
9856 ;; Specify the absolute file names of the various
9857 ;; programs so that everything works out-of-the-box.
9858 (substitute* "helm-system-packages-guix.el"
9859 (("recsel") (string-append recutils "/bin/recsel")))))))))
9860 (home-page "https://github.com/emacs-helm/helm-system-packages")
9861 (synopsis "Helm System Packages is an interface to your package manager")
9862 (description "List all available packages in Helm (with installed
9863 packages displayed in their own respective face). Fuzzy-search, mark and
9864 execute the desired action over any selections of packages: Install,
9865 uninstall, display packages details (in Org Mode) or insert details at point,
9866 find files owned by packages... And much more, including performing all the
9867 above over the network.")
9868 (license license:gpl3+))))
9869
9870 (define-public emacs-helm-org-rifle
9871 (package
9872 (name "emacs-helm-org-rifle")
9873 (version "1.7.0")
9874 (source
9875 (origin
9876 (method git-fetch)
9877 (uri (git-reference
9878 (url "https://github.com/alphapapa/helm-org-rifle")
9879 (commit version)))
9880 (file-name (git-file-name name version))
9881 (sha256
9882 (base32
9883 "058zvh7cdall7dl3xay9ibcjvs13fbqp8fli3lz980pinmsds3r2"))))
9884 (build-system emacs-build-system)
9885 (propagated-inputs
9886 `(("emacs-dash" ,emacs-dash)
9887 ("emacs-f" ,emacs-f)
9888 ("emacs-helm" ,emacs-helm)
9889 ("emacs-org" ,emacs-org)
9890 ("emacs-s" ,emacs-s)))
9891 (home-page "https://github.com/alphapapa/helm-org-rifle")
9892 (synopsis "Rifle through Org files")
9893 (description "This package searches both headings and contents of entries
9894 in Org buffers and displays matching entries.")
9895 (license license:gpl3+)))
9896
9897 (define-public emacs-dired-git-info
9898 ;; Upstream has no proper release. The base version is extracted from the
9899 ;; "Version" keyword in the main file.
9900 (let ((commit "91d57e3a4c5104c66a3abc18e281ee55e8979176")
9901 (revision "0"))
9902 (package
9903 (name "emacs-dired-git-info")
9904 (version (git-version "0.3.1" revision commit))
9905 (source
9906 (origin
9907 (method git-fetch)
9908 (uri
9909 (git-reference
9910 (url "https://github.com/clemera/dired-git-info")
9911 (commit commit)))
9912 (file-name (git-file-name name version))
9913 (sha256
9914 (base32 "1dr4iv95s4barxxj56znqkl9z0lg5jw731jmjr01s6vn8ar69gik"))))
9915 (build-system emacs-build-system)
9916 (home-page "https://github.com/clemera/dired-git-info/")
9917 (synopsis "Show git info in Emacs Dired")
9918 (description "This Emacs package provides a minor mode which shows git
9919 information inside the Dired buffer.")
9920 (license license:gpl3+))))
9921
9922 (define-public emacs-dired-toggle-sudo
9923 (let ((commit "13bbe52c54893f5aa3e56228450ffdd0c9e1d169")
9924 (revision "0"))
9925 (package
9926 (name "emacs-dired-toggle-sudo")
9927 (version (git-version "1.0" revision commit))
9928 (source
9929 (origin
9930 (method git-fetch)
9931 (uri (git-reference
9932 (url "https://github.com/renard/dired-toggle-sudo")
9933 (commit commit)))
9934 (file-name (git-file-name name version))
9935 (sha256
9936 (base32
9937 "1fw1pb1z6krqd1pfxxhr6rrfr9ckkcb0zsjzbjk0i2i1q5cg6car"))))
9938 (build-system emacs-build-system)
9939 (home-page "https://github.com/renard/dired-toggle-sudo")
9940 (synopsis "Browse directory with @code{sudo} privileges")
9941 (description "This package allows for the use of @code{dired} with
9942 @code{sudo} privileges.")
9943 (license license:wtfpl2))))
9944
9945 (define-public emacs-diredfl
9946 (package
9947 (name "emacs-diredfl")
9948 (version "0.4")
9949 (source
9950 (origin
9951 (method git-fetch)
9952 (uri
9953 (git-reference
9954 (url "https://github.com/purcell/diredfl")
9955 (commit version)))
9956 (file-name (git-file-name name version))
9957 (sha256
9958 (base32 "1zb2lz7rp58zqvpniqcsmqabi7nqg2d8bfd0hgmq68bn2hd25b5z"))))
9959 (build-system emacs-build-system)
9960 (home-page "https://github.com/purcell/diredfl/")
9961 (synopsis "Extra Emacs font lock rules for a more colourful Dired")
9962 (description "This library enables additional font locking in Dired mode.
9963 This is adapted from the extra font lock rules provided by Drew Adams' Dired+
9964 package.")
9965 (license license:gpl3+)))
9966
9967 (define-public emacs-memoize
9968 (package
9969 (name "emacs-memoize")
9970 (version "1.1")
9971 (source
9972 (origin
9973 (method git-fetch)
9974 (uri (git-reference
9975 (url "https://github.com/skeeto/emacs-memoize.git")
9976 (commit version)))
9977 (file-name (git-file-name name version))
9978 (sha256
9979 (base32 "04qgnlg4x6va7x364dhj1wbjmz8p5iq2vk36mn9198k2vxmijwzk"))))
9980 (build-system emacs-build-system)
9981 (arguments
9982 `(#:tests? #t
9983 #:test-command '("emacs" "--batch"
9984 "-l" "memoize-test.el"
9985 "-f" "ert-run-tests-batch-and-exit")))
9986 (home-page "https://github.com/skeeto/emacs-memoize")
9987 (synopsis "Emacs lisp memoization library")
9988 (description "@code{emacs-memoize} is an Emacs library for
9989 memoizing functions.")
9990 (license license:unlicense)))
9991
9992 (define-public emacs-linum-relative
9993 (package
9994 (name "emacs-linum-relative")
9995 (version "0.6")
9996 (source
9997 (origin
9998 (method git-fetch)
9999 (uri (git-reference
10000 (url "https://github.com/coldnew/linum-relative.git")
10001 (commit version)))
10002 (file-name (git-file-name name version))
10003 (sha256
10004 (base32 "0b3n1gk2w1p72x0zfdz9l70winq2fnjpjrgq0awxx730xk7ypp5n"))))
10005 (build-system emacs-build-system)
10006 (home-page "https://github.com/coldnew/linum-relative")
10007 (synopsis "Relative line numbering for Emacs")
10008 (description "@code{emacs-linum-relative} displays the relative line
10009 number on the left margin in Emacs.")
10010 (license license:gpl2+)))
10011
10012 (define-public emacs-idle-highlight
10013 (package
10014 (name "emacs-idle-highlight")
10015 (version "1.1.3")
10016 (source
10017 (origin
10018 (method git-fetch)
10019 (uri (git-reference
10020 (url "https://github.com/nonsequitur/idle-highlight-mode.git")
10021 (commit version)))
10022 (file-name (git-file-name name version))
10023 (sha256
10024 (base32 "0x4w1ksrw7dicl84zpf4d4scg672dyan9g95jkn6zvri0lr8xciv"))))
10025 (build-system emacs-build-system)
10026 (home-page "https://www.emacswiki.org/emacs/IdleHighlight")
10027 (synopsis "Highlights all occurrences of the word the point is on")
10028 (description
10029 "This Emacs package provides @code{idle-highlight-mode} that sets
10030 an idle timer to highlight all occurrences in the buffer of the word under
10031 the point.")
10032 (license license:gpl3+)))
10033
10034 (define-public emacs-ox-twbs
10035 (package
10036 (name "emacs-ox-twbs")
10037 (version "1.1.1")
10038 (source
10039 (origin
10040 (method git-fetch)
10041 (uri (git-reference
10042 (url "https://github.com/marsmining/ox-twbs.git")
10043 (commit (string-append "v" version))))
10044 (file-name (git-file-name name version))
10045 (sha256
10046 (base32 "0kd45p8y7ykadmai4jn1x1pgpafyqggwb1ccbjzalxw4k9wmd45f"))))
10047 (build-system emacs-build-system)
10048 (home-page "https://github.com/marsmining/ox-twbs")
10049 (synopsis "Export org-mode docs as HTML compatible with Twitter Bootstrap")
10050 (description
10051 "This Emacs package outputs your org-mode docs with a simple, clean and
10052 modern look. It implements a new HTML back-end for exporting org-mode docs as
10053 HTML compatible with Twitter Bootstrap. By default, HTML is exported with
10054 jQuery and Bootstrap resources included via osscdn.")
10055 (license license:gpl3+)))
10056
10057 (define-public emacs-highlight-sexp
10058 (package
10059 (name "emacs-highlight-sexp")
10060 (version "1.0")
10061 (source
10062 (origin
10063 (method git-fetch)
10064 (uri (git-reference
10065 (url "https://github.com/daimrod/highlight-sexp.git")
10066 (commit (string-append "v" version))))
10067 (file-name (git-file-name name version))
10068 (sha256
10069 (base32 "12cyk2q5g6p4ac2hykw1cag7dp1prjjnck5f7nalwwaklmy62y79"))))
10070 (build-system emacs-build-system)
10071 (home-page "https://github.com/daimrod/highlight-sexp")
10072 (synopsis "Minor mode that highlights the s-exp at the current position")
10073 (description
10074 "This Emacs package highlights the s-exp at the current position.")
10075 (license license:gpl3+)))
10076
10077 (define-public emacs-highlight-stages
10078 (let ((commit "29cbc5b78261916da042ddb107420083da49b271")
10079 (revision "1"))
10080 (package
10081 (name "emacs-highlight-stages")
10082 (version (string-append "1.1.0" "-" revision "." (string-take commit 7)))
10083 (source
10084 (origin
10085 (method git-fetch)
10086 (uri (git-reference
10087 (url "https://github.com/zk-phi/highlight-stages.git")
10088 (commit commit)))
10089 (file-name (git-file-name name version))
10090 (sha256
10091 (base32
10092 "0r6nbcrr0dqpgm8dir8ahzjy7rw4nrac48byamzrq96r7ajlxlv0"))
10093 (patches
10094 (search-patches "emacs-highlight-stages-add-gexp.patch"))))
10095 (build-system emacs-build-system)
10096 (home-page "https://github.com/wigust/highlight-stages")
10097 (synopsis "Minor mode that highlights (quasi-quoted) expressions")
10098 (description "@code{highlight-stages} provides an Emacs minor mode that
10099 highlights quasi-quoted expressions.")
10100 (license license:gpl3+))))
10101
10102 (define-public emacspeak
10103 (package
10104 (name "emacspeak")
10105 (version "52.0")
10106 (source
10107 (origin
10108 (method url-fetch)
10109 (uri (string-append
10110 "https://github.com/tvraman/emacspeak/releases/download/"
10111 version "/emacspeak-" version ".tar.bz2"))
10112 (sha256
10113 (base32 "0x5b0s38r5ih2lk7f5hasi9arrgxlmmq5jaddadbxi8in2gw2jzl"))))
10114 (build-system gnu-build-system)
10115 (arguments
10116 '(#:make-flags (list (string-append "prefix="
10117 (assoc-ref %outputs "out")))
10118 #:phases
10119 (modify-phases %standard-phases
10120 (add-after 'unpack 'delete-broken-symlink
10121 (lambda _
10122 (delete-file "lisp/sudoku.el")
10123 #t))
10124 (replace 'configure
10125 (lambda _
10126 (setenv "SHELL" (which "sh"))
10127 ;; Configure Emacspeak according to etc/install.org.
10128 (invoke "make" "config")))
10129 (add-after 'build 'build-espeak
10130 (lambda _
10131 (invoke "make" "espeak")))
10132 (replace 'install
10133 (lambda* (#:key inputs outputs #:allow-other-keys)
10134 (let* ((out (assoc-ref outputs "out"))
10135 (bin (string-append out "/bin"))
10136 (lisp (string-append out "/share/emacs/site-lisp/emacspeak"))
10137 (info (string-append out "/share/info"))
10138 (emacs (string-append (assoc-ref inputs "emacs")
10139 "/bin/emacs")))
10140 ;; According to etc/install.org, the Emacspeak directory should
10141 ;; be copied to its installation destination.
10142 (for-each
10143 (lambda (file)
10144 (copy-recursively file (string-append lisp "/" file)))
10145 '("etc" "info" "js" "lisp" "media" "servers" "sounds"
10146 "stumpwm" "xsl"))
10147 ;; Make sure emacspeak is loaded from the correct directory.
10148 (substitute* "run"
10149 (("\\./lisp/emacspeak-setup.el")
10150 (string-append lisp "/lisp/emacspeak-setup.el")))
10151 ;; Install the convenient startup script.
10152 (mkdir-p bin)
10153 (copy-file "run" (string-append bin "/emacspeak")))
10154 #t))
10155 (add-after 'install 'wrap-program
10156 (lambda* (#:key inputs outputs #:allow-other-keys)
10157 (let* ((out (assoc-ref outputs "out"))
10158 (emacspeak (string-append out "/bin/emacspeak"))
10159 (espeak (string-append (assoc-ref inputs "espeak")
10160 "/bin/espeak")))
10161 ;; The environment variable DTK_PROGRAM tells emacspeak what
10162 ;; program to use for speech.
10163 (wrap-program emacspeak
10164 `("DTK_PROGRAM" ":" prefix (,espeak)))
10165 #t))))
10166 #:tests? #f)) ; no check target
10167 (inputs
10168 `(("emacs" ,emacs)
10169 ("espeak" ,espeak-ng)
10170 ("perl" ,perl)
10171 ("tcl" ,tcl)
10172 ("tclx" ,tclx)))
10173 (home-page "http://emacspeak.sourceforge.net")
10174 (synopsis "Audio desktop interface for Emacs")
10175 (description
10176 "Emacspeak is a speech interface that allows visually impaired users to
10177 interact independently and efficiently with the computer. Audio
10178 formatting---a technique pioneered by AsTeR---and full support for W3C's Aural
10179 CSS (ACSS) allows Emacspeak to produce rich aural presentations of electronic
10180 information. By seamlessly blending all aspects of the Internet such as
10181 Web-surfing and messaging, Emacspeak speech-enables local and remote
10182 information via a consistent and well-integrated user interface.")
10183 (license license:gpl2+)))
10184
10185 (define-public emacs-adaptive-wrap
10186 (package
10187 (name "emacs-adaptive-wrap")
10188 (version "0.7")
10189 (source
10190 (origin
10191 (method url-fetch)
10192 (uri (string-append "https://elpa.gnu.org/packages/"
10193 "adaptive-wrap-" version ".el"))
10194 (sha256
10195 (base32 "10fb8gzvkbnrgzv28n1rczs03dvapr7rvi0kd73j6yf1zg2iz6qp"))))
10196 (build-system emacs-build-system)
10197 (home-page "https://elpa.gnu.org/packages/adaptive-wrap.html")
10198 (synopsis "Smart line-wrapping with wrap-prefix")
10199 (description
10200 "This Emacs package provides the @code{adaptive-wrap-prefix-mode}
10201 minor mode which sets the wrap-prefix property on the fly so that
10202 single-long-line paragraphs get word-wrapped in a way similar to what
10203 you'd get with @kbd{M-q} using @code{adaptive-fill-mode}, but without
10204 actually changing the buffer's text.")
10205 (license license:gpl3+)))
10206
10207 (define-public emacs-diff-hl
10208 (package
10209 (name "emacs-diff-hl")
10210 (version "1.8.7")
10211 (source
10212 (origin
10213 (method git-fetch)
10214 (uri (git-reference
10215 (url "https://github.com/dgutov/diff-hl")
10216 (commit version)))
10217 (file-name (git-file-name name version))
10218 (sha256
10219 (base32 "0i7x6qgr3nydcwhw72sbc8z9x9dfhgkf0dqj9nakvx36vn1bblbq"))))
10220 (build-system emacs-build-system)
10221 (home-page "https://github.com/dgutov/diff-hl")
10222 (synopsis
10223 "Highlight uncommitted changes using VC")
10224 (description
10225 "@code{diff-hl-mode} highlights uncommitted changes on the side of the
10226 window (using the fringe, by default), allows you to jump between
10227 the hunks and revert them selectively.")
10228 (license license:gpl3+)))
10229
10230 (define-public emacs-diminish
10231 (package
10232 (name "emacs-diminish")
10233 (version "0.45")
10234 (source
10235 (origin
10236 (method git-fetch)
10237 (uri (git-reference
10238 (url "https://github.com/myrjola/diminish.el.git")
10239 (commit (string-append "v" version))))
10240 (file-name (git-file-name name version))
10241 (sha256
10242 (base32 "0qpgfgp8hrzz4vdifxq8h25n0a0jlzgf7aa1fpy6r0080v5rqbb6"))))
10243 (build-system emacs-build-system)
10244 (home-page "https://github.com/myrjola/diminish.el")
10245 (synopsis "Diminish minor modes with no modeline display")
10246 (description "@code{emacs-diminish} implements hiding or
10247 abbreviation of the mode line displays (lighters) of minor modes.")
10248 (license license:gpl2+)))
10249
10250 (define-public emacs-use-package
10251 (package
10252 (name "emacs-use-package")
10253 (version "2.4")
10254 (source (origin
10255 (method git-fetch)
10256 (uri (git-reference
10257 (url "https://github.com/jwiegley/use-package")
10258 (commit version)))
10259 (file-name (git-file-name name version))
10260 (sha256
10261 (base32
10262 "1b7mjjh0d6fmkkd9vyj64vca27xqhga0nvyrrcqxpqjn62zq046y"))))
10263 (build-system emacs-build-system)
10264 (propagated-inputs
10265 `(("emacs-diminish" ,emacs-diminish)))
10266 (arguments
10267 `(#:tests? #t
10268 #:test-command '("emacs" "--batch"
10269 "-l" "use-package-tests.el"
10270 "-f" "ert-run-tests-batch-and-exit")))
10271 (home-page "https://github.com/jwiegley/use-package")
10272 (synopsis "Declaration for simplifying your .emacs")
10273 (description "The use-package macro allows you to isolate package
10274 configuration in your @file{.emacs} file in a way that is both
10275 performance-oriented and tidy.")
10276 (license license:gpl2+)))
10277
10278 (define-public emacs-leaf
10279 (package
10280 (name "emacs-leaf")
10281 (version "4.2.5")
10282 (source
10283 (origin
10284 (method url-fetch)
10285 (uri (string-append "https://elpa.gnu.org/packages/"
10286 "leaf-" version ".tar"))
10287 (sha256
10288 (base32 "0y78mp4c2gcwp7dc87wlx3r4hfmap14vvx8gkjc9nkf99qavpnkw"))))
10289 (build-system emacs-build-system)
10290 (home-page "https://github.com/conao3/leaf.el")
10291 (synopsis "Simplify your init.el configuration, extended use-package")
10292 (description
10293 "This package provides macros that allows you to declaratively configure
10294 settings typical of an Elisp package with various keywords. The syntax is
10295 similar, but not identical to use-package -- overall, leaf aims at a cleaner
10296 and more predictable implementation.")
10297 (license license:agpl3+)))
10298
10299 (define-public emacs-strace-mode
10300 (let* ((commit "6a69b4b06db6797af56f33eda5cb28af94e59f11")
10301 (revision "1"))
10302 (package
10303 (name "emacs-strace-mode")
10304 (version (string-append "0.0.2-" revision "." (string-take commit 7)))
10305 (source (origin
10306 (method git-fetch)
10307 (uri (git-reference
10308 (url "https://github.com/pkmoore/strace-mode")
10309 (commit commit)))
10310 (file-name (git-file-name name version))
10311 (sha256
10312 (base32
10313 "1lbk2kzdznf2bkfazizfbimaxxzfzv00lrz1ran9dc2zqbc0bj9f"))))
10314 (build-system emacs-build-system)
10315 (home-page "https://github.com/pkmoore/strace-mode")
10316 (synopsis "Emacs major mode to highlight strace outputs")
10317 (description "@code{emacs-strace-mode} provides an Emacs major mode
10318 highlighting strace outputs.")
10319 (license license:gpl3+))))
10320
10321 (define-public emacs-default-encrypt
10322 (package
10323 (name "emacs-default-encrypt")
10324 (version "4.4")
10325 (source
10326 (origin
10327 (method url-fetch)
10328 (uri (string-append
10329 "https://informationelle-selbstbestimmung-im-internet.de"
10330 "/emacs/jl-encrypt" version "/jl-encrypt.el"))
10331 (file-name (string-append "jl-encrypt-" version ".el"))
10332 (sha256
10333 (base32
10334 "0w9ggz075j1zwg7d0rv9k8238g600p7czfnnsnawswi7yps2xk78"))))
10335 (build-system emacs-build-system)
10336 (home-page
10337 "https://informationelle-selbstbestimmung-im-internet.de/Emacs.html")
10338 (synopsis "Automatically encrypt or sign Gnus messages in Emacs")
10339 (description
10340 "DefaultEncrypt is designed to be used with Gnus in Emacs. It
10341 automatically encrypts messages that you send (e.g., email) when public keys
10342 for all recipients are available, and it protects you from accidentally
10343 sending un-encrypted messages. It can also be configured to automatically
10344 sign messages that you send. For details and instructions on how to use
10345 DefaultEncrypt, please refer to the home page or read the comments in the
10346 source file, @file{jl-encrypt.el}.")
10347 (license license:gpl3+)))
10348
10349 (define-public emacs-extend-smime
10350 (package
10351 (name "emacs-extend-smime")
10352 (version "3.3")
10353 (source
10354 (origin
10355 (method url-fetch)
10356 (uri (string-append
10357 "https://informationelle-selbstbestimmung-im-internet.de"
10358 "/emacs/jl-smime" version "/jl-smime.el"))
10359 (file-name (string-append "jl-smime-" version ".el"))
10360 (sha256
10361 (base32
10362 "1iv8s2wjmv3v5qfwlcy9hvvrmxxvp3f8m1krlr789q7bbh35jynh"))))
10363 (build-system emacs-build-system)
10364 (home-page
10365 "https://informationelle-selbstbestimmung-im-internet.de/Emacs.html")
10366 (synopsis "Improved S/MIME support for Gnus in Emacs")
10367 (propagated-inputs
10368 `(("emacs-default-encrypt" ,emacs-default-encrypt)))
10369 (description
10370 ;; TRANSLATORS: ExtendSMIME, DefaultEncrypt, and emacs-default-encrypt
10371 ;; should not be translated. The name "emacs-default-encrypt" refers to
10372 ;; the Guix package that provides DefaultEncrypt.
10373 "ExtendSMIME is designed to be used with Gnus in Emacs. It enhances
10374 DefaultEncrypt (emacs-default-encrypt) to support S/MIME (Secure/Multipurpose
10375 Internet Mail Extensions) via LDAP (Lightweight Directory Access Protocol).
10376 Before a message (e.g., email) is sent, ExtendSMIME searches for missing
10377 certificates via LDAP and imports them into @code{gpgsm}. When certificates
10378 for all recipients are available, DefaultEncrypt automatically encrypts the
10379 message. For details and instructions on how to use ExtendSMIME, please refer
10380 to the home page or read the comments in the source file,
10381 @file{jl-smime.el}.")
10382 (license license:gpl3+)))
10383
10384 (define-public emacs-htmlize
10385 (package
10386 (name "emacs-htmlize")
10387 (version "1.55")
10388 (source
10389 (origin
10390 (method git-fetch)
10391 (uri (git-reference
10392 (url "https://github.com/hniksic/emacs-htmlize.git")
10393 (commit (string-append "release/" version))))
10394 (file-name (git-file-name name version))
10395 (sha256
10396 (base32 "0gi3xshscpa53qrj8yplfsqahcilc2ybcc2p7gnh5nbnf2n1n97x"))))
10397 (build-system emacs-build-system)
10398 (home-page "https://github.com/hniksic/emacs-htmlize")
10399 (synopsis "Convert buffer text and decorations to HTML")
10400 (description "@code{emacs-htmlize} converts the buffer text and
10401 the associated decorations to HTML. Output to CSS, inline CSS and
10402 fonts is supported.")
10403 (license license:gpl2+)))
10404
10405 (define-public emacs-xmlgen
10406 (package
10407 (name "emacs-xmlgen")
10408 (version "0.5")
10409 (source
10410 (origin
10411 (method git-fetch)
10412 (uri (git-reference
10413 (url "https://github.com/philjackson/xmlgen.git")
10414 (commit version)))
10415 (file-name (git-file-name name version))
10416 (sha256
10417 (base32 "096i29v0badx0a6339h9ckdz78zj59gbjdp7vj7vhkq9d830392s"))))
10418 (build-system emacs-build-system)
10419 (arguments
10420 `(#:tests? #t
10421 #:test-command '("emacs" "--batch"
10422 "-l" "xmlgen-test.el"
10423 "-f" "ert-run-tests-batch-and-exit")))
10424 (home-page "https://github.com/philjackson/xmlgen")
10425 (synopsis "S-expression to XML domain specific language (DSL) in
10426 Emacs Lisp")
10427 (description "@code{emacs-xmlgen} provides S-expression to XML
10428 conversion for Emacs Lisp.")
10429 (license license:gpl2+)))
10430
10431 (define-public emacs-cdlatex
10432 (package
10433 (name "emacs-cdlatex")
10434 (version "4.7")
10435 (source
10436 (origin
10437 (method git-fetch)
10438 (uri (git-reference
10439 (url "https://github.com/cdominik/cdlatex.git")
10440 (commit version)))
10441 (file-name (git-file-name name version))
10442 (sha256
10443 (base32 "1jj9vmhc4s3ych08bjm1c2xwi81z1p20rj7bvxrgvb5aga2ghi9d"))))
10444 (build-system emacs-build-system)
10445 (propagated-inputs
10446 `(("emacs-auctex" ,emacs-auctex)))
10447 (home-page "https://github.com/cdominik/cdlatex")
10448 (synopsis "Fast Emacs input methods for LaTeX environments and
10449 math")
10450 (description "CDLaTeX is an Emacs minor mode supporting fast
10451 insertion of environment templates and math in LaTeX. Similar
10452 commands are also offered as part of the AUCTeX package, but it is not
10453 the same - CDLaTeX focuses on speediness for inserting LaTeX
10454 constructs.")
10455 (license license:gpl3+)))
10456
10457 (define-public emacs-cnfonts
10458 (package
10459 (name "emacs-cnfonts")
10460 (version "0.9.1")
10461 (source
10462 (origin
10463 (method git-fetch)
10464 (uri (git-reference
10465 (url "https://github.com/tumashu/cnfonts.git")
10466 (commit (string-append "v" version))))
10467 (file-name (git-file-name name version))
10468 (sha256
10469 (base32 "11d44lf0m0kbzq1mvyqkl4aprys0xqaarp08nij57xnynin1rynx"))))
10470 (build-system emacs-build-system)
10471 (home-page "https://github.com/tumashu/cnfonts")
10472 (synopsis "Emacs Chinese fonts setup tool")
10473 (description "cnfonts is a Chinese fonts setup tool, allowing for easy
10474 configuration of Chinese fonts.")
10475 (license license:gpl2+)))
10476
10477 (define-public emacs-php-mode
10478 (package
10479 (name "emacs-php-mode")
10480 (version "1.23.0")
10481 (source
10482 (origin
10483 (method git-fetch)
10484 (uri (git-reference
10485 (url "https://github.com/ejmr/php-mode.git")
10486 (commit (string-append "v" version))))
10487 (file-name (git-file-name name version))
10488 (sha256
10489 (base32 "0wnkcxg6djy4jvxhshiy1iw6b5cf79pjwjhfd1a060cavhfm4v5c"))))
10490 (build-system emacs-build-system)
10491 (home-page "https://github.com/ejmr/php-mode")
10492 (synopsis "Major mode for editing PHP code")
10493 (description
10494 "PHP mode is a major mode for editing PHP source code. It's an extension
10495 of C mode; thus it inherits all C mode's navigation functionality. But it
10496 colors according to the PHP grammar and indents according to the PEAR coding
10497 guidelines. It also includes a couple handy IDE-type features such as
10498 documentation search and a source and class browser.")
10499 (license license:gpl3+)))
10500
10501 (define-public emacs-pos-tip
10502 (package
10503 (name "emacs-pos-tip")
10504 (version "0.4.6")
10505 (source
10506 (origin
10507 (method git-fetch)
10508 (uri (git-reference
10509 (url "https://github.com/pitkali/pos-tip.git")
10510 (commit version)))
10511 (file-name (git-file-name name version))
10512 (sha256
10513 (base32 "0w8bnspnk871qndp18hs0wk4x9x31xr9rwbvf5dc8mcbnj29ch33"))))
10514 (build-system emacs-build-system)
10515 ;; The following functions and variables needed by emacs-pos-tip are
10516 ;; not included in emacs-minimal:
10517 ;; x-display-pixel-width, x-display-pixel-height, x-show-tip
10518 (arguments `(#:emacs ,emacs))
10519 (home-page "https://github.com/pitkali/pos-tip")
10520 (synopsis "Show tooltip at point")
10521 (description "The standard library tooltip.el provides a function for
10522 displaying a tooltip at the mouse position. However, locating a tooltip at an
10523 arbitrary buffer position in a window is not easy. Pos-tip provides such a
10524 function to be used by other frontend programs.")
10525 (license license:gpl2+)))
10526
10527 (define-public emacs-pyim-basedict
10528 (package
10529 (name "emacs-pyim-basedict")
10530 (version "0.3.1")
10531 (source
10532 (origin
10533 (method git-fetch)
10534 (uri (git-reference
10535 (url "https://github.com/tumashu/pyim-basedict.git")
10536 (commit (string-append "v" version))))
10537 (file-name (git-file-name name version))
10538 (sha256
10539 (base32 "0576r8ap9gp91ycjf1d47pn13kxp0f9fysn09zlq44hr0s1y2y5d"))))
10540 (build-system emacs-build-system)
10541 (home-page "https://github.com/tumashu/pyim-basedict")
10542 (synopsis "Input method dictionary of pyim")
10543 (description "Pyim-basedict is the default pinyin input method dictionary,
10544 containing words from the rime project.")
10545 (license license:gpl2+)))
10546
10547 (define-public emacs-pyim
10548 (package
10549 (name "emacs-pyim")
10550 (version "1.8")
10551 (source
10552 (origin
10553 (method git-fetch)
10554 (uri (git-reference
10555 (url "https://github.com/tumashu/pyim")
10556 (commit (string-append "v" version))))
10557 (file-name (git-file-name name version))
10558 (sha256
10559 (base32
10560 "16rma4cv7xgky0g3x4an27v30jdi6i1sqw43cl99zhkqvp43l3f9"))))
10561 (build-system emacs-build-system)
10562 (propagated-inputs
10563 `(("emacs-async" ,emacs-async)
10564 ("emacs-pyim-basedict" ,emacs-pyim-basedict)
10565 ("emacs-popup" ,emacs-popup)
10566 ("emacs-posframe" ,emacs-posframe)))
10567 (home-page "https://github.com/tumashu/pyim")
10568 (synopsis "Chinese input method")
10569 (description "Chinese input method which supports quanpin, shuangpin, wubi
10570 and cangjie.")
10571 (license license:gpl2+)))
10572
10573 (define-public emacs-posframe
10574 (package
10575 (name "emacs-posframe")
10576 (version "0.7.0")
10577 (source
10578 (origin
10579 (method url-fetch)
10580 (uri (string-append "https://elpa.gnu.org/packages/"
10581 "posframe-" version ".el"))
10582 (sha256
10583 (base32 "1kwl83jb5k1hnx0s2qw972v0gjqbbvk4sdcdb1qbdxsyw36sylc9"))))
10584 (build-system emacs-build-system)
10585 ;; emacs-minimal does not include the function font-info.
10586 (arguments
10587 `(#:emacs ,emacs))
10588 (home-page "https://github.com/tumashu/posframe")
10589 (synopsis "Pop a posframe (a child frame) at point")
10590 (description "@code{emacs-posframe} can pop a posframe at point. A
10591 posframe is a child frame displayed within its root window's buffer.
10592 @code{emacs-posframe} is fast and works well with CJK languages.")
10593 (license license:gpl3+)))
10594
10595 (define-public emacs-el2org
10596 (package
10597 (name "emacs-el2org")
10598 (version "0.6.0")
10599 (source
10600 (origin
10601 (method git-fetch)
10602 (uri (git-reference
10603 (url "https://github.com/tumashu/el2org.git")
10604 (commit (string-append "v" version))))
10605 (file-name (git-file-name name version))
10606 (sha256
10607 (base32 "0mzddqny6wpg1fv99xrvlv7rxmaifvmy5bvj4in4pldhm4cx4q1b"))))
10608 (build-system emacs-build-system)
10609 (home-page "https://github.com/tumashu/el2org")
10610 (synopsis "Convert Emacs-lisp file to org file")
10611 (description "El2org is a simple tool, which can convert Emacs-lisp file
10612 to org file, you can use this tool to write orgify commentary.")
10613 (license license:gpl2+)))
10614
10615 (define-public emacs-mustache
10616 (package
10617 (name "emacs-mustache")
10618 (version "0.23")
10619 (source
10620 (origin
10621 (method git-fetch)
10622 (uri (git-reference
10623 (url "https://github.com/Wilfred/mustache.el.git")
10624 (commit version)))
10625 (file-name (git-file-name name version))
10626 (sha256
10627 (base32 "1n2ymd92qpvsby6ms0l3kjhdzzc47rri2aiscc6bs07hm4mjpr9q"))))
10628 (build-system emacs-build-system)
10629 (propagated-inputs
10630 `(("emacs-dash" ,emacs-dash)
10631 ("emacs-ht" ,emacs-ht)
10632 ("emacs-s" ,emacs-s)))
10633 (home-page "https://github.com/Wilfred/mustache.el")
10634 (synopsis "Mustache templating library for Emacs")
10635 (description "Mustache templating library for Emacs, mustache is
10636 a simple web template system, which is described as a logic-less system
10637 because it lacks any explicit control flow statements, both looping and
10638 conditional evaluation can be achieved using section tags processing lists
10639 and lambdas.")
10640 (license license:gpl3+)))
10641
10642 (define-public emacs-org2web
10643 (package
10644 (name "emacs-org2web")
10645 (version "0.9.1")
10646 (source
10647 (origin
10648 (method git-fetch)
10649 (uri (git-reference
10650 (url "https://github.com/tumashu/org2web.git")
10651 (commit (string-append "v" version))))
10652 (file-name (git-file-name name version))
10653 (sha256
10654 (base32 "0wsvfn409a2ivbich8b8zqza78sprirg4bl7igx536ydqclmi0n7"))))
10655 (build-system emacs-build-system)
10656 (propagated-inputs
10657 `(("emacs-dash" ,emacs-dash)
10658 ("emacs-el2org" ,emacs-el2org)
10659 ("emacs-ht" ,emacs-ht)
10660 ("emacs-mustache" ,emacs-mustache)
10661 ("emacs-simple-httpd" ,emacs-simple-httpd)))
10662 (home-page "https://github.com/tumashu/org2web")
10663 (synopsis "Static site generator based on org-mode ")
10664 (description "Org2web is a static site generator based on org-mode,
10665 which code derived from Kelvin H's org-page.")
10666 (license license:gpl2+)))
10667
10668 (define-public emacs-xelb
10669 (package
10670 (name "emacs-xelb")
10671 (version "0.18")
10672 (source (origin
10673 (method url-fetch)
10674 (uri (string-append "https://elpa.gnu.org/packages/xelb-"
10675 version ".tar"))
10676 (sha256
10677 (base32
10678 "1fp5mzl63sh0h3ws4l5p4qgvi7ny8a3fj6k4dhqa98xgw2bx03v7"))))
10679 (build-system emacs-build-system)
10680 ;; The following functions and variables needed by emacs-xelb are
10681 ;; not included in emacs-minimal:
10682 ;; x-display-screens, x-keysym-table, x-alt-keysym, x-meta-keysym
10683 ;; x-hyper-keysym, x-super-keysym, libxml-parse-xml-region
10684 ;; x-display-pixel-width, x-display-pixel-height
10685 (arguments
10686 `(#:emacs ,emacs
10687 #:phases
10688 (modify-phases %standard-phases
10689 (add-after 'unpack 'regenerate-el-files
10690 (lambda* (#:key inputs #:allow-other-keys)
10691 (invoke "make"
10692 (string-append "PROTO_PATH="
10693 (assoc-ref inputs "xcb-proto")
10694 "/share/xcb")
10695 (string-append "EMACS_BIN="
10696 (assoc-ref inputs "emacs")
10697 "/bin/emacs -Q")))))))
10698 (native-inputs `(("xcb-proto" ,xcb-proto)))
10699 (home-page "https://github.com/ch11ng/xelb")
10700 (synopsis "X protocol Emacs Lisp binding")
10701 (description "@code{emacs-xelb} is a pure Emacs Lisp implementation of the
10702 X11 protocol based on the XML description files from the XCB project. It
10703 features an object-oriented API and permits a certain degree of concurrency.
10704 It should enable you to implement low-level X11 applications.")
10705 (license license:gpl3+)))
10706
10707 (define-public emacs-exwm
10708 (package
10709 (name "emacs-exwm")
10710 (version "0.24")
10711 (synopsis "Emacs X window manager")
10712 (source
10713 (origin
10714 (method url-fetch)
10715 (uri (string-append "https://elpa.gnu.org/packages/"
10716 "exwm-" version ".tar"))
10717 (sha256
10718 (base32 "0lj1a3cmbpf4h6x8k6x8cdm1qb51ca6filydnvi5zcda8zpl060s"))))
10719 (build-system emacs-build-system)
10720 (propagated-inputs
10721 `(("emacs-xelb" ,emacs-xelb)))
10722 (inputs
10723 `(("xhost" ,xhost)
10724 ("dbus" ,dbus)))
10725 ;; The following functions and variables needed by emacs-exwm are
10726 ;; not included in emacs-minimal:
10727 ;; scroll-bar-mode, fringe-mode
10728 ;; x-display-pixel-width, x-display-pixel-height
10729 (arguments
10730 `(#:emacs ,emacs
10731 #:phases
10732 (modify-phases %standard-phases
10733 (add-after 'build 'install-xsession
10734 (lambda* (#:key inputs outputs #:allow-other-keys)
10735 (let* ((out (assoc-ref outputs "out"))
10736 (xsessions (string-append out "/share/xsessions"))
10737 (bin (string-append out "/bin"))
10738 (exwm-executable (string-append bin "/exwm")))
10739 ;; Add a .desktop file to xsessions
10740 (mkdir-p xsessions)
10741 (mkdir-p bin)
10742 (make-desktop-entry-file
10743 (string-append xsessions "/exwm.desktop")
10744 #:name ,name
10745 #:comment ,synopsis
10746 #:exec exwm-executable
10747 #:try-exec exwm-executable)
10748 ;; Add a shell wrapper to bin
10749 (with-output-to-file exwm-executable
10750 (lambda _
10751 (format #t "#!~a ~@
10752 ~a +SI:localuser:$USER ~@
10753 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
10754 (string-append (assoc-ref inputs "bash") "/bin/sh")
10755 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
10756 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
10757 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
10758 '(cond
10759 ((file-exists-p "~/.exwm")
10760 (load-file "~/.exwm"))
10761 ((not (featurep 'exwm))
10762 (require 'exwm)
10763 (require 'exwm-config)
10764 (exwm-config-default)
10765 (message (concat "exwm configuration not found. "
10766 "Falling back to default configuration...")))))))
10767 (chmod exwm-executable #o555)
10768 #t))))))
10769 (home-page "https://github.com/ch11ng/exwm")
10770 (description
10771 "EXWM is a full-featured tiling X window manager for Emacs built on top
10772 of XELB.")
10773 (license license:gpl3+)))
10774
10775 (define-public emacs-switch-window
10776 (package
10777 (name "emacs-switch-window")
10778 (version "1.6.2")
10779 (source
10780 (origin
10781 (method git-fetch)
10782 (uri (git-reference
10783 (url "https://github.com/dimitri/switch-window")
10784 (commit (string-append "v" version))))
10785 (file-name (git-file-name name version))
10786 (sha256
10787 (base32
10788 "0rci96asgamr6qp6nkyr5vwrnslswjxcjd96yccy4aivh0g66yfg"))))
10789 (build-system emacs-build-system)
10790 (home-page "https://github.com/dimitri/switch-window")
10791 (synopsis "Emacs window switch tool")
10792 (description "Switch-window is an emacs window switch tool, which
10793 offer a visual way to choose a window to switch to, delete, split or
10794 other operations.")
10795 (license license:wtfpl2)))
10796
10797 (define-public emacs-exwm-x
10798 (package
10799 (name "emacs-exwm-x")
10800 (version "1.9.0")
10801 (synopsis "Derivative window manager based on EXWM")
10802 (source
10803 (origin
10804 (method git-fetch)
10805 (uri (git-reference
10806 (url "https://github.com/tumashu/exwm-x")
10807 (commit (string-append "v" version))))
10808 (file-name (git-file-name name version))
10809 (sha256
10810 (base32
10811 "03l3dl7s1qys1kkh40rm1sfx7axy1b8sf5f6nyksj9ps6d30p5i4"))))
10812 (build-system emacs-build-system)
10813 (propagated-inputs
10814 `(("emacs-counsel" ,emacs-counsel)
10815 ("emacs-exwm" ,emacs-exwm)
10816 ("emacs-switch-window" ,emacs-switch-window)
10817 ("emacs-use-package" ,emacs-use-package)))
10818 (inputs
10819 `(("xhost" ,xhost)
10820 ("dbus" ,dbus)))
10821 ;; Need emacs instead of emacs-minimal,
10822 ;; for emacs's bin path will be inserted into bin/exwm-x file.
10823 (arguments
10824 `(#:emacs ,emacs
10825 #:phases
10826 (modify-phases %standard-phases
10827 (add-after 'build 'install-xsession
10828 (lambda* (#:key inputs outputs #:allow-other-keys)
10829 (let* ((out (assoc-ref outputs "out"))
10830 (xsessions (string-append out "/share/xsessions"))
10831 (bin (string-append out "/bin"))
10832 (exwm-executable (string-append bin "/exwm-x")))
10833 ;; Add a .desktop file to xsessions
10834 (mkdir-p xsessions)
10835 (mkdir-p bin)
10836 (with-output-to-file
10837 (string-append xsessions "/exwm-x.desktop")
10838 (lambda _
10839 (format #t "[Desktop Entry]~@
10840 Name=~a~@
10841 Comment=~a~@
10842 Exec=~a~@
10843 TryExec=~@*~a~@
10844 Type=Application~%" ,name ,synopsis exwm-executable)))
10845 ;; Add a shell wrapper to bin
10846 (with-output-to-file exwm-executable
10847 (lambda _
10848 (format #t "#!~a ~@
10849 ~a +SI:localuser:$USER ~@
10850 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
10851 (string-append (assoc-ref inputs "bash") "/bin/sh")
10852 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
10853 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
10854 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
10855 '(require 'exwmx-loader))))
10856 (chmod exwm-executable #o555)
10857 #t))))))
10858 (home-page "https://github.com/tumashu/exwm-x")
10859 (description "EXWM-X is a derivative window manager based on EXWM, with focus
10860 on mouse-control.")
10861 (license license:gpl3+)))
10862
10863 (define-public emacs-gnugo
10864 (package
10865 (name "emacs-gnugo")
10866 (version "3.1.0")
10867 (source
10868 (origin
10869 (method url-fetch)
10870 (uri (string-append "https://elpa.gnu.org/packages/gnugo-"
10871 version ".tar"))
10872 (sha256
10873 (base32
10874 "0xpjvs250gg71qwapdsb1hlc61gs0gpkjds01srf784fvyxx2gf1"))))
10875 (build-system emacs-build-system)
10876 (arguments
10877 `(#:phases (modify-phases %standard-phases
10878 (add-after 'unpack 'configure-default-gnugo-xpms-variable
10879 (lambda _
10880 (substitute* "gnugo.el"
10881 (("defvar gnugo-xpms nil")
10882 "defvar gnugo-xpms #'gnugo-imgen-create-xpms"))
10883 #t)))))
10884 (propagated-inputs
10885 `(("emacs-ascii-art-to-unicode" ,emacs-ascii-art-to-unicode)
10886 ("emacs-xpm" ,emacs-xpm)))
10887 (home-page "https://elpa.gnu.org/packages/gnugo.html")
10888 (synopsis "Emacs major mode for playing GNU Go")
10889 (description "This package provides an Emacs based interface for GNU Go.
10890 It has a graphical mode where the board and stones are drawn using XPM images
10891 and supports the use of a mouse.")
10892 (license license:gpl3+)))
10893
10894 (define-public emacs-gnuplot
10895 (package
10896 (name "emacs-gnuplot")
10897 (version "0.7.0")
10898 (source
10899 (origin
10900 (method git-fetch)
10901 (uri (git-reference
10902 (url "https://github.com/bruceravel/gnuplot-mode.git")
10903 (commit version)))
10904 (file-name (git-file-name name version))
10905 (sha256
10906 (base32 "0bwri3cvm2vr27kyqkrddm28fs08axnd4nm9amfgp54xp20bn4yn"))))
10907 (build-system gnu-build-system)
10908 (native-inputs `(("emacs" ,emacs-minimal)))
10909 (arguments
10910 (let ((elisp-dir "/share/emacs/site-lisp"))
10911 `(#:modules ((guix build gnu-build-system)
10912 (guix build utils)
10913 (guix build emacs-utils))
10914 #:imported-modules (,@%gnu-build-system-modules
10915 (guix build emacs-utils))
10916 #:configure-flags
10917 (list (string-append "EMACS=" (assoc-ref %build-inputs "emacs")
10918 "/bin/emacs")
10919 (string-append "--with-lispdir=" %output ,elisp-dir))
10920 #:phases
10921 (modify-phases %standard-phases
10922 (add-after 'install 'generate-autoloads
10923 (lambda* (#:key outputs #:allow-other-keys)
10924 (emacs-generate-autoloads
10925 "gnuplot"
10926 (string-append (assoc-ref outputs "out") ,elisp-dir))
10927 #t))))))
10928 (home-page "https://github.com/bruceravel/gnuplot-mode")
10929 (synopsis "Emacs major mode for interacting with gnuplot")
10930 (description "@code{emacs-gnuplot} is an emacs major mode for interacting
10931 with gnuplot.")
10932 (license license:gpl2+)))
10933
10934 (define-public emacs-transpose-frame
10935 (package
10936 (name "emacs-transpose-frame")
10937 (version "0.1.0")
10938 (source
10939 (origin
10940 (method url-fetch)
10941 (uri "https://www.emacswiki.org/emacs/download/transpose-frame.el")
10942 (file-name (string-append "transpose-frame-" version ".el"))
10943 (sha256
10944 (base32
10945 "1f67yksgw9s6j0033hmqzaxx2a93jm11sd5ys7cc3li5gfh680m4"))))
10946 (build-system emacs-build-system)
10947 (home-page "https://www.emacswiki.org/emacs/TransposeFrame")
10948 (synopsis "Transpose window arrangement in current frame")
10949 (description "@code{emacs-transpose-frame} provides some interactive
10950 functions which allows users to transpose windows arrangement in currently
10951 selected frame.")
10952 (license license:bsd-2)))
10953
10954 (define-public emacs-key-chord
10955 (package
10956 (name "emacs-key-chord")
10957 (version "0.6")
10958 (source
10959 (origin
10960 (method url-fetch)
10961 (uri "https://www.emacswiki.org/emacs/download/key-chord.el")
10962 (file-name (string-append "key-chord-" version ".el"))
10963 (sha256
10964 (base32
10965 "03m44pqggfrd53nh9dvpdjgm0rvca34qxmd30hr33hzprzjambxg"))))
10966 (build-system emacs-build-system)
10967 (home-page "https://www.emacswiki.org/emacs/key-chord.el")
10968 (synopsis "Map pairs of simultaneously pressed keys to Emacs commands")
10969 (description "@code{emacs-key-chord} provides @code{key-chord-mode}, a
10970 mode for binding key chords to commands. A key chord is defined as two keys
10971 pressed simultaneously or a single key quickly pressed twice.")
10972 (license license:gpl2+)))
10973
10974 (define-public emacs-evil-surround
10975 (package
10976 (name "emacs-evil-surround")
10977 (version "1.1.0")
10978 (source
10979 (origin
10980 (method git-fetch)
10981 (uri (git-reference
10982 (url "https://github.com/emacs-evil/evil-surround")
10983 (commit version)))
10984 (file-name (git-file-name name version))
10985 (sha256
10986 (base32 "15v2spg5rhddr97pxjfvxj36sh7knp753a9qpw8v5zjnp65kf2kn"))))
10987 (build-system emacs-build-system)
10988 (propagated-inputs
10989 `(("emacs-evil" ,emacs-evil)))
10990 (arguments
10991 `(#:tests? #t
10992 #:test-command '("make" "test")))
10993 (home-page "https://github.com/emacs-evil/evil-surround")
10994 (synopsis "Easily modify surrounding parentheses and quotes")
10995 (description "@code{emacs-evil-surround} allows easy deletion, change and
10996 addition of surrounding pairs, such as parentheses and quotes, in evil mode.")
10997 (license license:gpl3+)))
10998
10999 (define-public emacs-evil-commentary
11000 (package
11001 (name "emacs-evil-commentary")
11002 (version "2.1.1")
11003 (source
11004 (origin
11005 (method git-fetch)
11006 (uri (git-reference
11007 (url "https://github.com/linktohack/evil-commentary.git")
11008 (commit (string-append "v" version))))
11009 (file-name (git-file-name name version))
11010 (sha256
11011 (base32 "0zjs9zyqfygnpxapvf0ymmiid40i06cxbhjzd81zw33nafgkf6r4"))))
11012 (build-system emacs-build-system)
11013 (propagated-inputs
11014 `(("emacs-evil" ,emacs-evil)))
11015 (home-page "https://github.com/linktohack/evil-commentary")
11016 (synopsis "Comment out code in evil mode")
11017 (description "@code{emacs-evil-commentary} adds keybindings to easily
11018 comment out lines of code in evil mode. It provides @code{gcc} to comment out
11019 lines, and @code{gc} to comment out the target of a motion.")
11020 (license license:gpl3+)))
11021
11022 ;; Tests for emacs-ansi have a circular dependency with ert-runner, and
11023 ;; therefore cannot be run
11024 (define-public emacs-ansi
11025 (package
11026 (name "emacs-ansi")
11027 (version "0.4.1")
11028 (source
11029 (origin
11030 (method git-fetch)
11031 (uri (git-reference
11032 (url "https://github.com/rejeep/ansi.el.git")
11033 (commit (string-append "v" version))))
11034 (file-name (git-file-name name version))
11035 (sha256
11036 (base32 "1hbddxarr40ygvaw4pwaivq2l4f0brszw73w1r50lkjlggb7bl3g"))))
11037 (build-system emacs-build-system)
11038 (propagated-inputs
11039 `(("emacs-dash" ,emacs-dash)
11040 ("emacs-s" ,emacs-s)))
11041 (home-page "https://github.com/rejeep/ansi.el")
11042 (synopsis "Convert strings to ANSI")
11043 (description "@code{emacs-ansi} defines functions that turns simple
11044 strings to ANSI strings. Turning a string into an ANSI string can be to add
11045 color to a text, add color in the background of a text or adding a style, such
11046 as bold, underscore or italic.")
11047 (license license:gpl3+)))
11048
11049 ;; Tests for emacs-commander have a circular dependency with ert-runner, and
11050 ;; therefore cannot be run
11051 (define-public emacs-commander
11052 (package
11053 (name "emacs-commander")
11054 (version "0.7.0")
11055 (source
11056 (origin
11057 (method git-fetch)
11058 (uri (git-reference
11059 (url "https://github.com/rejeep/commander.el.git")
11060 (commit (string-append "v" version))))
11061 (file-name (git-file-name name version))
11062 (sha256
11063 (base32 "1j6hhyzww7wfwk6bllbb5mk4hw4qs8hsgfbfdifsam9c6i4spm45"))))
11064 (build-system emacs-build-system)
11065 (propagated-inputs
11066 `(("emacs-dash" ,emacs-dash)
11067 ("emacs-f" ,emacs-f)
11068 ("emacs-s" ,emacs-s)))
11069 (home-page "https://github.com/rejeep/commander.el")
11070 (synopsis "Emacs command line parser")
11071 (description "@code{emacs-commander} provides command line parsing for
11072 Emacs.")
11073 (license license:gpl3+)))
11074
11075 (define-public emacs-eglot
11076 (package
11077 (name "emacs-eglot")
11078 (version "1.6")
11079 (source
11080 (origin
11081 (method url-fetch)
11082 (uri (string-append "https://elpa.gnu.org/packages/"
11083 "eglot-" version ".tar"))
11084 (sha256
11085 (base32 "15hd6sx7qrpvlvhwwkcgdiki8pswwf4mm7hkm0xvznskfcp44spx"))))
11086 (build-system emacs-build-system)
11087 (propagated-inputs
11088 `(("emacs-jsonrpc" ,emacs-jsonrpc)))
11089 (home-page "https://github.com/joaotavora/eglot")
11090 (synopsis "Client for Language Server Protocol (LSP) servers")
11091 (description
11092 "Emacs Polyglot, or Eglot, is an Emacs @acronym{Language Server Protocol,
11093 LSP} client that stays out of the way. It guesses the LSP program to start
11094 for the current file, using the major mode as a hint. It prompts you to enter
11095 one if it fails.")
11096 (license license:gpl3+)))
11097
11098 ;; Tests for ert-runner have a circular dependency with ecukes, and therefore
11099 ;; cannot be run
11100 (define-public emacs-ert-runner
11101 (package
11102 (name "emacs-ert-runner")
11103 (version "0.8.0")
11104 (source
11105 (origin
11106 (method git-fetch)
11107 (uri (git-reference
11108 (url "https://github.com/rejeep/ert-runner.el.git")
11109 (commit (string-append "v" version))))
11110 (file-name (git-file-name name version))
11111 (sha256
11112 (base32
11113 "08gygn9fjank5gpi4v6ynrkn0jbknxbwsn7md4p9ndygdbmnkf98"))))
11114 (build-system emacs-build-system)
11115 (inputs
11116 `(("emacs-ansi" ,emacs-ansi)
11117 ("emacs-commander" ,emacs-commander)
11118 ("emacs-dash" ,emacs-dash)
11119 ("emacs-f" ,emacs-f)
11120 ("emacs-s" ,emacs-s)
11121 ("emacs-shut-up" ,emacs-shut-up)))
11122 (arguments
11123 `(#:phases
11124 (modify-phases %standard-phases
11125 (add-after 'install 'install-executable
11126 (lambda* (#:key inputs outputs #:allow-other-keys)
11127 (let ((out (assoc-ref outputs "out"))
11128 (source-directory (string-append
11129 (getenv "TMPDIR") "/source")))
11130 (substitute* "bin/ert-runner"
11131 (("ERT_RUNNER=\"\\$\\(dirname \\$\\(dirname \\$0\\)\\)")
11132 (string-append "ERT_RUNNER=\"" out
11133 "/share/emacs/site-lisp")))
11134 (install-file "bin/ert-runner" (string-append out "/bin"))
11135 (wrap-program (string-append out "/bin/ert-runner")
11136 (list "EMACSLOADPATH" ":" 'prefix
11137 ;; Do not capture the transient source directory in
11138 ;; the wrapper.
11139 (delete source-directory
11140 (string-split (getenv "EMACSLOADPATH") #\:))))
11141 #t))))
11142 #:include (cons* "^reporters/.*\\.el$" %default-include)))
11143 (home-page "https://github.com/rejeep/ert-runner.el")
11144 (synopsis "Opinionated Ert testing workflow")
11145 (description "@code{ert-runner} is a tool for Emacs projects tested
11146 using ERT. It assumes a certain test structure setup and can therefore make
11147 running tests easier.")
11148 (license license:gpl3+)))
11149
11150 (define-public emacs-xtest
11151 (package
11152 (name "emacs-xtest")
11153 (version "1.1.0")
11154 (source (origin
11155 (method git-fetch)
11156 (uri (git-reference
11157 (url "https://github.com/promethial/xtest.git")
11158 (commit (string-append "v" version))))
11159 (file-name (git-file-name name version))
11160 (sha256
11161 (base32
11162 "1wqx6hlqcmqiljydih5fx89dw06g8w728pyn4iqsap8jwgjngb09"))))
11163 (arguments
11164 `(#:exclude '()))
11165 (build-system emacs-build-system)
11166 (home-page "https://github.com/promethial/xtest/")
11167 (synopsis "Simple testing with Emacs")
11168 (description "This package provides a simple testing library for Emacs.")
11169 (license license:gpl3+)))
11170
11171 (define-public emacs-disable-mouse
11172 (package
11173 (name "emacs-disable-mouse")
11174 (version "0.2")
11175 (source
11176 (origin
11177 (method git-fetch)
11178 (uri (git-reference
11179 (url "https://github.com/purcell/disable-mouse.git")
11180 (commit version)))
11181 (file-name (git-file-name name version))
11182 (sha256
11183 (base32 "1v1y5hf6k6ng7xsvgb27nh740d14m6l4krr0paccda8zgm4mw357"))))
11184 (build-system emacs-build-system)
11185 (home-page "https://github.com/purcell/disable-mouse")
11186 (synopsis "Disable mouse commands globally")
11187 (description
11188 "Provides @code{disable-mouse-mode} and @code{global-disable-mouse-mode},
11189 pair of minor modes which suppress all mouse events by intercepting them and
11190 running a customisable handler command (@code{ignore} by default). ")
11191 (license license:gpl3+)))
11192
11193 (define-public emacs-json-reformat
11194 (package
11195 (name "emacs-json-reformat")
11196 (version "0.0.6")
11197 (source
11198 (origin
11199 (method git-fetch)
11200 (uri (git-reference
11201 (url "https://github.com/gongo/json-reformat.git")
11202 (commit version)))
11203 (file-name (git-file-name name version))
11204 (sha256
11205 (base32 "0qp4n2k6s69jj4gwwimkpadjv245y54wk3bxb1x96f034gkp81vs"))
11206 (patches (search-patches "emacs-json-reformat-fix-tests.patch"))))
11207 (build-system emacs-build-system)
11208 (propagated-inputs
11209 `(("emacs-undercover" ,emacs-undercover)))
11210 (native-inputs
11211 `(("emacs-dash" ,emacs-dash)
11212 ("emacs-shut-up" ,emacs-shut-up)
11213 ("ert-runner" ,emacs-ert-runner)))
11214 (arguments
11215 `(#:tests? #t
11216 #:test-command '("ert-runner")
11217 #:phases
11218 (modify-phases %standard-phases
11219 (add-before 'check 'make-tests-writable
11220 (lambda _
11221 (for-each make-file-writable (find-files "test"))
11222 #t))
11223 (add-before 'check 'delete-json-objects-order-test
11224 (lambda _
11225 (emacs-batch-edit-file "test/json-reformat-test.el"
11226 `(progn (progn (goto-char (point-min))
11227 (re-search-forward
11228 "ert-deftest json-reformat-test:json-reformat-region")
11229 (beginning-of-line)
11230 (kill-sexp))
11231 (basic-save-buffer)))
11232 #t)))))
11233 (home-page "https://github.com/gongo/json-reformat")
11234 (synopsis "Reformatting tool for JSON")
11235 (description "@code{json-reformat} provides a reformatting tool for
11236 @url{http://json.org/, JSON}.")
11237 (license license:gpl3+)))
11238
11239 (define-public emacs-json-snatcher
11240 (package
11241 (name "emacs-json-snatcher")
11242 (version "1.0.0")
11243 (source
11244 (origin
11245 (method git-fetch)
11246 (uri (git-reference
11247 (url "https://github.com/Sterlingg/json-snatcher.git")
11248 (commit version)))
11249 (file-name (git-file-name name version))
11250 (sha256
11251 (base32 "05zsgnk7grgw9jzwl80h5sxfpifxlr37b4mkbvx7mjq4z14xc2jw"))))
11252 (build-system emacs-build-system)
11253 (home-page "https://github.com/sterlingg/json-snatcher")
11254 (synopsis "Grabs the path to JSON values in a JSON file")
11255 (description "@code{emacs-json-snatcher} grabs the path to JSON values in
11256 a @url{http://json.org/, JSON} file.")
11257 (license license:gpl3+)))
11258
11259 (define-public emacs-json-mode
11260 (package
11261 (name "emacs-json-mode")
11262 (version "1.7.0")
11263 (source
11264 (origin
11265 (method git-fetch)
11266 (uri (git-reference
11267 (url "https://github.com/joshwnj/json-mode.git")
11268 (commit (string-append "v" version))))
11269 (file-name (git-file-name name version))
11270 (sha256
11271 (base32 "0i79lqzdg59vkqwjd3q092xxn9vhxspb1vn4pkis0vfvn46g01jy"))))
11272 (build-system emacs-build-system)
11273 (propagated-inputs
11274 `(("emacs-json-reformat" ,emacs-json-reformat)
11275 ("emacs-json-snatcher" ,emacs-json-snatcher)))
11276 (home-page "https://github.com/joshwnj/json-mode")
11277 (synopsis "Major mode for editing JSON files")
11278 (description "@code{json-mode} extends the builtin js-mode syntax
11279 highlighting.")
11280 (license license:gpl3+)))
11281
11282 (define-public emacs-jsonrpc
11283 (package
11284 (name "emacs-jsonrpc")
11285 (version "1.0.12")
11286 (source
11287 (origin
11288 (method url-fetch)
11289 (uri (string-append "https://elpa.gnu.org/packages/"
11290 "jsonrpc-" version ".el"))
11291 (sha256
11292 (base32 "0cqp05awikbrn88ifld3vwnv6cxgmr83wlnsvxw8bqb96djz70ad"))))
11293 (build-system emacs-build-system)
11294 (home-page "http://elpa.gnu.org/packages/jsonrpc.html")
11295 (synopsis "JSON-RPC library")
11296 (description
11297 "This library implements the JSONRPC 2.0 specification as
11298 described in @url{http://www.jsonrpc.org/}. As the name suggests,
11299 JSONRPC is a generic Remote Procedure Call protocol designed around
11300 JSON objects.")
11301 (license license:gpl3+)))
11302
11303 (define-public emacs-restclient
11304 (let ((commit "422ee8d8b077dffe65706a0f027ed700b84746bc")
11305 (version "0")
11306 (revision "2")) ;Guix package revision,
11307 ;upstream doesn't have official releases
11308 (package
11309 (name "emacs-restclient")
11310 (version (git-version version revision commit))
11311 (source (origin
11312 (method git-fetch)
11313 (uri (git-reference
11314 (url "https://github.com/pashky/restclient.el.git")
11315 (commit commit)))
11316 (sha256
11317 (base32
11318 "067nin7vxkdpffxa0q61ybv7szihhvpdinivmci9qkbb86rs9kkz"))
11319 (file-name (git-file-name name version))))
11320 (build-system emacs-build-system)
11321 (propagated-inputs
11322 `(("emacs-helm" ,emacs-helm)))
11323 (home-page "https://github.com/pashky/restclient.el")
11324 (synopsis "Explore and test HTTP REST webservices")
11325 (description
11326 "This tool allows for testing and exploration of HTTP REST Web services
11327 from within Emacs. Restclient runs queries from a plan-text query sheet,
11328 displays results pretty-printed in XML or JSON with @code{restclient-mode}")
11329 (license license:public-domain))))
11330
11331 (define-public emacs-whitespace-cleanup-mode
11332 (let ((commit "72427144b054b0238a86e1348c45d986b8830d9d")
11333 (revision "1"))
11334 (package
11335 (name "emacs-whitespace-cleanup-mode")
11336 (version (git-version "0.10" revision commit))
11337 (source (origin
11338 (method git-fetch)
11339 (uri (git-reference
11340 (url "https://github.com/purcell/whitespace-cleanup-mode")
11341 (commit commit)))
11342 (sha256
11343 (base32
11344 "1zlk534jbwrsabcg3kqlzk4h4hwya60lh6q2n1v4yn4rpf5ghsag"))
11345 (file-name (git-file-name name version))))
11346 (build-system emacs-build-system)
11347 (home-page "https://github.com/purcell/whitespace-cleanup-mode")
11348 (synopsis "Intelligently call @code{whitespace-cleanup} on save")
11349 (description
11350 "This package provides a minor mode that calls
11351 @code{whitespace-cleanup} before saving the current buffer only if the
11352 whitespace in the buffer was initially clean.")
11353 (license license:gpl3+))))
11354
11355 (define-public emacs-eimp
11356 (let ((version "1.4.0")
11357 (commit "2e7536fe6d8f7faf1bad7a8ae37faba0162c3b4f")
11358 (revision "1"))
11359 (package
11360 (name "emacs-eimp")
11361 (version (git-version version revision commit))
11362 (source
11363 (origin
11364 (method git-fetch)
11365 (uri (git-reference
11366 (url "https://github.com/nicferrier/eimp.git")
11367 (commit commit)))
11368 (file-name (git-file-name name version))
11369 (sha256
11370 (base32
11371 "154d57yafxbcf39r89n5j43c86rp2fki3lw3gwy7ww2g6qkclcra"))))
11372 (build-system emacs-build-system)
11373 (arguments
11374 `(#:phases
11375 (modify-phases %standard-phases
11376 (add-after 'unpack 'configure
11377 (lambda* (#:key inputs #:allow-other-keys)
11378 (let ((imagemagick (assoc-ref inputs "imagemagick")))
11379 ;; eimp.el is read-only in git.
11380 (chmod "eimp.el" #o644)
11381 (emacs-substitute-variables "eimp.el"
11382 ("eimp-mogrify-program"
11383 (string-append imagemagick "/bin/mogrify"))))
11384 #t)))))
11385 (inputs
11386 `(("imagemagick" ,imagemagick)))
11387 (home-page "https://github.com/nicferrier/eimp")
11388 (synopsis "Interactive image manipulation utility for Emacs")
11389 (description "@code{emacs-eimp} allows interactive image manipulation
11390 from within Emacs. It uses the code@{mogrify} utility from ImageMagick to do
11391 the actual transformations.")
11392 (license license:gpl2+))))
11393
11394 (define-public emacs-dired-hacks
11395 (let ((commit "886befe113fae397407c804f72c45613d1d43535")
11396 (revision "2"))
11397 (package
11398 (name "emacs-dired-hacks")
11399 (version (git-version "0.0.1" revision commit))
11400 (source (origin
11401 (method git-fetch)
11402 (uri (git-reference
11403 (url "https://github.com/Fuco1/dired-hacks.git")
11404 (commit commit)))
11405 (file-name (git-file-name name version))
11406 (sha256
11407 (base32
11408 "1cvibg90ggyrivpjmcfprpi2fx7dpa68f8kzg08s88gw5ib75djl"))))
11409 (build-system emacs-build-system)
11410 (propagated-inputs
11411 `(("emacs-dash" ,emacs-dash)
11412 ("emacs-eimp" ,emacs-eimp)
11413 ("emacs-f" ,emacs-f)
11414 ("emacs-s" ,emacs-s)))
11415 (home-page "https://github.com/Fuco1/dired-hacks")
11416 (synopsis
11417 "Collection of useful dired additions")
11418 (description
11419 "This package provides the following collection of Emacs dired mode
11420 additions:
11421
11422 @itemize
11423 @item dired-avfs
11424 @item dired-columns
11425 @item dired-filter
11426 @item dired-hacks-utils
11427 @item dired-images
11428 @item dired-list
11429 @item dired-narrow
11430 @item dired-open
11431 @item dired-rainbow
11432 @item dired-ranger
11433 @item dired-subtree
11434 @item dired-tagsistant
11435 @end itemize\n")
11436 (license license:gpl3+))))
11437
11438 (define-public emacs-dired-sidebar
11439 (let ((commit "21ccb6723bea69f2e2ca25998268d8a039f904cc")
11440 (revision "1"))
11441 (package
11442 (name "emacs-dired-sidebar")
11443 (home-page "https://github.com/jojojames/dired-sidebar")
11444 (version (git-version "0.1.0" revision commit))
11445 (source (origin
11446 (method git-fetch)
11447 (uri (git-reference (url home-page) (commit commit)))
11448 (file-name (git-file-name name version))
11449 (sha256
11450 (base32
11451 "0mck4qk6srbbf8xnn2sg11j822z4ybxvgavvy402d5sli515i8ca"))))
11452 (build-system emacs-build-system)
11453 (propagated-inputs
11454 `(("emacs-dired-subtree" ,emacs-dired-hacks)))
11455 (synopsis "Sidebar for Emacs using Dired")
11456 (description
11457 "This package provides a sidebar for Emacs similar to @code{NeoTree}
11458 or @code{treemacs}, but leveraging @code{Dired} to do the job of display.")
11459 (license license:gpl3+))))
11460
11461 (define-public emacs-which-key
11462 (package
11463 (name "emacs-which-key")
11464 (version "3.4.0")
11465 (source
11466 (origin
11467 (method git-fetch)
11468 (uri (git-reference
11469 (url "https://github.com/justbur/emacs-which-key.git")
11470 (commit (string-append "v" version))))
11471 (file-name (git-file-name name version))
11472 (sha256
11473 (base32 "1ahgb7dqdc75farkl0fg0a6hvx2067gdvjq99cd3z2dz56km0p05"))))
11474 (build-system emacs-build-system)
11475 (arguments
11476 `(#:tests? #t
11477 #:test-command '("emacs" "--batch"
11478 "-l" "which-key-tests.el"
11479 "-f" "ert-run-tests-batch-and-exit")))
11480 (home-page "https://github.com/justbur/emacs-which-key")
11481 (synopsis "Display available key bindings in popup")
11482 (description
11483 "@code{emacs-which-key} is a minor mode for Emacs that displays the key
11484 bindings following your currently entered incomplete command (a prefix) in a
11485 popup. For example, after enabling the minor mode if you enter C-x and wait
11486 for the default of 1 second, the minibuffer will expand with all of the
11487 available key bindings that follow C-x (or as many as space allows given your
11488 settings).")
11489 (license license:gpl3+)))
11490
11491 (define-public emacs-hercules
11492 (package
11493 (name "emacs-hercules")
11494 (version "0.2.1")
11495 (source
11496 (origin
11497 (method git-fetch)
11498 (uri (git-reference
11499 (url "https://gitlab.com/jjzmajic/hercules.el.git")
11500 (commit (string-append "v" version))))
11501 (file-name (git-file-name name version))
11502 (sha256
11503 (base32
11504 "19939pf5d6p2facmfhpyghx0vipb5k6ry3bmkmjfkj1zp132zfqf"))))
11505 (build-system emacs-build-system)
11506 (propagated-inputs
11507 `(("emacs-which-key" ,emacs-which-key)))
11508 (home-page "https://gitlab.com/jjzmajic/hercules.el")
11509 (synopsis "Call a chain of related commands without repeated prefix keys")
11510 (description
11511 "This package provides sticky-key-like functionality to obviate the
11512 need for repeated prefix-key sequences, and can reuse existing keymaps. The
11513 list of commands is displayed in a handy popup.")
11514 (license license:gpl3+)))
11515
11516 (define-public emacs-ws-butler
11517 (package
11518 (name "emacs-ws-butler")
11519 (version "0.6")
11520 (source (origin
11521 (method git-fetch)
11522 (uri (git-reference
11523 (url "https://github.com/lewang/ws-butler.git")
11524 (commit "323b651dd70ee40a25accc940b8f80c3a3185205")))
11525 (file-name (git-file-name name version))
11526 (sha256
11527 (base32
11528 "1a4b0lsmwq84qfx51c5xy4fryhb1ysld4fhgw2vr37izf53379sb"))))
11529 (build-system emacs-build-system)
11530 (native-inputs
11531 `(("ert-runner" ,emacs-ert-runner)))
11532 (arguments
11533 `(#:tests? #t
11534 #:test-command '("ert-runner" "tests")))
11535 (home-page "https://github.com/lewang/ws-butler")
11536 (synopsis "Trim spaces from end of lines")
11537 (description
11538 "This Emacs package automatically and unobtrusively trims whitespace
11539 characters from end of lines.")
11540 (license license:gpl3+)))
11541
11542 (define-public emacs-openwith
11543 (let ((changeset "aeb78782ec87680ea9f082a3f20a3675b3770cf9")
11544 (revision "0"))
11545 (package
11546 (name "emacs-openwith")
11547 (home-page "https://bitbucket.org/jpkotta/openwith")
11548 (version (git-version "0.0.1" revision changeset))
11549 (source (origin
11550 (method hg-fetch)
11551 (uri (hg-reference (url home-page) (changeset changeset)))
11552 (file-name (git-file-name name version))
11553 (sha256
11554 (base32
11555 "1wl6gnxsyhaad4cl9bxjc0qbc5jzvlwbwjbajs0n1s6qr07d6r01"))))
11556 (build-system emacs-build-system)
11557 (synopsis "Open external applications for files with Emacs")
11558 (description
11559 "This package enables you to associate file name patterns with external
11560 applications that are automatically invoked when you use commands like
11561 @code{find-file}. For example, you can have it open @code{png} files with
11562 @code{feh} and @code{mp4} files with @code{mpv}. This is especially useful
11563 when browsing files with Dired.")
11564 (license license:gpl2+))))
11565
11566 (define-public emacs-org-edit-latex
11567 (package
11568 (name "emacs-org-edit-latex")
11569 (version "0.8.0")
11570 (source
11571 (origin
11572 (method git-fetch)
11573 (uri (git-reference
11574 (url "https://github.com/et2010/org-edit-latex.git")
11575 (commit (string-append "v" version))))
11576 (file-name (git-file-name name version))
11577 (sha256
11578 (base32 "0zcllyhx9n9vcr5w87h0hfz25v52lvh5fi717cb7mf3jh89zh842"))))
11579 (build-system emacs-build-system)
11580 (propagated-inputs
11581 `(("emacs-auctex" ,emacs-auctex)
11582 ;; The version of org in Emacs 25.2 is not sufficient, because the
11583 ;; `org-latex-make-preamble' function is required.
11584 ("emacs-org" ,emacs-org)))
11585 (home-page "https://github.com/et2010/org-edit-latex")
11586 (synopsis "Edit a latex fragment just like editing a src block")
11587 (description "@code{emacs-org-edit-latex} is an extension for org-mode.
11588 It lets you edit a latex fragment in a dedicated buffer just like editing a
11589 src block.")
11590 (license license:gpl3+)))
11591
11592 (define-public emacs-emamux
11593 (package
11594 (name "emacs-emamux")
11595 (version "0.14")
11596 (source
11597 (origin
11598 (method git-fetch)
11599 (uri (git-reference
11600 (url "https://github.com/syohex/emacs-emamux.git")
11601 (commit version)))
11602 (file-name (git-file-name name version))
11603 (sha256
11604 (base32 "19y69qw79miim9cz5ji54gwspjkcp9g2c1xr5s7jj2fiabnxax6b"))))
11605 (build-system emacs-build-system)
11606 (home-page "https://github.com/syohex/emacs-emamux")
11607 (synopsis "Manipulate Tmux from Emacs")
11608 (description
11609 "@code{emacs-emamux} lets Emacs interact with the @code{tmux} terminal
11610 multiplexer.")
11611 (license license:gpl3+)))
11612
11613 (define-public emacs-rpm-spec-mode
11614 (package
11615 (name "emacs-rpm-spec-mode")
11616 (version "0.16")
11617 (source
11618 (origin
11619 (method url-fetch)
11620 ;; URI has the Fedora release number instead of the version
11621 ;; number. This will have to updated manually every new release.
11622 (uri (string-append
11623 "https://src.fedoraproject.org/cgit/rpms"
11624 "/emacs-rpm-spec-mode.git/snapshot"
11625 "/emacs-rpm-spec-mode-f26.tar.gz"))
11626 (sha256
11627 (base32
11628 "17dz80lhjrc89fj17pysl8slahzrqdkxgcjdk55zls6jizkr6kz3"))))
11629 (build-system emacs-build-system)
11630 (home-page "http://pkgs.fedoraproject.org/cgit/rpms/emacs-rpm-spec-mode.git")
11631 (synopsis "Emacs major mode for editing RPM spec files")
11632 (description "@code{emacs-rpm-spec-mode} provides an Emacs major mode for
11633 editing RPM spec files.")
11634 (license license:gpl2+)))
11635
11636 (define-public emacs-lcr
11637 (package
11638 (name "emacs-lcr")
11639 (version "1.1")
11640 (source
11641 (origin
11642 (method git-fetch)
11643 (uri (git-reference
11644 (url "https://github.com/jyp/lcr")
11645 (commit version)))
11646 (file-name (git-file-name name version))
11647 (sha256
11648 (base32 "0mc55icihxqpf8b05990q1lc2nj2792wcgyr73xsiqx0963sjaj8"))))
11649 (build-system emacs-build-system)
11650 (propagated-inputs
11651 `(("emacs-dash" ,emacs-dash)))
11652 (home-page "https://github.com/jyp/lcr")
11653 (synopsis "Lightweight coroutines in Emacs Lisp")
11654 (description "This package provides macros that can translate code into
11655 equivalent continuation-passing code, as well as miscellaneous utility
11656 functions written in continuation-passing style.")
11657 (license license:gpl3+)))
11658
11659 (define-public emacs-attrap
11660 (let ((commit "18cd1f7832870a36c404e872fa83a271fe8e688d")
11661 (revision "2"))
11662 (package
11663 (name "emacs-attrap")
11664 (version (git-version "1.0" revision commit))
11665 (source (origin
11666 (method git-fetch)
11667 (uri (git-reference
11668 (url "https://github.com/jyp/attrap")
11669 (commit commit)))
11670 (sha256
11671 (base32
11672 "078391949h0fgmshin8f79a1a595m06ig577rkgjqgngcp0d61l9"))
11673 (file-name (git-file-name name version))))
11674 (build-system emacs-build-system)
11675 (propagated-inputs
11676 `(("emacs-dash" ,emacs-dash)
11677 ("emacs-f" ,emacs-f)
11678 ("emacs-flycheck" ,emacs-flycheck)
11679 ("emacs-s" ,emacs-s)))
11680 (home-page "https://github.com/jyp/attrap")
11681 (synopsis "Fix coding error at point")
11682 (description "This package provides a command to fix the Flycheck error
11683 at point.")
11684 (license license:gpl3+))))
11685
11686 (define-public emacs-git-messenger
11687 (package
11688 (name "emacs-git-messenger")
11689 (version "0.18")
11690 (source
11691 (origin
11692 (method git-fetch)
11693 (uri (git-reference
11694 (url "https://github.com/syohex/emacs-git-messenger.git")
11695 (commit version)))
11696 (file-name (git-file-name name version))
11697 (sha256
11698 (base32 "04fnby2nblk8l70gv09asxkmnn53fh1pdfs77ix44npp99fyw8ix"))))
11699 (build-system emacs-build-system)
11700 (propagated-inputs
11701 `(("emacs-popup" ,emacs-popup)))
11702 (arguments
11703 `(#:tests? #t
11704 #:test-command '("emacs" "--batch" "-l" "test/test.el"
11705 "-f" "ert-run-tests-batch-and-exit")))
11706 (home-page "https://github.com/syohex/emacs-git-messenger")
11707 (synopsis "Popup commit message at current line")
11708 (description "@code{emacs-git-messenger} provides
11709 @code{git-messenger:popup-message}, a function that when called, will popup
11710 the last git commit message for the current line. This uses git-blame
11711 internally.")
11712 (license license:gpl3+)))
11713
11714 (define-public emacs-gitpatch
11715 (package
11716 (name "emacs-gitpatch")
11717 (version "0.5.1")
11718 (source
11719 (origin
11720 (method git-fetch)
11721 (uri (git-reference
11722 (url "https://github.com/tumashu/gitpatch.git")
11723 (commit (string-append "v" version))))
11724 (file-name (git-file-name name version))
11725 (sha256
11726 (base32 "1drf4fvmak7brf16axkh4nfz8pg44i7pjhfjz3dbkycbpp8y5vig"))))
11727 (build-system emacs-build-system)
11728 (home-page "https://github.com/tumashu/gitpatch")
11729 (synopsis "Mail git patch from Emacs")
11730 (description "@code{emacs-gitpatch} lets users easily send git patches,
11731 created by @code{git format-patch}, from @code{magit}, @code{dired} and
11732 @code{ibuffer} buffers.")
11733 (license license:gpl3+)))
11734
11735 (define-public emacs-erc-hl-nicks
11736 (package
11737 (name "emacs-erc-hl-nicks")
11738 (version "1.3.3")
11739 (source
11740 (origin
11741 (method git-fetch)
11742 (uri (git-reference
11743 (url "https://github.com/leathekd/erc-hl-nicks")
11744 (commit version)))
11745 (file-name (git-file-name name version))
11746 (sha256
11747 (base32 "0c82rxpl5v7bbxirf1ksg06xv5xcddh8nkrpj7i6nvfarwdfnk4f"))))
11748 (build-system emacs-build-system)
11749 (synopsis "Nickname highlighting for Emacs ERC")
11750 (description "@code{erc-hl-nicks} highlights nicknames in ERC, an IRC
11751 client for Emacs. The main features are:
11752 @itemize
11753 @item Auto-colorizes nicknames without having to specify colors
11754 @item Ignores certain characters that IRC clients add to nicknames to avoid
11755 duplicates (nickname, nickname’, nickname\", etc.)
11756 @item Attempts to produce colors with a sufficient amount of contrast between
11757 the nick color and the background color
11758 @end itemize\n")
11759 (home-page "https://github.com/leathekd/erc-hl-nicks")
11760 (license license:gpl3+)))
11761
11762 (define-public emacs-engine-mode
11763 (package
11764 (name "emacs-engine-mode")
11765 (version "2.1.1")
11766 (source
11767 (origin
11768 (method git-fetch)
11769 (uri (git-reference
11770 (url "https://github.com/hrs/engine-mode.git")
11771 (commit (string-append "v" version))))
11772 (file-name (git-file-name name version))
11773 (sha256
11774 (base32 "1xka8i4cdvp5r2v2mkli1zz17x1sdsnmszbhqav2rf94v656d91i"))))
11775 (build-system emacs-build-system)
11776 (synopsis "Minor mode for defining and querying search engines")
11777 (description "@code{engine-mode} is a global minor mode for Emacs. It
11778 enables you to easily define search engines, bind them to keybindings, and
11779 query them from the comfort of your editor.")
11780 (home-page "https://github.com/hrs/engine-mode")
11781 (license license:gpl3+)))
11782
11783 (define-public emacs-prop-menu
11784 (package
11785 (name "emacs-prop-menu")
11786 (version "0.1.2")
11787 (source
11788 (origin
11789 (method git-fetch)
11790 (uri (git-reference
11791 (url "https://github.com/david-christiansen/prop-menu-el.git")
11792 (commit version)))
11793 (file-name (git-file-name name version))
11794 (sha256
11795 (base32
11796 "18ap2liz5r5a8ja2zz9182fnfm47jnsbyblpq859zks356k37iwc"))))
11797 (build-system emacs-build-system)
11798 (home-page
11799 "https://github.com/david-christiansen/prop-menu-el")
11800 (synopsis
11801 "Create and display a context menu based on text and overlay properties")
11802 (description
11803 "This is a library for computing context menus based on text
11804 properties and overlays. The intended use is to have tools that
11805 annotate source code and others that use these annotations, without
11806 requiring a direct coupling between them, but maintaining
11807 discoverability.
11808
11809 Major modes that wish to use this library should first define an
11810 appropriate value for @code{prop-menu-item-functions}. Then, they should
11811 bind @code{prop-menu-by-completing-read} to an appropriate
11812 key. Optionally, a mouse pop-up can be added by binding
11813 @code{prop-menu-show-menu} to a mouse event.")
11814 (license license:gpl3+)))
11815
11816 (define-public emacs-idris-mode
11817 (let ((commit "b77eadd8ac2048d5c882b4464bd9673e45dd6a59")
11818 (revision "0"))
11819 (package
11820 (name "emacs-idris-mode")
11821 (version (git-version "1.0" revision commit))
11822 (source
11823 (origin
11824 (method git-fetch)
11825 (uri (git-reference
11826 (url "https://github.com/idris-hackers/idris-mode.git")
11827 (commit commit)))
11828 (file-name (git-file-name name commit))
11829 (sha256
11830 (base32
11831 "1v8av6jza1j00ln75zjwaca0vmmv0fhhhi94p84rlfzgzykyb9g1"))))
11832 (build-system emacs-build-system)
11833 (propagated-inputs
11834 `(("emacs-prop-menu" ,emacs-prop-menu)))
11835 (home-page
11836 "https://github.com/idris-hackers/idris-mode")
11837 (synopsis "Major mode for editing Idris code")
11838 (description
11839 "This is an Emacs mode for editing Idris code. It is compatible with
11840 the latest versions of Idris 1.")
11841 (license license:gpl3+))))
11842
11843 (define-public emacs-browse-at-remote
11844 (package
11845 (name "emacs-browse-at-remote")
11846 (version "0.10.0")
11847 (source
11848 (origin
11849 (method git-fetch)
11850 (uri (git-reference
11851 (url "https://github.com/rmuslimov/browse-at-remote.git")
11852 (commit version)))
11853 (file-name (git-file-name name version))
11854 (sha256
11855 (base32 "0vhia7xmszcb3lxrb8wh93a3knjfzj48h8nhj4fh8zj1pjz6args"))))
11856 (build-system emacs-build-system)
11857 (propagated-inputs
11858 `(("emacs-f" ,emacs-f)
11859 ("emacs-s" ,emacs-s)))
11860 (native-inputs
11861 `(("ert-runner" ,emacs-ert-runner)))
11862 (arguments
11863 `(#:tests? #t
11864 #:test-command '("ert-runner")))
11865 (home-page "https://github.com/rmuslimov/browse-at-remote")
11866 (synopsis "Open github/gitlab/bitbucket/stash page from Emacs")
11867 (description
11868 "This Emacs package allows you to open a target page on
11869 github/gitlab (or bitbucket) by calling @code{browse-at-remote} command.
11870 It supports dired buffers and opens them in tree mode at destination.")
11871 (license license:gpl3+)))
11872
11873 (define-public emacs-tiny
11874 (let ((commit "fd8a6b0b0c564d8242259e20e557ee6041f40908")
11875 (revision "1"))
11876 (package
11877 (name "emacs-tiny")
11878 (version (git-version "0.2.1" revision commit))
11879 (source
11880 (origin
11881 (method git-fetch)
11882 (uri (git-reference
11883 (url "https://github.com/abo-abo/tiny.git")
11884 (commit commit)))
11885 (file-name (git-file-name name version))
11886 (sha256
11887 (base32
11888 "1498j392ap2mk4zmsm2id16pfgvj78r428da9vw7hdrzzibai2cx"))))
11889 (build-system emacs-build-system)
11890 (arguments
11891 `(#:tests? #t
11892 #:test-command '("make" "test")))
11893 (home-page "https://github.com/abo-abo/tiny")
11894 (synopsis "Quickly generate linear ranges in Emacs")
11895 (description
11896 "The main command of the @code{tiny} extension for Emacs is @code{tiny-expand}.
11897 It is meant to quickly generate linear ranges, e.g. 5, 6, 7, 8. Some elisp
11898 proficiency is an advantage, since you can transform your numeric range with
11899 an elisp expression.")
11900 (license license:gpl3+))))
11901
11902 (define-public emacs-emojify
11903 (package
11904 (name "emacs-emojify")
11905 (version "1.2")
11906 (source
11907 (origin
11908 (method git-fetch)
11909 (uri (git-reference
11910 (url "https://github.com/iqbalansari/emacs-emojify")
11911 (commit (string-append "v" version))))
11912 (file-name (git-file-name name version))
11913 (sha256
11914 (base32
11915 "1fqnj5x7ivjkm5y927dqqnm85q5hzczlb0hrfpjalrhasa6ijsrm"))))
11916 (build-system emacs-build-system)
11917 (arguments
11918 `(#:include (cons "^data/" %default-include)))
11919 (propagated-inputs
11920 `(("emacs-ht" ,emacs-ht)))
11921 (home-page "https://github.com/iqbalansari/emacs-emojify")
11922 (synopsis "Display emojis in Emacs")
11923 (description "This package displays emojis in Emacs similar to how Github,
11924 Slack, and other websites do. It can display plain ASCII like @code{:)} as
11925 well as Github-style emojis like @code{:smile:}. It provides a minor mode
11926 @code{emojify-mode} to enable the display of emojis in a buffer.")
11927 (license license:gpl3+)))
11928
11929 (define-public emacs-make-it-so
11930 (let ((commit "b73dfb640588123c9eece230ad72b37604f5c126")
11931 (revision "2"))
11932 (package
11933 (name "emacs-make-it-so")
11934 (version (git-version "0.1.0" revision commit))
11935 (source
11936 (origin
11937 (method git-fetch)
11938 (uri (git-reference
11939 (url "https://github.com/abo-abo/make-it-so")
11940 (commit commit)))
11941 (file-name (git-file-name name version))
11942 (sha256
11943 (base32
11944 "0p6xhyinzzkrwzbpxqfm8hlii0ikvmmylya240bwsa77w0g1k6xq"))))
11945 (build-system emacs-build-system)
11946 (arguments
11947 `(#:include (cons "^recipes/" %default-include)))
11948 (propagated-inputs
11949 `(("emacs-ivy" ,emacs-ivy)))
11950 (home-page "https://github.com/abo-abo/make-it-so")
11951 (synopsis "Transform files with Makefile recipes")
11952 (description "This package provides an interface for selecting from
11953 different conversion recipes, often including tools like @code{ffmpeg} or
11954 @code{convert}. The conversion command need only be written once, and
11955 subsequent invocations can be readily customized. Several recipes are
11956 included by default, and more can be readily added.")
11957 (license license:gpl3+))))
11958
11959 (define-public emacs-unidecode
11960 (let ((commit "5502ada9287b4012eabb879f12f5b0a9df52c5b7")
11961 (revision "1"))
11962 (package
11963 (name "emacs-unidecode")
11964 (version (git-version "0.2" revision commit))
11965 (source
11966 (origin
11967 (method git-fetch)
11968 (uri (git-reference
11969 (url "https://github.com/sindikat/unidecode")
11970 (commit commit)))
11971 (file-name (git-file-name name version))
11972 (sha256
11973 (base32
11974 "03x3nakbhmakwm977mwrf8jifvjnfwzpjv6wrwpizbqjnkgfchmn"))))
11975 (build-system emacs-build-system)
11976 (arguments
11977 `(#:include (cons* "^tools/" "^data/" %default-include)
11978 #:tests? #t
11979 #:test-command '("emacs" "--batch"
11980 "-l" "unidecode-test.el"
11981 "-f" "ert-run-tests-batch-and-exit")
11982 #:phases
11983 (modify-phases %standard-phases
11984 (add-before 'check 'make-tests-writable
11985 (lambda _
11986 (make-file-writable "unidecode-test.el")
11987 #t))
11988 (add-before 'check 'add-require
11989 (lambda _
11990 (emacs-batch-edit-file "unidecode-test.el"
11991 `(progn (progn (goto-char (point-min))
11992 (re-search-forward
11993 "ert-deftest")
11994 (forward-line -1)
11995 (insert "(require 'unidecode)"))
11996 (basic-save-buffer)))
11997 #t)))))
11998 (home-page "https://github.com/sindikat/unidecode")
11999 (synopsis "Transliterate Unicode text to ASCII")
12000 (description "This package provides functions for converting Unicode to ASCII.")
12001 (license license:gpl2+))))
12002
12003 (define-public emacs-pubmed
12004 (package
12005 (name "emacs-pubmed")
12006 (version "0.2.1")
12007 (source
12008 (origin
12009 (method git-fetch)
12010 (uri (git-reference
12011 (url "https://gitlab.com/fvdbeek/emacs-pubmed.git")
12012 (commit (string-append "v" version))))
12013 (file-name (git-file-name name version))
12014 (sha256
12015 (base32
12016 "15bwjxc7g43m5pi8z17anaqqkvi209r7kk1chmf175477gvrv7c0"))))
12017 (build-system emacs-build-system)
12018 (propagated-inputs
12019 `(("emacs-deferred" ,emacs-deferred)
12020 ("emacs-esxml" ,emacs-esxml)
12021 ("emacs-s" ,emacs-s)
12022 ("emacs-unidecode" ,emacs-unidecode)))
12023 (home-page "https://gitlab.com/fvdbeek/emacs-pubmed")
12024 (synopsis "Interface to PubMed")
12025 (description "This package provides an Emacs interface to the PubMed
12026 database of references on life sciences.")
12027 (license license:gpl3+)))
12028
12029 (define-public emacs-websocket
12030 (package
12031 (name "emacs-websocket")
12032 (version "1.12")
12033 (source
12034 (origin
12035 (method url-fetch)
12036 (uri (string-append "https://elpa.gnu.org/packages/"
12037 "websocket-" version ".tar"))
12038 (sha256
12039 (base32 "0ap4z80c6pzpb69wrx0hsvwzignxmd2b9xy974by9gf5xm2wpa8w"))))
12040 (build-system emacs-build-system)
12041 (home-page "https://elpa.gnu.org/packages/websocket.html")
12042 (synopsis "Emacs WebSocket client and server")
12043 (description
12044 "This is an Elisp library for WebSocket clients to talk to WebSocket
12045 servers, and for WebSocket servers to accept connections from WebSocket
12046 clients. This library is designed to be used by other library writers, to
12047 write applications that use WebSockets, and is not useful by itself.")
12048 (license license:gpl3+)))
12049
12050 (define-public emacs-oauth2
12051 (package
12052 (name "emacs-oauth2")
12053 (version "0.13")
12054 (source
12055 (origin
12056 (method url-fetch)
12057 (uri (string-append "https://elpa.gnu.org/packages/"
12058 "oauth2-" version ".el"))
12059 (sha256
12060 (base32 "0y5nbdwxz2hfr09xgsqgyv60vgx0rsaisibcpkz00klvgg26w33r"))))
12061 (build-system emacs-build-system)
12062 (home-page "https://elpa.gnu.org/packages/oauth2.html")
12063 (synopsis "OAuth 2.0 authorization protocol implementation")
12064 (description
12065 "This package provides an Elisp implementation of the OAuth 2.0 draft.
12066 The main entry point is @code{oauth2-auth-and-store} which will return a token
12067 structure. This token structure can be then used with
12068 @code{oauth2-url-retrieve-synchronously} or @code{oauth2-url-retrieve} to
12069 retrieve any data that need OAuth authentication to be accessed. If the token
12070 needs to be refreshed, the code handles it automatically and stores the new
12071 value of the access token.")
12072 (license license:gpl3+)))
12073
12074 (define-public emacs-circe
12075 (package
12076 (name "emacs-circe")
12077 (version "2.11")
12078 (source
12079 (origin
12080 (method git-fetch)
12081 (uri (git-reference
12082 (url "https://github.com/jorgenschaefer/circe.git")
12083 (commit (string-append "v" version))))
12084 (file-name (git-file-name name version))
12085 (sha256
12086 (base32 "0cr9flk310yn2jgvj4hbqw9nj5wlfi0fazdkqafzidgz6iq150wd"))))
12087 (build-system emacs-build-system)
12088 (arguments
12089 `(#:tests? #t
12090 #:test-command '("buttercup" "-L" ".")
12091 #:phases
12092 (modify-phases %standard-phases
12093 ;; The HOME environment variable should be set to an existing
12094 ;; directory for the tests to succeed.
12095 (add-before 'check 'set-home
12096 (lambda _
12097 (setenv "HOME" "/tmp")
12098 #t)))))
12099 (native-inputs
12100 `(("emacs-buttercup" ,emacs-buttercup)))
12101 ;; In order to securely connect to an IRC server using TLS, Circe requires
12102 ;; the GnuTLS binary.
12103 (propagated-inputs
12104 `(("gnutls" ,gnutls)))
12105 (home-page "https://github.com/jorgenschaefer/circe")
12106 (synopsis "Client for IRC in Emacs")
12107 (description "Circe is a Client for IRC in Emacs. It integrates well with
12108 the rest of the editor, using standard Emacs key bindings and indicating
12109 activity in channels in the status bar so it stays out of your way unless you
12110 want to use it.")
12111 (license license:gpl3+)))
12112
12113 (define-public emacs-tracking
12114 (package
12115 (inherit emacs-circe)
12116 (name "emacs-tracking")
12117 (arguments
12118 ;; "tracking.el" is a library extracted from Circe package. It requires
12119 ;; "shorten.el".
12120 `(#:include '("^shorten.el$" "^tracking.el$")
12121 ,@(package-arguments emacs-circe)))
12122 (home-page "https://github.com/jorgenschaefer/circe/wiki/Tracking")
12123 (synopsis "Buffer tracking library")
12124 (description "@code{tracking.el} provides a way for different modes to
12125 notify the user that a buffer needs attention. The user then can cycle
12126 through them using @key{C-c C-SPC}.")
12127 (license license:gpl3+)))
12128
12129 (define-public emacs-slack
12130 (let ((commit "a6d9f49bc6161f12c594d25254e77eedf4a67666")
12131 (revision "8"))
12132 (package
12133 (name "emacs-slack")
12134 (version (git-version "0.0.2" revision commit))
12135 (source (origin
12136 (method git-fetch)
12137 (uri (git-reference
12138 (url "https://github.com/yuya373/emacs-slack.git")
12139 (commit commit)))
12140 (file-name (git-file-name name commit))
12141 (sha256
12142 (base32
12143 "0crjjankqi4bqjk5pdz4r2ixf56n1nnq8ab1gz3sbl3v6as6262w"))))
12144 (build-system emacs-build-system)
12145 (arguments
12146 `(#:phases
12147 (modify-phases %standard-phases
12148 ;; HOME needs to exist for source compilation.
12149 (add-before 'build 'set-HOME
12150 (lambda _ (setenv "HOME" "/tmp") #t)))))
12151 (propagated-inputs
12152 `(("emacs-alert" ,emacs-alert)
12153 ("emacs-emojify" ,emacs-emojify)
12154 ("emacs-helm" ,emacs-helm)
12155 ("emacs-request" ,emacs-request)
12156 ("emacs-websocket" ,emacs-websocket)
12157 ("emacs-oauth2" ,emacs-oauth2)
12158 ("emacs-circe" ,emacs-circe)))
12159 (home-page "https://github.com/yuya373/emacs-slack")
12160 (synopsis "Slack client for Emacs")
12161 (description "This package provides an Emacs client for the Slack
12162 messaging service.")
12163 (license license:gpl3+))))
12164
12165 (define-public emacs-bash-completion
12166 (package
12167 (name "emacs-bash-completion")
12168 (version "2.1.0")
12169 (source
12170 (origin
12171 (method git-fetch)
12172 (uri (git-reference
12173 (url "https://github.com/szermatt/emacs-bash-completion.git")
12174 (commit version)))
12175 (file-name (git-file-name name version))
12176 (sha256
12177 (base32 "1a1wxcqzh0javjmxwi3lng5i99xiylm8lm04kv4q1lh9bli6vmv0"))))
12178 (inputs `(("bash" ,bash)))
12179 (build-system emacs-build-system)
12180 (arguments
12181 `(#:phases
12182 (modify-phases %standard-phases
12183 (add-after 'unpack 'make-git-checkout-writable
12184 (λ _
12185 (for-each make-file-writable (find-files "."))
12186 #t))
12187 (add-before 'install 'configure
12188 (lambda* (#:key inputs #:allow-other-keys)
12189 (let ((bash (assoc-ref inputs "bash")))
12190 (emacs-substitute-variables "bash-completion.el"
12191 ("bash-completion-prog" (string-append bash "/bin/bash"))))
12192 #t)))))
12193 (home-page "https://github.com/szermatt/emacs-bash-completion")
12194 (synopsis "Bash completion for the shell buffer")
12195 (description
12196 "@code{bash-completion} defines dynamic completion hooks for shell-mode
12197 and shell-command prompts that are based on Bash completion.")
12198 (license license:gpl2+)))
12199
12200 (define-public emacs-easy-kill
12201 (package
12202 (name "emacs-easy-kill")
12203 (version "0.9.3")
12204 (source (origin
12205 (method url-fetch)
12206 (uri (string-append "https://elpa.gnu.org/packages/easy-kill-"
12207 version ".tar"))
12208 (sha256
12209 (base32
12210 "17nw0mglmg877axwg1d0gs03yc0p04lzmd3pl0nsnqbh3303fnqb"))))
12211 (build-system emacs-build-system)
12212 (home-page "https://github.com/leoliu/easy-kill")
12213 (synopsis "Kill and mark things easily in Emacs")
12214 (description
12215 "This package provides commands @code{easy-kill} and @code{easy-mark} to
12216 let users kill or mark things easily.")
12217 (license license:gpl3+)))
12218
12219 (define-public emacs-csv-mode
12220 (package
12221 (name "emacs-csv-mode")
12222 (version "1.12")
12223 (source
12224 (origin
12225 (method url-fetch)
12226 (uri (string-append "https://elpa.gnu.org/packages/"
12227 "csv-mode-" version ".tar"))
12228 (sha256
12229 (base32 "0bya12smlrzwv4cbcmch4kg1fazp4k0ndrh1z17ix9p8c14d0v1j"))))
12230 (build-system emacs-build-system)
12231 (home-page "https://elpa.gnu.org/packages/csv-mode.html")
12232 (synopsis "Major mode for editing comma/char separated values")
12233 (description
12234 "This Emacs package implements CSV mode, a major mode for editing records
12235 in a generalized CSV (character-separated values) format.")
12236 (license license:gpl3+)))
12237
12238 (define-public emacs-transmission
12239 (package
12240 (name "emacs-transmission")
12241 (version "0.12.1")
12242 (source
12243 (origin
12244 (method git-fetch)
12245 (uri (git-reference
12246 (url "https://github.com/holomorph/transmission.git")
12247 (commit version)))
12248 (file-name (git-file-name name version))
12249 (sha256
12250 (base32 "0kvg2gawsgy440x1fsl2c4pkxwp3zirq9rzixanklk0ryijhd3ry"))))
12251 (build-system emacs-build-system)
12252 (home-page "https://github.com/holomorph/transmission")
12253 (synopsis "Emacs interface to a Transmission session")
12254 (description "This package provides an Emacs interface to interact with a
12255 running session of the Transmission Bittorrent client.
12256
12257 Features:
12258
12259 @itemize
12260 @item List, add, start/stop, verify, remove torrents.
12261 @item Set speed limits, ratio limits, bandwidth priorities, trackers.
12262 @item Navigate to the corresponding file list, torrent info, peer info
12263 contexts.
12264 @item Toggle downloading and set priorities for individual files.
12265 @end itemize\n")
12266 (license license:gpl3+)))
12267
12268 (define-public emacs-polymode
12269 (package
12270 (name "emacs-polymode")
12271 (version "0.2")
12272 (source (origin
12273 (method git-fetch)
12274 (uri (git-reference
12275 (url "https://github.com/polymode/polymode.git")
12276 (commit (string-append "v" version))))
12277 (file-name (git-file-name name version))
12278 (sha256
12279 (base32
12280 "04v0gnzfsjb50bgly6kvpryx8cyzwjaq2llw4qv9ijw1l6ixmq3b"))))
12281 (build-system emacs-build-system)
12282 (home-page "https://github.com/polymode/polymode")
12283 (synopsis "Framework for multiple Emacs modes based on indirect buffers")
12284 (description
12285 "Polymode is an Emacs package that offers generic support for multiple
12286 major modes inside a single Emacs buffer. It is lightweight, object oriented
12287 and highly extensible. Creating a new polymode typically takes only a few
12288 lines of code. Polymode also provides extensible facilities for external
12289 literate programming tools for exporting, weaving and tangling.")
12290 (license license:gpl3+)))
12291
12292 (define-public emacs-polymode-ansible
12293 (let ((commit "b26094d029e25dc797b94254f797e7807a57e4c8"))
12294 (package
12295 (name "emacs-polymode-ansible")
12296 ;; No upstream version release yet.
12297 (version (git-version "0.1" "1" commit))
12298 (source
12299 (origin
12300 (method git-fetch)
12301 (uri (git-reference
12302 (url "https://gitlab.com/mavit/poly-ansible")
12303 (commit commit)))
12304 (file-name (git-file-name name version))
12305 (sha256
12306 (base32
12307 "055shddqibib3hx2ykwdz910nrqws40cd407mq946l2bf6v87gj6"))))
12308 (build-system emacs-build-system)
12309 (propagated-inputs
12310 `(("emacs-ansible-doc" ,emacs-ansible-doc)
12311 ("emacs-jinja2-mode" ,emacs-jinja2-mode)
12312 ("emacs-polymode" ,emacs-polymode)
12313 ("emacs-yaml-mode" ,emacs-yaml-mode)))
12314 (properties '((upstream-name . "poly-ansible")))
12315 (home-page "https://gitlab.com/mavit/poly-ansible/")
12316 (synopsis "Polymode for Ansible - Jinja2 in YAML")
12317 (description
12318 "Edit YAML files for Ansible containing embedded Jinja2 templating.")
12319 (license license:gpl3+))))
12320
12321 (define-public emacs-polymode-org
12322 (package
12323 (name "emacs-polymode-org")
12324 (version "0.2")
12325 (source
12326 (origin
12327 (method git-fetch)
12328 (uri (git-reference
12329 (url "https://github.com/polymode/poly-org.git")
12330 (commit (string-append "v" version))))
12331 (file-name (git-file-name name version))
12332 (sha256
12333 (base32
12334 "04x6apjad4kg30456z1j4ipp64yjgkcaim6hqr6bb0rmrianqhck"))))
12335 (build-system emacs-build-system)
12336 (propagated-inputs
12337 `(("emacs-polymode" ,emacs-polymode)))
12338 (properties '((upstream-name . "poly-org")))
12339 (home-page "https://github.com/polymode/poly-org")
12340 (synopsis "Polymode definitions for Org mode buffers")
12341 (description
12342 "Provides definitions for @code{emacs-polymode} to support
12343 @code{emacs-org} buffers. Edit source blocks in an Org mode buffer using the
12344 native modes of the blocks' languages while remaining inside the primary Org
12345 buffer.")
12346 (license license:gpl3+)))
12347
12348 (define-public eless
12349 (package
12350 (name "eless")
12351 (version "0.3")
12352 (source
12353 (origin
12354 (method git-fetch)
12355 (uri (git-reference
12356 (url "https://github.com/kaushalmodi/eless.git")
12357 (commit (string-append "v" version))))
12358 (file-name (git-file-name name version))
12359 (sha256
12360 (base32 "0jr7vhh4vw69llhi0fh9ljscljkszkj0acdxl04da5hvqv6pnqbb"))))
12361 (build-system trivial-build-system)
12362 (inputs
12363 `(("bash" ,bash)))
12364 (arguments
12365 `(#:modules ((guix build utils))
12366 #:builder
12367 (begin
12368 (use-modules (guix build utils))
12369 (copy-recursively (assoc-ref %build-inputs "source") "source")
12370 (chdir "source")
12371 (substitute* "eless" (("/usr/bin/env bash")
12372 (string-append (assoc-ref %build-inputs "bash")
12373 "/bin/bash")))
12374 (install-file "eless" (string-append %output "/bin"))
12375 (install-file "doc/eless.info" (string-append %output "/share/info"))
12376 #t)))
12377 (home-page "https://github.com/kaushalmodi/eless")
12378 (synopsis "Use Emacs as a paginator")
12379 (description "@code{eless} provides a combination of Bash script
12380 and a minimal Emacs view-mode.
12381
12382 Feautures:
12383
12384 @itemize
12385 @item Independent of a user’s Emacs config.
12386 @item Customizable via the @code{(locate-user-emacs-file \"elesscfg\")} config.
12387 @item Not require an Emacs server to be already running.
12388 @item Syntax highlighting.
12389 @item Org-mode file rendering.
12390 @item @code{man} page viewer.
12391 @item Info viewer.
12392 @item Dired, wdired, (batch edit symbolic links).
12393 @item Colored diffs, git diff, git log, ls with auto ANSI detection.
12394 @item Filter log files lines matching a regexp.
12395 @item Auto-revert log files similar to @code{tail -f}.
12396 @item Quickly change frame and font sizes.
12397 @end itemize\n")
12398 (license license:expat)))
12399
12400 (define-public emacs-evil-matchit
12401 (package
12402 (name "emacs-evil-matchit")
12403 (version "2.3.4")
12404 (source
12405 (origin
12406 (method git-fetch)
12407 (uri (git-reference
12408 (url "https://github.com/redguardtoo/evil-matchit.git")
12409 (commit version)))
12410 (file-name (git-file-name name version))
12411 (sha256
12412 (base32 "1nflkmx08n3ya5vaipy1xg19hnqcp6f7ddsx9xjh5gl6ix2iz0az"))))
12413 (build-system emacs-build-system)
12414 (propagated-inputs
12415 `(("emacs-evil" ,emacs-evil)))
12416 (home-page "https://github.com/redguardtoo/evil-matchit")
12417 (synopsis "Vim matchit ported into Emacs")
12418 (description
12419 "@code{evil-matchit} is a minor mode for jumping between matching tags in
12420 evil mode using @kbd{%}. It is a port of @code{matchit} for Vim.")
12421 (license license:gpl3+)))
12422
12423 (define-public emacs-evil-smartparens
12424 (package
12425 (name "emacs-evil-smartparens")
12426 (version "0.4.0")
12427 (source
12428 (origin
12429 (method git-fetch)
12430 (uri (git-reference
12431 (url "https://github.com/expez/evil-smartparens.git")
12432 (commit version)))
12433 (file-name (git-file-name name version))
12434 (sha256
12435 (base32 "1di4qz5fbrlwbg16c2j0m7y8zqfxw027qd7zqmc3rwk9znbhg7wl"))))
12436 (build-system emacs-build-system)
12437 (propagated-inputs
12438 `(("emacs-evil" ,emacs-evil)
12439 ("emacs-smartparens" ,emacs-smartparens)))
12440 (home-page "https://github.com/expez/evil-smartparens")
12441 (synopsis "Emacs Evil integration for Smartparens")
12442 (description "@code{emacs-evil-smartparens} is an Emacs minor mode which
12443 makes Evil play nice with Smartparens. Evil is an Emacs minor mode that
12444 emulates Vim features and provides Vim-like key bindings.")
12445 (license license:gpl3+)))
12446
12447 (define-public emacs-evil-quickscope
12448 (package
12449 (name "emacs-evil-quickscope")
12450 (version "0.1.4")
12451 (source
12452 (origin
12453 (method git-fetch)
12454 (uri (git-reference
12455 (url "https://github.com/blorbx/evil-quickscope.git")
12456 (commit (string-append "v" version))))
12457 (file-name (git-file-name name version))
12458 (sha256
12459 (base32 "1ja9ggj70wf0nmma4xnc1zdzg2crq9h1cv3cj7cgwjmllflgkfq7"))))
12460 (build-system emacs-build-system)
12461 (propagated-inputs
12462 `(("emacs-evil" ,emacs-evil)))
12463 (arguments
12464 `(#:tests? #t
12465 #:test-command '("emacs" "--batch"
12466 "-l" "evil-quickscope-tests.el"
12467 "-f" "ert-run-tests-batch-and-exit")))
12468 (home-page "https://github.com/blorbx/evil-quickscope")
12469 (synopsis "Target highlighting for emacs evil-mode f,F,t and T commands")
12470 (description "@code{emacs-evil-quickscope} highlights targets for Evil
12471 mode’s f,F,t,T keys, allowing for quick navigation within a line. It is a
12472 port of quick-scope for Vim. Evil is an Emacs minor mode that emulates Vim
12473 features and provides Vim-like key bindings.")
12474 (license license:gpl3+)))
12475
12476 (define-public emacs-bongo
12477 (package
12478 (name "emacs-bongo")
12479 (version "1.1")
12480 (source
12481 (origin
12482 (method git-fetch)
12483 (uri (git-reference
12484 (url "https://github.com/dbrock/bongo.git")
12485 (commit version)))
12486 (file-name (git-file-name name version))
12487 (sha256
12488 (base32 "1nszph9mn98flyhn1jq3y6mdh6jymjkvj5ng36ql016dj92apvhv"))))
12489 (build-system emacs-build-system)
12490 (home-page "https://github.com/dbrock/bongo")
12491 (synopsis "Media player for Emacs")
12492 (description
12493 "This package provides a flexible media player for Emacs. @code{Bongo}
12494 supports multiple backends such as @code{vlc}, @code{mpg123},
12495 @code{ogg123}, @code{speexdec}, @code{timidity}, @code{mikmod} and
12496 @code{afplay}.")
12497 (license license:gpl2+)))
12498
12499 (define-public emacs-groovy-modes
12500 (package
12501 (name "emacs-groovy-modes")
12502 (version "2.0")
12503 (source (origin
12504 (method git-fetch)
12505 (uri (git-reference
12506 (url "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes")
12507 (commit version)))
12508 (file-name (git-file-name name version))
12509 (sha256
12510 (base32
12511 "0c1d4cbnlny8gpcd20zr1wxx6ggf28jgh7sgd5r1skpsvjpbfqx2"))))
12512 (build-system emacs-build-system)
12513 (propagated-inputs
12514 `(("emacs-s" ,emacs-s)))
12515 (home-page "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes")
12516 (synopsis "Groovy related modes for Emacs")
12517 (description
12518 "This package provides @code{groovy-mode} for syntax highlighting in
12519 Groovy source files, REPL integration with run-groovy and Grails project
12520 navigation with the grails mode.")
12521 (license license:gpl3+)))
12522
12523 (define-public emacs-org-tree-slide
12524 (let ((commit "036a36eec1cf712d3db155572aed325daa372eb5")
12525 (revision "2"))
12526 (package
12527 (name "emacs-org-tree-slide")
12528 (version (git-version "2.8.4" revision commit))
12529 (source (origin
12530 (method git-fetch)
12531 (uri (git-reference
12532 (url "https://github.com/takaxp/org-tree-slide.git")
12533 (commit commit)))
12534 (sha256
12535 (base32
12536 "1r8ncx25xmxicgciyv5przp68y8qgy40fm10ba55awvql4xcm0yk"))
12537 (file-name (git-file-name name version))))
12538 (build-system emacs-build-system)
12539 (home-page "https://github.com/takaxp/org-tree-slide")
12540 (synopsis "Presentation tool for org-mode")
12541 (description
12542 "Org-tree-slide provides a slideshow mode to view org-mode files. Use
12543 @code{org-tree-slide-mode} to enter the slideshow mode, and then @kbd{C->} and
12544 @kbd{C-<} to jump to the next and previous slide.")
12545 (license license:gpl3+))))
12546
12547 (define-public emacs-scratch-el
12548 (let ((commit "2cdf2b841ce7a0987093f65b0cc431947549f897")
12549 (revision "1"))
12550 (package
12551 (name "emacs-scratch-el")
12552 (version (git-version "1.2" revision commit))
12553 (source (origin
12554 (method git-fetch)
12555 (uri (git-reference
12556 (url "https://github.com/ieure/scratch-el.git")
12557 (commit commit)))
12558 (file-name (git-file-name name version))
12559 (sha256
12560 (base32
12561 "0wscsndynjmnliajqaz28r1ww81j8wh84zwaaswx51abhwgl0idf"))))
12562 (build-system emacs-build-system)
12563 (native-inputs
12564 `(("texinfo" ,texinfo)))
12565 (arguments
12566 '(#:phases
12567 (modify-phases %standard-phases
12568 (add-after 'install 'install-doc
12569 (lambda* (#:key outputs #:allow-other-keys)
12570 (unless (invoke "makeinfo" "scratch.texi")
12571 (error "makeinfo failed"))
12572 (install-file "scratch.info"
12573 (string-append (assoc-ref outputs "out")
12574 "/share/info"))
12575 #t)))))
12576 (home-page "https://github.com/ieure/scratch-el/")
12577 (synopsis "Create scratch buffers with the same mode as current buffer")
12578 (description "Scratch is an extension to Emacs that enables one to create
12579 scratch buffers that are in the same mode as the current buffer. This is
12580 notably useful when working on code in some language; you may grab code into a
12581 scratch buffer, and, by virtue of this extension, do so using the Emacs
12582 formatting rules for that language.")
12583 (license license:bsd-2))))
12584
12585 (define-public emacs-kv
12586 (package
12587 (name "emacs-kv")
12588 (version "0.0.19")
12589 (source
12590 (origin
12591 (method git-fetch)
12592 (uri (git-reference
12593 (url "https://github.com/nicferrier/emacs-kv.git")
12594 (commit "721148475bce38a70e0b678ba8aa923652e8900e")))
12595 (file-name (git-file-name name version))
12596 (sha256
12597 (base32
12598 "0r0lz2s6gvy04fwnafai668jsf4546h4k6zd6isx5wpk0n33pj5m"))))
12599 (build-system emacs-build-system)
12600 (arguments
12601 `(#:tests? #t
12602 #:test-command '("emacs" "--batch" "-l" "kv-tests.el"
12603 "-f" "ert-run-tests-batch-and-exit")))
12604 (home-page "https://github.com/nicferrier/emacs-kv")
12605 (synopsis "Key/Value data structures library for Emacs Lisp")
12606 (description "@code{emacs-kv} is a collection of tools for dealing with
12607 key/value data structures such as plists, alists and hash-tables in Emacs
12608 Lisp.")
12609 (license license:gpl3+)))
12610
12611 (define-public emacs-esxml
12612 (package
12613 (name "emacs-esxml")
12614 (version "0.3.4")
12615 (source (origin
12616 (method git-fetch)
12617 (uri (git-reference
12618 (url "https://github.com/tali713/esxml.git")
12619 (commit version)))
12620 (file-name (git-file-name name version))
12621 (sha256
12622 (base32
12623 "00vv8a75wdklygdyr4km9mc2ismxak69c45jmcny41xl44rp9x8m"))))
12624 (build-system emacs-build-system)
12625 (arguments
12626 `(#:phases
12627 (modify-phases %standard-phases
12628 (add-after 'unpack 'fix-sources
12629 (lambda _
12630 ;; See: https://github.com/tali713/esxml/pull/28.
12631 (substitute* "css-lite.el"
12632 ((";;; main interface")
12633 (string-append ";;; main interface\n"
12634 "(require 'cl-lib)"))
12635 (("mapcan")
12636 "cl-mapcan")
12637 (("',\\(cl-mapcan #'process-css-rule rules\\)")
12638 "(cl-mapcan #'process-css-rule ',rules)"))
12639 (substitute* "esxml-form.el"
12640 ((",esxml-form-field-defn")
12641 "#'esxml-form-field-defn"))
12642 ;; See: https://github.com/tali713/esxml/issues/25
12643 (delete-file "esxpath.el")
12644 #t)))))
12645 (propagated-inputs
12646 `(("emacs-kv" ,emacs-kv)))
12647 (home-page "https://github.com/tali713/esxml/")
12648 (synopsis "SXML for EmacsLisp")
12649 (description "This is XML/XHTML done with S-Expressions in EmacsLisp.
12650 Simply, this is the easiest way to write HTML or XML in Lisp. This library
12651 uses the native form of XML representation as used by many libraries already
12652 included within Emacs. See @code{esxml-to-xml} for a concise description of
12653 the format.")
12654 (license license:gpl3+)))
12655
12656 (define-public emacs-nov-el
12657 (package
12658 (name "emacs-nov-el")
12659 (version "0.3.1")
12660 (source
12661 (origin
12662 (method git-fetch)
12663 (uri (git-reference
12664 (url "https://depp.brause.cc/nov.el.git")
12665 (commit version)))
12666 (file-name (git-file-name name version))
12667 (sha256
12668 (base32 "13r7lvyyyv62m57m4s4xjs4qz2ckhqk6ib514px7qzc7mdzcz9i9"))))
12669 (build-system emacs-build-system)
12670 (arguments
12671 `(#:phases
12672 (modify-phases %standard-phases
12673 (add-after 'unpack 'embed-path-to-unzip
12674 (lambda _
12675 (substitute* "nov.el"
12676 (("\\(executable-find \"unzip\"\\)")
12677 (string-append "\"" (which "unzip") "\"")))
12678 #t)))))
12679 (propagated-inputs
12680 `(("emacs-dash" ,emacs-dash)
12681 ("emacs-esxml" ,emacs-esxml)))
12682 (inputs
12683 `(("unzip" ,unzip)))
12684 (home-page "https://depp.brause.cc/nov.el/")
12685 (synopsis "Major mode for reading EPUBs in Emacs")
12686 (description "@code{nov.el} provides a major mode for reading EPUB
12687 documents.
12688
12689 Features:
12690
12691 @itemize
12692 @item Basic navigation (jump to TOC, previous/next chapter)
12693 @item Remembering and restoring the last read position
12694 @item Jump to next chapter when scrolling beyond end
12695 @item Renders EPUB2 (@code{.ncx}) and EPUB3 (@code{<nav>}) TOCs
12696 @item Hyperlinks to internal and external targets
12697 @item Supports textual and image documents
12698 @item View source of document files
12699 @item Metadata display
12700 @item Image rescaling
12701 @end itemize
12702 ")
12703 (license license:gpl3+)))
12704
12705 (define-public epipe
12706 (package
12707 (name "epipe")
12708 (version "0.1.0")
12709 (source
12710 (origin
12711 (method git-fetch)
12712 (uri (git-reference
12713 (url "https://github.com/cute-jumper/epipe.git")
12714 (commit version)))
12715 (file-name (git-file-name name version))
12716 (sha256
12717 (base32 "0lkisi1s7sn12nx8zh58qmsxwnk1rjwryj18wcbr148xqz3swg57"))))
12718 (build-system trivial-build-system)
12719 (inputs
12720 `(("bash" ,bash)
12721 ("perl" ,perl)))
12722 (arguments
12723 `(#:modules
12724 ((guix build utils))
12725 #:builder
12726 (begin
12727 (use-modules (guix build utils))
12728 ;; Extract source.
12729 (copy-recursively (assoc-ref %build-inputs "source") "source")
12730 (chdir "source")
12731 ;; Patch shebangs.
12732 (substitute* "epipe"
12733 (("/usr/bin/env bash")
12734 (string-append (assoc-ref %build-inputs "bash") "/bin/bash")))
12735 (patch-shebang "epipe.pl"
12736 (list (string-append (assoc-ref %build-inputs "perl")
12737 "/bin")))
12738 ;; Install.
12739 (for-each (lambda (file)
12740 (install-file file (string-append %output "/bin")))
12741 '("epipe" "epipe.pl"))
12742 #t)))
12743 (home-page "https://github.com/cute-jumper/epipe")
12744 (synopsis "Pipe to the @code{emacsclient}")
12745 (description "@code{epipe} provides an utility to use your editor in
12746 the pipeline, featuring the support for running @code{emacsclient}.")
12747 (license license:gpl3+)))
12748
12749 (define-public emacs-hcl-mode
12750 (package
12751 (name "emacs-hcl-mode")
12752 (version "0.03")
12753 (source
12754 (origin
12755 (method git-fetch)
12756 (uri (git-reference
12757 (url "https://github.com/syohex/emacs-hcl-mode.git")
12758 (commit version)))
12759 (file-name (git-file-name name version))
12760 (sha256
12761 (base32 "0jqrgq15jz6pvx38pnwkizzfiih0d3nxqphyrc92nqpcyimg8b6g"))))
12762 (build-system emacs-build-system)
12763 (home-page "https://github.com/syohex/emacs-hcl-mode")
12764 (synopsis "Major mode for the Hashicorp Configuration Language")
12765 (description
12766 "@code{emacs-hcl-mode} provides an Emacs major mode for working with
12767 @acronym{HCL, Hashicorp Configuration Language}. It provides syntax
12768 highlighting and indentation support.")
12769 (license license:gpl3+)))
12770
12771 (define-public emacs-terraform-mode
12772 (package
12773 (name "emacs-terraform-mode")
12774 (version "0.06")
12775 (source
12776 (origin
12777 (method git-fetch)
12778 (uri (git-reference
12779 (url "https://github.com/syohex/emacs-terraform-mode.git")
12780 (commit version)))
12781 (file-name (git-file-name name version))
12782 (sha256
12783 (base32 "05hn8kskx9lcgn7bzgam99c629zlryir2pickwrqndacjrqpdykx"))))
12784 (build-system emacs-build-system)
12785 (propagated-inputs
12786 `(("emacs-hcl-mode" ,emacs-hcl-mode)))
12787 (home-page "https://github.com/syohex/emacs-terraform-mode")
12788 (synopsis "Major mode for Terraform")
12789 (description
12790 "@code{emacs-terraform-mode} provides a major mode for working with
12791 @uref{https://www.terraform.io/, Terraform} configuration files. Most of the
12792 functionality is inherited from @code{hcl-mode}.")
12793 (license license:gpl3+)))
12794
12795 (define-public emacs-exec-path-from-shell
12796 (package
12797 (name "emacs-exec-path-from-shell")
12798 (version "1.12")
12799 (source
12800 (origin
12801 (method git-fetch)
12802 (uri (git-reference
12803 (url "https://github.com/purcell/exec-path-from-shell")
12804 (commit version)))
12805 (file-name (git-file-name name version))
12806 (sha256
12807 (base32
12808 "1ga8bpxngd3ph2hdiik92c612ki71qxw818i6rgx6f6a5r0sbf3p"))))
12809 (build-system emacs-build-system)
12810 (home-page "https://github.com/purcell/exec-path-from-shell")
12811 (synopsis "Get environment variables such as @var{PATH} from the shell")
12812 (description
12813 "This library allows the user to set Emacs @var{exec-path} and @var{PATH}
12814 from the shell @var{PATH}, so that @code{shell-command}, @code{compile} and
12815 the like work as expected on systems on which Emacs is not guaranteed to
12816 inherit a login shell's environment variables. It also allows other
12817 environment variables to be retrieved from the shell, so that Emacs will see
12818 the same values you get in a terminal.")
12819 (license license:gpl3+)))
12820
12821 (define-public emacs-frog-menu
12822 (package
12823 (name "emacs-frog-menu")
12824 (version "0.2.11")
12825 (source
12826 (origin
12827 (method url-fetch)
12828 (uri (string-append "https://elpa.gnu.org/packages/"
12829 "frog-menu-" version ".el"))
12830 (sha256
12831 (base32 "06iw11z61fd0g4w3562k3smcmzaq3nivvvc6gzm8y8k5pcrqzdff"))))
12832 (build-system emacs-build-system)
12833 (propagated-inputs
12834 `(("emacs-avy" ,emacs-avy)
12835 ("emacs-posframe" ,emacs-posframe)))
12836 (home-page "https://github.com/clemera/frog-menu")
12837 (synopsis "Quickly pick items from ad hoc menus")
12838 (description
12839 "This package provides a popup offering a preview of a list of candidates
12840 on which user-defined dispatch actions can act.")
12841 (license license:gpl3+)))
12842
12843 (define-public emacs-frog-jump-buffer
12844 (let ((commit "2d7b342785ae27d45f5d252272df6eb773c78e20")
12845 (revision "1"))
12846 (package
12847 (name "emacs-frog-jump-buffer")
12848 (version (git-version "0.1.4" revision commit))
12849 (source
12850 (origin
12851 (method git-fetch)
12852 (uri (git-reference
12853 (url "https://github.com/waymondo/frog-jump-buffer")
12854 (commit commit)))
12855 (file-name (git-file-name name version))
12856 (sha256
12857 (base32
12858 "1z00by8hiss1r2lwmzrl8pnz6jykia2849dqqm4l3z5rf6lwvc0f"))))
12859 (build-system emacs-build-system)
12860 (propagated-inputs
12861 `(("emacs-dash" ,emacs-dash)
12862 ("emacs-frog-menu" ,emacs-frog-menu)
12863 ("emacs-avy" ,emacs-avy)))
12864 (home-page "https://github.com/waymondo/frog-jump-buffer")
12865 (synopsis "Jump to any Emacs buffer with minimal keystrokes")
12866 (description
12867 "This package provides a preview window of buffers that can be switched
12868 to with quicklink-style selections.")
12869 (license license:gpl3+))))
12870
12871 (define-public emacs-deft
12872 (package
12873 (name "emacs-deft")
12874 (version "0.8")
12875 (source
12876 (origin
12877 (method git-fetch)
12878 (uri (git-reference
12879 (url "https://github.com/jrblevin/deft.git")
12880 (commit (string-append "v" version))))
12881 (file-name (git-file-name name version))
12882 (sha256
12883 (base32
12884 "0z7cilgiz6krvl5h2z72hkch43qxmypb0k6p5vxn5lx1p6v0mrf2"))))
12885 (build-system emacs-build-system)
12886 (home-page "https://jblevins.org/projects/deft/")
12887 (synopsis "Quickly browse, filter, and edit plain text notes")
12888 (description
12889 "Deft is an Emacs mode for quickly browsing, filtering, and editing
12890 directories of plain text notes, inspired by Notational Velocity.")
12891 (license license:bsd-3)))
12892
12893 (define-public emacs-anzu
12894 (package
12895 (name "emacs-anzu")
12896 (version "0.62")
12897 (source
12898 (origin
12899 (method git-fetch)
12900 (uri (git-reference
12901 (url "https://github.com/syohex/emacs-anzu.git")
12902 (commit version)))
12903 (file-name (git-file-name name version))
12904 (sha256
12905 (base32 "1lzvc0ihcbplir4hqfyxfqpsd78arz15gk92kmq4f8ggbkl37fan"))))
12906 (build-system emacs-build-system)
12907 (home-page "https://github.com/syohex/emacs-anzu")
12908 (synopsis "Show number of matches in mode-line while searching")
12909 (description
12910 "Anzu provides a minor mode which displays \"current match/total
12911 matches\" in the mode line in various search modes. This is an Emacs port of
12912 Anzu.zim.")
12913 (license license:gpl3+)))
12914
12915 (define-public emacs-ascii-art-to-unicode
12916 (package
12917 (name "emacs-ascii-art-to-unicode")
12918 (version "1.12")
12919 (source
12920 (origin
12921 (method url-fetch)
12922 (uri (string-append "https://elpa.gnu.org/packages/ascii-art-to-unicode-"
12923 version ".el"))
12924 (sha256
12925 (base32
12926 "1w9h2lyriafxj71r79774gh822cz8mry3gdfzyj6ym6v9mvqypna"))))
12927 (build-system emacs-build-system)
12928 (home-page "https://elpa.gnu.org/packages/ascii-art-to-unicode.html")
12929 (synopsis "ASCII to Unicode art converter for Emacs")
12930 (description "This Emacs package provides the commands @command{aa2u} and
12931 @command{aa2u-rectangle}. Both of these commands can be used to convert
12932 simple ASCII art line drawings to Unicode; the former works on the active
12933 region of the buffer, while the latter works on rectangular selections.")
12934 (license license:gpl3+)))
12935
12936 (define-public emacs-emmet-mode
12937 (let ((commit "1acb821e0142136344ccf40c1e5fb664d7db2e70")
12938 (revision "1"))
12939 (package
12940 (name "emacs-emmet-mode")
12941 (version (git-version "1.0.8" revision commit))
12942 (source (origin
12943 (method git-fetch)
12944 (uri (git-reference
12945 (url "https://github.com/smihica/emmet-mode.git")
12946 (commit commit)))
12947 (file-name (git-file-name name version))
12948 (sha256
12949 (base32
12950 "1p25h191bm0h5b3w5apg7wks51k7pb7h4dlww4jbl9ri4d33fzcl"))))
12951 (build-system emacs-build-system)
12952 (home-page "https://github.com/smihica/emmet-mode")
12953 (synopsis "Unofficial Emmet's support for Emacs")
12954 (description
12955 "Unfold CSS-selector-like expressions to markup. It is intended to be
12956 used with SGML-like languages: XML, HTML, XHTML, XSL, etc.")
12957 (license license:gpl3+))))
12958
12959 (define-public emacs-ergoemacs-mode
12960 (let ((commit "3ce23bba3cb50562693860f87f3528c471d603ba")
12961 (revision "1"))
12962 (package
12963 (name "emacs-ergoemacs-mode")
12964 (version (git-version "5.16.10.12" revision commit))
12965 (source
12966 (origin
12967 (method git-fetch)
12968 (uri (git-reference
12969 (url "https://github.com/ergoemacs/ergoemacs-mode.git")
12970 (commit commit)))
12971 (file-name (git-file-name name version))
12972 (sha256
12973 (base32
12974 "1s3b9bridl78hh1mxmdk9nqlmqhibbaxk0a1cixmsf23s06w8w6l"))))
12975 (build-system emacs-build-system)
12976 (propagated-inputs
12977 `(("emacs-undo-tree" ,emacs-undo-tree)))
12978 (home-page "https://ergoemacs.github.io/")
12979 (synopsis "Emacs mode based on common modern interface and ergonomics")
12980 (description
12981 "This package provides an efficient Emacs keybinding set based on
12982 statistics of command frequency, and supports common shortcuts for open,
12983 close, copy, cut, paste, undo, redo.")
12984 (license license:gpl3+))))
12985
12986 (define-public emacs-password-store
12987 (package
12988 (name "emacs-password-store")
12989 (version "1.7.3")
12990 (source (origin
12991 (method url-fetch)
12992 (uri
12993 (string-append "https://git.zx2c4.com/password-store/snapshot/"
12994 "password-store-" version ".tar.xz"))
12995 (sha256
12996 (base32
12997 "1x53k5dn3cdmvy8m4fqdld4hji5n676ksl0ql4armkmsds26av1b"))))
12998 (build-system emacs-build-system)
12999 (arguments
13000 `(#:phases
13001 (modify-phases %standard-phases
13002 (add-after 'unpack 'extract-el-file
13003 (lambda _
13004 (copy-file "contrib/emacs/password-store.el" "password-store.el")
13005 (delete-file-recursively "contrib")
13006 (delete-file-recursively "man")
13007 (delete-file-recursively "src")
13008 (delete-file-recursively "tests"))))))
13009 (propagated-inputs
13010 `(("emacs-f" ,emacs-f)
13011 ("emacs-s" ,emacs-s)
13012 ("emacs-with-editor" ,emacs-with-editor)
13013 ("password-store" ,password-store)))
13014 (home-page "https://git.zx2c4.com/password-store/tree/contrib/emacs")
13015 (synopsis "Password store (pass) support for Emacs")
13016 (description
13017 "This package provides functions for working with pass (\"the
13018 standard Unix password manager\").")
13019 (license license:gpl2+)))
13020
13021 (define-public emacs-auth-source-pass
13022 (let ((commit "847a1f54ed48856b4dfaaa184583ef2c84173edf")
13023 (revision "2"))
13024 (package
13025 (name "emacs-auth-source-pass")
13026 (version (git-version "5.0.0" revision commit))
13027 (source
13028 (origin
13029 (method git-fetch)
13030 (uri (git-reference
13031 (url "https://github.com/DamienCassou/auth-password-store.git")
13032 (commit commit)))
13033 (file-name (git-file-name name version))
13034 (sha256
13035 (base32 "0g48z5w6n3c54zqfpx65dfyl9jqbl15idvbb1hhw2pd9f9r8fykk"))))
13036 (build-system emacs-build-system)
13037 (arguments
13038 `(#:tests? #t
13039 #:test-command '("emacs" "--batch"
13040 "-L" "."
13041 "-l" "test/auth-source-pass-tests.el"
13042 "-f" "ert-run-tests-batch-and-exit")))
13043 (home-page "https://github.com/DamienCassou/auth-password-store")
13044 (synopsis "Integrate @code{auth-source} with @code{password-store}")
13045 (description "This package helps Emacs integrate with the Unix
13046 @code{password-store} application.")
13047 (license license:gpl3+))))
13048
13049 (define-public emacs-pass
13050 (package
13051 (name "emacs-pass")
13052 (version "2.0")
13053 (source
13054 (origin
13055 (method git-fetch)
13056 (uri (git-reference
13057 (url "https://github.com/NicolasPetton/pass.git")
13058 (commit version)))
13059 (file-name (git-file-name name version))
13060 (sha256
13061 (base32 "0jc8j421mlflspg24jvrqc2n3y5n3cpk3hjy560il8g36xi1049p"))))
13062 (build-system emacs-build-system)
13063 (propagated-inputs
13064 `(("emacs-password-store" ,emacs-password-store)
13065 ("emacs-f" ,emacs-f)))
13066 (home-page "https://github.com/NicolasPetton/pass")
13067 (synopsis "Major mode for @file{password-store.el}")
13068 (description "This is a major mode for managing password-store (pass)
13069 keychains. The keychain entries are displayed in a directory-like structure
13070 and can be consulted and modified.")
13071 (license license:gpl3+)))
13072
13073 (define-public emacs-psc-ide
13074 ;; There is no proper release. The base version is extracted from the
13075 ;; "Version" keyword in the main file.
13076 (let ((commit "7fc2b841be25f5bc5e1eb7d0634436181c38b3fe")
13077 (revision "1"))
13078 (package
13079 (name "emacs-psc-ide")
13080 (version (git-version "0.1.0" revision commit))
13081 (source
13082 (origin
13083 (method git-fetch)
13084 (uri
13085 (git-reference
13086 (url "https://github.com/purescript-emacs/psc-ide-emacs")
13087 (commit commit)))
13088 (file-name (git-file-name name version))
13089 (sha256
13090 (base32 "0r0fymyai30jimm34z1cmav4wgij8ci6s1d9y7qigygfbbfrdsmj"))))
13091 (build-system emacs-build-system)
13092 (propagated-inputs
13093 `(("emacs-company" ,emacs-company)
13094 ("emacs-dash" ,emacs-dash)
13095 ("emacs-flycheck" ,emacs-flycheck)
13096 ("emacs-let-alist" ,emacs-let-alist)
13097 ("emacs-s" ,emacs-s)
13098 ("emacs-seq" ,emacs-seq)))
13099 (home-page "https://github.com/purescript-emacs/psc-ide-emacs")
13100 (synopsis "Emacs integration for PureScript's psc-ide tool")
13101 (description
13102 "This package provices Emacs integration for @code{psc-ide}, an IDE
13103 protocol for PureScript programming language. It features:
13104
13105 @itemize
13106 @item Completions
13107 @item Type at point
13108 @item Go to definition
13109 @item Automatic imports
13110 @item Case split
13111 @item Build system integration, and
13112 @item Flycheck support
13113 @end itemize")
13114 (license license:gpl3+))))
13115
13116 (define-public emacs-evil-anzu
13117 (package
13118 (name "emacs-evil-anzu")
13119 (version "0.03")
13120 (source
13121 (origin
13122 (method git-fetch)
13123 (uri (git-reference
13124 (url "https://github.com/syohex/emacs-evil-anzu")
13125 (commit version)))
13126 (file-name (git-file-name name version))
13127 (sha256
13128 (base32 "0lw7fg4gqwj30r0l6k2ni36sxqkf65zf0d0z3rxnpwbxlf8dlkrr"))))
13129 (build-system emacs-build-system)
13130 (propagated-inputs
13131 `(("emacs-evil" ,emacs-evil)
13132 ("emacs-anzu" ,emacs-anzu)))
13133 (home-page "https://github.com/syohex/emacs-evil-anzu")
13134 (synopsis "Anzu for evil-mode")
13135 (description "@code{anzu} provides a minor mode that displays the current
13136 match and total match information in the mode-line in various search modes.")
13137 (license license:gpl3+)))
13138
13139 (define-public emacs-pg
13140 (let ((commit "4f6516ec3946d95dcef49abb6703cc89ecb5183d"))
13141 (package
13142 (name "emacs-pg")
13143 (version (git-version "0.1" "1" commit))
13144 (source (origin
13145 (method git-fetch)
13146 (uri (git-reference (url "https://github.com/cbbrowne/pg.el")
13147 (commit commit)))
13148 (file-name (git-file-name name version))
13149 (sha256
13150 (base32
13151 "1zh7v4nnpzvbi8yj1ynlqlawk5bmlxi6s80b5f2y7hkdqb5q26k0"))))
13152 (build-system emacs-build-system)
13153 (home-page "https://github.com/cbbrowne/pg.el")
13154 (synopsis "Emacs Lisp interface for PostgreSQL")
13155 (description
13156 "This package provides an Emacs Lisp interface for PostgreSQL.")
13157 (license license:gpl3+))))
13158
13159 (define-public emacs-cl-generic
13160 (package
13161 (name "emacs-cl-generic")
13162 (version "0.3")
13163 (source
13164 (origin
13165 (method url-fetch)
13166 (uri (string-append "https://elpa.gnu.org/packages/cl-generic-"
13167 version ".el"))
13168 (sha256
13169 (base32
13170 "0vb338bhjpsnrf60qgxny4z5rjrnifahnrv9axd4shay89d894zq"))))
13171 (build-system emacs-build-system)
13172 ;; Byte compilation of the autoload file fails.
13173 (arguments
13174 `(#:phases (modify-phases %standard-phases
13175 (delete 'enable-autoloads-compilation))))
13176 (home-page "https://elpa.gnu.org/packages/seq.html")
13177 (synopsis
13178 "Forward @code{cl-generic} compatibility for Emacs before version 25")
13179 (description "This package provides a subset of the features of the
13180 @code{cl-generic} package introduced in Emacs-25, for use on previous
13181 @code{emacsen}.")
13182 (license license:gpl3+)))
13183
13184 (define-public emacs-finalize
13185 (package
13186 (name "emacs-finalize")
13187 (version "2.0.0")
13188 (source
13189 (origin
13190 (method git-fetch)
13191 (uri (git-reference
13192 (url "https://github.com/skeeto/elisp-finalize.git")
13193 (commit version)))
13194 (file-name (git-file-name name version))
13195 (sha256
13196 (base32 "1gvlm4i62af5jscwz0jccc8ra0grprxpg2rlq91d5nn8dn5lpy79"))))
13197 (build-system emacs-build-system)
13198 (propagated-inputs
13199 `(("emacs-cl-generic" ,emacs-cl-generic)))
13200 (home-page "https://github.com/skeeto/elisp-finalize")
13201 (synopsis "Finalizers for Emacs Lisp")
13202 (description
13203 "This package runs a callback (a finalizer)
13204 after its registered lisp object has been garbage collected. This allows
13205 extra resources, such as buffers and processes, to be cleaned up after the
13206 object has been freed.")
13207 (license license:unlicense)))
13208
13209 (define-public emacs-emacsql
13210 (package
13211 (name "emacs-emacsql")
13212 (version "3.0.0")
13213 (source (origin
13214 (method git-fetch)
13215 (uri (git-reference
13216 (url "https://github.com/skeeto/emacsql.git")
13217 (commit (string-append version))))
13218 (file-name (git-file-name name version))
13219 (sha256
13220 (base32
13221 "1c84gxr1majqj4b59wgdy3lzm3ap66w9qsrnkx8hdbk9895ak81g"))))
13222 (build-system emacs-build-system)
13223 (arguments
13224 `(#:modules ((guix build emacs-build-system)
13225 (guix build utils)
13226 (guix build emacs-utils)
13227 (srfi srfi-26))
13228 #:phases
13229 (modify-phases %standard-phases
13230 (delete 'build) ;‘build-emacsql-sqlite’ compiles ‘*.el’ files.
13231 (add-before 'install 'patch-elisp-shell-shebangs
13232 (lambda _
13233 (substitute* (find-files "." "\\.el")
13234 (("/bin/sh") (which "sh")))
13235 #t))
13236 (add-after 'patch-elisp-shell-shebangs 'setenv-shell
13237 (lambda _
13238 (setenv "SHELL" "sh")))
13239 (add-after 'setenv-shell 'build-emacsql-sqlite
13240 (lambda _
13241 (invoke "make" "binary" "CC=gcc")))
13242 (add-after 'build-emacsql-sqlite 'install-emacsql-sqlite
13243 ;; This build phase installs emacs-emacsql binary.
13244 (lambda* (#:key outputs #:allow-other-keys)
13245 (install-file "sqlite/emacsql-sqlite"
13246 (string-append (assoc-ref outputs "out")
13247 "/bin"))
13248 #t))
13249 (add-after 'install-emacsql-sqlite 'patch-emacsql-sqlite.el
13250 ;; This build phase removes interactive prompts
13251 ;; and makes sure Emacs look for binaries in the right places.
13252 (lambda* (#:key outputs #:allow-other-keys)
13253 (let ((file "emacsql-sqlite.el"))
13254 (chmod file #o644)
13255 (emacs-substitute-sexps file
13256 ;; Make sure Emacs looks for ‘GCC’ binary in the right place.
13257 ("(executable-find" (which "gcc"))
13258 ;; Make sure Emacs looks for ‘emacsql-sqlite’ binary
13259 ;; in the right place.
13260 ("(defvar emacsql-sqlite-executable"
13261 (string-append (assoc-ref outputs "out")
13262 "/bin/emacsql-sqlite"))))))
13263 (replace 'install
13264 (lambda* (#:key outputs #:allow-other-keys)
13265 (let* ((out (assoc-ref outputs "out")))
13266 (install-file "sqlite/emacsql-sqlite"
13267 (string-append out "/bin"))
13268 (for-each (cut install-file <>
13269 (string-append out "/share/emacs/site-lisp"))
13270 (find-files "." "\\.elc*$")))
13271 #t)))))
13272 (inputs
13273 `(("emacs-minimal" ,emacs-minimal)
13274 ("mariadb" ,mariadb "lib")
13275 ("mariadb-dev" ,mariadb "dev")
13276 ("postgresql" ,postgresql)))
13277 (propagated-inputs
13278 `(("emacs-finalize" ,emacs-finalize)
13279 ("emacs-pg" ,emacs-pg)))
13280 (home-page "https://github.com/skeeto/emacsql")
13281 (synopsis "Emacs high-level SQL database front-end")
13282 (description "Any readable Lisp value can be stored as a value in EmacSQL,
13283 including numbers, strings, symbols, lists, vectors, and closures. EmacSQL
13284 has no concept of @code{TEXT} values; it's all just Lisp objects. The Lisp
13285 object @code{nil} corresponds 1:1 with @code{NULL} in the database.")
13286 (license license:gpl3+)))
13287
13288 (define-public emacs-closql
13289 ;; Take a commit newer than 1.0.0 release because of Emacs upgrade to 26.3.
13290 (let ((commit "70b98dbae53611d10a461d9b4a6f71086910dcef"))
13291 (package
13292 (name "emacs-closql")
13293 (version (git-version "1.0.0" "1" commit))
13294 (source
13295 (origin
13296 (method git-fetch)
13297 (uri (git-reference
13298 (url "https://github.com/emacscollective/closql.git")
13299 (commit commit)))
13300 (file-name (git-file-name name version))
13301 (sha256
13302 (base32
13303 "1wvhrihg663f61yzc7f0vha2abjdnlwbk0gjcwakdfk1bhwf5ikh"))))
13304 (build-system emacs-build-system)
13305 (propagated-inputs
13306 `(("emacs-emacsql" ,emacs-emacsql)))
13307 (home-page "https://github.com/emacscollective/closql")
13308 (synopsis "Store EIEIO objects using EmacSQL")
13309 (description
13310 "This package stores uniform EIEIO objects in an EmacSQL
13311 database. SQLite is used as backend. This library imposes some restrictions
13312 on what kind of objects can be stored; it isn't intended to store arbitrary
13313 objects. All objects have to share a common superclass and subclasses cannot
13314 add any additional instance slots.")
13315 (license license:gpl3))))
13316
13317 (define-public emacs-epkg
13318 ;; The release version is to old for the current database scheme.
13319 (let ((commit "432312b9583ed7b88ad9644fd1bf2183765a892e"))
13320 (package
13321 (name "emacs-epkg")
13322 (version (git-version "3.0.0" "1" commit))
13323 (source
13324 (origin
13325 (method git-fetch)
13326 (uri (git-reference
13327 (url "https://github.com/emacscollective/epkg.git")
13328 (commit commit)))
13329 (file-name (git-file-name name version))
13330 (sha256
13331 (base32
13332 "0d882kahn7a0vri7a9r15lvmfx1zn2hsga6jfcc6jv0hqbswlb2k"))))
13333 (build-system emacs-build-system)
13334 (propagated-inputs
13335 `(("emacs-closql" ,emacs-closql)
13336 ("emacs-dash" ,emacs-dash)))
13337 (home-page "https://emacsmirror.net")
13338 (synopsis "Browse the Emacsmirror package database")
13339 (description "This package provides access to a local copy of the
13340 Emacsmirror package database. It provides low-level functions for querying
13341 the database and a @file{package.el} user interface for browsing the database.
13342 Epkg itself is not a package manager.
13343
13344 Getting a local copy:
13345
13346 @example
13347 git clone https://github.com/emacsmirror/epkgs.git ~/.emacs.d/epkgs
13348 cd ~/.emacs.d/epkgs
13349 git submodule init
13350 git config --global url.https://github.com/.insteadOf git@@github.com:
13351 git submodule update
13352 @end example
13353
13354 Some submodule may be missing. In this case Git will prompt for a GitHub user
13355 name and password. To skip it press a @key{Return} key.
13356
13357 You could get a Epkg package list by invoking @code{epkg-list-packages} in
13358 Emacs.")
13359 (license license:gpl3+))))
13360
13361 (define-public emacs-elisp-slime-nav
13362 (package
13363 (name "emacs-elisp-slime-nav")
13364 (version "0.9")
13365 (source
13366 (origin
13367 (method git-fetch)
13368 (uri (git-reference
13369 (url "https://github.com/purcell/elisp-slime-nav.git")
13370 (commit version)))
13371 (file-name (git-file-name name version))
13372 (sha256
13373 (base32 "11vyy0bvzbs1h1kggikrvhd658j7c730w0pdp6qkm60rigvfi1ih"))))
13374 (build-system emacs-build-system)
13375 (home-page "https://github.com/purcell/elisp-slime-nav")
13376 (synopsis "Make @code{M-.} and @code{M-,} work for elisp like they do in SLIME")
13377 (description
13378 "This package provides SLIME's convenient @code{M-.}and @code{M-,} navigation
13379 in @code{emacs-lisp-mode}, together with an elisp equivalent of
13380 @code{slime-describe-symbol}.")
13381 (license license:gpl3+)))
13382
13383 (define-public emacs-dedicated
13384 (package
13385 (name "emacs-dedicated")
13386 (version "1.0.0")
13387 (source
13388 (origin
13389 (method git-fetch)
13390 (uri (git-reference
13391 (url "https://github.com/emacsorphanage/dedicated.git")
13392 (commit version)))
13393 (file-name (git-file-name name version))
13394 (sha256
13395 (base32 "0pba9s0h37sxyqh733vi6k5raa4cs7aradipf3826inw36jcw414"))))
13396 (build-system emacs-build-system)
13397 (home-page "https://github.com/emacsorphanage/dedicated")
13398 (synopsis "Emacs minor mode for toggling a windows's \"dedicated\" flag")
13399 (description
13400 "This simple Emacs minor mode allows you to toggle a window's
13401 \"dedicated\" flag. When a window is \"dedicated\", Emacs will not select
13402 files into that window. This can be quite handy since many commands will use
13403 another window to show results (compilation mode, starting info, and so on).
13404 A dedicated window won't be used for such a purpose. For details, please read
13405 the source file.")
13406 (license license:gpl2+)))
13407
13408 (define-public emacs-nnreddit
13409 (let ((commit "9843f99d01fd8f1eea2fc685965a7c7f4eeb187a")
13410 (revision "1"))
13411 (package
13412 (name "emacs-nnreddit")
13413 (version (string-append "0.0.1-" revision "."
13414 (string-take commit 7)))
13415 (source (origin
13416 (method git-fetch)
13417 (uri (git-reference
13418 (url "https://github.com/paul-issartel/nnreddit.git")
13419 (commit commit)))
13420 (file-name (git-file-name name version))
13421 (sha256
13422 (base32
13423 "0j4h3bnga640250jdq8bwyja49r41ssrsjd6lba4gzzllqk02nbn"))))
13424 (build-system emacs-build-system)
13425 (home-page "https://github.com/paul-issartel/nnreddit")
13426 (synopsis "Reddit backend for the Gnus newsreader")
13427 (description "@url{https://www.reddit.com} backend for the Gnus
13428 newsreader.")
13429 (license license:gpl3+))))
13430
13431 (define-public emacs-makey
13432 (package
13433 (name "emacs-makey")
13434 (version "0.3")
13435 (source
13436 (origin
13437 (method git-fetch)
13438 (uri (git-reference
13439 (url "https://github.com/mickeynp/makey.git")
13440 (commit version)))
13441 (file-name (git-file-name name version))
13442 (sha256
13443 (base32 "1rr7vpm3xxzcaam3m8xni3ajy8ycyljix07n2jzczayri9sd8csy"))))
13444 (build-system emacs-build-system)
13445 (home-page "https://github.com/mickeynp/makey")
13446 (synopsis "Emacs interactive command-line mode")
13447 (description
13448 "This package provides an Emacs interactive command-line mode.")
13449 (license license:gpl3+)))
13450
13451 (define-public emacs-outorg
13452 (let ((commit "78b0695121fb974bc4e971eb4ef7f8afd6d89d64"))
13453 (package
13454 (name "emacs-outorg")
13455 (version (git-version "2.0" "1" commit))
13456 (source
13457 (origin
13458 (method git-fetch)
13459 (uri (git-reference
13460 (url "https://github.com/alphapapa/outorg")
13461 (commit commit)))
13462 (file-name (git-file-name name version))
13463 (sha256
13464 (base32
13465 "03aclh4m3f7rb821gr9pwvnqkkl91px3qxdcarpf3ypa1x4fxvlj"))))
13466 (build-system emacs-build-system)
13467 (home-page "https://github.com/alphapapa/outorg")
13468 (synopsis "Org-style comment editing")
13469 (description "Outorg is for editing comment-sections of source-code
13470 files in temporary Org-mode buffers. It turns conventional
13471 literate-programming upside-down in that the default mode is the
13472 programming-mode, and special action has to be taken to switch to the
13473 text-mode (i.e. Org-mode).")
13474 (license license:gpl3+))))
13475
13476 (define-public emacs-outshine
13477 (package
13478 (name "emacs-outshine")
13479 (version "3.0.1")
13480 (source (origin
13481 (method git-fetch)
13482 (uri (git-reference
13483 (url "https://github.com/alphapapa/outshine.git")
13484 (commit (string-append "v" version))))
13485 (file-name (git-file-name name version))
13486 (sha256
13487 (base32
13488 "1lh9f5dgdbwfyzxk6nsg1xwdjs8gc6p9mbyyhp6f8fnk3h0y88cg"))))
13489 (build-system emacs-build-system)
13490 (propagated-inputs
13491 `(("emacs-outorg" ,emacs-outorg)))
13492 (home-page "https://github.com/alphapapa/outshine")
13493 (synopsis "Emacs outline with outshine")
13494 (description "Outshine attempts to bring the look and feel of
13495 @code{org-mode} to an Emacs outside of the Org major-mode. It is an extension
13496 of @code{outline-minor-mode} (@code{org-mode} itself derives from
13497 outline-mode), so there is no such thing like an outshine mode, only
13498 @code{outline-minor-mode} with outshine extensions loaded.")
13499 (license license:gpl3+)))
13500
13501 (define-public emacs-frecency
13502 (let ((commit "31ef9ff4af1a4fed3dcc24ea74037feea8795c87")
13503 (version "0.1-pre")
13504 (revision "1"))
13505 (package
13506 (name "emacs-frecency")
13507 (version (git-version version revision commit))
13508 (source (origin
13509 (method git-fetch)
13510 (uri (git-reference
13511 (url "https://github.com/alphapapa/frecency.el")
13512 (commit commit)))
13513 (sha256
13514 (base32
13515 "051aihjdg3x22svaxhwylpi8i6s2x9j8syvsj1jgilgjjdy15l6j"))
13516 (file-name (git-file-name name version))))
13517 (build-system emacs-build-system)
13518 (propagated-inputs
13519 `(("emacs-a" ,emacs-a)
13520 ("emacs-dash" ,emacs-dash)))
13521 (home-page "https://github.com/alphapapa/frecency.el")
13522 (synopsis "Sort items by frequency and recency of access")
13523 (description "This package provides a way of sorting items via
13524 a heuristic based on frequency and recency.")
13525 (license license:gpl3+))))
13526
13527 (define-public emacs-org-recent-headings
13528 (package
13529 (name "emacs-org-recent-headings")
13530 (version "0.1")
13531 (source (origin
13532 (method git-fetch)
13533 (uri (git-reference
13534 (url "https://github.com/alphapapa/org-recent-headings.git")
13535 (commit version)))
13536 (file-name (git-file-name name version))
13537 (sha256
13538 (base32
13539 "0gsrzmg3mssh9s28yjm9m866fnhm1pcligssz1q6brga6dm6f2yy"))))
13540 (build-system emacs-build-system)
13541 (propagated-inputs
13542 `(("emacs-org" ,emacs-org)
13543 ("emacs-dash" ,emacs-dash)
13544 ("emacs-frecency" ,emacs-frecency)))
13545 (home-page "https://github.com/alphapapa/org-recent-headings")
13546 (synopsis "Navigate to recently used Org headings and lists")
13547 (description "This package maintains a list of recently used Org headings,
13548 as well as functions for navigating between these headings.")
13549 (license license:gpl3+)))
13550
13551 (define-public emacs-org-super-agenda
13552 ;; emacs-org-sidebar depends on a newer commit than the latest release version.
13553 (let ((commit "a87ca11fbbe72ab6c1c4c3b55ae9e1e93ebfb8ba")
13554 (revision "3"))
13555 (package
13556 (name "emacs-org-super-agenda")
13557 (version (git-version "1.1.1" revision commit))
13558 (source (origin
13559 (method git-fetch)
13560 (uri (git-reference
13561 (url "https://github.com/alphapapa/org-super-agenda")
13562 (commit commit)))
13563 (file-name (git-file-name name version))
13564 (sha256
13565 (base32
13566 "08b7babdaqblb6jff57an4kbcxk6fkhf668620fipfjgbsnqv3ff"))))
13567 (build-system emacs-build-system)
13568 (propagated-inputs
13569 `(("emacs-org" ,emacs-org)
13570 ("emacs-dash" ,emacs-dash)
13571 ("emacs-ts" ,emacs-ts)
13572 ("emacs-ht" ,emacs-ht)
13573 ("emacs-s" ,emacs-s)))
13574 (home-page "https://github.com/alphapapa/org-super-agenda")
13575 (synopsis "Supercharged Org agenda")
13576 (description "This package allows items in the Org agenda to be grouped
13577 into sections while preserving the structure imposed by any timestamps.")
13578 (license license:gpl3+))))
13579
13580 (define-public emacs-org-make-toc
13581 (package
13582 (name "emacs-org-make-toc")
13583 (version "0.5")
13584 (source (origin
13585 (method git-fetch)
13586 (uri (git-reference
13587 (url "https://github.com/alphapapa/org-make-toc")
13588 (commit version)))
13589 (file-name (git-file-name name version))
13590 (sha256
13591 (base32
13592 "180ji6nnj6qj0rs1rdp1zlcrfsqf7ikb44ym8icbp5d6al2s4hnr"))))
13593 (build-system emacs-build-system)
13594 (propagated-inputs
13595 `(("emacs-org" ,emacs-org)
13596 ("emacs-dash" ,emacs-dash)
13597 ("emacs-s" ,emacs-s)))
13598 (home-page "https://github.com/alphapapa/org-make-toc")
13599 (synopsis "Maintain a table of contents for an Org file")
13600 (description "This package facilitates the creation and maintenance of
13601 tables of contents.")
13602 (license license:gpl3+)))
13603
13604 (define-public emacs-ts
13605 (package
13606 (name "emacs-ts")
13607 (version "0.2")
13608 (source
13609 (origin
13610 (method git-fetch)
13611 (uri (git-reference
13612 (url "https://github.com/alphapapa/ts.el")
13613 (commit version)))
13614 (sha256
13615 (base32 "0hmzc1ppnkkr0lfq5fhzqr6icv6iqz824a6bnns7zr466hhqp3qb"))
13616 (file-name (git-file-name name version))))
13617 (build-system emacs-build-system)
13618 (propagated-inputs
13619 `(("emacs-s" ,emacs-s)
13620 ("emacs-dash" ,emacs-dash)))
13621 (arguments
13622 ;; XXX: Three tests are failing because of a timezone-related issue
13623 ;; with how they're written. On my machine, all the failing test
13624 ;; results are 18000 seconds (5 hours) off.
13625
13626 ;; The ts-parse-org function accepts a string without any timezone
13627 ;; info, not assumed to be in Unix time, and converts it to a so-called
13628 ;; ts struct. The ts-unix function (accessor) accepts a ts struct,
13629 ;; then seems to assume the struct's corresponding time is in terms of
13630 ;; the user's current time zone, before returning a Unix time in
13631 ;; seconds.
13632
13633 ;; The failing tests all have similar problems, but nothing else about
13634 ;; the library seems particularly off.
13635
13636 `(#:tests? #t
13637 #:test-command '("emacs" "--batch"
13638 "-l" "test/test.el"
13639 "-f" "ert-run-tests-batch-and-exit")
13640 #:phases
13641 (modify-phases %standard-phases
13642 (add-before 'check 'make-tests-writable
13643 (lambda _
13644 (make-file-writable "test/test.el")
13645 #t))
13646 (add-before 'check 'delete-failing-tests
13647 (lambda _
13648 (emacs-batch-edit-file "test/test.el"
13649 `(progn (progn
13650 (goto-char (point-min))
13651 (dolist (test-regexp
13652 '("ert-deftest ts-format"
13653 "ert-deftest ts-parse-org\\_>"
13654 "ert-deftest ts-parse-org-element"
13655 "ert-deftest ts-update"))
13656 (re-search-forward test-regexp)
13657 (beginning-of-line)
13658 (kill-sexp)))
13659 (basic-save-buffer)))
13660 #t)))))
13661 (home-page "https://github.com/alphapapa/ts.el")
13662 (synopsis "Timestamp and date/time library")
13663 (description "This package facilitates manipulating dates, times, and
13664 timestamps by providing a @code{ts} struct.")
13665 (license license:gpl3+)))
13666
13667 (define-public emacs-peg
13668 (package
13669 (name "emacs-peg")
13670 (version "0.6")
13671 (source (origin
13672 (method git-fetch)
13673 (uri (git-reference
13674 (url "https://github.com/emacsmirror/peg")
13675 (commit version)))
13676 (sha256
13677 (base32
13678 "0kjz7ch4bn0m4v9zgqyqcrsasnqc5c5drv2hp22j7rnbb7ny0q3n"))
13679 (file-name (git-file-name name version))))
13680 (build-system emacs-build-system)
13681 (home-page "https://github.com/emacsmirror/peg/")
13682 (synopsis "Parsing Expression Grammars in Elisp")
13683 (description "This package provides a macro that parses the current buffer
13684 according to a parsing expression grammar.")
13685 (license license:gpl3+)))
13686
13687 (define-public emacs-org-ql
13688 (package
13689 (name "emacs-org-ql")
13690 (version "0.3.2")
13691 (source (origin
13692 (method git-fetch)
13693 (uri (git-reference
13694 (url "https://github.com/alphapapa/org-ql")
13695 (commit version)))
13696 (sha256
13697 (base32
13698 "11bhpi2l28vp8mm9nx18jljbqdnh9vxpv9kp1dn9lpsgivcdbc34"))
13699 (file-name (git-file-name name version))))
13700 (build-system emacs-build-system)
13701 (propagated-inputs
13702 `(("emacs-s" ,emacs-s)
13703 ("emacs-f" ,emacs-f)
13704 ("emacs-ov" ,emacs-ov)
13705 ("emacs-peg" ,emacs-peg)
13706 ("emacs-org-super-agenda" ,emacs-org-super-agenda)
13707 ("emacs-ts" ,emacs-ts)
13708 ("emacs-org" ,emacs-org)
13709 ("emacs-helm" ,emacs-helm)
13710 ("emacs-helm-org" ,emacs-helm-org)
13711 ("emacs-dash" ,emacs-dash)))
13712 (native-inputs
13713 `(("emacs-buttercup" ,emacs-buttercup)))
13714 (arguments
13715 `(#:phases
13716 (modify-phases %standard-phases
13717 (add-after 'unpack 'require-helm
13718 (lambda _
13719 (substitute* "helm-org-ql.el"
13720 (("^;;;; Requirements")
13721 ";;;; Requirements\n(require 'helm)\n(require 'helm-org)"))
13722 #t)))
13723 #:tests? #t
13724 #:test-command '("buttercup" "-L" ".")))
13725 (home-page "https://github.com/alphapapa/org-ql/")
13726 (synopsis "Query language for Org buffers")
13727 (description "This package provides a Lispy query language for Org
13728 files, allowing for actions to be performed based on search criteria.")
13729 (license license:gpl3+)))
13730
13731 (define-public emacs-org-auto-expand
13732 (let ((commit "4938d5f6460e2f8f051ba9ac000b291bfa43ef62")
13733 (revision "1"))
13734 (package
13735 (name "emacs-org-auto-expand")
13736 (version (git-version "0.1" revision commit))
13737 (source (origin
13738 (method git-fetch)
13739 (uri (git-reference
13740 (url "https://github.com/alphapapa/org-auto-expand")
13741 (commit commit)))
13742 (file-name (git-file-name name version))
13743 (sha256
13744 (base32
13745 "1my0c6xmkh37lwi6l472lz9d86lf20h6xcllzlxm1lxa24rhva6v"))))
13746 (build-system emacs-build-system)
13747 (propagated-inputs
13748 `(("emacs-org" ,emacs-org)
13749 ("emacs-dash" ,emacs-dash)))
13750 (home-page "https://github.com/alphapapa/org-auto-expand")
13751 (synopsis "Automatically expand certain Org headings")
13752 (description "This package allows a customizable set of headings in Org
13753 files to be expanded upon opening them.")
13754 (license license:gpl3+))))
13755
13756 (define-public emacs-parsebib
13757 (package
13758 (name "emacs-parsebib")
13759 (version "2.3.3")
13760 (source
13761 (origin
13762 (method git-fetch)
13763 (uri (git-reference
13764 (url "https://github.com/joostkremers/parsebib.git")
13765 (commit version)))
13766 (file-name (git-file-name name version))
13767 (sha256
13768 (base32 "0mpgyy9qfb5x4fvlmb274hgayjbwf0bgk65dxyx31zikjwpcd56p"))))
13769 (build-system emacs-build-system)
13770 (home-page "https://github.com/joostkremers/parsebib")
13771 (synopsis "Library for parsing @file{.bib} files")
13772 (description
13773 "This package provides an Emacs library for parsing @file{.bib} files.")
13774 (license license:gpl3+)))
13775
13776 (define-public emacs-ebib
13777 (package
13778 (name "emacs-ebib")
13779 (version "2.22.1")
13780 (source
13781 (origin
13782 (method git-fetch)
13783 (uri (git-reference
13784 (url "https://github.com/joostkremers/ebib.git")
13785 (commit version)))
13786 (file-name (git-file-name name version))
13787 (sha256
13788 (base32 "0spiz5r2y4pdpyc4d3f9w228giq0j9rm8f5h5akzn5rwiq9pfkwz"))))
13789 (build-system emacs-build-system)
13790 (propagated-inputs
13791 `(("emacs-parsebib" ,emacs-parsebib)))
13792 (home-page "https://joostkremers.github.io/ebib/")
13793 (synopsis "BibTeX database manager for Emacs")
13794 (description
13795 "Ebib is a BibTeX database manager that runs in GNU Emacs.
13796 With Ebib you can create, sort and manage your @file{.bib} database files, all
13797 within Emacs. It supports searching, multi-line field values and
13798 @samp{@@String} and @samp{@@Preamble} definitions. Ebib integrates
13799 with (La)TeX mode, Org mode and other Emacs editing modes.")
13800 ;; The Ebib source files are released under a BSD license with
13801 ;; the exception of org-ebib.el, which is released under the GNU
13802 ;; GPL.
13803 (license (list license:bsd-3
13804 license:gpl3+))))
13805
13806 (define-public emacs-biblio
13807 (package
13808 (name "emacs-biblio")
13809 (version "0.2")
13810 (source
13811 (origin
13812 (method git-fetch)
13813 (uri (git-reference
13814 (url "https://github.com/cpitclaudel/biblio.el.git")
13815 (commit version)))
13816 (file-name (git-file-name name version))
13817 (sha256
13818 (base32 "1gxjind6r235az59dr8liv03d8994mqb8a7m28j3c12q7p70aziz"))))
13819 (build-system emacs-build-system)
13820 (propagated-inputs
13821 `(("emacs-seq" ,emacs-seq)
13822 ("emacs-dash" ,emacs-dash)
13823 ("emacs-let-alist" ,emacs-let-alist)))
13824 (home-page "https://github.com/cpitclaudel/biblio.el")
13825 (synopsis "Browse and import bibliographic references")
13826 (description "This package provides an extensible Emacs package for
13827 browsing and fetching references.
13828
13829 @file{biblio.el} makes it easy to browse and gather bibliographic references
13830 and publications from various sources, by keywords or by DOI. References are
13831 automatically fetched from well-curated sources, and formatted as BibTeX.")
13832 (license license:gpl3+)))
13833
13834 (define-public emacs-helm-bibtex
13835 (let ((commit "d4471232be26793fbf56c0ac3690b5f537c378b9")
13836 (revision "2"))
13837 (package
13838 (name "emacs-helm-bibtex")
13839 (version (string-append "2.0.0" "-" revision "."
13840 (string-take commit 7)))
13841 (source
13842 (origin
13843 (method git-fetch)
13844 (uri (git-reference
13845 (url "https://github.com/tmalsburg/helm-bibtex.git")
13846 (commit commit)))
13847 (file-name (git-file-name name version))
13848 (sha256
13849 (base32
13850 "1bkzhic6qckb267025il1r3xcpz99kisphxiafni1pxvf9jafr0j"))))
13851 (build-system emacs-build-system)
13852 (propagated-inputs
13853 `(("emacs-helm" ,emacs-helm)
13854 ("emacs-parsebib" ,emacs-parsebib)
13855 ("emacs-s" ,emacs-s)
13856 ("emacs-dash" ,emacs-dash)
13857 ("emacs-f" ,emacs-f)
13858 ("emacs-biblio" ,emacs-biblio)
13859 ("emacs-ivy" ,emacs-ivy)))
13860 (home-page "https://github.com/tmalsburg/helm-bibtex")
13861 (synopsis "Bibliography manager based on Helm")
13862 (description "This package provides bibliography manager for Emacs,
13863 based on Helm and the bibtex-completion backend.
13864
13865 Key features:
13866
13867 @itemize
13868 @item Quick access to your bibliography from within Emacs
13869 @item Powerful search capabilities
13870 @item Provides instant search results as you type
13871 @item Tightly integrated with LaTeX authoring, emails, Org mode, etc.
13872 @item Open the PDFs, URLs, or DOIs associated with an entry
13873 @item Insert LaTeX cite commands, Ebib links, or Pandoc citations,
13874 BibTeX entries, or plain text references at point, attach PDFs to emails
13875 @item Support for note taking
13876 @item Quick access to online bibliographic databases such as Pubmed,
13877 arXiv, Google Scholar, Library of Congress, etc.
13878 @item Imports BibTeX entries from CrossRef and other sources.
13879 @end itemize\n")
13880 (license license:gpl3+))))
13881
13882 (define-public emacs-ewmctrl
13883 (let ((commit "3d0217c4d6cdb5c308b6cb4293574f470d4faacf"))
13884 (package
13885 (name "emacs-ewmctrl")
13886 (version (git-version "0.0.1" "1" commit))
13887 (source
13888 (origin
13889 (method git-fetch)
13890 (uri (git-reference
13891 (url "https://github.com/flexibeast/ewmctrl.git")
13892 (commit commit)))
13893 (file-name (git-file-name name version))
13894 (sha256
13895 (base32
13896 "0ilwvx0qryv3v6xf0gxqwnfm6pf96gxap8h9g3f6z6lk9ff4n1wi"))))
13897 (build-system emacs-build-system)
13898 (arguments
13899 '(#:phases
13900 (modify-phases %standard-phases
13901 (add-after 'unpack 'patch-ewmctrl
13902 ;; This build phase makes sure ‘ewmctrl’ looks
13903 ;; for ‘wmctrl’ in the right place.
13904 (lambda _
13905 (let ((file "ewmctrl.el"))
13906 (chmod file #o644)
13907 (emacs-substitute-sexps file
13908 ("(defcustom ewmctrl-wmctrl-path" (which "wmctrl")))))))))
13909 (inputs
13910 `(("wmctrl" ,wmctrl)))
13911 (home-page "https://github.com/flexibeast/ewmctrl")
13912 (synopsis "Emacs interface to @code{wmctrl}")
13913 (description "@code{ewmctrl} provides an Emacs interface to
13914 @code{wmctrl} command-line window-management program.")
13915 (license license:gpl3+))))
13916
13917 (define-public emacs-erc-image
13918 (let ((commit "82fb3871f02e24b1e880770b9a3d187aab43d0f0")
13919 (revision "1"))
13920 (package
13921 (name "emacs-erc-image")
13922 (version (git-version "0" revision commit))
13923 (source
13924 (origin
13925 (method git-fetch)
13926 (uri (git-reference
13927 (url "https://github.com/kidd/erc-image.el")
13928 (commit commit)))
13929 (file-name (git-file-name name version))
13930 (sha256
13931 (base32
13932 "1q8mkf612fb4fjp8h4kbr107wn083iqfdgv8f80pcmil8y33dw9i"))))
13933 (build-system emacs-build-system)
13934 (home-page "https://github.com/kidd/erc-image.el")
13935 (synopsis "Show inlined images (png/jpg/gif/svg) in ERC buffers")
13936 (description "This plugin subscribes to hooks @code{erc-insert-modify-hook}
13937 and @code{erc-send-modify-hook} to download and show images.")
13938 (license license:gpl3+))))
13939
13940 (define-public emacs-helm-gtags
13941 (package
13942 (name "emacs-helm-gtags")
13943 (version "1.5.6")
13944 (source
13945 (origin
13946 (method git-fetch)
13947 (uri (git-reference
13948 (url "https://github.com/syohex/emacs-helm-gtags.git")
13949 (commit version)))
13950 (file-name (git-file-name name version))
13951 (sha256
13952 (base32 "0zyspn9rqfs3hkq8qx0q1w5qiv30ignbmycyv0vn3a6q7a5fsnhx"))))
13953 (build-system emacs-build-system)
13954 (propagated-inputs
13955 `(("emacs-helm" ,emacs-helm)))
13956 (home-page "https://github.com/syohex/emacs-helm-gtags")
13957 (synopsis "Emacs Helm interface to GNU Global")
13958 (description
13959 "@code{emacs-helm-gtags} provides a Emacs Helm interface to GNU Global.")
13960 (license license:gpl3+)))
13961
13962 (define-public emacs-list-utils
13963 (package
13964 (name "emacs-list-utils")
13965 (version "0.4.4")
13966 (source
13967 (origin
13968 (method git-fetch)
13969 (uri (git-reference
13970 (url "https://github.com/rolandwalker/list-utils.git")
13971 (commit (string-append "v" version))))
13972 (file-name (git-file-name name version))
13973 (sha256
13974 (base32 "0ql159v7sxs33yh2l080kchrj52vk34knz50cvqi3ykpb7djg3sz"))))
13975 (build-system emacs-build-system)
13976 (home-page "https://github.com/rolandwalker/list-utils")
13977 (synopsis "List-manipulation utility functions")
13978 (description "This package provides a list manipulation library for Emacs.")
13979 (license license:gpl3+)))
13980
13981 (define-public emacs-move-text
13982 (package
13983 (name "emacs-move-text")
13984 (version "2.0.8")
13985 (source
13986 (origin
13987 (method git-fetch)
13988 (uri (git-reference
13989 (url "https://github.com/emacsfodder/move-text.git")
13990 (commit version)))
13991 (file-name (git-file-name name version))
13992 (sha256
13993 (base32 "06jxk5g23822gfmwrxhc34zand3dr8p2wjh1zs3j61ibz6n0nmz1"))))
13994 (build-system emacs-build-system)
13995 (home-page "https://github.com/emacsfodder/move-text")
13996 (synopsis "Move current line or region with M-up or M-down")
13997 (description "This package provide functions to move the current line
13998 using @kbd{M-up} or @kbd{M-down} if a region is marked, it will move the
13999 region instead.")
14000 (license license:gpl3+)))
14001
14002 (define-public emacs-validate
14003 (package
14004 (name "emacs-validate")
14005 (version "1.0.5")
14006 (source (origin
14007 (method git-fetch)
14008 (uri (git-reference
14009 (url "https://github.com/Malabarba/validate.el")
14010 (commit version)))
14011 (file-name (git-file-name name version))
14012 (sha256
14013 (base32
14014 "1l12ibx6cw4mgicgjpw71fb4fr4sd0k54lvbpq7ngc29br3j6i4v"))))
14015 (build-system emacs-build-system)
14016 (home-page "https://github.com/Malabarba/validate.el")
14017 (synopsis "Emacs library for scheme validation")
14018 (description "This Emacs library provides two functions that perform
14019 schema validation.")
14020 (license license:gpl3+)))
14021
14022 (define-public emacs-rainbow-blocks
14023 (let ((commit "dd435d7bb34ff6f162a5f315df308b90b7e9f842"))
14024 (package
14025 (name "emacs-rainbow-blocks")
14026 (version (git-version "1.0.0" "1" commit))
14027 (source (origin
14028 (method git-fetch)
14029 (uri (git-reference
14030 (url "https://github.com/istib/rainbow-blocks.git")
14031 (commit commit)))
14032 (file-name (git-file-name name version))
14033 (sha256
14034 (base32
14035 "06yfb3i7wzvqrhkb61zib9xvpb5i00s4frizkzff66im05k0n795"))))
14036 (build-system emacs-build-system)
14037 (home-page "https://github.com/istib/rainbow-blocks")
14038 (synopsis "Highlight sexp blocks")
14039 (description "Rainbow-blocks is an Emacs mode that highlights blocks
14040 made of parentheses, brackets, and braces according to their depth. Each
14041 successive level is highlighted in a different color. This makes it easy to
14042 orient yourself in the code, and tell which statements are at a given level.")
14043 (license license:gpl3+))))
14044
14045 (define-public emacs-hierarchy
14046 (package
14047 (name "emacs-hierarchy")
14048 (version "0.7.0")
14049 (source
14050 (origin
14051 (method git-fetch)
14052 (uri (git-reference
14053 (url "https://github.com/DamienCassou/hierarchy.git")
14054 (commit (string-append "v" version))))
14055 (file-name (git-file-name name version))
14056 (sha256
14057 (base32 "1kykbb1sil5cycfa5aj8dhsxc5yrx1641i2np5kwdjid6ahdlz5r"))))
14058 (build-system emacs-build-system)
14059 (native-inputs
14060 `(("emacs-buttercup" ,emacs-buttercup)))
14061 (arguments
14062 `(#:tests? #t
14063 #:test-command '("buttercup" "-L" ".")))
14064 (home-page "https://github.com/DamienCassou/hierarchy")
14065 (synopsis "Library to create and display hierarchy structures")
14066 (description "This package provides an Emacs library to create, query,
14067 navigate and display hierarchy structures.")
14068 (license license:gpl3+)))
14069
14070 (define-public emacs-tree-mode
14071 (let ((commit "b06078826d5875d74b0e7b7ac47b0d0917610534")
14072 (revision "1"))
14073 (package
14074 (name "emacs-tree-mode")
14075 (version (string-append "0.0.1" "-" revision "."
14076 (string-take commit 7)))
14077 (source
14078 (origin
14079 (method git-fetch)
14080 (uri (git-reference
14081 (url "https://github.com/emacsorphanage/tree-mode.git")
14082 (commit commit)))
14083 (file-name (git-file-name name version))
14084 (sha256
14085 (base32
14086 "13bbdhdmqg4x9yghanhr8fsbsxbnypzxdxgicz31sjjm675kpnix"))))
14087 (build-system emacs-build-system)
14088 (home-page "https://github.com/emacsorphanage/tree-mode")
14089 (synopsis "Emacs mode to manage tree widgets")
14090 (description
14091 "This package provides an Emacs library to manage tree widgets.")
14092 (license license:gpl3+))))
14093
14094 (define-public emacs-md4rd
14095 (package
14096 (name "emacs-md4rd")
14097 (version "0.3.1")
14098 (source (origin
14099 (method git-fetch)
14100 (uri (git-reference
14101 (url "https://github.com/ahungry/md4rd.git")
14102 (commit version)))
14103 (file-name (git-file-name name version))
14104 (sha256
14105 (base32
14106 "1n6g6k4adzkkn1g7z4j27s35xy12c1fg2r08gv345ddr3wplq4ri"))))
14107 (propagated-inputs
14108 `(("emacs-hierarchy" ,emacs-hierarchy)
14109 ("emacs-request" ,emacs-request)
14110 ("emacs-dash" ,emacs-dash)
14111 ("emacs-s" ,emacs-s)
14112 ("emacs-tree-mode" ,emacs-tree-mode)))
14113 (build-system emacs-build-system)
14114 (home-page "https://github.com/ahungry/md4rd")
14115 (synopsis "Emacs Mode for Reddit")
14116 (description
14117 "This package allows reading Reddit from within Emacs interactively.")
14118 (license license:gpl3+)))
14119
14120 (define-public emacs-pulseaudio-control
14121 (let ((commit "7e1a87068379075a5e9ce36c64c686c03d20d379")
14122 (revision "3"))
14123 (package
14124 (name "emacs-pulseaudio-control")
14125 (version (git-version "0.0.1" revision commit))
14126 (source
14127 (origin
14128 (method git-fetch)
14129 (uri (git-reference
14130 (url "https://github.com/flexibeast/pulseaudio-control.git")
14131 (commit commit)))
14132 (file-name (git-file-name name version))
14133 (sha256
14134 (base32
14135 "0wcaqyh15x56255rrj350089z15pnwixa2vf0ly6dv0hjmzmh3mr"))))
14136 (build-system emacs-build-system)
14137 (arguments
14138 '(#:phases (modify-phases %standard-phases
14139 (add-after 'unpack 'patch-file-name
14140 (lambda* (#:key inputs #:allow-other-keys)
14141 (let ((pulseaudio (assoc-ref inputs "pulseaudio")))
14142 (chmod "pulseaudio-control.el" #o600)
14143 (emacs-substitute-variables "pulseaudio-control.el"
14144 ("pulseaudio-control-pactl-path"
14145 (string-append pulseaudio "/bin/pactl")))
14146 #t))))))
14147 (inputs `(("pulseaudio" ,pulseaudio)))
14148 (home-page "https://github.com/flexibeast/pulseaudio-control")
14149 (synopsis "Control @code{pulseaudio} from Emacs")
14150 (description
14151 "This package allows controlling @code{pulseaudio} from Emacs.")
14152 (license license:gpl3+))))
14153
14154 (define-public emacs-datetime
14155 (package
14156 (name "emacs-datetime")
14157 (version "0.3")
14158 (source
14159 (origin
14160 (method git-fetch)
14161 (uri (git-reference
14162 (url "https://github.com/doublep/datetime.git")
14163 (commit version)))
14164 (file-name (git-file-name name version))
14165 (sha256
14166 (base32 "0fdswqi53qx924lib7nd9dazn0916xf1ybrh3bcn3f8cn6b8ikg5"))))
14167 (build-system emacs-build-system)
14168 (home-page "https://github.com/doublep/datetime/")
14169 (synopsis "Library to work with dates in Emacs")
14170 (description "Parsing, formatting, matching and recoding
14171 timestamps and date-time format strings library for Emacs.")
14172 (license license:gpl3+)))
14173
14174 (define-public emacs-org-mind-map
14175 (let ((commit "9d6e262bedd94daf9de269f4d56de277275677cb")
14176 (revision "1"))
14177 (package
14178 (name "emacs-org-mind-map")
14179 (version (string-append "0.0.1" "-" revision "."
14180 (string-take commit 7)))
14181 (source
14182 (origin
14183 (method git-fetch)
14184 (uri (git-reference
14185 (url "https://github.com/theodorewiles/org-mind-map.git")
14186 (commit commit)))
14187 (file-name (git-file-name name version))
14188 (sha256
14189 (base32
14190 "0jgkkgq7g64zckrmjib0hvz0qy3ynz5vz13qbmlpf096l3bb65wn"))))
14191 (propagated-inputs
14192 `(("emacs-dash" ,emacs-dash)))
14193 (build-system emacs-build-system)
14194 (home-page "https://github.com/theodorewiles/org-mind-map")
14195 (synopsis "Create Graphviz directed graphs from Org files")
14196 (description
14197 "This package creates Graphviz directed graphs from Org files.")
14198 (license license:gpl3+))))
14199
14200 (define-public emacs-npm-mode
14201 (package
14202 (name "emacs-npm-mode")
14203 (version "0.6.0")
14204 (source
14205 (origin
14206 (method git-fetch)
14207 (uri (git-reference
14208 (url "https://github.com/mojochao/npm-mode.git")
14209 (commit version)))
14210 (file-name (git-file-name name version))
14211 (sha256
14212 (base32 "1mh6nbffciw4yhv049kdhh796ysj1x21ndm3fwymhskb3dy0w1ss"))))
14213 (build-system emacs-build-system)
14214 (home-page "https://github.com/mojochao/npm-mode")
14215 (synopsis "Minor mode for working with @code{npm} projects")
14216 (description
14217 "@code{npm-mode} provides a minor mode to work with @code{npm} projects.")
14218 (license license:gpl3+)))
14219
14220 (define-public emacs-seq
14221 (package
14222 (name "emacs-seq")
14223 (version "2.20")
14224 (source
14225 (origin
14226 (method url-fetch)
14227 (uri (string-append "https://elpa.gnu.org/packages/seq-" version ".tar"))
14228 (sha256
14229 (base32
14230 "0vrpx6nnyjb0gsypknzagimlhvcvi5y1rcdkpxyqr42415zr8d0n"))))
14231 (build-system emacs-build-system)
14232 (home-page "https://elpa.gnu.org/packages/seq.html")
14233 (synopsis "Sequence manipulation functions")
14234 (description "Sequence-manipulation functions that complement basic
14235 functions provided by @file{subr.el}.")
14236 (license license:gpl3+)))
14237
14238 (define-public emacs-itail
14239 (let ((commit "6e43c20da03be3b9c6ece93b7dc3495975ec1888")
14240 (revision "1"))
14241 (package
14242 (name "emacs-itail")
14243 (version (string-append "0.0.1" "-" revision "."
14244 (string-take commit 7)))
14245 (source
14246 (origin
14247 (method git-fetch)
14248 (uri (git-reference
14249 (url "https://github.com/re5et/itail.git")
14250 (commit commit)))
14251 (file-name (git-file-name name version))
14252 (sha256
14253 (base32
14254 "044nzxh1hq41faxw3lix0wy78vfz304pjcaa5a11dqfz7q3gx5cv"))))
14255 (build-system emacs-build-system)
14256 (home-page "https://github.com/re5et/itail")
14257 (synopsis "Interactive @code{tail} Emacs mode")
14258 (description "@code{itail} provides interactive @code{tail} mode
14259 that allows you to filter the tail with unix pipes and highlight the
14260 contents of the tailed file. Works locally or on remote files using
14261 tramp.")
14262 (license license:gpl3+))))
14263
14264 (define-public emacs-loop
14265 (package
14266 (name "emacs-loop")
14267 (version "1.3")
14268 (source
14269 (origin
14270 (method git-fetch)
14271 (uri (git-reference
14272 (url "https://github.com/Wilfred/loop.el.git")
14273 (commit version)))
14274 (file-name (git-file-name name version))
14275 (sha256
14276 (base32 "1gs95xnmnn8aa4794k7h8mw1sz1nfdh9v0caqj6yvnsdnwy74n5x"))))
14277 (build-system emacs-build-system)
14278 (native-inputs
14279 `(("emacs-ert-runner" ,emacs-ert-runner)
14280 ("emacs-undercover" ,emacs-undercover)))
14281 (arguments
14282 `(#:tests? #t
14283 #:test-command '("ert-runner")))
14284 (home-page "https://github.com/Wilfred/loop.el")
14285 (synopsis "Imperative loop structures for Emacs")
14286 (description "Loop structures familiar to users of other languages. This
14287 library adds a selection of popular loop structures as well as break and
14288 continue.")
14289 (license license:gpl3+)))
14290
14291 (define-public emacs-elisp-refs
14292 (package
14293 (name "emacs-elisp-refs")
14294 (version "1.3")
14295 (source
14296 (origin
14297 (method git-fetch)
14298 (uri (git-reference
14299 (url "https://github.com/Wilfred/elisp-refs.git")
14300 (commit version)))
14301 (file-name (git-file-name name version))
14302 (sha256
14303 (base32 "0w7k91xf69zc0zkjrw8h8sjdjf9xq9qs5zhvajhd718lzf93564b"))))
14304 (build-system emacs-build-system)
14305 (propagated-inputs
14306 `(("emacs-dash" ,emacs-dash)
14307 ("emacs-f" ,emacs-f)
14308 ("emacs-list-utils" ,emacs-list-utils)
14309 ("emacs-loop" ,emacs-loop)
14310 ("emacs-s" ,emacs-s)
14311 ("emacs-shut-up" ,emacs-shut-up)))
14312 (native-inputs
14313 `(("emacs-ert-runner" ,emacs-ert-runner)
14314 ("emacs-undercover" ,emacs-undercover)))
14315 (arguments
14316 `(#:tests? #t
14317 #:test-command '("ert-runner")))
14318 (home-page "https://github.com/Wilfred/elisp-refs")
14319 (synopsis "Find callers of elisp functions or macros")
14320 (description "Find references to functions, macros or variables. Unlike a
14321 dumb text search, @code{elisp-refs} actually parses the code, so it's never
14322 confused by comments or @code{foo-bar} matching @code{foo}.")
14323 (license license:gpl3+)))
14324
14325 (define-public emacs-crux
14326 (let ((commit "308f17d914e2cd79cbc809de66d02b03ceb82859")
14327 (revision "2"))
14328 (package
14329 (name "emacs-crux")
14330 (version (git-version "0.3.0" revision commit))
14331 (source
14332 (origin
14333 (method git-fetch)
14334 (uri (git-reference
14335 (url "https://github.com/bbatsov/crux.git")
14336 (commit commit)))
14337 (file-name (git-file-name name version))
14338 (sha256
14339 (base32
14340 "0rf84finwlvmy0xpgyljjvnrijlmkzjyw9rh97svgxp9c1rzfk0x"))))
14341 (build-system emacs-build-system)
14342 (home-page "https://github.com/bbatsov/crux")
14343 (synopsis "Collection of useful functions for Emacs")
14344 (description
14345 "@code{crux} provides a collection of useful functions for Emacs.")
14346 (license license:gpl3+))))
14347
14348 (define-public emacs-edit-server
14349 (package
14350 (name "emacs-edit-server")
14351 (version "1.15")
14352 (source
14353 (origin
14354 (method git-fetch)
14355 (uri (git-reference
14356 (url "https://github.com/stsquad/emacs_chrome.git")
14357 (commit (string-append "v" version))))
14358 (file-name (git-file-name name version))
14359 (sha256
14360 (base32 "0xxby3ghs38i1l7kag12rnzlzcg9297pm8k6kqq3aqzsg9d2950y"))))
14361 (build-system emacs-build-system)
14362 (arguments
14363 `(#:phases
14364 (modify-phases %standard-phases
14365 (add-after 'unpack 'chdir-elisp
14366 ;; Elisp directory is not in root of the source.
14367 (lambda _
14368 (chdir "servers"))))))
14369 (home-page "https://github.com/stsquad/emacs_chrome")
14370 (synopsis "Server that responds to edit requests from Chromium")
14371 (description
14372 "This package provides an edit server to respond to requests from Emacs.")
14373 (license license:gpl3+)))
14374
14375 (define-public emacs-m-buffer-el
14376 (package
14377 (name "emacs-m-buffer-el")
14378 (version "0.15")
14379 (source
14380 (origin
14381 (method git-fetch)
14382 (uri (git-reference
14383 (url "https://github.com/phillord/m-buffer-el")
14384 (commit (string-append "v" version))))
14385 (file-name (git-file-name name version))
14386 (sha256
14387 (base32
14388 "1sx76i59razwccvn6x7rx5a124bfyjw9fcbxf4gj7nsg33qiq809"))))
14389 (arguments
14390 `(#:phases
14391 (modify-phases %standard-phases
14392 (add-before 'install 'check
14393 (lambda* (#:key inputs #:allow-other-keys)
14394 (invoke "emacs" "--batch" "-L" "."
14395 "-l" "test/m-buffer-test.el"
14396 "-l" "test/m-buffer-at-test.el"
14397 "-f" "ert-run-tests-batch-and-exit"))))))
14398 (build-system emacs-build-system)
14399 (home-page "https://github.com/phillord/m-buffer-el")
14400 (synopsis "List oriented buffer operations for Emacs")
14401 (description "@code{m-buffer} provides a set of list-orientated functions
14402 for operating over the contents of Emacs buffers.")
14403 (license license:gpl3+)))
14404
14405 (define-public emacs-let-alist
14406 (package
14407 (name "emacs-let-alist")
14408 (version "1.0.6")
14409 (source
14410 (origin
14411 (method url-fetch)
14412 (uri (string-append
14413 "https://elpa.gnu.org/packages/let-alist-" version ".el"))
14414 (sha256
14415 (base32 "0szj7vnjzz4zci5fvz7xqgcpi4pzdyyf4qi2s8xar2hi7v3yaawr"))))
14416 (build-system emacs-build-system)
14417 (home-page "https://elpa.gnu.org/packages/let-alist.html")
14418 (synopsis "Easily let-bind values of an assoc-list by their names")
14419 (description "This package offers a single macro, @code{let-alist}. This
14420 macro takes a first argument (whose value must be an alist) and a body.")
14421 (license license:gpl3+)))
14422
14423 (define-public emacs-esup
14424 (let ((commit "a589005a9a888537deef94d6fe38a9b8790c97c7")
14425 (revision "1"))
14426 (package
14427 (name "emacs-esup")
14428 (version (string-append "0.6" "-" revision "."
14429 (string-take commit 7)))
14430 (source
14431 (origin
14432 (method git-fetch)
14433 (uri (git-reference
14434 (url "https://github.com/jschaf/esup.git")
14435 (commit commit)))
14436 (file-name (git-file-name name version))
14437 (sha256
14438 (base32
14439 "04lxmd0h7mfjjl0qghrycgff0vcv950j1wqv0dbkr61jxp64n5fv"))))
14440 ;; TODO: Add tests
14441 (build-system emacs-build-system)
14442 (home-page "https://github.com/jschaf/esup")
14443 (synopsis "Emacs start up profiler")
14444 (description "Benchmark Emacs Startup time without ever leaving
14445 your Emacs.")
14446 (license license:gpl2+))))
14447
14448 (define-public emacs-restart-emacs
14449 (let ((commit "9aa90d3df9e08bc420e1c9845ee3ff568e911bd9")
14450 (revision "1"))
14451 (package
14452 (name "emacs-restart-emacs")
14453 (version (git-version "0.1.1" revision commit))
14454 (source
14455 (origin
14456 (method git-fetch)
14457 (uri (git-reference
14458 (url "https://github.com/iqbalansari/restart-emacs.git")
14459 (commit commit)))
14460 (file-name (git-file-name name version))
14461 (sha256
14462 (base32 "02x1a85k7r95z8091zgjiaj9nf0zvx1jy4xvl3hr12qbnrx1wfav"))))
14463 (build-system emacs-build-system)
14464 (home-page "https://github.com/iqbalansari/restart-emacs")
14465 (synopsis "Restart Emacs from within Emacs")
14466 (description "This package provides a simple command to restart Emacs from
14467 within Emacs.")
14468 (license license:gpl3+))))
14469
14470 (define-public emacs-sourcemap
14471 (package
14472 (name "emacs-sourcemap")
14473 (version "0.03")
14474 (source
14475 (origin
14476 (method git-fetch)
14477 (uri (git-reference
14478 (url "https://github.com/syohex/emacs-sourcemap.git")
14479 (commit version)))
14480 (file-name (git-file-name name version))
14481 (sha256
14482 (base32 "115g2mfpbfywp8xnag4gsb50klfvplqfh928a5mabb5s8v4a3582"))))
14483 (build-system emacs-build-system)
14484 (home-page "https://github.com/syohex/emacs-sourcemap")
14485 (synopsis "Sourcemap parser")
14486 (description "Sourcemap parser")
14487 (license license:gpl3+)))
14488
14489 (define-public emacs-macrostep
14490 (let ((commit "424e3734a1ee526a1bd7b5c3cd1d3ef19d184267"))
14491 (package
14492 (name "emacs-macrostep")
14493 (version (git-version "0.9" "1" commit))
14494 (source (origin
14495 (method git-fetch)
14496 (uri (git-reference
14497 (url "https://github.com/joddie/macrostep.git")
14498 (commit commit)))
14499 (file-name (git-file-name name version))
14500 (sha256
14501 (base32
14502 "1fm40mxdn289cyzgw992223dgrjmwxn4q8svyyxfaxjrpb38jhjz"))))
14503 (build-system emacs-build-system)
14504 (arguments
14505 '(#:phases
14506 (modify-phases %standard-phases
14507 (add-before 'check 'remove-test
14508 ;; Fails because of requirement ‘/bin/sh’.
14509 (lambda _
14510 (let ((file "macrostep-test.el"))
14511 (chmod file #o644)
14512 (emacs-batch-edit-file file
14513 `(progn (progn (goto-char (point-min))
14514 (re-search-forward
14515 "(ert-deftest macrostep-expand-c-macros")
14516 (beginning-of-line)
14517 (kill-sexp))
14518 (basic-save-buffer))))))
14519 (add-before 'install 'check
14520 (lambda _
14521 (invoke "emacs" "--batch" "-L" "."
14522 "-l" "macrostep-test.el"
14523 "-f" "ert-run-tests-batch-and-exit"))))))
14524 (home-page "https://github.com/joddie/macrostep")
14525 (synopsis "Interactive macro-expander for Emacs")
14526 (description "@code{macrostep} is an Emacs minor mode for interactively
14527 stepping through the expansion of macros in Emacs Lisp source code. It lets
14528 you see exactly what happens at each step of the expansion process by
14529 pretty-printing the expanded forms inline in the source buffer, which is
14530 temporarily read-only while macro expansions are visible. You can expand and
14531 collapse macro forms one step at a time, and evaluate or instrument the
14532 expansions for debugging with Edebug as normal (but see “Bugs and known
14533 limitations”, below). Single-stepping through the expansion is particularly
14534 useful for debugging macros that expand into another macro form. These can be
14535 difficult to debug with Emacs’ built-in macroexpand, which continues expansion
14536 until the top-level form is no longer a macro call.")
14537 (license license:gpl3+))))
14538
14539 (define-public emacs-parent-mode
14540 (package
14541 (name "emacs-parent-mode")
14542 (version "2.3")
14543 (source
14544 (origin
14545 (method git-fetch)
14546 (uri (git-reference
14547 (url "https://github.com/Fanael/parent-mode.git")
14548 (commit version)))
14549 (file-name (git-file-name name version))
14550 (sha256
14551 (base32 "0i5bc7lyyrx6swqlrp9l5x72yzwi53qn6ldrfs99gh08b3yvsnni"))))
14552 (build-system emacs-build-system)
14553 (home-page "https://github.com/Fanael/parent-mode")
14554 (synopsis "Get major mode's parent modes")
14555 (description "Get major mode's parent modes")
14556 (license license:gpl3+)))
14557
14558 (define-public emacs-lacarte
14559 (package
14560 (name "emacs-lacarte")
14561 (version "0.1")
14562 (source (origin
14563 (method url-fetch)
14564 (uri "https://www.emacswiki.org/emacs/download/lacarte.el")
14565 (sha256
14566 (base32
14567 "1sbmk37ljq5j7dsw5c37sbxvlfgdqswh7bi4dknyjzfxlq50f4am"))))
14568 (build-system emacs-build-system)
14569 (home-page "https://www.emacswiki.org/emacs/lacarte.el")
14570 (synopsis "Execute menu items as commands, with completion")
14571 (description "Execute menu items as commands, with completion.")
14572 (license license:gpl3)))
14573
14574 (define-public emacs-isearch-prop
14575 (let ((commit "4a2765f835dd115d472142da05215c4c748809f4")
14576 (revision "2"))
14577 (package
14578 (name "emacs-isearch-prop")
14579 (version (git-version "0" revision commit))
14580 (source
14581 (origin
14582 (method git-fetch)
14583 (uri (git-reference
14584 (url "https://github.com/emacsmirror/isearch-prop.git")
14585 (commit commit)))
14586 (file-name (git-file-name name version))
14587 (sha256
14588 (base32
14589 "06gdk5m84q6pxwng8rjxny1zkll8f3m2x6lw4xyib2dvg7iaslh3"))))
14590 (build-system emacs-build-system)
14591 (home-page "https://www.emacswiki.org/emacs/isearch-prop.el")
14592 (synopsis "Extensions to @code{isearch.el}")
14593 (description "The Emacs library @code{isearch-prop.el} lets you search within
14594 contexts. You can limit incremental search to a set of zones of
14595 buffer text, search contexts that in effect constitute a multi-region.
14596 These zones can be defined in various ways, including some ways
14597 provided specially by this library.")
14598 (license license:gpl3+))))
14599
14600 (define-public emacs-company-lua
14601 (let ((commit "29f6819de4d691e5fd0b62893a9f4fbc1c6fcb52")
14602 (revision "2"))
14603 (package
14604 (name "emacs-company-lua")
14605 (version (git-version "0.1" "2" commit))
14606 (source
14607 (origin
14608 (method git-fetch)
14609 (uri (git-reference
14610 (url "https://github.com/ptrv/company-lua.git")
14611 (commit commit)))
14612 (file-name (git-file-name name version))
14613 (sha256
14614 (base32
14615 "0ny2dcc7c585p7v3j6q0rpkbj1qmf2ismy8a5020jpr585xvz0hh"))))
14616 (build-system emacs-build-system)
14617 (propagated-inputs
14618 `(("emacs-company" ,emacs-company)
14619 ("emacs-s" ,emacs-s)
14620 ("emacs-f" ,emacs-f)
14621 ("emacs-lua-mode" ,emacs-lua-mode)))
14622 (arguments
14623 `(#:include (cons* "^lua\\/" %default-include)))
14624 (home-page "https://github.com/ptrv/company-lua")
14625 (synopsis "Company backend for Lua")
14626 (description
14627 "This package provides Company backend for Lua programming language.")
14628 (license license:gpl3+))))
14629
14630 (define-public emacs-beginend
14631 (package
14632 (name "emacs-beginend")
14633 (version "2.1.0")
14634 (source
14635 (origin
14636 (method git-fetch)
14637 (uri (git-reference
14638 (url "https://github.com/DamienCassou/beginend.git")
14639 (commit (string-append "v" version))))
14640 (file-name (git-file-name name version))
14641 (sha256
14642 (base32 "1ic5z3qb5sc3mjrjdlg0rqm2l59a43gwnakagns4cilln2a3xdg8"))))
14643 ;; TODO: Run tests.
14644 (build-system emacs-build-system)
14645 (inputs
14646 `(("emacs-undercover" ,emacs-undercover))) ; For tests.
14647 (home-page "https://github.com/DamienCassou/beginend")
14648 (synopsis "Redefine @code{M-<} and @code{M->} for Emacs modes")
14649 (description "@code{beginend} redefines @code{M-<} and @code{M->}
14650 keybindings for Emacs modes so that point moves to meaningful
14651 locations. Redefined keys are still accessible by pressing the same
14652 key again.")
14653 (license license:gpl3+)))
14654
14655 (define-public emacs-mbsync
14656 (let ((commit "b62491c0e0d89eb9c66261a16d7ac81231c9c453")
14657 (revision "4"))
14658 (package
14659 (name "emacs-mbsync")
14660 (version (git-version "0.1.2" revision commit))
14661 (source
14662 (origin
14663 (method git-fetch)
14664 (uri (git-reference
14665 (url "https://github.com/dimitri/mbsync-el.git")
14666 (commit commit)))
14667 (file-name (git-file-name name version))
14668 (sha256
14669 (base32
14670 "1zlih37mkqjn2czl12zn7lgxxljvrwhqqpbksj9c91zn0f0rm3mz"))))
14671 (build-system emacs-build-system)
14672 (home-page "https://github.com/dimitri/mbsync-el")
14673 (synopsis "Interface to mbsync for Emacs")
14674 (description "This package calls @code{mbsync} from
14675 within Emacs.")
14676 (license license:gpl3+))))
14677
14678 (define-public emacs-ibuffer-projectile
14679 (let ((commit "76496214144687cee0b5139be2e61b1e400cac87")
14680 (revision "2"))
14681 (package
14682 (name "emacs-ibuffer-projectile")
14683 (version (git-version "0.2" revision commit))
14684 (source
14685 (origin
14686 (method git-fetch)
14687 (uri (git-reference
14688 (url "https://github.com/purcell/ibuffer-projectile.git")
14689 (commit commit)))
14690 (file-name (git-file-name name version))
14691 (sha256
14692 (base32
14693 "0vv9xwb1qd5x8zhqmmsn1nrpd11cql9hxb7483nsdhcfwl4apqav"))))
14694 (build-system emacs-build-system)
14695 (propagated-inputs
14696 `(("emacs-projectile" ,emacs-projectile)))
14697 (home-page "https://github.com/purcell/ibuffer-projectile")
14698 (synopsis "Group ibuffer's list by projectile root")
14699 (description "Adds functionality to Emacs @code{ibuffer} for
14700 grouping buffers by their projectile root directory.")
14701 (license license:gpl3+))))
14702
14703 (define-public emacs-elm-mode
14704 (package
14705 (name "emacs-elm-mode")
14706 (version "0.21.0")
14707 (source
14708 (origin
14709 (method git-fetch)
14710 (uri
14711 (git-reference
14712 (url "https://github.com/jcollard/elm-mode")
14713 (commit (string-append "v" version))))
14714 (file-name (git-file-name name version))
14715 (sha256
14716 (base32 "0iwk4fmw8hq3ry4ky1zc7lgl4cpbnrjyk74c2xzddfspi3ks41fd"))))
14717 (propagated-inputs
14718 `(("emacs-dash" ,emacs-dash)
14719 ("emacs-f" ,emacs-f)
14720 ("emacs-reformatter" ,emacs-reformatter)
14721 ("emacs-s" ,emacs-s)))
14722 (build-system emacs-build-system)
14723 (home-page "https://github.com/jcollard/elm-mode")
14724 (synopsis "Emacs major mode for editing Elm source code")
14725 (description
14726 "This package provides a major mode for editing Elm source code, and
14727 working with common core and third-party Elm tools. Its features are:
14728
14729 @itemize
14730 @item Syntax highlighting
14731 @item Intelligent indentation
14732 @item Integration with elm-make
14733 @item Integration with elm-repl
14734 @item Integration with elm-reactor
14735 @item Integration with elm-package
14736 @item Integration with elm-oracle
14737 @item Integration with elm-format
14738 @item Integration with elm-test
14739 @end itemize")
14740 (license license:gpl3+)))
14741
14742 (define-public emacs-helm-mode-manager
14743 (package
14744 (name "emacs-helm-mode-manager")
14745 (version "1.0.0")
14746 (source
14747 (origin
14748 (method git-fetch)
14749 (uri (git-reference
14750 (url "https://github.com/istib/helm-mode-manager")
14751 (commit version)))
14752 (file-name (git-file-name name version))
14753 (sha256
14754 (base32
14755 "1srx5f0s9x7zan7ayqd6scxfhcvr3nkd4yzs96hphd87rb18apzk"))))
14756 (build-system emacs-build-system)
14757 (propagated-inputs
14758 `(("emacs-helm" ,emacs-helm)))
14759 (home-page "https://github.com/istib/helm-mode-manager/")
14760 (synopsis "Switch and toggle Emacs major and minor modes using Helm")
14761 (description "This package provides a Helm interface for toggling Emacs
14762 major or minor mode.
14763
14764 @itemize
14765 @item @code{helm-switch-major-mode} list of all major modes
14766 @item @code{helm-enable-minor-mode} list of all inactive minor modes
14767 @item @code{helm-disable-minor-mode} list of all ACTIVE minor modes
14768 @end itemize\n
14769
14770 Hitting @code{RET} enables the mode, @code{C-z} shows the mode
14771 documentation.")
14772 (license license:gpl3+)))
14773
14774 (define-public emacs-hy-mode
14775 (package
14776 (name "emacs-hy-mode")
14777 (version "1.0.4")
14778 (source
14779 (origin
14780 (method git-fetch)
14781 (uri (git-reference
14782 (url "https://github.com/hylang/hy-mode.git")
14783 (commit (string-append "v" version))))
14784 (file-name (git-file-name name version))
14785 (sha256
14786 (base32 "0gihxlmfminadaqdr8d2zccd7wwygl3m0gfzxsk5izi7f8hl4w7f"))))
14787 (build-system emacs-build-system)
14788 (propagated-inputs
14789 `(("emacs-dash" ,emacs-dash)
14790 ("emacs-s" ,emacs-s)))
14791 (home-page "https://github.com/hylang/hy-mode")
14792 (synopsis "Major mode for Hylang")
14793 (description "This package provides a major mode for Hylang.")
14794 (license license:gpl3+)))
14795
14796 (define-public emacs-web-beautify
14797 (package
14798 (name "emacs-web-beautify")
14799 (version "0.3.2")
14800 (source
14801 (origin
14802 (method git-fetch)
14803 (uri (git-reference
14804 (url "https://github.com/yasuyk/web-beautify.git")
14805 (commit version)))
14806 (file-name (git-file-name name version))
14807 (sha256
14808 (base32 "0vms7zz3ym53wf1zdrkbf2ky2xjr1v134ngsd0jr8azyi8siw84d"))))
14809 (build-system emacs-build-system)
14810 (home-page "https://github.com/yasuyk/web-beautify")
14811 (synopsis "Format HTML, CSS and JavaScript, JSON")
14812 (description "This package provides an Emacs functions to format HTML,
14813 CSS, JavaScript, JSON.")
14814 (license license:gpl3+)))
14815
14816 (define-public emacs-helm-shell-history
14817 (let ((commit "110d3c35c52fe4b89b29e79ea4c8626bce7266a1"))
14818 (package
14819 (name "emacs-helm-shell-history")
14820 (version (git-version "0.1" "1" commit))
14821 (source
14822 (origin
14823 (method git-fetch)
14824 (uri (git-reference
14825 (url "https://github.com/yuutayamada/helm-shell-history.git")
14826 (commit commit)))
14827 (file-name (git-file-name name version))
14828 (sha256
14829 (base32
14830 "18fkjcz69g4dyaxhf9j8svr5x6dhsdnglddwisis8hdn504scpfj"))))
14831 (build-system emacs-build-system)
14832 (arguments
14833 '(#:phases
14834 (modify-phases %standard-phases
14835 (add-before 'check 'patch-helm-shell-history-file
14836 (lambda _
14837 (let ((file "helm-shell-history.el"))
14838 (chmod file #o644)
14839 (emacs-substitute-sexps file
14840 ("(defvar helm-shell-history-file"
14841 `(expand-file-name "~/.bash_history"))))
14842 #t)))))
14843 (propagated-inputs
14844 `(("emacs-helm" ,emacs-helm)))
14845 (home-page "https://github.com/yuutayamada/helm-shell-history")
14846 (synopsis "Find shell history with Emacs Helm")
14847 (description "This package provides an Emacs Helm interface to search
14848 throw a shell history.")
14849 (license license:gpl3+))))
14850
14851 (define-public emacs-discover-my-major
14852 (package
14853 (name "emacs-discover-my-major")
14854 (version "1.0")
14855 (source
14856 (origin
14857 (method git-fetch)
14858 (uri (git-reference
14859 (url "https://framagit.org/steckerhalter/discover-my-major.git/")
14860 (commit version)))
14861 (file-name (git-file-name name version))
14862 (sha256
14863 (base32
14864 "1wlqyl03hhnflbyay3qlvdzqzvv5rbybcjpfddggda7ias9h0pr4"))))
14865 (build-system emacs-build-system)
14866 (propagated-inputs
14867 `(("emacs-makey" ,emacs-makey)))
14868 (home-page "https://framagit.org/steckerhalter/discover-my-major/")
14869 (synopsis "Discover key bindings for the current Emacs major mode")
14870 (description "This package discovers key bindings and
14871 their meaning for the current Emacs major-mode.")
14872 (license license:gpl3+)))
14873
14874 (define-public emacs-org-ref
14875 ;; No release since June 2017.
14876 (let ((commit "5bb9be2232db72b04754d7e4c02a3976ad422f6f")
14877 (revision "2"))
14878 (package
14879 (name "emacs-org-ref")
14880 (version (git-version "1.1.1" revision commit))
14881 (source
14882 (origin
14883 (method git-fetch)
14884 (uri (git-reference
14885 (url "https://github.com/jkitchin/org-ref.git")
14886 (commit commit)))
14887 (file-name (git-file-name name version))
14888 (sha256
14889 (base32 "15gcvbfj19kyv4nxa632b261dwhb26m99plq230qhv9ssfwfgxbx"))))
14890 (build-system emacs-build-system)
14891 (propagated-inputs
14892 `(("emacs-dash" ,emacs-dash)
14893 ("emacs-f" ,emacs-f)
14894 ("emacs-helm" ,emacs-helm)
14895 ("emacs-helm-bibtex" ,emacs-helm-bibtex)
14896 ("emacs-htmlize" ,emacs-htmlize)
14897 ("emacs-hydra" ,emacs-hydra)
14898 ("emacs-ivy" ,emacs-ivy)
14899 ("emacs-key-chord" ,emacs-key-chord)
14900 ("emacs-pdf-tools" ,emacs-pdf-tools)
14901 ("emacs-s" ,emacs-s)))
14902 (home-page "https://github.com/jkitchin/org-ref")
14903 (synopsis "Citations, cross-references and bibliographies in Org mode")
14904 (description
14905 "Org Ref is an Emacs library that provides rich support for citations,
14906 labels and cross-references in Org mode.
14907
14908 The basic idea of Org Ref is that it defines a convenient interface to insert
14909 citations from a reference database (e.g., from BibTeX files), and a set of
14910 functional Org links for citations, cross-references and labels that export
14911 properly to LaTeX, and that provide clickable functionality to the user. Org
14912 Ref interfaces with Helm BibTeX to facilitate citation entry, and it can also
14913 use RefTeX.
14914
14915 It also provides a fairly large number of utilities for finding bad citations,
14916 extracting BibTeX entries from citations in an Org file, and functions to
14917 create and modify BibTeX entries from a variety of sources, most notably from
14918 a DOI.
14919
14920 Org Ref is especially suitable for Org documents destined for LaTeX export and
14921 scientific publication. Org Ref is also useful for research documents and
14922 notes.")
14923 (license license:gpl3+))))
14924
14925 (define-public emacs-org-reveal
14926 (let ((commit "84039bb499290926511b04749882ecb5eda45a0c"))
14927 (package
14928 (name "emacs-org-reveal")
14929 (version (git-version "20200607" "1" commit))
14930 (source (origin
14931 (method git-fetch)
14932 (uri (git-reference
14933 (url "https://github.com/yjwen/org-reveal.git")
14934 (commit commit)))
14935 (file-name (git-file-name name version))
14936 (sha256
14937 (base32
14938 "1fx3xmnkpfljrdmy0dsyq79k93ky57gcqm1ad9qbzykk7qjvmmi8"))))
14939 (build-system emacs-build-system)
14940 (home-page "https://github.com/yjwen/org-reveal")
14941 (synopsis "Org and Reveal.js powered HTML presentation tool")
14942 (description "Org-Reveal is a @command{org-mode} extension that allows
14943 to create beautiful presentations (slides) with 3D effects from simple but
14944 powerful Org contents.")
14945 (license license:gpl3+))))
14946
14947 (define-public emacs-org-re-reveal
14948 (package
14949 (name "emacs-org-re-reveal")
14950 (version "2.12.2")
14951 (source (origin
14952 (method git-fetch)
14953 (uri (git-reference
14954 (url "https://gitlab.com/oer/org-re-reveal.git")
14955 (commit version)))
14956 (file-name (git-file-name name version))
14957 (sha256
14958 (base32
14959 "19nz77f2r49hqavz50ri222prhrd5890vhvc7jfazbascbcdjbqv"))))
14960 (build-system emacs-build-system)
14961 (propagated-inputs
14962 `(("emacs-htmlize" ,emacs-htmlize)
14963 ("emacs-org" ,emacs-org)))
14964 (home-page "https://gitlab.com/oer/org-re-reveal")
14965 (synopsis "Build HTML presentations with reveal.js from Org source files")
14966 (description "This project started as fork of org-reveal. It provides an
14967 export back-end for HTML presentations with reveal.js from Org mode source
14968 files.")
14969 (license license:gpl3+)))
14970
14971 (define-public emacs-add-hooks
14972 (package
14973 (name "emacs-add-hooks")
14974 (version "3.1.1")
14975 (source
14976 (origin
14977 (method git-fetch)
14978 (uri (git-reference
14979 (url "https://github.com/nickmccurdy/add-hooks.git")
14980 (commit version)))
14981 (file-name (git-file-name name version))
14982 (sha256
14983 (base32 "1jv9fpcsm572zg0j1mbpbfkqgdlqapy89xhhj19pswkhjns1y2wl"))))
14984 (build-system emacs-build-system)
14985 (home-page "https://github.com/nickmccurdy/add-hooks/")
14986 (synopsis "Emacs function for setting multiple hooks")
14987 (description "This package provides a @code{add-hooks} function tidies up
14988 duplicate hook and function names further into a single declarative call.")
14989 (license license:gpl3+)))
14990
14991 (define-public emacs-fancy-narrow
14992 (package
14993 (name "emacs-fancy-narrow")
14994 (version "0.9.5")
14995 (source
14996 (origin
14997 (method git-fetch)
14998 (uri (git-reference
14999 (url "https://github.com/Malabarba/fancy-narrow.git")
15000 (commit version)))
15001 (file-name (git-file-name name version))
15002 (sha256
15003 (base32 "0vcr1gnqawvc1yclqs23jvxm6bqix8kpflf1c7znb0wzxmz9kx7y"))))
15004 (build-system emacs-build-system)
15005 (home-page "https://github.com/Malabarba/fancy-narrow/releases")
15006 (synopsis "Imitate @code{narrow-to-region} with more eye candy")
15007 (description
15008 "Unlike @code{narrow-to-region}, which completely hides text outside
15009 the narrowed region, this package simply de-emphasizes the text, makes it
15010 read-only, and makes it unreachable. This leads to a much more natural
15011 feeling where the region stays static (instead of being brutally moved to a
15012 blank slate) and is clearly highlighted with respect to the rest of the
15013 buffer.")
15014 (license license:gpl2+)))
15015
15016 (define-public emacs-know-your-http-well
15017 (package
15018 (name "emacs-know-your-http-well")
15019 (version "0.5.0")
15020 (source
15021 (origin
15022 (method git-fetch)
15023 (uri (git-reference
15024 (url "https://github.com/for-GET/know-your-http-well.git")
15025 (commit (string-append "v" version))))
15026 (file-name (git-file-name name version))
15027 (sha256
15028 (base32 "1lppggnii2r9fvlhh33gbdrwb50za8lnalavlq9s86ngndn4n94k"))))
15029 (arguments
15030 `(#:phases
15031 (modify-phases %standard-phases
15032 (add-after 'unpack 'install-json-files
15033 (lambda* (#:key outputs #:allow-other-keys)
15034 (for-each (lambda (directory)
15035 (copy-recursively directory
15036 (string-append
15037 (assoc-ref outputs "out")
15038 directory)))
15039 '("js" "json"))))
15040 (add-after 'unpack 'chdir-elisp
15041 ;; Elisp directory is not in root of the source.
15042 (lambda _
15043 (chdir "emacs"))))))
15044 (build-system emacs-build-system)
15045 (home-page "https://github.com/for-GET/know-your-http-well")
15046 (synopsis "Meaning of HTTP headers codes")
15047 (description "Meaning of HTTP headers codes.")
15048 (license license:gpl3+)))
15049
15050 (define-public emacs-navi-mode
15051 (let ((commit "c1d38e8237f4e14af020a0b7d4f118ea198ab674"))
15052 (package
15053 (name "emacs-navi-mode")
15054 (version (git-version "2.0" "1" commit))
15055 (source
15056 (origin
15057 (method git-fetch)
15058 (uri (git-reference
15059 (url "https://github.com/alphapapa/navi.git")
15060 (commit commit)))
15061 (file-name (git-file-name name version))
15062 (sha256
15063 (base32
15064 "0jj5spk14hgb7zb1cd2n8whcw4k1kd5zb6llwj96v178yaws7l8k"))))
15065 (build-system emacs-build-system)
15066 (propagated-inputs
15067 `(("emacs-outshine" ,emacs-outshine)
15068 ("emacs-outorg" ,emacs-outorg)))
15069 (home-page "https://github.com/alphapapa/navi")
15070 (synopsis "Emacs major-mode for easy buffer-navigation")
15071 (description
15072 "This package provides an Emacs major-mode for easy buffer-navigation")
15073 (license license:gpl3+))))
15074
15075 (define-public emacs-download-region
15076 (let ((commit "eb9e557529a73b4cfc8281c70dd0d95db333fffa")
15077 (revision "1"))
15078 (package
15079 (name "emacs-download-region")
15080 (version (string-append "0.0.1" "-" revision "."
15081 (string-take commit 7)))
15082 (source
15083 (origin
15084 (method git-fetch)
15085 (uri (git-reference
15086 (url "https://github.com/zk-phi/download-region.git")
15087 (commit commit)))
15088 (file-name (git-file-name name version))
15089 (sha256
15090 (base32
15091 "0v52djg39b6k2snizd9x0qc009ws5y0ywqsfwhqgcbs5ymzh7dsc"))))
15092 (build-system emacs-build-system)
15093 (home-page "https://github.com/zk-phi/download-region")
15094 (synopsis "In buffer download manager for Emacs")
15095 (description "@code{download-region} provides in buffer
15096 downloading manager for Emacs.")
15097 (license license:gpl3+))))
15098
15099 (define-public emacs-helpful
15100 (package
15101 (name "emacs-helpful")
15102 (version "0.17")
15103 (source
15104 (origin
15105 (method git-fetch)
15106 (uri (git-reference
15107 (url "https://github.com/Wilfred/helpful.git")
15108 (commit version)))
15109 (file-name (git-file-name name version))
15110 (sha256
15111 (base32 "0v2y0x9pwi08y2mgjjiw5brfb5haa7pbmy4540glw904ffxxcblj"))))
15112 (build-system emacs-build-system)
15113 (propagated-inputs
15114 `(("emacs-elisp-refs" ,emacs-elisp-refs)
15115 ("emacs-dash" ,emacs-dash)
15116 ("emacs-s" ,emacs-s)
15117 ("emacs-f" ,emacs-f)
15118 ("emacs-shut-up" ,emacs-shut-up)))
15119 (native-inputs
15120 `(("emacs-ert-runner" ,emacs-ert-runner)
15121 ("emacs-undercover" ,emacs-undercover)))
15122 (arguments
15123 `(#:tests? #t
15124 #:test-command '("ert-runner")))
15125 (home-page "https://github.com/Wilfred/helpful")
15126 (synopsis "More contextual information in Emacs help")
15127 (description "@code{helpful} is an alternative to the built-in Emacs help
15128 that provides much more contextual information.
15129
15130 @itemize
15131 @item Show the source code for interactively defined functions (unlike the
15132 built-in Help).
15133 @item Fall back to the raw sexp if no source is available.
15134 @item Show where a function is being called.
15135 @item Docstrings will Highlight the summary (the first sentence), include
15136 cross-references, hide superfluous puncuation.
15137 @item Show you the properties that have been applied to the current
15138 symbol. This provides visibility of features like edebug or byte-code
15139 optimisation.
15140 @item Provide a separate @code{helpful-command} function to view interactive
15141 functions.
15142 @item Display any keybindings that apply to interactive functions.
15143 @item Trace, disassemble functions from inside Helpful. This is discoverable
15144 and doesn't require memorisation of commands.
15145 @end itemize\n")
15146 (license license:gpl3+)))
15147
15148 (define-public emacs-logview
15149 (package
15150 (name "emacs-logview")
15151 (version "0.9")
15152 (source
15153 (origin
15154 (method git-fetch)
15155 (uri (git-reference
15156 (url "https://github.com/doublep/logview.git")
15157 (commit version)))
15158 (file-name (git-file-name name version))
15159 (sha256
15160 (base32 "1qhzs75pxnaksbhczmpdcy2zmrqavlzkzss7ik5nv2wf9vs0sn02"))))
15161 (propagated-inputs
15162 `(("emacs-datetime" ,emacs-datetime)))
15163 (build-system emacs-build-system)
15164 (home-page "https://github.com/doublep/logview/")
15165 (synopsis "Emacs mode for viewing log files")
15166 (description "@code{logview} provides an Emacs mode to view log files.")
15167 (license license:gpl3+)))
15168
15169 (define-public emacs-suggest
15170 (package
15171 (name "emacs-suggest")
15172 (version "0.7")
15173 (home-page "https://github.com/Wilfred/suggest.el")
15174 (source
15175 (origin
15176 (method git-fetch)
15177 (uri (git-reference
15178 (url home-page)
15179 (commit version)))
15180 (file-name (git-file-name name version))
15181 (sha256
15182 (base32
15183 "01v8plska5d3g19sb1m4ph1i3ayprfzk8mi6mpabjy6zad397xjl"))))
15184 (build-system emacs-build-system)
15185 (propagated-inputs
15186 `(("emacs-loop" ,emacs-loop)
15187 ("emacs-dash" ,emacs-dash)
15188 ("emacs-s" ,emacs-s)
15189 ("emacs-f" ,emacs-f)
15190 ("emacs-spinner" ,emacs-spinner)
15191 ("emacs-shut-up" ,emacs-shut-up)))
15192 (native-inputs
15193 `(("emacs-ert-runner" ,emacs-ert-runner)
15194 ("emacs-undercover" ,emacs-undercover)))
15195 (arguments
15196 `(#:tests? #t
15197 #:test-command '("ert-runner")))
15198 (synopsis "Suggest Elisp functions that give the output requested")
15199 (description "Suggest.el will find functions that give the output
15200 requested. It's a great way of exploring list, string and arithmetic
15201 functions.")
15202 (license license:gpl3+)))
15203
15204 (define-public emacs-benchmark-init
15205 (package
15206 (name "emacs-benchmark-init")
15207 (version "1.0")
15208 (source
15209 (origin
15210 (method git-fetch)
15211 (uri (git-reference
15212 (url "https://github.com/dholm/benchmark-init-el.git")
15213 (commit version)))
15214 (file-name (git-file-name name version))
15215 (sha256
15216 (base32 "1kyn1izm5sbqbp9whnhk9dn3yc7zy8bz5san5w3ivi3rpx15fh94"))))
15217 (build-system emacs-build-system)
15218 (home-page "https://github.com/dholm/benchmark-init-el")
15219 (synopsis "Benchmark Emacs @code{require} and @code{load} calls")
15220 (description "@code{benchmark-init} provides a way to keep track of where
15221 time is being spent during Emacs startup in order to optimize startup time.")
15222 (license license:gpl3+)))
15223
15224 (define-public emacs-magit-gerrit
15225 (let ((version "0.3")
15226 (revision "1")
15227 (commit "ece6f369694aca17f3ac166ed2801b432acfe20d"))
15228 (package
15229 (name "emacs-magit-gerrit")
15230 (version (git-version version revision commit))
15231 (source (origin
15232 (method git-fetch)
15233 (uri (git-reference
15234 (url "https://github.com/terranpro/magit-gerrit.git")
15235 (commit commit)))
15236 (file-name (git-file-name name version))
15237 (sha256
15238 (base32
15239 "0mms0gxv9a3ns8lk5k2wjibm3088y1cmpr3axjdh6ppv7r5wdvii"))))
15240 (build-system emacs-build-system)
15241 (propagated-inputs
15242 `(("emacs-magit" ,emacs-magit)))
15243 (home-page "https://github.com/terranpro/magit-gerrit")
15244 (synopsis "Magit extension for Gerrit")
15245 (description "This Magit extension provides integration with Gerrit,
15246 which makes it possible to conduct Gerrit code reviews directly from within
15247 Emacs.")
15248 (license license:gpl3+))))
15249
15250 (define-public emacs-magit-org-todos-el
15251 (let ((commit "df206287737b9671f2e36ae7b1474ebbe9940d2a"))
15252 (package
15253 (name "emacs-magit-org-todos-el")
15254 (version (git-version "0.1.1" "1" commit))
15255 (source
15256 (origin
15257 (method git-fetch)
15258 (uri (git-reference
15259 (url "https://github.com/danielma/magit-org-todos.el.git")
15260 (commit commit)))
15261 (file-name (git-file-name name version))
15262 (sha256
15263 (base32
15264 "0kdp7k7jnnrkhsg0xh1c3h7iz0vgi120gf5xwl1hxy61avivnxrn"))))
15265 (propagated-inputs
15266 `(("magit" ,emacs-magit)))
15267 (build-system emacs-build-system)
15268 (home-page "https://github.com/danielma/magit-org-todos.el")
15269 (synopsis "Get todo.org into Emacs Magit status")
15270 (description "This package allows you to get @file{todo.org} into your
15271 magit status.
15272
15273 If you have a @file{todo.org} file with @code{TODO} items in the root of your
15274 repository, @code{magit-org-todos} will create a section in your Magit status
15275 buffer with each of your todos.")
15276 (license license:gpl3+))))
15277
15278 (define-public emacs-vcsh
15279 (package
15280 (name "emacs-vcsh")
15281 (version "0.4.4")
15282 (source
15283 (origin
15284 (method git-fetch)
15285 (uri (git-reference
15286 (url "https://gitlab.com/stepnem/vcsh-el.git")
15287 (commit version)))
15288 (file-name (git-file-name name version))
15289 (sha256
15290 (base32 "183pffdiqb7qqmjq31wxl3fpv8qswqgg99gb716rddiyk15ysri7"))))
15291 (build-system emacs-build-system)
15292 (home-page "https://gitlab.com/stepnem/vcsh-el")
15293 (synopsis "Emacs VCSH integration")
15294 (description
15295 "This library provides basic ``enter'' functionality and a few
15296 convenience commands to initialize a @acronym{VCSH, Version Control System for
15297 $HOME} repository and add files to it. It can be used in conjunction with
15298 Magit.")
15299 (license license:public-domain)))
15300
15301 (define-public emacs-f3
15302 (package
15303 (name "emacs-f3")
15304 (version "0.1")
15305 (source
15306 (origin
15307 (method git-fetch)
15308 (uri (git-reference
15309 (url "https://github.com/cosmicexplorer/f3.git")
15310 (commit version)))
15311 (file-name (git-file-name name version))
15312 (sha256
15313 (base32 "1qg48zbjdjqimw4516ymrsilz41zkib9321q0caf9474s9xyp2bi"))))
15314 (build-system emacs-build-system)
15315 (propagated-inputs
15316 `(("emacs-helm" ,emacs-helm)))
15317 (home-page "https://github.com/cosmicexplorer/f3")
15318 (synopsis "Fantastic File Finder for Emacs")
15319 (description
15320 "The Fantastic File Finder for Emacs. Find files fast, using helm.")
15321 (license license:gpl3+)))
15322
15323 (define-public emacs-lice-el
15324 (let ((commit "4339929927c62bd636f89bb39ea999d18d269250"))
15325 (package
15326 (name "emacs-lice-el")
15327 (version (git-version "0.2" "1" commit))
15328 (source (origin
15329 (method git-fetch)
15330 (uri (git-reference
15331 (url "https://github.com/buzztaiki/lice-el.git")
15332 (commit commit)))
15333 (file-name (git-file-name name version))
15334 (sha256
15335 (base32
15336 "0879z761b7gajkhq176ps745xpdrivch349crransv8fnsc759yb"))))
15337 (build-system emacs-build-system)
15338 (home-page "https://github.com/buzztaiki/lice-el")
15339 (synopsis "License and header template for Emacs")
15340 (description "@code{lice.el} provides following features:
15341
15342 @itemize
15343 @item License template management.
15344 @item File header insertion.
15345 @end itemize\n")
15346 (license license:gpl3+))))
15347
15348 (define-public emacs-academic-phrases
15349 (let ((commit "0823ed8c24b26c32f909b896a469833ec4d7b656"))
15350 (package
15351 (name "emacs-academic-phrases")
15352 (version (git-version "0.1" "1" commit))
15353 (source
15354 (origin
15355 (method git-fetch)
15356 (uri (git-reference
15357 (url "https://github.com/nashamri/academic-phrases.git")
15358 (commit commit)))
15359 (file-name (git-file-name name version))
15360 (sha256
15361 (base32
15362 "0qfzsq8jh05w4zkr0cvq3i1hdn97bq344vcqjg46sib26x3wpz6r"))))
15363 (build-system emacs-build-system)
15364 (propagated-inputs
15365 `(("emacs-dash" ,emacs-dash)
15366 ("emacs-s" ,emacs-s)
15367 ("emacs-ht" ,emacs-ht)))
15368 (home-page "https://github.com/nashamri/academic-phrases")
15369 (synopsis "Bypass that mental block when writing your papers")
15370 (description
15371 "When writing your academic paper, you might get stuck trying to find
15372 the right phrase that captures your intention. This package tries to
15373 alleviate that problem by presenting you with a list of phrases organized by
15374 the topic or by the paper section that you are writing. This package has
15375 around 600 phrases so far.
15376
15377 Using this package is easy, just call @code{academic-phrases} to get a list of
15378 phrases organized by topic, or call @code{academic-phrases-by-section} to
15379 browse the phrases by the paper section and fill-in the blanks if required.")
15380 (license license:gpl3+))))
15381
15382 (define-public emacs-auto-yasnippet
15383 (let ((commit "624b0d9711222073a2a3f2186e2605eb99fc83c9")
15384 (revision "2"))
15385 (package
15386 (name "emacs-auto-yasnippet")
15387 (version (git-version "0.3.0" revision commit))
15388 (source (origin
15389 (method git-fetch)
15390 (uri (git-reference
15391 (url "https://github.com/abo-abo/auto-yasnippet.git")
15392 (commit commit)))
15393 (file-name (git-file-name name version))
15394 (sha256
15395 (base32
15396 "15g8wi067f345xhpi0c12w0h04p4f4lpccwmdjdfj8hzfl4gyxy9"))))
15397 (build-system emacs-build-system)
15398 (arguments
15399 '(#:tests? #t
15400 #:test-command '("make" "test")))
15401 (propagated-inputs
15402 `(("emacs-yasnippet" ,emacs-yasnippet)))
15403 (home-page "https://github.com/abo-abo/auto-yasnippet/")
15404 (synopsis "Quickly create disposable yasnippets")
15405 (description "This package provides a hybrid of keyboard macros and
15406 yasnippet. You create the snippet on the go, usually to be used just in the
15407 one place. It's fast, because you're not leaving the current buffer, and all
15408 you do is enter the code you'd enter anyway, just placing ~ where you'd like
15409 yasnippet fields and mirrors to be.")
15410 (license license:gpl3+))))
15411
15412 (define-public emacs-highlight-numbers
15413 (package
15414 (name "emacs-highlight-numbers")
15415 (version "0.2.3")
15416 (source
15417 (origin
15418 (method git-fetch)
15419 (uri (git-reference
15420 (url "https://github.com/Fanael/highlight-numbers.git")
15421 (commit version)))
15422 (file-name (git-file-name name version))
15423 (sha256
15424 (base32 "1r07mpyr7rhd7bkg778hx6vbhb4n9ixgzkpszhgks7ri6ia38pj8"))))
15425 (build-system emacs-build-system)
15426 (propagated-inputs
15427 `(("emacs-parent-mode" ,emacs-parent-mode)))
15428 (home-page "https://github.com/Fanael/highlight-numbers")
15429 (synopsis "Highlight numbers in source code")
15430 (description "@code{highlight-numbers-mode} provides a minor mode for
15431 syntax highlighting of numeric literals in source code.
15432
15433 It s customizable: it's easy to add or redefine what exactly consitutes a
15434 \"number\" in given major mode. See @code{highlight-numbers-modelist}.")
15435 (license license:gpl3+)))
15436
15437 (define-public emacs-darkroom
15438 (package
15439 (name "emacs-darkroom")
15440 (version "0.3")
15441 (source
15442 (origin
15443 (method url-fetch)
15444 (uri (string-append "https://elpa.gnu.org/packages/"
15445 "darkroom-" version ".el"))
15446 (sha256
15447 (base32 "0l1xg5kqmjw22k78qnsln0ifx2dx74xxqj0qp8xxcpqvzzx0xh86"))))
15448 (build-system emacs-build-system)
15449 (home-page "https://elpa.gnu.org/packages/darkroom.html")
15450 (synopsis "Remove visual distractions and focus on writing")
15451 (description "@code{darkroom-mode} makes visual distractions disappear.
15452 The mode-line is temporarily elided, text is enlarged and margins are adjusted
15453 so that it's centered on the window.
15454
15455 @code{darkroom-tentative-mode} is similar, but it doesn't immediately turn-on
15456 @code{darkroom-mode}, unless the current buffer lives in the sole window of
15457 the Emacs frame (i.e. all other windows are deleted). Whenever the frame is
15458 split to display more windows and more buffers, the buffer exits
15459 @code{darkroom-mode}. Whenever they are deleted, the buffer re-enters
15460 @code{darkroom-mode}.")
15461 (license license:gpl3+)))
15462
15463 (define-public emacs-rsw-elisp
15464 (package
15465 (name "emacs-rsw-elisp")
15466 (version "1.0.5")
15467 (source (origin
15468 (method git-fetch)
15469 (uri (git-reference
15470 (url "https://github.com/rswgnu/rsw-elisp")
15471 (commit version)))
15472 (file-name (git-file-name name version))
15473 (sha256
15474 (base32
15475 "0dfq8myg0r91900bk1s70amsmm4mjk2qsg12v5pk7lla5d2vnyaf"))))
15476 (build-system emacs-build-system)
15477 (home-page "https://github.com/rswgnu/rsw-elisp")
15478 (synopsis "Improved expressions that interactively evaluate Emacs Lisp")
15479 (description "This package improves and replaces the GNU Emacs commands
15480 that interactively evaluate Emacs Lisp expressions. The new commands replace
15481 standard key bindings and are all prefixed with @code{rsw-elisp-}. They work
15482 the same way as the old commands when called non-interactively; only the
15483 interactive behavior should be different.")
15484 (license license:gpl3+)))
15485
15486 (define-public emacs-default-text-scale
15487 (let ((commit "968e985e219235f3e744d6d967e592acbaf6e0a8")
15488 (revision "1"))
15489 (package
15490 (name "emacs-default-text-scale")
15491 (version (string-append "0.1" "-" revision "."
15492 (string-take commit 7)))
15493 (source (origin
15494 (method git-fetch)
15495 (uri (git-reference
15496 (url "https://github.com/purcell/default-text-scale")
15497 (commit commit)))
15498 (file-name (git-file-name name version))
15499 (sha256
15500 (base32
15501 "0zds01c3q5yny6ab1fxfkzzgn1kgl3q23lxxap905f4qd70v922h"))))
15502 (build-system emacs-build-system)
15503 (home-page "https://github.com/purcell/default-text-scale")
15504 (synopsis "Adjust the font size in all Emacs frames")
15505 (description "This package provides commands for increasing or
15506 decreasing the default font size in all GUI Emacs frames.")
15507 (license license:gpl3+))))
15508
15509 (define-public emacs-mixed-pitch
15510 (package
15511 (name "emacs-mixed-pitch")
15512 (version "1.0.1")
15513 (source
15514 (origin
15515 (method git-fetch)
15516 (uri (git-reference
15517 (url "https://gitlab.com/jabranham/mixed-pitch.git")
15518 (commit version)))
15519 (file-name (git-file-name name version))
15520 (sha256
15521 (base32 "1458sy5b6bis1i0k23jdqk6hfqg0ghk637r3ajql2g19ym48rf58"))))
15522 (build-system emacs-build-system)
15523 (home-page "https://gitlab.com/jabranham/mixed-pitch")
15524 (synopsis "Mix variable- and fixed-pitch fonts in the same Emacs buffer")
15525 (description
15526 "@code{mixed-pitch-mode} is a minor mode that enables mixing
15527 variable-pitch and fixed-pitch fonts in the same buffer. The list
15528 @code{mixed-pitch-fixed-pitch-faces} defines the faces that are kept
15529 fixed-pitch,everything else becomes variable-pitch.")
15530 (license license:gpl3+)))
15531
15532 (define-public emacs-visual-regexp
15533 (package
15534 (name "emacs-visual-regexp")
15535 (version "1.1.1")
15536 (source
15537 (origin
15538 (method git-fetch)
15539 (uri (git-reference
15540 (url "https://github.com/benma/visual-regexp.el.git")
15541 (commit (string-append "v" version))))
15542 (file-name (git-file-name name version))
15543 (sha256
15544 (base32 "12zpmzwyp85dzsjpxd3279kpfi9yz3jwc1k9fnb3xv3pjiil5svg"))))
15545 (build-system emacs-build-system)
15546 (home-page "https://github.com/benma/visual-regexp.el/")
15547 (synopsis "Regexp command with interactive visual feedback")
15548 (description "This package provides an Emacs regexp command with
15549 interactive visual feedback.")
15550 (license license:gpl3+)))
15551
15552 (define-public emacs-faceup
15553 (let ((commit "6c92dad56a133e14e7b27831e1bcf9b3a71ff154")
15554 (revision "1"))
15555 (package
15556 (name "emacs-faceup")
15557 (version (string-append "0.0.1" "-" revision "."
15558 (string-take commit 7)))
15559 (source
15560 (origin
15561 (method git-fetch)
15562 (uri (git-reference
15563 (url "https://github.com/Lindydancer/faceup.git")
15564 (commit commit)))
15565 (file-name (git-file-name name version))
15566 (sha256
15567 (base32
15568 "1yzmy7flrhrh0i10bdszx8idx6r8h6czm4vm4q0z6fp5fw94zwrx"))))
15569 (build-system emacs-build-system)
15570 (home-page "https://github.com/Lindydancer/faceup")
15571 (synopsis "Markup language for faces and font-lock regression testing")
15572 (description "Emacs is capable of highlighting buffers based on
15573 language-specific @code{font-lock} rules. This package makes it possible to
15574 perform regression test for packages that provide font-lock rules.")
15575 (license license:gpl3+))))
15576
15577 (define-public emacs-racket-mode
15578 (let ((commit "5f396fa91fc22310f5c519aa658436a1a5251846")
15579 (revision "5"))
15580 (package
15581 (name "emacs-racket-mode")
15582 (version (git-version "0.0.2" revision commit))
15583 (source
15584 (origin
15585 (method git-fetch)
15586 (uri (git-reference
15587 (url "https://github.com/greghendershott/racket-mode")
15588 (commit commit)))
15589 (file-name (git-file-name name version))
15590 (sha256
15591 (base32
15592 "1214y08i0c51d1vzw9jzyf79vyfqizdy6m0980qs13qbdwsj32v0"))))
15593 (build-system emacs-build-system)
15594 (arguments
15595 `(#:include '("\\.el$" "\\.rkt$")))
15596 (propagated-inputs
15597 `(("emacs-faceup" ,emacs-faceup)
15598 ("emacs-s" ,emacs-s)))
15599 (home-page "https://www.racket-mode.com/")
15600 (synopsis "Major mode for the Racket language")
15601 (description "@code{racket-mode} provides:
15602
15603 @itemize
15604 @item Focus on Racket (not various Schemes).
15605 @item Follow DrRacket concepts where applicable.
15606 @item Thorough font-lock and indent.
15607 @end itemize\n")
15608 (license license:gpl3+))))
15609
15610 (define-public emacs-grep-context
15611 (let ((commit "5a4e3efdf775755c1bbefcfe4b461c1166d81d7d")
15612 (revision "1"))
15613 (package
15614 (name "emacs-grep-context")
15615 (version (git-version "0.1.0" revision commit))
15616 (source
15617 (origin
15618 (method git-fetch)
15619 (uri (git-reference
15620 (url "https://github.com/mkcms/grep-context.git")
15621 (commit commit)))
15622 (file-name (git-file-name name version))
15623 (sha256
15624 (base32
15625 "00q7l4a3c0ay6g5ff9bfa2qgkiswsyh4s6pqnpg0zpzhvv5710f5"))))
15626 (build-system emacs-build-system)
15627 (propagated-inputs
15628 `(("emacs-dash" ,emacs-dash)))
15629 (home-page "https://github.com/mkcms/grep-context")
15630 (synopsis "Increase context in compilation and grep buffers")
15631 (description
15632 "This package provides an Emacs package for more context in
15633 compilation/grep buffers. Works with @code{wgrep}, @code{ack}, @code{ag},
15634 @code{ivy}.")
15635 (license license:gpl3+))))
15636
15637 (define-public emacs-helm-firefox
15638 (let ((commit "0ad34b7b5abc485a86cae6920c14de861cbeb085")
15639 (revision "1"))
15640 (package
15641 (name "emacs-helm-firefox")
15642 (version (string-append "0.0.1" "-" revision "."
15643 (string-take commit 7)))
15644 (source
15645 (origin
15646 (method git-fetch)
15647 (uri (git-reference
15648 (url "https://github.com/emacs-helm/helm-firefox.git")
15649 (commit commit)))
15650 (file-name (git-file-name name version))
15651 (sha256
15652 (base32
15653 "08mjsi2f9s29fkk35cj1rrparjnkm836qmbfdwdz7y51f9varjbs"))))
15654 (propagated-inputs
15655 `(("emacs-helm" ,emacs-helm)))
15656 (build-system emacs-build-system)
15657 (home-page "https://github.com/emacs-helm/helm-firefox")
15658 (synopsis "Display firefox bookmarks with Emacs Helm interface")
15659 (description "Display firefox bookmarks with Emacs Helm interface")
15660 (license license:gpl3+))))
15661
15662 (define-public emacs-interactive-align
15663 (package
15664 (name "emacs-interactive-align")
15665 (version "0.4.2")
15666 (source
15667 (origin
15668 (method git-fetch)
15669 (uri (git-reference
15670 (url "https://github.com/mkcms/interactive-align.git")
15671 (commit (string-append "v" version))))
15672 (file-name (git-file-name name version))
15673 (sha256
15674 (base32
15675 "0bh03w91i622hbar5dcq631ndxx1y8kd3h655pgw1g0lqkv1mlnc"))))
15676 (build-system emacs-build-system)
15677 (home-page "https://github.com/mkcms/interactive-align/")
15678 (synopsis "Interactive align-regexp command in Emacs")
15679 (description "Interactive align-regexp command in Emacs")
15680 (license license:gpl3+)))
15681
15682 (define-public emacs-shift-number
15683 (package
15684 (name "emacs-shift-number")
15685 (version "0.1")
15686 (source
15687 (origin
15688 (method git-fetch)
15689 (uri (git-reference
15690 (url "https://github.com/alezost/shift-number.el")
15691 (commit (string-append "v" version))))
15692 (file-name (git-file-name name version))
15693 (sha256
15694 (base32
15695 "0zlwmzsxkv4mkggylxfx2fkrwgz7dz3zbg2gkn2rxcpy2k2gla64"))))
15696 (build-system emacs-build-system)
15697 (home-page "https://github.com/alezost/shift-number.el")
15698 (synopsis "Increase or decrease the number at point")
15699 (description "@code{emacs-shift-number} provides commands
15700 @code{shift-number-up} to increase and @code{shift-number-down} to
15701 decrease the number at point.")
15702 (license license:gpl3+)))
15703
15704 (define-public emacs-highlight-defined
15705 (package
15706 (name "emacs-highlight-defined")
15707 (version "0.1.5")
15708 (source
15709 (origin
15710 (method git-fetch)
15711 (uri (git-reference
15712 (url "https://github.com/Fanael/highlight-defined.git")
15713 (commit version)))
15714 (file-name (git-file-name name version))
15715 (sha256
15716 (base32 "08czwa165rnd5z0dwwdddn7zi5w63sdk31l47bj0598kbly01n7r"))))
15717 (build-system emacs-build-system)
15718 (home-page "https://github.com/Fanael/highlight-defined")
15719 (synopsis "Syntax highlighting of known Elisp symbols")
15720 (description "Minor mode providing syntax highlighting of known Emacs Lisp
15721 symbols. Currently the code distinguishes Lisp functions, built-in functions,
15722 macros, faces and variables. To enable call @code{highlight-defined-mode}. ")
15723 (license license:gpl3+)))
15724
15725 (define-public emacs-parinfer-mode
15726 (package
15727 (name "emacs-parinfer-mode")
15728 (version "0.4.10")
15729 (source
15730 (origin
15731 (method git-fetch)
15732 (uri (git-reference
15733 (url "https://github.com/DogLooksGood/parinfer-mode.git")
15734 (commit (string-append "v" version))))
15735 (file-name (git-file-name name version))
15736 (sha256
15737 (base32 "0v97ncb0w1slb0x8861l3yr1kqz6fgw1fwl1z9lz6hh8p2ih34sk"))))
15738 (propagated-inputs
15739 `(("emacs-dash" ,emacs-dash)
15740 ("emacs-rainbow-delimiters" ,emacs-rainbow-delimiters)
15741 ("emacs-company" ,emacs-company)))
15742 (build-system emacs-build-system)
15743 (home-page "https://github.com/DogLooksGood/parinfer-mode/")
15744 (synopsis "Lisp structure editing mode")
15745 (description "@code{parinfer-mode} is a proof-of-concept editor
15746 mode for Lisp programming languages. It will infer some changes to
15747 keep Parens and Indentation inline with one another.")
15748 (license license:gpl3+)))
15749
15750 (define-public emacs-helm-eww
15751 (package
15752 (name "emacs-helm-eww")
15753 (version "1.2")
15754 (source (origin
15755 (method git-fetch)
15756 (uri (git-reference
15757 (url "https://github.com/emacs-helm/helm-eww.git")
15758 (commit version)))
15759 (file-name (git-file-name name version))
15760 (sha256
15761 (base32
15762 "0hpq1h0p69c9k6hkd2mjpprx213sc5475q7pr2zpmwrjdzgcv70z"))))
15763 (propagated-inputs
15764 `(("emacs-helm" ,emacs-helm)))
15765 (build-system emacs-build-system)
15766 (home-page "https://github.com/emacs-helm/helm-eww/")
15767 (synopsis "Helm interface to EWW")
15768 (description "This package provides a Helm interface for EWW buffers,
15769 bookmarks and history.")
15770 (license license:gpl3+)))
15771
15772 (define-public emacs-stumpwm-mode
15773 (let ((commit "920f8fc1488f7953f205e1dda4c2ecbbbda56d6")
15774 (revision "3"))
15775 (package
15776 (name "emacs-stumpwm-mode")
15777 (version (git-version "0.0.1" revision commit))
15778 (source (origin
15779 (method git-fetch)
15780 (uri (git-reference
15781 (url "https://github.com/stumpwm/stumpwm-contrib.git")
15782 (commit commit)))
15783 (file-name (git-file-name name version))
15784 (sha256
15785 (base32
15786 "0giac390bq95ag41xkxqp8jjrhfx1wpgglz7jg5rkm0wjhcwmyml"))))
15787 (build-system emacs-build-system)
15788 (arguments
15789 `(#:phases
15790 (modify-phases %standard-phases
15791 (add-after 'unpack 'chdir-elisp
15792 ;; Elisp directory is not in root of the source.
15793 (lambda _
15794 (chdir "util/swm-emacs"))))))
15795 (home-page "https://github.com/stumpwm/stumpwm-contrib")
15796 (synopsis "Emacs minor-mode for Stumpwm")
15797 (description "Emacs minor-mode for Stumpwm")
15798 (license license:gpl3+))))
15799
15800 (define-public emacs-irfc
15801 (package
15802 (name "emacs-irfc")
15803 (version "20130824.507-1")
15804 (source
15805 (origin
15806 (method url-fetch)
15807 (uri "https://www.emacswiki.org/emacs/download/irfc.el")
15808 (file-name (string-append "irfc-" version ".el"))
15809 (sha256
15810 (base32
15811 "0rbfrza56kvspvgrwg0b5bj30d0qncqdsmfxn3y5caq4ifcj77hv"))))
15812 (build-system emacs-build-system)
15813 (home-page "https://www.emacswiki.org/emacs/download/irfc.el")
15814 (synopsis "Interface for IETF RFC document")
15815 (description
15816 "This package provides an Emacs interface for IETF RFC document.")
15817 (license license:gpl3+)))
15818
15819 (define-public emacs-ido-vertical-mode
15820 (package
15821 (name "emacs-ido-vertical-mode")
15822 (version "0.1.6")
15823 (source
15824 (origin
15825 (method git-fetch)
15826 (uri (git-reference
15827 (url "https://github.com/creichert/ido-vertical-mode.el.git")
15828 (commit (string-append "v" version))))
15829 (file-name (git-file-name name version))
15830 (sha256
15831 (base32 "1lv82q639xjnmvby56nwqn23ijh6f163bk675s33dkingm8csj8k"))))
15832 (build-system emacs-build-system)
15833 (home-page "https://github.com/creichert/ido-vertical-mode.el")
15834 (synopsis "Makes ido-mode display vertically")
15835 (description "Makes ido-mode display prospects vertically.")
15836 (license license:gpl3+)))
15837
15838 (define-public emacs-wordgen
15839 (package
15840 (name "emacs-wordgen")
15841 (version "0.1.4")
15842 (source
15843 (origin
15844 (method git-fetch)
15845 (uri (git-reference
15846 (url "https://github.com/Fanael/wordgen.el.git")
15847 (commit version)))
15848 (file-name (git-file-name name version))
15849 (sha256
15850 (base32 "06vbc9ycz1nbjwjkg99y3lj6jwb6lnwnmkqf09yr00jjrrfhfash"))))
15851 (build-system emacs-build-system)
15852 (home-page "https://github.com/Fanael/wordgen.el")
15853 (synopsis "Random word generator")
15854 (description "This package provides functions to generate random words
15855 using user-provided rules.")
15856 (license license:gpl3+)))
15857
15858 (define-public emacs-on-screen
15859 (package
15860 (name "emacs-on-screen")
15861 (version "1.3.3")
15862 (source
15863 (origin
15864 (method url-fetch)
15865 (uri (string-append
15866 "https://elpa.gnu.org/packages/on-screen-" version ".el"))
15867 (file-name (string-append name "-" version ".el"))
15868 (sha256
15869 (base32 "0ga4hw23ki583li2z2hr7l6hk1nc2kdg4afndg06cm9jn158wza7"))))
15870 (build-system emacs-build-system)
15871 (home-page "https://github.com/michael-heerdegen/on-screen.el")
15872 (synopsis "Guide your eyes while scrolling")
15873 (description
15874 "Scrolling can be distracting because your eyes may lose
15875 orientation. This library implements a minor mode that highlights
15876 the previously visible buffer part after each scroll.")
15877 (license license:gpl3+)))
15878
15879 (define-public emacs-highlight-escape-sequences
15880 ;; No release upstream. Extract version from main file.
15881 (let ((commit "08d846a7aa748209d65fecead2b6a766c3e5cb41")
15882 (revision "0"))
15883 (package
15884 (name "emacs-highlight-escape-sequences")
15885 (version (git-version "0.4" revision commit))
15886 (source
15887 (origin
15888 (method git-fetch)
15889 (uri (git-reference
15890 (url "https://github.com/dgutov/highlight-escape-sequences.git")
15891 (commit commit)))
15892 (file-name (git-file-name name version))
15893 (sha256
15894 (base32 "05mc3w1f8ykf80914a1yddw6j8cmh0h57llm07xh89s53821v2is"))))
15895 (build-system emacs-build-system)
15896 (home-page "https://github.com/dgutov/highlight-escape-sequences")
15897 (synopsis "Highlight escape sequences in Emacs")
15898 (description "@code{highlight-escape-sequences} provides an
15899 Emacs minor mode to escape sequences in code.")
15900 (license license:gpl3+))))
15901
15902 (define-public emacs-dashboard
15903 (package
15904 (name "emacs-dashboard")
15905 (version "1.6.0")
15906 (source
15907 (origin
15908 (method git-fetch)
15909 (uri (git-reference
15910 (url "https://github.com/rakanalh/emacs-dashboard.git")
15911 (commit version)))
15912 (file-name (git-file-name name version))
15913 (sha256
15914 (base32 "1g6g8vad1kdmv1zxp95a8sn70idl26isqjb3xk1r95pqnx1cn591"))))
15915 (build-system emacs-build-system)
15916 (propagated-inputs
15917 `(("emacs-page-break-lines" ,emacs-page-break-lines)))
15918 (arguments
15919 '(#:include '("\\.el$" "\\.txt$" "\\.png$")
15920 #:phases
15921 (modify-phases %standard-phases
15922 (add-after 'unpack 'patch-dashboard-widgets
15923 ;; This phase fixes compilation error.
15924 (lambda _
15925 (chmod "dashboard-widgets.el" #o666)
15926 (emacs-substitute-variables "dashboard-widgets.el"
15927 ("dashboard-init-info"
15928 '(format "Loaded in %s" (emacs-init-time))))
15929 #t)))))
15930 (home-page "https://github.com/rakanalh/emacs-dashboard")
15931 (synopsis "Startup screen extracted from Spacemacs")
15932 (description "This package provides an extensible Emacs dashboard, with
15933 sections for bookmarks, projectil projects, org-agenda and more. ")
15934 (license license:gpl3+)))
15935
15936 (define-public emacs-slime-company
15937 (package
15938 (name "emacs-slime-company")
15939 (version "1.1")
15940 (source
15941 (origin
15942 (method git-fetch)
15943 (uri (git-reference
15944 (url "https://github.com/anwyn/slime-company.git")
15945 (commit (string-append "v" version))))
15946 (file-name (git-file-name name version))
15947 (sha256
15948 (base32 "1hl1hqkc1pxga9k2k8k15d7dip7sfsmwf4wm4sh346m6nj606q8g"))))
15949 (build-system emacs-build-system)
15950 (propagated-inputs
15951 `(("emacs-slime" ,emacs-slime)
15952 ("emacs-company" ,emacs-company)))
15953 (home-page "https://company-mode.github.io")
15954 (synopsis "SLIME completion backend for @code{company-mode}")
15955 (description
15956 "This is a backend implementation for the completion package
15957 @code{company-mode} which supports the normal and the fuzzy completion
15958 modes of SLIME.")
15959 (license license:gpl3+)))
15960
15961 (define-public emacs-sml-mode
15962 (package
15963 (name "emacs-sml-mode")
15964 (version "6.10")
15965 (source
15966 (origin
15967 (method url-fetch)
15968 (uri (string-append "https://elpa.gnu.org/packages/sml-mode-"
15969 version ".el"))
15970 (sha256
15971 (base32 "01yf0s474r9xhj6nbs14ljn9ccxb5yy758i17c8nmgmqvm8fx7sb"))))
15972 (build-system emacs-build-system)
15973 (home-page "https://elpa.gnu.org/packages/sml-mode.html")
15974 (synopsis "Major mode for editing (Standard) ML")
15975 (description "SML-MODE is a major Emacs mode for editing Standard ML.
15976 It provides syntax highlighting and automatic indentation and
15977 comes with sml-proc which allows interaction with an inferior SML
15978 interactive loop.")
15979 (license license:gpl3+)))
15980
15981 (define-public emacs-eros
15982 (let ((commit "dd8910279226259e100dab798b073a52f9b4233a")
15983 (revision "2"))
15984 (package
15985 (name "emacs-eros")
15986 (version (git-version "0.0.1" revision commit))
15987 (source
15988 (origin
15989 (method git-fetch)
15990 (uri (git-reference
15991 (url "https://github.com/xiongtx/eros.git")
15992 (commit commit)))
15993 (file-name (git-file-name name version))
15994 (sha256
15995 (base32
15996 "08chj3a0lw4ygi2sv7wj0i6ihfbi8jhylr8p92inif8b88r6wg3k"))))
15997 (build-system emacs-build-system)
15998 (home-page "https://github.com/xiongtx/eros")
15999 (synopsis "Evaluation result overlays")
16000 (description "@code{eros} provides evaluation result overlays.")
16001 (license license:gpl3+))))
16002
16003 (define-public emacs-stickyfunc-enhance
16004 (let ((commit "13bdba51fcd83ccbc3267959d23afc94d458dcb0")
16005 (revision "1"))
16006 (package
16007 (name "emacs-stickyfunc-enhance")
16008 (version "0.1")
16009 (source
16010 (origin
16011 (method git-fetch)
16012 (uri (git-reference
16013 (url "https://github.com/tuhdo/semantic-stickyfunc-enhance.git")
16014 (commit commit)))
16015 (file-name (git-file-name name version))
16016 (sha256
16017 (base32
16018 "16dxjsr5nj20blww4xpd4jzgjprzzh1nwvb810ggdmp9paf4iy0g"))))
16019 (build-system emacs-build-system)
16020 (home-page "https://github.com/tuhdo/semantic-stickyfunc-enhance")
16021 (synopsis "Enhancement to stock @code{semantic-stickyfunc-mode}")
16022 (description
16023 "@code{semantic-stickyfunc-mode} shows the function point is currently
16024 in at the first line of the current buffer. This is useful when you have a
16025 very long function that spreads more than a screen, and you don't have to
16026 scroll up to read the function name and then scroll down to original position.")
16027 (license license:gpl3+))))
16028
16029 (define-public emacs-git-auto-commit-mode
16030 (package
16031 (name "emacs-git-auto-commit-mode")
16032 (version "4.5.0")
16033 (source
16034 (origin
16035 (method git-fetch)
16036 (uri (git-reference
16037 (url "https://github.com/ryuslash/git-auto-commit-mode.git")
16038 (commit version)))
16039 (file-name (git-file-name name version))
16040 (sha256
16041 (base32 "1w3v9pmlmdxl4pglsb6j0igp13lbzg5bhbr1rv2vll93m6zxmyma"))))
16042 (build-system emacs-build-system)
16043 (home-page "https://github.com/ryuslash/git-auto-commit-mode")
16044 (synopsis "Emacs Minor mode to automatically commit and push")
16045 (description "@code{git-auto-commit-mode} is an Emacs minor mode that
16046 tries to commit changes to a file after every save.
16047
16048 When @code{gac-automatically-push-p} is non-nil, it also tries to push to
16049 the current upstream.")
16050 (license license:gpl3+)))
16051
16052 (define-public emacs-scroll-on-drag
16053 (let ((commit "888abd04c34753b1fc4b2fe541bc004ebec5c996")
16054 (revision "1"))
16055 (package
16056 (name "emacs-scroll-on-drag")
16057 (version (git-version "0.1" revision commit))
16058 (source
16059 (origin
16060 (method git-fetch)
16061 (uri (git-reference
16062 (url "https://gitlab.com/ideasman42/emacs-scroll-on-drag.git")
16063 (commit commit)))
16064 (file-name (git-file-name name version))
16065 (sha256
16066 (base32
16067 "1si4hdqa3jw1inbyh3wb3i5i9grbms1nwky3vyk9zg7iznwm8a9p"))))
16068 (build-system emacs-build-system)
16069 (home-page "https://gitlab.com/ideasman42/emacs-scroll-on-drag")
16070 (synopsis "Interactive scrolling")
16071 (description "This package permits scrolling at increasing speeds based
16072 on drag distance.")
16073 (license license:gpl3+))))
16074
16075 (define-public emacs-company-restclient
16076 (package
16077 (name "emacs-company-restclient")
16078 (version "0.3.0")
16079 (source
16080 (origin
16081 (method git-fetch)
16082 (uri (git-reference
16083 (url "https://github.com/iquiw/company-restclient.git")
16084 (commit (string-append "v" version))))
16085 (file-name (git-file-name name version))
16086 (sha256
16087 (base32 "0yp0hlrgcr6yy1xkjvfckys2k24x9xg7y6336ma61bdwn5lpv0x0"))))
16088 (build-system emacs-build-system)
16089 (propagated-inputs
16090 `(("emacs-company" ,emacs-company)
16091 ("emacs-know-your-http-well" ,emacs-know-your-http-well)
16092 ("emacs-restclient" ,emacs-restclient)))
16093 (home-page "https://github.com/iquiw/company-restclient")
16094 (synopsis "Company-mode completion back-end for restclient-mode")
16095 (description "@code{company-mode} back-end for
16096 @code{restclient-mode}.
16097
16098 It provides auto-completion for HTTP methods and headers in
16099 @code{restclient-mode}. Completion source is given by
16100 @code{know-your-http-well}.")
16101 (license license:gpl3+)))
16102
16103 (define-public emacs-noflet
16104 (let ((version "20170629")
16105 (revision "1")
16106 (commit "7ae84dc3257637af7334101456dafe1759c6b68a"))
16107 (package
16108 (name "emacs-noflet")
16109 (version (git-version version revision commit))
16110 (source
16111 (origin
16112 (method git-fetch)
16113 (uri (git-reference
16114 (url "https://github.com/nicferrier/emacs-noflet")
16115 (commit commit)))
16116 (file-name (git-file-name name version))
16117 (sha256
16118 (base32
16119 "0g70gnmfi8n24jzfci9nrj0n9bn1qig7b8f9f325rin8h7x32ypf"))))
16120 (build-system emacs-build-system)
16121 (arguments
16122 `(#:phases
16123 (modify-phases %standard-phases
16124 (add-after 'unpack 'require-dash
16125 ;; noflet.el uses -map from dash, but (require 'dash) is
16126 ;; missing. So, add it.
16127 (lambda _
16128 (substitute* "noflet.el"
16129 ((";;; Code:") ";;; Code:\n(require 'dash)"))
16130 #t)))))
16131 (propagated-inputs
16132 `(("emacs-dash" ,emacs-dash)))
16133 (home-page "https://github.com/nicferrier/emacs-noflet")
16134 (synopsis "Locally override functions")
16135 (description "@code{emacs-noflet} lets you locally override functions,
16136 in the manner of @command{flet}, but with access to the original function
16137 through the symbol: @command{this-fn}.")
16138 (license license:gpl3+))))
16139
16140 (define-public emacs-dumb-jump
16141 (package
16142 (name "emacs-dumb-jump")
16143 (version "0.5.3")
16144 (source
16145 (origin
16146 (method git-fetch)
16147 (uri (git-reference
16148 (url "https://github.com/jacktasia/dumb-jump.git")
16149 (commit (string-append "v" version))))
16150 (file-name (git-file-name name version))
16151 (sha256
16152 (base32 "1njf60264snhxrd36m4z687lqfkis0p9mmrr7cf1c8l0lfdvawxi"))))
16153 (build-system emacs-build-system)
16154 (arguments
16155 `(#:tests? #f ; FIXME: Tests freeze when run.
16156 #:test-command '("ert-runner")
16157 #:phases
16158 (modify-phases %standard-phases
16159 (add-after 'unpack 'set-shell
16160 (lambda _
16161 ;; Setting the SHELL environment variable is required for the
16162 ;; tests to find sh.
16163 (setenv "SHELL" (which "sh"))
16164 #t)))))
16165 (native-inputs
16166 `(("emacs-el-mock" ,emacs-el-mock)
16167 ("emacs-noflet" ,emacs-noflet)
16168 ("emacs-undercover" ,emacs-undercover)
16169 ("ert-runner" ,emacs-ert-runner)))
16170 (propagated-inputs
16171 `(("emacs-f" ,emacs-f)
16172 ("emacs-popup" ,emacs-popup)))
16173 (home-page "https://github.com/jacktasia/dumb-jump")
16174 (synopsis "Jump to definition for multiple languages without configuration")
16175 (description "Dumb Jump is an Emacs \"jump to definition\" package with
16176 support for multiple programming languages that favors \"just working\" over
16177 speed or accuracy. This means minimal --- and ideally zero --- configuration
16178 with absolutely no stored indexes (tags) or persistent background processes.
16179 Dumb Jump performs best with The Silver Searcher @command{ag} or ripgrep
16180 @command{rg} installed.")
16181 (license license:gpl3+)))
16182
16183 (define-public emacs-dts-mode
16184 (let ((commit "9ee0854446dcc6c53d2b8d2941051768dba50344")
16185 (revision "1"))
16186 (package
16187 (name "emacs-dts-mode")
16188 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
16189 (source
16190 (origin
16191 (method git-fetch)
16192 (uri (git-reference
16193 (url "https://github.com/bgamari/dts-mode.git")
16194 (commit commit)))
16195 (file-name (git-file-name name version))
16196 (sha256
16197 (base32
16198 "1k8lljdbc90nd29xrhdrsscxavzdq532wq2mg7ljc94krj7538b1"))))
16199 (build-system emacs-build-system)
16200 (home-page "https://github.com/bgamari/dts-mode.git")
16201 (synopsis "Emacs minor mode for editing device tree files")
16202 (description
16203 "This package provides an Emacs minor mode for highlighting
16204 device tree files.")
16205 (license license:gpl3+))))
16206
16207 (define-public emacs-daemons
16208 (package
16209 (name "emacs-daemons")
16210 (version "2.0.0")
16211 (source
16212 (origin
16213 (method git-fetch)
16214 (uri (git-reference
16215 (url "https://github.com/cbowdon/daemons.el")
16216 (commit version)))
16217 (file-name (git-file-name name version))
16218 (sha256
16219 (base32
16220 "00bkzfaw3bqykcks610vk9wlpa2z360xn32bpsrycacwfv29j7g4"))))
16221 (build-system emacs-build-system)
16222 (home-page "https://github.com/cbowdon/daemons.el")
16223 (synopsis "Emacs UI for managing init system services")
16224 (description
16225 "This is an Emacs mode to give you a UI for managing init system
16226 daemons (services) for those getting tired of typing out @code{sudo service
16227 my_thing reload} all the time. It offers a consistent UI over different init
16228 systems.")
16229 (license license:gpl3+)))
16230
16231 (define-public emacs-isearch+
16232 (let ((commit "7c251b91a67bf914066e23e269ba52fda5b45f5f")
16233 (revision "2"))
16234 (package
16235 (name "emacs-isearch+")
16236 (version (git-version "0" revision commit))
16237 (source
16238 (origin
16239 (method git-fetch)
16240 (uri (git-reference
16241 (url "https://github.com/emacsmirror/isearch-plus.git")
16242 (commit commit)))
16243 (file-name (git-file-name name version))
16244 (sha256
16245 (base32
16246 "1w2799714jcdycjlxgs8lpmmz6dmzvcvqy8xwxhvmgpb60g4f2yr"))))
16247 (build-system emacs-build-system)
16248 (home-page "https://www.emacswiki.org/emacs/isearch+.el")
16249 (synopsis "Extensions to @code{isearch.el}")
16250 (description "This package extends @code{isearch} with advice, dynamic
16251 filters, highlighting of regexp group levels, and more.")
16252 (license license:gpl2+))))
16253
16254 (define-public emacs-eshell-bookmark
16255 (package
16256 (name "emacs-eshell-bookmark")
16257 (version "2.0.0")
16258 (source
16259 (origin
16260 (method git-fetch)
16261 (uri (git-reference
16262 (url "https://github.com/Fuco1/eshell-bookmark")
16263 (commit version)))
16264 (file-name (git-file-name name version))
16265 (sha256
16266 (base32
16267 "14dmsnixf9vqdhsixw693sml0fn80zcf0b37z049fb40cmppqxdw"))))
16268 (build-system emacs-build-system)
16269 (home-page "https://github.com/Fuco1/eshell-bookmark")
16270 (synopsis "Provide @file{bookmark.el} integration for @code{eshell}")
16271 (description
16272 "This package allows for bookmarking @code{eshell} buffers. Upon
16273 visiting the bookmark, a new @code{eshell} session will be opened in the
16274 appropriate directory if no @code{eshell} session is active.")
16275 (license license:gpl3+)))
16276
16277 (define-public emacs-eshell-z
16278 (package
16279 (name "emacs-eshell-z")
16280 (version "0.4")
16281 (source
16282 (origin
16283 (method git-fetch)
16284 (uri (git-reference
16285 (url "https://github.com/xuchunyang/eshell-z")
16286 (commit (string-append "v" version))))
16287 (file-name (git-file-name name version))
16288 (sha256
16289 (base32
16290 "13dwaq8q23rwmrkpy3gvf7aswrkk6b9ak5221xl7n0bld4wdhq3j"))))
16291 (build-system emacs-build-system)
16292 (home-page "https://github.com/xuchunyang/eshell-z")
16293 (synopsis "Quick navigation to frequently visited directories")
16294 (description
16295 "This package is a port of @code{z}, and keeps track of visited directories
16296 and commands invoked within them in order to enable navigation via input of
16297 matching regexps.")
16298 (license license:gpl3+)))
16299
16300 (define-public emacs-esh-autosuggest
16301 (package
16302 (name "emacs-esh-autosuggest")
16303 (version "2.0.0")
16304 (source
16305 (origin
16306 (method git-fetch)
16307 (uri (git-reference
16308 (url "https://github.com/dieggsy/esh-autosuggest")
16309 (commit version)))
16310 (file-name (git-file-name name version))
16311 (sha256
16312 (base32
16313 "116pdjgpjy9b0psm5kzwkwy7dq8vn0p6dy75dl1zsy2xrjf1iqdw"))))
16314 (build-system emacs-build-system)
16315 (propagated-inputs `(("emacs-company" ,emacs-company)))
16316 (home-page "https://github.com/dieggsy/esh-autosuggest")
16317 (synopsis "Fish-like autosuggestions in Eshell")
16318 (description
16319 "This package assumes you use something other than company for eshell
16320 completion (e.g. @code{eshell-pcomplete}, @code{completion-at-point},
16321 @code{helm-esh-pcomplete}). @code{company-mode} is used solely as a mechanism
16322 for history autosuggestions.
16323
16324 Unless you're using @code{use-package}'s hook keyword, you can enable the
16325 autosuggestions with:
16326 @code{(add-hook 'eshell-mode-hook #'esh-autosuggest-mode)}")
16327 (license license:gpl3+)))
16328
16329 (define-public emacs-desktop-environment
16330 (package
16331 (name "emacs-desktop-environment")
16332 (version "0.3.0")
16333 (source
16334 (origin
16335 (method git-fetch)
16336 (uri (git-reference
16337 (url "https://gitlab.petton.fr/DamienCassou/desktop-environment")
16338 (commit (string-append "v" version))))
16339 (file-name (git-file-name name version))
16340 (sha256
16341 (base32
16342 "195n99xvxyh4cfxjpfa1h1maalqrxf7nyi0bh3lqa1z6z5bdb6x2"))))
16343 (build-system emacs-build-system)
16344 (home-page "https://gitlab.petton.fr/DamienCassou/desktop-environment")
16345 (synopsis "Control your GNU/Linux desktop environment from Emacs")
16346 (description
16347 "This package helps you control your GNU/Linux desktop from Emacs.
16348 With @code{desktop-environment}, you can control the brightness and volume as
16349 well as take screenshots and lock your screen. The package depends on the
16350 availability of shell commands to do the hard work for us. These commands can
16351 be changed by customizing the appropriate variables.")
16352 (license license:gpl3+)))
16353
16354 (define-public emacs-org-caldav
16355 (let ((commit "a563500c9884f38ce08793e2964f8274adde163d"))
16356 (package
16357 (name "emacs-org-caldav")
16358 (version (git-version "0.0.0" "1" commit))
16359 (source
16360 (origin
16361 (method git-fetch)
16362 (uri (git-reference
16363 (url "https://github.com/dengste/org-caldav.git")
16364 (commit commit)))
16365 (file-name (git-file-name name version))
16366 (sha256
16367 (base32
16368 "18qi1iv5dc0gsvkv9ifal3cjpm568nlb907v8a53cnm4439x1l0l"))))
16369 (build-system emacs-build-system)
16370 (arguments
16371 ;; Tests require to have two specific calendars on a test server.
16372 `(#:exclude '("^org-caldav-testsuite\\.el")))
16373 (propagated-inputs
16374 `(("emacs-org" ,emacs-org)))
16375 (home-page "https://github.com/dengste/org-caldav")
16376 (synopsis "Sync Org files with external calendars via the CalDAV protocol")
16377 (description "Synchronize between events in Org files and a CalDAV
16378 calendar.")
16379 (license license:gpl3+))))
16380
16381 (define-public emacs-zotxt
16382 (package
16383 (name "emacs-zotxt")
16384 (version "20180518")
16385 (source
16386 (origin
16387 (method git-fetch)
16388 (uri (git-reference
16389 (url "https://github.com/egh/zotxt-emacs.git")
16390 (commit "23a4a9f74a658222027d53a9a83cd4bcc583ca8b")))
16391 (file-name (git-file-name name version))
16392 (sha256
16393 (base32 "09fq3w9yk9kn6bz7y9kgpiw612dvj3yzsdk734js6zgb0p8lfd2c"))))
16394 (build-system emacs-build-system)
16395 (propagated-inputs
16396 `(("emacs-deferred" ,emacs-deferred)
16397 ("emacs-request" ,emacs-request)))
16398 (home-page "https://github.com/egh/zotxt-emacs")
16399 (synopsis "Integrate Emacs with Zotero")
16400 (description "This package provides two integration features between Emacs
16401 and the Zotero research assistant: Insertion of links to Zotero items into an
16402 Org-mode file, and citations of Zotero items in Pandoc Markdown files.")
16403 (license license:gpl3+)))
16404
16405 (define-public emacs-evil-magit
16406 (let ((commit "253c644807013fe92429acdef418748794b8f254")
16407 (revision "4"))
16408 (package
16409 (name "emacs-evil-magit")
16410 (version (git-version "0.4.2" revision commit))
16411 (source
16412 (origin
16413 (method git-fetch)
16414 (uri (git-reference
16415 (url "https://github.com/emacs-evil/evil-magit")
16416 (commit commit)))
16417 (file-name (git-file-name name version))
16418 (sha256
16419 (base32
16420 "08mh7phxsdb9w4dfs0pmr4l4fdzzr2rm88z2s8karfi5j5ik2ag5"))))
16421 (build-system emacs-build-system)
16422 (propagated-inputs
16423 `(("emacs-evil" ,emacs-evil)
16424 ("magit" ,emacs-magit)))
16425 (arguments
16426 `(#:tests? #t
16427 #:test-command '("emacs" "-Q" "-batch"
16428 "-L" "."
16429 "-l" "evil-magit-tests"
16430 "-f" "ert-run-tests-batch-and-exit")))
16431 (home-page
16432 "https://github.com/emacs-evil/evil-magit")
16433 (synopsis "Evil-based key bindings for Magit")
16434 (description
16435 "This Emacs library configures Magit and Evil to play well with each other.
16436 For some background see @url{https://github.com/magit/evil-magit/issues/1}.
16437 See the README at @url{https://github.com/justbur/evil-magit} for a table
16438 describing the key binding changes.")
16439 (license license:gpl3+))))
16440
16441 (define-public emacs-evil-multiedit
16442 (package
16443 (name "emacs-evil-multiedit")
16444 (version "1.3.9")
16445 (source
16446 (origin
16447 (method git-fetch)
16448 (uri (git-reference
16449 (url "https://github.com/hlissner/evil-multiedit")
16450 (commit (string-append "v" version))))
16451 (file-name (git-file-name name version))
16452 (sha256
16453 (base32
16454 "19h3kqylqzbjv4297wkzzxdmn9yxbg6z4ga4ssrqri90xs7m3rw3"))))
16455 (build-system emacs-build-system)
16456 (propagated-inputs
16457 `(("emacs-evil" ,emacs-evil)
16458 ("emacs-iedit" ,emacs-iedit)))
16459 (native-inputs
16460 `(("emacs-ert-runner" ,emacs-ert-runner)))
16461 (arguments
16462 `(#:phases
16463 (modify-phases %standard-phases
16464 (add-before 'check 'fix-makefile
16465 (lambda _
16466 (substitute* "Makefile"
16467 (("@cask exec ") ""))
16468 #t)))
16469 #:tests? #t
16470 #:test-command '("make" "test")))
16471 (home-page
16472 "https://github.com/hlissner/evil-multiedit")
16473 (synopsis "Multiple cursors for Evil mode")
16474 (description
16475 "This plugin was an answer to the lack of proper multiple cursor support
16476 in Emacs+Evil. It allows you to select and edit matches interactively,
16477 integrating @code{iedit-mode} into Evil mode with an attempt at sensible
16478 defaults.")
16479 (license license:gpl3+)))
16480
16481 (define-public emacs-evil-mc
16482 (let ((commit "1cabb869fe70cef49f7dc06f015c3ade1a969c8c")
16483 (revision "2"))
16484 (package
16485 (name "emacs-evil-mc")
16486 (version (git-version "0.0.3" revision commit))
16487 (source
16488 (origin
16489 (method git-fetch)
16490 (uri (git-reference
16491 (url "https://github.com/gabesoft/evil-mc.git")
16492 (commit commit)))
16493 (file-name (git-file-name name version))
16494 (sha256
16495 (base32 "0p83p90faq1p02lmsfs7zrnky3cyzgy8z4m83a81r9kakjzhkrnb"))))
16496 (build-system emacs-build-system)
16497 (propagated-inputs
16498 `(("emacs-evil" ,emacs-evil)))
16499 (native-inputs
16500 `(("emacs-espuds" ,emacs-espuds)))
16501 (home-page "https://github.com/gabesoft/evil-mc")
16502 (synopsis "Interactive search compatible with @code{multiple-cursors}")
16503 (description "This package can be used with @code{multiple-cursors} to
16504 provide an incremental search that moves all fake cursors in sync.")
16505 (license license:expat))))
16506
16507 (define-public emacs-evil-org
16508 (let ((commit "9d4be14118bf27094a30dbff349b815f098aacbf"))
16509 (package
16510 (name "emacs-evil-org")
16511 (version (git-version "1.0.2" "1" commit))
16512 (source
16513 (origin
16514 (method git-fetch)
16515 (uri (git-reference
16516 (url "https://github.com/Somelauw/evil-org-mode")
16517 (commit commit)))
16518 (file-name (git-file-name name version))
16519 (sha256
16520 (base32
16521 "1fxxfkinb0gq4p5b686r7z4jrkv98zfgh5z889zkjacncv8ibswn"))))
16522 (build-system emacs-build-system)
16523 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
16524 (home-page
16525 "https://github.com/Somelauw/evil-org-mode")
16526 (synopsis "Evil keybindings for Org mode")
16527 (description
16528 "This package adds supplemental Evil mode key-bindings to Emacs
16529 Org-mode. It features:
16530 @itemize
16531 @item normal, visual and insert mode bindings;
16532 @item key bindings organised in key themes;
16533 @item operators like > and < to work on headings;
16534 @item text objects;
16535 @item table support;
16536 @item calendar (date selection) support;
16537 @item agenda support.
16538 @end itemize\n")
16539 (license license:gpl3+))))
16540
16541 (define-public emacs-debpaste
16542 (package
16543 (name "emacs-debpaste")
16544 (version "0.1.5")
16545 (home-page "https://github.com/alezost/debpaste.el")
16546 (source
16547 (origin
16548 (method git-fetch)
16549 (uri (git-reference (url home-page)
16550 (commit (string-append "v" version))))
16551 (file-name (git-file-name name version))
16552 (sha256
16553 (base32
16554 "1wi70r56pd5z0x4dp4m58p9asq03j74kdm4fi9vai83vsl2z9amq"))))
16555 (build-system emacs-build-system)
16556 (propagated-inputs
16557 `(("emacs-xml-rpc" ,emacs-xml-rpc)))
16558 (synopsis "Manipulate pastes from the Debian Pastezone")
16559 (description "Debpaste is an Emacs interface for the Debian Pastezone,
16560 allowing you to receive, post, and delete pastes. It communicates with the
16561 server using XML-RPC.")
16562 (license license:gpl3+)))
16563
16564 (define-public emacs-xml-rpc
16565 (let ((commit "8f624f8b964e9145acb504e4457c9510e87dd93c")
16566 (revision "1"))
16567 (package
16568 (name "emacs-xml-rpc")
16569 (version (git-version "1.6.12" revision commit))
16570 (source
16571 (origin
16572 (method git-fetch)
16573 (uri (git-reference
16574 (url "https://github.com/hexmode/xml-rpc-el")
16575 (commit commit)))
16576 (file-name (git-file-name name version))
16577 (sha256
16578 (base32
16579 "0xa54z52rsfl3n0xgmbycj4zazp8ksgdwcq56swzs6wp72zlalmj"))))
16580 (build-system emacs-build-system)
16581 (home-page "https://github.com/hexmode/xml-rpc-el")
16582 (synopsis "XML-RPC client for Emacs")
16583 (description "This package provides an XML-RPC client for Emacs capable
16584 of both synchronous and asynchronous method calls using the @code{url}
16585 package's async retrieval functionality. @file{xml-rpc.el} represents XML-RPC
16586 datatypes as Lisp values, automatically converting to and from the XML
16587 datastructures as needed, both for method parameters and return values, making
16588 using XML-RPC methods fairly transparent to the Lisp code.")
16589 (license license:gpl3+))))
16590
16591 (define-public emacs-xpm
16592 (package
16593 (name "emacs-xpm")
16594 (version "1.0.4")
16595 (source
16596 (origin
16597 (method url-fetch)
16598 (uri (string-append "https://elpa.gnu.org/packages/xpm-"
16599 version ".tar"))
16600 (sha256
16601 (base32
16602 "075miyashh9cm3b0gk6ngld3rm8bfgnh4qxnhxmmvjgzf6a64grh"))))
16603 (build-system emacs-build-system)
16604 (home-page "https://elpa.gnu.org/packages/xpm.html")
16605 (synopsis "XPM image editing mode for Emacs")
16606 (description "This Emacs package makes editing XPM images easy (and maybe
16607 fun). Editing is done directly on the (textual) image format, for maximal
16608 cohesion with the Emacs Way.")
16609 (license license:gpl3+)))
16610
16611 (define-public emacs-fish-completion
16612 (package
16613 (name "emacs-fish-completion")
16614 (version "1.2")
16615 (source
16616 (origin
16617 (method git-fetch)
16618 (uri (git-reference
16619 (url "https://gitlab.com/Ambrevar/emacs-fish-completion.git")
16620 (commit version)))
16621 (file-name (git-file-name name version))
16622 (sha256
16623 (base32
16624 "17lqip1i1rrsvxzz4bx9rqf1fvwd3hriwg3sj6qxmfc8pylnp37q"))))
16625 (build-system emacs-build-system)
16626 (inputs `(("fish" ,fish)))
16627 (arguments
16628 `(#:phases
16629 (modify-phases %standard-phases
16630 (add-after 'unpack 'configure
16631 (lambda* (#:key inputs outputs #:allow-other-keys)
16632 (let ((fish (assoc-ref inputs "fish")))
16633 ;; Specify the absolute file names of the various
16634 ;; programs so that everything works out-of-the-box.
16635 (make-file-writable "fish-completion.el")
16636 (emacs-substitute-variables
16637 "fish-completion.el"
16638 ("fish-completion-command"
16639 (string-append fish "/bin/fish")))))))))
16640 (home-page
16641 "https://gitlab.com/Ambrevar/emacs-fish-completion")
16642 (synopsis "Fish completion for Emacs pcomplete")
16643 (description
16644 "This package provides completion for the Fish shell to pcomplete (used
16645 by shell and Eshell). You can set it up globally with:
16646
16647 @example
16648 (when (and (executable-find \"fish\")
16649 (require 'fish-completion nil t))
16650 (global-fish-completion-mode))
16651 @end example
16652
16653 Alternatively, you can call the @code{fish-completion-mode} manually or in
16654 shell/Eshell mode hook.
16655
16656 The package @code{emacs-bash-completion} is an optional dependency: if available,
16657 @code{fish-completion-complete} can be configured to fall back on bash to further
16658 try completing. See @code{fish-completion-fallback-on-bash-p}.")
16659 (license license:gpl3+)))
16660
16661 (define-public emacs-gif-screencast
16662 (package
16663 (name "emacs-gif-screencast")
16664 (version "1.1")
16665 (source
16666 (origin
16667 (method git-fetch)
16668 (uri (git-reference
16669 (url "https://gitlab.com/Ambrevar/emacs-gif-screencast.git")
16670 (commit version)))
16671 (file-name (git-file-name name version))
16672 (sha256
16673 (base32
16674 "1g1by8lvf8c9vzm4wwsi5kp285kaj0ahsl54048ympin4pi0njw9"))))
16675 (build-system emacs-build-system)
16676 (inputs
16677 `(("scrot" ,scrot)
16678 ("imagemagick" ,imagemagick)
16679 ("gifsicle" ,gifsicle)))
16680 (arguments
16681 `(#:phases
16682 (modify-phases %standard-phases
16683 (add-after 'unpack 'configure
16684 (lambda* (#:key inputs outputs #:allow-other-keys)
16685 (let ((scrot (assoc-ref inputs "scrot"))
16686 (imagemagick (assoc-ref inputs "imagemagick"))
16687 (gifsicle (assoc-ref inputs "gifsicle")))
16688 (make-file-writable "gif-screencast.el")
16689 ;; Specify the absolute file names of the various
16690 ;; programs so that everything works out-of-the-box.
16691 (emacs-substitute-variables
16692 "gif-screencast.el"
16693 ("gif-screencast-program"
16694 (string-append scrot "/bin/scrot"))
16695 ("gif-screencast-convert-program"
16696 (string-append imagemagick "/bin/convert"))
16697 ("gif-screencast-cropping-program"
16698 (string-append imagemagick "/bin/mogrify"))
16699 ("gif-screencast-optimize-program"
16700 (string-append gifsicle "/bin/gifsicle")))))))))
16701 (home-page
16702 "https://gitlab.com/Ambrevar/emacs-gif-screencast")
16703 (synopsis "One-frame-per-action GIF recording")
16704 (description
16705 "Call @code{gif-screencast} to start a recording.
16706 A screenshot is taken for every user action. Call
16707 @code{gif-screencast-stop} (<f9> by default) to finish recording and create
16708 the GIF result.")
16709 (license license:gpl3+)))
16710
16711 (define-public emacs-google-translate
16712 (package
16713 (name "emacs-google-translate")
16714 (version "0.11.18")
16715 (source
16716 (origin
16717 (method git-fetch)
16718 (uri (git-reference
16719 (url "https://github.com/atykhonov/google-translate/")
16720 (commit (string-append "v" version))))
16721 (file-name (git-file-name name version))
16722 (sha256
16723 (base32
16724 "1kbiqisqyk31l94gxsirhnrdkj51ylgcb16fk2wf7zigmf13jqzp"))))
16725 (build-system emacs-build-system)
16726 (home-page "https://github.com/atykhonov/google-translate")
16727 (synopsis "Emacs interface to Google Translate")
16728 (description
16729 "This package provides an Emacs interface to the Google Translate
16730 on-line service.")
16731 (license license:gpl3+)))
16732
16733 (define-public emacs-helm-company
16734 (package
16735 (name "emacs-helm-company")
16736 (version "0.2.5")
16737 (source
16738 (origin
16739 (method git-fetch)
16740 (uri (git-reference
16741 (url "https://github.com/Sodel-the-Vociferous/helm-company")
16742 (commit (string-append "v" version))))
16743 (file-name (git-file-name name version))
16744 (sha256
16745 (base32
16746 "1ci37w6ahnqrfpb284gjvxmimlf61sdxb9k192yy9q983cksv2hx"))))
16747 (build-system emacs-build-system)
16748 (propagated-inputs
16749 `(("emacs-helm" ,emacs-helm)
16750 ("emacs-company" ,emacs-company)))
16751 (native-inputs
16752 `(("emacs-ert-runner" ,emacs-ert-runner)))
16753 (arguments
16754 `(#:tests? #t
16755 #:test-command '("ert-runner")))
16756 (home-page "https://github.com/Sodel-the-Vociferous/helm-company")
16757 (synopsis "Helm interface for company-mode")
16758 (description
16759 "This is a Helm interface to company-mode, a text completion
16760 framework.")
16761 (license license:gpl3+)))
16762
16763 (define-public emacs-helm-descbinds
16764 (let ((commit "033be73f21778633813264ce1634a6e1ad873d8e"))
16765 (package
16766 (name "emacs-helm-descbinds")
16767 (version (git-version "1.13" "1" commit))
16768 (source
16769 (origin
16770 (method git-fetch)
16771 (uri (git-reference
16772 (url "https://github.com/emacs-helm/helm-descbinds")
16773 (commit commit)))
16774 (file-name (git-file-name name version))
16775 (sha256
16776 (base32
16777 "1n89p56qwa243w1c85i5awnaf7piwjsvfi7nmnsrwm33hix5dknk"))))
16778 (build-system emacs-build-system)
16779 (propagated-inputs `(("emacs-helm" ,emacs-helm)))
16780 (home-page "https://github.com/emacs-helm/helm-descbinds")
16781 (synopsis "Convenient @code{describe-bindings} with Helm")
16782 (description
16783 "This package is a replacement of @code{describe-bindings} for Helm.
16784 @code{describe-bindings} is replaced with @code{helm-descbinds}. As usual,
16785 type @code{C-h b}, or any incomplete key sequence plus @code{C-h}, to run
16786 @code{helm-descbinds}. The bindings are presented in a similar way as
16787 @code{describe-bindings} does, but you can use completion to find the command
16788 you searched for and execute it, or view its documentation.")
16789 (license license:gpl3+))))
16790
16791 (define-public emacs-helm-emms
16792 (let ((commit "37e5aa029abfa5a5c48636314de8157142944fa2"))
16793 (package
16794 (name "emacs-helm-emms")
16795 (version (git-version "1.3" "3" commit))
16796 (source
16797 (origin
16798 (method git-fetch)
16799 (uri (git-reference
16800 (url "https://github.com/emacs-helm/helm-emms")
16801 (commit commit)))
16802 (file-name (git-file-name name version))
16803 (sha256
16804 (base32
16805 "0r1ai6xhzayyik30w2sx9n62bxxwm12vfmjspv0daqif9az8y3vg"))))
16806 (build-system emacs-build-system)
16807 (propagated-inputs
16808 `(("emacs-helm" ,emacs-helm)
16809 ("emacs-emms" ,emacs-emms)))
16810 (home-page
16811 "https://github.com/emacs-helm/helm-emms")
16812 (synopsis "Emms for Helm")
16813 (description "Helm interface for Emms to browse all tracks and all folders
16814 from @code{emms-source-file-default-directory}.")
16815 (license license:gpl3+))))
16816
16817 (define-public emacs-helm-exwm
16818 (package
16819 (name "emacs-helm-exwm")
16820 (version "0.0.2")
16821 (source
16822 (origin
16823 (method git-fetch)
16824 (uri (git-reference
16825 (url "https://github.com/emacs-helm/helm-exwm.git")
16826 (commit version)))
16827 (file-name (git-file-name name version))
16828 (sha256
16829 (base32 "0g4k01ps14bp2az8v6dcag9llg045k2b4kdis81xx4lvw76znr9v"))))
16830 (build-system emacs-build-system)
16831 (propagated-inputs
16832 `(("emacs-helm" ,emacs-helm)
16833 ("emacs-exwm" ,emacs-exwm)))
16834 (home-page
16835 "https://github.com/emacs-helm/helm-exwm")
16836 (synopsis "Helm for EXWM buffers")
16837 (description
16838 "@code{helm-exwm} runs a Helm session over the list of EXWM buffers.
16839 @code{helm-exwm-switch} is a convenience X application launcher using Helm to
16840 switch between the various windows of one or several specific applications.
16841 See @code{helm-exwm-switch-browser} for an example.")
16842 (license license:gpl3+)))
16843
16844 (define-public emacs-helm-flycheck
16845 (let ((commit "3cf7d3bb194acacc6395f88360588013d92675d6"))
16846 (package
16847 (name "emacs-helm-flycheck")
16848 (version (git-version "0.4" "1" commit))
16849 (source
16850 (origin
16851 (method git-fetch)
16852 (uri (git-reference
16853 (url "https://github.com/yasuyk/helm-flycheck")
16854 (commit commit)))
16855 (file-name (git-file-name name version))
16856 (sha256
16857 (base32
16858 "1a2yfxhz04klwhcandqvfzysxp6b7bxyxx1xk1x3kds5hif5fkl4"))))
16859 (build-system emacs-build-system)
16860 (propagated-inputs
16861 `(("emacs-dash" ,emacs-dash)
16862 ("emacs-flycheck" ,emacs-flycheck)
16863 ("emacs-helm" ,emacs-helm)))
16864 (home-page "https://github.com/yasuyk/helm-flycheck")
16865 (synopsis "Show Flycheck errors with Helm")
16866 (description
16867 "This integrates Flycheck with Helm.")
16868 (license license:gpl3+))))
16869
16870 (define-public emacs-helm-ls-git
16871 (let ((commit "76654c776a7f6e2e5290645e748aac2a746f7daa"))
16872 (package
16873 (name "emacs-helm-ls-git")
16874 (version (git-version "1.9.1" "1" commit))
16875 (source
16876 (origin
16877 (method git-fetch)
16878 (uri (git-reference
16879 (url "https://github.com/emacs-helm/helm-ls-git")
16880 (commit commit)))
16881 (file-name (git-file-name name version))
16882 (sha256
16883 (base32
16884 "0vsq1n3xl3ghy5zik2scm7jrs501n4kybdqd6yw6j0cv4jxdqbr0"))))
16885 (build-system emacs-build-system)
16886 (propagated-inputs `(("emacs-helm" ,emacs-helm)))
16887 (home-page "https://github.com/emacs-helm/helm-ls-git")
16888 (synopsis "Helm interface for listing the files in a Git repository")
16889 (description
16890 "This package provides a Helm interface for Git files.
16891 @itemize
16892 @item Display the open buffers in project.
16893 @item Display a status source showing state of project (modified files etc.).
16894 @item Display a list of all files in project under git control.
16895 @item Quickly look at diffs of modified files.
16896 @item Allow switching to @code{git status} with your preferred frontend
16897 (vc-dir, Magit,etc.).
16898 @item Full integration of git-grep, also allow usage of @code{helm-grep} (you
16899 can use ack-grep instead of grep).
16900 @item Integrate usage of gid from id-utils.
16901 @item Full integration with @code{helm-find-files}, allow you to browse
16902 projects unrelated to current-buffer.
16903 @item In addition, all actions of type files and buffers are provided.
16904 @end itemize\n")
16905 (license license:gpl3+))))
16906
16907 (define-public emacs-helm-mu
16908 (let ((commit "77e6fea24e01481418738421dbcfe28ef1bd63cf"))
16909 (package
16910 (name "emacs-helm-mu")
16911 (version (git-version "20180513" "1" commit))
16912 (source
16913 (origin
16914 (method git-fetch)
16915 (uri (git-reference
16916 (url "https://github.com/emacs-helm/helm-mu.git")
16917 (commit commit)))
16918 (file-name (git-file-name name version))
16919 (sha256
16920 (base32 "1lh0ahxdc5b2z18m9p30gwg8sbg33sjwkjr38p7h5xsm5fm7i0fz"))))
16921 (build-system emacs-build-system)
16922 (propagated-inputs
16923 `(("emacs-helm" ,emacs-helm)
16924 ("mu" ,mu)))
16925 (home-page
16926 "https://github.com/emacs-helm/helm-mu")
16927 (synopsis
16928 "Helm sources for searching emails and contacts")
16929 (description
16930 "Helm sources for searching emails and contacts using @code{mu} and
16931 @code{mu4e}. Mu is an indexer for maildirs and mu4e is a mutt-like MUA for
16932 Emacs build on top of mu. Mu is highly efficient making it possible to get
16933 instant results even for huge maildirs. It also provides search operators,
16934 e.g: @code{from:Peter to:Anne flag:attach search term}.")
16935 (license license:gpl3+))))
16936
16937 (define-public emacs-helm-pass
16938 (package
16939 (name "emacs-helm-pass")
16940 (version "0.3")
16941 (source
16942 (origin
16943 (method git-fetch)
16944 (uri (git-reference
16945 (url "https://github.com/emacs-helm/helm-pass")
16946 (commit version)))
16947 (file-name (git-file-name name version))
16948 (sha256
16949 (base32
16950 "0vglaknmir3yv4iwibwn8r40ran8d04gcyp99hx73ldmf3zqpnxv"))))
16951 (build-system emacs-build-system)
16952 (propagated-inputs
16953 `(("emacs-helm" ,emacs-helm)
16954 ("emacs-password-store" ,emacs-password-store)))
16955 (home-page "https://github.com/emacs-helm/helm-pass")
16956 (synopsis "Helm interface to pass, the standard Unix password manager")
16957 (description
16958 "Users of @code{helm-pass} may also be interested in functionality
16959 provided by other Emacs packages dealing with pass:
16960 @itemize
16961 @item @code{emacs-password-store}, which @code{helm-pass} relies on.
16962 @item @code{emacs-pass}, a major mode for @code{pass}.
16963 @item @code{auth-source-pass.el}: integration of Emacs' auth-source with
16964 @code{pass}, included in Emacs 26+).
16965 @end itemize\n")
16966 (license license:gpl3+)))
16967
16968 (define-public emacs-image+
16969 (let ((commit "6834d0c09bb4df9ecc0d7a559bd7827fed48fffc"))
16970 (package
16971 (name "emacs-image+")
16972 (version (git-version "0.6.2" "1" commit))
16973 (source
16974 (origin
16975 (method git-fetch)
16976 (uri (git-reference
16977 (url "https://github.com/mhayashi1120/Emacs-imagex")
16978 (commit commit)))
16979 (file-name (git-file-name name version))
16980 (sha256
16981 (base32
16982 "0v66wk9nh0raih4jhrzmmyi5lbysjnmbv791vm2230ffi2hmwxnd"))))
16983 (build-system emacs-build-system)
16984 (inputs `(("imagemagick" ,imagemagick)))
16985 (arguments
16986 `(#:phases
16987 (modify-phases %standard-phases
16988 (add-after 'unpack 'configure
16989 (lambda* (#:key inputs outputs #:allow-other-keys)
16990 (let ((imagemagick (assoc-ref inputs "imagemagick")))
16991 ;; Specify the absolute file names of the various
16992 ;; programs so that everything works out-of-the-box.
16993 (chmod "image+.el" #o666)
16994 (emacs-substitute-variables
16995 "image+.el"
16996 ("imagex-convert-command"
16997 (string-append imagemagick "/bin/convert"))
16998 ("imagex-identify-command"
16999 (string-append imagemagick "/bin/identify")))))))))
17000 (home-page "https://github.com/mhayashi1120/Emacs-imagex")
17001 (synopsis "Image manipulation extensions for Emacs")
17002 (description
17003 "Image+ provides keybindings allowing you to zoom in or zoom out of an
17004 image, rotate it, save modified images, and more.")
17005 (license license:gpl3+))))
17006
17007 (define-public emacs-package-lint
17008 (let ((commit "69bb89d00ba212b734c676ad056aa793c450b288"))
17009 (package
17010 (name "emacs-package-lint")
17011 (version (git-version "0.5" "1" commit))
17012 (source
17013 (origin
17014 (method git-fetch)
17015 (uri (git-reference
17016 (url "https://github.com/purcell/package-lint")
17017 (commit commit)))
17018 (file-name (git-file-name name version))
17019 (sha256
17020 (base32
17021 "1hfricsgmy3x9snnd2p4xq6vnnv94qdsxxnxp07b3hqc9bhw31rq"))))
17022 (build-system emacs-build-system)
17023 (home-page "https://github.com/purcell/package-lint")
17024 (synopsis "Linting library for elisp package authors")
17025 (description
17026 "This provides a list of issues with the Emacs package metadata of a file,
17027 e.g. the package dependencies it requires. See function
17028 @code{package-lint-buffer}. Checks will currently be enabled only if a
17029 \"Package-Requires:\" or \"Package-Version:\" header is present in the
17030 file.")
17031 (license license:gpl3+))))
17032
17033 (define-public emacs-picpocket
17034 (let ((version "40")
17035 (commit "6fd88b8711c4370662c0f9c462170187d092a046"))
17036 (package
17037 (name "emacs-picpocket")
17038 (version version)
17039 (source
17040 (origin
17041 (method git-fetch)
17042 (uri (git-reference
17043 (url "https://github.com/johanclaesson/picpocket")
17044 (commit commit)))
17045 (file-name (git-file-name name version))
17046 (sha256
17047 (base32 "1mdzzxf7xm7zwrpnqqxa27d1cr31pd72d7ilbwljv13qp177a3yw"))))
17048 (build-system emacs-build-system)
17049 (arguments ; needed for running tests
17050 `(#:tests? #t
17051 #:emacs ,emacs
17052 #:test-command '("emacs" "--batch"
17053 "-l" "picpocket-test.el"
17054 "-f" "ert-run-tests-batch-and-exit")))
17055 (home-page "https://github.com/johanclaesson/picpocket")
17056 (synopsis "Image viewer for Emacs")
17057 (description
17058 "Picpocket is an image viewer for GNU Emacs. It has commands for:
17059
17060 @itemize
17061 @item File operations on the picture files (delete, move, copy, hardlink).
17062 @item Scale and rotate the picture.
17063 @item Associate pictures with tags which are saved to disk.
17064 @item Filter pictures according to tags.
17065 @item Customizing keystrokes for quick tagging and file operations.
17066 @item Undo and browse history of undoable commands.
17067 @end itemize")
17068 (license license:gpl3+))))
17069
17070 (define-public emacs-mu4e-conversation
17071 (let ((commit "98110bb9c300fc9866dee8e0023355f9f79c9b96")
17072 (revision "5"))
17073 (package
17074 (name "emacs-mu4e-conversation")
17075 (version (git-version "0.0.1" revision commit))
17076 (source
17077 (origin
17078 (method git-fetch)
17079 (uri (git-reference
17080 (url "https://gitlab.com/Ambrevar/mu4e-conversation.git")
17081 (commit commit)))
17082 (file-name (git-file-name name version))
17083 (sha256
17084 (base32
17085 "080s96jkcw2p288sp1vgds91rgl693iz6hi2dv56p2ih0nnivwlg"))))
17086 (build-system emacs-build-system)
17087 (propagated-inputs
17088 `(("mu" ,mu)))
17089 (home-page
17090 "https://gitlab.com/Ambrevar/mu4e-conversation")
17091 (synopsis
17092 "Show a complete thread in a single buffer")
17093 (description
17094 "This package offers an alternate view to mu4e's e-mail display. It
17095 shows all e-mails of a thread in a single view, where each correspondent has
17096 their own face. Threads can be displayed linearly (in which case e-mails are
17097 displayed in chronological order) or as an Org document where the node tree
17098 maps the thread tree.")
17099 (license license:gpl3+))))
17100
17101 (define-public emacs-pinentry
17102 (let ((commit "dcc9ba03252ee5d39e03bba31b420e0708c3ba0c")
17103 (revision "1"))
17104 (package
17105 (name "emacs-pinentry")
17106 (version (git-version "0.1" revision commit))
17107 (source
17108 (origin
17109 (method url-fetch)
17110 (uri (string-append
17111 "http://git.savannah.gnu.org/cgit/emacs/elpa.git/plain"
17112 "/packages/pinentry/pinentry.el?id=" commit))
17113 (file-name (string-append "pinentry.el"))
17114 (sha256
17115 (base32
17116 "1lf30q6r8nz5cjzclbb9bbymsk2y75nskvb55hnjdv93gr3j0sik"))))
17117 (build-system emacs-build-system)
17118 (propagated-inputs
17119 `(("gnupg" ,gnupg)))
17120 (home-page "https://elpa.gnu.org/packages/pinentry.html")
17121 (synopsis "GnuPG Pinentry server implementation")
17122 (description
17123 "This package allows GnuPG passphrase to be prompted through the
17124 minibuffer instead of graphical dialog.
17125
17126 To use, add @code{allow-emacs-pinentry} to @code{~/.gnupg/gpg-agent.conf},
17127 reload the configuration with @code{gpgconf --reload gpg-agent}, and start the
17128 server with @code{M-x pinentry-start}.")
17129 (license license:gpl3+))))
17130
17131 (define-public emacs-so-long
17132 (let ((commit "cfae473b1bf65f78ddb015159e667ec0103d881c")
17133 (revision "2"))
17134 (package
17135 (name "emacs-so-long")
17136 (version (git-version "1.0" revision commit))
17137 (source
17138 (origin
17139 (method git-fetch)
17140 (uri (git-reference
17141 (url "https://git.savannah.gnu.org/git/so-long.git")
17142 (commit commit)))
17143 (file-name (git-file-name name version))
17144 (sha256
17145 (base32
17146 "0g943n5cl9lz5s7hszg6yvp10xd1xvd8mfgxyg0yckmp8fqkswin"))))
17147 (build-system emacs-build-system)
17148 (home-page "https://www.emacswiki.org/emacs/SoLong")
17149 (synopsis "Improve performance in files with long lines")
17150 (description "This package improves the performance of Emacs when
17151 viewing files with long lines.")
17152 (license license:gpl3+))))
17153
17154 (define-public emacs-github-review
17155 (let ((commit "a13a3b4f1b6114a32af843971a145ab880f51232")
17156 (revision "2"))
17157 (package
17158 (name "emacs-github-review")
17159 (version (git-version "0.1" revision commit))
17160 (source
17161 (origin
17162 (method git-fetch)
17163 (uri (git-reference
17164 (url "https://github.com/charignon/github-review")
17165 (commit commit)))
17166 (file-name (git-file-name name version))
17167 (sha256
17168 (base32
17169 "0injfpxzgfhmqalba845j5l5cdcxxqz43knhxwinf36g52nfabl0"))))
17170 (build-system emacs-build-system)
17171 (inputs
17172 `(("emacs-dash" ,emacs-dash)
17173 ("emacs-s" ,emacs-s)
17174 ("emacs-ghub" ,emacs-ghub)))
17175 (native-inputs
17176 `(("emacs-buttercup" ,emacs-buttercup)
17177 ("emacs-undercover" ,emacs-undercover)))
17178 (arguments
17179 `(#:tests? #t
17180 #:test-command '("buttercup" "-L" "test/github-review-test.el")))
17181 (home-page "https://github.com/charignon/github-review")
17182 (synopsis "Review GitHub pull requests within Emacs")
17183 (description "This package provides commands to pull in, comment on, and
17184 accept and reject GitHub pull requests.")
17185 (license license:gpl3+))))
17186
17187 (define-public emacs-deadgrep
17188 (let ((commit "7e50e71c6ff4e17dded43e0836dae4e5ec020fcf")
17189 (revision "1"))
17190 (package
17191 (name "emacs-deadgrep")
17192 (version (git-version "0.10" revision commit))
17193 (source
17194 (origin
17195 (method git-fetch)
17196 (uri (git-reference
17197 (url "https://github.com/Wilfred/deadgrep")
17198 (commit commit)))
17199 (file-name (git-file-name name version))
17200 (sha256
17201 (base32
17202 "1vjhrq02l8gvdn2haygzq7277hnhjchs9xrfpcnh76gqip200gx4"))))
17203 (build-system emacs-build-system)
17204 (propagated-inputs
17205 `(("emacs-dash" ,emacs-dash)
17206 ("emacs-s" ,emacs-s)
17207 ("emacs-spinner" ,emacs-spinner)))
17208 (home-page "https://github.com/Wilfred/deadgrep")
17209 (synopsis "Frontend for @code{ripgrep}")
17210 (description "This package provides an Emacs interface for performing
17211 searches with @code{ripgrep}.")
17212 (license license:gpl3+))))
17213
17214 (define-public emacs-focus
17215 (let ((commit "ab42b8779929beeb7878c7fb3d3ccd80d9327c7f")
17216 (version "0.1.1")
17217 (revision "1"))
17218 (package
17219 (name "emacs-focus")
17220 (version (git-version version revision commit))
17221 (source
17222 (origin
17223 (method git-fetch)
17224 (uri (git-reference
17225 (url "https://github.com/larstvei/Focus")
17226 (commit commit)))
17227 (file-name (git-file-name name version))
17228 (sha256
17229 (base32
17230 "079v1syid7h2vr2ya6hs6hl0pgj60qdsw60mqw4cj2zllmkrkwj4"))))
17231 (build-system emacs-build-system)
17232 (home-page "https://github.com/larstvei/Focus")
17233 (synopsis "Minor mode for focusing in on relevant text")
17234 (description "This package provides a minor mode that dims the color of
17235 text in neighboring sections.")
17236 (license license:gpl3+))))
17237
17238 (define-public emacs-pandoc-mode
17239 (package
17240 (name "emacs-pandoc-mode")
17241 (version "2.27.2")
17242 (source
17243 (origin
17244 (method git-fetch)
17245 (uri (git-reference
17246 (url "https://github.com/joostkremers/pandoc-mode")
17247 (commit version)))
17248 (file-name (git-file-name name version))
17249 (sha256
17250 (base32
17251 "04bqc7mhgkfks3nsvimd3rrriv4nqbksmv5ahlbbd03aqa2b0vrv"))))
17252 (build-system emacs-build-system)
17253 (propagated-inputs
17254 `(("emacs-dash" ,emacs-dash)
17255 ("emacs-hydra" ,emacs-hydra)))
17256 (home-page "https://github.com/joostkremers/pandoc-mode")
17257 (synopsis "Minor mode for interacting with Pandoc")
17258 (description "This package provides a Hydra menu for interacting with the
17259 Pandoc, the document-conversion tool.")
17260 (license license:bsd-3)))
17261
17262 (define-public emacs-hlint-refactor-mode
17263 (let ((commit "c4307f86aad6d02e32e9b30cb6edc115584c791c")
17264 (revision "1"))
17265 (package
17266 (name "emacs-hlint-refactor-mode")
17267 (version (git-version "0.0.1" revision commit))
17268 (source
17269 (origin
17270 (method git-fetch)
17271 (uri (git-reference
17272 (url "https://github.com/mpickering/hlint-refactor-mode")
17273 (commit commit)))
17274 (file-name (git-file-name name version))
17275 (sha256
17276 (base32
17277 "1c71w9s34n0i7mm4njchxn6s3ri1y6mh3akgbg4nq41d42h8iap3"))))
17278 (build-system emacs-build-system)
17279 (propagated-inputs
17280 `(("apply-refact" ,apply-refact)
17281 ("hlint" ,hlint)))
17282 (home-page "https://github.com/mpickering/hlint-refactor-mode")
17283 (synopsis "Emacs bindings for @code{hlint}'s @code{--refactor} option")
17284 (description "This package applies refactoring suggestions from
17285 @code{hlint}.")
17286 (license license:expat))))
17287
17288 (define-public emacs-ccls
17289 (let ((commit "aab3e31fd716daf59f9794e62d473357263e8cc0")
17290 (revision "4"))
17291 (package
17292 (name "emacs-ccls")
17293 (version (git-version "0.1" revision commit))
17294 (source
17295 (origin
17296 (method git-fetch)
17297 (uri (git-reference
17298 (url "https://github.com/MaskRay/emacs-ccls")
17299 (commit commit)))
17300 (file-name (git-file-name name version))
17301 (sha256
17302 (base32
17303 "1ykgw21ypyhwlyflppjcgqrj1xw4d9rld4z65qvwhk3f12cv113j"))))
17304 (build-system emacs-build-system)
17305 (propagated-inputs
17306 `(("ccls" ,ccls)
17307 ("emacs-dash" ,emacs-dash)
17308 ("emacs-projectile" ,emacs-projectile)
17309 ("emacs-lsp-mode" ,emacs-lsp-mode)))
17310 (home-page "https://github.com/MaskRay/emacs-ccls")
17311 (synopsis "Emacs support for the @code{ccls} language server")
17312 (description "This package extends @code{lsp-mode} to work with @code{C}
17313 and @code{C++} files through the @code{ccls} language server.")
17314 (license license:expat))))
17315
17316 (define-public emacs-org-brain
17317 (package
17318 (name "emacs-org-brain")
17319 (version "0.5")
17320 (source
17321 (origin
17322 (method git-fetch)
17323 (uri (git-reference
17324 (url "https://github.com/Kungsgeten/org-brain.git")
17325 (commit "3faf9303af3f2356e3444e69c22dc6c5774047d1")))
17326 (file-name (git-file-name name version))
17327 (sha256
17328 (base32
17329 "1ad681zk6kckw2zbk0r4iaj4bw8cfqrbd1s3gdwgdjlzq81q9mmj"))))
17330 (build-system emacs-build-system)
17331 (home-page "https://github.com/Kungsgeten/org-brain")
17332 (synopsis "Org-mode wiki and concept-mapping for Emacs")
17333 (description "@code{emacs-org-brain} implements a variant of concept
17334 mapping in Emacs, using @code{org-mode}. An org-brain is a network of
17335 org-mode entries, where each entry is a file or a headline, and you can get a
17336 visual overview of the relationships between the entries: parents, children,
17337 siblings and friends. This visual overview can also be used to browse your
17338 entries. You can think of entries as nodes in a mind map, or pages in a
17339 wiki.")
17340 (license license:expat)))
17341
17342 (define-public emacs-recent-addresses
17343 (let ((commit "afbbfdc43b81e620acf827ca20d297e0c517b6eb")
17344 (revision "1"))
17345 (package
17346 (name "emacs-recent-addresses")
17347 (home-page "https://nschum.de/src/emacs/recent-addresses/")
17348 (version (git-version "0.1" revision commit))
17349 (source (origin
17350 (method git-fetch)
17351 (uri (git-reference
17352 ;; Note: Use a branch that works with Helm. Submitted
17353 ;; at <https://github.com/nschum/recent-addresses.el/pull/1>.
17354 (url "https://github.com/civodul/recent-addresses.el")
17355 (commit commit)))
17356 (sha256
17357 (base32
17358 "0ajrq0galjmdyjdjyxazykjyax3gh6hvfk4s7l657pi11g0q5zax"))
17359 (file-name (git-file-name name version))))
17360 (build-system emacs-build-system)
17361 (synopsis "Record recently-used email addressed and auto-complete them")
17362 (description
17363 "@code{recent-addresses} is an Emacs package that allows you to quickly
17364 look up previously used email addresses. It can be used alongside the Gnus
17365 email client.")
17366 (license license:gpl2+))))
17367
17368 (define-public emacs-fold-dwim
17369 (let ((commit "c46f4bb2ce91b4e307136320e72c28dd50b6cd8b")
17370 (revision "0"))
17371 (package
17372 (name "emacs-fold-dwim")
17373 (version (git-version "1.2" revision commit))
17374 (home-page "https://github.com/emacsattic/fold-dwim")
17375 (source (origin
17376 (method git-fetch)
17377 (uri (git-reference (url home-page) (commit commit)))
17378 (sha256
17379 (base32
17380 "1yz1wis31asw6xa5maliyd1ck2q02xnnh7dc6swgj9cb4wi7k6i1"))
17381 (file-name (git-file-name name version))))
17382 (build-system emacs-build-system)
17383 (synopsis "Unified user interface for Emacs folding modes")
17384 (description
17385 "DWIM stands for \"do what I mean\", as in the idea that one keystroke
17386 can do different things depending on the context. In this package, it means
17387 that, if the cursor is in a currently hidden folded construction, we want to
17388 show it; if it's not, we want to hide whatever fold the cursor is in.")
17389 (license license:gpl2+))))
17390
17391 (define-public emacs-markup-faces
17392 (package
17393 (name "emacs-markup-faces")
17394 (version "1.0.0")
17395 (source
17396 (origin
17397 (method url-fetch)
17398 (uri (string-append "https://stable.melpa.org/packages/markup-faces-"
17399 version ".el"))
17400 (sha256
17401 (base32
17402 "124dxbaa25fwxnpwsygpz7pw6da6dnnw7y2lic3jf8rgz7lw4v32"))))
17403 (build-system emacs-build-system)
17404 (home-page "https://github.com/sensorflo/markup-faces")
17405 (synopsis "Collection of Emacs faces for markup language modes")
17406 (description "emacs-markup-faces is like font-lock-faces, but tailored for
17407 markup languages instead programming languages. The sub group markup-faces-text
17408 is also intended for 'text viewing modes' such as info or (wo)man. This gives a
17409 common look and feel, or let's say theme, across different markup language modes
17410 and 'text viewing modes' respectively.")
17411 (license license:gpl3+)))
17412
17413 (define-public emacs-adoc-mode
17414 (package
17415 (name "emacs-adoc-mode")
17416 (version "0.6.6")
17417 (source
17418 (origin
17419 (method git-fetch)
17420 (uri (git-reference
17421 (url "https://github.com/sensorflo/adoc-mode.git")
17422 (commit (string-append "V" version))))
17423 (file-name (git-file-name name version))
17424 (sha256
17425 (base32
17426 "0kp2aafjhqxz3mjr9hkkss85r4n51chws5a2qj1xzb63dh36liwm"))))
17427 (build-system emacs-build-system)
17428 (arguments
17429 `(#:phases
17430 (modify-phases %standard-phases
17431 ;; See: https://github.com/sensorflo/adoc-mode/issues/39.
17432 (add-after 'unpack 'disable-failing-tests
17433 (lambda _
17434 (let-syntax
17435 ((disable-tests
17436 (syntax-rules ()
17437 ((_ file ())
17438 (syntax-error "test names list must not be empty"))
17439 ((_ file (test-name ...))
17440 (substitute* file
17441 (((string-append "^\\(ert-deftest " test-name ".*") all)
17442 (string-append all "(skip-unless nil)\n")) ...)))))
17443 (disable-tests "adoc-mode-test.el"
17444 ("adoctest-test-tempo-delimited-blocks"
17445 "adoctest-test-tempo-macros"
17446 "adoctest-test-tempo-paragraphs"
17447 "adoctest-test-tempo-passthroug-macros"
17448 "adoctest-test-tempo-quotes")))
17449 #t)))
17450 #:tests? #t
17451 #:test-command '("emacs" "-Q" "-batch"
17452 "-l" "adoc-mode-test.el"
17453 "-f" "ert-run-tests-batch-and-exit")))
17454 (propagated-inputs
17455 `(("emacs-markup-faces" ,emacs-markup-faces)))
17456 (home-page "https://github.com/sensorflo/adoc-mode/wiki")
17457 (synopsis "AsciiDoc mode for Emacs")
17458 (description "This package provides an Emacs major mode for editing AsciiDoc
17459 files. It focuses on highlighting the document to improve readability.")
17460 (license license:gpl2+)))
17461
17462 (define-public emacs-racer
17463 (package
17464 (name "emacs-racer")
17465 (version "1.2")
17466 (source
17467 (origin
17468 (method git-fetch)
17469 (uri
17470 (git-reference
17471 (url "https://github.com/racer-rust/emacs-racer")
17472 (commit version)))
17473 (file-name (git-file-name name version))
17474 (sha256
17475 (base32 "0xj5iki10cg8j8vvqjlw6lfx97k3agwirhchcjnzbnkry48x9qi6"))))
17476 (arguments
17477 `(#:tests? #t
17478 #:test-command '("make" "test")
17479 #:phases
17480 (modify-phases %standard-phases
17481 (add-before 'check 'fix-makefile
17482 (lambda _
17483 (substitute* "Makefile"
17484 (("\\$\\{CASK\\} exec ") ""))
17485 #t)))))
17486 (native-inputs
17487 `(("emacs-ert-runner" ,emacs-ert-runner)
17488 ("emacs-undercover" ,emacs-undercover)))
17489 (propagated-inputs
17490 `(("emacs-dash" ,emacs-dash)
17491 ("emacs-f" ,emacs-f)
17492 ("emacs-pos-tip" ,emacs-pos-tip)
17493 ("emacs-rust-mode" ,emacs-rust-mode)
17494 ("emacs-s" ,emacs-s)))
17495 (build-system emacs-build-system)
17496 (home-page "https://github.com/racer-rust/emacs-racer")
17497 (synopsis "Racer support for Emacs")
17498 (description
17499 "This is the official Emacs package for Racer. It supports code
17500 completion of variables, functions and modules. It can also jump to
17501 definition of functions and types, and show a help buffer based on the
17502 docstring of the thing at point.")
17503 (license license:expat)))
17504
17505 (define-public emacs-rust-mode
17506 (package
17507 (name "emacs-rust-mode")
17508 (version "0.4.0")
17509 (source (origin
17510 (method git-fetch)
17511 (uri (git-reference
17512 (url "https://github.com/rust-lang/rust-mode")
17513 (commit version)))
17514 (file-name (git-file-name name version))
17515 (sha256
17516 (base32
17517 "0bcrklyicxh032rrp585rl5mxd26nb61dp6r5bl935rlcmxzsczh"))))
17518 (build-system emacs-build-system)
17519 (arguments
17520 `(#:phases
17521 (modify-phases %standard-phases
17522 (replace 'check
17523 (lambda _
17524 (invoke "sh" "run_rust_emacs_tests.sh"))))))
17525 (home-page "https://github.com/rust-lang/rust-mode")
17526 (synopsis "Major Emacs mode for editing Rust source code")
17527 (description "This package provides a major Emacs mode for editing Rust
17528 source code.")
17529 (license (list license:expat
17530 license:asl2.0))))
17531
17532 (define-public emacs-ztree
17533 (let ((commit "c54425a094353ec40a8179f9eab3596f76c6cf94"))
17534 (package
17535 (name "emacs-ztree")
17536 (version (git-version "1.0.5" "1" commit))
17537 (source
17538 (origin
17539 (method git-fetch)
17540 (uri (git-reference
17541 (url "https://github.com/fourier/ztree")
17542 (commit commit)))
17543 (file-name (git-file-name name version))
17544 (sha256
17545 (base32
17546 "0j8fpxds8m1zi04nrs8vv21091abvh4n8ab76f1sgdxnp4l5cfb0"))))
17547 (build-system emacs-build-system)
17548 (home-page "https://github.com/fourier/ztree")
17549 (synopsis "Directory tree comparison mode for Emacs")
17550 (description "Ztree is a project dedicated to implementation of several
17551 text-tree applications inside GNU Emacs. It consists of 2 subprojects:
17552 @command{ztree-diff} and @command{ztree-dir} (the basis of
17553 @command{ztree-diff}).")
17554 (license license:gpl3))))
17555
17556 (define-public emacs-helm-org-contacts
17557 (let ((commit "e7f11615802df55bb8b679450b5a5ef82a9081f9"))
17558 (package
17559 (name "emacs-helm-org-contacts")
17560 (version (git-version "20200310" "1" commit))
17561 (source
17562 (origin
17563 (method git-fetch)
17564 (uri (git-reference
17565 (url "https://github.com/tmalsburg/helm-org-contacts")
17566 (commit commit)))
17567 (file-name (git-file-name name version))
17568 (sha256
17569 (base32
17570 "06a1gbrq3qcfsn0kyv4i24x1xxfrrwqa3kgfj4xa4va88q2vqyb5"))))
17571 (build-system emacs-build-system)
17572 (propagated-inputs
17573 `(("emacs-dash" ,emacs-dash)
17574 ("emacs-helm" ,emacs-helm)
17575 ("emacs-s" ,emacs-s)))
17576 (home-page "https://github.com/tmalsburg/helm-org-contacts")
17577 (synopsis "Helm source for org-contacts")
17578 (description "This Helm source can be used to search contacts stored in
17579 org-contacts format. There are actions for inserting postal addresses, email
17580 addresses, and phone numbers in the buffer where @command{helm-org-contacts}
17581 was called.")
17582 (license license:gpl3))))
17583
17584 (define-public emacs-dired-du
17585 (package
17586 (name "emacs-dired-du")
17587 (version "0.5.2")
17588 (source
17589 (origin
17590 (method url-fetch)
17591 (uri (string-append
17592 "https://elpa.gnu.org/packages/dired-du-" version ".tar"))
17593 (sha256
17594 (base32 "0vhph7vcicsiq28b10h3b4dvnhckcy4gccpdgsad5j7pwa5k26m1"))))
17595 (build-system emacs-build-system)
17596 (home-page "https://elpa.gnu.org/packages/dired-du.html")
17597 (synopsis "Dired with recursive directory sizes")
17598 (description
17599 "Display the recursive size of directories in Dired.
17600 This file defines a minor mode @command{dired-du-mode} to show the recursive
17601 size of directories in Dired buffers. If @command{du} program is available,
17602 then the directory sizes are obtained with it. Otherwise, the directory sizes
17603 are obtained with Lisp. The former is faster and provide a more precise
17604 value. For directories where the user doesn't have read permission, the
17605 recursive size is not obtained. Once this mode is enabled, every new Dired
17606 buffer displays recursive dir sizes.")
17607 (license license:gpl3+)))
17608
17609 (define-public emacs-dired-rsync
17610 (package
17611 (name "emacs-dired-rsync")
17612 (version "0.4")
17613 (source (origin
17614 (method git-fetch)
17615 (uri (git-reference
17616 (url "https://github.com/stsquad/dired-rsync.git")
17617 (commit version)))
17618 (file-name (git-file-name name version))
17619 (sha256
17620 (base32
17621 "0jzbn0izxqgz719gb6fpr60zbcb6w1ama13ngpvrig82nlhs37fv"))))
17622 (build-system emacs-build-system)
17623 (propagated-inputs
17624 `(("emacs-s" ,emacs-s)
17625 ("emacs-dash" ,emacs-dash)))
17626 (home-page "https://github.com/stsquad/dired-rsync/")
17627 (synopsis "Support for rsync from Emacs dired buffers")
17628 (description "This package adds a single command @code{dired-rsync} which
17629 allows the user to copy marked files in a dired buffer via @code{rsync}. This
17630 is useful, especially for large files, because the copy happens in the
17631 background and doesn’t lock up Emacs. It is also more efficient than using
17632 tramps own encoding methods for moving data between systems.")
17633 (license license:gpl3+)))
17634
17635 (define-public emacs-pcre2el
17636 ;; Last release is very old so we get the latest commit.
17637 (let ((commit "0b5b2a2c173aab3fd14aac6cf5e90ad3bf58fa7d"))
17638 (package
17639 (name "emacs-pcre2el")
17640 (version (git-version "1.8" "1" commit))
17641 (source
17642 (origin
17643 (method git-fetch)
17644 (uri (git-reference
17645 (url "https://github.com/joddie/pcre2el")
17646 (commit commit)))
17647 (file-name (git-file-name name version))
17648 (sha256
17649 (base32
17650 "14br6ad138qx1z822wqssswqiihxiynz1k69p6mcdisr2q8yyi1z"))))
17651 (build-system emacs-build-system)
17652 (home-page "https://github.com/joddie/pcre2el")
17653 (synopsis "Convert between PCRE, Emacs and rx regexp syntax")
17654 (description "@code{pcre2el} or @code{rxt} (RegeXp Translator or RegeXp
17655 Tools) is a utility for working with regular expressions in Emacs, based on a
17656 recursive-descent parser for regexp syntax. In addition to converting (a
17657 subset of) PCRE syntax into its Emacs equivalent, it can do the following:
17658
17659 @itemize
17660 @item convert Emacs syntax to PCRE
17661 @item convert either syntax to @code{rx}, an S-expression based regexp syntax
17662 @item untangle complex regexps by showing the parse tree in @code{rx} form and
17663 highlighting the corresponding chunks of code
17664 @item show the complete list of strings (productions) matching a regexp,
17665 provided the list is finite
17666 @item provide live font-locking of regexp syntax (so far only for Elisp
17667 buffers – other modes on the TODO list).
17668 @end itemize\n")
17669 (license license:gpl3))))
17670
17671 (define-public emacs-magit-todos
17672 (package
17673 (name "emacs-magit-todos")
17674 (version "1.4.1")
17675 (source
17676 (origin
17677 (method git-fetch)
17678 (uri (git-reference
17679 (url "https://github.com/alphapapa/magit-todos")
17680 (commit version)))
17681 (file-name (git-file-name name version))
17682 (sha256
17683 (base32
17684 "1rcl6j53yabxqk3jzgaxvm3wqq7rayf1hdib2v2fapw5b0layym6"))))
17685 (build-system emacs-build-system)
17686 (propagated-inputs
17687 `(("emacs-async" ,emacs-async)
17688 ("emacs-dash" ,emacs-dash)
17689 ("emacs-f" ,emacs-f)
17690 ("emacs-hl-todo" ,emacs-hl-todo)
17691 ("magit" ,emacs-magit)
17692 ("emacs-pcre2el" ,emacs-pcre2el)
17693 ("emacs-s" ,emacs-s)))
17694 (home-page "https://github.com/alphapapa/magit-todos")
17695 (synopsis "Show source files' TODOs (and FIXMEs, etc) in Magit status buffer")
17696 (description "This package displays keyword entries from source code
17697 comments and Org files in the Magit status buffer. Activating an item jumps
17698 to it in its file. By default, it uses keywords from @code{hl-todo}, minus a
17699 few (like NOTE).")
17700 (license license:gpl3)))
17701
17702 (define-public emacs-git-annex
17703 ;; Unreleased version has a fontification fix.
17704 (let ((commit "1324d3f23c534fe79391a2c256bb8803054e383b")
17705 (revision "2"))
17706 (package
17707 (name "emacs-git-annex")
17708 (version (git-version "1.1" revision commit))
17709 (source
17710 (origin
17711 (method git-fetch)
17712 (uri (git-reference
17713 (url "https://github.com/jwiegley/git-annex-el")
17714 (commit commit)))
17715 (file-name (git-file-name name version))
17716 (sha256
17717 (base32
17718 "1lfky2nsrlndlbvk6vwbswnvbvkz1sxgg0n3r5q6xykdkjym0lrh"))))
17719 (build-system emacs-build-system)
17720 (home-page "https://github.com/jwiegley/git-annex-el")
17721 (synopsis "Emacs integration for git-annex")
17722 (description "Enhances Dired and buffers visiting annex files with
17723 git-annex functionality. In Dired, the names of annex files are shortened by
17724 hiding the symbolic links and fontified based on whether content is present.
17725 Commands for performing some common operations (e.g., unlocking and adding
17726 files) are provided.")
17727 (license license:gpl2+))))
17728
17729 (define-public emacs-hackernews
17730 (let ((commit "2362d7b00e59da7caddc8c0adc24dccb42fddef9")
17731 (revision "2"))
17732 (package
17733 (name "emacs-hackernews")
17734 (version (git-version "0.5.0" revision commit))
17735 (source
17736 (origin
17737 (method git-fetch)
17738 (uri (git-reference
17739 (url "https://github.com/clarete/hackernews.el")
17740 (commit commit)))
17741 (file-name (git-file-name name version))
17742 (sha256
17743 (base32
17744 "1hcc5b173yzcvvd2ls3jxrmsw2w9bi21m9hcpcirkn0nh93ywadv"))))
17745 (build-system emacs-build-system)
17746 (home-page "https://github.com/clarete/hackernews.el")
17747 (synopsis "Hacker News client for Emacs")
17748 (description "The @command{hackernews} package is able to fetch stories
17749 from six different Hacker News feeds, namely top, new, best, ask, show and job
17750 stories. The default feed is top stories, which corresponds to the Hacker
17751 News homepage.")
17752 (license license:gpl3))))
17753
17754 (define-public emacs-youtube-dl
17755 (let ((commit "af877b5bc4f01c04fccfa7d47a2c328926f20ef4")
17756 (revision "2"))
17757 (package
17758 (name "emacs-youtube-dl")
17759 (version (git-version "1.0" "2" commit))
17760 (source
17761 (origin
17762 (method git-fetch)
17763 (uri (git-reference
17764 (url "https://github.com/skeeto/youtube-dl-emacs/")
17765 (commit commit)))
17766 (file-name (git-file-name name version))
17767 (sha256
17768 (base32
17769 "0zkl9jkjbx0lmp9ylv4rqg1zwqibk053s4rp7s1h0i18nzk7vn8j"))))
17770 (build-system emacs-build-system)
17771 (inputs
17772 `(("youtube-dl" ,youtube-dl)))
17773 (arguments
17774 `(#:phases
17775 (modify-phases %standard-phases
17776 (add-after 'unpack 'configure
17777 (lambda* (#:key inputs #:allow-other-keys)
17778 (let ((youtube-dl (assoc-ref inputs "youtube-dl")))
17779 ;; .el is read-only in git.
17780 (chmod "youtube-dl.el" #o644)
17781 ;; Specify the absolute file names of the various
17782 ;; programs so that everything works out-of-the-box.
17783 (emacs-substitute-variables
17784 "youtube-dl.el"
17785 ("youtube-dl-program"
17786 (string-append youtube-dl "/bin/youtube-dl")))))))))
17787 (home-page "https://github.com/skeeto/youtube-dl-emacs/")
17788 (synopsis "Emacs youtube-dl download manager")
17789 (description "This package manages a video download queue for
17790 @command{youtube-dl}, which serves as the back end. It manages a single
17791 @command{youtube-dl} subprocess, downloading one video at a time. New videos
17792 can be queued at any time.")
17793 (license license:unlicense))))
17794
17795 (define-public emacs-org-web-tools
17796 (package
17797 (name "emacs-org-web-tools")
17798 (version "1.0")
17799 (source
17800 (origin
17801 (method git-fetch)
17802 (uri (git-reference
17803 (url "https://github.com/alphapapa/org-web-tools")
17804 (commit version)))
17805 (file-name (git-file-name name version))
17806 (sha256
17807 (base32
17808 "0kak9h5ny00d39gnwspv53nadnag01brw2fq9zk5wpfc91h9bjng"))))
17809 (build-system emacs-build-system)
17810 (propagated-inputs
17811 `(("emacs-dash" ,emacs-dash)
17812 ("emacs-esxml" ,emacs-esxml)
17813 ("emacs-s" ,emacs-s)))
17814 (inputs
17815 `(("pandoc" ,ghc-pandoc)))
17816 (arguments
17817 `(#:phases
17818 (modify-phases %standard-phases
17819 (add-after 'unpack 'patch-exec-paths
17820 (lambda* (#:key inputs #:allow-other-keys)
17821 (let ((pandoc (assoc-ref inputs "pandoc")))
17822 (substitute* "org-web-tools.el"
17823 (("\"pandoc\"") (string-append "\"" pandoc "/bin/pandoc\"")))
17824 #t))))))
17825 (home-page "https://github.com/alphapapa/org-web-tools")
17826 (synopsis "Display/Process web page as Org-mode content")
17827 (description "This package contains library functions and commands useful
17828 for retrieving web page content and processing it into Org-mode content.
17829
17830 For example, you can copy a URL to the clipboard or kill-ring, then run a
17831 command that downloads the page, isolates the “readable” content with
17832 @command{eww-readable}, converts it to Org-mode content with Pandoc, and
17833 displays it in an Org-mode buffer. Another command does all of that but
17834 inserts it as an Org entry instead of displaying it in a new buffer.")
17835 (license license:gpl3+)))
17836
17837 (define-public emacs-blimp
17838 (let ((commit "e420763d6d18b5d1be552cdbc47f91418343db03"))
17839 (package
17840 (name "emacs-blimp")
17841 (version (git-version "0.0.0" "1" commit))
17842 (source
17843 (origin
17844 (method git-fetch)
17845 (uri (git-reference
17846 (url "https://github.com/walseb/blimp")
17847 (commit commit)))
17848 (file-name (git-file-name name version))
17849 (sha256
17850 (base32
17851 "09wmhpym516b81dfq8smdmysh1fn610dzlyvyl2rkx8600f0fizd"))))
17852 (build-system emacs-build-system)
17853 (propagated-inputs
17854 `(("emacs-eimp" ,emacs-eimp)))
17855 (home-page "https://github.com/walseb/blimp")
17856 (synopsis "Emacs wrapper around all Imagemagick commands")
17857 (description "Blimp (Bustling Image Manipulation Package) is a complete
17858 wrapper around all Imagemagick commands with descriptions, autocompletion (for
17859 some commands) and hints displayed in prompt using @command{eimp.el} to
17860 execute its commands and resize images.")
17861 (license license:gpl3+))))
17862
17863 (define-public emacs-synosaurus
17864 (let ((commit "8bf95b935976ec0a1964cf175ed57cc5f6f93bdb"))
17865 (package
17866 (name "emacs-synosaurus")
17867 (version (git-version "0.1.0" "1" commit))
17868 (source
17869 (origin
17870 (method git-fetch)
17871 (uri (git-reference
17872 (url "https://github.com/hpdeifel/synosaurus")
17873 (commit commit)))
17874 (file-name (git-file-name name version))
17875 (sha256
17876 (base32
17877 "15by9jccab6kyplxa6k0glzaivxkqdigl33gl2qi2cvy6f2q7gva"))))
17878 (build-system emacs-build-system)
17879 (propagated-inputs
17880 `(("wordnet" ,wordnet)))
17881 (arguments
17882 `(#:phases
17883 (modify-phases %standard-phases
17884 (add-after 'unpack 'configure
17885 (lambda* (#:key inputs outputs #:allow-other-keys)
17886 (let ((wn (assoc-ref inputs "wordnet")))
17887 ;; .el is read-only in git.
17888 (chmod "synosaurus-wordnet.el" #o644)
17889 ;; Specify the absolute file names of the various
17890 ;; programs so that everything works out-of-the-box.
17891 (emacs-substitute-variables
17892 "synosaurus-wordnet.el"
17893 ("wordnet-command"
17894 (string-append wn "/bin/wn")))))))))
17895 (home-page "https://github.com/hpdeifel/synosaurus")
17896 (synopsis "Extensible thesaurus mode for Emacs")
17897 (description "Synosaurus is a thesaurus fontend for Emacs with pluggable
17898 backends, including the @command{wordnet} offline backend.")
17899 (license license:gpl3+))))
17900
17901 (define-public emacs-editorconfig
17902 (package
17903 (name "emacs-editorconfig")
17904 (version "0.8.1")
17905 (source
17906 (origin
17907 (method git-fetch)
17908 (uri (git-reference
17909 (url "https://github.com/editorconfig/editorconfig-emacs")
17910 (commit (string-append "v" version))))
17911 (file-name (git-file-name name version))
17912 (sha256
17913 (base32
17914 "1djlhkap7zddknzvjsjz0agpfsms1ih05zcpg1bikid2vs4gddyr"))))
17915 (build-system emacs-build-system)
17916 (home-page "https://github.com/editorconfig/editorconfig-emacs")
17917 (synopsis "Define and maintain consistent coding styles between different
17918 editors and IDEs")
17919 (description "The EditorConfig project consists of a file format for
17920 defining coding styles and a collection of text editor plugins that enable
17921 editors to read the file format and adhere to defined styles. EditorConfig
17922 files are easily readable and they work nicely with version control systems.")
17923 (license license:gpl3+)))
17924
17925 (define-public emacs-all-the-icons
17926 (package
17927 (name "emacs-all-the-icons")
17928 (version "4.0.1")
17929 (source
17930 (origin
17931 (method git-fetch)
17932 (uri (git-reference
17933 (url "https://github.com/domtronn/all-the-icons.el.git")
17934 (commit version)))
17935 (file-name (git-file-name name version))
17936 (sha256
17937 (base32 "0yh7gnv9xfqn8q4rzaa6wpyn9575vyfxy7d3afly2mqsb367fgm5"))))
17938 (build-system emacs-build-system)
17939 (arguments
17940 `(#:include '("\\.el$" "^data/" "^fonts/")
17941 ;; Compiling "test/" fails with "Symbol’s value as variable is void:
17942 ;; all-the-icons--root-code". Ignoring tests.
17943 #:exclude '("^test/")
17944 #:tests? #f))
17945 (propagated-inputs
17946 `(("f" ,emacs-f)
17947 ("memoize" ,emacs-memoize)))
17948 (home-page "https://github.com/domtronn/all-the-icons.el")
17949 (synopsis "Collect icon fonts and propertize them within Emacs")
17950 (description
17951 "All-the-icons is a utility package to collect various icon fonts and
17952 propertize them within Emacs. Icon fonts allow you to propertize and format
17953 icons the same way you would normal text. This enables things such as better
17954 scaling of and anti aliasing of the icons.")
17955 ;; Package is released under Expat license. Elisp files are licensed
17956 ;; under GPL3+. Fonts come with various licenses: Expat for
17957 ;; "all-the-icons.ttf" and "file-icons.ttf", Apache License 2.0 for
17958 ;; "material-design-icons.ttf", and SIL OFL 1.1 for "fontawesome.ttf",
17959 ;; "ocitcons.ttf" and "weathericons.ttf".
17960 (license
17961 (list license:expat license:gpl3+ license:silofl1.1 license:asl2.0))))
17962
17963 (define-public emacs-wttrin
17964 (let ((commit "df5427ce2a5ad4dab652dbb1c4a1834d7ddc2abc")
17965 (revision "1"))
17966 (package
17967 (name "emacs-wttrin")
17968 (version (git-version "0.2.0" revision commit))
17969 (source (origin
17970 (method git-fetch)
17971 (uri (git-reference
17972 (url "https://github.com/bcbcarl/emacs-wttrin.git")
17973 (commit commit)))
17974 (file-name (git-file-name name version))
17975 (sha256
17976 (base32
17977 "1ai655f10iayb4vw0ass2j3x83f4vsv90326mnywkzfl3sxd432z"))))
17978 (build-system emacs-build-system)
17979 (propagated-inputs
17980 `(("emacs-xterm-color" ,emacs-xterm-color)))
17981 (home-page "https://github.com/bcbcarl/emacs-wttrin")
17982 (synopsis "Frontend for weather web service @url{wttr.in}")
17983 (description "This package provides local weather information from
17984 @url{wttr.in}.")
17985 (license license:expat))))
17986
17987 (define-public emacs-browse-kill-ring
17988 (let ((commit "1ef72cc6accd94cd7032c02b1b2c78ae7f1d1965")
17989 (revision "0"))
17990 (package
17991 (name "emacs-browse-kill-ring")
17992 (version (git-version "2.0.0" revision commit))
17993 (source
17994 (origin
17995 (method git-fetch)
17996 (uri (git-reference
17997 (url "https://github.com/browse-kill-ring/browse-kill-ring.git")
17998 (commit commit)))
17999 (file-name (git-file-name name version))
18000 (sha256
18001 (base32
18002 "0mil32g7hcw376jibs5hdyv00xbaql3m4a27rwqaafg0x59avxdj"))))
18003 (build-system emacs-build-system)
18004 (home-page "https://github.com/browse-kill-ring/browse-kill-ring")
18005 (synopsis "Interactively insert items from kill-ring")
18006 (description
18007 "Did you ever feel that @code{C-y M-y M-y M-y ...} is not a great way
18008 of trying to find that piece of text you know you killed a while back? Then
18009 @code{browse-kill-ring.el} is for you.")
18010 (license license:gpl2+))))
18011
18012 (define-public emacs-powerline
18013 (package
18014 (name "emacs-powerline")
18015 (version "2.4")
18016 (source
18017 (origin
18018 (method git-fetch)
18019 (uri (git-reference
18020 (url "https://github.com/milkypostman/powerline.git")
18021 (commit version)))
18022 (file-name (git-file-name name version))
18023 (sha256
18024 (base32
18025 "1hp3xp18943n0rlggz55150020ivw8gvi1vyxkr4z8xhpwq4gaar"))))
18026 (build-system emacs-build-system)
18027 (home-page "https://github.com/milkypostman/powerline/")
18028 (synopsis "Mode-line plugin for Emacs")
18029 (description "Powerline is a utility plugin which allows you to create
18030 a better-looking, more functional Emacs mode-line. A collection of predefined
18031 themes comes with the package.")
18032 (license license:gpl3+)))
18033
18034 (define-public emacs-spaceline
18035 (package
18036 (name "emacs-spaceline")
18037 (version "2.0.1")
18038 (source
18039 (origin
18040 (method git-fetch)
18041 (uri (git-reference
18042 (url "https://github.com/TheBB/spaceline.git")
18043 (commit (string-append "v" version))))
18044 (file-name (git-file-name name version))
18045 (sha256
18046 (base32
18047 "1q8r95zfrh0vxna5ml2pq9b9f66clfqcl4d2qy2aizkvzyxg6skl"))))
18048 (build-system emacs-build-system)
18049 (propagated-inputs
18050 `(("dash" ,emacs-dash)
18051 ("powerline" ,emacs-powerline)
18052 ("s" ,emacs-s)))
18053 (home-page "https://github.com/TheBB/spaceline")
18054 (synopsis "Powerline theme from Spacemacs")
18055 (description "Spaceline provides Spacemacs' mode-line theme.
18056 This package provides features for three kinds of users.
18057
18058 @itemize
18059 @item You just want to use the Spacemacs mode-line theme and forget about it.
18060 @item You want to use something similar to the Spacemacs mode-line theme, but
18061 with a handful of easy tweaks.
18062 @item You want an easy-to-use library for building your own mode-line from
18063 scratch, and you think the Spacemacs theme looks good.
18064 @end itemize")
18065 (license license:gpl3+)))
18066
18067 (define-public emacs-column-marker
18068 (package
18069 (name "emacs-column-marker")
18070 (version "9")
18071 (source
18072 (origin
18073 (method url-fetch)
18074 (uri "https://www.emacswiki.org/emacs/download/column-marker.el")
18075 (sha256 (base32 "05bv198zhqw5hqq6cr11mhz02dpca74hhp1ycwq369m0yb2naxy9"))))
18076 (build-system emacs-build-system)
18077 (home-page "https://www.emacswiki.org/emacs/ColumnMarker")
18078 (synopsis "Emacs mode for highlighting columns")
18079 (description
18080 "With @code{column-marker.el} you can highlight any number of text columns.
18081 Three such highlight column markers are provided by default. This is
18082 especially useful for languages like COBOL or Fortran where certain columns
18083 have special meaning. It is also handy for aligning text across long vertical
18084 distances. Multi-column characters, such as @kbd{TAB} are treated
18085 correctly.")
18086 (license license:gpl2+)))
18087
18088 (define-public emacs-slime-repl-ansi-color
18089 (let ((commit "ad03263f5d4de473bc173b64a6fc3dc1106393d7"))
18090 (package
18091 (name "emacs-slime-repl-ansi-color")
18092 (version (git-version "0.0.0" "1" commit))
18093 (source (origin
18094 (method git-fetch)
18095 (uri (git-reference
18096 (url "https://github.com/deadtrickster/slime-repl-ansi-color")
18097 (commit commit)))
18098 (file-name (git-file-name name version))
18099 (sha256
18100 (base32
18101 "0bpg7gxz310x7bnlg324c507sxc5gxwwz6h64h6kdq141r73vbi4"))))
18102 (build-system emacs-build-system)
18103 (home-page "https://github.com/deadtrickster/slime-repl-ansi-color")
18104 (synopsis "Color ANSI codes in the REPL of SLIME")
18105 (description "Color ANSI codes in the REPL of SLIME")
18106 (license license:gpl2+))))
18107
18108 (define-public emacs-helm-slime
18109 (package
18110 (name "emacs-helm-slime")
18111 (version "0.4.0")
18112 (source (origin
18113 (method git-fetch)
18114 (uri (git-reference
18115 (url "https://github.com/emacs-helm/helm-slime")
18116 (commit version)))
18117 (file-name (git-file-name name version))
18118 (sha256
18119 (base32
18120 "0mrpjhpijdrq353fnfvdj9l9xfsz390qlcvifcair9732ma7i8l0"))))
18121 (build-system emacs-build-system)
18122 (propagated-inputs
18123 `(("emacs-helm" ,emacs-helm)
18124 ("emacs-slime" ,emacs-slime)))
18125 (home-page "https://github.com/emacs-helm/helm-slime")
18126 (synopsis "Helm for SLIME, the Superior Lisp Interaction Mode for Emacs")
18127 (description "Helm-SLIME defines a few new commands:
18128
18129 @itemize
18130 @item helm-slime-complete: Select a symbol from the SLIME completion systems.
18131 @item helm-slime-list-connections: Yet another slime-list-connections with Helm.
18132 @item: helm-slime-apropos: Yet another slime-apropos with Helm.
18133 @item helm-slime-repl-history: Select an input from the SLIME REPL history and insert it.
18134 @end itemize\n")
18135 (license license:gpl3+)))
18136
18137 (define-public emacs-helm-sly
18138 (package
18139 (name "emacs-helm-sly")
18140 (version "0.4.1")
18141 (source (origin
18142 (method git-fetch)
18143 (uri (git-reference
18144 (url "https://github.com/emacs-helm/helm-sly")
18145 (commit version)))
18146 (file-name (git-file-name name version))
18147 (sha256
18148 (base32
18149 "0b2dx9nzh5233lkix3lz81c9cv626lk2hjpcjiikwvyp6y0q92ys"))))
18150 (build-system emacs-build-system)
18151 (propagated-inputs
18152 `(("emacs-helm" ,emacs-helm)
18153 ("emacs-sly" ,emacs-sly)))
18154 (home-page "https://github.com/emacs-helm/helm-sly")
18155 (synopsis "Helm for SLY, a Common Lisp interaction mode for Emacs")
18156 (description "Helm-SLY defines a few new commands:
18157
18158 @itemize
18159 @item helm-sly-list-connections: Yet another Lisp connection list with Helm.
18160 @item: helm-sly-apropos: Yet another @command{apropos} with Helm.
18161 @item helm-sly-mini: Like @command{helm-sly-list-connections}, but include an
18162 extra source of Lisp-related buffers, like the events buffer or the scratch
18163 buffer.
18164 @end itemize\n")
18165 (license license:gpl3+)))
18166
18167 (define-public emacs-gtk-look
18168 (package
18169 (name "emacs-gtk-look")
18170 (version "29")
18171 (source (origin
18172 (method url-fetch)
18173 (uri "https://download.tuxfamily.org/user42/gtk-look.el")
18174 (sha256
18175 (base32
18176 "14p2nwrd51cr1v06fxbjjn6jdrkf9d6vcxhmscm0kl677s25ypsp"))))
18177 (build-system emacs-build-system)
18178 (arguments
18179 `(#:phases
18180 (modify-phases %standard-phases
18181 (add-after 'unpack 'configure
18182 (lambda _
18183 ;; File is read-only.
18184 (chmod "gtk-look.el" #o644)
18185 (emacs-substitute-variables "gtk-look.el"
18186 ("gtk-lookup-devhelp-indices"
18187 '(list (expand-file-name "~/.guix-profile/share/gtk-doc/html/*/*.devhelp*"))))
18188 #t)))))
18189 (home-page "http://user42.tuxfamily.org/gtk-look/index.html")
18190 (synopsis "Find and display HTML documentation for GTK, GNOME and Glib")
18191 (description "@command{gtk-look} finds and displays HTML documentation for
18192 GTK, GNOME and Glib functions and variables in Emacs, similar to what
18193 info-lookup-symbol does for info files (C-h S). The documentation is expected
18194 to be devhelp indexes with HTML files. The location of the indexes can be
18195 customized. In addition to C code development @command{gtk-look} is good for
18196
18197 @itemize
18198 @item @command{perl-gtk2}, recognising class funcs like
18199 @command{Gtk2::Label->new} and bare method names like @command{set_text}.
18200 @item @command{guile-gnome}, recognising methods like @command{set-text} and
18201 classes like @command{<gtk-window>}.
18202 @end itemize\n")
18203 (license license:gpl3+)))
18204
18205 (define-public emacs-ov
18206 (package
18207 (name "emacs-ov")
18208 (version "1.0.6")
18209 (source (origin
18210 (method git-fetch)
18211 (uri (git-reference
18212 (url "https://github.com/ShingoFukuyama/ov.el.git")
18213 (commit version)))
18214 (file-name (git-file-name name version))
18215 (sha256
18216 (base32
18217 "0qxk2rf84j86syxi8xknsq252irwg7sz396v3bb4wqz4prpj0kzc"))))
18218 (build-system emacs-build-system)
18219 (home-page "https://github.com/ShingoFukuyama/ov.el")
18220 (synopsis "Overlay library for Emacs Lisp")
18221 (description "@code{ov.el} provides a simple way to manipulate overlays in
18222 Emacs.")
18223 (license license:gpl3+)))
18224
18225 (define-public emacs-matrix-client
18226 (let ((commit "a0623667b07a4bf60980c97b078e9faed97ace79"))
18227 (package
18228 (name "emacs-matrix-client")
18229 (version (git-version "0.0.0" "4" commit))
18230 (source (origin
18231 (method git-fetch)
18232 (uri (git-reference
18233 (url "https://github.com/jgkamat/matrix-client-el.git")
18234 (commit commit)))
18235 (file-name (git-file-name name version))
18236 (sha256
18237 (base32
18238 "1zya8id3y9wzjaj7nplq7br6nhm3lsskv0fkn1xr1y77fzcfgcdb"))))
18239 (build-system emacs-build-system)
18240 (arguments
18241 `(#:phases
18242 (modify-phases %standard-phases
18243 (add-after 'unpack 'add-missing-require
18244 ;; Fix a filter error at runtime due to a missing require.
18245 ;; Reported upstream:
18246 ;; <https://github.com/alphapapa/matrix-client.el/issues/76>
18247 (lambda _
18248 (substitute* "matrix-client-room.el"
18249 (("\\(require 'dash-functional\\)" all)
18250 (string-append all "\n" "(require 'anaphora)")))
18251 #t)))))
18252 (propagated-inputs
18253 `(("a" ,emacs-a)
18254 ("anaphora" ,emacs-anaphora)
18255 ("dash" ,emacs-dash)
18256 ("esxml" ,emacs-esxml)
18257 ("f" ,emacs-f)
18258 ("frame-purpose" ,emacs-frame-purpose)
18259 ("ht" ,emacs-ht)
18260 ("ov" ,emacs-ov)
18261 ("rainbow-identifiers" ,emacs-rainbow-identifiers)
18262 ("request" ,emacs-request)
18263 ("s" ,emacs-s)
18264 ("tracking" ,emacs-tracking)))
18265 (home-page "https://github.com/jgkamat/matrix-client-el")
18266 (synopsis "Matrix client for Emacs")
18267 (description "@code{matrix-client} is a simple chat UI to Matrix.org
18268 rooms. It also provides an API which allows Emacs to seamlessly create
18269 RPC channels with users and other software.")
18270 (license license:gpl3+))))
18271
18272 (define-public emacs-sesman
18273 (package
18274 (name "emacs-sesman")
18275 (version "0.3.4")
18276 (source
18277 (origin
18278 (method git-fetch)
18279 (uri (git-reference
18280 (url "https://github.com/vspinu/sesman.git")
18281 (commit (string-append "v" version))))
18282 (file-name (git-file-name name version))
18283 (sha256
18284 (base32
18285 "0z5jb4vpbjsi63w3wjy6d2lgz33qdfvrgfb3bszv4hcf6a96y7fc"))))
18286 (build-system emacs-build-system)
18287 (arguments
18288 `(#:phases
18289 (modify-phases %standard-phases
18290 (add-after 'unpack 'set-shell
18291 ;; Setting the SHELL environment variable is required for the tests
18292 ;; to find sh.
18293 (lambda _
18294 (setenv "SHELL" (which "sh"))
18295 #t)))
18296 #:tests? #t
18297 #:test-command '("make" "test")))
18298 (home-page "https://github.com/vspinu/sesman")
18299 (synopsis "Session manager for Emacs based IDEs")
18300 (description "Sesman provides facilities for session management and
18301 interactive session association with the current contexts (project, directory,
18302 buffers). While sesman can be used to manage arbitrary sessions, it primary
18303 targets the Emacs based IDEs (CIDER, ESS, Geiser, Robe, SLIME etc.)")
18304 (license license:gpl3+)))
18305
18306 (define-public emacs-buttercup
18307 (package
18308 (name "emacs-buttercup")
18309 (version "1.16")
18310 (source
18311 (origin
18312 (method git-fetch)
18313 (uri (git-reference
18314 (url "https://github.com/jorgenschaefer/emacs-buttercup.git")
18315 (commit (string-append "v" version))))
18316 (file-name (git-file-name name version))
18317 (sha256
18318 (base32
18319 "0dckgcyzsav6ld78bcyrrygy1cz1jvqgav6vy8f6klpmk3r8xrl1"))))
18320 (build-system emacs-build-system)
18321 (arguments
18322 `(#:tests? #t
18323 #:test-command '("make" "test")
18324 #:phases
18325 (modify-phases %standard-phases
18326 (add-after 'install 'install-bin
18327 (lambda* (#:key outputs #:allow-other-keys)
18328 (install-file "bin/buttercup"
18329 (string-append (assoc-ref outputs "out") "/bin"))
18330 #t)))))
18331 (home-page "https://github.com/jorgenschaefer/emacs-buttercup")
18332 (synopsis "Behavior driven emacs lisp testing framework")
18333 (description "Buttercup is a behavior-driven development framework for
18334 testing Emacs Lisp code. It groups related tests so they can share
18335 common set-up and tear-down code, and allows the programmer to \"spy\" on
18336 functions to ensure they are called with the right arguments during testing.")
18337 (license license:gpl3+)))
18338
18339 (define-public emacs-wordnut
18340 (let ((commit "feac531404041855312c1a046bde7ea18c674915")
18341 (revision "0"))
18342 (package
18343 (name "emacs-wordnut")
18344 (version (git-version "0.1" revision commit))
18345 (home-page "https://github.com/gromnitsky/wordnut")
18346 (source (origin
18347 (method git-fetch)
18348 (uri (git-reference (url home-page) (commit commit)))
18349 (sha256
18350 (base32
18351 "1jl0b6g64a9w0q7bfvwha67vgws5xd15b7mkfyb5gkz3pymqhfxn"))
18352 (patches
18353 (search-patches "emacs-wordnut-require-adaptive-wrap.patch"))
18354 (file-name (git-file-name name version))))
18355 (build-system emacs-build-system)
18356 (propagated-inputs
18357 `(("wordnet" ,wordnet)
18358 ("emacs-adaptive-wrap" ,emacs-adaptive-wrap)))
18359 (synopsis "Major mode for WordNet")
18360 (description "This Emacs package provides an interface for
18361 @code{wordnet}. Features include completion, if the query is not found
18362 too ambiguous and navigation in the result buffer.")
18363 (license license:gpl3+))))
18364
18365 (define-public emacs-frame-purpose
18366 (package
18367 (name "emacs-frame-purpose")
18368 (version "1.0")
18369 (source (origin
18370 (method git-fetch)
18371 (uri (git-reference
18372 (url "https://github.com/alphapapa/frame-purpose.el.git")
18373 (commit version)))
18374 (sha256
18375 (base32
18376 "0jq2aam1yvccw887ighd1wm2xkvk5bv53ffiz3crcl16a255aj4q"))
18377 (file-name (git-file-name name version))))
18378 (build-system emacs-build-system)
18379 (inputs
18380 `(("dash" ,emacs-dash)))
18381 (synopsis "Purpose-specific frames for Emacs")
18382 (description "@code{frame-purpose} makes it easy to open purpose-specific
18383 frames that only show certain buffers, e.g. by buffers’ major mode, their
18384 filename or directory, etc, with custom frame/X-window titles, icons, and
18385 other frame parameters.")
18386 (home-page "https://github.com/alphapapa/frame-purpose.el")
18387 (license license:gpl3+)))
18388
18389 (define-public emacs-arduino-mode
18390 (let ((commit "23ae47c9f28f559e70b790b471f20310e163a39b")
18391 (revision "1")) ;no release yet
18392 (package
18393 (name "emacs-arduino-mode")
18394 (version (git-version "0" revision commit))
18395 (source (origin
18396 (method git-fetch)
18397 (uri (git-reference
18398 (url "https://github.com/stardiviner/arduino-mode.git")
18399 (commit commit)))
18400 (sha256
18401 (base32
18402 "08vnbz9gpah1l93fzfd87aawrhcnh2v1kyfxgsn88pdwg8awz8rx"))
18403 (file-name (git-file-name name version))))
18404 (build-system emacs-build-system)
18405 (inputs
18406 `(("spinner" ,emacs-spinner)
18407 ("flycheck" ,emacs-flycheck)))
18408 (arguments
18409 `(#:phases
18410 (modify-phases %standard-phases
18411 ;; Emacs complains that "defmethod" and "defgeneric" are obsolete
18412 ;; macros when compiling. Substitute them with the recommended
18413 ;; macros "cl-defmethod" and "cl-defgeneric", respectively.
18414 (add-after 'unpack 'fix-obsolete
18415 (lambda _
18416 (substitute* "ede-arduino.el"
18417 (("defmethod") "cl-defmethod")
18418 (("defgeneric") "cl-defgeneric"))
18419 #t)))))
18420 (synopsis "Emacs major mode for editing Arduino sketches")
18421 (description "Emacs major mode for editing Arduino sketches.")
18422 (home-page "https://github.com/stardiviner/arduino-mode")
18423 (license license:gpl3+))))
18424
18425 (define-public emacs-annalist
18426 (let ((commit "e0601539c9ac0171a684ea3ff6266d215d1d08e6")
18427 (revision "1"))
18428 (package
18429 (name "emacs-annalist")
18430 (version (git-version "1.0.0" revision commit))
18431 (source (origin
18432 (method git-fetch)
18433 (uri (git-reference
18434 (url "https://github.com/noctuid/annalist.el.git")
18435 (commit commit)))
18436 (sha256
18437 (base32
18438 "10bmimdzpi6cql4sb2hbgdvrza83xbac50bi9qng4z662pfnlaam"))
18439 (file-name (git-file-name name version))))
18440 (build-system emacs-build-system)
18441 (native-inputs
18442 `(("emacs-buttercup" ,emacs-buttercup)
18443 ("emacs-lispy" ,emacs-lispy)
18444 ("emacs-evil" ,emacs-evil)))
18445 (arguments
18446 `(#:phases
18447 (modify-phases %standard-phases
18448 (add-before 'check 'fix-makefile
18449 (lambda _
18450 (substitute* "Makefile"
18451 (("cask exec ") ""))
18452 #t)))
18453 #:tests? #t
18454 #:test-command '("make" "test")))
18455 (home-page "https://github.com/noctuid/annalist.el")
18456 (synopsis "Record and display information with Org headings and tables")
18457 (description "This package allows for keybindings, settings, hooks, and
18458 advice to be recorded and displayed.")
18459 (license license:gpl3+))))
18460
18461 (define-public emacs-general
18462 (let ((commit "a0b17d207badf462311b2eef7c065b884462cb7c")
18463 (revision "4"))
18464 (package
18465 (name "emacs-general")
18466 (version (git-version "0" revision commit))
18467 (source
18468 (origin
18469 (method git-fetch)
18470 (uri (git-reference
18471 (url "https://github.com/noctuid/general.el.git")
18472 (commit commit)))
18473 (sha256
18474 (base32 "0wn5rk3gkimdklip392mnjrmkymgrb7q9skifi03cbpjam1anzvv"))
18475 (file-name (git-file-name name version))))
18476 (build-system emacs-build-system)
18477 (native-inputs
18478 `(("emacs-buttercup" ,emacs-buttercup)
18479 ("emacs-evil" ,emacs-evil)
18480 ("emacs-which-key" ,emacs-which-key)
18481 ("emacs-use-package" ,emacs-use-package)))
18482 (arguments
18483 `(#:tests? #t
18484 #:test-command '("buttercup" "-L" "test/test-general.el")))
18485 (home-page "https://github.com/noctuid/general.el")
18486 (synopsis "More convenient key definitions in emacs")
18487 (description "@code{general.el} provides a more convenient method for
18488 binding keys in emacs (for both evil and non-evil users). Like
18489 @code{use-package}, which provides a convenient, unified interface for
18490 managing packages, @code{general.el} is intended to provide a convenient,
18491 unified interface for key definitions. While this package does implement some
18492 completely new functionality (such as the ability to make vim-style
18493 keybindings under non-prefix keys with an optional timeout), its primary
18494 purpose is to build on existing functionality to make key definition more
18495 clear and concise. @code{general-define-key} is user-extensible and supports
18496 defining multiple keys in multiple keymaps at once, implicitly wrapping key
18497 strings with (@code{kbd ...}), using named prefix key sequences (like the
18498 leader key in vim), and much more.")
18499 (license license:gpl3+))))
18500
18501 (define-public emacs-tldr
18502 (let ((commit "7203d1be3dcbf12131846ffe06601933fa874d74"))
18503 (package
18504 (name "emacs-tldr")
18505 (version (git-version "0" "1" commit))
18506 (home-page "https://github.com/kuanyui/tldr.el")
18507 (source (origin
18508 (method git-fetch)
18509 (uri (git-reference
18510 (url (string-append home-page ".git"))
18511 (commit commit)))
18512 (sha256
18513 (base32
18514 "1bw6la463l2yfm7rp76ga4makfy4kpxgwi7ni5gxk31w11g26ryk"))
18515 (file-name (git-file-name name version))))
18516 (build-system emacs-build-system)
18517 (propagated-inputs
18518 `(("emacs-request" ,emacs-request)))
18519 (synopsis "Simplified and community-driven man pages for Emacs")
18520 (description "@code{emacs-tldr} allows the user to access tldr pages
18521 from within emacs. The @code{tldr} pages are a community effort to simplify
18522 the man pages with practical examples.")
18523 (license license:wtfpl2))))
18524
18525 (define-public emacs-window-layout
18526 (package
18527 (name "emacs-window-layout")
18528 (version "1.4")
18529 (home-page "https://github.com/kiwanami/emacs-window-layout")
18530 (source (origin
18531 (method git-fetch)
18532 (uri (git-reference
18533 (url home-page)
18534 (commit (string-append "v" version))))
18535 (sha256
18536 (base32
18537 "0wgqi8r844lbx52fn6az8c1n8m681rp6dkfzd54wmdk1ka7zmvv6"))
18538 (file-name (git-file-name name version))))
18539 (build-system emacs-build-system)
18540 (synopsis "Simple window layout management framework for emacs")
18541 (description "A window-layout management library that can split a frame
18542 or a window into some windows according to a layout recipe.")
18543 (license license:gpl3+)))
18544
18545 (define-public emacs-e2wm
18546 (package
18547 (name "emacs-e2wm")
18548 (version "1.4")
18549 (home-page "https://github.com/kiwanami/emacs-window-manager")
18550 (source (origin
18551 (method git-fetch)
18552 (uri (git-reference
18553 (url home-page)
18554 (commit (string-append "v" version))))
18555 (sha256
18556 (base32
18557 "12midsrx07pdrsr1qbl2rpi7xyhxqx08bkz7n7gf8vsmqkpfp56s"))
18558 (file-name (git-file-name name version))))
18559 (build-system emacs-build-system)
18560 (propagated-inputs
18561 `(("emacs-window-layout" ,emacs-window-layout)))
18562 (synopsis "Equilibrium Emacs Window Manager")
18563 (description "E2WM is a window manager for Emacs. It enables to
18564 customize the place of pop-up window, how the windows are split, how the
18565 buffers are located in the windows, keybinds to manipulate windows and
18566 buffers, etc. It also has plug-ins to help your Emacs life.")
18567 (license license:gpl3+)))
18568
18569 (define-public emacs-ctable
18570 (let ((commit "b8830d1ca95abb100a81bc32011bd17d5ecba000"))
18571 (package
18572 (name "emacs-ctable")
18573 (version (git-version "0.1.2" "1" commit))
18574 (home-page "https://github.com/kiwanami/emacs-ctable")
18575 (source (origin
18576 (method git-fetch)
18577 (uri (git-reference
18578 (url home-page)
18579 (commit commit)))
18580 (sha256
18581 (base32
18582 "0pg303pnqscrsbx9579hc815angszsgf9vpd2z2f8p4f4ka6a00h"))
18583 (file-name (git-file-name name version))))
18584 (build-system emacs-build-system)
18585 (synopsis "Table component for Emacs Lisp")
18586 (description "This program is a table component for Emacs Lisp. Other
18587 programs can use this table component for the application UI.")
18588 (license license:gpl3+))))
18589
18590 (define-public emacs-leetcode
18591 (let ((commit "8624496af9e105c3e07d88844b37ede87540d604")
18592 (revision "1"))
18593 (package
18594 (name "emacs-leetcode")
18595 (version (git-version "0" "1" commit))
18596 (home-page "https://github.com/ginqi7/leetcode-emacs.git")
18597 (source (origin
18598 (method git-fetch)
18599 (uri (git-reference
18600 (url "https://github.com/ginqi7/leetcode-emacs")
18601 (commit commit)))
18602 (sha256
18603 (base32
18604 "11pp7ydlmwrv7djf9mwk4xzn295xbmdnj5x13bfj5yjpjr89p531"))
18605 (file-name (git-file-name name version))))
18606 (build-system emacs-build-system)
18607 (propagated-inputs
18608 `(("emacs-names" ,emacs-names)
18609 ("emacs-ctable" ,emacs-ctable)))
18610 (synopsis "Solve and submit LeetCode problems from within Emacs")
18611 (description "This package provides an Emacs interface to LeetCode
18612 allowing users to log in and solve problems of their choice using Emacs.")
18613 (license license:unlicense))))
18614
18615 (define-public emacs-epc
18616 (let ((commit "e1bfa5ca163273859336e3cc89b4b6460f7f8cda"))
18617 (package
18618 (name "emacs-epc")
18619 (version (git-version "0.1.1" "1" commit))
18620 (home-page "https://github.com/kiwanami/emacs-epc")
18621 (source (origin
18622 (method git-fetch)
18623 (uri (git-reference
18624 (url home-page)
18625 (commit commit)))
18626 (sha256
18627 (base32
18628 "15nkrjgi64f829isfd6xrhl4zw8jirr8pkas7nisrbk1av868hx0"))
18629 (file-name (git-file-name name version))))
18630 (build-system emacs-build-system)
18631 (propagated-inputs
18632 `(("emacs-deferred" ,emacs-deferred)
18633 ("emacs-ctable" ,emacs-ctable)))
18634 (synopsis "RPC stack for Emacs Lisp")
18635 (description "This program is an asynchronous RPC stack for Emacs.
18636 Using this RPC stack, Emacs can communicate with the peer process
18637 smoothly. Because the protocol employs S-expression encoding and consists of
18638 asynchronous communications, the RPC response is fairly good.")
18639 (license license:gpl3+))))
18640
18641 (define-public emacs-edbi
18642 (let ((commit "6f50aaf4bde75255221f2292c7a4ad3fa9d918c0"))
18643 (package
18644 (name "emacs-edbi")
18645 (version (git-version "0.1.3" "1" commit))
18646 (home-page "https://github.com/kiwanami/emacs-edbi")
18647 (source (origin
18648 (method git-fetch)
18649 (uri (git-reference
18650 (url home-page)
18651 (commit commit)))
18652 (sha256
18653 (base32
18654 "0x0igyvdcm4863n7zndvcv6wgzwgn7324cbfjja6xd7r0k936zdy"))
18655 (file-name (git-file-name name version))))
18656 (build-system emacs-build-system)
18657 (inputs
18658 `(("perl" ,perl)
18659 ("perl-rpc-epc-service" ,perl-rpc-epc-service)
18660 ("perl-dbi" ,perl-dbi)
18661 ;; TODO: Adding support for perl-dbd-mysql and others would
18662 ;; dramatically increase the closure size. Make several packages?
18663 ("perl-dbd-sqlite" ,perl-dbd-sqlite)))
18664 (propagated-inputs
18665 `(("emacs-e2wm" ,emacs-e2wm)
18666 ("emacs-epc" ,emacs-epc)))
18667 (arguments
18668 `(#:include '("\\.el$" "\\.pl$")
18669 #:phases
18670 (modify-phases %standard-phases
18671 (add-after 'install 'patch-path
18672 (lambda* (#:key inputs outputs #:allow-other-keys)
18673 (let ((perl (assoc-ref inputs "perl"))
18674 (dir (string-append (assoc-ref outputs "out")
18675 "/share/emacs/site-lisp")))
18676 (substitute* (string-append dir "/edbi.el")
18677 (("\"perl\"") (string-append "\"" perl "/bin/perl\"")))
18678 (chmod (string-append dir "/edbi-bridge.pl") #o555)
18679 (wrap-program (string-append dir "/edbi-bridge.pl")
18680 `("PERL5LIB" ":" prefix (,(getenv "PERL5LIB"))))
18681 #t))))))
18682 (synopsis "Database Interface for Emacs Lisp")
18683 (description "This program connects the database server through Perl's
18684 DBI, and provides DB-accessing API and the simple management UI.")
18685 (license license:gpl3+))))
18686
18687 (define-public emacs-edbi-sqlite
18688 (let ((commit "52cb9ca1af7691b592f2cfd2f007847e7a4ccd5f"))
18689 (package
18690 (name "emacs-edbi-sqlite")
18691 (version (git-version "0.1.1" "1" commit))
18692 (home-page "https://github.com/proofit404/edbi-sqlite")
18693 (source (origin
18694 (method git-fetch)
18695 (uri (git-reference
18696 (url home-page)
18697 (commit commit)))
18698 (sha256
18699 (base32
18700 "1vll81386fx90lq5sy4rlxcik6mvw7zx5cc51f0yaca9bkcckp51"))
18701 (file-name (git-file-name name version))))
18702 (build-system emacs-build-system)
18703 (propagated-inputs
18704 `(("emacs-edbi" ,emacs-edbi)))
18705 (synopsis "Open SQLite files in Emacs")
18706 (description "This package is a convenience wrapper for @command{edbi}
18707 to open SQLite databases.")
18708 (license license:gpl3+))))
18709
18710 (define-public emacs-nix-mode
18711 (package
18712 (name "emacs-nix-mode")
18713 (version "1.4.1")
18714 (source
18715 (origin
18716 (method git-fetch)
18717 (uri (git-reference
18718 (url "https://github.com/NixOS/nix-mode.git")
18719 (commit (string-append "v" version))))
18720 (file-name (git-file-name name version))
18721 (sha256
18722 (base32 "04xpgg9nba5m1bl7ci5l456whcb8nfhsbvgxyx89bp0zqgr005q7"))))
18723 (build-system emacs-build-system)
18724 (inputs
18725 `(("emacs-company" ,emacs-company)
18726 ("emacs-json-mode" ,emacs-json-mode)
18727 ("emacs-mmm-mode" ,emacs-mmm-mode)))
18728 (home-page "https://github.com/NixOS/nix-mode")
18729 (synopsis "Emacs major mode for editing Nix expressions")
18730 (description "@code{nixos-mode} provides an Emacs major mode for editing
18731 Nix expressions. It supports syntax highlighting, indenting and refilling of
18732 comments.")
18733 (license license:lgpl2.1+)))
18734
18735 (define-public emacs-libmpdel
18736 (package
18737 (name "emacs-libmpdel")
18738 (version "1.1.2")
18739 (source (origin
18740 (method git-fetch)
18741 (uri (git-reference
18742 (url "https://gitea.petton.fr/mpdel/libmpdel.git")
18743 (commit (string-append "v" version))))
18744 (file-name (git-file-name name version))
18745 (sha256
18746 (base32
18747 "0dnjndpv6bmz5blfs75ynmbm32g23l4slg5p3941b1i94a08qzpy"))))
18748 (build-system emacs-build-system)
18749 (home-page "https://gitea.petton.fr/mpdel/libmpdel")
18750 (synopsis "Emacs library to communicate with Music Player Daemon (MPD)")
18751 (description
18752 "An Emacs library client to communicate with Music Player Daemon (MPD), a
18753 flexible, powerful, server-side application for playing music.")
18754 (license license:gpl3+)))
18755
18756 (define-public emacs-mpdel
18757 (package
18758 (name "emacs-mpdel")
18759 (version "1.0.0")
18760 (source
18761 (origin
18762 (method git-fetch)
18763 (uri (git-reference
18764 (url "https://gitea.petton.fr/mpdel/mpdel.git")
18765 (commit (string-append "v" version))))
18766 (file-name (git-file-name name version))
18767 (sha256
18768 (base32
18769 "0pyyvbzskr44dxbmlp3y0r6s459fd51cvwjmnjaqxfxflr5v891g"))))
18770 (build-system emacs-build-system)
18771 (inputs
18772 `(("emacs-libmpdel" ,emacs-libmpdel)))
18773 (home-page "https://gitea.petton.fr/mpdel/mpdel")
18774 (synopsis "Emacs user interface for Music Player Daemon (MPD)")
18775 (description
18776 "MPDel provides an Emacs user interface to control playback (play, pause,
18777 next, volume) and display and control the current playlist as well as your
18778 stored playlists.")
18779 (license license:gpl3+)))
18780
18781 (define-public emacs-vterm
18782 (let ((version "0")
18783 (revision "1")
18784 (commit "e63bd65eece7c5de3a534b7e2fdbe58256ec2da0"))
18785 (package
18786 (name "emacs-vterm")
18787 (version (git-version version revision commit))
18788 (source (origin
18789 (method git-fetch)
18790 (uri (git-reference
18791 (url "https://github.com/akermu/emacs-libvterm.git")
18792 (commit commit)))
18793 (file-name (git-file-name name version))
18794 (sha256
18795 (base32
18796 "0iq857w54qmazxh23fipz85fb9i6dav3f63g0ghpmi6mybfp6i5v"))))
18797 (build-system emacs-build-system)
18798 (arguments
18799 `(#:modules ((guix build emacs-build-system)
18800 ((guix build cmake-build-system) #:prefix cmake:)
18801 (guix build emacs-utils)
18802 (guix build utils))
18803 #:imported-modules (,@%emacs-build-system-modules
18804 (guix build cmake-build-system))
18805 #:phases
18806 (modify-phases %standard-phases
18807 (add-before 'add-source-to-load-path 'substitute-vterm-module-path
18808 (lambda* (#:key outputs #:allow-other-keys)
18809 (chmod "vterm.el" #o644)
18810 (emacs-substitute-sexps "vterm.el"
18811 ("(require 'vterm-module nil t)"
18812 `(module-load
18813 ,(string-append (assoc-ref outputs "out")
18814 "/lib/vterm-module.so"))))
18815 #t))
18816 (add-after 'build 'configure
18817 ;; Run cmake.
18818 (lambda* (#:key outputs #:allow-other-keys)
18819 ((assoc-ref cmake:%standard-phases 'configure)
18820 #:outputs outputs
18821 #:out-of-source? #f
18822 #:configure-flags '("-DUSE_SYSTEM_LIBVTERM=ON"))
18823 #t))
18824 (add-after 'configure 'make
18825 ;; Run make.
18826 (lambda* (#:key (make-flags '()) outputs #:allow-other-keys)
18827 ;; Compile the shared object file.
18828 (apply invoke "make" "all" make-flags)
18829 ;; Move the file into /lib.
18830 (install-file
18831 "vterm-module.so"
18832 (string-append (assoc-ref outputs "out") "/lib"))
18833 #t)))
18834 #:tests? #f))
18835 (native-inputs
18836 `(("cmake" ,cmake-minimal)
18837 ("libtool" ,libtool)
18838 ("libvterm" ,libvterm)))
18839 (home-page "https://github.com/akermu/emacs-libvterm")
18840 (synopsis "Emacs libvterm integration")
18841 (description "This package implements a bridge to @code{libvterm} to
18842 display a terminal in an Emacs buffer.")
18843 (license license:gpl3+))))
18844
18845 (define-public emacs-simple-mpc
18846 ;; There have been no releases.
18847 (let ((commit "bee8520e81292b4c7353e45b193f9a13b482f5b2")
18848 (revision "1"))
18849 (package
18850 (name "emacs-simple-mpc")
18851 (version (git-version "0" revision commit))
18852 (source
18853 (origin
18854 (method git-fetch)
18855 (uri (git-reference
18856 (url "https://github.com/jorenvo/simple-mpc.git")
18857 (commit commit)))
18858 (file-name (git-file-name name version))
18859 (sha256
18860 (base32
18861 "1ja06pv007cmzjjgka95jlg31k7d29jrih1yxyblsxv85s9sg21q"))))
18862 (build-system emacs-build-system)
18863 (propagated-inputs `(("emacs-s" ,emacs-s)))
18864 (home-page "https://github.com/jorenvo/simple-mpc")
18865 (synopsis "Simple Emacs frontend to mpc")
18866 (description "This package provides an Emacs major mode which acts as a
18867 front end to mpc, a client for the @dfn{Music Player Daemon} (MPD).")
18868 (license license:gpl3+))))
18869
18870 (define-public emacs-mkmcc-gnuplot-mode
18871 (package
18872 (name "emacs-mkmcc-gnuplot-mode")
18873 (version "1.2.0")
18874 (source
18875 (origin
18876 (method git-fetch)
18877 (uri (git-reference
18878 (url "https://github.com/mkmcc/gnuplot-mode")
18879 (commit "601f6392986f0cba332c87678d31ae0d0a496ce7")))
18880 (file-name (git-file-name name version))
18881 (sha256
18882 (base32
18883 "14f0yh1rjqc3337j4sbqzfb7pjim2c8a7wk1a73xkrdkmjn82vgb"))))
18884 (build-system emacs-build-system)
18885 (home-page "https://mkmcc.github.io/software/gnuplot-mode.html")
18886 (synopsis "Minimal emacs major mode for editing gnuplot scripts")
18887 (description "@code{emacs-mkmcc-gnuplot-mode} is a minimal emacs major
18888 mode for editing gnuplot scripts. It provides syntax highlighting,
18889 indentation and a command to plot the file.")
18890 (license license:gpl3+)))
18891
18892 (define-public emacs-cmake-font-lock
18893 (let ((commit "e0ceaaae19c13b66f781512e3295bfc6707b56f4")
18894 (revision "1"))
18895 (package
18896 (name "emacs-cmake-font-lock")
18897 (version (git-version "0.1.5" revision commit))
18898 (source (origin
18899 (method git-fetch)
18900 (uri (git-reference
18901 (url "https://github.com/Lindydancer/cmake-font-lock.git")
18902 (commit commit)))
18903 (file-name (git-file-name name version))
18904 (sha256
18905 (base32
18906 "03gsyn95dlmsn15bl353bphi3qy7ccn5bss3f7n97kf38bllh0yf"))))
18907 (build-system emacs-build-system)
18908 (native-inputs
18909 `(("emacs-faceup" ,emacs-faceup)))
18910 (arguments
18911 `(#:include (cons "^admin\\/" %default-include)))
18912 (home-page "https://github.com/Lindydancer/cmake-font-lock")
18913 (synopsis "Advanced type-aware syntax-highlighting for CMake")
18914 (description "This package highlights function arguments in CMake
18915 according to their use.")
18916 (license license:gpl3+))))
18917
18918 (define-public emacs-dtrt-indent
18919 (package
18920 (name "emacs-dtrt-indent")
18921 (version "0.8")
18922 (source (origin
18923 (method git-fetch)
18924 (uri (git-reference
18925 (url "https://github.com/jscheid/dtrt-indent")
18926 (commit version)))
18927 (file-name (git-file-name name version))
18928 (sha256
18929 (base32
18930 "0pgf0pvqd8k4yzhdn2df9lp0y8hmlm2ccrh07jivwlccs95pcz7z"))))
18931 (build-system emacs-build-system)
18932 (home-page "https://github.com/jscheid/dtrt-indent")
18933 (synopsis "Minor mode that guesses the indentation offset")
18934 (description "This package provides a minor mode that guesses the
18935 indentation offset originally used for creating source code files and
18936 transparently adjusts the corresponding settings in Emacs, making it more
18937 convenient to edit foreign files.")
18938 (license license:gpl2+)))
18939
18940 (define-public emacs-repo
18941 (package
18942 (name "emacs-repo")
18943 (version "0.1.3")
18944 (source (origin
18945 (method git-fetch)
18946 (uri (git-reference
18947 (url "https://github.com/canatella/repo-el")
18948 (commit version)))
18949 (file-name (git-file-name name version))
18950 (sha256
18951 (base32
18952 "0rbvcvm7bfr6ncji7cllfxyyr6x7n9fx863byp243phsj3n93adz"))))
18953 (build-system emacs-build-system)
18954 (native-inputs
18955 `(("emacs-el-mock" ,emacs-el-mock)
18956 ("ert-runner" ,emacs-ert-runner)))
18957 (propagated-inputs
18958 `(("emacs-f" ,emacs-f)
18959 ("magit" ,emacs-magit)))
18960 (home-page "https://github.com/canatella/repo-el")
18961 (synopsis "Emacs interface for the Google Repo tool")
18962 (description "This package provides integration of the Google Repo tool
18963 with emacs. It displays the output of the @code{repo status} command in a
18964 buffer and launches Magit from the status buffer for the project at point.")
18965 (license license:gpl3+)))
18966
18967 (define-public emacs-alect-themes
18968 (package
18969 (name "emacs-alect-themes")
18970 (version "0.9")
18971 (source (origin
18972 (method git-fetch)
18973 (uri (git-reference
18974 (url "https://github.com/alezost/alect-themes")
18975 (commit (string-append "v" version))))
18976 (file-name (git-file-name name version))
18977 (sha256
18978 (base32
18979 "0nffxpdm0sa7bynwi0rmlwpc4qmvbda5ankhzz7fmk4ap9fkjxv9"))))
18980 (build-system emacs-build-system)
18981 (home-page "https://github.com/alezost/alect-themes")
18982 (synopsis "Low contrast, light, dark and black color theme for Emacs")
18983 (description "@code{emacs-alect-themes} provides configurable light, dark
18984 and black color themes for Emacs. The themes are intended to be used with
18985 GUI.")
18986 (license license:gpl3+)))
18987
18988 (define-public emacs-google-c-style
18989 (let ((commit "6271f3f473ceb3a7fef99388a3040903b1a145f1")
18990 (revision "0"))
18991 (package
18992 (name "emacs-google-c-style")
18993 (version (git-version "0.1" revision commit))
18994 (source (origin
18995 (method git-fetch)
18996 (uri (git-reference
18997 (url "https://github.com/google/styleguide")
18998 (commit commit)))
18999 (file-name (git-file-name name version))
19000 (sha256
19001 (base32
19002 "1jghyyasdl15c4gaqaxmdn43am63k6bykn5ab83f1ahv9zi1krxk"))))
19003 (build-system emacs-build-system)
19004 (home-page "https://github.com/google/styleguide")
19005 (synopsis "Emacs settings file for Google C/C++ style")
19006 (description "@code{emacs-google-c-style} provides an Emacs settings
19007 file for Google C and C++ style.")
19008 (license license:gpl1+))))
19009
19010 (define-public emacs-redshank
19011 (let ((commit "f98e68f532e622bcd464292ca4a9cf5fbea14ebb")
19012 (revision "1"))
19013 (package
19014 (name "emacs-redshank")
19015 (version (git-version "0.1" revision commit))
19016 (source (origin
19017 (method git-fetch)
19018 (uri (git-reference
19019 (url "http://www.foldr.org/~michaelw/projects/redshank.git")
19020 (commit commit)))
19021 (file-name (git-file-name name version))
19022 (sha256
19023 (base32
19024 "1jdkgvd5xy9hl5q611jwah2n05abjp7qcy9sj4k1z11x0ii62b6p"))))
19025 (build-system emacs-build-system)
19026 (propagated-inputs
19027 `(("emacs-paredit" ,emacs-paredit)))
19028 (home-page "http://www.foldr.org/~michaelw/emacs/redshank/")
19029 (synopsis "Common Lisp Editing Extensions (for Emacs)")
19030 (description "Redshank is a collection of code-wrangling Emacs macros
19031 mostly geared towards Common Lisp, but some are useful for other Lisp
19032 dialects, too. Redshank's code transformations aim to be expression-based (as
19033 opposed to character-based).")
19034 (license license:gpl1+))))
19035
19036 (define-public emacs-disk-usage
19037 (package
19038 (name "emacs-disk-usage")
19039 (version "1.3.3")
19040 (source
19041 (origin
19042 (method git-fetch)
19043 (uri (git-reference
19044 (url "https://gitlab.com/Ambrevar/emacs-disk-usage.git")
19045 (commit version)))
19046 (file-name (git-file-name name version))
19047 (sha256
19048 (base32
19049 "0hv2gsd8k5fbjgckgiyisq4rn1i7y4rchbjy8kmixjv6mx563bll"))))
19050 (build-system emacs-build-system)
19051 (home-page "https://gitlab.com/Ambrevar/emacs-disk-usage")
19052 (synopsis "Sort and browse disk usage listings with Emacs")
19053 (description "Disk Usage is a file system analyzer: it offers a tabulated
19054 view of file listings sorted by size. Directory sizes are computed
19055 recursively. The results are cached for speed.")
19056 (license license:gpl3+)))
19057
19058 (define-public emacs-orgit
19059 (package
19060 (name "emacs-orgit")
19061 (version "1.5.3")
19062 (home-page "https://github.com/magit/orgit")
19063 (source (origin
19064 (method git-fetch)
19065 (uri (git-reference
19066 (url home-page)
19067 (commit (string-append "v" version))))
19068 (file-name (git-file-name name version))
19069 (sha256
19070 (base32
19071 "1ywavzki510rslsgfm0cnn3mlh644p61ha2nfb715xhkg7cd3j9g"))))
19072 (build-system emacs-build-system)
19073 (propagated-inputs
19074 `(("emacs-dash" ,emacs-dash)
19075 ("emacs-magit" ,emacs-magit)))
19076 (synopsis "Support for Org links to Magit buffers")
19077 (description "This package defines several Org link types, which can be
19078 used to link to certain Magit buffers. Use the command
19079 @command{org-store-link} while such a buffer is current to store a link.
19080 Later you can insert it into an Org buffer using the command
19081 @code{org-insert-link}.")
19082 (license license:gpl3+)))
19083
19084 (define-public emacs-amx
19085 (package
19086 (name "emacs-amx")
19087 (version "3.3")
19088 (source
19089 (origin
19090 (method git-fetch)
19091 (uri (git-reference
19092 (url "https://github.com/DarwinAwardWinner/amx")
19093 (commit (string-append "v" version))))
19094 (file-name (git-file-name name version))
19095 (sha256
19096 (base32 "0ikjzs119g57cwh2v3jmy63lggqc0ib99q5gsl93slkk4y2ihavw"))))
19097 (build-system emacs-build-system)
19098 (propagated-inputs
19099 `(("emacs-s" ,emacs-s)))
19100 (home-page "https://github.com/DarwinAwardWinner/amx")
19101 (synopsis "Alternative M-x interface for Emacs")
19102 (description "Amx is an alternative interface for M-x in Emacs. It
19103 provides several enhancements over the ordinary
19104 @code{execute-extended-command}, such as prioritizing your most-used commands
19105 in the completion list and showing keyboard shortcuts, and it supports several
19106 completion systems for selecting commands, such as Ido and Ivy.")
19107 (license license:gpl3+)))
19108
19109 (define-public emacs-lorem-ipsum
19110 (let ((commit "4b39f6fed455d67f635b3837cf5668bf74d0f6cd"))
19111 (package
19112 (name "emacs-lorem-ipsum")
19113 (version (git-version "0.2" "1" commit))
19114 (home-page "https://github.com/jschaf/emacs-lorem-ipsum/")
19115 (source (origin
19116 (method git-fetch)
19117 (uri (git-reference
19118 (url home-page)
19119 (commit commit)))
19120 (file-name (git-file-name name version))
19121 (sha256
19122 (base32
19123 "0a3b18p3vdjci89prsgdzjnfxsl8p67vjhf8ai4qdng7zvh50lir"))))
19124 (build-system emacs-build-system)
19125 (synopsis "Insert dummy pseudo Latin text in Emacs")
19126 (description "This package provides convenience functions to insert
19127 dummy Latin text into a buffer. This can be useful if you need to produce
19128 paragraphs or pages of text for testing purposes.")
19129 (license license:gpl3+))))
19130
19131 (define-public emacs-lisp-extra-font-lock
19132 (let ((commit "4605eccbe1a7fcbd3cacf5b71249435413b4db4f"))
19133 (package
19134 (name "emacs-lisp-extra-font-lock")
19135 (version (git-version "0.0.6" "1" commit))
19136 (home-page "https://github.com/Lindydancer/lisp-extra-font-lock")
19137 (source (origin
19138 (method git-fetch)
19139 (uri (git-reference
19140 (url home-page)
19141 (commit commit)))
19142 (file-name (git-file-name name version))
19143 (sha256
19144 (base32
19145 "152vcp3mdlv33jf5va4rinl1d0k960gnfhbrqqrafazgx9j3ya8w"))))
19146 (build-system emacs-build-system)
19147 (synopsis "Highlight bound variables and quoted expressions in Emacs")
19148 (description "This package highlight the location where local variables
19149 is created (bound, for example, by let) as well as quoted and backquoted
19150 constant expressions.")
19151 (license license:gpl3+))))
19152
19153 (define-public emacs-docker-tramp
19154 (package
19155 (name "emacs-docker-tramp")
19156 (version "0.1")
19157 (source
19158 (origin
19159 (method git-fetch)
19160 (uri (git-reference
19161 (url "https://github.com/emacs-pe/docker-tramp.el")
19162 (commit (string-append "v" version))))
19163 (file-name (git-file-name name version))
19164 (sha256
19165 (base32
19166 "0lxvzmfg52fhxrhbvp92zwp7cv4i1rlxnkyyzgngj3sjm7y60yvg"))))
19167 (build-system emacs-build-system)
19168 (home-page "https://github.com/emacs-pe/docker-tramp.el")
19169 (synopsis "TRAMP integration for docker containers")
19170 (description
19171 "This package provides a TRAMP method for Docker containers.")
19172 (license license:gpl3+)))
19173
19174 (define-public emacs-docker
19175 (package
19176 (name "emacs-docker")
19177 (version "1.3.0")
19178 (source (origin
19179 (method git-fetch)
19180 (uri (git-reference
19181 (url "https://github.com/Silex/docker.el")
19182 (commit version)))
19183 (file-name (git-file-name name version))
19184 (sha256
19185 (base32
19186 "1g8r1faqp0z0vqp9qrl8m84pa0v2ddvc91klphdkfmldwv7rfipw"))))
19187 (inputs
19188 `(("emacs-undercover" ,emacs-undercover)))
19189 (propagated-inputs
19190 `(("emacs-dash" ,emacs-dash)
19191 ("emacs-docker-tramp" ,emacs-docker-tramp)
19192 ("emacs-magit-popup" ,emacs-magit-popup)
19193 ("emacs-s" ,emacs-s)
19194 ("emacs-tablist" ,emacs-tablist)
19195 ("emacs-json-mode" ,emacs-json-mode)))
19196 (arguments
19197 `(#:phases
19198 (modify-phases %standard-phases
19199 (delete 'check)))) ;no tests
19200 (build-system emacs-build-system)
19201 (home-page "https://github.com/Silex/docker.el")
19202 (synopsis "Manage docker from Emacs")
19203 (description "This package provides an Emacs interface for Docker.")
19204 (license license:gpl3+)))
19205
19206 (define-public emacs-dockerfile-mode
19207 ;; Latest upstream release is too old.
19208 (let ((commit "ed73e82dcc636dad00d1a8c3b32a49136d25ee60"))
19209 (package
19210 (name "emacs-dockerfile-mode")
19211 (version (git-version "1.2" "2" commit))
19212 (source
19213 (origin
19214 (method git-fetch)
19215 (uri (git-reference
19216 (url "https://github.com/spotify/dockerfile-mode.git")
19217 (commit commit)))
19218 (file-name (git-file-name name version))
19219 (sha256
19220 (base32
19221 "0lri2rnx4lr23vqfphkpq39cd4xfgzkvz1xsz7ccdvl4qj0k7fdl"))))
19222 (build-system emacs-build-system)
19223 (propagated-inputs
19224 `(("emacs-s" ,emacs-s)))
19225 (home-page "https://github.com/spotify/dockerfile-mode")
19226 (synopsis "Major mode for editing Dockerfile")
19227 (description
19228 "This package provides a major mode @code{dockerfile-mode} for use with
19229 the standard @code{Dockerfile} file format.")
19230 (license license:asl2.0))))
19231
19232 (define-public emacs-lsp-mode
19233 (package
19234 (name "emacs-lsp-mode")
19235 (version "6.3.1")
19236 (source (origin
19237 (method git-fetch)
19238 (uri (git-reference
19239 (url "https://github.com/emacs-lsp/lsp-mode.git")
19240 (commit version)))
19241 (file-name (git-file-name name version))
19242 (sha256
19243 (base32
19244 "125rpmhlyd6wmq7p71j54x3rzmk07vn1hdcvvdjjip5481raxcwx"))))
19245 (build-system emacs-build-system)
19246 (propagated-inputs
19247 `(("emacs-dash" ,emacs-dash)
19248 ("emacs-f" ,emacs-f)
19249 ("emacs-ht" ,emacs-ht)
19250 ("emacs-markdown-mode" ,emacs-markdown-mode)
19251 ("emacs-spinner" ,emacs-spinner)
19252 ("emacs-hydra" ,emacs-hydra)))
19253 (home-page "https://github.com/emacs-lsp/lsp-mode")
19254 (synopsis "Emacs client and library for the Language Server Protocol")
19255 (description "@code{LSP-mode} is a client and library implementation for
19256 the Language Server Protocol. This mode aims to provide an IDE-like
19257 experience by providing optional integration with other popular Emacs packages
19258 like @code{company}, @code{flycheck}, and @code{projectile}.")
19259 (license license:gpl3+)))
19260
19261 (define-public emacs-pfuture
19262 (let ((commit "368254ee30692c709400db413c347e18e76a8a55"))
19263 (package
19264 (name "emacs-pfuture")
19265 (version (git-version "1.6" "1" commit))
19266 (source (origin
19267 (method git-fetch)
19268 (uri (git-reference
19269 (url "https://github.com/Alexander-Miller/pfuture.git")
19270 (commit commit)))
19271 (file-name (git-file-name name version))
19272 (sha256
19273 (base32
19274 "096raqpjx84njws85r7pqq1wi9w9bjwkr0ga1mbbhlna1mfn3mg4"))))
19275 (build-system emacs-build-system)
19276 (home-page
19277 "https://github.com/Alexander-Miller/pfuture")
19278 (synopsis "Simple wrapper around asynchronous processes for Emacs")
19279 (description "This package provides a simple wrapper around asynchronous
19280 processes for Emacs")
19281 (license license:gpl3+))))
19282
19283 (define-public emacs-treemacs
19284 (package
19285 (name "emacs-treemacs")
19286 (version "2.8")
19287 (source (origin
19288 (method git-fetch)
19289 (uri (git-reference
19290 (url "https://github.com/Alexander-Miller/treemacs.git")
19291 (commit version)))
19292 (file-name (git-file-name name version))
19293 (sha256
19294 (base32
19295 "0m083g3pg0n4ymi1w0jx34awr7cqbm4r561adij9kklblxsz7sc2"))))
19296 (build-system emacs-build-system)
19297 (propagated-inputs
19298 `(("emacs-dash" ,emacs-dash)
19299 ("emacs-s" ,emacs-s)
19300 ("emacs-f" ,emacs-f)
19301 ("emacs-ace-window" ,emacs-ace-window)
19302 ("emacs-pfuture" ,emacs-pfuture)
19303 ("emacs-hydra" ,emacs-hydra)
19304 ("emacs-ht" ,emacs-ht)))
19305 (native-inputs
19306 `(("emacs-buttercup" ,emacs-buttercup)
19307 ("emacs-el-mock" ,emacs-el-mock)))
19308 (inputs
19309 `(("python" ,python)))
19310 (arguments
19311 `(#:tests? #t ;TODO: Investigate ‘treemacs--parse-collapsed-dirs’ test failure.
19312 #:phases
19313 (modify-phases %standard-phases
19314 (add-after 'unpack 'fix-makefile
19315 (lambda _
19316 (substitute* "Makefile"
19317 (("@\\$\\(CASK\\) exec ") "")
19318 ;; Guix does not need to prepare dependencies before testing.
19319 (("test: prepare") "test:"))
19320 #t))
19321 (add-after 'fix-makefile 'chdir-elisp
19322 ;; Elisp directory is not in root of the source.
19323 (lambda _
19324 (chdir "src/elisp")))
19325 (replace 'check
19326 (lambda _
19327 (with-directory-excursion "../.." ;treemacs root
19328 (chmod "test/test-treemacs.el" #o644)
19329 (emacs-substitute-sexps "test/test-treemacs.el"
19330 ("(describe \"treemacs--parse-collapsed-dirs\""
19331 ""))
19332 (invoke "make" "test"))))
19333 (add-before 'install 'patch-paths
19334 (lambda* (#:key inputs outputs #:allow-other-keys)
19335 (with-directory-excursion "../.." ;treemacs root
19336 (chmod "src/elisp/treemacs-core-utils.el" #o644)
19337 (emacs-substitute-variables "src/elisp/treemacs-core-utils.el"
19338 ("treemacs-dir"
19339 (string-append (assoc-ref outputs "out") "/")))
19340 (chmod "src/elisp/treemacs-icons.el" #o644)
19341 (substitute* "src/elisp/treemacs-icons.el"
19342 (("icons/default") "share/emacs-treemacs/images"))
19343 (chmod "src/elisp/treemacs-customization.el" #o644)
19344 (emacs-substitute-variables "src/elisp/treemacs-customization.el"
19345 ("treemacs-python-executable"
19346 (string-append (assoc-ref inputs "python") "/bin/python3")))
19347 (chmod "src/elisp/treemacs-async.el" #o644)
19348 (substitute* "src/elisp/treemacs-async.el"
19349 (("src/scripts") (string-append "share/" ,name "/scripts"))))
19350 #t))
19351 (add-after 'install 'install-data
19352 (lambda* (#:key outputs #:allow-other-keys)
19353 (let ((out (assoc-ref outputs "out")))
19354 (with-directory-excursion "../.." ;treemacs root
19355 (copy-recursively "icons/default"
19356 (string-append out "/share/" ,name "/images"))
19357 (copy-recursively
19358 "src/scripts"
19359 (string-append out "/share/" ,name "/scripts"))
19360 #t)))))))
19361 (home-page "https://github.com/Alexander-Miller/treemacs")
19362 (synopsis "Emacs tree style file explorer")
19363 (description "Powerful and flexible file tree project explorer.")
19364 (license license:gpl3+)))
19365
19366 (define-public emacs-treemacs-extra
19367 (package
19368 (inherit emacs-treemacs)
19369 (name "emacs-treemacs-extra")
19370 (propagated-inputs
19371 `(,@(package-propagated-inputs emacs-treemacs)
19372 ("emacs-evil" ,emacs-evil)
19373 ("emacs-magit" ,emacs-magit)
19374 ("emacs-projectile" ,emacs-projectile)))
19375 (arguments
19376 (substitute-keyword-arguments
19377 (package-arguments emacs-treemacs)
19378 ((#:phases phases)
19379 `(modify-phases ,phases
19380 (add-after 'chdir-elisp 'copy-extra
19381 (lambda _
19382 (copy-recursively "../extra" ".")))))))))
19383
19384 (define-public emacs-libyaml
19385 ;; Upstream made no release so far.
19386 (let ((version "0")
19387 (revision "1")
19388 (commit "703e0d448c7ee24e25b513a3c65980c80e166805"))
19389 (package
19390 (name "emacs-libyaml")
19391 (version (git-version version revision commit))
19392 (source
19393 (origin
19394 (method git-fetch)
19395 (uri (git-reference
19396 (url "https://github.com/syohex/emacs-libyaml")
19397 (commit commit)))
19398 (file-name (git-file-name name version))
19399 (sha256
19400 (base32 "08l7pm9v50ykd3fkbm0bh2kcd57cadbc5i9r6rj51vd32w3pl2yl"))))
19401 (build-system emacs-build-system)
19402 (arguments
19403 `(#:tests? #f ;no test
19404 #:modules ((guix build emacs-build-system)
19405 (guix build emacs-utils)
19406 (guix build utils))
19407 #:imported-modules (,@%emacs-build-system-modules
19408 (guix build gnu-build-system))
19409 #:phases
19410 (modify-phases %standard-phases
19411 (add-before 'add-source-to-load-path 'substitute-libyaml-core-path
19412 (lambda* (#:key outputs #:allow-other-keys)
19413 (chmod "libyaml.el" #o644)
19414 (substitute* "libyaml.el"
19415 (("^\\(require 'libyaml-core\\)")
19416 (string-append "(module-load \"" (assoc-ref outputs "out")
19417 "/lib/libyaml-core.so\")")))
19418 #t))
19419 (add-after 'check 'make
19420 ;; Run make.
19421 (lambda* (#:key (make-flags '()) outputs #:allow-other-keys)
19422 ;; Compile the shared object file.
19423 (apply invoke "make" "all" "CPPFLAGS=" make-flags)
19424 ;; Move the file into /lib.
19425 (install-file "libyaml-core.so"
19426 (string-append (assoc-ref outputs "out") "/lib"))
19427 #t)))))
19428 (native-inputs `(("libyaml" ,libyaml)))
19429 (home-page "https://github.com/syohex/emacs-libyaml")
19430 (synopsis "Libyaml bindings for Emacs")
19431 (description
19432 "This package implements bindings for LibYAML to be able to parse YAML
19433 files in Elisp.")
19434 (license license:gpl3+))))
19435
19436 (define-public emacs-lsp-java
19437 (package
19438 (name "emacs-lsp-java")
19439 (version "2.2")
19440 (source (origin
19441 (method git-fetch)
19442 (uri (git-reference
19443 (url "https://github.com/emacs-lsp/lsp-java.git")
19444 (commit version)))
19445 (file-name (git-file-name name version))
19446 (sha256
19447 (base32
19448 "0hcnvbyaqyypgby1bfj4zbrbq97amk8hfx0sj4w73rl46yf4jk3j"))))
19449 (build-system emacs-build-system)
19450 (propagated-inputs
19451 `(("emacs-lsp-mode" ,emacs-lsp-mode)
19452 ("emacs-markdown-mode" ,emacs-markdown-mode)
19453 ("emacs-dash" ,emacs-dash)
19454 ("emacs-f" ,emacs-f)
19455 ("emacs-ht" ,emacs-ht)
19456 ("emacs-request" ,emacs-request)
19457 ("emacs-treemacs" ,emacs-treemacs)))
19458 (home-page "https://github.com/emacs-lsp/lsp-java/")
19459 (synopsis "Java support for lsp-mode")
19460 (description "Emacs Java IDE using Eclipse JDT Language Server.")
19461 (license license:gpl3+)))
19462
19463 (define-public emacs-lsp-ui
19464 (package
19465 (name "emacs-lsp-ui")
19466 (version "6.2")
19467 (source (origin
19468 (method git-fetch)
19469 (uri (git-reference
19470 (url "https://github.com/emacs-lsp/lsp-ui.git")
19471 (commit version)))
19472 (file-name (git-file-name name version))
19473 (sha256
19474 (base32
19475 "024753bi0p1jyjhw7wk8k6s16kbwab5ar4cfasvbn8g08acf293b"))))
19476 (build-system emacs-build-system)
19477 (propagated-inputs
19478 `(("emacs-dash" ,emacs-dash)
19479 ("emacs-lsp-mode" ,emacs-lsp-mode)
19480 ("emacs-markdown-mode" ,emacs-markdown-mode)
19481 ("emacs-flycheck" ,emacs-flycheck)))
19482 (home-page "https://github.com/emacs-lsp/lsp-ui")
19483 (synopsis "User interface extensions for @code{lsp-mode}")
19484 (description
19485 "@code{LSP-ui} contains several enhancements and integrations for
19486 @code{lsp-mode}, such as visual flychecking, displaying references in-line,
19487 and code peeking.")
19488 (license license:gpl3+)))
19489
19490 (define-public emacs-lsp-lua-emmy
19491 (let ((commit "ab53fb2a8b8942804eb75bab5624fd19f1d360bf"))
19492 (package
19493 (name "emacs-lsp-lua-emmy")
19494 (version (git-version "0.1.0" "1" commit))
19495 (source (origin
19496 (method git-fetch)
19497 (uri (git-reference
19498 (url "https://github.com/phenix3443/lsp-lua-emmy.git")
19499 (commit commit)))
19500 (file-name (git-file-name name version))
19501 (sha256
19502 (base32
19503 "0rbizis73n1w5ig07fj1han74chbc1zpbp5bn37rj0gz608aqka8"))))
19504 (build-system emacs-build-system)
19505 (propagated-inputs
19506 `(("emacs-lsp-mode" ,emacs-lsp-mode)))
19507 (home-page "https://github.com/phenix3443/lsp-lua-emmy/")
19508 (synopsis "Lua support in @code{lsp-mode} client for Emacs")
19509 (description "This package provides a Lua language support in
19510 @code{lsp-mode} client for Emacs.")
19511 (license license:gpl3+))))
19512
19513 (define-public emacs-lsp-ivy
19514 (let ((commit "caf1e1d7e22ed0b5fe18dd508d1a6f83dd163288")
19515 (revision "2"))
19516 (package
19517 (name "emacs-lsp-ivy")
19518 (version (git-version "0.1" revision commit))
19519 (source (origin
19520 (method git-fetch)
19521 (uri (git-reference
19522 (url "https://github.com/emacs-lsp/lsp-ivy.git")
19523 (commit commit)))
19524 (file-name (git-file-name name version))
19525 (sha256
19526 (base32
19527 "084ds4qhzhivfnicy3h7z4mblxgcqx8pfnkbjr9qjrfng7cisy4z"))))
19528 (build-system emacs-build-system)
19529 (propagated-inputs
19530 `(("emacs-ivy" ,emacs-ivy)
19531 ("emacs-lsp-mode" ,emacs-lsp-mode)
19532 ("emacs-dash" ,emacs-dash)))
19533 (home-page "https://github.com/emacs-lsp/lsp-ivy")
19534 (synopsis "Provide LSP-enhanced completion for symbols")
19535 (description
19536 "This package enhances @code{ivy} with completion for symbols from
19537 workspaces with a LSP-compliant server running.")
19538 (license license:gpl3+))))
19539
19540 (define-public emacs-helm-lsp
19541 (let ((commit "3a58ca4cfd94b9ab1e15e819d3b16ef568e8889b")
19542 (revision "1"))
19543 (package
19544 (name "emacs-helm-lsp")
19545 (version (git-version "0.1" revision commit))
19546 (source (origin
19547 (method git-fetch)
19548 (uri (git-reference
19549 (url "https://github.com/emacs-lsp/helm-lsp.git")
19550 (commit commit)))
19551 (file-name (git-file-name name version))
19552 (sha256
19553 (base32
19554 "0wh5zai3s17ss2q8wcdd6d87hv1h3nbyrxxs4js9cas8m6y2ssjv"))))
19555 (build-system emacs-build-system)
19556 (propagated-inputs
19557 `(("emacs-helm" ,emacs-helm)
19558 ("emacs-lsp-mode" ,emacs-lsp-mode)
19559 ("emacs-dash" ,emacs-dash)))
19560 (home-page "https://github.com/emacs-lsp/helm-lsp")
19561 (synopsis "Provide LSP-enhanced completion for symbols")
19562 (description
19563 "This package enhances @code{helm} with completion for symbols from
19564 workspaces with a LSP-compliant server running.")
19565 (license license:gpl3+))))
19566
19567 (define-public emacs-helm-notmuch
19568 (package
19569 (name "emacs-helm-notmuch")
19570 (version "1.2")
19571 (home-page "https://github.com/emacs-helm/helm-notmuch/")
19572 (source (origin
19573 (method git-fetch)
19574 (uri (git-reference
19575 (url home-page)
19576 (commit version)))
19577 (file-name (git-file-name name version))
19578 (sha256
19579 (base32
19580 "1k038dbdpaa411gl4071x19fklhnizhr346plxw23lsnxir9dhqc"))))
19581 (build-system emacs-build-system)
19582 (propagated-inputs
19583 `(("emacs-helm" ,emacs-helm)
19584 ("notmuch" ,notmuch)))
19585 (synopsis "Search emails with Emacs Notmuch and Helm")
19586 (description
19587 "This package can be used to search emails in Emacs, searching result
19588 displays as you type thanks to Helm, though @command{notmuch-search} does the
19589 real search.")
19590 (license license:gpl3+)))
19591
19592 (define-public emacs-elmacro
19593 (let ((commit "89b9b0feabafd01fee48111d67131c4c9b5fed9a"))
19594 (package
19595 (name "emacs-elmacro")
19596 (version (git-version "1.1.0" "1" commit))
19597 (home-page "https://github.com/Silex/elmacro")
19598 (source (origin
19599 (method git-fetch)
19600 (uri (git-reference
19601 (url home-page)
19602 (commit commit)))
19603 (file-name (git-file-name name version))
19604 (sha256
19605 (base32
19606 "06wkzafh6vbcjf0m3sl253mgcq32p8cdv7vsfmyx51baa36938ha"))))
19607 (build-system emacs-build-system)
19608 (propagated-inputs
19609 `(("emacs-s" ,emacs-s)
19610 ("emacs-dash" ,emacs-dash)))
19611 (synopsis "Convert keyboard macros to Emacs Lisp")
19612 (description
19613 "This package displays keyboard macros or latest interactive commands
19614 as Emacs Lisp.")
19615 (license license:gpl3+))))
19616
19617 (define-public emacs-transient
19618 (let ((revision "1")
19619 (commit "a6e4cced303b3febd59412b24a97eaf1e855e6d7"))
19620 (package
19621 (name "emacs-transient")
19622 (version (git-version "0.2.0" revision commit))
19623 (source (origin
19624 (method git-fetch)
19625 (uri (git-reference
19626 (url "https://github.com/magit/transient")
19627 (commit commit)))
19628 (file-name (git-file-name name version))
19629 (sha256
19630 (base32
19631 "01xsw9sxr50valc2q590ngy3ra2ll01p39l9cbzvqqz6mxyymxmd"))))
19632 (build-system emacs-build-system)
19633 (arguments
19634 `(#:tests? #f ;no test suite
19635 #:phases
19636 (modify-phases %standard-phases
19637 (add-after 'unpack 'build-info-manual
19638 (lambda _
19639 (invoke "make" "info")
19640 ;; Move the info file to lisp so that it gets installed by the
19641 ;; emacs-build-system.
19642 (rename-file "docs/transient.info" "lisp/transient.info")))
19643 (add-after 'build-info-manual 'enter-lisp-directory
19644 (lambda _
19645 (chdir "lisp")
19646 #t)))))
19647 (native-inputs
19648 `(("texinfo" ,texinfo)))
19649 (propagated-inputs
19650 `(("dash" ,emacs-dash)))
19651 (home-page "https://magit.vc/manual/transient")
19652 (synopsis "Transient commands in Emacs")
19653 (description "Taking inspiration from prefix keys and prefix arguments
19654 in Emacs, Transient implements a similar abstraction involving a prefix
19655 command, infix arguments and suffix commands. We could call this abstraction
19656 a \"transient command\", but because it always involves at least two
19657 commands (a prefix and a suffix) we prefer to call it just a \"transient\".")
19658 (license license:gpl3+))))
19659
19660 (define-public emacs-forge
19661 (let ((commit "09bf8adc9c9afb492632e612f51f39e1cc15fca0"))
19662 (package
19663 (name "emacs-forge")
19664 (version (git-version "0.1.0" "4" commit))
19665 (source
19666 (origin
19667 (method git-fetch)
19668 (uri (git-reference
19669 (url "https://github.com/magit/forge.git")
19670 (commit commit)))
19671 (file-name (git-file-name name version))
19672 (sha256
19673 (base32
19674 "148h1rvmfmxyrfy2q5l0vzblr7lpsyw1si30hfwhzsj8fvj21qcr"))))
19675 (build-system emacs-build-system)
19676 (native-inputs
19677 `(("texinfo" ,texinfo)))
19678 (propagated-inputs
19679 `(("emacs-closql" ,emacs-closql)
19680 ("emacs-dash" ,emacs-dash)
19681 ("emacs-emacsql-sqlite" ,emacs-emacsql)
19682 ("emacs-ghub" ,emacs-ghub)
19683 ("emacs-let-alist" ,emacs-let-alist)
19684 ("emacs-magit" ,emacs-magit)
19685 ("emacs-markdown-mode" ,emacs-markdown-mode)
19686 ("emacs-transient" ,emacs-transient)))
19687 (arguments
19688 `(#:tests? #f ;no tests
19689 #:phases
19690 (modify-phases %standard-phases
19691 (add-after 'unpack 'build-info-manual
19692 (lambda _
19693 (invoke "make" "info")
19694 ;; Move the info file to lisp so that it gets installed by the
19695 ;; emacs-build-system.
19696 (rename-file "docs/forge.info" "lisp/forge.info")))
19697 (add-after 'build-info-manual 'chdir-lisp
19698 (lambda _
19699 (chdir "lisp")
19700 #t)))))
19701 (home-page "https://github.com/magit/forge/")
19702 (synopsis "Access Git forges from Magit")
19703 (description "Work with Git forges, such as Github and Gitlab, from the
19704 comfort of Magit and the rest of Emacs.")
19705 (license license:gpl3+))))
19706
19707 (define-public emacs-matcha
19708 (let ((commit "c7df5cf5cdac9ae369e241342389ccda0205eab9"))
19709 (package
19710 (name "emacs-matcha")
19711 (version (git-version "0.0.1" "1" commit)) ;no upstream release
19712 (source (origin
19713 (method git-fetch)
19714 (uri (git-reference
19715 (url "https://github.com/jojojames/matcha.git")
19716 (commit commit)))
19717 (file-name (git-file-name name version))
19718 (sha256
19719 (base32
19720 "1lfnh1glg6al677m7ci0x8g5wjdhjxlfl3nv1f1ppsw4dpnwsj9b"))))
19721 (propagated-inputs
19722 `(("emacs-hydra" ,emacs-hydra)
19723 ("emacs-transient" ,emacs-transient)))
19724 (build-system emacs-build-system)
19725 (home-page "https://github.com/jojojames/matcha/")
19726 (synopsis "Collection of hydras with a generic interface to launch them")
19727 (description "Matcha provides a collection of transients for various
19728 packages with a consistent way to use them.")
19729 (license license:gpl3+))))
19730
19731 (define-public emacs-undo-propose-el
19732 (let ((commit "f80baee566807d733fbacbab08a897bcd62579c3")
19733 (revision "3"))
19734 (package
19735 (name "emacs-undo-propose-el")
19736 (version (git-version "3.0.0" revision commit))
19737 (source
19738 (origin
19739 (method git-fetch)
19740 (uri (git-reference
19741 (url "https://github.com/jackkamm/undo-propose-el")
19742 (commit commit)))
19743 (file-name (git-file-name name version))
19744 (sha256
19745 (base32
19746 "00rqz63bhh66q78l646q3w16gydygj8h4d8np0dpbifgzciak90b"))))
19747 (build-system emacs-build-system)
19748 (arguments
19749 `(#:tests? #t
19750 #:test-command '("make" "test")))
19751 (home-page "https://github.com/jackkamm/undo-propose-el")
19752 (synopsis "Simple and safe navigation of @code{undo} history")
19753 (description "This package permits navigation of @code{undo} history in a
19754 temporary buffer, which is read-only save for @code{undo} commands, and
19755 subsequent committal of a chain of @code{undo} commands as a single edit in
19756 the @code{undo} history.")
19757 (license license:gpl3+))))
19758
19759 (define-public emacs-elisp-docstring-mode
19760 (let ((commit "f512e509dd690f65133e55563ebbfd2dede5034f")
19761 (version "0.0.1")
19762 (revision "1"))
19763 (package
19764 (name "emacs-elisp-docstring-mode")
19765 (version (git-version version revision commit))
19766 (source
19767 (origin
19768 (method git-fetch)
19769 (uri (git-reference
19770 (url "https://github.com/Fuco1/elisp-docstring-mode")
19771 (commit commit)))
19772 (file-name (git-file-name name version))
19773 (sha256
19774 (base32
19775 "0al8m75p359h4n82rf0dsl22qfdg9cwwywn5pn7x6gb96c7qrqaa"))))
19776 (build-system emacs-build-system)
19777 (home-page "https://github.com/Fuco1/elisp-docstring-mode")
19778 (synopsis "Major mode for editing Emacs Lisp docstrings")
19779 (description "This package provides font lock and automatic escaping and
19780 unescaping of quotes.")
19781 (license license:gpl3+))))
19782
19783 (define-public emacs-vimrc-mode
19784 (let ((commit "13bc150a870d5d4a95f1111e4740e2b22813c30e")
19785 (version "0.3.1")
19786 (revision "1"))
19787 (package
19788 (name "emacs-vimrc-mode")
19789 (version (git-version version revision commit))
19790 (source
19791 (origin
19792 (method git-fetch)
19793 (uri (git-reference
19794 (url "https://github.com/mcandre/vimrc-mode")
19795 (commit commit)))
19796 (file-name (git-file-name name version))
19797 (sha256
19798 (base32
19799 "0026dqs3hwygk2k2xfra90w5sfnxrfj7l69jz7sq5glavbf340pk"))))
19800 (build-system emacs-build-system)
19801 (home-page "https://github.com/mcandre/vimrc-mode")
19802 (synopsis "Major mode for Vimscript")
19803 (description "This package provides font lock and @code{beginning-} and
19804 @code{end-of-defun} functions for Vimscript files.")
19805 (license license:gpl3+))))
19806
19807 (define-public emacs-flycheck-elm
19808 (let ((revision "0")
19809 (commit "1b60050efd4729bfba548f3e5adbcb58436667cb"))
19810 (package
19811 (name "emacs-flycheck-elm")
19812 (version (git-version "0" revision commit))
19813 (source
19814 (origin
19815 (method git-fetch)
19816 (uri
19817 (git-reference
19818 (url "https://github.com/bsermons/flycheck-elm")
19819 (commit commit)))
19820 (file-name (git-file-name name version))
19821 (sha256
19822 (base32 "1kjms9d2c98ffd1qxs879qhg0n4jzic0r5kni9y4gz3v09ww8zms"))))
19823 (build-system emacs-build-system)
19824 (propagated-inputs
19825 `(("emacs-flycheck" ,emacs-flycheck)
19826 ("emacs-let-alist" ,emacs-let-alist)))
19827 (home-page "https://github.com/bsermons/flycheck-elm")
19828 (synopsis "Flycheck support for the Elm language")
19829 (description "Flycheck Elm adds Flycheck support for Elm language.")
19830 (license license:gpl3+))))
19831
19832 (define-public emacs-flycheck-haskell
19833 (let ((commit "32ddff87165a7d3a35e7318bee997b5b4bd41278")
19834 (revision "2"))
19835 (package
19836 (name "emacs-flycheck-haskell")
19837 (version (git-version "0.8" revision commit))
19838 (source
19839 (origin
19840 (method git-fetch)
19841 (uri (git-reference
19842 (url "https://github.com/flycheck/flycheck-haskell")
19843 (commit commit)))
19844 (file-name (git-file-name name version))
19845 (sha256
19846 (base32
19847 "10pgsbagq6qj4mshq5sypv0q0khck92b30sc793b4g1pfpsxvgjn"))))
19848 (build-system emacs-build-system)
19849 (propagated-inputs
19850 `(("emacs-dash" ,emacs-dash)
19851 ("emacs-seq" ,emacs-seq)
19852 ("emacs-flycheck" ,emacs-flycheck)
19853 ("emacs-haskell-mode" ,emacs-haskell-mode)
19854 ("emacs-let-alist" ,emacs-let-alist)))
19855 (arguments
19856 `(#:include '("\\.el$" "\\.hs$")))
19857 (home-page "https://github.com/flycheck/flycheck-haskell")
19858 (synopsis "Flycheck for Haskell")
19859 (description "This package configures syntax-checking for Haskell
19860 buffers.")
19861 (license license:gpl3+))))
19862
19863 (define-public emacs-js2-refactor-el
19864 (let ((commit "d4c40b5fc86d3edd7c6a7d83ac86483ee1cb7a28")
19865 (revision "2"))
19866 (package
19867 (name "emacs-js2-refactor-el")
19868 (version (git-version "0.9.0" revision commit))
19869 (source
19870 (origin
19871 (method git-fetch)
19872 (uri (git-reference
19873 (url "https://github.com/magnars/js2-refactor.el")
19874 (commit commit)))
19875 (file-name (git-file-name name version))
19876 (sha256
19877 (base32
19878 "08b25y3raz0p98zxk9xdd8nj9shqd6mzrqhbq1gg4cwsmi7h7ly1"))))
19879 (build-system emacs-build-system)
19880 (propagated-inputs
19881 `(("emacs-dash" ,emacs-dash)
19882 ("emacs-s" ,emacs-s)
19883 ("emacs-js2-mode" ,emacs-js2-mode)
19884 ("emacs-yasnippet" ,emacs-yasnippet)
19885 ("emacs-multiple-cursors" ,emacs-multiple-cursors)))
19886 (native-inputs
19887 `(("emacs-buttercup" ,emacs-buttercup)
19888 ("emacs-espuds" ,emacs-espuds)))
19889 (home-page "https://github.com/magnars/js2-refactor.el")
19890 (synopsis "JavaScript refactoring in Emacs")
19891 (description "This package provides various refactoring functions for
19892 JavaScript.")
19893 (license license:gpl3+))))
19894
19895 (define-public emacs-prettier
19896 (let ((commit "e9b73e81d3e1642aec682195f127a42dfb0b5774")
19897 (version "0.1.0")
19898 (revision "1"))
19899 (package
19900 (name "emacs-prettier")
19901 (version (git-version version revision commit))
19902 (source
19903 (origin
19904 (method git-fetch)
19905 (uri (git-reference
19906 (url "https://github.com/prettier/prettier-emacs")
19907 (commit commit)))
19908 (file-name (git-file-name name version))
19909 (sha256
19910 (base32
19911 "0hj4fv3fgc60i6jrsx4a81s5c9fsxxafhhs3q2q1dypsscjci9ph"))))
19912 (build-system emacs-build-system)
19913 (home-page "https://github.com/prettier/prettier-emacs")
19914 (synopsis "Automatic formatting of JavaScript code")
19915 (description "This package integrates Prettier with Emacs, and
19916 provides a minor mode that autoformats the buffer upon saving.")
19917 (license license:expat))))
19918
19919 (define-public emacs-fish-mode
19920 (package
19921 (name "emacs-fish-mode")
19922 (version "0.1.4")
19923 (source
19924 (origin
19925 (method git-fetch)
19926 (uri (git-reference
19927 (url "https://github.com/wwwjfy/emacs-fish")
19928 (commit version)))
19929 (file-name (git-file-name name version))
19930 (sha256
19931 (base32
19932 "0a74ghmjjrxfdhk4mvq6lar4w6l6lc4iilabs99smqr2fn5rsslq"))))
19933 (build-system emacs-build-system)
19934 (home-page "https://github.com/wwwjfy/emacs-fish")
19935 (synopsis "Major mode for Fish shell scripts")
19936 (description "This package provides syntax highlighting and indentation
19937 functions for Fish shell scripts.")
19938 (license license:gpl3+)))
19939
19940 (define-public emacs-eshell-up
19941 (let ((commit "9c100bae5c3020e8d9307e4332d3b64e7dc28519")
19942 (version "0.0.3")
19943 (revision "12"))
19944 (package
19945 (name "emacs-eshell-up")
19946 (version (git-version version revision commit))
19947 (source
19948 (origin
19949 (method git-fetch)
19950 (uri (git-reference
19951 (url "https://github.com/peterwvj/eshell-up")
19952 (commit commit)))
19953 (file-name (git-file-name name version))
19954 (sha256
19955 (base32
19956 "00zdbcncjabgj5mp47l1chymx5na18v2g4kj730dgmj3rnl3iz2q"))))
19957 (build-system emacs-build-system)
19958 (home-page "https://github.com/peterwvj/eshell-up")
19959 (synopsis "Quickly go to a parent directory in @code{Eshell}")
19960 (description "This package provides quick navigation to a specific
19961 parent directory using @code{Eshell}.")
19962 (license license:gpl3+))))
19963
19964 (define-public emacs-tco-el
19965 (let ((commit "482db5313f090b17ed22ccd856f0e141dc75afe6")
19966 (revision "1"))
19967 (package
19968 (name "emacs-tco-el")
19969 (version (git-version "0.3" revision commit))
19970 (source
19971 (origin
19972 (method git-fetch)
19973 (uri (git-reference
19974 (url "https://github.com/Wilfred/tco.el")
19975 (commit commit)))
19976 (file-name (git-file-name name version))
19977 (sha256
19978 (base32
19979 "1z7xkbrqznk6ni687qqknp8labcyhl8y6576hjfri89fn21385y9"))))
19980 (build-system emacs-build-system)
19981 (propagated-inputs
19982 `(("emacs-dash" ,emacs-dash)))
19983 (native-inputs
19984 `(("emacs-ert-runner" ,emacs-ert-runner)
19985 ("emacs-undercover" ,emacs-undercover)))
19986 (arguments
19987 `(#:tests? #t
19988 #:test-command '("ert-runner")))
19989 (home-page "https://github.com/Wilfred/tco.el")
19990 (synopsis "Tail-call optimization for Emacs Lisp")
19991 (description "This package provides tail-call optimization for Emacs
19992 Lisp functions that call themselves in tail position.")
19993 (license license:gpl3+))))
19994
19995 (define-public emacs-equake
19996 (let ((commit "7eddc025ee61b83029363e22219af228b8c20681")
19997 (revision "2"))
19998 (package
19999 (name "emacs-equake")
20000 (version (git-version "0.85" revision commit))
20001 (source
20002 (origin
20003 (method git-fetch)
20004 (uri (git-reference
20005 (url "https://gitlab.com/emacsomancer/equake/")
20006 (commit commit)))
20007 (file-name (git-file-name name version))
20008 (sha256
20009 (base32
20010 "1c55pbqak3d02sw6z1139baxzy401b90g0gxzcc3j6sgplz6sc6w"))))
20011 (build-system emacs-build-system)
20012 (propagated-inputs
20013 `(("emacs-dash" ,emacs-dash)
20014 ("emacs-tco-el" ,emacs-tco-el)))
20015 (home-page "https://gitlab.com/emacsomancer/equake/")
20016 (synopsis "Drop-down console for @code{Eshell} and terminal emulators")
20017 (description "This package provides a Quake-style drop-down console
20018 compatible with Emacs' shell modes.")
20019 (license license:gpl3+))))
20020
20021 (define-public emacs-vdiff
20022 (let ((commit "09e15fc932bfd2febe1d4a65780a532394562b07")
20023 (revision "1"))
20024 (package
20025 (name "emacs-vdiff")
20026 (version (git-version "0.2.3" revision commit))
20027 (source
20028 (origin
20029 (method git-fetch)
20030 (uri (git-reference
20031 (url "https://github.com/justbur/emacs-vdiff.git")
20032 (commit commit)))
20033 (file-name (git-file-name name version))
20034 (sha256
20035 (base32
20036 "1gvqi5l4zs872nn4pmj603aza09d81qad2rgijzv268lif8z34db"))))
20037 (build-system emacs-build-system)
20038 (propagated-inputs
20039 `(("emacs-hydra" ,emacs-hydra)))
20040 (arguments
20041 `(#:tests? #t
20042 #:test-command '("emacs" "-Q" "-batch" "-L" "."
20043 "-l" "vdiff-test.el"
20044 "-f" "ert-run-tests-batch-and-exit")))
20045 (home-page "https://github.com/justbur/emacs-vdiff/")
20046 (synopsis "Frontend for diffing based on vimdiff")
20047 (description "This package permits comparisons of two or three buffers
20048 based on diff output.")
20049 (license license:gpl3+))))
20050
20051 (define-public emacs-vdiff-magit
20052 ;; Need to use a more recent commit than the latest release version because
20053 ;; of Magit and Transient
20054 (let ((commit "b100d126c69e5c26a61ae05aa1778bcc4302b597")
20055 (version "0.3.2")
20056 (revision "8"))
20057 (package
20058 (name "emacs-vdiff-magit")
20059 (version (git-version version revision commit))
20060 (source
20061 (origin
20062 (method git-fetch)
20063 (uri (git-reference
20064 (url "https://github.com/justbur/emacs-vdiff-magit/")
20065 (commit commit)))
20066 (file-name (git-file-name name version))
20067 (sha256
20068 (base32
20069 "16cjmrzflf2i1w01973sl944xrfanakba8sb4dpwi79d92xp03xy"))))
20070 (build-system emacs-build-system)
20071 (propagated-inputs
20072 `(("emacs-vdiff" ,emacs-vdiff)
20073 ("emacs-magit" ,emacs-magit)
20074 ("emacs-transient" ,emacs-transient)))
20075 (home-page "https://github.com/justbur/emacs-vdiff-magit/")
20076 (synopsis "Frontend for diffing based on vimdiff")
20077 (description "This package permits comparisons of two or three buffers
20078 based on diff output.")
20079 (license license:gpl3+))))
20080
20081 (define-public emacs-all-the-icons-dired
20082 (let ((commit "980b7747d6c4a7992a1ec56afad908956db0a519")
20083 (version "1.0")
20084 (revision "1"))
20085 (package
20086 (name "emacs-all-the-icons-dired")
20087 (version (git-version version revision commit))
20088 (source
20089 (origin
20090 (method git-fetch)
20091 (uri (git-reference
20092 (url "https://github.com/jtbm37/all-the-icons-dired/")
20093 (commit commit)))
20094 (file-name (git-file-name name version))
20095 (sha256
20096 (base32
20097 "1pvbgyxfj4j205nj1r02045f1y4wgavdsk7f45hxkkhms1rj8jyy"))))
20098 (build-system emacs-build-system)
20099 (propagated-inputs
20100 `(("emacs-all-the-icons" ,emacs-all-the-icons)))
20101 (home-page "https://github.com/jtbm37/all-the-icons-dired/")
20102 (synopsis "Show icons for each file in @code{dired-mode}")
20103 (description "This package allows icons from @file{all-the-icons.el} to
20104 be used in @code{dired-mode}.")
20105 (license license:gpl3+))))
20106
20107 (define-public emacs-exwm-edit
20108 (let ((commit "bc25ba094b383be3c650ca0b7e1534efe2bb154f")
20109 (version "0.0.1")
20110 (revision "2"))
20111 (package
20112 (name "emacs-exwm-edit")
20113 (version (git-version version revision commit))
20114 (source
20115 (origin
20116 (method git-fetch)
20117 (uri (git-reference
20118 (url "https://github.com/agzam/exwm-edit/")
20119 (commit commit)))
20120 (file-name (git-file-name name version))
20121 (sha256
20122 (base32
20123 "1z1ya9xgknka3dy3b3x8zzfkxdx5jqsi8q5aqkvxjxa6n7mmqdwv"))))
20124 (build-system emacs-build-system)
20125 (propagated-inputs
20126 `(("emacs-exwm" ,emacs-exwm)))
20127 (home-page "https://github.com/agzam/exwm-edit/")
20128 (synopsis "Open temp buffers for editing text from EXWM buffers")
20129 (description "This package facilitates editing text from EXWM buffers by
20130 generating a temp buffer in which any useful Emacs utilities and modes can be
20131 invoked.")
20132 (license license:gpl3+))))
20133
20134 (define-public emacs-ert-async
20135 (package
20136 (name "emacs-ert-async")
20137 (version "0.1.2")
20138 (source
20139 (origin
20140 (method git-fetch)
20141 (uri (git-reference
20142 (url "https://github.com/rejeep/ert-async.el")
20143 (commit (string-append "v" version))))
20144 (file-name (git-file-name name version))
20145 (sha256
20146 (base32
20147 "0hn9i405nfhjd1h9vnwj43nxbbz00khrwkjq0acfyxjaz1shfac9"))))
20148 (build-system emacs-build-system)
20149 (home-page "https://github.com/rejeep/ert-async.el")
20150 (synopsis "Async support for ERT")
20151 (description "This package allows ERT to work with asynchronous tests.")
20152 (license license:gpl3+)))
20153
20154 (define-public emacs-prodigy-el
20155 (let ((commit "0a12eec1f001a4eef16b2c0c524f02f2647a4ff1")
20156 (revision "2"))
20157 (package
20158 (name "emacs-prodigy-el")
20159 (version (git-version "0.7.0" revision commit))
20160 (source
20161 (origin
20162 (method git-fetch)
20163 (uri (git-reference
20164 (url "https://github.com/rejeep/prodigy.el")
20165 (commit commit)))
20166 (file-name (git-file-name name version))
20167 (sha256
20168 (base32
20169 "02kysq57kqzg0zkhaf302ada9cp9spgp71z8vbdq4c7dl6x75h4g"))))
20170 (build-system emacs-build-system)
20171 (propagated-inputs
20172 `(("emacs-dash" ,emacs-dash)
20173 ("emacs-s" ,emacs-s)
20174 ("emacs-f" ,emacs-f)))
20175 (native-inputs
20176 `(("emacs-el-mock" ,emacs-el-mock)
20177 ("emacs-ert-async" ,emacs-ert-async)))
20178 (home-page "https://github.com/rejeep/prodigy.el")
20179 (synopsis "Manage external services from within Emacs")
20180 (description "This package provides a GUI for defining and monitoring services.")
20181 (license license:gpl3+))))
20182
20183 (define-public emacs-web-server
20184 (package
20185 (name "emacs-web-server")
20186 (version "0.1.2")
20187 (source
20188 (origin
20189 (method url-fetch)
20190 (uri (string-append "https://elpa.gnu.org/packages/"
20191 "web-server-" version ".tar"))
20192 (sha256
20193 (base32 "10lcsl4dg2yr9zjd99gq9jz150wvvh6r5y9pd88l8y9vz16f2lim"))))
20194 (build-system emacs-build-system)
20195 (home-page "https://github.com/eschulte/emacs-web-server/")
20196 (synopsis "Web server with handlers in Emacs Lisp")
20197 (description "This package supports HTTP GET and POST requests with
20198 url-encoded parameters, as well as web sockets.")
20199 (license license:gpl3+)))
20200
20201 (define-public emacs-markdown-preview-mode
20202 (package
20203 (name "emacs-markdown-preview-mode")
20204 (version "0.9.2")
20205 (source
20206 (origin
20207 (method git-fetch)
20208 (uri (git-reference
20209 (url "https://github.com/ancane/markdown-preview-mode")
20210 (commit (string-append "v" version))))
20211 (file-name (git-file-name name version))
20212 (sha256
20213 (base32
20214 "1d1id99gagymvzdfa1mwqh8y3szm8ii47rpijkfi1qnifjg5jaq9"))))
20215 (build-system emacs-build-system)
20216 (propagated-inputs
20217 `(("emacs-markdown-mode" ,emacs-markdown-mode)
20218 ("emacs-websocket" ,emacs-websocket)
20219 ("emacs-web-server" ,emacs-web-server)))
20220 (arguments '(#:include '("\\.el$" "\\.html$")))
20221 (home-page "https://github.com/ancane/markdown-preview-mode")
20222 (synopsis "Preview Markdown files")
20223 (description "This package provides a minor mode for preview of Markdown
20224 files, and sends rendered Markdown to a web browser.")
20225 (license license:gpl3+)))
20226
20227 (define-public emacs-dotenv-mode
20228 (package
20229 (name "emacs-dotenv-mode")
20230 (version "0.2.4")
20231 (source
20232 (origin
20233 (method git-fetch)
20234 (uri (git-reference
20235 (url "https://github.com/preetpalS/emacs-dotenv-mode")
20236 (commit (string-append "v" version))))
20237 (file-name (git-file-name name version))
20238 (sha256
20239 (base32
20240 "1fplkhxnsgdrg10iqsmw162zny2idz4vvv35spsb9j0hsk8imclc"))))
20241 (build-system emacs-build-system)
20242 (home-page "https://github.com/preetpalS/emacs-dotenv-mode")
20243 (synopsis "Major mode for @file{.env} files")
20244 (description "This package provides syntax highlighting for @file{.env}
20245 files.")
20246 (license license:gpl3+)))
20247
20248 (define-public emacs-add-node-modules-path
20249 (let ((commit "f31e69ccb681f882aebb806ce6e9478e3ac39708")
20250 (version "1.2.0")
20251 (revision "10"))
20252 (package
20253 (name "emacs-add-node-modules-path")
20254 (version (git-version version revision commit))
20255 (source
20256 (origin
20257 (method git-fetch)
20258 (uri (git-reference
20259 (url "https://github.com/codesuki/add-node-modules-path")
20260 (commit commit)))
20261 (file-name (git-file-name name version))
20262 (sha256
20263 (base32
20264 "0p106bqmvdr8by5iv02bshm339qbrjcch2d15mrm4h3nav03v306"))))
20265 (build-system emacs-build-system)
20266 (home-page "https://github.com/codesuki/add-node-modules-path")
20267 (synopsis "Add @file{node_modules} to the buffer-local @file{exec-path}")
20268 (description "This package searches the parent directories of the
20269 current file for the project's @file{node_modules/.bin/} directory, allowing
20270 Emacs to find project-specific installations of packages.")
20271 (license license:expat))))
20272
20273 (define-public emacs-flow-minor-mode
20274 (let ((commit "d1b32a7dd0d33c6a00a106da5f4b2323602cbd3e")
20275 (version "0.3")
20276 (revision "4"))
20277 (package
20278 (name "emacs-flow-minor-mode")
20279 (version (git-version version revision commit))
20280 (source
20281 (origin
20282 (method git-fetch)
20283 (uri (git-reference
20284 (url "https://github.com/an-sh/flow-minor-mode")
20285 (commit commit)))
20286 (file-name (git-file-name name version))
20287 (sha256
20288 (base32
20289 "169r4ib9qg9q6fm3p0p23qs1qx4pa9pg1qvyq4ysr85i7kwygppl"))))
20290 (build-system emacs-build-system)
20291 (home-page "https://github.com/an-sh/flow-minor-mode")
20292 (synopsis "Minor mode for JavaScript Flow files")
20293 (description "This package integrates Flow with Emacs, allowing for
20294 definition-jumping and type-checking on demand.")
20295 (license license:bsd-3))))
20296
20297 (define-public emacs-rjsx-mode
20298 (let ((commit "0e7fa6b4facdec4f85a7a8865bdf59dfd57217b5")
20299 (revision "2"))
20300 (package
20301 (name "emacs-rjsx-mode")
20302 (version (git-version "0.4" revision commit))
20303 (source
20304 (origin
20305 (method git-fetch)
20306 (uri (git-reference
20307 (url "https://github.com/felipeochoa/rjsx-mode")
20308 (commit commit)))
20309 (file-name (git-file-name name version))
20310 (sha256
20311 (base32
20312 "0s0871sx3ch09kgvbcp9na4zdrfrda62xjq8m9knbq5vnj8q8qpi"))))
20313 (build-system emacs-build-system)
20314 (propagated-inputs
20315 `(("emacs-js2-mode" ,emacs-js2-mode)))
20316 (arguments
20317 `(#:tests? #t
20318 #:test-command '("make" "test")))
20319 (home-page "https://github.com/felipeochoa/rjsx-mode")
20320 (synopsis "Major mode for JSX files")
20321 (description "This package extends the parser of @code{js2-mode} to
20322 support JSX syntax.")
20323 (license license:expat))))
20324
20325 (define-public emacs-origami-el
20326 (let ((commit "1f38085c8f9af7842765ed63f7d6dfe4dab59366")
20327 (version "1.0")
20328 (revision "1"))
20329 (package
20330 (name "emacs-origami-el")
20331 (version (git-version version revision commit))
20332 (source
20333 (origin
20334 (method git-fetch)
20335 (uri (git-reference
20336 (url "https://github.com/gregsexton/origami.el")
20337 (commit commit)))
20338 (file-name (git-file-name name version))
20339 (sha256
20340 (base32
20341 "0ha1qsz2p36pqa0sa2sp83lspbgx5lr7930qxnwd585liajzdd9x"))))
20342 (build-system emacs-build-system)
20343 (propagated-inputs
20344 `(("emacs-dash" ,emacs-dash)
20345 ("emacs-s" ,emacs-s)))
20346 (home-page "https://github.com/gregsexton/origami.el")
20347 (synopsis "Flexible text-folding")
20348 (description "This package provides a minor mode for collapsing and
20349 expanding regions of text without modifying the actual contents.")
20350 (license license:expat))))
20351
20352 (define-public emacs-peep-dired
20353 (let ((commit "c88a9a3050197840edfe145f11e0bb9488de32f4")
20354 (version "0")
20355 (revision "1"))
20356 (package
20357 (name "emacs-peep-dired")
20358 (version (git-version version revision commit))
20359 (source
20360 (origin
20361 (method git-fetch)
20362 (uri (git-reference
20363 (url "https://github.com/asok/peep-dired")
20364 (commit commit)))
20365 (file-name (git-file-name name version))
20366 (sha256
20367 (base32
20368 "1wy5qpnfri1gha2cnl6q20qar8dbl2mimpb43bnhmm2g3wgjyad6"))))
20369 (build-system emacs-build-system)
20370 (home-page "https://github.com/asok/peep-dired")
20371 (synopsis "Preview files in another window")
20372 (description "This package provides a minor mode that allows files to be
20373 previewed by scrolling up and down within a @code{dired} buffer.")
20374 (license license:gpl3+))))
20375
20376 (define-public emacs-counsel-etags
20377 (package
20378 (name "emacs-counsel-etags")
20379 (version "1.9.11")
20380 (source
20381 (origin
20382 (method git-fetch)
20383 (uri (git-reference
20384 (url "https://github.com/redguardtoo/counsel-etags")
20385 (commit version)))
20386 (file-name (git-file-name name version))
20387 (sha256
20388 (base32 "0h0br41vkrx9l7bqr55bafqd715drxxwm41qif6iffhgdpvf69ym"))))
20389 (build-system emacs-build-system)
20390 (propagated-inputs
20391 `(("emacs-counsel" ,emacs-counsel)))
20392 (arguments
20393 `(#:tests? #t
20394 #:test-command '("make" "test")))
20395 (home-page "https://github.com/redguardtoo/counsel-etags")
20396 (synopsis "Fast @code{Ctags}/@code{Etags} solution with @code{ivy-mode}")
20397 (description "This package uses @code{ivy-mode} to facilitate navigating
20398 and searching through @code{Ctags} files.")
20399 (license license:gpl3+)))
20400
20401 (define-public emacs-ivy-clipmenu
20402 (let ((commit "d2071f2c5043a05d610cd1952e84176ca78c31dc"))
20403 (package
20404 (name "emacs-ivy-clipmenu")
20405 (version (git-version "0.0.1" "1" commit))
20406 (source (origin
20407 (method git-fetch)
20408 (uri (git-reference
20409 (url "https://github.com/wpcarro/ivy-clipmenu.el.git")
20410 (commit commit)))
20411 (file-name (git-file-name name version))
20412 (sha256
20413 (base32
20414 "0npd8glzk5z4n7y9mzbsbzi0cf3by19fqcki052jr3dga363lds7"))))
20415 (propagated-inputs
20416 `(("emacs-f" ,emacs-f)
20417 ("emacs-ivy" ,emacs-ivy)))
20418 (build-system emacs-build-system)
20419 (home-page "https://github.com/wpcarro/ivy-clipmenu.el")
20420 (synopsis "Ivy integration with clipmenu")
20421 (description "Ivy integration with the clipboard manager, clipmenu.")
20422 (license license:expat))))
20423
20424 (define-public emacs-org-download
20425 (let ((commit "10c9d7c8eed928c88a896310c882e3af4d8d0f61")
20426 (revision "2"))
20427 (package
20428 (name "emacs-org-download")
20429 (version (git-version "0.1.0" revision commit))
20430 (source (origin
20431 (method git-fetch)
20432 (uri (git-reference
20433 (url "https://github.com/abo-abo/org-download")
20434 (commit commit)))
20435 (sha256
20436 (base32
20437 "0i8wlx1i7y1vn5lqwjifvymvszg28a07vwqcm4jslf1v2ajs1lsl"))
20438 (file-name (git-file-name name version))))
20439 (build-system emacs-build-system)
20440 (propagated-inputs
20441 `(("emacs-org" ,emacs-org)
20442 ("emacs-async" ,emacs-async)))
20443 (home-page "https://github.com/abo-abo/org-download")
20444 (synopsis "Facilitate moving images")
20445 (description "This package provides utilities for managing image files
20446 copied into @code{org-mode} buffers.")
20447 (license license:gpl3+))))
20448
20449 (define-public emacs-dash-docs
20450 (let ((commit "111fd9b97001f1ad887b45e5308a14ddd68ce70a")
20451 (revision "1"))
20452 (package
20453 (name "emacs-dash-docs")
20454 (version (git-version "1.4.0" revision commit))
20455 (source
20456 (origin
20457 (method git-fetch)
20458 (uri (git-reference
20459 (url "https://github.com/dash-docs-el/dash-docs.git")
20460 (commit commit)))
20461 (file-name (git-file-name name version))
20462 (sha256
20463 (base32
20464 "0sckb7z0ylflva212bns7iq9mfnffgjghi0qspsbfwra35zb9xng"))))
20465 (build-system emacs-build-system)
20466 (propagated-inputs
20467 `(("emacs-async" ,emacs-async)))
20468 (native-inputs
20469 `(("emacs-undercover" ,emacs-undercover)
20470 ("emacs-ert-runner" ,emacs-ert-runner)))
20471 (arguments
20472 `(#:tests? #t
20473 #:test-command '("ert-runner")
20474 #:phases
20475 ;; this test requires network access, so remove it
20476 (modify-phases %standard-phases
20477 (add-before 'check 'make-tests-writable
20478 (lambda _
20479 (make-file-writable "test/dash-docs-test.el")
20480 #t))
20481 (add-before 'check 'delete-test
20482 (lambda _
20483 (emacs-batch-edit-file "test/dash-docs-test.el"
20484 `(progn (progn
20485 (goto-char (point-min))
20486 (re-search-forward "ert-deftest dash-docs-official-docsets-test")
20487 (beginning-of-line)
20488 (kill-sexp))
20489 (basic-save-buffer)))
20490 #t)))))
20491 (home-page "https://github.com/dash-docs-el/dash-docs")
20492 (synopsis "Offline documentation browser for APIs using Dash docsets")
20493 (description "This package exposes functionality to work with Dash docsets.")
20494 (license license:gpl3+))))
20495
20496 (define-public emacs-helm-dash
20497 (let ((commit "7f853bd34da666f0e9a883011c80f451b06f6c59")
20498 (revision "2"))
20499 (package
20500 (name "emacs-helm-dash")
20501 (version (git-version "1.3.0" revision commit))
20502 (source
20503 (origin
20504 (method git-fetch)
20505 (uri (git-reference
20506 (url "https://github.com/areina/helm-dash.git")
20507 (commit commit)))
20508 (file-name (git-file-name name version))
20509 (sha256
20510 (base32
20511 "0r192vzry1212ihabg9pgw9xar8zdgnbgy0vsgvfm8s5wj6ny7jp"))))
20512 (build-system emacs-build-system)
20513 (propagated-inputs
20514 `(("emacs-helm" ,emacs-helm)
20515 ("emacs-dash-docs" ,emacs-dash-docs)))
20516 (home-page "https://github.com/areina/helm-dash")
20517 (synopsis "Offline documentation browser for APIs using Dash docsets")
20518 (description "This package uses Helm to install and navigate through
20519 Dash docsets.")
20520 (license license:gpl3+))))
20521
20522 (define-public emacs-counsel-dash
20523 (let ((commit "370d5f6f14b5294d0eb717f7b2a6a8e93df1ed24")
20524 (revision "4"))
20525 (package
20526 (name "emacs-counsel-dash")
20527 (version (git-version "0.1.3" revision commit))
20528 (source
20529 (origin
20530 (method git-fetch)
20531 (uri (git-reference
20532 (url "https://github.com/dash-docs-el/counsel-dash.git")
20533 (commit commit)))
20534 (file-name (git-file-name name version))
20535 (sha256
20536 (base32 "1fn38vbz46ijarjvhgw7iy7dj9s2a2miy95fyy9f8b5sj8nrdfvz"))))
20537 (build-system emacs-build-system)
20538 (propagated-inputs
20539 `(("emacs-counsel" ,emacs-counsel)
20540 ("emacs-dash-docs" ,emacs-dash-docs)))
20541 (home-page "https://github.com/dash-docs-el/counsel-dash")
20542 (synopsis "Offline documentation browser for APIs using Dash docsets")
20543 (description "This package uses @code{ivy-mode} to install and navigate
20544 through Dash docsets.")
20545 (license license:expat))))
20546
20547 (define-public emacs-calibredb
20548 (package
20549 (name "emacs-calibredb")
20550 (version "2.4.0")
20551 (source
20552 (origin
20553 (method git-fetch)
20554 (uri (git-reference
20555 (url "https://github.com/chenyanming/calibredb.el.git")
20556 (commit version)))
20557 (file-name (git-file-name name version))
20558 (sha256
20559 (base32 "0c6y3n51djajhfj4k6g0r58brls0fhyw6d7c6h4zi5jl1hw64vj6"))))
20560 (build-system emacs-build-system)
20561 (propagated-inputs
20562 `(("emacs-dash" ,emacs-dash)
20563 ("emacs-org" ,emacs-org)
20564 ("emacs-s" ,emacs-s)
20565 ("emacs-transient" ,emacs-transient)))
20566 (home-page "https://github.com/chenyanming/calibredb.el")
20567 (synopsis "Yet another calibre client for Emacs")
20568 (description "This package integrates calibre into Emacs.
20569 @enumerate
20570 @item Powerful ebook dashboard.
20571 @item Manage ebooks, actually not only ebooks!
20572 @item Manage Ebook libraries.
20573 @item Another bookmarks solution, by setting the tags and comments.
20574 @item Quick search, filter, make actions on items with ivy and helm.
20575 @item Org-ref support.
20576 @end enumerate")
20577 (license license:gpl3)))
20578
20579 (define-public emacs-el-patch
20580 (package
20581 (name "emacs-el-patch")
20582 (version "2.2.3")
20583 (source
20584 (origin
20585 (method git-fetch)
20586 (uri (git-reference
20587 (url "https://github.com/raxod502/el-patch")
20588 (commit version)))
20589 (file-name (git-file-name name version))
20590 (sha256
20591 (base32
20592 "18djslz177q6q33y82zmg2v6n9236a76kiqfvxdk4vbqzjbq82f7"))))
20593 (build-system emacs-build-system)
20594 (home-page "https://github.com/raxod502/el-patch")
20595 (synopsis "Future-proof your Emacs customizations")
20596 (description "This package allows for an alternate definition of an Elisp
20597 function to be specified and for any differences from the original definition
20598 to be examined using Ediff.")
20599 (license license:expat)))
20600
20601 (define-public emacs-info-plus
20602 (let ((commit "4a6b93c170169594e1e8ea60cd799a1a88a969da")
20603 (revision "2"))
20604 (package
20605 (name "emacs-info-plus")
20606 (version (git-version "0" revision commit))
20607 (source
20608 (origin
20609 (method git-fetch)
20610 (uri (git-reference
20611 (url "https://github.com/emacsmirror/info-plus")
20612 (commit commit)))
20613 (file-name (git-file-name name version))
20614 (sha256
20615 (base32
20616 "1xzmx7m1qbl3b1x6yq1db1a108xqaa64ljfv1hdw763zmy4kc6m0"))))
20617 (build-system emacs-build-system)
20618 (home-page "https://github.com/emacsmirror/info-plus")
20619 (synopsis "Extensions to @file{info.el}")
20620 (description "This package extends Emacs' @file{info.el} by allowing
20621 outline-enabled table of contents, additional metadata association for Info
20622 nodes, and more.")
20623 (license license:gpl2+))))
20624
20625 (define-public emacs-eval-sexp-fu-el
20626 (package
20627 (name "emacs-eval-sexp-fu-el")
20628 (version "0.5.0")
20629 (source
20630 (origin
20631 (method git-fetch)
20632 (uri (git-reference
20633 (url "https://github.com/hchbaw/eval-sexp-fu.el")
20634 (commit (string-append "v" version))))
20635 (file-name (git-file-name name version))
20636 (sha256
20637 (base32
20638 "01mpnpgmlnfbi2yw9dxz5iw72mw3lk223bj172i4fnx3xdrrxbij"))))
20639 (build-system emacs-build-system)
20640 (home-page "https://github.com/hchbaw/eval-sexp-fu.el")
20641 (synopsis "Enhancements for evaluating s-expressions")
20642 (description "This package provides provides variants of
20643 @code{eval-last-sexp} that work on the containing list or s-expression, as
20644 well as an option for visually flashing evaluated s-expressions.")
20645 (license license:gpl3+)))
20646
20647 (define-public emacs-counsel-tramp
20648 (package
20649 (name "emacs-counsel-tramp")
20650 (version "0.7.5")
20651 (source
20652 (origin
20653 (method git-fetch)
20654 (uri (git-reference
20655 (url "https://github.com/masasam/emacs-counsel-tramp")
20656 (commit version)))
20657 (file-name (git-file-name name version))
20658 (sha256
20659 (base32 "18qlwyjqxap2qfbz14ma6yqp4p3v4q2y8idc355s4szjdd2as2lr"))))
20660 (build-system emacs-build-system)
20661 (propagated-inputs
20662 `(("emacs-counsel" ,emacs-counsel)))
20663 (home-page "https://github.com/masasam/emacs-counsel-tramp")
20664 (synopsis "Ivy interface for TRAMP")
20665 (description
20666 "This package allows @code{ivy-mode} to display and filter SSH servers.")
20667 (license license:gpl3+)))
20668
20669 (define-public emacs-tramp
20670 (package
20671 (name "emacs-tramp")
20672 (version "2.4.4")
20673 (source
20674 (origin
20675 (method url-fetch)
20676 (uri (string-append "https://elpa.gnu.org/packages/"
20677 "tramp-" version ".tar"))
20678 (sha256
20679 (base32 "0kdpcrg3iqnfvg1a1spkkngygjddmp2dgz0rcvdccdlfr0hn27c2"))))
20680 (build-system emacs-build-system)
20681 (arguments
20682 `(#:emacs ,emacs ;need D-Bus
20683 #:phases
20684 (modify-phases %standard-phases
20685 ;; All but one "/bin/" directory refer to remote
20686 ;; environments, which may not be Guix. Do not patch them
20687 ;; blindly. However, local encoding shell has to be patched.
20688 (replace 'patch-el-files
20689 (lambda* (#:key inputs #:allow-other-keys)
20690 (let ((sh (assoc-ref inputs "bash"))
20691 (file "tramp.el"))
20692 (emacs-substitute-variables file
20693 ("tramp-encoding-shell" (string-append sh "/bin/sh"))))
20694 #t)))))
20695 (inputs
20696 `(("bash" ,bash)))
20697 (home-page "https://savannah.gnu.org/projects/tramp")
20698 (synopsis "Remote file editing package for Emacs")
20699 (description
20700 "Tramp stands for ``Transparent Remote (file) Access, Multiple
20701 Protocol''. This package provides remote file editing, using
20702 a combination of @command{rsh} and @command{rcp} or other work-alike
20703 programs, such as @command{ssh} and @command{scp}.")
20704 (license license:gpl3+)))
20705
20706 (define-public emacs-tramp-auto-auth
20707 (let ((commit "f15a12dfab651aff60f4a9d70f868030a12344ac"))
20708 (package
20709 (name "emacs-tramp-auto-auth")
20710 (version (git-version "20191027" "1" commit))
20711 (source
20712 (origin
20713 (method git-fetch)
20714 (uri (git-reference
20715 (url "https://github.com/oitofelix/tramp-auto-auth.git")
20716 (commit commit)))
20717 (file-name (git-file-name name version))
20718 (sha256
20719 (base32
20720 "09nkjgwppjfgv04q0gv468qihgx4y3p39lpwbd6vbh3wgbccas9k"))))
20721 (build-system emacs-build-system)
20722 (home-page "https://github.com/oitofelix/tramp-auto-auth")
20723 (synopsis "TRAMP automatic authentication library")
20724 (description "This package provides @code{tramp-auto-auth-mode} Emacs
20725 global minor mode whose purpose is to automatically feed TRAMP sub-processes
20726 with passwords for paths matching regexps.")
20727 (license license:gpl3+))))
20728
20729 (define-public emacs-eacl
20730 (package
20731 (name "emacs-eacl")
20732 (version "2.0.1")
20733 (source
20734 (origin
20735 (method git-fetch)
20736 (uri (git-reference
20737 (url "https://github.com/redguardtoo/eacl")
20738 (commit version)))
20739 (file-name (git-file-name name version))
20740 (sha256
20741 (base32
20742 "0ksn11sm3g1ja5lpjz3hrzzw8b480mfcb3q589m52qjgvvn5iyfv"))))
20743 (build-system emacs-build-system)
20744 (propagated-inputs
20745 `(("emacs-ivy" ,emacs-ivy)))
20746 (home-page "https://github.com/redguardtoo/eacl")
20747 (synopsis "Auto-complete lines by using @code{grep} on a project")
20748 (description "This package provides auto-completion commands for single
20749 and multiple lines of code in a project.")
20750 (license license:gpl3+)))
20751
20752 (define-public emacs-semantic-refactor
20753 ;; The last release, 0.5, was made on 2015-07-26 and there have been 47
20754 ;; commits since then.
20755 (let ((commit "6f2c97d17fb70f4ca2112f5a2b99a8ec162004f5"))
20756 (package
20757 (name "emacs-semantic-refactor")
20758 (version (git-version "0.5" "1" commit))
20759 (source
20760 (origin
20761 (method git-fetch)
20762 (uri (git-reference
20763 (url "https://github.com/tuhdo/semantic-refactor")
20764 (commit commit)))
20765 (file-name (git-file-name name version))
20766 (sha256
20767 (base32
20768 "1lyz3zjkx2csh0xdy1zpx8s32qp1p3sig57mwi9xhgpqjyf0axmb"))))
20769 (build-system emacs-build-system)
20770 (home-page "https://github.com/tuhdo/semantic-refactor")
20771 (synopsis "Refactoring tool for C/C++ and Lisp dialects")
20772 (description "This package provides a refactoring tool based on the
20773 Emacs Semantic parser framework. For C and C++ it supports operations such as:
20774
20775 @enumerate
20776 @item Generating class implementations
20777 @item Generating function prototypes
20778 @item Converting functions to function pointers
20779 @item Moving semantic units
20780 @item etc...
20781 @end enumerate
20782
20783 For Lisp dialects like Clojure, ELisp, and Scheme, it supports operations such
20784 as:
20785
20786 @enumerate
20787 @item Formatting the whole buffer
20788 @item Converting sexpressions to one or multiple lines
20789 @item etc...
20790 @end enumerate\n")
20791 (license license:gpl3+))))
20792
20793 (define-public emacs-nhexl-mode
20794 (package
20795 (name "emacs-nhexl-mode")
20796 (version "1.5")
20797 (source
20798 (origin
20799 (method url-fetch)
20800 (uri (string-append "https://elpa.gnu.org/packages/"
20801 "nhexl-mode-" version ".el"))
20802 (sha256
20803 (base32 "0qvxfg7sv4iqyjxzaim6b4v9k5hav36qd4vkf9jwzw6p5fri8w8d"))))
20804 (build-system emacs-build-system)
20805 (home-page "https://elpa.gnu.org/packages/nhexl-mode.html")
20806 (synopsis "Minor mode to edit files via hex-dump format")
20807 (description
20808 "This package implements NHexl mode, a minor mode for editing files
20809 in hex dump format. The mode command is called @command{nhexl-mode}.
20810
20811 This minor mode implements similar functionality to @command{hexl-mode},
20812 but using a different implementation technique, which makes it
20813 usable as a \"plain\" minor mode. It works on any buffer, and does
20814 not mess with the undo log or with the major mode.
20815
20816 It also comes with:
20817
20818 @itemize
20819 @item @command{nhexl-nibble-edit-mode}: a \"nibble editor\" minor mode, where
20820 the cursor pretends to advance by nibbles (4-bit) and the self-insertion keys
20821 (which only work for hex-digits) will only modify the nibble under point.
20822 @item @command{nhexl-overwrite-only-mode}: a minor mode to try and avoid
20823 moving text. In this minor mode, not only self-inserting keys overwrite
20824 existing text, but commands like `yank' and @command{kill-region} as well.
20825 @item It overrides @code{C-u} to use hexadecimal, so you can do @code{C-u a 4
20826 C-f} to advance by #xa4 characters.
20827 @end itemize")
20828 (license license:gpl3+)))
20829
20830 (define-public emacs-helm-wikipedia
20831 (let ((commit "126f044e0a0e1432e0791c33ce2a41875d704a9b"))
20832 (package
20833 (name "emacs-helm-wikipedia")
20834 (version (git-version "0.0.0" "1" commit))
20835 (home-page "https://github.com/emacs-helm/helm-wikipedia/")
20836 (source
20837 (origin
20838 (method git-fetch)
20839 (uri (git-reference
20840 (url home-page)
20841 (commit commit)))
20842 (file-name (git-file-name name version))
20843 (sha256
20844 (base32
20845 "148a5xsnbsiddhf9cl7yxdk41lrv38h0pip91kcflw9d7l0dp7pr"))))
20846 (build-system emacs-build-system)
20847 (inputs
20848 `(("helm" ,emacs-helm)))
20849 (synopsis "Search suggestions and article extracts from Wikipedia for Emacs")
20850 (description
20851 "This package provides an Emacs Helm interface for search suggestions
20852 and article extracts for Wikipedia.")
20853 (license license:gpl3+))))
20854
20855 (define-public emacs-webfeeder
20856 (package
20857 (name "emacs-webfeeder")
20858 (version "1.0.0")
20859 (source
20860 (origin
20861 (method url-fetch)
20862 (uri (string-append
20863 "https://elpa.gnu.org/packages/webfeeder-"
20864 version
20865 ".tar"))
20866 (sha256
20867 (base32
20868 "06y5vxw9m6pmbrzb8v2i3w9dnhgqxz06vyx1knmgi9cczlrj4a64"))))
20869 (build-system emacs-build-system)
20870 (home-page "https://gitlab.com/Ambrevar/emacs-webfeeder")
20871 (synopsis "Build RSS and Atom webfeeds from HTML files")
20872 (description
20873 "Webfeeder is an Emacs library to generate RSS and Atom feeds from HTML
20874 files. The various elements of the HTML input are parsed with customizable
20875 functions (e.g. @code{webfeeder-title-function}).")
20876 (license license:gpl3+)))
20877
20878 (define-public emacs-evil-numbers
20879 (let ((commit "6ea1c8c3a9b37bed63d48f1128e9a4910e68187e"))
20880 (package
20881 (name "emacs-evil-numbers")
20882 (version (git-version "0.4" "1" commit))
20883 (source (origin
20884 (method git-fetch)
20885 (uri (git-reference
20886 (url "https://github.com/dieggsy/evil-numbers")
20887 (commit commit)))
20888 (file-name (git-file-name name version))
20889 (sha256
20890 (base32
20891 "1aq95hj8x13py0pwsnc6wvd8cc5yv5qin8ym9js42y5966vwj4np"))))
20892 (build-system emacs-build-system)
20893 (home-page "https://github.com/dieggsy/evil-numbers")
20894 (synopsis "Increment and decrement numbers in Emacs")
20895 (description "This package increments and decrements binary, octal,
20896 decimal and hex literals. It works like C-a/C-x in Vim, i.e. searches for
20897 number up to EOL and then increments or decrements and keeps zero padding up
20898 (unlike in Vim). When a region is active, as in Evil's visual mode, all the
20899 numbers within that region will be incremented/decremented (unlike in Vim).
20900
20901 It is a fork of https://github.com/cofi/evil-numbers, which is unmaintained.")
20902 (license license:gpl3+))))
20903
20904 (define-public emacs-rotate-text
20905 (package
20906 (name "emacs-rotate-text")
20907 (version "0.1")
20908 (source (origin
20909 (method git-fetch)
20910 (uri (git-reference
20911 (url "https://github.com/nschum/rotate-text.el.git")
20912 (commit version)))
20913 (file-name (git-file-name name version))
20914 (sha256
20915 (base32
20916 "1cgxv4aibkvv6lnssynn0438a615fz3zq8hg9sb0lhfgsr99pxln"))))
20917 (build-system emacs-build-system)
20918 (home-page "https://nschum.de/src/emacs/rotate-text/")
20919 (synopsis "Cycle through words, symbols and patterns in Emacs")
20920 (description "@code{rotate-text} allows you rotate to commonly
20921 interchanged text with a single keystroke. For example, you can toggle
20922 between \"frame-width\" and \"frame-height\", between \"public\",
20923 \"protected\" and \"private\" and between \"variable1\", \"variable2\" through
20924 \"variableN\".")
20925 (license license:gpl2+)))
20926
20927 (define-public emacs-ediprolog
20928 (package
20929 (name "emacs-ediprolog")
20930 (version "1.2")
20931 (source
20932 (origin
20933 (method url-fetch)
20934 (uri (string-append
20935 "https://elpa.gnu.org/packages/ediprolog-"
20936 version
20937 ".el"))
20938 (sha256
20939 (base32
20940 "039ffvp7c810mjyargmgw1i87g0z8qs8qicq826sd9aiz9hprfaz"))))
20941 (build-system emacs-build-system)
20942 (home-page "https://elpa.gnu.org/packages/ediprolog.html")
20943 (synopsis "Emacs Does Interactive Prolog")
20944 (description "This package provides a major mode that let the user
20945 interact with SWI-Prolog in all buffers. For instance, one can consult Prolog
20946 programs and evaluate embedded queries. This mode is focused on the command
20947 @code{ediprolog-dwim} (Do What I Mean) which is supposed to, depending on the
20948 context, carry out the appropriate action.")
20949 (license license:gpl3+)))
20950
20951 (define-public emacs-evil-cleverparens
20952 (let ((commit "8c45879d49bfa6d4e414b6c1df700a4a51cbb869")
20953 (revision "1"))
20954 (package
20955 (name "emacs-evil-cleverparens")
20956 (version (git-version "2017-07-17" revision commit))
20957 (source (origin
20958 (method git-fetch)
20959 (uri (git-reference
20960 (url "https://github.com/luxbock/evil-cleverparens.git")
20961 (commit commit)))
20962 (sha256 (base32 "0lhnybpnk4n2yhlcnj9zxn0vi5hpjfaqfhvyfy7ckzz74g8v7iyw"))
20963 (file-name (git-file-name name version))))
20964 (build-system emacs-build-system)
20965 (propagated-inputs
20966 `(("emacs-evil" ,emacs-evil)
20967 ("emacs-paredit" ,emacs-paredit)
20968 ("emacs-smartparens" ,emacs-smartparens)))
20969 (home-page "https://github.com/luxbock/evil-cleverparens")
20970 (synopsis "Emacs modal editing optimized for editing Lisp")
20971 (description "@code{evil-cleverparens} remaps Evil keybindings to allow
20972 modal editing with screwing up the structure of Lisp code. Alternatives for
20973 verb commands which would are normally destructive (such as deletion) are
20974 provided. Those alternative commands are and bound by default to their
20975 corresponding Evil keys.")
20976 (license license:expat))))
20977
20978 (define-public emacs-evil-traces
20979 (let ((commit "1931e3ea2c64b4aec393a9c25063c330deff55e3")
20980 (revision "2"))
20981 (package
20982 (name "emacs-evil-traces")
20983 (version (git-version "0.0.1" revision commit))
20984 (source (origin
20985 (method git-fetch)
20986 (uri (git-reference
20987 (url "https://github.com/mamapanda/evil-traces.git")
20988 (commit commit)))
20989 (file-name (git-file-name name version))
20990 (sha256
20991 (base32
20992 "12p9lfxscs182vbd4dy0m5gacs3d4kyprbz5yndpwvl8g2qsqplz"))))
20993 (build-system emacs-build-system)
20994 (propagated-inputs
20995 `(("emacs-evil" ,emacs-evil)))
20996 (arguments
20997 `(#:phases
20998 (modify-phases %standard-phases
20999 (add-after 'unpack 'set-shell
21000 ;; Setting the SHELL environment variable is required for the tests
21001 ;; to find sh.
21002 (lambda _
21003 (setenv "SHELL" (which "sh"))
21004 #t)))
21005 #:tests? #t
21006 #:test-command '("make" "test")))
21007 (home-page "https://github.com/mamapanda/evil-traces")
21008 (synopsis "Visual hints for @code{evil-ex}")
21009 (description "This package adds visual hints to certain @code{ex}
21010 commands in @code{evil-mode}.")
21011 (license license:gpl3+))))
21012
21013 (define-public emacs-evil-tmux-navigator
21014 (package
21015 (name "emacs-evil-tmux-navigator")
21016 (version "0.1.5")
21017 (source
21018 (origin
21019 (method git-fetch)
21020 (uri
21021 (git-reference
21022 (url "https://github.com/keith/evil-tmux-navigator")
21023 (commit version)))
21024 (file-name (git-file-name name version))
21025 (sha256
21026 (base32
21027 "1na44rbc03sr5b4z9pvnps6n4nmrqcz58nywix9825l74a419ijx"))))
21028 (propagated-inputs
21029 `(("emacs-evil" ,emacs-evil)))
21030 (build-system emacs-build-system)
21031 (home-page "https://github.com/keith/evil-tmux-navigator")
21032 (synopsis
21033 "Navigate seamlessly between emacs windows and tmux panes")
21034 (description
21035 "This package lets you use C-h, C-j, C-k and C-l to navigate between
21036 Emacs windows and tmux panes.")
21037 (license license:expat)))
21038
21039 (define-public emacs-xclip
21040 (package
21041 (name "emacs-xclip")
21042 (version "1.10")
21043 (source
21044 (origin
21045 (method url-fetch)
21046 (uri (string-append "https://elpa.gnu.org/packages/"
21047 "xclip-" version ".el"))
21048 (sha256
21049 (base32 "0i3i9kwfg8qmhcmqhhnrb1kljgwkccv63s9q1mjwqfjldyfh8j8i"))))
21050 (build-system emacs-build-system)
21051 (home-page "http://elpa.gnu.org/packages/xclip.html")
21052 (synopsis "Copy and paste GUI clipboard from Emacs in text terminal")
21053 (description
21054 "This package allows Emacs to copy to and paste from the GUI clipboard
21055 when running in text terminal.
21056
21057 It can use external command-line tools for that, e.g., @command{xclip} or
21058 @command{xsel}, which you may need to install in order for the package to
21059 work.")
21060 (license license:gpl3+)))
21061
21062 (define-public emacs-xterm-color
21063 (package
21064 (name "emacs-xterm-color")
21065 (version "1.9")
21066 (source (origin
21067 (method git-fetch)
21068 (uri (git-reference
21069 (url "https://github.com/atomontage/xterm-color.git")
21070 (commit version)))
21071 (file-name (git-file-name name version))
21072 (sha256
21073 (base32
21074 "0i9ivc5xhl5y5v0l18kbhfg8s2abb9zaimyx951b8bc0f5as68xm"))))
21075 (build-system emacs-build-system)
21076 (home-page "https://github.com/atomontage/xterm-color")
21077 (synopsis "ANSI & xterm-256 color text property translator for Emacs")
21078 (description "@code{xterm-color.el} is an ANSI control sequence to
21079 text-property translator.")
21080 (license license:bsd-2)))
21081
21082 (define-public emacs-org-noter
21083 (package
21084 (name "emacs-org-noter")
21085 (version "1.4.1")
21086 (source
21087 (origin
21088 (method git-fetch)
21089 (uri (git-reference
21090 (url "https://github.com/weirdNox/org-noter.git")
21091 (commit version)))
21092 (file-name (git-file-name name version))
21093 (sha256
21094 (base32
21095 "1vwfpdi7hfkxx4vi0cwg7rvqby3i0mymzdkyzrqzv30dazmcjpag"))))
21096 (build-system emacs-build-system)
21097 (propagated-inputs `(("emacs-org" ,emacs-org)))
21098 (home-page "https://github.com/weirdNox/org-noter")
21099 (synopsis "Synchronized, Org-mode, document annotator")
21100 (description
21101 "This package lets you create notes that are kept in sync when you
21102 scroll through the document, but that are external to it---the notes
21103 themselves live in an Org-mode file. As such, this leverages the power of
21104 Org-mode (the notes may have outlines, latex fragments, babel, etc...) while
21105 acting like notes that are made @emph{in} the document.")
21106 (license license:gpl3+)))
21107
21108 (define-public emacs-org-redmine
21109 (let ((commit "e77d013bc3784947c46a5c53f03cd7d3c68552fc"))
21110 (package
21111 (name "emacs-org-redmine")
21112 (version (git-version "0.1" "1" commit))
21113 (source (origin
21114 (method git-fetch)
21115 (uri (git-reference
21116 (url "https://github.com/gongo/org-redmine.git")
21117 (commit commit)))
21118 (file-name (git-file-name name version))
21119 (sha256
21120 (base32
21121 "06miv3mf2a39vkf6mmm5ssc47inqh7dq82khsyc03anz4d4lj822"))))
21122 (build-system emacs-build-system)
21123 (home-page "https://github.com/gongo/org-redmine/")
21124 (synopsis "Redmine tools using Emacs")
21125 (description "This program provides an Emacs client for Redmine.")
21126 (license license:gpl3+))))
21127
21128 (define-public emacs-multi-term
21129 ;; No upstream release. Extract version from main file.
21130 (let ((commit "017c77c550115936860e2ea71b88e585371475d5")
21131 (revision "0"))
21132 (package
21133 (name "emacs-multi-term")
21134 (version (git-version "1.5" revision commit))
21135 (source
21136 (origin
21137 (method git-fetch)
21138 (uri (git-reference
21139 (url "https://github.com/manateelazycat/multi-term.git")
21140 (commit commit)))
21141 (file-name (git-file-name name version))
21142 (sha256
21143 (base32 "043dqd8i8h6hbcg11rzprxin2yq5lb902zlrb7mxah44vyp8wrdi"))))
21144 (build-system emacs-build-system)
21145 (inputs
21146 `(("zsh" ,zsh)))
21147 (home-page "https://github.com/manateelazycat/multi-term")
21148 (synopsis "Manage multiple terminal buffers in Emacs")
21149 (description
21150 "This package enhances @code{term.el} with the following features:
21151
21152 @enumerate
21153 @item Functions to switch between multiple terminal buffers
21154 @item List of keys to be intercepted by @code{emacs-multi-term} instead of by
21155 the underlying terminal
21156 @item Kills the unused buffer left after exiting the terminal
21157 @item Kills the running sub-processes along with the terminal when killing the
21158 it forcibly
21159 @item Dedicated window for debugging program.
21160 @end enumerate")
21161 (license license:gpl3+))))
21162
21163 (define-public emacs-elpher
21164 (package
21165 (name "emacs-elpher")
21166 (version "2.9.1")
21167 (source
21168 (origin
21169 (method git-fetch)
21170 (uri (git-reference
21171 (url "git://thelambdalab.xyz/elpher.git")
21172 (commit (string-append "v" version))))
21173 (file-name (git-file-name name version))
21174 (sha256
21175 (base32 "0vyqmv7dycmad1726yb6yizd21x3kkz5cj33mca11r8nh38f1qzp"))))
21176 (build-system emacs-build-system)
21177 (native-inputs
21178 `(("texinfo" ,texinfo)))
21179 (arguments
21180 `(#:phases
21181 (modify-phases %standard-phases
21182 (add-before 'install 'build-doc
21183 (lambda _
21184 (invoke "makeinfo" "elpher.texi"))))))
21185 (home-page "gopher://thelambdalab.xyz/1/projects/elpher/")
21186 (synopsis "Gopher client for Emacs")
21187 (description "Elpher is a full-featured gopher client for Emacs. Its
21188 features include intuitive keyboard and mouse-driven browsing, out-of-the-box
21189 compatibility with evil-mode, clickable web and gopher links in plain text,
21190 caching of visited sites, pleasant and configurable visualization of Gopher
21191 directories, direct visualisation of image files, jumping directly to links by
21192 name (with autocompletion), a simple bookmark management system and
21193 connections using TLS encryption.")
21194 (license license:gpl3+)))
21195
21196 (define-public emacs-zerodark-theme
21197 (package
21198 (name "emacs-zerodark-theme")
21199 (version "4.6")
21200 (source
21201 (origin
21202 (method git-fetch)
21203 (uri (git-reference
21204 (url "https://github.com/NicolasPetton/zerodark-theme")
21205 (commit version)))
21206 (file-name (git-file-name name version))
21207 (sha256
21208 (base32
21209 "0pfyd1iqs7l2ngwgvj9n0r9k1px7yl16h8n502xdyf0pprxcs4p6"))))
21210 (build-system emacs-build-system)
21211 (propagated-inputs
21212 `(("emacs-flycheck" ,emacs-flycheck)
21213 ("emacs-all-the-icons" ,emacs-all-the-icons)))
21214 (home-page
21215 "https://gitlab.petton.fr/nico/zerodark-theme")
21216 (synopsis
21217 "Dark, medium contrast theme for Emacs")
21218 (description
21219 "Zerodark is a dark theme inspired from One Dark and Niflheim.
21220 An optional mode-line format can be enabled with @code{zerodark-setup-modeline-format}.")
21221 (license license:gpl3+)))
21222
21223 (define-public emacs-gnus-alias
21224 (package
21225 (name "emacs-gnus-alias")
21226 (version "20150316")
21227 (source (origin
21228 (method git-fetch)
21229 (uri (git-reference
21230 (url "https://github.com/hexmode/gnus-alias.git")
21231 (commit "9447d3ccb4c0e75d0468899cccff7aa249657bac")))
21232 (file-name (git-file-name name version))
21233 (sha256
21234 (base32
21235 "1i278npayv3kfxxd1ypi9n83q5l402sbc1zkm11pf8g006ifqsp4"))))
21236 (build-system emacs-build-system)
21237 (home-page "https://melpa.org/#/gnus-alias")
21238 (synopsis "Alternative to @code{gnus-posting-styles}")
21239 (description "This Emacs add-on provides a simple mechanism to switch
21240 Identities when using a @code{message-mode} or a @code{message-mode} derived
21241 mode. Identities can include @code{From} and @code{Organisation} headers,
21242 extra headers, body and signature. Other features include:
21243
21244 @itemize
21245 @item Switch Identities in a message buffer.
21246 @item Access original message to help determine Identity of the followup/reply
21247 message.
21248 @item Act on a forwarded message as if it were a message being replied to.
21249 @item Start a new message with a given Identity pre-selected.
21250 @end itemize")
21251 (license license:gpl2+)))
21252
21253 (define-public emacs-ox-epub
21254 (package
21255 (name "emacs-ox-epub")
21256 (version "0.3")
21257 (source (origin
21258 (method git-fetch)
21259 (uri (git-reference
21260 (url "https://github.com/ofosos/ox-epub.git")
21261 (commit (string-append "v" version))))
21262 (file-name (git-file-name name version))
21263 (sha256
21264 (base32
21265 "057sqmvm8hwkhcg3yd4i8zz2xlqsqrpyiklyiw750s3i5mxdn0k7"))))
21266 (build-system emacs-build-system)
21267 (home-page "https://github.com/ofosos/ox-epub")
21268 (synopsis "Export org mode projects to EPUB")
21269 (description "@code{ox-epub} extends the (X)HTML exporter to generate
21270 @code{.epub} files directly from OrgMode. This will export EPUB version 2,
21271 which should give broad compatibility. It should also be relatiely easy to
21272 convert the resulting @code{.epub} to a @code{.mobi} file. Needs a working
21273 zip utility (default is @code{zip}).")
21274 (license license:gpl3+)))
21275
21276 (define-public emacs-ox-hugo
21277 (package
21278 (name "emacs-ox-hugo")
21279 (version "0.8")
21280 (source
21281 (origin
21282 (method git-fetch)
21283 (uri (git-reference
21284 (url "https://github.com/kaushalmodi/ox-hugo.git")
21285 (commit (string-append "v" version))))
21286 (file-name (git-file-name name version))
21287 (sha256
21288 (base32
21289 "11h464cyc28ld0b0zridgm4drydc1qjxbm1y24zrwlkyqqjk6yr7"))))
21290 (build-system emacs-build-system)
21291 (home-page "https://ox-hugo.scripter.co")
21292 (synopsis "Hugo markdown back-end for Org export engine")
21293 (description
21294 "Ox-hugo is an Org exporter backend that exports Org to Hugo-compatible
21295 Markdown, Blackfriday, and also generates the front-matter in TOML or YAML
21296 format.")
21297 (license license:gpl3+)))
21298
21299 (define-public emacs-ox-pandoc
21300 (package
21301 (name "emacs-ox-pandoc")
21302 (version "20180510")
21303 (source (origin
21304 (method git-fetch)
21305 (uri (git-reference
21306 (url "https://github.com/kawabata/ox-pandoc.git")
21307 (commit "aa37dc7e94213d4ebedb85c384c1ba35007da18e")))
21308 (file-name (git-file-name name version))
21309 (sha256
21310 (base32
21311 "0iibxplgdp34bpq1yll2gmqjd8d8lnqn4mqjvx6cdf0y438yr4jz"))))
21312 (build-system emacs-build-system)
21313 (inputs
21314 `(("pandoc" ,ghc-pandoc)))
21315 (propagated-inputs
21316 `(("emacs-dash" ,emacs-dash)
21317 ("emacs-ht" ,emacs-ht)))
21318 (home-page "https://github.com/kawabata/ox-pandoc")
21319 (synopsis "Org exporter for Pandoc")
21320 (description "@code{ox-pandoc} is an exporter for converting Org-mode
21321 files to numerous other formats via Pandoc.")
21322 (license license:gpl3+)))
21323
21324 (define-public emacs-wc-mode
21325 (package
21326 (name "emacs-wc-mode")
21327 (version "1.3")
21328 (source (origin
21329 (method git-fetch)
21330 (uri (git-reference
21331 (url "https://github.com/bnbeckwith/wc-mode.git")
21332 (commit (string-append "v" version))))
21333 (file-name (git-file-name name version))
21334 (sha256
21335 (base32
21336 "0pjlxv46zzqdq6q131jb306vqlg4sfqls1x8vag7mmfw462hafqp"))))
21337 (build-system emacs-build-system)
21338 (home-page "https://github.com/bnbeckwith/wc-mode")
21339 (synopsis "Running word count with goals (minor mode)")
21340 (description "@code{wc-mode} is a minor mode, providing a ‘wc’ function
21341 for Emacs buffers as well as a modeline addition with live word, line and
21342 character counts. Additionally, a user can set specific goals for adding or
21343 deleting words. These goals were partly inspired by 750words.com where the
21344 goal of the site is to encourage writing by setting a goal of 750 words at a
21345 time.")
21346 (license license:gpl3+)))
21347
21348 (define-public emacs-mastodon
21349 (package
21350 (name "emacs-mastodon")
21351 (version "0.9.0")
21352 (source (origin
21353 (method git-fetch)
21354 (uri (git-reference
21355 (url "https://github.com/jdenen/mastodon.el.git")
21356 (commit version)))
21357 (file-name (git-file-name name version))
21358 (sha256
21359 (base32
21360 "0hwax6y9dghqwsbnb6f1bnc7gh8xsh5cvcnayk2sn49x8b0zi5h1"))))
21361 (build-system emacs-build-system)
21362 (arguments
21363 `(#:phases
21364 (modify-phases %standard-phases
21365 ;; Move the source files to the top level, which is included in
21366 ;; the EMACSLOADPATH.
21367 (add-after 'unpack 'move-source-files
21368 (lambda _
21369 (let ((el-files (find-files "./lisp" ".*\\.el$")))
21370 (for-each (lambda (f)
21371 (rename-file f (basename f)))
21372 el-files))
21373 #t)))))
21374 (home-page "https://github.com/jdenen/mastodon.el")
21375 (synopsis "Emacs client for Mastodon")
21376 (description "@code{mastodon.el} is an Emacs client for Mastodon, the
21377 federated microblogging social network.")
21378 (license license:gpl3+)))
21379
21380 (define-public emacs-ebdb
21381 (package
21382 (name "emacs-ebdb")
21383 (version "0.6.18")
21384 (source
21385 (origin
21386 (method url-fetch)
21387 (uri (string-append "https://elpa.gnu.org/packages/"
21388 "ebdb-" version ".tar"))
21389 (sha256
21390 (base32 "0znbv3c7wdgak1f1zb051vg4r29fksqh53k1j77jfmqcvwkpz2mw"))))
21391 (build-system emacs-build-system)
21392 (home-page "https://github.com/girzel/ebdb")
21393 (synopsis "EIEIO port of BBDB, Emacs's contact-management package")
21394 (description
21395 "EBDB is a contact management/addressbook package for Emacs. It's
21396 a re-write of the Insidious Big Brother Database (BBDB) using Emacs
21397 Lisp's (relatively new) EIEIO object oriented libraries.")
21398 (license license:gpl3+)))
21399
21400 (define-public emacs-refactor
21401 (package
21402 (name "emacs-refactor")
21403 (version "0.4")
21404 (source (origin
21405 (method git-fetch)
21406 (uri (git-reference
21407 (url "https://github.com/Wilfred/emacs-refactor.git")
21408 (commit version)))
21409 (file-name (git-file-name name version))
21410 (sha256
21411 (base32
21412 "1yky7vlv91501xb43xk19rr8mxlvrsxhawsc98jivf64nad5dqay"))))
21413 (build-system emacs-build-system)
21414 (propagated-inputs
21415 `(("emacs-dash" ,emacs-dash)
21416 ("emacs-s" ,emacs-s)
21417 ("emacs-popup" ,emacs-popup)
21418 ("emacs-list-utils" ,emacs-list-utils)
21419 ("emacs-iedit" ,emacs-iedit)))
21420 (home-page "https://github.com/Wilfred/emacs-refactor/")
21421 (synopsis "Language-specific refactoring in Emacs")
21422 (description "Emacs Refactor (EMR) is a framework for providing
21423 language-specific refactoring in Emacs. It includes refactoring commands for
21424 a variety of languages, including elisp itself.")
21425 (license license:gpl3+)))
21426
21427 (define-public emacs-flyspell-correct
21428 (package
21429 (name "emacs-flyspell-correct")
21430 (version "0.5")
21431 (source
21432 (origin
21433 (method git-fetch)
21434 (uri (git-reference
21435 (url "https://github.com/d12frosted/flyspell-correct.git")
21436 (commit (string-append "v" version))))
21437 (file-name (git-file-name name version))
21438 (sha256
21439 (base32
21440 "1r9hmz7sihhy7npv6nxp04sy57glzmfax5d67mwn96fdnc0yhlnd"))))
21441 (build-system emacs-build-system)
21442 (propagated-inputs
21443 `(("emacs-helm" ,emacs-helm)
21444 ("emacs-ivy" ,emacs-ivy)
21445 ("emacs-popup" ,emacs-popup)))
21446 (home-page
21447 "https://github.com/d12frosted/flyspell-correct")
21448 (synopsis
21449 "Correcting words with flyspell via custom interfaces")
21450 (description
21451 "This package provides functionality for correcting words via custom
21452 interfaces. Several interfaces are supported beside the classic ido: popup,
21453 helm and ivy.")
21454 (license license:gpl3+)))
21455
21456 (define-public emacs-org-emms
21457 (let ((commit "07a8917f3d628c32e5de1dbd118ac08203772533")
21458 (revision "1"))
21459 (package
21460 (name "emacs-org-emms")
21461 (version
21462 (git-version "0.1" revision commit))
21463 (source
21464 (origin
21465 (method git-fetch)
21466 (uri (git-reference
21467 (url "https://gitlab.com/jagrg/org-emms.git")
21468 (commit commit)))
21469 (file-name (git-file-name name commit))
21470 (sha256
21471 (base32
21472 "1sqsm5sv311xfdk4f4rsnvprdf2v2vm7l1b3vqi7pc0g8adlnw1d"))))
21473 (build-system emacs-build-system)
21474 (propagated-inputs
21475 `(("emms" ,emacs-emms)
21476 ("emacs-org" ,emacs-org)))
21477 (home-page "https://gitlab.com/jagrg/org-emms")
21478 (synopsis "Play multimedia files from org-mode")
21479 (description
21480 "This package provides a new org link type for playing back multimedia
21481 files from org-mode using EMMS, The Emacs Multimedia System. If the link
21482 contains a track position, playback will start at the specified position.")
21483 (license license:gpl3+))))
21484
21485 (define-public emacs-org-jira
21486 (package
21487 (name "emacs-org-jira")
21488 (version "4.3.1")
21489 (source
21490 (origin
21491 (method git-fetch)
21492 (uri (git-reference
21493 (url "https://github.com/ahungry/org-jira.git")
21494 (commit version)))
21495 (file-name (git-file-name name version))
21496 (sha256
21497 (base32
21498 "1l80r2a9zzbfk2c78i40h0ww79vm9v4j6xi2h5i4w9kqh10rs6h2"))))
21499 (build-system emacs-build-system)
21500 (propagated-inputs
21501 `(("emacs-request" ,emacs-request)
21502 ("emacs-s" ,emacs-s)
21503 ("emacs-dash" ,emacs-dash)
21504 ("emacs-org" ,emacs-org)))
21505 (home-page "https://github.com/ahungry/org-jira")
21506 (synopsis "Syncing between Jira and Org-mode")
21507 (description
21508 "This package provides an extension to org-mode for syncing issues with
21509 JIRA issue servers.")
21510 (license license:gpl3+)))
21511
21512 (define-public emacs-systemd-mode
21513 (package
21514 (name "emacs-systemd-mode")
21515 (version "1.6")
21516 (source (origin
21517 (method git-fetch)
21518 (uri (git-reference
21519 (url "https://github.com/holomorph/systemd-mode.git")
21520 (commit (string-append "v" version))))
21521 (file-name (git-file-name name version))
21522 (sha256
21523 (base32
21524 "0ylgnvpfindg4cxccbqy02ic7p0i9rygf1w16dm1filwhbqvjplq"))))
21525 (build-system emacs-build-system)
21526 (arguments '(#:include '("\\.el$" "\\.txt$")))
21527 (home-page "https://github.com/holomorph/systemd-mode")
21528 (synopsis
21529 "Major mode for editing systemd units")
21530 (description
21531 "Major mode for editing systemd units in GNU Emacs.")
21532 (license license:gpl3+)))
21533
21534 (define-public emacs-ssh-config-mode
21535 (let ((commit "4c1dfa57d452cb5654453bf186c8ff63e1e71b56")
21536 (revision "1"))
21537 (package
21538 (name "emacs-ssh-config-mode")
21539 (version (git-version "8.0" revision commit))
21540 (source
21541 (origin
21542 (method git-fetch)
21543 (uri
21544 (git-reference
21545 (url "https://github.com/jhgorrell/ssh-config-mode-el.git")
21546 (commit commit)))
21547 (file-name (git-file-name name commit))
21548 (sha256
21549 (base32
21550 "0crglfdazzckizbwzmgl2rn6j85avfzkr1q7ijxd17rp2anvr9bd"))))
21551 (build-system emacs-build-system)
21552 (arguments '(#:include '("\\.el$" "\\.txt$")))
21553 (home-page
21554 "https://github.com/jhgorrell/ssh-config-mode-el")
21555 (synopsis
21556 "Mode for fontification of ~/.ssh/config")
21557 (description
21558 "This package fontifies the ssh config keywords and creates
21559 keybindings for skipping from host section to host section.")
21560 (license license:gpl3+))))
21561
21562 (define-public emacs-ssh-agency
21563 (package
21564 (name "emacs-ssh-agency")
21565 (version "0.4")
21566 (source (origin
21567 (method git-fetch)
21568 (uri (git-reference
21569 (url "https://github.com/magit/ssh-agency.git")
21570 (commit version)))
21571 (file-name (git-file-name name version))
21572 (sha256
21573 (base32
21574 "0895n7bss4wdydic1gflr03f2cwdyqywl16gvb599lpn288jhwvz"))))
21575 (build-system emacs-build-system)
21576 (propagated-inputs
21577 `(("dash" ,emacs-dash)))
21578 (home-page "https://github.com/magit/ssh-agency")
21579 (synopsis "Manage @code{ssh-agent} from Emacs")
21580 (description
21581 "This package provides functions to startup @code{ssh-agent}, set the
21582 needed environment variables in Emacs, and prompt for passphrases from within
21583 Emacs so that pushes and pulls from @code{magit} will not require entering any
21584 passphrase.
21585
21586 It can also be useful on Unix-like platforms to delay having to enter your
21587 passphrase until the first time you push to a remote.")
21588 (license license:gpl3+)))
21589
21590 (define-public emacs-tao-theme
21591 (let ((commit "c5107fbe7e752f4e58c2d2147ff18a1ebb12937c")
21592 (revision "0"))
21593 (package
21594 (name "emacs-tao-theme")
21595 (version (git-version "0" revision commit))
21596 (source
21597 (origin
21598 (method git-fetch)
21599 (uri (git-reference
21600 (url "https://github.com/11111000000/tao-theme-emacs.git")
21601 (commit commit)))
21602 (file-name (git-file-name name version))
21603 (sha256
21604 (base32
21605 "07vvlglmkj87hpxz79s3bl2cjn71vain57fdxs7j9vlr5jkchxwn"))))
21606 (build-system emacs-build-system)
21607 (home-page "https://github.com/11111000000/tao-theme-emacs")
21608 (synopsis "Parameterized uncolored color themes for Emacs")
21609 (description
21610 "This package provides two parameterized uncolored color themes for
21611 Emacs: @code{tao-yin} and @code{tao-yang}. The default
21612 @code{tao-theme-scale-fn} is @code{tao-theme-golden-scale}.
21613
21614 You can customize: @code{tao-theme-scale-fn}, that returns 16 2-digit numbers;
21615 @code{tao-theme-scale-filter-fn}, for edge filter; and
21616 @code{tao-theme-use-height}.")
21617 (license license:gpl3+))))
21618
21619 (define-public emacs-almost-mono-themes
21620 (let ((commit "c3a85c1a665530a5d830665969725cdba8eceb75")
21621 (revision "0"))
21622 (package
21623 (name "emacs-almost-mono-themes")
21624 (version (git-version "0" revision commit))
21625 (source
21626 (origin
21627 (method git-fetch)
21628 (uri (git-reference
21629 (url "https://github.com/cryon/almost-mono-themes.git")
21630 (commit commit)))
21631 (file-name (git-file-name name version))
21632 (sha256
21633 (base32
21634 "034k32xkr5ma415hlkbl35z0jxc4sa1inf87hg3y6lrlfl83fyjh"))))
21635 (build-system emacs-build-system)
21636 (home-page "https://github.com/cryon/almost-mono-themes")
21637 (synopsis "Almost monochromatic themes for emacs in a few variants")
21638 (description
21639 "This package provides a collection of almost monochrome Emacs themes:
21640 @code{almost-mono-black} and @code{almost-mono-white}.")
21641 (license license:gpl3+))))
21642
21643 (define-public emacs-quasi-monochrome
21644 (let ((commit "68060dbbc0bbfe4924387392874186c5a29bb434")
21645 (revision "0"))
21646 (package
21647 (name "emacs-quasi-monochrome")
21648 (version (git-version "1.2" revision commit))
21649 (source
21650 (origin
21651 (method git-fetch)
21652 (uri (git-reference
21653 (url "https://github.com/lbolla/emacs-quasi-monochrome.git")
21654 (commit commit)))
21655 (file-name (git-file-name name version))
21656 (sha256
21657 (base32
21658 "0zp2xr0bjfqrpb0bqczzick1vvbjmipjavrdi70kw6a9caynvq22"))))
21659 (build-system emacs-build-system)
21660 (home-page "https://github.com/lbolla/emacs-quasi-monochrome")
21661 (synopsis "Dark color theme for Emacs")
21662 (description
21663 "This package provides a dark color theme with a black background, high
21664 contrast and few colors.")
21665 (license license:gpl3+))))
21666
21667 (define-public emacs-doom-themes
21668 (let ((commit "54039c5171e3f8c9cef1f82122549b66cd8c8f7b")
21669 (revision "4")
21670 (version "2.1.6"))
21671 (package
21672 (name "emacs-doom-themes")
21673 (version (git-version version revision commit))
21674 (source (origin
21675 (method git-fetch)
21676 (uri (git-reference
21677 (url "https://github.com/hlissner/emacs-doom-themes.git")
21678 (commit commit)))
21679 (file-name (git-file-name name version))
21680 (sha256
21681 (base32 "1iwdjq4q2gkhi6jwas3ywgmdz5dg14sfb3fzhqd7wih6j3i2l3cr"))))
21682 (build-system emacs-build-system)
21683 (native-inputs
21684 `(("emacs-ert-runner" ,emacs-ert-runner)))
21685 (arguments
21686 `(#:tests? #t
21687 #:test-command '("ert-runner")
21688 #:modules ((guix build emacs-build-system)
21689 (guix build utils)
21690 (guix build emacs-utils)
21691 (srfi srfi-1))
21692 #:phases
21693 (modify-phases %standard-phases
21694 (add-after 'unpack 'move-themes
21695 (lambda _
21696 ;; Move the source files to the top level, which is in the
21697 ;; EMACSLOADPATH.
21698 (for-each (lambda (f)
21699 (rename-file f (basename f)))
21700 (find-files "./themes" ".*\\.el$"))
21701 #t))
21702 ;; There is a byte-code overflow issue in the latest checkout
21703 ;; which affects byte-compilation for several (read `most') theme
21704 ;; files. In order to cope with this issue, we disable
21705 ;; byte-compilation until this issue is resolved.
21706 ;; <https://github.com/hlissner/emacs-doom-themes/issues/314>
21707 ;;
21708 ;; NOTE: Byte-comp has been disabled in/after commit 9cd6872.
21709 ;; However our method of selective disabling is preferential to
21710 ;; just widely disabling byte-compilation.
21711 (add-after 'move-themes 'disable-breaking-compilation
21712 (lambda _
21713 (for-each (lambda (file)
21714 (chmod file #o600) ; needed to write changes.
21715 (emacs-batch-disable-compilation file))
21716 (cons "doom-themes-ext-neotree.el"
21717 ;; NOTE: When updating this package, determine
21718 ;; whether changed theme files can byte-compile.
21719 ;; If they can successfully byte-compile, add them
21720 ;; to this list of exceptions.
21721 (lset-difference string-contains
21722 (find-files "." ".*-theme.el")
21723 '("material"
21724 "snazzy"
21725 "tomorrow-day"))))
21726 #t)))))
21727 (synopsis "Wide collection of color themes for Emacs")
21728 (description "Emacs-doom-themes contains numerous popular color themes for
21729 Emacs that integrate with major modes like Org-mode.")
21730 (home-page "https://github.com/hlissner/emacs-doom-themes")
21731 (license license:expat))))
21732
21733 (define-public emacs-modus-operandi-theme
21734 (package
21735 (name "emacs-modus-operandi-theme")
21736 (version "0.10.0")
21737 (source
21738 (origin
21739 (method url-fetch)
21740 (uri (string-append "https://elpa.gnu.org/packages/"
21741 "modus-operandi-theme-" version ".el"))
21742 (sha256
21743 (base32 "1r6dkfdd967zw1nw58nlw7y1r9x8lcbr5gvjfbcbrw0agh87wb40"))))
21744 (build-system emacs-build-system)
21745 (home-page "https://gitlab.com/protesilaos/modus-themes")
21746 (synopsis "Accessible light theme (WCAG AAA)")
21747 (description
21748 "Modus operandi is the light version of the Modus accessible themes for
21749 GNU Emacs. The contrast ratio between foreground and background values should
21750 always be greater than 7:1, which conforms with the WCAG AAA accessibility
21751 standard. This is the highest standard of its kind.")
21752 (license license:gpl3+)))
21753
21754 (define-public emacs-modus-vivendi-theme
21755 (package
21756 (name "emacs-modus-vivendi-theme")
21757 (version "0.10.0")
21758 (source
21759 (origin
21760 (method url-fetch)
21761 (uri (string-append "https://elpa.gnu.org/packages/"
21762 "modus-vivendi-theme-" version ".el"))
21763 (sha256
21764 (base32 "1kk8q5lrl69ysawnk2iymqmmcsad884kx691hjf2zdj6fskd070g"))))
21765 (build-system emacs-build-system)
21766 (home-page "https://gitlab.com/protesilaos/modus-themes")
21767 (synopsis "Accessible dark theme (WCAG AAA)")
21768 (description
21769 "Modus vivendi is the dark version of the Modus accessible themes for GNU
21770 Emacs. The contrast ratio between foreground and background values should
21771 always be greater than 7:1, which conforms with the WCAG AAA accessibility
21772 standard. This is the highest standard of its kind.")
21773 (license license:gpl3+)))
21774
21775 (define-public emacs-modus-themes
21776 (deprecated-package "emacs-modus-themes" emacs-modus-operandi-theme))
21777
21778 (define-public emacs-punpun-theme
21779 (let ((commit "2f78125609277b2478abdebd8f9d5ee10a823b65")
21780 (revision "0"))
21781 (package
21782 (name "emacs-punpun-theme")
21783 (version (git-version "0" revision commit))
21784 (source
21785 (origin
21786 (method git-fetch)
21787 (uri (git-reference
21788 (url "https://github.com/wasamasa/punpun-theme.git")
21789 (commit commit)))
21790 (file-name (git-file-name name version))
21791 (sha256
21792 (base32
21793 "1sgxrj3igzq86h3whfymxf4qzv9kpvcrlhbvjmnp7fwrplys0n7d"))))
21794 (build-system emacs-build-system)
21795 (home-page "https://github.com/wasamasa/punpun-theme")
21796 (synopsis "Bleak Emacs theme")
21797 (description
21798 "A bleak theme. Uses shades of gray and the occasional splash of
21799 color. Designed for 256-color terminals. Comes in light and dark!")
21800 (license license:gpl3+))))
21801
21802 (define-public emacs-spacemacs-theme
21803 (let ((commit "f79c40fb241e204539fde97200abae91e828e585")
21804 (revision "1"))
21805 (package
21806 (name "emacs-spacemacs-theme")
21807 (version (git-version "0" revision commit)) ;no release yet
21808 (source
21809 (origin
21810 (method git-fetch)
21811 (uri (git-reference
21812 (url "https://github.com/nashamri/spacemacs-theme.git")
21813 (commit commit)))
21814 (file-name (git-file-name name version))
21815 (sha256
21816 (base32 "1l2kkiyrskkpx8f901v0wrzaah1wjg15zdyv88spj3mh3hwd3b6n"))))
21817 (build-system emacs-build-system)
21818 (home-page "https://github.com/nashamri/spacemacs-theme")
21819 (synopsis
21820 "Light and dark theme for spacemacs that supports GUI and terminal")
21821 (description
21822 "Spacemacs theme is an Emacs color theme that started as
21823 a theme for Spacemacs. The theme comes with dark and light variants
21824 and it should work well with 256 color terminals.")
21825 (license license:gpl3+))))
21826
21827 (define-public emacs-elixir-mode
21828 (package
21829 (name "emacs-elixir-mode")
21830 (version "2.3.1")
21831 (source
21832 (origin
21833 (method git-fetch)
21834 (uri (git-reference
21835 (url "https://github.com/elixir-editors/emacs-elixir.git")
21836 (commit (string-append "v" version))))
21837 (file-name (git-file-name name version))
21838 (sha256
21839 (base32 "06bi68x49v6f7flpz279mm4jpg31ll3s274givm3pvr8slcxs6xg"))))
21840 (build-system emacs-build-system)
21841 (propagated-inputs
21842 `(("emacs-pkg-info" ,emacs-pkg-info)))
21843 (home-page
21844 "https://github.com/elixir-editors/emacs-elixir")
21845 (synopsis "Major mode for editing Elixir files")
21846 (description
21847 "Elixir-Mode provides font-locking, indentation and navigation support
21848 for the Elixir programming language.")
21849 (license license:gpl3+)))
21850
21851 (define-public emacs-dimmer
21852 (package
21853 (name "emacs-dimmer")
21854 (version "0.3.0")
21855 (source
21856 (origin
21857 (method git-fetch)
21858 (uri (git-reference
21859 (url "https://github.com/gonewest818/dimmer.el.git")
21860 (commit version)))
21861 (file-name (git-file-name name version))
21862 (sha256
21863 (base32 "1jv9rrv15nb5hpwcaqlpjj932gyisrkwbv11czkg3v0bn7qn6yif"))))
21864 (build-system emacs-build-system)
21865 (home-page "https://github.com/gonewest818/dimmer.el")
21866 (synopsis "Visually highlights the selected buffer in Emacs")
21867 (description "Dimmer provides a minor mode that indicates which buffer is
21868 currently active by dimming the faces in the other buffers. It does this
21869 nondestructively, and computes the dimmed faces dynamically such that your
21870 overall color scheme is shown in a muted form without requiring you to define
21871 what is a \"dim\" version of every face.")
21872 (license license:gpl3+)))
21873
21874 (define-public emacs-minibuffer-line
21875 (package
21876 (name "emacs-minibuffer-line")
21877 (version "0.1")
21878 (source
21879 (origin
21880 (method url-fetch)
21881 (uri (string-append
21882 "https://elpa.gnu.org/packages/minibuffer-line-"
21883 version
21884 ".el"))
21885 (sha256
21886 (base32 "1ny4iirp26na5118wfgxlv6fxlrdclzdbd9m0lkrv51w0qw7spil"))))
21887 (build-system emacs-build-system)
21888 (home-page "https://elpa.gnu.org/packages/minibuffer-line.html")
21889 (synopsis "Display status info in the minibuffer window")
21890 (description
21891 "This package lets you display various status information in the
21892 minibuffer window instead of the mode-line. Of course, this is only displayed
21893 when the minibuffer window is not already used for other things (e.g. a
21894 minibuffer or an each area message).
21895
21896 The contents and aspect is controlled by the @code{minibuffer-line-format}
21897 variable and the @code{minibuffer-line} face.")
21898 (license license:gpl3+)))
21899
21900 (define-public emacs-eshell-prompt-extras
21901 (package
21902 (name "emacs-eshell-prompt-extras")
21903 (version "1.0")
21904 (home-page "https://github.com/zwild/eshell-prompt-extras")
21905 (source
21906 (origin
21907 (method git-fetch)
21908 (uri (git-reference
21909 (url home-page)
21910 (commit version)))
21911 (file-name (git-file-name name version))
21912 (sha256
21913 (base32
21914 "0gb07mns23dgqqr6qfy7d6ndizy15sqgbgfaig6k5xbjnwi02v9g"))))
21915 (build-system emacs-build-system)
21916 (synopsis "Display extra information and color for your Eshell prompt")
21917 (description "This library displays various customizable elements for
21918 @code{eshell} prompts: remote user, remote host, python virtual environment
21919 info, git branch, git dirty info and git unpushed number. Multiple themes are
21920 available.")
21921 (license license:gpl3+)))
21922
21923 (define-public emacs-eshell-did-you-mean
21924 (package
21925 (name "emacs-eshell-did-you-mean")
21926 (version "0.1")
21927 (home-page "https://github.com/xuchunyang/eshell-did-you-mean")
21928 (source
21929 (origin
21930 (method git-fetch)
21931 (uri (git-reference
21932 (url home-page)
21933 (commit (string-append "v" version))))
21934 (file-name (git-file-name name version))
21935 (sha256
21936 (base32
21937 "0v0wshck5n4hspcv1zk1g2nm6xiigcjp16lx0dc8wzkl6ymljvbg"))))
21938 (build-system emacs-build-system)
21939 (synopsis "Display suggestions on 'command not found' in Eshell")
21940 (description "This library adds a list of 'Did you mean...' suggestions
21941 when the command was not found in Eshell. The suggestions are found after the
21942 commands that bear resemblance to the input command.")
21943 (license license:gpl3+)))
21944
21945 (define-public emacs-unfill
21946 (package
21947 (name "emacs-unfill")
21948 (version "0.2")
21949 (home-page "https://github.com/purcell/unfill")
21950 (source
21951 (origin
21952 (method git-fetch)
21953 (uri (git-reference
21954 (url home-page)
21955 (commit version)))
21956 (file-name (git-file-name name version))
21957 (sha256
21958 (base32 "0wyradin5igp25nsd3n22i2ppxhmy49ac1iq1w2715v8pfmiydnc"))))
21959 (build-system emacs-build-system)
21960 (synopsis "Inverse of Emacs' @code{fill-paragraph} and @code{fill-region}")
21961 (description
21962 "The functions in this package provide the inverse of Emacs'
21963 @code{fill-paragraph} and @code{fill-region}.")
21964 (license license:gpl3+)))
21965
21966 (define-public emacs-windower
21967 (package
21968 (name "emacs-windower")
21969 (version "0.0.1")
21970 (home-page "https://gitlab.com/ambrevar/emacs-windower")
21971 (source
21972 (origin
21973 (method git-fetch)
21974 (uri (git-reference
21975 (url home-page)
21976 (commit version)))
21977 (file-name (git-file-name name version))
21978 (sha256
21979 (base32 "0h24gb1ip0czfasxm8wwcc3v19g7mznzw2sxkmmfb5iis59p7dfy"))))
21980 (build-system emacs-build-system)
21981 (synopsis "Helper functions for window manipulation in Emacs")
21982 (description
21983 "This package provides helper functions for window manipulation in Emacs,
21984 such as:
21985
21986 @itemize
21987 @item switch to last buffer,
21988 @item toggle single window display,
21989 @item toggle between horizontal and vertical splits,
21990 @item move borders more naturally,
21991 @item swap windows à-la @code{windmove}.
21992 @end itemize")
21993 (license license:gpl3+)))
21994
21995 (define-public emacs-flycheck-cpplint
21996 (let ((commit "1d8a090861572258ab704915263feeb3a436c3d2")
21997 (revision "1"))
21998 (package
21999 (name "emacs-flycheck-cpplint")
22000 (version (git-version "0.1" revision commit))
22001 (source
22002 (origin
22003 (method git-fetch)
22004 (uri (git-reference
22005 (url "https://github.com/flycheck/flycheck-google-cpplint")
22006 (commit commit)))
22007 (file-name (git-file-name name version))
22008 (sha256
22009 (base32 "0l6sg83f6z8x2alnblpv03rj442sbnkkkcbf8i0agjmx3713a5yx"))))
22010 (build-system emacs-build-system)
22011 (arguments
22012 `(#:phases
22013 (modify-phases %standard-phases
22014 (add-after 'unpack 'set-cpplint-path
22015 (lambda _
22016 (substitute* "flycheck-google-cpplint.el"
22017 (("\"cpplint.py\"")
22018 (string-append "\"" (which "cpplint") "\"")))
22019 #t)))))
22020 (inputs
22021 `(("cpplint" ,cpplint)))
22022 (propagated-inputs
22023 `(("flycheck-mode" ,emacs-flycheck)))
22024 (synopsis "Google C++ checker for Flycheck")
22025 (description "This package provides a interface for @code{cpplint} over
22026 Flycheck plugin. @code{cpplint} is a static code checker for C++, following
22027 Google guidelines.")
22028 (home-page "https://github.com/flycheck/flycheck-google-cpplint")
22029 (license license:gpl3+))))
22030
22031 (define-public emacs-helm-fish-completion
22032 (package
22033 (name "emacs-helm-fish-completion")
22034 (version "0.5")
22035 (home-page "https://github.com/emacs-helm/helm-fish-completion")
22036 (source
22037 (origin
22038 (method git-fetch)
22039 (uri (git-reference
22040 (url home-page)
22041 (commit version)))
22042 (file-name (git-file-name name version))
22043 (sha256
22044 (base32 "0hpsm39kx8vpz2zmarjrkvy1capkk5lwpsmdg2xnklsck6xsn922"))))
22045 (build-system emacs-build-system)
22046 (propagated-inputs
22047 `(("helm" ,emacs-helm)
22048 ("fish-completion" ,emacs-fish-completion)))
22049 (synopsis "Helm interface for Emacs fish-completion")
22050 (description "Helm Fish Completion is a Helm interface for Emacs
22051 fish-completion. It can be used in both Eshell and M-x shell.")
22052 (license license:gpl3+)))
22053
22054 (define-public emacs-telega
22055 ;; This package has versions newer than indicated on MELPA.
22056 ;; Get the current version from `telega-version` in telega.el.
22057 ;; or by running M-x telega-version.
22058 (let ((commit "ae09592498ce380e57fbb76725fd4c89ae248864")
22059 (revision "0")
22060 (version "0.6.0"))
22061 (package
22062 (name "emacs-telega")
22063 (version (git-version version revision commit))
22064 (source
22065 (origin
22066 (method git-fetch)
22067 (uri (git-reference
22068 (url "https://github.com/zevlg/telega.el.git")
22069 (commit commit)))
22070 (sha256
22071 (base32
22072 "0mv6i80958d9crzspzik5xh5g8326115bvg2frgv0dp9p6rm86m3"))
22073 (patches (search-patches "emacs-telega-test-env.patch"))
22074 (file-name (git-file-name name version))))
22075 (build-system gnu-build-system)
22076 (arguments
22077 `(#:modules ((guix build gnu-build-system)
22078 ((guix build emacs-build-system) #:prefix emacs:)
22079 (guix build utils)
22080 (guix build emacs-utils))
22081 #:imported-modules (,@%gnu-build-system-modules
22082 (guix build emacs-build-system)
22083 (guix build emacs-utils))
22084 #:test-target "test"
22085 #:make-flags (list "WITH_VOIP=t")
22086 #:phases
22087 (modify-phases %standard-phases
22088 (add-after 'unpack 'prefix-patch
22089 (lambda _
22090 (substitute* "server/Makefile"
22091 (("CC=cc")
22092 "CC=gcc")
22093 (("INSTALL_PREFIX=\\$\\(HOME\\)/.telega")
22094 (string-append "INSTALL_PREFIX=" (assoc-ref %outputs "out")
22095 "/bin"))
22096 ;; Manually invoke `run_tests.py` after install phase.
22097 (("python3 run_tests.py")
22098 ""))
22099 #t))
22100 (add-after 'unpack 'telega-paths-patch
22101 (lambda* (#:key inputs #:allow-other-keys)
22102 ;; Hard-code paths to `ffplay` and `ffmpeg`.
22103 (let ((ffplay-bin (string-append (assoc-ref inputs "ffmpeg")
22104 "/bin/ffplay"))
22105 (ffmpeg-bin (string-append (assoc-ref inputs "ffmpeg")
22106 "/bin/ffmpeg")))
22107 (substitute* "telega-ffplay.el"
22108 (("\\(executable-find \"ffplay\"\\)")
22109 (string-append
22110 "(and (file-executable-p \"" ffplay-bin "\")"
22111 "\"" ffplay-bin "\")"))
22112 (("\\(executable-find \"ffmpeg\"\\)")
22113 (string-append
22114 "(and (file-executable-p \"" ffmpeg-bin "\")"
22115 "\"" ffmpeg-bin "\")"))))
22116 ;; Modify telega-util to reflect unique dir name in
22117 ;; `telega-install-data' phase.
22118 (substitute* "telega-util.el"
22119 (("\\(concat \"etc/\" filename\\) telega--lib-directory")
22120 "(concat \"telega-data/\" filename)
22121 (locate-dominating-file telega--lib-directory
22122 \"telega-data\")"))
22123 #t))
22124 ;; The server test suite has a hardcoded path.
22125 ;; Reset this behavior to use the proper path.
22126 (add-after 'unpack 'server-suite-patch
22127 (lambda _
22128 (substitute* "server/run_tests.py"
22129 (("~/.telega/telega-server")
22130 (string-append (assoc-ref %outputs "out")
22131 "/bin/telega-server")))
22132 #t))
22133 (add-after 'install 'run-server-suite
22134 (lambda _
22135 (invoke "python3" "server/run_tests.py")
22136 #t))
22137 (delete 'configure)
22138 ;; Build emacs-side using `emacs-build-system'
22139 (add-after 'compress-documentation 'emacs-add-source-to-load-path
22140 (assoc-ref emacs:%standard-phases 'add-source-to-load-path))
22141 (add-after 'emacs-add-source-to-load-path 'emacs-install
22142 (assoc-ref emacs:%standard-phases 'install))
22143 ;; This step installs subdir /etc, which contains images, sounds and
22144 ;; various other data, next to the site-lisp dir.
22145 (add-after 'emacs-install 'telega-install-data
22146 (lambda* (#:key outputs #:allow-other-keys)
22147 (copy-recursively
22148 "etc"
22149 (string-append (assoc-ref outputs "out")
22150 "/share/emacs/telega-data/"))
22151 #t))
22152 (add-after 'telega-install-data 'emacs-build
22153 (assoc-ref emacs:%standard-phases 'build))
22154 (add-after 'emacs-build 'emacs-make-autoloads
22155 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
22156 (inputs
22157 `(("ffmpeg" ,ffmpeg))) ; mp4/gif support.
22158 (propagated-inputs
22159 `(("emacs-visual-fill-column" ,emacs-visual-fill-column)
22160 ("emacs-company" ,emacs-company)
22161 ("libwebp" ,libwebp))) ; sticker support.
22162 (native-inputs
22163 `(("tdlib" ,tdlib)
22164 ("libtgvoip" ,libtgvoip) ; VoIP support.
22165 ;; Use Emacs with wide ints on 32-bit architectures.
22166 ("emacs" ,(match (%current-system)
22167 ((or "i686-linux" "armhf-linux")
22168 emacs-wide-int)
22169 (_
22170 emacs)))
22171 ("python" ,python)))
22172 (synopsis "GNU Emacs client for the Telegram messenger")
22173 (description
22174 "Telega is a full-featured, unofficial GNU Emacs-based client for the
22175 Telegram messaging platform.")
22176 (home-page "https://github.com/zevlg/telega.el")
22177 (license license:gpl3+))))
22178
22179 (define-public emacs-doom-modeline
22180 (package
22181 (name "emacs-doom-modeline")
22182 (version "2.8.2")
22183 (source (origin
22184 (method git-fetch)
22185 (uri (git-reference
22186 (url "https://github.com/seagle0128/doom-modeline.git")
22187 (commit (string-append "v" version))))
22188 (sha256
22189 (base32
22190 "11srz1mr821axggs2jcmdhihxx09a2dniqv3n039wbdfaimfaidz"))
22191 (file-name (git-file-name name version))))
22192 (build-system emacs-build-system)
22193 (arguments
22194 `(#:test-command '("ert-runner")))
22195 (native-inputs `(("emacs-ert-runner" ,emacs-ert-runner)))
22196 (propagated-inputs
22197 `(("emacs-all-the-icons" ,emacs-all-the-icons)
22198 ("emacs-shrink-path" ,emacs-shrink-path)))
22199 (synopsis "Fancy and fast mode-line inspired by minimalism design")
22200 (description "Doom modeline is a complete modeline for GNU Emacs inspired
22201 by the Doom theme collection. This modeline features support for mode-specific
22202 icon support, git integration, and several other utilities.")
22203 (home-page "https://github.com/seagle0128/doom-modeline/")
22204 (license license:gpl3+)))
22205
22206 (define-public emacs-shrink-path
22207 (package
22208 (name "emacs-shrink-path")
22209 (version "0.3.1")
22210 (source
22211 (origin
22212 (method git-fetch)
22213 (uri (git-reference
22214 (url "https://gitlab.com/bennya/shrink-path.el.git")
22215 (commit (string-append "v" version))))
22216 (sha256
22217 (base32
22218 "0kx0c4syd7k6ff9j463bib32pz4wq0rzjlg6b0yqnymlzfr1mbki"))
22219 (file-name (git-file-name name version))))
22220 (build-system emacs-build-system)
22221 (propagated-inputs
22222 `(("emacs-s" ,emacs-s)
22223 ("emacs-dash" ,emacs-dash)
22224 ("emacs-f" ,emacs-f)))
22225 (home-page "https://gitlab.com/bennya/shrink-path.el")
22226 (synopsis "Fish-style path truncation in emacs-lisp")
22227 (description "This package provides utility functions that allow for
22228 Fish-style truncated directories in eshell and various modelines.")
22229 (license license:gpl3+)))
22230
22231 (define-public emacs-org-present
22232 (let ((commit "d13acd70eff6a1608bc991920232146a0de76b21"))
22233 (package
22234 (name "emacs-org-present")
22235 (version "0.0.1")
22236 (source
22237 (origin
22238 (method git-fetch)
22239 (uri (git-reference
22240 (url "https://github.com/rlister/org-present.git")
22241 (commit commit)))
22242 (file-name (git-file-name name version))
22243 (sha256
22244 (base32
22245 "0jz8xiny3rv9ql0p623byz32pip1b82j2c2nyfz2wd114kiabb6q"))))
22246 (build-system emacs-build-system)
22247 (synopsis "Ultra-minimalist presentation minor-mode for Emacs org-mode")
22248 (description "Org-present is an extremely minimalist presentation tool
22249 for Emacs org-mode. Simply layout your presentation with each slide under a
22250 top-level header, start the minor mode with @code{org-present}, and page through
22251 each slide with left/right keys.")
22252 (home-page "https://github.com/rlister/org-present")
22253 (license license:gpl2))))
22254
22255 (define-public emacs-fullframe
22256 (package
22257 (name "emacs-fullframe")
22258 (version "0.5.0")
22259 (source
22260 (origin
22261 (method git-fetch)
22262 (uri (git-reference
22263 (url "https://github.com/tomterl/fullframe.git")
22264 (commit version)))
22265 (sha256
22266 (base32
22267 "0m43qnhp6ibsskpjkxc86p3lrjsjc0ndqml3lbd65s79x4x7i3fi"))
22268 (file-name (git-file-name name version))))
22269 (build-system emacs-build-system)
22270 (home-page "https://github.com/tomterl/fullframe")
22271 (synopsis "Generalized automatic execution in a single frame")
22272 (description "This library provides helpers for single-window-per-frame
22273 execution of buffer-exposing commands.")
22274 (license license:gpl3+)))
22275
22276 (define-public emacs-eshell-toggle
22277 (let ((commit "ddfbe0a693497c4d4bc5494a19970ba4f6ab9033")
22278 (revision "1"))
22279 (package
22280 (name "emacs-eshell-toggle")
22281 (version (git-version "0.10.0" revision commit))
22282 (source
22283 (origin
22284 (method git-fetch)
22285 (uri (git-reference
22286 (url "https://github.com/4DA/eshell-toggle.git")
22287 (commit commit)))
22288 (sha256
22289 (base32
22290 "0xqrp8pwbmfxjdqipgpw5nw633mvhjjjm3k3j9sh9xdpmw05hhws"))
22291 (file-name (git-file-name name version))))
22292 (build-system emacs-build-system)
22293 (propagated-inputs
22294 `(("emacs-dash" ,emacs-dash)))
22295 (home-page "https://github.com/4DA/eshell-toggle")
22296 (synopsis "Show and hide an @code{eshell} instance")
22297 (description "This package toggles an @code{eshell} instance for the
22298 current buffer.")
22299 (license license:gpl3+))))
22300
22301 (define-public emacs-repl-toggle
22302 (package
22303 (name "emacs-repl-toggle")
22304 (version "0.6.1")
22305 (source
22306 (origin
22307 (method git-fetch)
22308 (uri (git-reference
22309 (url "https://github.com/tomterl/repl-toggle.git")
22310 (commit version)))
22311 (sha256
22312 (base32
22313 "12h3xxja3isnhvrqx7m2g7a5d8h68cc85pbqyhiipfxyafyl1yxd"))
22314 (file-name (git-file-name name version))))
22315 (build-system emacs-build-system)
22316 (propagated-inputs
22317 `(("emacs-fullframe" ,emacs-fullframe)))
22318 (home-page "https://github.com/tomterl/repl-toggle")
22319 (synopsis "Switch to and from current major mode's REPL")
22320 (description "This package provides a function to switch to and from a
22321 REPL appropriate to the current major mode.")
22322 (license license:gpl3+)))
22323
22324 (define-public emacs-blackout
22325 (let ((commit "4bac44671fca4c98d96aa94c79946bf4d4baf0ee")
22326 (revision "1"))
22327 (package
22328 (name "emacs-blackout")
22329 (version (git-version "1.0" revision commit))
22330 (source
22331 (origin
22332 (method git-fetch)
22333 (uri (git-reference
22334 (url "https://github.com/raxod502/blackout.git")
22335 (commit commit)))
22336 (sha256
22337 (base32
22338 "1wnh0nwy6r3a18sy9sqmrwv04vnmaflxy4g7mq8jiyyjijri7l1b"))
22339 (file-name (git-file-name name version))))
22340 (build-system emacs-build-system)
22341 (home-page "https://github.com/raxod502/blackout")
22342 (synopsis "Clean up mode lighters")
22343 (description "This package provides a function for hiding and customizing
22344 display of major and minor modes in the mode line.")
22345 (license license:gpl3+))))
22346
22347 (define-public emacs-ivy-omni-org
22348 (let ((commit "5460a9fc061a4a5ae8372dc8df966ced94abab58")
22349 (revision "1"))
22350 (package
22351 (name "emacs-ivy-omni-org")
22352 (version (git-version "0.2.1" revision commit))
22353 (source
22354 (origin
22355 (method git-fetch)
22356 (uri (git-reference
22357 (url "https://github.com/akirak/ivy-omni-org.git")
22358 (commit commit)))
22359 (file-name (git-file-name name version))
22360 (sha256
22361 (base32
22362 "1np1f51hc3phkl5w02a9a79gl38ra2d535i784fn4pqaasvm0rq8"))))
22363 (build-system emacs-build-system)
22364 (propagated-inputs
22365 `(("emacs-ivy" ,emacs-ivy)
22366 ("emacs-dash" ,emacs-dash)))
22367 (synopsis "Browse anything in Org mode")
22368 (description "This package allows Org items to be accessed via the Ivy
22369 interface.")
22370 (home-page "https://github.com/akirak/ivy-omni-org")
22371 (license license:gpl3+))))
22372
22373 (define-public emacs-ivy-posframe
22374 (let ((commit "ae9bafe94fe6b77b6fe45766ae6172646f6a5d50"))
22375 (package
22376 (name "emacs-ivy-posframe")
22377 (version (git-version "0.1.0" "1" commit))
22378 (source
22379 (origin
22380 (method git-fetch)
22381 (uri (git-reference
22382 (url "https://github.com/tumashu/ivy-posframe.git")
22383 (commit commit)))
22384 (file-name (git-file-name name version))
22385 (sha256
22386 (base32
22387 "1j6yns5d7lh2v1nfcznrirl7qicdli9csciqvfgj4gkh72a97pw1"))))
22388 (build-system emacs-build-system)
22389 (propagated-inputs
22390 `(("emacs-posframe" ,emacs-posframe)
22391 ("emacs-ivy" ,emacs-ivy)))
22392 (home-page "https://github.com/tumashu/ivy-posframe")
22393 (synopsis "Pop a posframe (a child frame) to show Ivy candidates")
22394 (description
22395 "This package provides an Emacs Ivy extension, which let Ivy use
22396 posframe to show its candidate menu.")
22397 (license license:gpl3+))))
22398
22399 (define-public emacs-shackle
22400 (let ((commit "7ccbe513852a1d1700b698547efca14b8940319d")
22401 (revision "1"))
22402 (package
22403 (name "emacs-shackle")
22404 (version (git-version "1.0.3" revision commit))
22405 (source
22406 (origin
22407 (method git-fetch)
22408 (uri (git-reference
22409 (url "https://github.com/wasamasa/shackle.git")
22410 (commit commit)))
22411 (file-name (git-file-name name version))
22412 (sha256
22413 (base32
22414 "0agsp8ia4irr540r898ifhjqp28n1zsq1pilv1kc272spn3qhvp9"))))
22415 (build-system emacs-build-system)
22416 (synopsis "Enforce rules for popups")
22417 (description "This package provides a global minor mode in which users
22418 can specify how popup-displaying functions occupy the screen.")
22419 (home-page "https://github.com/wasamasa/shackle")
22420 (license license:gpl3+))))
22421
22422 (define-public emacs-helm-lacarte
22423 (let ((commit "40a6c449720be521435b6b1da7911af3a0b9dca0")
22424 (revision "1"))
22425 (package
22426 (name "emacs-helm-lacarte")
22427 (version (git-version "0" revision commit))
22428 (source
22429 (origin
22430 (method git-fetch)
22431 (uri (git-reference
22432 (url "https://github.com/emacs-helm/helm-lacarte.git")
22433 (commit commit)))
22434 (file-name (git-file-name name version))
22435 (sha256
22436 (base32
22437 "0dkfd3lap2v7b4nckzv8v7hczmzwzhbl75haqkra107ln91ldbwc"))))
22438 (build-system emacs-build-system)
22439 (propagated-inputs
22440 `(("emacs-helm" ,emacs-helm)
22441 ("emacs-lacarte" ,emacs-lacarte)))
22442 (synopsis "Helm interface to @code{lacarte.el}")
22443 (description "This package provides a Helm interface to
22444 @code{lacarte.el}, a package that displays mode-specific commands as menu
22445 items.")
22446 (home-page "https://github.com/emacs-helm/helm-lacarte")
22447 (license license:gpl3+))))
22448
22449 (define-public emacs-esh-help
22450 (let ((commit "417673ed18a983930a66a6692dbfb288a995cb80")
22451 (revision "1"))
22452 (package
22453 (name "emacs-esh-help")
22454 (version (git-version "1.0.1" revision commit))
22455 (source
22456 (origin
22457 (method git-fetch)
22458 (uri (git-reference
22459 (url "https://github.com/tom-tan/esh-help.git")
22460 (commit commit)))
22461 (file-name (git-file-name name version))
22462 (sha256
22463 (base32
22464 "0x7d51a6ljl014zy7mi27vzcqqbcwg9z4drq29fr2ajk82mqhlgd"))))
22465 (build-system emacs-build-system)
22466 (propagated-inputs
22467 `(("emacs-dash" ,emacs-dash)))
22468 (synopsis "Help functions for Eshell")
22469 (description "This package provides a @code{run-help} function inspired
22470 by @code{zsh} as well as @code{eldoc} support.")
22471 (home-page "https://github.com/tom-tan/esh-help")
22472 (license license:gpl3+))))
22473
22474 (define-public emacs-isearch-dabbrev
22475 (let ((commit "1efe7abba4923015cbc2462395deaec5446a9cc8")
22476 (revision "1"))
22477 (package
22478 (name "emacs-isearch-dabbrev")
22479 (version (git-version "0.1" revision commit))
22480 (source
22481 (origin
22482 (method git-fetch)
22483 (uri (git-reference
22484 (url "https://github.com/Dewdrops/isearch-dabbrev.git")
22485 (commit commit)))
22486 (file-name (git-file-name name version))
22487 (sha256
22488 (base32
22489 "17d0816awadvsw1qc7r0p6ira75jmgxaj9hsk9ypayxsaf6ynyrb"))))
22490 (build-system emacs-build-system)
22491 (synopsis "Use @code{dabbrev} within @code{isearch}")
22492 (description "This package allows @code{dabbrev-expand} to be used
22493 within @code{isearch-mode}.")
22494 (home-page "https://github.com/Dewdrops/isearch-dabbrev")
22495 (license license:gpl3+))))
22496
22497 (define-public emacs-helm-linux-disks
22498 (let ((commit "2cdc8116a08534289eb0dc76461d0f93a0bdf231")
22499 (revision "1"))
22500 (package
22501 (name "emacs-helm-linux-disks")
22502 (version (git-version "0.1" revision commit))
22503 (source
22504 (origin
22505 (method git-fetch)
22506 (uri (git-reference
22507 (url "https://github.com/Akirak/helm-linux-disks.git")
22508 (commit commit)))
22509 (file-name (git-file-name name version))
22510 (sha256
22511 (base32
22512 "1limw82zd8jz3mhh9rqlmhj4cjhfgybs9argfjid1an3vpyhc85i"))))
22513 (build-system emacs-build-system)
22514 (propagated-inputs
22515 `(("emacs-helm" ,emacs-helm)))
22516 (synopsis "Mount/unmount volumes in Linux via Helm")
22517 (description "This package provides a Helm interface to run operations
22518 on removable volumes in Linux.")
22519 (home-page "https://github.com/Akirak/helm-linux-disks")
22520 (license license:gpl3+))))
22521
22522 (define-public emacs-psession
22523 (let ((commit "3e97267c92b164584e06a6c70ee7491714c7c12c")
22524 (revision "1"))
22525 (package
22526 (name "emacs-psession")
22527 (version (git-version "1.5" revision commit))
22528 (source
22529 (origin
22530 (method git-fetch)
22531 (uri (git-reference
22532 (url "https://github.com/thierryvolpiatto/psession.git")
22533 (commit commit)))
22534 (file-name (git-file-name name version))
22535 (sha256
22536 (base32
22537 "15frl618393bc891d0yi3mdxzvbq790a86vfvp3dyd5riz4ddg95"))))
22538 (build-system emacs-build-system)
22539 (propagated-inputs
22540 `(("emacs-async" ,emacs-async)))
22541 (synopsis "Persistent save of @code{elisp} objects.")
22542 (description "This package provides minor modes for saving Emacs session
22543 data, including buffers, window configuration, variables, and more.")
22544 (home-page "https://github.com/thierryvolpiatto/psession")
22545 (license license:gpl3+))))
22546
22547 (define-public emacs-parseedn
22548 (package
22549 (name "emacs-parseedn")
22550 (version "0.1.0")
22551 (source
22552 (origin
22553 (method git-fetch)
22554 (uri (git-reference
22555 (url "https://github.com/clojure-emacs/parseedn.git")
22556 (commit (string-append "v" version))))
22557 (file-name (git-file-name name version))
22558 (sha256
22559 (base32
22560 "11wi3hwcgmy54p6ivpijqm7v0hj6j75a19qk5z779bqfrp79b4pc"))))
22561 (build-system emacs-build-system)
22562 (propagated-inputs
22563 `(("emacs-a" ,emacs-a)
22564 ("emacs-parseclj" ,emacs-parseclj)))
22565 (home-page "https://cider.mx")
22566 (synopsis "EDN parser for Emacs Lisp")
22567 (description
22568 "An Emacs Lisp library for parsing EDN (Clojure) data.
22569 It uses parseclj's shift-reduce parser internally.")
22570 (license license:gpl3+)))
22571
22572 (define-public emacs-parseclj
22573 (package
22574 (name "emacs-parseclj")
22575 (version "0.1.0")
22576 (source
22577 (origin
22578 (method git-fetch)
22579 (uri (git-reference
22580 (url "https://github.com/clojure-emacs/parseclj.git")
22581 (commit (string-append "v" version))))
22582 (file-name (git-file-name name version))
22583 (sha256
22584 (base32
22585 "03bm5dm4hmkqimv4wqxjjh5814pxysmm7z54bv2rf7zwv1x7dggr"))))
22586 (build-system emacs-build-system)
22587 (propagated-inputs `(("emacs-a" ,emacs-a)))
22588 (home-page "https://cider.mx")
22589 (synopsis "Clojure parser for Emacs Lisp")
22590 (description
22591 "An Emacs Lisp library for parsing Clojure code and EDN data.
22592 It supports several input and output formats, all powered by the
22593 same shift-reduce parser function.")
22594 (license license:gpl3+)))
22595
22596 (define-public emacs-hide-mode-line
22597 (package
22598 (name "emacs-hide-mode-line")
22599 (version "1.0.2")
22600 (source (origin
22601 (method git-fetch)
22602 (uri (git-reference
22603 (url "https://github.com/hlissner/emacs-hide-mode-line.git")
22604 (commit (string-append "v" version))))
22605 (file-name (git-file-name name version))
22606 (sha256
22607 (base32
22608 "0dfzjgxfkcw4wisbyldsm1km18pfp9j8xgadn6qnsz11l55bpgyp"))))
22609 (build-system emacs-build-system)
22610 (synopsis "Emacs plugin that hides the mode-line")
22611 (description "A minor mode that hides the mode-line in your current
22612 buffer. It can be used to toggle an alternative mode-line, toggle its visibility,
22613 or simply disable the mode-line in buffers where it is not very useful.")
22614 (home-page "https://github.com/hlissner/emacs-hide-mode-line")
22615 (license license:expat)))
22616
22617 (define-public emacs-helm-cider
22618 ;; No new release since March 2018.
22619 (let ((commit "9363cc537f06233345aa3af5cd46aa5681ad607b"))
22620 (package
22621 (name "emacs-helm-cider")
22622 (version (git-version "0.4.0" "1" commit))
22623 (home-page "https://github.com/clojure-emacs/helm-cider")
22624 (source (origin
22625 (method git-fetch)
22626 (uri (git-reference
22627 (url home-page)
22628 (commit commit)))
22629 (file-name (git-file-name name version))
22630 (sha256
22631 (base32
22632 "0vfn4smqba1vsshz48ggkj8gs94la0sxb1sq4shrb41qj2x3dci7"))))
22633 (build-system emacs-build-system)
22634 (propagated-inputs
22635 `(("emacs-helm" ,emacs-helm)
22636 ("emacs-cider" ,emacs-cider)))
22637 (synopsis "Helm interface to Clojure's CIDER")
22638 (description "Helm-CIDER adds Helm interfaces to
22639 @command{cider-apropos}, @command{cider-apropos-documentation},
22640 @command{cider-browse-ns} (namespaces).
22641
22642 It also provides original Helm commands: @command{helm-cider-spec},
22643 @command{helm-cider-spec-ns}, @command{helm-cider-repl-history},
22644 @command{helm-cider-cheatsheet}.")
22645 (license license:gpl3+))))
22646
22647 (define-public emacs-edn
22648 ;; No release since February 2016
22649 (let ((commit "be9e32d1b49e35247b263b0243df7cfdc8d413ab"))
22650 (package
22651 (name "emacs-edn")
22652 (version (git-version "1.1.2" "1" commit))
22653 (home-page "https://github.com/expez/edn.el")
22654 (source (origin
22655 (method git-fetch)
22656 (uri (git-reference
22657 (url home-page)
22658 (commit commit)))
22659 (file-name (git-file-name name version))
22660 (sha256
22661 (base32
22662 "1xp2hjhn52k6l1g6ypva6dsklpawni7gvjafbz6404f9dyxflh7l"))))
22663 (build-system emacs-build-system)
22664 (propagated-inputs
22665 `(("emacs-peg" ,emacs-peg)))
22666 (synopsis "Read and write EDN from Elisp")
22667 (description "This is an Emacs Lisp library for reading and writing the
22668 data format @code{edn}. See @url{https://github.com/edn-format/edn}.")
22669 (license license:gpl3+))))
22670
22671 (define-public emacs-helm-clojuredocs
22672 (let ((commit "5a7f0f2cb401be0b09e73262a1c18265ab9a3cea"))
22673 (package
22674 (name "emacs-helm-clojuredocs")
22675 (version (git-version "0.3" "1" commit))
22676 (home-page "https://github.com/mbuczko/helm-clojuredocs")
22677 (source (origin
22678 (method git-fetch)
22679 (uri (git-reference
22680 (url home-page)
22681 (commit commit)))
22682 (file-name (git-file-name name version))
22683 (sha256
22684 (base32
22685 "015b8zxh91ljhqvn6z43gy08di54xcw9skw0i7frj3d7gk984qhl"))))
22686 (build-system emacs-build-system)
22687 (propagated-inputs
22688 `(("emacs-helm" ,emacs-helm)
22689 ("emacs-edn" ,emacs-edn)))
22690 (synopsis "Search help on clojuredocs.org with Helm")
22691 (description "This package provides a Helm interface to lookup Clojure
22692 documentation on @url{https://clojuredocs.org} with Helm.
22693
22694 Two function are exposed:
22695 @itemize
22696 @item @command{helm-clojuredocs}: opens a Helm session with no initial
22697 pattern. Searching starts with minimal 3 characters entered.
22698 @item @command{helm-clojuredocs-at-point}: opens a Helm session with initial
22699 pattern guessed from thing under current cursor position.
22700 @end itemize\n")
22701 (license license:gpl3+))))
22702
22703 (define-public emacs-metal-mercury-mode
22704 (let ((commit "99e2d8fb7177cae3bfa2dec2910fc28216d5f5a8")
22705 (revision "1")
22706 (version "0.0.0"))
22707 (package
22708 (name "emacs-metal-mercury-mode")
22709 (version (git-version version revision commit))
22710 (source
22711 (origin
22712 (method git-fetch)
22713 (uri (git-reference
22714 (url "https://github.com/ahungry/metal-mercury-mode.git")
22715 (commit commit)))
22716 (sha256
22717 (base32
22718 "0iil5k3rgifz2vqwsy12rbv5rzyvidq4sgwazsb2hzys8xynmfn5"))
22719 (file-name (git-file-name name version))))
22720 (build-system emacs-build-system)
22721 (propagated-inputs
22722 `(("emacs-dash" ,emacs-dash)))
22723 (synopsis "Major mode for editing Mercury files")
22724 (description
22725 "Major mode for editing Mercury files. This is a rewrite of the original
22726 mercury-mode provided by Emacs as a wrapper around prolog-mode.")
22727 (home-page "https://github.com/ahungry/metal-mercury-mode")
22728 (license license:gpl3+))))
22729
22730 (define-public emacs-boxquote
22731 ;; The following commit is 2.1 release with a switch to GPL3+ license.
22732 (let ((commit "7e47e0e2853bc1215739b2e28f260e9eed93b2c5")
22733 (revision "0"))
22734 (package
22735 (name "emacs-boxquote")
22736 (version (git-version "2.1" revision commit))
22737 (source
22738 (origin
22739 (method git-fetch)
22740 (uri (git-reference
22741 (url "https://github.com/davep/boxquote.el.git")
22742 (commit commit)))
22743 (file-name (git-file-name name version))
22744 (sha256
22745 (base32 "1aqhg24gajvllbqxb0zxrnx6sddas37k2ldfinqyszd856sjhsg3"))))
22746 (build-system emacs-build-system)
22747 (home-page "https://github.com/davep/boxquote.el")
22748 (synopsis "Quote text with different kinds of boxes")
22749 (description "@code{boxquote} provides a set of functions for using
22750 a text quoting style that partially boxes in the left hand side of an area of
22751 text, such a marking style might be used to show externally included text or
22752 example code.")
22753 (license license:gpl3+))))
22754
22755 (define-public emacs-buffer-move
22756 (package
22757 (name "emacs-buffer-move")
22758 (version "0.6.2")
22759 (source
22760 (origin
22761 (method git-fetch)
22762 (uri (git-reference
22763 (url "https://github.com/lukhas/buffer-move.git")
22764 (commit version)))
22765 (file-name (git-file-name name version))
22766 (sha256
22767 (base32 "0xdks4jfqyhkh34y48iq3gz8swp0f526kwnaai5mhgvazvs4za8c"))))
22768 (build-system emacs-build-system)
22769 (home-page "https://github.com/lukhas/buffer-move")
22770 (synopsis "Functions for moving Emacs' buffers around")
22771 (description
22772 "This package define functions for swapping buffers between windows
22773 contained in the same frame. An alternate behavior is to have the current
22774 window switch to the previous buffer instead of swapping with the other
22775 window.")
22776 (license license:gpl3+)))
22777
22778 (define-public emacs-company-ebdb
22779 (package
22780 (name "emacs-company-ebdb")
22781 (version "1.1")
22782 (source
22783 (origin
22784 (method url-fetch)
22785 (uri (string-append "https://elpa.gnu.org/packages/"
22786 "company-ebdb-" version ".el"))
22787 (sha256
22788 (base32 "146qpiigz12zp1823ggxfrx090g0mxs7gz1ba7sa0iq6ibgzwwm9"))))
22789 (build-system emacs-build-system)
22790 (propagated-inputs
22791 `(("emacs-company" ,emacs-company)))
22792 (home-page "https://elpa.gnu.org/packages/company-ebdb.html")
22793 (synopsis "Company completion backend for EBDB in Message mode")
22794 (description "@code{company-ebdb} provides Company mode integration for
22795 EBDB. It is copied more or less intact from @code{company-bbdb}, originally
22796 by Jan Tatarik.")
22797 (license license:gpl3+)))
22798
22799 (define-public emacs-mwim
22800 ;; Use the latest commit not in a release version as of yet, since it
22801 ;; contains a bug fix for the cases where `comment-start-skip' is nil.
22802 (let ((commit "b4f3edb4c0fb8f8b71cecbf8095c2c25a8ffbf85")
22803 (revision "0"))
22804 (package
22805 (name "emacs-mwim")
22806 (version (git-version "0.4" revision commit))
22807 (source
22808 (origin
22809 (method git-fetch)
22810 (uri (git-reference
22811 (url "https://github.com/alezost/mwim.el.git")
22812 (commit commit)))
22813 (file-name (git-file-name name version))
22814 (sha256
22815 (base32 "0l3k611gp9g2x2vfmh92wnhnda81dslpwwpb8mxmzk308man77ya"))))
22816 (build-system emacs-build-system)
22817 (home-page "https://github.com/alezost/mwim.el")
22818 (synopsis "Move to the beginning/end of line, code or comment")
22819 (description "@code{mwim} provides several commands to switch between
22820 various line positions, like moving to the beginning/end of code, line, or
22821 comment.")
22822 (license license:gpl3+))))
22823
22824 (define-public emacs-delight
22825 (package
22826 (name "emacs-delight")
22827 (version "1.5")
22828 (source
22829 (origin
22830 (method url-fetch)
22831 (uri (string-append "https://elpa.gnu.org/packages/"
22832 "delight-" version ".el"))
22833 (sha256
22834 (base32 "0kzlvzwmn6zj0874086q2xw0pclyi7wlkq48zh2lkd2796xm8vw7"))))
22835 (build-system emacs-build-system)
22836 (home-page "https://elpa.gnu.org/packages/delight.html")
22837 (synopsis "Dimmer switch for your mode-line lighter text")
22838 (description "@code{delight} enables customizing or hiding the
22839 mode-line text (lighter) of major and minor modes.")
22840 (license license:gpl3+)))
22841
22842 (define-public emacs-unkillable-scratch
22843 ;; Use the latest (unreleased) commit as of now, since it contains a handy
22844 ;; `unkillable-scratch-do-not-reset-scratch-buffer' customization to not
22845 ;; repopulate the scratch buffer with `initial-scratch-message'.
22846 (let ((commit "b24c2a760529833f230c14cb02ff6e7ec92288ab")
22847 (revision "0"))
22848 (package
22849 (name "emacs-unkillable-scratch")
22850 (version (git-version "1.0.0" revision commit))
22851 (source
22852 (origin
22853 (method git-fetch)
22854 (uri (git-reference
22855 (url "https://github.com/EricCrosson/unkillable-scratch.git")
22856 (commit commit)))
22857 (file-name (git-file-name name version))
22858 (sha256
22859 (base32 "13wjbcxr3km4s96yhpavgs5acs5pvqv3ih1p84diqb3x3i6wd4pa"))))
22860 (build-system emacs-build-system)
22861 (home-page "https://github.com/EricCrosson/unkillable-scratch")
22862 (synopsis "Prevents the *scratch* buffer from being killed")
22863 (description "@code{unkillable-scratch} helps prevent killing buffers
22864 matching a given regexp.")
22865 (license license:gpl2+))))
22866
22867 (define-public emacs-switch-buffer-functions
22868 (package
22869 (name "emacs-switch-buffer-functions")
22870 (version "0.0.1")
22871 (source
22872 (origin
22873 (method git-fetch)
22874 (uri (git-reference
22875 (url "https://github.com/10sr/switch-buffer-functions-el.git")
22876 (commit (string-append "v" version))))
22877 (file-name (git-file-name name version))
22878 (sha256
22879 (base32 "0pq53b8wrjbrxd5hnrcdi0z7mffp4bax55hn90k9ca3j76lhbn1k"))))
22880 (build-system emacs-build-system)
22881 (home-page "https://github.com/10sr/switch-buffer-functions-el")
22882 (synopsis "Hooks run when switching current buffer")
22883 (description "This package provides a hook variable
22884 @code{switch-buffer-functions}. The hooks will be run when the current buffer
22885 is changed after an interactive command, i.e., when @code{post-command-hook}
22886 hooks are run. The hooked functions will be called with both the previous and
22887 the current buffer.")
22888 (license license:unlicense)))
22889
22890 (define-public emacs-erc-scrolltoplace
22891 (package
22892 (name "emacs-erc-scrolltoplace")
22893 (version "0.1.0")
22894 (source
22895 (origin
22896 (method git-fetch)
22897 (uri (git-reference
22898 (url "https://gitlab.com/jgkamat/erc-scrolltoplace.git")
22899 (commit version)))
22900 (file-name (git-file-name name version))
22901 (sha256
22902 (base32 "11zpqwh1mlfifbgnvhc63bvnhg340jgxssm3m43hr1sxsyb52lh6"))))
22903 (build-system emacs-build-system)
22904 (propagated-inputs
22905 `(("emacs-switch-buffer-functions" ,emacs-switch-buffer-functions)))
22906 (home-page "https://gitlab.com/jgkamat/erc-scrolltoplace")
22907 (synopsis "ERC module to replace scrolltobottom while using keep-place")
22908 (description "@code{erc-scrolltoplace} is an ERC module to try
22909 to emulate @code{scrolltobottom} while @code{keep-place} is enabled.")
22910 (license license:gpl3+)))
22911
22912 (define-public emacs-dmenu
22913 ;; Use the latest commit, as there are no tagged releases.
22914 (let ((commit "e8cc9b27c79d3ecc252267c082ab8e9c82eab264")
22915 (revision "0"))
22916 (package
22917 (name "emacs-dmenu")
22918 (version (git-version "0.1" revision commit))
22919 (source
22920 (origin
22921 (method git-fetch)
22922 (uri (git-reference
22923 (url "https://github.com/lujun9972/el-dmenu.git")
22924 (commit commit)))
22925 (file-name (git-file-name name version))
22926 (sha256
22927 (base32 "098ncygms1r33zhjlq4fj2p4jc91v5whqrm3fazzdk7sd6dilf25"))))
22928 (build-system emacs-build-system)
22929 (home-page "https://github.com/lujun9972/el-dmenu")
22930 (synopsis "Simulate the @command{dmenu} command line program")
22931 (description "This package provides a @command{dmenu} command for
22932 launching other commands/applications from within Emacs, similar to the
22933 @command{dmenu} program. This is especially useful when using EXWM.")
22934 (license license:gpl3+))))
22935
22936 (define-public emacs-no-littering
22937 (package
22938 (name "emacs-no-littering")
22939 (version "1.0.3")
22940 (source
22941 (origin
22942 (method git-fetch)
22943 (uri (git-reference
22944 (url "https://github.com/emacscollective/no-littering.git")
22945 (commit (string-append "v" version))))
22946 (file-name (git-file-name name version))
22947 (sha256
22948 (base32 "17is06l0w6glppabv2kaclrnqi3dqb6p6alpslpg7lrjd8vd45ir"))))
22949 (build-system emacs-build-system)
22950 (home-page "https://github.com/emacscollective/no-littering")
22951 (synopsis "Help keep ~/.emacs.d/ clean")
22952 (description "The default paths used to store configuration files and
22953 persistent data are not consistent across Emacs packages, be them built-in or
22954 third-party ones. @code{no-littering} sets out to help clean
22955 @file{~/.emacs.d/} by putting configuration files and persistent data files in
22956 two user-defined directories, as well as using more descriptive names for
22957 files and subdirectories when appropriate.")
22958 (license license:gpl3+)))
22959
22960 (define-public emacs-meson-mode
22961 (package
22962 (name "emacs-meson-mode")
22963 (version "0.2")
22964 (source
22965 (origin
22966 (method git-fetch)
22967 (uri (git-reference
22968 (url "https://github.com/wentasah/meson-mode.git")
22969 (commit (string-append "v" version))))
22970 (file-name (git-file-name name version))
22971 (sha256
22972 (base32 "1720b3hpfqd989zrgcns51jbjrv4vzl9di9mccl55vkmkbqzfin0"))))
22973 (build-system emacs-build-system)
22974 (home-page "https://github.com/wentasah/meson-mode")
22975 (synopsis "Major mode for Meson build system files")
22976 (description
22977 "This is an Emacs major mode for Meson build system files. Syntax
22978 highlighting works reliably. Indentation works too, but there are probably
22979 cases where it breaks.")
22980 (license license:gpl3+)))
22981
22982 (define-public emacs-message-x
22983 ;; Use the latest commit, as there are no tagged releases.
22984 (let ((commit "5524de7bbfdd8749c110f48de5afb024d9f83133")
22985 (revision "0"))
22986 (package
22987 (name "emacs-message-x")
22988 (version (git-version "1.23" revision commit))
22989 (source
22990 (origin
22991 (method git-fetch)
22992 (uri (git-reference
22993 (url "https://github.com/emacsmirror/message-x.git")
22994 (commit commit)))
22995 (file-name (git-file-name name version))
22996 (sha256
22997 (base32 "0qy1xf11j357lsnbb829hnbg7fq1cii4cx54fwf0wgjh1bv2abvj"))))
22998 (build-system emacs-build-system)
22999 (home-page "https://www.emacswiki.org/emacs/message-x.el")
23000 (synopsis "Customizable completion in message headers")
23001 (description "@code{message-x} assigns a context-sensitive function to
23002 the TAB key in Message mode. When on a header line, it performs completion
23003 based on which header we are in (for example, newsgroup name completion makes
23004 sense on the @samp{Newsgroups} header, whereas mail alias expansion makes
23005 sense in the @samp{To} and @samp{Cc} headers). When in the message body, this
23006 executes a different function (default: @code{indent-relative}).")
23007 (license license:gpl2+))))
23008
23009 (define-public emacs-glsl-mode
23010 ;; No tag, version grabbed from source .el file.
23011 (let ((commit "b07112016436d9634cd4ef747f9af6b01366d136")
23012 (revision "0"))
23013 (package
23014 (name "emacs-glsl-mode")
23015 (version (git-version "2.4" revision commit))
23016 (source
23017 (origin
23018 (method git-fetch)
23019 (uri (git-reference
23020 (url "https://github.com/jimhourihan/glsl-mode")
23021 (commit commit)))
23022 (file-name (git-file-name name version))
23023 (sha256
23024 (base32 "0bav9ipfm0vy26n74ngsmjzc7fsyqz6xmriadzx55s44h8p5dn1s"))))
23025 (build-system emacs-build-system)
23026 (home-page "https://github.com/jimhourihan/glsl-mode")
23027 (synopsis "Major mode for Open GLSL shader files")
23028 (description
23029 "This package provides a major mode for editing OpenGLSL grammar files,
23030 usually files ending with @file{.vert}, @file{.frag}, @file{.glsl} or
23031 @file{.geom}. It is based on C mode plus some features and pre-specified
23032 fontifications.")
23033 (license license:gpl3+))))
23034
23035 (define-public emacs-gnus-harvest
23036 (let ((commit "feda071a87b799bd5d23cacde3ee71f0b166e75d")
23037 (revision "0"))
23038 (package
23039 (name "emacs-gnus-harvest")
23040 (version (git-version "1.0" revision commit))
23041 (source
23042 (origin
23043 (method git-fetch)
23044 (uri (git-reference
23045 (url "https://github.com/jwiegley/gnus-harvest.git")
23046 (commit commit)))
23047 (file-name (git-file-name name version))
23048 (sha256
23049 (base32 "08zb7vc3v3wdxkzgi902vlc5ybfvm8fxrvm5drnwfsjj9873pbcb"))))
23050 (build-system emacs-build-system)
23051 (inputs
23052 `(("sqlite" ,sqlite)))
23053 (arguments
23054 `(#:phases
23055 (modify-phases %standard-phases
23056 (add-before 'build 'patch-exec-paths
23057 (lambda* (#:key inputs #:allow-other-keys)
23058 (let ((sqlite (assoc-ref inputs "sqlite"))
23059 (file "gnus-harvest.el"))
23060 (make-file-writable file)
23061 (emacs-substitute-variables file
23062 ("gnus-harvest-sqlite-program"
23063 (string-append sqlite "/bin/sqlite3"))))
23064 #t)))))
23065 (home-page "https://github.com/jwiegley/gnus-harvest")
23066 (synopsis
23067 "Harvest email addresses from read/written Gnus articles")
23068 (description "@code{gnus-harvest} notices email address in every message
23069 or post you read or write, and collects them in a SQLite database, which can
23070 be easily and quickly queried to determine the completion list. It optionally
23071 uses BBDB and Message-X.")
23072 (license license:gpl3+))))
23073
23074 (define-public emacs-auto-dictionary-mode
23075 (package
23076 (name "emacs-auto-dictionary-mode")
23077 (version "1.1")
23078 (source
23079 (origin
23080 (method git-fetch)
23081 (uri (git-reference
23082 (url "https://github.com/nschum/auto-dictionary-mode")
23083 (commit version)))
23084 (file-name (git-file-name name version))
23085 (sha256
23086 (base32 "191294k92qp8gmfypf0q8j8qrym96aqikzvyb9p03wqvbr3r1dsk"))))
23087 (build-system emacs-build-system)
23088 (home-page "http://nschum.de/src/emacs/auto-dictionary/")
23089 (synopsis "Automatic dictionary switcher for Emacs spell checking")
23090 (description "@code{auto-dictionary} is a minor mode that hooks into
23091 Flyspell's on-the-fly spell checking and extends these checks to also detect
23092 language. Auto-dictionary then sets @code{ispell-dictionary} to use the
23093 detected language.")
23094 (license license:gpl2+)))
23095
23096 (define-public emacs-persist
23097 (package
23098 (name "emacs-persist")
23099 (version "0.4")
23100 (source
23101 (origin
23102 (method url-fetch)
23103 (uri (string-append "https://elpa.gnu.org/packages/"
23104 "persist-" version ".tar"))
23105 (sha256
23106 (base32 "0gpxy41qawzss2526j9a7lys60vqma1lvamn4bfabwza7gfhac0q"))))
23107 (build-system emacs-build-system)
23108 (home-page "http://elpa.gnu.org/packages/persist.html")
23109 (synopsis "Persist variables between Emacs sessions")
23110 (description
23111 "This package provides variables which persist across sessions.
23112 Values are stored in a directory in @code{user-emacs-directory}, using
23113 one file per value. This makes it easy to delete or remove unused
23114 variables.")
23115 (license license:gpl3+)))
23116
23117 (define-public emacs-company-emoji
23118 (package
23119 (name "emacs-company-emoji")
23120 (version "2.5.2")
23121 (source
23122 (origin
23123 (method git-fetch)
23124 (uri (git-reference
23125 (url "https://github.com/dunn/company-emoji/")
23126 (commit version)))
23127 (file-name (git-file-name name version))
23128 (sha256
23129 (base32 "0r9zcbm3nb3zw5cwrkl098v5b49jbga5404bj7j55g6k4rwkjar2"))))
23130 (build-system emacs-build-system)
23131 (propagated-inputs
23132 `(("emacs-company" ,emacs-company)))
23133 (home-page "https://github.com/dunn/company-emoji/")
23134 (synopsis "Company completion back-end for emoji")
23135 (description
23136 "This library is a Company back-end providing auto-completion for
23137 emoji.")
23138 (license license:gpl3+)))
23139
23140 (define-public emacs-exiftool
23141 (package
23142 (name "emacs-exiftool")
23143 (version "0.3.2")
23144 (source
23145 (origin
23146 (method git-fetch)
23147 (uri (git-reference
23148 (url "https://git.systemreboot.net/exiftool.el/")
23149 (commit (string-append "v" version))))
23150 (file-name (git-file-name name version))
23151 (sha256
23152 (base32
23153 "0bv58is66cz21yhc0qqkp1z4nk13zfi2l7i6pjbhyi0g1n88qqyv"))))
23154 (build-system emacs-build-system)
23155 (arguments
23156 `(#:tests? #t
23157 #:test-command '("make" "-C" "tests")
23158 #:phases
23159 (modify-phases %standard-phases
23160 (add-after 'unpack 'configure
23161 (lambda* (#:key inputs #:allow-other-keys)
23162 (make-file-writable "exiftool.el")
23163 (emacs-substitute-variables "exiftool.el"
23164 ("exiftool-executable"
23165 (string-append (assoc-ref inputs "perl-image-exiftool")
23166 "/bin/exiftool")))
23167 #t)))))
23168 (inputs
23169 `(("perl-image-exiftool" ,perl-image-exiftool)))
23170 (home-page "https://git.systemreboot.net/exiftool.el/about/")
23171 (synopsis "Elisp wrapper around ExifTool")
23172 (description "@code{emacs-exiftool} is an Elisp wrapper around ExifTool.
23173 ExifTool supports reading and writing metadata in various formats including
23174 EXIF, XMP and IPTC.")
23175 (license license:gpl3+)))
23176
23177 (define-public emacs-password-generator
23178 (package
23179 (name "emacs-password-generator")
23180 (version "1.01")
23181 (home-page "https://github.com/zargener/emacs-password-genarator")
23182 (source
23183 (origin
23184 (method git-fetch)
23185 (uri (git-reference
23186 (url home-page)
23187 (commit "904cdb591a04305ba882ce19e1d117f5fa60f7d3")))
23188 (file-name (git-file-name name version))
23189 (sha256
23190 (base32
23191 "1qgvn79qz1h8ykm5i1qv2fja4v2y0g2i0n5sf7byhnqhqlwn63nv"))))
23192 (build-system emacs-build-system)
23193 (synopsis "Generate passwords inside Emacs")
23194 (description "@code{emacs-password-generator} provides simple functions to
23195 generate random passwords and insert them into the current buffer. It also
23196 supports generation of phonetic and numeric passwords.")
23197 (license license:artistic2.0)))
23198
23199 (define-public emacs-csv
23200 (package
23201 (name "emacs-csv")
23202 (version "2.1")
23203 (home-page "https://gitlab.com/u11/csv.el")
23204 (source
23205 (origin
23206 (method git-fetch)
23207 (uri (git-reference
23208 (url home-page)
23209 (commit (string-append "V" version))))
23210 (file-name (git-file-name name version))
23211 (sha256
23212 (base32
23213 "1vmazjrfcsa9aa9aw8bq5sazdhqvhxyj837dyw5lmh8gk7z0xdaa"))))
23214 (build-system emacs-build-system)
23215 (synopsis "Elisp functions for reading and parsing CSV files")
23216 (description
23217 "@code{csv.el} provides functions for reading and parsing @acronym{CSV,
23218 Comma-Separated Values} files. It follows the format as defined in RFC 4180
23219 @emph{Common Format and MIME Type for CSV
23220 Files} (@url{http://tools.ietf.org/html/rfc4180}).")
23221 (license license:gpl3+)))
23222
23223 (define-public emacs-org-journal
23224 (package
23225 (name "emacs-org-journal")
23226 (version "2.0.0")
23227 (source
23228 (origin
23229 (method git-fetch)
23230 (uri (git-reference
23231 (url "https://github.com/bastibe/org-journal.git")
23232 (commit version)))
23233 (file-name (git-file-name name version))
23234 (sha256
23235 (base32 "18dqd0jy2x530lk0h4fcn9cld9qh4w7b3vxa60fpiia628vsv1dg"))))
23236 (build-system emacs-build-system)
23237 (home-page "https://github.com/bastibe/org-journal")
23238 (synopsis "Simple Org mode journaling mode")
23239 (description
23240 "Org Journal is a set of functions to maintain a simple personal diary /
23241 journal using in Emacs, adapted from
23242 @url{https://www.emacswiki.org/emacs/PersonalDiary}. Convenient bindings
23243 allow the creation of journal records in the current daily, weekly, monthly or
23244 yearly file and search within all records or specified time intervals. All
23245 records can be browsed and searched from the Emacs Calendar for convenience.
23246 All entries in a specified TODO state will be carried over to the next day.")
23247 (license license:bsd-3)))
23248
23249 (define-public emacs-org-static-blog
23250 (package
23251 (name "emacs-org-static-blog")
23252 (version "1.3.0")
23253 (source
23254 (origin
23255 (method git-fetch)
23256 (uri (git-reference
23257 (url "https://github.com/bastibe/org-static-blog")
23258 (commit version)))
23259 (file-name (git-file-name name version))
23260 (sha256
23261 (base32 "15iy3z8rglaqbx1fz14inh18ksgjsmq30b8hyv3lgjvcc9ssaiw0"))))
23262 (build-system emacs-build-system)
23263 (home-page "https://github.com/bastibe/org-static-blog")
23264 (synopsis
23265 "Simple Org mode based static blog generator")
23266 (description
23267 "@code{emacs-org-static-blog} is one more static blog generator, it
23268 focuses on being simple. All files are simple Org files in a directory. The
23269 only requirement is that every Org file must have a @samp{title} and
23270 a @samp{date} keywords, and optionally, a @samp{filetags} keyword.")
23271 (license license:bsd-3)))
23272
23273 (define-public emacs-ddskk
23274 ;; XXX: Upstream adds code names to their release tags, so version and code
23275 ;; name below need to be updated together.
23276 (let ((version "16.3")
23277 (code-name "Kutomatsunai"))
23278 (package
23279 (name "emacs-ddskk")
23280 (version version)
23281 (source
23282 (origin
23283 (method git-fetch)
23284 (uri (git-reference
23285 (url "https://github.com/skk-dev/ddskk")
23286 (commit (string-append "ddskk-" version "_" code-name))))
23287 (file-name (git-file-name name version))
23288 (sha256
23289 (base32 "0ln4x8f35z5y3kf9m718g223bn3lzcmw40jfjg2j5yi24ydf1wm9"))))
23290 (build-system gnu-build-system)
23291 (arguments
23292 `(#:modules ((guix build gnu-build-system)
23293 (guix build utils)
23294 (guix build emacs-utils))
23295 #:imported-modules (,@%gnu-build-system-modules
23296 (guix build emacs-utils))
23297 #:test-target "test"
23298 #:phases
23299 (modify-phases %standard-phases
23300 (replace 'configure
23301 (lambda* (#:key outputs #:allow-other-keys)
23302 (make-file-writable "SKK-MK")
23303 (emacs-substitute-variables "SKK-MK"
23304 ("PREFIX" (assoc-ref outputs "out"))
23305 ("LISPDIR" '(expand-file-name "/share/emacs/site-lisp" PREFIX))
23306 ("SKK_PREFIX" "")
23307 ("SKK_INFODIR" '(expand-file-name "info" PREFIX)))
23308 (for-each make-file-writable (find-files "./doc"))
23309 #t)))))
23310 (native-inputs
23311 `(("emacs-minimal" ,emacs-minimal)))
23312 (home-page "https://github.com/skk-dev/ddskk")
23313 (synopsis "Simple Kana to Kanji conversion program")
23314 (description
23315 "Daredevil SKK is a version of @acronym{SKK, Simple Kana to Kanji
23316 conversion program}, a Japanese input method on Emacs.")
23317 (license license:gpl2+))))
23318
23319 (define-public emacs-objed
23320 (package
23321 (name "emacs-objed")
23322 (version "0.8.3")
23323 (source
23324 (origin
23325 (method url-fetch)
23326 (uri (string-append
23327 "https://elpa.gnu.org/packages/objed-" version ".tar"))
23328 (sha256
23329 (base32
23330 "1s38d6bvggdk5p45ww1jb4gxifzgjwgw1m6ar920nlg0j4fgbcvr"))))
23331 (build-system emacs-build-system)
23332 (home-page "https://github.com/clemera/objed")
23333 (synopsis "Navigate and edit text objects")
23334 (description
23335 "@code{emacs-objed} allows navigating and editing text objects. It
23336 enables modal editing and composition of commands, too. It combines ideas of
23337 other Editors like Vim or Kakoune and tries to align them with regular Emacs
23338 conventions.")
23339 (license license:gpl3+)))
23340
23341 (define-public emacs-haskell-snippets
23342 ;; The commit below is 5 commits ahead of release, and includes a build fix.
23343 (let ((commit "07b0f460b946fd1be26c29652cb0468b47782f3a"))
23344 (package
23345 (name "emacs-haskell-snippets")
23346 (version (git-version "0.1.0" "0" commit))
23347 (source
23348 (origin
23349 (method git-fetch)
23350 (uri
23351 (git-reference
23352 (url "https://github.com/haskell/haskell-snippets")
23353 (commit commit)))
23354 (file-name (git-file-name name version))
23355 (sha256
23356 (base32 "0a7y3awi9hcyahggf0ghsdwvsmrhr9yq634wy9lkqjzrm2hqj0ci"))))
23357 (build-system emacs-build-system)
23358 (arguments
23359 `(#:phases
23360 (modify-phases %standard-phases
23361 (add-after 'install 'install-snippets
23362 (lambda* (#:key outputs #:allow-other-keys)
23363 (let* ((out (assoc-ref outputs "out"))
23364 (snippets
23365 (string-append
23366 out "/share/emacs/site-lisp/snippets/haskell-mode")))
23367 (mkdir-p snippets)
23368 (copy-recursively "snippets/haskell-mode" snippets)
23369 #t))))))
23370 (propagated-inputs
23371 `(("emacs-yasnippet" ,emacs-yasnippet)))
23372 (home-page "https://github.com/haskell/haskell-snippets")
23373 (synopsis "Official collection of YASnippet Haskell snippets for Emacs")
23374 (description "Haskell-Snippets is a collection of YASnippet Haskell
23375 snippets for Emacs.")
23376 (license license:expat))))
23377
23378 (define-public emacs-org-roam
23379 (package
23380 (name "emacs-org-roam")
23381 (version "1.0.0")
23382 (source
23383 (origin
23384 (method git-fetch)
23385 (uri (git-reference
23386 (url "https://github.com/jethrokuan/org-roam.git")
23387 (commit (string-append "v" version))))
23388 (file-name (git-file-name name version))
23389 (sha256
23390 (base32 "08pfa63k194dpk0y2gfa0nzn5lig81q0l9axkq5j4ibj6ifaap4a"))))
23391 (build-system emacs-build-system)
23392 (propagated-inputs
23393 `(("emacs-company" ,emacs-company)
23394 ("emacs-dash" ,emacs-dash)
23395 ("emacs-emacsql-sqlite" ,emacs-emacsql)
23396 ("emacs-f" ,emacs-f)
23397 ("emacs-org-ref" ,emacs-org-ref)
23398 ("emacs-s" ,emacs-s)))
23399 (home-page "https://github.com/jethrokuan/org-roam/")
23400 (synopsis "Non-hierarchical note-taking with Org mode")
23401 (description "Emacs Org Roam is a solution for taking non-hierarchical
23402 notes with Org mode. Notes are captured without hierarchy and are connected
23403 by tags. Notes can be found and created quickly. Org Roam should also work
23404 as a plug-and-play solution for anyone already using Org mode for their
23405 personal wiki.")
23406 (license license:gpl3+)))
23407
23408 (define-public emacs-uml-mode
23409 ;; Package has no release. Version is extracted from "Version:" keyword in
23410 ;; main file.
23411 (let ((commit "4c37ac1c4424b2313cd8f16ba48a98a4cc214200")
23412 (revision "1"))
23413 (package
23414 (name "emacs-uml-mode")
23415 (version (git-version "0.0.4" revision commit))
23416 (source
23417 (origin
23418 (method git-fetch)
23419 (uri (git-reference
23420 (url "https://github.com/ianxm/emacs-uml.git")
23421 (commit commit)))
23422 (file-name (git-file-name name version))
23423 (sha256
23424 (base32 "145i4srnfvd1vyibri2a1l6p9mbjvkkwlrpi41134pbarqffcnka"))))
23425 (build-system emacs-build-system)
23426 (home-page "https://github.com/ianxm/emacs-uml")
23427 (synopsis "Minor mode for editing ASCII UML sequence diagrams")
23428 (description "Emacs UML mode is a minor mode that makes it easy to build
23429 ASCII UML sequence diagrams in Emacs, which can be embedded in source code,
23430 comments or emails.")
23431 (license license:gpl3+))))
23432
23433 (define-public emacs-trashed
23434 (package
23435 (name "emacs-trashed")
23436 (version "1.9.0")
23437 (source
23438 (origin
23439 (method git-fetch)
23440 (uri (git-reference
23441 (url "https://github.com/shingo256/trashed/")
23442 (commit version)))
23443 (file-name (git-file-name name version))
23444 (sha256
23445 (base32 "13grdi12iwlw4fiphdfmvclfpbr6ajlgfbfyi7v41z8k3rxz4ypz"))))
23446 (build-system emacs-build-system)
23447 (home-page "https://github.com/shingo256/trashed/")
23448 (synopsis "View and edit system trash can in Emacs")
23449 (description "Open, view, browse, restore or permanently delete trashed
23450 files or directories in trash can with Dired-like look and feel. The trash
23451 can has to be compliant with freedesktop.org. In Emacs, you can trash files by
23452 deleting them with @code{(setq delete-by-moving-to-trash t)}. This package
23453 provides a simple but convenient user interface to manage those trashed
23454 files.")
23455 (license license:gpl3+)))
23456
23457 (define-public emacs-plantuml-mode
23458 (package
23459 (name "emacs-plantuml-mode")
23460 (version "1.4.1")
23461 (source
23462 (origin
23463 (method git-fetch)
23464 (uri (git-reference
23465 (url "https://github.com/skuro/plantuml-mode")
23466 (commit (string-append "v" version))))
23467 (file-name (git-file-name name version))
23468 (sha256
23469 (base32 "0yp41d2dmf3sx7qnl5x0zdjcr9y71b2wwc9m0q31v22xqn938ipc"))))
23470 (arguments
23471 '(#:phases
23472 (modify-phases %standard-phases
23473 (add-after 'unpack 'use-local-plantuml
23474 (lambda* (#:key inputs #:allow-other-keys)
23475 (let ((plantuml (assoc-ref inputs "plantuml"))
23476 (file "plantuml-mode.el"))
23477 (chmod file #o644)
23478 (emacs-substitute-variables file
23479 ("plantuml-jar-path"
23480 (string-append plantuml "/share/java/plantuml.jar"))
23481 ("plantuml-executable-path"
23482 (string-append plantuml "/bin/plantuml"))
23483 ("plantuml-server-url" 'nil)
23484 ("plantuml-default-exec-mode" ''executable))
23485 (emacs-batch-edit-file file
23486 `(progn (progn
23487 (goto-char (point-min))
23488 (re-search-forward "(defun plantuml-download-jar")
23489 (beginning-of-line)
23490 (kill-sexp))
23491 (basic-save-buffer)))
23492 #t))))))
23493 (inputs
23494 `(("plantuml" ,plantuml)))
23495 (propagated-inputs
23496 `(("emacs-dash" ,emacs-dash)))
23497 (build-system emacs-build-system)
23498 (home-page "https://github.com/skuro/plantuml-mode")
23499 (synopsis "Major mode for editing PlantUML sources")
23500 (description "This package provides a major mode for editing PlantUML
23501 sources. It features syntax highlighting, autocompletion, preview of buffer
23502 or region and use of locally installed binaries.")
23503 (license license:gpl3+)))
23504
23505 (define-public emacs-shell-pop
23506 (let ((commit "4b4394037940a890a313d715d203d9ead2d156a6")
23507 (revision "0"))
23508 (package
23509 (name "emacs-shell-pop")
23510 (version (git-version "0.64" revision commit))
23511 (source
23512 (origin
23513 (method git-fetch)
23514 (uri (git-reference
23515 (url "https://github.com/kyagi/shell-pop-el.git")
23516 (commit commit)))
23517 (file-name (git-file-name name version))
23518 (sha256
23519 (base32 "0s77n6b9iw1x3dv91ybkpgy3zvqd12si7zw3lg0m2b6j1akrawsg"))))
23520 (build-system emacs-build-system)
23521 (home-page "https://github.com/kyagi/shell-pop-el")
23522 (synopsis "Utility which helps with pop up shell buffer")
23523 (description
23524 "This Emacs utility helps you pop up and pop out shell buffer window
23525 easily. Four pre-set options are: @samp{shell}, @samp{terminal},
23526 @samp{ansi-term}, and @samp{eshell}. You can also set your custom shell if
23527 you use some other configuration.")
23528 (license license:gpl3+))))