gnu: Add meson 0.55.1.
[jackhill/guix/guix.git] / gnu / packages / emacs-xyz.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2014 Taylan Ulrich Bayirli/Kammer <taylanbayirli@gmail.com>
3 ;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
4 ;;; Copyright © 2014, 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org>
5 ;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Alex Kost <alezost@gmail.com>
6 ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
7 ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
8 ;;; Copyright © 2016, 2017, 2018, 2019 Chris Marusich <cmmarusich@gmail.com>
9 ;;; Copyright © 2015, 2016, 2018, 2020 Christopher Lemmer Webber <cwebber@dustycloud.org>
10 ;;; Copyright © 2016 Adriano Peluso <catonano@gmail.com>
11 ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
12 ;;; Copyright © 2016 David Thompson <davet@gnu.org>
13 ;;; Copyright © 2016 Matthew Jordan <matthewjordandevops@yandex.com>
14 ;;; Copyright © 2016, 2017 Roel Janssen <roel@gnu.org>
15 ;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
16 ;;; Copyright © 2016, 2019 Alex Griffin <a@ajgrf.com>
17 ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
18 ;;; Copyright © 2016, 2017, 2018 Alex Vong <alexvong1995@gmail.com>
19 ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Arun Isaac <arunisaac@systemreboot.net>
20 ;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
21 ;;; Copyright © 2017, 2018, 2019, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
22 ;;; Copyright © 2017, 2018, 2019, 2020 Clément Lassieur <clement@lassieur.org>
23 ;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com>
24 ;;; Copyright © 2017, 2018 Kyle Meyer <kyle@kyleam.com>
25 ;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
26 ;;; Copyright © 2017 George Clemmer <myglc2@gmail.com>
27 ;;; Copyright © 2017, 2018 Feng Shu <tumashu@163.com>
28 ;;; Copyright © 2017, 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
29 ;;; Copyright © 2017, 2018, 2019, 2020 Oleg Pykhalov <go.wigust@gmail.com>
30 ;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com>
31 ;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com>
32 ;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
33 ;;; Copyright © 2017 Mike Gerwitz <mtg@gnu.org>
34 ;;; Copyright © 2017, 2018, 2019, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
35 ;;; Copyright © 2018 Sohom Bhattacharjee <soham.bhattacharjee15@gmail.com>
36 ;;; Copyright © 2018, 2019 Mathieu Lirzin <mthl@gnu.org>
37 ;;; Copyright © 2018, 2019, 2020 Pierre Neidhardt <mail@ambrevar.xyz>
38 ;;; Copyright © 2018, 2019 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
39 ;;; Copyright © 2018, 2019 Jack Hill <jackhill@jackhill.us>
40 ;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
41 ;;; Copyright © 2018 Alex Branham <alex.branham@gmail.com>
42 ;;; Copyright © 2018 Thorsten Wilms <t_w_@freenet.de>
43 ;;; Copyright © 2018, 2019, 2020 Pierre Langlois <pierre.langlois@gmx.com>
44 ;;; Copyright © 2018, 2019, 2020 Brett Gilio <brettg@gnu.org>
45 ;;; Copyright © 2019, 2020 Dimakakos Dimos <bendersteed@teknik.io>
46 ;;; Copyright © 2019, 2020 Brian Leung <bkleung89@gmail.com>
47 ;;; Copyright © 2019 mikadoZero <mikadozero@yandex.com>
48 ;;; Copyright © 2019 Gabriel Hondet <gabrielhondet@gmail.com>
49 ;;; Copyright © 2019, 2020 Joseph LaFreniere <joseph@lafreniere.xyz>
50 ;;; Copyright © 2019 Amar Singh <nly@disroot.org>
51 ;;; Copyright © 2019 Baptiste Strazzulla <bstrazzull@hotmail.fr>
52 ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
53 ;;; Copyright © 2019 Jens Mølgaard <jens@zete.tk>
54 ;;; Copyright © 2019, 2020 Amin Bandali <bandali@gnu.org>
55 ;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org>
56 ;;; Copyright © 2019 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
57 ;;; Copyright © 2019 Stephen Webber <montokapro@gmail.com>
58 ;;; Copyright © 2019 Leo Prikler <leo.prikler@student.tugraz.at>
59 ;;; Copyright © 2019 David Wilson <david@daviwil.com>
60 ;;; Copyright © 2020 Paul Garlick <pgarlick@tourbillion-technology.com>
61 ;;; Copyright © 2020 Robert Smith <robertsmith@posteo.net>
62 ;;; Copyright © 2020 Evan Straw <evan.straw99@gmail.com>
63 ;;; Copyright © 2020 Masaya Tojo <masaya@tojo.tokyo>
64 ;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net>
65 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
66 ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
67 ;;; Copyright © 2020 6033fe7de85d <6033fe7de85d@airmail.cc>
68 ;;; Copyright © 2020 John Soo <jsoo1@asu.edu>
69 ;;; Copyright © 2020 Jérémy Korwin-Zmijowski <jeremy@korwin-zmijowski.fr>
70 ;;; Copyright © 2020 Alberto Eleuterio Flores Guerrero <barbanegra+guix@posteo.mx>
71 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
72 ;;; Copyright © 2020 pinoaffe <pinoaffe@airmail.cc>
73 ;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
74 ;;; Copyright © 2020 Ryan Desfosses <rdes@protonmail.com>
75 ;;; Copyright © 2020 Marcin Karpezo <sirmacik@wioo.waw.pl>
76 ;;; Copyright © 2020 Fredrik Salomonsson <plattfot@gmail.com>
77 ;;; Copyright © 2020 Ryan Desfosses <rdes@protonmail.com>
78 ;;; Copyright © 2020 Eric Bavier <bavier@posteo.net>
79 ;;; Copyright © 2020 Morgan Smith <Morgan.J.Smith@outlook.com>
80 ;;; Copyright © 2020 Peng Mei Yu <i@pengmeiyu.com>
81 ;;;
82 ;;; This file is part of GNU Guix.
83 ;;;
84 ;;; GNU Guix is free software; you can redistribute it and/or modify it
85 ;;; under the terms of the GNU General Public License as published by
86 ;;; the Free Software Foundation; either version 3 of the License, or (at
87 ;;; your option) any later version.
88 ;;;
89 ;;; GNU Guix is distributed in the hope that it will be useful, but
90 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
91 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
92 ;;; GNU General Public License for more details.
93 ;;;
94 ;;; You should have received a copy of the GNU General Public License
95 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
96
97 (define-module (gnu packages emacs-xyz)
98 #:use-module ((guix licenses) #:prefix license:)
99 #:use-module (guix packages)
100 #:use-module (guix cvs-download)
101 #:use-module (guix download)
102 #:use-module (guix bzr-download)
103 #:use-module (guix git-download)
104 #:use-module (guix hg-download)
105 #:use-module (guix build-system gnu)
106 #:use-module (guix build-system cmake)
107 #:use-module (guix build-system emacs)
108 #:use-module (guix build-system glib-or-gtk)
109 #:use-module (guix build-system perl)
110 #:use-module (guix build-system trivial)
111 #:use-module (gnu packages)
112 #:use-module (gnu packages admin)
113 #:use-module (gnu packages audio)
114 #:use-module (gnu packages bash)
115 #:use-module (gnu packages cmake)
116 #:use-module (gnu packages code)
117 #:use-module (gnu packages cpp)
118 #:use-module (gnu packages curl)
119 #:use-module (gnu packages databases)
120 #:use-module (gnu packages dictionaries)
121 #:use-module (gnu packages emacs)
122 #:use-module (gnu packages guile)
123 #:use-module (gnu packages gtk)
124 #:use-module (gnu packages gnome)
125 #:use-module (gnu packages haskell-apps)
126 #:use-module (gnu packages ibus)
127 #:use-module (gnu packages ncurses)
128 #:use-module (gnu packages python)
129 #:use-module (gnu packages python-xyz)
130 #:use-module (gnu packages telephony)
131 #:use-module (gnu packages terminals)
132 #:use-module (gnu packages tex)
133 #:use-module (gnu packages texinfo)
134 #:use-module (gnu packages tcl)
135 #:use-module (gnu packages tls)
136 #:use-module (gnu packages pkg-config)
137 #:use-module (gnu packages xorg)
138 #:use-module (gnu packages lesstif)
139 #:use-module (gnu packages llvm)
140 #:use-module (gnu packages image)
141 #:use-module (gnu packages linux)
142 #:use-module (gnu packages libevent)
143 #:use-module (gnu packages lua)
144 #:use-module (gnu packages music)
145 #:use-module (gnu packages version-control)
146 #:use-module (gnu packages imagemagick)
147 #:use-module (gnu packages w3m)
148 #:use-module (gnu packages web)
149 #:use-module (gnu packages wget)
150 #:use-module (gnu packages autotools)
151 #:use-module (gnu packages base)
152 #:use-module (gnu packages compression)
153 #:use-module (gnu packages node)
154 #:use-module (gnu packages xml)
155 #:use-module (gnu packages glib)
156 #:use-module (gnu packages acl)
157 #:use-module (gnu packages mail)
158 #:use-module (gnu packages messaging)
159 #:use-module (gnu packages package-management)
160 #:use-module (gnu packages perl)
161 #:use-module (gnu packages pdf)
162 #:use-module (gnu packages ruby)
163 #:use-module (gnu packages rust-apps)
164 #:use-module (gnu packages scheme)
165 #:use-module (gnu packages speech)
166 #:use-module (gnu packages xiph)
167 #:use-module (gnu packages mp3)
168 #:use-module (gnu packages gettext)
169 #:use-module (gnu packages fribidi)
170 #:use-module (gnu packages gd)
171 #:use-module (gnu packages fontutils)
172 #:use-module (gnu packages password-utils)
173 #:use-module (gnu packages pulseaudio)
174 #:use-module (gnu packages sphinx)
175 #:use-module (gnu packages xdisorg)
176 #:use-module (gnu packages shells)
177 #:use-module (gnu packages sqlite)
178 #:use-module (gnu packages ghostscript)
179 #:use-module (gnu packages gnupg)
180 #:use-module (gnu packages video)
181 #:use-module (gnu packages haskell-xyz)
182 #:use-module (gnu packages wordnet)
183 #:use-module (gnu packages photo)
184 #:use-module (gnu packages uml)
185 #:use-module (gnu packages finance)
186 #:use-module (guix utils)
187 #:use-module (srfi srfi-1)
188 #:use-module (ice-9 match))
189
190 ;;;
191 ;;; Emacs hacking.
192 ;;;
193
194 (define-public emacs-geiser
195 (package
196 (name "emacs-geiser")
197 (version "0.11.2")
198 (source (origin
199 (method git-fetch)
200 (uri (git-reference
201 (url "https://gitlab.com/jaor/geiser/")
202 (commit version)))
203 (file-name (git-file-name name version))
204 (sha256
205 (base32
206 "1khi1bghsjx6cs5acizmlbw9z19s4qycnji9krdbn42cbpv0rysv"))))
207 (build-system gnu-build-system)
208 (arguments
209 '(#:phases
210 (modify-phases %standard-phases
211 (add-after 'install 'post-install
212 (lambda* (#:key outputs #:allow-other-keys)
213 (symlink "geiser-install.el"
214 (string-append (assoc-ref outputs "out")
215 "/share/emacs/site-lisp/"
216 "geiser-autoloads.el"))
217 #t)))))
218 (inputs `(("guile" ,guile-2.2)))
219 (native-inputs
220 `(("emacs" ,emacs-minimal)
221 ("autoconf" ,autoconf)
222 ("automake" ,automake)
223 ("texinfo" ,texinfo)))
224 (home-page "https://nongnu.org/geiser/")
225 (synopsis "Collection of Emacs modes for Guile and Racket hacking")
226 (description
227 "Geiser is a collection of Emacs major and minor modes that conspire with
228 one or more Scheme implementations to keep the Lisp Machine Spirit alive. The
229 continuously running Scheme interpreter takes the center of the stage in
230 Geiser. A bundle of Elisp shims orchestrates the dialog between the Scheme
231 implementation, Emacs and, ultimately, the schemer, giving them access to live
232 metadata.")
233 (license license:bsd-3)))
234
235 (define-public emacs-ac-geiser
236 (let ((commit "93818c936ee7e2f1ba1b315578bde363a7d43d05")
237 (revision "0"))
238 (package
239 (name "emacs-ac-geiser")
240 (version (git-version "0.1" revision commit))
241 (source
242 (origin
243 (uri (git-reference
244 (url "https://github.com/xiaohanyu/ac-geiser")
245 (commit commit)))
246 (method git-fetch)
247 (sha256
248 (base32 "00n2qa26yilaj837n1yp6lbqa4gf30nkkbvanl7m9ih7k48ssqmw"))
249 (file-name (git-file-name name version))))
250 (build-system emacs-build-system)
251 (propagated-inputs
252 `(("geiser" ,emacs-geiser)
253 ("auto-complete" ,emacs-auto-complete)))
254 (synopsis "Auto-complete backend for geiser")
255 (description
256 "This package provides an auto-complete source for Scheme projects
257 using geiser.")
258 (license license:bsd-3)
259 (home-page "https://github.com/xiaohanyu/ac-geiser"))))
260
261 (define-public emacs-hyperbole
262 (package
263 (name "emacs-hyperbole")
264 (version "7.1.2")
265 (source
266 (origin
267 (method url-fetch)
268 (uri (string-append "https://elpa.gnu.org/packages/"
269 "hyperbole-" version ".tar"))
270 (sha256
271 (base32 "1bspmqnbniwr9385wh823dsr5fgch5qnlkf45s4vi0nvg8jdccp1"))
272 (patches
273 (search-patches "emacs-hyperbole-toggle-messaging.patch"))))
274 (build-system emacs-build-system)
275 (arguments
276 `(#:include '("DEMO"
277 "DEMO-ROLO.otl"
278 "HY-ABOUT"
279 "\\.el$"
280 "\\.info$"
281 "\\.kotl$")
282 #:phases
283 (modify-phases %standard-phases
284 ;; Fix build issues about missing "domainname" and "hpmap:dir-user"
285 ;; parent dir.
286 (add-after 'unpack 'fix-build
287 (lambda* (#:key inputs #:allow-other-keys)
288 (substitute* "hypb.el"
289 (("/bin/domainname")
290 (string-append (assoc-ref inputs "inetutils")
291 "/bin/dnsdomainname")))
292 (substitute* "hyperbole.el"
293 (("\\(hyperb:check-dir-user\\)") ""))
294 #t)))))
295 (inputs
296 `(("inetutils" ,inetutils)))
297 (home-page "https://www.gnu.org/software/hyperbole/")
298 (synopsis "The Everyday Hypertextual Information Manager")
299 (description
300 "GNU Hyperbole, or just Hyperbole, is an easy-to-use, yet powerful and
301 programmable hypertextual information management system implemented as a GNU
302 Emacs package. It offers rapid views and interlinking of all kinds of textual
303 information, utilizing Emacs for editing. It can dramatically increase your
304 productivity and greatly reduce the number of keyboard/mouse keys you'll need
305 to work efficiently. Hyperbole lets you:
306
307 @itemize
308 @item Quickly create hyperlink buttons either from the keyboard or by dragging
309 between a source and destination window with a mouse button depressed. Later,
310 activate buttons by pressing/clicking on them or by giving the name of the
311 button.
312 @item Activate many kinds of \"implicit buttons\" recognized by context within
313 text buffers, e.g. URLs, grep output lines, and git commits. A single key or
314 mouse button automatically does the right thing in dozens of contexts; just
315 press and go.
316 @item Build outlines with multi-level numbered outline nodes, e.g. 1.4.8.6,
317 that all renumber automatically as any node or tree is moved in the outline.
318 Each node also has a permanent hyperlink anchor that you can reference from
319 any other node.
320 @item Manage all your contacts quickly with hierarchical categories and embed
321 hyperlinks within each entry. Or create an archive of documents with
322 hierarchical entries and use the same search mechanism to quickly find any
323 matching entry.
324 @item Use single keys to easily manage your Emacs windows or frames and
325 quickly retrieve saved window and frame configurations.
326 @item Search for things in your current buffers, in a directory tree or across
327 major web search engines with the touch of a few keys.
328 @end itemize
329
330 The common thread in all these features is making retrieval, management and
331 display of information fast and easy. That is Hyperbole's purpose.")
332 (license license:gpl3+)))
333
334 (define-public emacs-paredit
335 (package
336 (name "emacs-paredit")
337 (version "24")
338 (source (origin
339 (method url-fetch)
340 (uri (string-append "http://mumble.net/~campbell/emacs/paredit-"
341 version ".el"))
342 (sha256
343 (base32
344 "0pp3n8q6kc70blqsaw0zlzp6bc327dpgdrjr0cnh7hqg1lras7ka"))))
345 (build-system emacs-build-system)
346 (home-page "http://mumble.net/~campbell/emacs/paredit/")
347 (synopsis "Emacs minor mode for editing parentheses")
348 (description
349 "ParEdit (paredit.el) is a minor mode for performing structured editing
350 of S-expression data. The typical example of this would be Lisp or Scheme
351 source code.
352
353 ParEdit helps **keep parentheses balanced** and adds many keys for moving
354 S-expressions and moving around in S-expressions. Its behavior can be jarring
355 for those who may want transient periods of unbalanced parentheses, such as
356 when typing parentheses directly or commenting out code line by line.")
357 (license license:gpl3+)))
358
359 (define-public git-modes
360 (package
361 (name "emacs-git-modes")
362 (version "1.2.8")
363 (source (origin
364 (method git-fetch)
365 (uri (git-reference
366 (url "https://github.com/magit/git-modes")
367 (commit version)))
368 (file-name (git-file-name name version))
369 (sha256
370 (base32
371 "08hy7rbfazs6grkpk54i82bz0i0c74zcjk96cip8970h6jn3mj72"))))
372 (build-system emacs-build-system)
373 (home-page "https://github.com/magit/git-modes")
374 (synopsis "Emacs major modes for Git configuration files")
375 (description
376 "This package provides Emacs major modes for editing various Git
377 configuration files, such as .gitattributes, .gitignore, and .git/config.")
378 (license license:gpl3+)))
379
380 (define-public emacs-with-editor
381 (package
382 (name "emacs-with-editor")
383 (version "2.9.4")
384 (source
385 (origin
386 (method git-fetch)
387 (uri (git-reference
388 (url "https://github.com/magit/with-editor")
389 (commit (string-append "v" version))))
390 (file-name (git-file-name name version))
391 (sha256
392 (base32 "1z3214zjf3dassb31k14gq4nbr3q8g5x87ydfah28hm4j08v0wb3"))))
393 (build-system emacs-build-system)
394 (propagated-inputs
395 `(("emacs-dash" ,emacs-dash)))
396 (home-page "https://github.com/magit/with-editor")
397 (synopsis "Emacs library for using Emacsclient as EDITOR")
398 (description
399 "This package provides an Emacs library to use the Emacsclient as
400 @code{$EDITOR} of child processes, making sure they know how to call home.
401 For remote processes a substitute is provided, which communicates with Emacs
402 on stdout instead of using a socket as the Emacsclient does.")
403 (license license:gpl3+)))
404
405 (define-public emacs-libgit
406 (let ((commit "0ef8b13aef011a98b7da756e4f1ce3bb18e4d55a")
407 (revision "1"))
408 (package
409 (name "emacs-libgit")
410 (version (git-version "20200515" revision commit))
411 (source (origin
412 (method git-fetch)
413 (uri (git-reference
414 (url "https://github.com/magit/libegit2")
415 (commit commit)))
416 (file-name (git-file-name name version))
417 (sha256
418 (base32
419 "0pnjr3bg6y6354dfjjxfj0g51swzgl1fncpprah75x4k94rd369f"))
420 (patches (search-patches
421 ;; Submitted for inclusion upstream (see:
422 ;; https://github.com/magit/libegit2/pull/96).
423 "emacs-libgit-use-system-libgit2.patch"))))
424 ;; Use the cmake-build-system as it provides support for cross builds.
425 (build-system cmake-build-system)
426 (arguments
427 `(#:configure-flags '("-DUSE_SYSTEM_LIBGIT2=x")
428 ;; Add the emacs-build-system byte compilation and install phases.
429 #:imported-modules (,@%cmake-build-system-modules
430 (guix build emacs-build-system)
431 (guix build emacs-utils))
432 #:modules ((guix build cmake-build-system)
433 ((guix build emacs-build-system) #:prefix emacs:)
434 (guix build emacs-utils)
435 (guix build utils))
436 #:phases
437 (modify-phases %standard-phases
438 (add-after 'unpack 'set-libgit--module-file
439 (lambda* (#:key outputs #:allow-other-keys)
440 (let ((out (assoc-ref outputs "out")))
441 (make-file-writable "libgit.el")
442 (emacs-substitute-variables "libgit.el"
443 ("libgit--module-file"
444 (string-append out "/share/emacs/site-lisp/libegit2.so")))
445 #t)))
446 (add-before 'install 'prepare-for-install
447 (lambda _
448 (let ((s (string-append "../" ,name "-" ,version "-checkout")))
449 (copy-file "libegit2.so" (string-append s "/libegit2.so"))
450 (chdir s)
451 #t)))
452 (replace 'install
453 (lambda* (#:key outputs #:allow-other-keys)
454 (let ((install (assoc-ref emacs:%standard-phases 'install)))
455 (install #:outputs outputs
456 #:include (cons "\\.so$"
457 emacs:%default-include)))))
458 (add-after 'install 'make-autoloads
459 (assoc-ref emacs:%standard-phases 'make-autoloads))
460 (add-after 'make-autoloads 'enable-autoloads-compilation
461 (assoc-ref emacs:%standard-phases 'enable-autoloads-compilation))
462 (add-after 'enable-autoloads-compilation 'patch-el-files
463 (assoc-ref emacs:%standard-phases 'patch-el-files))
464 (add-after 'patch-el-files 'emacs-build
465 (assoc-ref emacs:%standard-phases 'build))
466 (add-after 'emacs-build 'validate-compiled-autoloads
467 (assoc-ref emacs:%standard-phases 'validate-compiled-autoloads)))))
468 (native-inputs
469 `(("pkg-config" ,pkg-config)
470 ("emacs" ,emacs-no-x)
471 ("git" ,git-minimal)))
472 (inputs
473 `(("libgit2" ,libgit2)))
474 (home-page "https://github.com/magit/libegit2")
475 (synopsis "Emacs bindings for libgit2")
476 (description "This is an experimental module written in C providing
477 libgit2 bindings for Emacs, intended to boost the performance of Magit.")
478 ;; The LICENSE file says GPL v2+, but libgit.el says GPL v3+.
479 (license license:gpl3+))))
480
481 (define-public emacs-magit
482 ;; There hasn't been an official release since 2018-11-16.
483 (let ((commit "7f486d47fe7042edba8d9a855a4c2c301a30bc6b")
484 (revision "6"))
485 (package
486 (name "emacs-magit")
487 (version (git-version "2.90.1" revision commit))
488 (source
489 (origin
490 (method git-fetch)
491 (uri (git-reference
492 (url "https://github.com/magit/magit")
493 (commit commit)))
494 (file-name (git-file-name name version))
495 (sha256
496 (base32 "05kyc5y5wa1p3h8j7mbgvfc4zcj998zi26lnnmksj9wnvahzxfms"))))
497 (build-system emacs-build-system)
498 (arguments
499 `(#:emacs ,emacs-no-x ;module support is required
500 #:tests? #t
501 #:test-command '("make" "test")
502 #:phases
503 (modify-phases %standard-phases
504 (add-after 'unpack 'build-info-manual
505 (lambda _
506 (invoke "make" "info")
507 ;; Copy info files to the lisp directory, which acts as
508 ;; the root of the project for the emacs-build-system.
509 (for-each (lambda (f)
510 (install-file f "lisp"))
511 (find-files "Documentation" "\\.info$"))
512 (chdir "lisp")
513 #t))
514 (add-after 'build-info-manual 'set-magit-version
515 (lambda _
516 (make-file-writable "magit.el")
517 (emacs-substitute-variables "magit.el"
518 ("magit-version" ,version))
519 #t))
520 (add-after 'set-magit-version 'patch-exec-paths
521 (lambda* (#:key inputs #:allow-other-keys)
522 (let ((perl (assoc-ref inputs "perl")))
523 (make-file-writable "magit-sequence.el")
524 (emacs-substitute-variables "magit-sequence.el"
525 ("magit-perl-executable" (string-append perl "/bin/perl")))
526 #t)))
527 (add-before 'check 'configure-git
528 (lambda _
529 ;; Otherwise some tests fail with error "unable to auto-detect
530 ;; email address".
531 (setenv "HOME" (getcwd))
532 (invoke "git" "config" "--global" "user.name" "toto")
533 (invoke "git" "config" "--global" "user.email"
534 "toto@toto.com")))
535 (add-after 'configure-git 'disable-tramp-test
536 (lambda _
537 ;; There is an issue causing TRAMP to fail in the build
538 ;; environment. Setting the tramp-remote-shell parameter of
539 ;; the sudo-method to the file name of the shell didn't help.
540 (chdir "..")
541 (substitute* "t/magit-tests.el"
542 (("^\\(ert-deftest magit-toplevel:tramp.*" all)
543 (string-append all " (skip-unless nil)")))
544 #t))
545 (add-before 'install 'enter-lisp-directory
546 (lambda _
547 (chdir "lisp")
548 #t)))))
549 (native-inputs
550 `(("texinfo" ,texinfo)))
551 (inputs
552 `(("git" ,git)
553 ("perl" ,perl)))
554 (propagated-inputs
555 `(("emacs-dash" ,emacs-dash)
556 ("emacs-libgit" ,emacs-libgit)
557 ("emacs-transient" ,emacs-transient)
558 ("emacs-with-editor" ,emacs-with-editor)))
559 (home-page "https://magit.vc/")
560 (synopsis "Emacs interface for the Git version control system")
561 (description
562 "With Magit, you can inspect and modify your Git repositories
563 with Emacs. You can review and commit the changes you have made to
564 the tracked files, for example, and you can browse the history of past
565 changes. There is support for cherry picking, reverting, merging,
566 rebasing, and other common Git operations.")
567 (license license:gpl3+))))
568
569 (define-public emacs-magit-svn
570 (let ((commit "9e33ceee32f665db59909e1c00a667ccdd04178f"))
571 (package
572 (name "emacs-magit-svn")
573 (version (git-version "2.2.1" "2" commit))
574 (source (origin
575 (method git-fetch)
576 (uri (git-reference
577 (url "https://github.com/magit/magit-svn")
578 (commit commit)))
579 (file-name (git-file-name name version))
580 (sha256
581 (base32
582 "1mlqz8dh6jy5rv72lgkxv253dgh73fmbaidskicypapvbl3lr6xy"))))
583 (build-system emacs-build-system)
584 (propagated-inputs `(("dash" ,emacs-dash)
585 ("with-editor" ,emacs-with-editor)
586 ("magit" ,emacs-magit)
587 ("transient" ,emacs-transient)))
588 (home-page "https://github.com/magit/magit-svn")
589 (synopsis "Git-SVN extension to Magit")
590 (description
591 "This package is an extension to Magit, the Git Emacs mode, providing
592 support for Git-SVN.")
593 (license license:gpl3+))))
594
595 (define-public emacs-magit-popup
596 (package
597 (name "emacs-magit-popup")
598 (version "2.13.3")
599 (source
600 (origin
601 (method git-fetch)
602 (uri (git-reference
603 (url "https://github.com/magit/magit-popup")
604 (commit (string-append "v" version))))
605 (file-name (git-file-name name version))
606 (sha256
607 (base32 "0znp6gx6vpcsybg774ab06mdgxb7sfk3gki1yp2qhkanav13i6q1"))))
608 (build-system emacs-build-system)
609 (arguments
610 `(#:phases
611 (modify-phases %standard-phases
612 (add-before 'install 'make-info
613 (lambda _
614 (invoke "make" "info"))))))
615 (native-inputs
616 `(("texinfo" ,texinfo)))
617 (propagated-inputs
618 `(("emacs-dash" ,emacs-dash)))
619 (home-page "https://github.com/magit/magit-popup")
620 (synopsis "Define prefix-infix-suffix command combos")
621 (description
622 "This library implements a generic interface for toggling switches and
623 setting options and then invoking an Emacs command which does something with
624 these arguments. The prototypical use is for the command to call an external
625 process, passing on the arguments as command line arguments.")
626 (license license:gpl3+)))
627
628 (define-public emacs-magit-annex
629 (let ((commit "ef5dce6267e9118a5eca82a22bcad0b67826c23a")
630 (revision "1"))
631 (package
632 (name "emacs-magit-annex")
633 (version (git-version "1.7.1" revision commit))
634 (source (origin
635 (method git-fetch)
636 (uri (git-reference
637 (url "https://github.com/magit/magit-annex")
638 (commit commit)))
639 (file-name (git-file-name name version))
640 (sha256
641 (base32
642 "0vzkydgl889cq173zjl89g2vrddb9abc4a8gljiz3b4a7n5b1nrd"))))
643 (build-system emacs-build-system)
644 (propagated-inputs
645 `(("magit" ,emacs-magit)
646 ("transient" ,emacs-transient)))
647 (home-page "https://github.com/magit/magit-annex/")
648 (synopsis "Git-annex support for Magit")
649 (description
650 "Magit-annex adds a few git-annex operations to the Magit interface.")
651 (license license:gpl3+))))
652
653 (define-public emacs-minions
654 (package
655 (name "emacs-minions")
656 (version "0.3.2")
657 (source (origin
658 (method git-fetch)
659 (uri (git-reference
660 (url "https://github.com/tarsius/minions")
661 (commit (string-append "v" version))))
662 (file-name (git-file-name name version))
663 (sha256
664 (base32
665 "16rplpbfy3dnvqqgavk9jb1f1ihr5875zlixd4zxb1pqxs3jkgw3"))))
666 (build-system emacs-build-system)
667 (propagated-inputs
668 `(("emacs-dash" ,emacs-dash)))
669 (home-page "https://github.com/tarsius/minions")
670 (synopsis "Minor-mode menu for the mode line")
671 (description
672 "This package implements a menu that lists enabled minor-modes, as well
673 as commonly but not currently enabled minor-modes. It can be used to toggle
674 local and global minor-modes, to access mode-specific menus, and to get help
675 about modes.
676
677 This menu is intended as a replacement for the incomplete yet wide list of
678 enabled minor-modes that is displayed in the mode line by default. To use the
679 menu like this, enable Minions mode.
680
681 Alternatively the menu can be bound globally, for example:
682 @code{(global-set-key [S-down-mouse-3] 'minions-minor-modes-menu)}.")
683 (license license:gpl3+)))
684
685 (define-public emacs-moody
686 (package
687 (name "emacs-moody")
688 (version "0.5.3")
689 (source (origin
690 (method git-fetch)
691 (uri (git-reference
692 (url "https://github.com/tarsius/moody")
693 (commit (string-append "v" version))))
694 (file-name (git-file-name name version))
695 (sha256
696 (base32
697 "1xyw4l42053595r76lj8safsx6pj25as0107wd96by3h7dg9m586"))))
698 (build-system emacs-build-system)
699 (home-page "https://github.com/tarsius/moody")
700 (synopsis "Tabs and ribbons for Emacs mode-line")
701 (description
702 "@code{emacs-moody} provides utilities for displaying elements of
703 the mode line as tabs and ribbons. It also provides replacements for a few
704 built-in elements. The biggest difference to similar packages is that
705 this one is much simpler and much more consistent. When using this package,
706 then only the color of the mode line changes when a window becomes in-/active.")
707 (license license:gpl3+)))
708
709 (define-public emacs-treepy
710 (package
711 (name "emacs-treepy")
712 (version "0.1.2")
713 (source (origin
714 (method git-fetch)
715 (uri (git-reference
716 (url "https://github.com/volrath/treepy.el")
717 (commit version)))
718 (file-name (git-file-name name version))
719 (sha256
720 (base32
721 "0pmrpij80m5kgcr8bw36r8wllgppasw08vn3ghwvis9srpaq75cn"))))
722 (build-system emacs-build-system)
723 (home-page
724 "https://github.com/volrath/treepy.el")
725 (synopsis "Tree traversal tools")
726 (description
727 "Generic tools for recursive and iterative tree traversal based on
728 clojure.walk and clojure.zip respectively.")
729 (license license:gpl3+)))
730
731 (define-public emacs-graphql
732 (package
733 (name "emacs-graphql")
734 (version "0.1.1")
735 (source (origin
736 (modules '((guix build utils)))
737 ;; Remove examples file with references to external packages as
738 ;; they do not exist at compilation time.
739 (snippet
740 '(begin (delete-file "examples.el")
741 #t))
742 (method git-fetch)
743 (uri (git-reference
744 (url "https://github.com/vermiculus/graphql.el")
745 (commit version)))
746 (file-name (git-file-name name version))
747 (sha256
748 (base32
749 "0sp0skc1rnhi39szfbq1i99pdgd3bhn4c15cff05iqhjy2d4hniw"))))
750 (build-system emacs-build-system)
751 (home-page
752 "https://github.com/vermiculus/graphql.el")
753 (synopsis "GraphQL utilities")
754 (description
755 "GraphQL.el provides a generally-applicable domain-specific language for
756 creating and executing GraphQL queries against your favorite web services.
757 GraphQL is a data query language and runtime designed and used to request and
758 deliver data to mobile and web apps.")
759 (license license:gpl3+)))
760
761 (define-public emacs-ghub
762 (package
763 (name "emacs-ghub")
764 (version "3.4.1")
765 (source
766 (origin
767 (method git-fetch)
768 (uri (git-reference
769 (url "https://github.com/magit/ghub")
770 (commit (string-append "v" version))))
771 (file-name (git-file-name name version))
772 (sha256
773 (base32 "07iy4203ppvzkh67sb0v968hnypnvy4dpfy0qpqrp8zmc455dxq5"))))
774 (build-system emacs-build-system)
775 (arguments
776 `(#:phases
777 (modify-phases %standard-phases
778 (add-before 'install 'make-info
779 (lambda _
780 (invoke "make" "info"))))))
781 (native-inputs
782 `(("texinfo" ,texinfo)))
783 (propagated-inputs
784 `(("dash" ,emacs-dash)
785 ("emacs-let-alist" ,emacs-let-alist)
786 ("treepy" ,emacs-treepy)))
787 (home-page "https://github.com/magit/ghub")
788 (synopsis "Emacs client libraries for the APIs of various Git forges")
789 (description
790 "Ghub provides basic support for using the APIs of various Git forges from
791 Emacs packages. It supports the REST APIs of Github, Github GraphQL, Gitlab,
792 Gitea, Gogs and Bitbucket. It abstracts access to API resources using only a
793 handful of functions that are not resource-specific.")
794 (license license:gpl3+)))
795
796 (define-public emacs-typit
797 ;; Last release is from 2017.
798 (let ((commit "231cb7df43253b84323520b8ed70f128d37003af")
799 (revision "1"))
800 (package
801 (name "emacs-typit")
802 (version (git-version "0.2.1" revision commit))
803 (source
804 (origin
805 (method git-fetch)
806 (uri (git-reference
807 (url "https://github.com/mrkkrp/typit")
808 (commit commit)))
809 (file-name (git-file-name name version))
810 (sha256
811 (base32 "1savrxs7xl92ifyxpxkkzv2didr7lb405h0dwz1bs1wldr5fb53f"))))
812 (build-system emacs-build-system)
813 (arguments
814 `(#:phases
815 (modify-phases %standard-phases
816 (add-after 'install 'install-dictionaries
817 (lambda* (#:key outputs #:allow-other-keys)
818 (let* ((out (assoc-ref outputs "out"))
819 (site-lisp
820 (string-append
821 out "/share/emacs/site-lisp/dict")))
822 (mkdir-p site-lisp)
823 (copy-recursively "dict" site-lisp)
824 #t))))))
825 (propagated-inputs
826 `(("emacs-f" ,emacs-f)
827 ("emacs-mmt" ,emacs-mmt)))
828 (home-page "https://github.com/mrkkrp/typit")
829 (synopsis "Typing game for Emacs with two difficulties")
830 (description "Emacs Typit is a typing game for Emacs. Words that are
831 picked randomly from the most frequent words in language you're practicing,
832 until time is up.")
833 (license license:gpl3+))))
834
835 (define-public emacs-scribble-mode
836 (let ((commit "217945d54de5e4bb207033f2116baa28f5c5ecf2")
837 (revision "2"))
838 (package
839 (name "emacs-scribble-mode")
840 (version (git-version "0.1" revision commit))
841 (source (origin
842 (method git-fetch)
843 (uri (git-reference
844 (url "https://github.com/emacs-pe/scribble-mode")
845 (commit commit)))
846 (file-name (git-file-name name version))
847 (sha256
848 (base32
849 "1s5ccw1a5ack01wd94ywfcrar9j98agchwdh30q7iyxr0d2z4sii"))))
850 (build-system emacs-build-system)
851 (home-page "https://github.com/emacs-pe/scribble-mode")
852 (synopsis "Emacs mode for editing the Scribble documentation syntax.")
853 (description
854 "This package provides basic syntax highlighting and editing support
855 for editing Racket's Scribble documentation syntax in Emacs.")
856 (license license:gpl3+))))
857
858 (define-public emacs-shroud
859 (package
860 (name "emacs-shroud")
861 (version "1.105")
862 (source
863 (origin
864 (method git-fetch)
865 (uri (git-reference
866 (url "https://git.savannah.gnu.org/git/emacs-shroud.git")
867 (commit version)))
868 (file-name (git-file-name name version))
869 (sha256
870 (base32 "0q2pb3w8s833fjhkzicciw2php4lsnismad1dnwgp2lcway757ra"))))
871 (build-system gnu-build-system)
872 (native-inputs
873 `(("autoconf" ,autoconf)
874 ("automake" ,automake)
875 ("texinfo" ,texinfo)
876 ("perl" ,perl)
877 ("emacs-minimal" ,emacs-minimal)))
878 (propagated-inputs
879 `(("emacs-bui" ,emacs-bui)
880 ("emacs-dash" ,emacs-dash)
881 ("emacs-f" ,emacs-f)
882 ("emacs-s" ,emacs-s)
883 ("gnupg" ,gnupg)
884 ("shroud" ,shroud)))
885 (home-page "https://www.nongnu.org/emacs-shroud")
886 (synopsis "Emacs interface to the Shroud password manager")
887 (description
888 "This package provides an Emacs interface to the Shroud password manager,
889 using the Buffers User Interface library. You can view, copy, and edit secrets
890 from within Emacs.")
891 (license license:gpl3+)))
892
893 (define-public emacs-unpackaged-el
894 (let ((commit "746801a677ada6cd6fa076e423aa0953779f3fad")
895 (revision "3"))
896 (package
897 (name "emacs-unpackaged-el")
898 (version (git-version "0" revision commit))
899 (source
900 (origin
901 (method git-fetch)
902 (uri (git-reference
903 (url "https://github.com/alphapapa/unpackaged.el")
904 (commit commit)))
905 (file-name (git-file-name name version))
906 (sha256
907 (base32
908 "0jvb2ci0h0lj368qhbff3pzkxj3nhlligpbkjzi525k9rkjgm7l8"))))
909 (build-system emacs-build-system)
910 (propagated-inputs
911 `(("emacs-dash" ,emacs-dash)
912 ("emacs-org" ,emacs-org)
913 ("emacs-s" ,emacs-s)
914 ("emacs-hydra" ,emacs-hydra)
915 ("emacs-use-package" ,emacs-use-package)))
916 (arguments
917 `(#:phases
918 (modify-phases %standard-phases
919 (add-after 'unpack 'require-hydra
920 (lambda _
921 (substitute* "unpackaged.el"
922 ((";;; Code:") ";;; Code:\n(require 'hydra)"))
923 #t)))))
924 (home-page "https://github.com/alphapapa/unpackaged.el")
925 (synopsis "Useful snippets of Emacs Lisp code")
926 (description "This package provides Emacs Lisp utilities for a variety
927 of tasks, including version control, task management, and regex-based
928 replacement.")
929 (license license:gpl3+))))
930
931 (define-public emacs-haskell-mode
932 (package
933 (name "emacs-haskell-mode")
934 (version "17.1")
935 (source
936 (origin
937 (method git-fetch)
938 (uri (git-reference
939 (url "https://github.com/haskell/haskell-mode")
940 (commit (string-append "v" version))))
941 (file-name (git-file-name name version))
942 (sha256
943 (base32 "0izcasi2v02zh08c863h43m8mmsldzy8pck43cllrfn0zf24v2qn"))))
944 (propagated-inputs
945 `(("emacs-dash" ,emacs-dash)))
946 (native-inputs
947 `(("emacs" ,emacs-minimal)
948 ("emacs-el-search" ,emacs-el-search)
949 ("emacs-stream" ,emacs-stream)
950 ("texinfo" ,texinfo)))
951 (build-system gnu-build-system)
952 (arguments
953 `(#:make-flags (list (string-append "EMACS="
954 (assoc-ref %build-inputs "emacs")
955 "/bin/emacs"))
956 #:modules ((ice-9 match)
957 (srfi srfi-26)
958 ,@%gnu-build-system-modules)
959 #:phases
960 (modify-phases %standard-phases
961 (delete 'configure)
962 (add-before 'build 'pre-build
963 (lambda* (#:key inputs #:allow-other-keys)
964 (define (el-dir store-dir)
965 (match (find-files store-dir "\\.el$")
966 ((f1 f2 ...) (dirname f1))
967 (_ "")))
968
969 (let ((sh (string-append (assoc-ref inputs "bash") "/bin/sh")))
970 (define emacs-prefix? (cut string-prefix? "emacs-" <>))
971
972 (setenv "SHELL" "sh")
973 (setenv "EMACSLOADPATH"
974 (string-concatenate
975 (map (match-lambda
976 (((? emacs-prefix? name) . dir)
977 (string-append (el-dir dir) ":"))
978 (_ ""))
979 inputs)))
980 (substitute* (find-files "." "\\.el") (("/bin/sh") sh))
981 #t)))
982 (add-before 'check 'delete-failing-tests
983 ;; XXX: these tests require GHC executable, which would be a big
984 ;; native input.
985 (lambda _
986 (with-directory-excursion "tests"
987 ;; File `haskell-indent-tests.el' fails with
988 ;; `haskell-indent-put-region-in-literate-2'
989 ;; on Emacs 27.1+
990 ;; XXX: https://github.com/haskell/haskell-mode/issues/1714
991 (for-each delete-file
992 '("haskell-indent-tests.el"
993 "haskell-customize-tests.el"
994 "inferior-haskell-tests.el")))
995 #t))
996 (replace 'install
997 (lambda* (#:key outputs #:allow-other-keys)
998 (let* ((out (assoc-ref outputs "out"))
999 (el-dir (string-append out "/share/emacs/site-lisp"))
1000 (doc (string-append
1001 out "/share/doc/haskell-mode-" ,version))
1002 (info (string-append out "/share/info")))
1003 (define (copy-to-dir dir files)
1004 (for-each (lambda (f)
1005 (install-file f dir))
1006 files))
1007
1008 (with-directory-excursion "doc"
1009 (invoke "makeinfo" "haskell-mode.texi")
1010 (install-file "haskell-mode.info" info))
1011 (copy-to-dir doc '("CONTRIBUTING.md" "NEWS" "README.md"))
1012 (copy-to-dir el-dir (find-files "." "\\.elc?"))
1013 #t))))))
1014 (home-page "https://github.com/haskell/haskell-mode")
1015 (synopsis "Haskell mode for Emacs")
1016 (description
1017 "This is an Emacs mode for editing, debugging and developing Haskell
1018 programs.")
1019 (license license:gpl3+)))
1020
1021 (define-public emacs-dante
1022 (let ((commit "38b589417294c7ea44bf65b73b8046d950f9531b")
1023 (revision "1"))
1024 (package
1025 (name "emacs-dante")
1026 (version (git-version "1.6" revision commit))
1027 (source (origin
1028 (method git-fetch)
1029 (uri (git-reference
1030 (url "https://github.com/jyp/dante")
1031 (commit commit)))
1032 (sha256
1033 (base32
1034 "1mnmn635552zlwd4zr68jbvdjipl6gi4mi6wiyck28fsmq8kw96h"))
1035 (file-name (git-file-name name version))))
1036 (build-system emacs-build-system)
1037 (propagated-inputs
1038 `(("emacs-dash" ,emacs-dash)
1039 ("emacs-f" ,emacs-f)
1040 ("emacs-flycheck" ,emacs-flycheck)
1041 ("emacs-haskell-mode" ,emacs-haskell-mode)
1042 ("emacs-s" ,emacs-s)
1043 ("emacs-company" ,emacs-company)
1044 ("emacs-lcr" ,emacs-lcr)))
1045 (home-page "https://github.com/jyp/dante")
1046 (synopsis "Minor mode for interactive Haskell")
1047 (description
1048 "This package provides a minor mode for Haskell development that
1049 supports type hints, definition-jumping, completion, and more.")
1050 (license license:gpl3+))))
1051
1052 (define-public emacs-flycheck
1053 ;; Last release version was more than 500 commits ago.
1054 (let ((commit "9bcf6b665e15db94870bebc81dc8248c3eec20d3")
1055 (revision "2"))
1056 (package
1057 (name "emacs-flycheck")
1058 (version (git-version "31" revision commit))
1059 (source
1060 (origin
1061 (method git-fetch)
1062 (uri (git-reference
1063 (url "https://github.com/flycheck/flycheck/")
1064 (commit commit)))
1065 (sha256
1066 (base32 "015ixss5bjr7gvhj8mkw5x2x1hy6fvvsjarr2xpv0gskkkngs7pg"))
1067 (file-name (git-file-name name version))))
1068 (build-system emacs-build-system)
1069 (propagated-inputs
1070 `(("emacs-dash" ,emacs-dash)))
1071 (native-inputs
1072 `(("emacs-shut-up" ,emacs-shut-up)))
1073 (arguments
1074 `(#:phases
1075 (modify-phases %standard-phases
1076 (add-after 'unpack 'change-flycheck-version
1077 (lambda _
1078 (substitute* "flycheck.el"
1079 (("\\(pkg-info-version-info 'flycheck\\)")
1080 (string-append "\"" ,version "\"")))
1081 #t)))
1082 ;; TODO: many failing tests
1083 #:tests? #f
1084 #:test-command '("emacs" "-Q" "--batch" "-L" "."
1085 "--load" "test/flycheck-test"
1086 "--load" "test/run.el"
1087 "-f" "flycheck-run-tests-main")))
1088 (home-page "https://www.flycheck.org")
1089 (synopsis "On-the-fly syntax checking")
1090 (description
1091 "This package provides on-the-fly syntax checking for GNU Emacs. It is a
1092 replacement for the older Flymake extension which is part of GNU Emacs, with
1093 many improvements and additional features.
1094
1095 Flycheck provides fully-automatic, fail-safe, on-the-fly background syntax
1096 checking for over 30 programming and markup languages with more than 70
1097 different tools. It highlights errors and warnings inline in the buffer, and
1098 provides an optional IDE-like error list.")
1099 (license license:gpl3+)))) ;+GFDLv1.3+ for the manual
1100
1101 (define-public emacs-flymake-shellcheck
1102 ;; No tag, version grabbed from source .el file.
1103 (let ((commit "78956f0e5bb9c4d35989657a55929e8e3f5691e6")
1104 (revision "0"))
1105 (package
1106 (name "emacs-flymake-shellcheck")
1107 (version (git-version "0.1" revision commit))
1108 (source
1109 (origin
1110 (method git-fetch)
1111 (uri (git-reference
1112 (url "https://github.com/federicotdn/flymake-shellcheck")
1113 (commit commit)))
1114 (file-name (git-file-name name version))
1115 (sha256
1116 (base32 "068mx5p4drwgppy4ry1rfq6qi79w6d82b4rnpl2jm37grsg94lix"))))
1117 (build-system emacs-build-system)
1118 (home-page "https://github.com/federicotdn/flymake-shellcheck")
1119 (synopsis "Flymake backend for Bash/Sh powered by ShellCheck")
1120 (description
1121 "This package provides a backend for Flymake to use the
1122 tool ShellCheck for static analyzing @command{bash} and @command{sh}
1123 scripts.")
1124 (license license:gpl3+))))
1125
1126 (define-public emacs-a
1127 (package
1128 (name "emacs-a")
1129 (version "0.1.1")
1130 (source (origin
1131 (method git-fetch)
1132 (uri (git-reference
1133 (url "https://github.com/plexus/a.el")
1134 (commit (string-append "v" version))))
1135 (file-name (git-file-name name version))
1136 (sha256
1137 (base32
1138 "00v9w6qg3bkwdhypq0ssf0phdh0f4bcq59c20lngd6vhk0204dqi"))))
1139 (build-system emacs-build-system)
1140 (home-page "https://github.com/plexus/a.el/")
1141 (synopsis
1142 "Emacs library for dealing with association lists and hash tables")
1143 (description "@code{emacs-a} provides Emacs Lisp functions for dealing
1144 with associative structures in a uniform and functional way. These functions
1145 can take association lists, hash tables, and in some cases vectors (where the
1146 index is considered the key).")
1147 (license license:gpl3+)))
1148
1149 (define-public emacs-ace-jump-mode
1150 (package
1151 (name "emacs-ace-jump-mode")
1152 (version "2.0")
1153 (home-page "https://github.com/winterTTr/ace-jump-mode")
1154 (source (origin
1155 (method git-fetch)
1156 (uri (git-reference
1157 (url home-page)
1158 (commit (string-append "v" version))))
1159 (sha256
1160 (base32
1161 "1bwvzh056ls2v7y26a0s4j5mj582dmds04lx4x6iqihs04ss74bb"))
1162 (file-name (git-file-name name version))))
1163 (build-system emacs-build-system)
1164 (synopsis "Cursor location minor mode for fast navigation")
1165 (description "Ace-jump-mode is a fast/direct cursor location minor
1166 mode. It creates an N-Branch search tree internally and marks all
1167 the possible position with predefined keys in within the whole Emacs
1168 view. This allows you to move to the character, word, or line almost
1169 directly.")
1170 (license license:gpl3+)))
1171
1172 (define-public emacs-anaphora
1173 (package
1174 (name "emacs-anaphora")
1175 (version "1.0.4")
1176 (source
1177 (origin
1178 (method git-fetch)
1179 (uri (git-reference
1180 (url "https://github.com/rolandwalker/anaphora")
1181 (commit (string-append "v" version))))
1182 (file-name (git-file-name name version))
1183 (sha256
1184 (base32
1185 "11fgiy029sqz7nvdm7dcal95lacryz9zql0x5h05z48nrrcl4bib"))))
1186 (build-system emacs-build-system)
1187 (home-page "https://github.com/rolandwalker/anaphora/")
1188 (synopsis "Anaphoric expressions for Emacs Lisp")
1189 (description "@code{emacs-anaphora} implements anaphoric expressions for
1190 Emacs Lisp.
1191
1192 Anaphoric expressions implicitly create one or more temporary variables which
1193 can be referred to during the expression. This technique can improve clarity
1194 in certain cases. It also enables recursion for anonymous functions.")
1195 (license license:public-domain)))
1196
1197 (define-public emacs-xr
1198 (package
1199 (name "emacs-xr")
1200 (version "1.19")
1201 (source
1202 (origin
1203 (method url-fetch)
1204 (uri (string-append "https://elpa.gnu.org/packages/xr-" version ".tar"))
1205 (sha256
1206 (base32 "1aa3iqh0r635jw8k89zh8y4am9d4hfrqpk9mrdh2b51invjn8llq"))))
1207 (build-system emacs-build-system)
1208 (home-page "https://elpa.gnu.org/packages/xr.html")
1209 (synopsis "Convert string regexp to rx notation")
1210 (description
1211 "This is an inverse companion to the @code{rx} package for translating
1212 regexps in string form to the @code{rx} notation. Its chief uses are:
1213
1214 @itemize
1215 @item Migrating existing code to @code{rx} form, for better readability and
1216 maintainability
1217 @item Understanding complex regexp strings and finding errors in them
1218 @end itemize
1219
1220 In addition to Emacs regexps, this package can also parse and troubleshoot
1221 skip set strings, which are arguments to @code{skip-chars-forward} and
1222 @code{skip-chars-backward}.")
1223 (license license:gpl3+)))
1224
1225 (define-public emacs-ample-regexps
1226 (let ((commit "153969ce547afe410b8986f01c9ed4087c9cd20b")
1227 (revision "2"))
1228 (package
1229 (name "emacs-ample-regexps")
1230 (version (git-version "0.1" revision commit))
1231 (source
1232 (origin
1233 (method git-fetch)
1234 (uri (git-reference
1235 (url "https://github.com/immerrr/ample-regexps.el")
1236 (commit commit)))
1237 (file-name (git-file-name name version))
1238 (sha256
1239 (base32
1240 "0dkp7bcd7h2ds40wyszy11nmh7c2jxrwy04ayz7pbxh53ir7s2k0"))))
1241 (build-system emacs-build-system)
1242 (native-inputs
1243 `(("ert-runner" ,emacs-ert-runner)))
1244 (arguments
1245 `(#:tests? #t
1246 #:test-command '("ert-runner" "-l" "ample-regexps")))
1247 (home-page "https://github.com/immerrr/ample-regexps.el")
1248 (synopsis "Compose and reuse Emacs regexps")
1249 (description
1250 "This package allows common parts of regexps to be easily picked out
1251 and reused.")
1252 (license license:gpl3+))))
1253
1254 (define-public emacs-ample-theme
1255 (let ((commit "536966adf882446165a1f756830028faa792c7a9")
1256 (revision "1"))
1257 (package
1258 (name "emacs-ample-theme")
1259 (version (git-version "0.0.0" revision commit))
1260 (source (origin
1261 (method git-fetch)
1262 (uri (git-reference
1263 (url "https://github.com/jordonbiondo/ample-theme")
1264 (commit commit)))
1265 (file-name (git-file-name name version))
1266 (sha256
1267 (base32
1268 "07bpv8dag40qjnm5000pgzpazj4whfxf93x2vprz26sg3mjfx0nf"))))
1269 (build-system emacs-build-system)
1270 (home-page "https://github.com/jordonbiondo/ample-theme")
1271 (synopsis "Theme for Emacs providing dark, light, and flat versions")
1272 (description "Ample themes is a collection of three themes sharing a
1273 similar pallet with a light, dark and flat versions with a focus on being easy
1274 on the eyes during night and day. They only support GUI and 256 colour
1275 terminals.")
1276 (license license:gpl3+))))
1277
1278 (define-public emacs-reformatter
1279 (package
1280 (name "emacs-reformatter")
1281 (version "0.4")
1282 (source
1283 (origin
1284 (method git-fetch)
1285 (uri (git-reference
1286 (url "https://github.com/purcell/reformatter.el")
1287 (commit version)))
1288 (file-name (git-file-name name version))
1289 (sha256
1290 (base32
1291 "0hhy6x1bkwlhdlarsgm06g3am4yh02yqv8qs34szpzgy53x84qah"))))
1292 (build-system emacs-build-system)
1293 (home-page "https://github.com/purcell/reformatter.el")
1294 (synopsis "Define commands which run reformatters on the current buffer")
1295 (description
1296 "This library lets elisp authors easily define an idiomatic command to
1297 reformat the current buffer using a command-line program, together with an
1298 optional minor mode which can apply this command automatically on save.")
1299 (license license:gpl3+)))
1300
1301 (define-public emacs-relint
1302 (package
1303 (name "emacs-relint")
1304 (version "1.18")
1305 (source
1306 (origin
1307 (method url-fetch)
1308 (uri (string-append "https://elpa.gnu.org/packages/"
1309 "relint-" version ".tar"))
1310 (sha256
1311 (base32 "0zfislsksrkn6qs0w26yaff5xr7xqy2x235dcdpz8s2v35b6dhci"))))
1312 (build-system emacs-build-system)
1313 (propagated-inputs `(("emacs-xr" ,emacs-xr)))
1314 (home-page "https://github.com/mattiase/relint")
1315 (synopsis "Elisp regexp mistake finder")
1316 (description
1317 "Relint (regular expression lint) scans Elisp files for mistakes in
1318 regexps, including deprecated syntax and bad practice. It also checks the
1319 regexp-like arguments to @code{skip-chars-forward} and
1320 @code{skip-chars-backward}.")
1321 (license license:gpl3+)))
1322
1323 (define-public emacs-bug-hunter
1324 (let ((commit "b88d981afa9154b236c5a3a83b50d5889d46c6a7")
1325 (revision "1"))
1326 (package
1327 (name "emacs-bug-hunter")
1328 (version (git-version "1.3.1" revision commit))
1329 (source
1330 (origin
1331 (method git-fetch)
1332 (uri (git-reference
1333 (url "https://github.com/Malabarba/elisp-bug-hunter")
1334 (commit commit)))
1335 (file-name (git-file-name name commit))
1336 (sha256
1337 (base32
1338 "134fj493sdn93pyyac8rpz1fzahzmayvphsrmqp3wvgysmfqm38l"))))
1339 (build-system emacs-build-system)
1340 (home-page "https://github.com/Malabarba/elisp-bug-hunter")
1341 (synopsis "Hunt down errors by bisecting elisp files")
1342 (description
1343 "The Bug Hunter is an Emacs library that finds the source of an error
1344 or unexpected behavior inside an elisp configuration file (typically
1345 @file{init.el} or @file{.emacs}).")
1346 (license license:gpl3+))))
1347
1348 \f
1349 ;;;
1350 ;;; Web browsing.
1351 ;;;
1352
1353 (define-public emacs-w3m
1354 ;; Emacs-w3m follows a "rolling release" model.
1355 (package
1356 (name "emacs-w3m")
1357 (version "2018-11-11")
1358 (source (origin
1359 (method cvs-fetch)
1360 (uri (cvs-reference
1361 (root-directory
1362 ":pserver:anonymous@cvs.namazu.org:/storage/cvsroot")
1363 (module "emacs-w3m")
1364 (revision version)))
1365 (file-name (string-append name "-" version "-checkout"))
1366 (sha256
1367 (base32
1368 "0nvahdbjs12zg7zsk4gql02mvnv56cf1rwj2f5p42lwp3xvswiwp"))))
1369 (build-system gnu-build-system)
1370 (native-inputs `(("autoconf" ,autoconf)
1371 ("texinfo" ,texinfo)
1372 ("emacs" ,emacs-minimal)))
1373 (inputs `(("w3m" ,w3m)
1374 ("imagemagick" ,imagemagick)))
1375 (arguments
1376 `(#:modules ((guix build gnu-build-system)
1377 (guix build utils)
1378 (guix build emacs-utils))
1379 #:imported-modules (,@%gnu-build-system-modules
1380 (guix build emacs-utils))
1381 #:configure-flags
1382 (let ((out (assoc-ref %outputs "out")))
1383 (list (string-append "--with-lispdir="
1384 out "/share/emacs/site-lisp")
1385 (string-append "--with-icondir="
1386 out "/share/images/emacs-w3m")
1387 ;; Leave .el files uncompressed, otherwise GC can't
1388 ;; identify run-time dependencies. See
1389 ;; <http://lists.gnu.org/archive/html/guix-devel/2015-12/msg00208.html>
1390 "--without-compress-install"))
1391 #:tests? #f ; no check target
1392 #:phases
1393 (modify-phases %standard-phases
1394 (add-after 'unpack 'autoconf
1395 (lambda _
1396 (invoke "autoconf")))
1397 (add-before 'configure 'support-emacs!
1398 (lambda _
1399 ;; For some reason 'AC_PATH_EMACS' thinks that 'Emacs 26' is
1400 ;; unsupported.
1401 (substitute* "configure"
1402 (("EMACS_FLAVOR=unsupported")
1403 "EMACS_FLAVOR=emacs"))
1404 #t))
1405 (add-before 'build 'patch-exec-paths
1406 (lambda* (#:key inputs outputs #:allow-other-keys)
1407 (let ((out (assoc-ref outputs "out"))
1408 (w3m (assoc-ref inputs "w3m"))
1409 (imagemagick (assoc-ref inputs "imagemagick"))
1410 (coreutils (assoc-ref inputs "coreutils")))
1411 (make-file-writable "w3m.el")
1412 (emacs-substitute-variables "w3m.el"
1413 ("w3m-command" (string-append w3m "/bin/w3m"))
1414 ("w3m-touch-command"
1415 (string-append coreutils "/bin/touch"))
1416 ("w3m-icon-directory"
1417 (string-append out "/share/images/emacs-w3m")))
1418 (make-file-writable "w3m-image.el")
1419 (emacs-substitute-variables "w3m-image.el"
1420 ("w3m-imagick-convert-program"
1421 (string-append imagemagick "/bin/convert"))
1422 ("w3m-imagick-identify-program"
1423 (string-append imagemagick "/bin/identify")))
1424 #t)))
1425 (replace 'install
1426 (lambda* (#:key outputs #:allow-other-keys)
1427 (invoke "make" "install" "install-icons")
1428 (with-directory-excursion
1429 (string-append (assoc-ref outputs "out")
1430 "/share/emacs/site-lisp")
1431 (for-each delete-file '("ChangeLog" "ChangeLog.1"))
1432 (symlink "w3m-load.el" "w3m-autoloads.el")
1433 #t))))))
1434 (home-page "http://emacs-w3m.namazu.org/")
1435 (synopsis "Simple Web browser for Emacs based on w3m")
1436 (description
1437 "Emacs-w3m is an emacs interface for the w3m web browser.")
1438 (license license:gpl2+)))
1439
1440 (define-public emacs-wget
1441 (package
1442 (name "emacs-wget")
1443 (version "0.5.0")
1444 (source (origin
1445 (method url-fetch)
1446 (uri (string-append "mirror://debian/pool/main/w/wget-el/wget-el_"
1447 version ".orig.tar.gz"))
1448 (sha256
1449 (base32 "10byvyv9dk0ib55gfqm7bcpxmx2qbih1jd03gmihrppr2mn52nff"))))
1450 (build-system gnu-build-system)
1451 (inputs `(("wget" ,wget)))
1452 (native-inputs `(("emacs" ,emacs-minimal)))
1453 (arguments
1454 `(#:modules ((guix build gnu-build-system)
1455 (guix build utils)
1456 (guix build emacs-utils))
1457 #:imported-modules (,@%gnu-build-system-modules
1458 (guix build emacs-utils))
1459 #:tests? #f ; no check target
1460 #:phases
1461 (modify-phases %standard-phases
1462 (replace 'configure
1463 (lambda* (#:key outputs #:allow-other-keys)
1464 (substitute* "Makefile"
1465 (("/usr/local") (assoc-ref outputs "out"))
1466 (("/site-lisp/emacs-wget") "/site-lisp"))
1467 #t))
1468 (add-before 'build 'patch-exec-paths
1469 (lambda* (#:key inputs outputs #:allow-other-keys)
1470 (let ((wget (assoc-ref inputs "wget")))
1471 (emacs-substitute-variables "wget.el"
1472 ("wget-command" (string-append wget "/bin/wget"))))
1473 #t))
1474 (add-after 'install 'post-install
1475 (lambda* (#:key outputs #:allow-other-keys)
1476 (emacs-generate-autoloads
1477 "wget" (string-append (assoc-ref outputs "out")
1478 "/share/emacs/site-lisp/"))
1479 #t)))))
1480 (home-page "https://www.emacswiki.org/emacs/EmacsWget")
1481 (synopsis "Simple file downloader for Emacs based on wget")
1482 (description
1483 "Emacs-wget is an emacs interface for the wget file downloader.")
1484 (license license:gpl2+)))
1485
1486 (define-public emacs-eww-lnum
1487 (package
1488 (name "emacs-eww-lnum")
1489 (version "1.1")
1490 (source (origin
1491 (method git-fetch)
1492 (uri (git-reference
1493 (url "https://github.com/m00natic/eww-lnum")
1494 (commit version)))
1495 (file-name (git-file-name name version))
1496 (sha256
1497 (base32
1498 "0gs6bi3s2sszc6v2b26929azmn5513kvyin99n4d0ark1jdbjmv2"))))
1499 (build-system emacs-build-system)
1500 (home-page "https://github.com/m00natic/eww-lnum")
1501 (synopsis "Conkeror-like functionality for Eww")
1502 (description "This is extension to the Emacs browser Eww that adds
1503 Conkeror-like functionality. In short, currently visible links, forms,
1504 buttons are temporarily assigned numbers with which the former can be
1505 immediately activated. Also filtering can be applied so selection can be
1506 incrementally confined in Isearch manner.")
1507 (license license:gpl3+)))
1508
1509
1510 \f
1511 ;;;
1512 ;;; Multimedia.
1513 ;;;
1514
1515 (define emacs-emms-print-metadata
1516 (package
1517 (name "emacs-emms-print-metadata")
1518 (version "5.42")
1519 (source
1520 (origin
1521 (method url-fetch)
1522 (uri (string-append "https://elpa.gnu.org/packages/"
1523 "emms-" version ".tar"))
1524 (sha256
1525 (base32 "1khx1fvllrs6w9kxk12mp1hj309c90mc7lkq1vvlqlr7vd6zmnpj"))))
1526 (build-system gnu-build-system)
1527 (arguments
1528 `(#:make-flags '("emms-print-metadata")
1529 #:tests? #f ; No tests.
1530 #:phases
1531 (modify-phases %standard-phases
1532 (delete 'configure)
1533 (replace 'install
1534 (lambda* (#:key outputs #:allow-other-keys)
1535 (let* ((out (assoc-ref outputs "out")))
1536 (install-file "src/emms-print-metadata"
1537 (string-append out "/bin"))
1538 (install-file "emms-print-metadata.1"
1539 (string-append out "/share/man/man1"))
1540 #t))))))
1541 (inputs
1542 `(("taglib" ,taglib)))
1543 (home-page "https://www.gnu.org/software/emms/")
1544 (synopsis "The Emacs Multimedia System")
1545 (description
1546 "EMMS is the Emacs Multimedia System. It is a small front-end which
1547 can control one of the supported external players. Thus, it supports
1548 whatever formats are supported by your music player. It also
1549 supports tagging and playlist management, all behind a clean and
1550 light user interface.")
1551 (license license:gpl3+)))
1552
1553 (define-public emacs-emms
1554 (package
1555 (inherit emacs-emms-print-metadata)
1556 (name "emacs-emms")
1557 (build-system emacs-build-system)
1558 (arguments
1559 `(#:phases
1560 (modify-phases %standard-phases
1561 (add-after 'unpack 'set-external-programs
1562 ;; Specify the absolute file names of the various programs
1563 ;; so that everything works out-of-the-box.
1564 (lambda* (#:key inputs outputs #:allow-other-keys)
1565 (let ((out (assoc-ref outputs "out"))
1566 (emms-print-metadata (assoc-ref inputs "emms-print-metadata"))
1567 (flac (assoc-ref inputs "flac"))
1568 (vorbis (assoc-ref inputs "vorbis-tools"))
1569 (alsa (assoc-ref inputs "alsa-utils"))
1570 (mpg321 (assoc-ref inputs "mpg321"))
1571 (mp3info (assoc-ref inputs "mp3info"))
1572 (mutagen (assoc-ref inputs "mutagen"))
1573 (opus (assoc-ref inputs "opus-tools")))
1574 (emacs-substitute-variables "emms-player-mpg321-remote.el"
1575 ("emms-player-mpg321-remote-command"
1576 (string-append mpg321 "/bin/mpg321")))
1577 (substitute* "emms-player-simple.el"
1578 (("\"ogg123\"")
1579 (string-append "\"" vorbis "/bin/ogg123\"")))
1580 (substitute* "emms-player-simple.el"
1581 (("\"mpg321\"")
1582 (string-append "\"" mpg321 "/bin/mpg321\"")))
1583 (emacs-substitute-variables "emms-info-ogginfo.el"
1584 ("emms-info-ogginfo-program-name"
1585 (string-append vorbis "/bin/ogginfo")))
1586 (emacs-substitute-variables "emms-info-opusinfo.el"
1587 ("emms-info-opusinfo-program-name"
1588 (string-append opus "/bin/opusinfo")))
1589 (emacs-substitute-variables "emms-info-libtag.el"
1590 ("emms-info-libtag-program-name"
1591 (string-append emms-print-metadata "/bin/emms-print-metadata")))
1592 (emacs-substitute-variables "emms-info-mp3info.el"
1593 ("emms-info-mp3info-program-name"
1594 (string-append mp3info "/bin/mp3info")))
1595 (emacs-substitute-variables "emms-info-metaflac.el"
1596 ("emms-info-metaflac-program-name"
1597 (string-append flac "/bin/metaflac")))
1598 (emacs-substitute-variables "emms-source-file.el"
1599 ("emms-source-file-gnu-find" (which "find")))
1600 (substitute* "emms-volume-amixer.el"
1601 (("\"amixer\"")
1602 (string-append "\"" alsa "/bin/amixer\"")))
1603 (substitute* "emms-tag-editor.el"
1604 (("\"mid3v2\"")
1605 (string-append "\"" mutagen "/bin/mid3v2\"")))
1606 #t))))))
1607 (inputs
1608 `(("emms-print-metadata" ,emacs-emms-print-metadata)
1609 ("alsa-utils" ,alsa-utils)
1610 ("flac" ,flac) ;for metaflac
1611 ("vorbis-tools" ,vorbis-tools)
1612 ("mpg321" ,mpg321)
1613 ("mp3info" ,mp3info)
1614 ("mutagen" ,python-mutagen)
1615 ("opus-tools" ,opus-tools)))))
1616
1617 (define-public emacs-emms-mode-line-cycle
1618 (package
1619 (name "emacs-emms-mode-line-cycle")
1620 (version "0.2.5")
1621 (source
1622 (origin
1623 (method git-fetch)
1624 (uri (git-reference
1625 (url "https://github.com/momomo5717/emms-mode-line-cycle")
1626 (commit version)))
1627 (file-name (git-file-name name version))
1628 (sha256
1629 (base32
1630 "0q80f0plch6k4lhs8c9qm3mfycfbp3kn5sjrk9zxgxwnn901y9mp"))))
1631 (build-system emacs-build-system)
1632 (propagated-inputs
1633 `(("emms" ,emacs-emms)))
1634 (home-page "https://github.com/momomo5717/emms-mode-line-cycle")
1635 (synopsis "Display the EMMS mode line as a ticker")
1636 (description
1637 "This is a minor mode for updating the EMMS mode-line string cyclically
1638 within a specified width. It is useful for displaying long track titles.")
1639 (license license:gpl3+)))
1640
1641 \f
1642 ;;;
1643 ;;; Miscellaneous.
1644 ;;;
1645
1646 (define-public emacs-ace-link
1647 (package
1648 (name "emacs-ace-link")
1649 (version "0.5.0")
1650 (source
1651 (origin
1652 (method git-fetch)
1653 (uri (git-reference
1654 (url "https://github.com/abo-abo/ace-link")
1655 (commit version)))
1656 (file-name (git-file-name name version))
1657 (sha256
1658 (base32
1659 "147dz79vg4ym5wg3d544bw2khdb2j3hr73rw4qfm64wf0q2dj0vk"))))
1660 (build-system emacs-build-system)
1661 (propagated-inputs
1662 `(("emacs-avy" ,emacs-avy)))
1663 (home-page "https://github.com/abo-abo/ace-link")
1664 (synopsis "Quickly follow links in Emacs")
1665 (description
1666 "Currently, to jump to a link in a @code{Info-mode}, @code{help-mode},
1667 @code{woman-mode}, @code{org-mode}, @code{eww-mode}, @code{compilation-mode},
1668 @code{goto-address-mode} buffer, you can tab through the links to select the
1669 one you want. This is an O(N) operation, where the N is the amount of links.
1670 This package turns this into an O(1) operation. It does so by assigning a
1671 letter to each link using avy.")
1672 (license license:gpl3+)))
1673
1674 (define-public emacs-auto-sudoedit
1675 (package
1676 (name "emacs-auto-sudoedit")
1677 (version "1.0.0")
1678 (source
1679 (origin
1680 (method git-fetch)
1681 (uri (git-reference
1682 (url "https://github.com/ncaq/auto-sudoedit")
1683 (commit (string-append "v" version))))
1684 (file-name (git-file-name name version))
1685 (sha256
1686 (base32 "10p0hc95j382km8655pqld9wxg10j1f36czzppkdd6a55cxarv9f"))))
1687 (propagated-inputs
1688 `(("emacs-f" ,emacs-f)))
1689 (build-system emacs-build-system)
1690 (home-page "https://github.com/ncaq/auto-sudoedit")
1691 (synopsis "Automatically re-open read-only files with sudo")
1692 (description
1693 "This package automatically reopens a file or directory with
1694 @command{sudo} if it cannot write to it.")
1695 (license license:expat)))
1696
1697 (define-public emacs-bbdb
1698 (package
1699 (name "emacs-bbdb")
1700 (version "3.2")
1701 (source
1702 (origin
1703 (method url-fetch)
1704 (uri (string-append "https://elpa.gnu.org/packages/"
1705 "bbdb-" version ".tar"))
1706 (sha256
1707 (base32 "1p56dg0mja2b2figy7yhdx714zd5j6njzn0k07zjka3jc06izvjx"))))
1708 (build-system emacs-build-system)
1709 (arguments
1710 ;; XXX: The following file cannot be byte-compiled, because et requires
1711 ;; `vm-autoloads', from the VM package, with is neither in Emacs nor
1712 ;; packaged in Guix. So, don't bother for now.
1713 `(#:exclude '("bbdb-vm\\.el")))
1714 (home-page "http://elpa.gnu.org/packages/bbdb.html")
1715 (synopsis "Contact management utility for Emacs")
1716 (description
1717 "BBDB is the Insidious Big Brother Database for GNU Emacs. It provides
1718 an address book for email and snail mail addresses, phone numbers and the
1719 like. It can be linked with various Emacs mail clients (Message and Mail
1720 mode, Rmail, Gnus, MH-E, and VM). BBDB is fully customizable.")
1721 (license license:gpl3+)))
1722
1723 (define-public emacs-bluetooth
1724 (package
1725 (name "emacs-bluetooth")
1726 (version "0.1.2")
1727 (source
1728 (origin
1729 (method url-fetch)
1730 (uri (string-append "https://elpa.gnu.org/packages/"
1731 "bluetooth-" version ".el"))
1732 (sha256
1733 (base32 "1vp2vpyq0ybjni35ics1mg1kiwgvc7x12dlmvygy78sqp52sfkcv"))))
1734 (build-system emacs-build-system)
1735 (inputs
1736 `(("bluez" ,bluez)))
1737 (propagated-inputs
1738 `(("emacs-dash" ,emacs-dash)))
1739 (home-page "https://gitlab.com/rstocker/emacs-bluetooth")
1740 (synopsis "Manage Bluetooth devices using Emacs")
1741 (description
1742 "This package implements basic Bluetooth management functionality, such
1743 as connecting and disconnecting devices, setting properties and aliases,
1744 putting the adapter in discovery mode and controlling its power supply. It
1745 also includes a pairing agent.")
1746 (license license:gpl3+)))
1747
1748 (define-public emacs-aggressive-indent
1749 (package
1750 (name "emacs-aggressive-indent")
1751 (version "1.8.3")
1752 (source (origin
1753 (method url-fetch)
1754 (uri (string-append "https://elpa.gnu.org/packages/"
1755 "aggressive-indent-" version ".el"))
1756 (sha256
1757 (base32
1758 "0jnzccl50x0wapprgwxinp99pwwa6j43q6msn4gv437j7swy8wnj"))))
1759 (build-system emacs-build-system)
1760 (home-page "https://elpa.gnu.org/packages/aggressive-indent.html")
1761 (synopsis "Minor mode to aggressively keep your code always indented")
1762 (description
1763 "@code{aggressive-indent-mode} is a minor mode that keeps your code
1764 always indented. It reindents after every change, making it more reliable
1765 than @code{electric-indent-mode}.")
1766 (license license:gpl2+)))
1767
1768 (define-public emacs-ctrlf
1769 (package
1770 (name "emacs-ctrlf")
1771 (version "1.1")
1772 (source
1773 (origin
1774 (method git-fetch)
1775 (uri (git-reference
1776 (url "https://github.com/raxod502/ctrlf")
1777 (commit (string-append "v" version))))
1778 (file-name (git-file-name name version))
1779 (sha256
1780 (base32 "1ffcjf0ff0748gqipkklz6jmcj4f3blgzdcax93ql9ws8bmvlsdc"))))
1781 (build-system emacs-build-system)
1782 (home-page "https://github.com/raxod502/ctrlf/")
1783 (synopsis "Single-buffer text search in Emacs")
1784 (description "CTRLF (pronounced @emph{control F}) is an intuitive and
1785 efficient solution for single-buffer text search in Emacs, replacing packages
1786 such as Isearch, Swiper, and helm-swoop. It takes inspiration from the
1787 widely-adopted and battle-tested @samp{Ctrl+F} interfaces in programs such as
1788 web browsers, but follows the flow and keybindings of Isearch.")
1789 (license license:expat)))
1790
1791 (define-public emacs-dhall-mode
1792 ;; There is no proper release. The base version is extracted from the
1793 ;; "Version" keyword in the main file.
1794 (let ((revision "1")
1795 (commit "484bcf8f78f1183ef45c3b04a362bb73690c6b9b"))
1796 (package
1797 (name "emacs-dhall-mode")
1798 (version (git-version "0.1.3" revision commit))
1799 (source
1800 (origin
1801 (method git-fetch)
1802 (uri
1803 (git-reference
1804 (url "https://github.com/psibi/dhall-mode")
1805 (commit commit)))
1806 (file-name (git-file-name name version))
1807 (sha256
1808 (base32 "1wggg8jlzg9rph4jhxp6yiri178rnasbv38838i973kjgqjxrl76"))))
1809 (build-system emacs-build-system)
1810 (propagated-inputs
1811 `(("emacs-reformatter" ,emacs-reformatter)))
1812 (home-page "https://github.com/psibi/dhall-mode")
1813 (synopsis "Major mode for working with Dhall configuration language")
1814 (description
1815 "Dhall-mode provides an Emacs Major mode for working with the Dhall
1816 configuration language. It features:
1817
1818 @itemize
1819 @item Syntax highlighting
1820 @item Multiline support for String
1821 @item Basic indentation, commenting
1822 @item Automatic formatting on save using dhall-format.
1823 @item Error highlighting.
1824 @end itemize")
1825 (license license:gpl3+))))
1826
1827 (define-public emacs-link-hint
1828 ;; Last release was in 2015.
1829 (let ((commit "d74a483652486260c052941fedeadddb1ea71f88")
1830 (revision "1"))
1831 (package
1832 (name "emacs-link-hint")
1833 (version (git-version "0.1" revision commit))
1834 (source
1835 (origin
1836 (method git-fetch)
1837 (uri (git-reference
1838 (url "https://github.com/noctuid/link-hint.el")
1839 (commit commit)))
1840 (file-name (git-file-name name version))
1841 (sha256
1842 (base32
1843 "0dghxd165fbds6czy9bfwpid3i4irgp3q08n9mg57sfifi0cmij0"))))
1844 (build-system emacs-build-system)
1845 (propagated-inputs
1846 `(("emacs-avy" ,emacs-avy)))
1847 (home-page "https://github.com/noctuid/link-hint.el")
1848 (synopsis "Vimperator-style link-hinting in Emacs")
1849 (description "This package provides commands for visiting and acting on
1850 links.")
1851 (license license:gpl3+))))
1852
1853 (define-public emacs-ag
1854 (package
1855 (name "emacs-ag")
1856 (version "0.48")
1857 (source (origin
1858 (method git-fetch)
1859 (uri (git-reference
1860 (url "https://github.com/Wilfred/ag.el")
1861 (commit version)))
1862 (file-name (git-file-name name version))
1863 (sha256
1864 (base32
1865 "1p918y24vcn2pdliaymd210xp9fvhd4a1srqbv2lfiqrh59yjidx"))))
1866 (build-system emacs-build-system)
1867 (arguments
1868 `(#:phases
1869 (modify-phases %standard-phases
1870 (add-before 'install 'make-info
1871 (lambda _
1872 (with-directory-excursion "docs"
1873 (invoke "make" "info"))))
1874 (add-after 'install 'install-info
1875 (lambda* (#:key outputs #:allow-other-keys)
1876 (let* ((out (assoc-ref outputs "out"))
1877 (info (string-append out "/share/info")))
1878 (install-file "docs/_build/texinfo/agel.info" info)
1879 #t))))))
1880 (native-inputs
1881 `(("python-sphinx" ,python-sphinx)
1882 ("texinfo" ,texinfo)))
1883 (propagated-inputs
1884 `(("dash" ,emacs-dash)
1885 ("s" ,emacs-s)
1886 ;; We need to use 'ag' as the executable on remote systems.
1887 ("the-silver-searcher" ,the-silver-searcher)))
1888 (home-page "https://github.com/Wilfred/ag.el")
1889 (synopsis "Front-end for ag (the-silver-searcher) for Emacs")
1890 (description "This package provides the ability to use the silver
1891 searcher, a code searching tool, sometimes abbreviated to @code{ag}. Features
1892 include version control system awareness, use of Perl compatible regular
1893 expressions, editing the search results directly and searching file names
1894 rather than the contents of files.")
1895 (license license:gpl3+)))
1896
1897 (define-public emacs-async
1898 (package
1899 (name "emacs-async")
1900 (home-page "https://github.com/jwiegley/emacs-async")
1901 (version "1.9.4")
1902 (source (origin
1903 (method git-fetch)
1904 (uri (git-reference
1905 (url home-page)
1906 (commit (string-append "v" version))))
1907 (file-name (git-file-name name version))
1908 (sha256
1909 (base32
1910 "0hhpyxb3d531jb2f3wvzx25183f0anm8nxv6mh0p825q2gkm6ly7"))))
1911 (build-system emacs-build-system)
1912 (synopsis "Asynchronous processing in Emacs")
1913 (description
1914 "This package provides the ability to call asynchronous functions and
1915 processes. For example, it can be used to run dired commands (for copying,
1916 moving, etc.) asynchronously using @code{dired-async-mode}. Also it is used
1917 as a library for other Emacs packages.")
1918 (license license:gpl3+)))
1919
1920 (define-public emacs-auctex
1921 (package
1922 (name "emacs-auctex")
1923 (version "12.2.4")
1924 (source
1925 (origin
1926 (method url-fetch)
1927 (uri (string-append "https://elpa.gnu.org/packages/"
1928 "auctex-" version ".tar"))
1929 (sha256
1930 (base32 "1yz2h692mr35zgqwlxdq8rzv8n0jixhpaqmbiki00hlysm4zh9py"))))
1931 (build-system emacs-build-system)
1932 ;; We use 'emacs' because AUCTeX requires dbus at compile time
1933 ;; ('emacs-minimal' does not provide dbus).
1934 (arguments
1935 `(#:emacs ,emacs
1936 #:include '("\\.el$" "^images/" "^latex/" "\\.info$")
1937 #:exclude '("^tests/" "^latex/README")
1938 #:phases
1939 (modify-phases %standard-phases
1940 (add-after 'unpack 'configure
1941 (lambda* (#:key inputs #:allow-other-keys)
1942 (emacs-substitute-variables "preview.el"
1943 ("preview-gs-command"
1944 (string-append (assoc-ref inputs "ghostscript") "/bin/gs")))
1945 (substitute* "preview.el"
1946 (("\"dvipng ")
1947 (string-append "\"" (assoc-ref inputs "texlive")
1948 "/bin/dvipng "))
1949 (("\"dvips ")
1950 (string-append "\"" (assoc-ref inputs "texlive")
1951 "/bin/dvips "))
1952 (("\"pdf2dsc ")
1953 (string-append "\"" (assoc-ref inputs "ghostscript")
1954 "/bin/pdf2dsc ")))))
1955 (add-after 'install 'install-doc
1956 (lambda* (#:key outputs #:allow-other-keys)
1957 (let* ((out (assoc-ref outputs "out"))
1958 (etc-dir (string-append out "/share/" ,name "/"
1959 ,version "/etc")))
1960 (with-directory-excursion "doc"
1961 (setenv "HOME" (getenv "TMPDIR")) ; for mktextfm
1962 (invoke "pdftex" "tex-ref")
1963 (install-file "tex-ref.pdf"
1964 (string-append etc-dir "/refcards")))
1965 #t))))))
1966 (native-inputs
1967 `(("perl" ,perl)))
1968 (inputs
1969 `(("ghostscript" ,ghostscript)
1970 ("texlive" ,(texlive-union (list texlive-amsfonts)))))
1971 (home-page "https://www.gnu.org/software/auctex/")
1972 (synopsis "Integrated environment for TeX")
1973 (description
1974 "AUCTeX is a comprehensive customizable integrated environment for
1975 writing input files for TeX, LaTeX, ConTeXt, Texinfo, and docTeX using Emacs
1976 or XEmacs.")
1977 (license license:gpl3+)))
1978
1979 (define-public emacs-autothemer
1980 (package
1981 (name "emacs-autothemer")
1982 (version "0.2.2")
1983 (source
1984 (origin
1985 (method git-fetch)
1986 (uri (git-reference
1987 (url "https://github.com/sebastiansturm/autothemer")
1988 (commit version)))
1989 (file-name (git-file-name name version))
1990 (sha256
1991 (base32
1992 "0cd2pqh6k32sjidkcd8682y4l6mx52xw4a05f38kk8nsrk28m74k"))))
1993 (build-system emacs-build-system)
1994 (propagated-inputs
1995 `(("emacs-dash" ,emacs-dash)))
1996 (home-page "https://github.com/sebastiansturm/autothemer")
1997 (synopsis "Conveniently create Emacs themes")
1998 (description
1999 "Autothemer provides a thin layer on top of @code{deftheme} and
2000 @code{custom-theme-set-faces} that creates a new custom color theme, based on
2001 a set of simplified face specifications and a user-supplied color palette")
2002 (license license:gpl3+)))
2003
2004 (define-public emacs-howm
2005 (package
2006 (name "emacs-howm")
2007 (version "1.4.6")
2008 (source
2009 (origin
2010 (method url-fetch)
2011 (uri (string-append "https://howm.sourceforge.jp/a/"
2012 "howm-" version ".tar.gz"))
2013 (sha256
2014 (base32 "17ihch1zbk08ih7gc232jlmbw7hax8ldb9glxp8d75k4asa98qh5"))))
2015 (build-system gnu-build-system)
2016 (native-inputs
2017 `(("emacs" ,emacs-minimal)))
2018 (arguments
2019 `(#:configure-flags
2020 (list (string-append "--with-howmdir=" %output
2021 "/share/emacs/site-lisp/"))
2022 #:modules ((guix build gnu-build-system)
2023 ((guix build emacs-build-system) #:prefix emacs:)
2024 (guix build utils))
2025 #:imported-modules (,@%gnu-build-system-modules
2026 (guix build emacs-build-system)
2027 (guix build emacs-utils))
2028 #:phases
2029 (modify-phases %standard-phases
2030 (add-after 'install 'make-autoloads
2031 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
2032 (home-page "https://howm.osdn.jp/")
2033 (synopsis "Note-taking tool for Emacs")
2034 (description "Howm is a note-taking tool for Emacs. Like
2035 code@{emacs-wiki.el}, it facilitates using hyperlinks and doing full-text
2036 searches. Unlike code@{emacs-wiki.el}, it can be combined with any format.")
2037 (license license:gpl1+)))
2038
2039 (define-public emacs-bm
2040 (package
2041 (name "emacs-bm")
2042 (version "201905")
2043 (source
2044 (origin
2045 (method git-fetch)
2046 (uri (git-reference
2047 (url "https://github.com/joodland/bm")
2048 (commit version)))
2049 (file-name (git-file-name name version))
2050 (sha256
2051 (base32 "180b3rc13asrmsdh7v405d54jkrininvaj52xhp71vw91ng51dkn"))))
2052 (build-system emacs-build-system)
2053 (home-page "https://github.com/joodland/bm")
2054 (synopsis "Visual bookmarks for Emacs")
2055 (description "This package provides visible, buffer local bookmarks and
2056 the ability to jump forward and backward to the next bookmark.")
2057 (license license:gpl2+)))
2058
2059 (define-public emacs-calfw
2060 (package
2061 (name "emacs-calfw")
2062 (version "1.6")
2063 (source
2064 (origin
2065 (method git-fetch)
2066 (uri (git-reference
2067 (url "https://github.com/kiwanami/emacs-calfw")
2068 (commit (string-append "v" version))))
2069 (file-name (git-file-name name version))
2070 (sha256
2071 (base32
2072 "0r42cagvmvvib76kd15nd9ix55ys6i549vxnls4z16s864695zpa"))))
2073 (build-system emacs-build-system)
2074 (propagated-inputs
2075 `(("emacs-howm" ,emacs-howm)))
2076 (home-page "https://github.com/kiwanami/emacs-calfw/")
2077 (synopsis "Calendar framework for Emacs")
2078 (description
2079 "This package displays a calendar view with various schedule data in the
2080 Emacs buffer.")
2081 (license license:gpl3+)))
2082
2083 (define-public emacs-caps-lock
2084 (package
2085 (name "emacs-caps-lock")
2086 (version "1.0")
2087 (source
2088 (origin
2089 (method url-fetch)
2090 (uri (string-append "https://elpa.gnu.org/packages/"
2091 "caps-lock-" version ".el"))
2092 (sha256
2093 (base32 "1i4hwam81p4dr0bk8257fkiz4xmv6knkjxj7a00fa35kgx5blpva"))))
2094 (build-system emacs-build-system)
2095 (home-page "http://elpa.gnu.org/packages/caps-lock.html")
2096 (synopsis "Caps Lock as a minor mode")
2097 (description
2098 "This package provides a minor mode to emulate the behavior of a Caps
2099 Lock key.")
2100 (license license:gpl3+)))
2101
2102 (define-public emacs-chronometrist
2103 (package
2104 (name "emacs-chronometrist")
2105 (version "0.5.5")
2106 (source
2107 (origin
2108 (method git-fetch)
2109 (uri (git-reference
2110 (url "https://github.com/contrapunctus-1/chronometrist.git")
2111 (commit (string-append "v" version))))
2112 (file-name (git-file-name name version))
2113 (sha256
2114 (base32 "1zccyfpgq68ixrcl8jq2r38165ngkqrb42y2hkyab6gxhvh4wkpl"))))
2115 (build-system emacs-build-system)
2116 (arguments
2117 `(#:phases
2118 (modify-phases %standard-phases
2119 (add-after 'unpack 'chdir-elisp
2120 ;; Elisp directory is not in root of the source.
2121 (lambda _
2122 (chdir "elisp")
2123 #t))
2124 (add-after 'install 'install-doc
2125 ;; Documentation consists of several Markdown files.
2126 (lambda* (#:key outputs #:allow-other-keys)
2127 (let* ((out (assoc-ref outputs "out"))
2128 (doc (string-append out
2129 "/share/doc/emacs-chronometrist-"
2130 ,version)))
2131 (with-directory-excursion "../doc"
2132 (for-each (lambda (f) (install-file f doc))
2133 (cons* "../UNLICENSE"
2134 "../WTFPL"
2135 (find-files "." "\\.md$")))))
2136 #t)))))
2137 (propagated-inputs
2138 `(("emacs-anaphora" ,emacs-anaphora)
2139 ("emacs-dash" ,emacs-dash)
2140 ("emacs-s" ,emacs-s)
2141 ("emacs-ts" ,emacs-ts)))
2142 (home-page "https://github.com/contrapunctus-1/chronometrist")
2143 (synopsis "Time tracker for Emacs")
2144 (description "Chronometrist is a time tracker in Emacs, largely modelled
2145 after the Android application, @emph{A Time Tracker}.
2146
2147 Its features are:
2148 @itemize
2149 @item Simple and efficient to use,
2150 @item Displays useful information about your time usage,
2151 @item Support for both mouse and keyboard,
2152 @item Human errors in tracking are easily fixed by editing a plain text file,
2153 @item Hooks to let you perform arbitrary actions when starting/stopping tasks.
2154 @end itemize")
2155 ;; Software is dual-licensed.
2156 (license (list license:unlicense license:wtfpl2))))
2157
2158 (define-public emacs-direnv
2159 (package
2160 (name "emacs-direnv")
2161 (version "2.1.0")
2162 (source
2163 (origin
2164 (method git-fetch)
2165 (uri (git-reference
2166 (url "https://github.com/wbolster/emacs-direnv")
2167 (commit version)))
2168 (file-name (git-file-name name version))
2169 (sha256
2170 (base32 "0xkqn4604k2imas6azy1www56br8ls4iv9a44pxcd8h94j1fp44d"))))
2171 (build-system emacs-build-system)
2172 (propagated-inputs
2173 `(("dash" ,emacs-dash)
2174 ("with-editor" ,emacs-with-editor)))
2175 (home-page "https://github.com/wbolster/emacs-direnv")
2176 (synopsis "Direnv integration for Emacs")
2177 (description
2178 "This package provides support for invoking direnv to get the environment
2179 for the current file and updating the environment within Emacs to match.
2180
2181 Direnv can be invoked manually, and a global minor mode is included that will
2182 update the environment when the active buffer changes.
2183
2184 Using emacs-direnv means that programs started from Emacs will use the
2185 environment set through Direnv.")
2186 (license license:gpl3+)))
2187
2188 (define-public emacs-elf-mode
2189 (package
2190 (name "emacs-elf-mode")
2191 (version "0.1.0")
2192 (source
2193 (origin
2194 (method git-fetch)
2195 (uri
2196 (git-reference
2197 (url "https://github.com/abo-abo/elf-mode")
2198 (commit version)))
2199 (file-name (git-file-name name version))
2200 (sha256
2201 (base32 "0cbvjbk2893ag1iy8ggixpirfiyhssm7fii96hb9jqdz874cdl0k"))))
2202 (build-system emacs-build-system)
2203 (home-page "https://github.com/abo-abo/elf-mode")
2204 (synopsis "Show symbol list when opening a binary file in Emacs")
2205 (description "This Emacs package provides a command showing the symbols
2206 that the binary uses instead of the actual binary contents.")
2207 (license license:gpl3+)))
2208
2209 (define-public emacs-form-feed
2210 (package
2211 (name "emacs-form-feed")
2212 (version "0.2.2")
2213 (source
2214 (origin
2215 (method git-fetch)
2216 (uri (git-reference
2217 (url "https://github.com/wasamasa/form-feed")
2218 (commit version)))
2219 (file-name (git-file-name name version))
2220 (sha256
2221 (base32 "171jna631b2iqcimfsik9c66gii8nc0zdb58m077w00rn7rcxbh2"))))
2222 (build-system emacs-build-system)
2223 (home-page "https://github.com/wasamasa/form-feed")
2224 (synopsis "Display ^L glyphs as horizontal lines")
2225 (description
2226 "This package provides a minor mode @code{form-feed-mode} to display page
2227 delimiters which usually appear as ^L glyphs on a single line as horizontal
2228 lines spanning the entire window. The minor mode is suitable for inclusion
2229 into mode hooks and is intended to be used that way.")
2230 (license license:gpl3+)))
2231
2232 (define-public emacs-ggtags
2233 (package
2234 (name "emacs-ggtags")
2235 (version "0.8.13")
2236 (source
2237 (origin
2238 (method url-fetch)
2239 (uri (string-append "https://elpa.gnu.org/packages/ggtags-"
2240 version ".el"))
2241 (sha256
2242 (base32
2243 "1qa7lcrcmf76sf6dy8sxbg4adq7rg59fm0n5848w3qxgsr0h45fg"))))
2244 (build-system emacs-build-system)
2245 (inputs
2246 `(("global" ,global)))
2247 (arguments
2248 `(#:phases
2249 (modify-phases %standard-phases
2250 (add-after 'unpack 'configure
2251 (lambda* (#:key inputs #:allow-other-keys)
2252 (chmod "ggtags.el" #o644)
2253 (emacs-substitute-variables "ggtags.el"
2254 ("ggtags-executable-directory"
2255 (string-append (assoc-ref inputs "global") "/bin")))
2256 #t)))))
2257 (home-page "https://github.com/leoliu/ggtags")
2258 (synopsis "Frontend to the GNU Global source code tagging system")
2259 (description "@code{ggtags} provides a frontend to the GNU Global source
2260 code tagging system.
2261
2262 Features:
2263
2264 @itemize
2265 @item Build on @code{compile.el} for asynchronicity and its large feature-set.
2266 @item Automatically update Global's tag files when needed with tuning for
2267 large source trees.
2268 @item Intuitive navigation among multiple matches with mode-line display of
2269 current match, total matches and exit status.
2270 @item Read tag with completion.
2271 @item Show definition at point.
2272 @item Jump to #include files.
2273 @item Support search history and saving a search to register/bookmark.
2274 @item Query replace.
2275 @item Manage Global's environment variables on a per-project basis.
2276 @item Highlight (definition) tag at point.
2277 @item Abbreviated display of file names.
2278 @item Support all Global search backends: @code{grep}, @code{idutils}, etc.
2279 @item Support exuberant ctags @url{http://ctags.sourceforge.net/} and
2280 @code{pygments} backend.
2281 @item Support all Global's output formats: @code{grep}, @code{ctags-x},
2282 @code{cscope} etc.
2283 @item Support projects on remote hosts (e.g. via @code{tramp}).
2284 @item Support eldoc.
2285 @item Search @code{GTAGSLIBPATH} for references and symbols.
2286 @end itemize\n")
2287 (license license:gpl3+)))
2288
2289 (define-public emacs-go-mode
2290 (package
2291 (name "emacs-go-mode")
2292 (version "1.5.0")
2293 (source (origin
2294 (method git-fetch)
2295 (uri (git-reference
2296 (url "https://github.com/dominikh/go-mode.el")
2297 (commit (string-append "v" version))))
2298 (file-name (git-file-name name version))
2299 (sha256
2300 (base32
2301 "1nd2h50yb0493wvf1h7fzplq45rmqn2w7kxpgnlxzhkvq99v8vzf"))))
2302 (build-system emacs-build-system)
2303 (arguments
2304 `(#:phases
2305 (modify-phases %standard-phases
2306 (add-after 'unpack 'make-writable
2307 (lambda _
2308 (for-each make-file-writable (find-files "." "\\.el$"))
2309 #t)))))
2310 (home-page "https://github.com/dominikh/go-mode.el")
2311 (synopsis "Go mode for Emacs")
2312 (description
2313 "This package provides go-mode, an Emacs mode for working with software
2314 written in the Go programming language.")
2315 (license license:bsd-3)))
2316
2317 (define-public emacs-google-maps
2318 (package
2319 (name "emacs-google-maps")
2320 (version "1.0.0")
2321 (source (origin
2322 (method git-fetch)
2323 (uri (git-reference
2324 (url "https://github.com/jd/google-maps.el")
2325 (commit version)))
2326 (file-name (git-file-name name version))
2327 (sha256
2328 (base32
2329 "183igr5lp20zcqi7rc01fk76sfxdhksd74i11v16gdsifdkjimd0"))))
2330 (build-system emacs-build-system)
2331 (home-page "https://github.com/jd/google-maps.el")
2332 (synopsis "Access Google Maps from Emacs")
2333 (description "The @code{google-maps} package displays Google
2334 Maps directly inside Emacs.")
2335 (license license:gpl3+)))
2336
2337 (define-public emacs-graphviz-dot-mode
2338 (package
2339 (name "emacs-graphviz-dot-mode")
2340 (version "0.4.2")
2341 (source
2342 (origin
2343 (method git-fetch)
2344 (uri (git-reference
2345 (url "https://github.com/ppareit/graphviz-dot-mode")
2346 (commit (string-append "v" version))))
2347 (file-name (git-file-name name version))
2348 (sha256
2349 (base32 "1v1p85wk73nfsvv66qf90flgf9dqhmv15z1r7q4zmc4ifklqn08m"))))
2350 (build-system emacs-build-system)
2351 (arguments
2352 `(#:phases
2353 (modify-phases %standard-phases
2354 (add-before 'install 'make-info
2355 (lambda* (#:key inputs #:allow-other-keys)
2356 (with-directory-excursion "texinfo"
2357 (substitute* "Makefile"
2358 (("\\/usr\\/bin\\/gzip")
2359 (string-append (assoc-ref inputs "gzip") "/bin/gzip")))
2360 (invoke "make"
2361 "clean"
2362 "info"
2363 (string-append "TEXINFODIR="
2364 (assoc-ref inputs "texinfo")
2365 "/bin")))))
2366 (add-after 'install 'install-info
2367 (lambda* (#:key outputs #:allow-other-keys)
2368 (let* ((out (assoc-ref outputs "out"))
2369 (info (string-append out "/share/info")))
2370 (install-file "texinfo/graphviz-dot-mode.info.gz" info)
2371 #t))))))
2372 (native-inputs
2373 `(("gzip" ,gzip)
2374 ("texinfo" ,texinfo)))
2375 (propagated-inputs
2376 `(("emacs-company" ,emacs-company)))
2377 (home-page "http://ppareit.github.com/graphviz-dot-mode")
2378 (synopsis "Major mode for editing Graphviz DOT files")
2379 (description
2380 "This Emacs package helps you to create @file{.dot} or @file{.gv} files
2381 using the DOT syntax, and use Graphviz to convert these files to diagrams.")
2382 (license license:gpl2+)))
2383
2384 (define-public emacs-imenu-list
2385 (package
2386 (name "emacs-imenu-list")
2387 (version "0.8")
2388 (source
2389 (origin
2390 (method git-fetch)
2391 (uri
2392 (git-reference
2393 (url "https://github.com/bmag/imenu-list")
2394 (commit (string-append "v" version))))
2395 (file-name (git-file-name name version))
2396 (sha256
2397 (base32 "13xh9bdl3k6ccfq83wjmkpi4269qahv4davki4wq18dr4amrzhlx"))))
2398 (build-system emacs-build-system)
2399 (home-page "https://github.com/bmag/imenu-list")
2400 (synopsis
2401 "Automatically tracks the current buffer's imenu entries")
2402 (description
2403 "This Emacs minor mode creates an automatically updated buffer called
2404 @code{*Ilist*} that is populated with the current buffer's imenu entries.
2405 This buffer is typically shown as a sidebar (Emacs vertically splits the
2406 window).")
2407 (license license:gpl3+)))
2408
2409 (define-public emacs-mmm-mode
2410 (package
2411 (name "emacs-mmm-mode")
2412 (version "0.5.8")
2413 (source
2414 (origin
2415 (method url-fetch)
2416 (uri (string-append "https://elpa.gnu.org/packages/"
2417 "mmm-mode-" version ".tar"))
2418 (sha256
2419 (base32 "05ckf4zapdpvnd3sqpw6kxaa567zh536a36m9qzx3sqyjbyn5fb4"))))
2420 (build-system emacs-build-system)
2421 (home-page "https://github.com/purcell/mmm-mode")
2422 (synopsis "Allow multiple major modes in an Emacs buffer")
2423 (description
2424 "MMM Mode is a minor mode that allows multiple major modes to coexist in
2425 a single buffer.")
2426 (license license:gpl3+)))
2427
2428 (define-public emacs-mmt
2429 (package
2430 (name "emacs-mmt")
2431 (version "0.2.0")
2432 (source
2433 (origin
2434 (method git-fetch)
2435 (uri (git-reference
2436 (url "https://github.com/mrkkrp/mmt")
2437 (commit version)))
2438 (file-name (git-file-name name version))
2439 (sha256
2440 (base32 "13vbfc5597v0gd87qyhn10f93nb477vjpg3jlpphbax9fvkf4gav"))))
2441 (build-system emacs-build-system)
2442 (home-page "https://github.com/mrkkrp/mmt")
2443 (synopsis "Classic tools to write Emacs Lisp macros")
2444 (description "Emacs MMT is a package that contains classic tools for Emacs
2445 Lisp developers who want to write macros with convenience.")
2446 (license license:gpl3+)))
2447
2448 (define-public emacs-tablist
2449 (package
2450 (name "emacs-tablist")
2451 (version "1.0")
2452 (source (origin
2453 (method git-fetch)
2454 (uri (git-reference
2455 (url "https://github.com/politza/tablist")
2456 (commit (string-append "v" version))))
2457 (file-name (git-file-name name version))
2458 (sha256
2459 (base32
2460 "0pzsdg0rm59daw34ppss79cg05z9wnr8nkmdcc48nkd0p69ip2yy"))))
2461 (build-system emacs-build-system)
2462 (home-page "https://github.com/politza/tablist")
2463 (synopsis "Extension for @code{tabulated-list-mode}")
2464 (description "Tablist is the Emacs package that provides several
2465 additional features to @code{tabulated-list-mode}: it adds marks,
2466 filters, new key bindings and faces. It can be enabled by
2467 @code{tablist-mode} or @code{tablist-minor-mode} commands.")
2468 (license license:gpl3+)))
2469
2470 (define-public emacs-djvu
2471 (package
2472 (name "emacs-djvu")
2473 (version "1.1")
2474 (source
2475 (origin
2476 (method url-fetch)
2477 (uri (string-append "https://elpa.gnu.org/packages/"
2478 "djvu-" version ".el"))
2479 (sha256
2480 (base32 "0njgyx09q225hliacsnjk8wallg5i6xkz6bj501pb05nwqfbvfk7"))))
2481 (build-system emacs-build-system)
2482 (home-page "http://elpa.gnu.org/packages/djvu.html")
2483 (synopsis "Edit and view Djvu files via djvused")
2484 (description
2485 "This package is a front end for the command-line program djvused from
2486 DjVuLibre, see @url{http://djvu.sourceforge.net/}. It assumes you have the
2487 programs @command{djvused}, @command{djview}, @command{ddjvu}, and
2488 @command{djvm} installed.")
2489 (license license:gpl3+)))
2490
2491 (define-public emacs-pabbrev
2492 (package
2493 (name "emacs-pabbrev")
2494 (version "4.2.1")
2495 (source
2496 (origin
2497 (method url-fetch)
2498 (uri (string-append "https://elpa.gnu.org/packages/"
2499 "pabbrev-" version ".el"))
2500 (sha256
2501 (base32 "19v5adk61y8fpigw7k6wz6dj79jwr450hnbi7fj0jvb21cvjmfxh"))))
2502 (build-system emacs-build-system)
2503 (home-page "http://elpa.gnu.org/packages/pabbrev.html")
2504 (synopsis "Predictive abbreviation expansion")
2505 (description
2506 "The code provides a abbreviation expansion for Emacs. It is
2507 fairly similar to Dabbrev expansion, which works based on the contents
2508 of the current buffer (or other buffers).
2509
2510 Predictive abbreviation expansion works based on the previously
2511 written text. Unlike dynamic abbreviation, the text is analysed
2512 during idle time, while Emacs is doing nothing else.")
2513 (license license:gpl3+)))
2514
2515 (define-public emacs-pdf-tools
2516 ;; XXX: Development branch fixes an incompatibility with Emacs 27+. See
2517 ;; <https://github.com/politza/pdf-tools/issues/616>.
2518 (let ((commit "c510442ab89c8a9e9881230eeb364f4663f59e76")
2519 (revision "1"))
2520 (package
2521 (name "emacs-pdf-tools")
2522 (version (git-version "0.90" revision commit))
2523 (source
2524 (origin
2525 (method git-fetch)
2526 (uri (git-reference
2527 (url "https://github.com/politza/pdf-tools")
2528 (commit commit)))
2529 (file-name (git-file-name name version))
2530 (sha256
2531 (base32 "17z3cpn76g9dp62drjrgrqpp1bgf4gl5k5gspylskpvd4kj4bq4d"))))
2532 (build-system gnu-build-system)
2533 (arguments
2534 `(#:tests? #f ; there are no tests
2535 #:modules ((guix build gnu-build-system)
2536 ((guix build emacs-build-system) #:prefix emacs:)
2537 (guix build utils)
2538 (guix build emacs-utils))
2539 #:imported-modules (,@%gnu-build-system-modules
2540 (guix build emacs-build-system)
2541 (guix build emacs-utils))
2542 #:phases
2543 (modify-phases %standard-phases
2544 ;; Build server side using 'gnu-build-system'.
2545 (add-after 'unpack 'enter-server-dir
2546 (lambda _ (chdir "server") #t))
2547 (add-after 'enter-server-dir 'autogen
2548 (lambda _
2549 (invoke "bash" "autogen.sh")))
2550
2551 ;; Build emacs side using 'emacs-build-system'.
2552 (add-after 'compress-documentation 'enter-lisp-dir
2553 (lambda _ (chdir "../lisp") #t))
2554 (add-after 'enter-lisp-dir 'emacs-patch-variables
2555 (lambda* (#:key outputs #:allow-other-keys)
2556 (for-each make-file-writable (find-files "."))
2557
2558 ;; Set path to epdfinfo program.
2559 (emacs-substitute-variables "pdf-info.el"
2560 ("pdf-info-epdfinfo-program"
2561 (string-append (assoc-ref outputs "out")
2562 "/bin/epdfinfo")))
2563 ;; Set 'pdf-tools-handle-upgrades' to nil to avoid "auto
2564 ;; upgrading" that pdf-tools tries to perform.
2565 (emacs-substitute-variables "pdf-tools.el"
2566 ("pdf-tools-handle-upgrades" '()))))
2567 (add-after 'emacs-patch-variables 'emacs-add-source-to-load-path
2568 (assoc-ref emacs:%standard-phases 'add-source-to-load-path))
2569 (add-after 'emacs-add-source-to-load-path 'emacs-install
2570 (assoc-ref emacs:%standard-phases 'install))
2571 (add-after 'emacs-install 'emacs-build
2572 (assoc-ref emacs:%standard-phases 'build))
2573 (add-after 'emacs-install 'emacs-make-autoloads
2574 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
2575 (native-inputs
2576 `(("autoconf" ,autoconf)
2577 ("automake" ,automake)
2578 ("pkg-config" ,pkg-config)
2579 ("emacs" ,emacs-minimal)))
2580 (inputs
2581 `(("poppler" ,poppler)
2582 ("cairo" ,cairo)
2583 ("glib" ,glib)
2584 ("libpng" ,libpng)
2585 ("zlib" ,zlib)))
2586 (propagated-inputs
2587 `(("tablist" ,emacs-tablist)))
2588 (home-page "https://github.com/politza/pdf-tools")
2589 (synopsis "Emacs support library for PDF files")
2590 (description
2591 "PDF Tools is, among other things, a replacement of DocView for PDF
2592 files. The key difference is that pages are not pre-rendered by
2593 e.g. ghostscript and stored in the file-system, but rather created on-demand
2594 and stored in memory.")
2595 (license license:gpl3+))))
2596
2597 (define-public emacs-dash
2598 (package
2599 (name "emacs-dash")
2600 (version "2.17.0")
2601 (source (origin
2602 (method git-fetch)
2603 (uri (git-reference
2604 (url "https://github.com/magnars/dash.el")
2605 (commit version)))
2606 (file-name (git-file-name name version))
2607 (sha256
2608 (base32
2609 "153f55dqkhs8w2xlf6b88wp5vlkap7h8vjd9wxh4jp2ram5g4l1n"))))
2610 (build-system emacs-build-system)
2611 (arguments
2612 `(#:tests? #t
2613 #:test-command '("./run-tests.sh")))
2614 (home-page "https://github.com/magnars/dash.el")
2615 (synopsis "Modern list library for Emacs")
2616 (description "This package provides a modern list API library for Emacs.")
2617 (license license:gpl3+)))
2618
2619 (define-public emacs-bui
2620 (package
2621 (name "emacs-bui")
2622 (version "1.2.1")
2623 (source (origin
2624 (method git-fetch)
2625 (uri (git-reference
2626 (url "https://notabug.org/alezost/emacs-bui.git")
2627 (commit (string-append "v" version))))
2628 (file-name (git-file-name name version))
2629 (sha256
2630 (base32
2631 "0sszdl4kvqbihdh8d7mybpp0d8yw2p3gyiipjcxz9xhvvmw3ww4x"))))
2632 (build-system emacs-build-system)
2633 (propagated-inputs
2634 `(("dash" ,emacs-dash)))
2635 (home-page "https://notabug.org/alezost/emacs-bui")
2636 (synopsis "Buffer interface library for Emacs")
2637 (description
2638 "BUI (Buffer User Interface) is a library for making @code{list} and
2639 @code{info} interfaces to display an arbitrary data of the same
2640 type, for example: packages, buffers, files, etc.")
2641 (license license:gpl3+)))
2642
2643 (define-public emacs-guix
2644 (let ((commit "58a840d0671091e3064e36244790ef8839da87d6")
2645 (revision "2"))
2646 (package
2647 (name "emacs-guix")
2648 (version (git-version "0.5.2" revision commit))
2649 (source (origin
2650 (method git-fetch)
2651 (uri (git-reference
2652 (url "https://gitlab.com/emacs-guix/emacs-guix")
2653 (commit commit)))
2654 (file-name (git-file-name name version))
2655 (sha256
2656 (base32
2657 "1qnr5sixmvrhr9rinrhfy7sy20mikjvvwbdixwkbx30qpcdwgwj1"))))
2658 (build-system gnu-build-system)
2659 (native-inputs
2660 `(("autoconf" ,autoconf)
2661 ("automake" ,automake)
2662 ("pkg-config" ,pkg-config)
2663 ("texinfo" ,texinfo)
2664 ("emacs" ,emacs-minimal)))
2665 (inputs
2666 `(("guile" ,@(assoc-ref (package-native-inputs guix) "guile"))
2667 ("guix" ,guix)))
2668 (propagated-inputs
2669 `(("geiser" ,emacs-geiser)
2670 ("guile-gcrypt" ,guile-gcrypt)
2671 ("dash" ,emacs-dash)
2672 ("bui" ,emacs-bui)
2673 ("edit-indirect" ,emacs-edit-indirect)
2674 ("magit-popup" ,emacs-magit-popup)))
2675 (home-page "https://emacs-guix.gitlab.io/website/")
2676 (synopsis "Emacs interface for GNU Guix")
2677 (description
2678 "Emacs-Guix provides a visual interface, tools and features for the GNU
2679 Guix package manager. Particularly, it allows you to do various package
2680 management tasks from Emacs. To begin with, run @code{M-x guix-about} or
2681 @code{M-x guix-help} command.")
2682 (license license:gpl3+))))
2683
2684 (define-public emacs-build-farm
2685 (package
2686 (name "emacs-build-farm")
2687 (version "0.2.2")
2688 (source (origin
2689 (method git-fetch)
2690 (uri (git-reference
2691 (url "https://notabug.org/alezost/emacs-build-farm.git")
2692 (commit (string-append "v" version))))
2693 (file-name (git-file-name name version))
2694 (sha256
2695 (base32
2696 "0i0bwbav5861j2y15j9nd5m9rdqg9q97zgcbld8pivr9nyxy63lz"))))
2697 (build-system emacs-build-system)
2698 (propagated-inputs
2699 `(("bui" ,emacs-bui)
2700 ("magit-popup" ,emacs-magit-popup)))
2701 (home-page "https://notabug.org/alezost/emacs-build-farm")
2702 (synopsis "Emacs interface for Hydra and Cuirass build farms")
2703 (description
2704 "This Emacs package provides an interface for Hydra and
2705 Cuirass (build farms used by Nix and Guix). It allows you to look at
2706 various data related to the build farm projects, jobsets, builds and
2707 evaluations. The entry point is @code{M-x build-farm} command.")
2708 (license license:gpl3+)))
2709
2710 (define-public emacs-d-mode
2711 (package
2712 (name "emacs-d-mode")
2713 (version "2.0.10")
2714 (source
2715 (origin
2716 (method git-fetch)
2717 (uri (git-reference
2718 (url "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode")
2719 (commit version)))
2720 (file-name (git-file-name name version))
2721 (sha256
2722 (base32 "0915kb9jcaixgindhj85fmykkhvj31ckp1yg6746fznwdgfrlifv"))))
2723 (build-system emacs-build-system)
2724 (propagated-inputs
2725 `(("emacs-undercover" ,emacs-undercover)))
2726 (home-page "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode")
2727 (synopsis "Emacs major mode for editing D code")
2728 (description "This package provides an Emacs major mode for highlighting
2729 code written in the D programming language. This mode is currently known to
2730 work with Emacs 24 and 25.")
2731 (license license:gpl2+)))
2732
2733 (define-public emacs-extempore-mode
2734 ;; Use the latest commit at time of packaging. There are no releases or tags.
2735 (let ((commit "09518ae6650d7be33a4633a4c0f31b7130d04c6e")
2736 (revision "1"))
2737 (package
2738 (name "emacs-extempore-mode")
2739 (version (git-version "0.0.0" revision commit))
2740 (source
2741 (origin
2742 (method git-fetch)
2743 (uri (git-reference
2744 (url "https://github.com/extemporelang/extempore-emacs-mode")
2745 (commit commit)))
2746 (file-name (git-file-name name version))
2747 (sha256
2748 (base32 "0hfza9lzdsz94gxhmzyp9fwviscv19rmnjgd0q613faayn11sjsp"))))
2749 (build-system emacs-build-system)
2750 (home-page "https://github.com/extemporelang/extempore-emacs-mode")
2751 (synopsis "Emacs major mode for Extempore source files")
2752 (description
2753 "This package provides a major mode for editing Extempore code. It can
2754 create an Extempore REPL, connect the current @code{extempore-mode} buffer to a
2755 running Extempore process, and more.")
2756 (license license:bsd-2))))
2757
2758 (define-public emacs-kakoune
2759 ;; Package has no release. Version is extracted from "Version:" keyword in
2760 ;; main file.
2761 (let ((commit "d73d14e69ea38076af50cc69f846808383ff539d")
2762 (revision "0"))
2763 (package
2764 (name "emacs-kakoune")
2765 (version (git-version "0.1" revision commit))
2766 (source
2767 (origin
2768 (method git-fetch)
2769 (uri (git-reference
2770 (url "https://github.com/jmorag/kakoune.el")
2771 (commit commit)))
2772 (file-name (git-file-name name version))
2773 (sha256
2774 (base32 "0nk6jdy1y5mc3ryd0smiqghrk6iv34d5grc7f7migmshlbq0np92"))))
2775 (build-system emacs-build-system)
2776 (propagated-inputs
2777 `(("emacs-expand-region" ,emacs-expand-region)
2778 ("emacs-multiple-cursors" ,emacs-multiple-cursors)
2779 ("emacs-ryo-modal" ,emacs-ryo-modal)))
2780 (home-page "https://github.com/jmorag/kakoune.el")
2781 (synopsis "Emacs simple simulation, but not emulation, of Kakoune")
2782 (description "This package provides many, but not all of the editing
2783 primitives in the Kakoune editor. Unlike Evil mode for Vim, this is a very
2784 shallow emulation, which seeks to do as little work as possible, leveraging
2785 Emacs native editing commmands and the work of other packages wherever
2786 possible.")
2787 (license license:expat))))
2788
2789 (define-public emacs-kana
2790 ;; Package has no release. Version is extracted from "Version:" keyword in
2791 ;; main file.
2792 (let ((commit "b239c3c3c6124b46ff720cca7b80ecbafd7fa489")
2793 (revision "0"))
2794 (package
2795 (name "emacs-kana")
2796 (version (git-version "1.0.0" revision commit))
2797 (source
2798 (origin
2799 (method git-fetch)
2800 (uri (git-reference
2801 (url "https://github.com/chenyanming/kana")
2802 (commit commit)))
2803 (file-name (git-file-name name version))
2804 (sha256
2805 (base32 "0vrrl1kniq4h111jvnapvx3wybvsl3alfaygw634mmryr3h7pwi8"))))
2806 (build-system emacs-build-system)
2807 (home-page "https://github.com/chenyanming/kana")
2808 (synopsis "Learn Japanese Kana in Emacs")
2809 (description
2810 "This Emacs mode displays Hiragana and Katakana flashcards. It can use
2811 functionality from Emacs Kanji mode if it is installed.")
2812 (license license:gpl3+))))
2813
2814 (define-public emacs-kanji
2815 ;; Package has no release. Version is extracted from "Version:" keyword in
2816 ;; main file.
2817 (let ((commit "5e9d5b72468ece11cfb81b729be6babf63ede425")
2818 (revision "0"))
2819 (package
2820 (name "emacs-kanji")
2821 (version (git-version "1.0" revision commit))
2822 (source
2823 (origin
2824 (method git-fetch)
2825 (uri (git-reference
2826 (url "https://github.com/wsgac/kanji-mode")
2827 (commit commit)))
2828 (file-name (git-file-name name version))
2829 (sha256
2830 (base32 "1zh7klqaza840q5f44zzh1wrnd6sqa2k93z3dgx3yhhsxfd1dxvy"))))
2831 (build-system emacs-build-system)
2832 (home-page "https://github.com/wsgac/kanji-mode")
2833 (synopsis "Emacs minor mode for displaying Japanese Kanji stroke order")
2834 (description
2835 "This minor mode displays the stroke order of the Kanji sign under
2836 cursor in a transient buffer. It has a built-in collection of SVG images
2837 depicting stroke orders for all Kanji. The collection is a slightly modified
2838 and limited version of the images provided by the KanjiVG project.")
2839 (license license:gpl3+))))
2840
2841 (define-public emacs-keyfreq
2842 (package
2843 (name "emacs-keyfreq")
2844 (version "20160516.716")
2845 (source
2846 (origin
2847 (method url-fetch)
2848 (uri (string-append "http://melpa.org/packages/keyfreq-"
2849 version ".el"))
2850 (sha256
2851 (base32
2852 "008hd7d06qskc3mx0bbdgpgy2pwxr8185fzlyqf9qjg49y74p6g8"))))
2853 (build-system emacs-build-system)
2854 (home-page "https://github.com/dacap/keyfreq")
2855 (synopsis "Track Emacs command frequencies")
2856 (description "@code{emacs-keyfeq} tracks and shows how many times you used
2857 a command.")
2858 (license license:gpl3+)))
2859
2860 (define-public emacs-olivetti
2861 (package
2862 (name "emacs-olivetti")
2863 (version "1.8.1")
2864 (source (origin
2865 (method git-fetch)
2866 (uri (git-reference
2867 (url "https://github.com/rnkn/olivetti")
2868 (commit (string-append "v" version))))
2869 (file-name (git-file-name name version))
2870 (sha256
2871 (base32
2872 "1fbj9s49y5yx5i429awv9rybacfgvhwp7v5h0zw67bpgx4qs44pa"))))
2873 (build-system emacs-build-system)
2874 (home-page "https://github.com/rnkn/olivetti")
2875 (synopsis "Emacs minor mode for a nice writing environment")
2876 (description "This package provides an Emacs minor mode that puts writing
2877 in the center.")
2878 (license license:gpl3+)))
2879
2880 (define-public emacs-undo-tree
2881 (package
2882 (name "emacs-undo-tree")
2883 (version "0.7.5")
2884 (source
2885 (origin
2886 (method url-fetch)
2887 (uri (string-append "https://elpa.gnu.org/packages/"
2888 "undo-tree-" version ".el"))
2889 (sha256
2890 (base32 "00admi87gqm0akhfqm4dcp9fw8ihpygy030955jswkha4zs7lw2p"))))
2891 (build-system emacs-build-system)
2892 (home-page "http://www.dr-qubit.org/emacs.php")
2893 (synopsis "Treat undo history as a tree")
2894 (description
2895 "Tree-like interface to Emacs undo system, providing
2896 graphical tree presentation of all previous states of buffer that
2897 allows easily move between them.")
2898 (license license:gpl3+)))
2899
2900 (define-public emacs-s
2901 (package
2902 (name "emacs-s")
2903 (version "1.12.0")
2904 (source
2905 (origin
2906 (method git-fetch)
2907 (uri (git-reference
2908 (url "https://github.com/magnars/s.el")
2909 (commit version)))
2910 (file-name (git-file-name name version))
2911 (sha256
2912 (base32 "1g8mqd13llj007al4nlxxx4z2lcsg3wk970mgjn0avwrhjjgdmmv"))))
2913 (build-system emacs-build-system)
2914 (arguments
2915 `(#:tests? #t
2916 #:emacs ,emacs ; FIXME: tests fail with emacs-minimal
2917 #:test-command '("./run-tests.sh")))
2918 (home-page "https://github.com/magnars/s.el")
2919 (synopsis "Emacs string manipulation library")
2920 (description "This package provides an Emacs library for manipulating
2921 strings.")
2922 (license license:gpl3+)))
2923
2924 (define-public emacs-symon
2925 (package
2926 (name "emacs-symon")
2927 (version "20160630")
2928 (source
2929 (origin
2930 (method git-fetch)
2931 (uri (git-reference
2932 (url "https://github.com/zk-phi/symon")
2933 (commit version)))
2934 (file-name (git-file-name name version))
2935 (sha256
2936 (base32 "1q7di9s8k710nx98wnqnbkkhdimrn0jf6z4xkm4c78l6s5idjwlz"))))
2937 (build-system emacs-build-system)
2938 (home-page "https://github.com/zk-phi/symon")
2939 (synopsis "Tiny graphical system monitor")
2940 (description
2941 "Tiny graphical system monitor for the Emacs minibuffer when idle.")
2942 (license license:gpl2+)))
2943
2944 (define-public emacs-sx
2945 (let ((version "20191229")
2946 (revision "0")
2947 (commit "e9d1093c97507a6d7b4f4710ef65200dae725e5f"))
2948 (package
2949 (name "emacs-sx")
2950 (version (git-version version revision commit))
2951 (source
2952 (origin
2953 (method git-fetch)
2954 (uri (git-reference
2955 (url "https://github.com/vermiculus/sx.el")
2956 (commit commit)))
2957 (file-name (git-file-name name version))
2958 (sha256
2959 (base32 "0m90ddwm8j0y6d1ppqhd2gil1107k202blw6mzm5bdambn4nfqkf"))))
2960 (build-system emacs-build-system)
2961 (propagated-inputs
2962 `(("emacs-markdown-mode" ,emacs-markdown-mode)))
2963 (home-page "https://github.com/vermiculus/sx.el")
2964 (synopsis "Emacs StackExchange client")
2965 (description
2966 "Emacs StackExchange client. Ask and answer questions on
2967 Stack Overflow, Super User, and other StackExchange sites.")
2968 (license license:gpl3+))))
2969
2970 (define-public emacs-toml-mode
2971 (let ((version "0.1.3")
2972 (revision "0")
2973 (commit "f6c61817b00f9c4a3cab1bae9c309e0fc45cdd06"))
2974 (package
2975 (name "emacs-toml-mode")
2976 (version (git-version version revision commit))
2977 (source
2978 (origin
2979 (method git-fetch)
2980 (uri (git-reference
2981 (url "https://github.com/dryman/toml-mode.el")
2982 (commit commit)))
2983 (file-name (git-file-name name version))
2984 (sha256
2985 (base32 "05b4ksay85c8y5ncax0qsvnmplwsfiw24z16a58gkarjz938hb57"))))
2986 (build-system emacs-build-system)
2987 (home-page "https://github.com/dryman/toml-mode.el")
2988 (synopsis "Emacs major mode for editing TOML files")
2989 (description
2990 ;; XXX: Ideally we'd use @acronym for "TOML", but Guile's Texinfo
2991 ;; parser does not currently support @comma{}, making it impossible
2992 ;; to use commas in the @acronym arguments.
2993 "This package provides a major mode for editing files in @dfn{TOML}
2994 (Tom's Obvious, Minimal Language) data format.")
2995 (license license:gpl3+))))
2996
2997 (define-public emacs-twittering-mode
2998 (package
2999 (name "emacs-twittering-mode")
3000 (version "3.1.0")
3001 (source
3002 (origin
3003 (method url-fetch)
3004 (uri (string-append "mirror://sourceforge/twmode"
3005 "/twittering-mode-" version
3006 "/twittering-mode-" version ".tar.xz"))
3007 (sha256
3008 (base32 "02imis1gxz90lah0b5n37j2hlsaw5igss11d85vpsm5d1bgw8j28"))))
3009 (build-system emacs-build-system)
3010 (home-page "http://twmode.sourceforge.net")
3011 (synopsis "Emacs major mode for Twitter")
3012 (description
3013 "Twittering mode is an Emacs major mode for Twitter.
3014 You can check timelines, tweet, mark posts as favorites and so on with
3015 Emacs.")
3016 (license license:gpl2+)))
3017
3018 (define-public emacs-f
3019 (package
3020 (name "emacs-f")
3021 (version "0.20.0")
3022 (source (origin
3023 (method git-fetch)
3024 (uri (git-reference
3025 (url "https://github.com/rejeep/f.el")
3026 (commit (string-append "v" version))))
3027 (file-name (git-file-name name version))
3028 (sha256
3029 (base32
3030 "1a47xk3yp1rp17fqg7ldl3d3fb888h0fz3sysqfdz1bfdgs8a9bk"))))
3031 (build-system emacs-build-system)
3032 (propagated-inputs
3033 `(("emacs-s" ,emacs-s)
3034 ("emacs-dash" ,emacs-dash)))
3035 (home-page "https://github.com/rejeep/f.el")
3036 (synopsis "Emacs API for working with files and directories")
3037 (description "This package provides an Emacs library for working with
3038 files and directories.")
3039 (license license:gpl3+)))
3040
3041 (define-public emacs-fountain-mode
3042 (package
3043 (name "emacs-fountain-mode")
3044 (version "3.2.2")
3045 (source
3046 (origin
3047 (method git-fetch)
3048 (uri (git-reference
3049 (url "https://github.com/rnkn/fountain-mode")
3050 (commit (string-append "v" version))))
3051 (file-name (git-file-name name version))
3052 (sha256
3053 (base32 "0rwdwbw9cq8ljvbmgmz9izank8dqjki79l1bw127lli69fs72gyi"))))
3054 (build-system emacs-build-system)
3055 (home-page "https://github.com/rnkn/fountain-mode")
3056 (synopsis "Major mode for screenwriting in Fountain markup")
3057 (description "Fountain Mode is a scriptwriting program for GNU Emacs
3058 using the Fountain plain text markup format.")
3059 (license license:gpl3+)))
3060
3061 (define-public emacs-fringe-helper
3062 (let ((commit "ef4a9c023bae18ec1ddd7265f1f2d6d2e775efdd")
3063 (revision "1"))
3064 (package
3065 (name "emacs-fringe-helper")
3066 (version (git-version "1.0.1" revision commit))
3067 (source
3068 (origin
3069 (method git-fetch)
3070 (uri (git-reference
3071 (url "https://github.com/nschum/fringe-helper.el")
3072 (commit commit)))
3073 (file-name (git-file-name name version))
3074 (sha256
3075 (base32 "0ra9rc53l1gvkqank8apasl3r7wz2yfjrcvmfk3wpxhh24ppxv9d"))))
3076 (build-system emacs-build-system)
3077 (arguments
3078 `(#:tests? #t
3079 #:test-command '("emacs" "--batch"
3080 "-l" "tests.el"
3081 "-f" "ert-run-tests-batch-and-exit")))
3082 (home-page "https://github.com/nschum/fringe-helper.el")
3083 (synopsis "Helper functions for fringe bitmaps")
3084 (description
3085 "This package allows fringe bitmaps to be defined with a visual string
3086 representation.")
3087 (license license:gpl2+))))
3088
3089 (define-public emacs-git-gutter
3090 (package
3091 (name "emacs-git-gutter")
3092 (version "0.90")
3093 (source
3094 (origin
3095 (method git-fetch)
3096 (uri (git-reference
3097 (url "https://github.com/syohex/emacs-git-gutter")
3098 (commit version)))
3099 (file-name (git-file-name name version))
3100 (sha256
3101 (base32 "1abagq0psip7cgsqbfjv72qy60ywsny0ibsfcn74ldj6a9v17mz5"))))
3102 (build-system emacs-build-system)
3103 (home-page "https://github.com/syohex/emacs-git-gutter")
3104 (synopsis "See and manage hunks of text in a version control system")
3105 (description
3106 "This package is an Emacs minor mode for displaying and interacting with
3107 hunks of text managed in a version control system. Added modified and deleted
3108 areas can be indicated with symbols on the edge of the buffer, and commands
3109 can be used to move between and perform actions on these hunks.
3110
3111 Git, Mercurial, Subversion and Bazaar are supported, and many parts of the
3112 display and behaviour is easily customisable.")
3113 (license license:gpl3+)))
3114
3115 (define-public emacs-git-gutter-fringe
3116 (let ((commit "16226caab44174301f1659f7bf8cc67a76153445")
3117 (revision "1"))
3118 (package
3119 (name "emacs-git-gutter-fringe")
3120 (version (git-version "0.23" revision commit))
3121 (source
3122 (origin
3123 (method git-fetch)
3124 (uri (git-reference
3125 (url "https://github.com/syohex/git-gutter-fringe")
3126 (commit commit)))
3127 (file-name (git-file-name name version))
3128 (sha256
3129 (base32 "1y77gjl0yznamdj0f55d418zb75k22izisjg7ikvrfsl2yfqf3pm"))))
3130 (build-system emacs-build-system)
3131 (propagated-inputs
3132 `(("emacs-git-gutter" ,emacs-git-gutter)
3133 ("emacs-fringe-helper" ,emacs-fringe-helper)))
3134 (home-page "https://github.com/syohex/git-gutter-fringe")
3135 (synopsis "See and manage hunks of text in a version control system")
3136 (description
3137 "This package extends @code{git-gutter} to use the fringe area of a
3138 window.")
3139 (license license:gpl3+))))
3140
3141 (define-public emacs-git-link
3142 (package
3143 (name "emacs-git-link")
3144 (version "0.7.5")
3145 (source
3146 (origin
3147 (method git-fetch)
3148 (uri (git-reference
3149 (url "https://github.com/sshaw/git-link")
3150 (commit (string-append "v" version))))
3151 (file-name (git-file-name name version))
3152 (sha256
3153 (base32 "04xa6lp8wkjb6zs096bf4sz124grcjj15xv1h009bmn2j95rggj6"))))
3154 (build-system emacs-build-system)
3155 (arguments
3156 `(#:tests? #t
3157 #:test-command '("make" "test")))
3158 (home-page "https://github.com/sshaw/git-link")
3159 (synopsis "Create links for files and commits in GitHub/GitLab/etc. repos")
3160 (description
3161 "@code{git-link} returns the URL for the current buffer's file location
3162 at the current line number or active region. @code{git-link-commit} returns
3163 the URL for a commit. URLs are added to the kill ring.")
3164 (license license:gpl3+)))
3165
3166 (define-public emacs-apheleia
3167 (package
3168 (name "emacs-apheleia")
3169 (version "1.0")
3170 (source
3171 (origin
3172 (method git-fetch)
3173 (uri (git-reference
3174 (url "https://github.com/raxod502/apheleia")
3175 (commit (string-append "v" version))))
3176 (file-name (git-file-name name version))
3177 (sha256
3178 (base32 "04pls7zahy4jfkikv6fvd9vfpm4glhyanmmkx79hgi9pwdv966rf"))))
3179 (build-system emacs-build-system)
3180 (home-page "https://github.com/raxod502/apheleia")
3181 (synopsis "Reformat buffer stably")
3182 (description
3183 "This package allows for a buffer to be reformatted without moving point,
3184 so that running a formatting tool like @code{Prettier} or @code{Black} upon
3185 saving won't move point back to the beginning of the buffer.")
3186 (license license:gpl3+)))
3187
3188 (define-public emacs-git-timemachine
3189 (package
3190 (name "emacs-git-timemachine")
3191 (version "4.11")
3192 (source
3193 (origin
3194 (method git-fetch)
3195 (uri (git-reference
3196 (url "https://gitlab.com/pidu/git-timemachine.git")
3197 (commit version)))
3198 (file-name (git-file-name name version))
3199 (sha256
3200 (base32
3201 "1pz4l1xnq6s67w5yq9107vm8dg7rqf8n9dmbn90jys97c722g70n"))))
3202 (build-system emacs-build-system)
3203 (propagated-inputs
3204 `(("emacs-transient" ,emacs-transient)))
3205 (home-page "https://gitlab.com/pidu/git-timemachine")
3206 (synopsis "Step through historic versions of Git-controlled files")
3207 (description "This package enables you to step through historic versions
3208 of files under Git version control from within Emacs.")
3209 (license license:gpl3+)))
3210
3211 (define-public emacs-minitest
3212 (let ((commit "1aadb7865c1dc69c201cecee275751ecec33a182")
3213 (revision "1"))
3214 (package
3215 (name "emacs-minitest")
3216 (version (git-version "0.8.0" revision commit))
3217 (source (origin
3218 (method git-fetch)
3219 (uri (git-reference
3220 (url "https://github.com/arthurnn/minitest-emacs")
3221 (commit commit)))
3222 (file-name (git-file-name name commit))
3223 (sha256
3224 (base32
3225 "1l18zqpdzbnqj2qawq8hj7z7pl8hr8z9d8ihy8jaiqma915hmhj1"))))
3226 (build-system emacs-build-system)
3227 (arguments
3228 '(#:include (cons "^snippets\\/minitest-mode\\/" %default-include)
3229 #:exclude (delete "^[^/]*tests?\\.el$" %default-exclude)))
3230 (propagated-inputs
3231 `(("emacs-dash" ,emacs-dash)
3232 ("emacs-f" ,emacs-f)))
3233 (home-page "https://github.com/arthurnn/minitest-emacs")
3234 (synopsis "Emacs minitest mode")
3235 (description
3236 "The minitest mode provides commands to run the tests for the current
3237 file or line, as well as rerunning the previous tests, or all the tests for a
3238 project.
3239
3240 This package also includes relevant snippets for yasnippet.")
3241 (license license:expat))))
3242
3243 (define-public emacs-gdscript-mode
3244 (package
3245 (name "emacs-gdscript-mode")
3246 (version "1.2.0")
3247 (source
3248 (origin
3249 (method git-fetch)
3250 (uri (git-reference
3251 (url "https://github.com/godotengine/emacs-gdscript-mode")
3252 (commit (string-append "v" version))))
3253 (file-name (git-file-name name version))
3254 (sha256
3255 (base32 "02by4bvdayldbjlz6jkp36m5rgcy2h5bwhqx2cj7wma6xf6cw3lf"))))
3256 (build-system emacs-build-system)
3257 (home-page "https://github.com/godotengine/emacs-gdscript-mode")
3258 (synopsis "GDScript support and syntax highlighting in Emacs")
3259 (description
3260 "This package adds support for the GDScript programming language from the
3261 Godot game engine in Emacs. It features all the essentials, e.g., syntax
3262 highlighting, code folding, indentation, automatic pairing, auto-completion,
3263 and code formatting.")
3264 (license license:gpl3+)))
3265
3266 (define-public emacs-el-mock
3267 (package
3268 (name "emacs-el-mock")
3269 (version "1.25.1")
3270 (source
3271 (origin
3272 (method git-fetch)
3273 (uri (git-reference
3274 (url "https://github.com/rejeep/el-mock.el")
3275 (commit (string-append "v" version))))
3276 (file-name (git-file-name name version))
3277 (sha256
3278 (base32 "13mv1rhgkwiww2wh5w926jz7idppp492wir1vdl245c5x50dh4f7"))))
3279 (build-system emacs-build-system)
3280 (home-page "https://github.com/rejeep/el-mock.el")
3281 (synopsis "Tiny mock and stub framework in Emacs Lisp")
3282 (description
3283 "Emacs Lisp Mock is a library for mocking and stubbing using readable
3284 syntax. Most commonly Emacs Lisp Mock is used in conjunction with Emacs Lisp
3285 Expectations, but it can be used in other contexts.")
3286 (license license:gpl3+)))
3287
3288 (define-public emacs-espuds
3289 (package
3290 (name "emacs-espuds")
3291 (version "0.3.3")
3292 (source
3293 (origin
3294 (method git-fetch)
3295 (uri (git-reference
3296 (url "https://github.com/ecukes/espuds")
3297 (commit (string-append "v" version))))
3298 (file-name (git-file-name name version))
3299 (sha256
3300 (base32 "16r4j27j9yfdiy841w9q5ykkc6n3wrm7hvfacagb32mydk821ijg"))))
3301 (build-system emacs-build-system)
3302 (propagated-inputs
3303 `(("emacs-s" ,emacs-s)
3304 ("emacs-dash" ,emacs-dash)
3305 ("emacs-f" ,emacs-f)))
3306 (home-page "https://github.com/ecukes/espuds")
3307 (synopsis "Common step definitions for Ecukes")
3308 (description "Espuds is a collection of the most commonly used step
3309 definitions for testing with the Ecukes framework.")
3310 (license license:gpl3+)))
3311
3312 (define-public emacs-spark
3313 (let ((version "20160503") ; no proper tag, use date of commit
3314 (commit "0bf148c3ede3b31d56fd75f347cdd0b0eae60025")
3315 (revision "1"))
3316 (package
3317 (name "emacs-spark")
3318 (version (git-version version revision commit))
3319 (source
3320 (origin
3321 (method git-fetch)
3322 (uri (git-reference
3323 (url "https://github.com/alvinfrancis/spark")
3324 (commit commit)))
3325 (file-name (git-file-name name version))
3326 (sha256
3327 (base32
3328 "1ykqr86j17mi95s08d9fp02d7ych1331b04dcqxzxnmpkhwngyj1"))))
3329 (build-system emacs-build-system)
3330 (home-page "https://github.com/alvinfrancis/spark")
3331 (synopsis "Sparkline generation library for Emacs Lisp")
3332 (description "@code{emacs-spark} is a sparkline generation library for
3333 Emacs Lisp. It generates a sparkline string given a list of numbers. It is a
3334 port of @code{cl-spark} to Emacs Lisp.")
3335 (license license:expat))))
3336
3337 (define-public emacs-es-mode
3338 (package
3339 (name "emacs-es-mode")
3340 (version "4.3.0")
3341 (source
3342 (origin
3343 (method git-fetch)
3344 (uri (git-reference
3345 (url "https://github.com/dakrone/es-mode")
3346 (commit version)))
3347 (file-name (git-file-name name version))
3348 (sha256
3349 (base32 "1qhfnd5anp5qrmravv7ks5ix763xnki2f5jwcyj70qyxwr0l60cg"))))
3350 (build-system emacs-build-system)
3351 (propagated-inputs
3352 ;; The version of org in Emacs 24.5 is not sufficient, and causes tables
3353 ;; to be rendered incorrectly
3354 `(("emacs-dash" ,emacs-dash)
3355 ("emacs-org" ,emacs-org)
3356 ("emacs-spark" ,emacs-spark)))
3357 (home-page "https://github.com/dakrone/es-mode")
3358 (synopsis "Major mode for editing Elasticsearch queries")
3359 (description "@code{es-mode} includes highlighting, completion and
3360 indentation support for Elasticsearch queries. Also supported are
3361 @code{es-mode} blocks in @code{org-mode}, for which the results of queries can
3362 be processed through @code{jq}, or in the case of aggregations, can be
3363 rendered in to a table. In addition, there is an @code{es-command-center}
3364 mode, which displays information about Elasticsearch clusters.")
3365 (license license:gpl3+)))
3366
3367 (define-public emacs-expand-region
3368 (package
3369 (name "emacs-expand-region")
3370 (version "0.11.0")
3371 (source
3372 (origin
3373 (method git-fetch)
3374 (uri (git-reference
3375 (url "https://github.com/magnars/expand-region.el")
3376 (commit version)))
3377 (file-name (git-file-name name version))
3378 (sha256
3379 (base32 "0h40dhc3kn8fq86xnwi5lz7ql8my8737y7wkqr897p15y90swr35"))))
3380 (build-system emacs-build-system)
3381 (home-page "https://github.com/magnars/expand-region.el")
3382 (synopsis "Increase selected region by semantic units")
3383 (description
3384 "Expand region increases the selected region by semantic units. Just
3385 keep pressing the key until it selects what you want. There's also
3386 @code{er/contract-region} if you expand too far.")
3387 (license license:gpl3+)))
3388
3389 (define-public emacs-explain-pause-mode
3390 (let ((commit "2356c8c3639cbeeb9751744dbe737267849b4b51")
3391 (revision "0"))
3392 (package
3393 (name "emacs-explain-pause-mode")
3394 (version (git-version "0.1" revision commit))
3395 (source (origin
3396 (method git-fetch)
3397 (uri (git-reference
3398 (url "https://github.com/lastquestion/explain-pause-mode")
3399 (commit commit)))
3400 (file-name (git-file-name name version))
3401 (sha256
3402 (base32
3403 "0frnfwqal9mrnrz6q4v7vcai26ahaw81894arff1yjw372pfgv7v"))))
3404 (build-system emacs-build-system)
3405 (native-inputs
3406 `(("emacs" ,emacs-buttercup)))
3407 (arguments
3408 '(#:tests? #t
3409 ;; Don't run case-tests as they will fail to create sockets because
3410 ;; the path is too long
3411 #:test-command '("make" "byte-compile" "unit-tests")
3412 ;; Parallel testing will cause the tests to run before
3413 ;; byte-compilation is finished
3414 #:parallel-tests? #f))
3415 (home-page "https://github.com/lastquestion/explain-pause-mode")
3416 (synopsis "Top-like interface to determine why Emacs paused")
3417 (description
3418 "This package monitors Emacs function calls and records their execution
3419 time. This information can be reviewed to determine what is causing the user
3420 interface to pause.")
3421 (license license:gpl3+))))
3422
3423 (define-public emacs-fill-column-indicator
3424 (package
3425 (name "emacs-fill-column-indicator")
3426 (version "1.90")
3427 (source
3428 (origin
3429 (method git-fetch)
3430 (uri (git-reference
3431 (url "https://github.com/alpaker/Fill-Column-Indicator")
3432 (commit version)))
3433 (file-name (git-file-name name version))
3434 (sha256
3435 (base32 "0snjznxdwwfdgccdcvrnk467416r244r2r5qcm2sga8l0ha9gw9z"))))
3436 (build-system emacs-build-system)
3437 (home-page "https://www.emacswiki.org/emacs/FillColumnIndicator")
3438 (synopsis "Graphically indicate the fill column")
3439 (description
3440 "Fill-column-indicator graphically indicates the location of the fill
3441 column by drawing a thin line down the length of the editing window.")
3442 (license license:gpl3+)))
3443
3444 (define-public emacs-grep-a-lot
3445 (package
3446 (name "emacs-grep-a-lot")
3447 (version "1.0.7")
3448 (source
3449 (origin
3450 (method git-fetch)
3451 (uri (git-reference
3452 (url "https://github.com/ZungBang/emacs-grep-a-lot")
3453 (commit "9f9f645b9e308a0d887b66864ff97d0fca1ba4ad")))
3454 (file-name (git-file-name name version))
3455 (sha256
3456 (base32 "1f8262mrlinzgnn4m49hbj1hm3c1mvzza24py4b37sasn49546lw"))))
3457 (build-system emacs-build-system)
3458 (home-page "https://github.com/ZungBang/emacs-grep-a-lot")
3459 (synopsis "Enables multiple grep buffers in Emacs")
3460 (description
3461 "This Emacs package allows managing multiple grep buffers.")
3462 (license license:gpl3+)))
3463
3464 (define-public emacs-fd
3465 (package
3466 (name "emacs-fd")
3467 (version "0.1.0")
3468 (source (origin
3469 (method git-fetch)
3470 (uri (git-reference
3471 (url "https://github.com/yqrashawn/fd-dired")
3472 (commit version)))
3473 (file-name (git-file-name name version))
3474 (sha256
3475 (base32
3476 "1fas0fpvym2lyzybwm44gly9jz6a2fpp72yxnwfbqqjkfgk9910y"))))
3477 (build-system emacs-build-system)
3478 (home-page "https://github.com/yqrashawn/fd-dired")
3479 (synopsis "Dired-mode interface for fd result")
3480 (description "This package provides a dired-mode interface for fd's
3481 result.")
3482 (license license:gpl3+)))
3483
3484 (define-public emacs-rg
3485 (package
3486 (name "emacs-rg")
3487 (version "1.8.1")
3488 (source
3489 (origin
3490 (method git-fetch)
3491 (uri (git-reference
3492 (url "https://github.com/dajva/rg.el")
3493 (commit version)))
3494 (file-name (git-file-name name version))
3495 (sha256
3496 (base32 "0k7x5z7mh9flwih35cqy8chs54rack3nswdcpw5wcpgv6xim227y"))))
3497 (build-system emacs-build-system)
3498 (arguments
3499 '(#:phases
3500 (modify-phases %standard-phases
3501 (add-after 'unpack 'hardcode-rg-path
3502 ;; Hardcode the path to ripgrep.
3503 (lambda _
3504 (let ((file "rg.el"))
3505 (chmod file #o644)
3506 (emacs-substitute-sexps file
3507 ("(defcustom rg-executable" (which "rg")))))))))
3508 (propagated-inputs
3509 `(("emacs-s" ,emacs-s)
3510 ("emacs-wgrep" ,emacs-wgrep)))
3511 (inputs
3512 `(("ripgrep" ,ripgrep)))
3513 (home-page "https://rgel.readthedocs.io/en/latest/")
3514 (synopsis "Search tool based on @code{ripgrep}")
3515 (description
3516 "@code{rg} is an Emacs search package based on the @code{ripgrep} command
3517 line tool. It allows one to interactively search based on the editing context
3518 then refine or modify the search results.")
3519 (license license:gpl3+)))
3520
3521 (define-public emacs-inf-ruby
3522 (package
3523 (name "emacs-inf-ruby")
3524 (version "2.5.2")
3525 (source
3526 (origin
3527 (method git-fetch)
3528 (uri (git-reference
3529 (url "https://github.com/nonsequitur/inf-ruby")
3530 (commit version)))
3531 (file-name (git-file-name name version))
3532 (sha256
3533 (base32 "0a1hhvfbl6mq8rjsi77fg9fh5a91hi5scjrg9rjqc5ffbql67y0v"))))
3534 (build-system emacs-build-system)
3535 (home-page "https://github.com/nonsequitur/inf-ruby")
3536 (synopsis "Provides a REPL buffer connected to a Ruby subprocess in Emacs")
3537 (description
3538 "@code{inf-ruby} provides a Read Eval Print Loop (REPL) buffer, allowing
3539 for easy interaction with a ruby subprocess. Features include support for
3540 detecting specific uses of Ruby, e.g. when using rails, and using a
3541 appropriate console.")
3542 (license license:gpl3+)))
3543
3544 (define-public emacs-znc
3545 (package
3546 (name "emacs-znc")
3547 (version "0.0.2")
3548 (source
3549 (origin
3550 (method url-fetch)
3551 (uri (string-append "https://marmalade-repo.org/packages/znc-"
3552 version ".el"))
3553 (sha256
3554 (base32
3555 "1d8lqvybgyazin5z0g1c4l3rg1vzrrvf0saqs53jr1zcdg0lianh"))))
3556 (build-system emacs-build-system)
3557 (home-page "https://github.com/sshirokov/ZNC.el")
3558 (synopsis "Make ERC and ZNC get along better")
3559 (description
3560 "This is a thin wrapper around @code{erc} that enables one to use the ZNC
3561 IRC bouncer with ERC.")
3562 (license license:expat)))
3563
3564 (define-public emacs-erc-status-sidebar
3565 (let ((commit "ea4189a1dbfe60117359c36e681ad7c389e2968c")
3566 (revision "1"))
3567 (package
3568 (name "emacs-erc-status-sidebar")
3569 (version (git-version "0.1" revision commit))
3570 (source
3571 (origin
3572 (method git-fetch)
3573 (uri (git-reference
3574 (url "https://github.com/drewbarbs/erc-status-sidebar")
3575 (commit commit)))
3576 (file-name (git-file-name name version))
3577 (sha256
3578 (base32 "1hwlhzgx03z8891sblz56zdp8zj0izh72kxykgcnz5rrkyc3vfi3"))))
3579 (build-system emacs-build-system)
3580 (home-page "https://github.com/drewbarbs/erc-status-sidebar")
3581 (synopsis "Hexchat-like activity overview for ERC channels")
3582 (description
3583 "This package provides a Hexchat-like status bar for joined channels in
3584 ERC, an Emacs client for IRC (Internet Relay Chat). It relies on the
3585 @code{erc-track} module, and displays all the same information
3586 @code{erc-track} does in the mode line, but in an alternative format.")
3587 (license license:expat))))
3588
3589 (define-public emacs-shut-up
3590 (package
3591 (name "emacs-shut-up")
3592 (version "0.3.2")
3593 (source
3594 (origin
3595 (method git-fetch)
3596 (uri (git-reference
3597 (url "https://github.com/cask/shut-up")
3598 (commit (string-append "v" version))))
3599 (file-name (git-file-name name version))
3600 (sha256
3601 (base32 "103yvfgkj78i4bnv1fwk76izsa8h4wyj3vwj1vq7xggj607hkxzq"))))
3602 (build-system emacs-build-system)
3603 (home-page "https://github.com/cask/shut-up")
3604 (synopsis "Silence Emacs")
3605 (description "This package silences most output of Emacs when running an
3606 Emacs shell script.")
3607 (license license:expat)))
3608
3609 (define-public emacs-undercover
3610 (package
3611 (name "emacs-undercover")
3612 (version "0.6.1")
3613 (source
3614 (origin
3615 (method git-fetch)
3616 (uri (git-reference
3617 (url "https://github.com/sviridov/undercover.el")
3618 (commit version)))
3619 (file-name (git-file-name name version))
3620 (sha256
3621 (base32 "080bmfwyfi8663y8x594770hqz7mff7zvj2v03qdfwbhdr9w9y29"))))
3622 (build-system emacs-build-system)
3623 (propagated-inputs
3624 `(("emacs-dash" ,emacs-dash)
3625 ("emacs-shut-up" ,emacs-shut-up)))
3626 (home-page "https://github.com/sviridov/undercover.el")
3627 (synopsis "Test coverage library for Emacs Lisp")
3628 (description
3629 "Undercover is a test coverage library for software written in Emacs
3630 Lisp.")
3631 (license license:expat)))
3632
3633 (define-public emacs-paren-face
3634 (package
3635 (name "emacs-paren-face")
3636 (version "1.0.6")
3637 (source
3638 (origin
3639 (method git-fetch)
3640 (uri (git-reference
3641 (url "https://github.com/tarsius/paren-face")
3642 (commit version)))
3643 (file-name (git-file-name name version))
3644 (sha256
3645 (base32 "17bdcxah216z928387yx6z9lmp4jsi461n8fwiqaibn2qy5fagas"))))
3646 (build-system emacs-build-system)
3647 (home-page "https://github.com/tarsius/paren-face")
3648 (synopsis "Face for parentheses in Lisp modes")
3649 (description
3650 "This library defines a face named @code{parenthesis} used just for
3651 parentheses. The intended purpose of this face is to make parentheses less
3652 visible in Lisp code by dimming them. Lispers probably don't need to be
3653 constantly made aware of the existence of the parentheses. Dimming them might
3654 be even more useful for people new to Lisp who have not yet learned to
3655 subconsciously blend out the parentheses.")
3656 (license license:gpl3+)))
3657
3658 (define-public emacs-page-break-lines
3659 (package
3660 (name "emacs-page-break-lines")
3661 (version "0.11")
3662 (source
3663 (origin
3664 (method git-fetch)
3665 (uri (git-reference
3666 (url "https://github.com/purcell/page-break-lines")
3667 (commit version)))
3668 (file-name (git-file-name name version))
3669 (sha256
3670 (base32 "1wp974716ih2cz9kdmdz7xwjy1qnnfzdzlfr9kchknagw8d9nn12"))))
3671 (build-system emacs-build-system)
3672 (home-page "https://github.com/purcell/page-break-lines")
3673 (synopsis "Display page breaks as tidy horizontal lines")
3674 (description
3675 "This library provides a global mode which displays form feed characters
3676 as horizontal rules.")
3677 (license license:gpl3+)))
3678
3679 (define-public emacs-simple-httpd
3680 (package
3681 (name "emacs-simple-httpd")
3682 (version "1.5.1")
3683 (source
3684 (origin
3685 (method git-fetch)
3686 (uri (git-reference
3687 (url "https://github.com/skeeto/emacs-web-server")
3688 (commit version)))
3689 (file-name (git-file-name name version))
3690 (sha256
3691 (base32 "0dpn92rg813c4pq7a1vzj3znyxzp2lmvxqz6pzcqi0l2xn5r3wvb"))))
3692 (build-system emacs-build-system)
3693 (home-page "https://github.com/skeeto/emacs-web-server")
3694 (synopsis "HTTP server in pure Emacs Lisp")
3695 (description
3696 "This package provides a simple HTTP server written in Emacs Lisp to
3697 serve files and directory listings.")
3698 (license license:unlicense)))
3699
3700 (define-public emacs-skewer-mode
3701 (package
3702 (name "emacs-skewer-mode")
3703 (version "1.8.0")
3704 (source
3705 (origin
3706 (method git-fetch)
3707 (uri (git-reference
3708 (url "https://github.com/skeeto/skewer-mode")
3709 (commit version)))
3710 (file-name (git-file-name name version))
3711 (sha256
3712 (base32 "1ha7jl7776pk1bki5zj2q0jy66450mn8xr3aqjc0m9kj3gc9qxgw"))))
3713 (build-system emacs-build-system)
3714 (propagated-inputs
3715 `(("emacs-simple-httpd" ,emacs-simple-httpd)
3716 ("emacs-js2-mode" ,emacs-js2-mode)))
3717 (arguments '(#:include '("\\.el$" "\\.js$" "\\.html$")))
3718 (home-page "https://github.com/skeeto/skewer-mode")
3719 (synopsis "Live web development in Emacs")
3720 (description
3721 "Skewer-mode provides live interaction with JavaScript, CSS, and HTML in
3722 a web browser. Expressions are sent on-the-fly from an editing buffer to be
3723 evaluated in the browser, just like Emacs does with an inferior Lisp process
3724 in Lisp modes.")
3725 (license license:unlicense)))
3726
3727 (define-public emacs-litable
3728 (let ((commit "b0278f3f8dcff424bfbdfdefb545b1fbff33206f"))
3729 (package
3730 (name "emacs-litable")
3731 (version (git-version "0.1" "0" commit))
3732 (source (origin
3733 (method git-fetch)
3734 (uri (git-reference
3735 (url "https://github.com/Fuco1/litable")
3736 (commit commit)))
3737 (file-name (git-file-name name version))
3738 (sha256
3739 (base32
3740 "0bny40hv9a024n01clxns351cs4j4ifhgcc7m4743xncqf612p7g"))))
3741 (build-system emacs-build-system)
3742 (propagated-inputs
3743 `(("emacs-dash" ,emacs-dash)))
3744 (home-page "https://github.com/Fuco1/litable/")
3745 (synopsis "Dynamic evaluation replacement with Emacs")
3746 (description "This package provides dynamic evaluation in Emacs.")
3747 (license license:gpl3+))))
3748
3749 (define-public emacs-literate-calc-mode
3750 (let ((commit "e855bd718fa7d0d70b8f43264e10664369dd3a37")
3751 (revision "0"))
3752 (package
3753 (name "emacs-literate-calc-mode")
3754 (version (git-version "0.1" revision commit))
3755 (source
3756 (origin
3757 (method git-fetch)
3758 (uri (git-reference
3759 (url "https://github.com/sulami/literate-calc-mode.el")
3760 (commit commit)))
3761 (file-name (git-file-name name version))
3762 (sha256
3763 (base32 "0mk4cig8g8ibz97mvyan79fkypyanh7r0h7h20ibafq09nb0mw01"))))
3764 (build-system emacs-build-system)
3765 (propagated-inputs
3766 `(("emacs-s" ,emacs-s)))
3767 (home-page "https://github.com/sulami/literate-calc-mode.el")
3768 (synopsis "Literate programming for Emacs Calc")
3769 (description
3770 "This library provides literate programming for Calc. There is both
3771 a major and a minor mode. The major mode does some basic syntax highlighting,
3772 while the minor mode only evaluates all Calc statements while typing. In
3773 particular, the minor mode works quite well with Org or Markdown modes, or
3774 other markup language major modes.")
3775 (license license:gpl3+))))
3776
3777 (define-public emacs-string-inflection
3778 (package
3779 (name "emacs-string-inflection")
3780 (version "1.0.6")
3781 (source (origin
3782 (method git-fetch)
3783 (uri (git-reference
3784 (url "https://github.com/akicho8/string-inflection")
3785 (commit "a150e7bdda60b7824d3a936750ce23f73b0e4edd")))
3786 (file-name (git-file-name name version))
3787 (sha256
3788 (base32
3789 "1k0sm552iawi49v4zis6dbb81d1rzgky9v0dpv7nj31gnb7bmy7k"))))
3790 (build-system emacs-build-system)
3791 (native-inputs
3792 `(("ert-runner" ,emacs-ert-runner)))
3793 (arguments
3794 `(#:tests? #t
3795 #:test-command '("ert-runner")))
3796 (home-page "https://github.com/akicho8/string-inflection")
3797 (synopsis "Convert symbol names between different naming conventions")
3798 (description
3799 "This Emacs package provides convenient methods for manipulating the
3800 naming style of a symbol. It supports different naming conventions such as:
3801
3802 @enumerate
3803 @item camel case
3804 @item Pascal case
3805 @item all upper case
3806 @item lower case separated by underscore
3807 @item etc...
3808 @end enumerate\n")
3809 (license license:gpl2+)))
3810
3811 (define-public emacs-stripe-buffer
3812 (package
3813 (name "emacs-stripe-buffer")
3814 (version "0.2.5")
3815 (source
3816 (origin
3817 (method git-fetch)
3818 (uri (git-reference
3819 (url "https://github.com/sabof/stripe-buffer")
3820 (commit version)))
3821 (file-name (git-file-name name version))
3822 (sha256
3823 (base32 "035ym1c1vzg6hjsnd258z4dkrfc11lj4c0y4gpgybhk54dq3w9dk"))))
3824 (build-system emacs-build-system)
3825 (home-page "https://github.com/sabof/stripe-buffer/")
3826 (synopsis "Add stripes to list buffers")
3827 (description
3828 "This Emacs package adds faces to add stripes to list buffers and org
3829 tables.")
3830 (license license:gpl2+)))
3831
3832 (define-public emacs-org-beautify-theme
3833 ;; Latest release (0.4) is not tagged, use commit hash.
3834 (let ((commit "df6a1114fda313e1689363e196c8284fbe2a2738")
3835 (revision "0"))
3836 (package
3837 (name "emacs-org-beautify-theme")
3838 (version "0.4")
3839 (source
3840 (origin
3841 (method git-fetch)
3842 (uri (git-reference
3843 (url "https://github.com/jonnay/org-beautify-theme")
3844 (commit commit)))
3845 (file-name (git-file-name name version))
3846 (sha256
3847 (base32 "1lkz7736swimad12khwbbqc4gxjydgr1k45p4mx03s25pv1w920y"))))
3848 (build-system emacs-build-system)
3849 (home-page "https://github.com/jonnay/org-beautify-theme")
3850 (synopsis "Theme to make Org mode look more beautiful")
3851 (description
3852 "The theme adds padding between headings, increases the size of titles,
3853 strike through completed TODO headings, changes Org blocks, changes Org check
3854 boxes, and more.")
3855 (license license:gpl3+))))
3856
3857 (define-public emacs-org-rich-yank
3858 (package
3859 (name "emacs-org-rich-yank")
3860 (version "0.2.1")
3861 (source
3862 (origin
3863 (method git-fetch)
3864 (uri (git-reference
3865 (url "https://github.com/unhammer/org-rich-yank")
3866 (commit (string-append "v" version))))
3867 (file-name (git-file-name name version))
3868 (sha256
3869 (base32 "0gxb0fnh5gxjmld0hnk5hli0cvdd8gjd27m30bk2b80kwldxlq1z"))))
3870 (build-system emacs-build-system)
3871 (home-page "https://github.com/unhammer/org-rich-yank")
3872 (synopsis "Automatically surround source code pasted into Org with
3873 @code{#+BEGIN_SRC} blocks")
3874 (description
3875 "This package provides a utility function for Org buffers that makes a
3876 @code{_SRC} block with the appropriate language annotation for code that has
3877 been copied from an Emacs major mode.")
3878 (license license:gpl2+)))
3879
3880 (define-public emacs-ob-erlang
3881 (let ((revision "1")
3882 (commit "f1a8c665b8f7d0ab32267a9961de8eed872e6333"))
3883 (package
3884 (name "emacs-ob-erlang")
3885 (version (git-version "20180827" revision commit))
3886 (source (origin
3887 (method git-fetch)
3888 (uri (git-reference
3889 (url "https://github.com/xfwduke/ob-erlang")
3890 (commit commit)))
3891 (file-name (git-file-name name version))
3892 (sha256
3893 (base32
3894 "0b5zajqiy6955yvlqwy92prrqy89lqchsv4ss2ylws3p4s14rhij"))))
3895 (build-system emacs-build-system)
3896 (home-page "https://github.com/xfwduke/ob-erlang/")
3897 (synopsis "Org-babel support for Erlang")
3898 (description "This package adds support for working with Erlang code
3899 blocks with @code{org-babel} in @code{org-mode}.")
3900 (license license:gpl3+))))
3901
3902 (define-public emacs-ob-restclient
3903 (let ((commit "f7449b2068498fe9d8ab9589e0a638148861533f"))
3904 (package
3905 (name "emacs-ob-restclient")
3906 (version (git-version "0.02" "2" commit))
3907 (source
3908 (origin
3909 (method git-fetch)
3910 (uri (git-reference
3911 (url "https://github.com/alf/ob-restclient.el")
3912 (commit commit)))
3913 (file-name (git-file-name name version))
3914 (sha256
3915 (base32 "0s3931w9ab3yfml2pmq71rw21yf6hpg7m3vihxyy3vs6zli1cvmq"))))
3916 (propagated-inputs
3917 `(("emacs-restclient" ,emacs-restclient)))
3918 (build-system emacs-build-system)
3919 (home-page "https://github.com/alf/ob-restclient.el")
3920 (synopsis "Org-babel functionality for @code{restclient-mode}")
3921 (description
3922 "This package integrates @code{restclient-mode} with Org.")
3923 (license license:gpl3+))))
3924
3925 (define-public emacs-org-now
3926 (let ((commit "8f6b277a73f1c66e58ccb4b7f40d406851befc91"))
3927 (package
3928 (name "emacs-org-now")
3929 (version (git-version "0.1-pre" "1" commit))
3930 (source
3931 (origin
3932 (method git-fetch)
3933 (uri (git-reference
3934 (url "https://github.com/alphapapa/org-now")
3935 (commit commit)))
3936 (file-name (git-file-name name version))
3937 (sha256
3938 (base32 "117zzkryznznk6h4i1jqzdn888nl019xrgxm2gza0lndx8dxsg2c"))))
3939 (propagated-inputs
3940 `(("emacs-dash" ,emacs-dash)))
3941 (build-system emacs-build-system)
3942 (home-page "https://github.com/alphapapa/org-now")
3943 (synopsis "Show current Org tasks in a sidebar")
3944 (description
3945 "This package provides commands to show Org headings in a sidebar
3946 window while working on them. After defining one heading as the \"now\"
3947 heading, other headings can be refiled to it with one command, and back to
3948 their original location with another.")
3949 (license license:gpl3+))))
3950
3951 (define-public emacs-rich-minority
3952 (package
3953 (name "emacs-rich-minority")
3954 (version "1.0.3")
3955 (source
3956 (origin
3957 (method git-fetch)
3958 (uri (git-reference
3959 (url "https://github.com/Malabarba/rich-minority")
3960 (commit version)))
3961 (file-name (git-file-name name version))
3962 (sha256
3963 (base32
3964 "1kn7c9qr9ykj68iqffzzmjsr6aazwac8cxb7j960sjb282rq0yyj"))))
3965 (build-system emacs-build-system)
3966 (home-page "https://github.com/Malabarba/rich-minority")
3967 (synopsis "Clean-up and beautify the list of minor modes")
3968 (description
3969 "This Emacs package hides and/or highlights minor modes in the
3970 mode-line.")
3971 (license license:gpl2+)))
3972
3973 (define-public emacs-robe
3974 (package
3975 (name "emacs-robe")
3976 (version "0.8.2")
3977 (source
3978 (origin
3979 (method git-fetch)
3980 (uri (git-reference
3981 (url "https://github.com/dgutov/robe")
3982 (commit version)))
3983 (file-name (git-file-name name version))
3984 (sha256
3985 (base32 "0qw18wi54yg971n4wnjqkd8lqj5lbs9ra8bvmngif2bzhqlfdsbn"))))
3986 (build-system emacs-build-system)
3987 (arguments
3988 '(#:include (cons "^lib\\/" %default-include)))
3989 (propagated-inputs
3990 `(("emacs-inf-ruby" ,emacs-inf-ruby)))
3991 (home-page "https://github.com/dgutov/robe")
3992 (synopsis "Ruby code assistance tool for Emacs")
3993 (description
3994 "Robe can provide information on loaded classes and modules in Ruby code,
3995 as well as where methods are defined. This allows the user to jump to method
3996 definitions, modules and classes, display method documentation and provide
3997 method and constant name completion.")
3998 (license license:gpl3+)))
3999
4000 (define-public emacs-robot-mode
4001 (let ((commit "32846e7e80ae3471b7c07f9709dcaa4f9b9ed4a0")
4002 (revision "1"))
4003 (package
4004 (name "emacs-robot-mode")
4005 (version (git-version "0.0.0" revision commit))
4006 (source (origin
4007 (method git-fetch)
4008 (uri (git-reference
4009 ;; A better maintained fork of robot-mode.
4010 (url "https://github.com/jvalkeejarvi/robot-mode")
4011 (commit commit)))
4012 (file-name (git-file-name name version))
4013 (sha256
4014 (base32
4015 "1i8wf7m0gml8zvvmlgppjzv78b432686p1qdbzgclc7qfcvzag0d"))))
4016 (build-system emacs-build-system)
4017 (propagated-inputs `(("emacs-s" ,emacs-s)))
4018 (home-page "https://github.com/jvalkeejarvi/robot-mode")
4019 (synopsis "Emacs mode for Robot Framework")
4020 (description "This major mode facilitates editing Robot Framework source
4021 files with features such as syntax highlighting, comments, finding keywords,
4022 completing keywords and smart indentation.")
4023 (license license:gpl3+))))
4024
4025 (define-public emacs-rspec
4026 (let ((commit "66ea7cc9699d6edc6115daa024818adbd85efc20")
4027 (revision "1"))
4028 (package
4029 (name "emacs-rspec")
4030 (version (git-version "1.11" revision commit))
4031 (source
4032 (origin
4033 (method git-fetch)
4034 (uri (git-reference
4035 (url "https://github.com/pezra/rspec-mode")
4036 (commit commit)))
4037 (file-name (git-file-name name version))
4038 (sha256
4039 (base32 "0b11s8r0pi7ah54km4yg4fqff8wkk409d25qnlwm1l94pdwjd1c8"))))
4040 (build-system emacs-build-system)
4041 (arguments
4042 `(#:include (cons "^snippets\\/rspec-mode\\/" %default-include)
4043 #:tests? #t
4044 #:test-command '("make" "test")))
4045 (home-page "https://github.com/pezra/rspec-mode")
4046 (synopsis "Provides a rspec mode for working with RSpec")
4047 (description
4048 "The Emacs RSpec mode provides keybindings for Ruby source files, e.g. to
4049 verify the spec associated with the current buffer, or entire project, as well
4050 as moving between the spec files, and corresponding code files.
4051
4052 Also included are keybindings for spec files and Dired buffers, as well as
4053 snippets for yasnippet.")
4054 (license license:gpl3+))))
4055
4056 (define-public emacs-smart-mode-line
4057 (package
4058 (name "emacs-smart-mode-line")
4059 (version "2.13")
4060 (source
4061 (origin
4062 (method git-fetch)
4063 (uri (git-reference
4064 (url "https://github.com/Malabarba/smart-mode-line")
4065 (commit version)))
4066 (file-name (git-file-name name version))
4067 (sha256
4068 (base32 "164b697xm1rwcggv37dymhf3npbyh2bs59z8b6m5x35lb4c3lf8b"))))
4069 (build-system emacs-build-system)
4070 (propagated-inputs
4071 `(("emacs-rich-minority" ,emacs-rich-minority)))
4072 (home-page "https://github.com/Malabarba/smart-mode-line")
4073 (synopsis "Color-coded smart mode-line")
4074 (description
4075 "Smart Mode Line is a mode-line theme for Emacs. It aims to be easy to
4076 read from small to large monitors by using colors, a prefix feature, and smart
4077 truncation.")
4078 (license license:gpl2+)))
4079
4080 (define-public emacs-sr-speedbar
4081 (let ((commit "77a83fb50f763a465c021eca7343243f465b4a47")
4082 (revision "0"))
4083 (package
4084 (name "emacs-sr-speedbar")
4085 (version (git-version "20161025" revision commit))
4086 (source
4087 (origin
4088 (method git-fetch)
4089 (uri (git-reference
4090 (url "https://github.com/emacsorphanage/sr-speedbar")
4091 (commit commit)))
4092 (file-name (git-file-name name version))
4093 (sha256
4094 (base32
4095 "0sd12555hk7z721y00kv3crdybvcn1i08wmd148z5imayzibj153"))))
4096 (build-system emacs-build-system)
4097 (home-page "https://www.emacswiki.org/emacs/SrSpeedbar")
4098 (synopsis "Same frame Emacs @code{speedbar}")
4099 (description
4100 "This Emacs package allows you to show @code{M-x speedbar} in the
4101 same frame (in an extra window). You can customize the initial width of
4102 the speedbar window.")
4103 (license license:gpl3+))))
4104
4105 (define-public emacs-shell-switcher
4106 (package
4107 (name "emacs-shell-switcher")
4108 (version "1.0.1")
4109 (source
4110 (origin
4111 (method git-fetch)
4112 (uri (git-reference
4113 (url "https://github.com/DamienCassou/shell-switcher")
4114 (commit (string-append "v" version))))
4115 (file-name (git-file-name name version))
4116 (sha256
4117 (base32 "0ia7sdip4hl27avckv3qpqgm3k4ynvp3xxq1cy53bqfzzx0gcria"))))
4118 (build-system emacs-build-system)
4119 (home-page "https://github.com/DamienCassou/shell-switcher")
4120 (synopsis "Provide fast switching between shell buffers")
4121 (description
4122 "This package provides commands to quickly switch between shell buffers.")
4123 (license license:gpl3+)))
4124
4125 (define-public emacs-shx
4126 (package
4127 (name "emacs-shx")
4128 (version "1.4.0")
4129 (source (origin
4130 (method git-fetch)
4131 (uri (git-reference
4132 (url "https://github.com/riscy/shx-for-emacs")
4133 (commit (string-append "v" version))))
4134 (file-name (git-file-name name version))
4135 (sha256
4136 (base32 "0p9b621rgy34r1hl9xfzxh4xpx9gpsr3n330ypfxhlr0s5754j73"))))
4137 (build-system emacs-build-system)
4138 (arguments
4139 `(#:phases
4140 (modify-phases %standard-phases
4141 ;; A docstring provides examples of mapping hosts to programs in /bin.
4142 ;; These examples are valid as-is.
4143 (delete 'patch-el-files))
4144 #:tests? #t
4145 #:test-command
4146 '("emacs" "--batch" "--quiet"
4147 "--script" "test/script.el")))
4148 (home-page "https://github.com/riscy/shx-for-emacs")
4149 (synopsis "Extras for the comint-mode shell")
4150 (description
4151 "This package extends @code{comint-mode}: it parses markup in the output
4152 stream, enabling plots and graphics to be embedded, and adds command-line
4153 functions which plug into Emacs (e.g. use @code{:e <filename>} to edit a
4154 file).")
4155 (license license:gpl3+)))
4156
4157 (define-public emacs-names
4158 (let ((commit "d8baba5360e5253938a25d3e005455b6d2d86971")
4159 (version "20151201.0")
4160 (revision "8"))
4161 (package
4162 (name "emacs-names")
4163 (version (git-version version revision commit))
4164 (source
4165 (origin
4166 (method git-fetch)
4167 (uri (git-reference
4168 (url "https://github.com/Malabarba/names")
4169 (commit commit)))
4170 (file-name (git-file-name name version))
4171 (sha256
4172 (base32
4173 "11wyha2q8y7bzqq3jrzix8n97ywvsibvddrahqcps1a1yqk4hzfz"))))
4174 (build-system emacs-build-system)
4175 (home-page "https://github.com/Malabarba/names/")
4176 (synopsis "Namespace implementation for Emacs Lisp")
4177 (description
4178 "This package provides a macro that writes your namespaces for you.")
4179 (license license:gpl3+))))
4180
4181 (define-public emacs-evil-leader
4182 (package
4183 (name "emacs-evil-leader")
4184 (version "0.4.3")
4185 (source
4186 (origin
4187 (method git-fetch)
4188 (uri
4189 (git-reference
4190 (url "https://github.com/cofi/evil-leader")
4191 (commit version)))
4192 (file-name (git-file-name name version))
4193 (sha256
4194 (base32 "1k2zinchs0jjllp8zkpggckyy63dkyi5yig3p46vh4w45jdzysk5"))))
4195 (inputs
4196 `(("emacs-evil" ,emacs-evil)))
4197 (build-system emacs-build-system)
4198 (home-page "https://github.com/cofi/evil-leader")
4199 (synopsis "Implement <leader> feature from Vim")
4200 (description
4201 "Evil Leader provides the @code{<leader>} feature from Vim that provides
4202 an easy way to bind keys under a configurable prefix key.")
4203 (license license:gpl3+)))
4204
4205 (define-public emacs-evil-textobj-syntax
4206 (let ((commit "2d9ba8c75c754b409aea7469f46a5cfa52a872f3")
4207 (version "0")
4208 (revision "1"))
4209 (package
4210 (name "emacs-evil-textobj-syntax")
4211 (version (git-version version revision commit))
4212 (source
4213 (origin
4214 (method git-fetch)
4215 (uri (git-reference
4216 (url "https://github.com/laishulu/evil-textobj-syntax/")
4217 (commit commit)))
4218 (file-name (git-file-name name version))
4219 (sha256
4220 (base32
4221 "031p5i3274dazp7rz6m5y38shfgszm1clmkcf58qfqlvy978ammc"))))
4222 (build-system emacs-build-system)
4223 (propagated-inputs `(("emacs-evil" ,emacs-evil)
4224 ("emacs-names" ,emacs-names)))
4225 (home-page "https://github.com/laishulu/evil-textobj-syntax/")
4226 (synopsis "Text objects based on syntax highlighting")
4227 (description
4228 "This package provides text objects for @code{evil-mode} with
4229 boundaries defined by syntax highlighting.")
4230 (license license:gpl3+))))
4231
4232 (define-public emacs-flycheck-flow
4233 (let ((commit "9e8e52cfc98af6a23fd906f9cb5d5d470d8cf82d")
4234 (version "1.1")
4235 (revision "1"))
4236 (package
4237 (name "emacs-flycheck-flow")
4238 (version (git-version version revision commit))
4239 (source
4240 (origin
4241 (method git-fetch)
4242 (uri (git-reference
4243 (url "https://github.com/lbolla/emacs-flycheck-flow")
4244 (commit commit)))
4245 (file-name (git-file-name name version))
4246 (sha256
4247 (base32
4248 "14qldlisbmxzammr500gyha2hiv2xgyzfc6mysqii06kbcqn1ik1"))))
4249 (build-system emacs-build-system)
4250 (propagated-inputs
4251 `(("emacs-flycheck" ,emacs-flycheck)))
4252 (home-page "https://github.com/lbolla/emacs-flycheck-flow")
4253 (synopsis "Flow support for @code{flycheck-mode}")
4254 (description
4255 "This package allows @code{flycheck-mode} to provide syntax-checking
4256 for Flow files.")
4257 (license license:gpl3+))))
4258
4259 (define-public emacs-flycheck-grammalecte
4260 (package
4261 (name "emacs-flycheck-grammalecte")
4262 (version "1.2")
4263 (source
4264 (origin
4265 (method url-fetch)
4266 (uri (string-append "https://git.deparis.io/"
4267 "flycheck-grammalecte/snapshot/"
4268 "flycheck-grammalecte-" version ".tar.xz"))
4269 (sha256
4270 (base32 "1mzmzyik843r4j0ibpwqrxmb0g4xmirrf3lxr010bddkmmxf749a"))))
4271 (build-system emacs-build-system)
4272 (arguments
4273 `(#:include '("\\.(el|py)$")
4274 #:exclude '("^test-profile.el$")
4275 #:emacs ,emacs ;need libxml support
4276 #:phases
4277 (modify-phases %standard-phases
4278 (add-after 'unpack 'specify-python-location
4279 ;; Hard-code python3 executable location in the library.
4280 (lambda* (#:key inputs #:allow-other-keys)
4281 (let ((python3 (string-append (assoc-ref inputs "python")
4282 "/bin/python3")))
4283 (substitute* "flycheck-grammalecte.el"
4284 (("\"python3") (string-append "\"" python3)))
4285 (substitute* '("conjugueur.py" "flycheck-grammalecte.py")
4286 (("/usr/bin/env python3?") python3))
4287 #t)))
4288 (add-before 'build 'link-to-grammalecte
4289 ;; XXX: The Python part of the package requires grammalecte, but
4290 ;; the library is not specified in PYTHONPATH, since we're not
4291 ;; using Python build system. As a workaround, we symlink
4292 ;; grammalecte libraries here.
4293 (lambda* (#:key inputs outputs #:allow-other-keys)
4294 (let* ((out (assoc-ref outputs "out"))
4295 (grammalecte (assoc-ref inputs "grammalecte"))
4296 (version ,(version-major+minor (package-version python))))
4297 (with-directory-excursion
4298 (string-append out "/share/emacs/site-lisp")
4299 (symlink (string-append grammalecte "/lib/"
4300 "python" version "/site-packages/"
4301 "grammalecte")
4302 "grammalecte"))
4303 #t))))))
4304 (inputs
4305 `(("grammalecte" ,grammalecte)
4306 ("python" ,python)))
4307 (propagated-inputs
4308 `(("emacs-flycheck" ,emacs-flycheck)))
4309 (home-page "https://git.deparis.io/flycheck-grammalecte/")
4310 (synopsis "Integrate Grammalecte with Flycheck")
4311 (description
4312 "Integrate the French grammar and typography checker Grammalecte with
4313 Flycheck to automatically look for mistakes in your writings. It also
4314 provides an easy way to find synonyms and antonyms for a given word (to avoid
4315 repetitions for example).")
4316 (license license:gpl3+)))
4317
4318 (define-public emacs-flycheck-guile
4319 (package
4320 (name "emacs-flycheck-guile")
4321 (version "0.2")
4322 (source
4323 (origin
4324 (method git-fetch)
4325 (uri
4326 (git-reference
4327 (url "https://github.com/flatwhatson/flycheck-guile")
4328 (commit version)))
4329 (file-name (git-file-name name version))
4330 (sha256
4331 (base32 "0cs5r0ik6a3bl1k3imjl0r8y1i69kx9x9m9cgxj470qk34brwyj5"))))
4332 (propagated-inputs
4333 `(("emacs-flycheck" ,emacs-flycheck)
4334 ("emacs-geiser" ,emacs-geiser)))
4335 (build-system emacs-build-system)
4336 (home-page "https://github.com/flatwhatson/flycheck-guile")
4337 (synopsis "GNU Guile support for Flycheck")
4338 (description
4339 "This package provides a Flycheck checker for GNU Guile using @code{guild
4340 compile}.")
4341 (license license:gpl3+)))
4342
4343 (define-public emacs-flycheck-ledger
4344 (package
4345 (name "emacs-flycheck-ledger")
4346 (version "0.5")
4347 (source
4348 (origin
4349 (method git-fetch)
4350 (uri (git-reference
4351 (url "https://github.com/purcell/flycheck-ledger.git")
4352 (commit version)))
4353 (file-name (git-file-name name version))
4354 (sha256
4355 (base32 "1djrj3is0dzrl2703bw7bclf33dp4xqmy144q7xj5pvpb9v3kf50"))))
4356 (inputs `(("ledger" ,ledger)))
4357 (arguments
4358 `(#:phases
4359 (modify-phases %standard-phases
4360 (add-after 'unpack 'configure
4361 (lambda* (#:key inputs outputs #:allow-other-keys)
4362 (let ((ledger (assoc-ref inputs "ledger")))
4363 ;; Specify the absolute executable location of ledger.
4364 (substitute* "flycheck-ledger.el"
4365 (("\"ledger\"") (string-append "\"" ledger "\""))))
4366 #t)))))
4367 (propagated-inputs
4368 `(("emacs-flycheck" ,emacs-flycheck)))
4369 (build-system emacs-build-system)
4370 (home-page "https://github.com/purcell/flycheck-ledger")
4371 (synopsis "Ledger support for Flycheck")
4372 (description
4373 "This Flycheck checker uses the output of @code{ledger balance} on the
4374 current file to find errors such as unbalanced transactions and syntax
4375 errors.")
4376 (license license:gpl3+)))
4377
4378 (define-public emacs-flycheck-rust
4379 (package
4380 (name "emacs-flycheck-rust")
4381 (version "1.1")
4382 (source
4383 (origin
4384 (method git-fetch)
4385 (uri
4386 (git-reference
4387 (url "https://github.com/flycheck/flycheck-rust")
4388 (commit version)))
4389 (file-name (git-file-name name version))
4390 (sha256
4391 (base32 "1fh6j5w2387nh2fwwjphkhq17cgj5m2q5k0fhidvgc2w65lzbr1r"))))
4392 (propagated-inputs
4393 `(("emacs-dash" ,emacs-dash)
4394 ("emacs-flycheck" ,emacs-flycheck)
4395 ("emacs-let-alist" ,emacs-let-alist)))
4396 (build-system emacs-build-system)
4397 (home-page "https://github.com/flycheck/flycheck-rust")
4398 (synopsis "Rust/Cargo support for Flycheck")
4399 (description
4400 "This Flycheck extension configures Flycheck automatically for
4401 the current Cargo project.")
4402 (license license:gpl3+)))
4403
4404 (define-public emacs-elisp-demos
4405 (package
4406 (name "emacs-elisp-demos")
4407 (version "2020.02.19")
4408 (source
4409 (origin
4410 (method git-fetch)
4411 (uri (git-reference
4412 (url "https://github.com/xuchunyang/elisp-demos")
4413 (commit version)))
4414 (file-name (git-file-name name version))
4415 (sha256
4416 (base32
4417 "0mckgaz92v3y2vlkggx9kd51fd1mahylw39c42l51dyv8wscm7sc"))))
4418 (build-system emacs-build-system)
4419 (arguments
4420 `(#:include '("\\.el$" "\\.org$")
4421 #:tests? #t
4422 #:test-command '("make" "test")))
4423 (home-page "https://github.com/xuchunyang/elisp-demos/")
4424 (synopsis "Enhance @code{*Help*} buffers with additional examples")
4425 (description
4426 "This package injects example uses of Elisp functions into their
4427 respective @code{*Help*} buffers.")
4428 (license license:gpl3+)))
4429
4430 (define-public emacs-docker-compose-mode
4431 (package
4432 (name "emacs-docker-compose-mode")
4433 (version "1.1.0")
4434 (source
4435 (origin
4436 (method git-fetch)
4437 (uri (git-reference
4438 (url "https://github.com/meqif/docker-compose-mode")
4439 (commit version)))
4440 (file-name (git-file-name name version))
4441 (sha256
4442 (base32
4443 "1fbcxwfvm33xcdj3cs26d9i1zyrryyjjkv7sc3mfxd45nq8d3ivj"))))
4444 (build-system emacs-build-system)
4445 (propagated-inputs
4446 `(("emacs-dash" ,emacs-dash)
4447 ("emacs-f" ,emacs-f)))
4448 (home-page "https://github.com/meqif/docker-compose-mode/")
4449 (synopsis "Major mode for editing @file{docker-compose} files")
4450 (description
4451 "This is a major mode for @file{docker-compose} files that provides
4452 completion of relevant keywords.")
4453 (license license:expat)))
4454
4455 (define-public emacs-dvc
4456 (let ((revision "591") ;no tags or official releases
4457 (guix-revision "1"))
4458 (package
4459 (name "emacs-dvc")
4460 (version (string-append "0.0.0-" guix-revision "." revision))
4461 (source
4462 (origin
4463 (method bzr-fetch)
4464 (uri (bzr-reference
4465 (url "lp:dvc")
4466 (revision revision)))
4467 (sha256
4468 (base32
4469 "03pqn493w70wcpgaxvqnfgynxghw114l9pyiv3r414d84vzhan6h"))
4470 (file-name (string-append name "-" version "-checkout"))))
4471 (build-system gnu-build-system)
4472 (arguments
4473 `(#:configure-flags
4474 (list (string-append "--with-lispdir=" (assoc-ref %outputs "out")
4475 "/share/emacs/site-lisp/"))
4476 #:tests? #f ;no test suite
4477 #:phases
4478 (modify-phases %standard-phases
4479 (add-before 'build 'set-home
4480 ;; Something in dvc-bookmarks.el attempts to write config files in
4481 ;; $HOME during the autoload generation.
4482 (lambda _ (setenv "HOME" (getenv "TMPDIR")) #t))
4483 (add-before 'build 'fix-texinfo
4484 ;; See https://bugs.launchpad.net/dvc/+bug/1264383.
4485 (lambda _
4486 (substitute* "texinfo/dvc-intro.texinfo"
4487 (("@itemx update ``to''")
4488 "@item update ``to''")
4489 (("@itemx brief")
4490 "@item brief")
4491 (("@itemx full")
4492 "@item full")
4493 (("@itemx drop")
4494 "@item drop")
4495 (("@itemx left file")
4496 "@item left file"))
4497 #t)))))
4498 (native-inputs
4499 `(("autoconf" ,autoconf)
4500 ("automake" ,automake) ;for aclocal
4501 ("emacs" ,emacs-minimal)
4502 ("texinfo" ,texinfo)))
4503 (home-page "http://xsteve.at/prg/emacs_dvc/index.html")
4504 (synopsis "Emacs front-end for various distributed version control systems.")
4505 (description "DVC is a legacy Emacs front-end for a number of
4506 distributed version control systems. It currently supports GNU Arch, GNU
4507 Bazaar, git, Mercurial, and Monotone. It also provides some integration with
4508 Gnus, e.g., for applying patches received by email.")
4509 (license license:gpl2+))))
4510
4511 (define-public emacs-sudo-edit
4512 (let ((commit "cc3d478937b1accd38742bfceba92af02ee9357d")
4513 (revision "6"))
4514 (package
4515 (name "emacs-sudo-edit")
4516 (version (git-version "0.1.0" revision commit))
4517 (source
4518 (origin
4519 (method git-fetch)
4520 (uri (git-reference
4521 (url "https://github.com/nflath/sudo-edit")
4522 (commit commit)))
4523 (file-name (git-file-name name version))
4524 (sha256
4525 (base32
4526 "1qv58x5j5a3v1s2ylhck1ykbfclq0mbi0gsvaql3nyv8cxazqlwl"))))
4527 (build-system emacs-build-system)
4528 (native-inputs
4529 `(("emacs-undercover" ,emacs-undercover)))
4530 (arguments
4531 `(#:phases
4532 (modify-phases %standard-phases
4533 (add-before 'check 'fix-makefile
4534 (lambda _
4535 (substitute* "Makefile"
4536 (("\\$\\(CASK\\) exec ") ""))
4537 #t)))
4538 #:tests? #t
4539 #:test-command '("make" "test")))
4540 (home-page "https://github.com/nflath/sudo-edit/")
4541 (synopsis "Open files as another user")
4542 (description
4543 "This package allows editing files as another user, including the root
4544 user.")
4545 (license license:gpl3+))))
4546
4547 (define-public emacs-miniedit
4548 (package
4549 (name "emacs-miniedit")
4550 (version "2.0")
4551 (source
4552 (origin
4553 (method git-fetch)
4554 (uri (git-reference
4555 (url "https://github.com/emacsmirror/miniedit")
4556 (commit version)))
4557 (file-name (git-file-name name version))
4558 (sha256
4559 (base32
4560 "1850z96gly0jnr50472idqz1drzqarr0n23bbasslrc501xkg0bq"))))
4561 (build-system emacs-build-system)
4562 (home-page "https://github.com/emacsmirror/miniedit/")
4563 (synopsis "Enhanced editing for minibuffer fields")
4564 (description
4565 "This package provides a function that can be called from the
4566 minibuffer to enable editing the minibuffer input in another buffer with
4567 @code{text-mode} enabled.")
4568 (license license:gpl2+)))
4569
4570 (define-public emacs-ob-ipython
4571 (package
4572 (name "emacs-ob-ipython")
4573 (version "20180224")
4574 (source (origin
4575 (method git-fetch)
4576 (uri (git-reference
4577 (commit "7147455230841744fb5b95dcbe03320313a77124")
4578 (url "https://github.com/gregsexton/ob-ipython")))
4579 (file-name (git-file-name name version))
4580 (sha256
4581 (base32
4582 "1a10fc2jk37ni5sjjvf87s5nyaz2a6h2mlj5dxh4dhv5sd3bb85p"))))
4583 (build-system emacs-build-system)
4584 (propagated-inputs
4585 `(("emacs-f" ,emacs-f)))
4586 (home-page "http://www.gregsexton.org")
4587 (synopsis "Org-Babel functions for IPython evaluation")
4588 (description "This package adds support to Org-Babel for evaluating Python
4589 source code using IPython.")
4590 (license license:gpl3+)))
4591
4592 (define-public emacs-debbugs
4593 (package
4594 (name "emacs-debbugs")
4595 (version "0.26")
4596 (source
4597 (origin
4598 (method url-fetch)
4599 (uri (string-append "https://elpa.gnu.org/packages/debbugs-"
4600 version ".tar"))
4601 (sha256
4602 (base32 "14n2rrs3ccvlp8fhxs08awlqdfawxwbj8nq1xpa0wwlbfvxnf24c"))))
4603 (build-system emacs-build-system)
4604 (arguments '(#:include '("\\.el$" "\\.wsdl$" "\\.info$")))
4605 (propagated-inputs
4606 `(("emacs-async" ,emacs-async)))
4607 (home-page "https://elpa.gnu.org/packages/debbugs.html")
4608 (synopsis "Access the Debbugs bug tracker in Emacs")
4609 (description
4610 "This package lets you access the @uref{http://bugs.gnu.org,GNU Bug
4611 Tracker} from within Emacs.
4612
4613 For instance, it defines the command @code{M-x debbugs-gnu} for listing bugs,
4614 and the command @code{M-x debbugs-gnu-search} for bug searching. If you
4615 prefer the listing of bugs as TODO items of @code{org-mode}, you could use
4616 @code{M-x debbugs-org} and related commands.
4617
4618 A minor mode @code{debbugs-browse-mode} let you browse URLs to the GNU Bug
4619 Tracker as well as bug identifiers prepared for @code{bug-reference-mode}.")
4620 (license license:gpl3+)))
4621
4622 (define-public emacs-ert-expectations
4623 (package
4624 (name "emacs-ert-expectations")
4625 (version "0.2")
4626 (source
4627 (origin
4628 (method url-fetch)
4629 (uri "https://www.emacswiki.org/emacs/download/ert-expectations.el")
4630 (sha256
4631 (base32
4632 "0cwy3ilsid90abzzjb7ha2blq9kmv3gfp3icwwfcz6qczgirq6g7"))))
4633 (build-system emacs-build-system)
4634 (home-page "https://www.emacswiki.org/emacs/ert-expectations.el")
4635 (synopsis "Simple unit test framework for Emacs Lisp")
4636 (description "@code{emacs-ert-expectations} is a simple unit test
4637 framework for Emacs Lisp to be used with @code{ert}.")
4638 (license license:gpl3+)))
4639
4640 (define-public emacs-deferred
4641 (package
4642 (name "emacs-deferred")
4643 (version "0.5.1")
4644 (home-page "https://github.com/kiwanami/emacs-deferred")
4645 (source (origin
4646 (method git-fetch)
4647 (uri (git-reference
4648 (url home-page)
4649 (commit (string-append "v" version))))
4650 (file-name (git-file-name name version))
4651 (sha256
4652 (base32
4653 "0xy9zb6wwkgwhcxdnslqk52bq3z24chgk6prqi4ks0qcf2bwyh5h"))))
4654 (build-system emacs-build-system)
4655 (arguments
4656 `(#:phases
4657 (modify-phases %standard-phases
4658 (add-after 'unpack 'set-shell
4659 ;; Setting the SHELL environment variable is required for the tests
4660 ;; to find sh.
4661 (lambda _
4662 (setenv "SHELL" (which "sh"))
4663 #t))
4664 (add-before 'check 'fix-makefile
4665 (lambda _
4666 (substitute* "Makefile"
4667 (("\\$\\(CASK\\) exec ") ""))
4668 #t)))
4669 #:tests? #t
4670 #:test-command '("make" "test")))
4671 (native-inputs
4672 `(("emacs-ert-expectations" ,emacs-ert-expectations)
4673 ("emacs-undercover" ,emacs-undercover)
4674 ("ert-runner" ,emacs-ert-runner)))
4675 (synopsis "Simple asynchronous functions for Emacs Lisp")
4676 (description
4677 "The @code{deferred.el} library provides support for asynchronous tasks.
4678 The API is almost the same as that of
4679 @uref{https://github.com/cho45/jsdeferred, JSDeferred}, a JavaScript library
4680 for asynchronous tasks.")
4681 (license license:gpl3+)))
4682
4683 (define-public emacs-butler
4684 (package
4685 (name "emacs-butler")
4686 (version "0.2.4")
4687 (home-page "https://github.com/AshtonKem/Butler")
4688 (source (origin
4689 (method git-fetch)
4690 (uri (git-reference
4691 (url home-page)
4692 (commit version)))
4693 (file-name (git-file-name name version))
4694 (sha256
4695 (base32
4696 "1pii9dw4skq7nr4na6qxqasl36av8cwjp71bf1fgppqpcd9z8skj"))))
4697 (build-system emacs-build-system)
4698 (propagated-inputs
4699 `(("emacs-deferred" ,emacs-deferred)))
4700 (synopsis "Emacs client for Jenkins")
4701 (description
4702 "Butler provides an interface to connect to Jenkins continuous
4703 integration servers. Users can specify a list of server in the
4704 @code{butler-server-list} variable and then use @code{M-x butler-status} to
4705 view the build status of those servers' build jobs, and possibly to trigger
4706 build jobs.")
4707 (license license:gpl3+)))
4708
4709 (define-public emacs-company
4710 (package
4711 (name "emacs-company")
4712 (version "0.9.13")
4713 (source
4714 (origin
4715 (method url-fetch)
4716 (uri (string-append "https://elpa.gnu.org/packages/"
4717 "company-" version ".tar"))
4718 (sha256
4719 (base32 "1c9x9wlzzsn7vrsm57l2l44nqx455saa6wrm853szzg09qn8dlnw"))))
4720 (build-system emacs-build-system)
4721 (home-page "https://company-mode.github.io/")
4722 (synopsis "Modular text completion framework")
4723 (description
4724 "Company is a modular completion mechanism. Modules for retrieving
4725 completion candidates are called back-ends, modules for displaying them are
4726 front-ends. Company comes with many back-ends, e.g., @code{company-elisp}.
4727 These are distributed in separate files and can be used individually.")
4728 (license license:gpl3+)))
4729
4730 (define-public emacs-company-posframe
4731 (let ((version "0.1.0")
4732 (revision "1")
4733 (commit "67d899502384fb9ab2870aba0af41523dea7b64f"))
4734 (package
4735 (name "emacs-company-posframe")
4736 (version (git-version version revision commit))
4737 (source (origin
4738 (method git-fetch)
4739 (uri (git-reference
4740 (url "https://github.com/tumashu/company-posframe")
4741 (commit commit)))
4742 (file-name (git-file-name name version))
4743 (sha256
4744 (base32
4745 "051smlvz1siwglsd9k9l0m20mygrx4niflmyshha0064287aysxr"))))
4746 (build-system emacs-build-system)
4747 (propagated-inputs
4748 `(("emacs-company" ,emacs-company)
4749 ("emacs-posframe" ,emacs-posframe)))
4750 (home-page "https://github.com/tumashu/company-posframe")
4751 (synopsis "Use a posframe for @code{emacs-company}'s candidate menu")
4752 (description
4753 "Allows @code{emacs-company} to use child frames for its candidate menus.
4754
4755 @code{emacs-company-posframe} is fast enough for daily use and supports CJK
4756 languages.")
4757 (license license:gpl3+))))
4758
4759 (define-public emacs-irony-mode
4760 (package
4761 (name "emacs-irony-mode")
4762 (version "1.4.0")
4763 (home-page "https://github.com/Sarcasm/irony-mode")
4764 (source (origin
4765 (method git-fetch)
4766 (uri (git-reference
4767 (url (string-append home-page ".git"))
4768 (commit (string-append "v" version))))
4769 (file-name (git-file-name name version))
4770 (sha256
4771 (base32
4772 "0n2nfcq58md1p2xdhq1smh8v7lsyj0ci7ma5xyd6bkg5rvhsh10i"))))
4773 (build-system emacs-build-system)
4774 (inputs `(("server" ,emacs-irony-mode-server)))
4775 (arguments `(#:phases
4776 (modify-phases %standard-phases
4777 (add-after 'unpack 'configure
4778 (lambda* (#:key inputs #:allow-other-keys)
4779 (chmod "irony.el" #o644)
4780 (emacs-substitute-variables "irony.el"
4781 ("irony-server-install-prefix"
4782 (assoc-ref inputs "server")))
4783 #t)))))
4784 (synopsis "C/C++/ObjC Code completion and syntax checks for Emacs")
4785 (description "Irony-mode provides Clang-assisted syntax checking and
4786 completion for C, C++, and ObjC in GNU Emacs. Using @code{libclang} it can
4787 provide syntax checking and autocompletion on compiler level which is very
4788 resistant against false positives. It also integrates well with other
4789 packages like @code{eldoc-mode} and especially @code{company-mode} as
4790 described on the homepage.")
4791 (license license:gpl3+)))
4792
4793 (define-public emacs-irony-mode-server
4794 (package (inherit emacs-irony-mode)
4795 (name "emacs-irony-mode-server")
4796 (inputs
4797 `(("clang" ,clang)))
4798 (arguments
4799 `(#:phases
4800 (modify-phases %standard-phases
4801 (replace 'configure
4802 (lambda* (#:key outputs #:allow-other-keys)
4803 (let ((out (assoc-ref outputs "out")))
4804 (invoke "cmake"
4805 "server"
4806 (string-append "-DCMAKE_INSTALL_PREFIX=" out)) #t))))))
4807 (build-system cmake-build-system)
4808 (synopsis "Server for the Emacs @dfn{irony mode}")))
4809
4810 (define-public emacs-company-irony
4811 (package
4812 (name "emacs-company-irony")
4813 (version "1.1.0")
4814 (source (origin
4815 (method git-fetch)
4816 (uri (git-reference
4817 (url "https://github.com/Sarcasm/company-irony")
4818 (commit (string-append "v" version))))
4819 (sha256 (base32
4820 "1qgyam2vyjw90kpxns5cd6bq3qiqjhzpwrlvmi18vyb69qcgqd8a"))
4821 (file-name (git-file-name name version))))
4822 (build-system emacs-build-system)
4823 (inputs
4824 `(("emacs-irony-mode" ,emacs-irony-mode)
4825 ("emacs-company" ,emacs-company)))
4826 (synopsis "C++ completion backend for Company using irony-mode")
4827 (description "This backend for company-mode allows for C++ code completion
4828 with irony-mode using clang-tooling.")
4829 (home-page "https://github.com/Sarcasm/company-irony")
4830 (license license:gpl3+)))
4831
4832 (define-public emacs-flycheck-irony
4833 (package
4834 (name "emacs-flycheck-irony")
4835 (version "0.1.0")
4836 (source (origin
4837 (method git-fetch)
4838 (uri (git-reference
4839 (url "https://github.com/Sarcasm/flycheck-irony")
4840 (commit (string-append "v" version))))
4841 (file-name (git-file-name name version))
4842 (sha256
4843 (base32 "0qa5a8wzvzxwqql92ibc9s43k8sj3vwn7skz9hfr8av0skkhx996"))))
4844 (build-system emacs-build-system)
4845 (inputs
4846 `(("irony-mode" ,emacs-irony-mode)
4847 ("flycheck-mode" ,emacs-flycheck)
4848 ("emacs-company" ,emacs-company)))
4849 (synopsis "Live syntax checking frontend for Flycheck using irony-mode")
4850 (description "This package provides a frontend for Flycheck that lets
4851 irony-mode do the syntax checking.")
4852 (home-page "https://github.com/Sarcasm/flycheck-irony")
4853 (license license:gpl3+)))
4854
4855 (define-public emacs-irony-eldoc
4856 (package
4857 (name "emacs-irony-eldoc")
4858 (version (package-version emacs-irony-mode))
4859 (source
4860 (origin
4861 (method git-fetch)
4862 (uri (git-reference
4863 (url "https://github.com/ikirill/irony-eldoc")
4864 (commit "0df5831eaae264a25422b061eb2792aadde8b3f2")))
4865 (file-name (git-file-name name version))
4866 (sha256
4867 (base32 "1l5qpr66v1l12fb50yh73grb2rr85xxmbj19mm33b5rdrq2bqmmd"))))
4868 (build-system emacs-build-system)
4869 (inputs
4870 `(("irony-mode" ,emacs-irony-mode)))
4871 (synopsis "Eldoc integration for irony-mode")
4872 (description "Irony-eldoc is an eldoc extension that shows documentation
4873 for the current function or variable in the minibuffer.")
4874 (home-page "https://github.com/ikirill/irony-eldoc")
4875 (license license:gpl3+)))
4876
4877 (define-public emacs-company-quickhelp
4878 ;; XXX: release version 2.3.0 is on an unmaintained branch for some reason,
4879 ;; so we use the latest 2.2.0 commit instead
4880 (let ((commit "479676cade80a9f03802ca3d956591820ed5c537")
4881 (revision "1"))
4882 (package
4883 (name "emacs-company-quickhelp")
4884 (version (git-version "2.2.0" revision commit))
4885 (source
4886 (origin
4887 (method git-fetch)
4888 (uri (git-reference
4889 (url "https://github.com/expez/company-quickhelp")
4890 (commit commit)))
4891 (file-name (git-file-name name version))
4892 (sha256
4893 (base32 "0hbqpnaf4hnin3nmdzmfj3v22kk9a97b6zssqs96ns36d9h52xcp"))))
4894 (build-system emacs-build-system)
4895 (propagated-inputs
4896 `(("emacs-pos-tip" ,emacs-pos-tip)
4897 ("emacs-company" ,emacs-company)))
4898 (home-page "https://github.com/expez/company-quickhelp")
4899 (synopsis "Popup documentation for completion candidates")
4900 (description "@code{company-quickhelp} shows documentation for the
4901 completion candidate when using the Company text completion framework.")
4902 (license license:gpl3+))))
4903
4904 (define-public emacs-math-symbol-lists
4905 (let ((commit "dc7531cff0c845d5470a50c24d5d7309b2ced7eb")
4906 (revision "1"))
4907 (package
4908 (name "emacs-math-symbol-lists")
4909 (version (git-version "1.2.1" revision commit))
4910 (source
4911 (origin
4912 (method git-fetch)
4913 (uri (git-reference
4914 (url "https://github.com/vspinu/math-symbol-lists")
4915 (commit commit)))
4916 (file-name (git-file-name name version))
4917 (sha256
4918 (base32 "094m21i9rns6m59cmhxcivxxafbg52w8f8na4y3v47aq67zmhhqm"))))
4919 (build-system emacs-build-system)
4920 (home-page "https://github.com/vspinu/math-symbol-lists")
4921 (synopsis "Lists of Unicode math symbols and @code{LaTeX} commands")
4922 (description "This is a storage package used by completion engines like
4923 @code{company-math}.")
4924 (license license:gpl3+))))
4925
4926 (define-public emacs-company-coq
4927 (package
4928 (name "emacs-company-coq")
4929 (version "1.0.1")
4930 (source
4931 (origin
4932 (method git-fetch)
4933 (uri
4934 (git-reference
4935 (url "https://github.com/cpitclaudel/company-coq")
4936 (commit version)))
4937 (file-name (git-file-name name version))
4938 (sha256
4939 (base32 "0dxi4h8xqq5647k7h89s4pi8nwyj3brlhsckrv3p3b1g4dr6mk3b"))))
4940 (inputs
4941 `(("emacs-company" ,emacs-company)
4942 ("emacs-company-math" ,emacs-company-math)
4943 ("emacs-dash" ,emacs-dash)
4944 ("emacs-yasnippet" ,emacs-yasnippet)))
4945 (build-system emacs-build-system)
4946 (home-page "https://github.com/cpitclaudel/company-coq")
4947 (synopsis "Emacs extensions for Proof General's Coq mode")
4948 (description "This package includes a collection of Company mode backends
4949 for Proof-General's Coq mode, and many useful extensions to Proof-General. It
4950 features:
4951
4952 @itemize
4953 @item Prettification of operators, types, and subscripts,
4954 @item Auto-completion,
4955 @item Insertion of cases,
4956 @item Fully explicit intros,
4957 @item Outlines, code folding, and jumping to definition,
4958 @item Help with errors,
4959 @item and more.
4960 @end itemize")
4961 (license license:gpl3+)))
4962
4963 (define-public emacs-company-math
4964 (let ((commit "600e49449644f6835f9dc3501bc58461999e8ab9")
4965 (revision "1"))
4966 (package
4967 (name "emacs-company-math")
4968 (version (git-version "1.3" revision commit))
4969 (source
4970 (origin
4971 (method git-fetch)
4972 (uri (git-reference
4973 (url "https://github.com/vspinu/company-math")
4974 (commit commit)))
4975 (file-name (git-file-name name version))
4976 (sha256
4977 (base32
4978 "1ps2lpkzn8mjbpcbvvy1qz3xbgrh6951x8y9bsd1fm32drdph9lh"))))
4979 (build-system emacs-build-system)
4980 (propagated-inputs
4981 `(("emacs-math-symbol-lists" ,emacs-math-symbol-lists)
4982 ("emacs-company" ,emacs-company)))
4983 (home-page "https://github.com/vspinu/company-math")
4984 (synopsis "Completion backends for Unicode math symbols and @code{LaTeX} tags")
4985 (description "This package provides a backend for use with
4986 @code{company-mode} allowing for completion of common math symbols.")
4987 (license license:gpl3+))))
4988
4989 (define-public emacs-compdef
4990 (let ((commit "67104a38763cc819644f711248b170a43bce151b")
4991 (revision "2"))
4992 (package
4993 (name "emacs-compdef")
4994 (version (git-version "0.2" revision commit))
4995 (source
4996 (origin
4997 (method git-fetch)
4998 (uri (git-reference
4999 (url "https://gitlab.com/jjzmajic/compdef.git")
5000 (commit commit)))
5001 (file-name (git-file-name name version))
5002 (sha256
5003 (base32 "1f6y6cr67gps9jp5hd20xszfd3k26v70g6z4g5db6wdkvlnc2wkg"))))
5004 (build-system emacs-build-system)
5005 (home-page "https://gitlab.com/jjzmajic/compdef")
5006 (synopsis "Set local completion backends")
5007 (description "This package provides a function to cleanly set local
5008 completion backends according to mode, and integrates with
5009 @code{use-package}.")
5010 (license license:gpl3+))))
5011
5012 (define-public emacs-icomplete-vertical
5013 (package
5014 (name "emacs-icomplete-vertical")
5015 (version "0.1")
5016 (source
5017 (origin
5018 (method git-fetch)
5019 (uri (git-reference
5020 (url "https://github.com/oantolin/icomplete-vertical")
5021 (commit version)))
5022 (file-name (git-file-name name version))
5023 (sha256
5024 (base32
5025 "1bqnlvv1gvrjriazvzd3bq98r8ii6fqax0zznhvkl1ij5pf55a90"))))
5026 (build-system emacs-build-system)
5027 (home-page "https://github.com/oantolin/icomplete-vertical")
5028 (synopsis "Display icomplete candidates vertically")
5029 (description
5030 "This package defines a global minor mode to display Icomplete
5031 completion candidates vertically.")
5032 (license license:gpl3+)))
5033
5034 (define-public emacs-handle
5035 (let ((commit "51c050bc1c6e5caf0eb47ecd985daea1db7241ab")
5036 (revision "2"))
5037 (package
5038 (name "emacs-handle")
5039 (version (git-version "0.1" revision commit))
5040 (source
5041 (origin
5042 (method git-fetch)
5043 (uri (git-reference
5044 (url "https://gitlab.com/jjzmajic/handle.git")
5045 (commit commit)))
5046 (file-name (git-file-name name version))
5047 (sha256
5048 (base32 "14f15qzfmwdslml4rv37zb5d1lsjf0jibriz636hb7q7knx1n4sg"))))
5049 (build-system emacs-build-system)
5050 (propagated-inputs
5051 `(("emacs-parent-mode" ,emacs-parent-mode)))
5052 (home-page "https://gitlab.com/jjzmajic/handle")
5053 (synopsis "Handle generic functions across related major modes")
5054 (description "This package provides generic functions that specialize on
5055 major modes and intended purpose rather than on arguments. Different
5056 callables for tasks like expression evaluation, definition-jumping, and more
5057 can now be grouped accordingly and tried in sequence until one of them
5058 succeeds.")
5059 (license license:gpl3+))))
5060
5061 (define-public emacs-nswbuff
5062 (let ((commit "362da7f3687e2eb5bb11667347de85f4a9d002bc")
5063 (revision "1"))
5064 (package
5065 (name "emacs-nswbuff")
5066 (version (git-version "1.0" revision commit))
5067 (source
5068 (origin
5069 (method git-fetch)
5070 (uri (git-reference
5071 (url "https://github.com/joostkremers/nswbuff")
5072 (commit commit)))
5073 (file-name (git-file-name name version))
5074 (sha256
5075 (base32 "0l2xfz8z5qd4hz3kv6zn7h6qq3narkilri8a071y1n8j31jps4ma"))))
5076 (build-system emacs-build-system)
5077 (home-page "https://github.com/joostkremers/nswbuff")
5078 (synopsis "Quickly switch between buffers")
5079 (description "This package allows for navigating between buffers within
5080 a customizable list.")
5081 (license license:gpl3+))))
5082
5083 (define-public emacs-phi-search
5084 (let ((commit "9a089b8271cb1cff9640848850298c9ec855286c")
5085 (revision "1"))
5086 (package
5087 (name "emacs-phi-search")
5088 (version (git-version "20160630" revision commit))
5089 (source
5090 (origin
5091 (method git-fetch)
5092 (uri (git-reference
5093 (url "https://github.com/zk-phi/phi-search")
5094 (commit commit)))
5095 (file-name (git-file-name name version))
5096 (sha256
5097 (base32 "1gr5plcbrfdc4pglfj905s89hf8x0kc083h30wcnd81bnw9jwz1x"))))
5098 (build-system emacs-build-system)
5099 (home-page "https://github.com/zk-phi/phi-search")
5100 (synopsis "Interactive search compatible with @code{multiple-cursors}")
5101 (description "This package can be used with @code{multiple-cursors} to
5102 provide an incremental search that moves all fake cursors in sync.")
5103 (license license:gpl2+))))
5104
5105 (define-public emacs-phi-search-mc
5106 (let ((commit "7aa671910f766437089aec26c3aa7814222d1356")
5107 (revision "1"))
5108 (package
5109 (name "emacs-phi-search-mc")
5110 (version (git-version "2.2.1" revision commit))
5111 (source
5112 (origin
5113 (method git-fetch)
5114 (uri (git-reference
5115 (url "https://github.com/knu/phi-search-mc.el")
5116 (commit commit)))
5117 (file-name (git-file-name name version))
5118 (sha256
5119 (base32 "0wr86ad0yl52im6b9z0b9pzmhcn39qg5m9878yfv1nbxliw40lcd"))))
5120 (build-system emacs-build-system)
5121 (propagated-inputs
5122 `(("emacs-phi-search" ,emacs-phi-search)
5123 ("emacs-multiple-cursors" ,emacs-multiple-cursors)))
5124 (home-page "https://github.com/knu/phi-search-mc.el")
5125 (synopsis "Extend @code{phi-search} with additional
5126 @code{multiple-cursors} functionality")
5127 (description "This package provides further integration between
5128 @code{multiple-cursors} and @code{phi-search}, a package that allows for
5129 interactive searches to move multiple fake cursors.")
5130 (license license:bsd-2))))
5131
5132 (define-public emacs-multiple-cursors
5133 (package
5134 (name "emacs-multiple-cursors")
5135 (version "1.4.0")
5136 (source
5137 (origin
5138 (method git-fetch)
5139 (uri (git-reference
5140 (url "https://github.com/magnars/multiple-cursors.el")
5141 (commit version)))
5142 (file-name (git-file-name name version))
5143 (sha256
5144 (base32 "1ijgvzv5r44xqvz751fd5drbvrspapw6xwv47582w255j363r6ss"))))
5145 (build-system emacs-build-system)
5146 (home-page "https://github.com/magnars/multiple-cursors.el")
5147 (synopsis "Multiple cursors for Emacs")
5148 (description
5149 "This package adds support to Emacs for editing text with multiple
5150 simultaneous cursors.")
5151 (license license:gpl3+)))
5152
5153 (define-public emacs-mc-extras
5154 (let ((commit "053abc52181b8718559d7361a587bbb795faf164")
5155 (revision "1"))
5156 (package
5157 (name "emacs-mc-extras")
5158 (version (git-version "1.2.4" revision commit))
5159 (source
5160 (origin
5161 (method git-fetch)
5162 (uri (git-reference
5163 (url "https://github.com/knu/mc-extras.el")
5164 (commit commit)))
5165 (file-name (git-file-name name version))
5166 (sha256
5167 (base32 "16y48qrd20m20vypvys5jp4v4gc1qrqlkm75s1pk1r68i9zrw481"))))
5168 (build-system emacs-build-system)
5169 (propagated-inputs
5170 `(("emacs-multiple-cursors" ,emacs-multiple-cursors)))
5171 (home-page "https://github.com/knu/mc-extras.el")
5172 (synopsis "Extra functions for manipulating multiple cursors")
5173 (description
5174 "This package provides additional functions for
5175 @code{multiple-cursors}, including functions for marking s-expressions,
5176 comparing characters, removing cursors, and more.")
5177 (license license:bsd-2))))
5178
5179 (define-public emacs-typo
5180 (package
5181 (name "emacs-typo")
5182 (version "1.1")
5183 (home-page "https://github.com/jorgenschaefer/typoel")
5184 (source (origin
5185 (method git-fetch)
5186 (uri (git-reference
5187 (url home-page)
5188 (commit (string-append "v" version))))
5189 (file-name (git-file-name name version))
5190 (sha256
5191 (base32
5192 "1jhd4grch5iz12gyxwfbsgh4dmz5hj4bg4gnvphccg8dsnni05k2"))))
5193 (build-system emacs-build-system)
5194 (synopsis "Minor mode for typographic editing")
5195 (description
5196 "This package provides two Emacs modes, @code{typo-mode} and
5197 @code{typo-global-mode}. These modes automatically insert Unicode characters
5198 for quotation marks, dashes, and ellipses. For example, typing @kbd{\"}
5199 automatically inserts a Unicode opening or closing quotation mark, depending
5200 on context.")
5201 (license license:gpl3+)))
5202
5203 (define-public emacs-company-lsp
5204 (package
5205 (name "emacs-company-lsp")
5206 (version "2.1.0")
5207 (source (origin
5208 (method git-fetch)
5209 (uri (git-reference
5210 (url "https://github.com/tigersoldier/company-lsp")
5211 (commit version)))
5212 (file-name (git-file-name name version))
5213 (sha256
5214 (base32
5215 "1hy1x2w0yp5brm7714d1hziz3rpkywb5jp3yj78ibmi9ifny9vri"))))
5216 (build-system emacs-build-system)
5217 (propagated-inputs
5218 `(("emacs-dash" ,emacs-dash)
5219 ("emacs-lsp-mode" ,emacs-lsp-mode)
5220 ("emacs-company" ,emacs-company)
5221 ("emacs-s" ,emacs-s)
5222 ("emacs-dash" ,emacs-dash)))
5223 (native-inputs
5224 `(("emacs-buttercup" ,emacs-buttercup)))
5225 (arguments
5226 `(#:tests? #t
5227 #:test-command '("buttercup" "-L" ".")))
5228 (home-page "https://github.com/tigersoldier/company-lsp")
5229 (synopsis "Completion for @code{lsp-mode}")
5230 (description
5231 "This package provides completion features that are not possible with
5232 @code{lsp-mode} and @code{company-capf} alone, including support for trigger
5233 characters and asynchronous fetching of completion candidates.")
5234 (license license:gpl3+)))
5235
5236 (define-public emacs-scala-mode
5237 (package
5238 (name "emacs-scala-mode")
5239 (version "1.1.0")
5240 (source
5241 (origin
5242 (method git-fetch)
5243 (uri (git-reference
5244 (url "https://github.com/hvesalai/emacs-scala-mode")
5245 (commit (string-append "v" version))))
5246 (file-name (git-file-name name version))
5247 (sha256
5248 (base32 "1072lsin7dxadc0xyhy42wd0cw549axbbd4dy95wfmfcc1xbzjwv"))))
5249 (build-system emacs-build-system)
5250 (home-page "https://github.com/hvesalai/emacs-scala-mode")
5251 (synopsis "Emacs major mode for Scala")
5252 (description
5253 "This package provides basic Emacs support for the Scala language,
5254 including: local indenting of code, comments and multi-line strings, motion
5255 commands and highlighting.")
5256 ;; There are no copyright headers in the source code. The LICENSE file
5257 ;; indicates GPL3.
5258 (license license:gpl3)))
5259
5260 (define-public emacs-scheme-complete
5261 (let ((commit "9b5cf224bf2a5994bc6d5b152ff487517f1a9bb5"))
5262 (package
5263 (name "emacs-scheme-complete")
5264 (version (string-append "20151223." (string-take commit 8)))
5265 (source
5266 (origin
5267 (method git-fetch)
5268 (uri (git-reference
5269 (url "https://github.com/ashinn/scheme-complete")
5270 (commit commit)))
5271 (file-name (git-file-name name version))
5272 (sha256
5273 (base32
5274 "141wn9l0m33w0g3dqmx8nxbfdny1r5xbr6ak61rsz21bk0qafs7x"))
5275 (patches
5276 (search-patches "emacs-scheme-complete-scheme-r5rs-info.patch"))))
5277 (build-system emacs-build-system)
5278 (home-page "https://github.com/ashinn/scheme-complete")
5279 (synopsis "Smart tab completion for Scheme in Emacs")
5280 (description
5281 "This file provides a single function, @code{scheme-smart-complete},
5282 which you can use for intelligent, context-sensitive completion for any Scheme
5283 implementation in Emacs. To use it just load this file and bind that function
5284 to a key in your preferred mode.")
5285 (license license:public-domain))))
5286
5287 (define-public emacs-scel
5288 (let ((version "20170629")
5289 (revision "1")
5290 (commit "aeea3ad4be9306d14c3a734a4ff54fee10ac135b"))
5291 (package
5292 (name "emacs-scel")
5293 (version (git-version version revision commit))
5294 (source
5295 (origin
5296 (method git-fetch)
5297 (uri (git-reference
5298 (url "https://github.com/supercollider/scel")
5299 (commit commit)))
5300 (file-name (git-file-name name version))
5301 (sha256
5302 (base32
5303 "0jvmzs1lsjyndqshhii2y4mnr3wghai26i3p75453zrpxpg0zvvw"))))
5304 (build-system emacs-build-system)
5305 (arguments
5306 `(#:modules ((guix build emacs-build-system)
5307 ((guix build cmake-build-system) #:prefix cmake:)
5308 (guix build utils))
5309 #:imported-modules (,@%emacs-build-system-modules
5310 (guix build cmake-build-system))
5311 #:phases
5312 (modify-phases %standard-phases
5313 (add-after 'unpack 'configure
5314 (lambda* (#:key outputs #:allow-other-keys)
5315 (substitute* "el/CMakeLists.txt"
5316 (("share/emacs/site-lisp/SuperCollider")
5317 (string-append
5318 "share/emacs/site-lisp")))
5319 ((assoc-ref cmake:%standard-phases 'configure)
5320 #:outputs outputs
5321 #:configure-flags '("-DSC_EL_BYTECOMPILE=OFF"))))
5322 (add-after 'add-source-to-load-path 'add-el-dir-to-emacs-load-path
5323 (lambda _
5324 (setenv "EMACSLOADPATH"
5325 (string-append (getcwd) "/el:" (getenv "EMACSLOADPATH")))
5326 #t))
5327 (replace 'install (assoc-ref cmake:%standard-phases 'install)))))
5328 (inputs
5329 `(("supercollider" ,supercollider)))
5330 (native-inputs
5331 `(("cmake" ,cmake-minimal)))
5332 (home-page "https://github.com/supercollider/scel")
5333 (synopsis "SuperCollider Emacs interface")
5334 (description "@code{emacs-scel} is an Emacs interface to SuperCollider.
5335 SuperCollider is a platform for audio synthesis and algorithmic composition.")
5336 (license license:gpl2+))))
5337
5338 (define-public emacs-company-auctex
5339 (let ((commit "48c42c58ce2f0e693301b0cb2d085055410c1b25")
5340 (revision "1"))
5341 (package
5342 (name "emacs-company-auctex")
5343 (version (git-version "0" revision commit))
5344 (source (origin
5345 (method git-fetch)
5346 (uri (git-reference
5347 (url "https://github.com/alexeyr/company-auctex")
5348 (commit commit)))
5349 (file-name (git-file-name name version))
5350 (sha256
5351 (base32
5352 "10qn7frn5wcmrlci3v6iliqzj7r9dls87h9zp3xkgrgn4bqprfp8"))))
5353 (build-system emacs-build-system)
5354 (propagated-inputs
5355 `(("emacs-yasnippet" ,emacs-yasnippet)
5356 ("emacs-auctex" ,emacs-auctex)
5357 ("emacs-company" ,emacs-company)))
5358 (home-page "https://github.com/alexeyr/company-auctex/")
5359 (synopsis "Completion for @code{AUCTeX}")
5360 (description
5361 "This package provides a group of backends permitting auto-completion
5362 for @code{AUCTeX}.")
5363 (license license:gpl3+))))
5364
5365 (define-public emacs-mit-scheme-doc
5366 (package
5367 (name "emacs-mit-scheme-doc")
5368 (version "20140203")
5369 (source
5370 (origin
5371 (modules '((guix build utils)))
5372 (snippet
5373 ;; keep only file of interest
5374 '(begin
5375 (for-each delete-file '("dot-emacs.el" "Makefile"))
5376 (install-file "6.945-config/mit-scheme-doc.el" ".")
5377 (delete-file-recursively "6.945-config")
5378 #t))
5379 (file-name (string-append name "-" version ".tar.bz2"))
5380 (method url-fetch)
5381 (uri (string-append "http://groups.csail.mit.edu/mac/users/gjs/"
5382 "6.945/dont-panic/emacs-basic-config.tar.bz2"))
5383 (sha256
5384 (base32
5385 "0dqidg2bd66pawqfarvwca93w5gqf9mikn1k2a2rmd9ymfjpziq1"))))
5386 (build-system emacs-build-system)
5387 (inputs `(("mit-scheme" ,mit-scheme)))
5388 (arguments
5389 `(#:phases
5390 (modify-phases %standard-phases
5391 (add-after 'unpack 'configure-doc
5392 (lambda* (#:key inputs #:allow-other-keys)
5393 (let* ((mit-scheme-dir (assoc-ref inputs "mit-scheme"))
5394 (doc-dir (string-append mit-scheme-dir "/share/doc/"
5395 "mit-scheme-"
5396 ,(package-version mit-scheme))))
5397 (substitute* "mit-scheme-doc.el"
5398 (("http://www\\.gnu\\.org/software/mit-scheme/documentation/mit-scheme-ref/")
5399 (string-append "file:" doc-dir "/mit-scheme-ref/")))))))))
5400 (home-page "https://groups.csail.mit.edu/mac/users/gjs/6.945/dont-panic/")
5401 (synopsis "MIT-Scheme documentation lookup for Emacs")
5402 (description
5403 "This package provides a set of Emacs functions to search definitions of
5404 identifiers in the MIT-Scheme documentation.")
5405 (license license:gpl2+)))
5406
5407 (define-public emacs-constants
5408 (package
5409 (name "emacs-constants")
5410 (version "2.6")
5411 (home-page "https://staff.fnwi.uva.nl/c.dominik/Tools/constants")
5412 (source
5413 (origin
5414 (method git-fetch)
5415 (uri (git-reference
5416 (url "https://github.com/fedeinthemix/emacs-constants")
5417 (commit (string-append "v" version))))
5418 (file-name (git-file-name name version))
5419 (sha256
5420 (base32 "0f5sh6b45a8p9kancjp9jk44ws8ww6x50a0i6zgyyvr7dbvii1a0"))))
5421 (build-system emacs-build-system)
5422 (synopsis "Enter definition of constants into an Emacs buffer")
5423 (description
5424 "This package provides functions for inserting the definition of natural
5425 constants and units into an Emacs buffer.")
5426 (license license:gpl2+)))
5427
5428 (define-public emacs-tagedit
5429 (package
5430 (name "emacs-tagedit")
5431 (version "1.4.0")
5432 (source
5433 (origin
5434 (method git-fetch)
5435 (uri (git-reference
5436 (url "https://github.com/magnars/tagedit")
5437 (commit version)))
5438 (file-name (git-file-name name version))
5439 (sha256
5440 (base32 "0kq40g46s8kgiafrhdq99h79rz9h5fvgz59k7ralmf86bl4sdmdb"))))
5441 (build-system emacs-build-system)
5442 (propagated-inputs
5443 `(("emacs-s" ,emacs-s)
5444 ("emacs-dash" ,emacs-dash)))
5445 (home-page "https://github.com/magnars/tagedit")
5446 (synopsis "Some paredit-like features for html-mode")
5447 (description
5448 "This package provides a collection of paredit-like functions for editing
5449 in @code{html-mode}.")
5450 (license license:gpl3+)))
5451
5452 (define-public emacs-slime
5453 (package
5454 (name "emacs-slime")
5455 (version "2.26")
5456 (source
5457 (origin
5458 (method git-fetch)
5459 (uri (git-reference
5460 (url "https://github.com/slime/slime")
5461 (commit (string-append "v" version))))
5462 (file-name (git-file-name name version))
5463 (sha256
5464 (base32 "0mxb1wnw19v0s72w2wkz5afdlzvpy5nn7pr4vav403qybac0sw5c"))))
5465 (build-system emacs-build-system)
5466 (native-inputs
5467 `(("texinfo" ,texinfo)))
5468 (arguments
5469 `(#:include '("\\.el$" "\\.lisp$" "\\.asd$" "contrib")
5470 #:exclude '("^slime-tests.el" "^contrib/test/"
5471 "^contrib/Makefile$" "^contrib/README.md$")
5472 #:phases
5473 (modify-phases %standard-phases
5474 (add-after 'unpack 'make-git-checkout-writable
5475 (lambda _
5476 (for-each make-file-writable (find-files "."))
5477 #t))
5478 (add-before 'install 'configure
5479 (lambda* _
5480 (emacs-substitute-variables "slime.el"
5481 ("inferior-lisp-program" "sbcl"))
5482 #t))
5483 (add-before 'install 'install-doc
5484 (lambda* (#:key outputs #:allow-other-keys)
5485 (let* ((out (assoc-ref outputs "out"))
5486 (info-dir (string-append out "/share/info"))
5487 (doc-dir (string-append out "/share/doc/"
5488 ,name "-" ,version))
5489 (doc-files '("doc/slime-refcard.pdf"
5490 "README.md" "NEWS" "PROBLEMS"
5491 "CONTRIBUTING.md")))
5492 (with-directory-excursion "doc"
5493 (substitute* "Makefile"
5494 (("infodir=/usr/local/info")
5495 (string-append "infodir=" info-dir)))
5496 (invoke "make" "html/index.html")
5497 (invoke "make" "slime.info")
5498 (install-file "slime.info" info-dir)
5499 (copy-recursively "html" (string-append doc-dir "/html")))
5500 (for-each (lambda (f)
5501 (install-file f doc-dir)
5502 (delete-file f))
5503 doc-files)
5504 (delete-file-recursively "doc")
5505 #t))))))
5506 (home-page "https://github.com/slime/slime")
5507 (synopsis "Superior Lisp Interaction Mode for Emacs")
5508 (description
5509 "SLIME extends Emacs with support for interactive programming in
5510 Common Lisp. The features are centered around @command{slime-mode},
5511 an Emacs minor mode that complements the standard @command{lisp-mode}.
5512 While lisp-mode supports editing Lisp source files, @command{slime-mode}
5513 adds support for interacting with a running Common Lisp process
5514 for compilation, debugging, documentation lookup, and so on.")
5515 (license (list license:gpl2+ license:public-domain))))
5516
5517 (define-public emacs-popup
5518 (package
5519 (name "emacs-popup")
5520 (version "0.5.8")
5521 (source
5522 (origin
5523 (method git-fetch)
5524 (uri (git-reference
5525 (url "https://github.com/auto-complete/popup-el")
5526 (commit (string-append "v" version))))
5527 (file-name (git-file-name name version))
5528 (sha256
5529 (base32 "0qrsz4z9q2bfq9xv4n94mvyslm232v2ql9r1fjycx7rnmpqggiwl"))))
5530 (build-system emacs-build-system)
5531 (home-page "https://github.com/auto-complete/popup-el")
5532 (synopsis "Visual Popup User Interface for Emacs")
5533 (description
5534 "Popup.el is a visual popup user interface library for Emacs.
5535 This provides a basic API and common UI widgets such as popup tooltips
5536 and popup menus.")
5537 (license license:gpl3+)))
5538
5539 (define-public emacs-python-environment
5540 (package
5541 (name "emacs-python-environment")
5542 (version "0.0.2")
5543 (source
5544 (origin
5545 (method git-fetch)
5546 (uri (git-reference
5547 (url "https://github.com/tkf/emacs-python-environment/")
5548 (commit version)))
5549 (file-name (git-file-name name version))
5550 (sha256
5551 (base32 "0q6bib9nr6xiq6npzbngyfcjk87yyvwzq1zirr3z1h5wadm34lsk"))))
5552 (build-system emacs-build-system)
5553 (propagated-inputs
5554 `(("emacs-deferred" ,emacs-deferred)))
5555 (home-page "https://github.com/tkf/emacs-python-environment")
5556 (synopsis "Provides a @code{virtualenv} API in Emacs Lisp")
5557 (description
5558 "This package permits automated installation of tools written in Python.")
5559 (license license:gpl3+)))
5560
5561 (define-public emacs-jedi
5562 (package
5563 (name "emacs-jedi")
5564 (version "0.2.8")
5565 (source (origin
5566 (method git-fetch)
5567 (uri (git-reference
5568 (url "https://github.com/tkf/emacs-jedi/")
5569 (commit (string-append "v" version))))
5570 (file-name (git-file-name name version))
5571 (sha256
5572 (base32
5573 "1bckxppfzd5gwn0aw4h86igb7igal9axqncq7j8zmflg7zppncf1"))))
5574 (build-system emacs-build-system)
5575 (native-inputs
5576 `(("emacs-mocker" ,emacs-mocker)))
5577 (propagated-inputs
5578 `(("emacs-auto-complete" ,emacs-auto-complete)
5579 ("emacs-python-environment" ,emacs-python-environment)
5580 ("emacs-epc" ,emacs-epc)))
5581 (home-page "https://github.com/tkf/emacs-jedi")
5582 (synopsis "Provides Python completion in Emacs")
5583 (description
5584 "This package provides completion in Python buffers and also helps find
5585 the locations of docstrings, arguments, and functions.")
5586 (license license:gpl3+)))
5587
5588 (define-public emacs-company-jedi
5589 (package
5590 (name "emacs-company-jedi")
5591 (version "0.04")
5592 (source (origin
5593 (method git-fetch)
5594 (uri (git-reference
5595 (url "https://github.com/syohex/emacs-company-jedi")
5596 (commit version)))
5597 (file-name (git-file-name name version))
5598 (sha256
5599 (base32
5600 "1ihqapp4dv92794rsgyq0rmhwika60cmradqd4bn9b72ss6plxs1"))))
5601 (build-system emacs-build-system)
5602 (propagated-inputs
5603 `(("emacs-jedi" ,emacs-jedi)
5604 ("emacs-company" ,emacs-company)))
5605 (home-page "https://github.com/syohex/emacs-company-jedi")
5606 (synopsis "Provides Python completion in @code{company-mode}")
5607 (description
5608 "This package provides a Company backend for Python.")
5609 (license license:gpl3+)))
5610
5611 (define-public emacs-puppet-mode
5612 (let ((commit "b3ed5057166a4f49dfa9be638523a348b55a2fd2")
5613 (revision "1"))
5614 (package
5615 (name "emacs-puppet-mode")
5616 ;; The last release, 0.3 was several years ago, and there have been many
5617 ;; commits since
5618 (version (git-version "0.3" revision commit))
5619 (source
5620 (origin
5621 (method url-fetch)
5622 (uri (string-append
5623 "https://raw.githubusercontent.com/voxpupuli/puppet-mode/"
5624 commit "/puppet-mode.el"))
5625 (sha256
5626 (base32
5627 "1indycxawsl0p2aqqg754f6735q3cmah9vd886rpn0ncc3ipi1xm"))))
5628 (build-system emacs-build-system)
5629 (home-page "https://github.com/voxpupuli/puppet-mode")
5630 (synopsis "Emacs major mode for the Puppet configuration language")
5631 (description
5632 "This package provides support for the Puppet configuration language,
5633 including syntax highlighting, indentation of expressions and statements,
5634 linting of manifests and integration with Puppet Debugger.")
5635 ;; Also incorporates work covered by the Apache License, Version 2.0
5636 (license license:gpl3+))))
5637
5638 (define-public emacs-god-mode
5639 (package
5640 (name "emacs-god-mode")
5641 (version "2.17.0")
5642 (source
5643 (origin
5644 (method git-fetch)
5645 (uri (git-reference
5646 (url "https://github.com/chrisdone/god-mode")
5647 (commit version)))
5648 (file-name (git-file-name name version))
5649 (sha256
5650 (base32
5651 "1d2nrj35fzhnycchi0b7m5mbk5fyq7bgpbkkvc5xzqafclrsnapi"))))
5652 (build-system emacs-build-system)
5653 (home-page "https://github.com/chrisdone/god-mode")
5654 (synopsis "Minor mode for entering commands without modifier keys")
5655 (description
5656 "This package provides a global minor mode for entering Emacs commands
5657 without modifier keys. It's similar to Vim's separation of commands and
5658 insertion mode. When enabled all keys are implicitly prefixed with
5659 @samp{C-} (among other helpful shortcuts).")
5660 (license license:gpl3+)))
5661
5662 (define-public emacs-jinja2-mode
5663 (package
5664 (name "emacs-jinja2-mode")
5665 (version "0.2")
5666 (source
5667 (origin
5668 (method git-fetch)
5669 (uri (git-reference
5670 (url "https://github.com/paradoxxxzero/jinja2-mode")
5671 (commit (string-append "v" version))))
5672 (file-name (git-file-name name version))
5673 (sha256
5674 (base32 "0l26wcy496k6xk7q5sf905xir0p73ziy6c44is77854lv3y0z381"))))
5675 (build-system emacs-build-system)
5676 (home-page "https://github.com/paradoxxxzero/jinja2-mode")
5677 (synopsis "Major mode for jinja2")
5678 (description
5679 "Emacs major mode for jinja2 with: syntax highlighting,
5680 sgml/html integration, and indentation (working with sgml).")
5681 (license license:gpl3+)))
5682
5683 (define-public emacs-company-cabal
5684 ;; The latest version is 0.3.0, but no release has been provided after 0.2.1.
5685 (let ((commit "62112a7259e24bd6c08885629a185afe512b7d3d")
5686 (revision "1"))
5687 (package
5688 (name "emacs-company-cabal")
5689 (version (git-version "0.3.0" revision commit))
5690 (source (origin
5691 (method git-fetch)
5692 (uri (git-reference
5693 (url "https://github.com/iquiw/company-cabal/")
5694 (commit commit)))
5695 (file-name (git-file-name name version))
5696 (sha256
5697 (base32
5698 "1gf45xwjzdm8i4q6c6khk4dbg1mmp2r0awz2sjr4dcr2dbd1n7mg"))))
5699 (build-system emacs-build-system)
5700 (propagated-inputs
5701 `(("emacs-company" ,emacs-company)))
5702 (arguments
5703 `(#:include (cons "^tools\\/" %default-include)))
5704 (home-page "https://github.com/iquiw/company-cabal/")
5705 (synopsis "Company completion for Haskell Cabal files")
5706 (description
5707 "This package allows for completion of field names, section names,
5708 field values, and more within @code{haskell-cabal-mode}.")
5709 (license license:gpl3+))))
5710
5711 (define-public emacs-rfcview
5712 (package
5713 (name "emacs-rfcview")
5714 (version "0.13")
5715 (home-page "http://www.loveshack.ukfsn.org/emacs")
5716 (source (origin
5717 (method url-fetch)
5718 (uri "http://www.loveshack.ukfsn.org/emacs/rfcview.el")
5719 (sha256
5720 (base32
5721 "0ympj5rxig383zl2jf0pzdsa80nnq0dpvjiriq0ivfi98fj7kxbz"))))
5722 (build-system emacs-build-system)
5723 (synopsis "Prettify Request for Comments (RFC) documents")
5724 (description "The Internet Engineering Task Force (IETF) and the Internet
5725 Society (ISOC) publish various Internet-related protocols and specifications
5726 as \"Request for Comments\" (RFC) documents and Internet Standard (STD)
5727 documents. RFCs and STDs are published in a simple text form. This package
5728 provides an Emacs major mode, rfcview-mode, which makes it more pleasant to
5729 read these documents in Emacs. It prettifies the text and adds
5730 hyperlinks/menus for easier navigation. It also provides functions for
5731 browsing the index of RFC documents and fetching them from remote servers or
5732 local directories.")
5733 (license license:gpl3+)))
5734
5735 (define-public emacs-ffap-rfc-space
5736 (package
5737 (name "emacs-ffap-rfc-space")
5738 (version "12")
5739 (home-page "https://user42.tuxfamily.org/ffap-rfc-space/index.html")
5740 (source (origin
5741 (method url-fetch)
5742 (uri "http://download.tuxfamily.org/user42/ffap-rfc-space.el")
5743 (sha256
5744 (base32
5745 "1iv61dv57a73mdps7rn6zmgz7nqh14v0ninidyrasy45b1nv6gck"))))
5746 (build-system emacs-build-system)
5747 (synopsis "Make ffap recognize an RFC with a space before its number")
5748 (description "The Internet Engineering Task Force (IETF) and the
5749 Internet Society (ISOC) publish various Internet-related protocols and
5750 specifications as \"Request for Comments\" (RFC) documents. The
5751 built-in Emacs module \"ffap\" (Find File at Point) has the ability to
5752 recognize names at point which look like \"RFC1234\" and \"RFC-1234\"
5753 and load the appropriate RFC from a remote server. However, it fails
5754 to recognize a name like \"RFC 1234\". This package enhances ffap so
5755 that it correctly finds RFCs even when a space appears before the
5756 number.")
5757 (license license:gpl3+)))
5758
5759 (define-public emacs-feature-mode
5760 (let ((version "20190801")
5761 (revision "1")
5762 (commit "11ae1671629bfedaa553c7b819676d64eb320992"))
5763 (package
5764 (name "emacs-feature-mode")
5765 (version (git-version version revision commit))
5766 (source (origin
5767 (method git-fetch)
5768 (uri (git-reference
5769 (url "https://github.com/michaelklishin/cucumber.el")
5770 (commit commit)))
5771 (file-name (git-file-name name version))
5772 (sha256
5773 (base32
5774 "0yd4gkxz9xcbgibfgr8apsid3f83nmg5jgqk5nql0linj5gymc28"))))
5775 (build-system emacs-build-system)
5776 (arguments
5777 `(#:include (cons* "^features\\/" "snippets\\/" "^support\\/"
5778 %default-include)))
5779 (home-page "https://github.com/michaelklishin/cucumber.el/")
5780 (synopsis "Emacs mode for editing Gherkin plain text user stories")
5781 (description "Major mode for editing Gherkin (popularized by the
5782 Cucumber tool) user stories. Also known by the name @code{cucumber.el}.")
5783 (license license:gpl2+))))
5784
5785 (define-public emacs-org-bullets
5786 (package
5787 (name "emacs-org-bullets")
5788 (version "0.2.4")
5789 (source
5790 (origin
5791 (method git-fetch)
5792 (uri (git-reference
5793 (url "https://github.com/sabof/org-bullets")
5794 (commit version)))
5795 (file-name (git-file-name name version))
5796 (sha256
5797 (base32 "10nr4sjffnqbllv6gmak6pviyynrb7pi5nvrq331h5alm3xcpq0w"))))
5798 (build-system emacs-build-system)
5799 (home-page "https://github.com/sabof/org-bullets")
5800 (synopsis "Show bullets in org-mode as UTF-8 characters")
5801 (description
5802 "This package provides an Emacs minor mode causing bullets in
5803 @code{org-mode} to be rendered as UTF-8 characters.")
5804 (license license:gpl3+)))
5805
5806 (define-public emacs-org-drill
5807 (package
5808 (name "emacs-org-drill")
5809 (version "2.7.0")
5810 (source
5811 (origin
5812 (method git-fetch)
5813 (uri (git-reference
5814 (url "https://gitlab.com/phillord/org-drill")
5815 (commit version)))
5816 (file-name (git-file-name name version))
5817 (sha256
5818 (base32 "13y302lyscdqrba1sfx60yf5ji2xi7fbsvjsjbw7hiz63kg6rccy"))))
5819 (build-system emacs-build-system)
5820 (propagated-inputs
5821 `(("emacs-org" ,emacs-org)
5822 ("emacs-persist" ,emacs-persist)))
5823 (home-page "https://gitlab.com/phillord/org-drill")
5824 (synopsis "Flash card memorization system using Org mode")
5825 (description
5826 "This package uses spaced repetition algorithms to conduct interactive
5827 drill sessions to aid in memorization. In these sessions you are shown flash
5828 cards created in Org mode.")
5829 (license license:gpl3+)))
5830
5831 (define-public emacs-org-superstar
5832 (package
5833 (name "emacs-org-superstar")
5834 (version "1.4.0")
5835 (source
5836 (origin
5837 (method git-fetch)
5838 (uri (git-reference
5839 (url "https://github.com/integral-dw/org-superstar-mode")
5840 (commit (string-append "v" version))))
5841 (file-name (git-file-name name version))
5842 (sha256
5843 (base32 "1aklp6nk05ghpq7ybsbvn28wrygfwqvq58k1hjll97nbhd7h0gyb"))))
5844 (build-system emacs-build-system)
5845 (propagated-inputs
5846 `(("emacs-org" ,emacs-org)))
5847 (home-page "https://github.com/integral-dw/org-superstar-mode")
5848 (synopsis "Prettify headings and plain lists in Org mode")
5849 (description "This package prettifies headings and plain lists in
5850 Org mode. It is a direct descendant of @code{org-bullets}, with most
5851 of the code base completely rewritten.
5852
5853 Currently, this package prettifies Org heading lines by:
5854 @itemize
5855 @item replacing trailing bullets by UTF-8 bullets,
5856 @item hiding leading stars, customizing their look or removing them from vision,
5857 @item applying a custom face to the header bullet,
5858 @item applying a custom face to the leading bullets,
5859 @item using double-bullets for inline tasks,
5860 @item (optional) using special bullets for TODO keywords.
5861 @end itemize
5862
5863 It also prettifies Org plain list bullets by:
5864 @itemize
5865 @item replacing each bullet type (*, + and -) with UTF-8 bullets,
5866 @item applying a custom face to item bullets.
5867 @end itemize
5868
5869 Features degrade gracefully when viewed from terminal.")
5870 (license license:gpl3+)))
5871
5872 (define-public emacs-org-pomodoro
5873 ;; Last release version was from 2016.
5874 (let ((commit "aa07c11318f91219336197e62c47bc7a3d090479")
5875 (revision "1"))
5876 (package
5877 (name "emacs-org-pomodoro")
5878 (version (git-version "2.1.0" revision commit))
5879 (source
5880 (origin
5881 (method git-fetch)
5882 (uri (git-reference
5883 (url "https://github.com/marcinkoziej/org-pomodoro")
5884 (commit commit)))
5885 (file-name (git-file-name name version))
5886 (sha256
5887 (base32 "0nbprh2nhnmb7ngp9ndr6zr37ashcsvpi5slv7a37x1dl7j6w1k4"))))
5888 (build-system emacs-build-system)
5889 (propagated-inputs
5890 `(("emacs-alert" ,emacs-alert)))
5891 (arguments
5892 `(#:include (cons "^resources\\/" %default-include)
5893 #:tests? #t
5894 #:test-command '("emacs" "--batch"
5895 "-l" "org-pomodoro-tests.el"
5896 "-f" "ert-run-tests-batch-and-exit")
5897 #:phases
5898 (modify-phases %standard-phases
5899 (add-before 'check 'make-tests-writable
5900 (lambda _
5901 (make-file-writable "org-pomodoro-tests.el")
5902 #t))
5903 (add-before 'check 'add-require
5904 (lambda _
5905 (emacs-batch-edit-file "org-pomodoro-tests.el"
5906 `(progn (progn (goto-char (point-min))
5907 (re-search-forward
5908 "ert-deftest")
5909 (beginning-of-line)
5910 (forward-line -1)
5911 (insert "(require 'org-pomodoro)"))
5912 (basic-save-buffer)))
5913 #t)))))
5914 (home-page "https://github.com/marcinkoziej/org-pomodoro")
5915 (synopsis "Pomodoro technique for org-mode")
5916 (description "@code{emacs-org-pomodoro} adds very basic support for
5917 Pomodoro technique in Emacs org-mode.
5918
5919 Run @code{M-x org-pomodoro} for the task at point or select one of the
5920 last tasks that you clocked time for. Each clocked-in pomodoro starts
5921 a timer of 25 minutes and after each pomodoro a break timer of 5
5922 minutes is started automatically. Every 4 breaks a long break is
5923 started with 20 minutes. All values are customizable.")
5924 (license license:gpl3+))))
5925
5926 (define-public emacs-org-sidebar
5927 (package
5928 (name "emacs-org-sidebar")
5929 (version "0.2")
5930 (source
5931 (origin
5932 (method git-fetch)
5933 (uri (git-reference
5934 (url "https://github.com/alphapapa/org-sidebar")
5935 (commit version)))
5936 (file-name (git-file-name name version))
5937 (sha256
5938 (base32 "106h06vjfbqfj761vbxwymd6612ds8c6fk053yzgbrqzm3hn2c03"))))
5939 (build-system emacs-build-system)
5940 (propagated-inputs
5941 `(("emacs-dash" ,emacs-dash)
5942 ("emacs-org-super-agenda" ,emacs-org-super-agenda)
5943 ("emacs-org" ,emacs-org)
5944 ("emacs-org-ql" ,emacs-org-ql)
5945 ("emacs-s" ,emacs-s)))
5946 (home-page "https://github.com/alphapapa/org-sidebar")
5947 (synopsis "Helpful sidebar for Org buffers")
5948 (description "This package provides a sidebar for Org buffers. At the
5949 top is a chronological list of scheduled and deadlined tasks in the current
5950 buffer (similar to the Org agenda ,but without all its features), and below
5951 that is a list of all other non-done to-do items. If the buffer is narrowed,
5952 the sidebar only shows items in the narrowed portion; this allows seeing an
5953 overview of tasks in a subtree.")
5954 (license license:gpl3+)))
5955
5956 (define-public emacs-org-trello
5957 (package
5958 (name "emacs-org-trello")
5959 (version "0.8.1")
5960 (source
5961 (origin
5962 (method git-fetch)
5963 (uri (git-reference
5964 (url "https://github.com/org-trello/org-trello")
5965 (commit version)))
5966 (file-name (git-file-name name version))
5967 (sha256
5968 (base32
5969 "02gx3kv4mkij69ln8x8wf9n28x17pbb4kv85v78d3lxph7ykqimc"))))
5970 (build-system emacs-build-system)
5971 (propagated-inputs
5972 `(("emacs-dash" ,emacs-dash)
5973 ("emacs-deferred" ,emacs-deferred)
5974 ("emacs-f" ,emacs-f)
5975 ("emacs-helm" ,emacs-helm)
5976 ("emacs-request" ,emacs-request)
5977 ("emacs-s" ,emacs-s)))
5978 (home-page "https://org-trello.github.io")
5979 (synopsis "Emacs minor mode for interacting with Trello")
5980 (description "This package provides an Emacs minor mode to extend
5981 @code{org-mode} with Trello abilities. Trello is an online project
5982 organizer.")
5983 (license license:gpl3+)))
5984
5985 (define-public emacs-org-tanglesync
5986 (let ((commit "d99181f173b4e55b4e835d99fcd415e62beb047f")
5987 (revision "2"))
5988 (package
5989 (name "emacs-org-tanglesync")
5990 (version (git-version "0.6" revision commit))
5991 (source
5992 (origin
5993 (method git-fetch)
5994 (uri (git-reference
5995 (url "https://github.com/mtekman/org-tanglesync.el")
5996 (commit commit)))
5997 (file-name (git-file-name name version))
5998 (sha256
5999 (base32 "0x94gy1bgfd1f3p9w2bfrqj11bwy9ql0cpi1gw6srpj7kykx0lml"))))
6000 (build-system emacs-build-system)
6001 (propagated-inputs
6002 `(("emacs-org" ,emacs-org)))
6003 (home-page "https://github.com/mtekman/org-tanglesync.el")
6004 (synopsis "Sync Org source blocks with tangled external files")
6005 (description "This package automatically pulls changes from source code
6006 to their corresponding tangled blocks.")
6007 (license license:gpl3+))))
6008
6009 (define-public emacs-company-flow
6010 (let ((commit "76ef585c70d2a3206c2eadf24ba61e59124c3a16")
6011 (revision "1"))
6012 (package
6013 (name "emacs-company-flow")
6014 (version (git-version "0.1.0" revision commit))
6015 (source (origin
6016 (method git-fetch)
6017 (uri (git-reference
6018 (url "https://github.com/aaronjensen/company-flow/")
6019 (commit commit)))
6020 (file-name (git-file-name name version))
6021 (sha256
6022 (base32
6023 "0zs9cblnbkxa0dxw4lyllmybqizxcdx96gv8jlhx20nrjpi78piw"))))
6024 (build-system emacs-build-system)
6025 (propagated-inputs
6026 `(("emacs-company" ,emacs-company)
6027 ("emacs-dash" ,emacs-dash)))
6028 (home-page "https://github.com/aaronjensen/company-flow/")
6029 (synopsis "Flow backend for @code{company-mode}")
6030 (description
6031 "This package provides completion for JavaScript files utilizing Flow.")
6032 (license license:gpl3+))))
6033
6034 (define-public emacs-habitica
6035 (let ((commit "c45c602ddf9d6cbb0e3baf5cb3e1b7ef90f2759d")
6036 (revision "1"))
6037 (package
6038 (name "emacs-habitica")
6039 (version (git-version "1.0" revision commit))
6040 (source
6041 (origin
6042 (method git-fetch)
6043 (uri (git-reference
6044 (url "https://github.com/abrochard/emacs-habitica")
6045 (commit commit)))
6046 (file-name (git-file-name name version))
6047 (sha256
6048 (base32
6049 "0wgnzn3z98bl28jgqi7xklw9fwx2wwgihj3mq0jb8ah4vn70d0j3"))))
6050 (build-system emacs-build-system)
6051 (home-page "https://github.com/abrochard/emacs-habitica")
6052 (synopsis "Emacs interface for Habitica")
6053 (description "Emacs extension for @uref{https://habitica.com/, Habitica},
6054 a RPG style habit tracker and todo list.")
6055 (license license:gpl3+))))
6056
6057 (define-public emacs-atom-one-dark-theme
6058 (let ((commit "1f1185bf667a38d3d0d180ce85fd4c131818aae2")
6059 (revision "0"))
6060 (package
6061 (name "emacs-atom-one-dark-theme")
6062 (version (git-version "0.4.0" revision commit))
6063 (source (origin
6064 (method git-fetch)
6065 (uri (git-reference
6066 (url "https://github.com/jonathanchu/atom-one-dark-theme")
6067 (commit commit)))
6068 (sha256
6069 (base32
6070 "1alma16hg3mfjly8a9s3mrswkjjx4lrpdnf43869hn2ibkn7zx9z"))
6071 (file-name (git-file-name name version))))
6072 (build-system emacs-build-system)
6073 (home-page "https://github.com/jonathanchu/atom-one-dark-theme")
6074 (synopsis "Atom One Dark color theme for Emacs")
6075 (description "An Emacs port of the Atom One Dark theme from Atom.io.")
6076 (license license:gpl3+))))
6077
6078 (define-public emacs-zenburn-theme
6079 (package
6080 (name "emacs-zenburn-theme")
6081 (version "2.6")
6082 (source
6083 (origin
6084 (method git-fetch)
6085 (uri (git-reference
6086 (url "https://github.com/bbatsov/zenburn-emacs")
6087 (commit (string-append "v" version))))
6088 (file-name (git-file-name name version))
6089 (sha256
6090 (base32 "1n87r5hs7h5r8dgfid66skpzcypl9hssr9m3npp916g6jfsi782f"))))
6091 (build-system emacs-build-system)
6092 (home-page "https://github.com/bbatsov/zenburn-emacs")
6093 (synopsis "Low contrast color theme for Emacs")
6094 (description
6095 "Zenburn theme is a port of the popular Vim Zenburn theme for Emacs.
6096 It is built on top of the custom theme support in Emacs 24 or later.")
6097 (license license:gpl3+)))
6098
6099 (define-public emacs-moe-theme-el
6100 (let ((commit "6e086d855d6bb446bbd1090742815589a81a915f")
6101 (version "1.0")
6102 (revision "1"))
6103 (package
6104 (name "emacs-moe-theme-el")
6105 (version (git-version version revision commit))
6106 (source
6107 (origin
6108 (method git-fetch)
6109 (uri (git-reference
6110 (url "https://github.com/kuanyui/moe-theme.el")
6111 (commit commit)))
6112 (file-name (git-file-name name version))
6113 (sha256
6114 (base32 "0xj4wfd7h4jqnr193pizm9frf6lmwjr0dsdv2l9mqh9k691z1dnc"))))
6115 (build-system emacs-build-system)
6116 (home-page "https://github.com/kuanyui/moe-theme.el")
6117 (synopsis "Anime-inspired color themes")
6118 (description
6119 "This package provides vibrant color schemes with light and dark
6120 variants.")
6121 (license license:gpl3+))))
6122
6123 (define-public emacs-solarized-theme
6124 (package
6125 (name "emacs-solarized-theme")
6126 (version "1.3.1")
6127 (source
6128 (origin
6129 (method git-fetch)
6130 (uri (git-reference
6131 (url "https://github.com/bbatsov/solarized-emacs/")
6132 (commit (string-append "v" version))))
6133 (file-name (git-file-name name version))
6134 (sha256
6135 (base32 "15ql8xcixgm7mbs7rsbybwszanqibq057j5b5ds89a31dw7zxf1g"))))
6136 (build-system emacs-build-system)
6137 (propagated-inputs
6138 `(("emacs-dash" ,emacs-dash)))
6139 (home-page "https://github.com/bbatsov/solarized-emacs")
6140 (synopsis "Port of the Solarized theme for Emacs")
6141 (description
6142 "Solarized for Emacs is a port of the Solarized theme for Vim. This
6143 package provides a light and a dark variant.")
6144 (license license:gpl3+)))
6145
6146 (define-public emacs-poet-theme
6147 (let ((commit "d84f7b259cc9b6ff8d442cf4c38bd6c7065ff8f4")
6148 (revision "0"))
6149 (package
6150 (name "emacs-poet-theme")
6151 (version (git-version "0" revision commit))
6152 (source
6153 (origin
6154 (method git-fetch)
6155 (uri (git-reference
6156 (url "https://github.com/kunalb/poet")
6157 (commit commit)))
6158 (file-name (git-file-name name version))
6159 (sha256
6160 (base32
6161 "0a84jdaj619mb59a46dmkk2sfs42rylqk9ryl1drgs8d3lia79mz"))))
6162 (build-system emacs-build-system)
6163 (home-page "https://github.com/kunalb/poet/")
6164 (synopsis "Emacs theme for prose")
6165 (description
6166 "Emacs has very good support for multiple fonts in a single file. Poet
6167 uses this support to make it much more convenient to write prose within Emacs,
6168 with particular attention paid to @code{org-mode} and @code{markdown-mode}.
6169 Code blocks, tables, etc are formatted in monospace text with the appropriate
6170 backgrounds.")
6171 (license license:expat))))
6172
6173 (define-public emacs-ahungry-theme
6174 (package
6175 (name "emacs-ahungry-theme")
6176 (version "1.10.0")
6177 (source
6178 (origin (method url-fetch)
6179 (uri (string-append "https://elpa.gnu.org/packages/ahungry-theme-"
6180 version ".tar"))
6181 (sha256
6182 (base32
6183 "14q5yw56n82qph09bk7wmj5b1snhh9w0nk5s1l7yn9ldg71xq6pm"))))
6184 (build-system emacs-build-system)
6185 (home-page "https://github.com/ahungry/color-theme-ahungry")
6186 (synopsis "Ahungry color theme for Emacs")
6187 (description "Ahungry theme for Emacs provides bright and bold colors.
6188 If you load it from a terminal, you will be able to make use of the
6189 transparent background. If you load it from a GUI, it will default to a
6190 dark background.")
6191 (license license:gpl3+)))
6192
6193 (define-public emacs-gruvbox-theme
6194 (package
6195 (name "emacs-gruvbox-theme")
6196 (version "1.28.0")
6197 (source (origin
6198 (method git-fetch)
6199 (uri (git-reference
6200 (url "https://github.com/greduan/emacs-theme-gruvbox")
6201 (commit version)))
6202 (file-name (git-file-name name version))
6203 (sha256
6204 (base32
6205 "00qq92gp1g55pzm97rh7k0dgxy44pxziridl8kqm4rbpi31r7k9p"))))
6206 (build-system emacs-build-system)
6207 (propagated-inputs
6208 `(("emacs-autothemer" ,emacs-autothemer)))
6209 (home-page "https://github.com/greduan/emacs-theme-gruvbox")
6210 (synopsis "Gruvbox is a retro groove color scheme ported from Vim")
6211 (description
6212 "Gruvbox is heavily inspired by badwolf, jellybeans and solarized.
6213
6214 Designed as a bright theme with pastel 'retro groove' colors and light/dark
6215 mode switching in the way of solarized. The main focus when developing gruvbox
6216 is to keep colors easily distinguishable, contrast enough and still pleasant
6217 for the eyes.")
6218 (license license:expat))) ; MIT license
6219
6220 (define-public emacs-spacegray-theme
6221 (let ((commit "9826265c2bceb2ebc1c5e16a45021da0253ace97")
6222 (revision "0"))
6223 (package
6224 (name "emacs-spacegray-theme")
6225 (version (git-version "0" revision commit))
6226 (source (origin
6227 (method git-fetch)
6228 (uri (git-reference
6229 (url "https://github.com/bruce/emacs-spacegray-theme")
6230 (commit commit)))
6231 (file-name (git-file-name name version))
6232 (sha256
6233 (base32
6234 "0aplwmm17ypbns5blc4rf5rr6dasj0zp5ibykpfl43fh4bd8z89n"))))
6235 (build-system emacs-build-system)
6236 (home-page "https://github.com/bruce/emacs-spacegray-theme")
6237 (synopsis "Port of Sublime Text's Spacegray theme for Emacs")
6238 (description
6239 "@code{spacegray-theme} is an Emacs port of the Spacegray theme from
6240 Sublime Text. It features a dark blue/gray background and soft blue, green,
6241 orange and red as accent colors.")
6242 (license license:expat)))) ; MIT license
6243
6244 (define-public emacs-2048-game
6245 (package
6246 (name "emacs-2048-game")
6247 (version "20151026.1233")
6248 (source
6249 (origin
6250 (method url-fetch)
6251 (uri (string-append "https://melpa.org/packages/2048-game-"
6252 version ".el"))
6253 (sha256
6254 (base32
6255 "0gy2pvz79whpavp4jmz8h9krzn7brmvv3diixi1d4w51pcdvaldd"))))
6256 (build-system emacs-build-system)
6257 (home-page "https://hg.sr.ht/~zck/game-2048")
6258 (synopsis "Implementation of the game 2048 in Emacs Lisp")
6259 (description
6260 "This program is an implementation of 2048 for Emacs.
6261 The goal of this game is to create a tile with value 2048. The size of the
6262 board and goal value can be customized.")
6263 (license license:gpl3+)))
6264
6265 (define-public emacs-chess
6266 (package
6267 (name "emacs-chess")
6268 (version "2.0.4")
6269 (source
6270 (origin
6271 (method url-fetch)
6272 (uri (string-append "https://elpa.gnu.org/packages/"
6273 "chess-" version ".tar"))
6274 (sha256
6275 (base32 "1sq1bjmp513vldfh7hc2bbfc54665abqiz0kqgqq3gijckaxn5js"))))
6276 (build-system emacs-build-system)
6277 (arguments
6278 `(#:phases
6279 (modify-phases %standard-phases
6280 (add-after 'install 'install-pieces
6281 (lambda* (#:key outputs #:allow-other-keys)
6282 (let* ((out (assoc-ref outputs "out"))
6283 (pieces
6284 (string-append out "/share/emacs/site-lisp/pieces")))
6285 (mkdir-p pieces)
6286 (copy-recursively "pieces" pieces)
6287 #t))))))
6288 (home-page "https://elpa.gnu.org/packages/chess.html")
6289 (synopsis "Play chess in GNU Emacs")
6290 (description
6291 "Chess is an Emacs Lisp library and several clients on top of the
6292 underlying library functionality for performing various activities related to
6293 the game of chess.")
6294 (license license:gpl3+)))
6295
6296 (define-public emacs-4clojure
6297 ;; There is no release. Base version is extracted from Version keyword in
6298 ;; the main file.
6299 (let ((commit "4eccf8c7d4341a36c269451838114b27836699f9")
6300 (revision "1"))
6301 (package
6302 (name "emacs-4clojure")
6303 (version (git-version "0.2.1" revision commit))
6304 (source
6305 (origin
6306 (method git-fetch)
6307 (uri (git-reference
6308 (url "https://github.com/emacsorphanage/4clojure")
6309 (commit commit)))
6310 (file-name (git-file-name name version))
6311 (sha256
6312 (base32 "19x653lzc1dxil4ix257hciidbdmbhaxhs6qhlkwi9ygjrlrgvnk"))))
6313 (build-system emacs-build-system)
6314 (propagated-inputs
6315 `(("emacs-request" ,emacs-request)))
6316 (home-page "https://github.com/emacsorphanage/4clojure/")
6317 (synopsis "Open and evaluate 4clojure questions in Emacs")
6318 (description "Emacs 4clojure interacts with
6319 @url{http://www.4clojure.com, 4clojure} problems. You can open a specific
6320 question and move to the next or previous one. You can also verify your
6321 answers.")
6322 (license license:gpl3+))))
6323
6324 (define-public emacs-base16-theme
6325 (package
6326 (name "emacs-base16-theme")
6327 (version "2.2")
6328 (source
6329 (origin
6330 (method git-fetch)
6331 (uri (git-reference
6332 (url "https://github.com/belak/base16-emacs")
6333 (commit version)))
6334 (file-name (git-file-name name version))
6335 (sha256
6336 (base32 "01w89g413s1da6rf94y1xnhw79cjy2bqb01yfjs58cy492cm0vr6"))))
6337 (build-system emacs-build-system)
6338 (home-page "https://github.com/belak/base16-emacs")
6339 (synopsis "Base16 color themes for Emacs")
6340 (description
6341 "Base16 provides carefully chosen syntax highlighting and a default set
6342 of sixteen colors suitable for a wide range of applications. Base16 is not a
6343 single theme but a set of guidelines with numerous implementations.")
6344 (license license:expat)))
6345
6346 (define-public emacs-solaire-mode
6347 (package
6348 (name "emacs-solaire-mode")
6349 (version "1.0.9")
6350 (source
6351 (origin
6352 (method git-fetch)
6353 (uri (git-reference
6354 (url "https://github.com/hlissner/emacs-solaire-mode")
6355 (commit (string-append "v" version))))
6356 (file-name (git-file-name name version))
6357 (sha256
6358 (base32 "011m4r7s6i9lgjymh7jgq5jwwrpz4vmpvp3c8d4ix96v5hi04kzg"))))
6359 (build-system emacs-build-system)
6360 (home-page "https://github.com/hlissner/emacs-solaire-mode")
6361 (synopsis "Change background of file-visiting buffers in Emacs")
6362 (description
6363 "@code{solaire-mode} is inspired by editors which visually distinguish
6364 code-editing windows from sidebars, popups, terminals, ecetera. It changes the
6365 background of file-visiting buffers (and certain aspects of the UI) to make
6366 them easier to distinguish from other, less important buffers.")
6367 (license license:expat)))
6368
6369 (define-public emacs-prescient
6370 (package
6371 (name "emacs-prescient")
6372 (version "5.0")
6373 (source
6374 (origin
6375 (method git-fetch)
6376 (uri (git-reference
6377 (url "https://github.com/raxod502/prescient.el")
6378 (commit (string-append "v" version))))
6379 (file-name (git-file-name name version))
6380 (sha256
6381 (base32 "001q4l730bhw4d508jxlpzh1z459qzpg6rbncp12jrfm5yidksix"))))
6382 (build-system emacs-build-system)
6383 (propagated-inputs
6384 `(("emacs-company" ,emacs-company)
6385 ("emacs-ivy" ,emacs-ivy)
6386 ("emacs-selectrum" ,emacs-selectrum)))
6387 (home-page "https://github.com/raxod502/prescient.el/")
6388 (synopsis "Emacs library for sorting and filtering candidates")
6389 (description
6390 "Prescient is a library for sorting and filtering, as well as extensions
6391 for Ivy and Company that make use of the library.")
6392 (license license:expat)))
6393
6394 (define-public emacs-selectrum
6395 (package
6396 (name "emacs-selectrum")
6397 (version "2.0")
6398 (source
6399 (origin
6400 (method git-fetch)
6401 (uri (git-reference
6402 (url "https://github.com/raxod502/selectrum")
6403 (commit (string-append "v" version))))
6404 (file-name (git-file-name name version))
6405 (sha256
6406 (base32 "08wm4ybidn8g7sy5a009lnsm0f1p7a3jfzpzxnzylvnyrmyhi3y4"))))
6407 (build-system emacs-build-system)
6408 (home-page "https://github.com/raxod502/selectrum/")
6409 (synopsis "Incremental narrowing in Emacs")
6410 (description "Selectrum is a solution for incremental narrowing in
6411 Emacs, replacing Helm, Ivy, and IDO. Its design philosophy is based
6412 on choosing the right abstractions and prioritizing consistency and
6413 predictability over special-cased improvements for particular cases.
6414 As such, Selectrum follows existing Emacs conventions where they exist
6415 and are reasonable, and it declines to implement features which have
6416 marginal benefit compared to the additional complexity of a new
6417 interface.")
6418 (license license:expat)))
6419
6420 (define-public emacs-smartparens
6421 (package
6422 (name "emacs-smartparens")
6423 (version "1.11.0")
6424 (source
6425 (origin
6426 (method git-fetch)
6427 (uri (git-reference
6428 (url "https://github.com/Fuco1/smartparens")
6429 (commit version)))
6430 (file-name (git-file-name name version))
6431 (sha256
6432 (base32 "0zij2f2rjjym98w68jkp10n1ckpfprlkk217c3fg16hz5nq4vnm6"))))
6433 (build-system emacs-build-system)
6434 (propagated-inputs
6435 `(("emacs-dash" ,emacs-dash)
6436 ("emacs-markdown-mode" ,emacs-markdown-mode)))
6437 (home-page "https://github.com/Fuco1/smartparens")
6438 (synopsis "Paredit-like insertion, wrapping and navigation with user
6439 defined pairs")
6440 (description
6441 "Smartparens is a minor mode for Emacs that deals with parens pairs
6442 and tries to be smart about it. It started as a unification effort to
6443 combine functionality of several existing packages in a single,
6444 compatible and extensible way to deal with parentheses, delimiters, tags
6445 and the like. Some of these packages include autopair, textmate,
6446 wrap-region, electric-pair-mode, paredit and others. With the basic
6447 features found in other packages it also brings many improvements as
6448 well as completely new features.")
6449 (license license:gpl3+)))
6450
6451 (define-public emacs-highlight-symbol
6452 ;; We prefer a more recent commit that provides an option to squelch
6453 ;; echo-area alerts that can drown out useful information like eldoc
6454 ;; messages.
6455 (let ((commit "7a789c779648c55b16e43278e51be5898c121b3a")
6456 (version "1.3")
6457 (revision "1"))
6458 (package
6459 (name "emacs-highlight-symbol")
6460 (version (git-version version revision commit))
6461 (source
6462 (origin
6463 (method git-fetch)
6464 (uri (git-reference
6465 (url "https://github.com/nschum/highlight-symbol.el")
6466 (commit commit)))
6467 (file-name (git-file-name name version))
6468 (sha256
6469 (base32 "19cgyk0sh8nsmf3jbi92i8qsdx4l4yilfq5jj9zfdbj9p5gvwx96"))))
6470 (build-system emacs-build-system)
6471 (home-page "https://nschum.de/src/emacs/highlight-symbol/")
6472 (synopsis "Automatic and manual symbol highlighting for Emacs")
6473 (description
6474 "Use @code{highlight-symbol} to toggle highlighting of the symbol at
6475 point throughout the current buffer. Use @code{highlight-symbol-mode} to keep
6476 the symbol at point highlighted.
6477
6478 The functions @code{highlight-symbol-next}, @code{highlight-symbol-prev},
6479 @code{highlight-symbol-next-in-defun} and
6480 @code{highlight-symbol-prev-in-defun} allow for cycling through the locations
6481 of any symbol at point. Use @code{highlight-symbol-nav-mode} to enable key
6482 bindings @code{M-p} and @code{M-p} for navigation. When
6483 @code{highlight-symbol-on-navigation-p} is set, highlighting is triggered
6484 regardless of @code{highlight-symbol-idle-delay}.
6485
6486 @code{highlight-symbol-query-replace} can be used to replace the symbol. ")
6487 (license license:gpl2+))))
6488
6489 (define-public emacs-symbol-overlay
6490 (let ((commit "e40a7c407f24158c45eaa5f54ed41f5e416a51dc")
6491 (revision "1"))
6492 (package
6493 (name "emacs-symbol-overlay")
6494 (version (git-version "4.1" revision commit))
6495 (source
6496 (origin
6497 (method git-fetch)
6498 (uri (git-reference
6499 (url "https://github.com/wolray/symbol-overlay")
6500 (commit commit)))
6501 (file-name (git-file-name name version))
6502 (sha256
6503 (base32 "0ibz3392d3jw1l8006h9kf8s7bg6vl7jc92bmqc031a433009ic7"))))
6504 (build-system emacs-build-system)
6505 (home-page "https://github.com/wolray/symbol-overlay")
6506 (synopsis "Highlight symbols and perform various search operations on them")
6507 (description
6508 "This package provides functions for highlighting and navigating
6509 between symbols.")
6510 (license license:gpl3+))))
6511
6512 (define-public emacs-hl-todo
6513 (package
6514 (name "emacs-hl-todo")
6515 (version "3.1.2")
6516 (source (origin
6517 (method git-fetch)
6518 (uri (git-reference
6519 (url "https://github.com/tarsius/hl-todo")
6520 (commit (string-append "v" version))))
6521 (file-name (git-file-name name version))
6522 (sha256
6523 (base32
6524 "1i5mdmkbrxqx75grwl01pywbgl8pasr00mq6fidspp0aligsbg6w"))))
6525 (build-system emacs-build-system)
6526 (home-page "https://github.com/tarsius/hl-todo")
6527 (synopsis "Emacs mode to highlight TODO and similar keywords")
6528 (description
6529 "This package provides an Emacs mode to highlight TODO and similar
6530 keywords in comments and strings. This package also provides commands for
6531 moving to the next or previous keyword and to invoke @code{occur} with a
6532 regexp that matches all known keywords.")
6533 (license license:gpl3+)))
6534
6535 (define-public emacs-perspective
6536 (package
6537 (name "emacs-perspective")
6538 (version "2.11")
6539 (source
6540 (origin
6541 (method git-fetch)
6542 (uri (git-reference
6543 (url "https://github.com/nex3/perspective-el")
6544 (commit version)))
6545 (file-name (git-file-name name version))
6546 (sha256
6547 (base32
6548 "0nka5z6226r174ligja023qx2bb1pfyjbanafxprbyxkr17b2794"))))
6549 (build-system emacs-build-system)
6550 (arguments
6551 `(#:tests? #t
6552 #:test-command '("emacs" "-Q" "-batch" "-L" "."
6553 "-l" "test/test-perspective.el"
6554 "-f" "ert-run-tests-batch-and-exit")))
6555 (home-page "https://github.com/nex3/perspective-el")
6556 (synopsis "Switch between named \"perspectives\"")
6557 (description
6558 "This package provides tagged workspaces in Emacs, similar to workspaces in
6559 windows managers such as Awesome and XMonad. @code{perspective.el} provides
6560 multiple workspaces (or \"perspectives\") for each Emacs frame. Each
6561 perspective is composed of a window configuration and a set of buffers.
6562 Switching to a perspective activates its window configuration, and when in a
6563 perspective only its buffers are available by default.")
6564 ;; This package is released under the same license as Emacs (GPLv3+) or
6565 ;; the Expat license.
6566 (license license:gpl3+)))
6567
6568 (define-public emacs-persp-mode
6569 (package
6570 (name "emacs-persp-mode")
6571 (version "2.9.8")
6572 (source
6573 (origin
6574 (method git-fetch)
6575 (uri (git-reference
6576 (url "https://github.com/Bad-ptr/persp-mode.el")
6577 (commit (string-append "v" version))))
6578 (file-name (git-file-name name version))
6579 (sha256
6580 (base32
6581 "0b4y7a6j70s9lvr37riyy9k5kh3yvmx0m6nd9c0c8572ji4ij65g"))))
6582 (build-system emacs-build-system)
6583 (home-page "https://github.com/Bad-ptr/persp-mode.el")
6584 (synopsis "Switch between named \"perspectives\" shared among frames")
6585 (description
6586 "This package extends @code{perspective.el} to enable perspectives that
6587 can be saved to and restored from a file.")
6588 (license license:gpl2+)))
6589
6590 (define-public emacs-test-simple
6591 (package
6592 (name "emacs-test-simple")
6593 (version "1.3.0")
6594 (source
6595 (origin
6596 (method url-fetch)
6597 (uri (string-append "https://elpa.gnu.org/packages/test-simple-"
6598 version ".el"))
6599 (sha256
6600 (base32
6601 "1yd61jc9ds95a5n09052kwc5gasy57g4lxr0jsff040brlyi9czz"))))
6602 (build-system emacs-build-system)
6603 (home-page "https://github.com/rocky/emacs-test-simple")
6604 (synopsis "Simple unit test framework for Emacs Lisp")
6605 (description
6606 "Test Simple is a simple unit test framework for Emacs Lisp. It
6607 alleviates the need for context macros, enclosing specifications or required
6608 test tags. It supports both interactive and non-interactive use.")
6609 (license license:gpl3+)))
6610
6611 (define-public emacs-load-relative
6612 (package
6613 (name "emacs-load-relative")
6614 (version "1.3.1")
6615 (source
6616 (origin
6617 (method url-fetch)
6618 (uri (string-append "https://elpa.gnu.org/packages/load-relative-"
6619 version ".el"))
6620 (sha256
6621 (base32 "1m37scr82lqqy954fchjxrmdh4lngrl4d1yzxhp3yfjhsydizhrj"))))
6622 (build-system emacs-build-system)
6623 (home-page "https://github.com/rocky/emacs-load-relative")
6624 (synopsis "Emacs Lisp relative file loading related functions")
6625 (description
6626 "Provides functions which facilitate writing multi-file Emacs packages
6627 and running from the source tree without having to \"install\" code or fiddle
6628 with @{load-path}.
6629
6630 The main function, @code{load-relative}, loads an Emacs Lisp file relative to
6631 another (presumably currently running) Emacs Lisp file.")
6632 (license license:gpl3+)))
6633
6634 (define-public emacs-loc-changes
6635 (package
6636 (name "emacs-loc-changes")
6637 (version "1.2")
6638 (source
6639 (origin
6640 (method url-fetch)
6641 (uri (string-append "https://elpa.gnu.org/packages/loc-changes-"
6642 version ".el"))
6643 (sha256
6644 (base32
6645 "1x8fn8vqasayf1rb8a6nma9n6nbvkx60krmiahyb05vl5rrsw6r3"))))
6646 (build-system emacs-build-system)
6647 (home-page "https://github.com/rocky/emacs-loc-changes")
6648 (synopsis "Keeps track of positions even after buffer changes")
6649 (description
6650 "This Emacs package provides a mean to track important buffer positions
6651 after buffer changes.")
6652 (license license:gpl3+)))
6653
6654 (define-public emacs-realgud
6655 (package
6656 (name "emacs-realgud")
6657 (version "1.5.1")
6658 (source
6659 (origin
6660 (method git-fetch)
6661 (uri (git-reference
6662 (url "https://github.com/realgud/realgud/")
6663 (commit version)))
6664 (sha256
6665 (base32
6666 "1d3s23jk0i34wpyxfajydgyyvsxnpbqrfl0mgydsq7zw2c75ylnq"))
6667 (file-name (git-file-name name version))))
6668 (build-system emacs-build-system)
6669 (arguments
6670 `(#:tests? #t
6671 #:phases
6672 (modify-phases %standard-phases
6673 (add-after 'unpack 'fix-realgud:run-process-void-error
6674 ;; See: https://github.com/realgud/realgud/issues/269.
6675 (lambda _
6676 (substitute* '("realgud/debugger/gdb/gdb.el"
6677 "realgud/debugger/gub/gub.el")
6678 (("^\\(require 'load-relative\\).*" anchor)
6679 (string-append anchor
6680 "(require-relative-list \
6681 '(\"../../common/run\") \"realgud:\")\n")))
6682 #t))
6683 (add-after 'unpack 'fix-autogen-script
6684 (lambda _
6685 (substitute* "autogen.sh"
6686 (("./configure") "sh configure"))
6687 #t))
6688 (add-after 'fix-autogen-script 'autogen
6689 (lambda _
6690 (setenv "CONFIG_SHELL" "sh")
6691 (invoke "sh" "autogen.sh")))
6692 (add-after 'fix-autogen-script 'set-home
6693 (lambda _
6694 (setenv "HOME" (getenv "TMPDIR"))
6695 #t))
6696 (add-before 'patch-el-files 'remove-realgud-pkg.el
6697 (lambda _
6698 ;; FIXME: `patch-el-files' crashes on this file with error:
6699 ;; unable to locate "bashdb".
6700 (delete-file "./test/test-regexp-bashdb.el")
6701 #t)))
6702 #:include (cons* ".*\\.el$" %default-include)))
6703 (native-inputs
6704 `(("autoconf" ,autoconf)
6705 ("automake" ,automake)
6706 ("emacs-test-simple" ,emacs-test-simple)))
6707 (propagated-inputs
6708 `(("emacs-load-relative" ,emacs-load-relative)
6709 ("emacs-loc-changes" ,emacs-loc-changes)))
6710 (home-page "https://github.com/realgud/realgud/")
6711 (synopsis
6712 "Modular front-end for interacting with external debuggers")
6713 (description
6714 "RealGUD is a modular, extensible GNU Emacs front-end for interacting
6715 with external debuggers. It integrates various debuggers such as gdb, pdb,
6716 ipdb, jdb, lldb, bashdb, zshdb, etc. and allows to visually step code in the
6717 sources. Unlike GUD, it also supports running multiple debug sessions in
6718 parallel.")
6719 (license license:gpl3+)))
6720
6721 (define-public emacs-request
6722 (package
6723 (name "emacs-request")
6724 (version "0.3.2")
6725 (source (origin
6726 (method git-fetch)
6727 (uri (git-reference
6728 (url "https://github.com/tkf/emacs-request")
6729 (commit (string-append "v" version))))
6730 (file-name (git-file-name name version))
6731 (sha256
6732 (base32
6733 "1djywhvvb6kwdj0nd3axjvb7k2g06dzkc6hsf29w9rsk96vr8ryl"))))
6734 (build-system emacs-build-system)
6735 (arguments
6736 `(#:tests? #f)) ; requires network access.
6737 (propagated-inputs
6738 `(("emacs-deferred" ,emacs-deferred)))
6739 (home-page "https://github.com/tkf/emacs-request")
6740 (synopsis "Package for speaking HTTP in Emacs Lisp")
6741 (description "This package provides a HTTP request library with multiple
6742 backends. It supports url.el which is shipped with Emacs and the curl command
6743 line program.")
6744 (license license:gpl3+)))
6745
6746 (define-public emacs-rudel
6747 (package
6748 (name "emacs-rudel")
6749 (version "0.3.1")
6750 (source
6751 (origin
6752 (method url-fetch)
6753 (uri (string-append "https://elpa.gnu.org/packages/rudel-"
6754 version ".tar"))
6755 (sha256
6756 (base32
6757 "0glqa68g509p0s2vcc0i8kzlddnc9brd9jqhnm5rzxz4i050cvnz"))))
6758 (build-system emacs-build-system)
6759 (home-page "http://rudel.sourceforge.net/")
6760 (synopsis "Collaborative editing framework")
6761 (description
6762 "Rudel is a collaborative editing environment for GNU Emacs. Its purpose
6763 is to share buffers with other users in order to edit the contents of those
6764 buffers collaboratively. Rudel supports multiple backends to enable
6765 communication with other collaborative editors using different protocols,
6766 though currently Obby (for use with the Gobby editor) is the only
6767 fully-functional one.")
6768 (license license:gpl3+)))
6769
6770 (define-public emacs-hydra
6771 (package
6772 (name "emacs-hydra")
6773 (version "0.15.0")
6774 (source
6775 (origin
6776 (method git-fetch)
6777 (uri (git-reference
6778 (url "https://github.com/abo-abo/hydra")
6779 (commit version)))
6780 (file-name (git-file-name name version))
6781 (sha256
6782 (base32
6783 "0fapvhmhgc9kppf3bvkgry0cd7gyilg7sfvlscfrfjxpx4xvwsfy"))))
6784 (build-system emacs-build-system)
6785 (arguments
6786 `(#:tests? #t
6787 #:test-command '("make" "test")))
6788 (home-page "https://github.com/abo-abo/hydra")
6789 (synopsis "Make Emacs bindings that stick around")
6790 (description
6791 "This package can be used to tie related commands into a family of short
6792 bindings with a common prefix---a Hydra. Once you summon the Hydra (through
6793 the prefixed binding), all the heads can be called in succession with only a
6794 short extension. Any binding that isn't the Hydra's head vanquishes the
6795 Hydra. Note that the final binding, besides vanquishing the Hydra, will still
6796 serve its original purpose, calling the command assigned to it. This makes
6797 the Hydra very seamless; it's like a minor mode that disables itself
6798 automatically.")
6799 (license license:gpl3+)))
6800
6801 (define-public emacs-interleave
6802 (package
6803 (name "emacs-interleave")
6804 (version "1.4.0")
6805 (source
6806 (origin
6807 (method git-fetch)
6808 (uri
6809 (git-reference
6810 (url "https://github.com/rudolfochrist/interleave")
6811 (commit (string-append "interleave-" version))))
6812 (file-name (git-file-name name version))
6813 (sha256
6814 (base32 "0l5b681mrpk12lx5c16m7kc13p29z6zismwg1llsjg7cdmrmsrcb"))))
6815 (build-system emacs-build-system)
6816 (home-page "https://github.com/rudolfochrist/interleave")
6817 (synopsis "Emacs minor mode to interleave notes and text books")
6818 (description
6819 "Interleave is a minor mode that presents a document viewer side
6820 by side to an Org buffer with your notes relevant to the current page.")
6821 (license license:gpl3+)))
6822
6823 (define-public emacs-ivy
6824 (package
6825 (name "emacs-ivy")
6826 (version "0.13.1")
6827 (source
6828 (origin
6829 (method url-fetch)
6830 (uri (string-append "https://elpa.gnu.org/packages/ivy-" version ".tar"))
6831 (sha256
6832 (base32 "0n0ixhdykbdpis4krkqq6zncbby28p34742q96n0l91w0p19slcx"))))
6833 (build-system emacs-build-system)
6834 (propagated-inputs
6835 `(("emacs-hydra" ,emacs-hydra)))
6836 (home-page "https://github.com/abo-abo/swiper")
6837 (synopsis "Incremental vertical completion for Emacs")
6838 (description
6839 "This package provides @code{ivy-read} as an alternative to
6840 @code{completing-read} and similar functions. No attempt is made to determine
6841 the best candidate. Instead, the user can navigate candidates with
6842 @code{ivy-next-line} and @code{ivy-previous-line}. The matching is done by
6843 splitting the input text by spaces and re-building it into a regular
6844 expression.")
6845 (license license:gpl3+)))
6846
6847 (define-public emacs-counsel
6848 (package
6849 (name "emacs-counsel")
6850 (version "0.13.1")
6851 (source
6852 (origin
6853 (method url-fetch)
6854 (uri (string-append "https://elpa.gnu.org/packages/"
6855 "counsel-" version ".el"))
6856 (sha256
6857 (base32 "1y3hr3j5bh5mbyh1cqzxx04181qpvj4xyv1gym2gxcjd30nfllli"))))
6858 (build-system emacs-build-system)
6859 (propagated-inputs
6860 `(("emacs-swiper" ,emacs-swiper)))
6861 (home-page "https://github.com/abo-abo/swiper")
6862 (synopsis "Various completion functions using Ivy")
6863 (description
6864 "Just call one of the interactive functions in a file to complete the
6865 corresponding thing using Ivy.
6866
6867 The following completions are currently available:
6868 @itemize
6869 @item Symbol completion for Elisp, Common Lisp, Python, Clojure, C, C++.
6870 @item Describe functions for Elisp: function, variable, library, command,
6871 @item bindings, theme.
6872 @item Navigation functions: imenu, ace-line, semantic, outline.
6873 @item Git utilities: git-files, git-grep, git-log, git-stash, git-checkout.
6874 @item Grep utilities: grep, ag, pt, recoll, ack, rg.
6875 @item System utilities: process list, rhythmbox, linux-app.
6876 @item Many more.
6877 @end itemize")
6878 (license license:gpl3+)))
6879
6880 (define-public emacs-swiper
6881 (package
6882 (name "emacs-swiper")
6883 (version "0.13.1")
6884 (source
6885 (origin
6886 (method url-fetch)
6887 (uri (string-append "https://elpa.gnu.org/packages/"
6888 "swiper-" version ".el"))
6889 (sha256
6890 (base32 "06ild7kck0x5ry8bf0al24nh04q01q3jhj6jjl4xz8n2s6jnn70y"))))
6891 (build-system emacs-build-system)
6892 (propagated-inputs
6893 `(("emacs-ivy" ,emacs-ivy)))
6894 (home-page "https://github.com/abo-abo/swiper")
6895 (synopsis "Isearch with an overview")
6896 (description
6897 "This package gives an overview of the current regex search candidates.
6898 The search regex can be split into groups with a space. Each group is
6899 highlighted with a different face.
6900
6901 It can double as a quick `regex-builder', although only single lines will be
6902 matched.")
6903 (license license:gpl3+)))
6904
6905 (define-public emacs-ivy-xref
6906 (let ((commit "1a35fc0f070388701b05b0a455cbe262e924d547")
6907 (revision "1"))
6908 (package
6909 (name "emacs-ivy-xref")
6910 (version (git-version "0.1" revision commit))
6911 (source
6912 (origin
6913 (method git-fetch)
6914 (uri (git-reference
6915 (url "https://github.com/alexmurray/ivy-xref")
6916 (commit commit)))
6917 (file-name (git-file-name name version))
6918 (sha256
6919 (base32
6920 "0d71nm9d9ajp5i6dnl8h1hw9jqp8gd1ajgninb1h13i80rplzl9k"))))
6921 (build-system emacs-build-system)
6922 (propagated-inputs
6923 `(("emacs-ivy" ,emacs-ivy)))
6924 (home-page "https://github.com/alexmurray/ivy-xref")
6925 (synopsis "Ivy interface for @code{xref}")
6926 (description "This package provides an Ivy interface for selecting from
6927 @code{xref} results.")
6928 (license license:gpl3))))
6929
6930 (define-public emacs-ivy-pass
6931 (let ((commit "5b523de1151f2109fdd6a8114d0af12eef83d3c5")
6932 (revision "1"))
6933 (package
6934 (name "emacs-ivy-pass")
6935 (version (git-version "0.1" revision commit))
6936 (source
6937 (origin
6938 (method git-fetch)
6939 (uri (git-reference
6940 (url "https://github.com/ecraven/ivy-pass")
6941 (commit commit)))
6942 (file-name (git-file-name name version))
6943 (sha256
6944 (base32
6945 "18crb4zh2pjf0cmv3b913m9vfng27girjwfqc3mk7vqd1r5a49yk"))))
6946 (build-system emacs-build-system)
6947 (propagated-inputs
6948 `(("emacs-ivy" ,emacs-ivy)
6949 ("emacs-password-store" ,emacs-password-store)
6950 ("password-store" ,password-store)))
6951 (home-page "https://github.com/ecraven/ivy-pass")
6952 (synopsis "Ivy interface for password store (pass)")
6953 (description "This package provides an Ivy interface for working with
6954 the password store @code{pass}.")
6955 (license license:gpl3))))
6956
6957 (define-public emacs-ivy-yasnippet
6958 (let ((commit "32580b4fd23ebf9ca7dde96704f7d53df6e253cd")
6959 (revision "2"))
6960 (package
6961 (name "emacs-ivy-yasnippet")
6962 (version (git-version "0.1" revision commit))
6963 (source
6964 (origin
6965 (method git-fetch)
6966 (uri (git-reference
6967 (url "https://github.com/mkcms/ivy-yasnippet")
6968 (commit commit)))
6969 (file-name (git-file-name name version))
6970 (sha256
6971 (base32
6972 "1wfg6mmd5gl1qgvayyzpxlkh9s7jgn20y8l1vh1zbj1czvv51xp8"))))
6973 (build-system emacs-build-system)
6974 (propagated-inputs
6975 `(("emacs-ivy" ,emacs-ivy)
6976 ("emacs-yasnippet" ,emacs-yasnippet)
6977 ("emacs-dash" ,emacs-dash)))
6978 (home-page "https://github.com/mkcms/ivy-yasnippet")
6979 (synopsis "Preview @code{yasnippets} with @code{ivy}")
6980 (description "This package allows you to select @code{yasnippet}
6981 snippets using @code{ivy} completion. When current selection changes in the
6982 minibuffer, the snippet contents are temporarily expanded in the buffer. To
6983 use it, call @code{M-x ivy-yasnippet} (but make sure you have enabled
6984 @code{yas-minor-mode} first).")
6985 (license license:gpl3+))))
6986
6987 (define-public emacs-ivy-rich
6988 ;; The latest release version has a small mistake that has since been fixed,
6989 ;; so we use a more recent commit.
6990 (let ((commit "7a667b135983a1f3ad33d6db8514638e2a3bdfb3")
6991 (revision "2"))
6992 (package
6993 (name "emacs-ivy-rich")
6994 (version (git-version "0.1.4" revision commit))
6995 (source
6996 (origin
6997 (method git-fetch)
6998 (uri (git-reference
6999 (url "https://github.com/Yevgnen/ivy-rich")
7000 (commit commit)))
7001 (file-name (git-file-name name version))
7002 (sha256
7003 (base32 "1v5j6pak2j1wjw19y7rx9rhxif0bj2h47xyl2knfcl6fi4qiqm9y"))))
7004 (build-system emacs-build-system)
7005 (propagated-inputs
7006 `(("emacs-ivy" ,emacs-ivy)))
7007 (home-page "https://github.com/Yevgnen/ivy-rich")
7008 (synopsis "More friendly interface for @code{ivy}")
7009 (description
7010 "This package extends @code{ivy} by showing more information in the
7011 minibuffer for each candidate. It adds columns showing buffer modes, file
7012 sizes, docstrings, etc. If @code{emacs-all-the-icons} is installed, it can
7013 show icons as well.")
7014 (license license:gpl3+))))
7015
7016 (define-public emacs-avy
7017 (package
7018 (name "emacs-avy")
7019 (version "0.5.0")
7020 (source
7021 (origin
7022 (method git-fetch)
7023 (uri (git-reference
7024 (url "https://github.com/abo-abo/avy")
7025 (commit version)))
7026 (file-name (git-file-name name version))
7027 (sha256
7028 (base32 "09qdni1s74i5pv8741szl5g4ynj8fxn0x65qmwa9rmfkbimnc0fs"))))
7029 (build-system emacs-build-system)
7030 (arguments
7031 `(#:tests? #t
7032 #:test-command '("make" "test")))
7033 (home-page "https://github.com/abo-abo/avy")
7034 (synopsis "Tree-based completion for Emacs")
7035 (description
7036 "This package provides a generic completion method based on building a
7037 balanced decision tree with each candidate being a leaf. To traverse the tree
7038 from the root to a desired leaf, typically a sequence of @code{read-key} can
7039 be used.
7040
7041 In order for @code{read-key} to make sense, the tree needs to be visualized
7042 appropriately, with a character at each branch node. So this completion
7043 method works only for things that you can see on your screen, all at once,
7044 such as the positions of characters, words, line beginnings, links, or
7045 windows.")
7046 (license license:gpl3+)))
7047
7048 (define-public emacs-ace-window
7049 (package
7050 (name "emacs-ace-window")
7051 (version "0.10.0")
7052 (source
7053 (origin
7054 (method git-fetch)
7055 (uri (git-reference
7056 (url "https://github.com/abo-abo/ace-window")
7057 (commit version)))
7058 (file-name (git-file-name name version))
7059 (sha256
7060 (base32
7061 "0f3r40d5yxp2pm2j0nn86s29nqj8py0jxjbj50v4ci3hsd92d8jl"))))
7062 (build-system emacs-build-system)
7063 (propagated-inputs
7064 `(("emacs-avy" ,emacs-avy)))
7065 (home-page "https://github.com/abo-abo/ace-window")
7066 (synopsis "Quickly switch windows in Emacs")
7067 (description
7068 "@code{ace-window} is meant to replace @code{other-window}.
7069 In fact, when there are only two windows present, @code{other-window} is
7070 called. If there are more, each window will have its first character
7071 highlighted. Pressing that character will switch to that window.")
7072 (license license:gpl3+)))
7073
7074 (define-public emacs-iedit
7075 ;; Last release version was in 2016.
7076 (let ((commit "e2c100cdd67b7d82835d281ac2cd1bf4f374bc8f")
7077 (revision "1"))
7078 (package
7079 (name "emacs-iedit")
7080 (version (git-version "0.9.9.9" revision commit))
7081 (source
7082 (origin
7083 (method git-fetch)
7084 (uri (git-reference
7085 (url "https://github.com/victorhge/iedit")
7086 (commit commit)))
7087 (file-name (git-file-name name version))
7088 (sha256
7089 (base32 "0wr3w2id95wx2rma8n1ifjrv9rx37ly26ijc5zi58id0yrip3hnc"))))
7090 (build-system emacs-build-system)
7091 (home-page "https://www.emacswiki.org/emacs/Iedit")
7092 (synopsis "Edit multiple regions in the same way simultaneously")
7093 (description
7094 "This package is an Emacs minor mode and allows you to edit one
7095 occurrence of some text in a buffer (possibly narrowed) or region, and
7096 simultaneously have other occurrences edited in the same way.
7097
7098 You can also use Iedit mode as a quick way to temporarily show only the buffer
7099 lines that match the current text being edited. This gives you the effect of
7100 a temporary @code{keep-lines} or @code{occur}.")
7101 (license license:gpl3+))))
7102
7103 (define-public emacs-zoutline
7104 (package
7105 (name "emacs-zoutline")
7106 (version "0.2.0")
7107 (source
7108 (origin
7109 (method git-fetch)
7110 (uri (git-reference
7111 (url "https://github.com/abo-abo/zoutline")
7112 (commit version)))
7113 (sha256
7114 (base32
7115 "1w0zh6vs7klgivq5r030a82mcfg1zwic4x3fimyiqyg5n8p67hyx"))
7116 (file-name (git-file-name name version))))
7117 (build-system emacs-build-system)
7118 (home-page "https://github.com/abo-abo/zoutline")
7119 (synopsis "Simple outline library")
7120 (description
7121 "This library provides helpers for outlines. Outlines allow users to
7122 navigate code in a tree-like fashion.")
7123 (license license:gpl3+)))
7124
7125 (define-public emacs-lispy
7126 (package
7127 (name "emacs-lispy")
7128 (version "0.27.0")
7129 (home-page "https://github.com/abo-abo/lispy")
7130 (source (origin
7131 (method git-fetch)
7132 (uri (git-reference
7133 (url "https://github.com/abo-abo/lispy")
7134 (commit version)))
7135 (sha256
7136 (base32
7137 "1cm7f4pyl73f3vhkb7ah6bbbrj2sa7n0p31g09k7dy4zgx04bgw6"))
7138 (file-name (git-file-name name version))))
7139 (build-system emacs-build-system)
7140 (propagated-inputs
7141 `(("emacs-ace-window" ,emacs-ace-window)
7142 ("emacs-hydra" ,emacs-hydra)
7143 ("emacs-iedit" ,emacs-iedit)
7144 ("emacs-swiper" ,emacs-swiper)
7145 ("emacs-zoutline" ,emacs-zoutline)))
7146 (native-inputs
7147 `(("emacs-clojure-mode" ,emacs-clojure-mode)
7148 ("emacs-undercover" ,emacs-undercover)))
7149 (arguments
7150 `(#:include (cons* "^lispy-clojure\\.clj$"
7151 "^lispy-python\\.py$"
7152 %default-include)
7153 #:phases
7154 ;; XXX: one failing test involving python evaluation
7155 (modify-phases %standard-phases
7156 (add-before 'check 'make-test-writable
7157 (lambda _
7158 (make-file-writable "lispy-test.el")
7159 #t))
7160 (add-before 'check 'remove-python-eval-test
7161 (lambda _
7162 (emacs-batch-edit-file "lispy-test.el"
7163 `(progn
7164 (progn
7165 (goto-char (point-min))
7166 (re-search-forward
7167 "ert-deftest lispy-eval-python-str")
7168 (beginning-of-line)
7169 (kill-sexp))
7170 (basic-save-buffer)))
7171 #t)))
7172 #:tests? #t
7173 #:test-command '("make" "test")))
7174 (synopsis "Modal S-expression editing")
7175 (description
7176 "Due to the structure of Lisp syntax it's very rare for the programmer
7177 to want to insert characters right before \"(\" or right after \")\". Thus
7178 unprefixed printable characters can be used to call commands when the point is
7179 at one of these special locations. Lispy provides unprefixed keybindings for
7180 S-expression editing when point is at the beginning or end of an
7181 S-expression.")
7182 (license license:gpl3+)))
7183
7184 (define-public emacs-lispyville
7185 (let ((commit "1bf38088c981f5ab4ef2e2684952ab6af96378db")
7186 (revision "2"))
7187 (package
7188 (name "emacs-lispyville")
7189 (version (git-version "0.1" revision commit))
7190 (home-page "https://github.com/noctuid/lispyville")
7191 (source (origin
7192 (method git-fetch)
7193 (uri (git-reference (url home-page) (commit commit)))
7194 (sha256
7195 (base32
7196 "07z8qqvaxf963kwn7l2gk47989zb7r3d8ybqjs2cg6hzmzb77wbw"))
7197 (file-name (git-file-name name version))))
7198 (propagated-inputs
7199 `(("emacs-evil" ,emacs-evil)
7200 ("emacs-lispy" ,emacs-lispy)))
7201 (build-system emacs-build-system)
7202 (synopsis "Minor mode for integrating Evil with lispy")
7203 (description
7204 "LispyVille's main purpose is to provide a Lisp editing environment
7205 suited towards Evil users. It can serve as a minimal layer on top of lispy
7206 for better integration with Evil, but it does not require the use of lispy’s
7207 keybinding style. The provided commands allow for editing Lisp in normal
7208 state and will work even without lispy being enabled.")
7209 (license license:gpl3+))))
7210
7211 (define-public emacs-lpy
7212 (let ((commit "43b401fe15f0f0d01edb189378b9498121e9f766")
7213 (revision "3"))
7214 (package
7215 (name "emacs-lpy")
7216 (version (git-version "0.1.0" revision commit))
7217 (source
7218 (origin
7219 (method git-fetch)
7220 (uri (git-reference
7221 (url "https://github.com/abo-abo/lpy")
7222 (commit commit)))
7223 (sha256
7224 (base32
7225 "0xj1r7cn1rivaxhvawvmgx9fg3xilpfw4lkf2x2aqplr4s85ijas"))
7226 (file-name (git-file-name name version))))
7227 (propagated-inputs
7228 `(("emacs-zoutline" ,emacs-zoutline)
7229 ("emacs-lispy" ,emacs-lispy)))
7230 (build-system emacs-build-system)
7231 (home-page "https://github.com/abo-abo/lpy")
7232 (synopsis "Modal editing for Python")
7233 (description
7234 "This package provides a minor mode for Python that binds useful
7235 commands to unprefixed keys, such as @code{j} or @code{e}, under certain
7236 circumstances, and leaves the keys untouched outside of those situations,
7237 allowing unprefixed keys to insert their respective characters as expected.")
7238 (license license:gpl3+))))
7239
7240 (define-public emacs-clojure-mode
7241 (package
7242 (name "emacs-clojure-mode")
7243 (version "5.12.0")
7244 (source
7245 (origin
7246 (method git-fetch)
7247 (uri (git-reference
7248 (url "https://github.com/clojure-emacs/clojure-mode")
7249 (commit version)))
7250 (file-name (git-file-name name version))
7251 (sha256
7252 (base32 "14ipfy9ji39pnb9x7bzjp8lyqyxk168fx017m823j7a2g9i0sgp3"))))
7253 (build-system emacs-build-system)
7254 (native-inputs
7255 `(("emacs-buttercup" ,emacs-buttercup)
7256 ("emacs-dash" ,emacs-dash)
7257 ("emacs-paredit" ,emacs-paredit)
7258 ("emacs-s" ,emacs-s)))
7259 (arguments
7260 `(#:tests? #t
7261 #:test-command '("buttercup")
7262 #:phases
7263 (modify-phases %standard-phases
7264 (add-before 'check 'fix-tests
7265 ;; See: https://github.com/clojure-emacs/clojure-mode/issues/568
7266 (lambda _
7267 (substitute* "clojure-mode.el"
7268 (("\\(list \\(cdr project\\)\\)" line)
7269 (string-append "\"Return the list of directory roots of the PROJECT.\"\n"
7270 line)))
7271 #t)))))
7272 (home-page "https://github.com/clojure-emacs/clojure-mode")
7273 (synopsis "Major mode for Clojure code")
7274 (description
7275 "This Emacs package provides font-lock, indentation, navigation and basic
7276 refactoring for the @uref{http://clojure.org, Clojure programming language}.
7277 It is recommended to use @code{clojure-mode} with Paredit or Smartparens.")
7278 (license license:gpl3+)))
7279
7280 (define-public emacs-epl
7281 (package
7282 (name "emacs-epl")
7283 (version "0.8")
7284 (source
7285 (origin
7286 (method git-fetch)
7287 (uri (git-reference
7288 (url "https://github.com/cask/epl")
7289 (commit version)))
7290 (file-name (git-file-name name version))
7291 (sha256
7292 (base32 "0sjxd5y5hxhrbgfkpwx6m724r3841b53hgc61a0g5zwispw5pmrr"))))
7293 (build-system emacs-build-system)
7294 (home-page "https://github.com/cask/epl")
7295 (synopsis "Emacs Package Library")
7296 (description
7297 "A package management library for Emacs, based on @code{package.el}.
7298
7299 The purpose of this library is to wrap all the quirks and hassle of
7300 @code{package.el} into a sane API.")
7301 (license license:gpl3+)))
7302
7303 (define-public emacs-counsel-notmuch
7304 ;; Upstream provides no release. Extract version for main file.
7305 (let ((commit "a4a1562935e4180c42524c51609d1283e9be0688")
7306 (revision "0"))
7307 (package
7308 (name "emacs-counsel-notmuch")
7309 (version (git-version "1.0" revision commit))
7310 (source
7311 (origin
7312 (method git-fetch)
7313 (uri (git-reference
7314 (url "https://github.com/fuxialexander/counsel-notmuch.git")
7315 (commit commit)))
7316 (file-name (git-file-name name version))
7317 (sha256
7318 (base32 "01k1321d961kc2i660a5595bqk0d85f16snsxngsn5si6y83kqr7"))))
7319 (build-system emacs-build-system)
7320 (arguments
7321 `(#:phases
7322 (modify-phases %standard-phases
7323 (add-after 'unpack 'locate-notmuch
7324 (lambda* (#:key inputs #:allow-other-keys)
7325 (make-file-writable "counsel-notmuch.el")
7326 (emacs-substitute-variables "counsel-notmuch.el"
7327 ("counsel-notmuch-path"
7328 (string-append (assoc-ref inputs "notmuch")
7329 "/bin/notmuch")))
7330 #t)))))
7331 (inputs
7332 `(("emacs-counsel" ,emacs-counsel)
7333 ("notmuch" ,notmuch)
7334 ("emacs-s" ,emacs-s)))
7335 (home-page "https://github.com/fuxialexander/counsel-notmuch")
7336 (synopsis "Search emails in Notmuch asynchronously with Ivy")
7337 (description
7338 "This package can be used to search emails in Notmuch
7339 asynchronously, with Counsel and Ivy. Simply call
7340 @code{counsel-notmuch} and input your Notmuch query.")
7341 (license license:gpl3+))))
7342
7343 (define-public emacs-counsel-projectile
7344 (package
7345 (name "emacs-counsel-projectile")
7346 (version "0.3.0")
7347 (source (origin
7348 (method git-fetch)
7349 (uri (git-reference
7350 (url "https://github.com/ericdanan/counsel-projectile")
7351 (commit version)))
7352 (file-name (git-file-name name version))
7353 (sha256
7354 (base32
7355 "1inc4ndl0ysfwvxk4avbgpj4qi9rc93da6476a5c81xmwpsv8wmq"))))
7356 (build-system emacs-build-system)
7357 (propagated-inputs
7358 `(("emacs-counsel" ,emacs-counsel)
7359 ("emacs-projectile" ,emacs-projectile)))
7360 (home-page "https://github.com/ericdanan/counsel-projectile")
7361 (synopsis "Enhance Projectile with Ivy")
7362 (description
7363 "This package uses Ivy to provide additional actions for Projectile
7364 commands and replacements for existing functions.")
7365 (license license:gpl3+)))
7366
7367 (define-public emacs-qml-mode
7368 (package
7369 (name "emacs-qml-mode")
7370 (version "0.4")
7371 (source (origin
7372 (method git-fetch)
7373 (uri (git-reference
7374 (url "https://github.com/coldnew/qml-mode")
7375 (commit version)))
7376 (file-name (git-file-name name version))
7377 (sha256
7378 (base32
7379 "1sncsvzjfgmhp4m8w5jd4y51k24n2jfpgvrkd64wlhhzbj3wb947"))))
7380 (build-system emacs-build-system)
7381 (home-page "https://github.com/coldnew/qml-mode/")
7382 (synopsis "Qt Modeling Language (QML) mode for Emacs")
7383 (description "This package provides the @code{qml-mode} major Emacs mode
7384 for editing source files written in the Qt Modeling Language (QML) user
7385 interface markup language. It provides syntax highlighting and basic
7386 navigation commands. @code{qml-mode} is derived from code{js-mode}, the Emacs
7387 builtin JavaScript mode.")
7388 (license license:gpl2+)))
7389
7390 (define-public emacs-queue
7391 (package
7392 (name "emacs-queue")
7393 (version "0.2")
7394 (source (origin
7395 (method url-fetch)
7396 (uri (string-append "https://elpa.gnu.org/packages/queue-"
7397 version ".el"))
7398 (sha256
7399 (base32
7400 "0cx2848sqnnkkr4zisvqadzxngjyhmb36mh0q3if7q19yjjhmrkb"))))
7401 (build-system emacs-build-system)
7402 (home-page "http://www.dr-qubit.org/tags/computing-code-emacs.html")
7403 (synopsis "Queue data structure for Emacs")
7404 (description
7405 "This Emacs library provides queue data structure. These queues can be
7406 used both as a first-in last-out (FILO) and as a first-in first-out (FIFO)
7407 stack, i.e. elements can be added to the front or back of the queue, and can
7408 be removed from the front. This type of data structure is sometimes called an
7409 \"output-restricted deque\".")
7410 (license license:gpl3+)))
7411
7412 (define-public emacs-pkg-info
7413 (package
7414 (name "emacs-pkg-info")
7415 (version "0.6")
7416 (source
7417 (origin
7418 (method git-fetch)
7419 (uri (git-reference
7420 (url "https://github.com/lunaryorn/pkg-info.el")
7421 (commit version)))
7422 (file-name (git-file-name name version))
7423 (sha256
7424 (base32 "0nk12dcppdyhav6m6yf7abpywyd7amxd4237zsfd32w4zxsx39k1"))))
7425 (build-system emacs-build-system)
7426 (propagated-inputs `(("emacs-epl" ,emacs-epl)))
7427 (home-page "https://github.com/lunaryorn/pkg-info.el")
7428 (synopsis "Information about Emacs packages")
7429 (description
7430 "This library extracts information from the installed Emacs packages.")
7431 (license license:gpl3+)))
7432
7433 (define-public emacs-spinner
7434 (package
7435 (name "emacs-spinner")
7436 (version "1.7.3")
7437 (source (origin
7438 (method url-fetch)
7439 (uri (string-append "https://elpa.gnu.org/packages/spinner-"
7440 version ".el"))
7441 (sha256
7442 (base32
7443 "19kp1mmndbmw11sgvv2ggfjl4pyf5zrsbh3871f0965pw9z8vahd"))))
7444 (build-system emacs-build-system)
7445 (home-page "https://github.com/Malabarba/spinner.el")
7446 (synopsis "Emacs mode-line spinner for operations in progress")
7447 (description
7448 "This Emacs package adds spinners and progress-bars to the mode-line for
7449 ongoing operations.")
7450 (license license:gpl3+)))
7451
7452 (define-public emacs-sparql-mode
7453 (package
7454 (name "emacs-sparql-mode")
7455 (version "4.0.2")
7456 (source
7457 (origin
7458 (method git-fetch)
7459 (uri (git-reference
7460 (url "https://github.com/ljos/sparql-mode")
7461 (commit (string-append "v" version))))
7462 (file-name (git-file-name name version))
7463 (sha256
7464 (base32 "0hqp8r24wvzrkl630wbm0lynrcrnawv2yn2a3xgwqwwhwgva35rn"))))
7465 (build-system emacs-build-system)
7466 (propagated-inputs
7467 `(("emacs-company" ,emacs-company)))
7468 (home-page "https://github.com/ljos/sparql-mode")
7469 (synopsis "SPARQL mode for Emacs")
7470 (description
7471 "This package is a major mode for Emacs that provides syntax highlighting
7472 for SPARQL. It can also execute queries against a SPARQL HTTP endpoint, such
7473 as Fuseki or DBPedia.")
7474 (license license:gpl3+)))
7475
7476 (define-public emacs-better-defaults
7477 (package
7478 (name "emacs-better-defaults")
7479 (version "0.1.3")
7480 (source
7481 (origin
7482 (method git-fetch)
7483 (uri (git-reference
7484 (url "https://github.com/technomancy/better-defaults")
7485 (commit version)))
7486 (file-name (git-file-name name version))
7487 (sha256
7488 (base32
7489 "1rxznx2l0cdpiz8mad8s6q17m1fngpgb1cki7ch6yh18r3qz8ysr"))))
7490 (build-system emacs-build-system)
7491 (home-page "https://github.com/technomancy/better-defaults")
7492 (synopsis "Better defaults for Emacs")
7493 (description
7494 "Better defaults attempts to address the most obvious deficiencies of the
7495 Emacs default configuration in uncontroversial ways that nearly everyone can
7496 agree upon.")
7497 (license license:gpl3+)))
7498
7499 (define-public emacs-undohist-el
7500 (let ((commit "d2239a5f736724ceb9e3b6bcaa86f4064805cda0")
7501 (revision "1"))
7502 (package
7503 (name "emacs-undohist-el")
7504 (version (git-version "0" revision commit))
7505 (source
7506 (origin
7507 (method git-fetch)
7508 (uri (git-reference
7509 (url "https://github.com/m2ym/undohist-el")
7510 (commit commit)))
7511 (file-name (git-file-name name version))
7512 (sha256
7513 (base32
7514 "1c0daw246ky7b1x5b8h55x79pl1pjqk1k348l487bdd8zdj4w9wx"))
7515 (patches
7516 (search-patches "emacs-undohist-ignored.patch"))))
7517 (build-system emacs-build-system)
7518 (home-page "https://github.com/m2ym/undohist-el")
7519 (synopsis "Save undo history between sessions")
7520 (description "This package allows persistent use of undo history for
7521 individual file buffers.")
7522 (license license:gpl3+))))
7523
7524 (define-public emacs-eprime
7525 (let ((commit "17a481af26496be91c07139a9bfc05cfe722506f"))
7526 (package
7527 (name "emacs-eprime")
7528 (version (string-append "20140513-" (string-take commit 7)))
7529 (source (origin
7530 (method url-fetch)
7531 (uri (string-append "https://raw.githubusercontent.com"
7532 "/AndrewHynes/eprime-mode/"
7533 commit "/eprime-mode.el"))
7534 (file-name (string-append "eprime-" version ".el"))
7535 (sha256
7536 (base32
7537 "0v68lggkyq7kbcr9zyi573m2g2x251xy3jadlaw8kx02l8krwq8d"))))
7538 (build-system emacs-build-system)
7539 (home-page "https://github.com/AndrewHynes/eprime-mode")
7540 (synopsis "E-prime checking mode for Emacs")
7541 (description "This package provides an E-prime checking mode for Emacs
7542 that highlights non-conforming text. The subset of the English language called
7543 E-Prime forbids the use of the \"to be\" form to strengthen your writing.")
7544 (license license:gpl3+))))
7545
7546 (define-public emacs-julia-mode
7547 ;; XXX: Upstream version remained stuck at 0.3. See
7548 ;; <https://github.com/JuliaEditorSupport/julia-emacs/issues/46>.
7549 (let ((commit "115d4dc8a07445301772da8376b232fa8c7168f4")
7550 (revision "1"))
7551 (package
7552 (name "emacs-julia-mode")
7553 (version (string-append "0.3-" revision "." (string-take commit 8)))
7554 (source
7555 (origin
7556 (method git-fetch)
7557 (uri (git-reference
7558 (url "https://github.com/JuliaEditorSupport/julia-emacs")
7559 (commit commit)))
7560 (file-name (git-file-name name version))
7561 (sha256
7562 (base32
7563 "1is4dcv6blslpzbjcg8l2jpxi8xj96q4cm0nxjxsyswpm8bw8ki0"))))
7564 (build-system emacs-build-system)
7565 (arguments
7566 `(#:tests? #t
7567 #:test-command '("emacs" "--batch"
7568 "-l" "julia-mode-tests.el"
7569 "-f" "ert-run-tests-batch-and-exit")))
7570 (home-page "https://github.com/JuliaEditorSupport/julia-emacs")
7571 (synopsis "Major mode for Julia")
7572 (description "This Emacs package provides a mode for the Julia
7573 programming language.")
7574 (license license:expat))))
7575
7576 (define-public emacs-smex
7577 (package
7578 (name "emacs-smex")
7579 (version "3.0")
7580 (source (origin
7581 (method url-fetch)
7582 (uri (string-append "https://raw.githubusercontent.com"
7583 "/nonsequitur/smex/" version "/smex.el"))
7584 (file-name (string-append "smex-" version ".el"))
7585 (sha256
7586 (base32
7587 "0ar310zx9k5y4i1vl2rawvi712xj9gx77160860jbs691p77cxqp"))))
7588 (build-system emacs-build-system)
7589 (home-page "https://github.com/nonsequitur/smex/")
7590 (synopsis "M-x interface with Ido-style fuzzy matching")
7591 (description
7592 "Smex is a M-x enhancement for Emacs. Built on top of Ido, it provides a
7593 convenient interface to your recently and most frequently used commands. And
7594 to all the other commands, too.")
7595 (license license:gpl3+)))
7596
7597 (define-public emacs-js2-mode
7598 (let ((commit "40aab27581279d0fdbfeb9afeb85f39d401a927f")
7599 (revision "1"))
7600 (package
7601 (name "emacs-js2-mode")
7602 (version (git-version "20190219" revision commit))
7603 (source
7604 (origin
7605 (method git-fetch)
7606 (uri (git-reference
7607 (url "https://github.com/mooz/js2-mode")
7608 (commit commit)))
7609 (file-name (git-file-name name version))
7610 (sha256
7611 (base32 "0ysd0ji3vvk2zpjcg1wl7b2hva8471vq0ypib4h6spnpjdr43vzk"))))
7612 (build-system emacs-build-system)
7613 (arguments
7614 `(#:tests? #t
7615 #:test-command '("make" "test")))
7616 (home-page "https://github.com/mooz/js2-mode/")
7617 (synopsis "Improved JavaScript editing mode for Emacs")
7618 (description
7619 "Js2-mode provides a JavaScript major mode for Emacs that is more
7620 advanced than the built-in javascript-mode. Features include accurate syntax
7621 highlighting using a recursive-descent parser, on-the-fly reporting of syntax
7622 errors and strict-mode warnings, smart line-wrapping within comments and
7623 strings, and code folding.")
7624 (license license:gpl3+))))
7625
7626 (define-public emacs-nodejs-repl
7627 (package
7628 (name "emacs-nodejs-repl")
7629 (version "0.2.2")
7630 (source (origin
7631 (method git-fetch)
7632 (uri (git-reference
7633 (url "https://github.com/abicky/nodejs-repl.el")
7634 (commit version)))
7635 (file-name (git-file-name name version))
7636 (sha256
7637 (base32
7638 "1kkj888k9x5n0i7xkia177gzsa84my3g8n0n7v65281cc4f1yhk5"))))
7639 (build-system emacs-build-system)
7640 (inputs
7641 `(("node" ,node)))
7642 (native-inputs
7643 `(("emacs-ert-expectations" ,emacs-ert-expectations)))
7644 (arguments
7645 `(#:phases
7646 (modify-phases %standard-phases
7647 (add-after 'unpack 'set-shell
7648 ;; Setting the SHELL environment variable is required for the tests
7649 ;; to find sh.
7650 (lambda _
7651 (setenv "SHELL" (which "sh"))
7652 #t))
7653 (add-after 'unpack 'configure
7654 (lambda* (#:key inputs outputs #:allow-other-keys)
7655 (let ((node (assoc-ref inputs "node")))
7656 ;; Specify the absolute file names of the various
7657 ;; programs so that everything works out-of-the-box.
7658 (make-file-writable "nodejs-repl.el")
7659 (emacs-substitute-variables
7660 "nodejs-repl.el"
7661 ("nodejs-repl-command"
7662 (string-append node "/bin/node")))))))
7663 #:tests? #t
7664 #:test-command '("emacs" "-Q" "--batch"
7665 "-L" "."
7666 "-l" "test/test.el"
7667 "-f" "ert-run-tests-batch-and-exit")))
7668 (home-page "https://github.com/abicky/nodejs-repl.el")
7669 (synopsis "Node.js REPL inside Emacs")
7670 (description
7671 "This program is derived from comint-mode and provides the following
7672 features:
7673
7674 @itemize
7675 @item TAB completion same as Node.js REPL
7676 @item file name completion in string
7677 @item incremental history search
7678 @end itemize")
7679 (license license:gpl3+)))
7680
7681 (define-public emacs-typescript-mode
7682 (package
7683 (name "emacs-typescript-mode")
7684 (version "0.3")
7685 (source (origin
7686 (method git-fetch)
7687 (uri (git-reference
7688 (url "https://github.com/ananthakumaran/typescript.el")
7689 (commit (string-append "v" version))))
7690 (file-name (git-file-name name version))
7691 (sha256
7692 (base32
7693 "002f1xfhq43fjaqliwrgxspryfahpa82va5dw3p8kwil2xwvc6mh"))))
7694 (build-system emacs-build-system)
7695 (home-page "https://github.com/ananthakumaran/typescript.el")
7696 (synopsis "Emacs major mode for editing Typescript code")
7697 (description
7698 "This is based on Karl Landstrom's barebones @code{typescript-mode}.
7699 This is much more robust and works with @code{cc-mode}'s comment
7700 filling (mostly). The modifications to the original @code{javascript.el} mode
7701 mainly consisted in replacing \"javascript\" with \"typescript\"
7702
7703 The main features of this Typescript mode are syntactic highlighting (enabled
7704 with @code{font-lock-mode} or @code{global-font-lock-mode}), automatic
7705 indentation and filling of comments and C preprocessor fontification.")
7706 (license license:gpl3+)))
7707
7708 (define-public emacs-tide
7709 (package
7710 (name "emacs-tide")
7711 (version "3.2.3")
7712 (source (origin
7713 (method git-fetch)
7714 (uri (git-reference
7715 (url "https://github.com/ananthakumaran/tide")
7716 (commit (string-append "v" version))))
7717 (file-name (git-file-name name version))
7718 (sha256
7719 (base32
7720 "19kjq4kr2j853p5qp1s79zxmrfprli82lsnphbrlp9vbnib28xyd"))))
7721 (build-system emacs-build-system)
7722 (propagated-inputs
7723 `(("emacs-dash" ,emacs-dash)
7724 ("emacs-s" ,emacs-s)
7725 ("emacs-flycheck" ,emacs-flycheck)
7726 ("emacs-typescript-mode" ,emacs-typescript-mode)))
7727 (home-page "https://github.com/ananthakumaran/tide")
7728 (synopsis "Typescript IDE for Emacs")
7729 (description
7730 "Tide is an Interactive Development Environment (IDE) for Emacs which
7731 provides the following features:
7732
7733 @itemize
7734 @item ElDoc
7735 @item Auto complete
7736 @item Flycheck
7737 @item Jump to definition, Jump to type definition
7738 @item Find occurrences
7739 @item Rename symbol
7740 @item Imenu
7741 @item Compile On Save
7742 @item Highlight Identifiers
7743 @item Code Fixes
7744 @item Code Refactor
7745 @item Organize Imports
7746 @end itemize")
7747 (license license:gpl3+)))
7748
7749 (define-public emacs-markdown-mode
7750 (package
7751 (name "emacs-markdown-mode")
7752 (version "2.4")
7753 (source
7754 (origin
7755 (method git-fetch)
7756 (uri (git-reference
7757 (url "https://github.com/jrblevin/markdown-mode")
7758 (commit (string-append "v" version))))
7759 (file-name (git-file-name name version))
7760 (sha256
7761 (base32 "0g0ja4h651yfabm3k6gbw4y8w7wibc9283fyfzb33kjj38ivl5d7"))))
7762 (build-system emacs-build-system)
7763 (home-page "https://jblevins.org/projects/markdown-mode/")
7764 (synopsis "Emacs Major mode for Markdown files")
7765 (description
7766 "Markdown-mode is a major mode for editing Markdown-formatted text files
7767 in Emacs.")
7768 (license license:gpl3+)))
7769
7770 (define-public emacs-evil-markdown
7771 (let ((commit "685d7fbb81bc02fa32779d2a127b99a0c8c7436b")
7772 (revision "2"))
7773 (package
7774 (name "emacs-evil-markdown")
7775 (version (git-version "0.0.2" revision commit))
7776 (source
7777 (origin
7778 (method git-fetch)
7779 (uri (git-reference
7780 (url "https://github.com/Somelauw/evil-markdown")
7781 (commit commit)))
7782 (file-name (git-file-name name version))
7783 (sha256
7784 (base32 "1z1sjn6dcqv8mmkh6nfcwhnql2z6xr9yx3hs77bfxj79pf3c466p"))))
7785 (build-system emacs-build-system)
7786 (propagated-inputs
7787 `(("emacs-evil" ,emacs-evil)
7788 ("emacs-markdown-mode" ,emacs-markdown-mode)))
7789 (home-page "https://github.com/Somelauw/evil-markdown/")
7790 (synopsis "Evil keybindings for @code{markdown-mode}")
7791 (description
7792 "This package provides custom text objects and bindings for
7793 @code{markdown-mode}.")
7794 (license license:gpl3+))))
7795
7796 (define-public emacs-edit-indirect
7797 (package
7798 (name "emacs-edit-indirect")
7799 (version "0.1.5")
7800 (source
7801 (origin
7802 (method git-fetch)
7803 (uri (git-reference
7804 (url "https://github.com/Fanael/edit-indirect")
7805 (commit version)))
7806 (file-name (git-file-name name version))
7807 (sha256
7808 (base32
7809 "0by1x53pji39fjrj5bd446kz831nv0vdgw2jqasbym4pc1p2947r"))))
7810 (build-system emacs-build-system)
7811 (home-page "https://github.com/Fanael/edit-indirect")
7812 (synopsis "Edit regions in separate buffers")
7813 (description "This package allows you to edit regions in separate buffers,
7814 like @code{org-edit-src-code} but for arbitrary regions.")
7815 (license license:gpl3+)))
7816
7817 (define-public emacs-projectile
7818 (package
7819 (name "emacs-projectile")
7820 (version "2.2.0")
7821 (source (origin
7822 (method url-fetch)
7823 (uri (string-append "https://raw.githubusercontent.com/bbatsov"
7824 "/projectile/v" version "/projectile.el"))
7825 (file-name (string-append "projectile-" version ".el"))
7826 (sha256
7827 (base32
7828 "1d983siysg98bjbb2r99qbrpvpf6dn85si8gyak4z05m67s8sn6v"))))
7829 (build-system emacs-build-system)
7830 (propagated-inputs
7831 `(("emacs-dash" ,emacs-dash)
7832 ("emacs-pkg-info" ,emacs-pkg-info)))
7833 (home-page "https://github.com/bbatsov/projectile")
7834 (synopsis "Manage and navigate projects in Emacs easily")
7835 (description
7836 "This library provides easy project management and navigation. The
7837 concept of a project is pretty basic - just a folder containing special file.
7838 Currently git, mercurial and bazaar repos are considered projects by default.
7839 If you want to mark a folder manually as a project just create an empty
7840 .projectile file in it.")
7841 (license license:gpl3+)))
7842
7843 (define-public emacs-skeletor
7844 (let ((commit "47c5b761aee8452716c97a69949ac2f675affe13")
7845 (revision "1"))
7846 (package
7847 (name "emacs-skeletor")
7848 (version (git-version "1.6.1" revision commit))
7849 (source (origin
7850 (method git-fetch)
7851 (uri (git-reference
7852 (url "https://github.com/chrisbarrett/skeletor.el")
7853 (commit commit)))
7854 (file-name (git-file-name name version))
7855 (sha256
7856 (base32
7857 "12bdgykfh4mwsqdazxjdvha62h3q3v33159ypy91f6x59y01fi0n"))))
7858 (build-system emacs-build-system)
7859 (propagated-inputs
7860 `(("emacs-s" ,emacs-s)
7861 ("emacs-f" ,emacs-f)
7862 ("emacs-dash" ,emacs-dash)
7863 ("emacs-let-alist" ,emacs-let-alist)))
7864 (native-inputs
7865 `(("emacs-ert-runner" ,emacs-ert-runner)))
7866 (arguments
7867 `(#:include (cons "^project-skeletons\\/" %default-include)
7868 ;; XXX: one failing test involving initializing a git repo
7869 #:phases
7870 (modify-phases %standard-phases
7871 (add-before 'check 'make-test-writable
7872 (lambda _
7873 (make-file-writable "test/skeletor-test.el")
7874 #t))
7875 (add-before 'check 'remove-git-test
7876 (lambda _
7877 (emacs-batch-edit-file "test/skeletor-test.el"
7878 `(progn
7879 (progn
7880 (goto-char (point-min))
7881 (re-search-forward
7882 "ert-deftest initialises-git-repo")
7883 (beginning-of-line)
7884 (kill-sexp))
7885 (basic-save-buffer)))
7886 #t)))
7887 #:tests? #t
7888 #:test-command '("ert-runner")))
7889 (home-page "https://github.com/chrisbarrett/skeletor.el")
7890 (synopsis "Project skeletons for Emacs")
7891 (description "This package provides project templates and automates the
7892 mundane parts of setting up a new project, such as version control, licenses,
7893 and tooling.")
7894 (license license:gpl3+))))
7895
7896 (define-public emacs-elfeed
7897 (package
7898 (name "emacs-elfeed")
7899 (version "3.3.0")
7900 (source
7901 (origin
7902 (method git-fetch)
7903 (uri (git-reference
7904 (url "https://github.com/skeeto/elfeed")
7905 (commit version)))
7906 (file-name (git-file-name name version))
7907 (sha256
7908 (base32 "0j8a94val4ml7g1vcjgzk1w89h55sxfdrwnncmz6qbh1y2xsz8c5"))))
7909 (build-system emacs-build-system)
7910 (arguments
7911 `(#:tests? #t
7912 #:test-command '("make" "test")))
7913 (home-page "https://github.com/skeeto/elfeed")
7914 (synopsis "Atom/RSS feed reader for Emacs")
7915 (description
7916 "Elfeed is an extensible web feed reader for Emacs, supporting both Atom
7917 and RSS, with a user interface inspired by notmuch.")
7918 (license license:gpl3+)))
7919
7920 (define-public emacs-elfeed-org
7921 (let ((commit "77b6bbf222487809813de260447d31c4c59902c9"))
7922 (package
7923 (name "emacs-elfeed-org")
7924 (version (git-version "0.1" "1" commit))
7925 (source
7926 (origin
7927 (method git-fetch)
7928 (uri (git-reference
7929 (url "https://github.com/remyhonig/elfeed-org")
7930 (commit commit)))
7931 (file-name (git-file-name name version))
7932 (sha256
7933 (base32 "0a2ibka82xq1dhy2z7rd2y9zhcj8rna8357881yz49wf55ccgm53"))))
7934 (build-system emacs-build-system)
7935 (propagated-inputs
7936 `(("emacs-elfeed" ,emacs-elfeed)
7937 ("emacs-org" ,emacs-org)
7938 ("emacs-dash" ,emacs-dash)
7939 ("emacs-s" ,emacs-s)))
7940 (native-inputs
7941 `(("ert-runner" ,emacs-ert-runner)
7942 ("emacs-xtest" ,emacs-xtest)))
7943 (arguments
7944 `(#:tests? #t
7945 #:test-command '("ert-runner" "-L" "org-mode/lisp")
7946 #:phases
7947 (modify-phases %standard-phases
7948 (add-before 'check 'chmod
7949 (lambda _
7950 (chmod "test/fixture-mark-feed-ignore.org" #o644)
7951 #t)))))
7952 (home-page "https://github.com/remyhonig/elfeed-org")
7953 (synopsis "Configure Elfeed with an Org-mode file")
7954 (description
7955 "@code{elfeed-org} lets you manage your Elfeed subscriptions
7956 in Org-mode. Maintaining tags for all RSS feeds is cumbersome using
7957 the regular flat list, where there is no hierarchy and tag names are
7958 duplicated a lot. Org-mode makes the book keeping of tags and feeds
7959 much easier.")
7960 (license license:gpl3+))))
7961
7962 (define-public emacs-el-x
7963 (package
7964 (name "emacs-el-x")
7965 (version "0.3.1")
7966 (source (origin
7967 (method git-fetch)
7968 (uri (git-reference
7969 (url "https://github.com/sigma/el-x")
7970 (commit (string-append "v" version))))
7971 (file-name (git-file-name name version))
7972 (sha256
7973 (base32
7974 "1i6j44ssxm1xdg0mf91nh1lnprwsaxsx8vsrf720nan7mfr283h5"))))
7975 (build-system emacs-build-system)
7976 (arguments
7977 `(#:phases
7978 (modify-phases %standard-phases
7979 ;; Move the source files to the top level, which is included in
7980 ;; the EMACSLOADPATH.
7981 (add-after 'unpack 'move-source-files
7982 (lambda _
7983 (let ((el-files (find-files "./lisp" ".*\\.el$")))
7984 (for-each (lambda (f)
7985 (rename-file f (basename f)))
7986 el-files))
7987 #t)))))
7988 (home-page "https://github.com/sigma/el-x")
7989 (synopsis "Emacs Lisp extensions")
7990 (description "command@{emacs-el-x} defines the @code{dflet} macro to
7991 provide the historic behavior of @code{flet}, as well as
7992 @code{declare-function} stub for older Emacs.")
7993 (license license:gpl2+)))
7994
7995 (define-public emacs-mocker
7996 (package
7997 (name "emacs-mocker")
7998 (version "0.3.1")
7999 (source (origin
8000 (method git-fetch)
8001 (uri (git-reference
8002 (url "https://github.com/sigma/mocker.el")
8003 (commit (string-append "v" version))))
8004 (file-name (git-file-name name version))
8005 (sha256
8006 (base32
8007 "1lav7am41v63xgavq8pr88y828jmd1cxd4prjq7jlbxm6nvrwxh2"))))
8008 (build-system emacs-build-system)
8009 (arguments
8010 `(#:tests? #t
8011 #:test-command '("ert-runner")))
8012 (native-inputs
8013 `(("ert-runner" ,emacs-ert-runner)))
8014 (propagated-inputs
8015 `(("emacs-el-x" ,emacs-el-x)))
8016 (home-page "https://github.com/sigma/mocker.el")
8017 (synopsis "Mocking framework for Emacs Lisp")
8018 (description "Mocker.el is a framework for writing tests in Emacs Lisp.
8019 It uses regular Lisp rather than a domain specific language (DSL), which
8020 maximizes flexibility (at the expense of conciseness).")
8021 (license license:gpl2+)))
8022
8023 (define-public emacs-find-file-in-project
8024 (package
8025 (name "emacs-find-file-in-project")
8026 (version "5.7.10")
8027 (source (origin
8028 (method git-fetch)
8029 (uri (git-reference
8030 (url "https://github.com/technomancy/find-file-in-project")
8031 (commit version)))
8032 (file-name (git-file-name name version))
8033 (sha256
8034 (base32
8035 "156sfd5xs831sdlkf7p5m20hzznv1zlf9nm3pfm8n8ixp13fnzj0"))))
8036 (build-system emacs-build-system)
8037 (arguments
8038 `(#:tests? #t
8039 #:test-command '("ert-runner" "tests")))
8040 (native-inputs
8041 `(("ert-runner" ,emacs-ert-runner)))
8042 (home-page "https://github.com/technomancy/find-file-in-project")
8043 (synopsis "File/directory finder for Emacs")
8044 (description "@code{find-file-in-project} finds files or
8045 directories quickly in the current project. The project root is detected
8046 automatically when Git, Subversion or Mercurial are used. It also provides
8047 functions to assist in reviewing changes on files.")
8048 (license license:gpl3+)))
8049
8050 (define-public emacs-pyvenv
8051 (package
8052 (name "emacs-pyvenv")
8053 (version "1.21")
8054 (source (origin
8055 (method git-fetch)
8056 (uri (git-reference
8057 (url "https://github.com/jorgenschaefer/pyvenv")
8058 (commit (string-append "v" version))))
8059 (file-name (git-file-name name version))
8060 (sha256
8061 (base32
8062 "055sgk8zf4wb5nqsf3qasf5gg861zlb1831733f1qcrd2ij5gzxx"))))
8063 (build-system emacs-build-system)
8064 (arguments
8065 `(#:phases
8066 (modify-phases %standard-phases
8067 ;; This phase incorrectly attempts to substitute "activate" and fails
8068 ;; doing so.
8069 (delete 'patch-el-files))
8070 #:tests? #t
8071 #:test-command '("ert-runner")))
8072 (native-inputs
8073 `(("ert-runner" ,emacs-ert-runner)
8074 ("emacs-mocker" ,emacs-mocker)))
8075 (home-page "https://github.com/jorgenschaefer/pyvenv")
8076 (synopsis "Python virtual environment interface for Emacs")
8077 (description "pyvenv.el is a minor mode to support using Python virtual
8078 environments (virtualenv) inside Emacs.")
8079 (license license:gpl3+)))
8080
8081 (define-public emacs-highlight-indent-guides
8082 (let ((version "0.8.5") ; from package metadata
8083 (revision "0")
8084 (commit "c2c9de4d01edfb89609c91d4d7f1d81312015a2c"))
8085 (package
8086 (name "emacs-highlight-indent-guides")
8087 (version (git-version version revision commit))
8088 (source
8089 (origin
8090 (method git-fetch)
8091 (uri (git-reference
8092 (url "https://github.com/DarthFennec/highlight-indent-guides")
8093 (commit commit)))
8094 (file-name (git-file-name name version))
8095 (sha256
8096 (base32 "10chvqnmdmkx6i9sigqframr85ziyafiz44glwhvhjajfkv42ad2"))))
8097 (build-system emacs-build-system)
8098 (home-page
8099 "https://github.com/DarthFennec/highlight-indent-guides")
8100 (synopsis "Minor mode to highlight indentation")
8101 (description
8102 "This package provides a minor mode to highlight indentation levels via
8103 font-lock. Indent widths are dynamically discovered, which means this
8104 correctly highlights in any mode, regardless of indent width, even in
8105 languages with non-uniform indentation such as Haskell. This mode works
8106 properly around hard tabs and mixed indentation and behaves well in large
8107 buffers.")
8108 (license license:expat))))
8109
8110 (define-public emacs-highlight-indentation
8111 ;; Last release version is from 2015.
8112 (let ((commit "d03803f2c06749c430443a3d24e039cbafc9c58f")
8113 (revision "1"))
8114 (package
8115 (name "emacs-highlight-indentation")
8116 (version (git-version "0.7.0" revision commit))
8117 (source
8118 (origin
8119 (method git-fetch)
8120 (uri (git-reference
8121 (url "https://github.com/antonj/Highlight-Indentation-for-Emacs")
8122 (commit commit)))
8123 (file-name (git-file-name name version))
8124 (sha256
8125 (base32
8126 "1jq0gf4kcx9hvrw40rnw5c2qynjpjw1vsjbi2i4lqjbsnfnxn4wz"))))
8127 (build-system emacs-build-system)
8128 (home-page "https://github.com/antonj/Highlight-Indentation-for-Emacs/")
8129 (synopsis "Highlighting indentation for Emacs")
8130 (description "This package provides two minor modes to highlight
8131 indentation guides in Emacs:
8132
8133 @enumerate
8134 @item @code{highlight-indentation-mode}, which displays guidelines
8135 indentation (space indentation only).
8136 @item @code{highlight-indentation-current-column-mode}, which displays
8137 guidelines for the current-point indentation (space indentation only).
8138 @end enumerate")
8139 (license license:gpl2+))))
8140
8141 (define-public emacs-elpy
8142 (package
8143 (name "emacs-elpy")
8144 (version "1.34.0")
8145 (source (origin
8146 (method git-fetch)
8147 (uri (git-reference
8148 (url "https://github.com/jorgenschaefer/elpy")
8149 (commit version)))
8150 (file-name (git-file-name name version))
8151 (sha256
8152 (base32
8153 "1x1z298axbh4xalssnq9nkf2z1sdgmx839vb01xz18kr9lfavx1x"))))
8154 (build-system emacs-build-system)
8155 (arguments
8156 `(#:include (cons* "^elpy/[^/]+\\.py$" "^snippets\\/" %default-include)
8157 #:phases
8158 (modify-phases %standard-phases
8159 ;; The following tests fail when building with Emacs 27 (see:
8160 ;; https://github.com/jorgenschaefer/elpy/issues/1812).
8161 (add-after 'unpack 'disable-problematic-tests
8162 (lambda _
8163 (substitute* "test/elpy-company-backend-test.el"
8164 (("elpy-company-backend-should-add-shell-candidates.*" all)
8165 (string-append all " (skip-unless nil)\n")))
8166 (substitute* "test/elpy-folding-fold-comments-test.el"
8167 (("elpy-fold-at-point-should-fold-and-unfold-comments.*" all)
8168 (string-append all " (skip-unless nil)\n")))
8169 #t))
8170 ;; The default environment of the RPC uses Virtualenv to install
8171 ;; Python dependencies from PyPI. We don't want/need this in Guix.
8172 (add-before 'check 'do-not-use-virtualenv
8173 (lambda _
8174 (setenv "ELPY_TEST_DONT_USE_VIRTUALENV" "1")
8175 (substitute* "elpy-rpc.el"
8176 (("defcustom elpy-rpc-virtualenv-path 'default")
8177 "defcustom elpy-rpc-virtualenv-path 'system"))
8178 #t))
8179 (add-before 'check 'build-doc
8180 (lambda _
8181 (with-directory-excursion "docs"
8182 (invoke "make" "info" "man"))
8183 ;; Move .info file at the root so that it can installed by the
8184 ;; 'move-doc phase.
8185 (rename-file "docs/_build/texinfo/Elpy.info" "Elpy.info")
8186 #t))
8187 (add-after 'build-doc 'install-manpage
8188 (lambda* (#:key outputs #:allow-other-keys)
8189 (let* ((out (assoc-ref outputs "out"))
8190 (man1 (string-append out "/share/man/man1")))
8191 (mkdir-p man1)
8192 (copy-file "docs/_build/man/elpy.1"
8193 (string-append man1 "/elpy.1")))
8194 #t)))
8195 #:tests? #t
8196 #:test-command '("ert-runner")))
8197 (propagated-inputs
8198 `(("emacs-company" ,emacs-company)
8199 ("emacs-find-file-in-project" ,emacs-find-file-in-project)
8200 ("emacs-highlight-indentation" ,emacs-highlight-indentation)
8201 ("emacs-yasnippet" ,emacs-yasnippet)
8202 ("pyvenv" ,emacs-pyvenv)
8203 ("s" ,emacs-s)
8204 ;; The following are recommended Python dependencies that make Elpy
8205 ;; much more useful. Installing these avoids Elpy prompting to install them
8206 ;; from PyPI using pip.
8207 ("python-autopep8" ,python-autopep8)
8208 ("python-black" ,python-black)
8209 ("python-flake8" ,python-flake8)
8210 ("python-jedi" ,python-jedi)
8211 ("python-rope" ,python-rope)
8212 ("python-yapf" ,python-yapf)))
8213 (native-inputs
8214 `(("ert-runner" ,emacs-ert-runner)
8215 ("emacs-f" ,emacs-f)
8216 ("python" ,python-wrapper)
8217 ;; For documentation.
8218 ("python-sphinx" ,python-sphinx)
8219 ("texinfo" ,texinfo)))
8220 (home-page "https://github.com/jorgenschaefer/elpy")
8221 (synopsis "Python development environment for Emacs")
8222 (description "Elpy brings powerful Python editing to Emacs. It combines
8223 and configures a number of other packages written in Emacs Lisp as well as
8224 Python, together offering features such as navigation, documentation,
8225 completion, interactive development and more.")
8226 (license license:gpl3+)))
8227
8228 (define-public emacs-rainbow-delimiters
8229 (package
8230 (name "emacs-rainbow-delimiters")
8231 (version "2.1.4")
8232 (source (origin
8233 (method git-fetch)
8234 (uri (git-reference
8235 (url "https://github.com/Fanael/rainbow-delimiters")
8236 (commit version)))
8237 (file-name (git-file-name name version))
8238 (sha256
8239 (base32
8240 "1zr2669savnmkc68hiqsq9wccm6bs1j6jbmlac1xqh6nq7xgq36g"))))
8241 (build-system emacs-build-system)
8242 (home-page "https://github.com/Fanael/rainbow-delimiters")
8243 (arguments
8244 `(#:tests? #t
8245 #:test-command '("emacs" "-Q" "-batch"
8246 "-l" "rainbow-delimiters-test.el"
8247 "-f" "ert-run-tests-batch-and-exit")))
8248 (synopsis "Highlight brackets according to their depth")
8249 (description
8250 "Rainbow-delimiters is a \"rainbow parentheses\"-like mode for Emacs which
8251 highlights parentheses, brackets, and braces according to their depth. Each
8252 successive level is highlighted in a different color, making it easy to spot
8253 matching delimiters, orient yourself in the code, and tell which statements
8254 are at a given level.")
8255 (license license:gpl3+)))
8256
8257 (define-public emacs-rainbow-identifiers
8258 (package
8259 (name "emacs-rainbow-identifiers")
8260 (version "0.2.2")
8261 (source (origin
8262 (method url-fetch)
8263 (uri (string-append "https://raw.githubusercontent.com/Fanael"
8264 "/rainbow-identifiers/" version
8265 "/rainbow-identifiers.el"))
8266 (file-name (string-append "rainbow-identifiers-" version ".el"))
8267 (sha256
8268 (base32
8269 "0325abxj47k0g1i8nqrq70w2wr6060ckhhf92krv1s072b3jzm31"))))
8270 (build-system emacs-build-system)
8271 (home-page "https://github.com/Fanael/rainbow-identifiers")
8272 (synopsis "Highlight identifiers in source code")
8273 (description
8274 "Rainbow identifiers mode is an Emacs minor mode providing highlighting of
8275 identifiers based on their names. Each identifier gets a color based on a hash
8276 of its name.")
8277 (license license:bsd-2)))
8278
8279 (define-public emacs-rainbow-mode
8280 (package
8281 (name "emacs-rainbow-mode")
8282 (version "1.0.5")
8283 (source
8284 (origin
8285 (method url-fetch)
8286 (uri (string-append "https://elpa.gnu.org/packages/"
8287 "rainbow-mode-" version ".el"))
8288 (sha256
8289 (base32 "159fps843k5pap9k04a7ll1k3gw6d9c6w08lq4bbc3lqg78aa2l9"))))
8290 (build-system emacs-build-system)
8291 (home-page "https://elpa.gnu.org/packages/rainbow-mode.html")
8292 (synopsis "Colorize color names in buffers")
8293 (description
8294 "This minor mode sets background color to strings that match color
8295 names, e.g., @samp{#0000ff} is displayed in white with a blue background.")
8296 (license license:gpl3+)))
8297
8298 (define-public emacs-ryo-modal
8299 ;; Package has no release. Version is extracted from "Version:" keyword in
8300 ;; main file.
8301 (let ((commit "3a54312eea7023a86ca3f8eb3c03c872554bff2f")
8302 (revision "0"))
8303 (package
8304 (name "emacs-ryo-modal")
8305 (version (git-version "0.4" revision commit))
8306 (source
8307 (origin
8308 (method git-fetch)
8309 (uri (git-reference
8310 (url "https://github.com/Kungsgeten/ryo-modal")
8311 (commit commit)))
8312 (file-name (git-file-name name version))
8313 (sha256
8314 (base32 "1cyvp3bi6yhckbdnq98xvghmhdzghya5y9wd7hxjawibs75rza95"))))
8315 (build-system emacs-build-system)
8316 (home-page "https://github.com/Kungsgeten/ryo-modal")
8317 (synopsis "Emacs minor mode for defining modal editing environments")
8318 (description "RYO modal provides a convenient way of defining modal
8319 keybindings in Emacs, and does not come with any predefined bindings.")
8320 (license license:expat))))
8321
8322 (define-public emacs-visual-fill-column
8323 (package
8324 (name "emacs-visual-fill-column")
8325 (version "1.11")
8326 (source (origin
8327 (method url-fetch)
8328 (uri (string-append "https://codeload.github.com/joostkremers/"
8329 "visual-fill-column/tar.gz/" version))
8330 (file-name (string-append name "-" version ".tar.gz"))
8331 (sha256
8332 (base32
8333 "13jnviakp607zcms7f8ams56mr8wffnq1pghlc6fvqs39663pgwh"))))
8334 (build-system emacs-build-system)
8335 (home-page "https://github.com/joostkremers/visual-fill-column")
8336 (synopsis "Fill-column for visual-line-mode")
8337 (description
8338 "@code{visual-fill-column-mode} is a small Emacs minor mode that mimics
8339 the effect of @code{fill-column} in @code{visual-line-mode}. Instead of
8340 wrapping lines at the window edge, which is the standard behaviour of
8341 @code{visual-line-mode}, it wraps lines at @code{fill-column}. If
8342 @code{fill-column} is too large for the window, the text is wrapped at the
8343 window edge.")
8344 (license license:gpl3+)))
8345
8346 (define-public emacs-writeroom
8347 (package
8348 (name "emacs-writeroom")
8349 (version "3.10")
8350 (source
8351 (origin
8352 (method git-fetch)
8353 (uri (git-reference
8354 (url "https://github.com/joostkremers/writeroom-mode")
8355 (commit version)))
8356 (file-name (git-file-name name version))
8357 (sha256
8358 (base32
8359 "0la4q2dm123l4rdfh0ry03b99ihvh324y7iw12az909198bcx335"))))
8360 (build-system emacs-build-system)
8361 (propagated-inputs
8362 `(("emacs-visual-fill-column" ,emacs-visual-fill-column)))
8363 (home-page "https://github.com/joostkremers/writeroom-mode")
8364 (synopsis "Distraction-free writing for Emacs")
8365 (description
8366 "This package defines a minor mode for distraction-free writing. Some of
8367 the default effects include entering fullscreen, deleting other windows of the
8368 current frame, disabling the mode line, and adding margins to the buffer that
8369 restrict the text width to 80 characters.")
8370 (license license:bsd-3)))
8371
8372 (define-public emacs-ido-completing-read+
8373 (package
8374 (name "emacs-ido-completing-read+")
8375 (version "3.12")
8376 (source (origin
8377 (method url-fetch)
8378 (uri (string-append "https://raw.githubusercontent.com"
8379 "/DarwinAwardWinner/ido-ubiquitous/v"
8380 version "/ido-completing-read+.el"))
8381 (file-name (string-append "ido-completing-read+-" version ".el"))
8382 (sha256
8383 (base32
8384 "1cyalb0p7nfsm4n6n9q6rjmvn6adqc0fq8ybnlj3n41n289dkfjf"))))
8385 (build-system emacs-build-system)
8386 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
8387 (synopsis "Replacement for completing-read using ido")
8388 (description
8389 "The ido-completing-read+ function is a wrapper for ido-completing-read.
8390 Importantly, it detects edge cases that ordinary ido cannot handle and either
8391 adjusts them so ido can handle them, or else simply falls back to the standard
8392 Emacs completion function instead.")
8393 (license license:gpl3+)))
8394
8395 (define-public emacs-ido-ubiquitous
8396 (package
8397 (name "emacs-ido-ubiquitous")
8398 (version "3.12")
8399 (source (origin
8400 (method url-fetch)
8401 (uri (string-append "https://raw.githubusercontent.com"
8402 "/DarwinAwardWinner/ido-ubiquitous/v"
8403 version "/ido-ubiquitous.el"))
8404 (file-name (string-append "ido-ubiquitous-" version ".el"))
8405 (sha256
8406 (base32
8407 "197ypji0fb6jsdcq40rpnknwlh3imas6s6jbsvkfm0pz9988c3q2"))))
8408 (build-system emacs-build-system)
8409 (propagated-inputs
8410 `(("emacs-ido-completing-read+" ,emacs-ido-completing-read+)))
8411 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
8412 (synopsis "Use ido (nearly) everywhere")
8413 (description
8414 "Ido-ubiquitous enables ido-style completion for almost every function
8415 that uses the standard completion function completing-read.")
8416 (license license:gpl3+)))
8417
8418 (define-public emacs-yaml-mode
8419 (package
8420 (name "emacs-yaml-mode")
8421 (version "0.0.14")
8422 (source (origin
8423 (method git-fetch)
8424 (uri (git-reference
8425 (url "https://github.com/yoshiki/yaml-mode")
8426 (commit version)))
8427 (file-name (git-file-name name version))
8428 (sha256
8429 (base32
8430 "18g064ardqi1f3xz7j6rs1x9fvv9sn0iq9vgid8c6qvxq7gwj00r"))))
8431 (build-system emacs-build-system)
8432 (home-page "https://github.com/yoshiki/yaml-mode")
8433 (synopsis "Major mode for editing YAML files")
8434 (description
8435 "Yaml-mode is an Emacs major mode for editing files in the YAML data
8436 serialization format. It was initially developed by Yoshiki Kurihara and many
8437 features were added by Marshall Vandegrift. As YAML and Python share the fact
8438 that indentation determines structure, this mode provides indentation and
8439 indentation command behavior very similar to that of python-mode.")
8440 (license license:gpl3+)))
8441
8442 (define-public emacs-gitlab-ci-mode
8443 (package
8444 (name "emacs-gitlab-ci-mode")
8445 (version "20190425.11.10")
8446 (source (origin
8447 (method git-fetch)
8448 (uri (git-reference
8449 (url "https://gitlab.com/joewreschnig/gitlab-ci-mode.git")
8450 (commit (string-append "v" version))))
8451 (file-name (git-file-name name version))
8452 (sha256
8453 (base32
8454 "1jkp9mnbiccqnha9zs646znqyqvy5jjb81kah7ghbkzdqqk2avm0"))))
8455 (build-system emacs-build-system)
8456 (propagated-inputs
8457 `(("emacs-yaml-mode" ,emacs-yaml-mode)))
8458 (home-page "https://gitlab.com/joewreschnig/gitlab-ci-mode/")
8459 (synopsis "Emacs mode for editing GitLab CI files")
8460 (description
8461 "@code{gitlab-ci-mode} is an Emacs major mode for editing GitLab CI
8462 files. It provides syntax highlighting and completion for keywords and
8463 special variables. An interface to GitLab’s CI file linter is also provided
8464 via @code{gitlab-ci-lint}.")
8465 (license license:gpl3+)))
8466
8467 (define-public emacs-gitlab-snip-helm
8468 (package
8469 (name "emacs-gitlab-snip-helm")
8470 (version "0.0.2")
8471 (source (origin
8472 (method git-fetch)
8473 (uri (git-reference
8474 (url "https://gitlab.com/sasanidas/gitlab-snip-helm.git")
8475 (commit version)))
8476 (file-name (git-file-name name version))
8477 (sha256
8478 (base32
8479 "1c5js19zyb1z61hapvbfcl5jhrjqij46cxldgqij6al0scw44dga"))))
8480 (build-system emacs-build-system)
8481 (propagated-inputs
8482 `(("emacs-dash" ,emacs-dash)
8483 ("emacs-helm" ,emacs-helm)))
8484 (home-page "https://gitlab.com/sasanidas/gitlab-snip-helm/")
8485 (synopsis "GitLab snippet API interaction for Emacs")
8486 (description "This package provides GitLab snippet API interaction for
8487 Emacs.")
8488 (license license:gpl3+)))
8489
8490 (define-public emacs-web-mode
8491 (package
8492 (name "emacs-web-mode")
8493 (version "17")
8494 (source
8495 (origin
8496 (method git-fetch)
8497 (uri (git-reference
8498 (url "https://github.com/fxbois/web-mode")
8499 (commit (string-append "v" version))))
8500 (file-name (git-file-name name version))
8501 (sha256
8502 (base32 "0jr5a1nzp8nbdng0k2fcaymiiv9ngrbknbrqaswgqn3akvx793jk"))))
8503 (build-system emacs-build-system)
8504 (synopsis "Major mode for editing web templates")
8505 (description "Web mode is an Emacs major mode for editing web templates
8506 aka HTML files embedding parts (CSS/JavaScript) and blocks (pre rendered by
8507 client/server side engines). Web mode is compatible with many template
8508 engines: PHP, JSP, ASP, Django, Twig, Jinja, Mustache, ERB, FreeMarker,
8509 Velocity, Cheetah, Smarty, CTemplate, Mustache, Blade, ErlyDTL, Go Template,
8510 Dust.js, React/JSX, Angularjs, ejs, etc.")
8511 (home-page "http://web-mode.org/")
8512 (license license:gpl3+)))
8513
8514 (define-public emacs-wgrep
8515 (package
8516 (name "emacs-wgrep")
8517 (version "2.3.2")
8518 (source (origin
8519 (method git-fetch)
8520 (uri (git-reference
8521 (url "https://github.com/mhayashi1120/Emacs-wgrep")
8522 (commit version)))
8523 (file-name (git-file-name name version))
8524 (sha256
8525 (base32
8526 "00cwqzb94jlq4mwgv8z7r3mn0a6mhq95z6j189kacq9g4473zh8d"))))
8527 (build-system emacs-build-system)
8528 (home-page "https://github.com/mhayashi1120/Emacs-wgrep")
8529 (synopsis "Edit a grep buffer and apply those changes to the files")
8530 (description
8531 "Emacs wgrep allows you to edit a grep buffer and apply those changes
8532 to the file buffer. Several backends are supported beside the classic grep:
8533 ack, ag, helm and pt.")
8534 (license license:gpl3+)))
8535
8536 (define-public emacs-helm
8537 (package
8538 (name "emacs-helm")
8539 (version "3.6.5")
8540 (source
8541 (origin
8542 (method git-fetch)
8543 (uri (git-reference
8544 (url "https://github.com/emacs-helm/helm")
8545 (commit (string-append "v" version))))
8546 (file-name (git-file-name name version))
8547 (sha256
8548 (base32 "0yzpb84346v42ig4h0rsnvzmln58ilhc0gsq0ggc7038ypqkdw4d"))))
8549 (build-system emacs-build-system)
8550 (propagated-inputs
8551 `(("emacs-async" ,emacs-async)
8552 ("emacs-popup" ,emacs-popup)))
8553 (home-page "https://emacs-helm.github.io/helm/")
8554 (synopsis "Incremental completion and selection narrowing
8555 framework for Emacs")
8556 (description "Helm is incremental completion and selection narrowing
8557 framework for Emacs. It will help steer you in the right direction when
8558 you're looking for stuff in Emacs (like buffers, files, etc). Helm is a fork
8559 of @code{anything.el} originally written by Tamas Patrovic and can be
8560 considered to be its successor. Helm sets out to clean up the legacy code in
8561 @code{anything.el} and provide a cleaner, leaner and more modular tool, that's
8562 not tied in the trap of backward compatibility.")
8563 (license license:gpl3+)))
8564
8565 (define-public emacs-helm-org
8566 (let ((commit "8457e1e46227bf87726e05c42cec5a4b51c2ef7b")
8567 (revision "3"))
8568 (package
8569 (name "emacs-helm-org")
8570 (version (git-version "1.0" revision commit))
8571 (source
8572 (origin
8573 (method git-fetch)
8574 (uri (git-reference
8575 (url "https://github.com/emacs-helm/helm-org")
8576 (commit commit)))
8577 (file-name (git-file-name name version))
8578 (sha256
8579 (base32 "0kcjhwwi492n9m2w894hvdavfvhj45zygy7bwvx103wvpay5h6h6"))))
8580 (build-system emacs-build-system)
8581 (propagated-inputs
8582 `(("emacs-helm" ,emacs-helm)))
8583 (home-page "https://github.com/emacs-helm/helm-org")
8584 (synopsis "Helm interface to the Silver Searcher")
8585 (description
8586 "This package provides a frontend for grepping tools like ag and ack,
8587 as well as features for editing search results.")
8588 (license license:gpl3+))))
8589
8590 (define-public emacs-helm-swoop
8591 (package
8592 (name "emacs-helm-swoop")
8593 (version "3.0.0")
8594 (source
8595 (origin
8596 (method git-fetch)
8597 (uri (git-reference
8598 (url "https://github.com/emacsorphanage/helm-swoop")
8599 (commit version)))
8600 (file-name (git-file-name name version))
8601 (sha256
8602 (base32 "1qjay0fvryxa8n1ws6r1by512p2fylb2nj7ycm1497fcalb0d706"))))
8603 (build-system emacs-build-system)
8604 (propagated-inputs
8605 `(("emacs-helm" ,emacs-helm)))
8606 (home-page "https://github.com/emacsorphanage/helm-swoop")
8607 (synopsis "Filter and jump to lines in an Emacs buffer using Helm")
8608 (description
8609 "This package builds on the Helm interface to provide several commands
8610 for search-based navigation of buffers.")
8611 (license license:gpl2+)))
8612
8613 (define-public emacs-helm-ag
8614 (package
8615 (name "emacs-helm-ag")
8616 (version "0.62")
8617 (source
8618 (origin
8619 (method git-fetch)
8620 (uri (git-reference
8621 (url "https://github.com/syohex/emacs-helm-ag")
8622 (commit version)))
8623 (file-name (git-file-name name version))
8624 (sha256
8625 (base32 "0xgbpp8xqdiyvfs64x0q909g77ml28z3irw2lnasvpsg0dfdm2zy"))))
8626 (build-system emacs-build-system)
8627 (propagated-inputs
8628 `(("emacs-helm" ,emacs-helm)))
8629 (home-page "https://github.com/syohex/emacs-helm-ag")
8630 (synopsis "Helm interface to the Silver Searcher")
8631 (description
8632 "This package provides a frontend for grepping tools like ag and ack,
8633 as well as features for editing search results.")
8634 (license license:gpl3+)))
8635
8636 (define-public emacs-helm-projectile
8637 (package
8638 (name "emacs-helm-projectile")
8639 (version "1.0.0")
8640 (source
8641 (origin
8642 (method git-fetch)
8643 (uri (git-reference
8644 (url "https://github.com/bbatsov/helm-projectile")
8645 (commit (string-append "v" version))))
8646 (file-name (git-file-name name version))
8647 (sha256
8648 (base32 "05gpg90gg03yalmv9fw1y9k21i2l617iipvs0p9n80aln8nrzs8g"))))
8649 (build-system emacs-build-system)
8650 (propagated-inputs
8651 `(("emacs-helm" ,emacs-helm)
8652 ("emacs-projectile" ,emacs-projectile)))
8653 (home-page "https://github.com/bbatsov/helm-projectile")
8654 (synopsis "Helm integration for Projectile")
8655 (description
8656 "This Emacs library provides a Helm interface for Projectile.")
8657 (license license:gpl3+)))
8658
8659 (define-public emacs-taskrunner
8660 (let ((commit "3afd4a546d42339543d3d4e51b175fc3e82b3358")
8661 (revision "1"))
8662 (package
8663 (name "emacs-taskrunner")
8664 (version (git-version "0.6" revision commit))
8665 (source
8666 (origin
8667 (method git-fetch)
8668 (uri (git-reference
8669 (url "https://github.com/emacs-taskrunner/emacs-taskrunner")
8670 (commit commit)))
8671 (file-name (git-file-name name version))
8672 (sha256
8673 (base32
8674 "1lkdvmjn3alhqxq2i64sdr977sbw3g0b2670d9bwyzi67qh0jxrv"))))
8675 (build-system emacs-build-system)
8676 (propagated-inputs
8677 `(("emacs-async" ,emacs-async)
8678 ("emacs-projectile" ,emacs-projectile)))
8679 (home-page "https://github.com/emacs-taskrunner/emacs-taskrunner")
8680 (synopsis "Retrieve tasks from various build systems and task-runners")
8681 (description "This package parses Makefiles and build-system files for
8682 multiple project types.")
8683 (license license:gpl3+))))
8684
8685 (define-public emacs-ivy-taskrunner
8686 (let ((commit "75d8d67cfe3c29663fe0f5508a887adf40ed5162")
8687 (revision "1"))
8688 (package
8689 (name "emacs-ivy-taskrunner")
8690 (version (git-version "0.9" revision commit))
8691 (source
8692 (origin
8693 (method git-fetch)
8694 (uri (git-reference
8695 (url "https://github.com/emacs-taskrunner/ivy-taskrunner")
8696 (commit commit)))
8697 (file-name (git-file-name name version))
8698 (sha256
8699 (base32
8700 "1wf4s4k0ap21f7g5w6128an8nsvbja7f5n889vcml5b6gjz058db"))))
8701 (build-system emacs-build-system)
8702 (propagated-inputs
8703 `(("emacs-ivy" ,emacs-ivy)
8704 ("emacs-taskrunner" ,emacs-taskrunner)
8705 ("emacs-projectile" ,emacs-projectile)))
8706 (home-page "https://github.com/emacs-taskrunner/ivy-taskrunner")
8707 (synopsis "Retrieve build-system tasks using Ivy")
8708 (description "This package provides an Ivy interface for selecting
8709 Makefile targets.")
8710 (license license:gpl3+))))
8711
8712 (define-public emacs-helm-taskrunner
8713 (let ((commit "1910dac19cbc7bd4fd08b0faf9affd455339fbea")
8714 (revision "1"))
8715 (package
8716 (name "emacs-helm-taskrunner")
8717 (version (git-version "0.9" revision commit))
8718 (source
8719 (origin
8720 (method git-fetch)
8721 (uri (git-reference
8722 (url "https://github.com/emacs-taskrunner/helm-taskrunner")
8723 (commit commit)))
8724 (file-name (git-file-name name version))
8725 (sha256
8726 (base32
8727 "182lmr858fx6rdhp1fy7kv8dvrhzcnxzwfck1q22s6xs8x85d5q7"))))
8728 (build-system emacs-build-system)
8729 (propagated-inputs
8730 `(("emacs-helm" ,emacs-helm)
8731 ("emacs-taskrunner" ,emacs-taskrunner)
8732 ("emacs-projectile" ,emacs-projectile)))
8733 (home-page "https://github.com/emacs-taskrunner/helm-taskrunner")
8734 (synopsis "Retrieve build-system tasks using Helm")
8735 (description "This package provides a Helm interface for selecting
8736 Makefile targets.")
8737 (license license:gpl3+))))
8738
8739 (define-public emacs-helm-make
8740 (let ((commit "feae8df22bc4b20705ea08ac9adfc2b43bb348d0")
8741 (revision "1"))
8742 (package
8743 (name "emacs-helm-make")
8744 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
8745 (source
8746 (origin
8747 (method git-fetch)
8748 (uri (git-reference
8749 (url "https://github.com/abo-abo/helm-make")
8750 (commit commit)))
8751 (file-name (git-file-name name version))
8752 (sha256
8753 (base32
8754 "1y2v77mmd1bfkkz51cnk1l0dg3lvvxc39wlamnm7wjns66dbvlam"))))
8755 (build-system emacs-build-system)
8756 (propagated-inputs
8757 `(("emacs-helm" ,emacs-helm)
8758 ("emacs-projectile" ,emacs-projectile)))
8759 (home-page "https://github.com/abo-abo/helm-make")
8760 (synopsis "Select a Makefile target with helm")
8761 (description "@code{helm-make} or @code{helm-make-projectile} will give
8762 you a @code{helm} selection of directory Makefile's targets. Selecting a
8763 target will call @code{compile} on it.")
8764 (license license:gpl3+))))
8765
8766 (define-public emacs-cider
8767 (package
8768 (name "emacs-cider")
8769 (version "0.26.1")
8770 (source
8771 (origin
8772 (method git-fetch)
8773 (uri (git-reference
8774 (url "https://github.com/clojure-emacs/cider")
8775 (commit (string-append "v" version))))
8776 (file-name (git-file-name name version))
8777 (sha256
8778 (base32 "0m77jbxl380dp1wyj12m82bb06r80js8yxl530ryp1mwvy74f00d"))))
8779 (build-system emacs-build-system)
8780 (arguments
8781 '(#:exclude ;don't exclude 'cider-test.el'
8782 '("^\\.dir-locals\\.el$" "^test/")))
8783 (propagated-inputs
8784 `(("emacs-clojure-mode" ,emacs-clojure-mode)
8785 ("emacs-parseedn" ,emacs-parseedn)
8786 ("emacs-pkg-info" ,emacs-pkg-info)
8787 ("emacs-queue" ,emacs-queue)
8788 ("emacs-sesman" ,emacs-sesman)
8789 ("emacs-spinner" ,emacs-spinner)))
8790 (home-page "https://cider.mx/")
8791 (synopsis "Clojure development environment for Emacs")
8792 (description
8793 "CIDER (Clojure Interactive Development Environment that Rocks) aims to
8794 provide an interactive development experience similar to the one you'd get
8795 when programming in Emacs Lisp, Common Lisp (with SLIME or Sly), Scheme (with
8796 Geiser) and Smalltalk.
8797
8798 CIDER is the successor to the now deprecated combination of using SLIME +
8799 swank-clojure for Clojure development.
8800
8801 There are plenty of differences between CIDER and SLIME, but the core ideas
8802 are pretty much the same (and SLIME served as the principle inspiration for
8803 CIDER).")
8804 (license license:gpl3+)))
8805
8806 ;; There hasn't been a tag or release since 2016, so we take the latest
8807 ;; commit.
8808 (define-public emacs-sly
8809 (let ((commit "8e22c1f62667434ec1acd1e0c6b7ec1c22dc0958")
8810 ;; Update together with sbcl-slynk-boot0.
8811 (revision "6"))
8812 (package
8813 (name "emacs-sly")
8814 (version (git-version "1.0.0" revision commit))
8815 (source
8816 (origin
8817 (method git-fetch)
8818 (uri (git-reference
8819 (url "https://github.com/joaotavora/sly")
8820 (commit commit)))
8821 (file-name (git-file-name name version))
8822 (sha256
8823 (base32
8824 "09wyqixsn7k889i54amf8bwjg6iyirp89xmcrgfwal010kh1ixcl"))))
8825 (build-system emacs-build-system)
8826 (native-inputs
8827 `(("texinfo" ,texinfo)))
8828 (arguments
8829 `(#:include (cons* "^contrib\\/" "^lib\\/" "^slynk\\/" %default-include)
8830 #:phases
8831 ;; The package provides autoloads.
8832 (modify-phases %standard-phases
8833 (delete 'make-autoloads)
8834 (add-before 'install 'install-doc
8835 (lambda* (#:key outputs #:allow-other-keys)
8836 (let* ((out (assoc-ref outputs "out"))
8837 (info-dir (string-append out "/share/info"))
8838 (doc-dir (string-append out "/share/doc/"
8839 ,name "-" ,version))
8840 (doc-files '(;; "doc/sly-refcard.pdf" ; See sly-refcard.pdf below.
8841 "README.md" "NEWS.md" "PROBLEMS.md"
8842 "CONTRIBUTING.md")))
8843 (with-directory-excursion "doc"
8844 (substitute* "Makefile"
8845 (("infodir=/usr/local/info")
8846 (string-append "infodir=" info-dir))
8847 ;; Don't rebuild contributors.texi since we are not in
8848 ;; the git repo.
8849 (("contributors.texi: Makefile texinfo-tabulate.awk")
8850 "contributors.texi:"))
8851 (invoke "make" "html/index.html")
8852 (invoke "make" "sly.info")
8853 ;; TODO: We need minimal texlive with "preprint" package
8854 ;; (for fullpage.sty). (invoke "make" "sly-refcard.pdf")
8855 (install-file "sly.info" info-dir)
8856 (copy-recursively "html" (string-append doc-dir "/html")))
8857 (for-each (lambda (f)
8858 (install-file f doc-dir)
8859 (delete-file f))
8860 doc-files)
8861 (delete-file-recursively "doc")
8862 #t))))))
8863 (home-page "https://github.com/joaotavora/sly")
8864 (synopsis "Sylvester the Cat's Common Lisp IDE")
8865 (description
8866 "SLY is Sylvester the Cat's Common Lisp IDE. SLY is a fork of SLIME, and
8867 contains the following improvements over it:
8868
8869 @enumerate
8870 @item Completely redesigned REPL based on Emacs's own full-featured
8871 @code{comint.el}.
8872 @item Live code annotations via a new @code{sly-stickers} contrib.
8873 @item Consistent interactive button interface. Everything can be copied to
8874 the REPL.
8875 @item Multiple inspectors with independent history.
8876 @item Regexp-capable @code{M-x sly-apropos}.
8877 @item Contribs are first class SLY citizens and enabled by default.
8878 @item Use ASDF to loads contribs on demand.
8879 @end enumerate
8880
8881 SLY tracks SLIME's bugfixes and all its familiar features (debugger, inspector,
8882 xref, etc...) are still available, but with better integration.")
8883 (license license:gpl3+))))
8884
8885 (define-public emacs-sly-quicklisp
8886 (let ((commit "01ebe3976a244309f2e277c09206831135a0b66c")
8887 (revision "1"))
8888 (package
8889 (name "emacs-sly-quicklisp")
8890 (version (git-version "0.0.0" revision commit))
8891 (home-page "https://github.com/joaotavora/sly-quicklisp")
8892 (source
8893 (origin
8894 (method git-fetch)
8895 (uri (git-reference
8896 (url home-page)
8897 (commit commit)))
8898 (file-name (git-file-name name version))
8899 (sha256
8900 (base32
8901 "1vfqmvayf35g6y3ljsm3rlzv5jm50qikhh4lv2zkkswj6gkkb1cv"))))
8902 (build-system emacs-build-system)
8903 (propagated-inputs
8904 `(("emacs-sly" ,emacs-sly)))
8905 (arguments
8906 `(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
8907 #:phases
8908 ;; The package provides autoloads.
8909 (modify-phases %standard-phases
8910 (delete 'make-autoloads)
8911 (delete 'enable-autoloads-compilation))))
8912 (synopsis "Quicklisp support for SLY")
8913 (description
8914 "@command{sly-quicklisp} is an external contrib for SLY that provides a
8915 sly-quickload command that prompts the user for a package to install. ")
8916 (license license:gpl3+))))
8917
8918 (define-public emacs-sly-asdf
8919 (let ((commit "32ce14994e8faee9321605cec36d156b02996c46")
8920 (revision "4"))
8921 (package
8922 (name "emacs-sly-asdf")
8923 (version (git-version "0.1.0" revision commit))
8924 (home-page "https://github.com/mmgeorge/sly-asdf")
8925 (source
8926 (origin
8927 (method git-fetch)
8928 (uri (git-reference
8929 (url home-page)
8930 (commit commit)))
8931 (file-name (git-file-name name version))
8932 (sha256
8933 (base32
8934 "09x8l37wwqw74xc2frwzbfdb1if8rb3szg5akdk3v2qhik4sm3dd"))))
8935 (build-system emacs-build-system)
8936 (propagated-inputs
8937 `(("emacs-sly" ,emacs-sly)
8938 ("emacs-popup" ,emacs-popup)))
8939 (arguments
8940 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)))
8941 (synopsis "ASDF contrib for SLY")
8942 (description
8943 "@command{sly-asdf} is an external contrib for SLY that provides
8944 additional support for working with ASDF projects.")
8945 (license license:gpl3+))))
8946
8947 (define-public emacs-sly-named-readtables
8948 (let ((commit "a5a42674ccffa97ccd5e4e9742beaf3ea719931f")
8949 (revision "1"))
8950 (package
8951 (name "emacs-sly-named-readtables")
8952 (version (git-version "0.1" revision commit))
8953 (home-page "https://github.com/joaotavora/sly-named-readtables")
8954 (source
8955 (origin
8956 (method git-fetch)
8957 (uri (git-reference
8958 (url home-page)
8959 (commit commit)))
8960 (file-name (git-file-name name version))
8961 (sha256
8962 (base32
8963 "16asd119rzqrlclps2q6yrkis8jy5an5xgzzqvb7jdyq39zxg54q"))))
8964 (build-system emacs-build-system)
8965 (propagated-inputs
8966 `(("emacs-sly" ,emacs-sly)))
8967 (arguments
8968 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
8969 #:phases (modify-phases %standard-phases
8970 ;; Byte compilation of the autoload file fails.
8971 (delete 'enable-autoloads-compilation))))
8972 (synopsis "Named-readtables support for SLY")
8973 (description
8974 "@command{sly-named-readtables} is an external contrib for SLY that
8975 enables different readtables to be active in different parts of the same
8976 file.")
8977 (license license:gpl3+))))
8978
8979 (define-public emacs-sly-macrostep
8980 (let ((commit "5113e4e926cd752b1d0bcc1508b3ebad5def5fad")
8981 (revision "2"))
8982 (package
8983 (name "emacs-sly-macrostep")
8984 (version (git-version "0.1" revision commit))
8985 (home-page "https://github.com/joaotavora/sly-macrostep")
8986 (source
8987 (origin
8988 (method git-fetch)
8989 (uri (git-reference
8990 (url home-page)
8991 (commit commit)))
8992 (file-name (git-file-name name version))
8993 (sha256
8994 (base32
8995 "1nxf28gn4f3n0wnv7nb5sgl36fz175y470zs9hig4kq8cp0yal0r"))))
8996 (build-system emacs-build-system)
8997 (propagated-inputs
8998 `(("emacs-sly" ,emacs-sly)
8999 ("emacs-macrostep" ,emacs-macrostep)))
9000 (arguments
9001 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
9002 #:phases
9003 ;; The package provides autoloads.
9004 (modify-phases %standard-phases
9005 (delete 'make-autoloads)
9006 (delete 'enable-autoloads-compilation))))
9007 (synopsis "Expand Common Lisp macros inside source files with SLY")
9008 (description
9009 "@command{sly-macrostep} is a SLY contrib for expanding CL macros right
9010 inside the source file.")
9011 (license license:gpl3+))))
9012
9013 (define-public emacs-sly-package-inferred
9014 (let ((commit "800e71e2be631422277e2ec77e6d6f6ea20e95ef")
9015 (revision "1"))
9016 (package
9017 (name "emacs-sly-package-inferred")
9018 (version (git-version "0.1" revision commit))
9019 (home-page "https://github.com/40ants/sly-package-inferred")
9020 (source
9021 (origin
9022 (method git-fetch)
9023 (uri (git-reference
9024 (url home-page)
9025 (commit commit)))
9026 (file-name (git-file-name name version))
9027 (sha256
9028 (base32
9029 "1216idyp034nkqddhw4p53jkhhdxa6xnjjmsvijpf4rxqnfqvapg"))))
9030 (build-system emacs-build-system)
9031 (propagated-inputs
9032 `(("emacs-sly" ,emacs-sly)))
9033 (arguments
9034 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
9035 #:phases
9036 ;; The package provides autoloads.
9037 (modify-phases %standard-phases
9038 (delete 'make-autoloads))))
9039 (synopsis "Improved package inferred systems support for SLY")
9040 (description
9041 "@command{sly-package-inferred} is an external contrib for SLY that
9042 replaces its completion with a function which is better suited for systems
9043 using package inferred style.")
9044 (license license:gpl3+))))
9045
9046 (define-public emacs-lua-mode
9047 (let ((commit "35b6e4c20b8b4eaf783ccc8e613d0dd06dbd165c")
9048 (revision "0"))
9049 (package
9050 (name "emacs-lua-mode")
9051 (version (git-version "20200508" revision commit))
9052 (home-page "https://github.com/immerrr/lua-mode/")
9053 (source (origin
9054 (method git-fetch)
9055 (uri (git-reference
9056 (url home-page)
9057 (commit commit)))
9058 (file-name (git-file-name name version))
9059 (sha256
9060 (base32
9061 "1hai6rqjm5py0bp57nhggmj9qigwdj3a46ngacpnjc1qmy9kkgfk"))))
9062 (build-system emacs-build-system)
9063 (arguments
9064 `(#:tests? #t
9065 #:test-command '("buttercup" "-l" "lua-mode.el")))
9066 (native-inputs
9067 `(("emacs-buttercup" ,emacs-buttercup)
9068 ("lua" ,lua)))
9069 (synopsis "Major mode for lua")
9070 (description
9071 "This Emacs package provides a mode for @uref{https://www.lua.org/,
9072 Lua programming language}.")
9073 (license license:gpl2+))))
9074
9075 (define-public emacs-ebuild-mode
9076 (package
9077 (name "emacs-ebuild-mode")
9078 (version "1.51")
9079 (source
9080 (origin
9081 (method url-fetch)
9082 (uri (string-append
9083 "https://dev.gentoo.org/~ulm/emacs/"
9084 "ebuild-mode-" version ".tar.xz"))
9085 (file-name (string-append name "-" version ".tar.xz"))
9086 (sha256
9087 (base32 "0sfmd6ns2qdmybcynlvc4fqzkbkzmm54rn87wyirdcqnpy0x03i2"))))
9088 (build-system emacs-build-system)
9089 (arguments
9090 '(#:phases
9091 (modify-phases %standard-phases
9092 (add-after 'install 'install-doc
9093 (lambda* (#:key outputs #:allow-other-keys)
9094 (invoke "make" "ebuild-mode.info")
9095 (install-file "ebuild-mode.info"
9096 (string-append (assoc-ref outputs "out")
9097 "/share/info"))
9098 #t)))))
9099 (native-inputs
9100 `(("texinfo" ,texinfo)))
9101 (home-page "https://devmanual.gentoo.org")
9102 (synopsis "Major modes for Gentoo package files")
9103 (description
9104 "This Emacs package provides modes for ebuild, eclass, eblit, GLEP42
9105 news items, openrc and runscripts.")
9106 (license license:gpl2+)))
9107
9108 (define-public emacs-evil
9109 (package
9110 (name "emacs-evil")
9111 (version "1.14.0")
9112 (source
9113 (origin
9114 (method git-fetch)
9115 (uri (git-reference
9116 (url "https://github.com/emacs-evil/evil")
9117 (commit version)))
9118 (file-name (git-file-name name version))
9119 (sha256
9120 (base32
9121 "17xrn3s6a4afmls8fw8nnxa1jq9dmj2qqrxa2vngh50hxpz8840p"))))
9122 (arguments
9123 `(#:phases
9124 (modify-phases %standard-phases
9125 (add-before 'check 'fix-test-helpers
9126 (lambda _
9127 (substitute* "evil-test-helpers.el"
9128 (("\\(undo-tree-mode 1\\)") ""))
9129 #t)))))
9130 (build-system emacs-build-system)
9131 (home-page "https://github.com/emacs-evil/evil")
9132 (synopsis "Extensible Vi layer for Emacs")
9133 (description
9134 "Evil is an extensible vi layer for Emacs. It emulates the
9135 main features of Vim, and provides facilities for writing custom
9136 extensions.")
9137 (license license:gpl3+)))
9138
9139 (define-public emacs-evil-collection
9140 (let ((commit "c68aed6a9694836602ada224160bc5b4c0a37919")
9141 (revision "15"))
9142 (package
9143 (name "emacs-evil-collection")
9144 (version (git-version "0.0.3" revision commit))
9145 (source (origin
9146 (method git-fetch)
9147 (uri (git-reference
9148 (url "https://github.com/emacs-evil/evil-collection")
9149 (commit commit)))
9150 (file-name (git-file-name name version))
9151 (sha256
9152 (base32
9153 "1xhrzl0vy540a572f9fnh5a039bpqsrkv0kh6bqw0rki70w7x0xx"))))
9154 (build-system emacs-build-system)
9155 (propagated-inputs
9156 `(("emacs-evil" ,emacs-evil)
9157 ("emacs-annalist" ,emacs-annalist)))
9158 (arguments
9159 `(#:include (cons* "^modes\\/" %default-include)))
9160 (home-page "https://github.com/emacs-evil/evil-collection")
9161 (synopsis "Collection of Evil bindings for many major and minor modes")
9162 (description "This is a collection of Evil bindings for the parts of
9163 Emacs that Evil does not cover properly by default, such as @code{help-mode},
9164 @code{M-x calendar}, Eshell and more.")
9165 (license license:gpl3+))))
9166
9167 (define-public emacs-goto-chg
9168 (let ((commit "1829a13026c597e358f716d2c7793202458120b5")
9169 (version "1.7.3")
9170 (revision "1"))
9171 (package
9172 (name "emacs-goto-chg")
9173 (version (git-version version revision commit))
9174 (source
9175 (origin
9176 (method git-fetch)
9177 (uri (git-reference
9178 (url "https://github.com/emacs-evil/goto-chg")
9179 (commit commit)))
9180 (file-name (git-file-name name version))
9181 (sha256
9182 (base32
9183 "1y603maw9xwdj3qiarmf1bp13461f9f5ackzicsbynl0i9la3qki"))))
9184 (build-system emacs-build-system)
9185 (propagated-inputs
9186 `(("emacs-undo-tree" ,emacs-undo-tree)))
9187 (home-page "https://github.com/emacs-evil/goto-chg")
9188 (synopsis "Go to the last change in the Emacs buffer")
9189 (description
9190 "This package provides @code{M-x goto-last-change} command that goes to
9191 the point of the most recent edit in the current Emacs buffer. When repeated,
9192 go to the second most recent edit, etc. Negative argument, @kbd{C-u -}, is
9193 used for reverse direction.")
9194 (license license:gpl2+))))
9195
9196 (define-public emacs-janpath-evil-numbers
9197 (let ((commit "d988041c1fe6e941dc8d591390750b237f71f524")
9198 (version "0.5")
9199 (revision "1"))
9200 (package
9201 (name "emacs-janpath-evil-numbers")
9202 (version (git-version version revision commit))
9203 (source
9204 (origin
9205 (method git-fetch)
9206 (uri (git-reference
9207 (url "https://github.com/janpath/evil-numbers")
9208 (commit commit)))
9209 (file-name (git-file-name name version))
9210 (sha256
9211 (base32
9212 "16zixhxxcb83m82f2cfiardfn99j3w41v6vh1qk6j9pplrlfw70v"))))
9213 (build-system emacs-build-system)
9214 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9215 (home-page "https://github.com/janpath/evil-numbers")
9216 (synopsis "Increment and decrement numeric literals")
9217 (description
9218 "This package provides functionality to search for a number up to the
9219 end of a line and increment or decrement it.")
9220 (license license:gpl3+))))
9221
9222 (define-public emacs-evil-owl
9223 (let ((commit "24c5f43df375194386344e69bc720ea3986c9510")
9224 (revision "3"))
9225 (package
9226 (name "emacs-evil-owl")
9227 (version (git-version "0.0.1" revision commit))
9228 (source
9229 (origin
9230 (method git-fetch)
9231 (uri (git-reference
9232 (url "https://github.com/mamapanda/evil-owl")
9233 (commit commit)))
9234 (file-name (git-file-name name version))
9235 (sha256
9236 (base32
9237 "0bqzch14whlmrcasakah3psrzswvkzd7mmi8hx5s64kfp29wbdhi"))))
9238 (build-system emacs-build-system)
9239 (propagated-inputs
9240 `(("emacs-evil" ,emacs-evil)))
9241 (arguments
9242 `(#:tests? #t
9243 #:test-command '("make" "test")))
9244 (home-page "https://github.com/mamapanda/evil-owl")
9245 (synopsis "Preview candidates when using Evil registers and marks")
9246 (description
9247 "This package supplements Evil's register- and mark-based commands with
9248 a popup window for previewing candidates.")
9249 (license license:gpl3+))))
9250
9251 (define-public emacs-evil-args
9252 (let ((commit "758ad5ae54ad34202064fec192c88151c08cb387")
9253 (revision "1"))
9254 (package
9255 (name "emacs-evil-args")
9256 (version (git-version "1.0" revision commit))
9257 (source
9258 (origin
9259 (method git-fetch)
9260 (uri (git-reference
9261 (url "https://github.com/wcsmith/evil-args")
9262 (commit commit)))
9263 (file-name (git-file-name name version))
9264 (sha256
9265 (base32
9266 "0k35glgsirc3cph8v5hhjrqfh4ndwh8a28qbr03y3jl8s453xcj7"))))
9267 (build-system emacs-build-system)
9268 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9269 (home-page "https://github.com/wcsmith/evil-args")
9270 (synopsis "Motions and text objects for delimited arguments in Evil")
9271 (description
9272 "This package provides motions and text objects for delimited
9273 arguments, such as arguments separated by commas and semicolons.")
9274 (license license:expat))))
9275
9276 (define-public emacs-evil-escape
9277 (package
9278 (name "emacs-evil-escape")
9279 (version "3.14")
9280 (source
9281 (origin
9282 (method git-fetch)
9283 (uri
9284 (git-reference
9285 (url "https://github.com/syl20bnr/evil-escape")
9286 (commit (string-append "v" version))))
9287 (file-name (git-file-name name version))
9288 (sha256
9289 (base32 "0s8lmmm25qabicwaj9jybpbd8mkc62yl7jnhk1lpablydjkv3w2i"))))
9290 (propagated-inputs
9291 `(("emacs-evil" ,emacs-evil)))
9292 (build-system emacs-build-system)
9293 (home-page "https://github.com/syl20bnr/evil-escape")
9294 (synopsis "Escape from insert state and everything else in Emacs")
9295 (description
9296 "Evil escape provides a customizable key sequence to escape from insert
9297 state and everything else in Emacs.")
9298 (license license:gpl3+)))
9299
9300 (define-public emacs-evil-exchange
9301 (let ((commit "47691537815150715e64e6f6ec79be7746c96120")
9302 (version "0.41")
9303 (revision "1"))
9304 (package
9305 (name "emacs-evil-exchange")
9306 (version (git-version version revision commit))
9307 (source
9308 (origin
9309 (method git-fetch)
9310 (uri (git-reference
9311 (url "https://github.com/Dewdrops/evil-exchange")
9312 (commit commit)))
9313 (file-name (git-file-name name version))
9314 (sha256
9315 (base32
9316 "0bjpn4yqig17ddym6wqq5fm1b294q74hzcbj9a6gs97fqiwf88xa"))))
9317 (build-system emacs-build-system)
9318 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9319 (native-inputs `(("emacs-ert-runner" ,emacs-ert-runner)))
9320 (arguments
9321 `(#:phases
9322 (modify-phases %standard-phases
9323 (add-before 'check 'fix-makefile
9324 (lambda _
9325 (substitute* "Makefile"
9326 (("cask exec ") ""))
9327 #t)))
9328 #:tests? #t
9329 #:test-command '("make" "test")))
9330 (home-page "https://github.com/Dewdrops/evil-exchange")
9331 (synopsis "Exchange text easily within Evil")
9332 (description
9333 "This package, a port of @code{vim-exchange}, provides an Evil operator
9334 for exchanging text.")
9335 (license license:gpl3+))))
9336
9337 (define-public emacs-evil-replace-with-register
9338 (let ((commit "91cc7bf21a94703c441cc9212214075b226b7f67")
9339 (version "0.1")
9340 (revision "1"))
9341 (package
9342 (name "emacs-evil-replace-with-register")
9343 (version (git-version version revision commit))
9344 (source
9345 (origin
9346 (method git-fetch)
9347 (uri (git-reference
9348 (url "https://github.com/Dewdrops/evil-ReplaceWithRegister")
9349 (commit commit)))
9350 (file-name (git-file-name name version))
9351 (sha256
9352 (base32
9353 "14rpn76qrf287s3y2agmddcxi27r226i53ixjvd694ss039g0r11"))))
9354 (build-system emacs-build-system)
9355 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9356 (home-page "https://github.com/Dewdrops/evil-ReplaceWithRegister")
9357 (synopsis "Quickly replace text with the contents of a register")
9358 (description
9359 "This package provides an Evil operator for replacing text with the
9360 contents of a register.")
9361 (license license:gpl3+))))
9362
9363 (define-public emacs-evil-indent-plus
9364 (let ((commit "0c7501e6efed661242c3a20e0a6c79a6455c2c40")
9365 (version "1.0.0")
9366 (revision "1"))
9367 (package
9368 (name "emacs-evil-indent-plus")
9369 (version (git-version version revision commit))
9370 (source
9371 (origin
9372 (method git-fetch)
9373 (uri (git-reference
9374 (url "https://github.com/TheBB/evil-indent-plus")
9375 (commit commit)))
9376 (file-name (git-file-name name version))
9377 (sha256
9378 (base32
9379 "1g6r1ydscwjvmhh1zg4q3nap4avk8lb9msdqrh7dff6pla0r2qs6"))))
9380 (build-system emacs-build-system)
9381 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9382 (home-page "https://github.com/TheBB/evil-indent-plus")
9383 (synopsis "Text objects based on indentation")
9384 (description
9385 "This package adds new text objects for @code{evil-mode} based on
9386 blocks having the same or higher indentation, including or excluding
9387 surrounding lines.")
9388 (license license:gpl2+))))
9389
9390 (define-public emacs-evil-text-object-python
9391 (let ((commit "9a064fe6475429145cbcc3b270fcc963b67adb15")
9392 (version "1.0.1")
9393 (revision "1"))
9394 (package
9395 (name "emacs-evil-text-object-python")
9396 (version (git-version version revision commit))
9397 (source
9398 (origin
9399 (method git-fetch)
9400 (uri (git-reference
9401 (url "https://github.com/wbolster/evil-text-object-python")
9402 (commit commit)))
9403 (file-name (git-file-name name version))
9404 (sha256
9405 (base32
9406 "074zpm6mmr1wfl6d5xdf8jk1fs4ccpbzf4ahhkwga9g71xiplszv"))))
9407 (build-system emacs-build-system)
9408 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9409 (home-page "https://github.com/wbolster/evil-text-object-python")
9410 (synopsis "Text objects for Python")
9411 (description
9412 "This package provides @code{evil-mode} text objects for Python.")
9413 (license license:gpl3+))))
9414
9415 (define-public emacs-evil-lion
9416 (let ((commit "6b03593f5dd6e7c9ca02207f9a73615cf94c93ab")
9417 (revision "1"))
9418 (package
9419 (name "emacs-evil-lion")
9420 (version (git-version "0.0.2" revision commit))
9421 (source
9422 (origin
9423 (method git-fetch)
9424 (uri (git-reference
9425 (url "https://github.com/edkolev/evil-lion")
9426 (commit commit)))
9427 (file-name (git-file-name name version))
9428 (sha256
9429 (base32
9430 "1a162hynp0jcsn50c1w5a02mrw9w3q05c7lkqzqd25px3d0p772q"))))
9431 (build-system emacs-build-system)
9432 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9433 (arguments
9434 `(#:tests? #t
9435 #:test-command '("make" "test")))
9436 (home-page "https://github.com/edkolev/evil-lion")
9437 (synopsis "Align operator for @code{evil-mode}")
9438 (description
9439 "This package, a port of @code{vim-lion}, provides an operator for
9440 aligning text objects based on separators.")
9441 (license license:gpl3+))))
9442
9443 (define-public emacs-evil-expat
9444 (let ((commit "f4fcd0aa3edc359adb5c986b5dd9188d220d84e2")
9445 (revision "1"))
9446 (package
9447 (name "emacs-evil-expat")
9448 (version (git-version "0.0.1" revision commit))
9449 (source
9450 (origin
9451 (method git-fetch)
9452 (uri (git-reference
9453 (url "https://github.com/edkolev/evil-expat")
9454 (commit commit)))
9455 (file-name (git-file-name name version))
9456 (sha256
9457 (base32
9458 "0872ix682hkdz0k8pn6sb54rqkx00rz5fxpd5j2snx406yagpaxz"))))
9459 (build-system emacs-build-system)
9460 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9461 (arguments
9462 `(#:tests? #t
9463 #:test-command '("make" "test")))
9464 (home-page "https://github.com/edkolev/evil-expat")
9465 (synopsis "Extra @code{ex} commands for @code{evil-mode}")
9466 (description
9467 "This package provides additional commands for the @code{ex} command
9468 line, including functions for version control with Git and for copying and
9469 pasting into and from @code{tmux} paste buffers.")
9470 (license license:gpl3+))))
9471
9472 (define-public emacs-evil-nerd-commenter
9473 (package
9474 (name "emacs-evil-nerd-commenter")
9475 (version "3.3.8")
9476 (source
9477 (origin
9478 (method git-fetch)
9479 (uri (git-reference
9480 (url "https://github.com/redguardtoo/evil-nerd-commenter")
9481 (commit version)))
9482 (file-name (git-file-name name version))
9483 (sha256
9484 (base32
9485 "0qd5a89mzvdyhd8lm13iwp220vzpd6dajwx54frlc5bzsxdmg6vc"))))
9486 (build-system emacs-build-system)
9487 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9488 (arguments
9489 `(#:tests? #t
9490 #:test-command '("make" "test")))
9491 (home-page "https://github.com/redguardtoo/evil-nerd-commenter")
9492 (synopsis "Comment and uncomment lines efficiently")
9493 (description
9494 "This package provides text objects and operators for comments within
9495 @code{evil-mode}.")
9496 (license license:gpl3+)))
9497
9498 (define-public emacs-evil-visual-replace
9499 (package
9500 (name "emacs-evil-visual-replace")
9501 (version "0.0.5")
9502 (source
9503 (origin
9504 (method git-fetch)
9505 (uri (git-reference
9506 (url "https://github.com/troyp/evil-visual-replace")
9507 (commit version)))
9508 (file-name (git-file-name name version))
9509 (sha256
9510 (base32
9511 "1gfyrq7xfzmzh3x8k5f08n027dlbwi0pkkxf9c39fkxp4jngibsz"))))
9512 (build-system emacs-build-system)
9513 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9514 (home-page "https://github.com/troyp/evil-visual-replace")
9515 (synopsis "Replacement commands for @code{evil-mode} visual blocks")
9516 (description
9517 "This package provides versions of @code{query-replace} and
9518 @code{replace-regexp} that work for @code{evil-mode} visual blocks.")
9519 (license license:gpl2+)))
9520
9521 (define-public emacs-evil-visualstar
9522 (let ((commit "06c053d8f7381f91c53311b1234872ca96ced752")
9523 (version "0.0.2")
9524 (revision "1"))
9525 (package
9526 (name "emacs-evil-visualstar")
9527 (version (git-version version revision commit))
9528 (source
9529 (origin
9530 (method git-fetch)
9531 (uri (git-reference
9532 (url "https://github.com/bling/evil-visualstar")
9533 (commit commit)))
9534 (file-name (git-file-name name version))
9535 (sha256
9536 (base32
9537 "0mkbzw12fav945icibc2293m5haxqr3hzkyli2cf4ssk6yvn0x4c"))))
9538 (build-system emacs-build-system)
9539 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9540 (home-page "https://github.com/bling/evil-visualstar")
9541 (synopsis "Instantly search using the visual selection")
9542 (description
9543 "This package provides @code{evil-mode} functions for using selected text
9544 to search.")
9545 (license license:gpl3+))))
9546
9547 (define-public emacs-monky
9548 (package
9549 (name "emacs-monky")
9550 (version "0.1")
9551 (source (origin
9552 (method git-fetch)
9553 (uri (git-reference
9554 (url "https://github.com/ananthakumaran/monky")
9555 (commit version)))
9556 (file-name (git-file-name name version))
9557 (sha256
9558 (base32
9559 "1fgn7al4zwz2k5wb5dy3byqg9lsrjk9fra341mxh5ma2pfwxjgps"))))
9560 (build-system emacs-build-system)
9561 (home-page "https://ananthakumaran.in/monky/index.html")
9562 (arguments
9563 `(#:tests? #t
9564 #:test-command '("emacs" "--batch"
9565 "-l" "test/monky-unit-test.el"
9566 "-f" "ert-run-tests-batch-and-exit")))
9567 (synopsis "Interactive interface for the Mercurial version control system")
9568 (description
9569 "Monky provides an Emacs interface for Mercurial (Hg). Using Monky, you
9570 can selectively commit files, view the diffs, and other things.")
9571 (license license:gpl3+)))
9572
9573 (define-public emacs-monroe
9574 (package
9575 (name "emacs-monroe")
9576 (version "0.3.1")
9577 (source
9578 (origin
9579 (method git-fetch)
9580 (uri (git-reference
9581 (url "https://github.com/sanel/monroe")
9582 (commit version)))
9583 (file-name (git-file-name name version))
9584 (sha256
9585 (base32 "101lfrykdbv37spkbw7zihhx26bc1lhjyxbanrcp9880bxj04jiy"))))
9586 (build-system emacs-build-system)
9587 (home-page "https://github.com/sanel/monroe")
9588 (synopsis "Clojure nREPL client for Emacs")
9589 (description
9590 "Monroe is a nREPL client for Emacs, focused on simplicity and easy
9591 distribution, primarily targeting Clojure users")
9592 (license license:gpl3+)))
9593
9594 (define-public emacs-orgalist
9595 (package
9596 (name "emacs-orgalist")
9597 (version "1.12")
9598 (source
9599 (origin
9600 (method url-fetch)
9601 (uri (string-append "https://elpa.gnu.org/packages/"
9602 "orgalist-" version ".el"))
9603 (sha256
9604 (base32 "1hwm7j0hbv2pg9w885ky1c9qga3grcfq8v216jv2ivkw8xzavysd"))))
9605 (build-system emacs-build-system)
9606 (home-page "https://elpa.gnu.org/packages/orgalist.html")
9607 (synopsis "Manage Org-like lists in non-Org buffers")
9608 (description "Orgalist writes and manages Org mode's plain lists in
9609 non-Org buffers. More specifically, it supports the syntax of Org mode for
9610 numbered, unnumbered, description items, checkboxes, and counter cookies.
9611
9612 The library also implements radio lists, i.e., lists written in Org syntax
9613 later translated into the host format, e.g., LaTeX or HTML.")
9614 (license license:gpl3+)))
9615
9616 (define-public emacs-writegood-mode
9617 (package
9618 (name "emacs-writegood-mode")
9619 (version "2.0.2")
9620 (home-page "https://github.com/bnbeckwith/writegood-mode")
9621 (source (origin
9622 (method git-fetch)
9623 (uri (git-reference
9624 (url home-page)
9625 (commit (string-append "v" version))))
9626 (sha256
9627 (base32
9628 "1nnjn1r669hvvzfycllwap4w04m8rfsk4nzcg8057m1f263kj31b"))
9629 (file-name (string-append name "-checkout"))))
9630 (build-system emacs-build-system)
9631 (synopsis "Polish up poor writing on the fly")
9632 (description
9633 "This minor mode tries to find and highlight problems with your writing
9634 in English as you type. It primarily detects \"weasel words\" and abuse of
9635 passive voice.")
9636 (license license:gpl3+)))
9637
9638 (define-public emacs-neotree
9639 (package
9640 (name "emacs-neotree")
9641 (version "0.5.2")
9642 (home-page "https://github.com/jaypei/emacs-neotree")
9643 (source (origin
9644 (method git-fetch)
9645 (uri (git-reference
9646 (url home-page)
9647 (commit version)))
9648 (sha256
9649 (base32
9650 "0hx72fq10772bbyqrj7mhhp02k26cccjxdadiqm1ykainhfmn1x0"))
9651 (file-name (git-file-name name version))))
9652 (build-system emacs-build-system)
9653 (synopsis "Folder tree view for Emacs")
9654 (description "This Emacs package provides a folder tree view.")
9655 (license license:gpl3+)))
9656
9657 (define-public emacs-org
9658 (package
9659 (name "emacs-org")
9660 ;; emacs-org-contrib inherits from this package. Please update it as
9661 ;; well.
9662 (version "9.3.8")
9663 (source
9664 (origin
9665 (method url-fetch)
9666 (uri (string-append "https://elpa.gnu.org/packages/org-" version ".tar"))
9667 (sha256
9668 (base32 "1az00pi9rw3ibx4061jyqr6ll27kvs99yvd7nk5dckjh0ajd0gni"))))
9669 (build-system emacs-build-system)
9670 (arguments
9671 `(#:phases
9672 (modify-phases %standard-phases
9673 (add-after 'install 'install-documentation
9674 (lambda* (#:key outputs #:allow-other-keys)
9675 (let* ((share (string-append (assoc-ref outputs "out") "/share"))
9676 (info-dir (string-append share "/info"))
9677 (doc-dir (string-append share "/doc/" ,name "-" ,version)))
9678 (install-file "org" info-dir)
9679 (install-file "orgcard.pdf" doc-dir))
9680 #t)))))
9681 (home-page "https://orgmode.org/")
9682 (synopsis "Outline-based notes management and organizer")
9683 (description "Org is an Emacs mode for keeping notes, maintaining TODO
9684 lists, and project planning with a fast and effective lightweight markup
9685 language. It also is an authoring system with unique support for literate
9686 programming and reproducible research.")
9687 (license license:gpl3+)))
9688
9689 (define-public emacs-org-contrib
9690 (package
9691 (inherit emacs-org)
9692 (name "emacs-org-contrib")
9693 (version "20200907")
9694 (source
9695 (origin
9696 (method url-fetch)
9697 (uri (string-append "https://orgmode.org/elpa/"
9698 "org-plus-contrib-" version ".tar"))
9699 (sha256
9700 (base32 "1rgk3pwhsmbmwlncg60ahwrrkm1ks4xpwy2wzv9q7myl1aihjj54"))))
9701 (arguments
9702 `(#:modules ((guix build emacs-build-system)
9703 (guix build utils)
9704 (guix build emacs-utils)
9705 (ice-9 ftw)
9706 (srfi srfi-1))
9707 #:phases
9708 (modify-phases %standard-phases
9709 (add-after 'install 'delete-org-files
9710 (lambda* (#:key inputs outputs #:allow-other-keys)
9711 (let* ((out (assoc-ref outputs "out"))
9712 (org (assoc-ref inputs "org"))
9713 (contrib-files
9714 (map basename (find-files out)))
9715 (org+contrib-files
9716 (map basename (find-files org)))
9717 (duplicates (lset-intersection string=?
9718 contrib-files
9719 org+contrib-files)))
9720 (with-directory-excursion
9721 (string-append out "/share/emacs/site-lisp")
9722 (for-each delete-file duplicates))
9723 #t))))))
9724 (propagated-inputs
9725 `(("arduino-mode" ,emacs-arduino-mode)
9726 ("cider" ,emacs-cider)
9727 ("org" ,emacs-org)
9728 ("scel" ,emacs-scel)))
9729 (synopsis "Contributed packages to Org mode")
9730 (description "Org is an Emacs mode for keeping notes, maintaining TODO
9731 lists, and project planning with a fast and effective plain-text system.
9732
9733 This package is equivalent to org-plus-contrib, but only includes additional
9734 files that you would find in @file{contrib/} from the git repository.")))
9735
9736 (define-public emacs-org-edna
9737 (package
9738 (name "emacs-org-edna")
9739 (version "1.1.2")
9740 (source (origin
9741 (method bzr-fetch)
9742 (uri (bzr-reference
9743 (url "bzr://bzr.savannah.nongnu.org/org-edna-el")
9744 (revision version)))
9745 (file-name (string-append name "-" version "-checkout"))
9746 (sha256
9747 (base32
9748 "01dblddgx0yid5hrgl4swbr4grhv057kfbdy122wihzqpsrgq86n"))))
9749 (build-system emacs-build-system)
9750 (home-page "https://savannah.nongnu.org/projects/org-edna-el/")
9751 (synopsis "Manage Org task dependencies")
9752 (description "This package provides an extensible means of specifying
9753 conditions which must be fulfilled before a task can be completed and actions
9754 to take once it is. Org Edna runs when either the BLOCKER or TRIGGER
9755 properties are set on a heading, and when it is changing from a TODO state to
9756 a DONE state.")
9757 (license license:gpl3+)))
9758
9759 (define-public emacs-flx
9760 (package
9761 (name "emacs-flx")
9762 (version "0.6.1")
9763 (source
9764 (origin
9765 (method git-fetch)
9766 (uri (git-reference
9767 (url "https://github.com/lewang/flx")
9768 (commit (string-append "v" version))))
9769 (sha256
9770 (base32
9771 "0sjybrcnb2sl33swy3q664vqrparajcl0m455gciiih2j87hwadc"))
9772 (file-name (git-file-name name version))))
9773 (build-system emacs-build-system)
9774 (home-page "https://github.com/lewang/flx")
9775 (synopsis "Fuzzy matching for Emacs")
9776 (description
9777 "Flx provides fuzzy matching for emacs a la sublime text.
9778 The sorting algorithm is a balance between word beginnings (abbreviation)
9779 and contiguous matches (substring). The longer the substring match,
9780 the higher it scores. This maps well to how we think about matching.
9781 Flx has support for ido (interactively do things) through flx-ido.")
9782 (license license:gpl3+)))
9783
9784 (define-public emacs-cyberpunk-theme
9785 (package
9786 (name "emacs-cyberpunk-theme")
9787 (version "1.22")
9788 (source
9789 (origin
9790 (method git-fetch)
9791 (uri (git-reference
9792 (url "https://github.com/n3mo/cyberpunk-theme.el/")
9793 (commit version)))
9794 (sha256
9795 (base32
9796 "06nff38pcy5rgz13svkajsg0jjk73qy4a8m7p9f76yxcywxlgxlc"))
9797 (file-name (git-file-name name version))))
9798 (build-system emacs-build-system)
9799 (home-page "https://github.com/n3mo/cyberpunk-theme.el")
9800 (synopsis "Cyberpunk theme for Emacs built-in color theme support")
9801 (description
9802 "Cyberpunk color theme for the Emacs 24+ built-in color theme support
9803 known loosely as deftheme. Many mode-specific customizations are included.")
9804 (license license:gpl3+)))
9805
9806 (define-public emacs-danneskjold-theme
9807 (let* ((commit "8733d2fe8743e8a01826ea6d4430ef376c727e57")
9808 (revision "1"))
9809 (package
9810 (name "emacs-danneskjold-theme")
9811 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
9812 (home-page "https://github.com/rails-to-cosmos/danneskjold-theme")
9813 (source
9814 (origin
9815 (method git-fetch)
9816 (uri (git-reference
9817 (url home-page)
9818 (commit commit)))
9819 (file-name (git-file-name name version))
9820 (sha256
9821 (base32
9822 "0s6rbsb0y8i8m5b9xm4gw1p1cxsxdqnqxqqb638pygz9f76mbir1"))))
9823 (build-system emacs-build-system)
9824 (arguments
9825 `(#:phases
9826 (modify-phases %standard-phases
9827 (add-after 'unpack 'delete-screenshots
9828 (lambda _
9829 (delete-file-recursively "screenshots") #t)))))
9830 (synopsis "High-contrast Emacs theme")
9831 (description
9832 "@code{danneskjold-theme} is a high-contrast theme for Emacs.")
9833 (license license:gpl3+))))
9834
9835 (define-public emacs-dream-theme
9836 (let* ((commit "107a11d74365046f28a1802a2bdb5e69e4a7488b")
9837 (revision "1"))
9838 (package
9839 (name "emacs-dream-theme")
9840 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
9841 (source
9842 (origin
9843 (method git-fetch)
9844 (uri (git-reference
9845 (url "https://github.com/djcb/dream-theme")
9846 (commit commit)))
9847 (file-name (git-file-name name version))
9848 (sha256
9849 (base32
9850 "0za18nfkq4xqm35k6006vsixcbmvmxqgma4iw5sw37h8vmcsdylk"))))
9851 (build-system emacs-build-system)
9852 (home-page "https://github.com/djcb/dream-theme")
9853 (synopsis "High-contrast Emacs theme")
9854 (description
9855 "@code{dream-theme} is a dark, clean theme for Emacs. It is inspired
9856 by zenburn, sinburn and similar themes, but slowly diverging from them.")
9857 (license license:gpl3+))))
9858
9859 (define-public emacs-dracula-theme
9860 (package
9861 (name "emacs-dracula-theme")
9862 (version "1.7.0")
9863 (source
9864 (origin
9865 (method git-fetch)
9866 (uri (git-reference
9867 (url "https://github.com/dracula/emacs")
9868 (commit (string-append "v" version))))
9869 (file-name (git-file-name name version))
9870 (sha256
9871 (base32 "15y2djc5jljlvls1x9kp50m1kp0dcksmyixafsyimj66xpq9ngh0"))))
9872 (build-system emacs-build-system)
9873 (home-page "https://draculatheme.com/")
9874 (synopsis "Dark theme for Emacs")
9875 (description
9876 "Dracula is a dark color theme for many editors, shells and more. This
9877 package provides the Emacs theme.")
9878 (license license:expat)))
9879
9880 (define-public emacs-auto-complete
9881 (package
9882 (name "emacs-auto-complete")
9883 (version "1.5.1")
9884 (source
9885 (origin
9886 (method git-fetch)
9887 (uri (git-reference
9888 (url "https://github.com/auto-complete/auto-complete")
9889 (commit (string-append "v" version))))
9890 (sha256
9891 (base32
9892 "04i9b11iksg6acn885wl3qgi5xpsm3yszlqmd2x21yhprndlz7gb"))
9893 (file-name (git-file-name name version))))
9894 (build-system emacs-build-system)
9895 (propagated-inputs
9896 `(("emacs-popup" ,emacs-popup)))
9897 (home-page "https://github.com/auto-complete/auto-complete")
9898 (synopsis "Intelligent auto-completion extension for Emacs")
9899 (description
9900 "Auto-Complete is an intelligent auto-completion extension for Emacs.
9901 It extends the standard Emacs completion interface and provides an environment
9902 that allows users to concentrate more on their own work. Its features are:
9903 a visual interface, reduce overhead of completion by using statistic method,
9904 extensibility.")
9905 (license license:gpl3+)))
9906
9907 (define-public emacs-nginx-mode
9908 (package
9909 (name "emacs-nginx-mode")
9910 (version "1.1.9")
9911 (source
9912 (origin
9913 (method git-fetch)
9914 (uri (git-reference
9915 (url "https://github.com/ajc/nginx-mode")
9916 (commit (string-append "v" version))))
9917 (file-name (git-file-name name version))
9918 (sha256
9919 (base32 "17dh5pr3gh6adrbqx588gimxbb2fr7iv2qrxv6r48w2727l344xs"))))
9920 (build-system emacs-build-system)
9921 (home-page "https://github.com/ajc/nginx-mode")
9922 (synopsis "Emacs major mode for editing nginx config files")
9923 (description "This package provides an Emacs major mode for
9924 editing nginx config files.")
9925 (license license:gpl2+)))
9926
9927 (define-public emacs-stream
9928 (package
9929 (name "emacs-stream")
9930 (version "2.2.5")
9931 (source
9932 (origin
9933 (method url-fetch)
9934 (uri (string-append "https://elpa.gnu.org/packages/"
9935 "stream-" version ".tar"))
9936 (file-name (git-file-name name version))
9937 (sha256
9938 (base32 "00c3n4gyxzv7vczqms0d62kl8zsmjfyxa92mwxn2snyx857a9jfw"))))
9939 (build-system emacs-build-system)
9940 (home-page "http://elpa.gnu.org/packages/stream.html")
9941 (synopsis "Implementation of streams for Emacs")
9942 (description "This library provides an implementation of streams for Emacs.
9943 Streams are implemented as delayed evaluation of cons cells.")
9944 (license license:gpl3+)))
9945
9946 (define-public emacs-cl-print
9947 (let ((commit "1a70c553dfb04352afb5b8696fe0cef8acc8f991")
9948 (revision "1"))
9949 (package
9950 (name "emacs-cl-print")
9951 (version (git-version "1.0" revision commit))
9952 (source
9953 (origin
9954 (method git-fetch)
9955 (uri (git-reference
9956 (url "https://github.com/emacsmirror/cl-print")
9957 (commit commit)))
9958 (file-name (git-file-name name version))
9959 (sha256
9960 (base32 "164zbnsi5mssvcpy0158fm7fw5cmd1r5nkpn29fmd2b2scy3gm79"))))
9961 (build-system emacs-build-system)
9962 (home-page "https://github.com/emacsmirror/cl-print")
9963 (synopsis "CL-style generic printing")
9964 (description "This package provides a generic function,
9965 @code{cl-print-object}, to which the programmer can add any method they
9966 please.")
9967 (license license:gpl3+))))
9968
9969 (define-public emacs-el-search
9970 (let ((commit "07bed84dd8ae9e4c6c648834224b1d33fdbd51e0")
9971 (revision "2"))
9972 (package
9973 (name "emacs-el-search")
9974 (version (git-version "1.12.6.1" revision commit))
9975 (source
9976 (origin
9977 (method git-fetch)
9978 (uri (git-reference
9979 (url "https://github.com/emacsmirror/el-search")
9980 (commit commit)))
9981 (file-name (git-file-name name version))
9982 (sha256
9983 (base32 "10w1ldgijdhfsrazp0y3bm76jv5wvdn94k1yp0pmc2m1896b58ak"))))
9984 (build-system emacs-build-system)
9985 (inputs
9986 `(("emacs-stream" ,emacs-stream)
9987 ("emacs-cl-print" ,emacs-cl-print)))
9988 (home-page "https://github.com/emacsmirror/el-search")
9989 (synopsis "Expression based interactive search for emacs-lisp-mode")
9990 (description "This package provides expression based interactive search
9991 procedures for emacs-lisp-mode.")
9992 (license license:gpl3+))))
9993
9994 (define-public emacs-ht
9995 (package
9996 (name "emacs-ht")
9997 (version "2.2")
9998 (source
9999 (origin
10000 (method git-fetch)
10001 (uri (git-reference
10002 (url "https://github.com/Wilfred/ht.el")
10003 (commit version)))
10004 (file-name (git-file-name name version))
10005 (sha256
10006 (base32 "1p3qa7g0wa0wbviv2f8bda39cjys3naayk5xjm3nxxmqsyy8papx"))))
10007 (build-system emacs-build-system)
10008 (propagated-inputs `(("emacs-dash" ,emacs-dash)))
10009 (native-inputs
10010 `(("emacs-ert-runner" ,emacs-ert-runner)))
10011 (arguments
10012 `(#:tests? #t
10013 #:test-command '("ert-runner")))
10014 (home-page "https://github.com/Wilfred/ht.el")
10015 (synopsis "Hash table library for Emacs")
10016 (description
10017 "This package simplifies the use of hash tables in elisp. It also
10018 provides functions to convert hash tables from and to alists and plists.")
10019 (license license:gpl3+)))
10020
10021 (define-public emacs-log4e
10022 (package
10023 (name "emacs-log4e")
10024 (version "0.3.0")
10025 (source
10026 (origin
10027 (method git-fetch)
10028 (uri (git-reference
10029 (url "https://github.com/aki2o/log4e")
10030 (commit (string-append "v" version))))
10031 (file-name (git-file-name name version))
10032 (sha256
10033 (base32 "1l28n7a0v2zkknc70i1wn6qb5i21dkhfizzk8wcj28v44cgzk022"))))
10034 (build-system emacs-build-system)
10035 (arguments
10036 `(#:phases
10037 (modify-phases %standard-phases
10038 (add-after 'unpack 'remove-tests
10039 ;; Guile builder complains about null characters in some
10040 ;; strings of test files. Remove "test" directory (it is not
10041 ;; needed anyway).
10042 (lambda _
10043 (delete-file-recursively "test"))))))
10044 (home-page "https://github.com/aki2o/log4e")
10045 (synopsis "Logging framework for elisp")
10046 (description
10047 "This package provides a logging framework for elisp. It allows
10048 you to deal with multiple log levels.")
10049 (license license:gpl3+)))
10050
10051 (define-public emacs-gntp
10052 (package
10053 (name "emacs-gntp")
10054 (version "0.1")
10055 (source
10056 (origin
10057 (method git-fetch)
10058 (uri (git-reference
10059 (url "https://github.com/tekai/gntp.el")
10060 (commit (string-append "v" version))))
10061 (file-name (git-file-name name version))
10062 (sha256
10063 (base32 "1nvyjjjydrimpxy4cpg90si7sr8lmldbhlcm2mx8npklp9pn5y3a"))))
10064 (build-system emacs-build-system)
10065 (home-page "https://github.com/tekai/gntp.el")
10066 (synopsis "Growl Notification Protocol for Emacs")
10067 (description
10068 "This package implements the Growl Notification Protocol GNTP
10069 described at @uref{http://www.growlforwindows.com/gfw/help/gntp.aspx}.
10070 It is incomplete as it only lets you send but not receive
10071 notifications.")
10072 (license license:bsd-3)))
10073
10074 (define-public emacs-alert
10075 (package
10076 (name "emacs-alert")
10077 (version "1.3")
10078 (source
10079 (origin
10080 (method git-fetch)
10081 (uri (git-reference
10082 (url "https://github.com/jwiegley/alert")
10083 (commit (string-append "v" version))))
10084 (file-name (git-file-name name version))
10085 (sha256
10086 (base32 "0lc0p5cl4hfrzw1z2ghb11k1lvljn5m08jw5fmgwgxv667kwh49r"))))
10087 (build-system emacs-build-system)
10088 (propagated-inputs
10089 `(("emacs-gntp" ,emacs-gntp)
10090 ("emacs-log4e" ,emacs-log4e)))
10091 (home-page "https://github.com/jwiegley/alert")
10092 (synopsis "Growl-style notification system for Emacs")
10093 (description
10094 "Alert is a Growl-workalike for Emacs which uses a common notification
10095 interface and multiple, selectable \"styles\", whose use is fully
10096 customizable by the user.")
10097 (license license:gpl2+)))
10098
10099 (define-public emacs-zones
10100 (package
10101 (name "emacs-zones")
10102 (version "2019.7.13")
10103 (source
10104 (origin
10105 (method url-fetch)
10106 (uri (string-append "https://elpa.gnu.org/packages/"
10107 "zones-" version ".el"))
10108 (sha256
10109 (base32 "0qp1ba2pkqx9d35g7z8hf8qs2k455krf2a92l4rka3ipsbnmq5k1"))))
10110 (build-system emacs-build-system)
10111 (home-page "https://www.emacswiki.org/emacs/Zones")
10112 (synopsis "Define and act on multiple zones of buffer text")
10113 (description
10114 "Library @file{zones.el} lets you easily define and subsequently act on
10115 multiple zones of buffer text. You can think of this as enlarging the notion
10116 of region. In effect, it can remove the requirement of target text being
10117 a contiguous sequence of characters. A set of buffer zones is, in effect,
10118 a (typically) noncontiguous set of text.")
10119 (license license:gpl3+)))
10120
10121 (define-public emacs-mu4e-alert
10122 (package
10123 (name "emacs-mu4e-alert")
10124 (version "1.0")
10125 (source
10126 (origin
10127 (method git-fetch)
10128 (uri (git-reference
10129 (url "https://github.com/iqbalansari/mu4e-alert")
10130 (commit (string-append "v" version))))
10131 (file-name (git-file-name name version))
10132 (sha256
10133 (base32 "1nvsfbfsma59ilf7c3vjngnmx3aapwvvvaafdy5szm5r6lkicqvg"))))
10134 (build-system emacs-build-system)
10135 (propagated-inputs
10136 `(("emacs-alert" ,emacs-alert)
10137 ("emacs-s" ,emacs-s)
10138 ("emacs-ht" ,emacs-ht)
10139 ("mu" ,mu)))
10140 (home-page "https://github.com/iqbalansari/mu4e-alert")
10141 (synopsis "Desktop notification for mu4e")
10142 (description
10143 "This package provides desktop notifications for mu4e.
10144 Additionally it can display the number of unread emails in the
10145 mode-line.")
10146 (license license:gpl3+)))
10147
10148 (define-public emacs-mu4e-jump-to-list
10149 (let ((commit "358bba003543b49ffa266e503e54aebd0ebe614b")
10150 (revision "1"))
10151 (package
10152 (name "emacs-mu4e-jump-to-list")
10153 (version (git-version "1.0" revision commit))
10154 (source
10155 (origin
10156 (method git-fetch)
10157 (uri (git-reference
10158 (url "https://gitlab.com/wavexx/mu4e-jump-to-list.el.git")
10159 (commit commit)))
10160 (file-name (git-file-name name version))
10161 (sha256
10162 (base32
10163 "00y9nap61q1z2cdql4k9g7fgi2gdgd9iy5s5lzrd9a4agbx6r7sv"))))
10164 (build-system emacs-build-system)
10165 (propagated-inputs
10166 `(("mu" ,mu)))
10167 (home-page "https://gitlab.com/wavexx/mu4e-jump-to-list.el")
10168 (synopsis "Select and view mailing lists in mu4e")
10169 (description
10170 "@code{mu4e-jump-to-list} allows you to select and view mailing lists
10171 automatically using existing List-ID headers in your mu database. Just press
10172 \"l\" in the headers view and any mailing list you've subscribed to will be
10173 automatically discovered and presented in recency order.")
10174 (license license:gpl3+))))
10175
10176 (define-public emacs-mu4e-patch
10177 (let ((commit "522da46c1653b1cacc79cde91d6534da7ae9517d")
10178 (revision "1"))
10179 (package
10180 (name "emacs-mu4e-patch")
10181 (version (git-version "0.1.0" revision commit))
10182 (source (origin
10183 (method git-fetch)
10184 (uri (git-reference
10185 (url "https://github.com/seanfarley/mu4e-patch")
10186 (commit commit)))
10187 (file-name (git-file-name name version))
10188 (sha256
10189 (base32
10190 "10lzf3b70pk6rzdrgx0ww0gc94v0ydh9zj1gbsa20xw27ds7hmfn"))))
10191 (build-system emacs-build-system)
10192 (propagated-inputs
10193 `(("mu" ,mu)))
10194 (home-page "https://github.com/seanfarley/mu4e-patch")
10195 (synopsis "Colorize patch-like emails in mu4e")
10196 (description
10197 "Extension for mu4e to colorize patch-like emails with diff-mode.
10198 This is based on Frank Terbeck's @code{gnus-article-treat-patch.el} but has
10199 been adapted to work with mu4e.")
10200 (license license:gpl3+))))
10201
10202 (define-public emacs-pretty-mode
10203 (package
10204 (name "emacs-pretty-mode")
10205 (version "2.0.3")
10206 (source
10207 (origin
10208 (method git-fetch)
10209 (uri (git-reference
10210 (url "https://github.com/akatov/pretty-mode/")
10211 (commit version)))
10212 (file-name (git-file-name name version))
10213 (sha256
10214 (base32
10215 "013fig9i4fyx16krp2vfv953p3rwdzr38zs6i50af4pqz4vrcfvh"))))
10216 (build-system emacs-build-system)
10217 (home-page "https://github.com/akatov/pretty-mode")
10218 (synopsis "Redisplay parts of the buffer as Unicode symbols")
10219 (description
10220 "Emacs minor mode for redisplaying parts of the buffer as pretty symbols.")
10221 (license license:gpl3+)))
10222
10223 (define-public emacs-yasnippet
10224 (package
10225 (name "emacs-yasnippet")
10226 (version "0.14.0")
10227 (source
10228 (origin
10229 (method git-fetch)
10230 (uri (git-reference
10231 (url "https://github.com/joaotavora/yasnippet")
10232 (commit version)))
10233 (file-name (git-file-name name version))
10234 (sha256
10235 (base32 "0via9dzw8m5lzymg1h78xkwjssh39zr3g6ccyamlf1rjzjsyxknv"))))
10236 (build-system emacs-build-system)
10237 (arguments
10238 `(#:tests? #t
10239 #:test-command '("emacs" "--batch"
10240 "-l" "yasnippet-tests.el"
10241 "-f" "ert-run-tests-batch-and-exit")
10242 #:phases
10243 (modify-phases %standard-phases
10244 ;; Set HOME, otherwise test-rebindings fails.
10245 (add-before 'check 'set-home
10246 (lambda _
10247 (setenv "HOME" (getcwd))
10248 #t)))))
10249 (home-page "https://github.com/joaotavora/yasnippet")
10250 (synopsis "Yet another snippet extension for Emacs")
10251 (description "YASnippet is a template system for Emacs. It allows you to
10252 type an abbreviation and automatically expand it into function templates.")
10253 (license license:gpl3+)))
10254
10255 (define-public emacs-yasnippet-snippets
10256 (package
10257 (name "emacs-yasnippet-snippets")
10258 (version "0.23")
10259 (source
10260 (origin
10261 (method git-fetch)
10262 (uri (git-reference
10263 (url "https://github.com/AndreaCrotti/yasnippet-snippets")
10264 (commit version)))
10265 (file-name (git-file-name name version))
10266 (sha256
10267 (base32 "18pcnjnqvcky6i49p38vy3ms5xiisn27vy47pc3vsgr3r2n87mqb"))))
10268 (build-system trivial-build-system)
10269 (arguments
10270 `(#:modules ((guix build utils))
10271 #:builder
10272 (begin
10273 (use-modules (guix build utils))
10274 (let* ((source (assoc-ref %build-inputs "source"))
10275 (out (assoc-ref %outputs "out"))
10276 (snippet-dir
10277 (string-append out "/share/emacs/yasnippet-snippets/")))
10278 (with-directory-excursion source
10279 (mkdir-p snippet-dir)
10280 (copy-recursively "snippets" snippet-dir)))
10281 #t)))
10282 (home-page "https://github.com/AndreaCrotti/yasnippet-snippets")
10283 (synopsis "Collection of YASnippet snippets for many languages")
10284 (description
10285 "Provides Andrea Crotti's collection of YASnippet snippets. After installation,
10286 the snippets will be in \"~/.guix-profile/share/emacs/yasnippet-snippets/\".
10287 To make YASnippet aware of these snippets, add the above directory to
10288 @code{yas-snippet-dirs}.")
10289 (license license:gpl3+)))
10290
10291 (define-public emacs-helm-c-yasnippet
10292 (let ((commit "65ca732b510bfc31636708aebcfe4d2d845b59b0")
10293 (revision "1"))
10294 (package
10295 (name "emacs-helm-c-yasnippet")
10296 (version (string-append "0.6.7" "-" revision "."
10297 (string-take commit 7)))
10298 (source (origin
10299 (method git-fetch)
10300 (uri (git-reference
10301 (url "https://github.com/emacs-jp/helm-c-yasnippet")
10302 (commit commit)))
10303 (file-name (git-file-name name version))
10304 (sha256
10305 (base32
10306 "1cbafjqlzxbg19xfdqsinsh7afq58gkf44rsg1qxfgm8g6zhr7f8"))))
10307 (build-system emacs-build-system)
10308 (propagated-inputs
10309 `(("emacs-helm" ,emacs-helm)
10310 ("emacs-yasnippet" ,emacs-yasnippet)))
10311 (home-page "https://github.com/emacs-jp/helm-c-yasnippet")
10312 (synopsis "Helm integration for Yasnippet")
10313 (description "This Emacs library provides Helm interface for
10314 Yasnippet.")
10315 (license license:gpl2+))))
10316
10317 (define-public emacs-helm-system-packages
10318 ;; There won't be a new release after 1.10.1 until
10319 ;; https://github.com/emacs-helm/helm-system-packages/issues/25 is fixed,
10320 ;; and latest commits fix import issues with Guix.
10321 (let ((commit "6572340f41611ef1991e9612d34d59130957ee4a"))
10322 (package
10323 (name "emacs-helm-system-packages")
10324 (version (git-version "1.10.1" "1" commit))
10325 (source (origin
10326 (method git-fetch)
10327 (uri (git-reference
10328 (url "https://github.com/emacs-helm/helm-system-packages")
10329 (commit commit)))
10330 (file-name (git-file-name name version))
10331 (sha256
10332 (base32
10333 "0mcz6vkpk12vsyd37xv1rbg4v442sxc3lj8yxskqg294xbdaclz4"))))
10334 (build-system emacs-build-system)
10335 (inputs
10336 `(("recutils" ,recutils)))
10337 (propagated-inputs
10338 `(("emacs-helm" ,emacs-helm)))
10339 (arguments
10340 `(#:phases
10341 (modify-phases %standard-phases
10342 (add-after 'unpack 'configure
10343 (lambda* (#:key inputs outputs #:allow-other-keys)
10344 (let ((recutils (assoc-ref inputs "recutils")))
10345 ;; Specify the absolute file names of the various
10346 ;; programs so that everything works out-of-the-box.
10347 (substitute* "helm-system-packages-guix.el"
10348 (("recsel") (string-append recutils "/bin/recsel")))))))))
10349 (home-page "https://github.com/emacs-helm/helm-system-packages")
10350 (synopsis "Helm System Packages is an interface to your package manager")
10351 (description "List all available packages in Helm (with installed
10352 packages displayed in their own respective face). Fuzzy-search, mark and
10353 execute the desired action over any selections of packages: Install,
10354 uninstall, display packages details (in Org Mode) or insert details at point,
10355 find files owned by packages... And much more, including performing all the
10356 above over the network.")
10357 (license license:gpl3+))))
10358
10359 (define-public emacs-helm-org-rifle
10360 (package
10361 (name "emacs-helm-org-rifle")
10362 (version "1.7.0")
10363 (source
10364 (origin
10365 (method git-fetch)
10366 (uri (git-reference
10367 (url "https://github.com/alphapapa/helm-org-rifle")
10368 (commit version)))
10369 (file-name (git-file-name name version))
10370 (sha256
10371 (base32
10372 "058zvh7cdall7dl3xay9ibcjvs13fbqp8fli3lz980pinmsds3r2"))))
10373 (build-system emacs-build-system)
10374 (propagated-inputs
10375 `(("emacs-dash" ,emacs-dash)
10376 ("emacs-f" ,emacs-f)
10377 ("emacs-helm" ,emacs-helm)
10378 ("emacs-org" ,emacs-org)
10379 ("emacs-s" ,emacs-s)))
10380 (home-page "https://github.com/alphapapa/helm-org-rifle")
10381 (synopsis "Rifle through Org files")
10382 (description "This package searches both headings and contents of entries
10383 in Org buffers and displays matching entries.")
10384 (license license:gpl3+)))
10385
10386 (define-public emacs-dired-git-info
10387 ;; Upstream has no proper release. The base version is extracted from the
10388 ;; "Version" keyword in the main file.
10389 (let ((commit "91d57e3a4c5104c66a3abc18e281ee55e8979176")
10390 (revision "0"))
10391 (package
10392 (name "emacs-dired-git-info")
10393 (version (git-version "0.3.1" revision commit))
10394 (source
10395 (origin
10396 (method git-fetch)
10397 (uri
10398 (git-reference
10399 (url "https://github.com/clemera/dired-git-info")
10400 (commit commit)))
10401 (file-name (git-file-name name version))
10402 (sha256
10403 (base32 "1dr4iv95s4barxxj56znqkl9z0lg5jw731jmjr01s6vn8ar69gik"))))
10404 (build-system emacs-build-system)
10405 (home-page "https://github.com/clemera/dired-git-info/")
10406 (synopsis "Show git info in Emacs Dired")
10407 (description "This Emacs package provides a minor mode which shows git
10408 information inside the Dired buffer.")
10409 (license license:gpl3+))))
10410
10411 (define-public emacs-dired-toggle-sudo
10412 (let ((commit "13bbe52c54893f5aa3e56228450ffdd0c9e1d169")
10413 (revision "0"))
10414 (package
10415 (name "emacs-dired-toggle-sudo")
10416 (version (git-version "1.0" revision commit))
10417 (source
10418 (origin
10419 (method git-fetch)
10420 (uri (git-reference
10421 (url "https://github.com/renard/dired-toggle-sudo")
10422 (commit commit)))
10423 (file-name (git-file-name name version))
10424 (sha256
10425 (base32
10426 "1fw1pb1z6krqd1pfxxhr6rrfr9ckkcb0zsjzbjk0i2i1q5cg6car"))))
10427 (build-system emacs-build-system)
10428 (home-page "https://github.com/renard/dired-toggle-sudo")
10429 (synopsis "Browse directory with @code{sudo} privileges")
10430 (description "This package allows for the use of @code{dired} with
10431 @code{sudo} privileges.")
10432 (license license:wtfpl2))))
10433
10434 (define-public emacs-diredfl
10435 (package
10436 (name "emacs-diredfl")
10437 (version "0.4")
10438 (source
10439 (origin
10440 (method git-fetch)
10441 (uri
10442 (git-reference
10443 (url "https://github.com/purcell/diredfl")
10444 (commit version)))
10445 (file-name (git-file-name name version))
10446 (sha256
10447 (base32 "1zb2lz7rp58zqvpniqcsmqabi7nqg2d8bfd0hgmq68bn2hd25b5z"))))
10448 (build-system emacs-build-system)
10449 (home-page "https://github.com/purcell/diredfl/")
10450 (synopsis "Extra Emacs font lock rules for a more colourful Dired")
10451 (description "This library enables additional font locking in Dired mode.
10452 This is adapted from the extra font lock rules provided by Drew Adams' Dired+
10453 package.")
10454 (license license:gpl3+)))
10455
10456 (define-public emacs-memoize
10457 (package
10458 (name "emacs-memoize")
10459 (version "1.1")
10460 (source
10461 (origin
10462 (method git-fetch)
10463 (uri (git-reference
10464 (url "https://github.com/skeeto/emacs-memoize")
10465 (commit version)))
10466 (file-name (git-file-name name version))
10467 (sha256
10468 (base32 "04qgnlg4x6va7x364dhj1wbjmz8p5iq2vk36mn9198k2vxmijwzk"))))
10469 (build-system emacs-build-system)
10470 (arguments
10471 `(#:tests? #t
10472 #:test-command '("emacs" "--batch"
10473 "-l" "memoize-test.el"
10474 "-f" "ert-run-tests-batch-and-exit")))
10475 (home-page "https://github.com/skeeto/emacs-memoize")
10476 (synopsis "Emacs lisp memoization library")
10477 (description "@code{emacs-memoize} is an Emacs library for
10478 memoizing functions.")
10479 (license license:unlicense)))
10480
10481 (define-public emacs-linum-relative
10482 (package
10483 (name "emacs-linum-relative")
10484 (version "0.6")
10485 (source
10486 (origin
10487 (method git-fetch)
10488 (uri (git-reference
10489 (url "https://github.com/coldnew/linum-relative")
10490 (commit version)))
10491 (file-name (git-file-name name version))
10492 (sha256
10493 (base32 "0b3n1gk2w1p72x0zfdz9l70winq2fnjpjrgq0awxx730xk7ypp5n"))))
10494 (build-system emacs-build-system)
10495 (home-page "https://github.com/coldnew/linum-relative")
10496 (synopsis "Relative line numbering for Emacs")
10497 (description "@code{emacs-linum-relative} displays the relative line
10498 number on the left margin in Emacs.")
10499 (license license:gpl2+)))
10500
10501 (define-public emacs-idle-highlight
10502 (package
10503 (name "emacs-idle-highlight")
10504 (version "1.1.3")
10505 (source
10506 (origin
10507 (method git-fetch)
10508 (uri (git-reference
10509 (url "https://github.com/nonsequitur/idle-highlight-mode")
10510 (commit version)))
10511 (file-name (git-file-name name version))
10512 (sha256
10513 (base32 "0x4w1ksrw7dicl84zpf4d4scg672dyan9g95jkn6zvri0lr8xciv"))))
10514 (build-system emacs-build-system)
10515 (home-page "https://www.emacswiki.org/emacs/IdleHighlight")
10516 (synopsis "Highlights all occurrences of the word the point is on")
10517 (description
10518 "This Emacs package provides @code{idle-highlight-mode} that sets
10519 an idle timer to highlight all occurrences in the buffer of the word under
10520 the point.")
10521 (license license:gpl3+)))
10522
10523 (define-public emacs-ox-twbs
10524 (package
10525 (name "emacs-ox-twbs")
10526 (version "1.1.1")
10527 (source
10528 (origin
10529 (method git-fetch)
10530 (uri (git-reference
10531 (url "https://github.com/marsmining/ox-twbs")
10532 (commit (string-append "v" version))))
10533 (file-name (git-file-name name version))
10534 (sha256
10535 (base32 "0kd45p8y7ykadmai4jn1x1pgpafyqggwb1ccbjzalxw4k9wmd45f"))))
10536 (build-system emacs-build-system)
10537 (home-page "https://github.com/marsmining/ox-twbs")
10538 (synopsis "Export org-mode docs as HTML compatible with Twitter Bootstrap")
10539 (description
10540 "This Emacs package outputs your org-mode docs with a simple, clean and
10541 modern look. It implements a new HTML back-end for exporting org-mode docs as
10542 HTML compatible with Twitter Bootstrap. By default, HTML is exported with
10543 jQuery and Bootstrap resources included via osscdn.")
10544 (license license:gpl3+)))
10545
10546 (define-public emacs-highlight-sexp
10547 (package
10548 (name "emacs-highlight-sexp")
10549 (version "1.0")
10550 (source
10551 (origin
10552 (method git-fetch)
10553 (uri (git-reference
10554 (url "https://github.com/daimrod/highlight-sexp")
10555 (commit (string-append "v" version))))
10556 (file-name (git-file-name name version))
10557 (sha256
10558 (base32 "12cyk2q5g6p4ac2hykw1cag7dp1prjjnck5f7nalwwaklmy62y79"))))
10559 (build-system emacs-build-system)
10560 (home-page "https://github.com/daimrod/highlight-sexp")
10561 (synopsis "Minor mode that highlights the s-exp at the current position")
10562 (description
10563 "This Emacs package highlights the s-exp at the current position.")
10564 (license license:gpl3+)))
10565
10566 (define-public emacs-highlight-stages
10567 (let ((commit "29cbc5b78261916da042ddb107420083da49b271")
10568 (revision "1"))
10569 (package
10570 (name "emacs-highlight-stages")
10571 (version (string-append "1.1.0" "-" revision "." (string-take commit 7)))
10572 (source
10573 (origin
10574 (method git-fetch)
10575 (uri (git-reference
10576 (url "https://github.com/zk-phi/highlight-stages")
10577 (commit commit)))
10578 (file-name (git-file-name name version))
10579 (sha256
10580 (base32
10581 "0r6nbcrr0dqpgm8dir8ahzjy7rw4nrac48byamzrq96r7ajlxlv0"))
10582 (patches
10583 (search-patches "emacs-highlight-stages-add-gexp.patch"))))
10584 (build-system emacs-build-system)
10585 (home-page "https://github.com/wigust/highlight-stages")
10586 (synopsis "Minor mode that highlights (quasi-quoted) expressions")
10587 (description "@code{highlight-stages} provides an Emacs minor mode that
10588 highlights quasi-quoted expressions.")
10589 (license license:gpl3+))))
10590
10591 (define-public emacspeak
10592 (package
10593 (name "emacspeak")
10594 (version "52.0")
10595 (source
10596 (origin
10597 (method url-fetch)
10598 (uri (string-append
10599 "https://github.com/tvraman/emacspeak/releases/download/"
10600 version "/emacspeak-" version ".tar.bz2"))
10601 (sha256
10602 (base32 "0x5b0s38r5ih2lk7f5hasi9arrgxlmmq5jaddadbxi8in2gw2jzl"))))
10603 (build-system gnu-build-system)
10604 (arguments
10605 '(#:make-flags (list (string-append "prefix="
10606 (assoc-ref %outputs "out")))
10607 #:phases
10608 (modify-phases %standard-phases
10609 (add-after 'unpack 'delete-broken-symlink
10610 (lambda _
10611 (delete-file "lisp/sudoku.el")
10612 #t))
10613 (replace 'configure
10614 (lambda _
10615 (setenv "SHELL" (which "sh"))
10616 ;; Configure Emacspeak according to etc/install.org.
10617 (invoke "make" "config")))
10618 (add-after 'build 'build-espeak
10619 (lambda _
10620 (invoke "make" "espeak")))
10621 (replace 'install
10622 (lambda* (#:key inputs outputs #:allow-other-keys)
10623 (let* ((out (assoc-ref outputs "out"))
10624 (bin (string-append out "/bin"))
10625 (lisp (string-append out "/share/emacs/site-lisp/emacspeak"))
10626 (info (string-append out "/share/info"))
10627 (emacs (string-append (assoc-ref inputs "emacs")
10628 "/bin/emacs")))
10629 ;; According to etc/install.org, the Emacspeak directory should
10630 ;; be copied to its installation destination.
10631 (for-each
10632 (lambda (file)
10633 (copy-recursively file (string-append lisp "/" file)))
10634 '("etc" "info" "js" "lisp" "media" "servers" "sounds"
10635 "stumpwm" "xsl"))
10636 ;; Make sure emacspeak is loaded from the correct directory.
10637 (substitute* "run"
10638 (("\\./lisp/emacspeak-setup.el")
10639 (string-append lisp "/lisp/emacspeak-setup.el")))
10640 ;; Install the convenient startup script.
10641 (mkdir-p bin)
10642 (copy-file "run" (string-append bin "/emacspeak")))
10643 #t))
10644 (add-after 'install 'wrap-program
10645 (lambda* (#:key inputs outputs #:allow-other-keys)
10646 (let* ((out (assoc-ref outputs "out"))
10647 (emacspeak (string-append out "/bin/emacspeak"))
10648 (espeak (string-append (assoc-ref inputs "espeak")
10649 "/bin/espeak")))
10650 ;; The environment variable DTK_PROGRAM tells emacspeak what
10651 ;; program to use for speech.
10652 (wrap-program emacspeak
10653 `("DTK_PROGRAM" ":" prefix (,espeak)))
10654 #t))))
10655 #:tests? #f)) ; no check target
10656 (inputs
10657 `(("emacs" ,emacs)
10658 ("espeak" ,espeak-ng)
10659 ("perl" ,perl)
10660 ("tcl" ,tcl)
10661 ("tclx" ,tclx)))
10662 (home-page "http://emacspeak.sourceforge.net")
10663 (synopsis "Audio desktop interface for Emacs")
10664 (description
10665 "Emacspeak is a speech interface that allows visually impaired users to
10666 interact independently and efficiently with the computer. Audio
10667 formatting---a technique pioneered by AsTeR---and full support for W3C's Aural
10668 CSS (ACSS) allows Emacspeak to produce rich aural presentations of electronic
10669 information. By seamlessly blending all aspects of the Internet such as
10670 Web-surfing and messaging, Emacspeak speech-enables local and remote
10671 information via a consistent and well-integrated user interface.")
10672 (license license:gpl2+)))
10673
10674 (define-public emacs-adaptive-wrap
10675 (package
10676 (name "emacs-adaptive-wrap")
10677 (version "0.7")
10678 (source
10679 (origin
10680 (method url-fetch)
10681 (uri (string-append "https://elpa.gnu.org/packages/"
10682 "adaptive-wrap-" version ".el"))
10683 (sha256
10684 (base32 "10fb8gzvkbnrgzv28n1rczs03dvapr7rvi0kd73j6yf1zg2iz6qp"))))
10685 (build-system emacs-build-system)
10686 (home-page "https://elpa.gnu.org/packages/adaptive-wrap.html")
10687 (synopsis "Smart line-wrapping with wrap-prefix")
10688 (description
10689 "This Emacs package provides the @code{adaptive-wrap-prefix-mode}
10690 minor mode which sets the wrap-prefix property on the fly so that
10691 single-long-line paragraphs get word-wrapped in a way similar to what
10692 you'd get with @kbd{M-q} using @code{adaptive-fill-mode}, but without
10693 actually changing the buffer's text.")
10694 (license license:gpl3+)))
10695
10696 (define-public emacs-diff-hl
10697 (package
10698 (name "emacs-diff-hl")
10699 (version "1.8.7")
10700 (source
10701 (origin
10702 (method git-fetch)
10703 (uri (git-reference
10704 (url "https://github.com/dgutov/diff-hl")
10705 (commit version)))
10706 (file-name (git-file-name name version))
10707 (sha256
10708 (base32 "0i7x6qgr3nydcwhw72sbc8z9x9dfhgkf0dqj9nakvx36vn1bblbq"))))
10709 (build-system emacs-build-system)
10710 (home-page "https://github.com/dgutov/diff-hl")
10711 (synopsis
10712 "Highlight uncommitted changes using VC")
10713 (description
10714 "@code{diff-hl-mode} highlights uncommitted changes on the side of the
10715 window (using the fringe, by default), allows you to jump between
10716 the hunks and revert them selectively.")
10717 (license license:gpl3+)))
10718
10719 (define-public emacs-diminish
10720 (package
10721 (name "emacs-diminish")
10722 (version "0.45")
10723 (source
10724 (origin
10725 (method git-fetch)
10726 (uri (git-reference
10727 (url "https://github.com/myrjola/diminish.el")
10728 (commit (string-append "v" version))))
10729 (file-name (git-file-name name version))
10730 (sha256
10731 (base32 "0qpgfgp8hrzz4vdifxq8h25n0a0jlzgf7aa1fpy6r0080v5rqbb6"))))
10732 (build-system emacs-build-system)
10733 (home-page "https://github.com/myrjola/diminish.el")
10734 (synopsis "Diminish minor modes with no modeline display")
10735 (description "@code{emacs-diminish} implements hiding or
10736 abbreviation of the mode line displays (lighters) of minor modes.")
10737 (license license:gpl2+)))
10738
10739 (define-public emacs-use-package
10740 (package
10741 (name "emacs-use-package")
10742 (version "2.4")
10743 (source (origin
10744 (method git-fetch)
10745 (uri (git-reference
10746 (url "https://github.com/jwiegley/use-package")
10747 (commit version)))
10748 (file-name (git-file-name name version))
10749 (sha256
10750 (base32
10751 "1b7mjjh0d6fmkkd9vyj64vca27xqhga0nvyrrcqxpqjn62zq046y"))))
10752 (build-system emacs-build-system)
10753 (native-inputs
10754 `(("texinfo" ,texinfo)))
10755 (propagated-inputs
10756 `(("emacs-diminish" ,emacs-diminish)))
10757 (arguments
10758 `(#:tests? #t
10759 #:test-command '("emacs" "--batch"
10760 "-l" "use-package-tests.el"
10761 "-f" "ert-run-tests-batch-and-exit")
10762 #:phases
10763 (modify-phases %standard-phases
10764 (add-before 'install 'install-manual
10765 (lambda* (#:key outputs #:allow-other-keys)
10766 (let* ((out (assoc-ref outputs "out"))
10767 (info-dir (string-append out "/share/info")))
10768 (mkdir-p info-dir)
10769 (install-file "use-package.info" info-dir)
10770 #t)))
10771 (add-before 'install-manual 'build-manual
10772 (lambda _
10773 (invoke "makeinfo" "use-package.texi")
10774 #t)))))
10775 (home-page "https://github.com/jwiegley/use-package")
10776 (synopsis "Declaration for simplifying your .emacs")
10777 (description "The use-package macro allows you to isolate package
10778 configuration in your @file{.emacs} file in a way that is both
10779 performance-oriented and tidy.")
10780 (license license:gpl2+)))
10781
10782 (define-public emacs-leaf
10783 (package
10784 (name "emacs-leaf")
10785 (version "4.2.5")
10786 (source
10787 (origin
10788 (method url-fetch)
10789 (uri (string-append "https://elpa.gnu.org/packages/"
10790 "leaf-" version ".tar"))
10791 (sha256
10792 (base32 "0y78mp4c2gcwp7dc87wlx3r4hfmap14vvx8gkjc9nkf99qavpnkw"))))
10793 (build-system emacs-build-system)
10794 (home-page "https://github.com/conao3/leaf.el")
10795 (synopsis "Simplify your init.el configuration, extended use-package")
10796 (description
10797 "This package provides macros that allows you to declaratively configure
10798 settings typical of an Elisp package with various keywords. The syntax is
10799 similar, but not identical to use-package -- overall, leaf aims at a cleaner
10800 and more predictable implementation.")
10801 (license license:agpl3+)))
10802
10803 (define-public emacs-strace-mode
10804 (let* ((commit "6a69b4b06db6797af56f33eda5cb28af94e59f11")
10805 (revision "1"))
10806 (package
10807 (name "emacs-strace-mode")
10808 (version (string-append "0.0.2-" revision "." (string-take commit 7)))
10809 (source (origin
10810 (method git-fetch)
10811 (uri (git-reference
10812 (url "https://github.com/pkmoore/strace-mode")
10813 (commit commit)))
10814 (file-name (git-file-name name version))
10815 (sha256
10816 (base32
10817 "1lbk2kzdznf2bkfazizfbimaxxzfzv00lrz1ran9dc2zqbc0bj9f"))))
10818 (build-system emacs-build-system)
10819 (home-page "https://github.com/pkmoore/strace-mode")
10820 (synopsis "Emacs major mode to highlight strace outputs")
10821 (description "@code{emacs-strace-mode} provides an Emacs major mode
10822 highlighting strace outputs.")
10823 (license license:gpl3+))))
10824
10825 (define-public emacs-default-encrypt
10826 (package
10827 (name "emacs-default-encrypt")
10828 (version "4.4")
10829 (source
10830 (origin
10831 (method url-fetch)
10832 (uri (string-append
10833 "https://informationelle-selbstbestimmung-im-internet.de"
10834 "/emacs/jl-encrypt" version "/jl-encrypt.el"))
10835 (file-name (string-append "jl-encrypt-" version ".el"))
10836 (sha256
10837 (base32
10838 "0w9ggz075j1zwg7d0rv9k8238g600p7czfnnsnawswi7yps2xk78"))))
10839 (build-system emacs-build-system)
10840 (home-page
10841 "https://informationelle-selbstbestimmung-im-internet.de/Emacs.html")
10842 (synopsis "Automatically encrypt or sign Gnus messages in Emacs")
10843 (description
10844 "DefaultEncrypt is designed to be used with Gnus in Emacs. It
10845 automatically encrypts messages that you send (e.g., email) when public keys
10846 for all recipients are available, and it protects you from accidentally
10847 sending un-encrypted messages. It can also be configured to automatically
10848 sign messages that you send. For details and instructions on how to use
10849 DefaultEncrypt, please refer to the home page or read the comments in the
10850 source file, @file{jl-encrypt.el}.")
10851 (license license:gpl3+)))
10852
10853 (define-public emacs-extend-smime
10854 (package
10855 (name "emacs-extend-smime")
10856 (version "3.3")
10857 (source
10858 (origin
10859 (method url-fetch)
10860 (uri (string-append
10861 "https://informationelle-selbstbestimmung-im-internet.de"
10862 "/emacs/jl-smime" version "/jl-smime.el"))
10863 (file-name (string-append "jl-smime-" version ".el"))
10864 (sha256
10865 (base32
10866 "1iv8s2wjmv3v5qfwlcy9hvvrmxxvp3f8m1krlr789q7bbh35jynh"))))
10867 (build-system emacs-build-system)
10868 (home-page
10869 "https://informationelle-selbstbestimmung-im-internet.de/Emacs.html")
10870 (synopsis "Improved S/MIME support for Gnus in Emacs")
10871 (propagated-inputs
10872 `(("emacs-default-encrypt" ,emacs-default-encrypt)))
10873 (description
10874 ;; TRANSLATORS: ExtendSMIME, DefaultEncrypt, and emacs-default-encrypt
10875 ;; should not be translated. The name "emacs-default-encrypt" refers to
10876 ;; the Guix package that provides DefaultEncrypt.
10877 "ExtendSMIME is designed to be used with Gnus in Emacs. It enhances
10878 DefaultEncrypt (emacs-default-encrypt) to support S/MIME (Secure/Multipurpose
10879 Internet Mail Extensions) via LDAP (Lightweight Directory Access Protocol).
10880 Before a message (e.g., email) is sent, ExtendSMIME searches for missing
10881 certificates via LDAP and imports them into @code{gpgsm}. When certificates
10882 for all recipients are available, DefaultEncrypt automatically encrypts the
10883 message. For details and instructions on how to use ExtendSMIME, please refer
10884 to the home page or read the comments in the source file,
10885 @file{jl-smime.el}.")
10886 (license license:gpl3+)))
10887
10888 (define-public emacs-htmlize
10889 (package
10890 (name "emacs-htmlize")
10891 (version "1.55")
10892 (source
10893 (origin
10894 (method git-fetch)
10895 (uri (git-reference
10896 (url "https://github.com/hniksic/emacs-htmlize")
10897 (commit (string-append "release/" version))))
10898 (file-name (git-file-name name version))
10899 (sha256
10900 (base32 "0gi3xshscpa53qrj8yplfsqahcilc2ybcc2p7gnh5nbnf2n1n97x"))))
10901 (build-system emacs-build-system)
10902 (home-page "https://github.com/hniksic/emacs-htmlize")
10903 (synopsis "Convert buffer text and decorations to HTML")
10904 (description "@code{emacs-htmlize} converts the buffer text and
10905 the associated decorations to HTML. Output to CSS, inline CSS and
10906 fonts is supported.")
10907 (license license:gpl2+)))
10908
10909 (define-public emacs-xmlgen
10910 (package
10911 (name "emacs-xmlgen")
10912 (version "0.5")
10913 (source
10914 (origin
10915 (method git-fetch)
10916 (uri (git-reference
10917 (url "https://github.com/philjackson/xmlgen")
10918 (commit version)))
10919 (file-name (git-file-name name version))
10920 (sha256
10921 (base32 "096i29v0badx0a6339h9ckdz78zj59gbjdp7vj7vhkq9d830392s"))))
10922 (build-system emacs-build-system)
10923 (arguments
10924 `(#:tests? #t
10925 #:test-command '("emacs" "--batch"
10926 "-l" "xmlgen-test.el"
10927 "-f" "ert-run-tests-batch-and-exit")))
10928 (home-page "https://github.com/philjackson/xmlgen")
10929 (synopsis "S-expression to XML domain specific language (DSL) in
10930 Emacs Lisp")
10931 (description "@code{emacs-xmlgen} provides S-expression to XML
10932 conversion for Emacs Lisp.")
10933 (license license:gpl2+)))
10934
10935 (define-public emacs-cdlatex
10936 (package
10937 (name "emacs-cdlatex")
10938 (version "4.7")
10939 (source
10940 (origin
10941 (method git-fetch)
10942 (uri (git-reference
10943 (url "https://github.com/cdominik/cdlatex")
10944 (commit version)))
10945 (file-name (git-file-name name version))
10946 (sha256
10947 (base32 "1jj9vmhc4s3ych08bjm1c2xwi81z1p20rj7bvxrgvb5aga2ghi9d"))))
10948 (build-system emacs-build-system)
10949 (propagated-inputs
10950 `(("emacs-auctex" ,emacs-auctex)))
10951 (home-page "https://github.com/cdominik/cdlatex")
10952 (synopsis "Fast Emacs input methods for LaTeX environments and
10953 math")
10954 (description "CDLaTeX is an Emacs minor mode supporting fast
10955 insertion of environment templates and math in LaTeX. Similar
10956 commands are also offered as part of the AUCTeX package, but it is not
10957 the same - CDLaTeX focuses on speediness for inserting LaTeX
10958 constructs.")
10959 (license license:gpl3+)))
10960
10961 (define-public emacs-cnfonts
10962 (package
10963 (name "emacs-cnfonts")
10964 (version "0.9.1")
10965 (source
10966 (origin
10967 (method git-fetch)
10968 (uri (git-reference
10969 (url "https://github.com/tumashu/cnfonts")
10970 (commit (string-append "v" version))))
10971 (file-name (git-file-name name version))
10972 (sha256
10973 (base32 "11d44lf0m0kbzq1mvyqkl4aprys0xqaarp08nij57xnynin1rynx"))))
10974 (build-system emacs-build-system)
10975 (home-page "https://github.com/tumashu/cnfonts")
10976 (synopsis "Emacs Chinese fonts setup tool")
10977 (description "cnfonts is a Chinese fonts setup tool, allowing for easy
10978 configuration of Chinese fonts.")
10979 (license license:gpl2+)))
10980
10981 (define-public emacs-php-mode
10982 (package
10983 (name "emacs-php-mode")
10984 (version "1.23.0")
10985 (source
10986 (origin
10987 (method git-fetch)
10988 (uri (git-reference
10989 (url "https://github.com/ejmr/php-mode")
10990 (commit (string-append "v" version))))
10991 (file-name (git-file-name name version))
10992 (sha256
10993 (base32 "0wnkcxg6djy4jvxhshiy1iw6b5cf79pjwjhfd1a060cavhfm4v5c"))))
10994 (build-system emacs-build-system)
10995 (home-page "https://github.com/ejmr/php-mode")
10996 (synopsis "Major mode for editing PHP code")
10997 (description
10998 "PHP mode is a major mode for editing PHP source code. It's an extension
10999 of C mode; thus it inherits all C mode's navigation functionality. But it
11000 colors according to the PHP grammar and indents according to the PEAR coding
11001 guidelines. It also includes a couple handy IDE-type features such as
11002 documentation search and a source and class browser.")
11003 (license license:gpl3+)))
11004
11005 (define-public emacs-pos-tip
11006 (package
11007 (name "emacs-pos-tip")
11008 (version "0.4.6")
11009 (source
11010 (origin
11011 (method git-fetch)
11012 (uri (git-reference
11013 (url "https://github.com/pitkali/pos-tip")
11014 (commit version)))
11015 (file-name (git-file-name name version))
11016 (sha256
11017 (base32 "0w8bnspnk871qndp18hs0wk4x9x31xr9rwbvf5dc8mcbnj29ch33"))))
11018 (build-system emacs-build-system)
11019 ;; The following functions and variables needed by emacs-pos-tip are
11020 ;; not included in emacs-minimal:
11021 ;; x-display-pixel-width, x-display-pixel-height, x-show-tip
11022 (arguments `(#:emacs ,emacs))
11023 (home-page "https://github.com/pitkali/pos-tip")
11024 (synopsis "Show tooltip at point")
11025 (description "The standard library tooltip.el provides a function for
11026 displaying a tooltip at the mouse position. However, locating a tooltip at an
11027 arbitrary buffer position in a window is not easy. Pos-tip provides such a
11028 function to be used by other frontend programs.")
11029 (license license:gpl2+)))
11030
11031 (define-public emacs-pyim-basedict
11032 (package
11033 (name "emacs-pyim-basedict")
11034 (version "0.3.1")
11035 (source
11036 (origin
11037 (method git-fetch)
11038 (uri (git-reference
11039 (url "https://github.com/tumashu/pyim-basedict")
11040 (commit (string-append "v" version))))
11041 (file-name (git-file-name name version))
11042 (sha256
11043 (base32 "0576r8ap9gp91ycjf1d47pn13kxp0f9fysn09zlq44hr0s1y2y5d"))))
11044 (build-system emacs-build-system)
11045 (home-page "https://github.com/tumashu/pyim-basedict")
11046 (synopsis "Input method dictionary of pyim")
11047 (description "Pyim-basedict is the default pinyin input method dictionary,
11048 containing words from the rime project.")
11049 (license license:gpl2+)))
11050
11051 (define-public emacs-pyim
11052 (package
11053 (name "emacs-pyim")
11054 (version "1.8")
11055 (source
11056 (origin
11057 (method git-fetch)
11058 (uri (git-reference
11059 (url "https://github.com/tumashu/pyim")
11060 (commit (string-append "v" version))))
11061 (file-name (git-file-name name version))
11062 (sha256
11063 (base32
11064 "16rma4cv7xgky0g3x4an27v30jdi6i1sqw43cl99zhkqvp43l3f9"))))
11065 (build-system emacs-build-system)
11066 (propagated-inputs
11067 `(("emacs-async" ,emacs-async)
11068 ("emacs-pyim-basedict" ,emacs-pyim-basedict)
11069 ("emacs-popup" ,emacs-popup)
11070 ("emacs-posframe" ,emacs-posframe)))
11071 (home-page "https://github.com/tumashu/pyim")
11072 (synopsis "Chinese input method")
11073 (description "Chinese input method which supports quanpin, shuangpin, wubi
11074 and cangjie.")
11075 (license license:gpl2+)))
11076
11077 (define-public emacs-posframe
11078 (package
11079 (name "emacs-posframe")
11080 (version "0.8.0")
11081 (source
11082 (origin
11083 (method url-fetch)
11084 (uri (string-append "https://elpa.gnu.org/packages/"
11085 "posframe-" version ".el"))
11086 (sha256
11087 (base32 "1vzaiiw2pxa0zrc2bkaxljpr4035xrh3d8z3l5f0jvp72cnq49kp"))))
11088 (build-system emacs-build-system)
11089 ;; emacs-minimal does not include the function font-info.
11090 (arguments
11091 `(#:emacs ,emacs))
11092 (home-page "https://github.com/tumashu/posframe")
11093 (synopsis "Pop a posframe (a child frame) at point")
11094 (description
11095 "Posframe can pop a posframe at point. A posframe is a child frame
11096 displayed within its root window's buffer. Posframe is fast and works well
11097 with CJK languages.")
11098 (license license:gpl3+)))
11099
11100 (define-public emacs-el2org
11101 (package
11102 (name "emacs-el2org")
11103 (version "0.6.0")
11104 (source
11105 (origin
11106 (method git-fetch)
11107 (uri (git-reference
11108 (url "https://github.com/tumashu/el2org")
11109 (commit (string-append "v" version))))
11110 (file-name (git-file-name name version))
11111 (sha256
11112 (base32 "0mzddqny6wpg1fv99xrvlv7rxmaifvmy5bvj4in4pldhm4cx4q1b"))))
11113 (build-system emacs-build-system)
11114 (home-page "https://github.com/tumashu/el2org")
11115 (synopsis "Convert Emacs-lisp file to org file")
11116 (description "El2org is a simple tool, which can convert Emacs-lisp file
11117 to org file, you can use this tool to write orgify commentary.")
11118 (license license:gpl2+)))
11119
11120 (define-public emacs-mustache
11121 (package
11122 (name "emacs-mustache")
11123 (version "0.23")
11124 (source
11125 (origin
11126 (method git-fetch)
11127 (uri (git-reference
11128 (url "https://github.com/Wilfred/mustache.el")
11129 (commit version)))
11130 (file-name (git-file-name name version))
11131 (sha256
11132 (base32 "1n2ymd92qpvsby6ms0l3kjhdzzc47rri2aiscc6bs07hm4mjpr9q"))))
11133 (build-system emacs-build-system)
11134 (propagated-inputs
11135 `(("emacs-dash" ,emacs-dash)
11136 ("emacs-ht" ,emacs-ht)
11137 ("emacs-s" ,emacs-s)))
11138 (home-page "https://github.com/Wilfred/mustache.el")
11139 (synopsis "Mustache templating library for Emacs")
11140 (description "Mustache templating library for Emacs, mustache is
11141 a simple web template system, which is described as a logic-less system
11142 because it lacks any explicit control flow statements, both looping and
11143 conditional evaluation can be achieved using section tags processing lists
11144 and lambdas.")
11145 (license license:gpl3+)))
11146
11147 (define-public emacs-org2web
11148 (package
11149 (name "emacs-org2web")
11150 (version "0.9.1")
11151 (source
11152 (origin
11153 (method git-fetch)
11154 (uri (git-reference
11155 (url "https://github.com/tumashu/org2web")
11156 (commit (string-append "v" version))))
11157 (file-name (git-file-name name version))
11158 (sha256
11159 (base32 "0wsvfn409a2ivbich8b8zqza78sprirg4bl7igx536ydqclmi0n7"))))
11160 (build-system emacs-build-system)
11161 (propagated-inputs
11162 `(("emacs-dash" ,emacs-dash)
11163 ("emacs-el2org" ,emacs-el2org)
11164 ("emacs-ht" ,emacs-ht)
11165 ("emacs-mustache" ,emacs-mustache)
11166 ("emacs-simple-httpd" ,emacs-simple-httpd)))
11167 (home-page "https://github.com/tumashu/org2web")
11168 (synopsis "Static site generator based on org-mode ")
11169 (description "Org2web is a static site generator based on org-mode,
11170 which code derived from Kelvin H's org-page.")
11171 (license license:gpl2+)))
11172
11173 (define-public emacs-xelb
11174 (package
11175 (name "emacs-xelb")
11176 (version "0.18")
11177 (source (origin
11178 (method url-fetch)
11179 (uri (string-append "https://elpa.gnu.org/packages/xelb-"
11180 version ".tar"))
11181 (sha256
11182 (base32
11183 "1fp5mzl63sh0h3ws4l5p4qgvi7ny8a3fj6k4dhqa98xgw2bx03v7"))))
11184 (build-system emacs-build-system)
11185 ;; The following functions and variables needed by emacs-xelb are
11186 ;; not included in emacs-minimal:
11187 ;; x-display-screens, x-keysym-table, x-alt-keysym, x-meta-keysym
11188 ;; x-hyper-keysym, x-super-keysym, libxml-parse-xml-region
11189 ;; x-display-pixel-width, x-display-pixel-height
11190 (arguments
11191 `(#:emacs ,emacs
11192 #:phases
11193 (modify-phases %standard-phases
11194 (add-after 'unpack 'regenerate-el-files
11195 (lambda* (#:key inputs #:allow-other-keys)
11196 (invoke "make"
11197 (string-append "PROTO_PATH="
11198 (assoc-ref inputs "xcb-proto")
11199 "/share/xcb")
11200 (string-append "EMACS_BIN="
11201 (assoc-ref inputs "emacs")
11202 "/bin/emacs -Q")))))))
11203 (native-inputs `(("xcb-proto" ,xcb-proto)))
11204 (home-page "https://github.com/ch11ng/xelb")
11205 (synopsis "X protocol Emacs Lisp binding")
11206 (description "@code{emacs-xelb} is a pure Emacs Lisp implementation of the
11207 X11 protocol based on the XML description files from the XCB project. It
11208 features an object-oriented API and permits a certain degree of concurrency.
11209 It should enable you to implement low-level X11 applications.")
11210 (license license:gpl3+)))
11211
11212 (define-public emacs-exwm
11213 (package
11214 (name "emacs-exwm")
11215 (version "0.24")
11216 (synopsis "Emacs X window manager")
11217 (source
11218 (origin
11219 (method url-fetch)
11220 (uri (string-append "https://elpa.gnu.org/packages/"
11221 "exwm-" version ".tar"))
11222 (sha256
11223 (base32 "0lj1a3cmbpf4h6x8k6x8cdm1qb51ca6filydnvi5zcda8zpl060s"))
11224 (patches
11225 ;; Patch fixing fullscreen view. Applied upstream as
11226 ;; edb930005b0ba83051ca8a59b493e9a3c8ef580a. It can be removed in
11227 ;; next release.
11228 (search-patches "emacs-exwm-fix-fullscreen-states.patch"))))
11229 (build-system emacs-build-system)
11230 (propagated-inputs
11231 `(("emacs-xelb" ,emacs-xelb)))
11232 (inputs
11233 `(("xhost" ,xhost)
11234 ("dbus" ,dbus)))
11235 ;; The following functions and variables needed by emacs-exwm are
11236 ;; not included in emacs-minimal:
11237 ;; scroll-bar-mode, fringe-mode
11238 ;; x-display-pixel-width, x-display-pixel-height
11239 (arguments
11240 `(#:emacs ,emacs
11241 #:phases
11242 (modify-phases %standard-phases
11243 (add-after 'build 'install-xsession
11244 (lambda* (#:key inputs outputs #:allow-other-keys)
11245 (let* ((out (assoc-ref outputs "out"))
11246 (xsessions (string-append out "/share/xsessions"))
11247 (bin (string-append out "/bin"))
11248 (exwm-executable (string-append bin "/exwm")))
11249 ;; Add a .desktop file to xsessions
11250 (mkdir-p xsessions)
11251 (mkdir-p bin)
11252 (make-desktop-entry-file
11253 (string-append xsessions "/exwm.desktop")
11254 #:name ,name
11255 #:comment ,synopsis
11256 #:exec exwm-executable
11257 #:try-exec exwm-executable)
11258 ;; Add a shell wrapper to bin
11259 (with-output-to-file exwm-executable
11260 (lambda _
11261 (format #t "#!~a ~@
11262 ~a +SI:localuser:$USER ~@
11263 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
11264 (string-append (assoc-ref inputs "bash") "/bin/sh")
11265 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
11266 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
11267 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
11268 '(cond
11269 ((file-exists-p "~/.exwm")
11270 (load-file "~/.exwm"))
11271 ((not (featurep 'exwm))
11272 (require 'exwm)
11273 (require 'exwm-config)
11274 (exwm-config-default)
11275 (message (concat "exwm configuration not found. "
11276 "Falling back to default configuration...")))))))
11277 (chmod exwm-executable #o555)
11278 #t))))))
11279 (home-page "https://github.com/ch11ng/exwm")
11280 (description
11281 "EXWM is a full-featured tiling X window manager for Emacs built on top
11282 of XELB.")
11283 (license license:gpl3+)))
11284
11285 (define-public emacs-switch-window
11286 (package
11287 (name "emacs-switch-window")
11288 (version "1.6.2")
11289 (source
11290 (origin
11291 (method git-fetch)
11292 (uri (git-reference
11293 (url "https://github.com/dimitri/switch-window")
11294 (commit (string-append "v" version))))
11295 (file-name (git-file-name name version))
11296 (sha256
11297 (base32
11298 "0rci96asgamr6qp6nkyr5vwrnslswjxcjd96yccy4aivh0g66yfg"))))
11299 (build-system emacs-build-system)
11300 (home-page "https://github.com/dimitri/switch-window")
11301 (synopsis "Emacs window switch tool")
11302 (description "Switch-window is an emacs window switch tool, which
11303 offer a visual way to choose a window to switch to, delete, split or
11304 other operations.")
11305 (license license:wtfpl2)))
11306
11307 (define-public emacs-exwm-x
11308 (package
11309 (name "emacs-exwm-x")
11310 (version "1.9.0")
11311 (synopsis "Derivative window manager based on EXWM")
11312 (source
11313 (origin
11314 (method git-fetch)
11315 (uri (git-reference
11316 (url "https://github.com/tumashu/exwm-x")
11317 (commit (string-append "v" version))))
11318 (file-name (git-file-name name version))
11319 (sha256
11320 (base32
11321 "03l3dl7s1qys1kkh40rm1sfx7axy1b8sf5f6nyksj9ps6d30p5i4"))))
11322 (build-system emacs-build-system)
11323 (propagated-inputs
11324 `(("emacs-counsel" ,emacs-counsel)
11325 ("emacs-exwm" ,emacs-exwm)
11326 ("emacs-switch-window" ,emacs-switch-window)
11327 ("emacs-use-package" ,emacs-use-package)))
11328 (inputs
11329 `(("xhost" ,xhost)
11330 ("dbus" ,dbus)))
11331 ;; Need emacs instead of emacs-minimal,
11332 ;; for emacs's bin path will be inserted into bin/exwm-x file.
11333 (arguments
11334 `(#:emacs ,emacs
11335 #:phases
11336 (modify-phases %standard-phases
11337 (add-after 'build 'install-xsession
11338 (lambda* (#:key inputs outputs #:allow-other-keys)
11339 (let* ((out (assoc-ref outputs "out"))
11340 (xsessions (string-append out "/share/xsessions"))
11341 (bin (string-append out "/bin"))
11342 (exwm-executable (string-append bin "/exwm-x")))
11343 ;; Add a .desktop file to xsessions
11344 (mkdir-p xsessions)
11345 (mkdir-p bin)
11346 (with-output-to-file
11347 (string-append xsessions "/exwm-x.desktop")
11348 (lambda _
11349 (format #t "[Desktop Entry]~@
11350 Name=~a~@
11351 Comment=~a~@
11352 Exec=~a~@
11353 TryExec=~@*~a~@
11354 Type=Application~%" ,name ,synopsis exwm-executable)))
11355 ;; Add a shell wrapper to bin
11356 (with-output-to-file exwm-executable
11357 (lambda _
11358 (format #t "#!~a ~@
11359 ~a +SI:localuser:$USER ~@
11360 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
11361 (string-append (assoc-ref inputs "bash") "/bin/sh")
11362 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
11363 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
11364 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
11365 '(require 'exwmx-loader))))
11366 (chmod exwm-executable #o555)
11367 #t))))))
11368 (home-page "https://github.com/tumashu/exwm-x")
11369 (description "EXWM-X is a derivative window manager based on EXWM, with focus
11370 on mouse-control.")
11371 (license license:gpl3+)))
11372
11373 (define-public emacs-gnugo
11374 (package
11375 (name "emacs-gnugo")
11376 (version "3.1.0")
11377 (source
11378 (origin
11379 (method url-fetch)
11380 (uri (string-append "https://elpa.gnu.org/packages/gnugo-"
11381 version ".tar"))
11382 (sha256
11383 (base32
11384 "0xpjvs250gg71qwapdsb1hlc61gs0gpkjds01srf784fvyxx2gf1"))))
11385 (build-system emacs-build-system)
11386 (arguments
11387 `(#:phases (modify-phases %standard-phases
11388 (add-after 'unpack 'configure-default-gnugo-xpms-variable
11389 (lambda _
11390 (substitute* "gnugo.el"
11391 (("defvar gnugo-xpms nil")
11392 "defvar gnugo-xpms #'gnugo-imgen-create-xpms"))
11393 #t)))))
11394 (propagated-inputs
11395 `(("emacs-ascii-art-to-unicode" ,emacs-ascii-art-to-unicode)
11396 ("emacs-xpm" ,emacs-xpm)))
11397 (home-page "https://elpa.gnu.org/packages/gnugo.html")
11398 (synopsis "Emacs major mode for playing GNU Go")
11399 (description "This package provides an Emacs based interface for GNU Go.
11400 It has a graphical mode where the board and stones are drawn using XPM images
11401 and supports the use of a mouse.")
11402 (license license:gpl3+)))
11403
11404 (define-public emacs-gnuplot
11405 (package
11406 (name "emacs-gnuplot")
11407 (version "0.7.0")
11408 (source
11409 (origin
11410 (method git-fetch)
11411 (uri (git-reference
11412 (url "https://github.com/emacsorphanage/gnuplot-mode")
11413 (commit version)))
11414 (file-name (git-file-name name version))
11415 (sha256
11416 (base32 "0bwri3cvm2vr27kyqkrddm28fs08axnd4nm9amfgp54xp20bn4yn"))))
11417 (build-system emacs-build-system)
11418 (home-page "https://github.com/emacsorphanage/gnuplot-mode")
11419 (synopsis "Emacs major mode for interacting with Gnuplot")
11420 (description
11421 "Emacs Gnuplot is an Emacs major mode for interacting with Gnuplot.")
11422 (license license:gpl2+)))
11423
11424 (define-public emacs-transpose-frame
11425 (package
11426 (name "emacs-transpose-frame")
11427 (version "0.1.0")
11428 (source
11429 (origin
11430 (method url-fetch)
11431 (uri "https://www.emacswiki.org/emacs/download/transpose-frame.el")
11432 (file-name (string-append "transpose-frame-" version ".el"))
11433 (sha256
11434 (base32
11435 "1f67yksgw9s6j0033hmqzaxx2a93jm11sd5ys7cc3li5gfh680m4"))))
11436 (build-system emacs-build-system)
11437 (home-page "https://www.emacswiki.org/emacs/TransposeFrame")
11438 (synopsis "Transpose window arrangement in current frame")
11439 (description "@code{emacs-transpose-frame} provides some interactive
11440 functions which allows users to transpose windows arrangement in currently
11441 selected frame.")
11442 (license license:bsd-2)))
11443
11444 (define-public emacs-key-chord
11445 (package
11446 (name "emacs-key-chord")
11447 (version "0.6")
11448 (source
11449 (origin
11450 (method url-fetch)
11451 (uri "https://www.emacswiki.org/emacs/download/key-chord.el")
11452 (file-name (string-append "key-chord-" version ".el"))
11453 (sha256
11454 (base32
11455 "03m44pqggfrd53nh9dvpdjgm0rvca34qxmd30hr33hzprzjambxg"))))
11456 (build-system emacs-build-system)
11457 (home-page "https://www.emacswiki.org/emacs/key-chord.el")
11458 (synopsis "Map pairs of simultaneously pressed keys to Emacs commands")
11459 (description "@code{emacs-key-chord} provides @code{key-chord-mode}, a
11460 mode for binding key chords to commands. A key chord is defined as two keys
11461 pressed simultaneously or a single key quickly pressed twice.")
11462 (license license:gpl2+)))
11463
11464 (define-public emacs-evil-surround
11465 (package
11466 (name "emacs-evil-surround")
11467 (version "1.1.0")
11468 (source
11469 (origin
11470 (method git-fetch)
11471 (uri (git-reference
11472 (url "https://github.com/emacs-evil/evil-surround")
11473 (commit version)))
11474 (file-name (git-file-name name version))
11475 (sha256
11476 (base32 "15v2spg5rhddr97pxjfvxj36sh7knp753a9qpw8v5zjnp65kf2kn"))))
11477 (build-system emacs-build-system)
11478 (propagated-inputs
11479 `(("emacs-evil" ,emacs-evil)))
11480 (arguments
11481 `(#:tests? #t
11482 #:test-command '("make" "test")))
11483 (home-page "https://github.com/emacs-evil/evil-surround")
11484 (synopsis "Easily modify surrounding parentheses and quotes")
11485 (description "@code{emacs-evil-surround} allows easy deletion, change and
11486 addition of surrounding pairs, such as parentheses and quotes, in evil mode.")
11487 (license license:gpl3+)))
11488
11489 (define-public emacs-evil-commentary
11490 (package
11491 (name "emacs-evil-commentary")
11492 (version "2.1.1")
11493 (source
11494 (origin
11495 (method git-fetch)
11496 (uri (git-reference
11497 (url "https://github.com/linktohack/evil-commentary")
11498 (commit (string-append "v" version))))
11499 (file-name (git-file-name name version))
11500 (sha256
11501 (base32 "0zjs9zyqfygnpxapvf0ymmiid40i06cxbhjzd81zw33nafgkf6r4"))))
11502 (build-system emacs-build-system)
11503 (propagated-inputs
11504 `(("emacs-evil" ,emacs-evil)))
11505 (home-page "https://github.com/linktohack/evil-commentary")
11506 (synopsis "Comment out code in evil mode")
11507 (description "@code{emacs-evil-commentary} adds keybindings to easily
11508 comment out lines of code in evil mode. It provides @code{gcc} to comment out
11509 lines, and @code{gc} to comment out the target of a motion.")
11510 (license license:gpl3+)))
11511
11512 ;; Tests for emacs-ansi have a circular dependency with ert-runner, and
11513 ;; therefore cannot be run
11514 (define-public emacs-ansi
11515 (let ((commit "a41d5cc719297515d85bb5256980cd1204a71b88")
11516 (revision "1"))
11517 (package
11518 (name "emacs-ansi")
11519 (version (git-version "0.4.1" revision commit))
11520 (source
11521 (origin
11522 (method git-fetch)
11523 (uri (git-reference
11524 (url "https://github.com/rejeep/ansi.el")
11525 (commit commit)))
11526 (file-name (git-file-name name version))
11527 (sha256
11528 (base32 "051v8dmji90chwbsyqsqry7h35mksal2j6rgw1kpmjsni86d79y1"))))
11529 (build-system emacs-build-system)
11530 (propagated-inputs
11531 `(("emacs-dash" ,emacs-dash)
11532 ("emacs-s" ,emacs-s)))
11533 (home-page "https://github.com/rejeep/ansi.el")
11534 (synopsis "Convert strings to ANSI")
11535 (description "@code{emacs-ansi} defines functions that turns simple
11536 strings to ANSI strings. Turning a string into an ANSI string can be to add
11537 color to a text, add color in the background of a text or adding a style, such
11538 as bold, underscore or italic.")
11539 (license license:gpl3+))))
11540
11541 ;; Tests for emacs-commander have a circular dependency with ert-runner, and
11542 ;; therefore cannot be run
11543 (define-public emacs-commander
11544 (package
11545 (name "emacs-commander")
11546 (version "0.7.0")
11547 (source
11548 (origin
11549 (method git-fetch)
11550 (uri (git-reference
11551 (url "https://github.com/rejeep/commander.el")
11552 (commit (string-append "v" version))))
11553 (file-name (git-file-name name version))
11554 (sha256
11555 (base32 "1j6hhyzww7wfwk6bllbb5mk4hw4qs8hsgfbfdifsam9c6i4spm45"))))
11556 (build-system emacs-build-system)
11557 (propagated-inputs
11558 `(("emacs-dash" ,emacs-dash)
11559 ("emacs-f" ,emacs-f)
11560 ("emacs-s" ,emacs-s)))
11561 (home-page "https://github.com/rejeep/commander.el")
11562 (synopsis "Emacs command line parser")
11563 (description "@code{emacs-commander} provides command line parsing for
11564 Emacs.")
11565 (license license:gpl3+)))
11566
11567 (define-public emacs-eglot
11568 (package
11569 (name "emacs-eglot")
11570 (version "1.6")
11571 (source
11572 (origin
11573 (method url-fetch)
11574 (uri (string-append "https://elpa.gnu.org/packages/"
11575 "eglot-" version ".tar"))
11576 (sha256
11577 (base32 "15hd6sx7qrpvlvhwwkcgdiki8pswwf4mm7hkm0xvznskfcp44spx"))))
11578 (build-system emacs-build-system)
11579 (propagated-inputs
11580 `(("emacs-jsonrpc" ,emacs-jsonrpc)))
11581 (home-page "https://github.com/joaotavora/eglot")
11582 (synopsis "Client for Language Server Protocol (LSP) servers")
11583 (description
11584 "Emacs Polyglot, or Eglot, is an Emacs @acronym{Language Server Protocol,
11585 LSP} client that stays out of the way. It guesses the LSP program to start
11586 for the current file, using the major mode as a hint. It prompts you to enter
11587 one if it fails.")
11588 (license license:gpl3+)))
11589
11590 ;; Tests for ert-runner have a circular dependency with ecukes, and therefore
11591 ;; cannot be run
11592 (define-public emacs-ert-runner
11593 (package
11594 (name "emacs-ert-runner")
11595 (version "0.8.0")
11596 (source
11597 (origin
11598 (method git-fetch)
11599 (uri (git-reference
11600 (url "https://github.com/rejeep/ert-runner.el")
11601 (commit (string-append "v" version))))
11602 (file-name (git-file-name name version))
11603 (sha256
11604 (base32
11605 "08gygn9fjank5gpi4v6ynrkn0jbknxbwsn7md4p9ndygdbmnkf98"))))
11606 (build-system emacs-build-system)
11607 (inputs
11608 `(("emacs-ansi" ,emacs-ansi)
11609 ("emacs-commander" ,emacs-commander)
11610 ("emacs-dash" ,emacs-dash)
11611 ("emacs-f" ,emacs-f)
11612 ("emacs-s" ,emacs-s)
11613 ("emacs-shut-up" ,emacs-shut-up)))
11614 (arguments
11615 `(#:phases
11616 (modify-phases %standard-phases
11617 (add-after 'install 'install-executable
11618 (lambda* (#:key inputs outputs #:allow-other-keys)
11619 (let ((out (assoc-ref outputs "out"))
11620 (source-directory (string-append
11621 (getenv "TMPDIR") "/source")))
11622 (substitute* "bin/ert-runner"
11623 (("ERT_RUNNER=\"\\$\\(dirname \\$\\(dirname \\$0\\)\\)")
11624 (string-append "ERT_RUNNER=\"" out
11625 "/share/emacs/site-lisp")))
11626 (install-file "bin/ert-runner" (string-append out "/bin"))
11627 (wrap-program (string-append out "/bin/ert-runner")
11628 (list "EMACSLOADPATH" ":" 'prefix
11629 ;; Do not capture the transient source directory in
11630 ;; the wrapper.
11631 (delete source-directory
11632 (string-split (getenv "EMACSLOADPATH") #\:))))
11633 #t))))
11634 #:include (cons* "^reporters/.*\\.el$" %default-include)))
11635 (home-page "https://github.com/rejeep/ert-runner.el")
11636 (synopsis "Opinionated Ert testing workflow")
11637 (description "@code{ert-runner} is a tool for Emacs projects tested
11638 using ERT. It assumes a certain test structure setup and can therefore make
11639 running tests easier.")
11640 (license license:gpl3+)))
11641
11642 (define-public emacs-xtest
11643 (package
11644 (name "emacs-xtest")
11645 (version "1.1.0")
11646 (source (origin
11647 (method git-fetch)
11648 (uri (git-reference
11649 (url "https://github.com/promethial/xtest")
11650 (commit (string-append "v" version))))
11651 (file-name (git-file-name name version))
11652 (sha256
11653 (base32
11654 "1wqx6hlqcmqiljydih5fx89dw06g8w728pyn4iqsap8jwgjngb09"))))
11655 (arguments
11656 `(#:exclude '()))
11657 (build-system emacs-build-system)
11658 (home-page "https://github.com/promethial/xtest/")
11659 (synopsis "Simple testing with Emacs")
11660 (description "This package provides a simple testing library for Emacs.")
11661 (license license:gpl3+)))
11662
11663 (define-public emacs-disable-mouse
11664 (package
11665 (name "emacs-disable-mouse")
11666 (version "0.2")
11667 (source
11668 (origin
11669 (method git-fetch)
11670 (uri (git-reference
11671 (url "https://github.com/purcell/disable-mouse")
11672 (commit version)))
11673 (file-name (git-file-name name version))
11674 (sha256
11675 (base32 "1v1y5hf6k6ng7xsvgb27nh740d14m6l4krr0paccda8zgm4mw357"))))
11676 (build-system emacs-build-system)
11677 (home-page "https://github.com/purcell/disable-mouse")
11678 (synopsis "Disable mouse commands globally")
11679 (description
11680 "Provides @code{disable-mouse-mode} and @code{global-disable-mouse-mode},
11681 pair of minor modes which suppress all mouse events by intercepting them and
11682 running a customisable handler command (@code{ignore} by default). ")
11683 (license license:gpl3+)))
11684
11685 (define-public emacs-json-reformat
11686 (package
11687 (name "emacs-json-reformat")
11688 (version "0.0.6")
11689 (source
11690 (origin
11691 (method git-fetch)
11692 (uri (git-reference
11693 (url "https://github.com/gongo/json-reformat")
11694 (commit version)))
11695 (file-name (git-file-name name version))
11696 (sha256
11697 (base32 "0qp4n2k6s69jj4gwwimkpadjv245y54wk3bxb1x96f034gkp81vs"))
11698 (patches (search-patches "emacs-json-reformat-fix-tests.patch"))))
11699 (build-system emacs-build-system)
11700 (propagated-inputs
11701 `(("emacs-undercover" ,emacs-undercover)))
11702 (native-inputs
11703 `(("emacs-dash" ,emacs-dash)
11704 ("emacs-shut-up" ,emacs-shut-up)
11705 ("ert-runner" ,emacs-ert-runner)))
11706 (arguments
11707 `(#:tests? #t
11708 #:test-command '("ert-runner")
11709 #:phases
11710 (modify-phases %standard-phases
11711 (add-before 'check 'make-tests-writable
11712 (lambda _
11713 (for-each make-file-writable (find-files "test"))
11714 #t))
11715 (add-before 'check 'delete-json-objects-order-test
11716 (lambda _
11717 (emacs-batch-edit-file "test/json-reformat-test.el"
11718 `(progn (progn (goto-char (point-min))
11719 (re-search-forward
11720 "ert-deftest json-reformat-test:json-reformat-region")
11721 (beginning-of-line)
11722 (kill-sexp))
11723 (basic-save-buffer)))
11724 #t)))))
11725 (home-page "https://github.com/gongo/json-reformat")
11726 (synopsis "Reformatting tool for JSON")
11727 (description "@code{json-reformat} provides a reformatting tool for
11728 @url{http://json.org/, JSON}.")
11729 (license license:gpl3+)))
11730
11731 (define-public emacs-json-snatcher
11732 (package
11733 (name "emacs-json-snatcher")
11734 (version "1.0.0")
11735 (source
11736 (origin
11737 (method git-fetch)
11738 (uri (git-reference
11739 (url "https://github.com/Sterlingg/json-snatcher")
11740 (commit version)))
11741 (file-name (git-file-name name version))
11742 (sha256
11743 (base32 "05zsgnk7grgw9jzwl80h5sxfpifxlr37b4mkbvx7mjq4z14xc2jw"))))
11744 (build-system emacs-build-system)
11745 (home-page "https://github.com/sterlingg/json-snatcher")
11746 (synopsis "Grabs the path to JSON values in a JSON file")
11747 (description "@code{emacs-json-snatcher} grabs the path to JSON values in
11748 a @url{http://json.org/, JSON} file.")
11749 (license license:gpl3+)))
11750
11751 (define-public emacs-json-mode
11752 (package
11753 (name "emacs-json-mode")
11754 (version "1.7.0")
11755 (source
11756 (origin
11757 (method git-fetch)
11758 (uri (git-reference
11759 (url "https://github.com/joshwnj/json-mode")
11760 (commit (string-append "v" version))))
11761 (file-name (git-file-name name version))
11762 (sha256
11763 (base32 "0i79lqzdg59vkqwjd3q092xxn9vhxspb1vn4pkis0vfvn46g01jy"))))
11764 (build-system emacs-build-system)
11765 (propagated-inputs
11766 `(("emacs-json-reformat" ,emacs-json-reformat)
11767 ("emacs-json-snatcher" ,emacs-json-snatcher)))
11768 (home-page "https://github.com/joshwnj/json-mode")
11769 (synopsis "Major mode for editing JSON files")
11770 (description "@code{json-mode} extends the builtin js-mode syntax
11771 highlighting.")
11772 (license license:gpl3+)))
11773
11774 (define-public emacs-jsonrpc
11775 (package
11776 (name "emacs-jsonrpc")
11777 (version "1.0.12")
11778 (source
11779 (origin
11780 (method url-fetch)
11781 (uri (string-append "https://elpa.gnu.org/packages/"
11782 "jsonrpc-" version ".el"))
11783 (sha256
11784 (base32 "0cqp05awikbrn88ifld3vwnv6cxgmr83wlnsvxw8bqb96djz70ad"))))
11785 (build-system emacs-build-system)
11786 (home-page "http://elpa.gnu.org/packages/jsonrpc.html")
11787 (synopsis "JSON-RPC library")
11788 (description
11789 "This library implements the JSONRPC 2.0 specification as
11790 described in @url{http://www.jsonrpc.org/}. As the name suggests,
11791 JSONRPC is a generic Remote Procedure Call protocol designed around
11792 JSON objects.")
11793 (license license:gpl3+)))
11794
11795 (define-public emacs-restclient
11796 (let ((commit "ac8aad6c6b9e9d918062fa3c89c22c2f4ec48bc3")
11797 (version "0")
11798 (revision "3")) ;Guix package revision,
11799 ;upstream doesn't have official releases
11800 (package
11801 (name "emacs-restclient")
11802 (version (git-version version revision commit))
11803 (source (origin
11804 (method git-fetch)
11805 (uri (git-reference
11806 (url "https://github.com/pashky/restclient.el")
11807 (commit commit)))
11808 (sha256
11809 (base32
11810 "1a2c7xzy7rsan1zcdskia6m7n6j29xacfkqjlfdhzk6rr1bpzkwk"))
11811 (file-name (git-file-name name version))))
11812 (build-system emacs-build-system)
11813 (propagated-inputs
11814 `(("emacs-helm" ,emacs-helm)
11815 ("emacs-jq-mode" ,emacs-jq-mode)))
11816 (home-page "https://github.com/pashky/restclient.el")
11817 (synopsis "Explore and test HTTP REST webservices")
11818 (description
11819 "This tool allows for testing and exploration of HTTP REST Web services
11820 from within Emacs. Restclient runs queries from a plan-text query sheet,
11821 displays results pretty-printed in XML or JSON with @code{restclient-mode}")
11822 (license license:public-domain))))
11823
11824 (define-public emacs-jq-mode
11825 (package
11826 (name "emacs-jq-mode")
11827 (version "0.5.0")
11828 (source
11829 (origin
11830 (method git-fetch)
11831 (uri (git-reference
11832 (url "https://github.com/ljos/jq-mode")
11833 (commit (string-append "v" version))))
11834 (file-name (git-file-name name version))
11835 (sha256
11836 (base32 "0xk0if5i9cz4w06lx8v1vdm112pn1ybqgfw048sx15yyvfzgril1"))))
11837 (build-system emacs-build-system)
11838 (home-page "https://github.com/ljos/jq-mode")
11839 (synopsis "Major mode for editing jq queries")
11840 (description
11841 "Jq mode is an Emacs major mode for editing jq-scripts.")
11842 (license license:gpl3+)))
11843
11844 (define-public emacs-whitespace-cleanup-mode
11845 (let ((commit "72427144b054b0238a86e1348c45d986b8830d9d")
11846 (revision "1"))
11847 (package
11848 (name "emacs-whitespace-cleanup-mode")
11849 (version (git-version "0.10" revision commit))
11850 (source (origin
11851 (method git-fetch)
11852 (uri (git-reference
11853 (url "https://github.com/purcell/whitespace-cleanup-mode")
11854 (commit commit)))
11855 (sha256
11856 (base32
11857 "1zlk534jbwrsabcg3kqlzk4h4hwya60lh6q2n1v4yn4rpf5ghsag"))
11858 (file-name (git-file-name name version))))
11859 (build-system emacs-build-system)
11860 (home-page "https://github.com/purcell/whitespace-cleanup-mode")
11861 (synopsis "Intelligently call @code{whitespace-cleanup} on save")
11862 (description
11863 "This package provides a minor mode that calls
11864 @code{whitespace-cleanup} before saving the current buffer only if the
11865 whitespace in the buffer was initially clean.")
11866 (license license:gpl3+))))
11867
11868 (define-public emacs-eimp
11869 (let ((version "1.4.0")
11870 (commit "2e7536fe6d8f7faf1bad7a8ae37faba0162c3b4f")
11871 (revision "1"))
11872 (package
11873 (name "emacs-eimp")
11874 (version (git-version version revision commit))
11875 (source
11876 (origin
11877 (method git-fetch)
11878 (uri (git-reference
11879 (url "https://github.com/nicferrier/eimp")
11880 (commit commit)))
11881 (file-name (git-file-name name version))
11882 (sha256
11883 (base32
11884 "154d57yafxbcf39r89n5j43c86rp2fki3lw3gwy7ww2g6qkclcra"))))
11885 (build-system emacs-build-system)
11886 (arguments
11887 `(#:phases
11888 (modify-phases %standard-phases
11889 (add-after 'unpack 'configure
11890 (lambda* (#:key inputs #:allow-other-keys)
11891 (let ((imagemagick (assoc-ref inputs "imagemagick")))
11892 ;; eimp.el is read-only in git.
11893 (chmod "eimp.el" #o644)
11894 (emacs-substitute-variables "eimp.el"
11895 ("eimp-mogrify-program"
11896 (string-append imagemagick "/bin/mogrify"))))
11897 #t)))))
11898 (inputs
11899 `(("imagemagick" ,imagemagick)))
11900 (home-page "https://github.com/nicferrier/eimp")
11901 (synopsis "Interactive image manipulation utility for Emacs")
11902 (description "@code{emacs-eimp} allows interactive image manipulation
11903 from within Emacs. It uses the code@{mogrify} utility from ImageMagick to do
11904 the actual transformations.")
11905 (license license:gpl2+))))
11906
11907 (define-public emacs-dired-hacks
11908 (let ((commit "886befe113fae397407c804f72c45613d1d43535")
11909 (revision "2"))
11910 (package
11911 (name "emacs-dired-hacks")
11912 (version (git-version "0.0.1" revision commit))
11913 (source (origin
11914 (method git-fetch)
11915 (uri (git-reference
11916 (url "https://github.com/Fuco1/dired-hacks")
11917 (commit commit)))
11918 (file-name (git-file-name name version))
11919 (sha256
11920 (base32
11921 "1cvibg90ggyrivpjmcfprpi2fx7dpa68f8kzg08s88gw5ib75djl"))))
11922 (build-system emacs-build-system)
11923 (propagated-inputs
11924 `(("emacs-dash" ,emacs-dash)
11925 ("emacs-eimp" ,emacs-eimp)
11926 ("emacs-f" ,emacs-f)
11927 ("emacs-s" ,emacs-s)))
11928 (home-page "https://github.com/Fuco1/dired-hacks")
11929 (synopsis
11930 "Collection of useful dired additions")
11931 (description
11932 "This package provides the following collection of Emacs dired mode
11933 additions:
11934
11935 @itemize
11936 @item dired-avfs
11937 @item dired-columns
11938 @item dired-filter
11939 @item dired-hacks-utils
11940 @item dired-images
11941 @item dired-list
11942 @item dired-narrow
11943 @item dired-open
11944 @item dired-rainbow
11945 @item dired-ranger
11946 @item dired-subtree
11947 @item dired-tagsistant
11948 @end itemize\n")
11949 (license license:gpl3+))))
11950
11951 (define-public emacs-dired-sidebar
11952 (let ((commit "21ccb6723bea69f2e2ca25998268d8a039f904cc")
11953 (revision "1"))
11954 (package
11955 (name "emacs-dired-sidebar")
11956 (home-page "https://github.com/jojojames/dired-sidebar")
11957 (version (git-version "0.1.0" revision commit))
11958 (source (origin
11959 (method git-fetch)
11960 (uri (git-reference (url home-page) (commit commit)))
11961 (file-name (git-file-name name version))
11962 (sha256
11963 (base32
11964 "0mck4qk6srbbf8xnn2sg11j822z4ybxvgavvy402d5sli515i8ca"))))
11965 (build-system emacs-build-system)
11966 (propagated-inputs
11967 `(("emacs-dired-subtree" ,emacs-dired-hacks)))
11968 (synopsis "Sidebar for Emacs using Dired")
11969 (description
11970 "This package provides a sidebar for Emacs similar to @code{NeoTree}
11971 or @code{treemacs}, but leveraging @code{Dired} to do the job of display.")
11972 (license license:gpl3+))))
11973
11974 (define-public emacs-which-key
11975 (package
11976 (name "emacs-which-key")
11977 (version "3.5.0")
11978 (source
11979 (origin
11980 (method git-fetch)
11981 (uri (git-reference
11982 (url "https://github.com/justbur/emacs-which-key")
11983 (commit (string-append "v" version))))
11984 (file-name (git-file-name name version))
11985 (sha256
11986 (base32 "13lgjsm9pwgjsxg7lzc1c9sw2bzssxikfj6grnshqfll8kz8yr4r"))))
11987 (build-system emacs-build-system)
11988 (arguments
11989 `(#:tests? #t
11990 #:test-command '("emacs" "--batch"
11991 "-l" "which-key-tests.el"
11992 "-f" "ert-run-tests-batch-and-exit")))
11993 (home-page "https://github.com/justbur/emacs-which-key")
11994 (synopsis "Display available key bindings in popup")
11995 (description
11996 "@code{emacs-which-key} is a minor mode for Emacs that displays the key
11997 bindings following your currently entered incomplete command (a prefix) in a
11998 popup. For example, after enabling the minor mode if you enter C-x and wait
11999 for the default of 1 second, the minibuffer will expand with all of the
12000 available key bindings that follow C-x (or as many as space allows given your
12001 settings).")
12002 (license license:gpl3+)))
12003
12004 (define-public emacs-hercules
12005 (package
12006 (name "emacs-hercules")
12007 (version "0.2.1")
12008 (source
12009 (origin
12010 (method git-fetch)
12011 (uri (git-reference
12012 (url "https://gitlab.com/jjzmajic/hercules.el.git")
12013 (commit (string-append "v" version))))
12014 (file-name (git-file-name name version))
12015 (sha256
12016 (base32
12017 "19939pf5d6p2facmfhpyghx0vipb5k6ry3bmkmjfkj1zp132zfqf"))))
12018 (build-system emacs-build-system)
12019 (propagated-inputs
12020 `(("emacs-which-key" ,emacs-which-key)))
12021 (home-page "https://gitlab.com/jjzmajic/hercules.el")
12022 (synopsis "Call a chain of related commands without repeated prefix keys")
12023 (description
12024 "This package provides sticky-key-like functionality to obviate the
12025 need for repeated prefix-key sequences, and can reuse existing keymaps. The
12026 list of commands is displayed in a handy popup.")
12027 (license license:gpl3+)))
12028
12029 (define-public emacs-ws-butler
12030 (package
12031 (name "emacs-ws-butler")
12032 (version "0.6")
12033 (source (origin
12034 (method git-fetch)
12035 (uri (git-reference
12036 (url "https://github.com/lewang/ws-butler")
12037 (commit "323b651dd70ee40a25accc940b8f80c3a3185205")))
12038 (file-name (git-file-name name version))
12039 (sha256
12040 (base32
12041 "1a4b0lsmwq84qfx51c5xy4fryhb1ysld4fhgw2vr37izf53379sb"))))
12042 (build-system emacs-build-system)
12043 (native-inputs
12044 `(("ert-runner" ,emacs-ert-runner)))
12045 (arguments
12046 `(#:tests? #t
12047 #:test-command '("ert-runner" "tests")))
12048 (home-page "https://github.com/lewang/ws-butler")
12049 (synopsis "Trim spaces from end of lines")
12050 (description
12051 "This Emacs package automatically and unobtrusively trims whitespace
12052 characters from end of lines.")
12053 (license license:gpl3+)))
12054
12055 (define-public emacs-openwith
12056 (let ((changeset "aeb78782ec87680ea9f082a3f20a3675b3770cf9")
12057 (revision "0"))
12058 (package
12059 (name "emacs-openwith")
12060 (home-page "https://bitbucket.org/jpkotta/openwith")
12061 (version (git-version "0.0.1" revision changeset))
12062 (source (origin
12063 (method hg-fetch)
12064 (uri (hg-reference (url home-page) (changeset changeset)))
12065 (file-name (git-file-name name version))
12066 (sha256
12067 (base32
12068 "1wl6gnxsyhaad4cl9bxjc0qbc5jzvlwbwjbajs0n1s6qr07d6r01"))))
12069 (build-system emacs-build-system)
12070 (synopsis "Open external applications for files with Emacs")
12071 (description
12072 "This package enables you to associate file name patterns with external
12073 applications that are automatically invoked when you use commands like
12074 @code{find-file}. For example, you can have it open @code{png} files with
12075 @code{feh} and @code{mp4} files with @code{mpv}. This is especially useful
12076 when browsing files with Dired.")
12077 (license license:gpl2+))))
12078
12079 (define-public emacs-org-edit-latex
12080 (package
12081 (name "emacs-org-edit-latex")
12082 (version "0.8.0")
12083 (source
12084 (origin
12085 (method git-fetch)
12086 (uri (git-reference
12087 (url "https://github.com/et2010/org-edit-latex")
12088 (commit (string-append "v" version))))
12089 (file-name (git-file-name name version))
12090 (sha256
12091 (base32 "0zcllyhx9n9vcr5w87h0hfz25v52lvh5fi717cb7mf3jh89zh842"))))
12092 (build-system emacs-build-system)
12093 (propagated-inputs
12094 `(("emacs-auctex" ,emacs-auctex)
12095 ;; The version of org in Emacs 25.2 is not sufficient, because the
12096 ;; `org-latex-make-preamble' function is required.
12097 ("emacs-org" ,emacs-org)))
12098 (home-page "https://github.com/et2010/org-edit-latex")
12099 (synopsis "Edit a latex fragment just like editing a src block")
12100 (description "@code{emacs-org-edit-latex} is an extension for org-mode.
12101 It lets you edit a latex fragment in a dedicated buffer just like editing a
12102 src block.")
12103 (license license:gpl3+)))
12104
12105 (define-public emacs-emamux
12106 (package
12107 (name "emacs-emamux")
12108 (version "0.14")
12109 (source
12110 (origin
12111 (method git-fetch)
12112 (uri (git-reference
12113 (url "https://github.com/syohex/emacs-emamux")
12114 (commit version)))
12115 (file-name (git-file-name name version))
12116 (sha256
12117 (base32 "19y69qw79miim9cz5ji54gwspjkcp9g2c1xr5s7jj2fiabnxax6b"))))
12118 (build-system emacs-build-system)
12119 (home-page "https://github.com/syohex/emacs-emamux")
12120 (synopsis "Manipulate Tmux from Emacs")
12121 (description
12122 "@code{emacs-emamux} lets Emacs interact with the @code{tmux} terminal
12123 multiplexer.")
12124 (license license:gpl3+)))
12125
12126 (define-public emacs-rpm-spec-mode
12127 (package
12128 (name "emacs-rpm-spec-mode")
12129 (version "0.16")
12130 (source
12131 (origin
12132 (method url-fetch)
12133 ;; URI has the Fedora release number instead of the version
12134 ;; number. This will have to updated manually every new release.
12135 (uri (string-append
12136 "https://src.fedoraproject.org/cgit/rpms"
12137 "/emacs-rpm-spec-mode.git/snapshot"
12138 "/emacs-rpm-spec-mode-f26.tar.gz"))
12139 (sha256
12140 (base32
12141 "17dz80lhjrc89fj17pysl8slahzrqdkxgcjdk55zls6jizkr6kz3"))))
12142 (build-system emacs-build-system)
12143 (home-page "http://pkgs.fedoraproject.org/cgit/rpms/emacs-rpm-spec-mode.git")
12144 (synopsis "Emacs major mode for editing RPM spec files")
12145 (description "@code{emacs-rpm-spec-mode} provides an Emacs major mode for
12146 editing RPM spec files.")
12147 (license license:gpl2+)))
12148
12149 (define-public emacs-lcr
12150 (package
12151 (name "emacs-lcr")
12152 (version "1.1")
12153 (source
12154 (origin
12155 (method git-fetch)
12156 (uri (git-reference
12157 (url "https://github.com/jyp/lcr")
12158 (commit version)))
12159 (file-name (git-file-name name version))
12160 (sha256
12161 (base32 "0mc55icihxqpf8b05990q1lc2nj2792wcgyr73xsiqx0963sjaj8"))))
12162 (build-system emacs-build-system)
12163 (propagated-inputs
12164 `(("emacs-dash" ,emacs-dash)))
12165 (home-page "https://github.com/jyp/lcr")
12166 (synopsis "Lightweight coroutines in Emacs Lisp")
12167 (description "This package provides macros that can translate code into
12168 equivalent continuation-passing code, as well as miscellaneous utility
12169 functions written in continuation-passing style.")
12170 (license license:gpl3+)))
12171
12172 (define-public emacs-attrap
12173 (let ((commit "18cd1f7832870a36c404e872fa83a271fe8e688d")
12174 (revision "2"))
12175 (package
12176 (name "emacs-attrap")
12177 (version (git-version "1.0" revision commit))
12178 (source (origin
12179 (method git-fetch)
12180 (uri (git-reference
12181 (url "https://github.com/jyp/attrap")
12182 (commit commit)))
12183 (sha256
12184 (base32
12185 "078391949h0fgmshin8f79a1a595m06ig577rkgjqgngcp0d61l9"))
12186 (file-name (git-file-name name version))))
12187 (build-system emacs-build-system)
12188 (propagated-inputs
12189 `(("emacs-dash" ,emacs-dash)
12190 ("emacs-f" ,emacs-f)
12191 ("emacs-flycheck" ,emacs-flycheck)
12192 ("emacs-s" ,emacs-s)))
12193 (home-page "https://github.com/jyp/attrap")
12194 (synopsis "Fix coding error at point")
12195 (description "This package provides a command to fix the Flycheck error
12196 at point.")
12197 (license license:gpl3+))))
12198
12199 (define-public emacs-git-messenger
12200 (package
12201 (name "emacs-git-messenger")
12202 (version "0.18")
12203 (source
12204 (origin
12205 (method git-fetch)
12206 (uri (git-reference
12207 (url "https://github.com/syohex/emacs-git-messenger")
12208 (commit version)))
12209 (file-name (git-file-name name version))
12210 (sha256
12211 (base32 "04fnby2nblk8l70gv09asxkmnn53fh1pdfs77ix44npp99fyw8ix"))))
12212 (build-system emacs-build-system)
12213 (propagated-inputs
12214 `(("emacs-popup" ,emacs-popup)))
12215 (arguments
12216 `(#:tests? #t
12217 #:test-command '("emacs" "--batch" "-l" "test/test.el"
12218 "-f" "ert-run-tests-batch-and-exit")))
12219 (home-page "https://github.com/syohex/emacs-git-messenger")
12220 (synopsis "Popup commit message at current line")
12221 (description "@code{emacs-git-messenger} provides
12222 @code{git-messenger:popup-message}, a function that when called, will popup
12223 the last git commit message for the current line. This uses git-blame
12224 internally.")
12225 (license license:gpl3+)))
12226
12227 (define-public emacs-gitpatch
12228 (package
12229 (name "emacs-gitpatch")
12230 (version "0.5.1")
12231 (source
12232 (origin
12233 (method git-fetch)
12234 (uri (git-reference
12235 (url "https://github.com/tumashu/gitpatch")
12236 (commit (string-append "v" version))))
12237 (file-name (git-file-name name version))
12238 (sha256
12239 (base32 "1drf4fvmak7brf16axkh4nfz8pg44i7pjhfjz3dbkycbpp8y5vig"))))
12240 (build-system emacs-build-system)
12241 (home-page "https://github.com/tumashu/gitpatch")
12242 (synopsis "Mail git patch from Emacs")
12243 (description "@code{emacs-gitpatch} lets users easily send git patches,
12244 created by @code{git format-patch}, from @code{magit}, @code{dired} and
12245 @code{ibuffer} buffers.")
12246 (license license:gpl3+)))
12247
12248 (define-public emacs-erc-hl-nicks
12249 (package
12250 (name "emacs-erc-hl-nicks")
12251 (version "1.3.4")
12252 (source
12253 (origin
12254 (method git-fetch)
12255 (uri (git-reference
12256 (url "https://github.com/leathekd/erc-hl-nicks")
12257 (commit version)))
12258 (file-name (git-file-name name version))
12259 (sha256
12260 (base32 "0k57scxa8rm859fqsm8srhps7rlq06jzazhjbwnadzrh8i5fyvra"))))
12261 (build-system emacs-build-system)
12262 (synopsis "Nickname highlighting for Emacs ERC")
12263 (description "@code{erc-hl-nicks} highlights nicknames in ERC, an IRC
12264 client for Emacs. The main features are:
12265 @itemize
12266 @item Auto-colorizes nicknames without having to specify colors
12267 @item Ignores certain characters that IRC clients add to nicknames to avoid
12268 duplicates (nickname, nickname’, nickname\", etc.)
12269 @item Attempts to produce colors with a sufficient amount of contrast between
12270 the nick color and the background color
12271 @end itemize\n")
12272 (home-page "https://github.com/leathekd/erc-hl-nicks")
12273 (license license:gpl3+)))
12274
12275 (define-public emacs-engine-mode
12276 (package
12277 (name "emacs-engine-mode")
12278 (version "2.1.1")
12279 (source
12280 (origin
12281 (method git-fetch)
12282 (uri (git-reference
12283 (url "https://github.com/hrs/engine-mode")
12284 (commit (string-append "v" version))))
12285 (file-name (git-file-name name version))
12286 (sha256
12287 (base32 "1xka8i4cdvp5r2v2mkli1zz17x1sdsnmszbhqav2rf94v656d91i"))))
12288 (build-system emacs-build-system)
12289 (synopsis "Minor mode for defining and querying search engines")
12290 (description "@code{engine-mode} is a global minor mode for Emacs. It
12291 enables you to easily define search engines, bind them to keybindings, and
12292 query them from the comfort of your editor.")
12293 (home-page "https://github.com/hrs/engine-mode")
12294 (license license:gpl3+)))
12295
12296 (define-public emacs-prop-menu
12297 (package
12298 (name "emacs-prop-menu")
12299 (version "0.1.2")
12300 (source
12301 (origin
12302 (method git-fetch)
12303 (uri (git-reference
12304 (url "https://github.com/david-christiansen/prop-menu-el")
12305 (commit version)))
12306 (file-name (git-file-name name version))
12307 (sha256
12308 (base32
12309 "18ap2liz5r5a8ja2zz9182fnfm47jnsbyblpq859zks356k37iwc"))))
12310 (build-system emacs-build-system)
12311 (home-page
12312 "https://github.com/david-christiansen/prop-menu-el")
12313 (synopsis
12314 "Create and display a context menu based on text and overlay properties")
12315 (description
12316 "This is a library for computing context menus based on text
12317 properties and overlays. The intended use is to have tools that
12318 annotate source code and others that use these annotations, without
12319 requiring a direct coupling between them, but maintaining
12320 discoverability.
12321
12322 Major modes that wish to use this library should first define an
12323 appropriate value for @code{prop-menu-item-functions}. Then, they should
12324 bind @code{prop-menu-by-completing-read} to an appropriate
12325 key. Optionally, a mouse pop-up can be added by binding
12326 @code{prop-menu-show-menu} to a mouse event.")
12327 (license license:gpl3+)))
12328
12329 (define-public emacs-idris-mode
12330 (let ((commit "b77eadd8ac2048d5c882b4464bd9673e45dd6a59")
12331 (revision "0"))
12332 (package
12333 (name "emacs-idris-mode")
12334 (version (git-version "1.0" revision commit))
12335 (source
12336 (origin
12337 (method git-fetch)
12338 (uri (git-reference
12339 (url "https://github.com/idris-hackers/idris-mode")
12340 (commit commit)))
12341 (file-name (git-file-name name commit))
12342 (sha256
12343 (base32
12344 "1v8av6jza1j00ln75zjwaca0vmmv0fhhhi94p84rlfzgzykyb9g1"))))
12345 (build-system emacs-build-system)
12346 (propagated-inputs
12347 `(("emacs-prop-menu" ,emacs-prop-menu)))
12348 (home-page
12349 "https://github.com/idris-hackers/idris-mode")
12350 (synopsis "Major mode for editing Idris code")
12351 (description
12352 "This is an Emacs mode for editing Idris code. It is compatible with
12353 the latest versions of Idris 1.")
12354 (license license:gpl3+))))
12355
12356 (define-public emacs-browse-at-remote
12357 (package
12358 (name "emacs-browse-at-remote")
12359 (version "0.14.0")
12360 (source
12361 (origin
12362 (method git-fetch)
12363 (uri (git-reference
12364 (url "https://github.com/rmuslimov/browse-at-remote")
12365 (commit version)))
12366 (file-name (git-file-name name version))
12367 (sha256
12368 (base32 "0bx4ns0jb0sqrjk1nsspvl3mhz3n12925azf7brlwb1vcgnji09v"))))
12369 (build-system emacs-build-system)
12370 (propagated-inputs
12371 `(("emacs-f" ,emacs-f)
12372 ("emacs-s" ,emacs-s)))
12373 (native-inputs
12374 `(("ert-runner" ,emacs-ert-runner)))
12375 (arguments
12376 `(#:tests? #t
12377 #:test-command '("ert-runner")))
12378 (home-page "https://github.com/rmuslimov/browse-at-remote")
12379 (synopsis "Open github/gitlab/bitbucket/stash page from Emacs")
12380 (description
12381 "This Emacs package allows you to open a target page on
12382 github/gitlab (or bitbucket) by calling @code{browse-at-remote} command.
12383 It supports dired buffers and opens them in tree mode at destination.")
12384 (license license:gpl3+)))
12385
12386 (define-public emacs-tiny
12387 (let ((commit "fd8a6b0b0c564d8242259e20e557ee6041f40908")
12388 (revision "1"))
12389 (package
12390 (name "emacs-tiny")
12391 (version (git-version "0.2.1" revision commit))
12392 (source
12393 (origin
12394 (method git-fetch)
12395 (uri (git-reference
12396 (url "https://github.com/abo-abo/tiny")
12397 (commit commit)))
12398 (file-name (git-file-name name version))
12399 (sha256
12400 (base32
12401 "1498j392ap2mk4zmsm2id16pfgvj78r428da9vw7hdrzzibai2cx"))))
12402 (build-system emacs-build-system)
12403 (arguments
12404 `(#:tests? #t
12405 #:test-command '("make" "test")))
12406 (home-page "https://github.com/abo-abo/tiny")
12407 (synopsis "Quickly generate linear ranges in Emacs")
12408 (description
12409 "The main command of the @code{tiny} extension for Emacs is @code{tiny-expand}.
12410 It is meant to quickly generate linear ranges, e.g. 5, 6, 7, 8. Some elisp
12411 proficiency is an advantage, since you can transform your numeric range with
12412 an elisp expression.")
12413 (license license:gpl3+))))
12414
12415 (define-public emacs-emojify
12416 (package
12417 (name "emacs-emojify")
12418 (version "1.2")
12419 (source
12420 (origin
12421 (method git-fetch)
12422 (uri (git-reference
12423 (url "https://github.com/iqbalansari/emacs-emojify")
12424 (commit (string-append "v" version))))
12425 (file-name (git-file-name name version))
12426 (sha256
12427 (base32
12428 "1fqnj5x7ivjkm5y927dqqnm85q5hzczlb0hrfpjalrhasa6ijsrm"))))
12429 (build-system emacs-build-system)
12430 (arguments
12431 `(#:include (cons "^data/" %default-include)))
12432 (propagated-inputs
12433 `(("emacs-ht" ,emacs-ht)))
12434 (home-page "https://github.com/iqbalansari/emacs-emojify")
12435 (synopsis "Display emojis in Emacs")
12436 (description "This package displays emojis in Emacs similar to how Github,
12437 Slack, and other websites do. It can display plain ASCII like @code{:)} as
12438 well as Github-style emojis like @code{:smile:}. It provides a minor mode
12439 @code{emojify-mode} to enable the display of emojis in a buffer.")
12440 (license license:gpl3+)))
12441
12442 (define-public emacs-make-it-so
12443 (let ((commit "b73dfb640588123c9eece230ad72b37604f5c126")
12444 (revision "2"))
12445 (package
12446 (name "emacs-make-it-so")
12447 (version (git-version "0.1.0" revision commit))
12448 (source
12449 (origin
12450 (method git-fetch)
12451 (uri (git-reference
12452 (url "https://github.com/abo-abo/make-it-so")
12453 (commit commit)))
12454 (file-name (git-file-name name version))
12455 (sha256
12456 (base32
12457 "0p6xhyinzzkrwzbpxqfm8hlii0ikvmmylya240bwsa77w0g1k6xq"))))
12458 (build-system emacs-build-system)
12459 (arguments
12460 `(#:include (cons "^recipes/" %default-include)))
12461 (propagated-inputs
12462 `(("emacs-ivy" ,emacs-ivy)))
12463 (home-page "https://github.com/abo-abo/make-it-so")
12464 (synopsis "Transform files with Makefile recipes")
12465 (description "This package provides an interface for selecting from
12466 different conversion recipes, often including tools like @code{ffmpeg} or
12467 @code{convert}. The conversion command need only be written once, and
12468 subsequent invocations can be readily customized. Several recipes are
12469 included by default, and more can be readily added.")
12470 (license license:gpl3+))))
12471
12472 (define-public emacs-unidecode
12473 (let ((commit "5502ada9287b4012eabb879f12f5b0a9df52c5b7")
12474 (revision "1"))
12475 (package
12476 (name "emacs-unidecode")
12477 (version (git-version "0.2" revision commit))
12478 (source
12479 (origin
12480 (method git-fetch)
12481 (uri (git-reference
12482 (url "https://github.com/sindikat/unidecode")
12483 (commit commit)))
12484 (file-name (git-file-name name version))
12485 (sha256
12486 (base32
12487 "03x3nakbhmakwm977mwrf8jifvjnfwzpjv6wrwpizbqjnkgfchmn"))))
12488 (build-system emacs-build-system)
12489 (arguments
12490 `(#:include (cons* "^tools/" "^data/" %default-include)
12491 #:tests? #t
12492 #:test-command '("emacs" "--batch"
12493 "-l" "unidecode-test.el"
12494 "-f" "ert-run-tests-batch-and-exit")
12495 #:phases
12496 (modify-phases %standard-phases
12497 (add-before 'check 'make-tests-writable
12498 (lambda _
12499 (make-file-writable "unidecode-test.el")
12500 #t))
12501 (add-before 'check 'add-require
12502 (lambda _
12503 (emacs-batch-edit-file "unidecode-test.el"
12504 `(progn (progn (goto-char (point-min))
12505 (re-search-forward
12506 "ert-deftest")
12507 (forward-line -1)
12508 (insert "(require 'unidecode)"))
12509 (basic-save-buffer)))
12510 #t)))))
12511 (home-page "https://github.com/sindikat/unidecode")
12512 (synopsis "Transliterate Unicode text to ASCII")
12513 (description "This package provides functions for converting Unicode to ASCII.")
12514 (license license:gpl2+))))
12515
12516 (define-public emacs-pubmed
12517 (package
12518 (name "emacs-pubmed")
12519 (version "0.2.1")
12520 (source
12521 (origin
12522 (method git-fetch)
12523 (uri (git-reference
12524 (url "https://gitlab.com/fvdbeek/emacs-pubmed.git")
12525 (commit (string-append "v" version))))
12526 (file-name (git-file-name name version))
12527 (sha256
12528 (base32
12529 "15bwjxc7g43m5pi8z17anaqqkvi209r7kk1chmf175477gvrv7c0"))))
12530 (build-system emacs-build-system)
12531 (propagated-inputs
12532 `(("emacs-deferred" ,emacs-deferred)
12533 ("emacs-esxml" ,emacs-esxml)
12534 ("emacs-s" ,emacs-s)
12535 ("emacs-unidecode" ,emacs-unidecode)))
12536 (home-page "https://gitlab.com/fvdbeek/emacs-pubmed")
12537 (synopsis "Interface to PubMed")
12538 (description "This package provides an Emacs interface to the PubMed
12539 database of references on life sciences.")
12540 (license license:gpl3+)))
12541
12542 (define-public emacs-websocket
12543 (package
12544 (name "emacs-websocket")
12545 (version "1.12")
12546 (source
12547 (origin
12548 (method url-fetch)
12549 (uri (string-append "https://elpa.gnu.org/packages/"
12550 "websocket-" version ".tar"))
12551 (sha256
12552 (base32 "0ap4z80c6pzpb69wrx0hsvwzignxmd2b9xy974by9gf5xm2wpa8w"))))
12553 (build-system emacs-build-system)
12554 (home-page "https://elpa.gnu.org/packages/websocket.html")
12555 (synopsis "Emacs WebSocket client and server")
12556 (description
12557 "This is an Elisp library for WebSocket clients to talk to WebSocket
12558 servers, and for WebSocket servers to accept connections from WebSocket
12559 clients. This library is designed to be used by other library writers, to
12560 write applications that use WebSockets, and is not useful by itself.")
12561 (license license:gpl3+)))
12562
12563 (define-public emacs-oauth2
12564 (package
12565 (name "emacs-oauth2")
12566 (version "0.15")
12567 (source
12568 (origin
12569 (method url-fetch)
12570 (uri (string-append "https://elpa.gnu.org/packages/"
12571 "oauth2-" version ".el"))
12572 (sha256
12573 (base32 "0ij17g6i8d4cyzc8v6sy2qglwhzd767331gavll6d507krdh3ca3"))))
12574 (build-system emacs-build-system)
12575 (home-page "https://elpa.gnu.org/packages/oauth2.html")
12576 (synopsis "OAuth 2.0 authorization protocol implementation")
12577 (description
12578 "This package provides an Elisp implementation of the OAuth 2.0 draft.
12579 The main entry point is @code{oauth2-auth-and-store} which will return a token
12580 structure. This token structure can be then used with
12581 @code{oauth2-url-retrieve-synchronously} or @code{oauth2-url-retrieve} to
12582 retrieve any data that need OAuth authentication to be accessed. If the token
12583 needs to be refreshed, the code handles it automatically and stores the new
12584 value of the access token.")
12585 (license license:gpl3+)))
12586
12587 (define-public emacs-auth-source-xoauth2
12588 (package
12589 (name "emacs-auth-source-xoauth2")
12590 (version "1.0")
12591 (source
12592 (origin
12593 (method git-fetch)
12594 (uri (git-reference
12595 (url "https://github.com/ccrusius/auth-source-xoauth2")
12596 (commit (string-append "v" version))))
12597 (file-name (git-file-name name version))
12598 (sha256
12599 (base32 "0nl859csl8xcd6ybpjj15ph8l8fxwkwf45kbylss68alkyf1rl3v"))))
12600 (build-system emacs-build-system)
12601 (home-page "https://github.com/ccrusius/auth-source-xoauth2")
12602 (synopsis "XOAuth2 authentication capabilities for Emacs auth-source")
12603 (description
12604 "This package adds XOAuth2 authentication capabilities to Emacs
12605 auth-source. This integration requires some preliminary work on the users’
12606 part, which includes creating tokens.")
12607 (license license:asl2.0)))
12608
12609 (define-public emacs-circe
12610 (package
12611 (name "emacs-circe")
12612 (version "2.11")
12613 (source
12614 (origin
12615 (method git-fetch)
12616 (uri (git-reference
12617 (url "https://github.com/jorgenschaefer/circe")
12618 (commit (string-append "v" version))))
12619 (file-name (git-file-name name version))
12620 (sha256
12621 (base32 "0cr9flk310yn2jgvj4hbqw9nj5wlfi0fazdkqafzidgz6iq150wd"))))
12622 (build-system emacs-build-system)
12623 (arguments
12624 `(#:tests? #t
12625 #:test-command '("buttercup" "-L" ".")
12626 #:phases
12627 (modify-phases %standard-phases
12628 ;; The HOME environment variable should be set to an existing
12629 ;; directory for the tests to succeed.
12630 (add-before 'check 'set-home
12631 (lambda _
12632 (setenv "HOME" "/tmp")
12633 #t)))))
12634 (native-inputs
12635 `(("emacs-buttercup" ,emacs-buttercup)))
12636 ;; In order to securely connect to an IRC server using TLS, Circe requires
12637 ;; the GnuTLS binary.
12638 (propagated-inputs
12639 `(("gnutls" ,gnutls)))
12640 (home-page "https://github.com/jorgenschaefer/circe")
12641 (synopsis "Client for IRC in Emacs")
12642 (description "Circe is a Client for IRC in Emacs. It integrates well with
12643 the rest of the editor, using standard Emacs key bindings and indicating
12644 activity in channels in the status bar so it stays out of your way unless you
12645 want to use it.")
12646 (license license:gpl3+)))
12647
12648 (define-public emacs-tracking
12649 (package
12650 (inherit emacs-circe)
12651 (name "emacs-tracking")
12652 (arguments
12653 ;; "tracking.el" is a library extracted from Circe package. It requires
12654 ;; "shorten.el".
12655 `(#:include '("^shorten.el$" "^tracking.el$")
12656 ,@(package-arguments emacs-circe)))
12657 (home-page "https://github.com/jorgenschaefer/circe/wiki/Tracking")
12658 (synopsis "Buffer tracking library")
12659 (description "@code{tracking.el} provides a way for different modes to
12660 notify the user that a buffer needs attention. The user then can cycle
12661 through them using @key{C-c C-SPC}.")
12662 (license license:gpl3+)))
12663
12664 (define-public emacs-slack
12665 (let ((commit "a6d9f49bc6161f12c594d25254e77eedf4a67666")
12666 (revision "8"))
12667 (package
12668 (name "emacs-slack")
12669 (version (git-version "0.0.2" revision commit))
12670 (source (origin
12671 (method git-fetch)
12672 (uri (git-reference
12673 (url "https://github.com/yuya373/emacs-slack")
12674 (commit commit)))
12675 (file-name (git-file-name name commit))
12676 (sha256
12677 (base32
12678 "0crjjankqi4bqjk5pdz4r2ixf56n1nnq8ab1gz3sbl3v6as6262w"))))
12679 (build-system emacs-build-system)
12680 (arguments
12681 `(#:phases
12682 (modify-phases %standard-phases
12683 ;; HOME needs to exist for source compilation.
12684 (add-before 'build 'set-HOME
12685 (lambda _ (setenv "HOME" "/tmp") #t)))))
12686 (propagated-inputs
12687 `(("emacs-alert" ,emacs-alert)
12688 ("emacs-emojify" ,emacs-emojify)
12689 ("emacs-helm" ,emacs-helm)
12690 ("emacs-request" ,emacs-request)
12691 ("emacs-websocket" ,emacs-websocket)
12692 ("emacs-oauth2" ,emacs-oauth2)
12693 ("emacs-circe" ,emacs-circe)))
12694 (home-page "https://github.com/yuya373/emacs-slack")
12695 (synopsis "Slack client for Emacs")
12696 (description "This package provides an Emacs client for the Slack
12697 messaging service.")
12698 (license license:gpl3+))))
12699
12700 (define-public emacs-bash-completion
12701 (package
12702 (name "emacs-bash-completion")
12703 (version "3.1.0")
12704 (source
12705 (origin
12706 (method git-fetch)
12707 (uri (git-reference
12708 (url "https://github.com/szermatt/emacs-bash-completion")
12709 (commit (string-append "v" version))))
12710 (file-name (git-file-name name version))
12711 (sha256
12712 (base32 "11j2k3irixp47r2iglxdmjphahqhgnxg98n2xwagwzyq99lsamj4"))))
12713 (inputs `(("bash" ,bash)))
12714 (build-system emacs-build-system)
12715 (arguments
12716 `(#:phases
12717 (modify-phases %standard-phases
12718 (add-after 'unpack 'make-git-checkout-writable
12719 (λ _
12720 (for-each make-file-writable (find-files "."))
12721 #t))
12722 (add-before 'install 'configure
12723 (lambda* (#:key inputs #:allow-other-keys)
12724 (let ((bash (assoc-ref inputs "bash")))
12725 (emacs-substitute-variables "bash-completion.el"
12726 ("bash-completion-prog" (string-append bash "/bin/bash"))))
12727 #t)))))
12728 (home-page "https://github.com/szermatt/emacs-bash-completion")
12729 (synopsis "Bash completion for the shell buffer")
12730 (description
12731 "@code{bash-completion} defines dynamic completion hooks for shell-mode
12732 and shell-command prompts that are based on Bash completion.")
12733 (license license:gpl2+)))
12734
12735 (define-public emacs-easy-kill
12736 (package
12737 (name "emacs-easy-kill")
12738 (version "0.9.3")
12739 (source (origin
12740 (method url-fetch)
12741 (uri (string-append "https://elpa.gnu.org/packages/easy-kill-"
12742 version ".tar"))
12743 (sha256
12744 (base32
12745 "17nw0mglmg877axwg1d0gs03yc0p04lzmd3pl0nsnqbh3303fnqb"))))
12746 (build-system emacs-build-system)
12747 (home-page "https://github.com/leoliu/easy-kill")
12748 (synopsis "Kill and mark things easily in Emacs")
12749 (description
12750 "This package provides commands @code{easy-kill} and @code{easy-mark} to
12751 let users kill or mark things easily.")
12752 (license license:gpl3+)))
12753
12754 (define-public emacs-csv-mode
12755 (package
12756 (name "emacs-csv-mode")
12757 (version "1.12")
12758 (source
12759 (origin
12760 (method url-fetch)
12761 (uri (string-append "https://elpa.gnu.org/packages/"
12762 "csv-mode-" version ".tar"))
12763 (sha256
12764 (base32 "0bya12smlrzwv4cbcmch4kg1fazp4k0ndrh1z17ix9p8c14d0v1j"))))
12765 (build-system emacs-build-system)
12766 (home-page "https://elpa.gnu.org/packages/csv-mode.html")
12767 (synopsis "Major mode for editing comma/char separated values")
12768 (description
12769 "This Emacs package implements CSV mode, a major mode for editing records
12770 in a generalized CSV (character-separated values) format.")
12771 (license license:gpl3+)))
12772
12773 (define-public emacs-transmission
12774 (package
12775 (name "emacs-transmission")
12776 (version "0.12.1")
12777 (source
12778 (origin
12779 (method git-fetch)
12780 (uri (git-reference
12781 (url "https://github.com/holomorph/transmission")
12782 (commit version)))
12783 (file-name (git-file-name name version))
12784 (sha256
12785 (base32 "0kvg2gawsgy440x1fsl2c4pkxwp3zirq9rzixanklk0ryijhd3ry"))))
12786 (build-system emacs-build-system)
12787 (home-page "https://github.com/holomorph/transmission")
12788 (synopsis "Emacs interface to a Transmission session")
12789 (description "This package provides an Emacs interface to interact with a
12790 running session of the Transmission Bittorrent client.
12791
12792 Features:
12793
12794 @itemize
12795 @item List, add, start/stop, verify, remove torrents.
12796 @item Set speed limits, ratio limits, bandwidth priorities, trackers.
12797 @item Navigate to the corresponding file list, torrent info, peer info
12798 contexts.
12799 @item Toggle downloading and set priorities for individual files.
12800 @end itemize\n")
12801 (license license:gpl3+)))
12802
12803 (define-public emacs-polymode
12804 (package
12805 (name "emacs-polymode")
12806 (version "0.2")
12807 (source (origin
12808 (method git-fetch)
12809 (uri (git-reference
12810 (url "https://github.com/polymode/polymode")
12811 (commit (string-append "v" version))))
12812 (file-name (git-file-name name version))
12813 (sha256
12814 (base32
12815 "04v0gnzfsjb50bgly6kvpryx8cyzwjaq2llw4qv9ijw1l6ixmq3b"))))
12816 (build-system emacs-build-system)
12817 (home-page "https://github.com/polymode/polymode")
12818 (synopsis "Framework for multiple Emacs modes based on indirect buffers")
12819 (description
12820 "Polymode is an Emacs package that offers generic support for multiple
12821 major modes inside a single Emacs buffer. It is lightweight, object oriented
12822 and highly extensible. Creating a new polymode typically takes only a few
12823 lines of code. Polymode also provides extensible facilities for external
12824 literate programming tools for exporting, weaving and tangling.")
12825 (license license:gpl3+)))
12826
12827 (define-public emacs-polymode-ansible
12828 (let ((commit "b26094d029e25dc797b94254f797e7807a57e4c8"))
12829 (package
12830 (name "emacs-polymode-ansible")
12831 ;; No upstream version release yet.
12832 (version (git-version "0.1" "1" commit))
12833 (source
12834 (origin
12835 (method git-fetch)
12836 (uri (git-reference
12837 (url "https://gitlab.com/mavit/poly-ansible")
12838 (commit commit)))
12839 (file-name (git-file-name name version))
12840 (sha256
12841 (base32
12842 "055shddqibib3hx2ykwdz910nrqws40cd407mq946l2bf6v87gj6"))))
12843 (build-system emacs-build-system)
12844 (propagated-inputs
12845 `(("emacs-ansible-doc" ,emacs-ansible-doc)
12846 ("emacs-jinja2-mode" ,emacs-jinja2-mode)
12847 ("emacs-polymode" ,emacs-polymode)
12848 ("emacs-yaml-mode" ,emacs-yaml-mode)))
12849 (properties '((upstream-name . "poly-ansible")))
12850 (home-page "https://gitlab.com/mavit/poly-ansible/")
12851 (synopsis "Polymode for Ansible - Jinja2 in YAML")
12852 (description
12853 "Edit YAML files for Ansible containing embedded Jinja2 templating.")
12854 (license license:gpl3+))))
12855
12856 (define-public emacs-polymode-org
12857 (package
12858 (name "emacs-polymode-org")
12859 (version "0.2")
12860 (source
12861 (origin
12862 (method git-fetch)
12863 (uri (git-reference
12864 (url "https://github.com/polymode/poly-org")
12865 (commit (string-append "v" version))))
12866 (file-name (git-file-name name version))
12867 (sha256
12868 (base32
12869 "04x6apjad4kg30456z1j4ipp64yjgkcaim6hqr6bb0rmrianqhck"))))
12870 (build-system emacs-build-system)
12871 (propagated-inputs
12872 `(("emacs-polymode" ,emacs-polymode)))
12873 (properties '((upstream-name . "poly-org")))
12874 (home-page "https://github.com/polymode/poly-org")
12875 (synopsis "Polymode definitions for Org mode buffers")
12876 (description
12877 "Provides definitions for @code{emacs-polymode} to support
12878 @code{emacs-org} buffers. Edit source blocks in an Org mode buffer using the
12879 native modes of the blocks' languages while remaining inside the primary Org
12880 buffer.")
12881 (license license:gpl3+)))
12882
12883 (define-public eless
12884 (package
12885 (name "eless")
12886 (version "0.3")
12887 (source
12888 (origin
12889 (method git-fetch)
12890 (uri (git-reference
12891 (url "https://github.com/kaushalmodi/eless")
12892 (commit (string-append "v" version))))
12893 (file-name (git-file-name name version))
12894 (sha256
12895 (base32 "0jr7vhh4vw69llhi0fh9ljscljkszkj0acdxl04da5hvqv6pnqbb"))))
12896 (build-system trivial-build-system)
12897 (inputs
12898 `(("bash" ,bash)))
12899 (arguments
12900 `(#:modules ((guix build utils))
12901 #:builder
12902 (begin
12903 (use-modules (guix build utils))
12904 (copy-recursively (assoc-ref %build-inputs "source") "source")
12905 (chdir "source")
12906 (substitute* "eless" (("/usr/bin/env bash")
12907 (string-append (assoc-ref %build-inputs "bash")
12908 "/bin/bash")))
12909 (install-file "eless" (string-append %output "/bin"))
12910 (install-file "doc/eless.info" (string-append %output "/share/info"))
12911 #t)))
12912 (home-page "https://github.com/kaushalmodi/eless")
12913 (synopsis "Use Emacs as a paginator")
12914 (description "@code{eless} provides a combination of Bash script
12915 and a minimal Emacs view-mode.
12916
12917 Feautures:
12918
12919 @itemize
12920 @item Independent of a user’s Emacs config.
12921 @item Customizable via the @code{(locate-user-emacs-file \"elesscfg\")} config.
12922 @item Not require an Emacs server to be already running.
12923 @item Syntax highlighting.
12924 @item Org-mode file rendering.
12925 @item @code{man} page viewer.
12926 @item Info viewer.
12927 @item Dired, wdired, (batch edit symbolic links).
12928 @item Colored diffs, git diff, git log, ls with auto ANSI detection.
12929 @item Filter log files lines matching a regexp.
12930 @item Auto-revert log files similar to @code{tail -f}.
12931 @item Quickly change frame and font sizes.
12932 @end itemize\n")
12933 (license license:expat)))
12934
12935 (define-public emacs-evil-matchit
12936 (package
12937 (name "emacs-evil-matchit")
12938 (version "2.3.4")
12939 (source
12940 (origin
12941 (method git-fetch)
12942 (uri (git-reference
12943 (url "https://github.com/redguardtoo/evil-matchit")
12944 (commit version)))
12945 (file-name (git-file-name name version))
12946 (sha256
12947 (base32 "1nflkmx08n3ya5vaipy1xg19hnqcp6f7ddsx9xjh5gl6ix2iz0az"))))
12948 (build-system emacs-build-system)
12949 (propagated-inputs
12950 `(("emacs-evil" ,emacs-evil)))
12951 (home-page "https://github.com/redguardtoo/evil-matchit")
12952 (synopsis "Vim matchit ported into Emacs")
12953 (description
12954 "@code{evil-matchit} is a minor mode for jumping between matching tags in
12955 evil mode using @kbd{%}. It is a port of @code{matchit} for Vim.")
12956 (license license:gpl3+)))
12957
12958 (define-public emacs-evil-smartparens
12959 (package
12960 (name "emacs-evil-smartparens")
12961 (version "0.4.0")
12962 (source
12963 (origin
12964 (method git-fetch)
12965 (uri (git-reference
12966 (url "https://github.com/expez/evil-smartparens")
12967 (commit version)))
12968 (file-name (git-file-name name version))
12969 (sha256
12970 (base32 "1di4qz5fbrlwbg16c2j0m7y8zqfxw027qd7zqmc3rwk9znbhg7wl"))))
12971 (build-system emacs-build-system)
12972 (propagated-inputs
12973 `(("emacs-evil" ,emacs-evil)
12974 ("emacs-smartparens" ,emacs-smartparens)))
12975 (home-page "https://github.com/expez/evil-smartparens")
12976 (synopsis "Emacs Evil integration for Smartparens")
12977 (description "@code{emacs-evil-smartparens} is an Emacs minor mode which
12978 makes Evil play nice with Smartparens. Evil is an Emacs minor mode that
12979 emulates Vim features and provides Vim-like key bindings.")
12980 (license license:gpl3+)))
12981
12982 (define-public emacs-evil-quickscope
12983 (package
12984 (name "emacs-evil-quickscope")
12985 (version "0.1.4")
12986 (source
12987 (origin
12988 (method git-fetch)
12989 (uri (git-reference
12990 (url "https://github.com/blorbx/evil-quickscope")
12991 (commit (string-append "v" version))))
12992 (file-name (git-file-name name version))
12993 (sha256
12994 (base32 "1ja9ggj70wf0nmma4xnc1zdzg2crq9h1cv3cj7cgwjmllflgkfq7"))))
12995 (build-system emacs-build-system)
12996 (propagated-inputs
12997 `(("emacs-evil" ,emacs-evil)))
12998 (arguments
12999 `(#:tests? #t
13000 #:test-command '("emacs" "--batch"
13001 "-l" "evil-quickscope-tests.el"
13002 "-f" "ert-run-tests-batch-and-exit")))
13003 (home-page "https://github.com/blorbx/evil-quickscope")
13004 (synopsis "Target highlighting for emacs evil-mode f,F,t and T commands")
13005 (description "@code{emacs-evil-quickscope} highlights targets for Evil
13006 mode’s f,F,t,T keys, allowing for quick navigation within a line. It is a
13007 port of quick-scope for Vim. Evil is an Emacs minor mode that emulates Vim
13008 features and provides Vim-like key bindings.")
13009 (license license:gpl3+)))
13010
13011 (define-public emacs-bongo
13012 (package
13013 (name "emacs-bongo")
13014 (version "1.1")
13015 (source
13016 (origin
13017 (method git-fetch)
13018 (uri (git-reference
13019 (url "https://github.com/dbrock/bongo")
13020 (commit version)))
13021 (file-name (git-file-name name version))
13022 (sha256
13023 (base32 "1nszph9mn98flyhn1jq3y6mdh6jymjkvj5ng36ql016dj92apvhv"))))
13024 (build-system emacs-build-system)
13025 (home-page "https://github.com/dbrock/bongo")
13026 (synopsis "Media player for Emacs")
13027 (description
13028 "This package provides a flexible media player for Emacs. @code{Bongo}
13029 supports multiple backends such as @code{vlc}, @code{mpg123},
13030 @code{ogg123}, @code{speexdec}, @code{timidity}, @code{mikmod} and
13031 @code{afplay}.")
13032 (license license:gpl2+)))
13033
13034 (define-public emacs-groovy-modes
13035 (package
13036 (name "emacs-groovy-modes")
13037 (version "2.0")
13038 (source (origin
13039 (method git-fetch)
13040 (uri (git-reference
13041 (url "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes")
13042 (commit version)))
13043 (file-name (git-file-name name version))
13044 (sha256
13045 (base32
13046 "0c1d4cbnlny8gpcd20zr1wxx6ggf28jgh7sgd5r1skpsvjpbfqx2"))))
13047 (build-system emacs-build-system)
13048 (propagated-inputs
13049 `(("emacs-s" ,emacs-s)))
13050 (home-page "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes")
13051 (synopsis "Groovy related modes for Emacs")
13052 (description
13053 "This package provides @code{groovy-mode} for syntax highlighting in
13054 Groovy source files, REPL integration with run-groovy and Grails project
13055 navigation with the grails mode.")
13056 (license license:gpl3+)))
13057
13058 (define-public emacs-jenkinsfile-mode
13059 (let ((commit "00d259ff9b870d234540e00e1d7c83cccdb063b8")
13060 (revision "1"))
13061 (package
13062 (name "emacs-jenkinsfile-mode")
13063 (version (git-version "0.0.1" revision commit))
13064 (source (origin
13065 (method git-fetch)
13066 (uri (git-reference
13067 (url "https://github.com/john2x/jenkinsfile-mode")
13068 (commit commit)))
13069 (file-name (git-file-name name version))
13070 (sha256
13071 (base32
13072 "0srf6xdjnrd4v4ks9pal7i48wmkcl4q5ry7d0yzfx1c9pz2qg9zx"))))
13073 (propagated-inputs
13074 `(("emacs-groovy-modes" ,emacs-groovy-modes)))
13075 (build-system emacs-build-system)
13076 (home-page "https://github.com/john2x/jenkinsfile-mode/")
13077 (synopsis "Emacs major-mode for editing Jenkinsfile")
13078 (description "This package provides a @code{jenkinsfile-mode} derived
13079 from @code{groovy-mode} for editing Jenkins declarative pipeline files.")
13080 (license license:gpl3+))))
13081
13082 (define-public emacs-org-tree-slide
13083 (let ((commit "036a36eec1cf712d3db155572aed325daa372eb5")
13084 (revision "2"))
13085 (package
13086 (name "emacs-org-tree-slide")
13087 (version (git-version "2.8.4" revision commit))
13088 (source (origin
13089 (method git-fetch)
13090 (uri (git-reference
13091 (url "https://github.com/takaxp/org-tree-slide")
13092 (commit commit)))
13093 (sha256
13094 (base32
13095 "1r8ncx25xmxicgciyv5przp68y8qgy40fm10ba55awvql4xcm0yk"))
13096 (file-name (git-file-name name version))))
13097 (build-system emacs-build-system)
13098 (home-page "https://github.com/takaxp/org-tree-slide")
13099 (synopsis "Presentation tool for org-mode")
13100 (description
13101 "Org-tree-slide provides a slideshow mode to view org-mode files. Use
13102 @code{org-tree-slide-mode} to enter the slideshow mode, and then @kbd{C->} and
13103 @kbd{C-<} to jump to the next and previous slide.")
13104 (license license:gpl3+))))
13105
13106 (define-public emacs-scratch-el
13107 (let ((commit "2cdf2b841ce7a0987093f65b0cc431947549f897")
13108 (revision "1"))
13109 (package
13110 (name "emacs-scratch-el")
13111 (version (git-version "1.2" revision commit))
13112 (source (origin
13113 (method git-fetch)
13114 (uri (git-reference
13115 (url "https://github.com/ieure/scratch-el")
13116 (commit commit)))
13117 (file-name (git-file-name name version))
13118 (sha256
13119 (base32
13120 "0wscsndynjmnliajqaz28r1ww81j8wh84zwaaswx51abhwgl0idf"))))
13121 (build-system emacs-build-system)
13122 (native-inputs
13123 `(("texinfo" ,texinfo)))
13124 (arguments
13125 '(#:phases
13126 (modify-phases %standard-phases
13127 (add-after 'install 'install-doc
13128 (lambda* (#:key outputs #:allow-other-keys)
13129 (unless (invoke "makeinfo" "scratch.texi")
13130 (error "makeinfo failed"))
13131 (install-file "scratch.info"
13132 (string-append (assoc-ref outputs "out")
13133 "/share/info"))
13134 #t)))))
13135 (home-page "https://github.com/ieure/scratch-el/")
13136 (synopsis "Create scratch buffers with the same mode as current buffer")
13137 (description "Scratch is an extension to Emacs that enables one to create
13138 scratch buffers that are in the same mode as the current buffer. This is
13139 notably useful when working on code in some language; you may grab code into a
13140 scratch buffer, and, by virtue of this extension, do so using the Emacs
13141 formatting rules for that language.")
13142 (license license:bsd-2))))
13143
13144 (define-public emacs-kv
13145 (package
13146 (name "emacs-kv")
13147 (version "0.0.19")
13148 (source
13149 (origin
13150 (method git-fetch)
13151 (uri (git-reference
13152 (url "https://github.com/nicferrier/emacs-kv")
13153 (commit "721148475bce38a70e0b678ba8aa923652e8900e")))
13154 (file-name (git-file-name name version))
13155 (sha256
13156 (base32
13157 "0r0lz2s6gvy04fwnafai668jsf4546h4k6zd6isx5wpk0n33pj5m"))))
13158 (build-system emacs-build-system)
13159 (arguments
13160 `(#:tests? #t
13161 #:test-command '("emacs" "--batch" "-l" "kv-tests.el"
13162 "-f" "ert-run-tests-batch-and-exit")))
13163 (home-page "https://github.com/nicferrier/emacs-kv")
13164 (synopsis "Key/Value data structures library for Emacs Lisp")
13165 (description "@code{emacs-kv} is a collection of tools for dealing with
13166 key/value data structures such as plists, alists and hash-tables in Emacs
13167 Lisp.")
13168 (license license:gpl3+)))
13169
13170 (define-public emacs-esxml
13171 (package
13172 (name "emacs-esxml")
13173 (version "0.3.4")
13174 (source (origin
13175 (method git-fetch)
13176 (uri (git-reference
13177 (url "https://github.com/tali713/esxml")
13178 (commit version)))
13179 (file-name (git-file-name name version))
13180 (sha256
13181 (base32
13182 "00vv8a75wdklygdyr4km9mc2ismxak69c45jmcny41xl44rp9x8m"))))
13183 (build-system emacs-build-system)
13184 (arguments
13185 `(#:phases
13186 (modify-phases %standard-phases
13187 (add-after 'unpack 'fix-sources
13188 (lambda _
13189 ;; See: https://github.com/tali713/esxml/pull/28.
13190 (substitute* "css-lite.el"
13191 ((";;; main interface")
13192 (string-append ";;; main interface\n"
13193 "(require 'cl-lib)"))
13194 (("mapcan")
13195 "cl-mapcan")
13196 (("',\\(cl-mapcan #'process-css-rule rules\\)")
13197 "(cl-mapcan #'process-css-rule ',rules)"))
13198 (substitute* "esxml-form.el"
13199 ((",esxml-form-field-defn")
13200 "#'esxml-form-field-defn"))
13201 ;; See: https://github.com/tali713/esxml/issues/25
13202 (delete-file "esxpath.el")
13203 #t)))))
13204 (propagated-inputs
13205 `(("emacs-kv" ,emacs-kv)))
13206 (home-page "https://github.com/tali713/esxml/")
13207 (synopsis "SXML for EmacsLisp")
13208 (description "This is XML/XHTML done with S-Expressions in EmacsLisp.
13209 Simply, this is the easiest way to write HTML or XML in Lisp. This library
13210 uses the native form of XML representation as used by many libraries already
13211 included within Emacs. See @code{esxml-to-xml} for a concise description of
13212 the format.")
13213 (license license:gpl3+)))
13214
13215 (define-public emacs-nov-el
13216 (package
13217 (name "emacs-nov-el")
13218 (version "0.3.1")
13219 (source
13220 (origin
13221 (method git-fetch)
13222 (uri (git-reference
13223 (url "https://depp.brause.cc/nov.el.git")
13224 (commit version)))
13225 (file-name (git-file-name name version))
13226 (sha256
13227 (base32 "13r7lvyyyv62m57m4s4xjs4qz2ckhqk6ib514px7qzc7mdzcz9i9"))))
13228 (build-system emacs-build-system)
13229 (arguments
13230 `(#:phases
13231 (modify-phases %standard-phases
13232 (add-after 'unpack 'embed-path-to-unzip
13233 (lambda _
13234 (substitute* "nov.el"
13235 (("\\(executable-find \"unzip\"\\)")
13236 (string-append "\"" (which "unzip") "\"")))
13237 #t)))))
13238 (propagated-inputs
13239 `(("emacs-dash" ,emacs-dash)
13240 ("emacs-esxml" ,emacs-esxml)))
13241 (inputs
13242 `(("unzip" ,unzip)))
13243 (home-page "https://depp.brause.cc/nov.el/")
13244 (synopsis "Major mode for reading EPUBs in Emacs")
13245 (description "@code{nov.el} provides a major mode for reading EPUB
13246 documents.
13247
13248 Features:
13249
13250 @itemize
13251 @item Basic navigation (jump to TOC, previous/next chapter)
13252 @item Remembering and restoring the last read position
13253 @item Jump to next chapter when scrolling beyond end
13254 @item Renders EPUB2 (@code{.ncx}) and EPUB3 (@code{<nav>}) TOCs
13255 @item Hyperlinks to internal and external targets
13256 @item Supports textual and image documents
13257 @item View source of document files
13258 @item Metadata display
13259 @item Image rescaling
13260 @end itemize
13261 ")
13262 (license license:gpl3+)))
13263
13264 (define-public epipe
13265 (package
13266 (name "epipe")
13267 (version "0.1.0")
13268 (source
13269 (origin
13270 (method git-fetch)
13271 (uri (git-reference
13272 (url "https://github.com/cute-jumper/epipe")
13273 (commit version)))
13274 (file-name (git-file-name name version))
13275 (sha256
13276 (base32 "0lkisi1s7sn12nx8zh58qmsxwnk1rjwryj18wcbr148xqz3swg57"))))
13277 (build-system trivial-build-system)
13278 (inputs
13279 `(("bash" ,bash)
13280 ("perl" ,perl)))
13281 (arguments
13282 `(#:modules
13283 ((guix build utils))
13284 #:builder
13285 (begin
13286 (use-modules (guix build utils))
13287 ;; Extract source.
13288 (copy-recursively (assoc-ref %build-inputs "source") "source")
13289 (chdir "source")
13290 ;; Patch shebangs.
13291 (substitute* "epipe"
13292 (("/usr/bin/env bash")
13293 (string-append (assoc-ref %build-inputs "bash") "/bin/bash")))
13294 (patch-shebang "epipe.pl"
13295 (list (string-append (assoc-ref %build-inputs "perl")
13296 "/bin")))
13297 ;; Install.
13298 (for-each (lambda (file)
13299 (install-file file (string-append %output "/bin")))
13300 '("epipe" "epipe.pl"))
13301 #t)))
13302 (home-page "https://github.com/cute-jumper/epipe")
13303 (synopsis "Pipe to the @code{emacsclient}")
13304 (description "@code{epipe} provides an utility to use your editor in
13305 the pipeline, featuring the support for running @code{emacsclient}.")
13306 (license license:gpl3+)))
13307
13308 (define-public emacs-hcl-mode
13309 (package
13310 (name "emacs-hcl-mode")
13311 (version "0.03")
13312 (source
13313 (origin
13314 (method git-fetch)
13315 (uri (git-reference
13316 (url "https://github.com/syohex/emacs-hcl-mode")
13317 (commit version)))
13318 (file-name (git-file-name name version))
13319 (sha256
13320 (base32 "0jqrgq15jz6pvx38pnwkizzfiih0d3nxqphyrc92nqpcyimg8b6g"))))
13321 (build-system emacs-build-system)
13322 (home-page "https://github.com/syohex/emacs-hcl-mode")
13323 (synopsis "Major mode for the Hashicorp Configuration Language")
13324 (description
13325 "@code{emacs-hcl-mode} provides an Emacs major mode for working with
13326 @acronym{HCL, Hashicorp Configuration Language}. It provides syntax
13327 highlighting and indentation support.")
13328 (license license:gpl3+)))
13329
13330 (define-public emacs-terraform-mode
13331 (package
13332 (name "emacs-terraform-mode")
13333 (version "0.06")
13334 (source
13335 (origin
13336 (method git-fetch)
13337 (uri (git-reference
13338 (url "https://github.com/syohex/emacs-terraform-mode")
13339 (commit version)))
13340 (file-name (git-file-name name version))
13341 (sha256
13342 (base32 "05hn8kskx9lcgn7bzgam99c629zlryir2pickwrqndacjrqpdykx"))))
13343 (build-system emacs-build-system)
13344 (propagated-inputs
13345 `(("emacs-hcl-mode" ,emacs-hcl-mode)))
13346 (home-page "https://github.com/syohex/emacs-terraform-mode")
13347 (synopsis "Major mode for Terraform")
13348 (description
13349 "@code{emacs-terraform-mode} provides a major mode for working with
13350 @uref{https://www.terraform.io/, Terraform} configuration files. Most of the
13351 functionality is inherited from @code{hcl-mode}.")
13352 (license license:gpl3+)))
13353
13354 (define-public emacs-exec-path-from-shell
13355 (package
13356 (name "emacs-exec-path-from-shell")
13357 (version "1.12")
13358 (source
13359 (origin
13360 (method git-fetch)
13361 (uri (git-reference
13362 (url "https://github.com/purcell/exec-path-from-shell")
13363 (commit version)))
13364 (file-name (git-file-name name version))
13365 (sha256
13366 (base32
13367 "1ga8bpxngd3ph2hdiik92c612ki71qxw818i6rgx6f6a5r0sbf3p"))))
13368 (build-system emacs-build-system)
13369 (home-page "https://github.com/purcell/exec-path-from-shell")
13370 (synopsis "Get environment variables such as @var{PATH} from the shell")
13371 (description
13372 "This library allows the user to set Emacs @var{exec-path} and @var{PATH}
13373 from the shell @var{PATH}, so that @code{shell-command}, @code{compile} and
13374 the like work as expected on systems on which Emacs is not guaranteed to
13375 inherit a login shell's environment variables. It also allows other
13376 environment variables to be retrieved from the shell, so that Emacs will see
13377 the same values you get in a terminal.")
13378 (license license:gpl3+)))
13379
13380 (define-public emacs-frog-menu
13381 (package
13382 (name "emacs-frog-menu")
13383 (version "0.2.11")
13384 (source
13385 (origin
13386 (method url-fetch)
13387 (uri (string-append "https://elpa.gnu.org/packages/"
13388 "frog-menu-" version ".el"))
13389 (sha256
13390 (base32 "06iw11z61fd0g4w3562k3smcmzaq3nivvvc6gzm8y8k5pcrqzdff"))))
13391 (build-system emacs-build-system)
13392 (propagated-inputs
13393 `(("emacs-avy" ,emacs-avy)
13394 ("emacs-posframe" ,emacs-posframe)))
13395 (home-page "https://github.com/clemera/frog-menu")
13396 (synopsis "Quickly pick items from ad hoc menus")
13397 (description
13398 "This package provides a popup offering a preview of a list of candidates
13399 on which user-defined dispatch actions can act.")
13400 (license license:gpl3+)))
13401
13402 (define-public emacs-frog-jump-buffer
13403 (let ((commit "2d7b342785ae27d45f5d252272df6eb773c78e20")
13404 (revision "1"))
13405 (package
13406 (name "emacs-frog-jump-buffer")
13407 (version (git-version "0.1.4" revision commit))
13408 (source
13409 (origin
13410 (method git-fetch)
13411 (uri (git-reference
13412 (url "https://github.com/waymondo/frog-jump-buffer")
13413 (commit commit)))
13414 (file-name (git-file-name name version))
13415 (sha256
13416 (base32
13417 "1z00by8hiss1r2lwmzrl8pnz6jykia2849dqqm4l3z5rf6lwvc0f"))))
13418 (build-system emacs-build-system)
13419 (propagated-inputs
13420 `(("emacs-dash" ,emacs-dash)
13421 ("emacs-frog-menu" ,emacs-frog-menu)
13422 ("emacs-avy" ,emacs-avy)))
13423 (home-page "https://github.com/waymondo/frog-jump-buffer")
13424 (synopsis "Jump to any Emacs buffer with minimal keystrokes")
13425 (description
13426 "This package provides a preview window of buffers that can be switched
13427 to with quicklink-style selections.")
13428 (license license:gpl3+))))
13429
13430 (define-public emacs-deft
13431 (package
13432 (name "emacs-deft")
13433 (version "0.8")
13434 (source
13435 (origin
13436 (method git-fetch)
13437 (uri (git-reference
13438 (url "https://github.com/jrblevin/deft")
13439 (commit (string-append "v" version))))
13440 (file-name (git-file-name name version))
13441 (sha256
13442 (base32
13443 "0z7cilgiz6krvl5h2z72hkch43qxmypb0k6p5vxn5lx1p6v0mrf2"))))
13444 (build-system emacs-build-system)
13445 (home-page "https://jblevins.org/projects/deft/")
13446 (synopsis "Quickly browse, filter, and edit plain text notes")
13447 (description
13448 "Deft is an Emacs mode for quickly browsing, filtering, and editing
13449 directories of plain text notes, inspired by Notational Velocity.")
13450 (license license:bsd-3)))
13451
13452 (define-public emacs-anzu
13453 (package
13454 (name "emacs-anzu")
13455 (version "0.62")
13456 (source
13457 (origin
13458 (method git-fetch)
13459 (uri (git-reference
13460 (url "https://github.com/syohex/emacs-anzu")
13461 (commit version)))
13462 (file-name (git-file-name name version))
13463 (sha256
13464 (base32 "1lzvc0ihcbplir4hqfyxfqpsd78arz15gk92kmq4f8ggbkl37fan"))))
13465 (build-system emacs-build-system)
13466 (home-page "https://github.com/syohex/emacs-anzu")
13467 (synopsis "Show number of matches in mode-line while searching")
13468 (description
13469 "Anzu provides a minor mode which displays \"current match/total
13470 matches\" in the mode line in various search modes. This is an Emacs port of
13471 Anzu.zim.")
13472 (license license:gpl3+)))
13473
13474 (define-public emacs-ascii-art-to-unicode
13475 (package
13476 (name "emacs-ascii-art-to-unicode")
13477 (version "1.12")
13478 (source
13479 (origin
13480 (method url-fetch)
13481 (uri (string-append "https://elpa.gnu.org/packages/ascii-art-to-unicode-"
13482 version ".el"))
13483 (sha256
13484 (base32
13485 "1w9h2lyriafxj71r79774gh822cz8mry3gdfzyj6ym6v9mvqypna"))))
13486 (build-system emacs-build-system)
13487 (home-page "https://elpa.gnu.org/packages/ascii-art-to-unicode.html")
13488 (synopsis "ASCII to Unicode art converter for Emacs")
13489 (description "This Emacs package provides the commands @command{aa2u} and
13490 @command{aa2u-rectangle}. Both of these commands can be used to convert
13491 simple ASCII art line drawings to Unicode; the former works on the active
13492 region of the buffer, while the latter works on rectangular selections.")
13493 (license license:gpl3+)))
13494
13495 (define-public emacs-emmet-mode
13496 (let ((commit "1acb821e0142136344ccf40c1e5fb664d7db2e70")
13497 (revision "1"))
13498 (package
13499 (name "emacs-emmet-mode")
13500 (version (git-version "1.0.8" revision commit))
13501 (source (origin
13502 (method git-fetch)
13503 (uri (git-reference
13504 (url "https://github.com/smihica/emmet-mode")
13505 (commit commit)))
13506 (file-name (git-file-name name version))
13507 (sha256
13508 (base32
13509 "1p25h191bm0h5b3w5apg7wks51k7pb7h4dlww4jbl9ri4d33fzcl"))))
13510 (build-system emacs-build-system)
13511 (home-page "https://github.com/smihica/emmet-mode")
13512 (synopsis "Unofficial Emmet's support for Emacs")
13513 (description
13514 "Unfold CSS-selector-like expressions to markup. It is intended to be
13515 used with SGML-like languages: XML, HTML, XHTML, XSL, etc.")
13516 (license license:gpl3+))))
13517
13518 (define-public emacs-ergoemacs-mode
13519 (let ((commit "3ce23bba3cb50562693860f87f3528c471d603ba")
13520 (revision "1"))
13521 (package
13522 (name "emacs-ergoemacs-mode")
13523 (version (git-version "5.16.10.12" revision commit))
13524 (source
13525 (origin
13526 (method git-fetch)
13527 (uri (git-reference
13528 (url "https://github.com/ergoemacs/ergoemacs-mode")
13529 (commit commit)))
13530 (file-name (git-file-name name version))
13531 (sha256
13532 (base32
13533 "1s3b9bridl78hh1mxmdk9nqlmqhibbaxk0a1cixmsf23s06w8w6l"))))
13534 (build-system emacs-build-system)
13535 (propagated-inputs
13536 `(("emacs-undo-tree" ,emacs-undo-tree)))
13537 (home-page "https://ergoemacs.github.io/")
13538 (synopsis "Emacs mode based on common modern interface and ergonomics")
13539 (description
13540 "This package provides an efficient Emacs keybinding set based on
13541 statistics of command frequency, and supports common shortcuts for open,
13542 close, copy, cut, paste, undo, redo.")
13543 (license license:gpl3+))))
13544
13545 (define-public emacs-password-store
13546 (package
13547 (name "emacs-password-store")
13548 (version "1.7.3")
13549 (source (origin
13550 (method url-fetch)
13551 (uri
13552 (string-append "https://git.zx2c4.com/password-store/snapshot/"
13553 "password-store-" version ".tar.xz"))
13554 (sha256
13555 (base32
13556 "1x53k5dn3cdmvy8m4fqdld4hji5n676ksl0ql4armkmsds26av1b"))))
13557 (build-system emacs-build-system)
13558 (arguments
13559 `(#:phases
13560 (modify-phases %standard-phases
13561 (add-after 'unpack 'extract-el-file
13562 (lambda _
13563 (copy-file "contrib/emacs/password-store.el" "password-store.el")
13564 (delete-file-recursively "contrib")
13565 (delete-file-recursively "man")
13566 (delete-file-recursively "src")
13567 (delete-file-recursively "tests"))))))
13568 (propagated-inputs
13569 `(("emacs-f" ,emacs-f)
13570 ("emacs-s" ,emacs-s)
13571 ("emacs-with-editor" ,emacs-with-editor)
13572 ("password-store" ,password-store)))
13573 (home-page "https://git.zx2c4.com/password-store/tree/contrib/emacs")
13574 (synopsis "Password store (pass) support for Emacs")
13575 (description
13576 "This package provides functions for working with pass (\"the
13577 standard Unix password manager\").")
13578 (license license:gpl2+)))
13579
13580 (define-public emacs-auth-source-pass
13581 (let ((commit "847a1f54ed48856b4dfaaa184583ef2c84173edf")
13582 (revision "2"))
13583 (package
13584 (name "emacs-auth-source-pass")
13585 (version (git-version "5.0.0" revision commit))
13586 (source
13587 (origin
13588 (method git-fetch)
13589 (uri (git-reference
13590 (url "https://github.com/DamienCassou/auth-password-store")
13591 (commit commit)))
13592 (file-name (git-file-name name version))
13593 (sha256
13594 (base32 "0g48z5w6n3c54zqfpx65dfyl9jqbl15idvbb1hhw2pd9f9r8fykk"))))
13595 (build-system emacs-build-system)
13596 (arguments
13597 `(#:tests? #t
13598 #:test-command '("emacs" "--batch"
13599 "-L" "."
13600 "-l" "test/auth-source-pass-tests.el"
13601 "-f" "ert-run-tests-batch-and-exit")))
13602 (home-page "https://github.com/DamienCassou/auth-password-store")
13603 (synopsis "Integrate @code{auth-source} with @code{password-store}")
13604 (description "This package helps Emacs integrate with the Unix
13605 @code{password-store} application.")
13606 (license license:gpl3+))))
13607
13608 (define-public emacs-pass
13609 (package
13610 (name "emacs-pass")
13611 (version "2.0")
13612 (source
13613 (origin
13614 (method git-fetch)
13615 (uri (git-reference
13616 (url "https://github.com/NicolasPetton/pass")
13617 (commit version)))
13618 (file-name (git-file-name name version))
13619 (sha256
13620 (base32 "0jc8j421mlflspg24jvrqc2n3y5n3cpk3hjy560il8g36xi1049p"))))
13621 (build-system emacs-build-system)
13622 (propagated-inputs
13623 `(("emacs-password-store" ,emacs-password-store)
13624 ("emacs-f" ,emacs-f)))
13625 (home-page "https://github.com/NicolasPetton/pass")
13626 (synopsis "Major mode for @file{password-store.el}")
13627 (description "This is a major mode for managing password-store (pass)
13628 keychains. The keychain entries are displayed in a directory-like structure
13629 and can be consulted and modified.")
13630 (license license:gpl3+)))
13631
13632 (define-public emacs-psc-ide
13633 ;; There is no proper release. The base version is extracted from the
13634 ;; "Version" keyword in the main file.
13635 (let ((commit "7fc2b841be25f5bc5e1eb7d0634436181c38b3fe")
13636 (revision "1"))
13637 (package
13638 (name "emacs-psc-ide")
13639 (version (git-version "0.1.0" revision commit))
13640 (source
13641 (origin
13642 (method git-fetch)
13643 (uri
13644 (git-reference
13645 (url "https://github.com/purescript-emacs/psc-ide-emacs")
13646 (commit commit)))
13647 (file-name (git-file-name name version))
13648 (sha256
13649 (base32 "0r0fymyai30jimm34z1cmav4wgij8ci6s1d9y7qigygfbbfrdsmj"))))
13650 (build-system emacs-build-system)
13651 (propagated-inputs
13652 `(("emacs-company" ,emacs-company)
13653 ("emacs-dash" ,emacs-dash)
13654 ("emacs-flycheck" ,emacs-flycheck)
13655 ("emacs-let-alist" ,emacs-let-alist)
13656 ("emacs-s" ,emacs-s)))
13657 (home-page "https://github.com/purescript-emacs/psc-ide-emacs")
13658 (synopsis "Emacs integration for PureScript's psc-ide tool")
13659 (description
13660 "This package provices Emacs integration for @code{psc-ide}, an IDE
13661 protocol for PureScript programming language. It features:
13662
13663 @itemize
13664 @item Completions
13665 @item Type at point
13666 @item Go to definition
13667 @item Automatic imports
13668 @item Case split
13669 @item Build system integration, and
13670 @item Flycheck support
13671 @end itemize")
13672 (license license:gpl3+))))
13673
13674 (define-public emacs-evil-anzu
13675 (package
13676 (name "emacs-evil-anzu")
13677 (version "0.03")
13678 (source
13679 (origin
13680 (method git-fetch)
13681 (uri (git-reference
13682 (url "https://github.com/syohex/emacs-evil-anzu")
13683 (commit version)))
13684 (file-name (git-file-name name version))
13685 (sha256
13686 (base32 "0lw7fg4gqwj30r0l6k2ni36sxqkf65zf0d0z3rxnpwbxlf8dlkrr"))))
13687 (build-system emacs-build-system)
13688 (propagated-inputs
13689 `(("emacs-evil" ,emacs-evil)
13690 ("emacs-anzu" ,emacs-anzu)))
13691 (home-page "https://github.com/syohex/emacs-evil-anzu")
13692 (synopsis "Anzu for evil-mode")
13693 (description "@code{anzu} provides a minor mode that displays the current
13694 match and total match information in the mode-line in various search modes.")
13695 (license license:gpl3+)))
13696
13697 (define-public emacs-pg
13698 (let ((commit "4f6516ec3946d95dcef49abb6703cc89ecb5183d"))
13699 (package
13700 (name "emacs-pg")
13701 (version (git-version "0.1" "1" commit))
13702 (source (origin
13703 (method git-fetch)
13704 (uri (git-reference (url "https://github.com/cbbrowne/pg.el")
13705 (commit commit)))
13706 (file-name (git-file-name name version))
13707 (sha256
13708 (base32
13709 "1zh7v4nnpzvbi8yj1ynlqlawk5bmlxi6s80b5f2y7hkdqb5q26k0"))))
13710 (build-system emacs-build-system)
13711 (home-page "https://github.com/cbbrowne/pg.el")
13712 (synopsis "Emacs Lisp interface for PostgreSQL")
13713 (description
13714 "This package provides an Emacs Lisp interface for PostgreSQL.")
13715 (license license:gpl3+))))
13716
13717 (define-public emacs-cl-generic
13718 (package
13719 (name "emacs-cl-generic")
13720 (version "0.3")
13721 (source
13722 (origin
13723 (method url-fetch)
13724 (uri (string-append "https://elpa.gnu.org/packages/cl-generic-"
13725 version ".el"))
13726 (sha256
13727 (base32
13728 "0vb338bhjpsnrf60qgxny4z5rjrnifahnrv9axd4shay89d894zq"))))
13729 (build-system emacs-build-system)
13730 ;; Byte compilation of the autoload file fails.
13731 (arguments
13732 `(#:phases (modify-phases %standard-phases
13733 (delete 'enable-autoloads-compilation))))
13734 (home-page "https://elpa.gnu.org/packages/seq.html")
13735 (synopsis
13736 "Forward @code{cl-generic} compatibility for Emacs before version 25")
13737 (description "This package provides a subset of the features of the
13738 @code{cl-generic} package introduced in Emacs-25, for use on previous
13739 @code{emacsen}.")
13740 (license license:gpl3+)))
13741
13742 (define-public emacs-finalize
13743 (package
13744 (name "emacs-finalize")
13745 (version "2.0.0")
13746 (source
13747 (origin
13748 (method git-fetch)
13749 (uri (git-reference
13750 (url "https://github.com/skeeto/elisp-finalize")
13751 (commit version)))
13752 (file-name (git-file-name name version))
13753 (sha256
13754 (base32 "1gvlm4i62af5jscwz0jccc8ra0grprxpg2rlq91d5nn8dn5lpy79"))))
13755 (build-system emacs-build-system)
13756 (propagated-inputs
13757 `(("emacs-cl-generic" ,emacs-cl-generic)))
13758 (home-page "https://github.com/skeeto/elisp-finalize")
13759 (synopsis "Finalizers for Emacs Lisp")
13760 (description
13761 "This package runs a callback (a finalizer)
13762 after its registered lisp object has been garbage collected. This allows
13763 extra resources, such as buffers and processes, to be cleaned up after the
13764 object has been freed.")
13765 (license license:unlicense)))
13766
13767 (define-public emacs-emacsql
13768 (package
13769 (name "emacs-emacsql")
13770 (version "3.0.0")
13771 (source (origin
13772 (method git-fetch)
13773 (uri (git-reference
13774 (url "https://github.com/skeeto/emacsql")
13775 (commit (string-append version))))
13776 (file-name (git-file-name name version))
13777 (sha256
13778 (base32
13779 "1c84gxr1majqj4b59wgdy3lzm3ap66w9qsrnkx8hdbk9895ak81g"))))
13780 (build-system emacs-build-system)
13781 (arguments
13782 `(#:modules ((guix build emacs-build-system)
13783 (guix build utils)
13784 (guix build emacs-utils)
13785 (srfi srfi-26))
13786 #:phases
13787 (modify-phases %standard-phases
13788 (delete 'build) ;‘build-emacsql-sqlite’ compiles ‘*.el’ files.
13789 (add-before 'install 'patch-elisp-shell-shebangs
13790 (lambda _
13791 (substitute* (find-files "." "\\.el")
13792 (("/bin/sh") (which "sh")))
13793 #t))
13794 (add-after 'patch-elisp-shell-shebangs 'setenv-shell
13795 (lambda _
13796 (setenv "SHELL" "sh")))
13797 (add-after 'setenv-shell 'build-emacsql-sqlite
13798 (lambda _
13799 (invoke "make" "binary" "CC=gcc")))
13800 (add-after 'build-emacsql-sqlite 'install-emacsql-sqlite
13801 ;; This build phase installs emacs-emacsql binary.
13802 (lambda* (#:key outputs #:allow-other-keys)
13803 (install-file "sqlite/emacsql-sqlite"
13804 (string-append (assoc-ref outputs "out")
13805 "/bin"))
13806 #t))
13807 (add-after 'install-emacsql-sqlite 'patch-emacsql-sqlite.el
13808 ;; This build phase removes interactive prompts
13809 ;; and makes sure Emacs look for binaries in the right places.
13810 (lambda* (#:key outputs #:allow-other-keys)
13811 (let ((file "emacsql-sqlite.el"))
13812 (chmod file #o644)
13813 (emacs-substitute-sexps file
13814 ;; Make sure Emacs looks for ‘GCC’ binary in the right place.
13815 ("(executable-find" (which "gcc"))
13816 ;; Make sure Emacs looks for ‘emacsql-sqlite’ binary
13817 ;; in the right place.
13818 ("(defvar emacsql-sqlite-executable"
13819 (string-append (assoc-ref outputs "out")
13820 "/bin/emacsql-sqlite"))))))
13821 (replace 'install
13822 (lambda* (#:key outputs #:allow-other-keys)
13823 (let* ((out (assoc-ref outputs "out")))
13824 (install-file "sqlite/emacsql-sqlite"
13825 (string-append out "/bin"))
13826 (for-each (cut install-file <>
13827 (string-append out "/share/emacs/site-lisp"))
13828 (find-files "." "\\.elc*$")))
13829 #t)))))
13830 (inputs
13831 `(("emacs-minimal" ,emacs-minimal)
13832 ("mariadb" ,mariadb "lib")
13833 ("mariadb-dev" ,mariadb "dev")
13834 ("postgresql" ,postgresql)))
13835 (propagated-inputs
13836 `(("emacs-finalize" ,emacs-finalize)
13837 ("emacs-pg" ,emacs-pg)))
13838 (home-page "https://github.com/skeeto/emacsql")
13839 (synopsis "Emacs high-level SQL database front-end")
13840 (description "Any readable Lisp value can be stored as a value in EmacSQL,
13841 including numbers, strings, symbols, lists, vectors, and closures. EmacSQL
13842 has no concept of @code{TEXT} values; it's all just Lisp objects. The Lisp
13843 object @code{nil} corresponds 1:1 with @code{NULL} in the database.")
13844 (license license:gpl3+)))
13845
13846 (define-public emacs-emacsql-sqlite3
13847 (package
13848 (name "emacs-emacsql-sqlite3")
13849 (version "1.0.1")
13850 (source (origin
13851 (method git-fetch)
13852 (uri (git-reference
13853 (url "https://github.com/cireu/emacsql-sqlite3")
13854 (commit version)))
13855 (file-name (git-file-name name version))
13856 (sha256
13857 (base32
13858 "1yy9y27rckm776jnl2rh1fz3bh09690xwzq7102vlw7xkb9s7jhj"))))
13859 (build-system emacs-build-system)
13860 (native-inputs
13861 `(("ert-runner" ,emacs-ert-runner)))
13862 (inputs
13863 `(("sqlite" ,sqlite)))
13864 (propagated-inputs
13865 `(("emacs-emacsql" ,emacs-emacsql)))
13866 (arguments
13867 `(#:tests? #t
13868 #:test-command '("emacs" "-Q" "--batch" "-L" "."
13869 "--load" "emacsql-sqlite3-test.el"
13870 "-f" "ert-run-tests-batch-and-exit")
13871 #:phases
13872 (modify-phases %standard-phases
13873 (add-after 'unpack 'embed-path-to-sqlite3
13874 (lambda _
13875 (substitute* "emacsql-sqlite3.el"
13876 (("\\(executable-find \"sqlite3\"\\)")
13877 (string-append "\"" (which "sqlite3") "\"")))
13878 #t)))))
13879 (home-page "https://github.com/cireu/emacsql-sqlite3")
13880 (synopsis "EmacSQL backend for SQLite")
13881 (description "This is yet another EmacSQL backend for SQLite which uses
13882 official @command{sqlite3} executable to access SQL database.")
13883 (license license:gpl3+)))
13884
13885 (define-public emacs-closql
13886 ;; Take a commit newer than 1.0.0 release because of Emacs upgrade to 26.3.
13887 (let ((commit "70b98dbae53611d10a461d9b4a6f71086910dcef"))
13888 (package
13889 (name "emacs-closql")
13890 (version (git-version "1.0.0" "1" commit))
13891 (source
13892 (origin
13893 (method git-fetch)
13894 (uri (git-reference
13895 (url "https://github.com/emacscollective/closql")
13896 (commit commit)))
13897 (file-name (git-file-name name version))
13898 (sha256
13899 (base32
13900 "1wvhrihg663f61yzc7f0vha2abjdnlwbk0gjcwakdfk1bhwf5ikh"))))
13901 (build-system emacs-build-system)
13902 (propagated-inputs
13903 `(("emacs-emacsql" ,emacs-emacsql)))
13904 (home-page "https://github.com/emacscollective/closql")
13905 (synopsis "Store EIEIO objects using EmacSQL")
13906 (description
13907 "This package stores uniform EIEIO objects in an EmacSQL
13908 database. SQLite is used as backend. This library imposes some restrictions
13909 on what kind of objects can be stored; it isn't intended to store arbitrary
13910 objects. All objects have to share a common superclass and subclasses cannot
13911 add any additional instance slots.")
13912 (license license:gpl3))))
13913
13914 (define-public emacs-epkg
13915 (package
13916 (name "emacs-epkg")
13917 (version "3.2.2")
13918 (source
13919 (origin
13920 (method git-fetch)
13921 (uri (git-reference
13922 (url "https://github.com/emacscollective/epkg")
13923 (commit (string-append "v" version))))
13924 (file-name (git-file-name name version))
13925 (sha256
13926 (base32
13927 "1pxz611qb3m33r6343h0xhwqvvhjl131zyc2klplzgb23rkm8lk0"))))
13928 (build-system emacs-build-system)
13929 (propagated-inputs
13930 `(("emacs-closql" ,emacs-closql)
13931 ("emacs-dash" ,emacs-dash)))
13932 (home-page "https://emacsmirror.net")
13933 (synopsis "Browse the Emacsmirror package database")
13934 (description "This package provides access to a local copy of the
13935 Emacsmirror package database. It provides low-level functions for querying
13936 the database and a @file{package.el} user interface for browsing the database.
13937 Epkg itself is not a package manager.
13938
13939 Getting a local copy:
13940
13941 @example
13942 git clone https://github.com/emacsmirror/epkgs.git ~/.emacs.d/epkgs
13943 cd ~/.emacs.d/epkgs
13944 git submodule init
13945 git config --global url.https://github.com/.insteadOf git@@github.com:
13946 git submodule update
13947 @end example
13948
13949 Some submodule may be missing. In this case Git will prompt for a GitHub user
13950 name and password. To skip it press a @key{Return} key.
13951
13952 You could get a Epkg package list by invoking @code{epkg-list-packages} in
13953 Emacs.")
13954 (license license:gpl3+)))
13955
13956 (define-public emacs-elisp-slime-nav
13957 (package
13958 (name "emacs-elisp-slime-nav")
13959 (version "0.9")
13960 (source
13961 (origin
13962 (method git-fetch)
13963 (uri (git-reference
13964 (url "https://github.com/purcell/elisp-slime-nav")
13965 (commit version)))
13966 (file-name (git-file-name name version))
13967 (sha256
13968 (base32 "11vyy0bvzbs1h1kggikrvhd658j7c730w0pdp6qkm60rigvfi1ih"))))
13969 (build-system emacs-build-system)
13970 (home-page "https://github.com/purcell/elisp-slime-nav")
13971 (synopsis "Make @code{M-.} and @code{M-,} work for elisp like they do in SLIME")
13972 (description
13973 "This package provides SLIME's convenient @code{M-.}and @code{M-,} navigation
13974 in @code{emacs-lisp-mode}, together with an elisp equivalent of
13975 @code{slime-describe-symbol}.")
13976 (license license:gpl3+)))
13977
13978 (define-public emacs-dedicated
13979 (package
13980 (name "emacs-dedicated")
13981 (version "1.0.0")
13982 (source
13983 (origin
13984 (method git-fetch)
13985 (uri (git-reference
13986 (url "https://github.com/emacsorphanage/dedicated")
13987 (commit version)))
13988 (file-name (git-file-name name version))
13989 (sha256
13990 (base32 "0pba9s0h37sxyqh733vi6k5raa4cs7aradipf3826inw36jcw414"))))
13991 (build-system emacs-build-system)
13992 (home-page "https://github.com/emacsorphanage/dedicated")
13993 (synopsis "Emacs minor mode for toggling a windows's \"dedicated\" flag")
13994 (description
13995 "This simple Emacs minor mode allows you to toggle a window's
13996 \"dedicated\" flag. When a window is \"dedicated\", Emacs will not select
13997 files into that window. This can be quite handy since many commands will use
13998 another window to show results (compilation mode, starting info, and so on).
13999 A dedicated window won't be used for such a purpose. For details, please read
14000 the source file.")
14001 (license license:gpl2+)))
14002
14003 (define-public emacs-nnreddit
14004 (let ((commit "9843f99d01fd8f1eea2fc685965a7c7f4eeb187a")
14005 (revision "1"))
14006 (package
14007 (name "emacs-nnreddit")
14008 (version (string-append "0.0.1-" revision "."
14009 (string-take commit 7)))
14010 (source (origin
14011 (method git-fetch)
14012 (uri (git-reference
14013 (url "https://github.com/paul-issartel/nnreddit")
14014 (commit commit)))
14015 (file-name (git-file-name name version))
14016 (sha256
14017 (base32
14018 "0j4h3bnga640250jdq8bwyja49r41ssrsjd6lba4gzzllqk02nbn"))))
14019 (build-system emacs-build-system)
14020 (home-page "https://github.com/paul-issartel/nnreddit")
14021 (synopsis "Reddit backend for the Gnus newsreader")
14022 (description "@url{https://www.reddit.com} backend for the Gnus
14023 newsreader.")
14024 (license license:gpl3+))))
14025
14026 (define-public emacs-makey
14027 (package
14028 (name "emacs-makey")
14029 (version "0.3")
14030 (source
14031 (origin
14032 (method git-fetch)
14033 (uri (git-reference
14034 (url "https://github.com/mickeynp/makey")
14035 (commit version)))
14036 (file-name (git-file-name name version))
14037 (sha256
14038 (base32 "1rr7vpm3xxzcaam3m8xni3ajy8ycyljix07n2jzczayri9sd8csy"))))
14039 (build-system emacs-build-system)
14040 (home-page "https://github.com/mickeynp/makey")
14041 (synopsis "Emacs interactive command-line mode")
14042 (description
14043 "This package provides an Emacs interactive command-line mode.")
14044 (license license:gpl3+)))
14045
14046 (define-public emacs-outorg
14047 (let ((commit "78b0695121fb974bc4e971eb4ef7f8afd6d89d64"))
14048 (package
14049 (name "emacs-outorg")
14050 (version (git-version "2.0" "1" commit))
14051 (source
14052 (origin
14053 (method git-fetch)
14054 (uri (git-reference
14055 (url "https://github.com/alphapapa/outorg")
14056 (commit commit)))
14057 (file-name (git-file-name name version))
14058 (sha256
14059 (base32
14060 "03aclh4m3f7rb821gr9pwvnqkkl91px3qxdcarpf3ypa1x4fxvlj"))))
14061 (build-system emacs-build-system)
14062 (home-page "https://github.com/alphapapa/outorg")
14063 (synopsis "Org-style comment editing")
14064 (description "Outorg is for editing comment-sections of source-code
14065 files in temporary Org-mode buffers. It turns conventional
14066 literate-programming upside-down in that the default mode is the
14067 programming-mode, and special action has to be taken to switch to the
14068 text-mode (i.e. Org-mode).")
14069 (license license:gpl3+))))
14070
14071 (define-public emacs-outshine
14072 (package
14073 (name "emacs-outshine")
14074 (version "3.0.1")
14075 (source (origin
14076 (method git-fetch)
14077 (uri (git-reference
14078 (url "https://github.com/alphapapa/outshine")
14079 (commit (string-append "v" version))))
14080 (file-name (git-file-name name version))
14081 (sha256
14082 (base32
14083 "1lh9f5dgdbwfyzxk6nsg1xwdjs8gc6p9mbyyhp6f8fnk3h0y88cg"))))
14084 (build-system emacs-build-system)
14085 (propagated-inputs
14086 `(("emacs-outorg" ,emacs-outorg)))
14087 (home-page "https://github.com/alphapapa/outshine")
14088 (synopsis "Emacs outline with outshine")
14089 (description "Outshine attempts to bring the look and feel of
14090 @code{org-mode} to an Emacs outside of the Org major-mode. It is an extension
14091 of @code{outline-minor-mode} (@code{org-mode} itself derives from
14092 outline-mode), so there is no such thing like an outshine mode, only
14093 @code{outline-minor-mode} with outshine extensions loaded.")
14094 (license license:gpl3+)))
14095
14096 (define-public emacs-frecency
14097 (let ((commit "31ef9ff4af1a4fed3dcc24ea74037feea8795c87")
14098 (version "0.1-pre")
14099 (revision "1"))
14100 (package
14101 (name "emacs-frecency")
14102 (version (git-version version revision commit))
14103 (source (origin
14104 (method git-fetch)
14105 (uri (git-reference
14106 (url "https://github.com/alphapapa/frecency.el")
14107 (commit commit)))
14108 (sha256
14109 (base32
14110 "051aihjdg3x22svaxhwylpi8i6s2x9j8syvsj1jgilgjjdy15l6j"))
14111 (file-name (git-file-name name version))))
14112 (build-system emacs-build-system)
14113 (propagated-inputs
14114 `(("emacs-a" ,emacs-a)
14115 ("emacs-dash" ,emacs-dash)))
14116 (home-page "https://github.com/alphapapa/frecency.el")
14117 (synopsis "Sort items by frequency and recency of access")
14118 (description "This package provides a way of sorting items via
14119 a heuristic based on frequency and recency.")
14120 (license license:gpl3+))))
14121
14122 (define-public emacs-org-recent-headings
14123 (package
14124 (name "emacs-org-recent-headings")
14125 (version "0.1")
14126 (source (origin
14127 (method git-fetch)
14128 (uri (git-reference
14129 (url "https://github.com/alphapapa/org-recent-headings")
14130 (commit version)))
14131 (file-name (git-file-name name version))
14132 (sha256
14133 (base32
14134 "0gsrzmg3mssh9s28yjm9m866fnhm1pcligssz1q6brga6dm6f2yy"))))
14135 (build-system emacs-build-system)
14136 (propagated-inputs
14137 `(("emacs-org" ,emacs-org)
14138 ("emacs-dash" ,emacs-dash)
14139 ("emacs-frecency" ,emacs-frecency)))
14140 (home-page "https://github.com/alphapapa/org-recent-headings")
14141 (synopsis "Navigate to recently used Org headings and lists")
14142 (description "This package maintains a list of recently used Org headings,
14143 as well as functions for navigating between these headings.")
14144 (license license:gpl3+)))
14145
14146 (define-public emacs-org-super-agenda
14147 ;; emacs-org-sidebar depends on a newer commit than the latest release version.
14148 (let ((commit "a87ca11fbbe72ab6c1c4c3b55ae9e1e93ebfb8ba")
14149 (revision "3"))
14150 (package
14151 (name "emacs-org-super-agenda")
14152 (version (git-version "1.1.1" revision commit))
14153 (source (origin
14154 (method git-fetch)
14155 (uri (git-reference
14156 (url "https://github.com/alphapapa/org-super-agenda")
14157 (commit commit)))
14158 (file-name (git-file-name name version))
14159 (sha256
14160 (base32
14161 "08b7babdaqblb6jff57an4kbcxk6fkhf668620fipfjgbsnqv3ff"))))
14162 (build-system emacs-build-system)
14163 (propagated-inputs
14164 `(("emacs-org" ,emacs-org)
14165 ("emacs-dash" ,emacs-dash)
14166 ("emacs-ts" ,emacs-ts)
14167 ("emacs-ht" ,emacs-ht)
14168 ("emacs-s" ,emacs-s)))
14169 (home-page "https://github.com/alphapapa/org-super-agenda")
14170 (synopsis "Supercharged Org agenda")
14171 (description "This package allows items in the Org agenda to be grouped
14172 into sections while preserving the structure imposed by any timestamps.")
14173 (license license:gpl3+))))
14174
14175 (define-public emacs-org-make-toc
14176 (package
14177 (name "emacs-org-make-toc")
14178 (version "0.5")
14179 (source (origin
14180 (method git-fetch)
14181 (uri (git-reference
14182 (url "https://github.com/alphapapa/org-make-toc")
14183 (commit version)))
14184 (file-name (git-file-name name version))
14185 (sha256
14186 (base32
14187 "180ji6nnj6qj0rs1rdp1zlcrfsqf7ikb44ym8icbp5d6al2s4hnr"))))
14188 (build-system emacs-build-system)
14189 (propagated-inputs
14190 `(("emacs-org" ,emacs-org)
14191 ("emacs-dash" ,emacs-dash)
14192 ("emacs-s" ,emacs-s)))
14193 (home-page "https://github.com/alphapapa/org-make-toc")
14194 (synopsis "Maintain a table of contents for an Org file")
14195 (description "This package facilitates the creation and maintenance of
14196 tables of contents.")
14197 (license license:gpl3+)))
14198
14199 (define-public emacs-ts
14200 (package
14201 (name "emacs-ts")
14202 (version "0.2")
14203 (source
14204 (origin
14205 (method git-fetch)
14206 (uri (git-reference
14207 (url "https://github.com/alphapapa/ts.el")
14208 (commit version)))
14209 (sha256
14210 (base32 "0hmzc1ppnkkr0lfq5fhzqr6icv6iqz824a6bnns7zr466hhqp3qb"))
14211 (file-name (git-file-name name version))))
14212 (build-system emacs-build-system)
14213 (propagated-inputs
14214 `(("emacs-s" ,emacs-s)
14215 ("emacs-dash" ,emacs-dash)))
14216 (arguments
14217 ;; XXX: Three tests are failing because of a timezone-related issue
14218 ;; with how they're written. On my machine, all the failing test
14219 ;; results are 18000 seconds (5 hours) off.
14220
14221 ;; The ts-parse-org function accepts a string without any timezone
14222 ;; info, not assumed to be in Unix time, and converts it to a so-called
14223 ;; ts struct. The ts-unix function (accessor) accepts a ts struct,
14224 ;; then seems to assume the struct's corresponding time is in terms of
14225 ;; the user's current time zone, before returning a Unix time in
14226 ;; seconds.
14227
14228 ;; The failing tests all have similar problems, but nothing else about
14229 ;; the library seems particularly off.
14230
14231 `(#:tests? #t
14232 #:test-command '("emacs" "--batch"
14233 "-l" "test/test.el"
14234 "-f" "ert-run-tests-batch-and-exit")
14235 #:phases
14236 (modify-phases %standard-phases
14237 (add-before 'check 'make-tests-writable
14238 (lambda _
14239 (make-file-writable "test/test.el")
14240 #t))
14241 (add-before 'check 'delete-failing-tests
14242 (lambda _
14243 (emacs-batch-edit-file "test/test.el"
14244 `(progn (progn
14245 (goto-char (point-min))
14246 (dolist (test-regexp
14247 '("ert-deftest ts-format"
14248 "ert-deftest ts-parse-org\\_>"
14249 "ert-deftest ts-parse-org-element"
14250 "ert-deftest ts-update"))
14251 (re-search-forward test-regexp)
14252 (beginning-of-line)
14253 (kill-sexp)))
14254 (basic-save-buffer)))
14255 #t)))))
14256 (home-page "https://github.com/alphapapa/ts.el")
14257 (synopsis "Timestamp and date/time library")
14258 (description "This package facilitates manipulating dates, times, and
14259 timestamps by providing a @code{ts} struct.")
14260 (license license:gpl3+)))
14261
14262 (define-public emacs-peg
14263 (package
14264 (name "emacs-peg")
14265 (version "0.6")
14266 (source (origin
14267 (method git-fetch)
14268 (uri (git-reference
14269 (url "https://github.com/emacsmirror/peg")
14270 (commit version)))
14271 (sha256
14272 (base32
14273 "0kjz7ch4bn0m4v9zgqyqcrsasnqc5c5drv2hp22j7rnbb7ny0q3n"))
14274 (file-name (git-file-name name version))))
14275 (build-system emacs-build-system)
14276 (home-page "https://github.com/emacsmirror/peg/")
14277 (synopsis "Parsing Expression Grammars in Elisp")
14278 (description "This package provides a macro that parses the current buffer
14279 according to a parsing expression grammar.")
14280 (license license:gpl3+)))
14281
14282 (define-public emacs-org-ql
14283 (package
14284 (name "emacs-org-ql")
14285 (version "0.3.2")
14286 (source (origin
14287 (method git-fetch)
14288 (uri (git-reference
14289 (url "https://github.com/alphapapa/org-ql")
14290 (commit version)))
14291 (sha256
14292 (base32
14293 "11bhpi2l28vp8mm9nx18jljbqdnh9vxpv9kp1dn9lpsgivcdbc34"))
14294 (file-name (git-file-name name version))))
14295 (build-system emacs-build-system)
14296 (propagated-inputs
14297 `(("emacs-s" ,emacs-s)
14298 ("emacs-f" ,emacs-f)
14299 ("emacs-ov" ,emacs-ov)
14300 ("emacs-peg" ,emacs-peg)
14301 ("emacs-org-super-agenda" ,emacs-org-super-agenda)
14302 ("emacs-ts" ,emacs-ts)
14303 ("emacs-org" ,emacs-org)
14304 ("emacs-helm" ,emacs-helm)
14305 ("emacs-helm-org" ,emacs-helm-org)
14306 ("emacs-dash" ,emacs-dash)))
14307 (native-inputs
14308 `(("emacs-buttercup" ,emacs-buttercup)))
14309 (arguments
14310 `(#:phases
14311 (modify-phases %standard-phases
14312 (add-after 'unpack 'require-helm
14313 (lambda _
14314 (substitute* "helm-org-ql.el"
14315 (("^;;;; Requirements")
14316 ";;;; Requirements\n(require 'helm)\n(require 'helm-org)"))
14317 #t)))
14318 #:tests? #t
14319 #:test-command '("buttercup" "-L" ".")))
14320 (home-page "https://github.com/alphapapa/org-ql/")
14321 (synopsis "Query language for Org buffers")
14322 (description "This package provides a Lispy query language for Org
14323 files, allowing for actions to be performed based on search criteria.")
14324 (license license:gpl3+)))
14325
14326 (define-public emacs-org-auto-expand
14327 (let ((commit "4938d5f6460e2f8f051ba9ac000b291bfa43ef62")
14328 (revision "1"))
14329 (package
14330 (name "emacs-org-auto-expand")
14331 (version (git-version "0.1" revision commit))
14332 (source (origin
14333 (method git-fetch)
14334 (uri (git-reference
14335 (url "https://github.com/alphapapa/org-auto-expand")
14336 (commit commit)))
14337 (file-name (git-file-name name version))
14338 (sha256
14339 (base32
14340 "1my0c6xmkh37lwi6l472lz9d86lf20h6xcllzlxm1lxa24rhva6v"))))
14341 (build-system emacs-build-system)
14342 (propagated-inputs
14343 `(("emacs-org" ,emacs-org)
14344 ("emacs-dash" ,emacs-dash)))
14345 (home-page "https://github.com/alphapapa/org-auto-expand")
14346 (synopsis "Automatically expand certain Org headings")
14347 (description "This package allows a customizable set of headings in Org
14348 files to be expanded upon opening them.")
14349 (license license:gpl3+))))
14350
14351 (define-public emacs-parsebib
14352 (package
14353 (name "emacs-parsebib")
14354 (version "2.3.3")
14355 (source
14356 (origin
14357 (method git-fetch)
14358 (uri (git-reference
14359 (url "https://github.com/joostkremers/parsebib")
14360 (commit version)))
14361 (file-name (git-file-name name version))
14362 (sha256
14363 (base32 "0mpgyy9qfb5x4fvlmb274hgayjbwf0bgk65dxyx31zikjwpcd56p"))))
14364 (build-system emacs-build-system)
14365 (home-page "https://github.com/joostkremers/parsebib")
14366 (synopsis "Library for parsing @file{.bib} files")
14367 (description
14368 "This package provides an Emacs library for parsing @file{.bib} files.")
14369 (license license:gpl3+)))
14370
14371 (define-public emacs-ebib
14372 (package
14373 (name "emacs-ebib")
14374 (version "2.22.1")
14375 (source
14376 (origin
14377 (method git-fetch)
14378 (uri (git-reference
14379 (url "https://github.com/joostkremers/ebib")
14380 (commit version)))
14381 (file-name (git-file-name name version))
14382 (sha256
14383 (base32 "0spiz5r2y4pdpyc4d3f9w228giq0j9rm8f5h5akzn5rwiq9pfkwz"))))
14384 (build-system emacs-build-system)
14385 (propagated-inputs
14386 `(("emacs-parsebib" ,emacs-parsebib)))
14387 (home-page "https://joostkremers.github.io/ebib/")
14388 (synopsis "BibTeX database manager for Emacs")
14389 (description
14390 "Ebib is a BibTeX database manager that runs in GNU Emacs.
14391 With Ebib you can create, sort and manage your @file{.bib} database files, all
14392 within Emacs. It supports searching, multi-line field values and
14393 @samp{@@String} and @samp{@@Preamble} definitions. Ebib integrates
14394 with (La)TeX mode, Org mode and other Emacs editing modes.")
14395 ;; The Ebib source files are released under a BSD license with
14396 ;; the exception of org-ebib.el, which is released under the GNU
14397 ;; GPL.
14398 (license (list license:bsd-3
14399 license:gpl3+))))
14400
14401 (define-public emacs-biblio
14402 (package
14403 (name "emacs-biblio")
14404 (version "0.2")
14405 (source
14406 (origin
14407 (method git-fetch)
14408 (uri (git-reference
14409 (url "https://github.com/cpitclaudel/biblio.el")
14410 (commit version)))
14411 (file-name (git-file-name name version))
14412 (sha256
14413 (base32 "1gxjind6r235az59dr8liv03d8994mqb8a7m28j3c12q7p70aziz"))))
14414 (build-system emacs-build-system)
14415 (propagated-inputs
14416 `(("emacs-dash" ,emacs-dash)
14417 ("emacs-let-alist" ,emacs-let-alist)))
14418 (home-page "https://github.com/cpitclaudel/biblio.el")
14419 (synopsis "Browse and import bibliographic references")
14420 (description "This package provides an extensible Emacs package for
14421 browsing and fetching references.
14422
14423 @file{biblio.el} makes it easy to browse and gather bibliographic references
14424 and publications from various sources, by keywords or by DOI. References are
14425 automatically fetched from well-curated sources, and formatted as BibTeX.")
14426 (license license:gpl3+)))
14427
14428 (define-public emacs-helm-bibtex
14429 (let ((commit "d4471232be26793fbf56c0ac3690b5f537c378b9")
14430 (revision "2"))
14431 (package
14432 (name "emacs-helm-bibtex")
14433 (version (string-append "2.0.0" "-" revision "."
14434 (string-take commit 7)))
14435 (source
14436 (origin
14437 (method git-fetch)
14438 (uri (git-reference
14439 (url "https://github.com/tmalsburg/helm-bibtex")
14440 (commit commit)))
14441 (file-name (git-file-name name version))
14442 (sha256
14443 (base32
14444 "1bkzhic6qckb267025il1r3xcpz99kisphxiafni1pxvf9jafr0j"))))
14445 (build-system emacs-build-system)
14446 (propagated-inputs
14447 `(("emacs-helm" ,emacs-helm)
14448 ("emacs-parsebib" ,emacs-parsebib)
14449 ("emacs-s" ,emacs-s)
14450 ("emacs-dash" ,emacs-dash)
14451 ("emacs-f" ,emacs-f)
14452 ("emacs-biblio" ,emacs-biblio)
14453 ("emacs-ivy" ,emacs-ivy)))
14454 (home-page "https://github.com/tmalsburg/helm-bibtex")
14455 (synopsis "Bibliography manager based on Helm")
14456 (description "This package provides bibliography manager for Emacs,
14457 based on Helm and the bibtex-completion backend.
14458
14459 Key features:
14460
14461 @itemize
14462 @item Quick access to your bibliography from within Emacs
14463 @item Powerful search capabilities
14464 @item Provides instant search results as you type
14465 @item Tightly integrated with LaTeX authoring, emails, Org mode, etc.
14466 @item Open the PDFs, URLs, or DOIs associated with an entry
14467 @item Insert LaTeX cite commands, Ebib links, or Pandoc citations,
14468 BibTeX entries, or plain text references at point, attach PDFs to emails
14469 @item Support for note taking
14470 @item Quick access to online bibliographic databases such as Pubmed,
14471 arXiv, Google Scholar, Library of Congress, etc.
14472 @item Imports BibTeX entries from CrossRef and other sources.
14473 @end itemize\n")
14474 (license license:gpl3+))))
14475
14476 (define-public emacs-ewmctrl
14477 (let ((commit "3d0217c4d6cdb5c308b6cb4293574f470d4faacf"))
14478 (package
14479 (name "emacs-ewmctrl")
14480 (version (git-version "0.0.1" "1" commit))
14481 (source
14482 (origin
14483 (method git-fetch)
14484 (uri (git-reference
14485 (url "https://github.com/flexibeast/ewmctrl")
14486 (commit commit)))
14487 (file-name (git-file-name name version))
14488 (sha256
14489 (base32
14490 "0ilwvx0qryv3v6xf0gxqwnfm6pf96gxap8h9g3f6z6lk9ff4n1wi"))))
14491 (build-system emacs-build-system)
14492 (arguments
14493 '(#:phases
14494 (modify-phases %standard-phases
14495 (add-after 'unpack 'patch-ewmctrl
14496 ;; This build phase makes sure ‘ewmctrl’ looks
14497 ;; for ‘wmctrl’ in the right place.
14498 (lambda _
14499 (let ((file "ewmctrl.el"))
14500 (chmod file #o644)
14501 (emacs-substitute-sexps file
14502 ("(defcustom ewmctrl-wmctrl-path" (which "wmctrl")))))))))
14503 (inputs
14504 `(("wmctrl" ,wmctrl)))
14505 (home-page "https://github.com/flexibeast/ewmctrl")
14506 (synopsis "Emacs interface to @code{wmctrl}")
14507 (description "@code{ewmctrl} provides an Emacs interface to
14508 @code{wmctrl} command-line window-management program.")
14509 (license license:gpl3+))))
14510
14511 (define-public emacs-erc-image
14512 (let ((commit "82fb3871f02e24b1e880770b9a3d187aab43d0f0")
14513 (revision "3"))
14514 (package
14515 (name "emacs-erc-image")
14516 (version (git-version "0" revision commit))
14517 (source
14518 (origin
14519 (method git-fetch)
14520 (uri (git-reference
14521 (url "https://github.com/kidd/erc-image.el")
14522 (commit commit)))
14523 (file-name (git-file-name name version))
14524 (sha256
14525 (base32
14526 "1q8mkf612fb4fjp8h4kbr107wn083iqfdgv8f80pcmil8y33dw9i"))))
14527 (build-system emacs-build-system)
14528 (arguments
14529 `(#:phases (modify-phases %standard-phases
14530 ;; The package autoloader fails to provide
14531 ;; the image module when handled by Guix.
14532 ;; Disable this phase, and let the package
14533 ;; handle the `eval-after-load' procedure.
14534 (delete 'make-autoloads))))
14535 (home-page "https://github.com/kidd/erc-image.el")
14536 (synopsis "Show inlined images (png/jpg/gif/svg) in ERC buffers")
14537 (description "This plugin subscribes to hooks @code{erc-insert-modify-hook}
14538 and @code{erc-send-modify-hook} to download and show images.")
14539 (license license:gpl3+))))
14540
14541 (define-public emacs-helm-gtags
14542 (package
14543 (name "emacs-helm-gtags")
14544 (version "1.5.7")
14545 (source
14546 (origin
14547 (method git-fetch)
14548 (uri (git-reference
14549 (url "https://github.com/syohex/emacs-helm-gtags")
14550 (commit version)))
14551 (file-name (git-file-name name version))
14552 (sha256
14553 (base32 "1kc1jzk10nfd2v20g8dwnb6a944afrwdwnkzl06w4ba8k4yim7gi"))))
14554 (build-system emacs-build-system)
14555 (propagated-inputs
14556 `(("emacs-helm" ,emacs-helm)))
14557 (home-page "https://github.com/syohex/emacs-helm-gtags")
14558 (synopsis "Emacs Helm interface to GNU Global")
14559 (description
14560 "@code{emacs-helm-gtags} provides a Emacs Helm interface to GNU Global.")
14561 (license license:gpl3+)))
14562
14563 (define-public emacs-list-utils
14564 (package
14565 (name "emacs-list-utils")
14566 (version "0.4.4")
14567 (source
14568 (origin
14569 (method git-fetch)
14570 (uri (git-reference
14571 (url "https://github.com/rolandwalker/list-utils")
14572 (commit (string-append "v" version))))
14573 (file-name (git-file-name name version))
14574 (sha256
14575 (base32 "0ql159v7sxs33yh2l080kchrj52vk34knz50cvqi3ykpb7djg3sz"))))
14576 (build-system emacs-build-system)
14577 (home-page "https://github.com/rolandwalker/list-utils")
14578 (synopsis "List-manipulation utility functions")
14579 (description "This package provides a list manipulation library for Emacs.")
14580 (license license:gpl3+)))
14581
14582 (define-public emacs-move-text
14583 (package
14584 (name "emacs-move-text")
14585 (version "2.0.8")
14586 (source
14587 (origin
14588 (method git-fetch)
14589 (uri (git-reference
14590 (url "https://github.com/emacsfodder/move-text")
14591 (commit version)))
14592 (file-name (git-file-name name version))
14593 (sha256
14594 (base32 "06jxk5g23822gfmwrxhc34zand3dr8p2wjh1zs3j61ibz6n0nmz1"))))
14595 (build-system emacs-build-system)
14596 (home-page "https://github.com/emacsfodder/move-text")
14597 (synopsis "Move current line or region with M-up or M-down")
14598 (description "This package provide functions to move the current line
14599 using @kbd{M-up} or @kbd{M-down} if a region is marked, it will move the
14600 region instead.")
14601 (license license:gpl3+)))
14602
14603 (define-public emacs-validate
14604 (package
14605 (name "emacs-validate")
14606 (version "1.0.5")
14607 (source (origin
14608 (method git-fetch)
14609 (uri (git-reference
14610 (url "https://github.com/Malabarba/validate.el")
14611 (commit version)))
14612 (file-name (git-file-name name version))
14613 (sha256
14614 (base32
14615 "1l12ibx6cw4mgicgjpw71fb4fr4sd0k54lvbpq7ngc29br3j6i4v"))))
14616 (build-system emacs-build-system)
14617 (home-page "https://github.com/Malabarba/validate.el")
14618 (synopsis "Emacs library for scheme validation")
14619 (description "This Emacs library provides two functions that perform
14620 schema validation.")
14621 (license license:gpl3+)))
14622
14623 (define-public emacs-rainbow-blocks
14624 (let ((commit "dd435d7bb34ff6f162a5f315df308b90b7e9f842"))
14625 (package
14626 (name "emacs-rainbow-blocks")
14627 (version (git-version "1.0.0" "1" commit))
14628 (source (origin
14629 (method git-fetch)
14630 (uri (git-reference
14631 (url "https://github.com/istib/rainbow-blocks")
14632 (commit commit)))
14633 (file-name (git-file-name name version))
14634 (sha256
14635 (base32
14636 "06yfb3i7wzvqrhkb61zib9xvpb5i00s4frizkzff66im05k0n795"))))
14637 (build-system emacs-build-system)
14638 (home-page "https://github.com/istib/rainbow-blocks")
14639 (synopsis "Highlight sexp blocks")
14640 (description "Rainbow-blocks is an Emacs mode that highlights blocks
14641 made of parentheses, brackets, and braces according to their depth. Each
14642 successive level is highlighted in a different color. This makes it easy to
14643 orient yourself in the code, and tell which statements are at a given level.")
14644 (license license:gpl3+))))
14645
14646 (define-public emacs-hierarchy
14647 (package
14648 (name "emacs-hierarchy")
14649 (version "0.7.0")
14650 (source
14651 (origin
14652 (method git-fetch)
14653 (uri (git-reference
14654 (url "https://github.com/DamienCassou/hierarchy")
14655 (commit (string-append "v" version))))
14656 (file-name (git-file-name name version))
14657 (sha256
14658 (base32 "1kykbb1sil5cycfa5aj8dhsxc5yrx1641i2np5kwdjid6ahdlz5r"))))
14659 (build-system emacs-build-system)
14660 (native-inputs
14661 `(("emacs-buttercup" ,emacs-buttercup)))
14662 (arguments
14663 `(#:tests? #t
14664 #:test-command '("buttercup" "-L" ".")))
14665 (home-page "https://github.com/DamienCassou/hierarchy")
14666 (synopsis "Library to create and display hierarchy structures")
14667 (description "This package provides an Emacs library to create, query,
14668 navigate and display hierarchy structures.")
14669 (license license:gpl3+)))
14670
14671 (define-public emacs-tree-mode
14672 (let ((commit "b06078826d5875d74b0e7b7ac47b0d0917610534")
14673 (revision "1"))
14674 (package
14675 (name "emacs-tree-mode")
14676 (version (string-append "0.0.1" "-" revision "."
14677 (string-take commit 7)))
14678 (source
14679 (origin
14680 (method git-fetch)
14681 (uri (git-reference
14682 (url "https://github.com/emacsorphanage/tree-mode")
14683 (commit commit)))
14684 (file-name (git-file-name name version))
14685 (sha256
14686 (base32
14687 "13bbdhdmqg4x9yghanhr8fsbsxbnypzxdxgicz31sjjm675kpnix"))))
14688 (build-system emacs-build-system)
14689 (home-page "https://github.com/emacsorphanage/tree-mode")
14690 (synopsis "Emacs mode to manage tree widgets")
14691 (description
14692 "This package provides an Emacs library to manage tree widgets.")
14693 (license license:gpl3+))))
14694
14695 (define-public emacs-md4rd
14696 (package
14697 (name "emacs-md4rd")
14698 (version "0.3.1")
14699 (source (origin
14700 (method git-fetch)
14701 (uri (git-reference
14702 (url "https://github.com/ahungry/md4rd")
14703 (commit version)))
14704 (file-name (git-file-name name version))
14705 (sha256
14706 (base32
14707 "1n6g6k4adzkkn1g7z4j27s35xy12c1fg2r08gv345ddr3wplq4ri"))))
14708 (propagated-inputs
14709 `(("emacs-hierarchy" ,emacs-hierarchy)
14710 ("emacs-request" ,emacs-request)
14711 ("emacs-dash" ,emacs-dash)
14712 ("emacs-s" ,emacs-s)
14713 ("emacs-tree-mode" ,emacs-tree-mode)))
14714 (build-system emacs-build-system)
14715 (home-page "https://github.com/ahungry/md4rd")
14716 (synopsis "Emacs Mode for Reddit")
14717 (description
14718 "This package allows reading Reddit from within Emacs interactively.")
14719 (license license:gpl3+)))
14720
14721 (define-public emacs-pulseaudio-control
14722 (let ((commit "7e1a87068379075a5e9ce36c64c686c03d20d379")
14723 (revision "3"))
14724 (package
14725 (name "emacs-pulseaudio-control")
14726 (version (git-version "0.0.1" revision commit))
14727 (source
14728 (origin
14729 (method git-fetch)
14730 (uri (git-reference
14731 (url "https://github.com/flexibeast/pulseaudio-control")
14732 (commit commit)))
14733 (file-name (git-file-name name version))
14734 (sha256
14735 (base32
14736 "0wcaqyh15x56255rrj350089z15pnwixa2vf0ly6dv0hjmzmh3mr"))))
14737 (build-system emacs-build-system)
14738 (arguments
14739 '(#:phases (modify-phases %standard-phases
14740 (add-after 'unpack 'patch-file-name
14741 (lambda* (#:key inputs #:allow-other-keys)
14742 (let ((pulseaudio (assoc-ref inputs "pulseaudio")))
14743 (chmod "pulseaudio-control.el" #o600)
14744 (emacs-substitute-variables "pulseaudio-control.el"
14745 ("pulseaudio-control-pactl-path"
14746 (string-append pulseaudio "/bin/pactl")))
14747 #t))))))
14748 (inputs `(("pulseaudio" ,pulseaudio)))
14749 (home-page "https://github.com/flexibeast/pulseaudio-control")
14750 (synopsis "Control @code{pulseaudio} from Emacs")
14751 (description
14752 "This package allows controlling @code{pulseaudio} from Emacs.")
14753 (license license:gpl3+))))
14754
14755 (define-public emacs-datetime
14756 (package
14757 (name "emacs-datetime")
14758 (version "0.6.6")
14759 (source
14760 (origin
14761 (method git-fetch)
14762 (uri (git-reference
14763 (url "https://github.com/doublep/datetime")
14764 (commit version)))
14765 (file-name (git-file-name name version))
14766 (sha256
14767 (base32
14768 "0a3q667pybpmsjkbgf6287jwgpnx8brp5314wb8zbczw6ncygnbi"))))
14769 (build-system emacs-build-system)
14770 (inputs
14771 `(("emacs-extmap" ,emacs-extmap)))
14772 (home-page "https://github.com/doublep/datetime/")
14773 (synopsis "Library to work with dates in Emacs")
14774 (description "Parsing, formatting, matching and recoding
14775 timestamps and date-time format strings library for Emacs.")
14776 (license license:gpl3+)))
14777
14778 (define-public emacs-org-mind-map
14779 (let ((commit "9d6e262bedd94daf9de269f4d56de277275677cb")
14780 (revision "1"))
14781 (package
14782 (name "emacs-org-mind-map")
14783 (version (string-append "0.0.1" "-" revision "."
14784 (string-take commit 7)))
14785 (source
14786 (origin
14787 (method git-fetch)
14788 (uri (git-reference
14789 (url "https://github.com/theodorewiles/org-mind-map")
14790 (commit commit)))
14791 (file-name (git-file-name name version))
14792 (sha256
14793 (base32
14794 "0jgkkgq7g64zckrmjib0hvz0qy3ynz5vz13qbmlpf096l3bb65wn"))))
14795 (propagated-inputs
14796 `(("emacs-dash" ,emacs-dash)))
14797 (build-system emacs-build-system)
14798 (home-page "https://github.com/theodorewiles/org-mind-map")
14799 (synopsis "Create Graphviz directed graphs from Org files")
14800 (description
14801 "This package creates Graphviz directed graphs from Org files.")
14802 (license license:gpl3+))))
14803
14804 (define-public emacs-npm-mode
14805 (package
14806 (name "emacs-npm-mode")
14807 (version "0.6.0")
14808 (source
14809 (origin
14810 (method git-fetch)
14811 (uri (git-reference
14812 (url "https://github.com/mojochao/npm-mode")
14813 (commit version)))
14814 (file-name (git-file-name name version))
14815 (sha256
14816 (base32 "1mh6nbffciw4yhv049kdhh796ysj1x21ndm3fwymhskb3dy0w1ss"))))
14817 (build-system emacs-build-system)
14818 (home-page "https://github.com/mojochao/npm-mode")
14819 (synopsis "Minor mode for working with @code{npm} projects")
14820 (description
14821 "@code{npm-mode} provides a minor mode to work with @code{npm} projects.")
14822 (license license:gpl3+)))
14823
14824 (define-public emacs-itail
14825 (let ((commit "6e43c20da03be3b9c6ece93b7dc3495975ec1888")
14826 (revision "1"))
14827 (package
14828 (name "emacs-itail")
14829 (version (string-append "0.0.1" "-" revision "."
14830 (string-take commit 7)))
14831 (source
14832 (origin
14833 (method git-fetch)
14834 (uri (git-reference
14835 (url "https://github.com/re5et/itail")
14836 (commit commit)))
14837 (file-name (git-file-name name version))
14838 (sha256
14839 (base32
14840 "044nzxh1hq41faxw3lix0wy78vfz304pjcaa5a11dqfz7q3gx5cv"))))
14841 (build-system emacs-build-system)
14842 (home-page "https://github.com/re5et/itail")
14843 (synopsis "Interactive @code{tail} Emacs mode")
14844 (description "@code{itail} provides interactive @code{tail} mode
14845 that allows you to filter the tail with unix pipes and highlight the
14846 contents of the tailed file. Works locally or on remote files using
14847 tramp.")
14848 (license license:gpl3+))))
14849
14850 (define-public emacs-loop
14851 (package
14852 (name "emacs-loop")
14853 (version "1.3")
14854 (source
14855 (origin
14856 (method git-fetch)
14857 (uri (git-reference
14858 (url "https://github.com/Wilfred/loop.el")
14859 (commit version)))
14860 (file-name (git-file-name name version))
14861 (sha256
14862 (base32 "1gs95xnmnn8aa4794k7h8mw1sz1nfdh9v0caqj6yvnsdnwy74n5x"))))
14863 (build-system emacs-build-system)
14864 (native-inputs
14865 `(("emacs-ert-runner" ,emacs-ert-runner)
14866 ("emacs-undercover" ,emacs-undercover)))
14867 (arguments
14868 `(#:tests? #t
14869 #:test-command '("ert-runner")))
14870 (home-page "https://github.com/Wilfred/loop.el")
14871 (synopsis "Imperative loop structures for Emacs")
14872 (description "Loop structures familiar to users of other languages. This
14873 library adds a selection of popular loop structures as well as break and
14874 continue.")
14875 (license license:gpl3+)))
14876
14877 (define-public emacs-elisp-refs
14878 (package
14879 (name "emacs-elisp-refs")
14880 (version "1.3")
14881 (source
14882 (origin
14883 (method git-fetch)
14884 (uri (git-reference
14885 (url "https://github.com/Wilfred/elisp-refs")
14886 (commit version)))
14887 (file-name (git-file-name name version))
14888 (sha256
14889 (base32 "0w7k91xf69zc0zkjrw8h8sjdjf9xq9qs5zhvajhd718lzf93564b"))))
14890 (build-system emacs-build-system)
14891 (propagated-inputs
14892 `(("emacs-dash" ,emacs-dash)
14893 ("emacs-f" ,emacs-f)
14894 ("emacs-list-utils" ,emacs-list-utils)
14895 ("emacs-loop" ,emacs-loop)
14896 ("emacs-s" ,emacs-s)
14897 ("emacs-shut-up" ,emacs-shut-up)))
14898 (native-inputs
14899 `(("emacs-ert-runner" ,emacs-ert-runner)
14900 ("emacs-undercover" ,emacs-undercover)))
14901 (arguments
14902 `(#:tests? #t
14903 #:test-command '("ert-runner")
14904 #:phases
14905 (modify-phases %standard-phases
14906 (add-before 'check 'disable-refs-next-match-test
14907 ;; Hack to disable the failing test for emacs27
14908 ;; https://github.com/Wilfred/elisp-refs/issues/29
14909 (lambda _
14910 (substitute* "test/unit-test.el"
14911 (("ert-deftest elisp-refs-next-match")
14912 "defun elisp-refs-next-match"))
14913 #t)))))
14914 (home-page "https://github.com/Wilfred/elisp-refs")
14915 (synopsis "Find callers of elisp functions or macros")
14916 (description "Find references to functions, macros or variables. Unlike a
14917 dumb text search, @code{elisp-refs} actually parses the code, so it's never
14918 confused by comments or @code{foo-bar} matching @code{foo}.")
14919 (license license:gpl3+)))
14920
14921 (define-public emacs-crux
14922 (let ((commit "308f17d914e2cd79cbc809de66d02b03ceb82859")
14923 (revision "2"))
14924 (package
14925 (name "emacs-crux")
14926 (version (git-version "0.3.0" revision commit))
14927 (source
14928 (origin
14929 (method git-fetch)
14930 (uri (git-reference
14931 (url "https://github.com/bbatsov/crux")
14932 (commit commit)))
14933 (file-name (git-file-name name version))
14934 (sha256
14935 (base32
14936 "0rf84finwlvmy0xpgyljjvnrijlmkzjyw9rh97svgxp9c1rzfk0x"))))
14937 (build-system emacs-build-system)
14938 (home-page "https://github.com/bbatsov/crux")
14939 (synopsis "Collection of useful functions for Emacs")
14940 (description
14941 "@code{crux} provides a collection of useful functions for Emacs.")
14942 (license license:gpl3+))))
14943
14944 (define-public emacs-edit-server
14945 (package
14946 (name "emacs-edit-server")
14947 (version "1.15")
14948 (source
14949 (origin
14950 (method git-fetch)
14951 (uri (git-reference
14952 (url "https://github.com/stsquad/emacs_chrome")
14953 (commit (string-append "v" version))))
14954 (file-name (git-file-name name version))
14955 (sha256
14956 (base32 "0xxby3ghs38i1l7kag12rnzlzcg9297pm8k6kqq3aqzsg9d2950y"))))
14957 (build-system emacs-build-system)
14958 (arguments
14959 `(#:phases
14960 (modify-phases %standard-phases
14961 (add-after 'unpack 'chdir-elisp
14962 ;; Elisp directory is not in root of the source.
14963 (lambda _
14964 (chdir "servers"))))))
14965 (home-page "https://github.com/stsquad/emacs_chrome")
14966 (synopsis "Server that responds to edit requests from Chromium")
14967 (description
14968 "This package provides an edit server to respond to requests from Emacs.")
14969 (license license:gpl3+)))
14970
14971 (define-public emacs-m-buffer-el
14972 (package
14973 (name "emacs-m-buffer-el")
14974 (version "0.15")
14975 (source
14976 (origin
14977 (method git-fetch)
14978 (uri (git-reference
14979 (url "https://github.com/phillord/m-buffer-el")
14980 (commit (string-append "v" version))))
14981 (file-name (git-file-name name version))
14982 (sha256
14983 (base32
14984 "1sx76i59razwccvn6x7rx5a124bfyjw9fcbxf4gj7nsg33qiq809"))))
14985 (arguments
14986 `(#:phases
14987 (modify-phases %standard-phases
14988 (add-before 'install 'check
14989 (lambda* (#:key inputs #:allow-other-keys)
14990 (invoke "emacs" "--batch" "-L" "."
14991 "-l" "test/m-buffer-test.el"
14992 "-l" "test/m-buffer-at-test.el"
14993 "-f" "ert-run-tests-batch-and-exit"))))))
14994 (build-system emacs-build-system)
14995 (home-page "https://github.com/phillord/m-buffer-el")
14996 (synopsis "List oriented buffer operations for Emacs")
14997 (description "@code{m-buffer} provides a set of list-orientated functions
14998 for operating over the contents of Emacs buffers.")
14999 (license license:gpl3+)))
15000
15001 (define-public emacs-let-alist
15002 (package
15003 (name "emacs-let-alist")
15004 (version "1.0.6")
15005 (source
15006 (origin
15007 (method url-fetch)
15008 (uri (string-append
15009 "https://elpa.gnu.org/packages/let-alist-" version ".el"))
15010 (sha256
15011 (base32 "0szj7vnjzz4zci5fvz7xqgcpi4pzdyyf4qi2s8xar2hi7v3yaawr"))))
15012 (build-system emacs-build-system)
15013 (home-page "https://elpa.gnu.org/packages/let-alist.html")
15014 (synopsis "Easily let-bind values of an assoc-list by their names")
15015 (description "This package offers a single macro, @code{let-alist}. This
15016 macro takes a first argument (whose value must be an alist) and a body.")
15017 (license license:gpl3+)))
15018
15019 (define-public emacs-esup
15020 (package
15021 (name "emacs-esup")
15022 (version "0.7")
15023 (source
15024 (origin
15025 (method git-fetch)
15026 (uri (git-reference
15027 (url "https://github.com/jschaf/esup")
15028 (commit (string-append "v" version))))
15029 (file-name (git-file-name name version))
15030 (sha256
15031 (base32
15032 "100w28n3qb3s5b18vvqpwmijdjnjazawn38i0pjbpxz5llhqgl1g"))))
15033 (build-system emacs-build-system)
15034 (native-inputs
15035 `(("emacs-noflet" ,emacs-noflet)
15036 ("emacs-el-mock" ,emacs-el-mock)))
15037 (arguments
15038 `(#:phases
15039 (modify-phases %standard-phases
15040 (add-before 'install 'check
15041 (lambda* (#:key inputs #:allow-other-keys)
15042 (invoke "emacs" "--batch" "-L" "."
15043 "-l" "test/esup-test.el"
15044 "-f" "ert-run-tests-batch-and-exit"))))))
15045 (home-page "https://github.com/jschaf/esup")
15046 (synopsis "Emacs start up profiler")
15047 (description "Benchmark Emacs Startup time without ever leaving
15048 your Emacs.")
15049 (license license:gpl2+)))
15050
15051 (define-public emacs-restart-emacs
15052 (let ((commit "9aa90d3df9e08bc420e1c9845ee3ff568e911bd9")
15053 (revision "1"))
15054 (package
15055 (name "emacs-restart-emacs")
15056 (version (git-version "0.1.1" revision commit))
15057 (source
15058 (origin
15059 (method git-fetch)
15060 (uri (git-reference
15061 (url "https://github.com/iqbalansari/restart-emacs")
15062 (commit commit)))
15063 (file-name (git-file-name name version))
15064 (sha256
15065 (base32 "02x1a85k7r95z8091zgjiaj9nf0zvx1jy4xvl3hr12qbnrx1wfav"))))
15066 (build-system emacs-build-system)
15067 (home-page "https://github.com/iqbalansari/restart-emacs")
15068 (synopsis "Restart Emacs from within Emacs")
15069 (description "This package provides a simple command to restart Emacs from
15070 within Emacs.")
15071 (license license:gpl3+))))
15072
15073 (define-public emacs-sourcemap
15074 (package
15075 (name "emacs-sourcemap")
15076 (version "0.03")
15077 (source
15078 (origin
15079 (method git-fetch)
15080 (uri (git-reference
15081 (url "https://github.com/syohex/emacs-sourcemap")
15082 (commit version)))
15083 (file-name (git-file-name name version))
15084 (sha256
15085 (base32 "115g2mfpbfywp8xnag4gsb50klfvplqfh928a5mabb5s8v4a3582"))))
15086 (build-system emacs-build-system)
15087 (home-page "https://github.com/syohex/emacs-sourcemap")
15088 (synopsis "Sourcemap parser")
15089 (description "Sourcemap parser")
15090 (license license:gpl3+)))
15091
15092 (define-public emacs-macrostep
15093 (let ((commit "424e3734a1ee526a1bd7b5c3cd1d3ef19d184267"))
15094 (package
15095 (name "emacs-macrostep")
15096 (version (git-version "0.9" "1" commit))
15097 (source (origin
15098 (method git-fetch)
15099 (uri (git-reference
15100 (url "https://github.com/joddie/macrostep")
15101 (commit commit)))
15102 (file-name (git-file-name name version))
15103 (sha256
15104 (base32
15105 "1fm40mxdn289cyzgw992223dgrjmwxn4q8svyyxfaxjrpb38jhjz"))))
15106 (build-system emacs-build-system)
15107 (arguments
15108 '(#:phases
15109 (modify-phases %standard-phases
15110 (add-before 'check 'remove-test
15111 ;; Fails because of requirement ‘/bin/sh’.
15112 (lambda _
15113 (let ((file "macrostep-test.el"))
15114 (chmod file #o644)
15115 (emacs-batch-edit-file file
15116 `(progn (progn (goto-char (point-min))
15117 (re-search-forward
15118 "(ert-deftest macrostep-expand-c-macros")
15119 (beginning-of-line)
15120 (kill-sexp))
15121 (basic-save-buffer))))))
15122 (add-before 'install 'check
15123 (lambda _
15124 (invoke "emacs" "--batch" "-L" "."
15125 "-l" "macrostep-test.el"
15126 "-f" "ert-run-tests-batch-and-exit"))))))
15127 (home-page "https://github.com/joddie/macrostep")
15128 (synopsis "Interactive macro-expander for Emacs")
15129 (description "@code{macrostep} is an Emacs minor mode for interactively
15130 stepping through the expansion of macros in Emacs Lisp source code. It lets
15131 you see exactly what happens at each step of the expansion process by
15132 pretty-printing the expanded forms inline in the source buffer, which is
15133 temporarily read-only while macro expansions are visible. You can expand and
15134 collapse macro forms one step at a time, and evaluate or instrument the
15135 expansions for debugging with Edebug as normal (but see “Bugs and known
15136 limitations”, below). Single-stepping through the expansion is particularly
15137 useful for debugging macros that expand into another macro form. These can be
15138 difficult to debug with Emacs’ built-in macroexpand, which continues expansion
15139 until the top-level form is no longer a macro call.")
15140 (license license:gpl3+))))
15141
15142 (define-public emacs-parent-mode
15143 (package
15144 (name "emacs-parent-mode")
15145 (version "2.3")
15146 (source
15147 (origin
15148 (method git-fetch)
15149 (uri (git-reference
15150 (url "https://github.com/Fanael/parent-mode")
15151 (commit version)))
15152 (file-name (git-file-name name version))
15153 (sha256
15154 (base32 "0i5bc7lyyrx6swqlrp9l5x72yzwi53qn6ldrfs99gh08b3yvsnni"))))
15155 (build-system emacs-build-system)
15156 (home-page "https://github.com/Fanael/parent-mode")
15157 (synopsis "Get major mode's parent modes")
15158 (description "Get major mode's parent modes")
15159 (license license:gpl3+)))
15160
15161 (define-public emacs-lacarte
15162 (package
15163 (name "emacs-lacarte")
15164 (version "0.1")
15165 (source (origin
15166 (method url-fetch)
15167 (uri "https://www.emacswiki.org/emacs/download/lacarte.el")
15168 (sha256
15169 (base32
15170 "1sbmk37ljq5j7dsw5c37sbxvlfgdqswh7bi4dknyjzfxlq50f4am"))))
15171 (build-system emacs-build-system)
15172 (home-page "https://www.emacswiki.org/emacs/lacarte.el")
15173 (synopsis "Execute menu items as commands, with completion")
15174 (description "Execute menu items as commands, with completion.")
15175 (license license:gpl3)))
15176
15177 (define-public emacs-isearch-prop
15178 (let ((commit "4a2765f835dd115d472142da05215c4c748809f4")
15179 (revision "2"))
15180 (package
15181 (name "emacs-isearch-prop")
15182 (version (git-version "0" revision commit))
15183 (source
15184 (origin
15185 (method git-fetch)
15186 (uri (git-reference
15187 (url "https://github.com/emacsmirror/isearch-prop")
15188 (commit commit)))
15189 (file-name (git-file-name name version))
15190 (sha256
15191 (base32
15192 "06gdk5m84q6pxwng8rjxny1zkll8f3m2x6lw4xyib2dvg7iaslh3"))))
15193 (build-system emacs-build-system)
15194 (home-page "https://www.emacswiki.org/emacs/isearch-prop.el")
15195 (synopsis "Extensions to @code{isearch.el}")
15196 (description "The Emacs library @code{isearch-prop.el} lets you search within
15197 contexts. You can limit incremental search to a set of zones of
15198 buffer text, search contexts that in effect constitute a multi-region.
15199 These zones can be defined in various ways, including some ways
15200 provided specially by this library.")
15201 (license license:gpl3+))))
15202
15203 (define-public emacs-company-lua
15204 (let ((commit "29f6819de4d691e5fd0b62893a9f4fbc1c6fcb52")
15205 (revision "2"))
15206 (package
15207 (name "emacs-company-lua")
15208 (version (git-version "0.1" "2" commit))
15209 (source
15210 (origin
15211 (method git-fetch)
15212 (uri (git-reference
15213 (url "https://github.com/ptrv/company-lua")
15214 (commit commit)))
15215 (file-name (git-file-name name version))
15216 (sha256
15217 (base32
15218 "0ny2dcc7c585p7v3j6q0rpkbj1qmf2ismy8a5020jpr585xvz0hh"))))
15219 (build-system emacs-build-system)
15220 (propagated-inputs
15221 `(("emacs-company" ,emacs-company)
15222 ("emacs-s" ,emacs-s)
15223 ("emacs-f" ,emacs-f)
15224 ("emacs-lua-mode" ,emacs-lua-mode)))
15225 (arguments
15226 `(#:include (cons* "^lua\\/" %default-include)))
15227 (home-page "https://github.com/ptrv/company-lua")
15228 (synopsis "Company backend for Lua")
15229 (description
15230 "This package provides Company backend for Lua programming language.")
15231 (license license:gpl3+))))
15232
15233 (define-public emacs-beginend
15234 (package
15235 (name "emacs-beginend")
15236 (version "2.1.0")
15237 (source
15238 (origin
15239 (method git-fetch)
15240 (uri (git-reference
15241 (url "https://github.com/DamienCassou/beginend")
15242 (commit (string-append "v" version))))
15243 (file-name (git-file-name name version))
15244 (sha256
15245 (base32 "1ic5z3qb5sc3mjrjdlg0rqm2l59a43gwnakagns4cilln2a3xdg8"))))
15246 ;; TODO: Run tests.
15247 (build-system emacs-build-system)
15248 (inputs
15249 `(("emacs-undercover" ,emacs-undercover))) ; For tests.
15250 (home-page "https://github.com/DamienCassou/beginend")
15251 (synopsis "Redefine @code{M-<} and @code{M->} for Emacs modes")
15252 (description "@code{beginend} redefines @code{M-<} and @code{M->}
15253 keybindings for Emacs modes so that point moves to meaningful
15254 locations. Redefined keys are still accessible by pressing the same
15255 key again.")
15256 (license license:gpl3+)))
15257
15258 (define-public emacs-mbsync
15259 (let ((commit "b62491c0e0d89eb9c66261a16d7ac81231c9c453")
15260 (revision "4"))
15261 (package
15262 (name "emacs-mbsync")
15263 (version (git-version "0.1.2" revision commit))
15264 (source
15265 (origin
15266 (method git-fetch)
15267 (uri (git-reference
15268 (url "https://github.com/dimitri/mbsync-el")
15269 (commit commit)))
15270 (file-name (git-file-name name version))
15271 (sha256
15272 (base32
15273 "1zlih37mkqjn2czl12zn7lgxxljvrwhqqpbksj9c91zn0f0rm3mz"))))
15274 (build-system emacs-build-system)
15275 (home-page "https://github.com/dimitri/mbsync-el")
15276 (synopsis "Interface to mbsync for Emacs")
15277 (description "This package calls @code{mbsync} from
15278 within Emacs.")
15279 (license license:gpl3+))))
15280
15281 (define-public emacs-ibuffer-projectile
15282 (let ((commit "76496214144687cee0b5139be2e61b1e400cac87")
15283 (revision "2"))
15284 (package
15285 (name "emacs-ibuffer-projectile")
15286 (version (git-version "0.2" revision commit))
15287 (source
15288 (origin
15289 (method git-fetch)
15290 (uri (git-reference
15291 (url "https://github.com/purcell/ibuffer-projectile")
15292 (commit commit)))
15293 (file-name (git-file-name name version))
15294 (sha256
15295 (base32
15296 "0vv9xwb1qd5x8zhqmmsn1nrpd11cql9hxb7483nsdhcfwl4apqav"))))
15297 (build-system emacs-build-system)
15298 (propagated-inputs
15299 `(("emacs-projectile" ,emacs-projectile)))
15300 (home-page "https://github.com/purcell/ibuffer-projectile")
15301 (synopsis "Group ibuffer's list by projectile root")
15302 (description "Adds functionality to Emacs @code{ibuffer} for
15303 grouping buffers by their projectile root directory.")
15304 (license license:gpl3+))))
15305
15306 (define-public emacs-elm-mode
15307 (package
15308 (name "emacs-elm-mode")
15309 (version "0.21.0")
15310 (source
15311 (origin
15312 (method git-fetch)
15313 (uri
15314 (git-reference
15315 (url "https://github.com/jcollard/elm-mode")
15316 (commit (string-append "v" version))))
15317 (file-name (git-file-name name version))
15318 (sha256
15319 (base32 "0iwk4fmw8hq3ry4ky1zc7lgl4cpbnrjyk74c2xzddfspi3ks41fd"))))
15320 (propagated-inputs
15321 `(("emacs-dash" ,emacs-dash)
15322 ("emacs-f" ,emacs-f)
15323 ("emacs-reformatter" ,emacs-reformatter)
15324 ("emacs-s" ,emacs-s)))
15325 (build-system emacs-build-system)
15326 (home-page "https://github.com/jcollard/elm-mode")
15327 (synopsis "Emacs major mode for editing Elm source code")
15328 (description
15329 "This package provides a major mode for editing Elm source code, and
15330 working with common core and third-party Elm tools. Its features are:
15331
15332 @itemize
15333 @item Syntax highlighting
15334 @item Intelligent indentation
15335 @item Integration with elm-make
15336 @item Integration with elm-repl
15337 @item Integration with elm-reactor
15338 @item Integration with elm-package
15339 @item Integration with elm-oracle
15340 @item Integration with elm-format
15341 @item Integration with elm-test
15342 @end itemize")
15343 (license license:gpl3+)))
15344
15345 (define-public emacs-helm-mode-manager
15346 (package
15347 (name "emacs-helm-mode-manager")
15348 (version "1.0.0")
15349 (source
15350 (origin
15351 (method git-fetch)
15352 (uri (git-reference
15353 (url "https://github.com/istib/helm-mode-manager")
15354 (commit version)))
15355 (file-name (git-file-name name version))
15356 (sha256
15357 (base32
15358 "1srx5f0s9x7zan7ayqd6scxfhcvr3nkd4yzs96hphd87rb18apzk"))))
15359 (build-system emacs-build-system)
15360 (propagated-inputs
15361 `(("emacs-helm" ,emacs-helm)))
15362 (home-page "https://github.com/istib/helm-mode-manager/")
15363 (synopsis "Switch and toggle Emacs major and minor modes using Helm")
15364 (description "This package provides a Helm interface for toggling Emacs
15365 major or minor mode.
15366
15367 @itemize
15368 @item @code{helm-switch-major-mode} list of all major modes
15369 @item @code{helm-enable-minor-mode} list of all inactive minor modes
15370 @item @code{helm-disable-minor-mode} list of all ACTIVE minor modes
15371 @end itemize\n
15372
15373 Hitting @code{RET} enables the mode, @code{C-z} shows the mode
15374 documentation.")
15375 (license license:gpl3+)))
15376
15377 (define-public emacs-hy-mode
15378 (package
15379 (name "emacs-hy-mode")
15380 (version "1.0.4")
15381 (source
15382 (origin
15383 (method git-fetch)
15384 (uri (git-reference
15385 (url "https://github.com/hylang/hy-mode")
15386 (commit (string-append "v" version))))
15387 (file-name (git-file-name name version))
15388 (sha256
15389 (base32 "0gihxlmfminadaqdr8d2zccd7wwygl3m0gfzxsk5izi7f8hl4w7f"))))
15390 (build-system emacs-build-system)
15391 (propagated-inputs
15392 `(("emacs-dash" ,emacs-dash)
15393 ("emacs-s" ,emacs-s)))
15394 (home-page "https://github.com/hylang/hy-mode")
15395 (synopsis "Major mode for Hylang")
15396 (description "This package provides a major mode for Hylang.")
15397 (license license:gpl3+)))
15398
15399 (define-public emacs-web-beautify
15400 (package
15401 (name "emacs-web-beautify")
15402 (version "0.3.2")
15403 (source
15404 (origin
15405 (method git-fetch)
15406 (uri (git-reference
15407 (url "https://github.com/yasuyk/web-beautify")
15408 (commit version)))
15409 (file-name (git-file-name name version))
15410 (sha256
15411 (base32 "0vms7zz3ym53wf1zdrkbf2ky2xjr1v134ngsd0jr8azyi8siw84d"))))
15412 (build-system emacs-build-system)
15413 (home-page "https://github.com/yasuyk/web-beautify")
15414 (synopsis "Format HTML, CSS and JavaScript, JSON")
15415 (description "This package provides an Emacs functions to format HTML,
15416 CSS, JavaScript, JSON.")
15417 (license license:gpl3+)))
15418
15419 (define-public emacs-helm-shell-history
15420 (let ((commit "110d3c35c52fe4b89b29e79ea4c8626bce7266a1"))
15421 (package
15422 (name "emacs-helm-shell-history")
15423 (version (git-version "0.1" "1" commit))
15424 (source
15425 (origin
15426 (method git-fetch)
15427 (uri (git-reference
15428 (url "https://github.com/yuutayamada/helm-shell-history")
15429 (commit commit)))
15430 (file-name (git-file-name name version))
15431 (sha256
15432 (base32
15433 "18fkjcz69g4dyaxhf9j8svr5x6dhsdnglddwisis8hdn504scpfj"))))
15434 (build-system emacs-build-system)
15435 (arguments
15436 '(#:phases
15437 (modify-phases %standard-phases
15438 (add-before 'check 'patch-helm-shell-history-file
15439 (lambda _
15440 (let ((file "helm-shell-history.el"))
15441 (chmod file #o644)
15442 (emacs-substitute-sexps file
15443 ("(defvar helm-shell-history-file"
15444 `(expand-file-name "~/.bash_history"))))
15445 #t)))))
15446 (propagated-inputs
15447 `(("emacs-helm" ,emacs-helm)))
15448 (home-page "https://github.com/yuutayamada/helm-shell-history")
15449 (synopsis "Find shell history with Emacs Helm")
15450 (description "This package provides an Emacs Helm interface to search
15451 throw a shell history.")
15452 (license license:gpl3+))))
15453
15454 (define-public emacs-discover-my-major
15455 (package
15456 (name "emacs-discover-my-major")
15457 (version "1.0")
15458 (source
15459 (origin
15460 (method git-fetch)
15461 (uri (git-reference
15462 (url "https://framagit.org/steckerhalter/discover-my-major.git/")
15463 (commit version)))
15464 (file-name (git-file-name name version))
15465 (sha256
15466 (base32
15467 "1wlqyl03hhnflbyay3qlvdzqzvv5rbybcjpfddggda7ias9h0pr4"))))
15468 (build-system emacs-build-system)
15469 (propagated-inputs
15470 `(("emacs-makey" ,emacs-makey)))
15471 (home-page "https://framagit.org/steckerhalter/discover-my-major/")
15472 (synopsis "Discover key bindings for the current Emacs major mode")
15473 (description "This package discovers key bindings and
15474 their meaning for the current Emacs major-mode.")
15475 (license license:gpl3+)))
15476
15477 (define-public emacs-org-ref
15478 ;; No release since June 2017.
15479 (let ((commit "5bb9be2232db72b04754d7e4c02a3976ad422f6f")
15480 (revision "2"))
15481 (package
15482 (name "emacs-org-ref")
15483 (version (git-version "1.1.1" revision commit))
15484 (source
15485 (origin
15486 (method git-fetch)
15487 (uri (git-reference
15488 (url "https://github.com/jkitchin/org-ref")
15489 (commit commit)))
15490 (file-name (git-file-name name version))
15491 (sha256
15492 (base32 "15gcvbfj19kyv4nxa632b261dwhb26m99plq230qhv9ssfwfgxbx"))))
15493 (build-system emacs-build-system)
15494 (propagated-inputs
15495 `(("emacs-dash" ,emacs-dash)
15496 ("emacs-f" ,emacs-f)
15497 ("emacs-helm" ,emacs-helm)
15498 ("emacs-helm-bibtex" ,emacs-helm-bibtex)
15499 ("emacs-htmlize" ,emacs-htmlize)
15500 ("emacs-hydra" ,emacs-hydra)
15501 ("emacs-ivy" ,emacs-ivy)
15502 ("emacs-key-chord" ,emacs-key-chord)
15503 ("emacs-pdf-tools" ,emacs-pdf-tools)
15504 ("emacs-s" ,emacs-s)))
15505 (home-page "https://github.com/jkitchin/org-ref")
15506 (synopsis "Citations, cross-references and bibliographies in Org mode")
15507 (description
15508 "Org Ref is an Emacs library that provides rich support for citations,
15509 labels and cross-references in Org mode.
15510
15511 The basic idea of Org Ref is that it defines a convenient interface to insert
15512 citations from a reference database (e.g., from BibTeX files), and a set of
15513 functional Org links for citations, cross-references and labels that export
15514 properly to LaTeX, and that provide clickable functionality to the user. Org
15515 Ref interfaces with Helm BibTeX to facilitate citation entry, and it can also
15516 use RefTeX.
15517
15518 It also provides a fairly large number of utilities for finding bad citations,
15519 extracting BibTeX entries from citations in an Org file, and functions to
15520 create and modify BibTeX entries from a variety of sources, most notably from
15521 a DOI.
15522
15523 Org Ref is especially suitable for Org documents destined for LaTeX export and
15524 scientific publication. Org Ref is also useful for research documents and
15525 notes.")
15526 (license license:gpl3+))))
15527
15528 (define-public emacs-org-reveal
15529 (let ((commit "84039bb499290926511b04749882ecb5eda45a0c"))
15530 (package
15531 (name "emacs-org-reveal")
15532 (version (git-version "20200607" "1" commit))
15533 (source (origin
15534 (method git-fetch)
15535 (uri (git-reference
15536 (url "https://github.com/yjwen/org-reveal")
15537 (commit commit)))
15538 (file-name (git-file-name name version))
15539 (sha256
15540 (base32
15541 "1fx3xmnkpfljrdmy0dsyq79k93ky57gcqm1ad9qbzykk7qjvmmi8"))))
15542 (build-system emacs-build-system)
15543 (home-page "https://github.com/yjwen/org-reveal")
15544 (synopsis "Org and Reveal.js powered HTML presentation tool")
15545 (description "Org-Reveal is a @command{org-mode} extension that allows
15546 to create beautiful presentations (slides) with 3D effects from simple but
15547 powerful Org contents.")
15548 (license license:gpl3+))))
15549
15550 (define-public emacs-org-re-reveal
15551 (package
15552 (name "emacs-org-re-reveal")
15553 (version "3.1.1")
15554 (source (origin
15555 (method git-fetch)
15556 (uri (git-reference
15557 (url "https://gitlab.com/oer/org-re-reveal")
15558 (commit version)))
15559 (file-name (git-file-name name version))
15560 (sha256
15561 (base32
15562 "0an799lxy1j48zlg00982d1rhg46ls4fz4v7r7qdh6228icq5hij"))))
15563 (build-system emacs-build-system)
15564 (propagated-inputs
15565 `(("emacs-htmlize" ,emacs-htmlize)
15566 ("emacs-org" ,emacs-org)))
15567 (home-page "https://gitlab.com/oer/org-re-reveal")
15568 (synopsis "Build HTML presentations with reveal.js from Org source files")
15569 (description "This project started as fork of org-reveal. It provides an
15570 export back-end for HTML presentations with reveal.js from Org mode source
15571 files.")
15572 (license license:gpl3+)))
15573
15574 (define-public emacs-add-hooks
15575 (package
15576 (name "emacs-add-hooks")
15577 (version "3.1.1")
15578 (source
15579 (origin
15580 (method git-fetch)
15581 (uri (git-reference
15582 (url "https://github.com/nickmccurdy/add-hooks")
15583 (commit version)))
15584 (file-name (git-file-name name version))
15585 (sha256
15586 (base32 "1jv9fpcsm572zg0j1mbpbfkqgdlqapy89xhhj19pswkhjns1y2wl"))))
15587 (build-system emacs-build-system)
15588 (home-page "https://github.com/nickmccurdy/add-hooks/")
15589 (synopsis "Emacs function for setting multiple hooks")
15590 (description "This package provides a @code{add-hooks} function tidies up
15591 duplicate hook and function names further into a single declarative call.")
15592 (license license:gpl3+)))
15593
15594 (define-public emacs-fancy-battery
15595 (package
15596 (name "emacs-fancy-battery")
15597 (version "0.2")
15598 (source
15599 (origin
15600 (method git-fetch)
15601 (uri (git-reference
15602 (url "https://github.com/emacsorphanage/fancy-battery")
15603 (commit version)))
15604 (file-name (git-file-name name version))
15605 (sha256
15606 (base32 "05lwcwf412m717yhwpjrswqkm8c3i7391rmiwv2k8xc1vk6dpp4g"))))
15607 (build-system emacs-build-system)
15608 (home-page "https://github.com/emacsorphanage/fancy-battery")
15609 (synopsis "Display battery status in Emacs mode line")
15610 (description "This package provides @code{fancy-battery-mode} which is
15611 like the built-in @code{display-battery-mode}, but more fancy. It just the
15612 remaining time, uses colours to indicate the status of the battery, and is
15613 more customizable.")
15614 (license license:gpl3)))
15615
15616 (define-public emacs-fancy-narrow
15617 (package
15618 (name "emacs-fancy-narrow")
15619 (version "0.9.5")
15620 (source
15621 (origin
15622 (method git-fetch)
15623 (uri (git-reference
15624 (url "https://github.com/Malabarba/fancy-narrow")
15625 (commit version)))
15626 (file-name (git-file-name name version))
15627 (sha256
15628 (base32 "0vcr1gnqawvc1yclqs23jvxm6bqix8kpflf1c7znb0wzxmz9kx7y"))))
15629 (build-system emacs-build-system)
15630 (home-page "https://github.com/Malabarba/fancy-narrow/releases")
15631 (synopsis "Imitate @code{narrow-to-region} with more eye candy")
15632 (description
15633 "Unlike @code{narrow-to-region}, which completely hides text outside
15634 the narrowed region, this package simply de-emphasizes the text, makes it
15635 read-only, and makes it unreachable. This leads to a much more natural
15636 feeling where the region stays static (instead of being brutally moved to a
15637 blank slate) and is clearly highlighted with respect to the rest of the
15638 buffer.")
15639 (license license:gpl2+)))
15640
15641 (define-public emacs-know-your-http-well
15642 (package
15643 (name "emacs-know-your-http-well")
15644 (version "0.5.0")
15645 (source
15646 (origin
15647 (method git-fetch)
15648 (uri (git-reference
15649 (url "https://github.com/for-GET/know-your-http-well")
15650 (commit (string-append "v" version))))
15651 (file-name (git-file-name name version))
15652 (sha256
15653 (base32 "1lppggnii2r9fvlhh33gbdrwb50za8lnalavlq9s86ngndn4n94k"))))
15654 (arguments
15655 `(#:phases
15656 (modify-phases %standard-phases
15657 (add-after 'unpack 'install-json-files
15658 (lambda* (#:key outputs #:allow-other-keys)
15659 (for-each (lambda (directory)
15660 (copy-recursively directory
15661 (string-append
15662 (assoc-ref outputs "out")
15663 directory)))
15664 '("js" "json"))))
15665 (add-after 'unpack 'chdir-elisp
15666 ;; Elisp directory is not in root of the source.
15667 (lambda _
15668 (chdir "emacs"))))))
15669 (build-system emacs-build-system)
15670 (home-page "https://github.com/for-GET/know-your-http-well")
15671 (synopsis "Meaning of HTTP headers codes")
15672 (description "Meaning of HTTP headers codes.")
15673 (license license:gpl3+)))
15674
15675 (define-public emacs-navi-mode
15676 (let ((commit "c1d38e8237f4e14af020a0b7d4f118ea198ab674"))
15677 (package
15678 (name "emacs-navi-mode")
15679 (version (git-version "2.0" "1" commit))
15680 (source
15681 (origin
15682 (method git-fetch)
15683 (uri (git-reference
15684 (url "https://github.com/alphapapa/navi")
15685 (commit commit)))
15686 (file-name (git-file-name name version))
15687 (sha256
15688 (base32
15689 "0jj5spk14hgb7zb1cd2n8whcw4k1kd5zb6llwj96v178yaws7l8k"))))
15690 (build-system emacs-build-system)
15691 (propagated-inputs
15692 `(("emacs-outshine" ,emacs-outshine)
15693 ("emacs-outorg" ,emacs-outorg)))
15694 (home-page "https://github.com/alphapapa/navi")
15695 (synopsis "Emacs major-mode for easy buffer-navigation")
15696 (description
15697 "This package provides an Emacs major-mode for easy buffer-navigation")
15698 (license license:gpl3+))))
15699
15700 (define-public emacs-download-region
15701 (let ((commit "eb9e557529a73b4cfc8281c70dd0d95db333fffa")
15702 (revision "1"))
15703 (package
15704 (name "emacs-download-region")
15705 (version (string-append "0.0.1" "-" revision "."
15706 (string-take commit 7)))
15707 (source
15708 (origin
15709 (method git-fetch)
15710 (uri (git-reference
15711 (url "https://github.com/zk-phi/download-region")
15712 (commit commit)))
15713 (file-name (git-file-name name version))
15714 (sha256
15715 (base32
15716 "0v52djg39b6k2snizd9x0qc009ws5y0ywqsfwhqgcbs5ymzh7dsc"))))
15717 (build-system emacs-build-system)
15718 (home-page "https://github.com/zk-phi/download-region")
15719 (synopsis "In buffer download manager for Emacs")
15720 (description "@code{download-region} provides in buffer
15721 downloading manager for Emacs.")
15722 (license license:gpl3+))))
15723
15724 (define-public emacs-helpful
15725 (package
15726 (name "emacs-helpful")
15727 (version "0.17")
15728 (source
15729 (origin
15730 (method git-fetch)
15731 (uri (git-reference
15732 (url "https://github.com/Wilfred/helpful")
15733 (commit version)))
15734 (file-name (git-file-name name version))
15735 (sha256
15736 (base32 "0v2y0x9pwi08y2mgjjiw5brfb5haa7pbmy4540glw904ffxxcblj"))))
15737 (build-system emacs-build-system)
15738 (propagated-inputs
15739 `(("emacs-elisp-refs" ,emacs-elisp-refs)
15740 ("emacs-dash" ,emacs-dash)
15741 ("emacs-s" ,emacs-s)
15742 ("emacs-f" ,emacs-f)
15743 ("emacs-shut-up" ,emacs-shut-up)))
15744 (native-inputs
15745 `(("emacs-ert-runner" ,emacs-ert-runner)
15746 ("emacs-undercover" ,emacs-undercover)))
15747 (arguments
15748 `(#:tests? #t
15749 #:test-command '("ert-runner")))
15750 (home-page "https://github.com/Wilfred/helpful")
15751 (synopsis "More contextual information in Emacs help")
15752 (description "@code{helpful} is an alternative to the built-in Emacs help
15753 that provides much more contextual information.
15754
15755 @itemize
15756 @item Show the source code for interactively defined functions (unlike the
15757 built-in Help).
15758 @item Fall back to the raw sexp if no source is available.
15759 @item Show where a function is being called.
15760 @item Docstrings will Highlight the summary (the first sentence), include
15761 cross-references, hide superfluous puncuation.
15762 @item Show you the properties that have been applied to the current
15763 symbol. This provides visibility of features like edebug or byte-code
15764 optimisation.
15765 @item Provide a separate @code{helpful-command} function to view interactive
15766 functions.
15767 @item Display any keybindings that apply to interactive functions.
15768 @item Trace, disassemble functions from inside Helpful. This is discoverable
15769 and doesn't require memorisation of commands.
15770 @end itemize\n")
15771 (license license:gpl3+)))
15772
15773 (define-public emacs-logview
15774 (package
15775 (name "emacs-logview")
15776 (version "0.9")
15777 (source
15778 (origin
15779 (method git-fetch)
15780 (uri (git-reference
15781 (url "https://github.com/doublep/logview")
15782 (commit version)))
15783 (file-name (git-file-name name version))
15784 (sha256
15785 (base32 "1qhzs75pxnaksbhczmpdcy2zmrqavlzkzss7ik5nv2wf9vs0sn02"))))
15786 (propagated-inputs
15787 `(("emacs-datetime" ,emacs-datetime)))
15788 (build-system emacs-build-system)
15789 (home-page "https://github.com/doublep/logview/")
15790 (synopsis "Emacs mode for viewing log files")
15791 (description "@code{logview} provides an Emacs mode to view log files.")
15792 (license license:gpl3+)))
15793
15794 (define-public emacs-suggest
15795 (package
15796 (name "emacs-suggest")
15797 (version "0.7")
15798 (home-page "https://github.com/Wilfred/suggest.el")
15799 (source
15800 (origin
15801 (method git-fetch)
15802 (uri (git-reference
15803 (url home-page)
15804 (commit version)))
15805 (file-name (git-file-name name version))
15806 (sha256
15807 (base32
15808 "01v8plska5d3g19sb1m4ph1i3ayprfzk8mi6mpabjy6zad397xjl"))))
15809 (build-system emacs-build-system)
15810 (propagated-inputs
15811 `(("emacs-loop" ,emacs-loop)
15812 ("emacs-dash" ,emacs-dash)
15813 ("emacs-s" ,emacs-s)
15814 ("emacs-f" ,emacs-f)
15815 ("emacs-spinner" ,emacs-spinner)
15816 ("emacs-shut-up" ,emacs-shut-up)))
15817 (native-inputs
15818 `(("emacs-ert-runner" ,emacs-ert-runner)
15819 ("emacs-undercover" ,emacs-undercover)))
15820 (arguments
15821 `(#:tests? #t
15822 #:test-command '("ert-runner")))
15823 (synopsis "Suggest Elisp functions that give the output requested")
15824 (description "Suggest.el will find functions that give the output
15825 requested. It's a great way of exploring list, string and arithmetic
15826 functions.")
15827 (license license:gpl3+)))
15828
15829 (define-public emacs-benchmark-init
15830 (package
15831 (name "emacs-benchmark-init")
15832 (version "1.0")
15833 (source
15834 (origin
15835 (method git-fetch)
15836 (uri (git-reference
15837 (url "https://github.com/dholm/benchmark-init-el")
15838 (commit version)))
15839 (file-name (git-file-name name version))
15840 (sha256
15841 (base32 "1kyn1izm5sbqbp9whnhk9dn3yc7zy8bz5san5w3ivi3rpx15fh94"))))
15842 (build-system emacs-build-system)
15843 (home-page "https://github.com/dholm/benchmark-init-el")
15844 (synopsis "Benchmark Emacs @code{require} and @code{load} calls")
15845 (description "@code{benchmark-init} provides a way to keep track of where
15846 time is being spent during Emacs startup in order to optimize startup time.")
15847 (license license:gpl3+)))
15848
15849 (define-public emacs-magit-gerrit
15850 (let ((version "0.3")
15851 (revision "1")
15852 (commit "ece6f369694aca17f3ac166ed2801b432acfe20d"))
15853 (package
15854 (name "emacs-magit-gerrit")
15855 (version (git-version version revision commit))
15856 (source (origin
15857 (method git-fetch)
15858 (uri (git-reference
15859 (url "https://github.com/terranpro/magit-gerrit")
15860 (commit commit)))
15861 (file-name (git-file-name name version))
15862 (sha256
15863 (base32
15864 "0mms0gxv9a3ns8lk5k2wjibm3088y1cmpr3axjdh6ppv7r5wdvii"))))
15865 (build-system emacs-build-system)
15866 (propagated-inputs
15867 `(("emacs-magit" ,emacs-magit)))
15868 (home-page "https://github.com/terranpro/magit-gerrit")
15869 (synopsis "Magit extension for Gerrit")
15870 (description "This Magit extension provides integration with Gerrit,
15871 which makes it possible to conduct Gerrit code reviews directly from within
15872 Emacs.")
15873 (license license:gpl3+))))
15874
15875 (define-public emacs-magit-org-todos-el
15876 (let ((commit "df206287737b9671f2e36ae7b1474ebbe9940d2a"))
15877 (package
15878 (name "emacs-magit-org-todos-el")
15879 (version (git-version "0.1.1" "1" commit))
15880 (source
15881 (origin
15882 (method git-fetch)
15883 (uri (git-reference
15884 (url "https://github.com/danielma/magit-org-todos.el")
15885 (commit commit)))
15886 (file-name (git-file-name name version))
15887 (sha256
15888 (base32
15889 "0kdp7k7jnnrkhsg0xh1c3h7iz0vgi120gf5xwl1hxy61avivnxrn"))))
15890 (propagated-inputs
15891 `(("magit" ,emacs-magit)))
15892 (build-system emacs-build-system)
15893 (home-page "https://github.com/danielma/magit-org-todos.el")
15894 (synopsis "Get todo.org into Emacs Magit status")
15895 (description "This package allows you to get @file{todo.org} into your
15896 magit status.
15897
15898 If you have a @file{todo.org} file with @code{TODO} items in the root of your
15899 repository, @code{magit-org-todos} will create a section in your Magit status
15900 buffer with each of your todos.")
15901 (license license:gpl3+))))
15902
15903 (define-public emacs-vcsh
15904 (package
15905 (name "emacs-vcsh")
15906 (version "0.4.4")
15907 (source
15908 (origin
15909 (method git-fetch)
15910 (uri (git-reference
15911 (url "https://gitlab.com/stepnem/vcsh-el.git")
15912 (commit version)))
15913 (file-name (git-file-name name version))
15914 (sha256
15915 (base32 "183pffdiqb7qqmjq31wxl3fpv8qswqgg99gb716rddiyk15ysri7"))))
15916 (build-system emacs-build-system)
15917 (home-page "https://gitlab.com/stepnem/vcsh-el")
15918 (synopsis "Emacs VCSH integration")
15919 (description
15920 "This library provides basic ``enter'' functionality and a few
15921 convenience commands to initialize a @acronym{VCSH, Version Control System for
15922 $HOME} repository and add files to it. It can be used in conjunction with
15923 Magit.")
15924 (license license:public-domain)))
15925
15926 (define-public emacs-f3
15927 (package
15928 (name "emacs-f3")
15929 (version "0.1")
15930 (source
15931 (origin
15932 (method git-fetch)
15933 (uri (git-reference
15934 (url "https://github.com/cosmicexplorer/f3")
15935 (commit version)))
15936 (file-name (git-file-name name version))
15937 (sha256
15938 (base32 "1qg48zbjdjqimw4516ymrsilz41zkib9321q0caf9474s9xyp2bi"))))
15939 (build-system emacs-build-system)
15940 (propagated-inputs
15941 `(("emacs-helm" ,emacs-helm)))
15942 (home-page "https://github.com/cosmicexplorer/f3")
15943 (synopsis "Fantastic File Finder for Emacs")
15944 (description
15945 "The Fantastic File Finder for Emacs. Find files fast, using helm.")
15946 (license license:gpl3+)))
15947
15948 (define-public emacs-lice-el
15949 (let ((commit "4339929927c62bd636f89bb39ea999d18d269250"))
15950 (package
15951 (name "emacs-lice-el")
15952 (version (git-version "0.2" "1" commit))
15953 (source (origin
15954 (method git-fetch)
15955 (uri (git-reference
15956 (url "https://github.com/buzztaiki/lice-el")
15957 (commit commit)))
15958 (file-name (git-file-name name version))
15959 (sha256
15960 (base32
15961 "0879z761b7gajkhq176ps745xpdrivch349crransv8fnsc759yb"))))
15962 (build-system emacs-build-system)
15963 (home-page "https://github.com/buzztaiki/lice-el")
15964 (synopsis "License and header template for Emacs")
15965 (description "@code{lice.el} provides following features:
15966
15967 @itemize
15968 @item License template management.
15969 @item File header insertion.
15970 @end itemize\n")
15971 (license license:gpl3+))))
15972
15973 (define-public emacs-academic-phrases
15974 (let ((commit "0823ed8c24b26c32f909b896a469833ec4d7b656"))
15975 (package
15976 (name "emacs-academic-phrases")
15977 (version (git-version "0.1" "1" commit))
15978 (source
15979 (origin
15980 (method git-fetch)
15981 (uri (git-reference
15982 (url "https://github.com/nashamri/academic-phrases")
15983 (commit commit)))
15984 (file-name (git-file-name name version))
15985 (sha256
15986 (base32
15987 "0qfzsq8jh05w4zkr0cvq3i1hdn97bq344vcqjg46sib26x3wpz6r"))))
15988 (build-system emacs-build-system)
15989 (propagated-inputs
15990 `(("emacs-dash" ,emacs-dash)
15991 ("emacs-s" ,emacs-s)
15992 ("emacs-ht" ,emacs-ht)))
15993 (home-page "https://github.com/nashamri/academic-phrases")
15994 (synopsis "Bypass that mental block when writing your papers")
15995 (description
15996 "When writing your academic paper, you might get stuck trying to find
15997 the right phrase that captures your intention. This package tries to
15998 alleviate that problem by presenting you with a list of phrases organized by
15999 the topic or by the paper section that you are writing. This package has
16000 around 600 phrases so far.
16001
16002 Using this package is easy, just call @code{academic-phrases} to get a list of
16003 phrases organized by topic, or call @code{academic-phrases-by-section} to
16004 browse the phrases by the paper section and fill-in the blanks if required.")
16005 (license license:gpl3+))))
16006
16007 (define-public emacs-auto-yasnippet
16008 (let ((commit "624b0d9711222073a2a3f2186e2605eb99fc83c9")
16009 (revision "2"))
16010 (package
16011 (name "emacs-auto-yasnippet")
16012 (version (git-version "0.3.0" revision commit))
16013 (source (origin
16014 (method git-fetch)
16015 (uri (git-reference
16016 (url "https://github.com/abo-abo/auto-yasnippet")
16017 (commit commit)))
16018 (file-name (git-file-name name version))
16019 (sha256
16020 (base32
16021 "15g8wi067f345xhpi0c12w0h04p4f4lpccwmdjdfj8hzfl4gyxy9"))))
16022 (build-system emacs-build-system)
16023 (arguments
16024 '(#:tests? #t
16025 #:test-command '("make" "test")))
16026 (propagated-inputs
16027 `(("emacs-yasnippet" ,emacs-yasnippet)))
16028 (home-page "https://github.com/abo-abo/auto-yasnippet/")
16029 (synopsis "Quickly create disposable yasnippets")
16030 (description "This package provides a hybrid of keyboard macros and
16031 yasnippet. You create the snippet on the go, usually to be used just in the
16032 one place. It's fast, because you're not leaving the current buffer, and all
16033 you do is enter the code you'd enter anyway, just placing ~ where you'd like
16034 yasnippet fields and mirrors to be.")
16035 (license license:gpl3+))))
16036
16037 (define-public emacs-highlight-numbers
16038 (package
16039 (name "emacs-highlight-numbers")
16040 (version "0.2.3")
16041 (source
16042 (origin
16043 (method git-fetch)
16044 (uri (git-reference
16045 (url "https://github.com/Fanael/highlight-numbers")
16046 (commit version)))
16047 (file-name (git-file-name name version))
16048 (sha256
16049 (base32 "1r07mpyr7rhd7bkg778hx6vbhb4n9ixgzkpszhgks7ri6ia38pj8"))))
16050 (build-system emacs-build-system)
16051 (propagated-inputs
16052 `(("emacs-parent-mode" ,emacs-parent-mode)))
16053 (home-page "https://github.com/Fanael/highlight-numbers")
16054 (synopsis "Highlight numbers in source code")
16055 (description "@code{highlight-numbers-mode} provides a minor mode for
16056 syntax highlighting of numeric literals in source code.
16057
16058 It s customizable: it's easy to add or redefine what exactly consitutes a
16059 \"number\" in given major mode. See @code{highlight-numbers-modelist}.")
16060 (license license:gpl3+)))
16061
16062 (define-public emacs-darkroom
16063 (package
16064 (name "emacs-darkroom")
16065 (version "0.3")
16066 (source
16067 (origin
16068 (method url-fetch)
16069 (uri (string-append "https://elpa.gnu.org/packages/"
16070 "darkroom-" version ".el"))
16071 (sha256
16072 (base32 "0l1xg5kqmjw22k78qnsln0ifx2dx74xxqj0qp8xxcpqvzzx0xh86"))))
16073 (build-system emacs-build-system)
16074 (home-page "https://elpa.gnu.org/packages/darkroom.html")
16075 (synopsis "Remove visual distractions and focus on writing")
16076 (description "@code{darkroom-mode} makes visual distractions disappear.
16077 The mode-line is temporarily elided, text is enlarged and margins are adjusted
16078 so that it's centered on the window.
16079
16080 @code{darkroom-tentative-mode} is similar, but it doesn't immediately turn-on
16081 @code{darkroom-mode}, unless the current buffer lives in the sole window of
16082 the Emacs frame (i.e. all other windows are deleted). Whenever the frame is
16083 split to display more windows and more buffers, the buffer exits
16084 @code{darkroom-mode}. Whenever they are deleted, the buffer re-enters
16085 @code{darkroom-mode}.")
16086 (license license:gpl3+)))
16087
16088 (define-public emacs-rsw-elisp
16089 (package
16090 (name "emacs-rsw-elisp")
16091 (version "1.0.5")
16092 (source (origin
16093 (method git-fetch)
16094 (uri (git-reference
16095 (url "https://github.com/rswgnu/rsw-elisp")
16096 (commit version)))
16097 (file-name (git-file-name name version))
16098 (sha256
16099 (base32
16100 "0dfq8myg0r91900bk1s70amsmm4mjk2qsg12v5pk7lla5d2vnyaf"))))
16101 (build-system emacs-build-system)
16102 (home-page "https://github.com/rswgnu/rsw-elisp")
16103 (synopsis "Improved expressions that interactively evaluate Emacs Lisp")
16104 (description "This package improves and replaces the GNU Emacs commands
16105 that interactively evaluate Emacs Lisp expressions. The new commands replace
16106 standard key bindings and are all prefixed with @code{rsw-elisp-}. They work
16107 the same way as the old commands when called non-interactively; only the
16108 interactive behavior should be different.")
16109 (license license:gpl3+)))
16110
16111 (define-public emacs-default-text-scale
16112 (let ((commit "968e985e219235f3e744d6d967e592acbaf6e0a8")
16113 (revision "1"))
16114 (package
16115 (name "emacs-default-text-scale")
16116 (version (string-append "0.1" "-" revision "."
16117 (string-take commit 7)))
16118 (source (origin
16119 (method git-fetch)
16120 (uri (git-reference
16121 (url "https://github.com/purcell/default-text-scale")
16122 (commit commit)))
16123 (file-name (git-file-name name version))
16124 (sha256
16125 (base32
16126 "0zds01c3q5yny6ab1fxfkzzgn1kgl3q23lxxap905f4qd70v922h"))))
16127 (build-system emacs-build-system)
16128 (home-page "https://github.com/purcell/default-text-scale")
16129 (synopsis "Adjust the font size in all Emacs frames")
16130 (description "This package provides commands for increasing or
16131 decreasing the default font size in all GUI Emacs frames.")
16132 (license license:gpl3+))))
16133
16134 (define-public emacs-mixed-pitch
16135 (package
16136 (name "emacs-mixed-pitch")
16137 (version "1.0.1")
16138 (source
16139 (origin
16140 (method git-fetch)
16141 (uri (git-reference
16142 (url "https://gitlab.com/jabranham/mixed-pitch.git")
16143 (commit version)))
16144 (file-name (git-file-name name version))
16145 (sha256
16146 (base32 "1458sy5b6bis1i0k23jdqk6hfqg0ghk637r3ajql2g19ym48rf58"))))
16147 (build-system emacs-build-system)
16148 (home-page "https://gitlab.com/jabranham/mixed-pitch")
16149 (synopsis "Mix variable- and fixed-pitch fonts in the same Emacs buffer")
16150 (description
16151 "@code{mixed-pitch-mode} is a minor mode that enables mixing
16152 variable-pitch and fixed-pitch fonts in the same buffer. The list
16153 @code{mixed-pitch-fixed-pitch-faces} defines the faces that are kept
16154 fixed-pitch,everything else becomes variable-pitch.")
16155 (license license:gpl3+)))
16156
16157 (define-public emacs-visual-regexp
16158 (package
16159 (name "emacs-visual-regexp")
16160 (version "1.1.2")
16161 (source
16162 (origin
16163 (method git-fetch)
16164 (uri (git-reference
16165 (url "https://github.com/benma/visual-regexp.el")
16166 (commit (string-append "v" version))))
16167 (file-name (git-file-name name version))
16168 (sha256
16169 (base32 "12p3rlhdphwmx1kxsjzcl2wj3i6qgpvw8iwhg1whs6yqgaxivixd"))))
16170 (build-system emacs-build-system)
16171 (home-page "https://github.com/benma/visual-regexp.el/")
16172 (synopsis "Regexp command with interactive visual feedback")
16173 (description "This package provides an Emacs regexp command with
16174 interactive visual feedback.")
16175 (license license:gpl3+)))
16176
16177 (define-public emacs-faceup
16178 (let ((commit "6c92dad56a133e14e7b27831e1bcf9b3a71ff154")
16179 (revision "1"))
16180 (package
16181 (name "emacs-faceup")
16182 (version (string-append "0.0.1" "-" revision "."
16183 (string-take commit 7)))
16184 (source
16185 (origin
16186 (method git-fetch)
16187 (uri (git-reference
16188 (url "https://github.com/Lindydancer/faceup")
16189 (commit commit)))
16190 (file-name (git-file-name name version))
16191 (sha256
16192 (base32
16193 "1yzmy7flrhrh0i10bdszx8idx6r8h6czm4vm4q0z6fp5fw94zwrx"))))
16194 (build-system emacs-build-system)
16195 (home-page "https://github.com/Lindydancer/faceup")
16196 (synopsis "Markup language for faces and font-lock regression testing")
16197 (description "Emacs is capable of highlighting buffers based on
16198 language-specific @code{font-lock} rules. This package makes it possible to
16199 perform regression test for packages that provide font-lock rules.")
16200 (license license:gpl3+))))
16201
16202 (define-public emacs-racket-mode
16203 (let ((commit "5eb31a284c8db5102bc71b1e2c6ce3a095ae085b")
16204 (revision "6"))
16205 (package
16206 (name "emacs-racket-mode")
16207 (version (git-version "0.0.2" revision commit))
16208 (source
16209 (origin
16210 (method git-fetch)
16211 (uri (git-reference
16212 (url "https://github.com/greghendershott/racket-mode")
16213 (commit commit)))
16214 (file-name (git-file-name name version))
16215 (sha256
16216 (base32
16217 "081h6rd0gv88m0wvnmghi242kl39x1sz34qr4cq9vz04iwvnmgrm"))))
16218 (build-system emacs-build-system)
16219 (arguments
16220 `(#:include '("\\.el$" "\\.rkt$")))
16221 (propagated-inputs
16222 `(("emacs-faceup" ,emacs-faceup)
16223 ("emacs-pos-tip" ,emacs-pos-tip)
16224 ("emacs-s" ,emacs-s)))
16225 (home-page "https://www.racket-mode.com/")
16226 (synopsis "Major mode for the Racket language")
16227 (description "@code{racket-mode} provides:
16228
16229 @itemize
16230 @item Focus on Racket (not various Schemes).
16231 @item Follow DrRacket concepts where applicable.
16232 @item Thorough font-lock and indent.
16233 @end itemize\n")
16234 (license license:gpl3+))))
16235
16236 (define-public emacs-grep-context
16237 (let ((commit "5a4e3efdf775755c1bbefcfe4b461c1166d81d7d")
16238 (revision "1"))
16239 (package
16240 (name "emacs-grep-context")
16241 (version (git-version "0.1.0" revision commit))
16242 (source
16243 (origin
16244 (method git-fetch)
16245 (uri (git-reference
16246 (url "https://github.com/mkcms/grep-context")
16247 (commit commit)))
16248 (file-name (git-file-name name version))
16249 (sha256
16250 (base32
16251 "00q7l4a3c0ay6g5ff9bfa2qgkiswsyh4s6pqnpg0zpzhvv5710f5"))))
16252 (build-system emacs-build-system)
16253 (propagated-inputs
16254 `(("emacs-dash" ,emacs-dash)))
16255 (home-page "https://github.com/mkcms/grep-context")
16256 (synopsis "Increase context in compilation and grep buffers")
16257 (description
16258 "This package provides an Emacs package for more context in
16259 compilation/grep buffers. Works with @code{wgrep}, @code{ack}, @code{ag},
16260 @code{ivy}.")
16261 (license license:gpl3+))))
16262
16263 (define-public emacs-helm-firefox
16264 (let ((commit "0ad34b7b5abc485a86cae6920c14de861cbeb085")
16265 (revision "1"))
16266 (package
16267 (name "emacs-helm-firefox")
16268 (version (string-append "0.0.1" "-" revision "."
16269 (string-take commit 7)))
16270 (source
16271 (origin
16272 (method git-fetch)
16273 (uri (git-reference
16274 (url "https://github.com/emacs-helm/helm-firefox")
16275 (commit commit)))
16276 (file-name (git-file-name name version))
16277 (sha256
16278 (base32
16279 "08mjsi2f9s29fkk35cj1rrparjnkm836qmbfdwdz7y51f9varjbs"))))
16280 (propagated-inputs
16281 `(("emacs-helm" ,emacs-helm)))
16282 (build-system emacs-build-system)
16283 (home-page "https://github.com/emacs-helm/helm-firefox")
16284 (synopsis "Display firefox bookmarks with Emacs Helm interface")
16285 (description "Display firefox bookmarks with Emacs Helm interface")
16286 (license license:gpl3+))))
16287
16288 (define-public emacs-interactive-align
16289 (package
16290 (name "emacs-interactive-align")
16291 (version "0.4.2")
16292 (source
16293 (origin
16294 (method git-fetch)
16295 (uri (git-reference
16296 (url "https://github.com/mkcms/interactive-align")
16297 (commit (string-append "v" version))))
16298 (file-name (git-file-name name version))
16299 (sha256
16300 (base32
16301 "0bh03w91i622hbar5dcq631ndxx1y8kd3h655pgw1g0lqkv1mlnc"))))
16302 (build-system emacs-build-system)
16303 (home-page "https://github.com/mkcms/interactive-align/")
16304 (synopsis "Interactive align-regexp command in Emacs")
16305 (description "Interactive align-regexp command in Emacs")
16306 (license license:gpl3+)))
16307
16308 (define-public emacs-shift-number
16309 (package
16310 (name "emacs-shift-number")
16311 (version "0.1")
16312 (source
16313 (origin
16314 (method git-fetch)
16315 (uri (git-reference
16316 (url "https://github.com/alezost/shift-number.el")
16317 (commit (string-append "v" version))))
16318 (file-name (git-file-name name version))
16319 (sha256
16320 (base32
16321 "0zlwmzsxkv4mkggylxfx2fkrwgz7dz3zbg2gkn2rxcpy2k2gla64"))))
16322 (build-system emacs-build-system)
16323 (home-page "https://github.com/alezost/shift-number.el")
16324 (synopsis "Increase or decrease the number at point")
16325 (description "@code{emacs-shift-number} provides commands
16326 @code{shift-number-up} to increase and @code{shift-number-down} to
16327 decrease the number at point.")
16328 (license license:gpl3+)))
16329
16330 (define-public emacs-highlight-defined
16331 (package
16332 (name "emacs-highlight-defined")
16333 (version "0.1.5")
16334 (source
16335 (origin
16336 (method git-fetch)
16337 (uri (git-reference
16338 (url "https://github.com/Fanael/highlight-defined")
16339 (commit version)))
16340 (file-name (git-file-name name version))
16341 (sha256
16342 (base32 "08czwa165rnd5z0dwwdddn7zi5w63sdk31l47bj0598kbly01n7r"))))
16343 (build-system emacs-build-system)
16344 (home-page "https://github.com/Fanael/highlight-defined")
16345 (synopsis "Syntax highlighting of known Elisp symbols")
16346 (description "Minor mode providing syntax highlighting of known Emacs Lisp
16347 symbols. Currently the code distinguishes Lisp functions, built-in functions,
16348 macros, faces and variables. To enable call @code{highlight-defined-mode}. ")
16349 (license license:gpl3+)))
16350
16351 (define-public emacs-parinfer-mode
16352 (package
16353 (name "emacs-parinfer-mode")
16354 (version "0.4.10")
16355 (source
16356 (origin
16357 (method git-fetch)
16358 (uri (git-reference
16359 (url "https://github.com/DogLooksGood/parinfer-mode")
16360 (commit (string-append "v" version))))
16361 (file-name (git-file-name name version))
16362 (sha256
16363 (base32 "0v97ncb0w1slb0x8861l3yr1kqz6fgw1fwl1z9lz6hh8p2ih34sk"))))
16364 (propagated-inputs
16365 `(("emacs-dash" ,emacs-dash)
16366 ("emacs-rainbow-delimiters" ,emacs-rainbow-delimiters)
16367 ("emacs-company" ,emacs-company)))
16368 (build-system emacs-build-system)
16369 (home-page "https://github.com/DogLooksGood/parinfer-mode/")
16370 (synopsis "Lisp structure editing mode")
16371 (description "@code{parinfer-mode} is a proof-of-concept editor
16372 mode for Lisp programming languages. It will infer some changes to
16373 keep Parens and Indentation inline with one another.")
16374 (license license:gpl3+)))
16375
16376 (define-public emacs-helm-eww
16377 (package
16378 (name "emacs-helm-eww")
16379 (version "1.2")
16380 (source (origin
16381 (method git-fetch)
16382 (uri (git-reference
16383 (url "https://github.com/emacs-helm/helm-eww")
16384 (commit version)))
16385 (file-name (git-file-name name version))
16386 (sha256
16387 (base32
16388 "0hpq1h0p69c9k6hkd2mjpprx213sc5475q7pr2zpmwrjdzgcv70z"))))
16389 (propagated-inputs
16390 `(("emacs-helm" ,emacs-helm)))
16391 (build-system emacs-build-system)
16392 (home-page "https://github.com/emacs-helm/helm-eww/")
16393 (synopsis "Helm interface to EWW")
16394 (description "This package provides a Helm interface for EWW buffers,
16395 bookmarks and history.")
16396 (license license:gpl3+)))
16397
16398 (define-public emacs-stumpwm-mode
16399 (let ((commit "920f8fc1488f7953f205e1dda4c2ecbbbda56d6")
16400 (revision "3"))
16401 (package
16402 (name "emacs-stumpwm-mode")
16403 (version (git-version "0.0.1" revision commit))
16404 (source (origin
16405 (method git-fetch)
16406 (uri (git-reference
16407 (url "https://github.com/stumpwm/stumpwm-contrib")
16408 (commit commit)))
16409 (file-name (git-file-name name version))
16410 (sha256
16411 (base32
16412 "0giac390bq95ag41xkxqp8jjrhfx1wpgglz7jg5rkm0wjhcwmyml"))))
16413 (build-system emacs-build-system)
16414 (arguments
16415 `(#:phases
16416 (modify-phases %standard-phases
16417 (add-after 'unpack 'chdir-elisp
16418 ;; Elisp directory is not in root of the source.
16419 (lambda _
16420 (chdir "util/swm-emacs"))))))
16421 (home-page "https://github.com/stumpwm/stumpwm-contrib")
16422 (synopsis "Emacs minor-mode for Stumpwm")
16423 (description "Emacs minor-mode for Stumpwm")
16424 (license license:gpl3+))))
16425
16426 (define-public emacs-irfc
16427 (package
16428 (name "emacs-irfc")
16429 (version "20130824.507-1")
16430 (source
16431 (origin
16432 (method url-fetch)
16433 (uri "https://www.emacswiki.org/emacs/download/irfc.el")
16434 (file-name (string-append "irfc-" version ".el"))
16435 (sha256
16436 (base32
16437 "0rbfrza56kvspvgrwg0b5bj30d0qncqdsmfxn3y5caq4ifcj77hv"))))
16438 (build-system emacs-build-system)
16439 (home-page "https://www.emacswiki.org/emacs/download/irfc.el")
16440 (synopsis "Interface for IETF RFC document")
16441 (description
16442 "This package provides an Emacs interface for IETF RFC document.")
16443 (license license:gpl3+)))
16444
16445 (define-public emacs-ido-vertical-mode
16446 (package
16447 (name "emacs-ido-vertical-mode")
16448 (version "0.1.6")
16449 (source
16450 (origin
16451 (method git-fetch)
16452 (uri (git-reference
16453 (url "https://github.com/creichert/ido-vertical-mode.el")
16454 (commit (string-append "v" version))))
16455 (file-name (git-file-name name version))
16456 (sha256
16457 (base32 "1lv82q639xjnmvby56nwqn23ijh6f163bk675s33dkingm8csj8k"))))
16458 (build-system emacs-build-system)
16459 (home-page "https://github.com/creichert/ido-vertical-mode.el")
16460 (synopsis "Makes ido-mode display vertically")
16461 (description "Makes ido-mode display prospects vertically.")
16462 (license license:gpl3+)))
16463
16464 (define-public emacs-wordgen
16465 (package
16466 (name "emacs-wordgen")
16467 (version "0.1.4")
16468 (source
16469 (origin
16470 (method git-fetch)
16471 (uri (git-reference
16472 (url "https://github.com/Fanael/wordgen.el")
16473 (commit version)))
16474 (file-name (git-file-name name version))
16475 (sha256
16476 (base32 "06vbc9ycz1nbjwjkg99y3lj6jwb6lnwnmkqf09yr00jjrrfhfash"))))
16477 (build-system emacs-build-system)
16478 (home-page "https://github.com/Fanael/wordgen.el")
16479 (synopsis "Random word generator")
16480 (description "This package provides functions to generate random words
16481 using user-provided rules.")
16482 (license license:gpl3+)))
16483
16484 (define-public emacs-on-screen
16485 (package
16486 (name "emacs-on-screen")
16487 (version "1.3.3")
16488 (source
16489 (origin
16490 (method url-fetch)
16491 (uri (string-append
16492 "https://elpa.gnu.org/packages/on-screen-" version ".el"))
16493 (file-name (string-append name "-" version ".el"))
16494 (sha256
16495 (base32 "0ga4hw23ki583li2z2hr7l6hk1nc2kdg4afndg06cm9jn158wza7"))))
16496 (build-system emacs-build-system)
16497 (home-page "https://github.com/michael-heerdegen/on-screen.el")
16498 (synopsis "Guide your eyes while scrolling")
16499 (description
16500 "Scrolling can be distracting because your eyes may lose
16501 orientation. This library implements a minor mode that highlights
16502 the previously visible buffer part after each scroll.")
16503 (license license:gpl3+)))
16504
16505 (define-public emacs-highlight-escape-sequences
16506 ;; No release upstream. Extract version from main file.
16507 (let ((commit "08d846a7aa748209d65fecead2b6a766c3e5cb41")
16508 (revision "0"))
16509 (package
16510 (name "emacs-highlight-escape-sequences")
16511 (version (git-version "0.4" revision commit))
16512 (source
16513 (origin
16514 (method git-fetch)
16515 (uri (git-reference
16516 (url "https://github.com/dgutov/highlight-escape-sequences")
16517 (commit commit)))
16518 (file-name (git-file-name name version))
16519 (sha256
16520 (base32 "05mc3w1f8ykf80914a1yddw6j8cmh0h57llm07xh89s53821v2is"))))
16521 (build-system emacs-build-system)
16522 (home-page "https://github.com/dgutov/highlight-escape-sequences")
16523 (synopsis "Highlight escape sequences in Emacs")
16524 (description "@code{highlight-escape-sequences} provides an
16525 Emacs minor mode to escape sequences in code.")
16526 (license license:gpl3+))))
16527
16528 (define-public emacs-dashboard
16529 (package
16530 (name "emacs-dashboard")
16531 (version "1.6.0")
16532 (source
16533 (origin
16534 (method git-fetch)
16535 (uri (git-reference
16536 (url "https://github.com/rakanalh/emacs-dashboard")
16537 (commit version)))
16538 (file-name (git-file-name name version))
16539 (sha256
16540 (base32 "1g6g8vad1kdmv1zxp95a8sn70idl26isqjb3xk1r95pqnx1cn591"))))
16541 (build-system emacs-build-system)
16542 (propagated-inputs
16543 `(("emacs-page-break-lines" ,emacs-page-break-lines)))
16544 (arguments
16545 '(#:include '("\\.el$" "\\.txt$" "\\.png$")
16546 #:phases
16547 (modify-phases %standard-phases
16548 (add-after 'unpack 'patch-dashboard-widgets
16549 ;; This phase fixes compilation error.
16550 (lambda _
16551 (chmod "dashboard-widgets.el" #o666)
16552 (emacs-substitute-variables "dashboard-widgets.el"
16553 ("dashboard-init-info"
16554 '(format "Loaded in %s" (emacs-init-time))))
16555 #t)))))
16556 (home-page "https://github.com/rakanalh/emacs-dashboard")
16557 (synopsis "Startup screen extracted from Spacemacs")
16558 (description "This package provides an extensible Emacs dashboard, with
16559 sections for bookmarks, projectil projects, org-agenda and more. ")
16560 (license license:gpl3+)))
16561
16562 (define-public emacs-slime-company
16563 (package
16564 (name "emacs-slime-company")
16565 (version "1.1")
16566 (source
16567 (origin
16568 (method git-fetch)
16569 (uri (git-reference
16570 (url "https://github.com/anwyn/slime-company")
16571 (commit (string-append "v" version))))
16572 (file-name (git-file-name name version))
16573 (sha256
16574 (base32 "1hl1hqkc1pxga9k2k8k15d7dip7sfsmwf4wm4sh346m6nj606q8g"))))
16575 (build-system emacs-build-system)
16576 (propagated-inputs
16577 `(("emacs-slime" ,emacs-slime)
16578 ("emacs-company" ,emacs-company)))
16579 (home-page "https://company-mode.github.io")
16580 (synopsis "SLIME completion backend for @code{company-mode}")
16581 (description
16582 "This is a backend implementation for the completion package
16583 @code{company-mode} which supports the normal and the fuzzy completion
16584 modes of SLIME.")
16585 (license license:gpl3+)))
16586
16587 (define-public emacs-sml-mode
16588 (package
16589 (name "emacs-sml-mode")
16590 (version "6.10")
16591 (source
16592 (origin
16593 (method url-fetch)
16594 (uri (string-append "https://elpa.gnu.org/packages/sml-mode-"
16595 version ".el"))
16596 (sha256
16597 (base32 "01yf0s474r9xhj6nbs14ljn9ccxb5yy758i17c8nmgmqvm8fx7sb"))))
16598 (build-system emacs-build-system)
16599 (home-page "https://elpa.gnu.org/packages/sml-mode.html")
16600 (synopsis "Major mode for editing (Standard) ML")
16601 (description "SML-MODE is a major Emacs mode for editing Standard ML.
16602 It provides syntax highlighting and automatic indentation and
16603 comes with sml-proc which allows interaction with an inferior SML
16604 interactive loop.")
16605 (license license:gpl3+)))
16606
16607 (define-public emacs-eros
16608 (let ((commit "dd8910279226259e100dab798b073a52f9b4233a")
16609 (revision "2"))
16610 (package
16611 (name "emacs-eros")
16612 (version (git-version "0.0.1" revision commit))
16613 (source
16614 (origin
16615 (method git-fetch)
16616 (uri (git-reference
16617 (url "https://github.com/xiongtx/eros")
16618 (commit commit)))
16619 (file-name (git-file-name name version))
16620 (sha256
16621 (base32
16622 "08chj3a0lw4ygi2sv7wj0i6ihfbi8jhylr8p92inif8b88r6wg3k"))))
16623 (build-system emacs-build-system)
16624 (home-page "https://github.com/xiongtx/eros")
16625 (synopsis "Evaluation result overlays")
16626 (description "@code{eros} provides evaluation result overlays.")
16627 (license license:gpl3+))))
16628
16629 (define-public emacs-stickyfunc-enhance
16630 (let ((commit "13bdba51fcd83ccbc3267959d23afc94d458dcb0")
16631 (revision "1"))
16632 (package
16633 (name "emacs-stickyfunc-enhance")
16634 (version "0.1")
16635 (source
16636 (origin
16637 (method git-fetch)
16638 (uri (git-reference
16639 (url "https://github.com/tuhdo/semantic-stickyfunc-enhance")
16640 (commit commit)))
16641 (file-name (git-file-name name version))
16642 (sha256
16643 (base32
16644 "16dxjsr5nj20blww4xpd4jzgjprzzh1nwvb810ggdmp9paf4iy0g"))))
16645 (build-system emacs-build-system)
16646 (home-page "https://github.com/tuhdo/semantic-stickyfunc-enhance")
16647 (synopsis "Enhancement to stock @code{semantic-stickyfunc-mode}")
16648 (description
16649 "@code{semantic-stickyfunc-mode} shows the function point is currently
16650 in at the first line of the current buffer. This is useful when you have a
16651 very long function that spreads more than a screen, and you don't have to
16652 scroll up to read the function name and then scroll down to original position.")
16653 (license license:gpl3+))))
16654
16655 (define-public emacs-git-auto-commit-mode
16656 (package
16657 (name "emacs-git-auto-commit-mode")
16658 (version "4.7.0")
16659 (source
16660 (origin
16661 (method git-fetch)
16662 (uri (git-reference
16663 (url "https://github.com/ryuslash/git-auto-commit-mode")
16664 (commit version)))
16665 (file-name (git-file-name name version))
16666 (sha256
16667 (base32 "0gpib57f7xza04g3iyihw5v15hb7pncqsmvyggib902yvcxlkvqf"))))
16668 (build-system emacs-build-system)
16669 (native-inputs
16670 `(("emacs-buttercup" ,emacs-buttercup)
16671 ("git" ,git)))
16672 (arguments
16673 `(#:tests? #t
16674 #:test-command '("buttercup" "-L" ".")))
16675 (home-page "https://github.com/ryuslash/git-auto-commit-mode")
16676 (synopsis "Emacs Minor mode to automatically commit and push")
16677 (description "@code{git-auto-commit-mode} is an Emacs minor mode that
16678 tries to commit changes to a file after every save.
16679
16680 When @code{gac-automatically-push-p} is non-nil, it also tries to push to the
16681 current upstream.")
16682 (license license:gpl3+)))
16683
16684 (define-public emacs-scroll-on-drag
16685 (let ((commit "888abd04c34753b1fc4b2fe541bc004ebec5c996")
16686 (revision "1"))
16687 (package
16688 (name "emacs-scroll-on-drag")
16689 (version (git-version "0.1" revision commit))
16690 (source
16691 (origin
16692 (method git-fetch)
16693 (uri (git-reference
16694 (url "https://gitlab.com/ideasman42/emacs-scroll-on-drag.git")
16695 (commit commit)))
16696 (file-name (git-file-name name version))
16697 (sha256
16698 (base32
16699 "1si4hdqa3jw1inbyh3wb3i5i9grbms1nwky3vyk9zg7iznwm8a9p"))))
16700 (build-system emacs-build-system)
16701 (home-page "https://gitlab.com/ideasman42/emacs-scroll-on-drag")
16702 (synopsis "Interactive scrolling")
16703 (description "This package permits scrolling at increasing speeds based
16704 on drag distance.")
16705 (license license:gpl3+))))
16706
16707 (define-public emacs-company-restclient
16708 (package
16709 (name "emacs-company-restclient")
16710 (version "0.3.0")
16711 (source
16712 (origin
16713 (method git-fetch)
16714 (uri (git-reference
16715 (url "https://github.com/iquiw/company-restclient")
16716 (commit (string-append "v" version))))
16717 (file-name (git-file-name name version))
16718 (sha256
16719 (base32 "0yp0hlrgcr6yy1xkjvfckys2k24x9xg7y6336ma61bdwn5lpv0x0"))))
16720 (build-system emacs-build-system)
16721 (propagated-inputs
16722 `(("emacs-company" ,emacs-company)
16723 ("emacs-know-your-http-well" ,emacs-know-your-http-well)
16724 ("emacs-restclient" ,emacs-restclient)))
16725 (home-page "https://github.com/iquiw/company-restclient")
16726 (synopsis "Company-mode completion back-end for restclient-mode")
16727 (description "@code{company-mode} back-end for
16728 @code{restclient-mode}.
16729
16730 It provides auto-completion for HTTP methods and headers in
16731 @code{restclient-mode}. Completion source is given by
16732 @code{know-your-http-well}.")
16733 (license license:gpl3+)))
16734
16735 (define-public emacs-noflet
16736 (let ((version "20170629")
16737 (revision "1")
16738 (commit "7ae84dc3257637af7334101456dafe1759c6b68a"))
16739 (package
16740 (name "emacs-noflet")
16741 (version (git-version version revision commit))
16742 (source
16743 (origin
16744 (method git-fetch)
16745 (uri (git-reference
16746 (url "https://github.com/nicferrier/emacs-noflet")
16747 (commit commit)))
16748 (file-name (git-file-name name version))
16749 (sha256
16750 (base32
16751 "0g70gnmfi8n24jzfci9nrj0n9bn1qig7b8f9f325rin8h7x32ypf"))))
16752 (build-system emacs-build-system)
16753 (arguments
16754 `(#:phases
16755 (modify-phases %standard-phases
16756 (add-after 'unpack 'require-dash
16757 ;; noflet.el uses -map from dash, but (require 'dash) is
16758 ;; missing. So, add it.
16759 (lambda _
16760 (substitute* "noflet.el"
16761 ((";;; Code:") ";;; Code:\n(require 'dash)"))
16762 #t)))))
16763 (propagated-inputs
16764 `(("emacs-dash" ,emacs-dash)))
16765 (home-page "https://github.com/nicferrier/emacs-noflet")
16766 (synopsis "Locally override functions")
16767 (description "@code{emacs-noflet} lets you locally override functions,
16768 in the manner of @command{flet}, but with access to the original function
16769 through the symbol: @command{this-fn}.")
16770 (license license:gpl3+))))
16771
16772 (define-public emacs-dumb-jump
16773 (package
16774 (name "emacs-dumb-jump")
16775 (version "0.5.3")
16776 (source
16777 (origin
16778 (method git-fetch)
16779 (uri (git-reference
16780 (url "https://github.com/jacktasia/dumb-jump")
16781 (commit (string-append "v" version))))
16782 (file-name (git-file-name name version))
16783 (sha256
16784 (base32 "1njf60264snhxrd36m4z687lqfkis0p9mmrr7cf1c8l0lfdvawxi"))))
16785 (build-system emacs-build-system)
16786 (arguments
16787 `(#:tests? #f ; FIXME: Tests freeze when run.
16788 #:test-command '("ert-runner")
16789 #:phases
16790 (modify-phases %standard-phases
16791 (add-after 'unpack 'set-shell
16792 (lambda _
16793 ;; Setting the SHELL environment variable is required for the
16794 ;; tests to find sh.
16795 (setenv "SHELL" (which "sh"))
16796 #t)))))
16797 (native-inputs
16798 `(("emacs-el-mock" ,emacs-el-mock)
16799 ("emacs-noflet" ,emacs-noflet)
16800 ("emacs-undercover" ,emacs-undercover)
16801 ("ert-runner" ,emacs-ert-runner)))
16802 (propagated-inputs
16803 `(("emacs-f" ,emacs-f)
16804 ("emacs-popup" ,emacs-popup)))
16805 (home-page "https://github.com/jacktasia/dumb-jump")
16806 (synopsis "Jump to definition for multiple languages without configuration")
16807 (description "Dumb Jump is an Emacs \"jump to definition\" package with
16808 support for multiple programming languages that favors \"just working\" over
16809 speed or accuracy. This means minimal --- and ideally zero --- configuration
16810 with absolutely no stored indexes (tags) or persistent background processes.
16811 Dumb Jump performs best with The Silver Searcher @command{ag} or ripgrep
16812 @command{rg} installed.")
16813 (license license:gpl3+)))
16814
16815 (define-public emacs-dts-mode
16816 (let ((commit "9ee0854446dcc6c53d2b8d2941051768dba50344")
16817 (revision "1"))
16818 (package
16819 (name "emacs-dts-mode")
16820 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
16821 (source
16822 (origin
16823 (method git-fetch)
16824 (uri (git-reference
16825 (url "https://github.com/bgamari/dts-mode")
16826 (commit commit)))
16827 (file-name (git-file-name name version))
16828 (sha256
16829 (base32
16830 "1k8lljdbc90nd29xrhdrsscxavzdq532wq2mg7ljc94krj7538b1"))))
16831 (build-system emacs-build-system)
16832 (home-page "https://github.com/bgamari/dts-mode.git")
16833 (synopsis "Emacs minor mode for editing device tree files")
16834 (description
16835 "This package provides an Emacs minor mode for highlighting
16836 device tree files.")
16837 (license license:gpl3+))))
16838
16839 (define-public emacs-daemons
16840 (package
16841 (name "emacs-daemons")
16842 (version "2.0.0")
16843 (source
16844 (origin
16845 (method git-fetch)
16846 (uri (git-reference
16847 (url "https://github.com/cbowdon/daemons.el")
16848 (commit version)))
16849 (file-name (git-file-name name version))
16850 (sha256
16851 (base32
16852 "00bkzfaw3bqykcks610vk9wlpa2z360xn32bpsrycacwfv29j7g4"))))
16853 (build-system emacs-build-system)
16854 (home-page "https://github.com/cbowdon/daemons.el")
16855 (synopsis "Emacs UI for managing init system services")
16856 (description
16857 "This is an Emacs mode to give you a UI for managing init system
16858 daemons (services) for those getting tired of typing out @code{sudo service
16859 my_thing reload} all the time. It offers a consistent UI over different init
16860 systems.")
16861 (license license:gpl3+)))
16862
16863 (define-public emacs-isearch+
16864 (let ((commit "7c251b91a67bf914066e23e269ba52fda5b45f5f")
16865 (revision "2"))
16866 (package
16867 (name "emacs-isearch+")
16868 (version (git-version "0" revision commit))
16869 (source
16870 (origin
16871 (method git-fetch)
16872 (uri (git-reference
16873 (url "https://github.com/emacsmirror/isearch-plus")
16874 (commit commit)))
16875 (file-name (git-file-name name version))
16876 (sha256
16877 (base32
16878 "1w2799714jcdycjlxgs8lpmmz6dmzvcvqy8xwxhvmgpb60g4f2yr"))))
16879 (build-system emacs-build-system)
16880 (home-page "https://www.emacswiki.org/emacs/isearch+.el")
16881 (synopsis "Extensions to @code{isearch.el}")
16882 (description "This package extends @code{isearch} with advice, dynamic
16883 filters, highlighting of regexp group levels, and more.")
16884 (license license:gpl2+))))
16885
16886 (define-public emacs-eshell-bookmark
16887 (package
16888 (name "emacs-eshell-bookmark")
16889 (version "2.0.0")
16890 (source
16891 (origin
16892 (method git-fetch)
16893 (uri (git-reference
16894 (url "https://github.com/Fuco1/eshell-bookmark")
16895 (commit version)))
16896 (file-name (git-file-name name version))
16897 (sha256
16898 (base32
16899 "14dmsnixf9vqdhsixw693sml0fn80zcf0b37z049fb40cmppqxdw"))))
16900 (build-system emacs-build-system)
16901 (home-page "https://github.com/Fuco1/eshell-bookmark")
16902 (synopsis "Provide @file{bookmark.el} integration for @code{eshell}")
16903 (description
16904 "This package allows for bookmarking @code{eshell} buffers. Upon
16905 visiting the bookmark, a new @code{eshell} session will be opened in the
16906 appropriate directory if no @code{eshell} session is active.")
16907 (license license:gpl3+)))
16908
16909 (define-public emacs-eshell-z
16910 (package
16911 (name "emacs-eshell-z")
16912 (version "0.4")
16913 (source
16914 (origin
16915 (method git-fetch)
16916 (uri (git-reference
16917 (url "https://github.com/xuchunyang/eshell-z")
16918 (commit (string-append "v" version))))
16919 (file-name (git-file-name name version))
16920 (sha256
16921 (base32
16922 "13dwaq8q23rwmrkpy3gvf7aswrkk6b9ak5221xl7n0bld4wdhq3j"))))
16923 (build-system emacs-build-system)
16924 (home-page "https://github.com/xuchunyang/eshell-z")
16925 (synopsis "Quick navigation to frequently visited directories")
16926 (description
16927 "This package is a port of @code{z}, and keeps track of visited directories
16928 and commands invoked within them in order to enable navigation via input of
16929 matching regexps.")
16930 (license license:gpl3+)))
16931
16932 (define-public emacs-esh-autosuggest
16933 (package
16934 (name "emacs-esh-autosuggest")
16935 (version "2.0.0")
16936 (source
16937 (origin
16938 (method git-fetch)
16939 (uri (git-reference
16940 (url "https://github.com/dieggsy/esh-autosuggest")
16941 (commit version)))
16942 (file-name (git-file-name name version))
16943 (sha256
16944 (base32
16945 "116pdjgpjy9b0psm5kzwkwy7dq8vn0p6dy75dl1zsy2xrjf1iqdw"))))
16946 (build-system emacs-build-system)
16947 (propagated-inputs `(("emacs-company" ,emacs-company)))
16948 (home-page "https://github.com/dieggsy/esh-autosuggest")
16949 (synopsis "Fish-like autosuggestions in Eshell")
16950 (description
16951 "This package assumes you use something other than company for eshell
16952 completion (e.g. @code{eshell-pcomplete}, @code{completion-at-point},
16953 @code{helm-esh-pcomplete}). @code{company-mode} is used solely as a mechanism
16954 for history autosuggestions.
16955
16956 Unless you're using @code{use-package}'s hook keyword, you can enable the
16957 autosuggestions with:
16958 @code{(add-hook 'eshell-mode-hook #'esh-autosuggest-mode)}")
16959 (license license:gpl3+)))
16960
16961 (define-public emacs-desktop-environment
16962 (package
16963 (name "emacs-desktop-environment")
16964 (version "0.3.0")
16965 (source
16966 (origin
16967 (method git-fetch)
16968 (uri (git-reference
16969 (url "https://gitlab.petton.fr/DamienCassou/desktop-environment")
16970 (commit (string-append "v" version))))
16971 (file-name (git-file-name name version))
16972 (sha256
16973 (base32
16974 "195n99xvxyh4cfxjpfa1h1maalqrxf7nyi0bh3lqa1z6z5bdb6x2"))))
16975 (build-system emacs-build-system)
16976 (home-page "https://gitlab.petton.fr/DamienCassou/desktop-environment")
16977 (synopsis "Control your GNU/Linux desktop environment from Emacs")
16978 (description
16979 "This package helps you control your GNU/Linux desktop from Emacs.
16980 With @code{desktop-environment}, you can control the brightness and volume as
16981 well as take screenshots and lock your screen. The package depends on the
16982 availability of shell commands to do the hard work for us. These commands can
16983 be changed by customizing the appropriate variables.")
16984 (license license:gpl3+)))
16985
16986 (define-public emacs-org-caldav
16987 (let ((commit "a563500c9884f38ce08793e2964f8274adde163d"))
16988 (package
16989 (name "emacs-org-caldav")
16990 (version (git-version "0.0.0" "1" commit))
16991 (source
16992 (origin
16993 (method git-fetch)
16994 (uri (git-reference
16995 (url "https://github.com/dengste/org-caldav")
16996 (commit commit)))
16997 (file-name (git-file-name name version))
16998 (sha256
16999 (base32
17000 "18qi1iv5dc0gsvkv9ifal3cjpm568nlb907v8a53cnm4439x1l0l"))))
17001 (build-system emacs-build-system)
17002 (arguments
17003 ;; Tests require to have two specific calendars on a test server.
17004 `(#:exclude '("^org-caldav-testsuite\\.el")))
17005 (propagated-inputs
17006 `(("emacs-org" ,emacs-org)))
17007 (home-page "https://github.com/dengste/org-caldav")
17008 (synopsis "Sync Org files with external calendars via the CalDAV protocol")
17009 (description "Synchronize between events in Org files and a CalDAV
17010 calendar.")
17011 (license license:gpl3+))))
17012
17013 (define-public emacs-zotxt
17014 (package
17015 (name "emacs-zotxt")
17016 (version "20180518")
17017 (source
17018 (origin
17019 (method git-fetch)
17020 (uri (git-reference
17021 (url "https://github.com/egh/zotxt-emacs")
17022 (commit "23a4a9f74a658222027d53a9a83cd4bcc583ca8b")))
17023 (file-name (git-file-name name version))
17024 (sha256
17025 (base32 "09fq3w9yk9kn6bz7y9kgpiw612dvj3yzsdk734js6zgb0p8lfd2c"))))
17026 (build-system emacs-build-system)
17027 (propagated-inputs
17028 `(("emacs-deferred" ,emacs-deferred)
17029 ("emacs-request" ,emacs-request)))
17030 (home-page "https://github.com/egh/zotxt-emacs")
17031 (synopsis "Integrate Emacs with Zotero")
17032 (description "This package provides two integration features between Emacs
17033 and the Zotero research assistant: Insertion of links to Zotero items into an
17034 Org-mode file, and citations of Zotero items in Pandoc Markdown files.")
17035 (license license:gpl3+)))
17036
17037 (define-public emacs-evil-magit
17038 (let ((commit "253c644807013fe92429acdef418748794b8f254")
17039 (revision "4"))
17040 (package
17041 (name "emacs-evil-magit")
17042 (version (git-version "0.4.2" revision commit))
17043 (source
17044 (origin
17045 (method git-fetch)
17046 (uri (git-reference
17047 (url "https://github.com/emacs-evil/evil-magit")
17048 (commit commit)))
17049 (file-name (git-file-name name version))
17050 (sha256
17051 (base32
17052 "08mh7phxsdb9w4dfs0pmr4l4fdzzr2rm88z2s8karfi5j5ik2ag5"))))
17053 (build-system emacs-build-system)
17054 (propagated-inputs
17055 `(("emacs-evil" ,emacs-evil)
17056 ("magit" ,emacs-magit)))
17057 (arguments
17058 `(#:tests? #t
17059 #:test-command '("emacs" "-Q" "-batch"
17060 "-L" "."
17061 "-l" "evil-magit-tests"
17062 "-f" "ert-run-tests-batch-and-exit")))
17063 (home-page
17064 "https://github.com/emacs-evil/evil-magit")
17065 (synopsis "Evil-based key bindings for Magit")
17066 (description
17067 "This Emacs library configures Magit and Evil to play well with each other.
17068 For some background see @url{https://github.com/magit/evil-magit/issues/1}.
17069 See the README at @url{https://github.com/justbur/evil-magit} for a table
17070 describing the key binding changes.")
17071 (license license:gpl3+))))
17072
17073 (define-public emacs-evil-multiedit
17074 (package
17075 (name "emacs-evil-multiedit")
17076 (version "1.3.9")
17077 (source
17078 (origin
17079 (method git-fetch)
17080 (uri (git-reference
17081 (url "https://github.com/hlissner/evil-multiedit")
17082 (commit (string-append "v" version))))
17083 (file-name (git-file-name name version))
17084 (sha256
17085 (base32
17086 "19h3kqylqzbjv4297wkzzxdmn9yxbg6z4ga4ssrqri90xs7m3rw3"))))
17087 (build-system emacs-build-system)
17088 (propagated-inputs
17089 `(("emacs-evil" ,emacs-evil)
17090 ("emacs-iedit" ,emacs-iedit)))
17091 (native-inputs
17092 `(("emacs-ert-runner" ,emacs-ert-runner)))
17093 (arguments
17094 `(#:phases
17095 (modify-phases %standard-phases
17096 (add-before 'check 'fix-makefile
17097 (lambda _
17098 (substitute* "Makefile"
17099 (("@cask exec ") ""))
17100 #t)))
17101 #:tests? #t
17102 #:test-command '("make" "test")))
17103 (home-page
17104 "https://github.com/hlissner/evil-multiedit")
17105 (synopsis "Multiple cursors for Evil mode")
17106 (description
17107 "This plugin was an answer to the lack of proper multiple cursor support
17108 in Emacs+Evil. It allows you to select and edit matches interactively,
17109 integrating @code{iedit-mode} into Evil mode with an attempt at sensible
17110 defaults.")
17111 (license license:gpl3+)))
17112
17113 (define-public emacs-evil-mc
17114 (let ((commit "1cabb869fe70cef49f7dc06f015c3ade1a969c8c")
17115 (revision "2"))
17116 (package
17117 (name "emacs-evil-mc")
17118 (version (git-version "0.0.3" revision commit))
17119 (source
17120 (origin
17121 (method git-fetch)
17122 (uri (git-reference
17123 (url "https://github.com/gabesoft/evil-mc")
17124 (commit commit)))
17125 (file-name (git-file-name name version))
17126 (sha256
17127 (base32 "0p83p90faq1p02lmsfs7zrnky3cyzgy8z4m83a81r9kakjzhkrnb"))))
17128 (build-system emacs-build-system)
17129 (propagated-inputs
17130 `(("emacs-evil" ,emacs-evil)))
17131 (native-inputs
17132 `(("emacs-espuds" ,emacs-espuds)))
17133 (home-page "https://github.com/gabesoft/evil-mc")
17134 (synopsis "Interactive search compatible with @code{multiple-cursors}")
17135 (description "This package can be used with @code{multiple-cursors} to
17136 provide an incremental search that moves all fake cursors in sync.")
17137 (license license:expat))))
17138
17139 (define-public emacs-evil-org
17140 (let ((commit "9d4be14118bf27094a30dbff349b815f098aacbf"))
17141 (package
17142 (name "emacs-evil-org")
17143 (version (git-version "1.0.2" "1" commit))
17144 (source
17145 (origin
17146 (method git-fetch)
17147 (uri (git-reference
17148 (url "https://github.com/Somelauw/evil-org-mode")
17149 (commit commit)))
17150 (file-name (git-file-name name version))
17151 (sha256
17152 (base32
17153 "1fxxfkinb0gq4p5b686r7z4jrkv98zfgh5z889zkjacncv8ibswn"))))
17154 (build-system emacs-build-system)
17155 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
17156 (home-page
17157 "https://github.com/Somelauw/evil-org-mode")
17158 (synopsis "Evil keybindings for Org mode")
17159 (description
17160 "This package adds supplemental Evil mode key-bindings to Emacs
17161 Org-mode. It features:
17162 @itemize
17163 @item normal, visual and insert mode bindings;
17164 @item key bindings organised in key themes;
17165 @item operators like > and < to work on headings;
17166 @item text objects;
17167 @item table support;
17168 @item calendar (date selection) support;
17169 @item agenda support.
17170 @end itemize\n")
17171 (license license:gpl3+))))
17172
17173 (define-public emacs-debpaste
17174 (package
17175 (name "emacs-debpaste")
17176 (version "0.1.5")
17177 (home-page "https://github.com/alezost/debpaste.el")
17178 (source
17179 (origin
17180 (method git-fetch)
17181 (uri (git-reference (url home-page)
17182 (commit (string-append "v" version))))
17183 (file-name (git-file-name name version))
17184 (sha256
17185 (base32
17186 "1wi70r56pd5z0x4dp4m58p9asq03j74kdm4fi9vai83vsl2z9amq"))))
17187 (build-system emacs-build-system)
17188 (propagated-inputs
17189 `(("emacs-xml-rpc" ,emacs-xml-rpc)))
17190 (synopsis "Manipulate pastes from the Debian Pastezone")
17191 (description "Debpaste is an Emacs interface for the Debian Pastezone,
17192 allowing you to receive, post, and delete pastes. It communicates with the
17193 server using XML-RPC.")
17194 (license license:gpl3+)))
17195
17196 (define-public emacs-xml-rpc
17197 (let ((commit "8f624f8b964e9145acb504e4457c9510e87dd93c")
17198 (revision "1"))
17199 (package
17200 (name "emacs-xml-rpc")
17201 (version (git-version "1.6.12" revision commit))
17202 (source
17203 (origin
17204 (method git-fetch)
17205 (uri (git-reference
17206 (url "https://github.com/hexmode/xml-rpc-el")
17207 (commit commit)))
17208 (file-name (git-file-name name version))
17209 (sha256
17210 (base32
17211 "0xa54z52rsfl3n0xgmbycj4zazp8ksgdwcq56swzs6wp72zlalmj"))))
17212 (build-system emacs-build-system)
17213 (home-page "https://github.com/hexmode/xml-rpc-el")
17214 (synopsis "XML-RPC client for Emacs")
17215 (description "This package provides an XML-RPC client for Emacs capable
17216 of both synchronous and asynchronous method calls using the @code{url}
17217 package's async retrieval functionality. @file{xml-rpc.el} represents XML-RPC
17218 datatypes as Lisp values, automatically converting to and from the XML
17219 datastructures as needed, both for method parameters and return values, making
17220 using XML-RPC methods fairly transparent to the Lisp code.")
17221 (license license:gpl3+))))
17222
17223 (define-public emacs-xpm
17224 (package
17225 (name "emacs-xpm")
17226 (version "1.0.4")
17227 (source
17228 (origin
17229 (method url-fetch)
17230 (uri (string-append "https://elpa.gnu.org/packages/xpm-"
17231 version ".tar"))
17232 (sha256
17233 (base32
17234 "075miyashh9cm3b0gk6ngld3rm8bfgnh4qxnhxmmvjgzf6a64grh"))))
17235 (build-system emacs-build-system)
17236 (home-page "https://elpa.gnu.org/packages/xpm.html")
17237 (synopsis "XPM image editing mode for Emacs")
17238 (description "This Emacs package makes editing XPM images easy (and maybe
17239 fun). Editing is done directly on the (textual) image format, for maximal
17240 cohesion with the Emacs Way.")
17241 (license license:gpl3+)))
17242
17243 (define-public emacs-fish-completion
17244 (package
17245 (name "emacs-fish-completion")
17246 (version "1.2")
17247 (source
17248 (origin
17249 (method git-fetch)
17250 (uri (git-reference
17251 (url "https://gitlab.com/Ambrevar/emacs-fish-completion.git")
17252 (commit version)))
17253 (file-name (git-file-name name version))
17254 (sha256
17255 (base32
17256 "17lqip1i1rrsvxzz4bx9rqf1fvwd3hriwg3sj6qxmfc8pylnp37q"))))
17257 (build-system emacs-build-system)
17258 (inputs `(("fish" ,fish)))
17259 (arguments
17260 `(#:phases
17261 (modify-phases %standard-phases
17262 (add-after 'unpack 'configure
17263 (lambda* (#:key inputs outputs #:allow-other-keys)
17264 (let ((fish (assoc-ref inputs "fish")))
17265 ;; Specify the absolute file names of the various
17266 ;; programs so that everything works out-of-the-box.
17267 (make-file-writable "fish-completion.el")
17268 (emacs-substitute-variables
17269 "fish-completion.el"
17270 ("fish-completion-command"
17271 (string-append fish "/bin/fish")))))))))
17272 (home-page
17273 "https://gitlab.com/Ambrevar/emacs-fish-completion")
17274 (synopsis "Fish completion for Emacs pcomplete")
17275 (description
17276 "This package provides completion for the Fish shell to pcomplete (used
17277 by shell and Eshell). You can set it up globally with:
17278
17279 @example
17280 (when (and (executable-find \"fish\")
17281 (require 'fish-completion nil t))
17282 (global-fish-completion-mode))
17283 @end example
17284
17285 Alternatively, you can call the @code{fish-completion-mode} manually or in
17286 shell/Eshell mode hook.
17287
17288 The package @code{emacs-bash-completion} is an optional dependency: if available,
17289 @code{fish-completion-complete} can be configured to fall back on bash to further
17290 try completing. See @code{fish-completion-fallback-on-bash-p}.")
17291 (license license:gpl3+)))
17292
17293 (define-public emacs-gif-screencast
17294 (package
17295 (name "emacs-gif-screencast")
17296 (version "1.1")
17297 (source
17298 (origin
17299 (method git-fetch)
17300 (uri (git-reference
17301 (url "https://gitlab.com/Ambrevar/emacs-gif-screencast.git")
17302 (commit version)))
17303 (file-name (git-file-name name version))
17304 (sha256
17305 (base32
17306 "1g1by8lvf8c9vzm4wwsi5kp285kaj0ahsl54048ympin4pi0njw9"))))
17307 (build-system emacs-build-system)
17308 (inputs
17309 `(("scrot" ,scrot)
17310 ("imagemagick" ,imagemagick)
17311 ("gifsicle" ,gifsicle)))
17312 (arguments
17313 `(#:phases
17314 (modify-phases %standard-phases
17315 (add-after 'unpack 'configure
17316 (lambda* (#:key inputs outputs #:allow-other-keys)
17317 (let ((scrot (assoc-ref inputs "scrot"))
17318 (imagemagick (assoc-ref inputs "imagemagick"))
17319 (gifsicle (assoc-ref inputs "gifsicle")))
17320 (make-file-writable "gif-screencast.el")
17321 ;; Specify the absolute file names of the various
17322 ;; programs so that everything works out-of-the-box.
17323 (emacs-substitute-variables
17324 "gif-screencast.el"
17325 ("gif-screencast-program"
17326 (string-append scrot "/bin/scrot"))
17327 ("gif-screencast-convert-program"
17328 (string-append imagemagick "/bin/convert"))
17329 ("gif-screencast-cropping-program"
17330 (string-append imagemagick "/bin/mogrify"))
17331 ("gif-screencast-optimize-program"
17332 (string-append gifsicle "/bin/gifsicle")))))))))
17333 (home-page
17334 "https://gitlab.com/Ambrevar/emacs-gif-screencast")
17335 (synopsis "One-frame-per-action GIF recording")
17336 (description
17337 "Call @code{gif-screencast} to start a recording.
17338 A screenshot is taken for every user action. Call
17339 @code{gif-screencast-stop} (<f9> by default) to finish recording and create
17340 the GIF result.")
17341 (license license:gpl3+)))
17342
17343 (define-public emacs-google-translate
17344 (package
17345 (name "emacs-google-translate")
17346 (version "0.12.0")
17347 (source
17348 (origin
17349 (method git-fetch)
17350 (uri (git-reference
17351 (url "https://github.com/atykhonov/google-translate/")
17352 (commit (string-append "v" version))))
17353 (file-name (git-file-name name version))
17354 (sha256
17355 (base32
17356 "0rwpij2bm8d4jq2w5snkp88mfryplw8166dsrjm407n2p6xr48zx"))))
17357 (build-system emacs-build-system)
17358 (home-page "https://github.com/atykhonov/google-translate")
17359 (synopsis "Emacs interface to Google Translate")
17360 (description
17361 "This package provides an Emacs interface to the Google Translate
17362 on-line service.")
17363 (license license:gpl3+)))
17364
17365 (define-public emacs-helm-company
17366 (package
17367 (name "emacs-helm-company")
17368 (version "0.2.5")
17369 (source
17370 (origin
17371 (method git-fetch)
17372 (uri (git-reference
17373 (url "https://github.com/Sodel-the-Vociferous/helm-company")
17374 (commit (string-append "v" version))))
17375 (file-name (git-file-name name version))
17376 (sha256
17377 (base32
17378 "1ci37w6ahnqrfpb284gjvxmimlf61sdxb9k192yy9q983cksv2hx"))))
17379 (build-system emacs-build-system)
17380 (propagated-inputs
17381 `(("emacs-helm" ,emacs-helm)
17382 ("emacs-company" ,emacs-company)))
17383 (native-inputs
17384 `(("emacs-ert-runner" ,emacs-ert-runner)))
17385 (arguments
17386 `(#:tests? #t
17387 #:test-command '("ert-runner")))
17388 (home-page "https://github.com/Sodel-the-Vociferous/helm-company")
17389 (synopsis "Helm interface for company-mode")
17390 (description
17391 "This is a Helm interface to company-mode, a text completion
17392 framework.")
17393 (license license:gpl3+)))
17394
17395 (define-public emacs-helm-descbinds
17396 (let ((commit "033be73f21778633813264ce1634a6e1ad873d8e"))
17397 (package
17398 (name "emacs-helm-descbinds")
17399 (version (git-version "1.13" "1" commit))
17400 (source
17401 (origin
17402 (method git-fetch)
17403 (uri (git-reference
17404 (url "https://github.com/emacs-helm/helm-descbinds")
17405 (commit commit)))
17406 (file-name (git-file-name name version))
17407 (sha256
17408 (base32
17409 "1n89p56qwa243w1c85i5awnaf7piwjsvfi7nmnsrwm33hix5dknk"))))
17410 (build-system emacs-build-system)
17411 (propagated-inputs `(("emacs-helm" ,emacs-helm)))
17412 (home-page "https://github.com/emacs-helm/helm-descbinds")
17413 (synopsis "Convenient @code{describe-bindings} with Helm")
17414 (description
17415 "This package is a replacement of @code{describe-bindings} for Helm.
17416 @code{describe-bindings} is replaced with @code{helm-descbinds}. As usual,
17417 type @code{C-h b}, or any incomplete key sequence plus @code{C-h}, to run
17418 @code{helm-descbinds}. The bindings are presented in a similar way as
17419 @code{describe-bindings} does, but you can use completion to find the command
17420 you searched for and execute it, or view its documentation.")
17421 (license license:gpl3+))))
17422
17423 (define-public emacs-helm-emms
17424 (let ((commit "37e5aa029abfa5a5c48636314de8157142944fa2"))
17425 (package
17426 (name "emacs-helm-emms")
17427 (version (git-version "1.3" "3" commit))
17428 (source
17429 (origin
17430 (method git-fetch)
17431 (uri (git-reference
17432 (url "https://github.com/emacs-helm/helm-emms")
17433 (commit commit)))
17434 (file-name (git-file-name name version))
17435 (sha256
17436 (base32
17437 "0r1ai6xhzayyik30w2sx9n62bxxwm12vfmjspv0daqif9az8y3vg"))))
17438 (build-system emacs-build-system)
17439 (propagated-inputs
17440 `(("emacs-helm" ,emacs-helm)
17441 ("emacs-emms" ,emacs-emms)))
17442 (home-page
17443 "https://github.com/emacs-helm/helm-emms")
17444 (synopsis "Emms for Helm")
17445 (description "Helm interface for Emms to browse all tracks and all folders
17446 from @code{emms-source-file-default-directory}.")
17447 (license license:gpl3+))))
17448
17449 (define-public emacs-helm-exwm
17450 (package
17451 (name "emacs-helm-exwm")
17452 (version "0.0.2")
17453 (source
17454 (origin
17455 (method git-fetch)
17456 (uri (git-reference
17457 (url "https://github.com/emacs-helm/helm-exwm")
17458 (commit version)))
17459 (file-name (git-file-name name version))
17460 (sha256
17461 (base32 "0g4k01ps14bp2az8v6dcag9llg045k2b4kdis81xx4lvw76znr9v"))))
17462 (build-system emacs-build-system)
17463 (propagated-inputs
17464 `(("emacs-helm" ,emacs-helm)
17465 ("emacs-exwm" ,emacs-exwm)))
17466 (home-page
17467 "https://github.com/emacs-helm/helm-exwm")
17468 (synopsis "Helm for EXWM buffers")
17469 (description
17470 "@code{helm-exwm} runs a Helm session over the list of EXWM buffers.
17471 @code{helm-exwm-switch} is a convenience X application launcher using Helm to
17472 switch between the various windows of one or several specific applications.
17473 See @code{helm-exwm-switch-browser} for an example.")
17474 (license license:gpl3+)))
17475
17476 (define-public emacs-helm-flycheck
17477 (let ((commit "3cf7d3bb194acacc6395f88360588013d92675d6"))
17478 (package
17479 (name "emacs-helm-flycheck")
17480 (version (git-version "0.4" "1" commit))
17481 (source
17482 (origin
17483 (method git-fetch)
17484 (uri (git-reference
17485 (url "https://github.com/yasuyk/helm-flycheck")
17486 (commit commit)))
17487 (file-name (git-file-name name version))
17488 (sha256
17489 (base32
17490 "1a2yfxhz04klwhcandqvfzysxp6b7bxyxx1xk1x3kds5hif5fkl4"))))
17491 (build-system emacs-build-system)
17492 (propagated-inputs
17493 `(("emacs-dash" ,emacs-dash)
17494 ("emacs-flycheck" ,emacs-flycheck)
17495 ("emacs-helm" ,emacs-helm)))
17496 (home-page "https://github.com/yasuyk/helm-flycheck")
17497 (synopsis "Show Flycheck errors with Helm")
17498 (description
17499 "This integrates Flycheck with Helm.")
17500 (license license:gpl3+))))
17501
17502 (define-public emacs-helm-ls-git
17503 (let ((commit "76654c776a7f6e2e5290645e748aac2a746f7daa"))
17504 (package
17505 (name "emacs-helm-ls-git")
17506 (version (git-version "1.9.1" "1" commit))
17507 (source
17508 (origin
17509 (method git-fetch)
17510 (uri (git-reference
17511 (url "https://github.com/emacs-helm/helm-ls-git")
17512 (commit commit)))
17513 (file-name (git-file-name name version))
17514 (sha256
17515 (base32
17516 "0vsq1n3xl3ghy5zik2scm7jrs501n4kybdqd6yw6j0cv4jxdqbr0"))))
17517 (build-system emacs-build-system)
17518 (propagated-inputs `(("emacs-helm" ,emacs-helm)))
17519 (home-page "https://github.com/emacs-helm/helm-ls-git")
17520 (synopsis "Helm interface for listing the files in a Git repository")
17521 (description
17522 "This package provides a Helm interface for Git files.
17523 @itemize
17524 @item Display the open buffers in project.
17525 @item Display a status source showing state of project (modified files etc.).
17526 @item Display a list of all files in project under git control.
17527 @item Quickly look at diffs of modified files.
17528 @item Allow switching to @code{git status} with your preferred frontend
17529 (vc-dir, Magit,etc.).
17530 @item Full integration of git-grep, also allow usage of @code{helm-grep} (you
17531 can use ack-grep instead of grep).
17532 @item Integrate usage of gid from id-utils.
17533 @item Full integration with @code{helm-find-files}, allow you to browse
17534 projects unrelated to current-buffer.
17535 @item In addition, all actions of type files and buffers are provided.
17536 @end itemize\n")
17537 (license license:gpl3+))))
17538
17539 (define-public emacs-helm-mu
17540 (let ((commit "77e6fea24e01481418738421dbcfe28ef1bd63cf"))
17541 (package
17542 (name "emacs-helm-mu")
17543 (version (git-version "20180513" "1" commit))
17544 (source
17545 (origin
17546 (method git-fetch)
17547 (uri (git-reference
17548 (url "https://github.com/emacs-helm/helm-mu")
17549 (commit commit)))
17550 (file-name (git-file-name name version))
17551 (sha256
17552 (base32 "1lh0ahxdc5b2z18m9p30gwg8sbg33sjwkjr38p7h5xsm5fm7i0fz"))))
17553 (build-system emacs-build-system)
17554 (propagated-inputs
17555 `(("emacs-helm" ,emacs-helm)
17556 ("mu" ,mu)))
17557 (home-page
17558 "https://github.com/emacs-helm/helm-mu")
17559 (synopsis
17560 "Helm sources for searching emails and contacts")
17561 (description
17562 "Helm sources for searching emails and contacts using @code{mu} and
17563 @code{mu4e}. Mu is an indexer for maildirs and mu4e is a mutt-like MUA for
17564 Emacs build on top of mu. Mu is highly efficient making it possible to get
17565 instant results even for huge maildirs. It also provides search operators,
17566 e.g: @code{from:Peter to:Anne flag:attach search term}.")
17567 (license license:gpl3+))))
17568
17569 (define-public emacs-helm-pass
17570 (package
17571 (name "emacs-helm-pass")
17572 (version "0.3")
17573 (source
17574 (origin
17575 (method git-fetch)
17576 (uri (git-reference
17577 (url "https://github.com/emacs-helm/helm-pass")
17578 (commit version)))
17579 (file-name (git-file-name name version))
17580 (sha256
17581 (base32
17582 "0vglaknmir3yv4iwibwn8r40ran8d04gcyp99hx73ldmf3zqpnxv"))))
17583 (build-system emacs-build-system)
17584 (propagated-inputs
17585 `(("emacs-helm" ,emacs-helm)
17586 ("emacs-password-store" ,emacs-password-store)))
17587 (home-page "https://github.com/emacs-helm/helm-pass")
17588 (synopsis "Helm interface to pass, the standard Unix password manager")
17589 (description
17590 "Users of @code{helm-pass} may also be interested in functionality
17591 provided by other Emacs packages dealing with pass:
17592 @itemize
17593 @item @code{emacs-password-store}, which @code{helm-pass} relies on.
17594 @item @code{emacs-pass}, a major mode for @code{pass}.
17595 @item @code{auth-source-pass.el}: integration of Emacs' auth-source with
17596 @code{pass}, included in Emacs 26+).
17597 @end itemize\n")
17598 (license license:gpl3+)))
17599
17600 (define-public emacs-image+
17601 (let ((commit "6834d0c09bb4df9ecc0d7a559bd7827fed48fffc"))
17602 (package
17603 (name "emacs-image+")
17604 (version (git-version "0.6.2" "1" commit))
17605 (source
17606 (origin
17607 (method git-fetch)
17608 (uri (git-reference
17609 (url "https://github.com/mhayashi1120/Emacs-imagex")
17610 (commit commit)))
17611 (file-name (git-file-name name version))
17612 (sha256
17613 (base32
17614 "0v66wk9nh0raih4jhrzmmyi5lbysjnmbv791vm2230ffi2hmwxnd"))))
17615 (build-system emacs-build-system)
17616 (inputs `(("imagemagick" ,imagemagick)))
17617 (arguments
17618 `(#:phases
17619 (modify-phases %standard-phases
17620 (add-after 'unpack 'configure
17621 (lambda* (#:key inputs outputs #:allow-other-keys)
17622 (let ((imagemagick (assoc-ref inputs "imagemagick")))
17623 ;; Specify the absolute file names of the various
17624 ;; programs so that everything works out-of-the-box.
17625 (chmod "image+.el" #o666)
17626 (emacs-substitute-variables
17627 "image+.el"
17628 ("imagex-convert-command"
17629 (string-append imagemagick "/bin/convert"))
17630 ("imagex-identify-command"
17631 (string-append imagemagick "/bin/identify")))))))))
17632 (home-page "https://github.com/mhayashi1120/Emacs-imagex")
17633 (synopsis "Image manipulation extensions for Emacs")
17634 (description
17635 "Image+ provides keybindings allowing you to zoom in or zoom out of an
17636 image, rotate it, save modified images, and more.")
17637 (license license:gpl3+))))
17638
17639 (define-public emacs-package-lint
17640 (let ((commit "69bb89d00ba212b734c676ad056aa793c450b288"))
17641 (package
17642 (name "emacs-package-lint")
17643 (version (git-version "0.5" "1" commit))
17644 (source
17645 (origin
17646 (method git-fetch)
17647 (uri (git-reference
17648 (url "https://github.com/purcell/package-lint")
17649 (commit commit)))
17650 (file-name (git-file-name name version))
17651 (sha256
17652 (base32
17653 "1hfricsgmy3x9snnd2p4xq6vnnv94qdsxxnxp07b3hqc9bhw31rq"))))
17654 (build-system emacs-build-system)
17655 (home-page "https://github.com/purcell/package-lint")
17656 (synopsis "Linting library for elisp package authors")
17657 (description
17658 "This provides a list of issues with the Emacs package metadata of a file,
17659 e.g. the package dependencies it requires. See function
17660 @code{package-lint-buffer}. Checks will currently be enabled only if a
17661 \"Package-Requires:\" or \"Package-Version:\" header is present in the
17662 file.")
17663 (license license:gpl3+))))
17664
17665 (define-public emacs-picpocket
17666 (let ((version "40")
17667 (commit "6fd88b8711c4370662c0f9c462170187d092a046"))
17668 (package
17669 (name "emacs-picpocket")
17670 (version version)
17671 (source
17672 (origin
17673 (method git-fetch)
17674 (uri (git-reference
17675 (url "https://github.com/johanclaesson/picpocket")
17676 (commit commit)))
17677 (file-name (git-file-name name version))
17678 (sha256
17679 (base32 "1mdzzxf7xm7zwrpnqqxa27d1cr31pd72d7ilbwljv13qp177a3yw"))))
17680 (build-system emacs-build-system)
17681 (arguments ; needed for running tests
17682 `(#:tests? #t
17683 #:emacs ,emacs
17684 #:test-command '("emacs" "--batch"
17685 "-l" "picpocket-test.el"
17686 "-f" "ert-run-tests-batch-and-exit")))
17687 (home-page "https://github.com/johanclaesson/picpocket")
17688 (synopsis "Image viewer for Emacs")
17689 (description
17690 "Picpocket is an image viewer for GNU Emacs. It has commands for:
17691
17692 @itemize
17693 @item File operations on the picture files (delete, move, copy, hardlink).
17694 @item Scale and rotate the picture.
17695 @item Associate pictures with tags which are saved to disk.
17696 @item Filter pictures according to tags.
17697 @item Customizing keystrokes for quick tagging and file operations.
17698 @item Undo and browse history of undoable commands.
17699 @end itemize")
17700 (license license:gpl3+))))
17701
17702 (define-public emacs-mu4e-conversation
17703 (let ((commit "98110bb9c300fc9866dee8e0023355f9f79c9b96")
17704 (revision "5"))
17705 (package
17706 (name "emacs-mu4e-conversation")
17707 (version (git-version "0.0.1" revision commit))
17708 (source
17709 (origin
17710 (method git-fetch)
17711 (uri (git-reference
17712 (url "https://gitlab.com/Ambrevar/mu4e-conversation.git")
17713 (commit commit)))
17714 (file-name (git-file-name name version))
17715 (sha256
17716 (base32
17717 "080s96jkcw2p288sp1vgds91rgl693iz6hi2dv56p2ih0nnivwlg"))))
17718 (build-system emacs-build-system)
17719 (propagated-inputs
17720 `(("mu" ,mu)))
17721 (home-page
17722 "https://gitlab.com/Ambrevar/mu4e-conversation")
17723 (synopsis
17724 "Show a complete thread in a single buffer")
17725 (description
17726 "This package offers an alternate view to mu4e's e-mail display. It
17727 shows all e-mails of a thread in a single view, where each correspondent has
17728 their own face. Threads can be displayed linearly (in which case e-mails are
17729 displayed in chronological order) or as an Org document where the node tree
17730 maps the thread tree.")
17731 (license license:gpl3+))))
17732
17733 (define-public emacs-pinentry
17734 (let ((commit "dcc9ba03252ee5d39e03bba31b420e0708c3ba0c")
17735 (revision "1"))
17736 (package
17737 (name "emacs-pinentry")
17738 (version (git-version "0.1" revision commit))
17739 (source
17740 (origin
17741 (method url-fetch)
17742 (uri (string-append
17743 "http://git.savannah.gnu.org/cgit/emacs/elpa.git/plain"
17744 "/packages/pinentry/pinentry.el?id=" commit))
17745 (file-name (string-append "pinentry.el"))
17746 (sha256
17747 (base32
17748 "1lf30q6r8nz5cjzclbb9bbymsk2y75nskvb55hnjdv93gr3j0sik"))))
17749 (build-system emacs-build-system)
17750 (propagated-inputs
17751 `(("gnupg" ,gnupg)))
17752 (home-page "https://elpa.gnu.org/packages/pinentry.html")
17753 (synopsis "GnuPG Pinentry server implementation")
17754 (description
17755 "This package allows GnuPG passphrase to be prompted through the
17756 minibuffer instead of graphical dialog.
17757
17758 To use, add @code{allow-emacs-pinentry} to @code{~/.gnupg/gpg-agent.conf},
17759 reload the configuration with @code{gpgconf --reload gpg-agent}, and start the
17760 server with @code{M-x pinentry-start}.")
17761 (license license:gpl3+))))
17762
17763 (define-public emacs-so-long
17764 (let ((commit "cfae473b1bf65f78ddb015159e667ec0103d881c")
17765 (revision "2"))
17766 (package
17767 (name "emacs-so-long")
17768 (version (git-version "1.0" revision commit))
17769 (source
17770 (origin
17771 (method git-fetch)
17772 (uri (git-reference
17773 (url "https://git.savannah.gnu.org/git/so-long.git")
17774 (commit commit)))
17775 (file-name (git-file-name name version))
17776 (sha256
17777 (base32
17778 "0g943n5cl9lz5s7hszg6yvp10xd1xvd8mfgxyg0yckmp8fqkswin"))))
17779 (build-system emacs-build-system)
17780 (home-page "https://www.emacswiki.org/emacs/SoLong")
17781 (synopsis "Improve performance in files with long lines")
17782 (description "This package improves the performance of Emacs when
17783 viewing files with long lines.")
17784 (license license:gpl3+))))
17785
17786 (define-public emacs-github-review
17787 (let ((commit "a13a3b4f1b6114a32af843971a145ab880f51232")
17788 (revision "2"))
17789 (package
17790 (name "emacs-github-review")
17791 (version (git-version "0.1" revision commit))
17792 (source
17793 (origin
17794 (method git-fetch)
17795 (uri (git-reference
17796 (url "https://github.com/charignon/github-review")
17797 (commit commit)))
17798 (file-name (git-file-name name version))
17799 (sha256
17800 (base32
17801 "0injfpxzgfhmqalba845j5l5cdcxxqz43knhxwinf36g52nfabl0"))))
17802 (build-system emacs-build-system)
17803 (inputs
17804 `(("emacs-dash" ,emacs-dash)
17805 ("emacs-s" ,emacs-s)
17806 ("emacs-ghub" ,emacs-ghub)))
17807 (native-inputs
17808 `(("emacs-buttercup" ,emacs-buttercup)
17809 ("emacs-undercover" ,emacs-undercover)))
17810 (arguments
17811 `(#:tests? #t
17812 #:test-command '("buttercup" "-L" "test/github-review-test.el")))
17813 (home-page "https://github.com/charignon/github-review")
17814 (synopsis "Review GitHub pull requests within Emacs")
17815 (description "This package provides commands to pull in, comment on, and
17816 accept and reject GitHub pull requests.")
17817 (license license:gpl3+))))
17818
17819 (define-public emacs-deadgrep
17820 (let ((commit "7e50e71c6ff4e17dded43e0836dae4e5ec020fcf")
17821 (revision "1"))
17822 (package
17823 (name "emacs-deadgrep")
17824 (version (git-version "0.10" revision commit))
17825 (source
17826 (origin
17827 (method git-fetch)
17828 (uri (git-reference
17829 (url "https://github.com/Wilfred/deadgrep")
17830 (commit commit)))
17831 (file-name (git-file-name name version))
17832 (sha256
17833 (base32
17834 "1vjhrq02l8gvdn2haygzq7277hnhjchs9xrfpcnh76gqip200gx4"))))
17835 (build-system emacs-build-system)
17836 (propagated-inputs
17837 `(("emacs-dash" ,emacs-dash)
17838 ("emacs-s" ,emacs-s)
17839 ("emacs-spinner" ,emacs-spinner)))
17840 (home-page "https://github.com/Wilfred/deadgrep")
17841 (synopsis "Frontend for @code{ripgrep}")
17842 (description "This package provides an Emacs interface for performing
17843 searches with @code{ripgrep}.")
17844 (license license:gpl3+))))
17845
17846 (define-public emacs-focus
17847 (let ((commit "ab42b8779929beeb7878c7fb3d3ccd80d9327c7f")
17848 (version "0.1.1")
17849 (revision "1"))
17850 (package
17851 (name "emacs-focus")
17852 (version (git-version version revision commit))
17853 (source
17854 (origin
17855 (method git-fetch)
17856 (uri (git-reference
17857 (url "https://github.com/larstvei/Focus")
17858 (commit commit)))
17859 (file-name (git-file-name name version))
17860 (sha256
17861 (base32
17862 "079v1syid7h2vr2ya6hs6hl0pgj60qdsw60mqw4cj2zllmkrkwj4"))))
17863 (build-system emacs-build-system)
17864 (home-page "https://github.com/larstvei/Focus")
17865 (synopsis "Minor mode for focusing in on relevant text")
17866 (description "This package provides a minor mode that dims the color of
17867 text in neighboring sections.")
17868 (license license:gpl3+))))
17869
17870 (define-public emacs-pandoc-mode
17871 (package
17872 (name "emacs-pandoc-mode")
17873 (version "2.27.2")
17874 (source
17875 (origin
17876 (method git-fetch)
17877 (uri (git-reference
17878 (url "https://github.com/joostkremers/pandoc-mode")
17879 (commit version)))
17880 (file-name (git-file-name name version))
17881 (sha256
17882 (base32
17883 "04bqc7mhgkfks3nsvimd3rrriv4nqbksmv5ahlbbd03aqa2b0vrv"))))
17884 (build-system emacs-build-system)
17885 (propagated-inputs
17886 `(("emacs-dash" ,emacs-dash)
17887 ("emacs-hydra" ,emacs-hydra)))
17888 (home-page "https://github.com/joostkremers/pandoc-mode")
17889 (synopsis "Minor mode for interacting with Pandoc")
17890 (description "This package provides a Hydra menu for interacting with the
17891 Pandoc, the document-conversion tool.")
17892 (license license:bsd-3)))
17893
17894 (define-public emacs-hlint-refactor-mode
17895 (let ((commit "c4307f86aad6d02e32e9b30cb6edc115584c791c")
17896 (revision "1"))
17897 (package
17898 (name "emacs-hlint-refactor-mode")
17899 (version (git-version "0.0.1" revision commit))
17900 (source
17901 (origin
17902 (method git-fetch)
17903 (uri (git-reference
17904 (url "https://github.com/mpickering/hlint-refactor-mode")
17905 (commit commit)))
17906 (file-name (git-file-name name version))
17907 (sha256
17908 (base32
17909 "1c71w9s34n0i7mm4njchxn6s3ri1y6mh3akgbg4nq41d42h8iap3"))))
17910 (build-system emacs-build-system)
17911 (propagated-inputs
17912 `(("apply-refact" ,apply-refact)
17913 ("hlint" ,hlint)))
17914 (home-page "https://github.com/mpickering/hlint-refactor-mode")
17915 (synopsis "Emacs bindings for @code{hlint}'s @code{--refactor} option")
17916 (description "This package applies refactoring suggestions from
17917 @code{hlint}.")
17918 (license license:expat))))
17919
17920 (define-public emacs-ccls
17921 (let ((commit "aab3e31fd716daf59f9794e62d473357263e8cc0")
17922 (revision "4"))
17923 (package
17924 (name "emacs-ccls")
17925 (version (git-version "0.1" revision commit))
17926 (source
17927 (origin
17928 (method git-fetch)
17929 (uri (git-reference
17930 (url "https://github.com/MaskRay/emacs-ccls")
17931 (commit commit)))
17932 (file-name (git-file-name name version))
17933 (sha256
17934 (base32
17935 "1ykgw21ypyhwlyflppjcgqrj1xw4d9rld4z65qvwhk3f12cv113j"))))
17936 (build-system emacs-build-system)
17937 (propagated-inputs
17938 `(("ccls" ,ccls)
17939 ("emacs-dash" ,emacs-dash)
17940 ("emacs-projectile" ,emacs-projectile)
17941 ("emacs-lsp-mode" ,emacs-lsp-mode)))
17942 (home-page "https://github.com/MaskRay/emacs-ccls")
17943 (synopsis "Emacs support for the @code{ccls} language server")
17944 (description "This package extends @code{lsp-mode} to work with @code{C}
17945 and @code{C++} files through the @code{ccls} language server.")
17946 (license license:expat))))
17947
17948 (define-public emacs-org-brain
17949 (package
17950 (name "emacs-org-brain")
17951 (version "0.5")
17952 (source
17953 (origin
17954 (method git-fetch)
17955 (uri (git-reference
17956 (url "https://github.com/Kungsgeten/org-brain")
17957 (commit "3faf9303af3f2356e3444e69c22dc6c5774047d1")))
17958 (file-name (git-file-name name version))
17959 (sha256
17960 (base32
17961 "1ad681zk6kckw2zbk0r4iaj4bw8cfqrbd1s3gdwgdjlzq81q9mmj"))))
17962 (build-system emacs-build-system)
17963 (home-page "https://github.com/Kungsgeten/org-brain")
17964 (synopsis "Org-mode wiki and concept-mapping for Emacs")
17965 (description "@code{emacs-org-brain} implements a variant of concept
17966 mapping in Emacs, using @code{org-mode}. An org-brain is a network of
17967 org-mode entries, where each entry is a file or a headline, and you can get a
17968 visual overview of the relationships between the entries: parents, children,
17969 siblings and friends. This visual overview can also be used to browse your
17970 entries. You can think of entries as nodes in a mind map, or pages in a
17971 wiki.")
17972 (license license:expat)))
17973
17974 (define-public emacs-recent-addresses
17975 (let ((commit "afbbfdc43b81e620acf827ca20d297e0c517b6eb")
17976 (revision "1"))
17977 (package
17978 (name "emacs-recent-addresses")
17979 (home-page "https://nschum.de/src/emacs/recent-addresses/")
17980 (version (git-version "0.1" revision commit))
17981 (source (origin
17982 (method git-fetch)
17983 (uri (git-reference
17984 ;; Note: Use a branch that works with Helm. Submitted
17985 ;; at <https://github.com/nschum/recent-addresses.el/pull/1>.
17986 (url "https://github.com/civodul/recent-addresses.el")
17987 (commit commit)))
17988 (sha256
17989 (base32
17990 "0ajrq0galjmdyjdjyxazykjyax3gh6hvfk4s7l657pi11g0q5zax"))
17991 (file-name (git-file-name name version))))
17992 (build-system emacs-build-system)
17993 (synopsis "Record recently-used email addressed and auto-complete them")
17994 (description
17995 "@code{recent-addresses} is an Emacs package that allows you to quickly
17996 look up previously used email addresses. It can be used alongside the Gnus
17997 email client.")
17998 (license license:gpl2+))))
17999
18000 (define-public emacs-fold-dwim
18001 (let ((commit "c46f4bb2ce91b4e307136320e72c28dd50b6cd8b")
18002 (revision "0"))
18003 (package
18004 (name "emacs-fold-dwim")
18005 (version (git-version "1.2" revision commit))
18006 (home-page "https://github.com/emacsattic/fold-dwim")
18007 (source (origin
18008 (method git-fetch)
18009 (uri (git-reference (url home-page) (commit commit)))
18010 (sha256
18011 (base32
18012 "1yz1wis31asw6xa5maliyd1ck2q02xnnh7dc6swgj9cb4wi7k6i1"))
18013 (file-name (git-file-name name version))))
18014 (build-system emacs-build-system)
18015 (synopsis "Unified user interface for Emacs folding modes")
18016 (description
18017 "DWIM stands for \"do what I mean\", as in the idea that one keystroke
18018 can do different things depending on the context. In this package, it means
18019 that, if the cursor is in a currently hidden folded construction, we want to
18020 show it; if it's not, we want to hide whatever fold the cursor is in.")
18021 (license license:gpl2+))))
18022
18023 (define-public emacs-markup-faces
18024 (package
18025 (name "emacs-markup-faces")
18026 (version "1.0.0")
18027 (source
18028 (origin
18029 (method url-fetch)
18030 (uri (string-append "https://stable.melpa.org/packages/markup-faces-"
18031 version ".el"))
18032 (sha256
18033 (base32
18034 "124dxbaa25fwxnpwsygpz7pw6da6dnnw7y2lic3jf8rgz7lw4v32"))))
18035 (build-system emacs-build-system)
18036 (home-page "https://github.com/sensorflo/markup-faces")
18037 (synopsis "Collection of Emacs faces for markup language modes")
18038 (description "emacs-markup-faces is like font-lock-faces, but tailored for
18039 markup languages instead programming languages. The sub group markup-faces-text
18040 is also intended for 'text viewing modes' such as info or (wo)man. This gives a
18041 common look and feel, or let's say theme, across different markup language modes
18042 and 'text viewing modes' respectively.")
18043 (license license:gpl3+)))
18044
18045 (define-public emacs-adoc-mode
18046 (package
18047 (name "emacs-adoc-mode")
18048 (version "0.6.6")
18049 (source
18050 (origin
18051 (method git-fetch)
18052 (uri (git-reference
18053 (url "https://github.com/sensorflo/adoc-mode")
18054 (commit (string-append "V" version))))
18055 (file-name (git-file-name name version))
18056 (sha256
18057 (base32
18058 "0kp2aafjhqxz3mjr9hkkss85r4n51chws5a2qj1xzb63dh36liwm"))))
18059 (build-system emacs-build-system)
18060 (arguments
18061 `(#:phases
18062 (modify-phases %standard-phases
18063 ;; See: https://github.com/sensorflo/adoc-mode/issues/39.
18064 (add-after 'unpack 'disable-failing-tests
18065 (lambda _
18066 (let-syntax
18067 ((disable-tests
18068 (syntax-rules ()
18069 ((_ file ())
18070 (syntax-error "test names list must not be empty"))
18071 ((_ file (test-name ...))
18072 (substitute* file
18073 (((string-append "^\\(ert-deftest " test-name ".*") all)
18074 (string-append all "(skip-unless nil)\n")) ...)))))
18075 (disable-tests "adoc-mode-test.el"
18076 ("adoctest-test-tempo-delimited-blocks"
18077 "adoctest-test-tempo-macros"
18078 "adoctest-test-tempo-paragraphs"
18079 "adoctest-test-tempo-passthroug-macros"
18080 "adoctest-test-tempo-quotes")))
18081 #t)))
18082 #:tests? #t
18083 #:test-command '("emacs" "-Q" "-batch"
18084 "-l" "adoc-mode-test.el"
18085 "-f" "ert-run-tests-batch-and-exit")))
18086 (propagated-inputs
18087 `(("emacs-markup-faces" ,emacs-markup-faces)))
18088 (home-page "https://github.com/sensorflo/adoc-mode/wiki")
18089 (synopsis "AsciiDoc mode for Emacs")
18090 (description "This package provides an Emacs major mode for editing AsciiDoc
18091 files. It focuses on highlighting the document to improve readability.")
18092 (license license:gpl2+)))
18093
18094 (define-public emacs-racer
18095 (package
18096 (name "emacs-racer")
18097 (version "1.2")
18098 (source
18099 (origin
18100 (method git-fetch)
18101 (uri
18102 (git-reference
18103 (url "https://github.com/racer-rust/emacs-racer")
18104 (commit version)))
18105 (file-name (git-file-name name version))
18106 (sha256
18107 (base32 "0xj5iki10cg8j8vvqjlw6lfx97k3agwirhchcjnzbnkry48x9qi6"))))
18108 (arguments
18109 `(#:tests? #t
18110 #:test-command '("make" "test")
18111 #:phases
18112 (modify-phases %standard-phases
18113 (add-before 'check 'fix-makefile
18114 (lambda _
18115 (substitute* "Makefile"
18116 (("\\$\\{CASK\\} exec ") ""))
18117 #t)))))
18118 (native-inputs
18119 `(("emacs-ert-runner" ,emacs-ert-runner)
18120 ("emacs-undercover" ,emacs-undercover)))
18121 (propagated-inputs
18122 `(("emacs-dash" ,emacs-dash)
18123 ("emacs-f" ,emacs-f)
18124 ("emacs-pos-tip" ,emacs-pos-tip)
18125 ("emacs-rust-mode" ,emacs-rust-mode)
18126 ("emacs-s" ,emacs-s)))
18127 (build-system emacs-build-system)
18128 (home-page "https://github.com/racer-rust/emacs-racer")
18129 (synopsis "Racer support for Emacs")
18130 (description
18131 "This is the official Emacs package for Racer. It supports code
18132 completion of variables, functions and modules. It can also jump to
18133 definition of functions and types, and show a help buffer based on the
18134 docstring of the thing at point.")
18135 (license license:expat)))
18136
18137 (define-public emacs-rust-mode
18138 (package
18139 (name "emacs-rust-mode")
18140 (version "0.4.0")
18141 (source (origin
18142 (method git-fetch)
18143 (uri (git-reference
18144 (url "https://github.com/rust-lang/rust-mode")
18145 (commit version)))
18146 (file-name (git-file-name name version))
18147 (sha256
18148 (base32
18149 "0bcrklyicxh032rrp585rl5mxd26nb61dp6r5bl935rlcmxzsczh"))))
18150 (build-system emacs-build-system)
18151 (arguments
18152 `(#:phases
18153 (modify-phases %standard-phases
18154 (replace 'check
18155 (lambda _
18156 (invoke "sh" "run_rust_emacs_tests.sh"))))))
18157 (home-page "https://github.com/rust-lang/rust-mode")
18158 (synopsis "Major Emacs mode for editing Rust source code")
18159 (description "This package provides a major Emacs mode for editing Rust
18160 source code.")
18161 (license (list license:expat
18162 license:asl2.0))))
18163
18164 (define-public emacs-ztree
18165 (let ((commit "c54425a094353ec40a8179f9eab3596f76c6cf94"))
18166 (package
18167 (name "emacs-ztree")
18168 (version (git-version "1.0.5" "1" commit))
18169 (source
18170 (origin
18171 (method git-fetch)
18172 (uri (git-reference
18173 (url "https://github.com/fourier/ztree")
18174 (commit commit)))
18175 (file-name (git-file-name name version))
18176 (sha256
18177 (base32
18178 "0j8fpxds8m1zi04nrs8vv21091abvh4n8ab76f1sgdxnp4l5cfb0"))))
18179 (build-system emacs-build-system)
18180 (home-page "https://github.com/fourier/ztree")
18181 (synopsis "Directory tree comparison mode for Emacs")
18182 (description "Ztree is a project dedicated to implementation of several
18183 text-tree applications inside GNU Emacs. It consists of 2 subprojects:
18184 @command{ztree-diff} and @command{ztree-dir} (the basis of
18185 @command{ztree-diff}).")
18186 (license license:gpl3))))
18187
18188 (define-public emacs-helm-org-contacts
18189 (let ((commit "e7f11615802df55bb8b679450b5a5ef82a9081f9"))
18190 (package
18191 (name "emacs-helm-org-contacts")
18192 (version (git-version "20200310" "1" commit))
18193 (source
18194 (origin
18195 (method git-fetch)
18196 (uri (git-reference
18197 (url "https://github.com/tmalsburg/helm-org-contacts")
18198 (commit commit)))
18199 (file-name (git-file-name name version))
18200 (sha256
18201 (base32
18202 "06a1gbrq3qcfsn0kyv4i24x1xxfrrwqa3kgfj4xa4va88q2vqyb5"))))
18203 (build-system emacs-build-system)
18204 (propagated-inputs
18205 `(("emacs-dash" ,emacs-dash)
18206 ("emacs-helm" ,emacs-helm)
18207 ("emacs-s" ,emacs-s)))
18208 (home-page "https://github.com/tmalsburg/helm-org-contacts")
18209 (synopsis "Helm source for org-contacts")
18210 (description "This Helm source can be used to search contacts stored in
18211 org-contacts format. There are actions for inserting postal addresses, email
18212 addresses, and phone numbers in the buffer where @command{helm-org-contacts}
18213 was called.")
18214 (license license:gpl3))))
18215
18216 (define-public emacs-dired-du
18217 (package
18218 (name "emacs-dired-du")
18219 (version "0.5.2")
18220 (source
18221 (origin
18222 (method url-fetch)
18223 (uri (string-append
18224 "https://elpa.gnu.org/packages/dired-du-" version ".tar"))
18225 (sha256
18226 (base32 "0vhph7vcicsiq28b10h3b4dvnhckcy4gccpdgsad5j7pwa5k26m1"))))
18227 (build-system emacs-build-system)
18228 (home-page "https://elpa.gnu.org/packages/dired-du.html")
18229 (synopsis "Dired with recursive directory sizes")
18230 (description
18231 "Display the recursive size of directories in Dired.
18232 This file defines a minor mode @command{dired-du-mode} to show the recursive
18233 size of directories in Dired buffers. If @command{du} program is available,
18234 then the directory sizes are obtained with it. Otherwise, the directory sizes
18235 are obtained with Lisp. The former is faster and provide a more precise
18236 value. For directories where the user doesn't have read permission, the
18237 recursive size is not obtained. Once this mode is enabled, every new Dired
18238 buffer displays recursive dir sizes.")
18239 (license license:gpl3+)))
18240
18241 (define-public emacs-dired-rsync
18242 (package
18243 (name "emacs-dired-rsync")
18244 (version "0.4")
18245 (source (origin
18246 (method git-fetch)
18247 (uri (git-reference
18248 (url "https://github.com/stsquad/dired-rsync")
18249 (commit version)))
18250 (file-name (git-file-name name version))
18251 (sha256
18252 (base32
18253 "0jzbn0izxqgz719gb6fpr60zbcb6w1ama13ngpvrig82nlhs37fv"))))
18254 (build-system emacs-build-system)
18255 (propagated-inputs
18256 `(("emacs-s" ,emacs-s)
18257 ("emacs-dash" ,emacs-dash)))
18258 (home-page "https://github.com/stsquad/dired-rsync/")
18259 (synopsis "Support for rsync from Emacs dired buffers")
18260 (description "This package adds a single command @code{dired-rsync} which
18261 allows the user to copy marked files in a dired buffer via @code{rsync}. This
18262 is useful, especially for large files, because the copy happens in the
18263 background and doesn’t lock up Emacs. It is also more efficient than using
18264 tramps own encoding methods for moving data between systems.")
18265 (license license:gpl3+)))
18266
18267 (define-public emacs-pcre2el
18268 ;; Last release is very old so we get the latest commit.
18269 (let ((commit "0b5b2a2c173aab3fd14aac6cf5e90ad3bf58fa7d"))
18270 (package
18271 (name "emacs-pcre2el")
18272 (version (git-version "1.8" "1" commit))
18273 (source
18274 (origin
18275 (method git-fetch)
18276 (uri (git-reference
18277 (url "https://github.com/joddie/pcre2el")
18278 (commit commit)))
18279 (file-name (git-file-name name version))
18280 (sha256
18281 (base32
18282 "14br6ad138qx1z822wqssswqiihxiynz1k69p6mcdisr2q8yyi1z"))))
18283 (build-system emacs-build-system)
18284 (home-page "https://github.com/joddie/pcre2el")
18285 (synopsis "Convert between PCRE, Emacs and rx regexp syntax")
18286 (description "@code{pcre2el} or @code{rxt} (RegeXp Translator or RegeXp
18287 Tools) is a utility for working with regular expressions in Emacs, based on a
18288 recursive-descent parser for regexp syntax. In addition to converting (a
18289 subset of) PCRE syntax into its Emacs equivalent, it can do the following:
18290
18291 @itemize
18292 @item convert Emacs syntax to PCRE
18293 @item convert either syntax to @code{rx}, an S-expression based regexp syntax
18294 @item untangle complex regexps by showing the parse tree in @code{rx} form and
18295 highlighting the corresponding chunks of code
18296 @item show the complete list of strings (productions) matching a regexp,
18297 provided the list is finite
18298 @item provide live font-locking of regexp syntax (so far only for Elisp
18299 buffers – other modes on the TODO list).
18300 @end itemize\n")
18301 (license license:gpl3))))
18302
18303 (define-public emacs-magit-todos
18304 (package
18305 (name "emacs-magit-todos")
18306 (version "1.4.1")
18307 (source
18308 (origin
18309 (method git-fetch)
18310 (uri (git-reference
18311 (url "https://github.com/alphapapa/magit-todos")
18312 (commit version)))
18313 (file-name (git-file-name name version))
18314 (sha256
18315 (base32
18316 "1rcl6j53yabxqk3jzgaxvm3wqq7rayf1hdib2v2fapw5b0layym6"))))
18317 (build-system emacs-build-system)
18318 (propagated-inputs
18319 `(("emacs-async" ,emacs-async)
18320 ("emacs-dash" ,emacs-dash)
18321 ("emacs-f" ,emacs-f)
18322 ("emacs-hl-todo" ,emacs-hl-todo)
18323 ("magit" ,emacs-magit)
18324 ("emacs-pcre2el" ,emacs-pcre2el)
18325 ("emacs-s" ,emacs-s)))
18326 (home-page "https://github.com/alphapapa/magit-todos")
18327 (synopsis "Show source files' TODOs (and FIXMEs, etc) in Magit status buffer")
18328 (description "This package displays keyword entries from source code
18329 comments and Org files in the Magit status buffer. Activating an item jumps
18330 to it in its file. By default, it uses keywords from @code{hl-todo}, minus a
18331 few (like NOTE).")
18332 (license license:gpl3)))
18333
18334 (define-public emacs-git-annex
18335 ;; Unreleased version has a fontification fix.
18336 (let ((commit "1324d3f23c534fe79391a2c256bb8803054e383b")
18337 (revision "2"))
18338 (package
18339 (name "emacs-git-annex")
18340 (version (git-version "1.1" revision commit))
18341 (source
18342 (origin
18343 (method git-fetch)
18344 (uri (git-reference
18345 (url "https://github.com/jwiegley/git-annex-el")
18346 (commit commit)))
18347 (file-name (git-file-name name version))
18348 (sha256
18349 (base32
18350 "1lfky2nsrlndlbvk6vwbswnvbvkz1sxgg0n3r5q6xykdkjym0lrh"))))
18351 (build-system emacs-build-system)
18352 (home-page "https://github.com/jwiegley/git-annex-el")
18353 (synopsis "Emacs integration for git-annex")
18354 (description "Enhances Dired and buffers visiting annex files with
18355 git-annex functionality. In Dired, the names of annex files are shortened by
18356 hiding the symbolic links and fontified based on whether content is present.
18357 Commands for performing some common operations (e.g., unlocking and adding
18358 files) are provided.")
18359 (license license:gpl2+))))
18360
18361 (define-public emacs-hackernews
18362 (let ((commit "2362d7b00e59da7caddc8c0adc24dccb42fddef9")
18363 (revision "2"))
18364 (package
18365 (name "emacs-hackernews")
18366 (version (git-version "0.5.0" revision commit))
18367 (source
18368 (origin
18369 (method git-fetch)
18370 (uri (git-reference
18371 (url "https://github.com/clarete/hackernews.el")
18372 (commit commit)))
18373 (file-name (git-file-name name version))
18374 (sha256
18375 (base32
18376 "1hcc5b173yzcvvd2ls3jxrmsw2w9bi21m9hcpcirkn0nh93ywadv"))))
18377 (build-system emacs-build-system)
18378 (home-page "https://github.com/clarete/hackernews.el")
18379 (synopsis "Hacker News client for Emacs")
18380 (description "The @command{hackernews} package is able to fetch stories
18381 from six different Hacker News feeds, namely top, new, best, ask, show and job
18382 stories. The default feed is top stories, which corresponds to the Hacker
18383 News homepage.")
18384 (license license:gpl3))))
18385
18386 (define-public emacs-youtube-dl
18387 (let ((commit "af877b5bc4f01c04fccfa7d47a2c328926f20ef4")
18388 (revision "2"))
18389 (package
18390 (name "emacs-youtube-dl")
18391 (version (git-version "1.0" "2" commit))
18392 (source
18393 (origin
18394 (method git-fetch)
18395 (uri (git-reference
18396 (url "https://github.com/skeeto/youtube-dl-emacs/")
18397 (commit commit)))
18398 (file-name (git-file-name name version))
18399 (sha256
18400 (base32
18401 "0zkl9jkjbx0lmp9ylv4rqg1zwqibk053s4rp7s1h0i18nzk7vn8j"))))
18402 (build-system emacs-build-system)
18403 (inputs
18404 `(("youtube-dl" ,youtube-dl)))
18405 (arguments
18406 `(#:phases
18407 (modify-phases %standard-phases
18408 (add-after 'unpack 'configure
18409 (lambda* (#:key inputs #:allow-other-keys)
18410 (let ((youtube-dl (assoc-ref inputs "youtube-dl")))
18411 ;; .el is read-only in git.
18412 (chmod "youtube-dl.el" #o644)
18413 ;; Specify the absolute file names of the various
18414 ;; programs so that everything works out-of-the-box.
18415 (emacs-substitute-variables
18416 "youtube-dl.el"
18417 ("youtube-dl-program"
18418 (string-append youtube-dl "/bin/youtube-dl")))))))))
18419 (home-page "https://github.com/skeeto/youtube-dl-emacs/")
18420 (synopsis "Emacs youtube-dl download manager")
18421 (description "This package manages a video download queue for
18422 @command{youtube-dl}, which serves as the back end. It manages a single
18423 @command{youtube-dl} subprocess, downloading one video at a time. New videos
18424 can be queued at any time.")
18425 (license license:unlicense))))
18426
18427 (define-public emacs-org-web-tools
18428 (package
18429 (name "emacs-org-web-tools")
18430 (version "1.0")
18431 (source
18432 (origin
18433 (method git-fetch)
18434 (uri (git-reference
18435 (url "https://github.com/alphapapa/org-web-tools")
18436 (commit version)))
18437 (file-name (git-file-name name version))
18438 (sha256
18439 (base32
18440 "0kak9h5ny00d39gnwspv53nadnag01brw2fq9zk5wpfc91h9bjng"))))
18441 (build-system emacs-build-system)
18442 (propagated-inputs
18443 `(("emacs-dash" ,emacs-dash)
18444 ("emacs-esxml" ,emacs-esxml)
18445 ("emacs-s" ,emacs-s)))
18446 (inputs
18447 `(("pandoc" ,ghc-pandoc)))
18448 (arguments
18449 `(#:phases
18450 (modify-phases %standard-phases
18451 (add-after 'unpack 'patch-exec-paths
18452 (lambda* (#:key inputs #:allow-other-keys)
18453 (let ((pandoc (assoc-ref inputs "pandoc")))
18454 (substitute* "org-web-tools.el"
18455 (("\"pandoc\"") (string-append "\"" pandoc "/bin/pandoc\"")))
18456 #t))))))
18457 (home-page "https://github.com/alphapapa/org-web-tools")
18458 (synopsis "Display/Process web page as Org-mode content")
18459 (description "This package contains library functions and commands useful
18460 for retrieving web page content and processing it into Org-mode content.
18461
18462 For example, you can copy a URL to the clipboard or kill-ring, then run a
18463 command that downloads the page, isolates the “readable” content with
18464 @command{eww-readable}, converts it to Org-mode content with Pandoc, and
18465 displays it in an Org-mode buffer. Another command does all of that but
18466 inserts it as an Org entry instead of displaying it in a new buffer.")
18467 (license license:gpl3+)))
18468
18469 (define-public emacs-blimp
18470 (let ((commit "e420763d6d18b5d1be552cdbc47f91418343db03"))
18471 (package
18472 (name "emacs-blimp")
18473 (version (git-version "0.0.0" "1" commit))
18474 (source
18475 (origin
18476 (method git-fetch)
18477 (uri (git-reference
18478 (url "https://github.com/walseb/blimp")
18479 (commit commit)))
18480 (file-name (git-file-name name version))
18481 (sha256
18482 (base32
18483 "09wmhpym516b81dfq8smdmysh1fn610dzlyvyl2rkx8600f0fizd"))))
18484 (build-system emacs-build-system)
18485 (propagated-inputs
18486 `(("emacs-eimp" ,emacs-eimp)))
18487 (home-page "https://github.com/walseb/blimp")
18488 (synopsis "Emacs wrapper around all Imagemagick commands")
18489 (description "Blimp (Bustling Image Manipulation Package) is a complete
18490 wrapper around all Imagemagick commands with descriptions, autocompletion (for
18491 some commands) and hints displayed in prompt using @command{eimp.el} to
18492 execute its commands and resize images.")
18493 (license license:gpl3+))))
18494
18495 (define-public emacs-synosaurus
18496 (let ((commit "8bf95b935976ec0a1964cf175ed57cc5f6f93bdb"))
18497 (package
18498 (name "emacs-synosaurus")
18499 (version (git-version "0.1.0" "1" commit))
18500 (source
18501 (origin
18502 (method git-fetch)
18503 (uri (git-reference
18504 (url "https://github.com/hpdeifel/synosaurus")
18505 (commit commit)))
18506 (file-name (git-file-name name version))
18507 (sha256
18508 (base32
18509 "15by9jccab6kyplxa6k0glzaivxkqdigl33gl2qi2cvy6f2q7gva"))))
18510 (build-system emacs-build-system)
18511 (propagated-inputs
18512 `(("wordnet" ,wordnet)))
18513 (arguments
18514 `(#:phases
18515 (modify-phases %standard-phases
18516 (add-after 'unpack 'configure
18517 (lambda* (#:key inputs outputs #:allow-other-keys)
18518 (let ((wn (assoc-ref inputs "wordnet")))
18519 ;; .el is read-only in git.
18520 (chmod "synosaurus-wordnet.el" #o644)
18521 ;; Specify the absolute file names of the various
18522 ;; programs so that everything works out-of-the-box.
18523 (emacs-substitute-variables
18524 "synosaurus-wordnet.el"
18525 ("wordnet-command"
18526 (string-append wn "/bin/wn")))))))))
18527 (home-page "https://github.com/hpdeifel/synosaurus")
18528 (synopsis "Extensible thesaurus mode for Emacs")
18529 (description "Synosaurus is a thesaurus fontend for Emacs with pluggable
18530 backends, including the @command{wordnet} offline backend.")
18531 (license license:gpl3+))))
18532
18533 (define-public emacs-editorconfig
18534 (package
18535 (name "emacs-editorconfig")
18536 (version "0.8.1")
18537 (source
18538 (origin
18539 (method git-fetch)
18540 (uri (git-reference
18541 (url "https://github.com/editorconfig/editorconfig-emacs")
18542 (commit (string-append "v" version))))
18543 (file-name (git-file-name name version))
18544 (sha256
18545 (base32
18546 "1djlhkap7zddknzvjsjz0agpfsms1ih05zcpg1bikid2vs4gddyr"))))
18547 (build-system emacs-build-system)
18548 (home-page "https://github.com/editorconfig/editorconfig-emacs")
18549 (synopsis "Define and maintain consistent coding styles between different
18550 editors and IDEs")
18551 (description "The EditorConfig project consists of a file format for
18552 defining coding styles and a collection of text editor plugins that enable
18553 editors to read the file format and adhere to defined styles. EditorConfig
18554 files are easily readable and they work nicely with version control systems.")
18555 (license license:gpl3+)))
18556
18557 (define-public emacs-all-the-icons
18558 (package
18559 (name "emacs-all-the-icons")
18560 (version "4.0.1")
18561 (source
18562 (origin
18563 (method git-fetch)
18564 (uri (git-reference
18565 (url "https://github.com/domtronn/all-the-icons.el")
18566 (commit version)))
18567 (file-name (git-file-name name version))
18568 (sha256
18569 (base32 "0yh7gnv9xfqn8q4rzaa6wpyn9575vyfxy7d3afly2mqsb367fgm5"))))
18570 (build-system emacs-build-system)
18571 (arguments
18572 `(#:include '("\\.el$" "^data/" "^fonts/")
18573 ;; Compiling "test/" fails with "Symbol’s value as variable is void:
18574 ;; all-the-icons--root-code". Ignoring tests.
18575 #:exclude '("^test/")
18576 #:tests? #f))
18577 (propagated-inputs
18578 `(("f" ,emacs-f)
18579 ("memoize" ,emacs-memoize)))
18580 (home-page "https://github.com/domtronn/all-the-icons.el")
18581 (synopsis "Collect icon fonts and propertize them within Emacs")
18582 (description
18583 "All-the-icons is a utility package to collect various icon fonts and
18584 propertize them within Emacs. Icon fonts allow you to propertize and format
18585 icons the same way you would normal text. This enables things such as better
18586 scaling of and anti aliasing of the icons.")
18587 ;; Package is released under Expat license. Elisp files are licensed
18588 ;; under GPL3+. Fonts come with various licenses: Expat for
18589 ;; "all-the-icons.ttf" and "file-icons.ttf", Apache License 2.0 for
18590 ;; "material-design-icons.ttf", and SIL OFL 1.1 for "fontawesome.ttf",
18591 ;; "ocitcons.ttf" and "weathericons.ttf".
18592 (license
18593 (list license:expat license:gpl3+ license:silofl1.1 license:asl2.0))))
18594
18595 (define-public emacs-wttrin
18596 (let ((commit "df5427ce2a5ad4dab652dbb1c4a1834d7ddc2abc")
18597 (revision "1"))
18598 (package
18599 (name "emacs-wttrin")
18600 (version (git-version "0.2.0" revision commit))
18601 (source (origin
18602 (method git-fetch)
18603 (uri (git-reference
18604 (url "https://github.com/bcbcarl/emacs-wttrin")
18605 (commit commit)))
18606 (file-name (git-file-name name version))
18607 (sha256
18608 (base32
18609 "1ai655f10iayb4vw0ass2j3x83f4vsv90326mnywkzfl3sxd432z"))))
18610 (build-system emacs-build-system)
18611 (propagated-inputs
18612 `(("emacs-xterm-color" ,emacs-xterm-color)))
18613 (home-page "https://github.com/bcbcarl/emacs-wttrin")
18614 (synopsis "Frontend for weather web service @url{wttr.in}")
18615 (description "This package provides local weather information from
18616 @url{wttr.in}.")
18617 (license license:expat))))
18618
18619 (define-public emacs-browse-kill-ring
18620 (let ((commit "1ef72cc6accd94cd7032c02b1b2c78ae7f1d1965")
18621 (revision "0"))
18622 (package
18623 (name "emacs-browse-kill-ring")
18624 (version (git-version "2.0.0" revision commit))
18625 (source
18626 (origin
18627 (method git-fetch)
18628 (uri (git-reference
18629 (url "https://github.com/browse-kill-ring/browse-kill-ring")
18630 (commit commit)))
18631 (file-name (git-file-name name version))
18632 (sha256
18633 (base32
18634 "0mil32g7hcw376jibs5hdyv00xbaql3m4a27rwqaafg0x59avxdj"))))
18635 (build-system emacs-build-system)
18636 (home-page "https://github.com/browse-kill-ring/browse-kill-ring")
18637 (synopsis "Interactively insert items from kill-ring")
18638 (description
18639 "Did you ever feel that @code{C-y M-y M-y M-y ...} is not a great way
18640 of trying to find that piece of text you know you killed a while back? Then
18641 @code{browse-kill-ring.el} is for you.")
18642 (license license:gpl2+))))
18643
18644 (define-public emacs-powerline
18645 (package
18646 (name "emacs-powerline")
18647 (version "2.4")
18648 (source
18649 (origin
18650 (method git-fetch)
18651 (uri (git-reference
18652 (url "https://github.com/milkypostman/powerline")
18653 (commit version)))
18654 (file-name (git-file-name name version))
18655 (sha256
18656 (base32
18657 "1hp3xp18943n0rlggz55150020ivw8gvi1vyxkr4z8xhpwq4gaar"))))
18658 (build-system emacs-build-system)
18659 (home-page "https://github.com/milkypostman/powerline/")
18660 (synopsis "Mode-line plugin for Emacs")
18661 (description "Powerline is a utility plugin which allows you to create
18662 a better-looking, more functional Emacs mode-line. A collection of predefined
18663 themes comes with the package.")
18664 (license license:gpl3+)))
18665
18666 (define-public emacs-spaceline
18667 (package
18668 (name "emacs-spaceline")
18669 (version "2.0.1")
18670 (source
18671 (origin
18672 (method git-fetch)
18673 (uri (git-reference
18674 (url "https://github.com/TheBB/spaceline")
18675 (commit (string-append "v" version))))
18676 (file-name (git-file-name name version))
18677 (sha256
18678 (base32
18679 "1q8r95zfrh0vxna5ml2pq9b9f66clfqcl4d2qy2aizkvzyxg6skl"))))
18680 (build-system emacs-build-system)
18681 (propagated-inputs
18682 `(("dash" ,emacs-dash)
18683 ("powerline" ,emacs-powerline)
18684 ("s" ,emacs-s)))
18685 (home-page "https://github.com/TheBB/spaceline")
18686 (synopsis "Powerline theme from Spacemacs")
18687 (description "Spaceline provides Spacemacs' mode-line theme.
18688 This package provides features for three kinds of users.
18689
18690 @itemize
18691 @item You just want to use the Spacemacs mode-line theme and forget about it.
18692 @item You want to use something similar to the Spacemacs mode-line theme, but
18693 with a handful of easy tweaks.
18694 @item You want an easy-to-use library for building your own mode-line from
18695 scratch, and you think the Spacemacs theme looks good.
18696 @end itemize")
18697 (license license:gpl3+)))
18698
18699 (define-public emacs-spaceline-next
18700 (let ((commit "1b26af2c1a701481ac5d90928fe0200e389756c3")
18701 (last-release-version "2.0.1")
18702 (revision "0"))
18703 (package
18704 (inherit emacs-spaceline)
18705 (name "emacs-spaceline-next")
18706 (version (git-version last-release-version revision commit))
18707 (source
18708 (origin
18709 (method git-fetch)
18710 (uri (git-reference
18711 (url "https://github.com/TheBB/spaceline.git")
18712 (commit commit)))
18713 (sha256
18714 (base32 "11lwckqcgzsahrkkm5wk1ph4kc7d4yz05r7251g8c9f0q6vdj9dp"))
18715 (file-name (git-file-name name version)))))))
18716
18717 (define-public emacs-column-marker
18718 (package
18719 (name "emacs-column-marker")
18720 (version "9")
18721 (source
18722 (origin
18723 (method url-fetch)
18724 (uri "https://www.emacswiki.org/emacs/download/column-marker.el")
18725 (sha256 (base32 "05bv198zhqw5hqq6cr11mhz02dpca74hhp1ycwq369m0yb2naxy9"))))
18726 (build-system emacs-build-system)
18727 (home-page "https://www.emacswiki.org/emacs/ColumnMarker")
18728 (synopsis "Emacs mode for highlighting columns")
18729 (description
18730 "With @code{column-marker.el} you can highlight any number of text columns.
18731 Three such highlight column markers are provided by default. This is
18732 especially useful for languages like COBOL or Fortran where certain columns
18733 have special meaning. It is also handy for aligning text across long vertical
18734 distances. Multi-column characters, such as @kbd{TAB} are treated
18735 correctly.")
18736 (license license:gpl2+)))
18737
18738 (define-public emacs-slime-repl-ansi-color
18739 (let ((commit "ad03263f5d4de473bc173b64a6fc3dc1106393d7"))
18740 (package
18741 (name "emacs-slime-repl-ansi-color")
18742 (version (git-version "0.0.0" "1" commit))
18743 (source (origin
18744 (method git-fetch)
18745 (uri (git-reference
18746 (url "https://github.com/deadtrickster/slime-repl-ansi-color")
18747 (commit commit)))
18748 (file-name (git-file-name name version))
18749 (sha256
18750 (base32
18751 "0bpg7gxz310x7bnlg324c507sxc5gxwwz6h64h6kdq141r73vbi4"))))
18752 (build-system emacs-build-system)
18753 (home-page "https://github.com/deadtrickster/slime-repl-ansi-color")
18754 (synopsis "Color ANSI codes in the REPL of SLIME")
18755 (description "Color ANSI codes in the REPL of SLIME")
18756 (license license:gpl2+))))
18757
18758 (define-public emacs-helm-slime
18759 (package
18760 (name "emacs-helm-slime")
18761 (version "0.4.0")
18762 (source (origin
18763 (method git-fetch)
18764 (uri (git-reference
18765 (url "https://github.com/emacs-helm/helm-slime")
18766 (commit version)))
18767 (file-name (git-file-name name version))
18768 (sha256
18769 (base32
18770 "0mrpjhpijdrq353fnfvdj9l9xfsz390qlcvifcair9732ma7i8l0"))))
18771 (build-system emacs-build-system)
18772 (propagated-inputs
18773 `(("emacs-helm" ,emacs-helm)
18774 ("emacs-slime" ,emacs-slime)))
18775 (home-page "https://github.com/emacs-helm/helm-slime")
18776 (synopsis "Helm for SLIME, the Superior Lisp Interaction Mode for Emacs")
18777 (description "Helm-SLIME defines a few new commands:
18778
18779 @itemize
18780 @item helm-slime-complete: Select a symbol from the SLIME completion systems.
18781 @item helm-slime-list-connections: Yet another slime-list-connections with Helm.
18782 @item: helm-slime-apropos: Yet another slime-apropos with Helm.
18783 @item helm-slime-repl-history: Select an input from the SLIME REPL history and insert it.
18784 @end itemize\n")
18785 (license license:gpl3+)))
18786
18787 (define-public emacs-helm-sly
18788 (package
18789 (name "emacs-helm-sly")
18790 (version "0.4.1")
18791 (source (origin
18792 (method git-fetch)
18793 (uri (git-reference
18794 (url "https://github.com/emacs-helm/helm-sly")
18795 (commit version)))
18796 (file-name (git-file-name name version))
18797 (sha256
18798 (base32
18799 "0b2dx9nzh5233lkix3lz81c9cv626lk2hjpcjiikwvyp6y0q92ys"))))
18800 (build-system emacs-build-system)
18801 (propagated-inputs
18802 `(("emacs-helm" ,emacs-helm)
18803 ("emacs-sly" ,emacs-sly)))
18804 (home-page "https://github.com/emacs-helm/helm-sly")
18805 (synopsis "Helm for SLY, a Common Lisp interaction mode for Emacs")
18806 (description "Helm-SLY defines a few new commands:
18807
18808 @itemize
18809 @item helm-sly-list-connections: Yet another Lisp connection list with Helm.
18810 @item: helm-sly-apropos: Yet another @command{apropos} with Helm.
18811 @item helm-sly-mini: Like @command{helm-sly-list-connections}, but include an
18812 extra source of Lisp-related buffers, like the events buffer or the scratch
18813 buffer.
18814 @end itemize\n")
18815 (license license:gpl3+)))
18816
18817 (define-public emacs-gtk-look
18818 (package
18819 (name "emacs-gtk-look")
18820 (version "29")
18821 (source (origin
18822 (method url-fetch)
18823 (uri "https://download.tuxfamily.org/user42/gtk-look.el")
18824 (sha256
18825 (base32
18826 "14p2nwrd51cr1v06fxbjjn6jdrkf9d6vcxhmscm0kl677s25ypsp"))))
18827 (build-system emacs-build-system)
18828 (arguments
18829 `(#:phases
18830 (modify-phases %standard-phases
18831 (add-after 'unpack 'configure
18832 (lambda _
18833 ;; File is read-only.
18834 (chmod "gtk-look.el" #o644)
18835 (emacs-substitute-variables "gtk-look.el"
18836 ("gtk-lookup-devhelp-indices"
18837 '(list (expand-file-name "~/.guix-profile/share/gtk-doc/html/*/*.devhelp*"))))
18838 #t)))))
18839 (home-page "http://user42.tuxfamily.org/gtk-look/index.html")
18840 (synopsis "Find and display HTML documentation for GTK, GNOME and Glib")
18841 (description "@command{gtk-look} finds and displays HTML documentation for
18842 GTK, GNOME and Glib functions and variables in Emacs, similar to what
18843 info-lookup-symbol does for info files (C-h S). The documentation is expected
18844 to be devhelp indexes with HTML files. The location of the indexes can be
18845 customized. In addition to C code development @command{gtk-look} is good for
18846
18847 @itemize
18848 @item @command{perl-gtk2}, recognising class funcs like
18849 @command{Gtk2::Label->new} and bare method names like @command{set_text}.
18850 @item @command{guile-gnome}, recognising methods like @command{set-text} and
18851 classes like @command{<gtk-window>}.
18852 @end itemize\n")
18853 (license license:gpl3+)))
18854
18855 (define-public emacs-ov
18856 (package
18857 (name "emacs-ov")
18858 (version "1.0.6")
18859 (source (origin
18860 (method git-fetch)
18861 (uri (git-reference
18862 (url "https://github.com/ShingoFukuyama/ov.el")
18863 (commit version)))
18864 (file-name (git-file-name name version))
18865 (sha256
18866 (base32
18867 "0qxk2rf84j86syxi8xknsq252irwg7sz396v3bb4wqz4prpj0kzc"))))
18868 (build-system emacs-build-system)
18869 (home-page "https://github.com/ShingoFukuyama/ov.el")
18870 (synopsis "Overlay library for Emacs Lisp")
18871 (description "@code{ov.el} provides a simple way to manipulate overlays in
18872 Emacs.")
18873 (license license:gpl3+)))
18874
18875 (define-public emacs-matrix-client
18876 (let ((commit "a0623667b07a4bf60980c97b078e9faed97ace79"))
18877 (package
18878 (name "emacs-matrix-client")
18879 (version (git-version "0.0.0" "4" commit))
18880 (source (origin
18881 (method git-fetch)
18882 (uri (git-reference
18883 (url "https://github.com/jgkamat/matrix-client-el")
18884 (commit commit)))
18885 (file-name (git-file-name name version))
18886 (sha256
18887 (base32
18888 "1zya8id3y9wzjaj7nplq7br6nhm3lsskv0fkn1xr1y77fzcfgcdb"))))
18889 (build-system emacs-build-system)
18890 (arguments
18891 `(#:phases
18892 (modify-phases %standard-phases
18893 (add-after 'unpack 'add-missing-require
18894 ;; Fix a filter error at runtime due to a missing require.
18895 ;; Reported upstream:
18896 ;; <https://github.com/alphapapa/matrix-client.el/issues/76>
18897 (lambda _
18898 (substitute* "matrix-client-room.el"
18899 (("\\(require 'dash-functional\\)" all)
18900 (string-append all "\n" "(require 'anaphora)")))
18901 #t)))))
18902 (propagated-inputs
18903 `(("a" ,emacs-a)
18904 ("anaphora" ,emacs-anaphora)
18905 ("dash" ,emacs-dash)
18906 ("esxml" ,emacs-esxml)
18907 ("f" ,emacs-f)
18908 ("frame-purpose" ,emacs-frame-purpose)
18909 ("ht" ,emacs-ht)
18910 ("ov" ,emacs-ov)
18911 ("rainbow-identifiers" ,emacs-rainbow-identifiers)
18912 ("request" ,emacs-request)
18913 ("s" ,emacs-s)
18914 ("tracking" ,emacs-tracking)))
18915 (home-page "https://github.com/jgkamat/matrix-client-el")
18916 (synopsis "Matrix client for Emacs")
18917 (description "@code{matrix-client} is a simple chat UI to Matrix.org
18918 rooms. It also provides an API which allows Emacs to seamlessly create
18919 RPC channels with users and other software.")
18920 (license license:gpl3+))))
18921
18922 (define-public emacs-sesman
18923 (package
18924 (name "emacs-sesman")
18925 (version "0.3.4")
18926 (source
18927 (origin
18928 (method git-fetch)
18929 (uri (git-reference
18930 (url "https://github.com/vspinu/sesman")
18931 (commit (string-append "v" version))))
18932 (file-name (git-file-name name version))
18933 (sha256
18934 (base32
18935 "0z5jb4vpbjsi63w3wjy6d2lgz33qdfvrgfb3bszv4hcf6a96y7fc"))))
18936 (build-system emacs-build-system)
18937 (arguments
18938 `(#:phases
18939 (modify-phases %standard-phases
18940 (add-after 'unpack 'set-shell
18941 ;; Setting the SHELL environment variable is required for the tests
18942 ;; to find sh.
18943 (lambda _
18944 (setenv "SHELL" (which "sh"))
18945 #t)))
18946 #:tests? #t
18947 #:test-command '("make" "test")))
18948 (home-page "https://github.com/vspinu/sesman")
18949 (synopsis "Session manager for Emacs based IDEs")
18950 (description "Sesman provides facilities for session management and
18951 interactive session association with the current contexts (project, directory,
18952 buffers). While sesman can be used to manage arbitrary sessions, it primary
18953 targets the Emacs based IDEs (CIDER, ESS, Geiser, Robe, SLIME etc.)")
18954 (license license:gpl3+)))
18955
18956 (define-public emacs-buttercup
18957 (package
18958 (name "emacs-buttercup")
18959 (version "1.23")
18960 (source
18961 (origin
18962 (method git-fetch)
18963 (uri (git-reference
18964 (url "https://github.com/jorgenschaefer/emacs-buttercup")
18965 (commit (string-append "v" version))))
18966 (file-name (git-file-name name version))
18967 (sha256
18968 (base32
18969 "0ym1hajy47n5f1rxic8qfxrwd8zc1r7csz1v4hrwhwm4qld4krfr"))))
18970 (build-system emacs-build-system)
18971 (arguments
18972 `(#:tests? #t
18973 #:test-command '("make" "test")
18974 #:phases
18975 (modify-phases %standard-phases
18976 (add-after 'install 'install-bin
18977 (lambda* (#:key outputs #:allow-other-keys)
18978 (install-file "bin/buttercup"
18979 (string-append (assoc-ref outputs "out") "/bin"))
18980 #t)))))
18981 (home-page "https://github.com/jorgenschaefer/emacs-buttercup")
18982 (synopsis "Behavior driven emacs lisp testing framework")
18983 (description "Buttercup is a behavior-driven development framework for
18984 testing Emacs Lisp code. It groups related tests so they can share
18985 common set-up and tear-down code, and allows the programmer to \"spy\" on
18986 functions to ensure they are called with the right arguments during testing.")
18987 (license license:gpl3+)))
18988
18989 (define-public emacs-cort
18990 ;; Choosing a recent commit to fix some bugs.
18991 ;; https://github.com/conao3/cort.el/issues/106
18992 (let ((commit "495c3972b92b57a0cb5dd65ce5de9d3c6b8b6509")
18993 (revision "1"))
18994 (package
18995 (name "emacs-cort")
18996 (version (git-version "3.0.5" revision commit))
18997 (source (origin
18998 (method git-fetch)
18999 (uri (git-reference
19000 (url "https://github.com/conao3/cort.el")
19001 (commit commit)))
19002 (file-name (git-file-name name version))
19003 (sha256
19004 (base32
19005 "0f4irq1arh9c7lf9a5bla25am0jy5r6lj8ayb8k9k7lrirzhyk99"))))
19006 (build-system emacs-build-system)
19007 (propagated-inputs
19008 `(("emacs-ansi" ,emacs-ansi)))
19009 (arguments
19010 `(#:tests? #t
19011 #:test-command '("emacs" "--batch" "--quick"
19012 "--directory=." "--load=cort-tests.el"
19013 "--funcall=cort-test-run")))
19014 (home-page "https://github.com/conao3/cort.el")
19015 (synopsis "Unit test framework for the Emacs Lisp")
19016 (description "@code{cort} is a lightweight Emacs Lisp unit test library.")
19017 (license license:gpl3+))))
19018
19019 (define-public emacs-wordnut
19020 (let ((commit "feac531404041855312c1a046bde7ea18c674915")
19021 (revision "0"))
19022 (package
19023 (name "emacs-wordnut")
19024 (version (git-version "0.1" revision commit))
19025 (home-page "https://github.com/gromnitsky/wordnut")
19026 (source (origin
19027 (method git-fetch)
19028 (uri (git-reference (url home-page) (commit commit)))
19029 (sha256
19030 (base32
19031 "1jl0b6g64a9w0q7bfvwha67vgws5xd15b7mkfyb5gkz3pymqhfxn"))
19032 (patches
19033 (search-patches "emacs-wordnut-require-adaptive-wrap.patch"))
19034 (file-name (git-file-name name version))))
19035 (build-system emacs-build-system)
19036 (propagated-inputs
19037 `(("wordnet" ,wordnet)
19038 ("emacs-adaptive-wrap" ,emacs-adaptive-wrap)))
19039 (synopsis "Major mode for WordNet")
19040 (description "This Emacs package provides an interface for
19041 @code{wordnet}. Features include completion, if the query is not found
19042 too ambiguous and navigation in the result buffer.")
19043 (license license:gpl3+))))
19044
19045 (define-public emacs-frame-purpose
19046 (package
19047 (name "emacs-frame-purpose")
19048 (version "1.0")
19049 (source (origin
19050 (method git-fetch)
19051 (uri (git-reference
19052 (url "https://github.com/alphapapa/frame-purpose.el")
19053 (commit version)))
19054 (sha256
19055 (base32
19056 "0jq2aam1yvccw887ighd1wm2xkvk5bv53ffiz3crcl16a255aj4q"))
19057 (file-name (git-file-name name version))))
19058 (build-system emacs-build-system)
19059 (inputs
19060 `(("dash" ,emacs-dash)))
19061 (synopsis "Purpose-specific frames for Emacs")
19062 (description "@code{frame-purpose} makes it easy to open purpose-specific
19063 frames that only show certain buffers, e.g. by buffers’ major mode, their
19064 filename or directory, etc, with custom frame/X-window titles, icons, and
19065 other frame parameters.")
19066 (home-page "https://github.com/alphapapa/frame-purpose.el")
19067 (license license:gpl3+)))
19068
19069 (define-public emacs-arduino-mode
19070 (let ((commit "23ae47c9f28f559e70b790b471f20310e163a39b")
19071 (revision "1")) ;no release yet
19072 (package
19073 (name "emacs-arduino-mode")
19074 (version (git-version "0" revision commit))
19075 (source (origin
19076 (method git-fetch)
19077 (uri (git-reference
19078 (url "https://github.com/stardiviner/arduino-mode")
19079 (commit commit)))
19080 (sha256
19081 (base32
19082 "08vnbz9gpah1l93fzfd87aawrhcnh2v1kyfxgsn88pdwg8awz8rx"))
19083 (file-name (git-file-name name version))))
19084 (build-system emacs-build-system)
19085 (inputs
19086 `(("spinner" ,emacs-spinner)
19087 ("flycheck" ,emacs-flycheck)))
19088 (arguments
19089 `(#:phases
19090 (modify-phases %standard-phases
19091 ;; Emacs complains that "defmethod" and "defgeneric" are obsolete
19092 ;; macros when compiling. Substitute them with the recommended
19093 ;; macros "cl-defmethod" and "cl-defgeneric", respectively.
19094 (add-after 'unpack 'fix-obsolete
19095 (lambda _
19096 (substitute* "ede-arduino.el"
19097 (("defmethod") "cl-defmethod")
19098 (("defgeneric") "cl-defgeneric"))
19099 #t)))))
19100 (synopsis "Emacs major mode for editing Arduino sketches")
19101 (description "Emacs major mode for editing Arduino sketches.")
19102 (home-page "https://github.com/stardiviner/arduino-mode")
19103 (license license:gpl3+))))
19104
19105 (define-public emacs-annalist
19106 (let ((commit "e0601539c9ac0171a684ea3ff6266d215d1d08e6")
19107 (revision "1"))
19108 (package
19109 (name "emacs-annalist")
19110 (version (git-version "1.0.0" revision commit))
19111 (source (origin
19112 (method git-fetch)
19113 (uri (git-reference
19114 (url "https://github.com/noctuid/annalist.el")
19115 (commit commit)))
19116 (sha256
19117 (base32
19118 "10bmimdzpi6cql4sb2hbgdvrza83xbac50bi9qng4z662pfnlaam"))
19119 (file-name (git-file-name name version))))
19120 (build-system emacs-build-system)
19121 (native-inputs
19122 `(("emacs-buttercup" ,emacs-buttercup)
19123 ("emacs-lispy" ,emacs-lispy)
19124 ("emacs-evil" ,emacs-evil)))
19125 (arguments
19126 `(#:phases
19127 (modify-phases %standard-phases
19128 (add-before 'check 'fix-makefile
19129 (lambda _
19130 (substitute* "Makefile"
19131 (("cask exec ") ""))
19132 #t)))
19133 #:tests? #t
19134 #:test-command '("make" "test")))
19135 (home-page "https://github.com/noctuid/annalist.el")
19136 (synopsis "Record and display information with Org headings and tables")
19137 (description "This package allows for keybindings, settings, hooks, and
19138 advice to be recorded and displayed.")
19139 (license license:gpl3+))))
19140
19141 (define-public emacs-general
19142 (let ((commit "a0b17d207badf462311b2eef7c065b884462cb7c")
19143 (revision "4"))
19144 (package
19145 (name "emacs-general")
19146 (version (git-version "0" revision commit))
19147 (source
19148 (origin
19149 (method git-fetch)
19150 (uri (git-reference
19151 (url "https://github.com/noctuid/general.el")
19152 (commit commit)))
19153 (sha256
19154 (base32 "0wn5rk3gkimdklip392mnjrmkymgrb7q9skifi03cbpjam1anzvv"))
19155 (file-name (git-file-name name version))))
19156 (build-system emacs-build-system)
19157 (native-inputs
19158 `(("emacs-buttercup" ,emacs-buttercup)
19159 ("emacs-evil" ,emacs-evil)
19160 ("emacs-which-key" ,emacs-which-key)
19161 ("emacs-use-package" ,emacs-use-package)))
19162 (arguments
19163 `(#:tests? #t
19164 #:test-command '("buttercup" "-L" "test/test-general.el")))
19165 (home-page "https://github.com/noctuid/general.el")
19166 (synopsis "More convenient key definitions in emacs")
19167 (description "@code{general.el} provides a more convenient method for
19168 binding keys in emacs (for both evil and non-evil users). Like
19169 @code{use-package}, which provides a convenient, unified interface for
19170 managing packages, @code{general.el} is intended to provide a convenient,
19171 unified interface for key definitions. While this package does implement some
19172 completely new functionality (such as the ability to make vim-style
19173 keybindings under non-prefix keys with an optional timeout), its primary
19174 purpose is to build on existing functionality to make key definition more
19175 clear and concise. @code{general-define-key} is user-extensible and supports
19176 defining multiple keys in multiple keymaps at once, implicitly wrapping key
19177 strings with (@code{kbd ...}), using named prefix key sequences (like the
19178 leader key in vim), and much more.")
19179 (license license:gpl3+))))
19180
19181 (define-public emacs-tldr
19182 (let ((commit "7203d1be3dcbf12131846ffe06601933fa874d74"))
19183 (package
19184 (name "emacs-tldr")
19185 (version (git-version "0" "1" commit))
19186 (home-page "https://github.com/kuanyui/tldr.el")
19187 (source (origin
19188 (method git-fetch)
19189 (uri (git-reference
19190 (url (string-append home-page ".git"))
19191 (commit commit)))
19192 (sha256
19193 (base32
19194 "1bw6la463l2yfm7rp76ga4makfy4kpxgwi7ni5gxk31w11g26ryk"))
19195 (file-name (git-file-name name version))))
19196 (build-system emacs-build-system)
19197 (propagated-inputs
19198 `(("emacs-request" ,emacs-request)))
19199 (synopsis "Simplified and community-driven man pages for Emacs")
19200 (description "@code{emacs-tldr} allows the user to access tldr pages
19201 from within emacs. The @code{tldr} pages are a community effort to simplify
19202 the man pages with practical examples.")
19203 (license license:wtfpl2))))
19204
19205 (define-public emacs-window-layout
19206 (package
19207 (name "emacs-window-layout")
19208 (version "1.4")
19209 (home-page "https://github.com/kiwanami/emacs-window-layout")
19210 (source (origin
19211 (method git-fetch)
19212 (uri (git-reference
19213 (url home-page)
19214 (commit (string-append "v" version))))
19215 (sha256
19216 (base32
19217 "0wgqi8r844lbx52fn6az8c1n8m681rp6dkfzd54wmdk1ka7zmvv6"))
19218 (file-name (git-file-name name version))))
19219 (build-system emacs-build-system)
19220 (synopsis "Simple window layout management framework for emacs")
19221 (description "A window-layout management library that can split a frame
19222 or a window into some windows according to a layout recipe.")
19223 (license license:gpl3+)))
19224
19225 (define-public emacs-e2wm
19226 (package
19227 (name "emacs-e2wm")
19228 (version "1.4")
19229 (home-page "https://github.com/kiwanami/emacs-window-manager")
19230 (source (origin
19231 (method git-fetch)
19232 (uri (git-reference
19233 (url home-page)
19234 (commit (string-append "v" version))))
19235 (sha256
19236 (base32
19237 "12midsrx07pdrsr1qbl2rpi7xyhxqx08bkz7n7gf8vsmqkpfp56s"))
19238 (file-name (git-file-name name version))))
19239 (build-system emacs-build-system)
19240 (propagated-inputs
19241 `(("emacs-window-layout" ,emacs-window-layout)))
19242 (synopsis "Equilibrium Emacs Window Manager")
19243 (description "E2WM is a window manager for Emacs. It enables to
19244 customize the place of pop-up window, how the windows are split, how the
19245 buffers are located in the windows, keybinds to manipulate windows and
19246 buffers, etc. It also has plug-ins to help your Emacs life.")
19247 (license license:gpl3+)))
19248
19249 (define-public emacs-ctable
19250 (let ((commit "b8830d1ca95abb100a81bc32011bd17d5ecba000"))
19251 (package
19252 (name "emacs-ctable")
19253 (version (git-version "0.1.2" "1" commit))
19254 (home-page "https://github.com/kiwanami/emacs-ctable")
19255 (source (origin
19256 (method git-fetch)
19257 (uri (git-reference
19258 (url home-page)
19259 (commit commit)))
19260 (sha256
19261 (base32
19262 "0pg303pnqscrsbx9579hc815angszsgf9vpd2z2f8p4f4ka6a00h"))
19263 (file-name (git-file-name name version))))
19264 (build-system emacs-build-system)
19265 (synopsis "Table component for Emacs Lisp")
19266 (description "This program is a table component for Emacs Lisp. Other
19267 programs can use this table component for the application UI.")
19268 (license license:gpl3+))))
19269
19270 (define-public emacs-leetcode
19271 (let ((commit "8624496af9e105c3e07d88844b37ede87540d604")
19272 (revision "1"))
19273 (package
19274 (name "emacs-leetcode")
19275 (version (git-version "0" "1" commit))
19276 (home-page "https://github.com/ginqi7/leetcode-emacs.git")
19277 (source (origin
19278 (method git-fetch)
19279 (uri (git-reference
19280 (url "https://github.com/ginqi7/leetcode-emacs")
19281 (commit commit)))
19282 (sha256
19283 (base32
19284 "11pp7ydlmwrv7djf9mwk4xzn295xbmdnj5x13bfj5yjpjr89p531"))
19285 (file-name (git-file-name name version))))
19286 (build-system emacs-build-system)
19287 (propagated-inputs
19288 `(("emacs-names" ,emacs-names)
19289 ("emacs-ctable" ,emacs-ctable)))
19290 (synopsis "Solve and submit LeetCode problems from within Emacs")
19291 (description "This package provides an Emacs interface to LeetCode
19292 allowing users to log in and solve problems of their choice using Emacs.")
19293 (license license:unlicense))))
19294
19295 (define-public emacs-epc
19296 (let ((commit "e1bfa5ca163273859336e3cc89b4b6460f7f8cda"))
19297 (package
19298 (name "emacs-epc")
19299 (version (git-version "0.1.1" "1" commit))
19300 (home-page "https://github.com/kiwanami/emacs-epc")
19301 (source (origin
19302 (method git-fetch)
19303 (uri (git-reference
19304 (url home-page)
19305 (commit commit)))
19306 (sha256
19307 (base32
19308 "15nkrjgi64f829isfd6xrhl4zw8jirr8pkas7nisrbk1av868hx0"))
19309 (file-name (git-file-name name version))))
19310 (build-system emacs-build-system)
19311 (propagated-inputs
19312 `(("emacs-deferred" ,emacs-deferred)
19313 ("emacs-ctable" ,emacs-ctable)))
19314 (synopsis "RPC stack for Emacs Lisp")
19315 (description "This program is an asynchronous RPC stack for Emacs.
19316 Using this RPC stack, Emacs can communicate with the peer process
19317 smoothly. Because the protocol employs S-expression encoding and consists of
19318 asynchronous communications, the RPC response is fairly good.")
19319 (license license:gpl3+))))
19320
19321 (define-public emacs-edbi
19322 (let ((commit "6f50aaf4bde75255221f2292c7a4ad3fa9d918c0"))
19323 (package
19324 (name "emacs-edbi")
19325 (version (git-version "0.1.3" "1" commit))
19326 (home-page "https://github.com/kiwanami/emacs-edbi")
19327 (source (origin
19328 (method git-fetch)
19329 (uri (git-reference
19330 (url home-page)
19331 (commit commit)))
19332 (sha256
19333 (base32
19334 "0x0igyvdcm4863n7zndvcv6wgzwgn7324cbfjja6xd7r0k936zdy"))
19335 (file-name (git-file-name name version))))
19336 (build-system emacs-build-system)
19337 (inputs
19338 `(("perl" ,perl)
19339 ("perl-rpc-epc-service" ,perl-rpc-epc-service)
19340 ("perl-dbi" ,perl-dbi)
19341 ;; TODO: Adding support for perl-dbd-mysql and others would
19342 ;; dramatically increase the closure size. Make several packages?
19343 ("perl-dbd-sqlite" ,perl-dbd-sqlite)))
19344 (propagated-inputs
19345 `(("emacs-e2wm" ,emacs-e2wm)
19346 ("emacs-epc" ,emacs-epc)))
19347 (arguments
19348 `(#:include '("\\.el$" "\\.pl$")
19349 #:phases
19350 (modify-phases %standard-phases
19351 (add-after 'install 'patch-path
19352 (lambda* (#:key inputs outputs #:allow-other-keys)
19353 (let ((perl (assoc-ref inputs "perl"))
19354 (dir (string-append (assoc-ref outputs "out")
19355 "/share/emacs/site-lisp")))
19356 (substitute* (string-append dir "/edbi.el")
19357 (("\"perl\"") (string-append "\"" perl "/bin/perl\"")))
19358 (chmod (string-append dir "/edbi-bridge.pl") #o555)
19359 (wrap-program (string-append dir "/edbi-bridge.pl")
19360 `("PERL5LIB" ":" prefix (,(getenv "PERL5LIB"))))
19361 #t))))))
19362 (synopsis "Database Interface for Emacs Lisp")
19363 (description "This program connects the database server through Perl's
19364 DBI, and provides DB-accessing API and the simple management UI.")
19365 (license license:gpl3+))))
19366
19367 (define-public emacs-edbi-sqlite
19368 (let ((commit "52cb9ca1af7691b592f2cfd2f007847e7a4ccd5f"))
19369 (package
19370 (name "emacs-edbi-sqlite")
19371 (version (git-version "0.1.1" "1" commit))
19372 (home-page "https://github.com/proofit404/edbi-sqlite")
19373 (source (origin
19374 (method git-fetch)
19375 (uri (git-reference
19376 (url home-page)
19377 (commit commit)))
19378 (sha256
19379 (base32
19380 "1vll81386fx90lq5sy4rlxcik6mvw7zx5cc51f0yaca9bkcckp51"))
19381 (file-name (git-file-name name version))))
19382 (build-system emacs-build-system)
19383 (propagated-inputs
19384 `(("emacs-edbi" ,emacs-edbi)))
19385 (synopsis "Open SQLite files in Emacs")
19386 (description "This package is a convenience wrapper for @command{edbi}
19387 to open SQLite databases.")
19388 (license license:gpl3+))))
19389
19390 (define-public emacs-nix-mode
19391 (package
19392 (name "emacs-nix-mode")
19393 (version "1.4.4")
19394 (source
19395 (origin
19396 (method git-fetch)
19397 (uri (git-reference
19398 (url "https://github.com/NixOS/nix-mode")
19399 (commit (string-append "v" version))))
19400 (file-name (git-file-name name version))
19401 (sha256
19402 (base32 "19f36kl00pxm2a18hn4cdsdvxlfsdx1pnnm6s6zxd8nw6y8ynvn0"))))
19403 (build-system emacs-build-system)
19404 (inputs
19405 `(("emacs-company" ,emacs-company)
19406 ("emacs-json-mode" ,emacs-json-mode)
19407 ("emacs-mmm-mode" ,emacs-mmm-mode)))
19408 (home-page "https://github.com/NixOS/nix-mode")
19409 (synopsis "Emacs major mode for editing Nix expressions")
19410 (description "@code{nixos-mode} provides an Emacs major mode for editing
19411 Nix expressions. It supports syntax highlighting, indenting and refilling of
19412 comments.")
19413 (license license:lgpl2.1+)))
19414
19415 (define-public emacs-libmpdel
19416 (package
19417 (name "emacs-libmpdel")
19418 (version "1.1.2")
19419 (source (origin
19420 (method git-fetch)
19421 (uri (git-reference
19422 (url "https://gitea.petton.fr/mpdel/libmpdel.git")
19423 (commit (string-append "v" version))))
19424 (file-name (git-file-name name version))
19425 (sha256
19426 (base32
19427 "0dnjndpv6bmz5blfs75ynmbm32g23l4slg5p3941b1i94a08qzpy"))))
19428 (build-system emacs-build-system)
19429 (home-page "https://gitea.petton.fr/mpdel/libmpdel")
19430 (synopsis "Emacs library to communicate with Music Player Daemon (MPD)")
19431 (description
19432 "An Emacs library client to communicate with Music Player Daemon (MPD), a
19433 flexible, powerful, server-side application for playing music.")
19434 (license license:gpl3+)))
19435
19436 (define-public emacs-mpdel
19437 (package
19438 (name "emacs-mpdel")
19439 (version "1.0.0")
19440 (source
19441 (origin
19442 (method git-fetch)
19443 (uri (git-reference
19444 (url "https://gitea.petton.fr/mpdel/mpdel.git")
19445 (commit (string-append "v" version))))
19446 (file-name (git-file-name name version))
19447 (sha256
19448 (base32
19449 "0pyyvbzskr44dxbmlp3y0r6s459fd51cvwjmnjaqxfxflr5v891g"))))
19450 (build-system emacs-build-system)
19451 (inputs
19452 `(("emacs-libmpdel" ,emacs-libmpdel)))
19453 (home-page "https://gitea.petton.fr/mpdel/mpdel")
19454 (synopsis "Emacs user interface for Music Player Daemon (MPD)")
19455 (description
19456 "MPDel provides an Emacs user interface to control playback (play, pause,
19457 next, volume) and display and control the current playlist as well as your
19458 stored playlists.")
19459 (license license:gpl3+)))
19460
19461 (define-public emacs-vterm
19462 (let ((version "0")
19463 (revision "2")
19464 (commit "f41849c2c9c1899f22d1c3d4f871ec47c82627ce"))
19465 (package
19466 (name "emacs-vterm")
19467 (version (git-version version revision commit))
19468 (source (origin
19469 (method git-fetch)
19470 (uri (git-reference
19471 (url "https://github.com/akermu/emacs-libvterm")
19472 (commit commit)))
19473 (file-name (git-file-name name version))
19474 (sha256
19475 (base32
19476 "1b5s1101n7a2lnpkbadm1h4k6z295fpijx0rdpmd05dkhyarax6n"))))
19477 (build-system emacs-build-system)
19478 (arguments
19479 `(#:modules ((guix build emacs-build-system)
19480 ((guix build cmake-build-system) #:prefix cmake:)
19481 (guix build emacs-utils)
19482 (guix build utils))
19483 #:imported-modules (,@%emacs-build-system-modules
19484 (guix build cmake-build-system))
19485 #:phases
19486 (modify-phases %standard-phases
19487 (add-before 'add-source-to-load-path 'substitute-vterm-module-path
19488 (lambda* (#:key outputs #:allow-other-keys)
19489 (chmod "vterm.el" #o644)
19490 (emacs-substitute-sexps "vterm.el"
19491 ("(require 'vterm-module nil t)"
19492 `(module-load
19493 ,(string-append (assoc-ref outputs "out")
19494 "/lib/vterm-module.so"))))
19495 #t))
19496 (add-after 'build 'configure
19497 ;; Run cmake.
19498 (lambda* (#:key outputs #:allow-other-keys)
19499 ((assoc-ref cmake:%standard-phases 'configure)
19500 #:outputs outputs
19501 #:out-of-source? #f
19502 #:configure-flags '("-DUSE_SYSTEM_LIBVTERM=ON"))
19503 #t))
19504 (add-after 'configure 'make
19505 ;; Run make.
19506 (lambda* (#:key (make-flags '()) outputs #:allow-other-keys)
19507 ;; Compile the shared object file.
19508 (apply invoke "make" "all" make-flags)
19509 ;; Move the file into /lib.
19510 (install-file
19511 "vterm-module.so"
19512 (string-append (assoc-ref outputs "out") "/lib"))
19513 #t)))
19514 #:tests? #f))
19515 (native-inputs
19516 `(("cmake" ,cmake-minimal)
19517 ("libtool" ,libtool)
19518 ("libvterm" ,libvterm)))
19519 (home-page "https://github.com/akermu/emacs-libvterm")
19520 (synopsis "Emacs libvterm integration")
19521 (description "This package implements a bridge to @code{libvterm} to
19522 display a terminal in an Emacs buffer.")
19523 (license license:gpl3+))))
19524
19525 (define-public emacs-simple-mpc
19526 ;; There have been no releases.
19527 (let ((commit "bee8520e81292b4c7353e45b193f9a13b482f5b2")
19528 (revision "1"))
19529 (package
19530 (name "emacs-simple-mpc")
19531 (version (git-version "0" revision commit))
19532 (source
19533 (origin
19534 (method git-fetch)
19535 (uri (git-reference
19536 (url "https://github.com/jorenvo/simple-mpc")
19537 (commit commit)))
19538 (file-name (git-file-name name version))
19539 (sha256
19540 (base32
19541 "1ja06pv007cmzjjgka95jlg31k7d29jrih1yxyblsxv85s9sg21q"))))
19542 (build-system emacs-build-system)
19543 (propagated-inputs `(("emacs-s" ,emacs-s)))
19544 (home-page "https://github.com/jorenvo/simple-mpc")
19545 (synopsis "Simple Emacs frontend to mpc")
19546 (description "This package provides an Emacs major mode which acts as a
19547 front end to mpc, a client for the @dfn{Music Player Daemon} (MPD).")
19548 (license license:gpl3+))))
19549
19550 (define-public emacs-mkmcc-gnuplot-mode
19551 (package
19552 (name "emacs-mkmcc-gnuplot-mode")
19553 (version "1.2.0")
19554 (source
19555 (origin
19556 (method git-fetch)
19557 (uri (git-reference
19558 (url "https://github.com/mkmcc/gnuplot-mode")
19559 (commit "601f6392986f0cba332c87678d31ae0d0a496ce7")))
19560 (file-name (git-file-name name version))
19561 (sha256
19562 (base32
19563 "14f0yh1rjqc3337j4sbqzfb7pjim2c8a7wk1a73xkrdkmjn82vgb"))))
19564 (build-system emacs-build-system)
19565 (home-page "https://mkmcc.github.io/software/gnuplot-mode.html")
19566 (synopsis "Minimal emacs major mode for editing gnuplot scripts")
19567 (description "@code{emacs-mkmcc-gnuplot-mode} is a minimal emacs major
19568 mode for editing gnuplot scripts. It provides syntax highlighting,
19569 indentation and a command to plot the file.")
19570 (license license:gpl3+)))
19571
19572 (define-public emacs-cmake-font-lock
19573 (let ((commit "e0ceaaae19c13b66f781512e3295bfc6707b56f4")
19574 (revision "1"))
19575 (package
19576 (name "emacs-cmake-font-lock")
19577 (version (git-version "0.1.5" revision commit))
19578 (source (origin
19579 (method git-fetch)
19580 (uri (git-reference
19581 (url "https://github.com/Lindydancer/cmake-font-lock")
19582 (commit commit)))
19583 (file-name (git-file-name name version))
19584 (sha256
19585 (base32
19586 "03gsyn95dlmsn15bl353bphi3qy7ccn5bss3f7n97kf38bllh0yf"))))
19587 (build-system emacs-build-system)
19588 (native-inputs
19589 `(("emacs-faceup" ,emacs-faceup)))
19590 (arguments
19591 `(#:include (cons "^admin\\/" %default-include)))
19592 (home-page "https://github.com/Lindydancer/cmake-font-lock")
19593 (synopsis "Advanced type-aware syntax-highlighting for CMake")
19594 (description "This package highlights function arguments in CMake
19595 according to their use.")
19596 (license license:gpl3+))))
19597
19598 (define-public emacs-dtrt-indent
19599 (package
19600 (name "emacs-dtrt-indent")
19601 (version "0.8")
19602 (source (origin
19603 (method git-fetch)
19604 (uri (git-reference
19605 (url "https://github.com/jscheid/dtrt-indent")
19606 (commit version)))
19607 (file-name (git-file-name name version))
19608 (sha256
19609 (base32
19610 "0pgf0pvqd8k4yzhdn2df9lp0y8hmlm2ccrh07jivwlccs95pcz7z"))))
19611 (build-system emacs-build-system)
19612 (home-page "https://github.com/jscheid/dtrt-indent")
19613 (synopsis "Minor mode that guesses the indentation offset")
19614 (description "This package provides a minor mode that guesses the
19615 indentation offset originally used for creating source code files and
19616 transparently adjusts the corresponding settings in Emacs, making it more
19617 convenient to edit foreign files.")
19618 (license license:gpl2+)))
19619
19620 (define-public emacs-repo
19621 (package
19622 (name "emacs-repo")
19623 (version "0.1.3")
19624 (source (origin
19625 (method git-fetch)
19626 (uri (git-reference
19627 (url "https://github.com/canatella/repo-el")
19628 (commit version)))
19629 (file-name (git-file-name name version))
19630 (sha256
19631 (base32
19632 "0rbvcvm7bfr6ncji7cllfxyyr6x7n9fx863byp243phsj3n93adz"))))
19633 (build-system emacs-build-system)
19634 (native-inputs
19635 `(("emacs-el-mock" ,emacs-el-mock)
19636 ("ert-runner" ,emacs-ert-runner)))
19637 (propagated-inputs
19638 `(("emacs-f" ,emacs-f)
19639 ("magit" ,emacs-magit)))
19640 (home-page "https://github.com/canatella/repo-el")
19641 (synopsis "Emacs interface for the Google Repo tool")
19642 (description "This package provides integration of the Google Repo tool
19643 with emacs. It displays the output of the @code{repo status} command in a
19644 buffer and launches Magit from the status buffer for the project at point.")
19645 (license license:gpl3+)))
19646
19647 (define-public emacs-alect-themes
19648 (package
19649 (name "emacs-alect-themes")
19650 (version "0.9")
19651 (source (origin
19652 (method git-fetch)
19653 (uri (git-reference
19654 (url "https://github.com/alezost/alect-themes")
19655 (commit (string-append "v" version))))
19656 (file-name (git-file-name name version))
19657 (sha256
19658 (base32
19659 "0nffxpdm0sa7bynwi0rmlwpc4qmvbda5ankhzz7fmk4ap9fkjxv9"))))
19660 (build-system emacs-build-system)
19661 (home-page "https://github.com/alezost/alect-themes")
19662 (synopsis "Low contrast, light, dark and black color theme for Emacs")
19663 (description "@code{emacs-alect-themes} provides configurable light, dark
19664 and black color themes for Emacs. The themes are intended to be used with
19665 GUI.")
19666 (license license:gpl3+)))
19667
19668 (define-public emacs-google-c-style
19669 (let ((commit "6271f3f473ceb3a7fef99388a3040903b1a145f1")
19670 (revision "0"))
19671 (package
19672 (name "emacs-google-c-style")
19673 (version (git-version "0.1" revision commit))
19674 (source (origin
19675 (method git-fetch)
19676 (uri (git-reference
19677 (url "https://github.com/google/styleguide")
19678 (commit commit)))
19679 (file-name (git-file-name name version))
19680 (sha256
19681 (base32
19682 "1jghyyasdl15c4gaqaxmdn43am63k6bykn5ab83f1ahv9zi1krxk"))))
19683 (build-system emacs-build-system)
19684 (home-page "https://github.com/google/styleguide")
19685 (synopsis "Emacs settings file for Google C/C++ style")
19686 (description "@code{emacs-google-c-style} provides an Emacs settings
19687 file for Google C and C++ style.")
19688 (license license:gpl1+))))
19689
19690 (define-public emacs-redshank
19691 (let ((commit "f98e68f532e622bcd464292ca4a9cf5fbea14ebb")
19692 (revision "1"))
19693 (package
19694 (name "emacs-redshank")
19695 (version (git-version "0.1" revision commit))
19696 (source (origin
19697 (method git-fetch)
19698 (uri (git-reference
19699 (url "http://www.foldr.org/~michaelw/projects/redshank.git")
19700 (commit commit)))
19701 (file-name (git-file-name name version))
19702 (sha256
19703 (base32
19704 "1jdkgvd5xy9hl5q611jwah2n05abjp7qcy9sj4k1z11x0ii62b6p"))))
19705 (build-system emacs-build-system)
19706 (propagated-inputs
19707 `(("emacs-paredit" ,emacs-paredit)))
19708 (home-page "http://www.foldr.org/~michaelw/emacs/redshank/")
19709 (synopsis "Common Lisp Editing Extensions (for Emacs)")
19710 (description "Redshank is a collection of code-wrangling Emacs macros
19711 mostly geared towards Common Lisp, but some are useful for other Lisp
19712 dialects, too. Redshank's code transformations aim to be expression-based (as
19713 opposed to character-based).")
19714 (license license:gpl1+))))
19715
19716 (define-public emacs-disk-usage
19717 (package
19718 (name "emacs-disk-usage")
19719 (version "1.3.3")
19720 (source
19721 (origin
19722 (method git-fetch)
19723 (uri (git-reference
19724 (url "https://gitlab.com/Ambrevar/emacs-disk-usage.git")
19725 (commit version)))
19726 (file-name (git-file-name name version))
19727 (sha256
19728 (base32
19729 "0hv2gsd8k5fbjgckgiyisq4rn1i7y4rchbjy8kmixjv6mx563bll"))))
19730 (build-system emacs-build-system)
19731 (home-page "https://gitlab.com/Ambrevar/emacs-disk-usage")
19732 (synopsis "Sort and browse disk usage listings with Emacs")
19733 (description "Disk Usage is a file system analyzer: it offers a tabulated
19734 view of file listings sorted by size. Directory sizes are computed
19735 recursively. The results are cached for speed.")
19736 (license license:gpl3+)))
19737
19738 (define-public emacs-orgit
19739 (package
19740 (name "emacs-orgit")
19741 (version "1.5.3")
19742 (home-page "https://github.com/magit/orgit")
19743 (source (origin
19744 (method git-fetch)
19745 (uri (git-reference
19746 (url home-page)
19747 (commit (string-append "v" version))))
19748 (file-name (git-file-name name version))
19749 (sha256
19750 (base32
19751 "1ywavzki510rslsgfm0cnn3mlh644p61ha2nfb715xhkg7cd3j9g"))))
19752 (build-system emacs-build-system)
19753 (propagated-inputs
19754 `(("emacs-dash" ,emacs-dash)
19755 ("emacs-magit" ,emacs-magit)))
19756 (synopsis "Support for Org links to Magit buffers")
19757 (description "This package defines several Org link types, which can be
19758 used to link to certain Magit buffers. Use the command
19759 @command{org-store-link} while such a buffer is current to store a link.
19760 Later you can insert it into an Org buffer using the command
19761 @code{org-insert-link}.")
19762 (license license:gpl3+)))
19763
19764 (define-public emacs-amx
19765 (package
19766 (name "emacs-amx")
19767 (version "3.3")
19768 (source
19769 (origin
19770 (method git-fetch)
19771 (uri (git-reference
19772 (url "https://github.com/DarwinAwardWinner/amx")
19773 (commit (string-append "v" version))))
19774 (file-name (git-file-name name version))
19775 (sha256
19776 (base32 "0ikjzs119g57cwh2v3jmy63lggqc0ib99q5gsl93slkk4y2ihavw"))))
19777 (build-system emacs-build-system)
19778 (propagated-inputs
19779 `(("emacs-s" ,emacs-s)))
19780 (home-page "https://github.com/DarwinAwardWinner/amx")
19781 (synopsis "Alternative M-x interface for Emacs")
19782 (description "Amx is an alternative interface for M-x in Emacs. It
19783 provides several enhancements over the ordinary
19784 @code{execute-extended-command}, such as prioritizing your most-used commands
19785 in the completion list and showing keyboard shortcuts, and it supports several
19786 completion systems for selecting commands, such as Ido and Ivy.")
19787 (license license:gpl3+)))
19788
19789 (define-public emacs-lorem-ipsum
19790 (let ((commit "4b39f6fed455d67f635b3837cf5668bf74d0f6cd"))
19791 (package
19792 (name "emacs-lorem-ipsum")
19793 (version (git-version "0.2" "1" commit))
19794 (home-page "https://github.com/jschaf/emacs-lorem-ipsum/")
19795 (source (origin
19796 (method git-fetch)
19797 (uri (git-reference
19798 (url home-page)
19799 (commit commit)))
19800 (file-name (git-file-name name version))
19801 (sha256
19802 (base32
19803 "0a3b18p3vdjci89prsgdzjnfxsl8p67vjhf8ai4qdng7zvh50lir"))))
19804 (build-system emacs-build-system)
19805 (synopsis "Insert dummy pseudo Latin text in Emacs")
19806 (description "This package provides convenience functions to insert
19807 dummy Latin text into a buffer. This can be useful if you need to produce
19808 paragraphs or pages of text for testing purposes.")
19809 (license license:gpl3+))))
19810
19811 (define-public emacs-lisp-extra-font-lock
19812 (let ((commit "4605eccbe1a7fcbd3cacf5b71249435413b4db4f"))
19813 (package
19814 (name "emacs-lisp-extra-font-lock")
19815 (version (git-version "0.0.6" "1" commit))
19816 (home-page "https://github.com/Lindydancer/lisp-extra-font-lock")
19817 (source (origin
19818 (method git-fetch)
19819 (uri (git-reference
19820 (url home-page)
19821 (commit commit)))
19822 (file-name (git-file-name name version))
19823 (sha256
19824 (base32
19825 "152vcp3mdlv33jf5va4rinl1d0k960gnfhbrqqrafazgx9j3ya8w"))))
19826 (build-system emacs-build-system)
19827 (synopsis "Highlight bound variables and quoted expressions in Emacs")
19828 (description "This package highlight the location where local variables
19829 is created (bound, for example, by let) as well as quoted and backquoted
19830 constant expressions.")
19831 (license license:gpl3+))))
19832
19833 (define-public emacs-docker-tramp
19834 (package
19835 (name "emacs-docker-tramp")
19836 (version "0.1")
19837 (source
19838 (origin
19839 (method git-fetch)
19840 (uri (git-reference
19841 (url "https://github.com/emacs-pe/docker-tramp.el")
19842 (commit (string-append "v" version))))
19843 (file-name (git-file-name name version))
19844 (sha256
19845 (base32
19846 "0lxvzmfg52fhxrhbvp92zwp7cv4i1rlxnkyyzgngj3sjm7y60yvg"))))
19847 (build-system emacs-build-system)
19848 (home-page "https://github.com/emacs-pe/docker-tramp.el")
19849 (synopsis "TRAMP integration for docker containers")
19850 (description
19851 "This package provides a TRAMP method for Docker containers.")
19852 (license license:gpl3+)))
19853
19854 (define-public emacs-docker
19855 (package
19856 (name "emacs-docker")
19857 (version "1.3.0")
19858 (source (origin
19859 (method git-fetch)
19860 (uri (git-reference
19861 (url "https://github.com/Silex/docker.el")
19862 (commit version)))
19863 (file-name (git-file-name name version))
19864 (sha256
19865 (base32
19866 "1g8r1faqp0z0vqp9qrl8m84pa0v2ddvc91klphdkfmldwv7rfipw"))))
19867 (inputs
19868 `(("emacs-undercover" ,emacs-undercover)))
19869 (propagated-inputs
19870 `(("emacs-dash" ,emacs-dash)
19871 ("emacs-docker-tramp" ,emacs-docker-tramp)
19872 ("emacs-magit-popup" ,emacs-magit-popup)
19873 ("emacs-s" ,emacs-s)
19874 ("emacs-tablist" ,emacs-tablist)
19875 ("emacs-json-mode" ,emacs-json-mode)))
19876 (arguments
19877 `(#:phases
19878 (modify-phases %standard-phases
19879 (delete 'check)))) ;no tests
19880 (build-system emacs-build-system)
19881 (home-page "https://github.com/Silex/docker.el")
19882 (synopsis "Manage docker from Emacs")
19883 (description "This package provides an Emacs interface for Docker.")
19884 (license license:gpl3+)))
19885
19886 (define-public emacs-dockerfile-mode
19887 ;; Latest upstream release is too old.
19888 (let ((commit "ed73e82dcc636dad00d1a8c3b32a49136d25ee60"))
19889 (package
19890 (name "emacs-dockerfile-mode")
19891 (version (git-version "1.2" "2" commit))
19892 (source
19893 (origin
19894 (method git-fetch)
19895 (uri (git-reference
19896 (url "https://github.com/spotify/dockerfile-mode")
19897 (commit commit)))
19898 (file-name (git-file-name name version))
19899 (sha256
19900 (base32
19901 "0lri2rnx4lr23vqfphkpq39cd4xfgzkvz1xsz7ccdvl4qj0k7fdl"))))
19902 (build-system emacs-build-system)
19903 (propagated-inputs
19904 `(("emacs-s" ,emacs-s)))
19905 (home-page "https://github.com/spotify/dockerfile-mode")
19906 (synopsis "Major mode for editing Dockerfile")
19907 (description
19908 "This package provides a major mode @code{dockerfile-mode} for use with
19909 the standard @code{Dockerfile} file format.")
19910 (license license:asl2.0))))
19911
19912 (define-public emacs-lsp-mode
19913 (package
19914 (name "emacs-lsp-mode")
19915 (version "7.0.1")
19916 (source
19917 (origin
19918 (method git-fetch)
19919 (uri (git-reference
19920 (url "https://github.com/emacs-lsp/lsp-mode")
19921 (commit version)))
19922 (file-name (git-file-name name version))
19923 (sha256
19924 (base32 "1z8zm7qr21hvhl6rnbznv2l9drh1pp5y4zkjrx5ac4x77b8i4aaz"))))
19925 (build-system emacs-build-system)
19926 (propagated-inputs
19927 `(("emacs-dash" ,emacs-dash)
19928 ("emacs-f" ,emacs-f)
19929 ("emacs-ht" ,emacs-ht)
19930 ("emacs-hydra" ,emacs-hydra)
19931 ("emacs-markdown-mode" ,emacs-markdown-mode)
19932 ("emacs-spinner" ,emacs-spinner)))
19933 (home-page "https://emacs-lsp.github.io/lsp-mode/")
19934 (synopsis "Emacs client and library for the Language Server Protocol")
19935 (description
19936 "LSP mode is a client and library implementation for the Language Server
19937 Protocol. This mode creates an IDE-like experience by providing optional
19938 integration with other popular Emacs packages like Company, Flycheck, and
19939 Projectile.")
19940 (license license:gpl3+)))
19941
19942 (define-public emacs-pfuture
19943 (let ((commit "368254ee30692c709400db413c347e18e76a8a55"))
19944 (package
19945 (name "emacs-pfuture")
19946 (version (git-version "1.6" "1" commit))
19947 (source (origin
19948 (method git-fetch)
19949 (uri (git-reference
19950 (url "https://github.com/Alexander-Miller/pfuture")
19951 (commit commit)))
19952 (file-name (git-file-name name version))
19953 (sha256
19954 (base32
19955 "096raqpjx84njws85r7pqq1wi9w9bjwkr0ga1mbbhlna1mfn3mg4"))))
19956 (build-system emacs-build-system)
19957 (home-page
19958 "https://github.com/Alexander-Miller/pfuture")
19959 (synopsis "Simple wrapper around asynchronous processes for Emacs")
19960 (description "This package provides a simple wrapper around asynchronous
19961 processes for Emacs")
19962 (license license:gpl3+))))
19963
19964 (define-public emacs-treemacs
19965 (package
19966 (name "emacs-treemacs")
19967 (version "2.8")
19968 (source (origin
19969 (method git-fetch)
19970 (uri (git-reference
19971 (url "https://github.com/Alexander-Miller/treemacs")
19972 (commit version)))
19973 (file-name (git-file-name name version))
19974 (sha256
19975 (base32
19976 "0m083g3pg0n4ymi1w0jx34awr7cqbm4r561adij9kklblxsz7sc2"))))
19977 (build-system emacs-build-system)
19978 (propagated-inputs
19979 `(("emacs-dash" ,emacs-dash)
19980 ("emacs-s" ,emacs-s)
19981 ("emacs-f" ,emacs-f)
19982 ("emacs-ace-window" ,emacs-ace-window)
19983 ("emacs-pfuture" ,emacs-pfuture)
19984 ("emacs-hydra" ,emacs-hydra)
19985 ("emacs-ht" ,emacs-ht)))
19986 (native-inputs
19987 `(("emacs-buttercup" ,emacs-buttercup)
19988 ("emacs-el-mock" ,emacs-el-mock)))
19989 (inputs
19990 `(("python" ,python)))
19991 (arguments
19992 `(#:tests? #t ;TODO: Investigate ‘treemacs--parse-collapsed-dirs’ test failure.
19993 #:phases
19994 (modify-phases %standard-phases
19995 (add-after 'unpack 'fix-makefile
19996 (lambda _
19997 (substitute* "Makefile"
19998 (("@\\$\\(CASK\\) exec ") "")
19999 ;; Guix does not need to prepare dependencies before testing.
20000 (("test: prepare") "test:"))
20001 #t))
20002 (add-after 'fix-makefile 'chdir-elisp
20003 ;; Elisp directory is not in root of the source.
20004 (lambda _
20005 (chdir "src/elisp")))
20006 (replace 'check
20007 (lambda _
20008 (with-directory-excursion "../.." ;treemacs root
20009 (chmod "test/test-treemacs.el" #o644)
20010 (emacs-substitute-sexps "test/test-treemacs.el"
20011 ("(describe \"treemacs--parse-collapsed-dirs\""
20012 ""))
20013 (invoke "make" "test"))))
20014 (add-before 'install 'patch-paths
20015 (lambda* (#:key inputs outputs #:allow-other-keys)
20016 (with-directory-excursion "../.." ;treemacs root
20017 (chmod "src/elisp/treemacs-core-utils.el" #o644)
20018 (emacs-substitute-variables "src/elisp/treemacs-core-utils.el"
20019 ("treemacs-dir"
20020 (string-append (assoc-ref outputs "out") "/")))
20021 (chmod "src/elisp/treemacs-icons.el" #o644)
20022 (substitute* "src/elisp/treemacs-icons.el"
20023 (("icons/default") "share/emacs-treemacs/images"))
20024 (chmod "src/elisp/treemacs-customization.el" #o644)
20025 (emacs-substitute-variables "src/elisp/treemacs-customization.el"
20026 ("treemacs-python-executable"
20027 (string-append (assoc-ref inputs "python") "/bin/python3")))
20028 (chmod "src/elisp/treemacs-async.el" #o644)
20029 (substitute* "src/elisp/treemacs-async.el"
20030 (("src/scripts") (string-append "share/" ,name "/scripts"))))
20031 #t))
20032 (add-after 'install 'install-data
20033 (lambda* (#:key outputs #:allow-other-keys)
20034 (let ((out (assoc-ref outputs "out")))
20035 (with-directory-excursion "../.." ;treemacs root
20036 (copy-recursively "icons/default"
20037 (string-append out "/share/" ,name "/images"))
20038 (copy-recursively
20039 "src/scripts"
20040 (string-append out "/share/" ,name "/scripts"))
20041 #t)))))))
20042 (home-page "https://github.com/Alexander-Miller/treemacs")
20043 (synopsis "Emacs tree style file explorer")
20044 (description "Powerful and flexible file tree project explorer.")
20045 (license license:gpl3+)))
20046
20047 (define-public emacs-treemacs-extra
20048 (package
20049 (inherit emacs-treemacs)
20050 (name "emacs-treemacs-extra")
20051 (propagated-inputs
20052 `(,@(package-propagated-inputs emacs-treemacs)
20053 ("emacs-evil" ,emacs-evil)
20054 ("emacs-magit" ,emacs-magit)
20055 ("emacs-projectile" ,emacs-projectile)
20056 ("emacs-persp-mode" ,emacs-persp-mode)))
20057 (arguments
20058 (substitute-keyword-arguments
20059 (package-arguments emacs-treemacs)
20060 ((#:phases phases)
20061 `(modify-phases ,phases
20062 (add-after 'chdir-elisp 'copy-extra
20063 (lambda _
20064 (copy-recursively "../extra" ".")))))))))
20065
20066 (define-public emacs-libyaml
20067 ;; Upstream made no release so far.
20068 (let ((version "0")
20069 (revision "1")
20070 (commit "703e0d448c7ee24e25b513a3c65980c80e166805"))
20071 (package
20072 (name "emacs-libyaml")
20073 (version (git-version version revision commit))
20074 (source
20075 (origin
20076 (method git-fetch)
20077 (uri (git-reference
20078 (url "https://github.com/syohex/emacs-libyaml")
20079 (commit commit)))
20080 (file-name (git-file-name name version))
20081 (sha256
20082 (base32 "08l7pm9v50ykd3fkbm0bh2kcd57cadbc5i9r6rj51vd32w3pl2yl"))))
20083 (build-system emacs-build-system)
20084 (arguments
20085 `(#:tests? #f ;no test
20086 #:modules ((guix build emacs-build-system)
20087 (guix build emacs-utils)
20088 (guix build utils))
20089 #:imported-modules (,@%emacs-build-system-modules
20090 (guix build gnu-build-system))
20091 #:phases
20092 (modify-phases %standard-phases
20093 (add-before 'add-source-to-load-path 'substitute-libyaml-core-path
20094 (lambda* (#:key outputs #:allow-other-keys)
20095 (chmod "libyaml.el" #o644)
20096 (substitute* "libyaml.el"
20097 (("^\\(require 'libyaml-core\\)")
20098 (string-append "(module-load \"" (assoc-ref outputs "out")
20099 "/lib/libyaml-core.so\")")))
20100 #t))
20101 (add-after 'check 'make
20102 ;; Run make.
20103 (lambda* (#:key (make-flags '()) outputs #:allow-other-keys)
20104 ;; Compile the shared object file.
20105 (apply invoke "make" "all" "CPPFLAGS=" make-flags)
20106 ;; Move the file into /lib.
20107 (install-file "libyaml-core.so"
20108 (string-append (assoc-ref outputs "out") "/lib"))
20109 #t)))))
20110 (native-inputs `(("libyaml" ,libyaml)))
20111 (home-page "https://github.com/syohex/emacs-libyaml")
20112 (synopsis "Libyaml bindings for Emacs")
20113 (description
20114 "This package implements bindings for LibYAML to be able to parse YAML
20115 files in Elisp.")
20116 (license license:gpl3+))))
20117
20118 (define-public emacs-lsp-java
20119 (package
20120 (name "emacs-lsp-java")
20121 (version "2.2")
20122 (source (origin
20123 (method git-fetch)
20124 (uri (git-reference
20125 (url "https://github.com/emacs-lsp/lsp-java")
20126 (commit version)))
20127 (file-name (git-file-name name version))
20128 (sha256
20129 (base32
20130 "0hcnvbyaqyypgby1bfj4zbrbq97amk8hfx0sj4w73rl46yf4jk3j"))))
20131 (build-system emacs-build-system)
20132 (propagated-inputs
20133 `(("emacs-lsp-mode" ,emacs-lsp-mode)
20134 ("emacs-markdown-mode" ,emacs-markdown-mode)
20135 ("emacs-dash" ,emacs-dash)
20136 ("emacs-f" ,emacs-f)
20137 ("emacs-ht" ,emacs-ht)
20138 ("emacs-request" ,emacs-request)
20139 ("emacs-treemacs" ,emacs-treemacs)))
20140 (home-page "https://github.com/emacs-lsp/lsp-java/")
20141 (synopsis "Java support for lsp-mode")
20142 (description "Emacs Java IDE using Eclipse JDT Language Server.")
20143 (license license:gpl3+)))
20144
20145 (define-public emacs-lsp-ui
20146 (package
20147 (name "emacs-lsp-ui")
20148 (version "7.0.1")
20149 (source (origin
20150 (method git-fetch)
20151 (uri (git-reference
20152 (url "https://github.com/emacs-lsp/lsp-ui")
20153 (commit version)))
20154 (file-name (git-file-name name version))
20155 (sha256
20156 (base32
20157 "09dmhhxmfjnzdc5kygwsjf8nwqlnq9rbgrca679s2wy93miqj7vc"))))
20158 (build-system emacs-build-system)
20159 (propagated-inputs
20160 `(("emacs-dash" ,emacs-dash)
20161 ("emacs-lsp-mode" ,emacs-lsp-mode)
20162 ("emacs-markdown-mode" ,emacs-markdown-mode)
20163 ("emacs-flycheck" ,emacs-flycheck)))
20164 (home-page "https://github.com/emacs-lsp/lsp-ui")
20165 (synopsis "User interface extensions for @code{lsp-mode}")
20166 (description
20167 "@code{LSP-ui} contains several enhancements and integrations for
20168 @code{lsp-mode}, such as visual flychecking, displaying references in-line,
20169 and code peeking.")
20170 (license license:gpl3+)))
20171
20172 (define-public emacs-lsp-lua-emmy
20173 (let ((commit "ab53fb2a8b8942804eb75bab5624fd19f1d360bf"))
20174 (package
20175 (name "emacs-lsp-lua-emmy")
20176 (version (git-version "0.1.0" "1" commit))
20177 (source (origin
20178 (method git-fetch)
20179 (uri (git-reference
20180 (url "https://github.com/phenix3443/lsp-lua-emmy")
20181 (commit commit)))
20182 (file-name (git-file-name name version))
20183 (sha256
20184 (base32
20185 "0rbizis73n1w5ig07fj1han74chbc1zpbp5bn37rj0gz608aqka8"))))
20186 (build-system emacs-build-system)
20187 (propagated-inputs
20188 `(("emacs-lsp-mode" ,emacs-lsp-mode)))
20189 (home-page "https://github.com/phenix3443/lsp-lua-emmy/")
20190 (synopsis "Lua support in @code{lsp-mode} client for Emacs")
20191 (description "This package provides a Lua language support in
20192 @code{lsp-mode} client for Emacs.")
20193 (license license:gpl3+))))
20194
20195 (define-public emacs-lsp-ivy
20196 (let ((commit "caf1e1d7e22ed0b5fe18dd508d1a6f83dd163288")
20197 (revision "2"))
20198 (package
20199 (name "emacs-lsp-ivy")
20200 (version (git-version "0.1" revision commit))
20201 (source (origin
20202 (method git-fetch)
20203 (uri (git-reference
20204 (url "https://github.com/emacs-lsp/lsp-ivy")
20205 (commit commit)))
20206 (file-name (git-file-name name version))
20207 (sha256
20208 (base32
20209 "084ds4qhzhivfnicy3h7z4mblxgcqx8pfnkbjr9qjrfng7cisy4z"))))
20210 (build-system emacs-build-system)
20211 (propagated-inputs
20212 `(("emacs-ivy" ,emacs-ivy)
20213 ("emacs-lsp-mode" ,emacs-lsp-mode)
20214 ("emacs-dash" ,emacs-dash)))
20215 (home-page "https://github.com/emacs-lsp/lsp-ivy")
20216 (synopsis "Provide LSP-enhanced completion for symbols")
20217 (description
20218 "This package enhances @code{ivy} with completion for symbols from
20219 workspaces with a LSP-compliant server running.")
20220 (license license:gpl3+))))
20221
20222 (define-public emacs-helm-lsp
20223 (let ((commit "3a58ca4cfd94b9ab1e15e819d3b16ef568e8889b")
20224 (revision "1"))
20225 (package
20226 (name "emacs-helm-lsp")
20227 (version (git-version "0.1" revision commit))
20228 (source (origin
20229 (method git-fetch)
20230 (uri (git-reference
20231 (url "https://github.com/emacs-lsp/helm-lsp")
20232 (commit commit)))
20233 (file-name (git-file-name name version))
20234 (sha256
20235 (base32
20236 "0wh5zai3s17ss2q8wcdd6d87hv1h3nbyrxxs4js9cas8m6y2ssjv"))))
20237 (build-system emacs-build-system)
20238 (propagated-inputs
20239 `(("emacs-helm" ,emacs-helm)
20240 ("emacs-lsp-mode" ,emacs-lsp-mode)
20241 ("emacs-dash" ,emacs-dash)))
20242 (home-page "https://github.com/emacs-lsp/helm-lsp")
20243 (synopsis "Provide LSP-enhanced completion for symbols")
20244 (description
20245 "This package enhances @code{helm} with completion for symbols from
20246 workspaces with a LSP-compliant server running.")
20247 (license license:gpl3+))))
20248
20249 (define-public emacs-helm-notmuch
20250 (package
20251 (name "emacs-helm-notmuch")
20252 (version "1.2")
20253 (home-page "https://github.com/emacs-helm/helm-notmuch/")
20254 (source (origin
20255 (method git-fetch)
20256 (uri (git-reference
20257 (url home-page)
20258 (commit version)))
20259 (file-name (git-file-name name version))
20260 (sha256
20261 (base32
20262 "1k038dbdpaa411gl4071x19fklhnizhr346plxw23lsnxir9dhqc"))))
20263 (build-system emacs-build-system)
20264 (propagated-inputs
20265 `(("emacs-helm" ,emacs-helm)
20266 ("notmuch" ,notmuch)))
20267 (synopsis "Search emails with Emacs Notmuch and Helm")
20268 (description
20269 "This package can be used to search emails in Emacs, searching result
20270 displays as you type thanks to Helm, though @command{notmuch-search} does the
20271 real search.")
20272 (license license:gpl3+)))
20273
20274 (define-public emacs-elmacro
20275 (let ((commit "89b9b0feabafd01fee48111d67131c4c9b5fed9a"))
20276 (package
20277 (name "emacs-elmacro")
20278 (version (git-version "1.1.0" "1" commit))
20279 (home-page "https://github.com/Silex/elmacro")
20280 (source (origin
20281 (method git-fetch)
20282 (uri (git-reference
20283 (url home-page)
20284 (commit commit)))
20285 (file-name (git-file-name name version))
20286 (sha256
20287 (base32
20288 "06wkzafh6vbcjf0m3sl253mgcq32p8cdv7vsfmyx51baa36938ha"))))
20289 (build-system emacs-build-system)
20290 (propagated-inputs
20291 `(("emacs-s" ,emacs-s)
20292 ("emacs-dash" ,emacs-dash)))
20293 (synopsis "Convert keyboard macros to Emacs Lisp")
20294 (description
20295 "This package displays keyboard macros or latest interactive commands
20296 as Emacs Lisp.")
20297 (license license:gpl3+))))
20298
20299 (define-public emacs-transient
20300 (let ((revision "1")
20301 (commit "a6e4cced303b3febd59412b24a97eaf1e855e6d7"))
20302 (package
20303 (name "emacs-transient")
20304 (version (git-version "0.2.0" revision commit))
20305 (source (origin
20306 (method git-fetch)
20307 (uri (git-reference
20308 (url "https://github.com/magit/transient")
20309 (commit commit)))
20310 (file-name (git-file-name name version))
20311 (sha256
20312 (base32
20313 "01xsw9sxr50valc2q590ngy3ra2ll01p39l9cbzvqqz6mxyymxmd"))))
20314 (build-system emacs-build-system)
20315 (arguments
20316 `(#:tests? #f ;no test suite
20317 #:phases
20318 (modify-phases %standard-phases
20319 (add-after 'unpack 'build-info-manual
20320 (lambda _
20321 (invoke "make" "info")
20322 ;; Move the info file to lisp so that it gets installed by the
20323 ;; emacs-build-system.
20324 (rename-file "docs/transient.info" "lisp/transient.info")
20325 #t))
20326 (add-after 'build-info-manual 'enter-lisp-directory
20327 (lambda _
20328 (chdir "lisp")
20329 #t)))))
20330 (native-inputs
20331 `(("texinfo" ,texinfo)))
20332 (propagated-inputs
20333 `(("dash" ,emacs-dash)))
20334 (home-page "https://magit.vc/manual/transient")
20335 (synopsis "Transient commands in Emacs")
20336 (description "Taking inspiration from prefix keys and prefix arguments
20337 in Emacs, Transient implements a similar abstraction involving a prefix
20338 command, infix arguments and suffix commands. We could call this abstraction
20339 a \"transient command\", but because it always involves at least two
20340 commands (a prefix and a suffix) we prefer to call it just a \"transient\".")
20341 (license license:gpl3+))))
20342
20343 (define-public emacs-forge
20344 (let ((commit "09bf8adc9c9afb492632e612f51f39e1cc15fca0"))
20345 (package
20346 (name "emacs-forge")
20347 (version (git-version "0.1.0" "4" commit))
20348 (source
20349 (origin
20350 (method git-fetch)
20351 (uri (git-reference
20352 (url "https://github.com/magit/forge")
20353 (commit commit)))
20354 (file-name (git-file-name name version))
20355 (sha256
20356 (base32
20357 "148h1rvmfmxyrfy2q5l0vzblr7lpsyw1si30hfwhzsj8fvj21qcr"))))
20358 (build-system emacs-build-system)
20359 (native-inputs
20360 `(("texinfo" ,texinfo)))
20361 (propagated-inputs
20362 `(("emacs-closql" ,emacs-closql)
20363 ("emacs-dash" ,emacs-dash)
20364 ("emacs-emacsql-sqlite" ,emacs-emacsql)
20365 ("emacs-ghub" ,emacs-ghub)
20366 ("emacs-let-alist" ,emacs-let-alist)
20367 ("emacs-magit" ,emacs-magit)
20368 ("emacs-markdown-mode" ,emacs-markdown-mode)
20369 ("emacs-transient" ,emacs-transient)))
20370 (arguments
20371 `(#:tests? #f ;no tests
20372 #:phases
20373 (modify-phases %standard-phases
20374 (add-after 'unpack 'build-info-manual
20375 (lambda _
20376 (invoke "make" "info")
20377 ;; Move the info file to lisp so that it gets installed by the
20378 ;; emacs-build-system.
20379 (rename-file "docs/forge.info" "lisp/forge.info")))
20380 (add-after 'build-info-manual 'chdir-lisp
20381 (lambda _
20382 (chdir "lisp")
20383 #t)))))
20384 (home-page "https://github.com/magit/forge/")
20385 (synopsis "Access Git forges from Magit")
20386 (description "Work with Git forges, such as Github and Gitlab, from the
20387 comfort of Magit and the rest of Emacs.")
20388 (license license:gpl3+))))
20389
20390 (define-public emacs-matcha
20391 (let ((commit "c7df5cf5cdac9ae369e241342389ccda0205eab9"))
20392 (package
20393 (name "emacs-matcha")
20394 (version (git-version "0.0.1" "1" commit)) ;no upstream release
20395 (source (origin
20396 (method git-fetch)
20397 (uri (git-reference
20398 (url "https://github.com/jojojames/matcha")
20399 (commit commit)))
20400 (file-name (git-file-name name version))
20401 (sha256
20402 (base32
20403 "1lfnh1glg6al677m7ci0x8g5wjdhjxlfl3nv1f1ppsw4dpnwsj9b"))))
20404 (propagated-inputs
20405 `(("emacs-hydra" ,emacs-hydra)
20406 ("emacs-transient" ,emacs-transient)))
20407 (build-system emacs-build-system)
20408 (home-page "https://github.com/jojojames/matcha/")
20409 (synopsis "Collection of hydras with a generic interface to launch them")
20410 (description "Matcha provides a collection of transients for various
20411 packages with a consistent way to use them.")
20412 (license license:gpl3+))))
20413
20414 (define-public emacs-undo-propose-el
20415 (let ((commit "f80baee566807d733fbacbab08a897bcd62579c3")
20416 (revision "3"))
20417 (package
20418 (name "emacs-undo-propose-el")
20419 (version (git-version "3.0.0" revision commit))
20420 (source
20421 (origin
20422 (method git-fetch)
20423 (uri (git-reference
20424 (url "https://github.com/jackkamm/undo-propose-el")
20425 (commit commit)))
20426 (file-name (git-file-name name version))
20427 (sha256
20428 (base32
20429 "00rqz63bhh66q78l646q3w16gydygj8h4d8np0dpbifgzciak90b"))))
20430 (build-system emacs-build-system)
20431 (arguments
20432 `(#:tests? #t
20433 #:test-command '("make" "test")))
20434 (home-page "https://github.com/jackkamm/undo-propose-el")
20435 (synopsis "Simple and safe navigation of @code{undo} history")
20436 (description "This package permits navigation of @code{undo} history in a
20437 temporary buffer, which is read-only save for @code{undo} commands, and
20438 subsequent committal of a chain of @code{undo} commands as a single edit in
20439 the @code{undo} history.")
20440 (license license:gpl3+))))
20441
20442 (define-public emacs-elisp-docstring-mode
20443 (let ((commit "f512e509dd690f65133e55563ebbfd2dede5034f")
20444 (version "0.0.1")
20445 (revision "1"))
20446 (package
20447 (name "emacs-elisp-docstring-mode")
20448 (version (git-version version revision commit))
20449 (source
20450 (origin
20451 (method git-fetch)
20452 (uri (git-reference
20453 (url "https://github.com/Fuco1/elisp-docstring-mode")
20454 (commit commit)))
20455 (file-name (git-file-name name version))
20456 (sha256
20457 (base32
20458 "0al8m75p359h4n82rf0dsl22qfdg9cwwywn5pn7x6gb96c7qrqaa"))))
20459 (build-system emacs-build-system)
20460 (home-page "https://github.com/Fuco1/elisp-docstring-mode")
20461 (synopsis "Major mode for editing Emacs Lisp docstrings")
20462 (description "This package provides font lock and automatic escaping and
20463 unescaping of quotes.")
20464 (license license:gpl3+))))
20465
20466 (define-public emacs-vimrc-mode
20467 (let ((commit "13bc150a870d5d4a95f1111e4740e2b22813c30e")
20468 (version "0.3.1")
20469 (revision "1"))
20470 (package
20471 (name "emacs-vimrc-mode")
20472 (version (git-version version revision commit))
20473 (source
20474 (origin
20475 (method git-fetch)
20476 (uri (git-reference
20477 (url "https://github.com/mcandre/vimrc-mode")
20478 (commit commit)))
20479 (file-name (git-file-name name version))
20480 (sha256
20481 (base32
20482 "0026dqs3hwygk2k2xfra90w5sfnxrfj7l69jz7sq5glavbf340pk"))))
20483 (build-system emacs-build-system)
20484 (home-page "https://github.com/mcandre/vimrc-mode")
20485 (synopsis "Major mode for Vimscript")
20486 (description "This package provides font lock and @code{beginning-} and
20487 @code{end-of-defun} functions for Vimscript files.")
20488 (license license:gpl3+))))
20489
20490 (define-public emacs-flycheck-elm
20491 (let ((revision "0")
20492 (commit "1b60050efd4729bfba548f3e5adbcb58436667cb"))
20493 (package
20494 (name "emacs-flycheck-elm")
20495 (version (git-version "0" revision commit))
20496 (source
20497 (origin
20498 (method git-fetch)
20499 (uri
20500 (git-reference
20501 (url "https://github.com/bsermons/flycheck-elm")
20502 (commit commit)))
20503 (file-name (git-file-name name version))
20504 (sha256
20505 (base32 "1kjms9d2c98ffd1qxs879qhg0n4jzic0r5kni9y4gz3v09ww8zms"))))
20506 (build-system emacs-build-system)
20507 (propagated-inputs
20508 `(("emacs-flycheck" ,emacs-flycheck)
20509 ("emacs-let-alist" ,emacs-let-alist)))
20510 (home-page "https://github.com/bsermons/flycheck-elm")
20511 (synopsis "Flycheck support for the Elm language")
20512 (description "Flycheck Elm adds Flycheck support for Elm language.")
20513 (license license:gpl3+))))
20514
20515 (define-public emacs-flycheck-haskell
20516 (let ((commit "32ddff87165a7d3a35e7318bee997b5b4bd41278")
20517 (revision "2"))
20518 (package
20519 (name "emacs-flycheck-haskell")
20520 (version (git-version "0.8" revision commit))
20521 (source
20522 (origin
20523 (method git-fetch)
20524 (uri (git-reference
20525 (url "https://github.com/flycheck/flycheck-haskell")
20526 (commit commit)))
20527 (file-name (git-file-name name version))
20528 (sha256
20529 (base32
20530 "10pgsbagq6qj4mshq5sypv0q0khck92b30sc793b4g1pfpsxvgjn"))))
20531 (build-system emacs-build-system)
20532 (propagated-inputs
20533 `(("emacs-dash" ,emacs-dash)
20534 ("emacs-flycheck" ,emacs-flycheck)
20535 ("emacs-haskell-mode" ,emacs-haskell-mode)
20536 ("emacs-let-alist" ,emacs-let-alist)))
20537 (arguments
20538 `(#:include '("\\.el$" "\\.hs$")))
20539 (home-page "https://github.com/flycheck/flycheck-haskell")
20540 (synopsis "Flycheck for Haskell")
20541 (description "This package configures syntax-checking for Haskell
20542 buffers.")
20543 (license license:gpl3+))))
20544
20545 (define-public emacs-js2-refactor-el
20546 (let ((commit "d4c40b5fc86d3edd7c6a7d83ac86483ee1cb7a28")
20547 (revision "2"))
20548 (package
20549 (name "emacs-js2-refactor-el")
20550 (version (git-version "0.9.0" revision commit))
20551 (source
20552 (origin
20553 (method git-fetch)
20554 (uri (git-reference
20555 (url "https://github.com/magnars/js2-refactor.el")
20556 (commit commit)))
20557 (file-name (git-file-name name version))
20558 (sha256
20559 (base32
20560 "08b25y3raz0p98zxk9xdd8nj9shqd6mzrqhbq1gg4cwsmi7h7ly1"))))
20561 (build-system emacs-build-system)
20562 (propagated-inputs
20563 `(("emacs-dash" ,emacs-dash)
20564 ("emacs-s" ,emacs-s)
20565 ("emacs-js2-mode" ,emacs-js2-mode)
20566 ("emacs-yasnippet" ,emacs-yasnippet)
20567 ("emacs-multiple-cursors" ,emacs-multiple-cursors)))
20568 (native-inputs
20569 `(("emacs-buttercup" ,emacs-buttercup)
20570 ("emacs-espuds" ,emacs-espuds)))
20571 (home-page "https://github.com/magnars/js2-refactor.el")
20572 (synopsis "JavaScript refactoring in Emacs")
20573 (description "This package provides various refactoring functions for
20574 JavaScript.")
20575 (license license:gpl3+))))
20576
20577 (define-public emacs-prettier
20578 (let ((commit "e9b73e81d3e1642aec682195f127a42dfb0b5774")
20579 (version "0.1.0")
20580 (revision "1"))
20581 (package
20582 (name "emacs-prettier")
20583 (version (git-version version revision commit))
20584 (source
20585 (origin
20586 (method git-fetch)
20587 (uri (git-reference
20588 (url "https://github.com/prettier/prettier-emacs")
20589 (commit commit)))
20590 (file-name (git-file-name name version))
20591 (sha256
20592 (base32
20593 "0hj4fv3fgc60i6jrsx4a81s5c9fsxxafhhs3q2q1dypsscjci9ph"))))
20594 (build-system emacs-build-system)
20595 (home-page "https://github.com/prettier/prettier-emacs")
20596 (synopsis "Automatic formatting of JavaScript code")
20597 (description "This package integrates Prettier with Emacs, and
20598 provides a minor mode that autoformats the buffer upon saving.")
20599 (license license:expat))))
20600
20601 (define-public emacs-fish-mode
20602 (package
20603 (name "emacs-fish-mode")
20604 (version "0.1.4")
20605 (source
20606 (origin
20607 (method git-fetch)
20608 (uri (git-reference
20609 (url "https://github.com/wwwjfy/emacs-fish")
20610 (commit version)))
20611 (file-name (git-file-name name version))
20612 (sha256
20613 (base32
20614 "0a74ghmjjrxfdhk4mvq6lar4w6l6lc4iilabs99smqr2fn5rsslq"))))
20615 (build-system emacs-build-system)
20616 (home-page "https://github.com/wwwjfy/emacs-fish")
20617 (synopsis "Major mode for Fish shell scripts")
20618 (description "This package provides syntax highlighting and indentation
20619 functions for Fish shell scripts.")
20620 (license license:gpl3+)))
20621
20622 (define-public emacs-eshell-up
20623 (let ((commit "9c100bae5c3020e8d9307e4332d3b64e7dc28519")
20624 (version "0.0.3")
20625 (revision "12"))
20626 (package
20627 (name "emacs-eshell-up")
20628 (version (git-version version revision commit))
20629 (source
20630 (origin
20631 (method git-fetch)
20632 (uri (git-reference
20633 (url "https://github.com/peterwvj/eshell-up")
20634 (commit commit)))
20635 (file-name (git-file-name name version))
20636 (sha256
20637 (base32
20638 "00zdbcncjabgj5mp47l1chymx5na18v2g4kj730dgmj3rnl3iz2q"))))
20639 (build-system emacs-build-system)
20640 (home-page "https://github.com/peterwvj/eshell-up")
20641 (synopsis "Quickly go to a parent directory in @code{Eshell}")
20642 (description "This package provides quick navigation to a specific
20643 parent directory using @code{Eshell}.")
20644 (license license:gpl3+))))
20645
20646 (define-public emacs-tco-el
20647 (let ((commit "482db5313f090b17ed22ccd856f0e141dc75afe6")
20648 (revision "1"))
20649 (package
20650 (name "emacs-tco-el")
20651 (version (git-version "0.3" revision commit))
20652 (source
20653 (origin
20654 (method git-fetch)
20655 (uri (git-reference
20656 (url "https://github.com/Wilfred/tco.el")
20657 (commit commit)))
20658 (file-name (git-file-name name version))
20659 (sha256
20660 (base32
20661 "1z7xkbrqznk6ni687qqknp8labcyhl8y6576hjfri89fn21385y9"))))
20662 (build-system emacs-build-system)
20663 (propagated-inputs
20664 `(("emacs-dash" ,emacs-dash)))
20665 (native-inputs
20666 `(("emacs-ert-runner" ,emacs-ert-runner)
20667 ("emacs-undercover" ,emacs-undercover)))
20668 (arguments
20669 `(#:tests? #t
20670 #:test-command '("ert-runner")))
20671 (home-page "https://github.com/Wilfred/tco.el")
20672 (synopsis "Tail-call optimization for Emacs Lisp")
20673 (description "This package provides tail-call optimization for Emacs
20674 Lisp functions that call themselves in tail position.")
20675 (license license:gpl3+))))
20676
20677 (define-public emacs-equake
20678 (let ((commit "7eddc025ee61b83029363e22219af228b8c20681")
20679 (revision "2"))
20680 (package
20681 (name "emacs-equake")
20682 (version (git-version "0.85" revision commit))
20683 (source
20684 (origin
20685 (method git-fetch)
20686 (uri (git-reference
20687 (url "https://gitlab.com/emacsomancer/equake/")
20688 (commit commit)))
20689 (file-name (git-file-name name version))
20690 (sha256
20691 (base32
20692 "1c55pbqak3d02sw6z1139baxzy401b90g0gxzcc3j6sgplz6sc6w"))))
20693 (build-system emacs-build-system)
20694 (propagated-inputs
20695 `(("emacs-dash" ,emacs-dash)
20696 ("emacs-tco-el" ,emacs-tco-el)))
20697 (home-page "https://gitlab.com/emacsomancer/equake/")
20698 (synopsis "Drop-down console for @code{Eshell} and terminal emulators")
20699 (description "This package provides a Quake-style drop-down console
20700 compatible with Emacs' shell modes.")
20701 (license license:gpl3+))))
20702
20703 (define-public emacs-vdiff
20704 (let ((commit "09e15fc932bfd2febe1d4a65780a532394562b07")
20705 (revision "1"))
20706 (package
20707 (name "emacs-vdiff")
20708 (version (git-version "0.2.3" revision commit))
20709 (source
20710 (origin
20711 (method git-fetch)
20712 (uri (git-reference
20713 (url "https://github.com/justbur/emacs-vdiff")
20714 (commit commit)))
20715 (file-name (git-file-name name version))
20716 (sha256
20717 (base32
20718 "1gvqi5l4zs872nn4pmj603aza09d81qad2rgijzv268lif8z34db"))))
20719 (build-system emacs-build-system)
20720 (propagated-inputs
20721 `(("emacs-hydra" ,emacs-hydra)))
20722 (arguments
20723 `(#:tests? #t
20724 #:test-command '("emacs" "-Q" "-batch" "-L" "."
20725 "-l" "vdiff-test.el"
20726 "-f" "ert-run-tests-batch-and-exit")))
20727 (home-page "https://github.com/justbur/emacs-vdiff/")
20728 (synopsis "Frontend for diffing based on vimdiff")
20729 (description "This package permits comparisons of two or three buffers
20730 based on diff output.")
20731 (license license:gpl3+))))
20732
20733 (define-public emacs-vdiff-magit
20734 ;; Need to use a more recent commit than the latest release version because
20735 ;; of Magit and Transient
20736 (let ((commit "b100d126c69e5c26a61ae05aa1778bcc4302b597")
20737 (version "0.3.2")
20738 (revision "8"))
20739 (package
20740 (name "emacs-vdiff-magit")
20741 (version (git-version version revision commit))
20742 (source
20743 (origin
20744 (method git-fetch)
20745 (uri (git-reference
20746 (url "https://github.com/justbur/emacs-vdiff-magit/")
20747 (commit commit)))
20748 (file-name (git-file-name name version))
20749 (sha256
20750 (base32
20751 "16cjmrzflf2i1w01973sl944xrfanakba8sb4dpwi79d92xp03xy"))))
20752 (build-system emacs-build-system)
20753 (propagated-inputs
20754 `(("emacs-vdiff" ,emacs-vdiff)
20755 ("emacs-magit" ,emacs-magit)
20756 ("emacs-transient" ,emacs-transient)))
20757 (home-page "https://github.com/justbur/emacs-vdiff-magit/")
20758 (synopsis "Frontend for diffing based on vimdiff")
20759 (description "This package permits comparisons of two or three buffers
20760 based on diff output.")
20761 (license license:gpl3+))))
20762
20763 (define-public emacs-all-the-icons-dired
20764 (let ((commit "980b7747d6c4a7992a1ec56afad908956db0a519")
20765 (version "1.0")
20766 (revision "1"))
20767 (package
20768 (name "emacs-all-the-icons-dired")
20769 (version (git-version version revision commit))
20770 (source
20771 (origin
20772 (method git-fetch)
20773 (uri (git-reference
20774 (url "https://github.com/jtbm37/all-the-icons-dired/")
20775 (commit commit)))
20776 (file-name (git-file-name name version))
20777 (sha256
20778 (base32
20779 "1pvbgyxfj4j205nj1r02045f1y4wgavdsk7f45hxkkhms1rj8jyy"))))
20780 (build-system emacs-build-system)
20781 (propagated-inputs
20782 `(("emacs-all-the-icons" ,emacs-all-the-icons)))
20783 (home-page "https://github.com/jtbm37/all-the-icons-dired/")
20784 (synopsis "Show icons for each file in @code{dired-mode}")
20785 (description "This package allows icons from @file{all-the-icons.el} to
20786 be used in @code{dired-mode}.")
20787 (license license:gpl3+))))
20788
20789 (define-public emacs-exwm-edit
20790 (let ((commit "e1291e311840f1049106fe98cec032a1c75efd2b")
20791 (version "0.0.1")
20792 (revision "3"))
20793 (package
20794 (name "emacs-exwm-edit")
20795 (version (git-version version revision commit))
20796 (source
20797 (origin
20798 (method git-fetch)
20799 (uri (git-reference
20800 (url "https://github.com/agzam/exwm-edit/")
20801 (commit commit)))
20802 (file-name (git-file-name name version))
20803 (sha256
20804 (base32
20805 "031cb8fvv5n30djr9lpl6vz3rl15zykfvjlgkjc8l33a3l5mw8j0"))))
20806 (build-system emacs-build-system)
20807 (propagated-inputs
20808 `(("emacs-exwm" ,emacs-exwm)))
20809 (home-page "https://github.com/agzam/exwm-edit/")
20810 (synopsis "Open temp buffers for editing text from EXWM buffers")
20811 (description "This package facilitates editing text from EXWM buffers by
20812 generating a temp buffer in which any useful Emacs utilities and modes can be
20813 invoked.")
20814 (license license:gpl3+))))
20815
20816 (define-public emacs-ert-async
20817 (package
20818 (name "emacs-ert-async")
20819 (version "0.1.2")
20820 (source
20821 (origin
20822 (method git-fetch)
20823 (uri (git-reference
20824 (url "https://github.com/rejeep/ert-async.el")
20825 (commit (string-append "v" version))))
20826 (file-name (git-file-name name version))
20827 (sha256
20828 (base32
20829 "0hn9i405nfhjd1h9vnwj43nxbbz00khrwkjq0acfyxjaz1shfac9"))))
20830 (build-system emacs-build-system)
20831 (home-page "https://github.com/rejeep/ert-async.el")
20832 (synopsis "Async support for ERT")
20833 (description "This package allows ERT to work with asynchronous tests.")
20834 (license license:gpl3+)))
20835
20836 (define-public emacs-prodigy-el
20837 (let ((commit "0a12eec1f001a4eef16b2c0c524f02f2647a4ff1")
20838 (revision "2"))
20839 (package
20840 (name "emacs-prodigy-el")
20841 (version (git-version "0.7.0" revision commit))
20842 (source
20843 (origin
20844 (method git-fetch)
20845 (uri (git-reference
20846 (url "https://github.com/rejeep/prodigy.el")
20847 (commit commit)))
20848 (file-name (git-file-name name version))
20849 (sha256
20850 (base32
20851 "02kysq57kqzg0zkhaf302ada9cp9spgp71z8vbdq4c7dl6x75h4g"))))
20852 (build-system emacs-build-system)
20853 (propagated-inputs
20854 `(("emacs-dash" ,emacs-dash)
20855 ("emacs-s" ,emacs-s)
20856 ("emacs-f" ,emacs-f)))
20857 (native-inputs
20858 `(("emacs-el-mock" ,emacs-el-mock)
20859 ("emacs-ert-async" ,emacs-ert-async)))
20860 (home-page "https://github.com/rejeep/prodigy.el")
20861 (synopsis "Manage external services from within Emacs")
20862 (description "This package provides a GUI for defining and monitoring services.")
20863 (license license:gpl3+))))
20864
20865 (define-public emacs-web-server
20866 (package
20867 (name "emacs-web-server")
20868 (version "0.1.2")
20869 (source
20870 (origin
20871 (method url-fetch)
20872 (uri (string-append "https://elpa.gnu.org/packages/"
20873 "web-server-" version ".tar"))
20874 (sha256
20875 (base32 "10lcsl4dg2yr9zjd99gq9jz150wvvh6r5y9pd88l8y9vz16f2lim"))))
20876 (build-system emacs-build-system)
20877 (home-page "https://github.com/eschulte/emacs-web-server/")
20878 (synopsis "Web server with handlers in Emacs Lisp")
20879 (description "This package supports HTTP GET and POST requests with
20880 url-encoded parameters, as well as web sockets.")
20881 (license license:gpl3+)))
20882
20883 (define-public emacs-markdown-preview-mode
20884 (package
20885 (name "emacs-markdown-preview-mode")
20886 (version "0.9.2")
20887 (source
20888 (origin
20889 (method git-fetch)
20890 (uri (git-reference
20891 (url "https://github.com/ancane/markdown-preview-mode")
20892 (commit (string-append "v" version))))
20893 (file-name (git-file-name name version))
20894 (sha256
20895 (base32
20896 "1d1id99gagymvzdfa1mwqh8y3szm8ii47rpijkfi1qnifjg5jaq9"))))
20897 (build-system emacs-build-system)
20898 (propagated-inputs
20899 `(("emacs-markdown-mode" ,emacs-markdown-mode)
20900 ("emacs-websocket" ,emacs-websocket)
20901 ("emacs-web-server" ,emacs-web-server)))
20902 (arguments '(#:include '("\\.el$" "\\.html$")))
20903 (home-page "https://github.com/ancane/markdown-preview-mode")
20904 (synopsis "Preview Markdown files")
20905 (description "This package provides a minor mode for preview of Markdown
20906 files, and sends rendered Markdown to a web browser.")
20907 (license license:gpl3+)))
20908
20909 (define-public emacs-dotenv-mode
20910 (package
20911 (name "emacs-dotenv-mode")
20912 (version "0.2.4")
20913 (source
20914 (origin
20915 (method git-fetch)
20916 (uri (git-reference
20917 (url "https://github.com/preetpalS/emacs-dotenv-mode")
20918 (commit (string-append "v" version))))
20919 (file-name (git-file-name name version))
20920 (sha256
20921 (base32
20922 "1fplkhxnsgdrg10iqsmw162zny2idz4vvv35spsb9j0hsk8imclc"))))
20923 (build-system emacs-build-system)
20924 (home-page "https://github.com/preetpalS/emacs-dotenv-mode")
20925 (synopsis "Major mode for @file{.env} files")
20926 (description "This package provides syntax highlighting for @file{.env}
20927 files.")
20928 (license license:gpl3+)))
20929
20930 (define-public emacs-add-node-modules-path
20931 (let ((commit "f31e69ccb681f882aebb806ce6e9478e3ac39708")
20932 (version "1.2.0")
20933 (revision "10"))
20934 (package
20935 (name "emacs-add-node-modules-path")
20936 (version (git-version version revision commit))
20937 (source
20938 (origin
20939 (method git-fetch)
20940 (uri (git-reference
20941 (url "https://github.com/codesuki/add-node-modules-path")
20942 (commit commit)))
20943 (file-name (git-file-name name version))
20944 (sha256
20945 (base32
20946 "0p106bqmvdr8by5iv02bshm339qbrjcch2d15mrm4h3nav03v306"))))
20947 (build-system emacs-build-system)
20948 (home-page "https://github.com/codesuki/add-node-modules-path")
20949 (synopsis "Add @file{node_modules} to the buffer-local @file{exec-path}")
20950 (description "This package searches the parent directories of the
20951 current file for the project's @file{node_modules/.bin/} directory, allowing
20952 Emacs to find project-specific installations of packages.")
20953 (license license:expat))))
20954
20955 (define-public emacs-flow-minor-mode
20956 (let ((commit "d1b32a7dd0d33c6a00a106da5f4b2323602cbd3e")
20957 (version "0.3")
20958 (revision "4"))
20959 (package
20960 (name "emacs-flow-minor-mode")
20961 (version (git-version version revision commit))
20962 (source
20963 (origin
20964 (method git-fetch)
20965 (uri (git-reference
20966 (url "https://github.com/an-sh/flow-minor-mode")
20967 (commit commit)))
20968 (file-name (git-file-name name version))
20969 (sha256
20970 (base32
20971 "169r4ib9qg9q6fm3p0p23qs1qx4pa9pg1qvyq4ysr85i7kwygppl"))))
20972 (build-system emacs-build-system)
20973 (home-page "https://github.com/an-sh/flow-minor-mode")
20974 (synopsis "Minor mode for JavaScript Flow files")
20975 (description "This package integrates Flow with Emacs, allowing for
20976 definition-jumping and type-checking on demand.")
20977 (license license:bsd-3))))
20978
20979 (define-public emacs-rjsx-mode
20980 (let ((commit "0e7fa6b4facdec4f85a7a8865bdf59dfd57217b5")
20981 (revision "2"))
20982 (package
20983 (name "emacs-rjsx-mode")
20984 (version (git-version "0.4" revision commit))
20985 (source
20986 (origin
20987 (method git-fetch)
20988 (uri (git-reference
20989 (url "https://github.com/felipeochoa/rjsx-mode")
20990 (commit commit)))
20991 (file-name (git-file-name name version))
20992 (sha256
20993 (base32
20994 "0s0871sx3ch09kgvbcp9na4zdrfrda62xjq8m9knbq5vnj8q8qpi"))))
20995 (build-system emacs-build-system)
20996 (propagated-inputs
20997 `(("emacs-js2-mode" ,emacs-js2-mode)))
20998 (arguments
20999 `(#:tests? #t
21000 #:test-command '("make" "test")))
21001 (home-page "https://github.com/felipeochoa/rjsx-mode")
21002 (synopsis "Major mode for JSX files")
21003 (description "This package extends the parser of @code{js2-mode} to
21004 support JSX syntax.")
21005 (license license:expat))))
21006
21007 (define-public emacs-origami-el
21008 (let ((commit "1f38085c8f9af7842765ed63f7d6dfe4dab59366")
21009 (version "1.0")
21010 (revision "1"))
21011 (package
21012 (name "emacs-origami-el")
21013 (version (git-version version revision commit))
21014 (source
21015 (origin
21016 (method git-fetch)
21017 (uri (git-reference
21018 (url "https://github.com/gregsexton/origami.el")
21019 (commit commit)))
21020 (file-name (git-file-name name version))
21021 (sha256
21022 (base32
21023 "0ha1qsz2p36pqa0sa2sp83lspbgx5lr7930qxnwd585liajzdd9x"))))
21024 (build-system emacs-build-system)
21025 (propagated-inputs
21026 `(("emacs-dash" ,emacs-dash)
21027 ("emacs-s" ,emacs-s)))
21028 (home-page "https://github.com/gregsexton/origami.el")
21029 (synopsis "Flexible text-folding")
21030 (description "This package provides a minor mode for collapsing and
21031 expanding regions of text without modifying the actual contents.")
21032 (license license:expat))))
21033
21034 (define-public emacs-peep-dired
21035 (let ((commit "c88a9a3050197840edfe145f11e0bb9488de32f4")
21036 (version "0")
21037 (revision "1"))
21038 (package
21039 (name "emacs-peep-dired")
21040 (version (git-version version revision commit))
21041 (source
21042 (origin
21043 (method git-fetch)
21044 (uri (git-reference
21045 (url "https://github.com/asok/peep-dired")
21046 (commit commit)))
21047 (file-name (git-file-name name version))
21048 (sha256
21049 (base32
21050 "1wy5qpnfri1gha2cnl6q20qar8dbl2mimpb43bnhmm2g3wgjyad6"))))
21051 (build-system emacs-build-system)
21052 (home-page "https://github.com/asok/peep-dired")
21053 (synopsis "Preview files in another window")
21054 (description "This package provides a minor mode that allows files to be
21055 previewed by scrolling up and down within a @code{dired} buffer.")
21056 (license license:gpl3+))))
21057
21058 (define-public emacs-counsel-etags
21059 (package
21060 (name "emacs-counsel-etags")
21061 (version "1.9.11")
21062 (source
21063 (origin
21064 (method git-fetch)
21065 (uri (git-reference
21066 (url "https://github.com/redguardtoo/counsel-etags")
21067 (commit version)))
21068 (file-name (git-file-name name version))
21069 (sha256
21070 (base32 "0h0br41vkrx9l7bqr55bafqd715drxxwm41qif6iffhgdpvf69ym"))))
21071 (build-system emacs-build-system)
21072 (propagated-inputs
21073 `(("emacs-counsel" ,emacs-counsel)))
21074 (arguments
21075 `(#:tests? #t
21076 #:test-command '("make" "test")))
21077 (home-page "https://github.com/redguardtoo/counsel-etags")
21078 (synopsis "Fast @code{Ctags}/@code{Etags} solution with @code{ivy-mode}")
21079 (description "This package uses @code{ivy-mode} to facilitate navigating
21080 and searching through @code{Ctags} files.")
21081 (license license:gpl3+)))
21082
21083 (define-public emacs-ivy-clipmenu
21084 (let ((commit "d2071f2c5043a05d610cd1952e84176ca78c31dc"))
21085 (package
21086 (name "emacs-ivy-clipmenu")
21087 (version (git-version "0.0.1" "1" commit))
21088 (source (origin
21089 (method git-fetch)
21090 (uri (git-reference
21091 (url "https://github.com/wpcarro/ivy-clipmenu.el")
21092 (commit commit)))
21093 (file-name (git-file-name name version))
21094 (sha256
21095 (base32
21096 "0npd8glzk5z4n7y9mzbsbzi0cf3by19fqcki052jr3dga363lds7"))))
21097 (propagated-inputs
21098 `(("emacs-f" ,emacs-f)
21099 ("emacs-ivy" ,emacs-ivy)))
21100 (build-system emacs-build-system)
21101 (home-page "https://github.com/wpcarro/ivy-clipmenu.el")
21102 (synopsis "Ivy integration with clipmenu")
21103 (description "Ivy integration with the clipboard manager, clipmenu.")
21104 (license license:expat))))
21105
21106 (define-public emacs-org-download
21107 (let ((commit "10c9d7c8eed928c88a896310c882e3af4d8d0f61")
21108 (revision "2"))
21109 (package
21110 (name "emacs-org-download")
21111 (version (git-version "0.1.0" revision commit))
21112 (source (origin
21113 (method git-fetch)
21114 (uri (git-reference
21115 (url "https://github.com/abo-abo/org-download")
21116 (commit commit)))
21117 (sha256
21118 (base32
21119 "0i8wlx1i7y1vn5lqwjifvymvszg28a07vwqcm4jslf1v2ajs1lsl"))
21120 (file-name (git-file-name name version))))
21121 (build-system emacs-build-system)
21122 (propagated-inputs
21123 `(("emacs-org" ,emacs-org)
21124 ("emacs-async" ,emacs-async)))
21125 (home-page "https://github.com/abo-abo/org-download")
21126 (synopsis "Facilitate moving images")
21127 (description "This package provides utilities for managing image files
21128 copied into @code{org-mode} buffers.")
21129 (license license:gpl3+))))
21130
21131 (define-public emacs-dash-docs
21132 (let ((commit "111fd9b97001f1ad887b45e5308a14ddd68ce70a")
21133 (revision "1"))
21134 (package
21135 (name "emacs-dash-docs")
21136 (version (git-version "1.4.0" revision commit))
21137 (source
21138 (origin
21139 (method git-fetch)
21140 (uri (git-reference
21141 (url "https://github.com/dash-docs-el/dash-docs")
21142 (commit commit)))
21143 (file-name (git-file-name name version))
21144 (sha256
21145 (base32
21146 "0sckb7z0ylflva212bns7iq9mfnffgjghi0qspsbfwra35zb9xng"))))
21147 (build-system emacs-build-system)
21148 (propagated-inputs
21149 `(("emacs-async" ,emacs-async)))
21150 (native-inputs
21151 `(("emacs-undercover" ,emacs-undercover)
21152 ("emacs-ert-runner" ,emacs-ert-runner)))
21153 (arguments
21154 `(#:tests? #t
21155 #:test-command '("ert-runner")
21156 #:phases
21157 ;; this test requires network access, so remove it
21158 (modify-phases %standard-phases
21159 (add-before 'check 'make-tests-writable
21160 (lambda _
21161 (make-file-writable "test/dash-docs-test.el")
21162 #t))
21163 (add-before 'check 'delete-test
21164 (lambda _
21165 (emacs-batch-edit-file "test/dash-docs-test.el"
21166 `(progn (progn
21167 (goto-char (point-min))
21168 (re-search-forward "ert-deftest dash-docs-official-docsets-test")
21169 (beginning-of-line)
21170 (kill-sexp))
21171 (basic-save-buffer)))
21172 #t)))))
21173 (home-page "https://github.com/dash-docs-el/dash-docs")
21174 (synopsis "Offline documentation browser for APIs using Dash docsets")
21175 (description "This package exposes functionality to work with Dash docsets.")
21176 (license license:gpl3+))))
21177
21178 (define-public emacs-helm-dash
21179 (let ((commit "7f853bd34da666f0e9a883011c80f451b06f6c59")
21180 (revision "2"))
21181 (package
21182 (name "emacs-helm-dash")
21183 (version (git-version "1.3.0" revision commit))
21184 (source
21185 (origin
21186 (method git-fetch)
21187 (uri (git-reference
21188 (url "https://github.com/areina/helm-dash")
21189 (commit commit)))
21190 (file-name (git-file-name name version))
21191 (sha256
21192 (base32
21193 "0r192vzry1212ihabg9pgw9xar8zdgnbgy0vsgvfm8s5wj6ny7jp"))))
21194 (build-system emacs-build-system)
21195 (propagated-inputs
21196 `(("emacs-helm" ,emacs-helm)
21197 ("emacs-dash-docs" ,emacs-dash-docs)))
21198 (home-page "https://github.com/areina/helm-dash")
21199 (synopsis "Offline documentation browser for APIs using Dash docsets")
21200 (description "This package uses Helm to install and navigate through
21201 Dash docsets.")
21202 (license license:gpl3+))))
21203
21204 (define-public emacs-counsel-dash
21205 (let ((commit "370d5f6f14b5294d0eb717f7b2a6a8e93df1ed24")
21206 (revision "4"))
21207 (package
21208 (name "emacs-counsel-dash")
21209 (version (git-version "0.1.3" revision commit))
21210 (source
21211 (origin
21212 (method git-fetch)
21213 (uri (git-reference
21214 (url "https://github.com/dash-docs-el/counsel-dash")
21215 (commit commit)))
21216 (file-name (git-file-name name version))
21217 (sha256
21218 (base32 "1fn38vbz46ijarjvhgw7iy7dj9s2a2miy95fyy9f8b5sj8nrdfvz"))))
21219 (build-system emacs-build-system)
21220 (propagated-inputs
21221 `(("emacs-counsel" ,emacs-counsel)
21222 ("emacs-dash-docs" ,emacs-dash-docs)))
21223 (home-page "https://github.com/dash-docs-el/counsel-dash")
21224 (synopsis "Offline documentation browser for APIs using Dash docsets")
21225 (description "This package uses @code{ivy-mode} to install and navigate
21226 through Dash docsets.")
21227 (license license:expat))))
21228
21229 (define-public emacs-calibredb
21230 (package
21231 (name "emacs-calibredb")
21232 (version "2.6.0")
21233 (source
21234 (origin
21235 (method git-fetch)
21236 (uri (git-reference
21237 (url "https://github.com/chenyanming/calibredb.el")
21238 (commit version)))
21239 (file-name (git-file-name name version))
21240 (sha256
21241 (base32 "132afbbh4km2cbll46i6bpksvin0ncgfy782g4nkfjmwjaqh3d5l"))))
21242 (build-system emacs-build-system)
21243 (propagated-inputs
21244 `(("emacs-dash" ,emacs-dash)
21245 ("emacs-s" ,emacs-s)
21246 ("emacs-transient" ,emacs-transient)))
21247 (home-page "https://github.com/chenyanming/calibredb.el")
21248 (synopsis "Yet another calibre client for Emacs")
21249 (description "This package integrates calibre into Emacs.
21250 @enumerate
21251 @item Powerful ebook dashboard.
21252 @item Manage ebooks, actually not only ebooks!
21253 @item Manage Ebook libraries.
21254 @item Another bookmarks solution, by setting the tags and comments.
21255 @item Quick search, filter, make actions on items with ivy and helm.
21256 @item Org-ref support.
21257 @end enumerate")
21258 (license license:gpl3)))
21259
21260 (define-public emacs-el-patch
21261 (package
21262 (name "emacs-el-patch")
21263 (version "2.2.3")
21264 (source
21265 (origin
21266 (method git-fetch)
21267 (uri (git-reference
21268 (url "https://github.com/raxod502/el-patch")
21269 (commit version)))
21270 (file-name (git-file-name name version))
21271 (sha256
21272 (base32
21273 "18djslz177q6q33y82zmg2v6n9236a76kiqfvxdk4vbqzjbq82f7"))))
21274 (build-system emacs-build-system)
21275 (home-page "https://github.com/raxod502/el-patch")
21276 (synopsis "Future-proof your Emacs customizations")
21277 (description "This package allows for an alternate definition of an Elisp
21278 function to be specified and for any differences from the original definition
21279 to be examined using Ediff.")
21280 (license license:expat)))
21281
21282 (define-public emacs-info-plus
21283 (let ((commit "4a6b93c170169594e1e8ea60cd799a1a88a969da")
21284 (revision "2"))
21285 (package
21286 (name "emacs-info-plus")
21287 (version (git-version "0" revision commit))
21288 (source
21289 (origin
21290 (method git-fetch)
21291 (uri (git-reference
21292 (url "https://github.com/emacsmirror/info-plus")
21293 (commit commit)))
21294 (file-name (git-file-name name version))
21295 (sha256
21296 (base32
21297 "1xzmx7m1qbl3b1x6yq1db1a108xqaa64ljfv1hdw763zmy4kc6m0"))))
21298 (build-system emacs-build-system)
21299 (home-page "https://github.com/emacsmirror/info-plus")
21300 (synopsis "Extensions to @file{info.el}")
21301 (description "This package extends Emacs' @file{info.el} by allowing
21302 outline-enabled table of contents, additional metadata association for Info
21303 nodes, and more.")
21304 (license license:gpl2+))))
21305
21306 (define-public emacs-eval-sexp-fu-el
21307 (package
21308 (name "emacs-eval-sexp-fu-el")
21309 (version "0.5.0")
21310 (source
21311 (origin
21312 (method git-fetch)
21313 (uri (git-reference
21314 (url "https://github.com/hchbaw/eval-sexp-fu.el")
21315 (commit (string-append "v" version))))
21316 (file-name (git-file-name name version))
21317 (sha256
21318 (base32
21319 "01mpnpgmlnfbi2yw9dxz5iw72mw3lk223bj172i4fnx3xdrrxbij"))))
21320 (build-system emacs-build-system)
21321 (home-page "https://github.com/hchbaw/eval-sexp-fu.el")
21322 (synopsis "Enhancements for evaluating s-expressions")
21323 (description "This package provides provides variants of
21324 @code{eval-last-sexp} that work on the containing list or s-expression, as
21325 well as an option for visually flashing evaluated s-expressions.")
21326 (license license:gpl3+)))
21327
21328 (define-public emacs-counsel-tramp
21329 (package
21330 (name "emacs-counsel-tramp")
21331 (version "0.7.5")
21332 (source
21333 (origin
21334 (method git-fetch)
21335 (uri (git-reference
21336 (url "https://github.com/masasam/emacs-counsel-tramp")
21337 (commit version)))
21338 (file-name (git-file-name name version))
21339 (sha256
21340 (base32 "18qlwyjqxap2qfbz14ma6yqp4p3v4q2y8idc355s4szjdd2as2lr"))))
21341 (build-system emacs-build-system)
21342 (propagated-inputs
21343 `(("emacs-counsel" ,emacs-counsel)))
21344 (home-page "https://github.com/masasam/emacs-counsel-tramp")
21345 (synopsis "Ivy interface for TRAMP")
21346 (description
21347 "This package allows @code{ivy-mode} to display and filter SSH servers.")
21348 (license license:gpl3+)))
21349
21350 (define-public emacs-tramp
21351 (package
21352 (name "emacs-tramp")
21353 (version "2.4.4.2")
21354 (source
21355 (origin
21356 (method url-fetch)
21357 (uri (string-append "https://elpa.gnu.org/packages/"
21358 "tramp-" version ".tar"))
21359 (sha256
21360 (base32 "16c8x5d803hjql0z88lidyx3zrhxlpjphdpzn3ppzz3wrsxsv8rf"))))
21361 (build-system emacs-build-system)
21362 (arguments
21363 `(#:emacs ,emacs ;need D-Bus
21364 #:phases
21365 (modify-phases %standard-phases
21366 ;; All but one "/bin/" directory refer to remote
21367 ;; environments, which may not be Guix. Do not patch them
21368 ;; blindly. However, local encoding shell has to be patched.
21369 (replace 'patch-el-files
21370 (lambda* (#:key inputs #:allow-other-keys)
21371 (let ((sh (assoc-ref inputs "bash"))
21372 (file "tramp.el"))
21373 (emacs-substitute-variables file
21374 ("tramp-encoding-shell" (string-append sh "/bin/sh"))))
21375 #t)))))
21376 (inputs
21377 `(("bash" ,bash)))
21378 (home-page "https://savannah.gnu.org/projects/tramp")
21379 (synopsis "Remote file editing package for Emacs")
21380 (description
21381 "Tramp stands for ``Transparent Remote (file) Access, Multiple
21382 Protocol''. This package provides remote file editing, using
21383 a combination of @command{rsh} and @command{rcp} or other work-alike
21384 programs, such as @command{ssh} and @command{scp}.")
21385 (license license:gpl3+)))
21386
21387 (define-public emacs-tramp-auto-auth
21388 (let ((commit "f15a12dfab651aff60f4a9d70f868030a12344ac"))
21389 (package
21390 (name "emacs-tramp-auto-auth")
21391 (version (git-version "20191027" "1" commit))
21392 (source
21393 (origin
21394 (method git-fetch)
21395 (uri (git-reference
21396 (url "https://github.com/oitofelix/tramp-auto-auth")
21397 (commit commit)))
21398 (file-name (git-file-name name version))
21399 (sha256
21400 (base32
21401 "09nkjgwppjfgv04q0gv468qihgx4y3p39lpwbd6vbh3wgbccas9k"))))
21402 (build-system emacs-build-system)
21403 (home-page "https://github.com/oitofelix/tramp-auto-auth")
21404 (synopsis "TRAMP automatic authentication library")
21405 (description "This package provides @code{tramp-auto-auth-mode} Emacs
21406 global minor mode whose purpose is to automatically feed TRAMP sub-processes
21407 with passwords for paths matching regexps.")
21408 (license license:gpl3+))))
21409
21410 (define-public emacs-eacl
21411 (package
21412 (name "emacs-eacl")
21413 (version "2.0.1")
21414 (source
21415 (origin
21416 (method git-fetch)
21417 (uri (git-reference
21418 (url "https://github.com/redguardtoo/eacl")
21419 (commit version)))
21420 (file-name (git-file-name name version))
21421 (sha256
21422 (base32
21423 "0ksn11sm3g1ja5lpjz3hrzzw8b480mfcb3q589m52qjgvvn5iyfv"))))
21424 (build-system emacs-build-system)
21425 (propagated-inputs
21426 `(("emacs-ivy" ,emacs-ivy)))
21427 (home-page "https://github.com/redguardtoo/eacl")
21428 (synopsis "Auto-complete lines by using @code{grep} on a project")
21429 (description "This package provides auto-completion commands for single
21430 and multiple lines of code in a project.")
21431 (license license:gpl3+)))
21432
21433 (define-public emacs-semantic-refactor
21434 ;; The last release, 0.5, was made on 2015-07-26 and there have been 47
21435 ;; commits since then.
21436 (let ((commit "6f2c97d17fb70f4ca2112f5a2b99a8ec162004f5"))
21437 (package
21438 (name "emacs-semantic-refactor")
21439 (version (git-version "0.5" "1" commit))
21440 (source
21441 (origin
21442 (method git-fetch)
21443 (uri (git-reference
21444 (url "https://github.com/tuhdo/semantic-refactor")
21445 (commit commit)))
21446 (file-name (git-file-name name version))
21447 (sha256
21448 (base32
21449 "1lyz3zjkx2csh0xdy1zpx8s32qp1p3sig57mwi9xhgpqjyf0axmb"))))
21450 (build-system emacs-build-system)
21451 (home-page "https://github.com/tuhdo/semantic-refactor")
21452 (synopsis "Refactoring tool for C/C++ and Lisp dialects")
21453 (description "This package provides a refactoring tool based on the
21454 Emacs Semantic parser framework. For C and C++ it supports operations such as:
21455
21456 @enumerate
21457 @item Generating class implementations
21458 @item Generating function prototypes
21459 @item Converting functions to function pointers
21460 @item Moving semantic units
21461 @item etc...
21462 @end enumerate
21463
21464 For Lisp dialects like Clojure, ELisp, and Scheme, it supports operations such
21465 as:
21466
21467 @enumerate
21468 @item Formatting the whole buffer
21469 @item Converting sexpressions to one or multiple lines
21470 @item etc...
21471 @end enumerate\n")
21472 (license license:gpl3+))))
21473
21474 (define-public emacs-nhexl-mode
21475 (package
21476 (name "emacs-nhexl-mode")
21477 (version "1.5")
21478 (source
21479 (origin
21480 (method url-fetch)
21481 (uri (string-append "https://elpa.gnu.org/packages/"
21482 "nhexl-mode-" version ".el"))
21483 (sha256
21484 (base32 "0qvxfg7sv4iqyjxzaim6b4v9k5hav36qd4vkf9jwzw6p5fri8w8d"))))
21485 (build-system emacs-build-system)
21486 (home-page "https://elpa.gnu.org/packages/nhexl-mode.html")
21487 (synopsis "Minor mode to edit files via hex-dump format")
21488 (description
21489 "This package implements NHexl mode, a minor mode for editing files
21490 in hex dump format. The mode command is called @command{nhexl-mode}.
21491
21492 This minor mode implements similar functionality to @command{hexl-mode},
21493 but using a different implementation technique, which makes it
21494 usable as a \"plain\" minor mode. It works on any buffer, and does
21495 not mess with the undo log or with the major mode.
21496
21497 It also comes with:
21498
21499 @itemize
21500 @item @command{nhexl-nibble-edit-mode}: a \"nibble editor\" minor mode, where
21501 the cursor pretends to advance by nibbles (4-bit) and the self-insertion keys
21502 (which only work for hex-digits) will only modify the nibble under point.
21503 @item @command{nhexl-overwrite-only-mode}: a minor mode to try and avoid
21504 moving text. In this minor mode, not only self-inserting keys overwrite
21505 existing text, but commands like `yank' and @command{kill-region} as well.
21506 @item It overrides @code{C-u} to use hexadecimal, so you can do @code{C-u a 4
21507 C-f} to advance by #xa4 characters.
21508 @end itemize")
21509 (license license:gpl3+)))
21510
21511 (define-public emacs-helm-wikipedia
21512 (let ((commit "126f044e0a0e1432e0791c33ce2a41875d704a9b"))
21513 (package
21514 (name "emacs-helm-wikipedia")
21515 (version (git-version "0.0.0" "1" commit))
21516 (home-page "https://github.com/emacs-helm/helm-wikipedia/")
21517 (source
21518 (origin
21519 (method git-fetch)
21520 (uri (git-reference
21521 (url home-page)
21522 (commit commit)))
21523 (file-name (git-file-name name version))
21524 (sha256
21525 (base32
21526 "148a5xsnbsiddhf9cl7yxdk41lrv38h0pip91kcflw9d7l0dp7pr"))))
21527 (build-system emacs-build-system)
21528 (inputs
21529 `(("helm" ,emacs-helm)))
21530 (synopsis "Search suggestions and article extracts from Wikipedia for Emacs")
21531 (description
21532 "This package provides an Emacs Helm interface for search suggestions
21533 and article extracts for Wikipedia.")
21534 (license license:gpl3+))))
21535
21536 (define-public emacs-webfeeder
21537 (package
21538 (name "emacs-webfeeder")
21539 (version "1.0.0")
21540 (source
21541 (origin
21542 (method url-fetch)
21543 (uri (string-append
21544 "https://elpa.gnu.org/packages/webfeeder-"
21545 version
21546 ".tar"))
21547 (sha256
21548 (base32
21549 "06y5vxw9m6pmbrzb8v2i3w9dnhgqxz06vyx1knmgi9cczlrj4a64"))))
21550 (build-system emacs-build-system)
21551 (home-page "https://gitlab.com/Ambrevar/emacs-webfeeder")
21552 (synopsis "Build RSS and Atom webfeeds from HTML files")
21553 (description
21554 "Webfeeder is an Emacs library to generate RSS and Atom feeds from HTML
21555 files. The various elements of the HTML input are parsed with customizable
21556 functions (e.g. @code{webfeeder-title-function}).")
21557 (license license:gpl3+)))
21558
21559 (define-public emacs-evil-numbers
21560 (let ((commit "6ea1c8c3a9b37bed63d48f1128e9a4910e68187e"))
21561 (package
21562 (name "emacs-evil-numbers")
21563 (version (git-version "0.4" "1" commit))
21564 (source (origin
21565 (method git-fetch)
21566 (uri (git-reference
21567 (url "https://github.com/dieggsy/evil-numbers")
21568 (commit commit)))
21569 (file-name (git-file-name name version))
21570 (sha256
21571 (base32
21572 "1aq95hj8x13py0pwsnc6wvd8cc5yv5qin8ym9js42y5966vwj4np"))))
21573 (build-system emacs-build-system)
21574 (home-page "https://github.com/dieggsy/evil-numbers")
21575 (synopsis "Increment and decrement numbers in Emacs")
21576 (description "This package increments and decrements binary, octal,
21577 decimal and hex literals. It works like C-a/C-x in Vim, i.e. searches for
21578 number up to EOL and then increments or decrements and keeps zero padding up
21579 (unlike in Vim). When a region is active, as in Evil's visual mode, all the
21580 numbers within that region will be incremented/decremented (unlike in Vim).
21581
21582 It is a fork of https://github.com/cofi/evil-numbers, which is unmaintained.")
21583 (license license:gpl3+))))
21584
21585 (define-public emacs-rotate-text
21586 (package
21587 (name "emacs-rotate-text")
21588 (version "0.1")
21589 (source (origin
21590 (method git-fetch)
21591 (uri (git-reference
21592 (url "https://github.com/nschum/rotate-text.el")
21593 (commit version)))
21594 (file-name (git-file-name name version))
21595 (sha256
21596 (base32
21597 "1cgxv4aibkvv6lnssynn0438a615fz3zq8hg9sb0lhfgsr99pxln"))))
21598 (build-system emacs-build-system)
21599 (home-page "https://nschum.de/src/emacs/rotate-text/")
21600 (synopsis "Cycle through words, symbols and patterns in Emacs")
21601 (description "@code{rotate-text} allows you rotate to commonly
21602 interchanged text with a single keystroke. For example, you can toggle
21603 between \"frame-width\" and \"frame-height\", between \"public\",
21604 \"protected\" and \"private\" and between \"variable1\", \"variable2\" through
21605 \"variableN\".")
21606 (license license:gpl2+)))
21607
21608 (define-public emacs-ediprolog
21609 (package
21610 (name "emacs-ediprolog")
21611 (version "2.1")
21612 (source
21613 (origin
21614 (method url-fetch)
21615 (uri (string-append
21616 "https://elpa.gnu.org/packages/ediprolog-"
21617 version
21618 ".el"))
21619 (sha256
21620 (base32 "1piimsmzpirw8plrpy79xbpnvynzzhcxi31g6lg6is8gridiv3md"))))
21621 (build-system emacs-build-system)
21622 (home-page "https://elpa.gnu.org/packages/ediprolog.html")
21623 (synopsis "Emacs Does Interactive Prolog")
21624 (description "This package provides a major mode that let the user
21625 interact with SWI-Prolog in all buffers. For instance, one can consult Prolog
21626 programs and evaluate embedded queries. This mode is focused on the command
21627 @code{ediprolog-dwim} (Do What I Mean) which is supposed to, depending on the
21628 context, carry out the appropriate action.")
21629 (license license:gpl3+)))
21630
21631 (define-public emacs-evil-cleverparens
21632 (let ((commit "8c45879d49bfa6d4e414b6c1df700a4a51cbb869")
21633 (revision "1"))
21634 (package
21635 (name "emacs-evil-cleverparens")
21636 (version (git-version "2017-07-17" revision commit))
21637 (source (origin
21638 (method git-fetch)
21639 (uri (git-reference
21640 (url "https://github.com/luxbock/evil-cleverparens")
21641 (commit commit)))
21642 (sha256 (base32 "0lhnybpnk4n2yhlcnj9zxn0vi5hpjfaqfhvyfy7ckzz74g8v7iyw"))
21643 (file-name (git-file-name name version))))
21644 (build-system emacs-build-system)
21645 (propagated-inputs
21646 `(("emacs-evil" ,emacs-evil)
21647 ("emacs-paredit" ,emacs-paredit)
21648 ("emacs-smartparens" ,emacs-smartparens)))
21649 (home-page "https://github.com/luxbock/evil-cleverparens")
21650 (synopsis "Emacs modal editing optimized for editing Lisp")
21651 (description "@code{evil-cleverparens} remaps Evil keybindings to allow
21652 modal editing with screwing up the structure of Lisp code. Alternatives for
21653 verb commands which would are normally destructive (such as deletion) are
21654 provided. Those alternative commands are and bound by default to their
21655 corresponding Evil keys.")
21656 (license license:expat))))
21657
21658 (define-public emacs-evil-traces
21659 (let ((commit "1931e3ea2c64b4aec393a9c25063c330deff55e3")
21660 (revision "2"))
21661 (package
21662 (name "emacs-evil-traces")
21663 (version (git-version "0.0.1" revision commit))
21664 (source (origin
21665 (method git-fetch)
21666 (uri (git-reference
21667 (url "https://github.com/mamapanda/evil-traces")
21668 (commit commit)))
21669 (file-name (git-file-name name version))
21670 (sha256
21671 (base32
21672 "12p9lfxscs182vbd4dy0m5gacs3d4kyprbz5yndpwvl8g2qsqplz"))))
21673 (build-system emacs-build-system)
21674 (propagated-inputs
21675 `(("emacs-evil" ,emacs-evil)))
21676 (arguments
21677 `(#:phases
21678 (modify-phases %standard-phases
21679 (add-after 'unpack 'set-shell
21680 ;; Setting the SHELL environment variable is required for the tests
21681 ;; to find sh.
21682 (lambda _
21683 (setenv "SHELL" (which "sh"))
21684 #t)))
21685 #:tests? #t
21686 #:test-command '("make" "test")))
21687 (home-page "https://github.com/mamapanda/evil-traces")
21688 (synopsis "Visual hints for @code{evil-ex}")
21689 (description "This package adds visual hints to certain @code{ex}
21690 commands in @code{evil-mode}.")
21691 (license license:gpl3+))))
21692
21693 (define-public emacs-evil-tmux-navigator
21694 (package
21695 (name "emacs-evil-tmux-navigator")
21696 (version "0.1.5")
21697 (source
21698 (origin
21699 (method git-fetch)
21700 (uri
21701 (git-reference
21702 (url "https://github.com/keith/evil-tmux-navigator")
21703 (commit version)))
21704 (file-name (git-file-name name version))
21705 (sha256
21706 (base32
21707 "1na44rbc03sr5b4z9pvnps6n4nmrqcz58nywix9825l74a419ijx"))))
21708 (propagated-inputs
21709 `(("emacs-evil" ,emacs-evil)))
21710 (build-system emacs-build-system)
21711 (home-page "https://github.com/keith/evil-tmux-navigator")
21712 (synopsis
21713 "Navigate seamlessly between emacs windows and tmux panes")
21714 (description
21715 "This package lets you use C-h, C-j, C-k and C-l to navigate between
21716 Emacs windows and tmux panes.")
21717 (license license:expat)))
21718
21719 (define-public emacs-xclip
21720 (package
21721 (name "emacs-xclip")
21722 (version "1.10")
21723 (source
21724 (origin
21725 (method url-fetch)
21726 (uri (string-append "https://elpa.gnu.org/packages/"
21727 "xclip-" version ".el"))
21728 (sha256
21729 (base32 "0i3i9kwfg8qmhcmqhhnrb1kljgwkccv63s9q1mjwqfjldyfh8j8i"))))
21730 (build-system emacs-build-system)
21731 (home-page "http://elpa.gnu.org/packages/xclip.html")
21732 (synopsis "Copy and paste GUI clipboard from Emacs in text terminal")
21733 (description
21734 "This package allows Emacs to copy to and paste from the GUI clipboard
21735 when running in text terminal.
21736
21737 It can use external command-line tools for that, e.g., @command{xclip} or
21738 @command{xsel}, which you may need to install in order for the package to
21739 work.")
21740 (license license:gpl3+)))
21741
21742 (define-public emacs-xterm-color
21743 (package
21744 (name "emacs-xterm-color")
21745 (version "1.9")
21746 (source (origin
21747 (method git-fetch)
21748 (uri (git-reference
21749 (url "https://github.com/atomontage/xterm-color")
21750 (commit version)))
21751 (file-name (git-file-name name version))
21752 (sha256
21753 (base32
21754 "0i9ivc5xhl5y5v0l18kbhfg8s2abb9zaimyx951b8bc0f5as68xm"))))
21755 (build-system emacs-build-system)
21756 (home-page "https://github.com/atomontage/xterm-color")
21757 (synopsis "ANSI & xterm-256 color text property translator for Emacs")
21758 (description "@code{xterm-color.el} is an ANSI control sequence to
21759 text-property translator.")
21760 (license license:bsd-2)))
21761
21762 (define-public emacs-org-noter
21763 (package
21764 (name "emacs-org-noter")
21765 (version "1.4.1")
21766 (source
21767 (origin
21768 (method git-fetch)
21769 (uri (git-reference
21770 (url "https://github.com/weirdNox/org-noter")
21771 (commit version)))
21772 (file-name (git-file-name name version))
21773 (sha256
21774 (base32
21775 "1vwfpdi7hfkxx4vi0cwg7rvqby3i0mymzdkyzrqzv30dazmcjpag"))))
21776 (build-system emacs-build-system)
21777 (propagated-inputs `(("emacs-org" ,emacs-org)))
21778 (home-page "https://github.com/weirdNox/org-noter")
21779 (synopsis "Synchronized, Org-mode, document annotator")
21780 (description
21781 "This package lets you create notes that are kept in sync when you
21782 scroll through the document, but that are external to it---the notes
21783 themselves live in an Org-mode file. As such, this leverages the power of
21784 Org-mode (the notes may have outlines, latex fragments, babel, etc...) while
21785 acting like notes that are made @emph{in} the document.")
21786 (license license:gpl3+)))
21787
21788 (define-public emacs-org-redmine
21789 (let ((commit "e77d013bc3784947c46a5c53f03cd7d3c68552fc"))
21790 (package
21791 (name "emacs-org-redmine")
21792 (version (git-version "0.1" "1" commit))
21793 (source (origin
21794 (method git-fetch)
21795 (uri (git-reference
21796 (url "https://github.com/gongo/org-redmine")
21797 (commit commit)))
21798 (file-name (git-file-name name version))
21799 (sha256
21800 (base32
21801 "06miv3mf2a39vkf6mmm5ssc47inqh7dq82khsyc03anz4d4lj822"))))
21802 (build-system emacs-build-system)
21803 (home-page "https://github.com/gongo/org-redmine/")
21804 (synopsis "Redmine tools using Emacs")
21805 (description "This program provides an Emacs client for Redmine.")
21806 (license license:gpl3+))))
21807
21808 (define-public emacs-multi-term
21809 ;; No upstream release. Extract version from main file.
21810 (let ((commit "017c77c550115936860e2ea71b88e585371475d5")
21811 (revision "0"))
21812 (package
21813 (name "emacs-multi-term")
21814 (version (git-version "1.5" revision commit))
21815 (source
21816 (origin
21817 (method git-fetch)
21818 (uri (git-reference
21819 (url "https://github.com/manateelazycat/multi-term")
21820 (commit commit)))
21821 (file-name (git-file-name name version))
21822 (sha256
21823 (base32 "043dqd8i8h6hbcg11rzprxin2yq5lb902zlrb7mxah44vyp8wrdi"))))
21824 (build-system emacs-build-system)
21825 (inputs
21826 `(("zsh" ,zsh)))
21827 (home-page "https://github.com/manateelazycat/multi-term")
21828 (synopsis "Manage multiple terminal buffers in Emacs")
21829 (description
21830 "This package enhances @code{term.el} with the following features:
21831
21832 @enumerate
21833 @item Functions to switch between multiple terminal buffers
21834 @item List of keys to be intercepted by @code{emacs-multi-term} instead of by
21835 the underlying terminal
21836 @item Kills the unused buffer left after exiting the terminal
21837 @item Kills the running sub-processes along with the terminal when killing the
21838 it forcibly
21839 @item Dedicated window for debugging program.
21840 @end enumerate")
21841 (license license:gpl3+))))
21842
21843 (define-public emacs-elpher
21844 (package
21845 (name "emacs-elpher")
21846 (version "2.9.1")
21847 (source
21848 (origin
21849 (method git-fetch)
21850 (uri (git-reference
21851 (url "git://thelambdalab.xyz/elpher.git")
21852 (commit (string-append "v" version))))
21853 (file-name (git-file-name name version))
21854 (sha256
21855 (base32 "0vyqmv7dycmad1726yb6yizd21x3kkz5cj33mca11r8nh38f1qzp"))))
21856 (build-system emacs-build-system)
21857 (native-inputs
21858 `(("texinfo" ,texinfo)))
21859 (arguments
21860 `(#:phases
21861 (modify-phases %standard-phases
21862 (add-before 'install 'build-doc
21863 (lambda _
21864 (invoke "makeinfo" "elpher.texi"))))))
21865 (home-page "gopher://thelambdalab.xyz/1/projects/elpher/")
21866 (synopsis "Gopher client for Emacs")
21867 (description "Elpher is a full-featured gopher client for Emacs. Its
21868 features include intuitive keyboard and mouse-driven browsing, out-of-the-box
21869 compatibility with evil-mode, clickable web and gopher links in plain text,
21870 caching of visited sites, pleasant and configurable visualization of Gopher
21871 directories, direct visualisation of image files, jumping directly to links by
21872 name (with autocompletion), a simple bookmark management system and
21873 connections using TLS encryption.")
21874 (license license:gpl3+)))
21875
21876 (define-public emacs-zerodark-theme
21877 (package
21878 (name "emacs-zerodark-theme")
21879 (version "4.6")
21880 (source
21881 (origin
21882 (method git-fetch)
21883 (uri (git-reference
21884 (url "https://github.com/NicolasPetton/zerodark-theme")
21885 (commit version)))
21886 (file-name (git-file-name name version))
21887 (sha256
21888 (base32
21889 "0pfyd1iqs7l2ngwgvj9n0r9k1px7yl16h8n502xdyf0pprxcs4p6"))))
21890 (build-system emacs-build-system)
21891 (propagated-inputs
21892 `(("emacs-flycheck" ,emacs-flycheck)
21893 ("emacs-all-the-icons" ,emacs-all-the-icons)))
21894 (home-page
21895 "https://gitlab.petton.fr/nico/zerodark-theme")
21896 (synopsis
21897 "Dark, medium contrast theme for Emacs")
21898 (description
21899 "Zerodark is a dark theme inspired from One Dark and Niflheim.
21900 An optional mode-line format can be enabled with @code{zerodark-setup-modeline-format}.")
21901 (license license:gpl3+)))
21902
21903 (define-public emacs-gnus-alias
21904 (package
21905 (name "emacs-gnus-alias")
21906 (version "20150316")
21907 (source (origin
21908 (method git-fetch)
21909 (uri (git-reference
21910 (url "https://github.com/hexmode/gnus-alias")
21911 (commit "9447d3ccb4c0e75d0468899cccff7aa249657bac")))
21912 (file-name (git-file-name name version))
21913 (sha256
21914 (base32
21915 "1i278npayv3kfxxd1ypi9n83q5l402sbc1zkm11pf8g006ifqsp4"))))
21916 (build-system emacs-build-system)
21917 (home-page "https://melpa.org/#/gnus-alias")
21918 (synopsis "Alternative to @code{gnus-posting-styles}")
21919 (description "This Emacs add-on provides a simple mechanism to switch
21920 Identities when using a @code{message-mode} or a @code{message-mode} derived
21921 mode. Identities can include @code{From} and @code{Organisation} headers,
21922 extra headers, body and signature. Other features include:
21923
21924 @itemize
21925 @item Switch Identities in a message buffer.
21926 @item Access original message to help determine Identity of the followup/reply
21927 message.
21928 @item Act on a forwarded message as if it were a message being replied to.
21929 @item Start a new message with a given Identity pre-selected.
21930 @end itemize")
21931 (license license:gpl2+)))
21932
21933 (define-public emacs-ox-epub
21934 (package
21935 (name "emacs-ox-epub")
21936 (version "0.3")
21937 (source (origin
21938 (method git-fetch)
21939 (uri (git-reference
21940 (url "https://github.com/ofosos/ox-epub")
21941 (commit (string-append "v" version))))
21942 (file-name (git-file-name name version))
21943 (sha256
21944 (base32
21945 "057sqmvm8hwkhcg3yd4i8zz2xlqsqrpyiklyiw750s3i5mxdn0k7"))))
21946 (build-system emacs-build-system)
21947 (home-page "https://github.com/ofosos/ox-epub")
21948 (synopsis "Export org mode projects to EPUB")
21949 (description "@code{ox-epub} extends the (X)HTML exporter to generate
21950 @code{.epub} files directly from OrgMode. This will export EPUB version 2,
21951 which should give broad compatibility. It should also be relatiely easy to
21952 convert the resulting @code{.epub} to a @code{.mobi} file. Needs a working
21953 zip utility (default is @code{zip}).")
21954 (license license:gpl3+)))
21955
21956 (define-public emacs-ox-hugo
21957 (package
21958 (name "emacs-ox-hugo")
21959 (version "0.8")
21960 (source
21961 (origin
21962 (method git-fetch)
21963 (uri (git-reference
21964 (url "https://github.com/kaushalmodi/ox-hugo")
21965 (commit (string-append "v" version))))
21966 (file-name (git-file-name name version))
21967 (sha256
21968 (base32
21969 "11h464cyc28ld0b0zridgm4drydc1qjxbm1y24zrwlkyqqjk6yr7"))))
21970 (build-system emacs-build-system)
21971 (home-page "https://ox-hugo.scripter.co")
21972 (synopsis "Hugo markdown back-end for Org export engine")
21973 (description
21974 "Ox-hugo is an Org exporter backend that exports Org to Hugo-compatible
21975 Markdown, Blackfriday, and also generates the front-matter in TOML or YAML
21976 format.")
21977 (license license:gpl3+)))
21978
21979 (define-public emacs-ox-pandoc
21980 (package
21981 (name "emacs-ox-pandoc")
21982 (version "20180510")
21983 (source (origin
21984 (method git-fetch)
21985 (uri (git-reference
21986 (url "https://github.com/kawabata/ox-pandoc")
21987 (commit "aa37dc7e94213d4ebedb85c384c1ba35007da18e")))
21988 (file-name (git-file-name name version))
21989 (sha256
21990 (base32
21991 "0iibxplgdp34bpq1yll2gmqjd8d8lnqn4mqjvx6cdf0y438yr4jz"))))
21992 (build-system emacs-build-system)
21993 (inputs
21994 `(("pandoc" ,ghc-pandoc)))
21995 (propagated-inputs
21996 `(("emacs-dash" ,emacs-dash)
21997 ("emacs-ht" ,emacs-ht)))
21998 (home-page "https://github.com/kawabata/ox-pandoc")
21999 (synopsis "Org exporter for Pandoc")
22000 (description "@code{ox-pandoc} is an exporter for converting Org-mode
22001 files to numerous other formats via Pandoc.")
22002 (license license:gpl3+)))
22003
22004 (define-public emacs-wc-mode
22005 (package
22006 (name "emacs-wc-mode")
22007 (version "1.3")
22008 (source (origin
22009 (method git-fetch)
22010 (uri (git-reference
22011 (url "https://github.com/bnbeckwith/wc-mode")
22012 (commit (string-append "v" version))))
22013 (file-name (git-file-name name version))
22014 (sha256
22015 (base32
22016 "0pjlxv46zzqdq6q131jb306vqlg4sfqls1x8vag7mmfw462hafqp"))))
22017 (build-system emacs-build-system)
22018 (home-page "https://github.com/bnbeckwith/wc-mode")
22019 (synopsis "Running word count with goals (minor mode)")
22020 (description "@code{wc-mode} is a minor mode, providing a ‘wc’ function
22021 for Emacs buffers as well as a modeline addition with live word, line and
22022 character counts. Additionally, a user can set specific goals for adding or
22023 deleting words. These goals were partly inspired by 750words.com where the
22024 goal of the site is to encourage writing by setting a goal of 750 words at a
22025 time.")
22026 (license license:gpl3+)))
22027
22028 (define-public emacs-mastodon
22029 (package
22030 (name "emacs-mastodon")
22031 (version "0.9.0")
22032 (source (origin
22033 (method git-fetch)
22034 (uri (git-reference
22035 (url "https://github.com/jdenen/mastodon.el")
22036 (commit version)))
22037 (file-name (git-file-name name version))
22038 (sha256
22039 (base32
22040 "0hwax6y9dghqwsbnb6f1bnc7gh8xsh5cvcnayk2sn49x8b0zi5h1"))))
22041 (build-system emacs-build-system)
22042 (arguments
22043 `(#:phases
22044 (modify-phases %standard-phases
22045 ;; Move the source files to the top level, which is included in
22046 ;; the EMACSLOADPATH.
22047 (add-after 'unpack 'move-source-files
22048 (lambda _
22049 (let ((el-files (find-files "./lisp" ".*\\.el$")))
22050 (for-each (lambda (f)
22051 (rename-file f (basename f)))
22052 el-files))
22053 #t)))))
22054 (home-page "https://github.com/jdenen/mastodon.el")
22055 (synopsis "Emacs client for Mastodon")
22056 (description "@code{mastodon.el} is an Emacs client for Mastodon, the
22057 federated microblogging social network.")
22058 (license license:gpl3+)))
22059
22060 (define-public emacs-ebdb
22061 (package
22062 (name "emacs-ebdb")
22063 (version "0.6.19")
22064 (source
22065 (origin
22066 (method url-fetch)
22067 (uri (string-append "https://elpa.gnu.org/packages/"
22068 "ebdb-" version ".tar"))
22069 (sha256
22070 (base32 "0ch5vzhxa8h5v75lg3blsmrln497lr3ylivx6w28aiyb6cv5016l"))))
22071 (build-system emacs-build-system)
22072 (home-page "https://github.com/girzel/ebdb")
22073 (synopsis "EIEIO port of BBDB, Emacs's contact-management package")
22074 (description
22075 "EBDB is a contact management/addressbook package for Emacs. It's
22076 a re-write of the Insidious Big Brother Database (BBDB) using Emacs
22077 Lisp's (relatively new) EIEIO object oriented libraries.")
22078 (license license:gpl3+)))
22079
22080 (define-public emacs-refactor
22081 (package
22082 (name "emacs-refactor")
22083 (version "0.4")
22084 (source (origin
22085 (method git-fetch)
22086 (uri (git-reference
22087 (url "https://github.com/Wilfred/emacs-refactor")
22088 (commit version)))
22089 (file-name (git-file-name name version))
22090 (sha256
22091 (base32
22092 "1yky7vlv91501xb43xk19rr8mxlvrsxhawsc98jivf64nad5dqay"))))
22093 (build-system emacs-build-system)
22094 (propagated-inputs
22095 `(("emacs-dash" ,emacs-dash)
22096 ("emacs-s" ,emacs-s)
22097 ("emacs-popup" ,emacs-popup)
22098 ("emacs-list-utils" ,emacs-list-utils)
22099 ("emacs-iedit" ,emacs-iedit)))
22100 (home-page "https://github.com/Wilfred/emacs-refactor/")
22101 (synopsis "Language-specific refactoring in Emacs")
22102 (description "Emacs Refactor (EMR) is a framework for providing
22103 language-specific refactoring in Emacs. It includes refactoring commands for
22104 a variety of languages, including elisp itself.")
22105 (license license:gpl3+)))
22106
22107 (define-public emacs-flyspell-correct
22108 (package
22109 (name "emacs-flyspell-correct")
22110 (version "0.5")
22111 (source
22112 (origin
22113 (method git-fetch)
22114 (uri (git-reference
22115 (url "https://github.com/d12frosted/flyspell-correct")
22116 (commit (string-append "v" version))))
22117 (file-name (git-file-name name version))
22118 (sha256
22119 (base32
22120 "1r9hmz7sihhy7npv6nxp04sy57glzmfax5d67mwn96fdnc0yhlnd"))))
22121 (build-system emacs-build-system)
22122 (propagated-inputs
22123 `(("emacs-helm" ,emacs-helm)
22124 ("emacs-ivy" ,emacs-ivy)
22125 ("emacs-popup" ,emacs-popup)))
22126 (home-page
22127 "https://github.com/d12frosted/flyspell-correct")
22128 (synopsis
22129 "Correcting words with flyspell via custom interfaces")
22130 (description
22131 "This package provides functionality for correcting words via custom
22132 interfaces. Several interfaces are supported beside the classic ido: popup,
22133 helm and ivy.")
22134 (license license:gpl3+)))
22135
22136 (define-public emacs-org-emms
22137 (let ((commit "07a8917f3d628c32e5de1dbd118ac08203772533")
22138 (revision "1"))
22139 (package
22140 (name "emacs-org-emms")
22141 (version
22142 (git-version "0.1" revision commit))
22143 (source
22144 (origin
22145 (method git-fetch)
22146 (uri (git-reference
22147 (url "https://gitlab.com/jagrg/org-emms.git")
22148 (commit commit)))
22149 (file-name (git-file-name name commit))
22150 (sha256
22151 (base32
22152 "1sqsm5sv311xfdk4f4rsnvprdf2v2vm7l1b3vqi7pc0g8adlnw1d"))))
22153 (build-system emacs-build-system)
22154 (propagated-inputs
22155 `(("emms" ,emacs-emms)
22156 ("emacs-org" ,emacs-org)))
22157 (home-page "https://gitlab.com/jagrg/org-emms")
22158 (synopsis "Play multimedia files from org-mode")
22159 (description
22160 "This package provides a new org link type for playing back multimedia
22161 files from org-mode using EMMS, The Emacs Multimedia System. If the link
22162 contains a track position, playback will start at the specified position.")
22163 (license license:gpl3+))))
22164
22165 (define-public emacs-org-jira
22166 (package
22167 (name "emacs-org-jira")
22168 (version "4.3.1")
22169 (source
22170 (origin
22171 (method git-fetch)
22172 (uri (git-reference
22173 (url "https://github.com/ahungry/org-jira")
22174 (commit version)))
22175 (file-name (git-file-name name version))
22176 (sha256
22177 (base32
22178 "1l80r2a9zzbfk2c78i40h0ww79vm9v4j6xi2h5i4w9kqh10rs6h2"))))
22179 (build-system emacs-build-system)
22180 (propagated-inputs
22181 `(("emacs-request" ,emacs-request)
22182 ("emacs-s" ,emacs-s)
22183 ("emacs-dash" ,emacs-dash)
22184 ("emacs-org" ,emacs-org)))
22185 (home-page "https://github.com/ahungry/org-jira")
22186 (synopsis "Syncing between Jira and Org-mode")
22187 (description
22188 "This package provides an extension to org-mode for syncing issues with
22189 JIRA issue servers.")
22190 (license license:gpl3+)))
22191
22192 (define-public emacs-systemd-mode
22193 (package
22194 (name "emacs-systemd-mode")
22195 (version "1.6")
22196 (source (origin
22197 (method git-fetch)
22198 (uri (git-reference
22199 (url "https://github.com/holomorph/systemd-mode")
22200 (commit (string-append "v" version))))
22201 (file-name (git-file-name name version))
22202 (sha256
22203 (base32
22204 "0ylgnvpfindg4cxccbqy02ic7p0i9rygf1w16dm1filwhbqvjplq"))))
22205 (build-system emacs-build-system)
22206 (arguments '(#:include '("\\.el$" "\\.txt$")))
22207 (home-page "https://github.com/holomorph/systemd-mode")
22208 (synopsis
22209 "Major mode for editing systemd units")
22210 (description
22211 "Major mode for editing systemd units in GNU Emacs.")
22212 (license license:gpl3+)))
22213
22214 (define-public emacs-ssh-config-mode
22215 (let ((commit "4c1dfa57d452cb5654453bf186c8ff63e1e71b56")
22216 (revision "1"))
22217 (package
22218 (name "emacs-ssh-config-mode")
22219 (version (git-version "8.0" revision commit))
22220 (source
22221 (origin
22222 (method git-fetch)
22223 (uri
22224 (git-reference
22225 (url "https://github.com/jhgorrell/ssh-config-mode-el")
22226 (commit commit)))
22227 (file-name (git-file-name name commit))
22228 (sha256
22229 (base32
22230 "0crglfdazzckizbwzmgl2rn6j85avfzkr1q7ijxd17rp2anvr9bd"))))
22231 (build-system emacs-build-system)
22232 (arguments '(#:include '("\\.el$" "\\.txt$")))
22233 (home-page
22234 "https://github.com/jhgorrell/ssh-config-mode-el")
22235 (synopsis
22236 "Mode for fontification of ~/.ssh/config")
22237 (description
22238 "This package fontifies the ssh config keywords and creates
22239 keybindings for skipping from host section to host section.")
22240 (license license:gpl3+))))
22241
22242 (define-public emacs-ssh-agency
22243 (package
22244 (name "emacs-ssh-agency")
22245 (version "0.4")
22246 (source (origin
22247 (method git-fetch)
22248 (uri (git-reference
22249 (url "https://github.com/magit/ssh-agency")
22250 (commit version)))
22251 (file-name (git-file-name name version))
22252 (sha256
22253 (base32
22254 "0895n7bss4wdydic1gflr03f2cwdyqywl16gvb599lpn288jhwvz"))))
22255 (build-system emacs-build-system)
22256 (propagated-inputs
22257 `(("dash" ,emacs-dash)))
22258 (home-page "https://github.com/magit/ssh-agency")
22259 (synopsis "Manage @code{ssh-agent} from Emacs")
22260 (description
22261 "This package provides functions to startup @code{ssh-agent}, set the
22262 needed environment variables in Emacs, and prompt for passphrases from within
22263 Emacs so that pushes and pulls from @code{magit} will not require entering any
22264 passphrase.
22265
22266 It can also be useful on Unix-like platforms to delay having to enter your
22267 passphrase until the first time you push to a remote.")
22268 (license license:gpl3+)))
22269
22270 (define-public emacs-tao-theme
22271 (let ((commit "c5107fbe7e752f4e58c2d2147ff18a1ebb12937c")
22272 (revision "0"))
22273 (package
22274 (name "emacs-tao-theme")
22275 (version (git-version "0" revision commit))
22276 (source
22277 (origin
22278 (method git-fetch)
22279 (uri (git-reference
22280 (url "https://github.com/11111000000/tao-theme-emacs")
22281 (commit commit)))
22282 (file-name (git-file-name name version))
22283 (sha256
22284 (base32
22285 "07vvlglmkj87hpxz79s3bl2cjn71vain57fdxs7j9vlr5jkchxwn"))))
22286 (build-system emacs-build-system)
22287 (home-page "https://github.com/11111000000/tao-theme-emacs")
22288 (synopsis "Parameterized uncolored color themes for Emacs")
22289 (description
22290 "This package provides two parameterized uncolored color themes for
22291 Emacs: @code{tao-yin} and @code{tao-yang}. The default
22292 @code{tao-theme-scale-fn} is @code{tao-theme-golden-scale}.
22293
22294 You can customize: @code{tao-theme-scale-fn}, that returns 16 2-digit numbers;
22295 @code{tao-theme-scale-filter-fn}, for edge filter; and
22296 @code{tao-theme-use-height}.")
22297 (license license:gpl3+))))
22298
22299 (define-public emacs-almost-mono-themes
22300 (let ((commit "c3a85c1a665530a5d830665969725cdba8eceb75")
22301 (revision "0"))
22302 (package
22303 (name "emacs-almost-mono-themes")
22304 (version (git-version "0" revision commit))
22305 (source
22306 (origin
22307 (method git-fetch)
22308 (uri (git-reference
22309 (url "https://github.com/cryon/almost-mono-themes")
22310 (commit commit)))
22311 (file-name (git-file-name name version))
22312 (sha256
22313 (base32
22314 "034k32xkr5ma415hlkbl35z0jxc4sa1inf87hg3y6lrlfl83fyjh"))))
22315 (build-system emacs-build-system)
22316 (home-page "https://github.com/cryon/almost-mono-themes")
22317 (synopsis "Almost monochromatic themes for emacs in a few variants")
22318 (description
22319 "This package provides a collection of almost monochrome Emacs themes:
22320 @code{almost-mono-black} and @code{almost-mono-white}.")
22321 (license license:gpl3+))))
22322
22323 (define-public emacs-quasi-monochrome
22324 (let ((commit "68060dbbc0bbfe4924387392874186c5a29bb434")
22325 (revision "0"))
22326 (package
22327 (name "emacs-quasi-monochrome")
22328 (version (git-version "1.2" revision commit))
22329 (source
22330 (origin
22331 (method git-fetch)
22332 (uri (git-reference
22333 (url "https://github.com/lbolla/emacs-quasi-monochrome")
22334 (commit commit)))
22335 (file-name (git-file-name name version))
22336 (sha256
22337 (base32
22338 "0zp2xr0bjfqrpb0bqczzick1vvbjmipjavrdi70kw6a9caynvq22"))))
22339 (build-system emacs-build-system)
22340 (home-page "https://github.com/lbolla/emacs-quasi-monochrome")
22341 (synopsis "Dark color theme for Emacs")
22342 (description
22343 "This package provides a dark color theme with a black background, high
22344 contrast and few colors.")
22345 (license license:gpl3+))))
22346
22347 (define-public emacs-doom-themes
22348 (let ((commit "e803fc4ac8cf7118e2d1544d8241b848b5e79e9f")
22349 (revision "5")
22350 (version "2.1.6"))
22351 (package
22352 (name "emacs-doom-themes")
22353 (version (git-version version revision commit))
22354 (source (origin
22355 (method git-fetch)
22356 (uri (git-reference
22357 (url "https://github.com/hlissner/emacs-doom-themes")
22358 (commit commit)))
22359 (file-name (git-file-name name version))
22360 (sha256
22361 (base32 "128hdmf0jkzr12fv2r6z349qiwba6q97hsb6b1n2qlhi0v5v3mfh"))))
22362 (build-system emacs-build-system)
22363 (native-inputs
22364 `(("emacs-ert-runner" ,emacs-ert-runner)))
22365 (arguments
22366 `(#:tests? #t
22367 #:test-command '("ert-runner")
22368 #:modules ((guix build emacs-build-system)
22369 (guix build utils)
22370 (guix build emacs-utils)
22371 (srfi srfi-1))
22372 #:phases
22373 (modify-phases %standard-phases
22374 (add-after 'unpack 'move-themes
22375 (lambda _
22376 ;; Move the source files to the top level, which is in the
22377 ;; EMACSLOADPATH.
22378 (for-each (lambda (f)
22379 (rename-file f (basename f)))
22380 (find-files "./themes" ".*\\.el$"))
22381 #t)))))
22382 (synopsis "Wide collection of color themes for Emacs")
22383 (description "Emacs-doom-themes contains numerous popular color themes for
22384 Emacs that integrate with major modes like Org-mode.")
22385 (home-page "https://github.com/hlissner/emacs-doom-themes")
22386 (license license:expat))))
22387
22388 (define-public emacs-modus-operandi-theme
22389 (package
22390 (name "emacs-modus-operandi-theme")
22391 (version "0.12.0")
22392 (source
22393 (origin
22394 (method url-fetch)
22395 (uri (string-append "https://elpa.gnu.org/packages/"
22396 "modus-operandi-theme-" version ".el"))
22397 (sha256
22398 (base32 "1mllyysn701qfnglxs7n2f6mrzrz55v9hcwspvafc6fl2blr393y"))))
22399 (build-system emacs-build-system)
22400 (home-page "https://gitlab.com/protesilaos/modus-themes")
22401 (synopsis "Accessible light theme (WCAG AAA)")
22402 (description
22403 "Modus operandi is the light version of the Modus accessible themes for
22404 GNU Emacs. The contrast ratio between foreground and background values should
22405 always be greater than 7:1, which conforms with the WCAG AAA accessibility
22406 standard. This is the highest standard of its kind.")
22407 (license license:gpl3+)))
22408
22409 (define-public emacs-modus-vivendi-theme
22410 (package
22411 (name "emacs-modus-vivendi-theme")
22412 (version "0.12.0")
22413 (source
22414 (origin
22415 (method url-fetch)
22416 (uri (string-append "https://elpa.gnu.org/packages/"
22417 "modus-vivendi-theme-" version ".el"))
22418 (sha256
22419 (base32 "01f6z5xjnmki1k9m83jwva42lxidb31pdpwm4wpxjzxqmb96picn"))))
22420 (build-system emacs-build-system)
22421 (home-page "https://gitlab.com/protesilaos/modus-themes")
22422 (synopsis "Accessible dark theme (WCAG AAA)")
22423 (description
22424 "Modus vivendi is the dark version of the Modus accessible themes for GNU
22425 Emacs. The contrast ratio between foreground and background values should
22426 always be greater than 7:1, which conforms with the WCAG AAA accessibility
22427 standard. This is the highest standard of its kind.")
22428 (license license:gpl3+)))
22429
22430 (define-public emacs-modus-themes
22431 (deprecated-package "emacs-modus-themes" emacs-modus-operandi-theme))
22432
22433 (define-public emacs-punpun-theme
22434 (let ((commit "2f78125609277b2478abdebd8f9d5ee10a823b65")
22435 (revision "0"))
22436 (package
22437 (name "emacs-punpun-theme")
22438 (version (git-version "0" revision commit))
22439 (source
22440 (origin
22441 (method git-fetch)
22442 (uri (git-reference
22443 (url "https://github.com/wasamasa/punpun-theme")
22444 (commit commit)))
22445 (file-name (git-file-name name version))
22446 (sha256
22447 (base32
22448 "1sgxrj3igzq86h3whfymxf4qzv9kpvcrlhbvjmnp7fwrplys0n7d"))))
22449 (build-system emacs-build-system)
22450 (home-page "https://github.com/wasamasa/punpun-theme")
22451 (synopsis "Bleak Emacs theme")
22452 (description
22453 "A bleak theme. Uses shades of gray and the occasional splash of
22454 color. Designed for 256-color terminals. Comes in light and dark!")
22455 (license license:gpl3+))))
22456
22457 (define-public emacs-spacemacs-theme
22458 (let ((commit "f79c40fb241e204539fde97200abae91e828e585")
22459 (revision "1"))
22460 (package
22461 (name "emacs-spacemacs-theme")
22462 (version (git-version "0" revision commit)) ;no release yet
22463 (source
22464 (origin
22465 (method git-fetch)
22466 (uri (git-reference
22467 (url "https://github.com/nashamri/spacemacs-theme")
22468 (commit commit)))
22469 (file-name (git-file-name name version))
22470 (sha256
22471 (base32 "1l2kkiyrskkpx8f901v0wrzaah1wjg15zdyv88spj3mh3hwd3b6n"))))
22472 (build-system emacs-build-system)
22473 (home-page "https://github.com/nashamri/spacemacs-theme")
22474 (synopsis
22475 "Light and dark theme for spacemacs that supports GUI and terminal")
22476 (description
22477 "Spacemacs theme is an Emacs color theme that started as
22478 a theme for Spacemacs. The theme comes with dark and light variants
22479 and it should work well with 256 color terminals.")
22480 (license license:gpl3+))))
22481
22482 (define-public emacs-elixir-mode
22483 (package
22484 (name "emacs-elixir-mode")
22485 (version "2.3.1")
22486 (source
22487 (origin
22488 (method git-fetch)
22489 (uri (git-reference
22490 (url "https://github.com/elixir-editors/emacs-elixir")
22491 (commit (string-append "v" version))))
22492 (file-name (git-file-name name version))
22493 (sha256
22494 (base32 "06bi68x49v6f7flpz279mm4jpg31ll3s274givm3pvr8slcxs6xg"))))
22495 (build-system emacs-build-system)
22496 (propagated-inputs
22497 `(("emacs-pkg-info" ,emacs-pkg-info)))
22498 (home-page
22499 "https://github.com/elixir-editors/emacs-elixir")
22500 (synopsis "Major mode for editing Elixir files")
22501 (description
22502 "Elixir-Mode provides font-locking, indentation and navigation support
22503 for the Elixir programming language.")
22504 (license license:gpl3+)))
22505
22506 (define-public emacs-dimmer
22507 (package
22508 (name "emacs-dimmer")
22509 (version "0.4.2")
22510 (source
22511 (origin
22512 (method git-fetch)
22513 (uri (git-reference
22514 (url "https://github.com/gonewest818/dimmer.el")
22515 (commit version)))
22516 (file-name (git-file-name name version))
22517 (sha256
22518 (base32
22519 "0dw0qh5hm1x76s5cqxvylvmjgy0jwy11xm258g6kmx6w1k6r1d2l"))))
22520 (build-system emacs-build-system)
22521 (home-page "https://github.com/gonewest818/dimmer.el")
22522 (synopsis "Visually highlights the selected buffer in Emacs")
22523 (description "Dimmer provides a minor mode that indicates which buffer is
22524 currently active by dimming the faces in the other buffers. It does this
22525 nondestructively, and computes the dimmed faces dynamically such that your
22526 overall color scheme is shown in a muted form without requiring you to define
22527 what is a \"dim\" version of every face.")
22528 (license license:gpl3+)))
22529
22530 (define-public emacs-minibuffer-line
22531 (package
22532 (name "emacs-minibuffer-line")
22533 (version "0.1")
22534 (source
22535 (origin
22536 (method url-fetch)
22537 (uri (string-append
22538 "https://elpa.gnu.org/packages/minibuffer-line-"
22539 version
22540 ".el"))
22541 (sha256
22542 (base32 "1ny4iirp26na5118wfgxlv6fxlrdclzdbd9m0lkrv51w0qw7spil"))))
22543 (build-system emacs-build-system)
22544 (home-page "https://elpa.gnu.org/packages/minibuffer-line.html")
22545 (synopsis "Display status info in the minibuffer window")
22546 (description
22547 "This package lets you display various status information in the
22548 minibuffer window instead of the mode-line. Of course, this is only displayed
22549 when the minibuffer window is not already used for other things (e.g. a
22550 minibuffer or an each area message).
22551
22552 The contents and aspect is controlled by the @code{minibuffer-line-format}
22553 variable and the @code{minibuffer-line} face.")
22554 (license license:gpl3+)))
22555
22556 (define-public emacs-eshell-prompt-extras
22557 (package
22558 (name "emacs-eshell-prompt-extras")
22559 (version "1.0")
22560 (home-page "https://github.com/zwild/eshell-prompt-extras")
22561 (source
22562 (origin
22563 (method git-fetch)
22564 (uri (git-reference
22565 (url home-page)
22566 (commit version)))
22567 (file-name (git-file-name name version))
22568 (sha256
22569 (base32
22570 "0gb07mns23dgqqr6qfy7d6ndizy15sqgbgfaig6k5xbjnwi02v9g"))))
22571 (build-system emacs-build-system)
22572 (synopsis "Display extra information and color for your Eshell prompt")
22573 (description "This library displays various customizable elements for
22574 @code{eshell} prompts: remote user, remote host, python virtual environment
22575 info, git branch, git dirty info and git unpushed number. Multiple themes are
22576 available.")
22577 (license license:gpl3+)))
22578
22579 (define-public emacs-eshell-did-you-mean
22580 (package
22581 (name "emacs-eshell-did-you-mean")
22582 (version "0.1")
22583 (home-page "https://github.com/xuchunyang/eshell-did-you-mean")
22584 (source
22585 (origin
22586 (method git-fetch)
22587 (uri (git-reference
22588 (url home-page)
22589 (commit (string-append "v" version))))
22590 (file-name (git-file-name name version))
22591 (sha256
22592 (base32
22593 "0v0wshck5n4hspcv1zk1g2nm6xiigcjp16lx0dc8wzkl6ymljvbg"))))
22594 (build-system emacs-build-system)
22595 (synopsis "Display suggestions on 'command not found' in Eshell")
22596 (description "This library adds a list of 'Did you mean...' suggestions
22597 when the command was not found in Eshell. The suggestions are found after the
22598 commands that bear resemblance to the input command.")
22599 (license license:gpl3+)))
22600
22601 (define-public emacs-unfill
22602 (package
22603 (name "emacs-unfill")
22604 (version "0.2")
22605 (home-page "https://github.com/purcell/unfill")
22606 (source
22607 (origin
22608 (method git-fetch)
22609 (uri (git-reference
22610 (url home-page)
22611 (commit version)))
22612 (file-name (git-file-name name version))
22613 (sha256
22614 (base32 "0wyradin5igp25nsd3n22i2ppxhmy49ac1iq1w2715v8pfmiydnc"))))
22615 (build-system emacs-build-system)
22616 (synopsis "Inverse of Emacs' @code{fill-paragraph} and @code{fill-region}")
22617 (description
22618 "The functions in this package provide the inverse of Emacs'
22619 @code{fill-paragraph} and @code{fill-region}.")
22620 (license license:gpl3+)))
22621
22622 (define-public emacs-windower
22623 (package
22624 (name "emacs-windower")
22625 (version "0.0.1")
22626 (home-page "https://gitlab.com/ambrevar/emacs-windower")
22627 (source
22628 (origin
22629 (method git-fetch)
22630 (uri (git-reference
22631 (url home-page)
22632 (commit version)))
22633 (file-name (git-file-name name version))
22634 (sha256
22635 (base32 "0h24gb1ip0czfasxm8wwcc3v19g7mznzw2sxkmmfb5iis59p7dfy"))))
22636 (build-system emacs-build-system)
22637 (synopsis "Helper functions for window manipulation in Emacs")
22638 (description
22639 "This package provides helper functions for window manipulation in Emacs,
22640 such as:
22641
22642 @itemize
22643 @item switch to last buffer,
22644 @item toggle single window display,
22645 @item toggle between horizontal and vertical splits,
22646 @item move borders more naturally,
22647 @item swap windows à-la @code{windmove}.
22648 @end itemize")
22649 (license license:gpl3+)))
22650
22651 (define-public emacs-flycheck-cpplint
22652 (let ((commit "1d8a090861572258ab704915263feeb3a436c3d2")
22653 (revision "1"))
22654 (package
22655 (name "emacs-flycheck-cpplint")
22656 (version (git-version "0.1" revision commit))
22657 (source
22658 (origin
22659 (method git-fetch)
22660 (uri (git-reference
22661 (url "https://github.com/flycheck/flycheck-google-cpplint")
22662 (commit commit)))
22663 (file-name (git-file-name name version))
22664 (sha256
22665 (base32 "0l6sg83f6z8x2alnblpv03rj442sbnkkkcbf8i0agjmx3713a5yx"))))
22666 (build-system emacs-build-system)
22667 (arguments
22668 `(#:phases
22669 (modify-phases %standard-phases
22670 (add-after 'unpack 'set-cpplint-path
22671 (lambda _
22672 (substitute* "flycheck-google-cpplint.el"
22673 (("\"cpplint.py\"")
22674 (string-append "\"" (which "cpplint") "\"")))
22675 #t)))))
22676 (inputs
22677 `(("cpplint" ,cpplint)))
22678 (propagated-inputs
22679 `(("flycheck-mode" ,emacs-flycheck)))
22680 (synopsis "Google C++ checker for Flycheck")
22681 (description "This package provides a interface for @code{cpplint} over
22682 Flycheck plugin. @code{cpplint} is a static code checker for C++, following
22683 Google guidelines.")
22684 (home-page "https://github.com/flycheck/flycheck-google-cpplint")
22685 (license license:gpl3+))))
22686
22687 (define-public emacs-helm-fish-completion
22688 (package
22689 (name "emacs-helm-fish-completion")
22690 (version "0.6")
22691 (home-page "https://github.com/emacs-helm/helm-fish-completion")
22692 (source
22693 (origin
22694 (method git-fetch)
22695 (uri (git-reference
22696 (url home-page)
22697 (commit version)))
22698 (file-name (git-file-name name version))
22699 (sha256
22700 (base32 "1j2vfngq3512naaayv9kx0d1q2zg1xgs69l8afc7swg72h0l0imw"))))
22701 (build-system emacs-build-system)
22702 (propagated-inputs
22703 `(("helm" ,emacs-helm)
22704 ("fish-completion" ,emacs-fish-completion)))
22705 (synopsis "Helm interface for Emacs fish-completion")
22706 (description "Helm Fish Completion is a Helm interface for Emacs
22707 fish-completion. It can be used in both Eshell and M-x shell.")
22708 (license license:gpl3+)))
22709
22710 (define-public emacs-telega
22711 ;; This package has versions newer than indicated on MELPA.
22712 ;; Get the current version from `telega-version` in telega.el.
22713 ;; or by running M-x telega-version.
22714 (let ((commit "e53996777570a5bed84d21f6c8defd4f51c8e255")
22715 (revision "0")
22716 (version "0.6.28"))
22717 (package
22718 (name "emacs-telega")
22719 (version (git-version version revision commit))
22720 (source
22721 (origin
22722 (method git-fetch)
22723 (uri (git-reference
22724 (url "https://github.com/zevlg/telega.el")
22725 (commit commit)))
22726 (sha256
22727 (base32
22728 "058x6svgy33lyqjqq0l3byv8bysqig9jmh3kx8shaqr0ypfrjhi3"))
22729 (patches (search-patches
22730 "emacs-telega-patch-server-functions.patch"
22731 "emacs-telega-test-env.patch"))
22732 (file-name (git-file-name name version))))
22733 (build-system gnu-build-system)
22734 (arguments
22735 `(#:modules ((guix build gnu-build-system)
22736 ((guix build emacs-build-system) #:prefix emacs:)
22737 (guix build utils)
22738 (guix build emacs-utils))
22739 #:imported-modules (,@%gnu-build-system-modules
22740 (guix build emacs-build-system)
22741 (guix build emacs-utils))
22742 #:test-target "test"
22743 ;; TODO: Currently tgVOIP is not functional, thus we have disabled it
22744 ;; temporarily.
22745 ;; #:make-flags (list "WITH_VOIP=t")
22746 #:phases
22747 (modify-phases %standard-phases
22748 (add-after 'unpack 'prefix-patch
22749 (lambda _
22750 (substitute* "server/Makefile"
22751 (("CC=cc")
22752 "CC=gcc")
22753 (("INSTALL_PREFIX=\\$\\(HOME\\)/.telega")
22754 (string-append "INSTALL_PREFIX=" (assoc-ref %outputs "out")
22755 "/bin"))
22756 ;; Manually invoke `run_tests.py` after install phase.
22757 (("python3 run_tests.py")
22758 ""))
22759 #t))
22760 (add-after 'check 'telega-paths-patch
22761 (lambda* (#:key inputs #:allow-other-keys)
22762 ;; Hard-code paths to `ffplay` and `ffmpeg`.
22763 (let ((ffplay-bin (string-append (assoc-ref inputs "ffmpeg")
22764 "/bin/ffplay"))
22765 (ffmpeg-bin (string-append (assoc-ref inputs "ffmpeg")
22766 "/bin/ffmpeg")))
22767 (substitute* "telega-ffplay.el"
22768 (("\\(executable-find \"ffplay\"\\)")
22769 (string-append
22770 "(and (file-executable-p \"" ffplay-bin "\")"
22771 "\"" ffplay-bin "\")"))
22772 (("\\(executable-find \"ffmpeg\"\\)")
22773 (string-append
22774 "(and (file-executable-p \"" ffmpeg-bin "\")"
22775 "\"" ffmpeg-bin "\")"))))
22776 ;; Modify telega-util to reflect unique dir name in
22777 ;; `telega-install-data' phase.
22778 (substitute* "telega-util.el"
22779 (("\\(concat \"etc/\" filename\\) telega--lib-directory")
22780 "(concat \"telega-data/\" filename)
22781 (locate-dominating-file telega--lib-directory
22782 \"telega-data\")"))
22783 ;; Modify telega.el to reflect unique dir name in
22784 ;; `telega-install-contrib' phase.
22785 (substitute* "telega.el"
22786 (("\\(push \\(expand-file-name \"contrib\" telega--lib-directory\\) load-path\\)")
22787 "(push (expand-file-name \"telega-contrib\"
22788 (locate-dominating-file telega--lib-directory
22789 \"telega-contrib\")) load-path)"))
22790 #t))
22791 ;; The server test suite has a hardcoded path.
22792 ;; Reset this behavior to use the proper path.
22793 (add-after 'unpack 'server-suite-patch
22794 (lambda _
22795 (substitute* "server/run_tests.py"
22796 (("~/.telega/telega-server")
22797 (string-append (assoc-ref %outputs "out")
22798 "/bin/telega-server")))
22799 #t))
22800 (add-after 'install 'run-server-suite
22801 (lambda _
22802 (invoke "python3" "server/run_tests.py")
22803 #t))
22804 (delete 'configure)
22805 ;; Build emacs-side using `emacs-build-system'
22806 (add-after 'compress-documentation 'emacs-add-source-to-load-path
22807 (assoc-ref emacs:%standard-phases 'add-source-to-load-path))
22808 ;; Manually invoke bytecompilation for the contrib
22809 ;; subdirectory.
22810 (add-after 'emacs-add-source-to-load-path 'emacs-bytecomp-contrib
22811 (lambda _
22812 (substitute* "Makefile"
22813 (("byte-recompile-directory \".\"")
22814 "byte-recompile-directory \"contrib\""))
22815 (invoke "make" "compile")
22816 #t))
22817 (add-after 'emacs-bytecomp-contrib 'emacs-install
22818 (assoc-ref emacs:%standard-phases 'install))
22819 ;; This step installs subdir /etc, which contains images, sounds and
22820 ;; various other data, next to the site-lisp dir.
22821 (add-after 'emacs-install 'telega-install-data
22822 (lambda* (#:key outputs #:allow-other-keys)
22823 (copy-recursively
22824 "etc"
22825 (string-append (assoc-ref outputs "out")
22826 "/share/emacs/telega-data/"))
22827 #t))
22828 (add-after 'emacs-install 'telega-install-contrib
22829 (lambda* (#:key outputs #:allow-other-keys)
22830 (copy-recursively
22831 "contrib"
22832 (string-append (assoc-ref outputs "out")
22833 "/share/emacs/telega-contrib"))
22834 #t))
22835 (add-after 'telega-install-contrib 'emacs-build
22836 (assoc-ref emacs:%standard-phases 'build))
22837 (add-after 'telega-install-contrib 'emacs-make-autoloads
22838 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
22839 (inputs
22840 `(("ffmpeg" ,ffmpeg))) ; mp4/gif support.
22841 (propagated-inputs
22842 `(("emacs-visual-fill-column" ,emacs-visual-fill-column)
22843 ("emacs-company" ,emacs-company)
22844 ("emacs-rainbow-identifiers"
22845 ,emacs-rainbow-identifiers)
22846 ("libwebp" ,libwebp))) ; sticker support.
22847 (native-inputs
22848 `(("tdlib" ,tdlib)
22849 ;; Use Emacs with wide ints on 32-bit architectures.
22850 ("emacs" ,(match (%current-system)
22851 ((or "i686-linux" "armhf-linux")
22852 emacs-wide-int)
22853 (_
22854 emacs)))
22855 ("python" ,python)))
22856 (synopsis "GNU Emacs client for the Telegram messenger")
22857 (description
22858 "Telega is a full-featured, unofficial GNU Emacs-based client for the
22859 Telegram messaging platform.")
22860 (home-page "https://github.com/zevlg/telega.el")
22861 (license license:gpl3+))))
22862
22863 (define-public emacs-doom-modeline
22864 (package
22865 (name "emacs-doom-modeline")
22866 (version "3.0.0")
22867 (source (origin
22868 (method git-fetch)
22869 (uri (git-reference
22870 (url "https://github.com/seagle0128/doom-modeline")
22871 (commit (string-append "v" version))))
22872 (sha256
22873 (base32
22874 "08m75rl5i812pa87zcsjvb4mm3jjhpwzgx9mf2m7sxj807airz5d"))
22875 (file-name (git-file-name name version))))
22876 (build-system emacs-build-system)
22877 (arguments
22878 `(#:test-command '("ert-runner")))
22879 (native-inputs `(("emacs-ert-runner" ,emacs-ert-runner)))
22880 (propagated-inputs
22881 `(("emacs-all-the-icons" ,emacs-all-the-icons)
22882 ("emacs-dash" ,emacs-dash)
22883 ("emacs-shrink-path" ,emacs-shrink-path)))
22884 (synopsis "Fancy and fast mode-line inspired by minimalism design")
22885 (description "Doom modeline is a complete modeline for GNU Emacs inspired
22886 by the Doom theme collection. This modeline features support for mode-specific
22887 icon support, git integration, and several other utilities.")
22888 (home-page "https://github.com/seagle0128/doom-modeline/")
22889 (license license:gpl3+)))
22890
22891 (define-public emacs-shrink-path
22892 (package
22893 (name "emacs-shrink-path")
22894 (version "0.3.1")
22895 (source
22896 (origin
22897 (method git-fetch)
22898 (uri (git-reference
22899 (url "https://gitlab.com/bennya/shrink-path.el.git")
22900 (commit (string-append "v" version))))
22901 (sha256
22902 (base32
22903 "0kx0c4syd7k6ff9j463bib32pz4wq0rzjlg6b0yqnymlzfr1mbki"))
22904 (file-name (git-file-name name version))))
22905 (build-system emacs-build-system)
22906 (propagated-inputs
22907 `(("emacs-s" ,emacs-s)
22908 ("emacs-dash" ,emacs-dash)
22909 ("emacs-f" ,emacs-f)))
22910 (home-page "https://gitlab.com/bennya/shrink-path.el")
22911 (synopsis "Fish-style path truncation in emacs-lisp")
22912 (description "This package provides utility functions that allow for
22913 Fish-style truncated directories in eshell and various modelines.")
22914 (license license:gpl3+)))
22915
22916 (define-public emacs-org-present
22917 (let ((commit "d13acd70eff6a1608bc991920232146a0de76b21"))
22918 (package
22919 (name "emacs-org-present")
22920 (version "0.0.1")
22921 (source
22922 (origin
22923 (method git-fetch)
22924 (uri (git-reference
22925 (url "https://github.com/rlister/org-present")
22926 (commit commit)))
22927 (file-name (git-file-name name version))
22928 (sha256
22929 (base32
22930 "0jz8xiny3rv9ql0p623byz32pip1b82j2c2nyfz2wd114kiabb6q"))))
22931 (build-system emacs-build-system)
22932 (synopsis "Ultra-minimalist presentation minor-mode for Emacs org-mode")
22933 (description "Org-present is an extremely minimalist presentation tool
22934 for Emacs org-mode. Simply layout your presentation with each slide under a
22935 top-level header, start the minor mode with @code{org-present}, and page through
22936 each slide with left/right keys.")
22937 (home-page "https://github.com/rlister/org-present")
22938 (license license:gpl2))))
22939
22940 (define-public emacs-fullframe
22941 (package
22942 (name "emacs-fullframe")
22943 (version "0.5.0")
22944 (source
22945 (origin
22946 (method git-fetch)
22947 (uri (git-reference
22948 (url "https://github.com/tomterl/fullframe")
22949 (commit version)))
22950 (sha256
22951 (base32
22952 "0m43qnhp6ibsskpjkxc86p3lrjsjc0ndqml3lbd65s79x4x7i3fi"))
22953 (file-name (git-file-name name version))))
22954 (build-system emacs-build-system)
22955 (home-page "https://github.com/tomterl/fullframe")
22956 (synopsis "Generalized automatic execution in a single frame")
22957 (description "This library provides helpers for single-window-per-frame
22958 execution of buffer-exposing commands.")
22959 (license license:gpl3+)))
22960
22961 (define-public emacs-eshell-toggle
22962 (let ((commit "ddfbe0a693497c4d4bc5494a19970ba4f6ab9033")
22963 (revision "1"))
22964 (package
22965 (name "emacs-eshell-toggle")
22966 (version (git-version "0.10.0" revision commit))
22967 (source
22968 (origin
22969 (method git-fetch)
22970 (uri (git-reference
22971 (url "https://github.com/4DA/eshell-toggle")
22972 (commit commit)))
22973 (sha256
22974 (base32
22975 "0xqrp8pwbmfxjdqipgpw5nw633mvhjjjm3k3j9sh9xdpmw05hhws"))
22976 (file-name (git-file-name name version))))
22977 (build-system emacs-build-system)
22978 (propagated-inputs
22979 `(("emacs-dash" ,emacs-dash)))
22980 (home-page "https://github.com/4DA/eshell-toggle")
22981 (synopsis "Show and hide an @code{eshell} instance")
22982 (description "This package toggles an @code{eshell} instance for the
22983 current buffer.")
22984 (license license:gpl3+))))
22985
22986 (define-public emacs-repl-toggle
22987 (package
22988 (name "emacs-repl-toggle")
22989 (version "0.6.1")
22990 (source
22991 (origin
22992 (method git-fetch)
22993 (uri (git-reference
22994 (url "https://github.com/tomterl/repl-toggle")
22995 (commit version)))
22996 (sha256
22997 (base32
22998 "12h3xxja3isnhvrqx7m2g7a5d8h68cc85pbqyhiipfxyafyl1yxd"))
22999 (file-name (git-file-name name version))))
23000 (build-system emacs-build-system)
23001 (propagated-inputs
23002 `(("emacs-fullframe" ,emacs-fullframe)))
23003 (home-page "https://github.com/tomterl/repl-toggle")
23004 (synopsis "Switch to and from current major mode's REPL")
23005 (description "This package provides a function to switch to and from a
23006 REPL appropriate to the current major mode.")
23007 (license license:gpl3+)))
23008
23009 (define-public emacs-rime
23010 (package
23011 (name "emacs-rime")
23012 (version "1.0.3")
23013 (source
23014 (origin
23015 (method git-fetch)
23016 (uri (git-reference
23017 (url "https://github.com/DogLooksGood/emacs-rime")
23018 (commit (string-append "v" version))))
23019 (file-name (git-file-name name version))
23020 (sha256
23021 (base32 "08rzkiqwcl8j3i2yyibll5lcsj8720plzm9zfdgmxgkw7vhcyix5"))))
23022 (build-system emacs-build-system)
23023 (arguments
23024 '(#:phases
23025 (modify-phases %standard-phases
23026 (add-after 'unpack 'patch-rime-data-path
23027 (lambda* (#:key inputs #:allow-other-keys)
23028 (make-file-writable "rime.el")
23029 (emacs-substitute-variables "rime.el"
23030 ("rime-share-data-dir"
23031 (string-append (assoc-ref inputs "rime-data")
23032 "/share/rime-data")))
23033 #t))
23034 (add-before 'install 'build-emacs-module
23035 (lambda _
23036 (invoke "make" "lib")))
23037 (add-after 'install 'install-emacs-module
23038 (lambda* (#:key outputs #:allow-other-keys)
23039 (install-file "librime-emacs.so"
23040 (string-append (assoc-ref outputs "out")
23041 "/share/emacs/site-lisp"))
23042 #t)))))
23043 (inputs
23044 `(("librime" ,librime)
23045 ("rime-data" ,rime-data)))
23046 (propagated-inputs
23047 `(("emacs-dash" ,emacs-dash)
23048 ("emacs-popup" ,emacs-popup)
23049 ("emacs-posframe" ,emacs-posframe)))
23050 (home-page "https://github.com/DogLooksGood/emacs-rime")
23051 (synopsis "Rime input method in Emacs")
23052 (description
23053 "Rime is an Emacs input method built upon Rime input method engine.")
23054 (license license:gpl3+)))
23055
23056 (define-public emacs-blackout
23057 (let ((commit "4bac44671fca4c98d96aa94c79946bf4d4baf0ee")
23058 (revision "1"))
23059 (package
23060 (name "emacs-blackout")
23061 (version (git-version "1.0" revision commit))
23062 (source
23063 (origin
23064 (method git-fetch)
23065 (uri (git-reference
23066 (url "https://github.com/raxod502/blackout")
23067 (commit commit)))
23068 (sha256
23069 (base32
23070 "1wnh0nwy6r3a18sy9sqmrwv04vnmaflxy4g7mq8jiyyjijri7l1b"))
23071 (file-name (git-file-name name version))))
23072 (build-system emacs-build-system)
23073 (home-page "https://github.com/raxod502/blackout")
23074 (synopsis "Clean up mode lighters")
23075 (description "This package provides a function for hiding and customizing
23076 display of major and minor modes in the mode line.")
23077 (license license:gpl3+))))
23078
23079 (define-public emacs-ivy-omni-org
23080 (let ((commit "5460a9fc061a4a5ae8372dc8df966ced94abab58")
23081 (revision "1"))
23082 (package
23083 (name "emacs-ivy-omni-org")
23084 (version (git-version "0.2.1" revision commit))
23085 (source
23086 (origin
23087 (method git-fetch)
23088 (uri (git-reference
23089 (url "https://github.com/akirak/ivy-omni-org")
23090 (commit commit)))
23091 (file-name (git-file-name name version))
23092 (sha256
23093 (base32
23094 "1np1f51hc3phkl5w02a9a79gl38ra2d535i784fn4pqaasvm0rq8"))))
23095 (build-system emacs-build-system)
23096 (propagated-inputs
23097 `(("emacs-ivy" ,emacs-ivy)
23098 ("emacs-dash" ,emacs-dash)))
23099 (synopsis "Browse anything in Org mode")
23100 (description "This package allows Org items to be accessed via the Ivy
23101 interface.")
23102 (home-page "https://github.com/akirak/ivy-omni-org")
23103 (license license:gpl3+))))
23104
23105 (define-public emacs-ivy-posframe
23106 (let ((commit "ae9bafe94fe6b77b6fe45766ae6172646f6a5d50"))
23107 (package
23108 (name "emacs-ivy-posframe")
23109 (version (git-version "0.1.0" "1" commit))
23110 (source
23111 (origin
23112 (method git-fetch)
23113 (uri (git-reference
23114 (url "https://github.com/tumashu/ivy-posframe")
23115 (commit commit)))
23116 (file-name (git-file-name name version))
23117 (sha256
23118 (base32
23119 "1j6yns5d7lh2v1nfcznrirl7qicdli9csciqvfgj4gkh72a97pw1"))))
23120 (build-system emacs-build-system)
23121 (propagated-inputs
23122 `(("emacs-posframe" ,emacs-posframe)
23123 ("emacs-ivy" ,emacs-ivy)))
23124 (home-page "https://github.com/tumashu/ivy-posframe")
23125 (synopsis "Pop a posframe (a child frame) to show Ivy candidates")
23126 (description
23127 "This package provides an Emacs Ivy extension, which let Ivy use
23128 posframe to show its candidate menu.")
23129 (license license:gpl3+))))
23130
23131 (define-public emacs-shackle
23132 (let ((commit "7ccbe513852a1d1700b698547efca14b8940319d")
23133 (revision "1"))
23134 (package
23135 (name "emacs-shackle")
23136 (version (git-version "1.0.3" revision commit))
23137 (source
23138 (origin
23139 (method git-fetch)
23140 (uri (git-reference
23141 (url "https://github.com/wasamasa/shackle")
23142 (commit commit)))
23143 (file-name (git-file-name name version))
23144 (sha256
23145 (base32
23146 "0agsp8ia4irr540r898ifhjqp28n1zsq1pilv1kc272spn3qhvp9"))))
23147 (build-system emacs-build-system)
23148 (synopsis "Enforce rules for popups")
23149 (description "This package provides a global minor mode in which users
23150 can specify how popup-displaying functions occupy the screen.")
23151 (home-page "https://github.com/wasamasa/shackle")
23152 (license license:gpl3+))))
23153
23154 (define-public emacs-helm-lacarte
23155 (let ((commit "40a6c449720be521435b6b1da7911af3a0b9dca0")
23156 (revision "1"))
23157 (package
23158 (name "emacs-helm-lacarte")
23159 (version (git-version "0" revision commit))
23160 (source
23161 (origin
23162 (method git-fetch)
23163 (uri (git-reference
23164 (url "https://github.com/emacs-helm/helm-lacarte")
23165 (commit commit)))
23166 (file-name (git-file-name name version))
23167 (sha256
23168 (base32
23169 "0dkfd3lap2v7b4nckzv8v7hczmzwzhbl75haqkra107ln91ldbwc"))))
23170 (build-system emacs-build-system)
23171 (propagated-inputs
23172 `(("emacs-helm" ,emacs-helm)
23173 ("emacs-lacarte" ,emacs-lacarte)))
23174 (synopsis "Helm interface to @code{lacarte.el}")
23175 (description "This package provides a Helm interface to
23176 @code{lacarte.el}, a package that displays mode-specific commands as menu
23177 items.")
23178 (home-page "https://github.com/emacs-helm/helm-lacarte")
23179 (license license:gpl3+))))
23180
23181 (define-public emacs-esh-help
23182 (let ((commit "417673ed18a983930a66a6692dbfb288a995cb80")
23183 (revision "1"))
23184 (package
23185 (name "emacs-esh-help")
23186 (version (git-version "1.0.1" revision commit))
23187 (source
23188 (origin
23189 (method git-fetch)
23190 (uri (git-reference
23191 (url "https://github.com/tom-tan/esh-help")
23192 (commit commit)))
23193 (file-name (git-file-name name version))
23194 (sha256
23195 (base32
23196 "0x7d51a6ljl014zy7mi27vzcqqbcwg9z4drq29fr2ajk82mqhlgd"))))
23197 (build-system emacs-build-system)
23198 (propagated-inputs
23199 `(("emacs-dash" ,emacs-dash)))
23200 (synopsis "Help functions for Eshell")
23201 (description "This package provides a @code{run-help} function inspired
23202 by @code{zsh} as well as @code{eldoc} support.")
23203 (home-page "https://github.com/tom-tan/esh-help")
23204 (license license:gpl3+))))
23205
23206 (define-public emacs-isearch-dabbrev
23207 (let ((commit "1efe7abba4923015cbc2462395deaec5446a9cc8")
23208 (revision "1"))
23209 (package
23210 (name "emacs-isearch-dabbrev")
23211 (version (git-version "0.1" revision commit))
23212 (source
23213 (origin
23214 (method git-fetch)
23215 (uri (git-reference
23216 (url "https://github.com/Dewdrops/isearch-dabbrev")
23217 (commit commit)))
23218 (file-name (git-file-name name version))
23219 (sha256
23220 (base32
23221 "17d0816awadvsw1qc7r0p6ira75jmgxaj9hsk9ypayxsaf6ynyrb"))))
23222 (build-system emacs-build-system)
23223 (synopsis "Use @code{dabbrev} within @code{isearch}")
23224 (description "This package allows @code{dabbrev-expand} to be used
23225 within @code{isearch-mode}.")
23226 (home-page "https://github.com/Dewdrops/isearch-dabbrev")
23227 (license license:gpl3+))))
23228
23229 (define-public emacs-helm-linux-disks
23230 (let ((commit "2cdc8116a08534289eb0dc76461d0f93a0bdf231")
23231 (revision "1"))
23232 (package
23233 (name "emacs-helm-linux-disks")
23234 (version (git-version "0.1" revision commit))
23235 (source
23236 (origin
23237 (method git-fetch)
23238 (uri (git-reference
23239 (url "https://github.com/Akirak/helm-linux-disks")
23240 (commit commit)))
23241 (file-name (git-file-name name version))
23242 (sha256
23243 (base32
23244 "1limw82zd8jz3mhh9rqlmhj4cjhfgybs9argfjid1an3vpyhc85i"))))
23245 (build-system emacs-build-system)
23246 (propagated-inputs
23247 `(("emacs-helm" ,emacs-helm)))
23248 (synopsis "Mount/unmount volumes in Linux via Helm")
23249 (description "This package provides a Helm interface to run operations
23250 on removable volumes in Linux.")
23251 (home-page "https://github.com/Akirak/helm-linux-disks")
23252 (license license:gpl3+))))
23253
23254 (define-public emacs-psession
23255 (let ((commit "3e97267c92b164584e06a6c70ee7491714c7c12c")
23256 (revision "1"))
23257 (package
23258 (name "emacs-psession")
23259 (version (git-version "1.5" revision commit))
23260 (source
23261 (origin
23262 (method git-fetch)
23263 (uri (git-reference
23264 (url "https://github.com/thierryvolpiatto/psession")
23265 (commit commit)))
23266 (file-name (git-file-name name version))
23267 (sha256
23268 (base32
23269 "15frl618393bc891d0yi3mdxzvbq790a86vfvp3dyd5riz4ddg95"))))
23270 (build-system emacs-build-system)
23271 (propagated-inputs
23272 `(("emacs-async" ,emacs-async)))
23273 (synopsis "Persistent save of @code{elisp} objects.")
23274 (description "This package provides minor modes for saving Emacs session
23275 data, including buffers, window configuration, variables, and more.")
23276 (home-page "https://github.com/thierryvolpiatto/psession")
23277 (license license:gpl3+))))
23278
23279 (define-public emacs-parseedn
23280 (package
23281 (name "emacs-parseedn")
23282 (version "0.1.0")
23283 (source
23284 (origin
23285 (method git-fetch)
23286 (uri (git-reference
23287 (url "https://github.com/clojure-emacs/parseedn")
23288 (commit (string-append "v" version))))
23289 (file-name (git-file-name name version))
23290 (sha256
23291 (base32
23292 "11wi3hwcgmy54p6ivpijqm7v0hj6j75a19qk5z779bqfrp79b4pc"))))
23293 (build-system emacs-build-system)
23294 (propagated-inputs
23295 `(("emacs-a" ,emacs-a)
23296 ("emacs-parseclj" ,emacs-parseclj)))
23297 (home-page "https://cider.mx")
23298 (synopsis "EDN parser for Emacs Lisp")
23299 (description
23300 "An Emacs Lisp library for parsing EDN (Clojure) data.
23301 It uses parseclj's shift-reduce parser internally.")
23302 (license license:gpl3+)))
23303
23304 (define-public emacs-parseclj
23305 (package
23306 (name "emacs-parseclj")
23307 (version "0.1.0")
23308 (source
23309 (origin
23310 (method git-fetch)
23311 (uri (git-reference
23312 (url "https://github.com/clojure-emacs/parseclj")
23313 (commit (string-append "v" version))))
23314 (file-name (git-file-name name version))
23315 (sha256
23316 (base32
23317 "03bm5dm4hmkqimv4wqxjjh5814pxysmm7z54bv2rf7zwv1x7dggr"))))
23318 (build-system emacs-build-system)
23319 (propagated-inputs `(("emacs-a" ,emacs-a)))
23320 (home-page "https://cider.mx")
23321 (synopsis "Clojure parser for Emacs Lisp")
23322 (description
23323 "An Emacs Lisp library for parsing Clojure code and EDN data.
23324 It supports several input and output formats, all powered by the
23325 same shift-reduce parser function.")
23326 (license license:gpl3+)))
23327
23328 (define-public emacs-hide-mode-line
23329 (package
23330 (name "emacs-hide-mode-line")
23331 (version "1.0.2")
23332 (source (origin
23333 (method git-fetch)
23334 (uri (git-reference
23335 (url "https://github.com/hlissner/emacs-hide-mode-line")
23336 (commit (string-append "v" version))))
23337 (file-name (git-file-name name version))
23338 (sha256
23339 (base32
23340 "0dfzjgxfkcw4wisbyldsm1km18pfp9j8xgadn6qnsz11l55bpgyp"))))
23341 (build-system emacs-build-system)
23342 (synopsis "Emacs plugin that hides the mode-line")
23343 (description "A minor mode that hides the mode-line in your current
23344 buffer. It can be used to toggle an alternative mode-line, toggle its visibility,
23345 or simply disable the mode-line in buffers where it is not very useful.")
23346 (home-page "https://github.com/hlissner/emacs-hide-mode-line")
23347 (license license:expat)))
23348
23349 (define-public emacs-helm-cider
23350 ;; No new release since March 2018.
23351 (let ((commit "9363cc537f06233345aa3af5cd46aa5681ad607b"))
23352 (package
23353 (name "emacs-helm-cider")
23354 (version (git-version "0.4.0" "1" commit))
23355 (home-page "https://github.com/clojure-emacs/helm-cider")
23356 (source (origin
23357 (method git-fetch)
23358 (uri (git-reference
23359 (url home-page)
23360 (commit commit)))
23361 (file-name (git-file-name name version))
23362 (sha256
23363 (base32
23364 "0vfn4smqba1vsshz48ggkj8gs94la0sxb1sq4shrb41qj2x3dci7"))))
23365 (build-system emacs-build-system)
23366 (propagated-inputs
23367 `(("emacs-helm" ,emacs-helm)
23368 ("emacs-cider" ,emacs-cider)))
23369 (synopsis "Helm interface to Clojure's CIDER")
23370 (description "Helm-CIDER adds Helm interfaces to
23371 @command{cider-apropos}, @command{cider-apropos-documentation},
23372 @command{cider-browse-ns} (namespaces).
23373
23374 It also provides original Helm commands: @command{helm-cider-spec},
23375 @command{helm-cider-spec-ns}, @command{helm-cider-repl-history},
23376 @command{helm-cider-cheatsheet}.")
23377 (license license:gpl3+))))
23378
23379 (define-public emacs-edn
23380 ;; No release since February 2016
23381 (let ((commit "be9e32d1b49e35247b263b0243df7cfdc8d413ab"))
23382 (package
23383 (name "emacs-edn")
23384 (version (git-version "1.1.2" "1" commit))
23385 (home-page "https://github.com/expez/edn.el")
23386 (source (origin
23387 (method git-fetch)
23388 (uri (git-reference
23389 (url home-page)
23390 (commit commit)))
23391 (file-name (git-file-name name version))
23392 (sha256
23393 (base32
23394 "1xp2hjhn52k6l1g6ypva6dsklpawni7gvjafbz6404f9dyxflh7l"))))
23395 (build-system emacs-build-system)
23396 (propagated-inputs
23397 `(("emacs-peg" ,emacs-peg)))
23398 (synopsis "Read and write EDN from Elisp")
23399 (description "This is an Emacs Lisp library for reading and writing the
23400 data format @code{edn}. See @url{https://github.com/edn-format/edn}.")
23401 (license license:gpl3+))))
23402
23403 (define-public emacs-helm-clojuredocs
23404 (let ((commit "5a7f0f2cb401be0b09e73262a1c18265ab9a3cea"))
23405 (package
23406 (name "emacs-helm-clojuredocs")
23407 (version (git-version "0.3" "1" commit))
23408 (home-page "https://github.com/mbuczko/helm-clojuredocs")
23409 (source (origin
23410 (method git-fetch)
23411 (uri (git-reference
23412 (url home-page)
23413 (commit commit)))
23414 (file-name (git-file-name name version))
23415 (sha256
23416 (base32
23417 "015b8zxh91ljhqvn6z43gy08di54xcw9skw0i7frj3d7gk984qhl"))))
23418 (build-system emacs-build-system)
23419 (propagated-inputs
23420 `(("emacs-helm" ,emacs-helm)
23421 ("emacs-edn" ,emacs-edn)))
23422 (synopsis "Search help on clojuredocs.org with Helm")
23423 (description "This package provides a Helm interface to lookup Clojure
23424 documentation on @url{https://clojuredocs.org} with Helm.
23425
23426 Two function are exposed:
23427 @itemize
23428 @item @command{helm-clojuredocs}: opens a Helm session with no initial
23429 pattern. Searching starts with minimal 3 characters entered.
23430 @item @command{helm-clojuredocs-at-point}: opens a Helm session with initial
23431 pattern guessed from thing under current cursor position.
23432 @end itemize\n")
23433 (license license:gpl3+))))
23434
23435 (define-public emacs-helm-selector
23436 (package
23437 (name "emacs-helm-selector")
23438 (version "0.3")
23439 (home-page "https://github.com/emacs-helm/helm-selector")
23440 (source
23441 (origin
23442 (method git-fetch)
23443 (uri (git-reference
23444 (url home-page)
23445 (commit version)))
23446 (file-name (git-file-name name version))
23447 (sha256
23448 (base32
23449 "134rxm4zicn565k3q5q15iiqcvcyiq6lsvmsqr53ifjjbq8pd9y6"))))
23450 (build-system emacs-build-system)
23451 (propagated-inputs
23452 `(("emacs-helm" ,emacs-helm)))
23453 (synopsis "Convenient related-buffer selection for Emacs Helm")
23454 (description "Helm Selector is a collection of Helm helper functions for
23455 convenient buffer selection.
23456
23457 It is especially helpful to create Helm sessions to navigate buffers of a
23458 given mode in a “do what I mean” fashion:
23459
23460 If current buffer is not of mode X, switch to last buffer of mode X. If
23461 current buffer is of mode X, show a Helm session of all buffers in mode X. In
23462 the Helm session, it’s also possible to input an arbitrary name which will be
23463 used for the creation of a new buffer of mode X.")
23464 (license license:gpl3+)))
23465
23466 (define-public emacs-helm-wordnut
23467 (let ((commit "9681a9535a839cd5d042c302945ae595852fe7bf"))
23468 (package
23469 (name "emacs-helm-wordnut")
23470 (version (git-version "0.1" "1" commit))
23471 (home-page "https://github.com/emacs-helm/helm-wordnut")
23472 (source
23473 (origin
23474 (method git-fetch)
23475 (uri (git-reference
23476 (url home-page)
23477 (commit commit)))
23478 (file-name (git-file-name name version))
23479 (sha256
23480 (base32
23481 "0msj7nbsb363pxamxi7n2z08cp5jizkpjbwia8f5a161wjglrihs"))))
23482 (build-system emacs-build-system)
23483 (inputs
23484 `(("wordnet" ,wordnet)))
23485 (propagated-inputs
23486 `(("emacs-helm" ,emacs-helm)))
23487 (arguments
23488 `(#:phases
23489 (modify-phases %standard-phases
23490 (add-after 'unpack 'configure
23491 (lambda* (#:key inputs #:allow-other-keys)
23492 (let ((wn (assoc-ref inputs "wordnet")))
23493 ;; .el is read-only in git.
23494 (chmod "helm-wordnut.el" #o644)
23495 ;; Specify the absolute file names of the various
23496 ;; programs so that everything works out-of-the-box.
23497 (emacs-substitute-variables "helm-wordnut.el"
23498 ("helm-wordnut-prog" (string-append wn "/bin/wn"))
23499 ("helm-wordnut-wordnet-location"
23500 (string-append wn "/dict")))))))))
23501 (synopsis "Emacs Helm interface for Wordnet")
23502 (description "This package is merely a combination of two other Emacs
23503 packages: @code{helm-wordnet} and @code{wordnut}. It features word completion
23504 with Helm and displays a buffer of all the different result types available to
23505 Wordnet.")
23506 (license license:gpl3+))))
23507
23508 (define-public emacs-metal-mercury-mode
23509 (let ((commit "99e2d8fb7177cae3bfa2dec2910fc28216d5f5a8")
23510 (revision "1")
23511 (version "0.0.0"))
23512 (package
23513 (name "emacs-metal-mercury-mode")
23514 (version (git-version version revision commit))
23515 (source
23516 (origin
23517 (method git-fetch)
23518 (uri (git-reference
23519 (url "https://github.com/ahungry/metal-mercury-mode")
23520 (commit commit)))
23521 (sha256
23522 (base32
23523 "0iil5k3rgifz2vqwsy12rbv5rzyvidq4sgwazsb2hzys8xynmfn5"))
23524 (file-name (git-file-name name version))))
23525 (build-system emacs-build-system)
23526 (propagated-inputs
23527 `(("emacs-dash" ,emacs-dash)))
23528 (synopsis "Major mode for editing Mercury files")
23529 (description
23530 "Major mode for editing Mercury files. This is a rewrite of the original
23531 mercury-mode provided by Emacs as a wrapper around prolog-mode.")
23532 (home-page "https://github.com/ahungry/metal-mercury-mode")
23533 (license license:gpl3+))))
23534
23535 (define-public emacs-boxquote
23536 ;; The following commit is 2.1 release with a switch to GPL3+ license.
23537 (let ((commit "7e47e0e2853bc1215739b2e28f260e9eed93b2c5")
23538 (revision "0"))
23539 (package
23540 (name "emacs-boxquote")
23541 (version (git-version "2.1" revision commit))
23542 (source
23543 (origin
23544 (method git-fetch)
23545 (uri (git-reference
23546 (url "https://github.com/davep/boxquote.el")
23547 (commit commit)))
23548 (file-name (git-file-name name version))
23549 (sha256
23550 (base32 "1aqhg24gajvllbqxb0zxrnx6sddas37k2ldfinqyszd856sjhsg3"))))
23551 (build-system emacs-build-system)
23552 (home-page "https://github.com/davep/boxquote.el")
23553 (synopsis "Quote text with different kinds of boxes")
23554 (description "@code{boxquote} provides a set of functions for using
23555 a text quoting style that partially boxes in the left hand side of an area of
23556 text, such a marking style might be used to show externally included text or
23557 example code.")
23558 (license license:gpl3+))))
23559
23560 (define-public emacs-buffer-move
23561 (package
23562 (name "emacs-buffer-move")
23563 (version "0.6.2")
23564 (source
23565 (origin
23566 (method git-fetch)
23567 (uri (git-reference
23568 (url "https://github.com/lukhas/buffer-move")
23569 (commit version)))
23570 (file-name (git-file-name name version))
23571 (sha256
23572 (base32 "0xdks4jfqyhkh34y48iq3gz8swp0f526kwnaai5mhgvazvs4za8c"))))
23573 (build-system emacs-build-system)
23574 (home-page "https://github.com/lukhas/buffer-move")
23575 (synopsis "Functions for moving Emacs' buffers around")
23576 (description
23577 "This package define functions for swapping buffers between windows
23578 contained in the same frame. An alternate behavior is to have the current
23579 window switch to the previous buffer instead of swapping with the other
23580 window.")
23581 (license license:gpl3+)))
23582
23583 (define-public emacs-company-ebdb
23584 (package
23585 (name "emacs-company-ebdb")
23586 (version "1.1")
23587 (source
23588 (origin
23589 (method url-fetch)
23590 (uri (string-append "https://elpa.gnu.org/packages/"
23591 "company-ebdb-" version ".el"))
23592 (sha256
23593 (base32 "146qpiigz12zp1823ggxfrx090g0mxs7gz1ba7sa0iq6ibgzwwm9"))))
23594 (build-system emacs-build-system)
23595 (propagated-inputs
23596 `(("emacs-company" ,emacs-company)))
23597 (home-page "https://elpa.gnu.org/packages/company-ebdb.html")
23598 (synopsis "Company completion backend for EBDB in Message mode")
23599 (description "@code{company-ebdb} provides Company mode integration for
23600 EBDB. It is copied more or less intact from @code{company-bbdb}, originally
23601 by Jan Tatarik.")
23602 (license license:gpl3+)))
23603
23604 (define-public emacs-mwim
23605 ;; Use the latest commit not in a release version as of yet, since it
23606 ;; contains a bug fix for the cases where `comment-start-skip' is nil.
23607 (let ((commit "b4f3edb4c0fb8f8b71cecbf8095c2c25a8ffbf85")
23608 (revision "0"))
23609 (package
23610 (name "emacs-mwim")
23611 (version (git-version "0.4" revision commit))
23612 (source
23613 (origin
23614 (method git-fetch)
23615 (uri (git-reference
23616 (url "https://github.com/alezost/mwim.el")
23617 (commit commit)))
23618 (file-name (git-file-name name version))
23619 (sha256
23620 (base32 "0l3k611gp9g2x2vfmh92wnhnda81dslpwwpb8mxmzk308man77ya"))))
23621 (build-system emacs-build-system)
23622 (home-page "https://github.com/alezost/mwim.el")
23623 (synopsis "Move to the beginning/end of line, code or comment")
23624 (description "@code{mwim} provides several commands to switch between
23625 various line positions, like moving to the beginning/end of code, line, or
23626 comment.")
23627 (license license:gpl3+))))
23628
23629 (define-public emacs-delight
23630 (package
23631 (name "emacs-delight")
23632 (version "1.7")
23633 (source
23634 (origin
23635 (method url-fetch)
23636 (uri (string-append "https://elpa.gnu.org/packages/"
23637 "delight-" version ".el"))
23638 (sha256
23639 (base32 "0pihsghrf9xnd1kqlq48qmjcmp5ra95wwwgrb3l8m1wagmmc0bi1"))))
23640 (build-system emacs-build-system)
23641 (home-page "https://elpa.gnu.org/packages/delight.html")
23642 (synopsis "Dimmer switch for your mode-line lighter text")
23643 (description "@code{delight} enables customizing or hiding the
23644 mode-line text (lighter) of major and minor modes.")
23645 (license license:gpl3+)))
23646
23647 (define-public emacs-unkillable-scratch
23648 ;; Use the latest (unreleased) commit as of now, since it contains a handy
23649 ;; `unkillable-scratch-do-not-reset-scratch-buffer' customization to not
23650 ;; repopulate the scratch buffer with `initial-scratch-message'.
23651 (let ((commit "b24c2a760529833f230c14cb02ff6e7ec92288ab")
23652 (revision "0"))
23653 (package
23654 (name "emacs-unkillable-scratch")
23655 (version (git-version "1.0.0" revision commit))
23656 (source
23657 (origin
23658 (method git-fetch)
23659 (uri (git-reference
23660 (url "https://github.com/EricCrosson/unkillable-scratch")
23661 (commit commit)))
23662 (file-name (git-file-name name version))
23663 (sha256
23664 (base32 "13wjbcxr3km4s96yhpavgs5acs5pvqv3ih1p84diqb3x3i6wd4pa"))))
23665 (build-system emacs-build-system)
23666 (home-page "https://github.com/EricCrosson/unkillable-scratch")
23667 (synopsis "Prevents the *scratch* buffer from being killed")
23668 (description "@code{unkillable-scratch} helps prevent killing buffers
23669 matching a given regexp.")
23670 (license license:gpl2+))))
23671
23672 (define-public emacs-switch-buffer-functions
23673 (package
23674 (name "emacs-switch-buffer-functions")
23675 (version "0.0.1")
23676 (source
23677 (origin
23678 (method git-fetch)
23679 (uri (git-reference
23680 (url "https://github.com/10sr/switch-buffer-functions-el")
23681 (commit (string-append "v" version))))
23682 (file-name (git-file-name name version))
23683 (sha256
23684 (base32 "0pq53b8wrjbrxd5hnrcdi0z7mffp4bax55hn90k9ca3j76lhbn1k"))))
23685 (build-system emacs-build-system)
23686 (home-page "https://github.com/10sr/switch-buffer-functions-el")
23687 (synopsis "Hooks run when switching current buffer")
23688 (description "This package provides a hook variable
23689 @code{switch-buffer-functions}. The hooks will be run when the current buffer
23690 is changed after an interactive command, i.e., when @code{post-command-hook}
23691 hooks are run. The hooked functions will be called with both the previous and
23692 the current buffer.")
23693 (license license:unlicense)))
23694
23695 (define-public emacs-erc-scrolltoplace
23696 (package
23697 (name "emacs-erc-scrolltoplace")
23698 (version "0.1.0")
23699 (source
23700 (origin
23701 (method git-fetch)
23702 (uri (git-reference
23703 (url "https://gitlab.com/jgkamat/erc-scrolltoplace.git")
23704 (commit version)))
23705 (file-name (git-file-name name version))
23706 (sha256
23707 (base32 "11zpqwh1mlfifbgnvhc63bvnhg340jgxssm3m43hr1sxsyb52lh6"))))
23708 (build-system emacs-build-system)
23709 (propagated-inputs
23710 `(("emacs-switch-buffer-functions" ,emacs-switch-buffer-functions)))
23711 (home-page "https://gitlab.com/jgkamat/erc-scrolltoplace")
23712 (synopsis "ERC module to replace scrolltobottom while using keep-place")
23713 (description "@code{erc-scrolltoplace} is an ERC module to try
23714 to emulate @code{scrolltobottom} while @code{keep-place} is enabled.")
23715 (license license:gpl3+)))
23716
23717 (define-public emacs-dmenu
23718 ;; Use the latest commit, as there are no tagged releases.
23719 (let ((commit "e8cc9b27c79d3ecc252267c082ab8e9c82eab264")
23720 (revision "0"))
23721 (package
23722 (name "emacs-dmenu")
23723 (version (git-version "0.1" revision commit))
23724 (source
23725 (origin
23726 (method git-fetch)
23727 (uri (git-reference
23728 (url "https://github.com/lujun9972/el-dmenu")
23729 (commit commit)))
23730 (file-name (git-file-name name version))
23731 (sha256
23732 (base32 "098ncygms1r33zhjlq4fj2p4jc91v5whqrm3fazzdk7sd6dilf25"))))
23733 (build-system emacs-build-system)
23734 (home-page "https://github.com/lujun9972/el-dmenu")
23735 (synopsis "Simulate the @command{dmenu} command line program")
23736 (description "This package provides a @command{dmenu} command for
23737 launching other commands/applications from within Emacs, similar to the
23738 @command{dmenu} program. This is especially useful when using EXWM.")
23739 (license license:gpl3+))))
23740
23741 (define-public emacs-no-littering
23742 (package
23743 (name "emacs-no-littering")
23744 (version "1.0.3")
23745 (source
23746 (origin
23747 (method git-fetch)
23748 (uri (git-reference
23749 (url "https://github.com/emacscollective/no-littering")
23750 (commit (string-append "v" version))))
23751 (file-name (git-file-name name version))
23752 (sha256
23753 (base32 "17is06l0w6glppabv2kaclrnqi3dqb6p6alpslpg7lrjd8vd45ir"))))
23754 (build-system emacs-build-system)
23755 (home-page "https://github.com/emacscollective/no-littering")
23756 (synopsis "Help keep ~/.emacs.d/ clean")
23757 (description "The default paths used to store configuration files and
23758 persistent data are not consistent across Emacs packages, be them built-in or
23759 third-party ones. @code{no-littering} sets out to help clean
23760 @file{~/.emacs.d/} by putting configuration files and persistent data files in
23761 two user-defined directories, as well as using more descriptive names for
23762 files and subdirectories when appropriate.")
23763 (license license:gpl3+)))
23764
23765 (define-public emacs-meson-mode
23766 (package
23767 (name "emacs-meson-mode")
23768 (version "0.2")
23769 (source
23770 (origin
23771 (method git-fetch)
23772 (uri (git-reference
23773 (url "https://github.com/wentasah/meson-mode")
23774 (commit (string-append "v" version))))
23775 (file-name (git-file-name name version))
23776 (sha256
23777 (base32 "1720b3hpfqd989zrgcns51jbjrv4vzl9di9mccl55vkmkbqzfin0"))))
23778 (build-system emacs-build-system)
23779 (home-page "https://github.com/wentasah/meson-mode")
23780 (synopsis "Major mode for Meson build system files")
23781 (description
23782 "This is an Emacs major mode for Meson build system files. Syntax
23783 highlighting works reliably. Indentation works too, but there are probably
23784 cases where it breaks.")
23785 (license license:gpl3+)))
23786
23787 (define-public emacs-message-x
23788 ;; Use the latest commit, as there are no tagged releases.
23789 (let ((commit "5524de7bbfdd8749c110f48de5afb024d9f83133")
23790 (revision "0"))
23791 (package
23792 (name "emacs-message-x")
23793 (version (git-version "1.23" revision commit))
23794 (source
23795 (origin
23796 (method git-fetch)
23797 (uri (git-reference
23798 (url "https://github.com/emacsmirror/message-x")
23799 (commit commit)))
23800 (file-name (git-file-name name version))
23801 (sha256
23802 (base32 "0qy1xf11j357lsnbb829hnbg7fq1cii4cx54fwf0wgjh1bv2abvj"))))
23803 (build-system emacs-build-system)
23804 (home-page "https://www.emacswiki.org/emacs/message-x.el")
23805 (synopsis "Customizable completion in message headers")
23806 (description "@code{message-x} assigns a context-sensitive function to
23807 the TAB key in Message mode. When on a header line, it performs completion
23808 based on which header we are in (for example, newsgroup name completion makes
23809 sense on the @samp{Newsgroups} header, whereas mail alias expansion makes
23810 sense in the @samp{To} and @samp{Cc} headers). When in the message body, this
23811 executes a different function (default: @code{indent-relative}).")
23812 (license license:gpl2+))))
23813
23814 (define-public emacs-glsl-mode
23815 ;; No tag, version grabbed from source .el file.
23816 (let ((commit "b07112016436d9634cd4ef747f9af6b01366d136")
23817 (revision "0"))
23818 (package
23819 (name "emacs-glsl-mode")
23820 (version (git-version "2.4" revision commit))
23821 (source
23822 (origin
23823 (method git-fetch)
23824 (uri (git-reference
23825 (url "https://github.com/jimhourihan/glsl-mode")
23826 (commit commit)))
23827 (file-name (git-file-name name version))
23828 (sha256
23829 (base32 "0bav9ipfm0vy26n74ngsmjzc7fsyqz6xmriadzx55s44h8p5dn1s"))))
23830 (build-system emacs-build-system)
23831 (home-page "https://github.com/jimhourihan/glsl-mode")
23832 (synopsis "Major mode for Open GLSL shader files")
23833 (description
23834 "This package provides a major mode for editing OpenGLSL grammar files,
23835 usually files ending with @file{.vert}, @file{.frag}, @file{.glsl} or
23836 @file{.geom}. It is based on C mode plus some features and pre-specified
23837 fontifications.")
23838 (license license:gpl3+))))
23839
23840 (define-public emacs-gnus-harvest
23841 (let ((commit "feda071a87b799bd5d23cacde3ee71f0b166e75d")
23842 (revision "0"))
23843 (package
23844 (name "emacs-gnus-harvest")
23845 (version (git-version "1.0" revision commit))
23846 (source
23847 (origin
23848 (method git-fetch)
23849 (uri (git-reference
23850 (url "https://github.com/jwiegley/gnus-harvest")
23851 (commit commit)))
23852 (file-name (git-file-name name version))
23853 (sha256
23854 (base32 "08zb7vc3v3wdxkzgi902vlc5ybfvm8fxrvm5drnwfsjj9873pbcb"))))
23855 (build-system emacs-build-system)
23856 (inputs
23857 `(("sqlite" ,sqlite)))
23858 (arguments
23859 `(#:phases
23860 (modify-phases %standard-phases
23861 (add-before 'build 'patch-exec-paths
23862 (lambda* (#:key inputs #:allow-other-keys)
23863 (let ((sqlite (assoc-ref inputs "sqlite"))
23864 (file "gnus-harvest.el"))
23865 (make-file-writable file)
23866 (emacs-substitute-variables file
23867 ("gnus-harvest-sqlite-program"
23868 (string-append sqlite "/bin/sqlite3"))))
23869 #t)))))
23870 (home-page "https://github.com/jwiegley/gnus-harvest")
23871 (synopsis
23872 "Harvest email addresses from read/written Gnus articles")
23873 (description "@code{gnus-harvest} notices email address in every message
23874 or post you read or write, and collects them in a SQLite database, which can
23875 be easily and quickly queried to determine the completion list. It optionally
23876 uses BBDB and Message-X.")
23877 (license license:gpl3+))))
23878
23879 (define-public emacs-auto-dictionary-mode
23880 (package
23881 (name "emacs-auto-dictionary-mode")
23882 (version "1.1")
23883 (source
23884 (origin
23885 (method git-fetch)
23886 (uri (git-reference
23887 (url "https://github.com/nschum/auto-dictionary-mode")
23888 (commit version)))
23889 (file-name (git-file-name name version))
23890 (sha256
23891 (base32 "191294k92qp8gmfypf0q8j8qrym96aqikzvyb9p03wqvbr3r1dsk"))))
23892 (build-system emacs-build-system)
23893 (home-page "http://nschum.de/src/emacs/auto-dictionary/")
23894 (synopsis "Automatic dictionary switcher for Emacs spell checking")
23895 (description "@code{auto-dictionary} is a minor mode that hooks into
23896 Flyspell's on-the-fly spell checking and extends these checks to also detect
23897 language. Auto-dictionary then sets @code{ispell-dictionary} to use the
23898 detected language.")
23899 (license license:gpl2+)))
23900
23901 (define-public emacs-persist
23902 (package
23903 (name "emacs-persist")
23904 (version "0.4")
23905 (source
23906 (origin
23907 (method url-fetch)
23908 (uri (string-append "https://elpa.gnu.org/packages/"
23909 "persist-" version ".tar"))
23910 (sha256
23911 (base32 "0gpxy41qawzss2526j9a7lys60vqma1lvamn4bfabwza7gfhac0q"))))
23912 (build-system emacs-build-system)
23913 (home-page "http://elpa.gnu.org/packages/persist.html")
23914 (synopsis "Persist variables between Emacs sessions")
23915 (description
23916 "This package provides variables which persist across sessions.
23917 Values are stored in a directory in @code{user-emacs-directory}, using
23918 one file per value. This makes it easy to delete or remove unused
23919 variables.")
23920 (license license:gpl3+)))
23921
23922 (define-public emacs-company-emoji
23923 (package
23924 (name "emacs-company-emoji")
23925 (version "2.5.2")
23926 (source
23927 (origin
23928 (method git-fetch)
23929 (uri (git-reference
23930 (url "https://github.com/dunn/company-emoji/")
23931 (commit version)))
23932 (file-name (git-file-name name version))
23933 (sha256
23934 (base32 "0r9zcbm3nb3zw5cwrkl098v5b49jbga5404bj7j55g6k4rwkjar2"))))
23935 (build-system emacs-build-system)
23936 (propagated-inputs
23937 `(("emacs-company" ,emacs-company)))
23938 (home-page "https://github.com/dunn/company-emoji/")
23939 (synopsis "Company completion back-end for emoji")
23940 (description
23941 "This library is a Company back-end providing auto-completion for
23942 emoji.")
23943 (license license:gpl3+)))
23944
23945 (define-public emacs-exiftool
23946 (package
23947 (name "emacs-exiftool")
23948 (version "0.3.2")
23949 (source
23950 (origin
23951 (method git-fetch)
23952 (uri (git-reference
23953 (url "https://git.systemreboot.net/exiftool.el/")
23954 (commit (string-append "v" version))))
23955 (file-name (git-file-name name version))
23956 (sha256
23957 (base32
23958 "0bv58is66cz21yhc0qqkp1z4nk13zfi2l7i6pjbhyi0g1n88qqyv"))))
23959 (build-system emacs-build-system)
23960 (arguments
23961 `(#:tests? #t
23962 #:test-command '("make" "-C" "tests")
23963 #:phases
23964 (modify-phases %standard-phases
23965 (add-after 'unpack 'configure
23966 (lambda* (#:key inputs #:allow-other-keys)
23967 (make-file-writable "exiftool.el")
23968 (emacs-substitute-variables "exiftool.el"
23969 ("exiftool-executable"
23970 (string-append (assoc-ref inputs "perl-image-exiftool")
23971 "/bin/exiftool")))
23972 #t)))))
23973 (inputs
23974 `(("perl-image-exiftool" ,perl-image-exiftool)))
23975 (home-page "https://git.systemreboot.net/exiftool.el/about/")
23976 (synopsis "Elisp wrapper around ExifTool")
23977 (description "@code{emacs-exiftool} is an Elisp wrapper around ExifTool.
23978 ExifTool supports reading and writing metadata in various formats including
23979 EXIF, XMP and IPTC.")
23980 (license license:gpl3+)))
23981
23982 (define-public emacs-password-generator
23983 (package
23984 (name "emacs-password-generator")
23985 (version "1.01")
23986 (home-page "https://github.com/zargener/emacs-password-genarator")
23987 (source
23988 (origin
23989 (method git-fetch)
23990 (uri (git-reference
23991 (url home-page)
23992 (commit "904cdb591a04305ba882ce19e1d117f5fa60f7d3")))
23993 (file-name (git-file-name name version))
23994 (sha256
23995 (base32
23996 "1qgvn79qz1h8ykm5i1qv2fja4v2y0g2i0n5sf7byhnqhqlwn63nv"))))
23997 (build-system emacs-build-system)
23998 (synopsis "Generate passwords inside Emacs")
23999 (description "@code{emacs-password-generator} provides simple functions to
24000 generate random passwords and insert them into the current buffer. It also
24001 supports generation of phonetic and numeric passwords.")
24002 (license license:artistic2.0)))
24003
24004 (define-public emacs-csv
24005 (package
24006 (name "emacs-csv")
24007 (version "2.1")
24008 (home-page "https://gitlab.com/u11/csv.el")
24009 (source
24010 (origin
24011 (method git-fetch)
24012 (uri (git-reference
24013 (url home-page)
24014 (commit (string-append "V" version))))
24015 (file-name (git-file-name name version))
24016 (sha256
24017 (base32
24018 "1vmazjrfcsa9aa9aw8bq5sazdhqvhxyj837dyw5lmh8gk7z0xdaa"))))
24019 (build-system emacs-build-system)
24020 (synopsis "Elisp functions for reading and parsing CSV files")
24021 (description
24022 "@code{csv.el} provides functions for reading and parsing @acronym{CSV,
24023 Comma-Separated Values} files. It follows the format as defined in RFC 4180
24024 @emph{Common Format and MIME Type for CSV
24025 Files} (@url{http://tools.ietf.org/html/rfc4180}).")
24026 (license license:gpl3+)))
24027
24028 (define-public emacs-org-journal
24029 (package
24030 (name "emacs-org-journal")
24031 (version "2.0.0")
24032 (source
24033 (origin
24034 (method git-fetch)
24035 (uri (git-reference
24036 (url "https://github.com/bastibe/org-journal")
24037 (commit version)))
24038 (file-name (git-file-name name version))
24039 (sha256
24040 (base32 "18dqd0jy2x530lk0h4fcn9cld9qh4w7b3vxa60fpiia628vsv1dg"))))
24041 (build-system emacs-build-system)
24042 (home-page "https://github.com/bastibe/org-journal")
24043 (synopsis "Simple Org mode journaling mode")
24044 (description
24045 "Org Journal is a set of functions to maintain a simple personal diary /
24046 journal using in Emacs, adapted from
24047 @url{https://www.emacswiki.org/emacs/PersonalDiary}. Convenient bindings
24048 allow the creation of journal records in the current daily, weekly, monthly or
24049 yearly file and search within all records or specified time intervals. All
24050 records can be browsed and searched from the Emacs Calendar for convenience.
24051 All entries in a specified TODO state will be carried over to the next day.")
24052 (license license:bsd-3)))
24053
24054 (define-public emacs-org-static-blog
24055 (package
24056 (name "emacs-org-static-blog")
24057 (version "1.3.0")
24058 (source
24059 (origin
24060 (method git-fetch)
24061 (uri (git-reference
24062 (url "https://github.com/bastibe/org-static-blog")
24063 (commit version)))
24064 (file-name (git-file-name name version))
24065 (sha256
24066 (base32 "15iy3z8rglaqbx1fz14inh18ksgjsmq30b8hyv3lgjvcc9ssaiw0"))))
24067 (build-system emacs-build-system)
24068 (home-page "https://github.com/bastibe/org-static-blog")
24069 (synopsis
24070 "Simple Org mode based static blog generator")
24071 (description
24072 "@code{emacs-org-static-blog} is one more static blog generator, it
24073 focuses on being simple. All files are simple Org files in a directory. The
24074 only requirement is that every Org file must have a @samp{title} and
24075 a @samp{date} keywords, and optionally, a @samp{filetags} keyword.")
24076 (license license:bsd-3)))
24077
24078 (define-public emacs-ddskk
24079 ;; XXX: Upstream adds code names to their release tags, so version and code
24080 ;; name below need to be updated together.
24081 (let ((version "16.3")
24082 (code-name "Kutomatsunai"))
24083 (package
24084 (name "emacs-ddskk")
24085 (version version)
24086 (source
24087 (origin
24088 (method git-fetch)
24089 (uri (git-reference
24090 (url "https://github.com/skk-dev/ddskk")
24091 (commit (string-append "ddskk-" version "_" code-name))))
24092 (file-name (git-file-name name version))
24093 (sha256
24094 (base32 "0ln4x8f35z5y3kf9m718g223bn3lzcmw40jfjg2j5yi24ydf1wm9"))))
24095 (build-system gnu-build-system)
24096 (arguments
24097 `(#:modules ((guix build gnu-build-system)
24098 (guix build utils)
24099 (guix build emacs-utils))
24100 #:imported-modules (,@%gnu-build-system-modules
24101 (guix build emacs-utils))
24102 #:test-target "test"
24103 #:phases
24104 (modify-phases %standard-phases
24105 (replace 'configure
24106 (lambda* (#:key outputs #:allow-other-keys)
24107 (make-file-writable "SKK-MK")
24108 (emacs-substitute-variables "SKK-MK"
24109 ("PREFIX" (assoc-ref outputs "out"))
24110 ("LISPDIR" '(expand-file-name "/share/emacs/site-lisp" PREFIX))
24111 ("SKK_PREFIX" "")
24112 ("SKK_INFODIR" '(expand-file-name "info" PREFIX)))
24113 (for-each make-file-writable (find-files "./doc"))
24114 #t)))))
24115 (native-inputs
24116 `(("emacs-minimal" ,emacs-minimal)))
24117 (home-page "https://github.com/skk-dev/ddskk")
24118 (synopsis "Simple Kana to Kanji conversion program")
24119 (description
24120 "Daredevil SKK is a version of @acronym{SKK, Simple Kana to Kanji
24121 conversion program}, a Japanese input method on Emacs.")
24122 (license license:gpl2+))))
24123
24124 (define-public emacs-objed
24125 (package
24126 (name "emacs-objed")
24127 (version "0.8.3")
24128 (source
24129 (origin
24130 (method url-fetch)
24131 (uri (string-append
24132 "https://elpa.gnu.org/packages/objed-" version ".tar"))
24133 (sha256
24134 (base32
24135 "1s38d6bvggdk5p45ww1jb4gxifzgjwgw1m6ar920nlg0j4fgbcvr"))))
24136 (build-system emacs-build-system)
24137 (home-page "https://github.com/clemera/objed")
24138 (synopsis "Navigate and edit text objects")
24139 (description
24140 "@code{emacs-objed} allows navigating and editing text objects. It
24141 enables modal editing and composition of commands, too. It combines ideas of
24142 other Editors like Vim or Kakoune and tries to align them with regular Emacs
24143 conventions.")
24144 (license license:gpl3+)))
24145
24146 (define-public emacs-haskell-snippets
24147 ;; The commit below is 5 commits ahead of release, and includes a build fix.
24148 (let ((commit "07b0f460b946fd1be26c29652cb0468b47782f3a"))
24149 (package
24150 (name "emacs-haskell-snippets")
24151 (version (git-version "0.1.0" "0" commit))
24152 (source
24153 (origin
24154 (method git-fetch)
24155 (uri
24156 (git-reference
24157 (url "https://github.com/haskell/haskell-snippets")
24158 (commit commit)))
24159 (file-name (git-file-name name version))
24160 (sha256
24161 (base32 "0a7y3awi9hcyahggf0ghsdwvsmrhr9yq634wy9lkqjzrm2hqj0ci"))))
24162 (build-system emacs-build-system)
24163 (arguments
24164 `(#:phases
24165 (modify-phases %standard-phases
24166 (add-after 'install 'install-snippets
24167 (lambda* (#:key outputs #:allow-other-keys)
24168 (let* ((out (assoc-ref outputs "out"))
24169 (snippets
24170 (string-append
24171 out "/share/emacs/site-lisp/snippets/haskell-mode")))
24172 (mkdir-p snippets)
24173 (copy-recursively "snippets/haskell-mode" snippets)
24174 #t))))))
24175 (propagated-inputs
24176 `(("emacs-yasnippet" ,emacs-yasnippet)))
24177 (home-page "https://github.com/haskell/haskell-snippets")
24178 (synopsis "Official collection of YASnippet Haskell snippets for Emacs")
24179 (description "Haskell-Snippets is a collection of YASnippet Haskell
24180 snippets for Emacs.")
24181 (license license:expat))))
24182
24183 (define-public emacs-org-roam
24184 (package
24185 (name "emacs-org-roam")
24186 (version "1.2.1")
24187 (source
24188 (origin
24189 (method git-fetch)
24190 (uri (git-reference
24191 (url "https://github.com/org-roam/org-roam")
24192 (commit (string-append "v" version))))
24193 (file-name (git-file-name name version))
24194 (sha256
24195 (base32 "10s7mcyshgj6yva4k1j086xm61k9zck3r586f1maar5b2z6hwvsa"))))
24196 (build-system emacs-build-system)
24197 (propagated-inputs
24198 `(("emacs-company" ,emacs-company)
24199 ("emacs-dash" ,emacs-dash)
24200 ("emacs-emacsql-sqlite3" ,emacs-emacsql-sqlite3)
24201 ("emacs-f" ,emacs-f)
24202 ("emacs-org-ref" ,emacs-org-ref)
24203 ("emacs-s" ,emacs-s)))
24204 (home-page "https://github.com/org-roam/org-roam/")
24205 (synopsis "Non-hierarchical note-taking with Org mode")
24206 (description "Emacs Org Roam is a solution for taking non-hierarchical
24207 notes with Org mode. Notes are captured without hierarchy and are connected
24208 by tags. Notes can be found and created quickly. Org Roam should also work
24209 as a plug-and-play solution for anyone already using Org mode for their
24210 personal wiki.")
24211 (license license:gpl3+)))
24212
24213 (define-public emacs-org-generate
24214 (package
24215 (name "emacs-org-generate")
24216 (version "1.0.0")
24217 (source (origin
24218 (method git-fetch)
24219 (uri (git-reference
24220 (url "https://github.com/conao3/org-generate.el.git")
24221 (commit (string-append "v" version))))
24222 (file-name (git-file-name name version))
24223 (sha256
24224 (base32
24225 "0z2frp5mn3lp2xskwanw2rncrwa50x3aphy87vfxmhx4fqlqrzy8"))))
24226 (inputs
24227 `(("emacs-cort" ,emacs-cort))) ;tests suite
24228 (propagated-inputs
24229 `(("emacs-mustache" ,emacs-mustache)))
24230 (arguments
24231 `(#:tests? #t
24232 #:test-command '("emacs" "--batch" "--quick"
24233 "--directory=." "--load=org-generate-tests.el"
24234 "--funcall=cort-test-run")))
24235 (build-system emacs-build-system)
24236 (home-page "https://github.com/conao3/org-generate.el")
24237 (synopsis "Generate template files and folders from Org document")
24238 (description "This package allows to generate files and folders from Emacs
24239 org-mode templates.")
24240 (license license:gpl3+)))
24241
24242 (define-public emacs-uml-mode
24243 ;; Package has no release. Version is extracted from "Version:" keyword in
24244 ;; main file.
24245 (let ((commit "4c37ac1c4424b2313cd8f16ba48a98a4cc214200")
24246 (revision "1"))
24247 (package
24248 (name "emacs-uml-mode")
24249 (version (git-version "0.0.4" revision commit))
24250 (source
24251 (origin
24252 (method git-fetch)
24253 (uri (git-reference
24254 (url "https://github.com/ianxm/emacs-uml")
24255 (commit commit)))
24256 (file-name (git-file-name name version))
24257 (sha256
24258 (base32 "145i4srnfvd1vyibri2a1l6p9mbjvkkwlrpi41134pbarqffcnka"))))
24259 (build-system emacs-build-system)
24260 (home-page "https://github.com/ianxm/emacs-uml")
24261 (synopsis "Minor mode for editing ASCII UML sequence diagrams")
24262 (description "Emacs UML mode is a minor mode that makes it easy to build
24263 ASCII UML sequence diagrams in Emacs, which can be embedded in source code,
24264 comments or emails.")
24265 (license license:gpl3+))))
24266
24267 (define-public emacs-trashed
24268 (package
24269 (name "emacs-trashed")
24270 (version "1.9.0")
24271 (source
24272 (origin
24273 (method git-fetch)
24274 (uri (git-reference
24275 (url "https://github.com/shingo256/trashed/")
24276 (commit version)))
24277 (file-name (git-file-name name version))
24278 (sha256
24279 (base32 "13grdi12iwlw4fiphdfmvclfpbr6ajlgfbfyi7v41z8k3rxz4ypz"))))
24280 (build-system emacs-build-system)
24281 (home-page "https://github.com/shingo256/trashed/")
24282 (synopsis "View and edit system trash can in Emacs")
24283 (description "Open, view, browse, restore or permanently delete trashed
24284 files or directories in trash can with Dired-like look and feel. The trash
24285 can has to be compliant with freedesktop.org. In Emacs, you can trash files by
24286 deleting them with @code{(setq delete-by-moving-to-trash t)}. This package
24287 provides a simple but convenient user interface to manage those trashed
24288 files.")
24289 (license license:gpl3+)))
24290
24291 (define-public emacs-plantuml-mode
24292 (package
24293 (name "emacs-plantuml-mode")
24294 (version "1.4.1")
24295 (source
24296 (origin
24297 (method git-fetch)
24298 (uri (git-reference
24299 (url "https://github.com/skuro/plantuml-mode")
24300 (commit (string-append "v" version))))
24301 (file-name (git-file-name name version))
24302 (sha256
24303 (base32 "0yp41d2dmf3sx7qnl5x0zdjcr9y71b2wwc9m0q31v22xqn938ipc"))))
24304 (arguments
24305 '(#:phases
24306 (modify-phases %standard-phases
24307 (add-after 'unpack 'use-local-plantuml
24308 (lambda* (#:key inputs #:allow-other-keys)
24309 (let ((plantuml (assoc-ref inputs "plantuml"))
24310 (file "plantuml-mode.el"))
24311 (chmod file #o644)
24312 (emacs-substitute-variables file
24313 ("plantuml-jar-path"
24314 (string-append plantuml "/share/java/plantuml.jar"))
24315 ("plantuml-executable-path"
24316 (string-append plantuml "/bin/plantuml"))
24317 ("plantuml-server-url" 'nil)
24318 ("plantuml-default-exec-mode" ''executable))
24319 (emacs-batch-edit-file file
24320 `(progn (progn
24321 (goto-char (point-min))
24322 (re-search-forward "(defun plantuml-download-jar")
24323 (beginning-of-line)
24324 (kill-sexp))
24325 (basic-save-buffer)))
24326 #t))))))
24327 (inputs
24328 `(("plantuml" ,plantuml)))
24329 (propagated-inputs
24330 `(("emacs-dash" ,emacs-dash)))
24331 (build-system emacs-build-system)
24332 (home-page "https://github.com/skuro/plantuml-mode")
24333 (synopsis "Major mode for editing PlantUML sources")
24334 (description "This package provides a major mode for editing PlantUML
24335 sources. It features syntax highlighting, autocompletion, preview of buffer
24336 or region and use of locally installed binaries.")
24337 (license license:gpl3+)))
24338
24339 (define-public emacs-shell-pop
24340 (let ((commit "4b4394037940a890a313d715d203d9ead2d156a6")
24341 (revision "0"))
24342 (package
24343 (name "emacs-shell-pop")
24344 (version (git-version "0.64" revision commit))
24345 (source
24346 (origin
24347 (method git-fetch)
24348 (uri (git-reference
24349 (url "https://github.com/kyagi/shell-pop-el")
24350 (commit commit)))
24351 (file-name (git-file-name name version))
24352 (sha256
24353 (base32 "0s77n6b9iw1x3dv91ybkpgy3zvqd12si7zw3lg0m2b6j1akrawsg"))))
24354 (build-system emacs-build-system)
24355 (home-page "https://github.com/kyagi/shell-pop-el")
24356 (synopsis "Utility which helps with pop up shell buffer")
24357 (description
24358 "This Emacs utility helps you pop up and pop out shell buffer window
24359 easily. Four pre-set options are: @samp{shell}, @samp{terminal},
24360 @samp{ansi-term}, and @samp{eshell}. You can also set your custom shell if
24361 you use some other configuration.")
24362 (license license:gpl3+))))
24363
24364 (define-public emacs-extmap
24365 (package
24366 (name "emacs-extmap")
24367 (version "1.1.1")
24368 (source
24369 (origin
24370 (method git-fetch)
24371 (uri (git-reference
24372 (url "https://github.com/doublep/extmap")
24373 (commit version)))
24374 (file-name (git-file-name name version))
24375 (sha256
24376 (base32
24377 "09kia3mr4si8kn46kyiza9nl669b22vmgc70ng3mqz742lph5siw"))))
24378 (build-system emacs-build-system)
24379 (home-page "https://github.com/doublep/extmap")
24380 (synopsis "Externally-stored constant mapping for Emacs Lisp")
24381 (description "A very simple package that lets you build a
24382 read-only, constant database that maps Emacs Lisp symbols to
24383 arbitrary Emacs Lisp objects.")
24384 (license license:gpl3+)))
24385
24386 (define-public emacs-csound-mode
24387 (package
24388 (name "emacs-csound-mode")
24389 (version "0.2.1")
24390 (source
24391 (origin
24392 (method git-fetch)
24393 (uri (git-reference
24394 (url "https://github.com/hlolli/csound-mode")
24395 (commit version)))
24396 (file-name (git-file-name name version))
24397 (sha256
24398 (base32
24399 "1c88ak0jaj51fwiqniqxd7xyk23wjl9m57znzm8j267ld8g12znp"))))
24400 (build-system emacs-build-system)
24401 (arguments
24402 `(#:phases
24403 (modify-phases %standard-phases
24404 (add-after 'unpack 'disable-breaking-compilation
24405 (lambda _
24406 (for-each (lambda (file)
24407 (chmod file #o600) ; needed to write changes.
24408 (emacs-batch-disable-compilation file))
24409 '("csound-font-lock.el"))
24410 #t)))))
24411 (inputs
24412 `(("emacs-highlight" ,emacs-highlight)
24413 ("emacs-multi" ,emacs-multi)
24414 ("emacs-shut-up" ,emacs-shut-up)))
24415 (home-page "https://github.com/hlolli/csound-mode")
24416 (synopsis "Emacs major mode for coding in CSound")
24417 (description "Provides both a basic major mode for editing
24418 CSound files, as well as a REPL for fast feedback when composing
24419 and sound-designing.")
24420 (license license:gpl3+)))
24421
24422 (define-public emacs-multi
24423 (package
24424 (name "emacs-multi")
24425 (version "2.0.1")
24426 (source
24427 (origin
24428 (method git-fetch)
24429 (uri (git-reference
24430 (url "https://github.com/kurisuwhyte/emacs-multi")
24431 (commit (string-append "v" version))))
24432 (file-name (git-file-name name version))
24433 (sha256
24434 (base32
24435 "11zabs7qpdhri6n90ck7pgwcbz46d813nyl73h5m1i8jvz1wzx7v"))))
24436 (build-system emacs-build-system)
24437 (home-page "https://github.com/kurisuwhyte/emacs-multi")
24438 (synopsis "Clojure-style multi-methods for Emacs Lisp")
24439 (description "Provides Emacs Lisp with a form of polymorphism
24440 by way of predicate dispatching. Methods consist of a dispatch
24441 function, and a series of branches. The dispatch function is
24442 applied to the arguments, and the result value is checked against
24443 the expectations of each branch to define which one to invoke.")
24444 (license license:expat)))
24445
24446 (define-public emacs-highlight
24447 (let ((commit "9258a2b8362d737115cbd87618f947eadb140411")
24448 (revision "1"))
24449 (package
24450 (name "emacs-highlight")
24451 (version "0.0.0")
24452 (source
24453 (origin
24454 (method git-fetch)
24455 (uri (git-reference
24456 (url "https://github.com/emacsmirror/highlight/")
24457 (commit commit)))
24458 (file-name (git-file-name name commit))
24459 (sha256
24460 (base32
24461 "0pbqzgbfkm8smi23j94hirxh2r1yc0ipyjbbv1y906br6bx5c1a8"))))
24462 (build-system emacs-build-system)
24463 (home-page "https://github.com/emacsmirror/highlight")
24464 (synopsis "Highlighting commands for GNU Emacs")
24465 (description "This library adds the possibility for ad-hoc
24466 applying highlighting to any face in GNU Emacs. The functionality
24467 of this library depends on overlays, which by default are not
24468 picked up when copy-pasting text from buffer to buffer.")
24469 (license license:gpl2+))))
24470
24471 (define-public emacs-org-webring
24472 (package
24473 (name "emacs-org-webring")
24474 (version "1.6")
24475 (source
24476 (origin
24477 (method git-fetch)
24478 (uri (git-reference
24479 (url "https://git.sr.ht/~brettgilio/org-webring")
24480 (commit version)))
24481 (file-name (git-file-name name version))
24482 (sha256
24483 (base32
24484 "00d7jqsbfa08rhyv3ry87rgy9ikv233spn4rz0d3riy0bp7b7j6b"))))
24485 (build-system emacs-build-system)
24486 (arguments
24487 `(#:phases
24488 (modify-phases %standard-phases
24489 (add-after 'install 'install-assets
24490 (lambda* (#:key outputs #:allow-other-keys)
24491 (let* ((out (assoc-ref outputs "out"))
24492 (assets
24493 (string-append out "/share/emacs/org-webring-assets")))
24494 (mkdir-p assets)
24495 (copy-recursively "assets" assets)
24496 #t))))))
24497 (propagated-inputs
24498 `(("emacs-xmlgen" ,emacs-xmlgen)))
24499 (home-page "https://sr.ht/~brettgilio/org-webring")
24500 (synopsis "Generate webrings for Org-based sites / blogs")
24501 (description "Org-webring is an alternative implementation of a
24502 feed-based webring, taking inspiration from openring by Drew DeVault.
24503 Intended to integrate with Org-based websites and blogs (either
24504 directly, or indirectly, as in ox-hugo), it will fetch a given list of
24505 web feed files and correctly parse and format the elements to be
24506 displayed for sharing.")
24507 (license license:gpl3+)))
24508
24509 (define-public emacs-scpaste
24510 (let ((commit "cd4fa0aafecd839736e0b6cba68b4fc4d7045472")
24511 (revision "0"))
24512 (package
24513 (name "emacs-scpaste")
24514 (version "0.6.5")
24515 (source
24516 (origin
24517 (method git-fetch)
24518 (uri (git-reference
24519 (url "https://git.sr.ht/~technomancy/scpaste")
24520 (commit commit)))
24521 (file-name (git-file-name name commit))
24522 (sha256
24523 (base32
24524 "1nvwbwl26z03963g9c82b3ggm39r95z1vp7c9qsa9mjm46dyq27w"))))
24525 (build-system emacs-build-system)
24526 (propagated-inputs
24527 `(("emacs-htmlize" ,emacs-htmlize)))
24528 (home-page "https://git.sr.ht/~technomancy/scpaste")
24529 (synopsis "Emacs-based static HTML pastebin")
24530 (description "This library will place an HTML copy of a
24531 buffer on an active webserver to which the user has SSH access.
24532 It is similar in purpose to services such as Gist or Pastebin,
24533 but is much simpler since it assumes the user has access to a
24534 publically-accessible HTTP server.")
24535 (license license:gpl3+))))
24536
24537 (define-public emacs-company-reftex
24538 (package
24539 (name "emacs-company-reftex")
24540 (version "0.1.0")
24541 (source
24542 (origin
24543 (method git-fetch)
24544 (uri (git-reference
24545 (url "https://github.com/TheBB/company-reftex")
24546 (commit "275ef708f08d3bf0eb30632148e5c6184eeaacdb")))
24547 (file-name (git-file-name name version))
24548 (sha256
24549 (base32
24550 "118cgw5lsffqdqz95mnkw36mmnsbg9m52r2np4m7v14mjjwr9fby"))))
24551 (build-system emacs-build-system)
24552 (propagated-inputs
24553 `(("emacs-company" ,emacs-company)
24554 ("emacs-s" ,emacs-s)))
24555 (home-page "https://github.com/TheBB/company-reftex")
24556 (synopsis "RefTeX backends for company-mode")
24557 (description "This package provides company-mode backends for completing
24558 label references and citations in LaTeX. It is based on RefTeX, which is
24559 included with Emacs.")
24560 (license license:gpl3+)))