gnu: byobu: Update to 5.133.
[jackhill/guix/guix.git] / gnu / packages / emacs-xyz.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2014 Taylan Ulrich Bayirli/Kammer <taylanbayirli@gmail.com>
3 ;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
4 ;;; Copyright © 2014, 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org>
5 ;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Alex Kost <alezost@gmail.com>
6 ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
7 ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
8 ;;; Copyright © 2016, 2017, 2018, 2019 Chris Marusich <cmmarusich@gmail.com>
9 ;;; Copyright © 2015, 2016, 2018 Christopher Lemmer Webber <cwebber@dustycloud.org>
10 ;;; Copyright © 2016 Adriano Peluso <catonano@gmail.com>
11 ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
12 ;;; Copyright © 2016 David Thompson <davet@gnu.org>
13 ;;; Copyright © 2016 Matthew Jordan <matthewjordandevops@yandex.com>
14 ;;; Copyright © 2016, 2017 Roel Janssen <roel@gnu.org>
15 ;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
16 ;;; Copyright © 2016, 2019 Alex Griffin <a@ajgrf.com>
17 ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
18 ;;; Copyright © 2016, 2017, 2018 Alex Vong <alexvong1995@gmail.com>
19 ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Arun Isaac <arunisaac@systemreboot.net>
20 ;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
21 ;;; Copyright © 2017, 2018, 2019, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
22 ;;; Copyright © 2017, 2018, 2019, 2020 Clément Lassieur <clement@lassieur.org>
23 ;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com>
24 ;;; Copyright © 2017, 2018 Kyle Meyer <kyle@kyleam.com>
25 ;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
26 ;;; Copyright © 2017 George Clemmer <myglc2@gmail.com>
27 ;;; Copyright © 2017, 2018 Feng Shu <tumashu@163.com>
28 ;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org>
29 ;;; Copyright © 2017, 2018, 2019, 2020 Oleg Pykhalov <go.wigust@gmail.com>
30 ;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com>
31 ;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com>
32 ;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
33 ;;; Copyright © 2017 Mike Gerwitz <mtg@gnu.org>
34 ;;; Copyright © 2017, 2018, 2019, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
35 ;;; Copyright © 2018 Sohom Bhattacharjee <soham.bhattacharjee15@gmail.com>
36 ;;; Copyright © 2018, 2019 Mathieu Lirzin <mthl@gnu.org>
37 ;;; Copyright © 2018, 2019, 2020 Pierre Neidhardt <mail@ambrevar.xyz>
38 ;;; Copyright © 2018, 2019 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
39 ;;; Copyright © 2018, 2019 Jack Hill <jackhill@jackhill.us>
40 ;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
41 ;;; Copyright © 2018 Alex Branham <alex.branham@gmail.com>
42 ;;; Copyright © 2018 Thorsten Wilms <t_w_@freenet.de>
43 ;;; Copyright © 2018, 2019 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 ;;;
78 ;;; This file is part of GNU Guix.
79 ;;;
80 ;;; GNU Guix is free software; you can redistribute it and/or modify it
81 ;;; under the terms of the GNU General Public License as published by
82 ;;; the Free Software Foundation; either version 3 of the License, or (at
83 ;;; your option) any later version.
84 ;;;
85 ;;; GNU Guix is distributed in the hope that it will be useful, but
86 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
87 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
88 ;;; GNU General Public License for more details.
89 ;;;
90 ;;; You should have received a copy of the GNU General Public License
91 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
92
93 (define-module (gnu packages emacs-xyz)
94 #:use-module ((guix licenses) #:prefix license:)
95 #:use-module (guix packages)
96 #:use-module (guix cvs-download)
97 #:use-module (guix download)
98 #:use-module (guix git-download)
99 #:use-module (guix hg-download)
100 #:use-module (guix build-system gnu)
101 #:use-module (guix build-system cmake)
102 #:use-module (guix build-system emacs)
103 #:use-module (guix build-system glib-or-gtk)
104 #:use-module (guix build-system perl)
105 #:use-module (guix build-system trivial)
106 #:use-module (gnu packages)
107 #:use-module (gnu packages admin)
108 #:use-module (gnu packages audio)
109 #:use-module (gnu packages bash)
110 #:use-module (gnu packages cmake)
111 #:use-module (gnu packages code)
112 #:use-module (gnu packages cpp)
113 #:use-module (gnu packages curl)
114 #:use-module (gnu packages databases)
115 #:use-module (gnu packages dictionaries)
116 #:use-module (gnu packages emacs)
117 #:use-module (gnu packages guile)
118 #:use-module (gnu packages gtk)
119 #:use-module (gnu packages gnome)
120 #:use-module (gnu packages haskell-apps)
121 #:use-module (gnu packages ncurses)
122 #:use-module (gnu packages python)
123 #:use-module (gnu packages python-xyz)
124 #:use-module (gnu packages telephony)
125 #:use-module (gnu packages terminals)
126 #:use-module (gnu packages tex)
127 #:use-module (gnu packages texinfo)
128 #:use-module (gnu packages tcl)
129 #:use-module (gnu packages tls)
130 #:use-module (gnu packages pkg-config)
131 #:use-module (gnu packages xorg)
132 #:use-module (gnu packages lesstif)
133 #:use-module (gnu packages llvm)
134 #:use-module (gnu packages image)
135 #:use-module (gnu packages linux)
136 #:use-module (gnu packages libevent)
137 #:use-module (gnu packages lua)
138 #:use-module (gnu packages music)
139 #:use-module (gnu packages version-control)
140 #:use-module (gnu packages imagemagick)
141 #:use-module (gnu packages w3m)
142 #:use-module (gnu packages wget)
143 #:use-module (gnu packages autotools)
144 #:use-module (gnu packages base)
145 #:use-module (gnu packages compression)
146 #:use-module (gnu packages node)
147 #:use-module (gnu packages xml)
148 #:use-module (gnu packages glib)
149 #:use-module (gnu packages acl)
150 #:use-module (gnu packages mail)
151 #:use-module (gnu packages messaging)
152 #:use-module (gnu packages package-management)
153 #:use-module (gnu packages perl)
154 #:use-module (gnu packages pdf)
155 #:use-module (gnu packages rust-apps)
156 #:use-module (gnu packages scheme)
157 #:use-module (gnu packages speech)
158 #:use-module (gnu packages xiph)
159 #:use-module (gnu packages mp3)
160 #:use-module (gnu packages gettext)
161 #:use-module (gnu packages fribidi)
162 #:use-module (gnu packages gd)
163 #:use-module (gnu packages fontutils)
164 #:use-module (gnu packages password-utils)
165 #:use-module (gnu packages pulseaudio)
166 #:use-module (gnu packages sphinx)
167 #:use-module (gnu packages xdisorg)
168 #:use-module (gnu packages shells)
169 #:use-module (gnu packages sqlite)
170 #:use-module (gnu packages gnupg)
171 #:use-module (gnu packages video)
172 #:use-module (gnu packages haskell-xyz)
173 #:use-module (gnu packages wordnet)
174 #:use-module (gnu packages photo)
175 #:use-module (gnu packages uml)
176 #:use-module (guix utils)
177 #:use-module (srfi srfi-1)
178 #:use-module (ice-9 match))
179
180 ;;;
181 ;;; Emacs hacking.
182 ;;;
183
184 (define-public emacs-geiser
185 (package
186 (name "emacs-geiser")
187 (version "0.11.2")
188 (source (origin
189 (method git-fetch)
190 (uri (git-reference
191 (url "https://gitlab.com/jaor/geiser/")
192 (commit version)))
193 (file-name (git-file-name name version))
194 (sha256
195 (base32
196 "1khi1bghsjx6cs5acizmlbw9z19s4qycnji9krdbn42cbpv0rysv"))))
197 (build-system gnu-build-system)
198 (arguments
199 '(#:phases
200 (modify-phases %standard-phases
201 (add-after 'install 'post-install
202 (lambda* (#:key outputs #:allow-other-keys)
203 (symlink "geiser-install.el"
204 (string-append (assoc-ref outputs "out")
205 "/share/emacs/site-lisp/"
206 "geiser-autoloads.el"))
207 #t)))))
208 (inputs `(("guile" ,guile-2.2)))
209 (native-inputs
210 `(("emacs" ,emacs-minimal)
211 ("autoconf" ,autoconf)
212 ("automake" ,automake)
213 ("texinfo" ,texinfo)))
214 (home-page "https://nongnu.org/geiser/")
215 (synopsis "Collection of Emacs modes for Guile and Racket hacking")
216 (description
217 "Geiser is a collection of Emacs major and minor modes that conspire with
218 one or more Scheme implementations to keep the Lisp Machine Spirit alive. The
219 continuously running Scheme interpreter takes the center of the stage in
220 Geiser. A bundle of Elisp shims orchestrates the dialog between the Scheme
221 implementation, Emacs and, ultimately, the schemer, giving them access to live
222 metadata.")
223 (license license:bsd-3)))
224
225 (define-public emacs-ac-geiser
226 (let ((commit "93818c936ee7e2f1ba1b315578bde363a7d43d05")
227 (revision "0"))
228 (package
229 (name "emacs-ac-geiser")
230 (version (git-version "0.1" revision commit))
231 (source
232 (origin
233 (uri (git-reference
234 (url "https://github.com/xiaohanyu/ac-geiser.git")
235 (commit commit)))
236 (method git-fetch)
237 (sha256
238 (base32 "00n2qa26yilaj837n1yp6lbqa4gf30nkkbvanl7m9ih7k48ssqmw"))
239 (file-name (git-file-name name version))))
240 (build-system emacs-build-system)
241 (propagated-inputs
242 `(("geiser" ,emacs-geiser)
243 ("auto-complete" ,emacs-auto-complete)))
244 (synopsis "Auto-complete backend for geiser")
245 (description
246 "This package provides an auto-complete source for Scheme projects
247 using geiser.")
248 (license license:bsd-3)
249 (home-page "https://github.com/xiaohanyu/ac-geiser"))))
250
251 (define-public emacs-paredit
252 (package
253 (name "emacs-paredit")
254 (version "24")
255 (source (origin
256 (method url-fetch)
257 (uri (string-append "http://mumble.net/~campbell/emacs/paredit-"
258 version ".el"))
259 (sha256
260 (base32
261 "0pp3n8q6kc70blqsaw0zlzp6bc327dpgdrjr0cnh7hqg1lras7ka"))))
262 (build-system emacs-build-system)
263 (home-page "http://mumble.net/~campbell/emacs/paredit/")
264 (synopsis "Emacs minor mode for editing parentheses")
265 (description
266 "ParEdit (paredit.el) is a minor mode for performing structured editing
267 of S-expression data. The typical example of this would be Lisp or Scheme
268 source code.
269
270 ParEdit helps **keep parentheses balanced** and adds many keys for moving
271 S-expressions and moving around in S-expressions. Its behavior can be jarring
272 for those who may want transient periods of unbalanced parentheses, such as
273 when typing parentheses directly or commenting out code line by line.")
274 (license license:gpl3+)))
275
276 (define-public git-modes
277 (package
278 (name "emacs-git-modes")
279 (version "1.2.8")
280 (source (origin
281 (method git-fetch)
282 (uri (git-reference
283 (url "https://github.com/magit/git-modes")
284 (commit version)))
285 (file-name (git-file-name name version))
286 (sha256
287 (base32
288 "08hy7rbfazs6grkpk54i82bz0i0c74zcjk96cip8970h6jn3mj72"))))
289 (build-system emacs-build-system)
290 (home-page "https://github.com/magit/git-modes")
291 (synopsis "Emacs major modes for Git configuration files")
292 (description
293 "This package provides Emacs major modes for editing various Git
294 configuration files, such as .gitattributes, .gitignore, and .git/config.")
295 (license license:gpl3+)))
296
297 (define-public emacs-with-editor
298 (package
299 (name "emacs-with-editor")
300 (version "2.9.0")
301 (source (origin
302 (method git-fetch)
303 (uri (git-reference
304 (url "https://github.com/magit/with-editor.git")
305 (commit (string-append "v" version))))
306 (file-name (git-file-name name version))
307 (sha256
308 (base32
309 "1sjb3qqrn1rhmpkrn14l8rya6c3gwxwmgw74n779s54kvl9gn7a9"))))
310 (build-system emacs-build-system)
311 (propagated-inputs
312 `(("emacs-dash" ,emacs-dash)))
313 (home-page "https://github.com/magit/with-editor")
314 (synopsis "Emacs library for using Emacsclient as EDITOR")
315 (description
316 "This package provides an Emacs library to use the Emacsclient as
317 @code{$EDITOR} of child processes, making sure they know how to call home.
318 For remote processes a substitute is provided, which communicates with Emacs
319 on stdout instead of using a socket as the Emacsclient does.")
320 (license license:gpl3+)))
321
322 (define-public emacs-libgit
323 (let ((commit "0ef8b13aef011a98b7da756e4f1ce3bb18e4d55a")
324 (revision "1"))
325 (package
326 (name "emacs-libgit")
327 (version (git-version "20200515" revision commit))
328 (source (origin
329 (method git-fetch)
330 (uri (git-reference
331 (url "https://github.com/magit/libegit2.git")
332 (commit commit)))
333 (file-name (git-file-name name version))
334 (sha256
335 (base32
336 "0pnjr3bg6y6354dfjjxfj0g51swzgl1fncpprah75x4k94rd369f"))
337 (patches (search-patches
338 ;; Submitted for inclusion upstream (see:
339 ;; https://github.com/magit/libegit2/pull/96).
340 "emacs-libgit-use-system-libgit2.patch"))))
341 ;; Use the cmake-build-system as it provides support for cross builds.
342 (build-system cmake-build-system)
343 (arguments
344 `(#:configure-flags '("-DUSE_SYSTEM_LIBGIT2=x")
345 ;; Add the emacs-build-system byte compilation and install phases.
346 #:imported-modules (,@%cmake-build-system-modules
347 (guix build emacs-build-system)
348 (guix build emacs-utils))
349 #:modules ((guix build cmake-build-system)
350 ((guix build emacs-build-system) #:prefix emacs:)
351 (guix build emacs-utils)
352 (guix build utils))
353 #:phases
354 (modify-phases %standard-phases
355 (add-after 'unpack 'set-libgit--module-file
356 (lambda* (#:key outputs #:allow-other-keys)
357 (let ((out (assoc-ref outputs "out")))
358 (make-file-writable "libgit.el")
359 (emacs-substitute-variables "libgit.el"
360 ("libgit--module-file"
361 (string-append out "/share/emacs/site-lisp/libegit2.so")))
362 #t)))
363 (add-before 'install 'prepare-for-install
364 (lambda _
365 (let ((s (string-append "../" ,name "-" ,version "-checkout")))
366 (copy-file "libegit2.so" (string-append s "/libegit2.so"))
367 (chdir s)
368 #t)))
369 (replace 'install
370 (lambda* (#:key outputs #:allow-other-keys)
371 (let ((install (assoc-ref emacs:%standard-phases 'install)))
372 (install #:outputs outputs
373 #:include (cons "\\.so$"
374 emacs:%default-include)))))
375 (add-after 'install 'make-autoloads
376 (assoc-ref emacs:%standard-phases 'make-autoloads))
377 (add-after 'make-autoloads 'enable-autoloads-compilation
378 (assoc-ref emacs:%standard-phases 'enable-autoloads-compilation))
379 (add-after 'enable-autoloads-compilation 'patch-el-files
380 (assoc-ref emacs:%standard-phases 'patch-el-files))
381 (add-after 'patch-el-files 'emacs-build
382 (assoc-ref emacs:%standard-phases 'build))
383 (add-after 'emacs-build 'validate-compiled-autoloads
384 (assoc-ref emacs:%standard-phases 'validate-compiled-autoloads)))))
385 (native-inputs
386 `(("pkg-config" ,pkg-config)
387 ("emacs" ,emacs-no-x)
388 ("git" ,git-minimal)))
389 (inputs
390 `(("libgit2" ,libgit2)))
391 (home-page "https://github.com/magit/libegit2")
392 (synopsis "Emacs bindings for libgit2")
393 (description "This is an experimental module written in C providing
394 libgit2 bindings for Emacs, intended to boost the performance of Magit.")
395 ;; The LICENSE file says GPL v2+, but libgit.el says GPL v3+.
396 (license license:gpl3+))))
397
398 (define-public emacs-magit
399 ;; There hasn't been an official release since 2018-11-16.
400 (let ((commit "d05545ec2fd7edf915eaf1b9c15c785bb08975cc"))
401 (package
402 (name "emacs-magit")
403 (version (git-version "2.90.1" "4" commit))
404 (source (origin
405 (method git-fetch)
406 (uri (git-reference
407 (url "https://github.com/magit/magit.git")
408 (commit commit)))
409 (file-name (git-file-name name version))
410 (sha256
411 (base32
412 "11aqyy4r9hrdi9nlypd70hn8384b6q89c7xavgv8c5q7f2g5z9qg"))))
413 (build-system emacs-build-system)
414 (arguments
415 `(#:emacs ,emacs-no-x ;module support is required
416 #:tests? #t
417 #:test-command '("make" "test")
418 #:phases
419 (modify-phases %standard-phases
420 (add-after 'unpack 'build-info-manual
421 (lambda _
422 (invoke "make" "info")
423 ;; Copy info files to the lisp directory, which acts as
424 ;; the root of the project for the emacs-build-system.
425 (for-each (lambda (f)
426 (install-file f "lisp"))
427 (find-files "Documentation" "\\.info$"))
428 (chdir "lisp")
429 #t))
430 (add-after 'build-info-manual 'set-magit-version
431 (lambda _
432 (make-file-writable "magit.el")
433 (emacs-substitute-variables "magit.el"
434 ("magit-version" ,version))
435 #t))
436 (add-after 'set-magit-version 'patch-exec-paths
437 (lambda* (#:key inputs #:allow-other-keys)
438 (let ((perl (assoc-ref inputs "perl")))
439 (make-file-writable "magit-sequence.el")
440 (emacs-substitute-variables "magit-sequence.el"
441 ("magit-perl-executable" (string-append perl "/bin/perl")))
442 #t)))
443 (add-before 'check 'configure-git
444 (lambda _
445 ;; Otherwise some tests fail with error "unable to auto-detect
446 ;; email address".
447 (setenv "HOME" (getcwd))
448 (invoke "git" "config" "--global" "user.name" "toto")
449 (invoke "git" "config" "--global" "user.email"
450 "toto@toto.com")))
451 (add-after 'configure-git 'disable-tramp-test
452 (lambda _
453 ;; There is an issue causing TRAMP to fail in the build
454 ;; environment. Setting the tramp-remote-shell parameter of
455 ;; the sudo-method to the file name of the shell didn't help.
456 (chdir "..")
457 (substitute* "t/magit-tests.el"
458 (("^\\(ert-deftest magit-toplevel:tramp.*" all)
459 (string-append all " (skip-unless nil)")))
460 #t))
461 (add-before 'install 'enter-lisp-directory
462 (lambda _
463 (chdir "lisp")
464 #t)))))
465 (native-inputs
466 `(("texinfo" ,texinfo)))
467 (inputs
468 `(("git" ,git)
469 ("perl" ,perl)))
470 (propagated-inputs
471 `(("emacs-dash" ,emacs-dash)
472 ("emacs-libgit" ,emacs-libgit)
473 ("emacs-transient" ,emacs-transient)
474 ("emacs-with-editor" ,emacs-with-editor)))
475 (home-page "https://magit.vc/")
476 (synopsis "Emacs interface for the Git version control system")
477 (description "With Magit, you can inspect and modify your Git
478 repositories with Emacs. You can review and commit the changes you have made
479 to the tracked files, for example, and you can browse the history of past
480 changes. There is support for cherry picking, reverting, merging, rebasing,
481 and other common Git operations.")
482 (license license:gpl3+))))
483
484 (define-public emacs-magit-svn
485 (let ((commit "9e33ceee32f665db59909e1c00a667ccdd04178f"))
486 (package
487 (name "emacs-magit-svn")
488 (version (git-version "2.2.1" "2" commit))
489 (source (origin
490 (method git-fetch)
491 (uri (git-reference
492 (url "https://github.com/magit/magit-svn")
493 (commit commit)))
494 (file-name (git-file-name name version))
495 (sha256
496 (base32
497 "1mlqz8dh6jy5rv72lgkxv253dgh73fmbaidskicypapvbl3lr6xy"))))
498 (build-system emacs-build-system)
499 (propagated-inputs `(("dash" ,emacs-dash)
500 ("with-editor" ,emacs-with-editor)
501 ("magit" ,emacs-magit)
502 ("transient" ,emacs-transient)))
503 (home-page "https://github.com/magit/magit-svn")
504 (synopsis "Git-SVN extension to Magit")
505 (description
506 "This package is an extension to Magit, the Git Emacs mode, providing
507 support for Git-SVN.")
508 (license license:gpl3+))))
509
510 (define-public emacs-magit-popup
511 (package
512 (name "emacs-magit-popup")
513 (version "2.12.5")
514 (source (origin
515 (method git-fetch)
516 (uri (git-reference
517 (url "https://github.com/magit/magit-popup.git")
518 (commit (string-append "v" version))))
519 (file-name (git-file-name name version))
520 (sha256
521 (base32
522 "13riknyqr6vxqll80sfhvz165flvdz367rbd0pr5slb01bnfsi2i"))))
523 (build-system emacs-build-system)
524 (arguments
525 `(#:phases
526 (modify-phases %standard-phases
527 (add-before 'install 'make-info
528 (lambda _
529 (invoke "make" "info"))))))
530 (native-inputs
531 `(("texinfo" ,texinfo)))
532 (propagated-inputs
533 `(("emacs-dash" ,emacs-dash)))
534 (home-page "https://github.com/magit/magit-popup")
535 (synopsis "Define prefix-infix-suffix command combos")
536 (description
537 "This library implements a generic interface for toggling switches and
538 setting options and then invoking an Emacs command which does something with
539 these arguments. The prototypical use is for the command to call an external
540 process, passing on the arguments as command line arguments.")
541 (license license:gpl3+)))
542
543 (define-public emacs-magit-annex
544 (let ((commit "ef5dce6267e9118a5eca82a22bcad0b67826c23a")
545 (revision "1"))
546 (package
547 (name "emacs-magit-annex")
548 (version (git-version "1.7.1" revision commit))
549 (source (origin
550 (method git-fetch)
551 (uri (git-reference
552 (url "https://github.com/magit/magit-annex.git")
553 (commit commit)))
554 (file-name (git-file-name name version))
555 (sha256
556 (base32
557 "0vzkydgl889cq173zjl89g2vrddb9abc4a8gljiz3b4a7n5b1nrd"))))
558 (build-system emacs-build-system)
559 (propagated-inputs
560 `(("magit" ,emacs-magit)
561 ("transient" ,emacs-transient)))
562 (home-page "https://github.com/magit/magit-annex/")
563 (synopsis "Git-annex support for Magit")
564 (description
565 "Magit-annex adds a few git-annex operations to the Magit interface.")
566 (license license:gpl3+))))
567
568 (define-public emacs-minions
569 (package
570 (name "emacs-minions")
571 (version "0.3.2")
572 (source (origin
573 (method git-fetch)
574 (uri (git-reference
575 (url "https://github.com/tarsius/minions.git")
576 (commit (string-append "v" version))))
577 (file-name (git-file-name name version))
578 (sha256
579 (base32
580 "16rplpbfy3dnvqqgavk9jb1f1ihr5875zlixd4zxb1pqxs3jkgw3"))))
581 (build-system emacs-build-system)
582 (propagated-inputs
583 `(("emacs-dash" ,emacs-dash)))
584 (home-page "https://github.com/tarsius/minions")
585 (synopsis "Minor-mode menu for the mode line")
586 (description
587 "This package implements a menu that lists enabled minor-modes, as well
588 as commonly but not currently enabled minor-modes. It can be used to toggle
589 local and global minor-modes, to access mode-specific menus, and to get help
590 about modes.
591
592 This menu is intended as a replacement for the incomplete yet wide list of
593 enabled minor-modes that is displayed in the mode line by default. To use the
594 menu like this, enable Minions mode.
595
596 Alternatively the menu can be bound globally, for example:
597 @code{(global-set-key [S-down-mouse-3] 'minions-minor-modes-menu)}.")
598 (license license:gpl3+)))
599
600 (define-public emacs-treepy
601 (package
602 (name "emacs-treepy")
603 (version "0.1.1")
604 (source (origin
605 (method git-fetch)
606 (uri (git-reference
607 (url "https://github.com/volrath/treepy.el.git")
608 (commit version)))
609 (file-name (git-file-name name version))
610 (sha256
611 (base32
612 "04zwm6gx9pxfvgfkizx6pvb1ql8pqxjyzqp8flz0432x0gq5nlxk"))))
613 (build-system emacs-build-system)
614 (home-page
615 "https://github.com/volrath/treepy.el")
616 (synopsis "Tree traversal tools")
617 (description
618 "Generic tools for recursive and iterative tree traversal based on
619 clojure.walk and clojure.zip respectively.")
620 (license license:gpl3+)))
621
622 (define-public emacs-graphql
623 (package
624 (name "emacs-graphql")
625 (version "0.1.1")
626 (source (origin
627 (modules '((guix build utils)))
628 ;; Remove examples file with references to external packages as
629 ;; they do not exist at compilation time.
630 (snippet
631 '(begin (delete-file "examples.el")
632 #t))
633 (method git-fetch)
634 (uri (git-reference
635 (url "https://github.com/vermiculus/graphql.el.git")
636 (commit version)))
637 (file-name (git-file-name name version))
638 (sha256
639 (base32
640 "0sp0skc1rnhi39szfbq1i99pdgd3bhn4c15cff05iqhjy2d4hniw"))))
641 (build-system emacs-build-system)
642 (home-page
643 "https://github.com/vermiculus/graphql.el")
644 (synopsis "GraphQL utilities")
645 (description
646 "GraphQL.el provides a generally-applicable domain-specific language for
647 creating and executing GraphQL queries against your favorite web services.
648 GraphQL is a data query language and runtime designed and used to request and
649 deliver data to mobile and web apps.")
650 (license license:gpl3+)))
651
652 (define-public emacs-ghub
653 ;; We need a newer commit to avoid problems in emacs-forge.
654 (let ((commit "e19cd86ca4768a6d89285123933baa3f1460d696")
655 (revision "2"))
656 (package
657 (name "emacs-ghub")
658 (version (git-version "3.2.0" revision commit))
659 (source (origin
660 (method git-fetch)
661 (uri (git-reference
662 (url "https://github.com/magit/ghub")
663 (commit commit)))
664 (file-name (git-file-name name version))
665 (sha256
666 (base32
667 "1d6f8sxlsl0fpkzwbpnaw77d1a5pkg63zfvf6a2fxir357lbdizx"))))
668 (build-system emacs-build-system)
669 (arguments
670 `(#:phases
671 (modify-phases %standard-phases
672 (add-before 'install 'make-info
673 (lambda _
674 (invoke "make" "info"))))))
675 (native-inputs
676 `(("texinfo" ,texinfo)))
677 (propagated-inputs
678 `(("dash" ,emacs-dash)
679 ("emacs-let-alist" ,emacs-let-alist)
680 ("treepy" ,emacs-treepy)))
681 (home-page "https://github.com/magit/ghub")
682 (synopsis "Emacs client libraries for the APIs of various Git forges")
683 (description
684 "Ghub provides basic support for using the APIs of various Git forges from
685 Emacs packages. It supports the REST APIs of Github, Github GraphQL, Gitlab,
686 Gitea, Gogs and Bitbucket. It abstracts access to API resources using only a
687 handful of functions that are not resource-specific.")
688 (license license:gpl3+))))
689
690 (define-public emacs-typit
691 ;; Last release is from 2017.
692 (let ((commit "231cb7df43253b84323520b8ed70f128d37003af")
693 (revision "1"))
694 (package
695 (name "emacs-typit")
696 (version (git-version "0.2.1" revision commit))
697 (source
698 (origin
699 (method git-fetch)
700 (uri (git-reference
701 (url "https://github.com/mrkkrp/typit.git")
702 (commit commit)))
703 (file-name (git-file-name name version))
704 (sha256
705 (base32 "1savrxs7xl92ifyxpxkkzv2didr7lb405h0dwz1bs1wldr5fb53f"))))
706 (build-system emacs-build-system)
707 (arguments
708 `(#:phases
709 (modify-phases %standard-phases
710 (add-after 'install 'install-dictionaries
711 (lambda* (#:key outputs #:allow-other-keys)
712 (let* ((out (assoc-ref outputs "out"))
713 (site-lisp
714 (string-append
715 out "/share/emacs/site-lisp/dict")))
716 (mkdir-p site-lisp)
717 (copy-recursively "dict" site-lisp)
718 #t))))))
719 (propagated-inputs
720 `(("emacs-f" ,emacs-f)
721 ("emacs-mmt" ,emacs-mmt)))
722 (home-page "https://github.com/mrkkrp/typit")
723 (synopsis "Typing game for Emacs with two difficulties")
724 (description "Emacs Typit is a typing game for Emacs. Words that are
725 picked randomly from the most frequent words in language you're practicing,
726 until time is up.")
727 (license license:gpl3+))))
728
729 (define-public emacs-scribble-mode
730 (let ((commit "217945d54de5e4bb207033f2116baa28f5c5ecf2")
731 (revision "2"))
732 (package
733 (name "emacs-scribble-mode")
734 (version (git-version "0.1" revision commit))
735 (source (origin
736 (method git-fetch)
737 (uri (git-reference
738 (url "https://github.com/emacs-pe/scribble-mode.git")
739 (commit commit)))
740 (file-name (git-file-name name version))
741 (sha256
742 (base32
743 "1s5ccw1a5ack01wd94ywfcrar9j98agchwdh30q7iyxr0d2z4sii"))))
744 (build-system emacs-build-system)
745 (home-page "https://github.com/emacs-pe/scribble-mode")
746 (synopsis "Emacs mode for editing the Scribble documentation syntax.")
747 (description
748 "This package provides basic syntax highlighting and editing support
749 for editing Racket's Scribble documentation syntax in Emacs.")
750 (license license:gpl3+))))
751
752 (define-public emacs-shroud
753 (package
754 (name "emacs-shroud")
755 (version "1.105")
756 (source
757 (origin
758 (method git-fetch)
759 (uri (git-reference
760 (url "https://git.savannah.gnu.org/git/emacs-shroud.git")
761 (commit version)))
762 (file-name (git-file-name name version))
763 (sha256
764 (base32 "0q2pb3w8s833fjhkzicciw2php4lsnismad1dnwgp2lcway757ra"))))
765 (build-system gnu-build-system)
766 (native-inputs
767 `(("autoconf" ,autoconf)
768 ("automake" ,automake)
769 ("texinfo" ,texinfo)
770 ("perl" ,perl)
771 ("emacs-minimal" ,emacs-minimal)))
772 (propagated-inputs
773 `(("emacs-bui" ,emacs-bui)
774 ("emacs-dash" ,emacs-dash)
775 ("emacs-f" ,emacs-f)
776 ("emacs-s" ,emacs-s)
777 ("gnupg" ,gnupg)
778 ("shroud" ,shroud)))
779 (home-page "https://www.nongnu.org/emacs-shroud")
780 (synopsis "Emacs interface to the Shroud password manager")
781 (description
782 "This package provides an Emacs interface to the Shroud password manager,
783 using the Buffers User Interface library. You can view, copy, and edit secrets
784 from within Emacs.")
785 (license license:gpl3+)))
786
787 (define-public emacs-unpackaged-el
788 (let ((commit "746801a677ada6cd6fa076e423aa0953779f3fad")
789 (revision "3"))
790 (package
791 (name "emacs-unpackaged-el")
792 (version (git-version "0" revision commit))
793 (source
794 (origin
795 (method git-fetch)
796 (uri (git-reference
797 (url "https://github.com/alphapapa/unpackaged.el")
798 (commit commit)))
799 (file-name (git-file-name name version))
800 (sha256
801 (base32
802 "0jvb2ci0h0lj368qhbff3pzkxj3nhlligpbkjzi525k9rkjgm7l8"))))
803 (build-system emacs-build-system)
804 (propagated-inputs
805 `(("emacs-dash" ,emacs-dash)
806 ("emacs-org" ,emacs-org)
807 ("emacs-s" ,emacs-s)
808 ("emacs-hydra" ,emacs-hydra)
809 ("emacs-use-package" ,emacs-use-package)))
810 (arguments
811 `(#:phases
812 (modify-phases %standard-phases
813 (add-after 'unpack 'require-hydra
814 (lambda _
815 (substitute* "unpackaged.el"
816 ((";;; Code:") ";;; Code:\n(require 'hydra)"))
817 #t)))))
818 (home-page "https://github.com/alphapapa/unpackaged.el")
819 (synopsis "Useful snippets of Emacs Lisp code")
820 (description "This package provides Emacs Lisp utilities for a variety
821 of tasks, including version control, task management, and regex-based
822 replacement.")
823 (license license:gpl3+))))
824
825 (define-public emacs-haskell-mode
826 (package
827 (name "emacs-haskell-mode")
828 (version "16.1")
829 (source (origin
830 (method git-fetch)
831 (uri (git-reference
832 (url "https://github.com/haskell/haskell-mode")
833 (commit (string-append "v" version))))
834 (file-name (git-file-name name version))
835 (sha256
836 (base32 "1qk36y0v9fzass6785il65c6wb5cfj4ihhwkvgnzmbafpa8p4dvq"))
837 (patches
838 (search-patches ; backport test failure fixes
839 "haskell-mode-unused-variables.patch"
840 "haskell-mode-make-check.patch"))))
841 (inputs
842 `(("emacs-el-search" ,emacs-el-search) ; for tests
843 ("emacs-stream" ,emacs-stream))) ; for tests
844 (propagated-inputs
845 `(("emacs-dash" ,emacs-dash)))
846 (native-inputs
847 `(("emacs" ,emacs-minimal)
848 ("texinfo" ,texinfo)))
849 (build-system gnu-build-system)
850 (arguments
851 `(#:make-flags (list (string-append "EMACS="
852 (assoc-ref %build-inputs "emacs")
853 "/bin/emacs"))
854 #:modules ((ice-9 match)
855 (srfi srfi-26)
856 ,@%gnu-build-system-modules)
857 #:phases
858 (modify-phases %standard-phases
859 (delete 'configure)
860 (add-before
861 'build 'pre-build
862 (lambda* (#:key inputs #:allow-other-keys)
863 (define (el-dir store-dir)
864 (match (find-files store-dir "\\.el$")
865 ((f1 f2 ...) (dirname f1))
866 (_ "")))
867
868 (let ((sh (string-append (assoc-ref inputs "bash") "/bin/sh")))
869 (define emacs-prefix? (cut string-prefix? "emacs-" <>))
870
871 (setenv "SHELL" "sh")
872 (setenv "EMACSLOADPATH"
873 (string-concatenate
874 (map (match-lambda
875 (((? emacs-prefix? name) . dir)
876 (string-append (el-dir dir) ":"))
877 (_ ""))
878 inputs)))
879 (substitute* (find-files "." "\\.el") (("/bin/sh") sh))
880 ;; embed filename to fix test failure
881 (let ((file "tests/haskell-cabal-tests.el"))
882 (substitute* file
883 (("\\(buffer-file-name\\)")
884 (format #f "(or (buffer-file-name) ~s)" file))))
885 #t)))
886 (replace
887 'install
888 (lambda* (#:key outputs #:allow-other-keys)
889 (let* ((out (assoc-ref outputs "out"))
890 (el-dir (string-append out "/share/emacs/site-lisp"))
891 (doc (string-append
892 out "/share/doc/haskell-mode-" ,version))
893 (info (string-append out "/share/info")))
894 (define (copy-to-dir dir files)
895 (for-each (lambda (f)
896 (install-file f dir))
897 files))
898
899 (with-directory-excursion "doc"
900 (invoke "makeinfo" "haskell-mode.texi")
901 (install-file "haskell-mode.info" info))
902 (copy-to-dir doc '("CONTRIBUTING.md" "NEWS" "README.md"))
903 (copy-to-dir el-dir (find-files "." "\\.elc?"))
904 ;; These are part of other packages.
905 (with-directory-excursion el-dir
906 (for-each delete-file '("dash.el" "ert.el")))
907 #t))))))
908 (home-page "https://github.com/haskell/haskell-mode")
909 (synopsis "Haskell mode for Emacs")
910 (description
911 "This is an Emacs mode for editing, debugging and developing Haskell
912 programs.")
913 (license license:gpl3+)))
914
915 (define-public emacs-dante
916 (let ((commit "38b589417294c7ea44bf65b73b8046d950f9531b")
917 (revision "1"))
918 (package
919 (name "emacs-dante")
920 (version (git-version "1.6" revision commit))
921 (source (origin
922 (method git-fetch)
923 (uri (git-reference
924 (url "https://github.com/jyp/dante")
925 (commit commit)))
926 (sha256
927 (base32
928 "1mnmn635552zlwd4zr68jbvdjipl6gi4mi6wiyck28fsmq8kw96h"))
929 (file-name (git-file-name name version))))
930 (build-system emacs-build-system)
931 (propagated-inputs
932 `(("emacs-dash" ,emacs-dash)
933 ("emacs-f" ,emacs-f)
934 ("emacs-flycheck" ,emacs-flycheck)
935 ("emacs-haskell-mode" ,emacs-haskell-mode)
936 ("emacs-s" ,emacs-s)
937 ("emacs-company" ,emacs-company)
938 ("emacs-lcr" ,emacs-lcr)))
939 (home-page "https://github.com/jyp/dante")
940 (synopsis "Minor mode for interactive Haskell")
941 (description
942 "This package provides a minor mode for Haskell development that
943 supports type hints, definition-jumping, completion, and more.")
944 (license license:gpl3+))))
945
946 (define-public emacs-flycheck
947 ;; Last release version was more than 500 commits ago.
948 (let ((commit "9bcf6b665e15db94870bebc81dc8248c3eec20d3")
949 (revision "2"))
950 (package
951 (name "emacs-flycheck")
952 (version (git-version "31" revision commit))
953 (source
954 (origin
955 (method git-fetch)
956 (uri (git-reference
957 (url "https://github.com/flycheck/flycheck/")
958 (commit commit)))
959 (sha256
960 (base32 "015ixss5bjr7gvhj8mkw5x2x1hy6fvvsjarr2xpv0gskkkngs7pg"))
961 (file-name (git-file-name name version))))
962 (build-system emacs-build-system)
963 (propagated-inputs
964 `(("emacs-dash" ,emacs-dash)))
965 (native-inputs
966 `(("emacs-shut-up" ,emacs-shut-up)))
967 (arguments
968 `(#:phases
969 (modify-phases %standard-phases
970 (add-after 'unpack 'change-flycheck-version
971 (lambda _
972 (substitute* "flycheck.el"
973 (("\\(pkg-info-version-info 'flycheck\\)")
974 (string-append "\"" ,version "\"")))
975 #t)))
976 ;; TODO: many failing tests
977 #:tests? #f
978 #:test-command '("emacs" "-Q" "--batch" "-L" "."
979 "--load" "test/flycheck-test"
980 "--load" "test/run.el"
981 "-f" "flycheck-run-tests-main")))
982 (home-page "https://www.flycheck.org")
983 (synopsis "On-the-fly syntax checking")
984 (description
985 "This package provides on-the-fly syntax checking for GNU Emacs. It is a
986 replacement for the older Flymake extension which is part of GNU Emacs, with
987 many improvements and additional features.
988
989 Flycheck provides fully-automatic, fail-safe, on-the-fly background syntax
990 checking for over 30 programming and markup languages with more than 70
991 different tools. It highlights errors and warnings inline in the buffer, and
992 provides an optional IDE-like error list.")
993 (license license:gpl3+)))) ;+GFDLv1.3+ for the manual
994
995 (define-public emacs-a
996 (package
997 (name "emacs-a")
998 (version "0.1.1")
999 (source (origin
1000 (method git-fetch)
1001 (uri (git-reference
1002 (url "https://github.com/plexus/a.el.git")
1003 (commit (string-append "v" version))))
1004 (file-name (git-file-name name version))
1005 (sha256
1006 (base32
1007 "00v9w6qg3bkwdhypq0ssf0phdh0f4bcq59c20lngd6vhk0204dqi"))))
1008 (build-system emacs-build-system)
1009 (home-page "https://github.com/plexus/a.el/")
1010 (synopsis
1011 "Emacs library for dealing with association lists and hash tables")
1012 (description "@code{emacs-a} provides Emacs Lisp functions for dealing
1013 with associative structures in a uniform and functional way. These functions
1014 can take association lists, hash tables, and in some cases vectors (where the
1015 index is considered the key).")
1016 (license license:gpl3+)))
1017
1018 (define-public emacs-ace-jump-mode
1019 (package
1020 (name "emacs-ace-jump-mode")
1021 (version "2.0")
1022 (home-page "https://github.com/winterTTr/ace-jump-mode")
1023 (source (origin
1024 (method git-fetch)
1025 (uri (git-reference
1026 (url home-page)
1027 (commit (string-append "v" version))))
1028 (sha256
1029 (base32
1030 "1bwvzh056ls2v7y26a0s4j5mj582dmds04lx4x6iqihs04ss74bb"))
1031 (file-name (git-file-name name version))))
1032 (build-system emacs-build-system)
1033 (synopsis "Cursor location minor mode for fast navigation")
1034 (description "Ace-jump-mode is a fast/direct cursor location minor
1035 mode. It creates an N-Branch search tree internally and marks all
1036 the possible position with predefined keys in within the whole Emacs
1037 view. This allows you to move to the character, word, or line almost
1038 directly.")
1039 (license license:gpl3+)))
1040
1041 (define-public emacs-anaphora
1042 (package
1043 (name "emacs-anaphora")
1044 (version "1.0.4")
1045 (source
1046 (origin
1047 (method git-fetch)
1048 (uri (git-reference
1049 (url "https://github.com/rolandwalker/anaphora.git")
1050 (commit (string-append "v" version))))
1051 (file-name (git-file-name name version))
1052 (sha256
1053 (base32
1054 "11fgiy029sqz7nvdm7dcal95lacryz9zql0x5h05z48nrrcl4bib"))))
1055 (build-system emacs-build-system)
1056 (home-page "https://github.com/rolandwalker/anaphora/")
1057 (synopsis "Anaphoric expressions for Emacs Lisp")
1058 (description "@code{emacs-anaphora} implements anaphoric expressions for
1059 Emacs Lisp.
1060
1061 Anaphoric expressions implicitly create one or more temporary variables which
1062 can be referred to during the expression. This technique can improve clarity
1063 in certain cases. It also enables recursion for anonymous functions.")
1064 (license license:public-domain)))
1065
1066 (define-public emacs-xr
1067 (package
1068 (name "emacs-xr")
1069 (version "1.19")
1070 (source
1071 (origin
1072 (method url-fetch)
1073 (uri (string-append "https://elpa.gnu.org/packages/xr-" version ".tar"))
1074 (sha256
1075 (base32 "1aa3iqh0r635jw8k89zh8y4am9d4hfrqpk9mrdh2b51invjn8llq"))))
1076 (build-system emacs-build-system)
1077 (home-page "https://elpa.gnu.org/packages/xr.html")
1078 (synopsis "Convert string regexp to rx notation")
1079 (description
1080 "This is an inverse companion to the @code{rx} package for translating
1081 regexps in string form to the @code{rx} notation. Its chief uses are:
1082
1083 @itemize
1084 @item Migrating existing code to @code{rx} form, for better readability and
1085 maintainability
1086 @item Understanding complex regexp strings and finding errors in them
1087 @end itemize
1088
1089 In addition to Emacs regexps, this package can also parse and troubleshoot
1090 skip set strings, which are arguments to @code{skip-chars-forward} and
1091 @code{skip-chars-backward}.")
1092 (license license:gpl3+)))
1093
1094 (define-public emacs-ample-regexps
1095 (let ((commit "cbe91e148cac1ee8e223874dc956ed4cf607f046")
1096 (revision "1"))
1097 (package
1098 (name "emacs-ample-regexps")
1099 (version (git-version "0.1" revision commit))
1100 (source
1101 (origin
1102 (method git-fetch)
1103 (uri (git-reference
1104 (url "https://github.com/immerrr/ample-regexps.el")
1105 (commit commit)))
1106 (file-name (git-file-name name version))
1107 (sha256
1108 (base32
1109 "1mm4icrwx4mscp7kbbmlc34995r164dhrfczn5ybkyxjzzf76jn1"))))
1110 (build-system emacs-build-system)
1111 (native-inputs
1112 `(("ert-runner" ,emacs-ert-runner)))
1113 (arguments
1114 `(#:tests? #t
1115 #:test-command '("ert-runner" "-l" "ample-regexps")))
1116 (home-page "https://github.com/immerrr/ample-regexps.el")
1117 (synopsis "Compose and reuse Emacs regexps")
1118 (description
1119 "This package allows common parts of regexps to be easily picked out
1120 and reused.")
1121 (license license:gpl3+))))
1122
1123 (define-public emacs-ample-theme
1124 (let ((commit "536966adf882446165a1f756830028faa792c7a9")
1125 (revision "1"))
1126 (package
1127 (name "emacs-ample-theme")
1128 (version (git-version "0.0.0" revision commit))
1129 (source (origin
1130 (method git-fetch)
1131 (uri (git-reference
1132 (url "https://github.com/jordonbiondo/ample-theme")
1133 (commit commit)))
1134 (file-name (git-file-name name version))
1135 (sha256
1136 (base32
1137 "07bpv8dag40qjnm5000pgzpazj4whfxf93x2vprz26sg3mjfx0nf"))))
1138 (build-system emacs-build-system)
1139 (home-page "https://github.com/jordonbiondo/ample-theme")
1140 (synopsis "Theme for Emacs providing dark, light, and flat versions")
1141 (description "Ample themes is a collection of three themes sharing a
1142 similar pallet with a light, dark and flat versions with a focus on being easy
1143 on the eyes during night and day. They only support GUI and 256 colour
1144 terminals.")
1145 (license license:gpl3+))))
1146
1147 (define-public emacs-reformatter
1148 (package
1149 (name "emacs-reformatter")
1150 (version "0.4")
1151 (source
1152 (origin
1153 (method git-fetch)
1154 (uri (git-reference
1155 (url "https://github.com/purcell/reformatter.el.git")
1156 (commit version)))
1157 (file-name (git-file-name name version))
1158 (sha256
1159 (base32
1160 "0hhy6x1bkwlhdlarsgm06g3am4yh02yqv8qs34szpzgy53x84qah"))))
1161 (build-system emacs-build-system)
1162 (home-page "https://github.com/purcell/reformatter.el")
1163 (synopsis "Define commands which run reformatters on the current buffer")
1164 (description
1165 "This library lets elisp authors easily define an idiomatic command to
1166 reformat the current buffer using a command-line program, together with an
1167 optional minor mode which can apply this command automatically on save.")
1168 (license license:gpl3+)))
1169
1170 (define-public emacs-relint
1171 (package
1172 (name "emacs-relint")
1173 (version "1.17")
1174 (source
1175 (origin
1176 (method url-fetch)
1177 (uri (string-append
1178 "https://elpa.gnu.org/packages/relint-" version ".tar"))
1179 (sha256
1180 (base32 "1nv13dqdhf72c1jgk1ml4k6jqb8wsyphcx2vhsyhig5198lg4kd7"))))
1181 (build-system emacs-build-system)
1182 (propagated-inputs `(("emacs-xr" ,emacs-xr)))
1183 (home-page "https://github.com/mattiase/relint")
1184 (synopsis "Elisp regexp mistake finder")
1185 (description
1186 "Relint (regular expression lint) scans Elisp files for mistakes in
1187 regexps, including deprecated syntax and bad practice. It also checks the
1188 regexp-like arguments to @code{skip-chars-forward} and
1189 @code{skip-chars-backward}.")
1190 (license license:gpl3+)))
1191
1192 (define-public emacs-bug-hunter
1193 (let ((commit "b88d981afa9154b236c5a3a83b50d5889d46c6a7")
1194 (revision "1"))
1195 (package
1196 (name "emacs-bug-hunter")
1197 (version (git-version "1.3.1" revision commit))
1198 (source
1199 (origin
1200 (method git-fetch)
1201 (uri (git-reference
1202 (url "https://github.com/Malabarba/elisp-bug-hunter.git")
1203 (commit commit)))
1204 (file-name (git-file-name name commit))
1205 (sha256
1206 (base32
1207 "134fj493sdn93pyyac8rpz1fzahzmayvphsrmqp3wvgysmfqm38l"))))
1208 (build-system emacs-build-system)
1209 (propagated-inputs
1210 `(("emacs-seq" ,emacs-seq)))
1211 (home-page "https://github.com/Malabarba/elisp-bug-hunter")
1212 (synopsis "Hunt down errors by bisecting elisp files")
1213 (description
1214 "The Bug Hunter is an Emacs library that finds the source of an error
1215 or unexpected behavior inside an elisp configuration file (typically
1216 @file{init.el} or @file{.emacs}).")
1217 (license license:gpl3+))))
1218
1219 \f
1220 ;;;
1221 ;;; Web browsing.
1222 ;;;
1223
1224 (define-public emacs-w3m
1225 ;; Emacs-w3m follows a "rolling release" model.
1226 (package
1227 (name "emacs-w3m")
1228 (version "2018-11-11")
1229 (source (origin
1230 (method cvs-fetch)
1231 (uri (cvs-reference
1232 (root-directory
1233 ":pserver:anonymous@cvs.namazu.org:/storage/cvsroot")
1234 (module "emacs-w3m")
1235 (revision version)))
1236 (file-name (string-append name "-" version "-checkout"))
1237 (sha256
1238 (base32
1239 "0nvahdbjs12zg7zsk4gql02mvnv56cf1rwj2f5p42lwp3xvswiwp"))))
1240 (build-system gnu-build-system)
1241 (native-inputs `(("autoconf" ,autoconf)
1242 ("texinfo" ,texinfo)
1243 ("emacs" ,emacs-minimal)))
1244 (inputs `(("w3m" ,w3m)
1245 ("imagemagick" ,imagemagick)))
1246 (arguments
1247 `(#:modules ((guix build gnu-build-system)
1248 (guix build utils)
1249 (guix build emacs-utils))
1250 #:imported-modules (,@%gnu-build-system-modules
1251 (guix build emacs-utils))
1252 #:configure-flags
1253 (let ((out (assoc-ref %outputs "out")))
1254 (list (string-append "--with-lispdir="
1255 out "/share/emacs/site-lisp")
1256 (string-append "--with-icondir="
1257 out "/share/images/emacs-w3m")
1258 ;; Leave .el files uncompressed, otherwise GC can't
1259 ;; identify run-time dependencies. See
1260 ;; <http://lists.gnu.org/archive/html/guix-devel/2015-12/msg00208.html>
1261 "--without-compress-install"))
1262 #:tests? #f ; no check target
1263 #:phases
1264 (modify-phases %standard-phases
1265 (add-after 'unpack 'autoconf
1266 (lambda _
1267 (invoke "autoconf")))
1268 (add-before 'configure 'support-emacs!
1269 (lambda _
1270 ;; For some reason 'AC_PATH_EMACS' thinks that 'Emacs 26' is
1271 ;; unsupported.
1272 (substitute* "configure"
1273 (("EMACS_FLAVOR=unsupported")
1274 "EMACS_FLAVOR=emacs"))
1275 #t))
1276 (add-before 'build 'patch-exec-paths
1277 (lambda* (#:key inputs outputs #:allow-other-keys)
1278 (let ((out (assoc-ref outputs "out"))
1279 (w3m (assoc-ref inputs "w3m"))
1280 (imagemagick (assoc-ref inputs "imagemagick"))
1281 (coreutils (assoc-ref inputs "coreutils")))
1282 (make-file-writable "w3m.el")
1283 (emacs-substitute-variables "w3m.el"
1284 ("w3m-command" (string-append w3m "/bin/w3m"))
1285 ("w3m-touch-command"
1286 (string-append coreutils "/bin/touch"))
1287 ("w3m-icon-directory"
1288 (string-append out "/share/images/emacs-w3m")))
1289 (make-file-writable "w3m-image.el")
1290 (emacs-substitute-variables "w3m-image.el"
1291 ("w3m-imagick-convert-program"
1292 (string-append imagemagick "/bin/convert"))
1293 ("w3m-imagick-identify-program"
1294 (string-append imagemagick "/bin/identify")))
1295 #t)))
1296 (replace 'install
1297 (lambda* (#:key outputs #:allow-other-keys)
1298 (invoke "make" "install" "install-icons")
1299 (with-directory-excursion
1300 (string-append (assoc-ref outputs "out")
1301 "/share/emacs/site-lisp")
1302 (for-each delete-file '("ChangeLog" "ChangeLog.1"))
1303 (symlink "w3m-load.el" "w3m-autoloads.el")
1304 #t))))))
1305 (home-page "http://emacs-w3m.namazu.org/")
1306 (synopsis "Simple Web browser for Emacs based on w3m")
1307 (description
1308 "Emacs-w3m is an emacs interface for the w3m web browser.")
1309 (license license:gpl2+)))
1310
1311 (define-public emacs-wget
1312 (package
1313 (name "emacs-wget")
1314 (version "0.5.0")
1315 (source (origin
1316 (method url-fetch)
1317 (uri (string-append "mirror://debian/pool/main/w/wget-el/wget-el_"
1318 version ".orig.tar.gz"))
1319 (sha256
1320 (base32 "10byvyv9dk0ib55gfqm7bcpxmx2qbih1jd03gmihrppr2mn52nff"))))
1321 (build-system gnu-build-system)
1322 (inputs `(("wget" ,wget)))
1323 (native-inputs `(("emacs" ,emacs-minimal)))
1324 (arguments
1325 `(#:modules ((guix build gnu-build-system)
1326 (guix build utils)
1327 (guix build emacs-utils))
1328 #:imported-modules (,@%gnu-build-system-modules
1329 (guix build emacs-utils))
1330 #:tests? #f ; no check target
1331 #:phases
1332 (modify-phases %standard-phases
1333 (replace 'configure
1334 (lambda* (#:key outputs #:allow-other-keys)
1335 (substitute* "Makefile"
1336 (("/usr/local") (assoc-ref outputs "out"))
1337 (("/site-lisp/emacs-wget") "/site-lisp"))
1338 #t))
1339 (add-before 'build 'patch-exec-paths
1340 (lambda* (#:key inputs outputs #:allow-other-keys)
1341 (let ((wget (assoc-ref inputs "wget")))
1342 (emacs-substitute-variables "wget.el"
1343 ("wget-command" (string-append wget "/bin/wget"))))
1344 #t))
1345 (add-after 'install 'post-install
1346 (lambda* (#:key outputs #:allow-other-keys)
1347 (emacs-generate-autoloads
1348 "wget" (string-append (assoc-ref outputs "out")
1349 "/share/emacs/site-lisp/"))
1350 #t)))))
1351 (home-page "https://www.emacswiki.org/emacs/EmacsWget")
1352 (synopsis "Simple file downloader for Emacs based on wget")
1353 (description
1354 "Emacs-wget is an emacs interface for the wget file downloader.")
1355 (license license:gpl2+)))
1356
1357 (define-public emacs-eww-lnum
1358 (package
1359 (name "emacs-eww-lnum")
1360 (version "1.1")
1361 (source (origin
1362 (method git-fetch)
1363 (uri (git-reference
1364 (url "https://github.com/m00natic/eww-lnum.git")
1365 (commit version)))
1366 (file-name (git-file-name name version))
1367 (sha256
1368 (base32
1369 "0gs6bi3s2sszc6v2b26929azmn5513kvyin99n4d0ark1jdbjmv2"))))
1370 (build-system emacs-build-system)
1371 (home-page "https://github.com/m00natic/eww-lnum")
1372 (synopsis "Conkeror-like functionality for Eww")
1373 (description "This is extension to the Emacs browser Eww that adds
1374 Conkeror-like functionality. In short, currently visible links, forms,
1375 buttons are temporarily assigned numbers with which the former can be
1376 immediately activated. Also filtering can be applied so selection can be
1377 incrementally confined in Isearch manner.")
1378 (license license:gpl3+)))
1379
1380
1381 \f
1382 ;;;
1383 ;;; Multimedia.
1384 ;;;
1385
1386 (define-public emacs-emms
1387 (package
1388 (name "emacs-emms")
1389 (version "5.4")
1390 (source
1391 (origin
1392 (method url-fetch)
1393 (uri (string-append "mirror://gnu/emms/emms-" version ".tar.gz"))
1394 (sha256
1395 (base32 "1nd7sb6pva7qb1ki6w0zhd6zvqzd7742kaqi0f3v4as5jh09l6nr"))
1396 (modules '((guix build utils)))
1397 (snippet
1398 '(begin
1399 (substitute* "Makefile"
1400 (("/usr/bin/install-info")
1401 ;; No need to use 'install-info' since it would create a
1402 ;; useless 'dir' file.
1403 "true")
1404 (("^INFODIR=.*")
1405 ;; Install Info files to $out/share/info, not $out/info.
1406 "INFODIR := $(PREFIX)/share/info\n")
1407 (("/site-lisp/emms")
1408 ;; Install directly in share/emacs/site-lisp, not in a
1409 ;; sub-directory.
1410 "/site-lisp")
1411 (("^all: (.*)\n" _ rest)
1412 ;; Build 'emms-print-metadata'.
1413 (string-append "all: " rest " emms-print-metadata\n")))
1414 #t))))
1415 (build-system gnu-build-system)
1416 (arguments
1417 `(#:modules ((guix build gnu-build-system)
1418 (guix build utils)
1419 (guix build emacs-utils)
1420 (ice-9 ftw))
1421 #:imported-modules (,@%gnu-build-system-modules
1422 (guix build emacs-utils))
1423
1424 #:phases
1425 (modify-phases %standard-phases
1426 (replace 'configure
1427 (lambda* (#:key inputs outputs #:allow-other-keys)
1428 (let ((out (assoc-ref outputs "out"))
1429 (flac (assoc-ref inputs "flac"))
1430 (vorbis (assoc-ref inputs "vorbis-tools"))
1431 (alsa (assoc-ref inputs "alsa-utils"))
1432 (mpg321 (assoc-ref inputs "mpg321"))
1433 (mp3info (assoc-ref inputs "mp3info"))
1434 (mutagen (assoc-ref inputs "mutagen"))
1435 (opus (assoc-ref inputs "opus-tools")))
1436 ;; Specify the installation directory.
1437 (substitute* "Makefile"
1438 (("PREFIX=.*$")
1439 (string-append "PREFIX := " out "\n")))
1440
1441 (setenv "SHELL" (which "sh"))
1442 (setenv "CC" "gcc")
1443
1444 ;; Specify the absolute file names of the various
1445 ;; programs so that everything works out-of-the-box.
1446 (with-directory-excursion "lisp"
1447 (emacs-substitute-variables
1448 "emms-player-mpg321-remote.el"
1449 ("emms-player-mpg321-remote-command"
1450 (string-append mpg321 "/bin/mpg321")))
1451 (substitute* "emms-player-simple.el"
1452 (("\"ogg123\"")
1453 (string-append "\"" vorbis "/bin/ogg123\"")))
1454 (substitute* "emms-player-simple.el"
1455 (("\"mpg321\"")
1456 (string-append "\"" mpg321 "/bin/mpg321\"")))
1457 (emacs-substitute-variables "emms-info-ogginfo.el"
1458 ("emms-info-ogginfo-program-name"
1459 (string-append vorbis "/bin/ogginfo")))
1460 (emacs-substitute-variables "emms-info-opusinfo.el"
1461 ("emms-info-opusinfo-program-name"
1462 (string-append opus "/bin/opusinfo")))
1463 (emacs-substitute-variables "emms-info-libtag.el"
1464 ("emms-info-libtag-program-name"
1465 (string-append out "/bin/emms-print-metadata")))
1466 (emacs-substitute-variables "emms-info-mp3info.el"
1467 ("emms-info-mp3info-program-name"
1468 (string-append mp3info "/bin/mp3info")))
1469 (emacs-substitute-variables "emms-info-metaflac.el"
1470 ("emms-info-metaflac-program-name"
1471 (string-append flac "/bin/metaflac")))
1472 (emacs-substitute-variables "emms-source-file.el"
1473 ("emms-source-file-gnu-find" (which "find")))
1474 (substitute* "emms-volume-amixer.el"
1475 (("\"amixer\"")
1476 (string-append "\"" alsa "/bin/amixer\"")))
1477 (substitute* "emms-tag-editor.el"
1478 (("\"mid3v2\"")
1479 (string-append "\"" mutagen "/bin/mid3v2\"")))
1480 #t))))
1481 (add-before 'install 'pre-install
1482 (lambda* (#:key outputs #:allow-other-keys)
1483 ;; The 'install' rule expects the target directories to exist.
1484 (let* ((out (assoc-ref outputs "out"))
1485 (bin (string-append out "/bin"))
1486 (man1 (string-append out "/share/man/man1")))
1487 (mkdir-p bin)
1488 (mkdir-p man1)
1489
1490 ;; Ensure that files are not rejected by gzip
1491 (let ((early-1980 315619200)) ; 1980-01-02 UTC
1492 (ftw "." (lambda (file stat flag)
1493 (unless (<= early-1980 (stat:mtime stat))
1494 (utime file early-1980 early-1980))
1495 #t)))
1496 #t)))
1497 (add-after 'install 'post-install
1498 (lambda* (#:key outputs #:allow-other-keys)
1499 (let ((out (assoc-ref outputs "out")))
1500 (symlink "emms-auto.el"
1501 (string-append out "/share/emacs/site-lisp/"
1502 "emms-autoloads.el")))
1503 #t)))
1504 #:tests? #f))
1505 (native-inputs `(("emacs" ,emacs-minimal) ;for (guix build emacs-utils)
1506 ("texinfo" ,texinfo)))
1507 (inputs `(("alsa-utils" ,alsa-utils)
1508 ("flac" ,flac) ;for metaflac
1509 ("vorbis-tools" ,vorbis-tools)
1510 ("mpg321" ,mpg321)
1511 ("taglib" ,taglib)
1512 ("mp3info" ,mp3info)
1513 ("mutagen" ,python-mutagen)
1514 ("opus-tools" ,opus-tools)))
1515 (properties '((upstream-name . "emms")))
1516 (synopsis "Emacs Multimedia System")
1517 (description
1518 "EMMS is the Emacs Multimedia System. It is a small front-end which
1519 can control one of the supported external players. Thus, it supports
1520 whatever formats are supported by your music player. It also
1521 supports tagging and playlist management, all behind a clean and
1522 light user interface.")
1523 (home-page "https://www.gnu.org/software/emms/")
1524 (license license:gpl3+)))
1525
1526 (define-public emacs-emms-mode-line-cycle
1527 (package
1528 (name "emacs-emms-mode-line-cycle")
1529 (version "0.2.5")
1530 (source
1531 (origin
1532 (method git-fetch)
1533 (uri (git-reference
1534 (url "https://github.com/momomo5717/emms-mode-line-cycle")
1535 (commit version)))
1536 (file-name (git-file-name name version))
1537 (sha256
1538 (base32
1539 "0q80f0plch6k4lhs8c9qm3mfycfbp3kn5sjrk9zxgxwnn901y9mp"))))
1540 (build-system emacs-build-system)
1541 (propagated-inputs
1542 `(("emms" ,emacs-emms)))
1543 (home-page "https://github.com/momomo5717/emms-mode-line-cycle")
1544 (synopsis "Display the EMMS mode line as a ticker")
1545 (description
1546 "This is a minor mode for updating the EMMS mode-line string cyclically
1547 within a specified width. It is useful for displaying long track titles.")
1548 (license license:gpl3+)))
1549
1550 \f
1551 ;;;
1552 ;;; Miscellaneous.
1553 ;;;
1554
1555 (define-public emacs-ace-link
1556 (package
1557 (name "emacs-ace-link")
1558 (version "0.5.0")
1559 (source
1560 (origin
1561 (method git-fetch)
1562 (uri (git-reference
1563 (url "https://github.com/abo-abo/ace-link.git")
1564 (commit version)))
1565 (file-name (git-file-name name version))
1566 (sha256
1567 (base32
1568 "147dz79vg4ym5wg3d544bw2khdb2j3hr73rw4qfm64wf0q2dj0vk"))))
1569 (build-system emacs-build-system)
1570 (propagated-inputs
1571 `(("emacs-avy" ,emacs-avy)))
1572 (home-page "https://github.com/abo-abo/ace-link")
1573 (synopsis "Quickly follow links in Emacs")
1574 (description
1575 "Currently, to jump to a link in a @code{Info-mode}, @code{help-mode},
1576 @code{woman-mode}, @code{org-mode}, @code{eww-mode}, @code{compilation-mode},
1577 @code{goto-address-mode} buffer, you can tab through the links to select the
1578 one you want. This is an O(N) operation, where the N is the amount of links.
1579 This package turns this into an O(1) operation. It does so by assigning a
1580 letter to each link using avy.")
1581 (license license:gpl3+)))
1582
1583 (define-public emacs-auto-sudoedit
1584 (package
1585 (name "emacs-auto-sudoedit")
1586 (version "1.0.0")
1587 (source
1588 (origin
1589 (method git-fetch)
1590 (uri (git-reference
1591 (url "https://github.com/ncaq/auto-sudoedit.git")
1592 (commit (string-append "v" version))))
1593 (file-name (git-file-name name version))
1594 (sha256
1595 (base32 "10p0hc95j382km8655pqld9wxg10j1f36czzppkdd6a55cxarv9f"))))
1596 (propagated-inputs
1597 `(("emacs-f" ,emacs-f)))
1598 (build-system emacs-build-system)
1599 (home-page "https://github.com/ncaq/auto-sudoedit")
1600 (synopsis "Automatically re-open read-only files with sudo")
1601 (description
1602 "This package automatically reopens a file or directory with
1603 @command{sudo} if it cannot write to it.")
1604 (license license:expat)))
1605
1606 (define-public emacs-bbdb
1607 (package
1608 (name "emacs-bbdb")
1609 (version "3.2")
1610 (source
1611 (origin
1612 (method url-fetch)
1613 (uri (string-append "https://elpa.gnu.org/packages/"
1614 "bbdb-" version ".tar"))
1615 (sha256
1616 (base32 "1p56dg0mja2b2figy7yhdx714zd5j6njzn0k07zjka3jc06izvjx"))))
1617 (build-system emacs-build-system)
1618 (arguments
1619 ;; XXX: The following file cannot be byte-compiled, because et requires
1620 ;; `vm-autoloads', from the VM package, with is neither in Emacs nor
1621 ;; packaged in Guix. So, don't bother for now.
1622 `(#:exclude '("bbdb-vm\\.el")))
1623 (home-page "http://elpa.gnu.org/packages/bbdb.html")
1624 (synopsis "Contact management utility for Emacs")
1625 (description
1626 "BBDB is the Insidious Big Brother Database for GNU Emacs. It provides
1627 an address book for email and snail mail addresses, phone numbers and the
1628 like. It can be linked with various Emacs mail clients (Message and Mail
1629 mode, Rmail, Gnus, MH-E, and VM). BBDB is fully customizable.")
1630 (license license:gpl3+)))
1631
1632 (define-public emacs-aggressive-indent
1633 (package
1634 (name "emacs-aggressive-indent")
1635 (version "1.8.3")
1636 (source (origin
1637 (method url-fetch)
1638 (uri (string-append "https://elpa.gnu.org/packages/"
1639 "aggressive-indent-" version ".el"))
1640 (sha256
1641 (base32
1642 "0jnzccl50x0wapprgwxinp99pwwa6j43q6msn4gv437j7swy8wnj"))))
1643 (build-system emacs-build-system)
1644 (home-page "https://elpa.gnu.org/packages/aggressive-indent.html")
1645 (synopsis "Minor mode to aggressively keep your code always indented")
1646 (description
1647 "@code{aggressive-indent-mode} is a minor mode that keeps your code
1648 always indented. It reindents after every change, making it more reliable
1649 than @code{electric-indent-mode}.")
1650 (license license:gpl2+)))
1651
1652 (define-public emacs-ctrlf
1653 (package
1654 (name "emacs-ctrlf")
1655 (version "1.0")
1656 (source
1657 (origin
1658 (method git-fetch)
1659 (uri (git-reference
1660 (url "https://github.com/raxod502/ctrlf.git")
1661 (commit (string-append "v" version))))
1662 (file-name (git-file-name name version))
1663 (sha256
1664 (base32 "10gnhafas54zj3z9173h1g7b519ac4i26afclmw3w1pk6qyyb03z"))))
1665 (build-system emacs-build-system)
1666 (home-page "https://github.com/raxod502/ctrlf/")
1667 (synopsis "Single-buffer text search in Emacs")
1668 (description "CTRLF (pronounced @emph{control F}) is an intuitive and
1669 efficient solution for single-buffer text search in Emacs, replacing packages
1670 such as Isearch, Swiper, and helm-swoop. It takes inspiration from the
1671 widely-adopted and battle-tested @samp{Ctrl+F} interfaces in programs such as
1672 web browsers, but follows the flow and keybindings of Isearch.")
1673 (license license:expat)))
1674
1675 (define-public emacs-dhall-mode
1676 ;; There is no proper release. The base version is extracted from the
1677 ;; "Version" keyword in the main file.
1678 (let ((revision "0")
1679 (commit "ef4d33debe224c6ba37e51a29b9dc8b74f20f1c2"))
1680 (package
1681 (name "emacs-dhall-mode")
1682 (version (git-version "0.1.3" revision commit))
1683 (source
1684 (origin
1685 (method git-fetch)
1686 (uri
1687 (git-reference
1688 (url "https://github.com/psibi/dhall-mode")
1689 (commit commit)))
1690 (file-name (git-file-name name version))
1691 (sha256
1692 (base32 "1232y2k4l3bsz90pgis78zxmrw7jv09dfaip21yc1w4vpxfyr384"))))
1693 (build-system emacs-build-system)
1694 (propagated-inputs
1695 `(("emacs-reformatter" ,emacs-reformatter)))
1696 (home-page "https://github.com/psibi/dhall-mode")
1697 (synopsis "Major mode for working with Dhall configuration language")
1698 (description
1699 "Dhall-mode provides an Emacs Major mode for working with the Dhall
1700 configuration language. It features:
1701
1702 @itemize
1703 @item Syntax highlighting
1704 @item Multiline support for String
1705 @item Basic indentation, commenting
1706 @item Automatic formatting on save using dhall-format.
1707 @item Error highlighting.
1708 @end itemize")
1709 (license license:gpl3+))))
1710
1711 (define-public emacs-link-hint
1712 ;; Last release was in 2015.
1713 (let ((commit "d74a483652486260c052941fedeadddb1ea71f88")
1714 (revision "1"))
1715 (package
1716 (name "emacs-link-hint")
1717 (version (git-version "0.1" revision commit))
1718 (source
1719 (origin
1720 (method git-fetch)
1721 (uri (git-reference
1722 (url "https://github.com/noctuid/link-hint.el")
1723 (commit commit)))
1724 (file-name (git-file-name name version))
1725 (sha256
1726 (base32
1727 "0dghxd165fbds6czy9bfwpid3i4irgp3q08n9mg57sfifi0cmij0"))))
1728 (build-system emacs-build-system)
1729 (propagated-inputs
1730 `(("emacs-avy" ,emacs-avy)))
1731 (home-page "https://github.com/noctuid/link-hint.el")
1732 (synopsis "Vimperator-style link-hinting in Emacs")
1733 (description "This package provides commands for visiting and acting on
1734 links.")
1735 (license license:gpl3+))))
1736
1737 (define-public emacs-ag
1738 (package
1739 (name "emacs-ag")
1740 (version "0.48")
1741 (source (origin
1742 (method git-fetch)
1743 (uri (git-reference
1744 (url "https://github.com/Wilfred/ag.el.git")
1745 (commit version)))
1746 (file-name (git-file-name name version))
1747 (sha256
1748 (base32
1749 "1p918y24vcn2pdliaymd210xp9fvhd4a1srqbv2lfiqrh59yjidx"))))
1750 (build-system emacs-build-system)
1751 (arguments
1752 `(#:phases
1753 (modify-phases %standard-phases
1754 (add-before 'install 'make-info
1755 (lambda _
1756 (with-directory-excursion "docs"
1757 (invoke "make" "info"))))
1758 (add-after 'install 'install-info
1759 (lambda* (#:key outputs #:allow-other-keys)
1760 (let* ((out (assoc-ref outputs "out"))
1761 (info (string-append out "/share/info")))
1762 (install-file "docs/_build/texinfo/agel.info" info)
1763 #t))))))
1764 (native-inputs
1765 `(("python-sphinx" ,python-sphinx)
1766 ("texinfo" ,texinfo)))
1767 (propagated-inputs
1768 `(("dash" ,emacs-dash)
1769 ("s" ,emacs-s)
1770 ;; We need to use 'ag' as the executable on remote systems.
1771 ("the-silver-searcher" ,the-silver-searcher)))
1772 (home-page "https://github.com/Wilfred/ag.el")
1773 (synopsis "Front-end for ag (the-silver-searcher) for Emacs")
1774 (description "This package provides the ability to use the silver
1775 searcher, a code searching tool, sometimes abbreviated to @code{ag}. Features
1776 include version control system awareness, use of Perl compatible regular
1777 expressions, editing the search results directly and searching file names
1778 rather than the contents of files.")
1779 (license license:gpl3+)))
1780
1781 (define-public emacs-async
1782 (package
1783 (name "emacs-async")
1784 (home-page "https://github.com/jwiegley/emacs-async")
1785 (version "1.9.4")
1786 (source (origin
1787 (method git-fetch)
1788 (uri (git-reference
1789 (url home-page)
1790 (commit (string-append "v" version))))
1791 (file-name (git-file-name name version))
1792 (sha256
1793 (base32
1794 "0hhpyxb3d531jb2f3wvzx25183f0anm8nxv6mh0p825q2gkm6ly7"))))
1795 (build-system emacs-build-system)
1796 (synopsis "Asynchronous processing in Emacs")
1797 (description
1798 "This package provides the ability to call asynchronous functions and
1799 processes. For example, it can be used to run dired commands (for copying,
1800 moving, etc.) asynchronously using @code{dired-async-mode}. Also it is used
1801 as a library for other Emacs packages.")
1802 (license license:gpl3+)))
1803
1804 (define-public emacs-auctex
1805 (package
1806 (name "emacs-auctex")
1807 (version "12.2.2")
1808 (source
1809 (origin
1810 (method url-fetch)
1811 (uri (string-append "https://elpa.gnu.org/packages/auctex-"
1812 version ".tar"))
1813 (sha256
1814 (base32 "1map25xn7r28aldhcz9n8pbfk2l3gvnxx8hgih3ax8hyvnfi6brh"))))
1815 (build-system emacs-build-system)
1816 ;; We use 'emacs' because AUCTeX requires dbus at compile time
1817 ;; ('emacs-minimal' does not provide dbus).
1818 (arguments
1819 `(#:emacs ,emacs
1820 #:include '("\\.el$" "^images/" "^latex/" "\\.info$")
1821 #:exclude '("^tests/" "^latex/README")
1822 #:phases
1823 (modify-phases %standard-phases
1824 (add-after 'install 'install-doc
1825 (lambda* (#:key outputs #:allow-other-keys)
1826 (let* ((out (assoc-ref outputs "out"))
1827 (etc-dir (string-append out "/share/" ,name "/"
1828 ,version "/etc")))
1829 (with-directory-excursion "doc"
1830 (setenv "HOME" (getenv "TMPDIR")) ; for mktextfm
1831 (invoke "pdftex" "tex-ref")
1832 (install-file "tex-ref.pdf" (string-append etc-dir
1833 "/refcards")))
1834 #t))))))
1835 (native-inputs
1836 `(("perl" ,perl)))
1837 (inputs
1838 `(("texlive" ,(texlive-union (list texlive-amsfonts)))))
1839 (home-page "https://www.gnu.org/software/auctex/")
1840 (synopsis "Integrated environment for TeX")
1841 (description
1842 "AUCTeX is a comprehensive customizable integrated environment for
1843 writing input files for TeX, LaTeX, ConTeXt, Texinfo, and docTeX using Emacs
1844 or XEmacs.")
1845 (license license:gpl3+)))
1846
1847 (define-public emacs-autothemer
1848 (package
1849 (name "emacs-autothemer")
1850 (version "0.2.2")
1851 (source
1852 (origin
1853 (method git-fetch)
1854 (uri (git-reference
1855 (url "https://github.com/sebastiansturm/autothemer.git")
1856 (commit version)))
1857 (file-name (git-file-name name version))
1858 (sha256
1859 (base32
1860 "0cd2pqh6k32sjidkcd8682y4l6mx52xw4a05f38kk8nsrk28m74k"))))
1861 (build-system emacs-build-system)
1862 (propagated-inputs
1863 `(("emacs-dash" ,emacs-dash)))
1864 (home-page "https://github.com/sebastiansturm/autothemer")
1865 (synopsis "Conveniently create Emacs themes")
1866 (description
1867 "Autothemer provides a thin layer on top of @code{deftheme} and
1868 @code{custom-theme-set-faces} that creates a new custom color theme, based on
1869 a set of simplified face specifications and a user-supplied color palette")
1870 (license license:gpl3+)))
1871
1872 (define-public emacs-howm
1873 (package
1874 (name "emacs-howm")
1875 (version "1.4.5")
1876 (source
1877 (origin
1878 (method url-fetch)
1879 (uri (string-append "https://howm.sourceforge.jp/a/howm-"
1880 version ".tar.gz"))
1881 (sha256
1882 (base32 "1kvr5pxpc9rwhkza9025mdi0wvh0f0rpawl21rzirjk1x10903yi"))))
1883 (build-system gnu-build-system)
1884 (native-inputs
1885 `(("emacs" ,emacs-minimal)))
1886 (arguments
1887 `(#:configure-flags
1888 (list (string-append "--with-howmdir=" %output
1889 "/share/emacs/site-lisp/"))
1890 #:modules ((guix build gnu-build-system)
1891 ((guix build emacs-build-system) #:prefix emacs:)
1892 (guix build utils))
1893 #:imported-modules (,@%gnu-build-system-modules
1894 (guix build emacs-build-system)
1895 (guix build emacs-utils))
1896 #:phases
1897 (modify-phases %standard-phases
1898 (add-after 'install 'make-autoloads
1899 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
1900 (home-page "https://howm.osdn.jp/")
1901 (synopsis "Note-taking tool for Emacs")
1902 (description "Howm is a note-taking tool for Emacs. Like
1903 code@{emacs-wiki.el}, it facilitates using hyperlinks and doing full-text
1904 searches. Unlike code@{emacs-wiki.el}, it can be combined with any format.")
1905 (license license:gpl1+)))
1906
1907 (define-public emacs-bm
1908 (package
1909 (name "emacs-bm")
1910 (version "201905")
1911 (source
1912 (origin
1913 (method git-fetch)
1914 (uri (git-reference
1915 (url "https://github.com/joodland/bm.git")
1916 (commit version)))
1917 (file-name (git-file-name name version))
1918 (sha256
1919 (base32 "180b3rc13asrmsdh7v405d54jkrininvaj52xhp71vw91ng51dkn"))))
1920 (build-system emacs-build-system)
1921 (home-page "https://github.com/joodland/bm")
1922 (synopsis "Visual bookmarks for Emacs")
1923 (description "This package provides visible, buffer local bookmarks and
1924 the ability to jump forward and backward to the next bookmark.")
1925 (license license:gpl2+)))
1926
1927 (define-public emacs-calfw
1928 (package
1929 (name "emacs-calfw")
1930 (version "1.6")
1931 (source
1932 (origin
1933 (method git-fetch)
1934 (uri (git-reference
1935 (url "https://github.com/kiwanami/emacs-calfw.git")
1936 (commit (string-append "v" version))))
1937 (file-name (git-file-name name version))
1938 (sha256
1939 (base32
1940 "0r42cagvmvvib76kd15nd9ix55ys6i549vxnls4z16s864695zpa"))))
1941 (build-system emacs-build-system)
1942 (propagated-inputs
1943 `(("emacs-howm" ,emacs-howm)))
1944 (home-page "https://github.com/kiwanami/emacs-calfw/")
1945 (synopsis "Calendar framework for Emacs")
1946 (description
1947 "This package displays a calendar view with various schedule data in the
1948 Emacs buffer.")
1949 (license license:gpl3+)))
1950
1951 (define-public emacs-caps-lock
1952 (package
1953 (name "emacs-caps-lock")
1954 (version "1.0")
1955 (source
1956 (origin
1957 (method url-fetch)
1958 (uri (string-append "https://elpa.gnu.org/packages/"
1959 "caps-lock-" version ".el"))
1960 (sha256
1961 (base32 "1i4hwam81p4dr0bk8257fkiz4xmv6knkjxj7a00fa35kgx5blpva"))))
1962 (build-system emacs-build-system)
1963 (home-page "http://elpa.gnu.org/packages/caps-lock.html")
1964 (synopsis "Caps Lock as a minor mode")
1965 (description
1966 "This package provides a minor mode to emulate the behavior of a Caps
1967 Lock key.")
1968 (license license:gpl3+)))
1969
1970 (define-public emacs-chronometrist
1971 (package
1972 (name "emacs-chronometrist")
1973 (version "0.4.3")
1974 (source
1975 (origin
1976 (method git-fetch)
1977 (uri (git-reference
1978 (url "https://framagit.org/contrapunctus/chronometrist.git")
1979 (commit (string-append "v" version))))
1980 (file-name (git-file-name name version))
1981 (sha256
1982 (base32 "1ljjqzghcap4admv0hvw6asm148b80mfgjgxjjcw6qc95fkjjjlr"))))
1983 (build-system emacs-build-system)
1984 (propagated-inputs
1985 `(("emacs-dash" ,emacs-dash)
1986 ("emacs-s" ,emacs-s)))
1987 (home-page "https://framagit.org/contrapunctus/chronometrist")
1988 (synopsis "Time tracker for Emacs")
1989 (description "Chronometrist is a time tracker in Emacs, largely modelled
1990 after the Android application, @emph{A Time Tracker}.
1991
1992 Its features are:
1993 @itemize
1994 @item Simple and efficient to use,
1995 @item Displays useful information about your time usage,
1996 @item Support for both mouse and keyboard,
1997 @item Human errors in tracking are easily fixed by editing a plain text file,
1998 @item Hooks to let you perform arbitrary actions when starting/stopping tasks.
1999 @end itemize")
2000 ;; Software is dual-licensed.
2001 (license (list license:unlicense license:wtfpl2))))
2002
2003 (define-public emacs-direnv
2004 (package
2005 (name "emacs-direnv")
2006 (version "2.0.0")
2007 (source
2008 (origin
2009 (method git-fetch)
2010 (uri (git-reference
2011 (url "https://github.com/wbolster/emacs-direnv.git")
2012 (commit version)))
2013 (file-name (git-file-name name version))
2014 (sha256
2015 (base32
2016 "005ibyzsx1fdyrl5iyhqpb1bg83mphzahq7zvw58x00syyqi2z49"))))
2017 (build-system emacs-build-system)
2018 (propagated-inputs
2019 `(("dash" ,emacs-dash)
2020 ("with-editor" ,emacs-with-editor)))
2021 (home-page "https://github.com/wbolster/emacs-direnv")
2022 (synopsis "Direnv integration for Emacs")
2023 (description
2024 "This package provides support for invoking direnv to get the environment
2025 for the current file and updating the environment within Emacs to match.
2026
2027 Direnv can be invoked manually, and a global minor mode is included that will
2028 update the environment when the active buffer changes.
2029
2030 Using emacs-direnv means that programs started from Emacs will use the
2031 environment set through Direnv.")
2032 (license license:gpl3+)))
2033
2034 (define-public emacs-elf-mode
2035 (package
2036 (name "emacs-elf-mode")
2037 (version "0.1.0")
2038 (source
2039 (origin
2040 (method git-fetch)
2041 (uri
2042 (git-reference
2043 (url "https://github.com/abo-abo/elf-mode")
2044 (commit version)))
2045 (file-name (git-file-name name version))
2046 (sha256
2047 (base32 "0cbvjbk2893ag1iy8ggixpirfiyhssm7fii96hb9jqdz874cdl0k"))))
2048 (build-system emacs-build-system)
2049 (home-page "https://github.com/abo-abo/elf-mode")
2050 (synopsis "Show symbol list when opening a binary file in Emacs")
2051 (description "This Emacs package provides a command showing the symbols
2052 that the binary uses instead of the actual binary contents.")
2053 (license license:gpl3+)))
2054
2055 (define-public emacs-form-feed
2056 (package
2057 (name "emacs-form-feed")
2058 (version "0.2.2")
2059 (source
2060 (origin
2061 (method git-fetch)
2062 (uri (git-reference
2063 (url "https://github.com/wasamasa/form-feed.git")
2064 (commit version)))
2065 (file-name (git-file-name name version))
2066 (sha256
2067 (base32 "171jna631b2iqcimfsik9c66gii8nc0zdb58m077w00rn7rcxbh2"))))
2068 (build-system emacs-build-system)
2069 (home-page "https://github.com/wasamasa/form-feed")
2070 (synopsis "Display ^L glyphs as horizontal lines")
2071 (description
2072 "This package provides a minor mode @code{form-feed-mode} to display page
2073 delimiters which usually appear as ^L glyphs on a single line as horizontal
2074 lines spanning the entire window. The minor mode is suitable for inclusion
2075 into mode hooks and is intended to be used that way.")
2076 (license license:gpl3+)))
2077
2078 (define-public emacs-ggtags
2079 (package
2080 (name "emacs-ggtags")
2081 (version "0.8.13")
2082 (source
2083 (origin
2084 (method url-fetch)
2085 (uri (string-append "https://elpa.gnu.org/packages/ggtags-"
2086 version ".el"))
2087 (sha256
2088 (base32
2089 "1qa7lcrcmf76sf6dy8sxbg4adq7rg59fm0n5848w3qxgsr0h45fg"))))
2090 (build-system emacs-build-system)
2091 (inputs
2092 `(("global" ,global)))
2093 (arguments
2094 `(#:phases
2095 (modify-phases %standard-phases
2096 (add-after 'unpack 'configure
2097 (lambda* (#:key inputs #:allow-other-keys)
2098 (chmod "ggtags.el" #o644)
2099 (emacs-substitute-variables "ggtags.el"
2100 ("ggtags-executable-directory"
2101 (string-append (assoc-ref inputs "global") "/bin")))
2102 #t)))))
2103 (home-page "https://github.com/leoliu/ggtags")
2104 (synopsis "Frontend to the GNU Global source code tagging system")
2105 (description "@code{ggtags} provides a frontend to the GNU Global source
2106 code tagging system.
2107
2108 Features:
2109
2110 @itemize
2111 @item Build on @code{compile.el} for asynchronicity and its large feature-set.
2112 @item Automatically update Global's tag files when needed with tuning for
2113 large source trees.
2114 @item Intuitive navigation among multiple matches with mode-line display of
2115 current match, total matches and exit status.
2116 @item Read tag with completion.
2117 @item Show definition at point.
2118 @item Jump to #include files.
2119 @item Support search history and saving a search to register/bookmark.
2120 @item Query replace.
2121 @item Manage Global's environment variables on a per-project basis.
2122 @item Highlight (definition) tag at point.
2123 @item Abbreviated display of file names.
2124 @item Support all Global search backends: @code{grep}, @code{idutils}, etc.
2125 @item Support exuberant ctags @url{http://ctags.sourceforge.net/} and
2126 @code{pygments} backend.
2127 @item Support all Global's output formats: @code{grep}, @code{ctags-x},
2128 @code{cscope} etc.
2129 @item Support projects on remote hosts (e.g. via @code{tramp}).
2130 @item Support eldoc.
2131 @item Search @code{GTAGSLIBPATH} for references and symbols.
2132 @end itemize\n")
2133 (license license:gpl3+)))
2134
2135 (define-public emacs-go-mode
2136 (package
2137 (name "emacs-go-mode")
2138 (version "1.5.0")
2139 (source (origin
2140 (method git-fetch)
2141 (uri (git-reference
2142 (url "https://github.com/dominikh/go-mode.el.git")
2143 (commit (string-append "v" version))))
2144 (file-name (git-file-name name version))
2145 (sha256
2146 (base32
2147 "1nd2h50yb0493wvf1h7fzplq45rmqn2w7kxpgnlxzhkvq99v8vzf"))))
2148 (build-system emacs-build-system)
2149 (arguments
2150 `(#:phases
2151 (modify-phases %standard-phases
2152 (add-after 'unpack 'make-writable
2153 (lambda _
2154 (for-each make-file-writable (find-files "." "\\.el$"))
2155 #t)))))
2156 (home-page "https://github.com/dominikh/go-mode.el")
2157 (synopsis "Go mode for Emacs")
2158 (description
2159 "This package provides go-mode, an Emacs mode for working with software
2160 written in the Go programming language.")
2161 (license license:bsd-3)))
2162
2163 (define-public emacs-google-maps
2164 (package
2165 (name "emacs-google-maps")
2166 (version "1.0.0")
2167 (source (origin
2168 (method git-fetch)
2169 (uri (git-reference
2170 (url "https://github.com/jd/google-maps.el.git")
2171 (commit version)))
2172 (file-name (git-file-name name version))
2173 (sha256
2174 (base32
2175 "183igr5lp20zcqi7rc01fk76sfxdhksd74i11v16gdsifdkjimd0"))))
2176 (build-system emacs-build-system)
2177 (home-page "https://github.com/jd/google-maps.el")
2178 (synopsis "Access Google Maps from Emacs")
2179 (description "The @code{google-maps} package displays Google
2180 Maps directly inside Emacs.")
2181 (license license:gpl3+)))
2182
2183 (define-public emacs-graphviz-dot-mode
2184 (package
2185 (name "emacs-graphviz-dot-mode")
2186 (version "0.4.2")
2187 (source
2188 (origin
2189 (method git-fetch)
2190 (uri (git-reference
2191 (url "https://github.com/ppareit/graphviz-dot-mode.git")
2192 (commit (string-append "v" version))))
2193 (file-name (git-file-name name version))
2194 (sha256
2195 (base32 "1v1p85wk73nfsvv66qf90flgf9dqhmv15z1r7q4zmc4ifklqn08m"))))
2196 (build-system emacs-build-system)
2197 (arguments
2198 `(#:phases
2199 (modify-phases %standard-phases
2200 (add-before 'install 'make-info
2201 (lambda* (#:key inputs #:allow-other-keys)
2202 (with-directory-excursion "texinfo"
2203 (substitute* "Makefile"
2204 (("\\/usr\\/bin\\/gzip")
2205 (string-append (assoc-ref inputs "gzip") "/bin/gzip")))
2206 (invoke "make"
2207 "clean"
2208 "info"
2209 (string-append "TEXINFODIR="
2210 (assoc-ref inputs "texinfo")
2211 "/bin")))))
2212 (add-after 'install 'install-info
2213 (lambda* (#:key outputs #:allow-other-keys)
2214 (let* ((out (assoc-ref outputs "out"))
2215 (info (string-append out "/share/info")))
2216 (install-file "texinfo/graphviz-dot-mode.info.gz" info)
2217 #t))))))
2218 (native-inputs
2219 `(("gzip" ,gzip)
2220 ("texinfo" ,texinfo)))
2221 (propagated-inputs
2222 `(("emacs-company" ,emacs-company)))
2223 (home-page "http://ppareit.github.com/graphviz-dot-mode")
2224 (synopsis "Major mode for editing Graphviz DOT files")
2225 (description
2226 "This Emacs package helps you to create @file{.dot} or @file{.gv} files
2227 using the DOT syntax, and use Graphviz to convert these files to diagrams.")
2228 (license license:gpl2+)))
2229
2230 (define-public emacs-imenu-list
2231 (package
2232 (name "emacs-imenu-list")
2233 (version "0.8")
2234 (source
2235 (origin
2236 (method git-fetch)
2237 (uri
2238 (git-reference
2239 (url "https://github.com/bmag/imenu-list")
2240 (commit (string-append "v" version))))
2241 (file-name (git-file-name name version))
2242 (sha256
2243 (base32 "13xh9bdl3k6ccfq83wjmkpi4269qahv4davki4wq18dr4amrzhlx"))))
2244 (build-system emacs-build-system)
2245 (home-page "https://github.com/bmag/imenu-list")
2246 (synopsis
2247 "Automatically tracks the current buffer's imenu entries")
2248 (description
2249 "This Emacs minor mode creates an automatically updated buffer called
2250 @code{*Ilist*} that is populated with the current buffer's imenu entries.
2251 This buffer is typically shown as a sidebar (Emacs vertically splits the
2252 window).")
2253 (license license:gpl3+)))
2254
2255 (define-public emacs-mmm-mode
2256 (package
2257 (name "emacs-mmm-mode")
2258 (version "0.5.7")
2259 (source
2260 (origin
2261 (method git-fetch)
2262 (uri (git-reference
2263 (url "https://github.com/purcell/mmm-mode.git")
2264 (commit version)))
2265 (file-name (git-file-name name version))
2266 (sha256
2267 (base32
2268 "0lxd55yhz0ag7v1ydff55bg4h8snq5lbk8cjwxqpyq6gh4v7md1h"))))
2269 (build-system gnu-build-system)
2270 (native-inputs
2271 `(("autoconf" ,autoconf)
2272 ("automake" ,automake)
2273 ("emacs" ,emacs-minimal)
2274 ("texinfo" ,texinfo-5))) ;fails to build with Texinfo 6.7
2275 (home-page "https://github.com/purcell/mmm-mode")
2276 (synopsis "Allow multiple major modes in an Emacs buffer")
2277 (description
2278 "MMM Mode is a minor mode that allows multiple major modes to coexist in a
2279 single buffer.")
2280 (license license:gpl3+)))
2281
2282 (define-public emacs-mmt
2283 (package
2284 (name "emacs-mmt")
2285 (version "0.2.0")
2286 (source
2287 (origin
2288 (method git-fetch)
2289 (uri (git-reference
2290 (url "https://github.com/mrkkrp/mmt.git")
2291 (commit version)))
2292 (file-name (git-file-name name version))
2293 (sha256
2294 (base32 "13vbfc5597v0gd87qyhn10f93nb477vjpg3jlpphbax9fvkf4gav"))))
2295 (build-system emacs-build-system)
2296 (home-page "https://github.com/mrkkrp/mmt")
2297 (synopsis "Classic tools to write Emacs Lisp macros")
2298 (description "Emacs MMT is a package that contains classic tools for Emacs
2299 Lisp developers who want to write macros with convenience.")
2300 (license license:gpl3+)))
2301
2302 (define-public emacs-tablist
2303 (package
2304 (name "emacs-tablist")
2305 (version "1.0")
2306 (source (origin
2307 (method git-fetch)
2308 (uri (git-reference
2309 (url "https://github.com/politza/tablist.git")
2310 (commit (string-append "v" version))))
2311 (file-name (git-file-name name version))
2312 (sha256
2313 (base32
2314 "0pzsdg0rm59daw34ppss79cg05z9wnr8nkmdcc48nkd0p69ip2yy"))))
2315 (build-system emacs-build-system)
2316 (home-page "https://github.com/politza/tablist")
2317 (synopsis "Extension for @code{tabulated-list-mode}")
2318 (description "Tablist is the Emacs package that provides several
2319 additional features to @code{tabulated-list-mode}: it adds marks,
2320 filters, new key bindings and faces. It can be enabled by
2321 @code{tablist-mode} or @code{tablist-minor-mode} commands.")
2322 (license license:gpl3+)))
2323
2324 (define-public emacs-djvu
2325 (package
2326 (name "emacs-djvu")
2327 (version "1.1")
2328 (source
2329 (origin
2330 (method url-fetch)
2331 (uri (string-append "https://elpa.gnu.org/packages/"
2332 "djvu-" version ".el"))
2333 (sha256
2334 (base32 "0njgyx09q225hliacsnjk8wallg5i6xkz6bj501pb05nwqfbvfk7"))))
2335 (build-system emacs-build-system)
2336 (home-page "http://elpa.gnu.org/packages/djvu.html")
2337 (synopsis "Edit and view Djvu files via djvused")
2338 (description
2339 "This package is a front end for the command-line program djvused from
2340 DjVuLibre, see @url{http://djvu.sourceforge.net/}. It assumes you have the
2341 programs @command{djvused}, @command{djview}, @command{ddjvu}, and
2342 @command{djvm} installed.")
2343 (license license:gpl3+)))
2344
2345 (define-public emacs-pabbrev
2346 (package
2347 (name "emacs-pabbrev")
2348 (version "4.2.1")
2349 (source
2350 (origin
2351 (method url-fetch)
2352 (uri (string-append "https://elpa.gnu.org/packages/"
2353 "pabbrev-" version ".el"))
2354 (sha256
2355 (base32 "19v5adk61y8fpigw7k6wz6dj79jwr450hnbi7fj0jvb21cvjmfxh"))))
2356 (build-system emacs-build-system)
2357 (home-page "http://elpa.gnu.org/packages/pabbrev.html")
2358 (synopsis "Predictive abbreviation expansion")
2359 (description
2360 "The code provides a abbreviation expansion for Emacs. It is
2361 fairly similar to Dabbrev expansion, which works based on the contents
2362 of the current buffer (or other buffers).
2363
2364 Predictive abbreviation expansion works based on the previously
2365 written text. Unlike dynamic abbreviation, the text is analysed
2366 during idle time, while Emacs is doing nothing else.")
2367 (license license:gpl3+)))
2368
2369 (define-public emacs-pdf-tools
2370 (package
2371 (name "emacs-pdf-tools")
2372 (version "0.90")
2373 (home-page "https://github.com/politza/pdf-tools")
2374 (source (origin
2375 (method git-fetch)
2376 (uri (git-reference (url home-page)
2377 (commit (string-append "v" version))))
2378 (file-name (git-file-name name version))
2379 (sha256
2380 (base32
2381 "0iv2g5kd14zk3r5dzdw7b7hk4b5w7qpbilcqkja46jgxbb6xnpl9"))))
2382 (build-system gnu-build-system)
2383 (arguments
2384 `(#:tests? #f ; there are no tests
2385 #:modules ((guix build gnu-build-system)
2386 ((guix build emacs-build-system) #:prefix emacs:)
2387 (guix build utils)
2388 (guix build emacs-utils))
2389 #:imported-modules (,@%gnu-build-system-modules
2390 (guix build emacs-build-system)
2391 (guix build emacs-utils))
2392 #:phases
2393 (modify-phases %standard-phases
2394 ;; Build server side using 'gnu-build-system'.
2395 (add-after 'unpack 'enter-server-dir
2396 (lambda _ (chdir "server") #t))
2397 (add-after 'enter-server-dir 'autogen
2398 (lambda _
2399 (invoke "bash" "autogen.sh")))
2400
2401 ;; Build emacs side using 'emacs-build-system'.
2402 (add-after 'compress-documentation 'enter-lisp-dir
2403 (lambda _ (chdir "../lisp") #t))
2404 (add-after 'enter-lisp-dir 'emacs-patch-variables
2405 (lambda* (#:key outputs #:allow-other-keys)
2406 (for-each make-file-writable (find-files "."))
2407
2408 ;; Set path to epdfinfo program.
2409 (emacs-substitute-variables "pdf-info.el"
2410 ("pdf-info-epdfinfo-program"
2411 (string-append (assoc-ref outputs "out")
2412 "/bin/epdfinfo")))
2413 ;; Set 'pdf-tools-handle-upgrades' to nil to avoid "auto
2414 ;; upgrading" that pdf-tools tries to perform.
2415 (emacs-substitute-variables "pdf-tools.el"
2416 ("pdf-tools-handle-upgrades" '()))))
2417 (add-after 'emacs-patch-variables 'emacs-add-source-to-load-path
2418 (assoc-ref emacs:%standard-phases 'add-source-to-load-path))
2419 (add-after 'emacs-add-source-to-load-path 'emacs-install
2420 (assoc-ref emacs:%standard-phases 'install))
2421 (add-after 'emacs-install 'emacs-build
2422 (assoc-ref emacs:%standard-phases 'build))
2423 (add-after 'emacs-install 'emacs-make-autoloads
2424 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
2425 (native-inputs `(("autoconf" ,autoconf)
2426 ("automake" ,automake)
2427 ("pkg-config" ,pkg-config)
2428 ("emacs" ,emacs-minimal)))
2429 (inputs `(("poppler" ,poppler)
2430 ("cairo" ,cairo)
2431 ("glib" ,glib)
2432 ("libpng" ,libpng)
2433 ("zlib" ,zlib)))
2434 (propagated-inputs `(("tablist" ,emacs-tablist)))
2435 (synopsis "Emacs support library for PDF files")
2436 (description
2437 "PDF Tools is, among other things, a replacement of DocView for PDF
2438 files. The key difference is that pages are not pre-rendered by
2439 e.g. ghostscript and stored in the file-system, but rather created on-demand
2440 and stored in memory.")
2441 (license license:gpl3+)))
2442
2443 (define-public emacs-dash
2444 (package
2445 (name "emacs-dash")
2446 (version "2.17.0")
2447 (source (origin
2448 (method git-fetch)
2449 (uri (git-reference
2450 (url "https://github.com/magnars/dash.el.git")
2451 (commit version)))
2452 (file-name (git-file-name name version))
2453 (sha256
2454 (base32
2455 "153f55dqkhs8w2xlf6b88wp5vlkap7h8vjd9wxh4jp2ram5g4l1n"))))
2456 (build-system emacs-build-system)
2457 (arguments
2458 `(#:tests? #t
2459 #:test-command '("./run-tests.sh")))
2460 (home-page "https://github.com/magnars/dash.el")
2461 (synopsis "Modern list library for Emacs")
2462 (description "This package provides a modern list API library for Emacs.")
2463 (license license:gpl3+)))
2464
2465 (define-public emacs-bui
2466 (package
2467 (name "emacs-bui")
2468 (version "1.2.1")
2469 (source (origin
2470 (method git-fetch)
2471 (uri (git-reference
2472 (url "https://notabug.org/alezost/emacs-bui.git")
2473 (commit (string-append "v" version))))
2474 (file-name (git-file-name name version))
2475 (sha256
2476 (base32
2477 "0sszdl4kvqbihdh8d7mybpp0d8yw2p3gyiipjcxz9xhvvmw3ww4x"))))
2478 (build-system emacs-build-system)
2479 (propagated-inputs
2480 `(("dash" ,emacs-dash)))
2481 (home-page "https://notabug.org/alezost/emacs-bui")
2482 (synopsis "Buffer interface library for Emacs")
2483 (description
2484 "BUI (Buffer User Interface) is a library for making @code{list} and
2485 @code{info} interfaces to display an arbitrary data of the same
2486 type, for example: packages, buffers, files, etc.")
2487 (license license:gpl3+)))
2488
2489 (define-public emacs-guix
2490 (package
2491 (name "emacs-guix")
2492 (version "0.5.2")
2493 (source (origin
2494 (method url-fetch)
2495 (uri (string-append "https://emacs-guix.gitlab.io/website/"
2496 "releases/emacs-guix-" version ".tar.gz"))
2497 (sha256
2498 (base32
2499 "0yz64c0z4ygi2k4af18k4r1ncgys18jb8icywkp2g5pgmpn5l7ps"))
2500 (modules '((guix build utils)))
2501 (snippet
2502 '(begin
2503 ;; Add support for Guile 3.0. Remove for versions > 0.5.2.
2504 (substitute* "configure"
2505 (("\"2\\.2 2\\.0\"")
2506 "\"3.0 2.2 2.0\""))
2507 #t))))
2508 (build-system gnu-build-system)
2509 (native-inputs
2510 `(("pkg-config" ,pkg-config)
2511 ("emacs" ,emacs-minimal)))
2512 (inputs
2513 `(("guile" ,guile-3.0)
2514 ("guix" ,guix)))
2515 (propagated-inputs
2516 `(("geiser" ,emacs-geiser)
2517 ("guile-gcrypt" ,guile-gcrypt)
2518 ("dash" ,emacs-dash)
2519 ("bui" ,emacs-bui)
2520 ("edit-indirect" ,emacs-edit-indirect)
2521 ("magit-popup" ,emacs-magit-popup)))
2522 (home-page "https://emacs-guix.gitlab.io/website/")
2523 (synopsis "Emacs interface for GNU Guix")
2524 (description
2525 "Emacs-Guix provides a visual interface, tools and features for the GNU
2526 Guix package manager. Particularly, it allows you to do various package
2527 management tasks from Emacs. To begin with, run @code{M-x guix-about} or
2528 @code{M-x guix-help} command.")
2529 (license license:gpl3+)))
2530
2531 (define-public emacs-build-farm
2532 (package
2533 (name "emacs-build-farm")
2534 (version "0.2.2")
2535 (source (origin
2536 (method git-fetch)
2537 (uri (git-reference
2538 (url "https://notabug.org/alezost/emacs-build-farm.git")
2539 (commit (string-append "v" version))))
2540 (file-name (git-file-name name version))
2541 (sha256
2542 (base32
2543 "0i0bwbav5861j2y15j9nd5m9rdqg9q97zgcbld8pivr9nyxy63lz"))))
2544 (build-system emacs-build-system)
2545 (propagated-inputs
2546 `(("bui" ,emacs-bui)
2547 ("magit-popup" ,emacs-magit-popup)))
2548 (home-page "https://notabug.org/alezost/emacs-build-farm")
2549 (synopsis "Emacs interface for Hydra and Cuirass build farms")
2550 (description
2551 "This Emacs package provides an interface for Hydra and
2552 Cuirass (build farms used by Nix and Guix). It allows you to look at
2553 various data related to the build farm projects, jobsets, builds and
2554 evaluations. The entry point is @code{M-x build-farm} command.")
2555 (license license:gpl3+)))
2556
2557 (define-public emacs-d-mode
2558 (package
2559 (name "emacs-d-mode")
2560 (version "2.0.10")
2561 (source
2562 (origin
2563 (method git-fetch)
2564 (uri (git-reference
2565 (url "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode.git")
2566 (commit version)))
2567 (file-name (git-file-name name version))
2568 (sha256
2569 (base32 "0915kb9jcaixgindhj85fmykkhvj31ckp1yg6746fznwdgfrlifv"))))
2570 (build-system emacs-build-system)
2571 (propagated-inputs
2572 `(("emacs-undercover" ,emacs-undercover)))
2573 (home-page "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode")
2574 (synopsis "Emacs major mode for editing D code")
2575 (description "This package provides an Emacs major mode for highlighting
2576 code written in the D programming language. This mode is currently known to
2577 work with Emacs 24 and 25.")
2578 (license license:gpl2+)))
2579
2580 (define-public emacs-extempore-mode
2581 ;; Use the latest commit at time of packaging. There are no releases or tags.
2582 (let ((commit "09518ae6650d7be33a4633a4c0f31b7130d04c6e")
2583 (revision "1"))
2584 (package
2585 (name "emacs-extempore-mode")
2586 (version (git-version "0.0.0" revision commit))
2587 (source
2588 (origin
2589 (method git-fetch)
2590 (uri (git-reference
2591 (url "https://github.com/extemporelang/extempore-emacs-mode.git")
2592 (commit commit)))
2593 (file-name (git-file-name name version))
2594 (sha256
2595 (base32 "0hfza9lzdsz94gxhmzyp9fwviscv19rmnjgd0q613faayn11sjsp"))))
2596 (build-system emacs-build-system)
2597 (home-page "https://github.com/extemporelang/extempore-emacs-mode")
2598 (synopsis "Emacs major mode for Extempore source files")
2599 (description
2600 "This package provides a major mode for editing Extempore code. It can
2601 create an Extempore REPL, connect the current @code{extempore-mode} buffer to a
2602 running Extempore process, and more.")
2603 (license license:bsd-2))))
2604
2605 (define-public emacs-kakoune
2606 ;; Package has no release. Version is extracted from "Version:" keyword in
2607 ;; main file.
2608 (let ((commit "d73d14e69ea38076af50cc69f846808383ff539d")
2609 (revision "0"))
2610 (package
2611 (name "emacs-kakoune")
2612 (version (git-version "0.1" revision commit))
2613 (source
2614 (origin
2615 (method git-fetch)
2616 (uri (git-reference
2617 (url "https://github.com/jmorag/kakoune.el.git")
2618 (commit commit)))
2619 (file-name (git-file-name name version))
2620 (sha256
2621 (base32 "0nk6jdy1y5mc3ryd0smiqghrk6iv34d5grc7f7migmshlbq0np92"))))
2622 (build-system emacs-build-system)
2623 (propagated-inputs
2624 `(("emacs-expand-region" ,emacs-expand-region)
2625 ("emacs-multiple-cursors" ,emacs-multiple-cursors)
2626 ("emacs-ryo-modal" ,emacs-ryo-modal)))
2627 (home-page "https://github.com/jmorag/kakoune.el")
2628 (synopsis "Emacs simple simulation, but not emulation, of Kakoune")
2629 (description "This package provides many, but not all of the editing
2630 primitives in the Kakoune editor. Unlike Evil mode for Vim, this is a very
2631 shallow emulation, which seeks to do as little work as possible, leveraging
2632 Emacs native editing commmands and the work of other packages wherever
2633 possible.")
2634 (license license:expat))))
2635
2636 (define-public emacs-keyfreq
2637 (package
2638 (name "emacs-keyfreq")
2639 (version "20160516.716")
2640 (source
2641 (origin
2642 (method url-fetch)
2643 (uri (string-append "http://melpa.org/packages/keyfreq-"
2644 version ".el"))
2645 (sha256
2646 (base32
2647 "008hd7d06qskc3mx0bbdgpgy2pwxr8185fzlyqf9qjg49y74p6g8"))))
2648 (build-system emacs-build-system)
2649 (home-page "https://github.com/dacap/keyfreq")
2650 (synopsis "Track Emacs command frequencies")
2651 (description "@code{emacs-keyfeq} tracks and shows how many times you used
2652 a command.")
2653 (license license:gpl3+)))
2654
2655 (define-public emacs-olivetti
2656 (package
2657 (name "emacs-olivetti")
2658 (version "1.8.1")
2659 (source (origin
2660 (method git-fetch)
2661 (uri (git-reference
2662 (url "https://github.com/rnkn/olivetti.git")
2663 (commit (string-append "v" version))))
2664 (file-name (git-file-name name version))
2665 (sha256
2666 (base32
2667 "1fbj9s49y5yx5i429awv9rybacfgvhwp7v5h0zw67bpgx4qs44pa"))))
2668 (build-system emacs-build-system)
2669 (home-page "https://github.com/rnkn/olivetti")
2670 (synopsis "Emacs minor mode for a nice writing environment")
2671 (description "This package provides an Emacs minor mode that puts writing
2672 in the center.")
2673 (license license:gpl3+)))
2674
2675 (define-public emacs-undo-tree
2676 (package
2677 (name "emacs-undo-tree")
2678 (version "0.7.1")
2679 (source (origin
2680 (method git-fetch)
2681 (uri (git-reference
2682 (url "http://dr-qubit.org/git/undo-tree.git")
2683 (commit (string-append "release/" version))))
2684 (file-name (git-file-name name version))
2685 (sha256
2686 (base32
2687 "1nr0149y2nvrxj56gc12jqnfl01g6z9ypfsgl6pfg85cw73hnggk"))))
2688 (build-system emacs-build-system)
2689 (home-page "http://www.dr-qubit.org/emacs.php")
2690 (synopsis "Treat undo history as a tree")
2691 (description "Tree-like interface to Emacs undo system, providing
2692 graphical tree presentation of all previous states of buffer that
2693 allows easily move between them.")
2694 (license license:gpl3+)))
2695
2696 (define-public emacs-s
2697 (package
2698 (name "emacs-s")
2699 (version "1.12.0")
2700 (source
2701 (origin
2702 (method git-fetch)
2703 (uri (git-reference
2704 (url "https://github.com/magnars/s.el.git")
2705 (commit version)))
2706 (file-name (git-file-name name version))
2707 (sha256
2708 (base32 "1g8mqd13llj007al4nlxxx4z2lcsg3wk970mgjn0avwrhjjgdmmv"))))
2709 (build-system emacs-build-system)
2710 (arguments
2711 `(#:tests? #t
2712 #:emacs ,emacs ; FIXME: tests fail with emacs-minimal
2713 #:test-command '("./run-tests.sh")))
2714 (home-page "https://github.com/magnars/s.el")
2715 (synopsis "Emacs string manipulation library")
2716 (description "This package provides an Emacs library for manipulating
2717 strings.")
2718 (license license:gpl3+)))
2719
2720 (define-public emacs-symon
2721 (package
2722 (name "emacs-symon")
2723 (version "20160630")
2724 (source
2725 (origin
2726 (method git-fetch)
2727 (uri (git-reference
2728 (url "https://github.com/zk-phi/symon.git")
2729 (commit version)))
2730 (file-name (git-file-name name version))
2731 (sha256
2732 (base32 "1q7di9s8k710nx98wnqnbkkhdimrn0jf6z4xkm4c78l6s5idjwlz"))))
2733 (build-system emacs-build-system)
2734 (home-page "https://github.com/zk-phi/symon")
2735 (synopsis "Tiny graphical system monitor")
2736 (description
2737 "Tiny graphical system monitor for the Emacs minibuffer when idle.")
2738 (license license:gpl2+)))
2739
2740 (define-public emacs-sx
2741 (let ((version "20191229")
2742 (revision "0")
2743 (commit "e9d1093c97507a6d7b4f4710ef65200dae725e5f"))
2744 (package
2745 (name "emacs-sx")
2746 (version (git-version version revision commit))
2747 (source
2748 (origin
2749 (method git-fetch)
2750 (uri (git-reference
2751 (url "https://github.com/vermiculus/sx.el")
2752 (commit commit)))
2753 (file-name (git-file-name name version))
2754 (sha256
2755 (base32 "0m90ddwm8j0y6d1ppqhd2gil1107k202blw6mzm5bdambn4nfqkf"))))
2756 (build-system emacs-build-system)
2757 (propagated-inputs
2758 `(("emacs-markdown-mode" ,emacs-markdown-mode)))
2759 (home-page "https://github.com/vermiculus/sx.el")
2760 (synopsis "Emacs StackExchange client")
2761 (description
2762 "Emacs StackExchange client. Ask and answer questions on
2763 Stack Overflow, Super User, and other StackExchange sites.")
2764 (license license:gpl3+))))
2765
2766 (define-public emacs-toml-mode
2767 (let ((version "0.1.3")
2768 (revision "0")
2769 (commit "f6c61817b00f9c4a3cab1bae9c309e0fc45cdd06"))
2770 (package
2771 (name "emacs-toml-mode")
2772 (version (git-version version revision commit))
2773 (source
2774 (origin
2775 (method git-fetch)
2776 (uri (git-reference
2777 (url "https://github.com/dryman/toml-mode.el.git")
2778 (commit commit)))
2779 (file-name (git-file-name name version))
2780 (sha256
2781 (base32 "05b4ksay85c8y5ncax0qsvnmplwsfiw24z16a58gkarjz938hb57"))))
2782 (build-system emacs-build-system)
2783 (home-page "https://github.com/dryman/toml-mode.el")
2784 (synopsis "Emacs major mode for editing TOML files")
2785 (description
2786 ;; XXX: Ideally we'd use @acronym for "TOML", but Guile's Texinfo
2787 ;; parser does not currently support @comma{}, making it impossible
2788 ;; to use commas in the @acronym arguments.
2789 "This package provides a major mode for editing files in @dfn{TOML}
2790 (Tom's Obvious, Minimal Language) data format.")
2791 (license license:gpl3+))))
2792
2793 (define-public emacs-twittering-mode
2794 (package
2795 (name "emacs-twittering-mode")
2796 (version "3.1.0")
2797 (source
2798 (origin
2799 (method url-fetch)
2800 (uri (string-append "mirror://sourceforge/twmode"
2801 "/twittering-mode-" version
2802 "/twittering-mode-" version ".tar.xz"))
2803 (sha256
2804 (base32 "02imis1gxz90lah0b5n37j2hlsaw5igss11d85vpsm5d1bgw8j28"))))
2805 (build-system emacs-build-system)
2806 (home-page "http://twmode.sourceforge.net")
2807 (synopsis "Emacs major mode for Twitter")
2808 (description
2809 "Twittering mode is an Emacs major mode for Twitter.
2810 You can check timelines, tweet, mark posts as favorites and so on with
2811 Emacs.")
2812 (license license:gpl2+)))
2813
2814 (define-public emacs-f
2815 (package
2816 (name "emacs-f")
2817 (version "0.20.0")
2818 (source (origin
2819 (method git-fetch)
2820 (uri (git-reference
2821 (url "https://github.com/rejeep/f.el.git")
2822 (commit (string-append "v" version))))
2823 (file-name (git-file-name name version))
2824 (sha256
2825 (base32
2826 "1a47xk3yp1rp17fqg7ldl3d3fb888h0fz3sysqfdz1bfdgs8a9bk"))))
2827 (build-system emacs-build-system)
2828 (propagated-inputs
2829 `(("emacs-s" ,emacs-s)
2830 ("emacs-dash" ,emacs-dash)))
2831 (home-page "https://github.com/rejeep/f.el")
2832 (synopsis "Emacs API for working with files and directories")
2833 (description "This package provides an Emacs library for working with
2834 files and directories.")
2835 (license license:gpl3+)))
2836
2837 (define-public emacs-fountain-mode
2838 (package
2839 (name "emacs-fountain-mode")
2840 (version "3.1.0")
2841 (source
2842 (origin
2843 (method git-fetch)
2844 (uri (git-reference
2845 (url "https://github.com/rnkn/fountain-mode")
2846 (commit (string-append "v" version))))
2847 (file-name (git-file-name name version))
2848 (sha256
2849 (base32 "08giwg0jwk8zzj2i4cm08322qr6znrnv9a49za7c6j47bykpwj6s"))))
2850 (build-system emacs-build-system)
2851 (home-page "https://github.com/rnkn/fountain-mode")
2852 (synopsis "Major mode for screenwriting in Fountain markup")
2853 (description "Fountain Mode is a scriptwriting program for GNU Emacs
2854 using the Fountain plain text markup format.")
2855 (license license:gpl3+)))
2856
2857 (define-public emacs-fringe-helper
2858 (let ((commit "ef4a9c023bae18ec1ddd7265f1f2d6d2e775efdd")
2859 (revision "1"))
2860 (package
2861 (name "emacs-fringe-helper")
2862 (version (git-version "1.0.1" revision commit))
2863 (source
2864 (origin
2865 (method git-fetch)
2866 (uri (git-reference
2867 (url "https://github.com/nschum/fringe-helper.el.git")
2868 (commit commit)))
2869 (file-name (git-file-name name version))
2870 (sha256
2871 (base32 "0ra9rc53l1gvkqank8apasl3r7wz2yfjrcvmfk3wpxhh24ppxv9d"))))
2872 (build-system emacs-build-system)
2873 (arguments
2874 `(#:tests? #t
2875 #:test-command '("emacs" "--batch"
2876 "-l" "tests.el"
2877 "-f" "ert-run-tests-batch-and-exit")))
2878 (home-page "https://github.com/nschum/fringe-helper.el")
2879 (synopsis "Helper functions for fringe bitmaps")
2880 (description
2881 "This package allows fringe bitmaps to be defined with a visual string
2882 representation.")
2883 (license license:gpl2+))))
2884
2885 (define-public emacs-git-gutter
2886 (package
2887 (name "emacs-git-gutter")
2888 (version "0.90")
2889 (source
2890 (origin
2891 (method git-fetch)
2892 (uri (git-reference
2893 (url "https://github.com/syohex/emacs-git-gutter.git")
2894 (commit version)))
2895 (file-name (git-file-name name version))
2896 (sha256
2897 (base32 "1abagq0psip7cgsqbfjv72qy60ywsny0ibsfcn74ldj6a9v17mz5"))))
2898 (build-system emacs-build-system)
2899 (home-page "https://github.com/syohex/emacs-git-gutter")
2900 (synopsis "See and manage hunks of text in a version control system")
2901 (description
2902 "This package is an Emacs minor mode for displaying and interacting with
2903 hunks of text managed in a version control system. Added modified and deleted
2904 areas can be indicated with symbols on the edge of the buffer, and commands
2905 can be used to move between and perform actions on these hunks.
2906
2907 Git, Mercurial, Subversion and Bazaar are supported, and many parts of the
2908 display and behaviour is easily customisable.")
2909 (license license:gpl3+)))
2910
2911 (define-public emacs-git-gutter-fringe
2912 (let ((commit "16226caab44174301f1659f7bf8cc67a76153445")
2913 (revision "1"))
2914 (package
2915 (name "emacs-git-gutter-fringe")
2916 (version (git-version "0.23" revision commit))
2917 (source
2918 (origin
2919 (method git-fetch)
2920 (uri (git-reference
2921 (url "https://github.com/syohex/git-gutter-fringe.git")
2922 (commit commit)))
2923 (file-name (git-file-name name version))
2924 (sha256
2925 (base32 "1y77gjl0yznamdj0f55d418zb75k22izisjg7ikvrfsl2yfqf3pm"))))
2926 (build-system emacs-build-system)
2927 (propagated-inputs
2928 `(("emacs-git-gutter" ,emacs-git-gutter)
2929 ("emacs-fringe-helper" ,emacs-fringe-helper)))
2930 (home-page "https://github.com/syohex/git-gutter-fringe")
2931 (synopsis "See and manage hunks of text in a version control system")
2932 (description
2933 "This package extends @code{git-gutter} to use the fringe area of a
2934 window.")
2935 (license license:gpl3+))))
2936
2937 (define-public emacs-git-link
2938 (package
2939 (name "emacs-git-link")
2940 (version "0.7.5")
2941 (source
2942 (origin
2943 (method git-fetch)
2944 (uri (git-reference
2945 (url "https://github.com/sshaw/git-link.git")
2946 (commit (string-append "v" version))))
2947 (file-name (git-file-name name version))
2948 (sha256
2949 (base32 "04xa6lp8wkjb6zs096bf4sz124grcjj15xv1h009bmn2j95rggj6"))))
2950 (build-system emacs-build-system)
2951 (arguments
2952 `(#:tests? #t
2953 #:test-command '("make" "test")))
2954 (home-page "https://github.com/sshaw/git-link")
2955 (synopsis "Create links for files and commits in GitHub/GitLab/etc. repos")
2956 (description
2957 "@code{git-link} returns the URL for the current buffer's file location
2958 at the current line number or active region. @code{git-link-commit} returns
2959 the URL for a commit. URLs are added to the kill ring.")
2960 (license license:gpl3+)))
2961
2962 (define-public emacs-apheleia
2963 (package
2964 (name "emacs-apheleia")
2965 (version "1.0")
2966 (source
2967 (origin
2968 (method git-fetch)
2969 (uri (git-reference
2970 (url "https://github.com/raxod502/apheleia.git")
2971 (commit (string-append "v" version))))
2972 (file-name (git-file-name name version))
2973 (sha256
2974 (base32 "04pls7zahy4jfkikv6fvd9vfpm4glhyanmmkx79hgi9pwdv966rf"))))
2975 (build-system emacs-build-system)
2976 (home-page "https://github.com/raxod502/apheleia")
2977 (synopsis "Reformat buffer stably")
2978 (description
2979 "This package allows for a buffer to be reformatted without moving point,
2980 so that running a formatting tool like @code{Prettier} or @code{Black} upon
2981 saving won't move point back to the beginning of the buffer.")
2982 (license license:gpl3+)))
2983
2984 (define-public emacs-git-timemachine
2985 (package
2986 (name "emacs-git-timemachine")
2987 (version "4.11")
2988 (source
2989 (origin
2990 (method git-fetch)
2991 (uri (git-reference
2992 (url "https://gitlab.com/pidu/git-timemachine.git")
2993 (commit version)))
2994 (file-name (git-file-name name version))
2995 (sha256
2996 (base32
2997 "1pz4l1xnq6s67w5yq9107vm8dg7rqf8n9dmbn90jys97c722g70n"))))
2998 (build-system emacs-build-system)
2999 (propagated-inputs
3000 `(("emacs-transient" ,emacs-transient)))
3001 (home-page "https://gitlab.com/pidu/git-timemachine")
3002 (synopsis "Step through historic versions of Git-controlled files")
3003 (description "This package enables you to step through historic versions
3004 of files under Git version control from within Emacs.")
3005 (license license:gpl3+)))
3006
3007 (define-public emacs-minitest
3008 (let ((commit "1aadb7865c1dc69c201cecee275751ecec33a182")
3009 (revision "1"))
3010 (package
3011 (name "emacs-minitest")
3012 (version (git-version "0.8.0" revision commit))
3013 (source (origin
3014 (method git-fetch)
3015 (uri (git-reference
3016 (url "https://github.com/arthurnn/minitest-emacs")
3017 (commit commit)))
3018 (file-name (git-file-name name commit))
3019 (sha256
3020 (base32
3021 "1l18zqpdzbnqj2qawq8hj7z7pl8hr8z9d8ihy8jaiqma915hmhj1"))))
3022 (build-system emacs-build-system)
3023 (arguments
3024 '(#:include (cons "^snippets\\/minitest-mode\\/" %default-include)
3025 #:exclude (delete "^[^/]*tests?\\.el$" %default-exclude)))
3026 (propagated-inputs
3027 `(("emacs-dash" ,emacs-dash)
3028 ("emacs-f" ,emacs-f)))
3029 (home-page "https://github.com/arthurnn/minitest-emacs")
3030 (synopsis "Emacs minitest mode")
3031 (description
3032 "The minitest mode provides commands to run the tests for the current
3033 file or line, as well as rerunning the previous tests, or all the tests for a
3034 project.
3035
3036 This package also includes relevant snippets for yasnippet.")
3037 (license license:expat))))
3038
3039 (define-public emacs-el-mock
3040 (package
3041 (name "emacs-el-mock")
3042 (version "1.25.1")
3043 (source
3044 (origin
3045 (method git-fetch)
3046 (uri (git-reference
3047 (url "https://github.com/rejeep/el-mock.el.git")
3048 (commit (string-append "v" version))))
3049 (file-name (git-file-name name version))
3050 (sha256
3051 (base32 "13mv1rhgkwiww2wh5w926jz7idppp492wir1vdl245c5x50dh4f7"))))
3052 (build-system emacs-build-system)
3053 (home-page "https://github.com/rejeep/el-mock.el")
3054 (synopsis "Tiny mock and stub framework in Emacs Lisp")
3055 (description
3056 "Emacs Lisp Mock is a library for mocking and stubbing using readable
3057 syntax. Most commonly Emacs Lisp Mock is used in conjunction with Emacs Lisp
3058 Expectations, but it can be used in other contexts.")
3059 (license license:gpl3+)))
3060
3061 (define-public emacs-espuds
3062 (package
3063 (name "emacs-espuds")
3064 (version "0.3.3")
3065 (source
3066 (origin
3067 (method git-fetch)
3068 (uri (git-reference
3069 (url "https://github.com/ecukes/espuds.git")
3070 (commit (string-append "v" version))))
3071 (file-name (git-file-name name version))
3072 (sha256
3073 (base32 "16r4j27j9yfdiy841w9q5ykkc6n3wrm7hvfacagb32mydk821ijg"))))
3074 (build-system emacs-build-system)
3075 (propagated-inputs
3076 `(("emacs-s" ,emacs-s)
3077 ("emacs-dash" ,emacs-dash)
3078 ("emacs-f" ,emacs-f)))
3079 (home-page "https://github.com/ecukes/espuds")
3080 (synopsis "Common step definitions for Ecukes")
3081 (description "Espuds is a collection of the most commonly used step
3082 definitions for testing with the Ecukes framework.")
3083 (license license:gpl3+)))
3084
3085 (define-public emacs-spark
3086 (let ((version "20160503") ; no proper tag, use date of commit
3087 (commit "0bf148c3ede3b31d56fd75f347cdd0b0eae60025")
3088 (revision "1"))
3089 (package
3090 (name "emacs-spark")
3091 (version (git-version version revision commit))
3092 (source
3093 (origin
3094 (method git-fetch)
3095 (uri (git-reference
3096 (url "https://github.com/alvinfrancis/spark.git")
3097 (commit commit)))
3098 (file-name (git-file-name name version))
3099 (sha256
3100 (base32
3101 "1ykqr86j17mi95s08d9fp02d7ych1331b04dcqxzxnmpkhwngyj1"))))
3102 (build-system emacs-build-system)
3103 (home-page "https://github.com/alvinfrancis/spark")
3104 (synopsis "Sparkline generation library for Emacs Lisp")
3105 (description "@code{emacs-spark} is a sparkline generation library for
3106 Emacs Lisp. It generates a sparkline string given a list of numbers. It is a
3107 port of @code{cl-spark} to Emacs Lisp.")
3108 (license license:expat))))
3109
3110 (define-public emacs-es-mode
3111 (package
3112 (name "emacs-es-mode")
3113 (version "4.3.0")
3114 (source
3115 (origin
3116 (method git-fetch)
3117 (uri (git-reference
3118 (url "https://github.com/dakrone/es-mode.git")
3119 (commit version)))
3120 (file-name (git-file-name name version))
3121 (sha256
3122 (base32 "1qhfnd5anp5qrmravv7ks5ix763xnki2f5jwcyj70qyxwr0l60cg"))))
3123 (build-system emacs-build-system)
3124 (propagated-inputs
3125 ;; The version of org in Emacs 24.5 is not sufficient, and causes tables
3126 ;; to be rendered incorrectly
3127 `(("emacs-dash" ,emacs-dash)
3128 ("emacs-org" ,emacs-org)
3129 ("emacs-spark" ,emacs-spark)))
3130 (home-page "https://github.com/dakrone/es-mode")
3131 (synopsis "Major mode for editing Elasticsearch queries")
3132 (description "@code{es-mode} includes highlighting, completion and
3133 indentation support for Elasticsearch queries. Also supported are
3134 @code{es-mode} blocks in @code{org-mode}, for which the results of queries can
3135 be processed through @code{jq}, or in the case of aggregations, can be
3136 rendered in to a table. In addition, there is an @code{es-command-center}
3137 mode, which displays information about Elasticsearch clusters.")
3138 (license license:gpl3+)))
3139
3140 (define-public emacs-expand-region
3141 (package
3142 (name "emacs-expand-region")
3143 (version "0.11.0")
3144 (source
3145 (origin
3146 (method git-fetch)
3147 (uri (git-reference
3148 (url "https://github.com/magnars/expand-region.el.git")
3149 (commit version)))
3150 (file-name (git-file-name name version))
3151 (sha256
3152 (base32 "0h40dhc3kn8fq86xnwi5lz7ql8my8737y7wkqr897p15y90swr35"))))
3153 (build-system emacs-build-system)
3154 (home-page "https://github.com/magnars/expand-region.el")
3155 (synopsis "Increase selected region by semantic units")
3156 (description
3157 "Expand region increases the selected region by semantic units. Just
3158 keep pressing the key until it selects what you want. There's also
3159 @code{er/contract-region} if you expand too far.")
3160 (license license:gpl3+)))
3161
3162 (define-public emacs-fill-column-indicator
3163 (package
3164 (name "emacs-fill-column-indicator")
3165 (version "1.90")
3166 (source
3167 (origin
3168 (method git-fetch)
3169 (uri (git-reference
3170 (url "https://github.com/alpaker/Fill-Column-Indicator.git")
3171 (commit version)))
3172 (file-name (git-file-name name version))
3173 (sha256
3174 (base32 "0snjznxdwwfdgccdcvrnk467416r244r2r5qcm2sga8l0ha9gw9z"))))
3175 (build-system emacs-build-system)
3176 (home-page "https://www.emacswiki.org/emacs/FillColumnIndicator")
3177 (synopsis "Graphically indicate the fill column")
3178 (description
3179 "Fill-column-indicator graphically indicates the location of the fill
3180 column by drawing a thin line down the length of the editing window.")
3181 (license license:gpl3+)))
3182
3183 (define-public emacs-grep-a-lot
3184 (package
3185 (name "emacs-grep-a-lot")
3186 (version "1.0.7")
3187 (source
3188 (origin
3189 (method git-fetch)
3190 (uri (git-reference
3191 (url "https://github.com/ZungBang/emacs-grep-a-lot.git")
3192 (commit "9f9f645b9e308a0d887b66864ff97d0fca1ba4ad")))
3193 (file-name (git-file-name name version))
3194 (sha256
3195 (base32 "1f8262mrlinzgnn4m49hbj1hm3c1mvzza24py4b37sasn49546lw"))))
3196 (build-system emacs-build-system)
3197 (home-page "https://github.com/ZungBang/emacs-grep-a-lot")
3198 (synopsis "Enables multiple grep buffers in Emacs")
3199 (description
3200 "This Emacs package allows managing multiple grep buffers.")
3201 (license license:gpl3+)))
3202
3203 (define-public emacs-rg
3204 (package
3205 (name "emacs-rg")
3206 (version "1.8.1")
3207 (source
3208 (origin
3209 (method git-fetch)
3210 (uri (git-reference
3211 (url "https://github.com/dajva/rg.el.git")
3212 (commit version)))
3213 (file-name (git-file-name name version))
3214 (sha256
3215 (base32 "0k7x5z7mh9flwih35cqy8chs54rack3nswdcpw5wcpgv6xim227y"))))
3216 (build-system emacs-build-system)
3217 (arguments
3218 '(#:phases
3219 (modify-phases %standard-phases
3220 (add-after 'unpack 'hardcode-rg-path
3221 ;; Hardcode the path to ripgrep.
3222 (lambda _
3223 (let ((file "rg.el"))
3224 (chmod file #o644)
3225 (emacs-substitute-sexps file
3226 ("(defcustom rg-executable" (which "rg")))))))))
3227 (propagated-inputs
3228 `(("emacs-s" ,emacs-s)
3229 ("emacs-wgrep" ,emacs-wgrep)))
3230 (inputs
3231 `(("ripgrep" ,ripgrep)))
3232 (home-page "https://rgel.readthedocs.io/en/latest/")
3233 (synopsis "Search tool based on @code{ripgrep}")
3234 (description
3235 "@code{rg} is an Emacs search package based on the @code{ripgrep} command
3236 line tool. It allows one to interactively search based on the editing context
3237 then refine or modify the search results.")
3238 (license license:gpl3+)))
3239
3240 (define-public emacs-inf-ruby
3241 (package
3242 (name "emacs-inf-ruby")
3243 (version "2.5.2")
3244 (source
3245 (origin
3246 (method git-fetch)
3247 (uri (git-reference
3248 (url "https://github.com/nonsequitur/inf-ruby.git")
3249 (commit version)))
3250 (file-name (git-file-name name version))
3251 (sha256
3252 (base32 "0a1hhvfbl6mq8rjsi77fg9fh5a91hi5scjrg9rjqc5ffbql67y0v"))))
3253 (build-system emacs-build-system)
3254 (home-page "https://github.com/nonsequitur/inf-ruby")
3255 (synopsis "Provides a REPL buffer connected to a Ruby subprocess in Emacs")
3256 (description
3257 "@code{inf-ruby} provides a Read Eval Print Loop (REPL) buffer, allowing
3258 for easy interaction with a ruby subprocess. Features include support for
3259 detecting specific uses of Ruby, e.g. when using rails, and using a
3260 appropriate console.")
3261 (license license:gpl3+)))
3262
3263 (define-public emacs-znc
3264 (package
3265 (name "emacs-znc")
3266 (version "0.0.2")
3267 (source
3268 (origin
3269 (method url-fetch)
3270 (uri (string-append "https://marmalade-repo.org/packages/znc-"
3271 version ".el"))
3272 (sha256
3273 (base32
3274 "1d8lqvybgyazin5z0g1c4l3rg1vzrrvf0saqs53jr1zcdg0lianh"))))
3275 (build-system emacs-build-system)
3276 (home-page "https://github.com/sshirokov/ZNC.el")
3277 (synopsis "Make ERC and ZNC get along better")
3278 (description
3279 "This is a thin wrapper around @code{erc} that enables one to use the ZNC
3280 IRC bouncer with ERC.")
3281 (license license:expat)))
3282
3283 (define-public emacs-shut-up
3284 (package
3285 (name "emacs-shut-up")
3286 (version "0.3.2")
3287 (source
3288 (origin
3289 (method git-fetch)
3290 (uri (git-reference
3291 (url "https://github.com/cask/shut-up.git")
3292 (commit (string-append "v" version))))
3293 (file-name (git-file-name name version))
3294 (sha256
3295 (base32 "103yvfgkj78i4bnv1fwk76izsa8h4wyj3vwj1vq7xggj607hkxzq"))))
3296 (build-system emacs-build-system)
3297 (home-page "https://github.com/cask/shut-up")
3298 (synopsis "Silence Emacs")
3299 (description "This package silences most output of Emacs when running an
3300 Emacs shell script.")
3301 (license license:expat)))
3302
3303 (define-public emacs-undercover
3304 (package
3305 (name "emacs-undercover")
3306 (version "0.6.1")
3307 (source
3308 (origin
3309 (method git-fetch)
3310 (uri (git-reference
3311 (url "https://github.com/sviridov/undercover.el.git")
3312 (commit version)))
3313 (file-name (git-file-name name version))
3314 (sha256
3315 (base32 "080bmfwyfi8663y8x594770hqz7mff7zvj2v03qdfwbhdr9w9y29"))))
3316 (build-system emacs-build-system)
3317 (propagated-inputs
3318 `(("emacs-dash" ,emacs-dash)
3319 ("emacs-shut-up" ,emacs-shut-up)))
3320 (home-page "https://github.com/sviridov/undercover.el")
3321 (synopsis "Test coverage library for Emacs Lisp")
3322 (description
3323 "Undercover is a test coverage library for software written in Emacs
3324 Lisp.")
3325 (license license:expat)))
3326
3327 (define-public emacs-paren-face
3328 (package
3329 (name "emacs-paren-face")
3330 (version "1.0.5")
3331 (source
3332 (origin
3333 (method git-fetch)
3334 (uri (git-reference
3335 (url "https://github.com/tarsius/paren-face.git")
3336 (commit version)))
3337 (file-name (git-file-name name version))
3338 (sha256
3339 (base32
3340 "04vkg8fhdn8x02dydxbwpizh2yn3sbmn9432v770vbbq6b62k2lx"))))
3341 (build-system emacs-build-system)
3342 (home-page "https://github.com/tarsius/paren-face")
3343 (synopsis "Face for parentheses in lisp modes")
3344 (description
3345 "This library defines a face named @code{parenthesis} used just for
3346 parentheses. The intended purpose of this face is to make parentheses less
3347 visible in Lisp code by dimming them. Lispers probably don't need to be
3348 constantly made aware of the existence of the parentheses. Dimming them might
3349 be even more useful for people new to lisp who have not yet learned to
3350 subconsciously blend out the parentheses.")
3351 (license license:gpl3+)))
3352
3353 (define-public emacs-page-break-lines
3354 (package
3355 (name "emacs-page-break-lines")
3356 (version "0.11")
3357 (source
3358 (origin
3359 (method git-fetch)
3360 (uri (git-reference
3361 (url "https://github.com/purcell/page-break-lines.git")
3362 (commit version)))
3363 (file-name (git-file-name name version))
3364 (sha256
3365 (base32 "1wp974716ih2cz9kdmdz7xwjy1qnnfzdzlfr9kchknagw8d9nn12"))))
3366 (build-system emacs-build-system)
3367 (home-page "https://github.com/purcell/page-break-lines")
3368 (synopsis "Display page breaks as tidy horizontal lines")
3369 (description
3370 "This library provides a global mode which displays form feed characters
3371 as horizontal rules.")
3372 (license license:gpl3+)))
3373
3374 (define-public emacs-simple-httpd
3375 (package
3376 (name "emacs-simple-httpd")
3377 (version "1.5.1")
3378 (source
3379 (origin
3380 (method git-fetch)
3381 (uri (git-reference
3382 (url "https://github.com/skeeto/emacs-web-server.git")
3383 (commit version)))
3384 (file-name (git-file-name name version))
3385 (sha256
3386 (base32 "0dpn92rg813c4pq7a1vzj3znyxzp2lmvxqz6pzcqi0l2xn5r3wvb"))))
3387 (build-system emacs-build-system)
3388 (home-page "https://github.com/skeeto/emacs-web-server")
3389 (synopsis "HTTP server in pure Emacs Lisp")
3390 (description
3391 "This package provides a simple HTTP server written in Emacs Lisp to
3392 serve files and directory listings.")
3393 (license license:unlicense)))
3394
3395 (define-public emacs-skewer-mode
3396 (package
3397 (name "emacs-skewer-mode")
3398 (version "1.8.0")
3399 (source
3400 (origin
3401 (method git-fetch)
3402 (uri (git-reference
3403 (url "https://github.com/skeeto/skewer-mode.git")
3404 (commit version)))
3405 (file-name (git-file-name name version))
3406 (sha256
3407 (base32 "1ha7jl7776pk1bki5zj2q0jy66450mn8xr3aqjc0m9kj3gc9qxgw"))))
3408 (build-system emacs-build-system)
3409 (propagated-inputs
3410 `(("emacs-simple-httpd" ,emacs-simple-httpd)
3411 ("emacs-js2-mode" ,emacs-js2-mode)))
3412 (arguments '(#:include '("\\.el$" "\\.js$" "\\.html$")))
3413 (home-page "https://github.com/skeeto/skewer-mode")
3414 (synopsis "Live web development in Emacs")
3415 (description
3416 "Skewer-mode provides live interaction with JavaScript, CSS, and HTML in
3417 a web browser. Expressions are sent on-the-fly from an editing buffer to be
3418 evaluated in the browser, just like Emacs does with an inferior Lisp process
3419 in Lisp modes.")
3420 (license license:unlicense)))
3421
3422 (define-public emacs-litable
3423 (let ((commit "b0278f3f8dcff424bfbdfdefb545b1fbff33206f"))
3424 (package
3425 (name "emacs-litable")
3426 (version (git-version "0.1" "0" commit))
3427 (source (origin
3428 (method git-fetch)
3429 (uri (git-reference
3430 (url "https://github.com/Fuco1/litable.git")
3431 (commit commit)))
3432 (file-name (git-file-name name version))
3433 (sha256
3434 (base32
3435 "0bny40hv9a024n01clxns351cs4j4ifhgcc7m4743xncqf612p7g"))))
3436 (build-system emacs-build-system)
3437 (propagated-inputs
3438 `(("emacs-dash" ,emacs-dash)))
3439 (home-page "https://github.com/Fuco1/litable/")
3440 (synopsis "Dynamic evaluation replacement with Emacs")
3441 (description "This package provides dynamic evaluation in Emacs.")
3442 (license license:gpl3+))))
3443
3444 (define-public emacs-string-inflection
3445 (package
3446 (name "emacs-string-inflection")
3447 (version "1.0.6")
3448 (source (origin
3449 (method git-fetch)
3450 (uri (git-reference
3451 (url "https://github.com/akicho8/string-inflection")
3452 (commit "a150e7bdda60b7824d3a936750ce23f73b0e4edd")))
3453 (file-name (git-file-name name version))
3454 (sha256
3455 (base32
3456 "1k0sm552iawi49v4zis6dbb81d1rzgky9v0dpv7nj31gnb7bmy7k"))))
3457 (build-system emacs-build-system)
3458 (native-inputs
3459 `(("ert-runner" ,emacs-ert-runner)))
3460 (arguments
3461 `(#:tests? #t
3462 #:test-command '("ert-runner")))
3463 (home-page "https://github.com/akicho8/string-inflection")
3464 (synopsis "Convert symbol names between different naming conventions")
3465 (description
3466 "This Emacs package provides convenient methods for manipulating the
3467 naming style of a symbol. It supports different naming conventions such as:
3468
3469 @enumerate
3470 @item camel case
3471 @item Pascal case
3472 @item all upper case
3473 @item lower case separated by underscore
3474 @item etc...
3475 @end enumerate\n")
3476 (license license:gpl2+)))
3477
3478 (define-public emacs-stripe-buffer
3479 (package
3480 (name "emacs-stripe-buffer")
3481 (version "0.2.5")
3482 (source
3483 (origin
3484 (method git-fetch)
3485 (uri (git-reference
3486 (url "https://github.com/sabof/stripe-buffer.git")
3487 (commit version)))
3488 (file-name (git-file-name name version))
3489 (sha256
3490 (base32 "035ym1c1vzg6hjsnd258z4dkrfc11lj4c0y4gpgybhk54dq3w9dk"))))
3491 (build-system emacs-build-system)
3492 (home-page "https://github.com/sabof/stripe-buffer/")
3493 (synopsis "Add stripes to list buffers")
3494 (description
3495 "This Emacs package adds faces to add stripes to list buffers and org
3496 tables.")
3497 (license license:gpl2+)))
3498
3499 (define-public emacs-org-rich-yank
3500 (package
3501 (name "emacs-org-rich-yank")
3502 (version "0.2.1")
3503 (source
3504 (origin
3505 (method git-fetch)
3506 (uri (git-reference
3507 (url "https://github.com/unhammer/org-rich-yank.git")
3508 (commit (string-append "v" version))))
3509 (file-name (git-file-name name version))
3510 (sha256
3511 (base32 "0gxb0fnh5gxjmld0hnk5hli0cvdd8gjd27m30bk2b80kwldxlq1z"))))
3512 (build-system emacs-build-system)
3513 (home-page "https://github.com/unhammer/org-rich-yank")
3514 (synopsis "Automatically surround source code pasted into Org with
3515 @code{#+BEGIN_SRC} blocks")
3516 (description
3517 "This package provides a utility function for Org buffers that makes a
3518 @code{_SRC} block with the appropriate language annotation for code that has
3519 been copied from an Emacs major mode.")
3520 (license license:gpl2+)))
3521
3522 (define-public emacs-ob-restclient
3523 (let ((commit "53376667eeddb1388fd6c6976f3222e7c8adcd46"))
3524 (package
3525 (name "emacs-ob-restclient")
3526 (version (git-version "0.02" "1" commit))
3527 (source
3528 (origin
3529 (method git-fetch)
3530 (uri (git-reference
3531 (url "https://github.com/alf/ob-restclient.el.git")
3532 (commit commit)))
3533 (file-name (git-file-name name version))
3534 (sha256
3535 (base32 "1djg53cp7y83gic2v71y6r5z76kwrbkp0r69hl25rs99dx6p89dy"))))
3536 (propagated-inputs
3537 `(("emacs-restclient" ,emacs-restclient)))
3538 (build-system emacs-build-system)
3539 (home-page "https://github.com/alf/ob-restclient.el")
3540 (synopsis "Org-babel functionality for @code{restclient-mode}")
3541 (description
3542 "This package integrates @code{restclient-mode} with Org.")
3543 (license license:gpl3+))))
3544
3545 (define-public emacs-org-now
3546 (let ((commit "8f6b277a73f1c66e58ccb4b7f40d406851befc91"))
3547 (package
3548 (name "emacs-org-now")
3549 (version (git-version "0.1-pre" "1" commit))
3550 (source
3551 (origin
3552 (method git-fetch)
3553 (uri (git-reference
3554 (url "https://github.com/alphapapa/org-now.git")
3555 (commit commit)))
3556 (file-name (git-file-name name version))
3557 (sha256
3558 (base32 "117zzkryznznk6h4i1jqzdn888nl019xrgxm2gza0lndx8dxsg2c"))))
3559 (propagated-inputs
3560 `(("emacs-dash" ,emacs-dash)))
3561 (build-system emacs-build-system)
3562 (home-page "https://github.com/alphapapa/org-now")
3563 (synopsis "Show current Org tasks in a sidebar")
3564 (description
3565 "This package provides commands to show Org headings in a sidebar
3566 window while working on them. After defining one heading as the \"now\"
3567 heading, other headings can be refiled to it with one command, and back to
3568 their original location with another.")
3569 (license license:gpl3+))))
3570
3571 (define-public emacs-rich-minority
3572 (package
3573 (name "emacs-rich-minority")
3574 (version "1.0.3")
3575 (source
3576 (origin
3577 (method git-fetch)
3578 (uri (git-reference
3579 (url "https://github.com/Malabarba/rich-minority.git")
3580 (commit version)))
3581 (file-name (git-file-name name version))
3582 (sha256
3583 (base32
3584 "1kn7c9qr9ykj68iqffzzmjsr6aazwac8cxb7j960sjb282rq0yyj"))))
3585 (build-system emacs-build-system)
3586 (home-page "https://github.com/Malabarba/rich-minority")
3587 (synopsis "Clean-up and beautify the list of minor modes")
3588 (description
3589 "This Emacs package hides and/or highlights minor modes in the
3590 mode-line.")
3591 (license license:gpl2+)))
3592
3593 (define-public emacs-robe
3594 (package
3595 (name "emacs-robe")
3596 (version "0.8.2")
3597 (source
3598 (origin
3599 (method git-fetch)
3600 (uri (git-reference
3601 (url "https://github.com/dgutov/robe.git")
3602 (commit version)))
3603 (file-name (git-file-name name version))
3604 (sha256
3605 (base32 "0qw18wi54yg971n4wnjqkd8lqj5lbs9ra8bvmngif2bzhqlfdsbn"))))
3606 (build-system emacs-build-system)
3607 (arguments
3608 '(#:include (cons "^lib\\/" %default-include)))
3609 (propagated-inputs
3610 `(("emacs-inf-ruby" ,emacs-inf-ruby)))
3611 (home-page "https://github.com/dgutov/robe")
3612 (synopsis "Ruby code assistance tool for Emacs")
3613 (description
3614 "Robe can provide information on loaded classes and modules in Ruby code,
3615 as well as where methods are defined. This allows the user to jump to method
3616 definitions, modules and classes, display method documentation and provide
3617 method and constant name completion.")
3618 (license license:gpl3+)))
3619
3620 (define-public emacs-robot-mode
3621 (let ((commit "32846e7e80ae3471b7c07f9709dcaa4f9b9ed4a0")
3622 (revision "1"))
3623 (package
3624 (name "emacs-robot-mode")
3625 (version (git-version "0.0.0" revision commit))
3626 (source (origin
3627 (method git-fetch)
3628 (uri (git-reference
3629 ;; A better maintained fork of robot-mode.
3630 (url "https://github.com/jvalkeejarvi/robot-mode.git")
3631 (commit commit)))
3632 (file-name (git-file-name name version))
3633 (sha256
3634 (base32
3635 "1i8wf7m0gml8zvvmlgppjzv78b432686p1qdbzgclc7qfcvzag0d"))))
3636 (build-system emacs-build-system)
3637 (propagated-inputs `(("emacs-s" ,emacs-s)))
3638 (home-page "https://github.com/jvalkeejarvi/robot-mode")
3639 (synopsis "Emacs mode for Robot Framework")
3640 (description "This major mode facilitates editing Robot Framework source
3641 files with features such as syntax highlighting, comments, finding keywords,
3642 completing keywords and smart indentation.")
3643 (license license:gpl3+))))
3644
3645 (define-public emacs-rspec
3646 (let ((commit "66ea7cc9699d6edc6115daa024818adbd85efc20")
3647 (revision "1"))
3648 (package
3649 (name "emacs-rspec")
3650 (version (git-version "1.11" revision commit))
3651 (source
3652 (origin
3653 (method git-fetch)
3654 (uri (git-reference
3655 (url "https://github.com/pezra/rspec-mode.git")
3656 (commit commit)))
3657 (file-name (git-file-name name version))
3658 (sha256
3659 (base32 "0b11s8r0pi7ah54km4yg4fqff8wkk409d25qnlwm1l94pdwjd1c8"))))
3660 (build-system emacs-build-system)
3661 (arguments
3662 `(#:include (cons "^snippets\\/rspec-mode\\/" %default-include)
3663 #:tests? #t
3664 #:test-command '("make" "test")))
3665 (home-page "https://github.com/pezra/rspec-mode")
3666 (synopsis "Provides a rspec mode for working with RSpec")
3667 (description
3668 "The Emacs RSpec mode provides keybindings for Ruby source files, e.g. to
3669 verify the spec associated with the current buffer, or entire project, as well
3670 as moving between the spec files, and corresponding code files.
3671
3672 Also included are keybindings for spec files and Dired buffers, as well as
3673 snippets for yasnippet.")
3674 (license license:gpl3+))))
3675
3676 (define-public emacs-smart-mode-line
3677 (package
3678 (name "emacs-smart-mode-line")
3679 (version "2.13")
3680 (source
3681 (origin
3682 (method git-fetch)
3683 (uri (git-reference
3684 (url "https://github.com/Malabarba/smart-mode-line.git")
3685 (commit version)))
3686 (file-name (git-file-name name version))
3687 (sha256
3688 (base32 "164b697xm1rwcggv37dymhf3npbyh2bs59z8b6m5x35lb4c3lf8b"))))
3689 (build-system emacs-build-system)
3690 (propagated-inputs
3691 `(("emacs-rich-minority" ,emacs-rich-minority)))
3692 (home-page "https://github.com/Malabarba/smart-mode-line")
3693 (synopsis "Color-coded smart mode-line")
3694 (description
3695 "Smart Mode Line is a mode-line theme for Emacs. It aims to be easy to
3696 read from small to large monitors by using colors, a prefix feature, and smart
3697 truncation.")
3698 (license license:gpl2+)))
3699
3700 (define-public emacs-sr-speedbar
3701 (let ((commit "77a83fb50f763a465c021eca7343243f465b4a47")
3702 (revision "0"))
3703 (package
3704 (name "emacs-sr-speedbar")
3705 (version (git-version "20161025" revision commit))
3706 (source
3707 (origin
3708 (method git-fetch)
3709 (uri (git-reference
3710 (url "https://github.com/emacsorphanage/sr-speedbar.git")
3711 (commit commit)))
3712 (file-name (git-file-name name version))
3713 (sha256
3714 (base32
3715 "0sd12555hk7z721y00kv3crdybvcn1i08wmd148z5imayzibj153"))))
3716 (build-system emacs-build-system)
3717 (home-page "https://www.emacswiki.org/emacs/SrSpeedbar")
3718 (synopsis "Same frame Emacs @code{speedbar}")
3719 (description
3720 "This Emacs package allows you to show @code{M-x speedbar} in the
3721 same frame (in an extra window). You can customize the initial width of
3722 the speedbar window.")
3723 (license license:gpl3+))))
3724
3725 (define-public emacs-shell-switcher
3726 (package
3727 (name "emacs-shell-switcher")
3728 (version "1.0.1")
3729 (source
3730 (origin
3731 (method git-fetch)
3732 (uri (git-reference
3733 (url "https://github.com/DamienCassou/shell-switcher.git")
3734 (commit (string-append "v" version))))
3735 (file-name (git-file-name name version))
3736 (sha256
3737 (base32 "0ia7sdip4hl27avckv3qpqgm3k4ynvp3xxq1cy53bqfzzx0gcria"))))
3738 (build-system emacs-build-system)
3739 (home-page "https://github.com/DamienCassou/shell-switcher")
3740 (synopsis "Provide fast switching between shell buffers")
3741 (description
3742 "This package provides commands to quickly switch between shell buffers.")
3743 (license license:gpl3+)))
3744
3745 (define-public emacs-names
3746 (let ((commit "d8baba5360e5253938a25d3e005455b6d2d86971")
3747 (version "20151201.0")
3748 (revision "8"))
3749 (package
3750 (name "emacs-names")
3751 (version (git-version version revision commit))
3752 (source
3753 (origin
3754 (method git-fetch)
3755 (uri (git-reference
3756 (url "https://github.com/Malabarba/names")
3757 (commit commit)))
3758 (file-name (git-file-name name version))
3759 (sha256
3760 (base32
3761 "11wyha2q8y7bzqq3jrzix8n97ywvsibvddrahqcps1a1yqk4hzfz"))))
3762 (build-system emacs-build-system)
3763 (home-page "https://github.com/Malabarba/names/")
3764 (synopsis "Namespace implementation for Emacs Lisp")
3765 (description
3766 "This package provides a macro that writes your namespaces for you.")
3767 (license license:gpl3+))))
3768
3769 (define-public emacs-evil-leader
3770 (package
3771 (name "emacs-evil-leader")
3772 (version "0.4.3")
3773 (source
3774 (origin
3775 (method git-fetch)
3776 (uri
3777 (git-reference
3778 (url "https://github.com/cofi/evil-leader")
3779 (commit version)))
3780 (file-name (git-file-name name version))
3781 (sha256
3782 (base32 "1k2zinchs0jjllp8zkpggckyy63dkyi5yig3p46vh4w45jdzysk5"))))
3783 (inputs
3784 `(("emacs-evil" ,emacs-evil)))
3785 (build-system emacs-build-system)
3786 (home-page "https://github.com/cofi/evil-leader")
3787 (synopsis "Implement <leader> feature from Vim")
3788 (description
3789 "Evil Leader provides the @code{<leader>} feature from Vim that provides
3790 an easy way to bind keys under a configurable prefix key.")
3791 (license license:gpl3+)))
3792
3793 (define-public emacs-evil-textobj-syntax
3794 (let ((commit "2d9ba8c75c754b409aea7469f46a5cfa52a872f3")
3795 (version "0")
3796 (revision "1"))
3797 (package
3798 (name "emacs-evil-textobj-syntax")
3799 (version (git-version version revision commit))
3800 (source
3801 (origin
3802 (method git-fetch)
3803 (uri (git-reference
3804 (url "https://github.com/laishulu/evil-textobj-syntax/")
3805 (commit commit)))
3806 (file-name (git-file-name name version))
3807 (sha256
3808 (base32
3809 "031p5i3274dazp7rz6m5y38shfgszm1clmkcf58qfqlvy978ammc"))))
3810 (build-system emacs-build-system)
3811 (propagated-inputs `(("emacs-evil" ,emacs-evil)
3812 ("emacs-names" ,emacs-names)))
3813 (home-page "https://github.com/laishulu/evil-textobj-syntax/")
3814 (synopsis "Text objects based on syntax highlighting")
3815 (description
3816 "This package provides text objects for @code{evil-mode} with
3817 boundaries defined by syntax highlighting.")
3818 (license license:gpl3+))))
3819
3820 (define-public emacs-flycheck-flow
3821 (let ((commit "9e8e52cfc98af6a23fd906f9cb5d5d470d8cf82d")
3822 (version "1.1")
3823 (revision "1"))
3824 (package
3825 (name "emacs-flycheck-flow")
3826 (version (git-version version revision commit))
3827 (source
3828 (origin
3829 (method git-fetch)
3830 (uri (git-reference
3831 (url "https://github.com/lbolla/emacs-flycheck-flow")
3832 (commit commit)))
3833 (file-name (git-file-name name version))
3834 (sha256
3835 (base32
3836 "14qldlisbmxzammr500gyha2hiv2xgyzfc6mysqii06kbcqn1ik1"))))
3837 (build-system emacs-build-system)
3838 (propagated-inputs
3839 `(("emacs-flycheck" ,emacs-flycheck)))
3840 (home-page "https://github.com/lbolla/emacs-flycheck-flow")
3841 (synopsis "Flow support for @code{flycheck-mode}")
3842 (description
3843 "This package allows @code{flycheck-mode} to provide syntax-checking
3844 for Flow files.")
3845 (license license:gpl3+))))
3846
3847 (define-public emacs-flycheck-grammalecte
3848 (package
3849 (name "emacs-flycheck-grammalecte")
3850 (version "1.2")
3851 (source
3852 (origin
3853 (method url-fetch)
3854 (uri (string-append "https://git.deparis.io/"
3855 "flycheck-grammalecte/snapshot/"
3856 "flycheck-grammalecte-" version ".tar.xz"))
3857 (sha256
3858 (base32 "1mzmzyik843r4j0ibpwqrxmb0g4xmirrf3lxr010bddkmmxf749a"))))
3859 (build-system emacs-build-system)
3860 (arguments
3861 `(#:include '("\\.(el|py)$")
3862 #:exclude '("^test-profile.el$")
3863 #:emacs ,emacs ;need libxml support
3864 #:phases
3865 (modify-phases %standard-phases
3866 (add-after 'unpack 'specify-python-location
3867 ;; Hard-code python3 executable location in the library.
3868 (lambda* (#:key inputs #:allow-other-keys)
3869 (let ((python3 (string-append (assoc-ref inputs "python")
3870 "/bin/python3")))
3871 (substitute* "flycheck-grammalecte.el"
3872 (("\"python3") (string-append "\"" python3)))
3873 (substitute* '("conjugueur.py" "flycheck-grammalecte.py")
3874 (("/usr/bin/env python3?") python3))
3875 #t)))
3876 (add-before 'build 'link-to-grammalecte
3877 ;; XXX: The Python part of the package requires grammalecte, but
3878 ;; the library is not specified in PYTHONPATH, since we're not
3879 ;; using Python build system. As a workaround, we symlink
3880 ;; grammalecte libraries here.
3881 (lambda* (#:key inputs outputs #:allow-other-keys)
3882 (let* ((out (assoc-ref outputs "out"))
3883 (grammalecte (assoc-ref inputs "grammalecte"))
3884 (version ,(version-major+minor (package-version python))))
3885 (with-directory-excursion
3886 (string-append out "/share/emacs/site-lisp")
3887 (symlink (string-append grammalecte "/lib/"
3888 "python" version "/site-packages/"
3889 "grammalecte")
3890 "grammalecte"))
3891 #t))))))
3892 (inputs
3893 `(("grammalecte" ,grammalecte)
3894 ("python" ,python)))
3895 (propagated-inputs
3896 `(("emacs-flycheck" ,emacs-flycheck)))
3897 (home-page "https://git.deparis.io/flycheck-grammalecte/")
3898 (synopsis "Integrate Grammalecte with Flycheck")
3899 (description
3900 "Integrate the French grammar and typography checker Grammalecte with
3901 Flycheck to automatically look for mistakes in your writings. It also
3902 provides an easy way to find synonyms and antonyms for a given word (to avoid
3903 repetitions for example).")
3904 (license license:gpl3+)))
3905
3906 (define-public emacs-flycheck-rust
3907 (package
3908 (name "emacs-flycheck-rust")
3909 (version "1.1")
3910 (source
3911 (origin
3912 (method git-fetch)
3913 (uri
3914 (git-reference
3915 (url "https://github.com/flycheck/flycheck-rust")
3916 (commit version)))
3917 (file-name (git-file-name name version))
3918 (sha256
3919 (base32 "1fh6j5w2387nh2fwwjphkhq17cgj5m2q5k0fhidvgc2w65lzbr1r"))))
3920 (propagated-inputs
3921 `(("emacs-dash" ,emacs-dash)
3922 ("emacs-flycheck" ,emacs-flycheck)
3923 ("emacs-let-alist" ,emacs-let-alist)))
3924 (build-system emacs-build-system)
3925 (home-page "https://github.com/flycheck/flycheck-rust")
3926 (synopsis "Rust/Cargo support for Flycheck")
3927 (description
3928 "This Flycheck extension configures Flycheck automatically for
3929 the current Cargo project.")
3930 (license license:gpl3+)))
3931
3932 (define-public emacs-elisp-demos
3933 (package
3934 (name "emacs-elisp-demos")
3935 (version "2020.02.19")
3936 (source
3937 (origin
3938 (method git-fetch)
3939 (uri (git-reference
3940 (url "https://github.com/xuchunyang/elisp-demos")
3941 (commit version)))
3942 (file-name (git-file-name name version))
3943 (sha256
3944 (base32
3945 "0mckgaz92v3y2vlkggx9kd51fd1mahylw39c42l51dyv8wscm7sc"))))
3946 (build-system emacs-build-system)
3947 (arguments
3948 `(#:include '("\\.el$" "\\.org$")
3949 #:tests? #t
3950 #:test-command '("make" "test")))
3951 (home-page "https://github.com/xuchunyang/elisp-demos/")
3952 (synopsis "Enhance @code{*Help*} buffers with additional examples")
3953 (description
3954 "This package injects example uses of Elisp functions into their
3955 respective @code{*Help*} buffers.")
3956 (license license:gpl3+)))
3957
3958 (define-public emacs-docker-compose-mode
3959 (package
3960 (name "emacs-docker-compose-mode")
3961 (version "1.1.0")
3962 (source
3963 (origin
3964 (method git-fetch)
3965 (uri (git-reference
3966 (url "https://github.com/meqif/docker-compose-mode")
3967 (commit version)))
3968 (file-name (git-file-name name version))
3969 (sha256
3970 (base32
3971 "1fbcxwfvm33xcdj3cs26d9i1zyrryyjjkv7sc3mfxd45nq8d3ivj"))))
3972 (build-system emacs-build-system)
3973 (propagated-inputs
3974 `(("emacs-dash" ,emacs-dash)
3975 ("emacs-f" ,emacs-f)))
3976 (home-page "https://github.com/meqif/docker-compose-mode/")
3977 (synopsis "Major mode for editing @file{docker-compose} files")
3978 (description
3979 "This is a major mode for @file{docker-compose} files that provides
3980 completion of relevant keywords.")
3981 (license license:expat)))
3982
3983 (define-public emacs-sudo-edit
3984 (let ((commit "cc3d478937b1accd38742bfceba92af02ee9357d")
3985 (revision "6"))
3986 (package
3987 (name "emacs-sudo-edit")
3988 (version (git-version "0.1.0" revision commit))
3989 (source
3990 (origin
3991 (method git-fetch)
3992 (uri (git-reference
3993 (url "https://github.com/nflath/sudo-edit")
3994 (commit commit)))
3995 (file-name (git-file-name name version))
3996 (sha256
3997 (base32
3998 "1qv58x5j5a3v1s2ylhck1ykbfclq0mbi0gsvaql3nyv8cxazqlwl"))))
3999 (build-system emacs-build-system)
4000 (native-inputs
4001 `(("emacs-undercover" ,emacs-undercover)))
4002 (arguments
4003 `(#:phases
4004 (modify-phases %standard-phases
4005 (add-before 'check 'fix-makefile
4006 (lambda _
4007 (substitute* "Makefile"
4008 (("\\$\\(CASK\\) exec ") ""))
4009 #t)))
4010 #:tests? #t
4011 #:test-command '("make" "test")))
4012 (home-page "https://github.com/nflath/sudo-edit/")
4013 (synopsis "Open files as another user")
4014 (description
4015 "This package allows editing files as another user, including the root
4016 user.")
4017 (license license:gpl3+))))
4018
4019 (define-public emacs-miniedit
4020 (package
4021 (name "emacs-miniedit")
4022 (version "2.0")
4023 (source
4024 (origin
4025 (method git-fetch)
4026 (uri (git-reference
4027 (url "https://github.com/emacsmirror/miniedit")
4028 (commit version)))
4029 (file-name (git-file-name name version))
4030 (sha256
4031 (base32
4032 "1850z96gly0jnr50472idqz1drzqarr0n23bbasslrc501xkg0bq"))))
4033 (build-system emacs-build-system)
4034 (home-page "https://github.com/emacsmirror/miniedit/")
4035 (synopsis "Enhanced editing for minibuffer fields")
4036 (description
4037 "This package provides a function that can be called from the
4038 minibuffer to enable editing the minibuffer input in another buffer with
4039 @code{text-mode} enabled.")
4040 (license license:gpl2+)))
4041
4042 (define-public emacs-ob-ipython
4043 (package
4044 (name "emacs-ob-ipython")
4045 (version "20180224")
4046 (source (origin
4047 (method git-fetch)
4048 (uri (git-reference
4049 (commit "7147455230841744fb5b95dcbe03320313a77124")
4050 (url "https://github.com/gregsexton/ob-ipython.git")))
4051 (file-name (git-file-name name version))
4052 (sha256
4053 (base32
4054 "1a10fc2jk37ni5sjjvf87s5nyaz2a6h2mlj5dxh4dhv5sd3bb85p"))))
4055 (build-system emacs-build-system)
4056 (propagated-inputs
4057 `(("emacs-f" ,emacs-f)))
4058 (home-page "http://www.gregsexton.org")
4059 (synopsis "Org-Babel functions for IPython evaluation")
4060 (description "This package adds support to Org-Babel for evaluating Python
4061 source code using IPython.")
4062 (license license:gpl3+)))
4063
4064 (define-public emacs-debbugs
4065 (package
4066 (name "emacs-debbugs")
4067 (version "0.22")
4068 (source (origin
4069 (method url-fetch)
4070 (uri (string-append "https://elpa.gnu.org/packages/debbugs-"
4071 version ".tar"))
4072 (sha256
4073 (base32
4074 "05ik9qv539b5c1nzxkk3lk23bqj4vqgmfmd8x367abhb7c9gix2z"))))
4075 (build-system emacs-build-system)
4076 (arguments '(#:include '("\\.el$" "\\.wsdl$" "\\.info$")))
4077 (propagated-inputs
4078 `(("emacs-async" ,emacs-async)))
4079 (home-page "https://elpa.gnu.org/packages/debbugs.html")
4080 (synopsis "Access the Debbugs bug tracker in Emacs")
4081 (description
4082 "This package lets you access the @uref{http://bugs.gnu.org,GNU Bug
4083 Tracker} from within Emacs.
4084
4085 For instance, it defines the command @code{M-x debbugs-gnu} for listing bugs,
4086 and the command @code{M-x debbugs-gnu-search} for bug searching. If you
4087 prefer the listing of bugs as TODO items of @code{org-mode}, you could use
4088 @code{M-x debbugs-org} and related commands.
4089
4090 A minor mode @code{debbugs-browse-mode} let you browse URLs to the GNU Bug
4091 Tracker as well as bug identifiers prepared for @code{bug-reference-mode}.")
4092 (license license:gpl3+)))
4093
4094 (define-public emacs-ert-expectations
4095 (package
4096 (name "emacs-ert-expectations")
4097 (version "0.2")
4098 (source
4099 (origin
4100 (method url-fetch)
4101 (uri "https://www.emacswiki.org/emacs/download/ert-expectations.el")
4102 (sha256
4103 (base32
4104 "0cwy3ilsid90abzzjb7ha2blq9kmv3gfp3icwwfcz6qczgirq6g7"))))
4105 (build-system emacs-build-system)
4106 (home-page "https://www.emacswiki.org/emacs/ert-expectations.el")
4107 (synopsis "Simple unit test framework for Emacs Lisp")
4108 (description "@code{emacs-ert-expectations} is a simple unit test
4109 framework for Emacs Lisp to be used with @code{ert}.")
4110 (license license:gpl3+)))
4111
4112 (define-public emacs-deferred
4113 (package
4114 (name "emacs-deferred")
4115 (version "0.5.1")
4116 (home-page "https://github.com/kiwanami/emacs-deferred")
4117 (source (origin
4118 (method git-fetch)
4119 (uri (git-reference
4120 (url home-page)
4121 (commit (string-append "v" version))))
4122 (file-name (git-file-name name version))
4123 (sha256
4124 (base32
4125 "0xy9zb6wwkgwhcxdnslqk52bq3z24chgk6prqi4ks0qcf2bwyh5h"))))
4126 (build-system emacs-build-system)
4127 (arguments
4128 `(#:phases
4129 (modify-phases %standard-phases
4130 (add-after 'unpack 'set-shell
4131 ;; Setting the SHELL environment variable is required for the tests
4132 ;; to find sh.
4133 (lambda _
4134 (setenv "SHELL" (which "sh"))
4135 #t))
4136 (add-before 'check 'fix-makefile
4137 (lambda _
4138 (substitute* "Makefile"
4139 (("\\$\\(CASK\\) exec ") ""))
4140 #t)))
4141 #:tests? #t
4142 #:test-command '("make" "test")))
4143 (native-inputs
4144 `(("emacs-ert-expectations" ,emacs-ert-expectations)
4145 ("emacs-undercover" ,emacs-undercover)
4146 ("ert-runner" ,emacs-ert-runner)))
4147 (synopsis "Simple asynchronous functions for Emacs Lisp")
4148 (description
4149 "The @code{deferred.el} library provides support for asynchronous tasks.
4150 The API is almost the same as that of
4151 @uref{https://github.com/cho45/jsdeferred, JSDeferred}, a JavaScript library
4152 for asynchronous tasks.")
4153 (license license:gpl3+)))
4154
4155 (define-public emacs-butler
4156 (package
4157 (name "emacs-butler")
4158 (version "0.2.4")
4159 (home-page "https://github.com/AshtonKem/Butler")
4160 (source (origin
4161 (method git-fetch)
4162 (uri (git-reference
4163 (url home-page)
4164 (commit version)))
4165 (file-name (git-file-name name version))
4166 (sha256
4167 (base32
4168 "1pii9dw4skq7nr4na6qxqasl36av8cwjp71bf1fgppqpcd9z8skj"))))
4169 (build-system emacs-build-system)
4170 (propagated-inputs
4171 `(("emacs-deferred" ,emacs-deferred)))
4172 (synopsis "Emacs client for Jenkins")
4173 (description
4174 "Butler provides an interface to connect to Jenkins continuous
4175 integration servers. Users can specify a list of server in the
4176 @code{butler-server-list} variable and then use @code{M-x butler-status} to
4177 view the build status of those servers' build jobs, and possibly to trigger
4178 build jobs.")
4179 (license license:gpl3+)))
4180
4181 (define-public emacs-company
4182 (package
4183 (name "emacs-company")
4184 (version "0.9.12")
4185 (source
4186 (origin
4187 (method git-fetch)
4188 (uri (git-reference
4189 (url "https://github.com/company-mode/company-mode.git")
4190 (commit version)))
4191 (file-name (git-file-name name version))
4192 (sha256
4193 (base32 "0c31amc6gyfkmb1ii6mm56c75za1yxkj2iyhrjc45nn2mrh7yj7a"))))
4194 (build-system emacs-build-system)
4195 (arguments
4196 `(#:phases
4197 (modify-phases %standard-phases
4198 (add-before 'check 'fix-bin-dir
4199 (lambda _
4200 ;; The company-files-candidates-normal-root test looks
4201 ;; for the /bin directory, but the build environment has
4202 ;; no /bin directory. Modify the test to look for the
4203 ;; /tmp directory.
4204 (substitute* "test/files-tests.el"
4205 (("/bin/") "/tmp/"))
4206 #t)))
4207 #:tests? #t
4208 #:test-command '("make" "test-batch")))
4209 (home-page "https://company-mode.github.io/")
4210 (synopsis "Modular text completion framework")
4211 (description
4212 "Company is a modular completion mechanism. Modules for retrieving
4213 completion candidates are called back-ends, modules for displaying them are
4214 front-ends. Company comes with many back-ends, e.g., @code{company-elisp}.
4215 These are distributed in separate files and can be used individually.")
4216 (license license:gpl3+)))
4217
4218 (define-public emacs-company-posframe
4219 (let ((version "0.1.0")
4220 (revision "1")
4221 (commit "67d899502384fb9ab2870aba0af41523dea7b64f"))
4222 (package
4223 (name "emacs-company-posframe")
4224 (version (git-version version revision commit))
4225 (source (origin
4226 (method git-fetch)
4227 (uri (git-reference
4228 (url "https://github.com/tumashu/company-posframe.git")
4229 (commit commit)))
4230 (file-name (git-file-name name version))
4231 (sha256
4232 (base32
4233 "051smlvz1siwglsd9k9l0m20mygrx4niflmyshha0064287aysxr"))))
4234 (build-system emacs-build-system)
4235 (propagated-inputs
4236 `(("emacs-company" ,emacs-company)
4237 ("emacs-posframe" ,emacs-posframe)))
4238 (home-page "https://github.com/tumashu/company-posframe")
4239 (synopsis "Use a posframe for @code{emacs-company}'s candidate menu")
4240 (description
4241 "Allows @code{emacs-company} to use child frames for its candidate menus.
4242
4243 @code{emacs-company-posframe} is fast enough for daily use and supports CJK
4244 languages.")
4245 (license license:gpl3+))))
4246
4247 (define-public emacs-irony-mode
4248 (package
4249 (name "emacs-irony-mode")
4250 (version "1.4.0")
4251 (home-page "https://github.com/Sarcasm/irony-mode")
4252 (source (origin
4253 (method git-fetch)
4254 (uri (git-reference
4255 (url (string-append home-page ".git"))
4256 (commit (string-append "v" version))))
4257 (file-name (git-file-name name version))
4258 (sha256
4259 (base32
4260 "0n2nfcq58md1p2xdhq1smh8v7lsyj0ci7ma5xyd6bkg5rvhsh10i"))))
4261 (build-system emacs-build-system)
4262 (inputs `(("server" ,emacs-irony-mode-server)))
4263 (arguments `(#:phases
4264 (modify-phases %standard-phases
4265 (add-after 'unpack 'configure
4266 (lambda* (#:key inputs #:allow-other-keys)
4267 (chmod "irony.el" #o644)
4268 (emacs-substitute-variables "irony.el"
4269 ("irony-server-install-prefix"
4270 (assoc-ref inputs "server")))
4271 #t)))))
4272 (synopsis "C/C++/ObjC Code completion and syntax checks for Emacs")
4273 (description "Irony-mode provides Clang-assisted syntax checking and
4274 completion for C, C++, and ObjC in GNU Emacs. Using @code{libclang} it can
4275 provide syntax checking and autocompletion on compiler level which is very
4276 resistant against false positives. It also integrates well with other
4277 packages like @code{eldoc-mode} and especially @code{company-mode} as
4278 described on the homepage.")
4279 (license license:gpl3+)))
4280
4281 (define-public emacs-irony-mode-server
4282 (package (inherit emacs-irony-mode)
4283 (name "emacs-irony-mode-server")
4284 (inputs
4285 `(("clang" ,clang)))
4286 (arguments
4287 `(#:phases
4288 (modify-phases %standard-phases
4289 (replace 'configure
4290 (lambda* (#:key outputs #:allow-other-keys)
4291 (let ((out (assoc-ref outputs "out")))
4292 (invoke "cmake"
4293 "server"
4294 (string-append "-DCMAKE_INSTALL_PREFIX=" out)) #t))))))
4295 (build-system cmake-build-system)
4296 (synopsis "Server for the Emacs @dfn{irony mode}")))
4297
4298 (define-public emacs-company-irony
4299 (package
4300 (name "emacs-company-irony")
4301 (version "1.1.0")
4302 (source (origin
4303 (method git-fetch)
4304 (uri (git-reference
4305 (url "https://github.com/Sarcasm/company-irony.git")
4306 (commit (string-append "v" version))))
4307 (sha256 (base32
4308 "1qgyam2vyjw90kpxns5cd6bq3qiqjhzpwrlvmi18vyb69qcgqd8a"))
4309 (file-name (git-file-name name version))))
4310 (build-system emacs-build-system)
4311 (inputs
4312 `(("emacs-irony-mode" ,emacs-irony-mode)
4313 ("emacs-company" ,emacs-company)))
4314 (synopsis "C++ completion backend for Company using irony-mode")
4315 (description "This backend for company-mode allows for C++ code completion
4316 with irony-mode using clang-tooling.")
4317 (home-page "https://github.com/Sarcasm/company-irony")
4318 (license license:gpl3+)))
4319
4320 (define-public emacs-flycheck-irony
4321 (package
4322 (name "emacs-flycheck-irony")
4323 (version "0.1.0")
4324 (source (origin
4325 (method git-fetch)
4326 (uri (git-reference
4327 (url "https://github.com/Sarcasm/flycheck-irony.git")
4328 (commit (string-append "v" version))))
4329 (file-name (git-file-name name version))
4330 (sha256
4331 (base32 "0qa5a8wzvzxwqql92ibc9s43k8sj3vwn7skz9hfr8av0skkhx996"))))
4332 (build-system emacs-build-system)
4333 (inputs
4334 `(("irony-mode" ,emacs-irony-mode)
4335 ("flycheck-mode" ,emacs-flycheck)
4336 ("emacs-company" ,emacs-company)))
4337 (synopsis "Live syntax checking frontend for Flycheck using irony-mode")
4338 (description "This package provides a frontend for Flycheck that lets
4339 irony-mode do the syntax checking.")
4340 (home-page "https://github.com/Sarcasm/flycheck-irony")
4341 (license license:gpl3+)))
4342
4343 (define-public emacs-irony-eldoc
4344 (package
4345 (name "emacs-irony-eldoc")
4346 (version (package-version emacs-irony-mode))
4347 (source
4348 (origin
4349 (method git-fetch)
4350 (uri (git-reference
4351 (url "https://github.com/ikirill/irony-eldoc.git")
4352 (commit "0df5831eaae264a25422b061eb2792aadde8b3f2")))
4353 (file-name (git-file-name name version))
4354 (sha256
4355 (base32 "1l5qpr66v1l12fb50yh73grb2rr85xxmbj19mm33b5rdrq2bqmmd"))))
4356 (build-system emacs-build-system)
4357 (inputs
4358 `(("irony-mode" ,emacs-irony-mode)))
4359 (synopsis "Eldoc integration for irony-mode")
4360 (description "Irony-eldoc is an eldoc extension that shows documentation
4361 for the current function or variable in the minibuffer.")
4362 (home-page "https://github.com/ikirill/irony-eldoc")
4363 (license license:gpl3+)))
4364
4365 (define-public emacs-company-quickhelp
4366 ;; XXX: release version 2.3.0 is on an unmaintained branch for some reason,
4367 ;; so we use the latest 2.2.0 commit instead
4368 (let ((commit "479676cade80a9f03802ca3d956591820ed5c537")
4369 (revision "1"))
4370 (package
4371 (name "emacs-company-quickhelp")
4372 (version (git-version "2.2.0" revision commit))
4373 (source
4374 (origin
4375 (method git-fetch)
4376 (uri (git-reference
4377 (url "https://github.com/expez/company-quickhelp.git")
4378 (commit commit)))
4379 (file-name (git-file-name name version))
4380 (sha256
4381 (base32 "0hbqpnaf4hnin3nmdzmfj3v22kk9a97b6zssqs96ns36d9h52xcp"))))
4382 (build-system emacs-build-system)
4383 (propagated-inputs
4384 `(("emacs-pos-tip" ,emacs-pos-tip)
4385 ("emacs-company" ,emacs-company)))
4386 (home-page "https://github.com/expez/company-quickhelp")
4387 (synopsis "Popup documentation for completion candidates")
4388 (description "@code{company-quickhelp} shows documentation for the
4389 completion candidate when using the Company text completion framework.")
4390 (license license:gpl3+))))
4391
4392 (define-public emacs-math-symbol-lists
4393 (let ((commit "dc7531cff0c845d5470a50c24d5d7309b2ced7eb")
4394 (revision "1"))
4395 (package
4396 (name "emacs-math-symbol-lists")
4397 (version (git-version "1.2.1" revision commit))
4398 (source
4399 (origin
4400 (method git-fetch)
4401 (uri (git-reference
4402 (url "https://github.com/vspinu/math-symbol-lists.git")
4403 (commit commit)))
4404 (file-name (git-file-name name version))
4405 (sha256
4406 (base32 "094m21i9rns6m59cmhxcivxxafbg52w8f8na4y3v47aq67zmhhqm"))))
4407 (build-system emacs-build-system)
4408 (home-page "https://github.com/vspinu/math-symbol-lists")
4409 (synopsis "Lists of Unicode math symbols and @code{LaTeX} commands")
4410 (description "This is a storage package used by completion engines like
4411 @code{company-math}.")
4412 (license license:gpl3+))))
4413
4414 (define-public emacs-company-coq
4415 (package
4416 (name "emacs-company-coq")
4417 (version "1.0.1")
4418 (source
4419 (origin
4420 (method git-fetch)
4421 (uri
4422 (git-reference
4423 (url "https://github.com/cpitclaudel/company-coq")
4424 (commit version)))
4425 (file-name (git-file-name name version))
4426 (sha256
4427 (base32 "0dxi4h8xqq5647k7h89s4pi8nwyj3brlhsckrv3p3b1g4dr6mk3b"))))
4428 (inputs
4429 `(("emacs-company" ,emacs-company)
4430 ("emacs-company-math" ,emacs-company-math)
4431 ("emacs-dash" ,emacs-dash)
4432 ("emacs-yasnippet" ,emacs-yasnippet)))
4433 (build-system emacs-build-system)
4434 (home-page "https://github.com/cpitclaudel/company-coq")
4435 (synopsis "Emacs extensions for Proof General's Coq mode")
4436 (description "This package includes a collection of Company mode backends
4437 for Proof-General's Coq mode, and many useful extensions to Proof-General. It
4438 features:
4439
4440 @itemize
4441 @item Prettification of operators, types, and subscripts,
4442 @item Auto-completion,
4443 @item Insertion of cases,
4444 @item Fully explicit intros,
4445 @item Outlines, code folding, and jumping to definition,
4446 @item Help with errors,
4447 @item and more.
4448 @end itemize")
4449 (license license:gpl3+)))
4450
4451 (define-public emacs-company-math
4452 (let ((commit "600e49449644f6835f9dc3501bc58461999e8ab9")
4453 (revision "1"))
4454 (package
4455 (name "emacs-company-math")
4456 (version (git-version "1.3" revision commit))
4457 (source
4458 (origin
4459 (method git-fetch)
4460 (uri (git-reference
4461 (url "https://github.com/vspinu/company-math.git")
4462 (commit commit)))
4463 (file-name (git-file-name name version))
4464 (sha256
4465 (base32
4466 "1ps2lpkzn8mjbpcbvvy1qz3xbgrh6951x8y9bsd1fm32drdph9lh"))))
4467 (build-system emacs-build-system)
4468 (propagated-inputs
4469 `(("emacs-math-symbol-lists" ,emacs-math-symbol-lists)
4470 ("emacs-company" ,emacs-company)))
4471 (home-page "https://github.com/vspinu/company-math")
4472 (synopsis "Completion backends for Unicode math symbols and @code{LaTeX} tags")
4473 (description "This package provides a backend for use with
4474 @code{company-mode} allowing for completion of common math symbols.")
4475 (license license:gpl3+))))
4476
4477 (define-public emacs-compdef
4478 (let ((commit "67104a38763cc819644f711248b170a43bce151b")
4479 (revision "2"))
4480 (package
4481 (name "emacs-compdef")
4482 (version (git-version "0.2" revision commit))
4483 (source
4484 (origin
4485 (method git-fetch)
4486 (uri (git-reference
4487 (url "https://gitlab.com/jjzmajic/compdef.git")
4488 (commit commit)))
4489 (file-name (git-file-name name version))
4490 (sha256
4491 (base32 "1f6y6cr67gps9jp5hd20xszfd3k26v70g6z4g5db6wdkvlnc2wkg"))))
4492 (build-system emacs-build-system)
4493 (home-page "https://gitlab.com/jjzmajic/compdef")
4494 (synopsis "Set local completion backends")
4495 (description "This package provides a function to cleanly set local
4496 completion backends according to mode, and integrates with
4497 @code{use-package}.")
4498 (license license:gpl3+))))
4499
4500 (define-public emacs-icomplete-vertical
4501 (package
4502 (name "emacs-icomplete-vertical")
4503 (version "0.1")
4504 (source
4505 (origin
4506 (method git-fetch)
4507 (uri (git-reference
4508 (url "https://github.com/oantolin/icomplete-vertical.git")
4509 (commit version)))
4510 (file-name (git-file-name name version))
4511 (sha256
4512 (base32
4513 "1bqnlvv1gvrjriazvzd3bq98r8ii6fqax0zznhvkl1ij5pf55a90"))))
4514 (build-system emacs-build-system)
4515 (home-page "https://github.com/oantolin/icomplete-vertical")
4516 (synopsis "Display icomplete candidates vertically")
4517 (description
4518 "This package defines a global minor mode to display Icomplete
4519 completion candidates vertically.")
4520 (license license:gpl3+)))
4521
4522 (define-public emacs-handle
4523 (let ((commit "51c050bc1c6e5caf0eb47ecd985daea1db7241ab")
4524 (revision "2"))
4525 (package
4526 (name "emacs-handle")
4527 (version (git-version "0.1" revision commit))
4528 (source
4529 (origin
4530 (method git-fetch)
4531 (uri (git-reference
4532 (url "https://gitlab.com/jjzmajic/handle.git")
4533 (commit commit)))
4534 (file-name (git-file-name name version))
4535 (sha256
4536 (base32 "14f15qzfmwdslml4rv37zb5d1lsjf0jibriz636hb7q7knx1n4sg"))))
4537 (build-system emacs-build-system)
4538 (propagated-inputs
4539 `(("emacs-parent-mode" ,emacs-parent-mode)))
4540 (home-page "https://gitlab.com/jjzmajic/handle")
4541 (synopsis "Handle generic functions across related major modes")
4542 (description "This package provides generic functions that specialize on
4543 major modes and intended purpose rather than on arguments. Different
4544 callables for tasks like expression evaluation, definition-jumping, and more
4545 can now be grouped accordingly and tried in sequence until one of them
4546 succeeds.")
4547 (license license:gpl3+))))
4548
4549 (define-public emacs-nswbuff
4550 (let ((commit "362da7f3687e2eb5bb11667347de85f4a9d002bc")
4551 (revision "1"))
4552 (package
4553 (name "emacs-nswbuff")
4554 (version (git-version "1.0" revision commit))
4555 (source
4556 (origin
4557 (method git-fetch)
4558 (uri (git-reference
4559 (url "https://github.com/joostkremers/nswbuff.git")
4560 (commit commit)))
4561 (file-name (git-file-name name version))
4562 (sha256
4563 (base32 "0l2xfz8z5qd4hz3kv6zn7h6qq3narkilri8a071y1n8j31jps4ma"))))
4564 (build-system emacs-build-system)
4565 (home-page "https://github.com/joostkremers/nswbuff")
4566 (synopsis "Quickly switch between buffers")
4567 (description "This package allows for navigating between buffers within
4568 a customizable list.")
4569 (license license:gpl3+))))
4570
4571 (define-public emacs-phi-search
4572 (let ((commit "9a089b8271cb1cff9640848850298c9ec855286c")
4573 (revision "1"))
4574 (package
4575 (name "emacs-phi-search")
4576 (version (git-version "20160630" revision commit))
4577 (source
4578 (origin
4579 (method git-fetch)
4580 (uri (git-reference
4581 (url "https://github.com/zk-phi/phi-search.git")
4582 (commit commit)))
4583 (file-name (git-file-name name version))
4584 (sha256
4585 (base32 "1gr5plcbrfdc4pglfj905s89hf8x0kc083h30wcnd81bnw9jwz1x"))))
4586 (build-system emacs-build-system)
4587 (home-page "https://github.com/zk-phi/phi-search")
4588 (synopsis "Interactive search compatible with @code{multiple-cursors}")
4589 (description "This package can be used with @code{multiple-cursors} to
4590 provide an incremental search that moves all fake cursors in sync.")
4591 (license license:gpl2+))))
4592
4593 (define-public emacs-phi-search-mc
4594 (let ((commit "7aa671910f766437089aec26c3aa7814222d1356")
4595 (revision "1"))
4596 (package
4597 (name "emacs-phi-search-mc")
4598 (version (git-version "2.2.1" revision commit))
4599 (source
4600 (origin
4601 (method git-fetch)
4602 (uri (git-reference
4603 (url "https://github.com/knu/phi-search-mc.el.git")
4604 (commit commit)))
4605 (file-name (git-file-name name version))
4606 (sha256
4607 (base32 "0wr86ad0yl52im6b9z0b9pzmhcn39qg5m9878yfv1nbxliw40lcd"))))
4608 (build-system emacs-build-system)
4609 (propagated-inputs
4610 `(("emacs-phi-search" ,emacs-phi-search)
4611 ("emacs-multiple-cursors" ,emacs-multiple-cursors)))
4612 (home-page "https://github.com/knu/phi-search-mc.el")
4613 (synopsis "Extend @code{phi-search} with additional
4614 @code{multiple-cursors} functionality")
4615 (description "This package provides further integration between
4616 @code{multiple-cursors} and @code{phi-search}, a package that allows for
4617 interactive searches to move multiple fake cursors.")
4618 (license license:bsd-2))))
4619
4620 (define-public emacs-multiple-cursors
4621 (package
4622 (name "emacs-multiple-cursors")
4623 (version "1.4.0")
4624 (source
4625 (origin
4626 (method git-fetch)
4627 (uri (git-reference
4628 (url "https://github.com/magnars/multiple-cursors.el.git")
4629 (commit version)))
4630 (file-name (git-file-name name version))
4631 (sha256
4632 (base32 "1ijgvzv5r44xqvz751fd5drbvrspapw6xwv47582w255j363r6ss"))))
4633 (build-system emacs-build-system)
4634 (home-page "https://github.com/magnars/multiple-cursors.el")
4635 (synopsis "Multiple cursors for Emacs")
4636 (description
4637 "This package adds support to Emacs for editing text with multiple
4638 simultaneous cursors.")
4639 (license license:gpl3+)))
4640
4641 (define-public emacs-mc-extras
4642 (let ((commit "053abc52181b8718559d7361a587bbb795faf164")
4643 (revision "1"))
4644 (package
4645 (name "emacs-mc-extras")
4646 (version (git-version "1.2.4" revision commit))
4647 (source
4648 (origin
4649 (method git-fetch)
4650 (uri (git-reference
4651 (url "https://github.com/knu/mc-extras.el.git")
4652 (commit commit)))
4653 (file-name (git-file-name name version))
4654 (sha256
4655 (base32 "16y48qrd20m20vypvys5jp4v4gc1qrqlkm75s1pk1r68i9zrw481"))))
4656 (build-system emacs-build-system)
4657 (propagated-inputs
4658 `(("emacs-multiple-cursors" ,emacs-multiple-cursors)))
4659 (home-page "https://github.com/knu/mc-extras.el")
4660 (synopsis "Extra functions for manipulating multiple cursors")
4661 (description
4662 "This package provides additional functions for
4663 @code{multiple-cursors}, including functions for marking s-expressions,
4664 comparing characters, removing cursors, and more.")
4665 (license license:bsd-2))))
4666
4667 (define-public emacs-typo
4668 (package
4669 (name "emacs-typo")
4670 (version "1.1")
4671 (home-page "https://github.com/jorgenschaefer/typoel")
4672 (source (origin
4673 (method git-fetch)
4674 (uri (git-reference
4675 (url home-page)
4676 (commit (string-append "v" version))))
4677 (file-name (git-file-name name version))
4678 (sha256
4679 (base32
4680 "1jhd4grch5iz12gyxwfbsgh4dmz5hj4bg4gnvphccg8dsnni05k2"))))
4681 (build-system emacs-build-system)
4682 (synopsis "Minor mode for typographic editing")
4683 (description
4684 "This package provides two Emacs modes, @code{typo-mode} and
4685 @code{typo-global-mode}. These modes automatically insert Unicode characters
4686 for quotation marks, dashes, and ellipses. For example, typing @kbd{\"}
4687 automatically inserts a Unicode opening or closing quotation mark, depending
4688 on context.")
4689 (license license:gpl3+)))
4690
4691 (define-public emacs-company-lsp
4692 (package
4693 (name "emacs-company-lsp")
4694 (version "2.1.0")
4695 (source (origin
4696 (method git-fetch)
4697 (uri (git-reference
4698 (url "https://github.com/tigersoldier/company-lsp.git")
4699 (commit version)))
4700 (file-name (git-file-name name version))
4701 (sha256
4702 (base32
4703 "1hy1x2w0yp5brm7714d1hziz3rpkywb5jp3yj78ibmi9ifny9vri"))))
4704 (build-system emacs-build-system)
4705 (propagated-inputs
4706 `(("emacs-dash" ,emacs-dash)
4707 ("emacs-lsp-mode" ,emacs-lsp-mode)
4708 ("emacs-company" ,emacs-company)
4709 ("emacs-s" ,emacs-s)
4710 ("emacs-dash" ,emacs-dash)))
4711 (native-inputs
4712 `(("emacs-buttercup" ,emacs-buttercup)))
4713 (arguments
4714 `(#:tests? #t
4715 #:test-command '("buttercup" "-L" ".")))
4716 (home-page "https://github.com/tigersoldier/company-lsp")
4717 (synopsis "Completion for @code{lsp-mode}")
4718 (description
4719 "This package provides completion features that are not possible with
4720 @code{lsp-mode} and @code{company-capf} alone, including support for trigger
4721 characters and asynchronous fetching of completion candidates.")
4722 (license license:gpl3+)))
4723
4724 (define-public emacs-scheme-complete
4725 (let ((commit "9b5cf224bf2a5994bc6d5b152ff487517f1a9bb5"))
4726 (package
4727 (name "emacs-scheme-complete")
4728 (version (string-append "20151223." (string-take commit 8)))
4729 (source
4730 (origin
4731 (method git-fetch)
4732 (uri (git-reference
4733 (url "https://github.com/ashinn/scheme-complete.git")
4734 (commit commit)))
4735 (file-name (git-file-name name version))
4736 (sha256
4737 (base32
4738 "141wn9l0m33w0g3dqmx8nxbfdny1r5xbr6ak61rsz21bk0qafs7x"))
4739 (patches
4740 (search-patches "emacs-scheme-complete-scheme-r5rs-info.patch"))))
4741 (build-system emacs-build-system)
4742 (home-page "https://github.com/ashinn/scheme-complete")
4743 (synopsis "Smart tab completion for Scheme in Emacs")
4744 (description
4745 "This file provides a single function, @code{scheme-smart-complete},
4746 which you can use for intelligent, context-sensitive completion for any Scheme
4747 implementation in Emacs. To use it just load this file and bind that function
4748 to a key in your preferred mode.")
4749 (license license:public-domain))))
4750
4751 (define-public emacs-scel
4752 (let ((version "20170629")
4753 (revision "1")
4754 (commit "aeea3ad4be9306d14c3a734a4ff54fee10ac135b"))
4755 (package
4756 (name "emacs-scel")
4757 (version (git-version version revision commit))
4758 (source
4759 (origin
4760 (method git-fetch)
4761 (uri (git-reference
4762 (url "https://github.com/supercollider/scel.git")
4763 (commit commit)))
4764 (file-name (git-file-name name version))
4765 (sha256
4766 (base32
4767 "0jvmzs1lsjyndqshhii2y4mnr3wghai26i3p75453zrpxpg0zvvw"))))
4768 (build-system emacs-build-system)
4769 (arguments
4770 `(#:modules ((guix build emacs-build-system)
4771 ((guix build cmake-build-system) #:prefix cmake:)
4772 (guix build utils))
4773 #:imported-modules (,@%emacs-build-system-modules
4774 (guix build cmake-build-system))
4775 #:phases
4776 (modify-phases %standard-phases
4777 (add-after 'unpack 'configure
4778 (lambda* (#:key outputs #:allow-other-keys)
4779 (substitute* "el/CMakeLists.txt"
4780 (("share/emacs/site-lisp/SuperCollider")
4781 (string-append
4782 "share/emacs/site-lisp")))
4783 ((assoc-ref cmake:%standard-phases 'configure)
4784 #:outputs outputs
4785 #:configure-flags '("-DSC_EL_BYTECOMPILE=OFF"))))
4786 (add-after 'add-source-to-load-path 'add-el-dir-to-emacs-load-path
4787 (lambda _
4788 (setenv "EMACSLOADPATH"
4789 (string-append (getcwd) "/el:" (getenv "EMACSLOADPATH")))
4790 #t))
4791 (replace 'install (assoc-ref cmake:%standard-phases 'install)))))
4792 (inputs
4793 `(("supercollider" ,supercollider)))
4794 (native-inputs
4795 `(("cmake" ,cmake-minimal)))
4796 (home-page "https://github.com/supercollider/scel")
4797 (synopsis "SuperCollider Emacs interface")
4798 (description "@code{emacs-scel} is an Emacs interface to SuperCollider.
4799 SuperCollider is a platform for audio synthesis and algorithmic composition.")
4800 (license license:gpl2+))))
4801
4802 (define-public emacs-company-auctex
4803 (let ((commit "48c42c58ce2f0e693301b0cb2d085055410c1b25")
4804 (revision "1"))
4805 (package
4806 (name "emacs-company-auctex")
4807 (version (git-version "0" revision commit))
4808 (source (origin
4809 (method git-fetch)
4810 (uri (git-reference
4811 (url "https://github.com/alexeyr/company-auctex")
4812 (commit commit)))
4813 (file-name (git-file-name name version))
4814 (sha256
4815 (base32
4816 "10qn7frn5wcmrlci3v6iliqzj7r9dls87h9zp3xkgrgn4bqprfp8"))))
4817 (build-system emacs-build-system)
4818 (propagated-inputs
4819 `(("emacs-yasnippet" ,emacs-yasnippet)
4820 ("emacs-auctex" ,emacs-auctex)
4821 ("emacs-company" ,emacs-company)))
4822 (home-page "https://github.com/alexeyr/company-auctex/")
4823 (synopsis "Completion for @code{AUCTeX}")
4824 (description
4825 "This package provides a group of backends permitting auto-completion
4826 for @code{AUCTeX}.")
4827 (license license:gpl3+))))
4828
4829 (define-public emacs-mit-scheme-doc
4830 (package
4831 (name "emacs-mit-scheme-doc")
4832 (version "20140203")
4833 (source
4834 (origin
4835 (modules '((guix build utils)))
4836 (snippet
4837 ;; keep only file of interest
4838 '(begin
4839 (for-each delete-file '("dot-emacs.el" "Makefile"))
4840 (install-file "6.945-config/mit-scheme-doc.el" ".")
4841 (delete-file-recursively "6.945-config")
4842 #t))
4843 (file-name (string-append name "-" version ".tar.bz2"))
4844 (method url-fetch)
4845 (uri (string-append "http://groups.csail.mit.edu/mac/users/gjs/"
4846 "6.945/dont-panic/emacs-basic-config.tar.bz2"))
4847 (sha256
4848 (base32
4849 "0dqidg2bd66pawqfarvwca93w5gqf9mikn1k2a2rmd9ymfjpziq1"))))
4850 (build-system emacs-build-system)
4851 (inputs `(("mit-scheme" ,mit-scheme)))
4852 (arguments
4853 `(#:phases
4854 (modify-phases %standard-phases
4855 (add-after 'unpack 'configure-doc
4856 (lambda* (#:key inputs #:allow-other-keys)
4857 (let* ((mit-scheme-dir (assoc-ref inputs "mit-scheme"))
4858 (doc-dir (string-append mit-scheme-dir "/share/doc/"
4859 "mit-scheme-"
4860 ,(package-version mit-scheme))))
4861 (substitute* "mit-scheme-doc.el"
4862 (("http://www\\.gnu\\.org/software/mit-scheme/documentation/mit-scheme-ref/")
4863 (string-append "file:" doc-dir "/mit-scheme-ref/")))))))))
4864 (home-page "https://groups.csail.mit.edu/mac/users/gjs/6.945/dont-panic/")
4865 (synopsis "MIT-Scheme documentation lookup for Emacs")
4866 (description
4867 "This package provides a set of Emacs functions to search definitions of
4868 identifiers in the MIT-Scheme documentation.")
4869 (license license:gpl2+)))
4870
4871 (define-public emacs-constants
4872 (package
4873 (name "emacs-constants")
4874 (version "2.6")
4875 (home-page "https://staff.fnwi.uva.nl/c.dominik/Tools/constants")
4876 (source
4877 (origin
4878 (method git-fetch)
4879 (uri (git-reference
4880 (url "https://github.com/fedeinthemix/emacs-constants.git")
4881 (commit (string-append "v" version))))
4882 (file-name (git-file-name name version))
4883 (sha256
4884 (base32 "0f5sh6b45a8p9kancjp9jk44ws8ww6x50a0i6zgyyvr7dbvii1a0"))))
4885 (build-system emacs-build-system)
4886 (synopsis "Enter definition of constants into an Emacs buffer")
4887 (description
4888 "This package provides functions for inserting the definition of natural
4889 constants and units into an Emacs buffer.")
4890 (license license:gpl2+)))
4891
4892 (define-public emacs-tagedit
4893 (package
4894 (name "emacs-tagedit")
4895 (version "1.4.0")
4896 (source
4897 (origin
4898 (method git-fetch)
4899 (uri (git-reference
4900 (url "https://github.com/magnars/tagedit.git")
4901 (commit version)))
4902 (file-name (git-file-name name version))
4903 (sha256
4904 (base32 "0kq40g46s8kgiafrhdq99h79rz9h5fvgz59k7ralmf86bl4sdmdb"))))
4905 (build-system emacs-build-system)
4906 (propagated-inputs
4907 `(("emacs-s" ,emacs-s)
4908 ("emacs-dash" ,emacs-dash)))
4909 (home-page "https://github.com/magnars/tagedit")
4910 (synopsis "Some paredit-like features for html-mode")
4911 (description
4912 "This package provides a collection of paredit-like functions for editing
4913 in @code{html-mode}.")
4914 (license license:gpl3+)))
4915
4916 (define-public emacs-slime
4917 (package
4918 (name "emacs-slime")
4919 (version "2.24")
4920 (source
4921 (origin
4922 (method git-fetch)
4923 (uri (git-reference
4924 (url "https://github.com/slime/slime.git")
4925 (commit (string-append "v" version))))
4926 (file-name (git-file-name name version))
4927 (sha256
4928 (base32 "0js24x42m7b5iymb4rxz501dff19vav5pywnzv50b673rbkaaqvh"))))
4929 (build-system emacs-build-system)
4930 (native-inputs
4931 `(("texinfo" ,texinfo)))
4932 (arguments
4933 `(#:include '("\\.el$" "\\.lisp$" "\\.asd$" "contrib")
4934 #:exclude '("^slime-tests.el" "^contrib/test/"
4935 "^contrib/Makefile$" "^contrib/README.md$")
4936 #:phases
4937 (modify-phases %standard-phases
4938 (add-after 'unpack 'make-git-checkout-writable
4939 (lambda _
4940 (for-each make-file-writable (find-files "."))
4941 #t))
4942 (add-before 'install 'configure
4943 (lambda* _
4944 (emacs-substitute-variables "slime.el"
4945 ("inferior-lisp-program" "sbcl"))
4946 #t))
4947 (add-before 'install 'install-doc
4948 (lambda* (#:key outputs #:allow-other-keys)
4949 (let* ((out (assoc-ref outputs "out"))
4950 (info-dir (string-append out "/share/info"))
4951 (doc-dir (string-append out "/share/doc/"
4952 ,name "-" ,version))
4953 (doc-files '("doc/slime-refcard.pdf"
4954 "README.md" "NEWS" "PROBLEMS"
4955 "CONTRIBUTING.md")))
4956 (with-directory-excursion "doc"
4957 (substitute* "Makefile"
4958 (("infodir=/usr/local/info")
4959 (string-append "infodir=" info-dir)))
4960 (invoke "make" "html/index.html")
4961 (invoke "make" "slime.info")
4962 (install-file "slime.info" info-dir)
4963 (copy-recursively "html" (string-append doc-dir "/html")))
4964 (for-each (lambda (f)
4965 (install-file f doc-dir)
4966 (delete-file f))
4967 doc-files)
4968 (delete-file-recursively "doc")
4969 #t))))))
4970 (home-page "https://github.com/slime/slime")
4971 (synopsis "Superior Lisp Interaction Mode for Emacs")
4972 (description
4973 "SLIME extends Emacs with support for interactive programming in
4974 Common Lisp. The features are centered around @command{slime-mode},
4975 an Emacs minor mode that complements the standard @command{lisp-mode}.
4976 While lisp-mode supports editing Lisp source files, @command{slime-mode}
4977 adds support for interacting with a running Common Lisp process
4978 for compilation, debugging, documentation lookup, and so on.")
4979 (license (list license:gpl2+ license:public-domain))))
4980
4981 (define-public emacs-popup
4982 (package
4983 (name "emacs-popup")
4984 (version "0.5.3")
4985 (source
4986 (origin
4987 (method git-fetch)
4988 (uri (git-reference
4989 (url "https://github.com/auto-complete/popup-el.git")
4990 (commit (string-append "v" version))))
4991 (file-name (git-file-name name version))
4992 (sha256
4993 (base32 "1y538siabcf1n00wr4iz5gbxfndw661kx2mn9w1g4lg7yi4n0h0h"))))
4994 (build-system emacs-build-system)
4995 (home-page "https://github.com/auto-complete/popup-el")
4996 (synopsis "Visual Popup User Interface for Emacs")
4997 (description
4998 "Popup.el is a visual popup user interface library for Emacs.
4999 This provides a basic API and common UI widgets such as popup tooltips
5000 and popup menus.")
5001 (license license:gpl3+)))
5002
5003 (define-public emacs-python-environment
5004 (package
5005 (name "emacs-python-environment")
5006 (version "0.0.2")
5007 (source
5008 (origin
5009 (method git-fetch)
5010 (uri (git-reference
5011 (url "https://github.com/tkf/emacs-python-environment/")
5012 (commit version)))
5013 (file-name (git-file-name name version))
5014 (sha256
5015 (base32 "0q6bib9nr6xiq6npzbngyfcjk87yyvwzq1zirr3z1h5wadm34lsk"))))
5016 (build-system emacs-build-system)
5017 (propagated-inputs
5018 `(("emacs-deferred" ,emacs-deferred)))
5019 (home-page "https://github.com/tkf/emacs-python-environment")
5020 (synopsis "Provides a @code{virtualenv} API in Emacs Lisp")
5021 (description
5022 "This package permits automated installation of tools written in Python.")
5023 (license license:gpl3+)))
5024
5025 (define-public emacs-jedi
5026 (package
5027 (name "emacs-jedi")
5028 (version "0.2.8")
5029 (source (origin
5030 (method git-fetch)
5031 (uri (git-reference
5032 (url "https://github.com/tkf/emacs-jedi/")
5033 (commit (string-append "v" version))))
5034 (file-name (git-file-name name version))
5035 (sha256
5036 (base32
5037 "1bckxppfzd5gwn0aw4h86igb7igal9axqncq7j8zmflg7zppncf1"))))
5038 (build-system emacs-build-system)
5039 (native-inputs
5040 `(("emacs-mocker" ,emacs-mocker)))
5041 (propagated-inputs
5042 `(("emacs-auto-complete" ,emacs-auto-complete)
5043 ("emacs-python-environment" ,emacs-python-environment)
5044 ("emacs-epc" ,emacs-epc)))
5045 (home-page "https://github.com/tkf/emacs-jedi")
5046 (synopsis "Provides Python completion in Emacs")
5047 (description
5048 "This package provides completion in Python buffers and also helps find
5049 the locations of docstrings, arguments, and functions.")
5050 (license license:gpl3+)))
5051
5052 (define-public emacs-company-jedi
5053 (package
5054 (name "emacs-company-jedi")
5055 (version "0.04")
5056 (source (origin
5057 (method git-fetch)
5058 (uri (git-reference
5059 (url "https://github.com/syohex/emacs-company-jedi")
5060 (commit version)))
5061 (file-name (git-file-name name version))
5062 (sha256
5063 (base32
5064 "1ihqapp4dv92794rsgyq0rmhwika60cmradqd4bn9b72ss6plxs1"))))
5065 (build-system emacs-build-system)
5066 (propagated-inputs
5067 `(("emacs-jedi" ,emacs-jedi)
5068 ("emacs-company" ,emacs-company)))
5069 (home-page "https://github.com/syohex/emacs-company-jedi")
5070 (synopsis "Provides Python completion in @code{company-mode}")
5071 (description
5072 "This package provides a Company backend for Python.")
5073 (license license:gpl3+)))
5074
5075 (define-public emacs-puppet-mode
5076 (let ((commit "b3ed5057166a4f49dfa9be638523a348b55a2fd2")
5077 (revision "1"))
5078 (package
5079 (name "emacs-puppet-mode")
5080 ;; The last release, 0.3 was several years ago, and there have been many
5081 ;; commits since
5082 (version (git-version "0.3" revision commit))
5083 (source
5084 (origin
5085 (method url-fetch)
5086 (uri (string-append
5087 "https://raw.githubusercontent.com/voxpupuli/puppet-mode/"
5088 commit "/puppet-mode.el"))
5089 (sha256
5090 (base32
5091 "1indycxawsl0p2aqqg754f6735q3cmah9vd886rpn0ncc3ipi1xm"))))
5092 (build-system emacs-build-system)
5093 (home-page "https://github.com/voxpupuli/puppet-mode")
5094 (synopsis "Emacs major mode for the Puppet configuration language")
5095 (description
5096 "This package provides support for the Puppet configuration language,
5097 including syntax highlighting, indentation of expressions and statements,
5098 linting of manifests and integration with Puppet Debugger.")
5099 ;; Also incorporates work covered by the Apache License, Version 2.0
5100 (license license:gpl3+))))
5101
5102 (define-public emacs-god-mode
5103 (let ((commit "6cf0807b6555eb6fcf8387a4e3b667071ef38964")
5104 (revision "1"))
5105 (package
5106 (name "emacs-god-mode")
5107 (version (string-append "20151005.925."
5108 revision "-" (string-take commit 9)))
5109 (source
5110 (origin
5111 (method git-fetch)
5112 (uri (git-reference
5113 (url "https://github.com/chrisdone/god-mode.git")
5114 (commit commit)))
5115 (file-name (git-file-name name version))
5116 (sha256
5117 (base32
5118 "1am415k4xxcva6y3vbvyvknzc6bma49pq3p85zmpjsdmsp18qdix"))))
5119 (build-system emacs-build-system)
5120 (home-page "https://github.com/chrisdone/god-mode")
5121 (synopsis "Minor mode for entering commands without modifier keys")
5122 (description
5123 "This package provides a global minor mode for entering Emacs commands
5124 without modifier keys. It's similar to Vim's separation of commands and
5125 insertion mode. When enabled all keys are implicitly prefixed with
5126 @samp{C-} (among other helpful shortcuts).")
5127 (license license:gpl3+))))
5128
5129 (define-public emacs-jinja2-mode
5130 (package
5131 (name "emacs-jinja2-mode")
5132 (version "0.2")
5133 (source
5134 (origin
5135 (method git-fetch)
5136 (uri (git-reference
5137 (url "https://github.com/paradoxxxzero/jinja2-mode.git")
5138 (commit (string-append "v" version))))
5139 (file-name (git-file-name name version))
5140 (sha256
5141 (base32 "0l26wcy496k6xk7q5sf905xir0p73ziy6c44is77854lv3y0z381"))))
5142 (build-system emacs-build-system)
5143 (home-page "https://github.com/paradoxxxzero/jinja2-mode")
5144 (synopsis "Major mode for jinja2")
5145 (description
5146 "Emacs major mode for jinja2 with: syntax highlighting,
5147 sgml/html integration, and indentation (working with sgml).")
5148 (license license:gpl3+)))
5149
5150 (define-public emacs-company-cabal
5151 ;; The latest version is 0.3.0, but no release has been provided after 0.2.1.
5152 (let ((commit "62112a7259e24bd6c08885629a185afe512b7d3d")
5153 (revision "1"))
5154 (package
5155 (name "emacs-company-cabal")
5156 (version (git-version "0.3.0" revision commit))
5157 (source (origin
5158 (method git-fetch)
5159 (uri (git-reference
5160 (url "https://github.com/iquiw/company-cabal/")
5161 (commit commit)))
5162 (file-name (git-file-name name version))
5163 (sha256
5164 (base32
5165 "1gf45xwjzdm8i4q6c6khk4dbg1mmp2r0awz2sjr4dcr2dbd1n7mg"))))
5166 (build-system emacs-build-system)
5167 (propagated-inputs
5168 `(("emacs-company" ,emacs-company)))
5169 (arguments
5170 `(#:include (cons "^tools\\/" %default-include)))
5171 (home-page "https://github.com/iquiw/company-cabal/")
5172 (synopsis "Company completion for Haskell Cabal files")
5173 (description
5174 "This package allows for completion of field names, section names,
5175 field values, and more within @code{haskell-cabal-mode}.")
5176 (license license:gpl3+))))
5177
5178 (define-public emacs-rfcview
5179 (package
5180 (name "emacs-rfcview")
5181 (version "0.13")
5182 (home-page "http://www.loveshack.ukfsn.org/emacs")
5183 (source (origin
5184 (method url-fetch)
5185 (uri "http://www.loveshack.ukfsn.org/emacs/rfcview.el")
5186 (sha256
5187 (base32
5188 "0ympj5rxig383zl2jf0pzdsa80nnq0dpvjiriq0ivfi98fj7kxbz"))))
5189 (build-system emacs-build-system)
5190 (synopsis "Prettify Request for Comments (RFC) documents")
5191 (description "The Internet Engineering Task Force (IETF) and the Internet
5192 Society (ISOC) publish various Internet-related protocols and specifications
5193 as \"Request for Comments\" (RFC) documents and Internet Standard (STD)
5194 documents. RFCs and STDs are published in a simple text form. This package
5195 provides an Emacs major mode, rfcview-mode, which makes it more pleasant to
5196 read these documents in Emacs. It prettifies the text and adds
5197 hyperlinks/menus for easier navigation. It also provides functions for
5198 browsing the index of RFC documents and fetching them from remote servers or
5199 local directories.")
5200 (license license:gpl3+)))
5201
5202 (define-public emacs-ffap-rfc-space
5203 (package
5204 (name "emacs-ffap-rfc-space")
5205 (version "12")
5206 (home-page "https://user42.tuxfamily.org/ffap-rfc-space/index.html")
5207 (source (origin
5208 (method url-fetch)
5209 (uri "http://download.tuxfamily.org/user42/ffap-rfc-space.el")
5210 (sha256
5211 (base32
5212 "1iv61dv57a73mdps7rn6zmgz7nqh14v0ninidyrasy45b1nv6gck"))))
5213 (build-system emacs-build-system)
5214 (synopsis "Make ffap recognize an RFC with a space before its number")
5215 (description "The Internet Engineering Task Force (IETF) and the
5216 Internet Society (ISOC) publish various Internet-related protocols and
5217 specifications as \"Request for Comments\" (RFC) documents. The
5218 built-in Emacs module \"ffap\" (Find File at Point) has the ability to
5219 recognize names at point which look like \"RFC1234\" and \"RFC-1234\"
5220 and load the appropriate RFC from a remote server. However, it fails
5221 to recognize a name like \"RFC 1234\". This package enhances ffap so
5222 that it correctly finds RFCs even when a space appears before the
5223 number.")
5224 (license license:gpl3+)))
5225
5226 (define-public emacs-org-bullets
5227 (package
5228 (name "emacs-org-bullets")
5229 (version "0.2.4")
5230 (source
5231 (origin
5232 (method git-fetch)
5233 (uri (git-reference
5234 (url "https://github.com/sabof/org-bullets.git")
5235 (commit version)))
5236 (file-name (git-file-name name version))
5237 (sha256
5238 (base32 "10nr4sjffnqbllv6gmak6pviyynrb7pi5nvrq331h5alm3xcpq0w"))))
5239 (build-system emacs-build-system)
5240 (home-page "https://github.com/sabof/org-bullets")
5241 (synopsis "Show bullets in org-mode as UTF-8 characters")
5242 (description
5243 "This package provides an Emacs minor mode causing bullets in
5244 @code{org-mode} to be rendered as UTF-8 characters.")
5245 (license license:gpl3+)))
5246
5247 (define-public emacs-org-superstar
5248 (package
5249 (name "emacs-org-superstar")
5250 (version "1.2.1")
5251 (source
5252 (origin
5253 (method git-fetch)
5254 (uri (git-reference
5255 (url "https://github.com/integral-dw/org-superstar-mode.git")
5256 (commit (string-append "v" version))))
5257 (file-name (git-file-name name version))
5258 (sha256
5259 (base32 "14w06v76xi4f6hpq6xzicrjjv0b802g5zc9as4mpimfy5gx2xpm0"))))
5260 (build-system emacs-build-system)
5261 (propagated-inputs
5262 `(("emacs-org" ,emacs-org)))
5263 (home-page "https://github.com/integral-dw/org-superstar-mode")
5264 (synopsis "Prettify headings and plain lists in Org mode")
5265 (description "This package prettifies headings and plain lists in
5266 Org mode. It is a direct descendant of @code{org-bullets}, with most
5267 of the code base completely rewritten.
5268
5269 Currently, this package prettifies Org heading lines by:
5270 @itemize
5271 @item replacing trailing bullets by UTF-8 bullets,
5272 @item hiding leading stars, customizing their look or removing them from vision,
5273 @item applying a custom face to the header bullet,
5274 @item applying a custom face to the leading bullets,
5275 @item using double-bullets for inline tasks,
5276 @item (optional) using special bullets for TODO keywords.
5277 @end itemize
5278
5279 It also prettifies Org plain list bullets by:
5280 @itemize
5281 @item replacing each bullet type (*, + and -) with UTF-8 bullets,
5282 @item applying a custom face to item bullets.
5283 @end itemize
5284
5285 Features degrade gracefully when viewed from terminal.")
5286 (license license:gpl3+)))
5287
5288 (define-public emacs-org-pomodoro
5289 ;; Last release version was from 2016.
5290 (let ((commit "aa07c11318f91219336197e62c47bc7a3d090479")
5291 (revision "1"))
5292 (package
5293 (name "emacs-org-pomodoro")
5294 (version (git-version "2.1.0" revision commit))
5295 (source
5296 (origin
5297 (method git-fetch)
5298 (uri (git-reference
5299 (url "https://github.com/marcinkoziej/org-pomodoro.git")
5300 (commit commit)))
5301 (file-name (git-file-name name version))
5302 (sha256
5303 (base32 "0nbprh2nhnmb7ngp9ndr6zr37ashcsvpi5slv7a37x1dl7j6w1k4"))))
5304 (build-system emacs-build-system)
5305 (propagated-inputs
5306 `(("emacs-alert" ,emacs-alert)))
5307 (arguments
5308 `(#:include (cons "^resources\\/" %default-include)
5309 #:tests? #t
5310 #:test-command '("emacs" "--batch"
5311 "-l" "org-pomodoro-tests.el"
5312 "-f" "ert-run-tests-batch-and-exit")
5313 #:phases
5314 (modify-phases %standard-phases
5315 (add-before 'check 'make-tests-writable
5316 (lambda _
5317 (make-file-writable "org-pomodoro-tests.el")
5318 #t))
5319 (add-before 'check 'add-require
5320 (lambda _
5321 (emacs-batch-edit-file "org-pomodoro-tests.el"
5322 `(progn (progn (goto-char (point-min))
5323 (re-search-forward
5324 "ert-deftest")
5325 (beginning-of-line)
5326 (forward-line -1)
5327 (insert "(require 'org-pomodoro)"))
5328 (basic-save-buffer)))
5329 #t)))))
5330 (home-page "https://github.com/marcinkoziej/org-pomodoro")
5331 (synopsis "Pomodoro technique for org-mode")
5332 (description "@code{emacs-org-pomodoro} adds very basic support for
5333 Pomodoro technique in Emacs org-mode.
5334
5335 Run @code{M-x org-pomodoro} for the task at point or select one of the
5336 last tasks that you clocked time for. Each clocked-in pomodoro starts
5337 a timer of 25 minutes and after each pomodoro a break timer of 5
5338 minutes is started automatically. Every 4 breaks a long break is
5339 started with 20 minutes. All values are customizable.")
5340 (license license:gpl3+))))
5341
5342 (define-public emacs-org-sidebar
5343 (package
5344 (name "emacs-org-sidebar")
5345 (version "0.2")
5346 (source
5347 (origin
5348 (method git-fetch)
5349 (uri (git-reference
5350 (url "https://github.com/alphapapa/org-sidebar.git")
5351 (commit version)))
5352 (file-name (git-file-name name version))
5353 (sha256
5354 (base32 "106h06vjfbqfj761vbxwymd6612ds8c6fk053yzgbrqzm3hn2c03"))))
5355 (build-system emacs-build-system)
5356 (propagated-inputs
5357 `(("emacs-dash" ,emacs-dash)
5358 ("emacs-org-super-agenda" ,emacs-org-super-agenda)
5359 ("emacs-org" ,emacs-org)
5360 ("emacs-org-ql" ,emacs-org-ql)
5361 ("emacs-s" ,emacs-s)))
5362 (home-page "https://github.com/alphapapa/org-sidebar")
5363 (synopsis "Helpful sidebar for Org buffers")
5364 (description "This package provides a sidebar for Org buffers. At the
5365 top is a chronological list of scheduled and deadlined tasks in the current
5366 buffer (similar to the Org agenda ,but without all its features), and below
5367 that is a list of all other non-done to-do items. If the buffer is narrowed,
5368 the sidebar only shows items in the narrowed portion; this allows seeing an
5369 overview of tasks in a subtree.")
5370 (license license:gpl3+)))
5371
5372 (define-public emacs-org-trello
5373 (package
5374 (name "emacs-org-trello")
5375 (version "0.8.1")
5376 (source
5377 (origin
5378 (method git-fetch)
5379 (uri (git-reference
5380 (url "https://github.com/org-trello/org-trello.git")
5381 (commit version)))
5382 (file-name (git-file-name name version))
5383 (sha256
5384 (base32
5385 "02gx3kv4mkij69ln8x8wf9n28x17pbb4kv85v78d3lxph7ykqimc"))))
5386 (build-system emacs-build-system)
5387 (propagated-inputs
5388 `(("emacs-dash" ,emacs-dash)
5389 ("emacs-deferred" ,emacs-deferred)
5390 ("emacs-f" ,emacs-f)
5391 ("emacs-helm" ,emacs-helm)
5392 ("emacs-request" ,emacs-request)
5393 ("emacs-s" ,emacs-s)))
5394 (home-page "https://org-trello.github.io")
5395 (synopsis "Emacs minor mode for interacting with Trello")
5396 (description "This package provides an Emacs minor mode to extend
5397 @code{org-mode} with Trello abilities. Trello is an online project
5398 organizer.")
5399 (license license:gpl3+)))
5400
5401 (define-public emacs-org-tanglesync
5402 (let ((commit "d99181f173b4e55b4e835d99fcd415e62beb047f")
5403 (revision "2"))
5404 (package
5405 (name "emacs-org-tanglesync")
5406 (version (git-version "0.6" revision commit))
5407 (source
5408 (origin
5409 (method git-fetch)
5410 (uri (git-reference
5411 (url "https://github.com/mtekman/org-tanglesync.el.git")
5412 (commit commit)))
5413 (file-name (git-file-name name version))
5414 (sha256
5415 (base32 "0x94gy1bgfd1f3p9w2bfrqj11bwy9ql0cpi1gw6srpj7kykx0lml"))))
5416 (build-system emacs-build-system)
5417 (propagated-inputs
5418 `(("emacs-org" ,emacs-org)))
5419 (home-page "https://github.com/mtekman/org-tanglesync.el")
5420 (synopsis "Sync Org source blocks with tangled external files")
5421 (description "This package automatically pulls changes from source code
5422 to their corresponding tangled blocks.")
5423 (license license:gpl3+))))
5424
5425 (define-public emacs-company-flow
5426 (let ((commit "76ef585c70d2a3206c2eadf24ba61e59124c3a16")
5427 (revision "1"))
5428 (package
5429 (name "emacs-company-flow")
5430 (version (git-version "0.1.0" revision commit))
5431 (source (origin
5432 (method git-fetch)
5433 (uri (git-reference
5434 (url "https://github.com/aaronjensen/company-flow/")
5435 (commit commit)))
5436 (file-name (git-file-name name version))
5437 (sha256
5438 (base32
5439 "0zs9cblnbkxa0dxw4lyllmybqizxcdx96gv8jlhx20nrjpi78piw"))))
5440 (build-system emacs-build-system)
5441 (propagated-inputs
5442 `(("emacs-company" ,emacs-company)
5443 ("emacs-dash" ,emacs-dash)))
5444 (home-page "https://github.com/aaronjensen/company-flow/")
5445 (synopsis "Flow backend for @code{company-mode}")
5446 (description
5447 "This package provides completion for JavaScript files utilizing Flow.")
5448 (license license:gpl3+))))
5449
5450 (define-public emacs-atom-one-dark-theme
5451 (let ((commit "1f1185bf667a38d3d0d180ce85fd4c131818aae2")
5452 (revision "0"))
5453 (package
5454 (name "emacs-atom-one-dark-theme")
5455 (version (git-version "0.4.0" revision commit))
5456 (source (origin
5457 (method git-fetch)
5458 (uri (git-reference
5459 (url "https://github.com/jonathanchu/atom-one-dark-theme.git")
5460 (commit commit)))
5461 (sha256
5462 (base32
5463 "1alma16hg3mfjly8a9s3mrswkjjx4lrpdnf43869hn2ibkn7zx9z"))
5464 (file-name (git-file-name name version))))
5465 (build-system emacs-build-system)
5466 (home-page "https://github.com/jonathanchu/atom-one-dark-theme")
5467 (synopsis "Atom One Dark color theme for Emacs")
5468 (description "An Emacs port of the Atom One Dark theme from Atom.io.")
5469 (license license:gpl3+))))
5470
5471 (define-public emacs-zenburn-theme
5472 (package
5473 (name "emacs-zenburn-theme")
5474 (version "2.6")
5475 (source
5476 (origin
5477 (method git-fetch)
5478 (uri (git-reference
5479 (url "https://github.com/bbatsov/zenburn-emacs.git")
5480 (commit (string-append "v" version))))
5481 (file-name (git-file-name name version))
5482 (sha256
5483 (base32 "1n87r5hs7h5r8dgfid66skpzcypl9hssr9m3npp916g6jfsi782f"))))
5484 (build-system emacs-build-system)
5485 (home-page "https://github.com/bbatsov/zenburn-emacs")
5486 (synopsis "Low contrast color theme for Emacs")
5487 (description
5488 "Zenburn theme is a port of the popular Vim Zenburn theme for Emacs.
5489 It is built on top of the custom theme support in Emacs 24 or later.")
5490 (license license:gpl3+)))
5491
5492 (define-public emacs-moe-theme-el
5493 (let ((commit "6e086d855d6bb446bbd1090742815589a81a915f")
5494 (version "1.0")
5495 (revision "1"))
5496 (package
5497 (name "emacs-moe-theme-el")
5498 (version (git-version version revision commit))
5499 (source
5500 (origin
5501 (method git-fetch)
5502 (uri (git-reference
5503 (url "https://github.com/kuanyui/moe-theme.el")
5504 (commit commit)))
5505 (file-name (git-file-name name version))
5506 (sha256
5507 (base32 "0xj4wfd7h4jqnr193pizm9frf6lmwjr0dsdv2l9mqh9k691z1dnc"))))
5508 (build-system emacs-build-system)
5509 (home-page "https://github.com/kuanyui/moe-theme.el")
5510 (synopsis "Anime-inspired color themes")
5511 (description
5512 "This package provides vibrant color schemes with light and dark
5513 variants.")
5514 (license license:gpl3+))))
5515
5516 (define-public emacs-solarized-theme
5517 (package
5518 (name "emacs-solarized-theme")
5519 (version "1.3.1")
5520 (source
5521 (origin
5522 (method git-fetch)
5523 (uri (git-reference
5524 (url "https://github.com/bbatsov/solarized-emacs/")
5525 (commit (string-append "v" version))))
5526 (file-name (git-file-name name version))
5527 (sha256
5528 (base32 "15ql8xcixgm7mbs7rsbybwszanqibq057j5b5ds89a31dw7zxf1g"))))
5529 (build-system emacs-build-system)
5530 (propagated-inputs
5531 `(("emacs-dash" ,emacs-dash)))
5532 (home-page "https://github.com/bbatsov/solarized-emacs")
5533 (synopsis "Port of the Solarized theme for Emacs")
5534 (description
5535 "Solarized for Emacs is a port of the Solarized theme for Vim. This
5536 package provides a light and a dark variant.")
5537 (license license:gpl3+)))
5538
5539 (define-public emacs-poet-theme
5540 (let ((commit "d84f7b259cc9b6ff8d442cf4c38bd6c7065ff8f4")
5541 (revision "0"))
5542 (package
5543 (name "emacs-poet-theme")
5544 (version (git-version "0" revision commit))
5545 (source
5546 (origin
5547 (method git-fetch)
5548 (uri (git-reference
5549 (url "https://github.com/kunalb/poet.git")
5550 (commit commit)))
5551 (file-name (git-file-name name version))
5552 (sha256
5553 (base32
5554 "0a84jdaj619mb59a46dmkk2sfs42rylqk9ryl1drgs8d3lia79mz"))))
5555 (build-system emacs-build-system)
5556 (home-page "https://github.com/kunalb/poet/")
5557 (synopsis "Emacs theme for prose")
5558 (description
5559 "Emacs has very good support for multiple fonts in a single file. Poet
5560 uses this support to make it much more convenient to write prose within Emacs,
5561 with particular attention paid to @code{org-mode} and @code{markdown-mode}.
5562 Code blocks, tables, etc are formatted in monospace text with the appropriate
5563 backgrounds.")
5564 (license license:expat))))
5565
5566 (define-public emacs-ahungry-theme
5567 (package
5568 (name "emacs-ahungry-theme")
5569 (version "1.10.0")
5570 (source
5571 (origin (method url-fetch)
5572 (uri (string-append "https://elpa.gnu.org/packages/ahungry-theme-"
5573 version ".tar"))
5574 (sha256
5575 (base32
5576 "14q5yw56n82qph09bk7wmj5b1snhh9w0nk5s1l7yn9ldg71xq6pm"))))
5577 (build-system emacs-build-system)
5578 (home-page "https://github.com/ahungry/color-theme-ahungry")
5579 (synopsis "Ahungry color theme for Emacs")
5580 (description "Ahungry theme for Emacs provides bright and bold colors.
5581 If you load it from a terminal, you will be able to make use of the
5582 transparent background. If you load it from a GUI, it will default to a
5583 dark background.")
5584 (license license:gpl3+)))
5585
5586 (define-public emacs-gruvbox-theme
5587 (package
5588 (name "emacs-gruvbox-theme")
5589 (version "1.28.0")
5590 (source (origin
5591 (method git-fetch)
5592 (uri (git-reference
5593 (url "https://github.com/greduan/emacs-theme-gruvbox.git")
5594 (commit version)))
5595 (file-name (git-file-name name version))
5596 (sha256
5597 (base32
5598 "00qq92gp1g55pzm97rh7k0dgxy44pxziridl8kqm4rbpi31r7k9p"))))
5599 (build-system emacs-build-system)
5600 (propagated-inputs
5601 `(("emacs-autothemer" ,emacs-autothemer)))
5602 (home-page "https://github.com/greduan/emacs-theme-gruvbox")
5603 (synopsis "Gruvbox is a retro groove color scheme ported from Vim")
5604 (description
5605 "Gruvbox is heavily inspired by badwolf, jellybeans and solarized.
5606
5607 Designed as a bright theme with pastel 'retro groove' colors and light/dark
5608 mode switching in the way of solarized. The main focus when developing gruvbox
5609 is to keep colors easily distinguishable, contrast enough and still pleasant
5610 for the eyes.")
5611 (license license:expat))) ; MIT license
5612
5613 (define-public emacs-spacegray-theme
5614 (let ((commit "9826265c2bceb2ebc1c5e16a45021da0253ace97")
5615 (revision "0"))
5616 (package
5617 (name "emacs-spacegray-theme")
5618 (version (git-version "0" revision commit))
5619 (source (origin
5620 (method git-fetch)
5621 (uri (git-reference
5622 (url "https://github.com/bruce/emacs-spacegray-theme.git")
5623 (commit commit)))
5624 (file-name (git-file-name name version))
5625 (sha256
5626 (base32
5627 "0aplwmm17ypbns5blc4rf5rr6dasj0zp5ibykpfl43fh4bd8z89n"))))
5628 (build-system emacs-build-system)
5629 (home-page "https://github.com/bruce/emacs-spacegray-theme")
5630 (synopsis "Port of Sublime Text's Spacegray theme for Emacs")
5631 (description
5632 "@code{spacegray-theme} is an Emacs port of the Spacegray theme from
5633 Sublime Text. It features a dark blue/gray background and soft blue, green,
5634 orange and red as accent colors.")
5635 (license license:expat)))) ; MIT license
5636
5637 (define-public emacs-2048-game
5638 (package
5639 (name "emacs-2048-game")
5640 (version "20151026.1233")
5641 (source
5642 (origin
5643 (method url-fetch)
5644 (uri (string-append "https://melpa.org/packages/2048-game-"
5645 version ".el"))
5646 (sha256
5647 (base32
5648 "0gy2pvz79whpavp4jmz8h9krzn7brmvv3diixi1d4w51pcdvaldd"))))
5649 (build-system emacs-build-system)
5650 (home-page "https://hg.sr.ht/~zck/game-2048")
5651 (synopsis "Implementation of the game 2048 in Emacs Lisp")
5652 (description
5653 "This program is an implementation of 2048 for Emacs.
5654 The goal of this game is to create a tile with value 2048. The size of the
5655 board and goal value can be customized.")
5656 (license license:gpl3+)))
5657
5658 (define-public emacs-4clojure
5659 ;; There is no release. Base version is extracted from Version keyword in
5660 ;; the main file.
5661 (let ((commit "4eccf8c7d4341a36c269451838114b27836699f9")
5662 (revision "1"))
5663 (package
5664 (name "emacs-4clojure")
5665 (version (git-version "0.2.1" revision commit))
5666 (source
5667 (origin
5668 (method git-fetch)
5669 (uri (git-reference
5670 (url "https://github.com/emacsorphanage/4clojure.git")
5671 (commit commit)))
5672 (file-name (git-file-name name version))
5673 (sha256
5674 (base32 "19x653lzc1dxil4ix257hciidbdmbhaxhs6qhlkwi9ygjrlrgvnk"))))
5675 (build-system emacs-build-system)
5676 (propagated-inputs
5677 `(("emacs-request" ,emacs-request)))
5678 (home-page "https://github.com/emacsorphanage/4clojure/")
5679 (synopsis "Open and evaluate 4clojure questions in Emacs")
5680 (description "Emacs 4clojure interacts with
5681 @url{http://www.4clojure.com, 4clojure} problems. You can open a specific
5682 question and move to the next or previous one. You can also verify your
5683 answers.")
5684 (license license:gpl3+))))
5685
5686 (define-public emacs-base16-theme
5687 (package
5688 (name "emacs-base16-theme")
5689 (version "2.2")
5690 (source
5691 (origin
5692 (method git-fetch)
5693 (uri (git-reference
5694 (url "https://github.com/belak/base16-emacs.git")
5695 (commit version)))
5696 (file-name (git-file-name name version))
5697 (sha256
5698 (base32 "01w89g413s1da6rf94y1xnhw79cjy2bqb01yfjs58cy492cm0vr6"))))
5699 (build-system emacs-build-system)
5700 (home-page "https://github.com/belak/base16-emacs")
5701 (synopsis "Base16 color themes for Emacs")
5702 (description
5703 "Base16 provides carefully chosen syntax highlighting and a default set
5704 of sixteen colors suitable for a wide range of applications. Base16 is not a
5705 single theme but a set of guidelines with numerous implementations.")
5706 (license license:expat)))
5707
5708 (define-public emacs-solaire-mode
5709 (package
5710 (name "emacs-solaire-mode")
5711 (version "1.0.9")
5712 (source
5713 (origin
5714 (method git-fetch)
5715 (uri (git-reference
5716 (url "https://github.com/hlissner/emacs-solaire-mode.git")
5717 (commit (string-append "v" version))))
5718 (file-name (git-file-name name version))
5719 (sha256
5720 (base32 "011m4r7s6i9lgjymh7jgq5jwwrpz4vmpvp3c8d4ix96v5hi04kzg"))))
5721 (build-system emacs-build-system)
5722 (home-page "https://github.com/hlissner/emacs-solaire-mode")
5723 (synopsis "Change background of file-visiting buffers in Emacs")
5724 (description
5725 "@code{solaire-mode} is inspired by editors which visually distinguish
5726 code-editing windows from sidebars, popups, terminals, ecetera. It changes the
5727 background of file-visiting buffers (and certain aspects of the UI) to make
5728 them easier to distinguish from other, less important buffers.")
5729 (license license:expat)))
5730
5731 (define-public emacs-prescient
5732 (package
5733 (name "emacs-prescient")
5734 (version "4.1")
5735 (source
5736 (origin
5737 (method git-fetch)
5738 (uri (git-reference
5739 (url "https://github.com/raxod502/prescient.el.git")
5740 (commit (string-append "v" version))))
5741 (file-name (git-file-name name version))
5742 (sha256
5743 (base32 "1rf5cz262hjpck7vpxg15bccdrwrmlhiyxc20liwcjb2ig36nis3"))))
5744 (build-system emacs-build-system)
5745 (propagated-inputs
5746 `(("emacs-company" ,emacs-company)
5747 ("emacs-ivy" ,emacs-ivy)
5748 ("emacs-selectrum" ,emacs-selectrum)))
5749 (home-page "https://github.com/raxod502/prescient.el/")
5750 (synopsis "Emacs library for sorting and filtering candidates")
5751 (description
5752 "Prescient is a library for sorting and filtering, as well as extensions
5753 for Ivy and Company that make use of the library.")
5754 (license license:expat)))
5755
5756 (define-public emacs-selectrum
5757 (package
5758 (name "emacs-selectrum")
5759 (version "1.0")
5760 (source
5761 (origin
5762 (method git-fetch)
5763 (uri (git-reference
5764 (url "https://github.com/raxod502/selectrum.git")
5765 (commit (string-append "v" version))))
5766 (file-name (git-file-name name version))
5767 (sha256
5768 (base32 "105zl102dwbzvk50xh6b824nq6p24kxhky18ghdnk5yi5sv620lm"))))
5769 (build-system emacs-build-system)
5770 (home-page "https://github.com/raxod502/selectrum/")
5771 (synopsis "Incremental narrowing in Emacs")
5772 (description "Selectrum is a solution for incremental narrowing in
5773 Emacs, replacing Helm, Ivy, and IDO. Its design philosophy is based
5774 on choosing the right abstractions and prioritizing consistency and
5775 predictability over special-cased improvements for particular cases.
5776 As such, Selectrum follows existing Emacs conventions where they exist
5777 and are reasonable, and it declines to implement features which have
5778 marginal benefit compared to the additional complexity of a new
5779 interface.")
5780 (license license:expat)))
5781
5782 (define-public emacs-smartparens
5783 (package
5784 (name "emacs-smartparens")
5785 (version "1.11.0")
5786 (source
5787 (origin
5788 (method git-fetch)
5789 (uri (git-reference
5790 (url "https://github.com/Fuco1/smartparens.git")
5791 (commit version)))
5792 (file-name (git-file-name name version))
5793 (sha256
5794 (base32 "0zij2f2rjjym98w68jkp10n1ckpfprlkk217c3fg16hz5nq4vnm6"))))
5795 (build-system emacs-build-system)
5796 (propagated-inputs
5797 `(("emacs-dash" ,emacs-dash)
5798 ("emacs-markdown-mode" ,emacs-markdown-mode)))
5799 (home-page "https://github.com/Fuco1/smartparens")
5800 (synopsis "Paredit-like insertion, wrapping and navigation with user
5801 defined pairs")
5802 (description
5803 "Smartparens is a minor mode for Emacs that deals with parens pairs
5804 and tries to be smart about it. It started as a unification effort to
5805 combine functionality of several existing packages in a single,
5806 compatible and extensible way to deal with parentheses, delimiters, tags
5807 and the like. Some of these packages include autopair, textmate,
5808 wrap-region, electric-pair-mode, paredit and others. With the basic
5809 features found in other packages it also brings many improvements as
5810 well as completely new features.")
5811 (license license:gpl3+)))
5812
5813 (define-public emacs-highlight-symbol
5814 ;; We prefer a more recent commit that provides an option to squelch
5815 ;; echo-area alerts that can drown out useful information like eldoc
5816 ;; messages.
5817 (let ((commit "7a789c779648c55b16e43278e51be5898c121b3a")
5818 (version "1.3")
5819 (revision "1"))
5820 (package
5821 (name "emacs-highlight-symbol")
5822 (version (git-version version revision commit))
5823 (source
5824 (origin
5825 (method git-fetch)
5826 (uri (git-reference
5827 (url "https://github.com/nschum/highlight-symbol.el.git")
5828 (commit commit)))
5829 (file-name (git-file-name name version))
5830 (sha256
5831 (base32 "19cgyk0sh8nsmf3jbi92i8qsdx4l4yilfq5jj9zfdbj9p5gvwx96"))))
5832 (build-system emacs-build-system)
5833 (home-page "https://nschum.de/src/emacs/highlight-symbol/")
5834 (synopsis "Automatic and manual symbol highlighting for Emacs")
5835 (description
5836 "Use @code{highlight-symbol} to toggle highlighting of the symbol at
5837 point throughout the current buffer. Use @code{highlight-symbol-mode} to keep
5838 the symbol at point highlighted.
5839
5840 The functions @code{highlight-symbol-next}, @code{highlight-symbol-prev},
5841 @code{highlight-symbol-next-in-defun} and
5842 @code{highlight-symbol-prev-in-defun} allow for cycling through the locations
5843 of any symbol at point. Use @code{highlight-symbol-nav-mode} to enable key
5844 bindings @code{M-p} and @code{M-p} for navigation. When
5845 @code{highlight-symbol-on-navigation-p} is set, highlighting is triggered
5846 regardless of @code{highlight-symbol-idle-delay}.
5847
5848 @code{highlight-symbol-query-replace} can be used to replace the symbol. ")
5849 (license license:gpl2+))))
5850
5851 (define-public emacs-symbol-overlay
5852 (let ((commit "e40a7c407f24158c45eaa5f54ed41f5e416a51dc")
5853 (revision "1"))
5854 (package
5855 (name "emacs-symbol-overlay")
5856 (version (git-version "4.1" revision commit))
5857 (source
5858 (origin
5859 (method git-fetch)
5860 (uri (git-reference
5861 (url "https://github.com/wolray/symbol-overlay.git")
5862 (commit commit)))
5863 (file-name (git-file-name name version))
5864 (sha256
5865 (base32 "0ibz3392d3jw1l8006h9kf8s7bg6vl7jc92bmqc031a433009ic7"))))
5866 (build-system emacs-build-system)
5867 (home-page "https://github.com/wolray/symbol-overlay")
5868 (synopsis "Highlight symbols and perform various search operations on them")
5869 (description
5870 "This package provides functions for highlighting and navigating
5871 between symbols.")
5872 (license license:gpl3+))))
5873
5874 (define-public emacs-hl-todo
5875 (package
5876 (name "emacs-hl-todo")
5877 (version "3.0.0")
5878 (source (origin
5879 (method git-fetch)
5880 (uri (git-reference
5881 (url "https://github.com/tarsius/hl-todo")
5882 (commit (string-append "v" version))))
5883 (file-name (git-file-name name version))
5884 (sha256
5885 (base32
5886 "07xcc04ivpl5sbgb55qz84mz6wa500h0awzw1zq1ba5mfjjq8hls"))))
5887 (build-system emacs-build-system)
5888 (home-page "https://github.com/tarsius/hl-todo")
5889 (synopsis "Emacs mode to highlight TODO and similar keywords")
5890 (description
5891 "This package provides an Emacs mode to highlight TODO and similar
5892 keywords in comments and strings. This package also provides commands for
5893 moving to the next or previous keyword and to invoke @code{occur} with a
5894 regexp that matches all known keywords.")
5895 (license license:gpl3+)))
5896
5897 (define-public emacs-perspective
5898 (package
5899 (name "emacs-perspective")
5900 (version "2.8")
5901 (source
5902 (origin
5903 (method git-fetch)
5904 (uri (git-reference
5905 (url "https://github.com/nex3/perspective-el.git")
5906 (commit version)))
5907 (file-name (git-file-name name version))
5908 (sha256
5909 (base32
5910 "1gdacw1gkng1dhm12lhfssmac0fijsh3wpbvcmsv2jz3gpnjin1g"))))
5911 (build-system emacs-build-system)
5912 (home-page "https://github.com/nex3/perspective-el")
5913 (synopsis "Switch between named \"perspectives\"")
5914 (description
5915 "This package provides tagged workspaces in Emacs, similar to workspaces in
5916 windows managers such as Awesome and XMonad. @code{perspective.el} provides
5917 multiple workspaces (or \"perspectives\") for each Emacs frame. Each
5918 perspective is composed of a window configuration and a set of buffers.
5919 Switching to a perspective activates its window configuration, and when in a
5920 perspective only its buffers are available by default.")
5921 ;; This package is released under the same license as Emacs (GPLv3+) or
5922 ;; the Expat license.
5923 (license license:gpl3+)))
5924
5925 (define-public emacs-persp-mode
5926 (package
5927 (name "emacs-persp-mode")
5928 (version "2.9.8")
5929 (source
5930 (origin
5931 (method git-fetch)
5932 (uri (git-reference
5933 (url "https://github.com/Bad-ptr/persp-mode.el.git")
5934 (commit (string-append "v" version))))
5935 (file-name (git-file-name name version))
5936 (sha256
5937 (base32
5938 "0b4y7a6j70s9lvr37riyy9k5kh3yvmx0m6nd9c0c8572ji4ij65g"))))
5939 (build-system emacs-build-system)
5940 (home-page "https://github.com/Bad-ptr/persp-mode.el")
5941 (synopsis "Switch between named \"perspectives\" shared among frames")
5942 (description
5943 "This package extends @code{perspective.el} to enable perspectives that
5944 can be saved to and restored from a file.")
5945 (license license:gpl2+)))
5946
5947 (define-public emacs-test-simple
5948 (package
5949 (name "emacs-test-simple")
5950 (version "1.3.0")
5951 (source
5952 (origin
5953 (method url-fetch)
5954 (uri (string-append "https://elpa.gnu.org/packages/test-simple-"
5955 version ".el"))
5956 (sha256
5957 (base32
5958 "1yd61jc9ds95a5n09052kwc5gasy57g4lxr0jsff040brlyi9czz"))))
5959 (build-system emacs-build-system)
5960 (home-page "https://github.com/rocky/emacs-test-simple")
5961 (synopsis "Simple unit test framework for Emacs Lisp")
5962 (description
5963 "Test Simple is a simple unit test framework for Emacs Lisp. It
5964 alleviates the need for context macros, enclosing specifications or required
5965 test tags. It supports both interactive and non-interactive use.")
5966 (license license:gpl3+)))
5967
5968 (define-public emacs-load-relative
5969 (package
5970 (name "emacs-load-relative")
5971 (version "1.3.1")
5972 (source
5973 (origin
5974 (method url-fetch)
5975 (uri (string-append "https://elpa.gnu.org/packages/load-relative-"
5976 version ".el"))
5977 (sha256
5978 (base32 "1m37scr82lqqy954fchjxrmdh4lngrl4d1yzxhp3yfjhsydizhrj"))))
5979 (build-system emacs-build-system)
5980 (home-page "https://github.com/rocky/emacs-load-relative")
5981 (synopsis "Emacs Lisp relative file loading related functions")
5982 (description
5983 "Provides functions which facilitate writing multi-file Emacs packages
5984 and running from the source tree without having to \"install\" code or fiddle
5985 with @{load-path}.
5986
5987 The main function, @code{load-relative}, loads an Emacs Lisp file relative to
5988 another (presumably currently running) Emacs Lisp file.")
5989 (license license:gpl3+)))
5990
5991 (define-public emacs-loc-changes
5992 (package
5993 (name "emacs-loc-changes")
5994 (version "1.2")
5995 (source
5996 (origin
5997 (method url-fetch)
5998 (uri (string-append "https://elpa.gnu.org/packages/loc-changes-"
5999 version ".el"))
6000 (sha256
6001 (base32
6002 "1x8fn8vqasayf1rb8a6nma9n6nbvkx60krmiahyb05vl5rrsw6r3"))))
6003 (build-system emacs-build-system)
6004 (home-page "https://github.com/rocky/emacs-loc-changes")
6005 (synopsis "Keeps track of positions even after buffer changes")
6006 (description
6007 "This Emacs package provides a mean to track important buffer positions
6008 after buffer changes.")
6009 (license license:gpl3+)))
6010
6011 (define-public emacs-realgud
6012 (package
6013 (name "emacs-realgud")
6014 (version "1.5.1")
6015 (source
6016 (origin
6017 (method git-fetch)
6018 (uri (git-reference
6019 (url "https://github.com/realgud/realgud/")
6020 (commit version)))
6021 (sha256
6022 (base32
6023 "1d3s23jk0i34wpyxfajydgyyvsxnpbqrfl0mgydsq7zw2c75ylnq"))
6024 (file-name (git-file-name name version))))
6025 (build-system emacs-build-system)
6026 (arguments
6027 `(#:tests? #t
6028 #:phases
6029 (modify-phases %standard-phases
6030 (add-after 'unpack 'fix-autogen-script
6031 (lambda _
6032 (substitute* "autogen.sh"
6033 (("./configure") "sh configure"))))
6034 (add-after 'fix-autogen-script 'autogen
6035 (lambda _
6036 (setenv "CONFIG_SHELL" "sh")
6037 (invoke "sh" "autogen.sh")))
6038 (add-after 'fix-autogen-script 'set-home
6039 (lambda _
6040 (setenv "HOME" (getenv "TMPDIR"))))
6041 (add-before 'patch-el-files 'remove-realgud-pkg.el
6042 (lambda _
6043 ;; FIXME: `patch-el-files' crashes on this file with error:
6044 ;; unable to locate "bashdb".
6045 (delete-file "./test/test-regexp-bashdb.el"))))
6046 #:include (cons* ".*\\.el$" %default-include)))
6047 (native-inputs
6048 `(("autoconf" ,autoconf)
6049 ("automake" ,automake)
6050 ("emacs-test-simple" ,emacs-test-simple)))
6051 (propagated-inputs
6052 `(("emacs-load-relative" ,emacs-load-relative)
6053 ("emacs-loc-changes" ,emacs-loc-changes)))
6054 (home-page "https://github.com/realgud/realgud/")
6055 (synopsis
6056 "Modular front-end for interacting with external debuggers")
6057 (description
6058 "RealGUD is a modular, extensible GNU Emacs front-end for interacting
6059 with external debuggers. It integrates various debuggers such as gdb, pdb,
6060 ipdb, jdb, lldb, bashdb, zshdb, etc. and allows to visually step code in the
6061 sources. Unlike GUD, it also supports running multiple debug sessions in
6062 parallel.")
6063 (license license:gpl3+)))
6064
6065 (define-public emacs-request
6066 (package
6067 (name "emacs-request")
6068 (version "0.3.2")
6069 (source (origin
6070 (method git-fetch)
6071 (uri (git-reference
6072 (url "https://github.com/tkf/emacs-request.git")
6073 (commit (string-append "v" version))))
6074 (file-name (git-file-name name version))
6075 (sha256
6076 (base32
6077 "1djywhvvb6kwdj0nd3axjvb7k2g06dzkc6hsf29w9rsk96vr8ryl"))))
6078 (build-system emacs-build-system)
6079 (arguments
6080 `(#:tests? #f)) ; requires network access.
6081 (propagated-inputs
6082 `(("emacs-deferred" ,emacs-deferred)))
6083 (home-page "https://github.com/tkf/emacs-request")
6084 (synopsis "Package for speaking HTTP in Emacs Lisp")
6085 (description "This package provides a HTTP request library with multiple
6086 backends. It supports url.el which is shipped with Emacs and the curl command
6087 line program.")
6088 (license license:gpl3+)))
6089
6090 (define-public emacs-rudel
6091 (package
6092 (name "emacs-rudel")
6093 (version "0.3.1")
6094 (source
6095 (origin
6096 (method url-fetch)
6097 (uri (string-append "https://elpa.gnu.org/packages/rudel-"
6098 version ".tar"))
6099 (sha256
6100 (base32
6101 "0glqa68g509p0s2vcc0i8kzlddnc9brd9jqhnm5rzxz4i050cvnz"))))
6102 (build-system emacs-build-system)
6103 (home-page "http://rudel.sourceforge.net/")
6104 (synopsis "Collaborative editing framework")
6105 (description
6106 "Rudel is a collaborative editing environment for GNU Emacs. Its purpose
6107 is to share buffers with other users in order to edit the contents of those
6108 buffers collaboratively. Rudel supports multiple backends to enable
6109 communication with other collaborative editors using different protocols,
6110 though currently Obby (for use with the Gobby editor) is the only
6111 fully-functional one.")
6112 (license license:gpl3+)))
6113
6114 (define-public emacs-hydra
6115 (package
6116 (name "emacs-hydra")
6117 (version "0.15.0")
6118 (source
6119 (origin
6120 (method git-fetch)
6121 (uri (git-reference
6122 (url "https://github.com/abo-abo/hydra")
6123 (commit version)))
6124 (file-name (git-file-name name version))
6125 (sha256
6126 (base32
6127 "0fapvhmhgc9kppf3bvkgry0cd7gyilg7sfvlscfrfjxpx4xvwsfy"))))
6128 (build-system emacs-build-system)
6129 (arguments
6130 `(#:tests? #t
6131 #:test-command '("make" "test")))
6132 (home-page "https://github.com/abo-abo/hydra")
6133 (synopsis "Make Emacs bindings that stick around")
6134 (description
6135 "This package can be used to tie related commands into a family of short
6136 bindings with a common prefix---a Hydra. Once you summon the Hydra (through
6137 the prefixed binding), all the heads can be called in succession with only a
6138 short extension. Any binding that isn't the Hydra's head vanquishes the
6139 Hydra. Note that the final binding, besides vanquishing the Hydra, will still
6140 serve its original purpose, calling the command assigned to it. This makes
6141 the Hydra very seamless; it's like a minor mode that disables itself
6142 automatically.")
6143 (license license:gpl3+)))
6144
6145 (define-public emacs-interleave
6146 (package
6147 (name "emacs-interleave")
6148 (version "1.4.0")
6149 (source
6150 (origin
6151 (method git-fetch)
6152 (uri
6153 (git-reference
6154 (url "https://github.com/rudolfochrist/interleave")
6155 (commit (string-append "interleave-" version))))
6156 (file-name (git-file-name name version))
6157 (sha256
6158 (base32 "0l5b681mrpk12lx5c16m7kc13p29z6zismwg1llsjg7cdmrmsrcb"))))
6159 (build-system emacs-build-system)
6160 (home-page "https://github.com/rudolfochrist/interleave")
6161 (synopsis "Emacs minor mode to interleave notes and text books")
6162 (description
6163 "Interleave is a minor mode that presents a document viewer side
6164 by side to an Org buffer with your notes relevant to the current page.")
6165 (license license:gpl3+)))
6166
6167 (define-public emacs-ivy
6168 (package
6169 (name "emacs-ivy")
6170 (version "0.13.0")
6171 (source
6172 (origin
6173 (method git-fetch)
6174 (uri (git-reference
6175 (url "https://github.com/abo-abo/swiper.git")
6176 (commit version)))
6177 (file-name (git-file-name name version))
6178 (sha256
6179 (base32
6180 "0ghcwrg8a6r5q6fw2x8s08cwlmnz2d8qjhisnjwbnc2l4cgqpd9p"))))
6181 (build-system emacs-build-system)
6182 (arguments
6183 `(#:phases
6184 (modify-phases %standard-phases
6185 (add-after 'install 'install-doc
6186 (lambda* (#:key outputs #:allow-other-keys)
6187 (let* ((out (assoc-ref outputs "out"))
6188 (info (string-append out "/share/info")))
6189 (with-directory-excursion "doc"
6190 (invoke "makeinfo" "ivy.texi")
6191 (install-file "ivy.info" info)
6192 #t))))
6193 (add-before 'check 'make-dummy-git-directory
6194 (lambda _
6195 (mkdir-p ".git")))
6196 (add-after 'check 'delete-dummy-git-directory
6197 (lambda _
6198 (delete-file-recursively ".git"))))
6199 #:tests? #t
6200 #:test-command '("make" "test")))
6201 (propagated-inputs
6202 `(("emacs-hydra" ,emacs-hydra)))
6203 (native-inputs
6204 `(("texinfo" ,texinfo)
6205 ("emacs-wgrep" ,emacs-wgrep)))
6206 (home-page "http://oremacs.com/swiper/")
6207 (synopsis "Incremental vertical completion for Emacs")
6208 (description
6209 "This package provides @code{ivy-read} as an alternative to
6210 @code{completing-read} and similar functions. No attempt is made to determine
6211 the best candidate. Instead, the user can navigate candidates with
6212 @code{ivy-next-line} and @code{ivy-previous-line}. The matching is done by
6213 splitting the input text by spaces and re-building it into a regular
6214 expression.")
6215 (license license:gpl3+)))
6216
6217 (define-public emacs-ivy-xref
6218 (let ((commit "1a35fc0f070388701b05b0a455cbe262e924d547")
6219 (revision "1"))
6220 (package
6221 (name "emacs-ivy-xref")
6222 (version (git-version "0.1" revision commit))
6223 (source
6224 (origin
6225 (method git-fetch)
6226 (uri (git-reference
6227 (url "https://github.com/alexmurray/ivy-xref.git")
6228 (commit commit)))
6229 (file-name (git-file-name name version))
6230 (sha256
6231 (base32
6232 "0d71nm9d9ajp5i6dnl8h1hw9jqp8gd1ajgninb1h13i80rplzl9k"))))
6233 (build-system emacs-build-system)
6234 (propagated-inputs
6235 `(("emacs-ivy" ,emacs-ivy)))
6236 (home-page "https://github.com/alexmurray/ivy-xref")
6237 (synopsis "Ivy interface for @code{xref}")
6238 (description "This package provides an Ivy interface for selecting from
6239 @code{xref} results.")
6240 (license license:gpl3))))
6241
6242 (define-public emacs-ivy-pass
6243 (let ((commit "5b523de1151f2109fdd6a8114d0af12eef83d3c5")
6244 (revision "1"))
6245 (package
6246 (name "emacs-ivy-pass")
6247 (version (git-version "0.1" revision commit))
6248 (source
6249 (origin
6250 (method git-fetch)
6251 (uri (git-reference
6252 (url "https://github.com/ecraven/ivy-pass.git")
6253 (commit commit)))
6254 (file-name (git-file-name name version))
6255 (sha256
6256 (base32
6257 "18crb4zh2pjf0cmv3b913m9vfng27girjwfqc3mk7vqd1r5a49yk"))))
6258 (build-system emacs-build-system)
6259 (propagated-inputs
6260 `(("emacs-ivy" ,emacs-ivy)
6261 ("emacs-password-store" ,emacs-password-store)
6262 ("password-store" ,password-store)))
6263 (home-page "https://github.com/ecraven/ivy-pass")
6264 (synopsis "Ivy interface for password store (pass)")
6265 (description "This package provides an Ivy interface for working with
6266 the password store @code{pass}.")
6267 (license license:gpl3))))
6268
6269 (define-public emacs-ivy-yasnippet
6270 (let ((commit "32580b4fd23ebf9ca7dde96704f7d53df6e253cd")
6271 (revision "2"))
6272 (package
6273 (name "emacs-ivy-yasnippet")
6274 (version (git-version "0.1" revision commit))
6275 (source
6276 (origin
6277 (method git-fetch)
6278 (uri (git-reference
6279 (url "https://github.com/mkcms/ivy-yasnippet.git")
6280 (commit commit)))
6281 (file-name (git-file-name name version))
6282 (sha256
6283 (base32
6284 "1wfg6mmd5gl1qgvayyzpxlkh9s7jgn20y8l1vh1zbj1czvv51xp8"))))
6285 (build-system emacs-build-system)
6286 (propagated-inputs
6287 `(("emacs-ivy" ,emacs-ivy)
6288 ("emacs-yasnippet" ,emacs-yasnippet)
6289 ("emacs-dash" ,emacs-dash)))
6290 (home-page "https://github.com/mkcms/ivy-yasnippet")
6291 (synopsis "Preview @code{yasnippets} with @code{ivy}")
6292 (description "This package allows you to select @code{yasnippet}
6293 snippets using @code{ivy} completion. When current selection changes in the
6294 minibuffer, the snippet contents are temporarily expanded in the buffer. To
6295 use it, call @code{M-x ivy-yasnippet} (but make sure you have enabled
6296 @code{yas-minor-mode} first).")
6297 (license license:gpl3+))))
6298
6299 (define-public emacs-ivy-rich
6300 ;; The latest release version has a small mistake that has since been fixed,
6301 ;; so we use a more recent commit.
6302 (let ((commit "7a667b135983a1f3ad33d6db8514638e2a3bdfb3")
6303 (revision "2"))
6304 (package
6305 (name "emacs-ivy-rich")
6306 (version (git-version "0.1.4" revision commit))
6307 (source
6308 (origin
6309 (method git-fetch)
6310 (uri (git-reference
6311 (url "https://github.com/Yevgnen/ivy-rich.git")
6312 (commit commit)))
6313 (file-name (git-file-name name version))
6314 (sha256
6315 (base32 "1v5j6pak2j1wjw19y7rx9rhxif0bj2h47xyl2knfcl6fi4qiqm9y"))))
6316 (build-system emacs-build-system)
6317 (propagated-inputs
6318 `(("emacs-ivy" ,emacs-ivy)))
6319 (home-page "https://github.com/Yevgnen/ivy-rich")
6320 (synopsis "More friendly interface for @code{ivy}")
6321 (description
6322 "This package extends @code{ivy} by showing more information in the
6323 minibuffer for each candidate. It adds columns showing buffer modes, file
6324 sizes, docstrings, etc. If @code{emacs-all-the-icons} is installed, it can
6325 show icons as well.")
6326 (license license:gpl3+))))
6327
6328 (define-public emacs-avy
6329 (package
6330 (name "emacs-avy")
6331 (version "0.5.0")
6332 (source
6333 (origin
6334 (method git-fetch)
6335 (uri (git-reference
6336 (url "https://github.com/abo-abo/avy.git")
6337 (commit version)))
6338 (file-name (git-file-name name version))
6339 (sha256
6340 (base32 "09qdni1s74i5pv8741szl5g4ynj8fxn0x65qmwa9rmfkbimnc0fs"))))
6341 (build-system emacs-build-system)
6342 (arguments
6343 `(#:tests? #t
6344 #:test-command '("make" "test")))
6345 (home-page "https://github.com/abo-abo/avy")
6346 (synopsis "Tree-based completion for Emacs")
6347 (description
6348 "This package provides a generic completion method based on building a
6349 balanced decision tree with each candidate being a leaf. To traverse the tree
6350 from the root to a desired leaf, typically a sequence of @code{read-key} can
6351 be used.
6352
6353 In order for @code{read-key} to make sense, the tree needs to be visualized
6354 appropriately, with a character at each branch node. So this completion
6355 method works only for things that you can see on your screen, all at once,
6356 such as the positions of characters, words, line beginnings, links, or
6357 windows.")
6358 (license license:gpl3+)))
6359
6360 (define-public emacs-ace-window
6361 (package
6362 (name "emacs-ace-window")
6363 (version "0.10.0")
6364 (source
6365 (origin
6366 (method git-fetch)
6367 (uri (git-reference
6368 (url "https://github.com/abo-abo/ace-window.git")
6369 (commit version)))
6370 (file-name (git-file-name name version))
6371 (sha256
6372 (base32
6373 "0f3r40d5yxp2pm2j0nn86s29nqj8py0jxjbj50v4ci3hsd92d8jl"))))
6374 (build-system emacs-build-system)
6375 (propagated-inputs
6376 `(("emacs-avy" ,emacs-avy)))
6377 (home-page "https://github.com/abo-abo/ace-window")
6378 (synopsis "Quickly switch windows in Emacs")
6379 (description
6380 "@code{ace-window} is meant to replace @code{other-window}.
6381 In fact, when there are only two windows present, @code{other-window} is
6382 called. If there are more, each window will have its first character
6383 highlighted. Pressing that character will switch to that window.")
6384 (license license:gpl3+)))
6385
6386 (define-public emacs-iedit
6387 ;; Last release version was in 2016.
6388 (let ((commit "e2c100cdd67b7d82835d281ac2cd1bf4f374bc8f")
6389 (revision "1"))
6390 (package
6391 (name "emacs-iedit")
6392 (version (git-version "0.9.9.9" revision commit))
6393 (source
6394 (origin
6395 (method git-fetch)
6396 (uri (git-reference
6397 (url "https://github.com/victorhge/iedit.git")
6398 (commit commit)))
6399 (file-name (git-file-name name version))
6400 (sha256
6401 (base32 "0wr3w2id95wx2rma8n1ifjrv9rx37ly26ijc5zi58id0yrip3hnc"))))
6402 (build-system emacs-build-system)
6403 (home-page "https://www.emacswiki.org/emacs/Iedit")
6404 (synopsis "Edit multiple regions in the same way simultaneously")
6405 (description
6406 "This package is an Emacs minor mode and allows you to edit one
6407 occurrence of some text in a buffer (possibly narrowed) or region, and
6408 simultaneously have other occurrences edited in the same way.
6409
6410 You can also use Iedit mode as a quick way to temporarily show only the buffer
6411 lines that match the current text being edited. This gives you the effect of
6412 a temporary @code{keep-lines} or @code{occur}.")
6413 (license license:gpl3+))))
6414
6415 (define-public emacs-zoutline
6416 (package
6417 (name "emacs-zoutline")
6418 (version "0.2.0")
6419 (source
6420 (origin
6421 (method git-fetch)
6422 (uri (git-reference
6423 (url "https://github.com/abo-abo/zoutline")
6424 (commit version)))
6425 (sha256
6426 (base32
6427 "1w0zh6vs7klgivq5r030a82mcfg1zwic4x3fimyiqyg5n8p67hyx"))
6428 (file-name (git-file-name name version))))
6429 (build-system emacs-build-system)
6430 (home-page "https://github.com/abo-abo/zoutline")
6431 (synopsis "Simple outline library")
6432 (description
6433 "This library provides helpers for outlines. Outlines allow users to
6434 navigate code in a tree-like fashion.")
6435 (license license:gpl3+)))
6436
6437 (define-public emacs-lispy
6438 (package
6439 (name "emacs-lispy")
6440 (version "0.27.0")
6441 (home-page "https://github.com/abo-abo/lispy")
6442 (source (origin
6443 (method git-fetch)
6444 (uri (git-reference
6445 (url "https://github.com/abo-abo/lispy")
6446 (commit version)))
6447 (sha256
6448 (base32
6449 "1cm7f4pyl73f3vhkb7ah6bbbrj2sa7n0p31g09k7dy4zgx04bgw6"))
6450 (file-name (git-file-name name version))))
6451 (build-system emacs-build-system)
6452 (propagated-inputs
6453 `(("emacs-ace-window" ,emacs-ace-window)
6454 ("emacs-iedit" ,emacs-iedit)
6455 ("emacs-ivy" ,emacs-ivy)
6456 ("emacs-hydra" ,emacs-hydra)
6457 ("emacs-zoutline" ,emacs-zoutline)))
6458 (native-inputs
6459 `(("emacs-clojure-mode" ,emacs-clojure-mode)
6460 ("emacs-undercover" ,emacs-undercover)))
6461 (arguments
6462 `(#:include (cons* "^lispy-clojure\\.clj$"
6463 "^lispy-python\\.py$"
6464 %default-include)
6465 #:phases
6466 ;; XXX: one failing test involving python evaluation
6467 (modify-phases %standard-phases
6468 (add-before 'check 'make-test-writable
6469 (lambda _
6470 (make-file-writable "lispy-test.el")
6471 #t))
6472 (add-before 'check 'remove-python-eval-test
6473 (lambda _
6474 (emacs-batch-edit-file "lispy-test.el"
6475 `(progn
6476 (progn
6477 (goto-char (point-min))
6478 (re-search-forward
6479 "ert-deftest lispy-eval-python-str")
6480 (beginning-of-line)
6481 (kill-sexp))
6482 (basic-save-buffer)))
6483 #t)))
6484 #:tests? #t
6485 #:test-command '("make" "test")))
6486 (synopsis "Modal S-expression editing")
6487 (description
6488 "Due to the structure of Lisp syntax it's very rare for the programmer
6489 to want to insert characters right before \"(\" or right after \")\". Thus
6490 unprefixed printable characters can be used to call commands when the point is
6491 at one of these special locations. Lispy provides unprefixed keybindings for
6492 S-expression editing when point is at the beginning or end of an
6493 S-expression.")
6494 (license license:gpl3+)))
6495
6496 (define-public emacs-lispyville
6497 (let ((commit "d28b937f0cabd8ce61e2020fe9a733ca80d82c74")
6498 (revision "1"))
6499 (package
6500 (name "emacs-lispyville")
6501 (version (git-version "0.1" revision commit))
6502 (home-page "https://github.com/noctuid/lispyville")
6503 (source (origin
6504 (method git-fetch)
6505 (uri (git-reference (url home-page) (commit commit)))
6506 (sha256
6507 (base32
6508 "0f6srwj1qqkfkbmp5n5pjvi6gm7b7xav05p5hrs2i83rjrakzzqx"))
6509 (file-name (git-file-name name version))))
6510 (propagated-inputs
6511 `(("emacs-evil" ,emacs-evil)
6512 ("emacs-lispy" ,emacs-lispy)))
6513 (build-system emacs-build-system)
6514 (arguments
6515 `(#:phases
6516 ;; XXX: mysterious whitespace issue with one test
6517 (modify-phases %standard-phases
6518 (add-before 'check 'make-test-writable
6519 (lambda _
6520 (make-file-writable "lispyville-test.el")
6521 #t))
6522 (add-after 'make-test-writable 'remove-test
6523 (lambda _
6524 (emacs-batch-edit-file "lispyville-test.el"
6525 `(progn (progn (goto-char (point-min))
6526 (re-search-forward
6527 "ert-deftest lispyville-comment-and-clone-dwim")
6528 (beginning-of-line)
6529 (kill-sexp))
6530 (basic-save-buffer))))))
6531 #:tests? #t
6532 #:test-command '("make" "test")))
6533 (synopsis "Minor mode for integrating Evil with lispy")
6534 (description
6535 "LispyVille's main purpose is to provide a Lisp editing environment
6536 suited towards Evil users. It can serve as a minimal layer on top of lispy
6537 for better integration with Evil, but it does not require the use of lispy’s
6538 keybinding style. The provided commands allow for editing Lisp in normal
6539 state and will work even without lispy being enabled.")
6540 (license license:gpl3+))))
6541
6542 (define-public emacs-lpy
6543 (let ((commit "43b401fe15f0f0d01edb189378b9498121e9f766")
6544 (revision "3"))
6545 (package
6546 (name "emacs-lpy")
6547 (version (git-version "0.1.0" revision commit))
6548 (source
6549 (origin
6550 (method git-fetch)
6551 (uri (git-reference
6552 (url "https://github.com/abo-abo/lpy")
6553 (commit commit)))
6554 (sha256
6555 (base32
6556 "0xj1r7cn1rivaxhvawvmgx9fg3xilpfw4lkf2x2aqplr4s85ijas"))
6557 (file-name (git-file-name name version))))
6558 (propagated-inputs
6559 `(("emacs-zoutline" ,emacs-zoutline)
6560 ("emacs-lispy" ,emacs-lispy)))
6561 (build-system emacs-build-system)
6562 (home-page "https://github.com/abo-abo/lpy")
6563 (synopsis "Modal editing for Python")
6564 (description
6565 "This package provides a minor mode for Python that binds useful
6566 commands to unprefixed keys, such as @code{j} or @code{e}, under certain
6567 circumstances, and leaves the keys untouched outside of those situations,
6568 allowing unprefixed keys to insert their respective characters as expected.")
6569 (license license:gpl3+))))
6570
6571 (define-public emacs-clojure-mode
6572 (package
6573 (name "emacs-clojure-mode")
6574 (version "5.6.1")
6575 (source
6576 (origin
6577 (method git-fetch)
6578 (uri (git-reference
6579 (url "https://github.com/clojure-emacs/clojure-mode.git")
6580 (commit version)))
6581 (file-name (git-file-name name version))
6582 (sha256
6583 (base32 "1qadymqzs5fn1sb347xzfw8lqq6s85vvkh4kzm35m61g5i2lm86y"))))
6584 (build-system emacs-build-system)
6585 (native-inputs
6586 `(("emacs-dash" ,emacs-dash)
6587 ("emacs-s" ,emacs-s)
6588 ("ert-runner" ,emacs-ert-runner)))
6589 (arguments
6590 `(#:tests? #t
6591 #:test-command '("ert-runner")))
6592 (home-page "https://github.com/clojure-emacs/clojure-mode")
6593 (synopsis "Major mode for Clojure code")
6594 (description
6595 "This Emacs package provides font-lock, indentation, navigation and basic
6596 refactoring for the @uref{http://clojure.org, Clojure programming language}.
6597 It is recommended to use @code{clojure-mode} with paredit or smartparens.")
6598 (license license:gpl3+)))
6599
6600 (define-public emacs-epl
6601 (package
6602 (name "emacs-epl")
6603 (version "0.8")
6604 (source
6605 (origin
6606 (method git-fetch)
6607 (uri (git-reference
6608 (url "https://github.com/cask/epl.git")
6609 (commit version)))
6610 (file-name (git-file-name name version))
6611 (sha256
6612 (base32 "0sjxd5y5hxhrbgfkpwx6m724r3841b53hgc61a0g5zwispw5pmrr"))))
6613 (build-system emacs-build-system)
6614 (home-page "https://github.com/cask/epl")
6615 (synopsis "Emacs Package Library")
6616 (description
6617 "A package management library for Emacs, based on @code{package.el}.
6618
6619 The purpose of this library is to wrap all the quirks and hassle of
6620 @code{package.el} into a sane API.")
6621 (license license:gpl3+)))
6622
6623 (define-public emacs-counsel-projectile
6624 (package
6625 (name "emacs-counsel-projectile")
6626 (version "0.3.0")
6627 (source (origin
6628 (method git-fetch)
6629 (uri (git-reference
6630 (url "https://github.com/ericdanan/counsel-projectile")
6631 (commit version)))
6632 (file-name (git-file-name name version))
6633 (sha256
6634 (base32
6635 "1inc4ndl0ysfwvxk4avbgpj4qi9rc93da6476a5c81xmwpsv8wmq"))))
6636 (build-system emacs-build-system)
6637 (propagated-inputs
6638 `(("emacs-ivy" ,emacs-ivy)
6639 ("emacs-projectile" ,emacs-projectile)))
6640 (home-page "https://github.com/ericdanan/counsel-projectile")
6641 (synopsis "Enhance Projectile with Ivy")
6642 (description
6643 "This package uses Ivy to provide additional actions for Projectile
6644 commands and replacements for existing functions.")
6645 (license license:gpl3+)))
6646
6647 (define-public emacs-queue
6648 (package
6649 (name "emacs-queue")
6650 (version "0.2")
6651 (source (origin
6652 (method url-fetch)
6653 (uri (string-append "https://elpa.gnu.org/packages/queue-"
6654 version ".el"))
6655 (sha256
6656 (base32
6657 "0cx2848sqnnkkr4zisvqadzxngjyhmb36mh0q3if7q19yjjhmrkb"))))
6658 (build-system emacs-build-system)
6659 (home-page "http://www.dr-qubit.org/tags/computing-code-emacs.html")
6660 (synopsis "Queue data structure for Emacs")
6661 (description
6662 "This Emacs library provides queue data structure. These queues can be
6663 used both as a first-in last-out (FILO) and as a first-in first-out (FIFO)
6664 stack, i.e. elements can be added to the front or back of the queue, and can
6665 be removed from the front. This type of data structure is sometimes called an
6666 \"output-restricted deque\".")
6667 (license license:gpl3+)))
6668
6669 (define-public emacs-pkg-info
6670 (package
6671 (name "emacs-pkg-info")
6672 (version "0.6")
6673 (source
6674 (origin
6675 (method git-fetch)
6676 (uri (git-reference
6677 (url "https://github.com/lunaryorn/pkg-info.el.git")
6678 (commit version)))
6679 (file-name (git-file-name name version))
6680 (sha256
6681 (base32 "0nk12dcppdyhav6m6yf7abpywyd7amxd4237zsfd32w4zxsx39k1"))))
6682 (build-system emacs-build-system)
6683 (propagated-inputs `(("emacs-epl" ,emacs-epl)))
6684 (home-page "https://github.com/lunaryorn/pkg-info.el")
6685 (synopsis "Information about Emacs packages")
6686 (description
6687 "This library extracts information from the installed Emacs packages.")
6688 (license license:gpl3+)))
6689
6690 (define-public emacs-spinner
6691 (package
6692 (name "emacs-spinner")
6693 (version "1.7.3")
6694 (source (origin
6695 (method url-fetch)
6696 (uri (string-append "https://elpa.gnu.org/packages/spinner-"
6697 version ".el"))
6698 (sha256
6699 (base32
6700 "19kp1mmndbmw11sgvv2ggfjl4pyf5zrsbh3871f0965pw9z8vahd"))))
6701 (build-system emacs-build-system)
6702 (home-page "https://github.com/Malabarba/spinner.el")
6703 (synopsis "Emacs mode-line spinner for operations in progress")
6704 (description
6705 "This Emacs package adds spinners and progress-bars to the mode-line for
6706 ongoing operations.")
6707 (license license:gpl3+)))
6708
6709 (define-public emacs-sparql-mode
6710 (package
6711 (name "emacs-sparql-mode")
6712 (version "2.0.1")
6713 (source
6714 (origin
6715 (method git-fetch)
6716 (uri (git-reference
6717 (url "https://github.com/ljos/sparql-mode.git")
6718 (commit (string-append "v" version))))
6719 (file-name (git-file-name name version))
6720 (sha256
6721 (base32 "0ywhqk6n5k0l85zjwbnrivnvxjzqipqrggv06lify6yv18qmyl6s"))))
6722 (build-system emacs-build-system)
6723 (home-page "https://github.com/ljos/sparql-mode")
6724 (synopsis "SPARQL mode for Emacs")
6725 (description "This package provides a major mode for Emacs that provides
6726 syntax highlighting for SPARQL. It also provides a way to execute queries
6727 against a SPARQL HTTP endpoint, such as is provided by Fuseki. It is also
6728 possible to query other endpoints like DBPedia.")
6729 (license license:gpl3+)))
6730
6731 (define-public emacs-better-defaults
6732 (package
6733 (name "emacs-better-defaults")
6734 (version "0.1.3")
6735 (source
6736 (origin
6737 (method git-fetch)
6738 (uri (git-reference
6739 (url "https://github.com/technomancy/better-defaults")
6740 (commit version)))
6741 (file-name (git-file-name name version))
6742 (sha256
6743 (base32
6744 "1rxznx2l0cdpiz8mad8s6q17m1fngpgb1cki7ch6yh18r3qz8ysr"))))
6745 (build-system emacs-build-system)
6746 (home-page "https://github.com/technomancy/better-defaults")
6747 (synopsis "Better defaults for Emacs")
6748 (description
6749 "Better defaults attempts to address the most obvious deficiencies of the
6750 Emacs default configuration in uncontroversial ways that nearly everyone can
6751 agree upon.")
6752 (license license:gpl3+)))
6753
6754 (define-public emacs-undohist-el
6755 (let ((commit "d2239a5f736724ceb9e3b6bcaa86f4064805cda0")
6756 (revision "1"))
6757 (package
6758 (name "emacs-undohist-el")
6759 (version (git-version "0" revision commit))
6760 (source
6761 (origin
6762 (method git-fetch)
6763 (uri (git-reference
6764 (url "https://github.com/m2ym/undohist-el")
6765 (commit commit)))
6766 (file-name (git-file-name name version))
6767 (sha256
6768 (base32
6769 "1c0daw246ky7b1x5b8h55x79pl1pjqk1k348l487bdd8zdj4w9wx"))
6770 (patches
6771 (search-patches "emacs-undohist-ignored.patch"))))
6772 (build-system emacs-build-system)
6773 (home-page "https://github.com/m2ym/undohist-el")
6774 (synopsis "Save undo history between sessions")
6775 (description "This package allows persistent use of undo history for
6776 individual file buffers.")
6777 (license license:gpl3+))))
6778
6779 (define-public emacs-eprime
6780 (let ((commit "17a481af26496be91c07139a9bfc05cfe722506f"))
6781 (package
6782 (name "emacs-eprime")
6783 (version (string-append "20140513-" (string-take commit 7)))
6784 (source (origin
6785 (method url-fetch)
6786 (uri (string-append "https://raw.githubusercontent.com"
6787 "/AndrewHynes/eprime-mode/"
6788 commit "/eprime-mode.el"))
6789 (file-name (string-append "eprime-" version ".el"))
6790 (sha256
6791 (base32
6792 "0v68lggkyq7kbcr9zyi573m2g2x251xy3jadlaw8kx02l8krwq8d"))))
6793 (build-system emacs-build-system)
6794 (home-page "https://github.com/AndrewHynes/eprime-mode")
6795 (synopsis "E-prime checking mode for Emacs")
6796 (description "This package provides an E-prime checking mode for Emacs
6797 that highlights non-conforming text. The subset of the English language called
6798 E-Prime forbids the use of the \"to be\" form to strengthen your writing.")
6799 (license license:gpl3+))))
6800
6801 (define-public emacs-julia-mode
6802 ;; XXX: Upstream version remained stuck at 0.3. See
6803 ;; <https://github.com/JuliaEditorSupport/julia-emacs/issues/46>.
6804 (let ((commit "115d4dc8a07445301772da8376b232fa8c7168f4")
6805 (revision "1"))
6806 (package
6807 (name "emacs-julia-mode")
6808 (version (string-append "0.3-" revision "." (string-take commit 8)))
6809 (source
6810 (origin
6811 (method git-fetch)
6812 (uri (git-reference
6813 (url "https://github.com/JuliaEditorSupport/julia-emacs.git")
6814 (commit commit)))
6815 (file-name (git-file-name name version))
6816 (sha256
6817 (base32
6818 "1is4dcv6blslpzbjcg8l2jpxi8xj96q4cm0nxjxsyswpm8bw8ki0"))))
6819 (build-system emacs-build-system)
6820 (arguments
6821 `(#:tests? #t
6822 #:test-command '("emacs" "--batch"
6823 "-l" "julia-mode-tests.el"
6824 "-f" "ert-run-tests-batch-and-exit")))
6825 (home-page "https://github.com/JuliaEditorSupport/julia-emacs")
6826 (synopsis "Major mode for Julia")
6827 (description "This Emacs package provides a mode for the Julia
6828 programming language.")
6829 (license license:expat))))
6830
6831 (define-public emacs-smex
6832 (package
6833 (name "emacs-smex")
6834 (version "3.0")
6835 (source (origin
6836 (method url-fetch)
6837 (uri (string-append "https://raw.githubusercontent.com"
6838 "/nonsequitur/smex/" version "/smex.el"))
6839 (file-name (string-append "smex-" version ".el"))
6840 (sha256
6841 (base32
6842 "0ar310zx9k5y4i1vl2rawvi712xj9gx77160860jbs691p77cxqp"))))
6843 (build-system emacs-build-system)
6844 (home-page "https://github.com/nonsequitur/smex/")
6845 (synopsis "M-x interface with Ido-style fuzzy matching")
6846 (description
6847 "Smex is a M-x enhancement for Emacs. Built on top of Ido, it provides a
6848 convenient interface to your recently and most frequently used commands. And
6849 to all the other commands, too.")
6850 (license license:gpl3+)))
6851
6852 (define-public emacs-js2-mode
6853 (package
6854 (name "emacs-js2-mode")
6855 (version "20190219")
6856 (source
6857 (origin
6858 (method git-fetch)
6859 (uri (git-reference
6860 (url "https://github.com/mooz/js2-mode.git")
6861 (commit version)))
6862 (file-name (git-file-name name version))
6863 (sha256
6864 (base32 "0766bbr4piia9vfr4ivd2gwi8dxah654adv6h28ylz4q8xmfzm1b"))))
6865 (build-system emacs-build-system)
6866 (arguments
6867 `(#:tests? #t
6868 #:test-command '("make" "test")))
6869 (home-page "https://github.com/mooz/js2-mode/")
6870 (synopsis "Improved JavaScript editing mode for Emacs")
6871 (description
6872 "Js2-mode provides a JavaScript major mode for Emacs that is more
6873 advanced than the built-in javascript-mode. Features include accurate syntax
6874 highlighting using a recursive-descent parser, on-the-fly reporting of syntax
6875 errors and strict-mode warnings, smart line-wrapping within comments and
6876 strings, and code folding.")
6877 (license license:gpl3+)))
6878
6879 (define-public emacs-nodejs-repl
6880 (package
6881 (name "emacs-nodejs-repl")
6882 (version "0.2.2")
6883 (source (origin
6884 (method git-fetch)
6885 (uri (git-reference
6886 (url "https://github.com/abicky/nodejs-repl.el")
6887 (commit version)))
6888 (file-name (git-file-name name version))
6889 (sha256
6890 (base32
6891 "1kkj888k9x5n0i7xkia177gzsa84my3g8n0n7v65281cc4f1yhk5"))))
6892 (build-system emacs-build-system)
6893 (inputs
6894 `(("node" ,node)))
6895 (native-inputs
6896 `(("emacs-ert-expectations" ,emacs-ert-expectations)))
6897 (arguments
6898 `(#:phases
6899 (modify-phases %standard-phases
6900 (add-after 'unpack 'set-shell
6901 ;; Setting the SHELL environment variable is required for the tests
6902 ;; to find sh.
6903 (lambda _
6904 (setenv "SHELL" (which "sh"))
6905 #t))
6906 (add-after 'unpack 'configure
6907 (lambda* (#:key inputs outputs #:allow-other-keys)
6908 (let ((node (assoc-ref inputs "node")))
6909 ;; Specify the absolute file names of the various
6910 ;; programs so that everything works out-of-the-box.
6911 (make-file-writable "nodejs-repl.el")
6912 (emacs-substitute-variables
6913 "nodejs-repl.el"
6914 ("nodejs-repl-command"
6915 (string-append node "/bin/node")))))))
6916 #:tests? #t
6917 #:test-command '("emacs" "-Q" "--batch"
6918 "-L" "."
6919 "-l" "test/test.el"
6920 "-f" "ert-run-tests-batch-and-exit")))
6921 (home-page "https://github.com/abicky/nodejs-repl.el")
6922 (synopsis "Node.js REPL inside Emacs")
6923 (description
6924 "This program is derived from comint-mode and provides the following
6925 features:
6926
6927 @itemize
6928 @item TAB completion same as Node.js REPL
6929 @item file name completion in string
6930 @item incremental history search
6931 @end itemize")
6932 (license license:gpl3+)))
6933
6934 (define-public emacs-typescript-mode
6935 (package
6936 (name "emacs-typescript-mode")
6937 (version "0.3")
6938 (source (origin
6939 (method git-fetch)
6940 (uri (git-reference
6941 (url "https://github.com/ananthakumaran/typescript.el")
6942 (commit (string-append "v" version))))
6943 (file-name (git-file-name name version))
6944 (sha256
6945 (base32
6946 "002f1xfhq43fjaqliwrgxspryfahpa82va5dw3p8kwil2xwvc6mh"))))
6947 (build-system emacs-build-system)
6948 (home-page "https://github.com/ananthakumaran/typescript.el")
6949 (synopsis "Emacs major mode for editing Typescript code")
6950 (description
6951 "This is based on Karl Landstrom's barebones @code{typescript-mode}.
6952 This is much more robust and works with @code{cc-mode}'s comment
6953 filling (mostly). The modifications to the original @code{javascript.el} mode
6954 mainly consisted in replacing \"javascript\" with \"typescript\"
6955
6956 The main features of this Typescript mode are syntactic highlighting (enabled
6957 with @code{font-lock-mode} or @code{global-font-lock-mode}), automatic
6958 indentation and filling of comments and C preprocessor fontification.")
6959 (license license:gpl3+)))
6960
6961 (define-public emacs-tide
6962 (package
6963 (name "emacs-tide")
6964 (version "3.2.3")
6965 (source (origin
6966 (method git-fetch)
6967 (uri (git-reference
6968 (url "https://github.com/ananthakumaran/tide")
6969 (commit (string-append "v" version))))
6970 (file-name (git-file-name name version))
6971 (sha256
6972 (base32
6973 "19kjq4kr2j853p5qp1s79zxmrfprli82lsnphbrlp9vbnib28xyd"))))
6974 (build-system emacs-build-system)
6975 (propagated-inputs
6976 `(("emacs-dash" ,emacs-dash)
6977 ("emacs-s" ,emacs-s)
6978 ("emacs-flycheck" ,emacs-flycheck)
6979 ("emacs-typescript-mode" ,emacs-typescript-mode)))
6980 (home-page "https://github.com/ananthakumaran/tide")
6981 (synopsis "Typescript IDE for Emacs")
6982 (description
6983 "Tide is an Interactive Development Environment (IDE) for Emacs which
6984 provides the following features:
6985
6986 @itemize
6987 @item ElDoc
6988 @item Auto complete
6989 @item Flycheck
6990 @item Jump to definition, Jump to type definition
6991 @item Find occurrences
6992 @item Rename symbol
6993 @item Imenu
6994 @item Compile On Save
6995 @item Highlight Identifiers
6996 @item Code Fixes
6997 @item Code Refactor
6998 @item Organize Imports
6999 @end itemize")
7000 (license license:gpl3+)))
7001
7002 (define-public emacs-markdown-mode
7003 (package
7004 (name "emacs-markdown-mode")
7005 (version "2.3")
7006 (source (origin
7007 (method git-fetch)
7008 (uri (git-reference
7009 (url "https://github.com/jrblevin/markdown-mode.git")
7010 (commit (string-append "v" version))))
7011 (file-name (git-file-name name version))
7012 (sha256
7013 (base32
7014 "1zm1j4w0f3h01bmmpsv4j4mh6i13nnl8fcqlj2hsa1ncy1lgi8q7"))))
7015 (build-system emacs-build-system)
7016 (home-page "https://jblevins.org/projects/markdown-mode/")
7017 (synopsis "Emacs Major mode for Markdown files")
7018 (description
7019 "Markdown-mode is a major mode for editing Markdown-formatted text files
7020 in Emacs.")
7021 (license license:gpl3+)))
7022
7023 (define-public emacs-evil-markdown
7024 (let ((commit "685d7fbb81bc02fa32779d2a127b99a0c8c7436b")
7025 (revision "2"))
7026 (package
7027 (name "emacs-evil-markdown")
7028 (version (git-version "0.0.2" revision commit))
7029 (source
7030 (origin
7031 (method git-fetch)
7032 (uri (git-reference
7033 (url "https://github.com/Somelauw/evil-markdown.git")
7034 (commit commit)))
7035 (file-name (git-file-name name version))
7036 (sha256
7037 (base32 "1z1sjn6dcqv8mmkh6nfcwhnql2z6xr9yx3hs77bfxj79pf3c466p"))))
7038 (build-system emacs-build-system)
7039 (propagated-inputs
7040 `(("emacs-evil" ,emacs-evil)
7041 ("emacs-markdown-mode" ,emacs-markdown-mode)))
7042 (home-page "https://github.com/Somelauw/evil-markdown/")
7043 (synopsis "Evil keybindings for @code{markdown-mode}")
7044 (description
7045 "This package provides custom text objects and bindings for
7046 @code{markdown-mode}.")
7047 (license license:gpl3+))))
7048
7049 (define-public emacs-edit-indirect
7050 (package
7051 (name "emacs-edit-indirect")
7052 (version "0.1.5")
7053 (source
7054 (origin
7055 (method git-fetch)
7056 (uri (git-reference
7057 (url "https://github.com/Fanael/edit-indirect")
7058 (commit version)))
7059 (file-name (git-file-name name version))
7060 (sha256
7061 (base32
7062 "0by1x53pji39fjrj5bd446kz831nv0vdgw2jqasbym4pc1p2947r"))))
7063 (build-system emacs-build-system)
7064 (home-page "https://github.com/Fanael/edit-indirect")
7065 (synopsis "Edit regions in separate buffers")
7066 (description "This package allows you to edit regions in separate buffers,
7067 like @code{org-edit-src-code} but for arbitrary regions.")
7068 (license license:gpl3+)))
7069
7070 (define-public emacs-projectile
7071 (package
7072 (name "emacs-projectile")
7073 (version "2.1.0")
7074 (source (origin
7075 (method url-fetch)
7076 (uri (string-append "https://raw.githubusercontent.com/bbatsov"
7077 "/projectile/v" version "/projectile.el"))
7078 (file-name (string-append "projectile-" version ".el"))
7079 (sha256
7080 (base32
7081 "1jj9wk91clyph3zmxkd7y7d6gdqmjd1vndhyq5fxp7i7dy013571"))))
7082 (build-system emacs-build-system)
7083 (propagated-inputs
7084 `(("emacs-dash" ,emacs-dash)
7085 ("emacs-pkg-info" ,emacs-pkg-info)))
7086 (home-page "https://github.com/bbatsov/projectile")
7087 (synopsis "Manage and navigate projects in Emacs easily")
7088 (description
7089 "This library provides easy project management and navigation. The
7090 concept of a project is pretty basic - just a folder containing special file.
7091 Currently git, mercurial and bazaar repos are considered projects by default.
7092 If you want to mark a folder manually as a project just create an empty
7093 .projectile file in it.")
7094 (license license:gpl3+)))
7095
7096 (define-public emacs-skeletor
7097 (let ((commit "47c5b761aee8452716c97a69949ac2f675affe13")
7098 (revision "1"))
7099 (package
7100 (name "emacs-skeletor")
7101 (version (git-version "1.6.1" revision commit))
7102 (source (origin
7103 (method git-fetch)
7104 (uri (git-reference
7105 (url "https://github.com/chrisbarrett/skeletor.el.git")
7106 (commit commit)))
7107 (file-name (git-file-name name version))
7108 (sha256
7109 (base32
7110 "12bdgykfh4mwsqdazxjdvha62h3q3v33159ypy91f6x59y01fi0n"))))
7111 (build-system emacs-build-system)
7112 (propagated-inputs
7113 `(("emacs-s" ,emacs-s)
7114 ("emacs-f" ,emacs-f)
7115 ("emacs-dash" ,emacs-dash)
7116 ("emacs-let-alist" ,emacs-let-alist)))
7117 (native-inputs
7118 `(("emacs-ert-runner" ,emacs-ert-runner)))
7119 (arguments
7120 `(#:include (cons "^project-skeletons\\/" %default-include)
7121 ;; XXX: one failing test involving initializing a git repo
7122 #:phases
7123 (modify-phases %standard-phases
7124 (add-before 'check 'make-test-writable
7125 (lambda _
7126 (make-file-writable "test/skeletor-test.el")
7127 #t))
7128 (add-before 'check 'remove-git-test
7129 (lambda _
7130 (emacs-batch-edit-file "test/skeletor-test.el"
7131 `(progn
7132 (progn
7133 (goto-char (point-min))
7134 (re-search-forward
7135 "ert-deftest initialises-git-repo")
7136 (beginning-of-line)
7137 (kill-sexp))
7138 (basic-save-buffer)))
7139 #t)))
7140 #:tests? #t
7141 #:test-command '("ert-runner")))
7142 (home-page "https://github.com/chrisbarrett/skeletor.el")
7143 (synopsis "Project skeletons for Emacs")
7144 (description "This package provides project templates and automates the
7145 mundane parts of setting up a new project, such as version control, licenses,
7146 and tooling.")
7147 (license license:gpl3+))))
7148
7149 (define-public emacs-elfeed
7150 (package
7151 (name "emacs-elfeed")
7152 (version "3.3.0")
7153 (source
7154 (origin
7155 (method git-fetch)
7156 (uri (git-reference
7157 (url "https://github.com/skeeto/elfeed.git")
7158 (commit version)))
7159 (file-name (git-file-name name version))
7160 (sha256
7161 (base32 "0j8a94val4ml7g1vcjgzk1w89h55sxfdrwnncmz6qbh1y2xsz8c5"))))
7162 (build-system emacs-build-system)
7163 (arguments
7164 `(#:tests? #t
7165 #:test-command '("make" "test")))
7166 (home-page "https://github.com/skeeto/elfeed")
7167 (synopsis "Atom/RSS feed reader for Emacs")
7168 (description
7169 "Elfeed is an extensible web feed reader for Emacs, supporting both Atom
7170 and RSS, with a user interface inspired by notmuch.")
7171 (license license:gpl3+)))
7172
7173 (define-public emacs-elfeed-org
7174 (let ((commit "77b6bbf222487809813de260447d31c4c59902c9"))
7175 (package
7176 (name "emacs-elfeed-org")
7177 (version (git-version "0.1" "1" commit))
7178 (source
7179 (origin
7180 (method git-fetch)
7181 (uri (git-reference
7182 (url "https://github.com/remyhonig/elfeed-org.git")
7183 (commit commit)))
7184 (file-name (git-file-name name version))
7185 (sha256
7186 (base32 "0a2ibka82xq1dhy2z7rd2y9zhcj8rna8357881yz49wf55ccgm53"))))
7187 (build-system emacs-build-system)
7188 (propagated-inputs
7189 `(("emacs-elfeed" ,emacs-elfeed)
7190 ("emacs-org" ,emacs-org)
7191 ("emacs-dash" ,emacs-dash)
7192 ("emacs-s" ,emacs-s)))
7193 (native-inputs
7194 `(("ert-runner" ,emacs-ert-runner)
7195 ("emacs-xtest" ,emacs-xtest)))
7196 (arguments
7197 `(#:tests? #t
7198 #:test-command '("ert-runner" "-L" "org-mode/lisp")
7199 #:phases
7200 (modify-phases %standard-phases
7201 (add-before 'check 'chmod
7202 (lambda _
7203 (chmod "test/fixture-mark-feed-ignore.org" #o644)
7204 #t)))))
7205 (home-page "https://github.com/remyhonig/elfeed-org")
7206 (synopsis "Configure Elfeed with an Org-mode file")
7207 (description
7208 "@code{elfeed-org} lets you manage your Elfeed subscriptions
7209 in Org-mode. Maintaining tags for all RSS feeds is cumbersome using
7210 the regular flat list, where there is no hierarchy and tag names are
7211 duplicated a lot. Org-mode makes the book keeping of tags and feeds
7212 much easier.")
7213 (license license:gpl3+))))
7214
7215 (define-public emacs-el-x
7216 (package
7217 (name "emacs-el-x")
7218 (version "0.3.1")
7219 (source (origin
7220 (method git-fetch)
7221 (uri (git-reference
7222 (url "https://github.com/sigma/el-x.git")
7223 (commit (string-append "v" version))))
7224 (file-name (git-file-name name version))
7225 (sha256
7226 (base32
7227 "1i6j44ssxm1xdg0mf91nh1lnprwsaxsx8vsrf720nan7mfr283h5"))))
7228 (build-system emacs-build-system)
7229 (arguments
7230 `(#:phases
7231 (modify-phases %standard-phases
7232 ;; Move the source files to the top level, which is included in
7233 ;; the EMACSLOADPATH.
7234 (add-after 'unpack 'move-source-files
7235 (lambda _
7236 (let ((el-files (find-files "./lisp" ".*\\.el$")))
7237 (for-each (lambda (f)
7238 (rename-file f (basename f)))
7239 el-files))
7240 #t)))))
7241 (home-page "https://github.com/sigma/el-x")
7242 (synopsis "Emacs Lisp extensions")
7243 (description "command@{emacs-el-x} defines the @code{dflet} macro to
7244 provide the historic behavior of @code{flet}, as well as
7245 @code{declare-function} stub for older Emacs.")
7246 (license license:gpl2+)))
7247
7248 (define-public emacs-mocker
7249 (package
7250 (name "emacs-mocker")
7251 (version "0.3.1")
7252 (source (origin
7253 (method git-fetch)
7254 (uri (git-reference
7255 (url "https://github.com/sigma/mocker.el.git")
7256 (commit (string-append "v" version))))
7257 (file-name (git-file-name name version))
7258 (sha256
7259 (base32
7260 "1lav7am41v63xgavq8pr88y828jmd1cxd4prjq7jlbxm6nvrwxh2"))))
7261 (build-system emacs-build-system)
7262 (arguments
7263 `(#:tests? #t
7264 #:test-command '("ert-runner")))
7265 (native-inputs
7266 `(("ert-runner" ,emacs-ert-runner)))
7267 (propagated-inputs
7268 `(("emacs-el-x" ,emacs-el-x)))
7269 (home-page "https://github.com/sigma/mocker.el")
7270 (synopsis "Mocking framework for Emacs Lisp")
7271 (description "Mocker.el is a framework for writing tests in Emacs Lisp.
7272 It uses regular Lisp rather than a domain specific language (DSL), which
7273 maximizes flexibility (at the expense of conciseness).")
7274 (license license:gpl2+)))
7275
7276 (define-public emacs-find-file-in-project
7277 (package
7278 (name "emacs-find-file-in-project")
7279 (version "5.7.7")
7280 (source (origin
7281 (method git-fetch)
7282 (uri (git-reference
7283 (url "https://github.com/technomancy/find-file-in-project.git")
7284 (commit version)))
7285 (file-name (git-file-name name version))
7286 (sha256
7287 (base32
7288 "1skjbh7m0cck2rwmgzrrds51gipqf1jqghyfx15drc1n6kwivx3h"))))
7289 (build-system emacs-build-system)
7290 (arguments
7291 `(#:tests? #t
7292 #:test-command '("ert-runner" "tests")))
7293 (native-inputs
7294 `(("ert-runner" ,emacs-ert-runner)))
7295 (home-page "https://github.com/technomancy/find-file-in-project")
7296 (synopsis "File/directory finder for Emacs")
7297 (description "@code{find-file-in-project} finds files or
7298 directories quickly in the current project. The project root is detected
7299 automatically when Git, Subversion or Mercurial are used. It also provides
7300 functions to assist in reviewing changes on files.")
7301 (license license:gpl3+)))
7302
7303 (define-public emacs-pyvenv
7304 (package
7305 (name "emacs-pyvenv")
7306 (version "1.21")
7307 (source (origin
7308 (method git-fetch)
7309 (uri (git-reference
7310 (url "https://github.com/jorgenschaefer/pyvenv.git")
7311 (commit (string-append "v" version))))
7312 (file-name (git-file-name name version))
7313 (sha256
7314 (base32
7315 "055sgk8zf4wb5nqsf3qasf5gg861zlb1831733f1qcrd2ij5gzxx"))))
7316 (build-system emacs-build-system)
7317 (arguments
7318 `(#:phases
7319 (modify-phases %standard-phases
7320 ;; This phase incorrectly attempts to substitute "activate" and fails
7321 ;; doing so.
7322 (delete 'patch-el-files))
7323 #:tests? #t
7324 #:test-command '("ert-runner")))
7325 (native-inputs
7326 `(("ert-runner" ,emacs-ert-runner)
7327 ("emacs-mocker" ,emacs-mocker)))
7328 (home-page "https://github.com/jorgenschaefer/pyvenv")
7329 (synopsis "Python virtual environment interface for Emacs")
7330 (description "pyvenv.el is a minor mode to support using Python virtual
7331 environments (virtualenv) inside Emacs.")
7332 (license license:gpl3+)))
7333
7334 (define-public emacs-highlight-indent-guides
7335 (let ((version "0.8.5") ; from package metadata
7336 (revision "0")
7337 (commit "c2c9de4d01edfb89609c91d4d7f1d81312015a2c"))
7338 (package
7339 (name "emacs-highlight-indent-guides")
7340 (version (git-version version revision commit))
7341 (source
7342 (origin
7343 (method git-fetch)
7344 (uri (git-reference
7345 (url "https://github.com/DarthFennec/highlight-indent-guides.git")
7346 (commit commit)))
7347 (file-name (git-file-name name version))
7348 (sha256
7349 (base32 "10chvqnmdmkx6i9sigqframr85ziyafiz44glwhvhjajfkv42ad2"))))
7350 (build-system emacs-build-system)
7351 (home-page
7352 "https://github.com/DarthFennec/highlight-indent-guides")
7353 (synopsis "Minor mode to highlight indentation")
7354 (description
7355 "This package provides a minor mode to highlight indentation levels via
7356 font-lock. Indent widths are dynamically discovered, which means this
7357 correctly highlights in any mode, regardless of indent width, even in
7358 languages with non-uniform indentation such as Haskell. This mode works
7359 properly around hard tabs and mixed indentation and behaves well in large
7360 buffers.")
7361 (license license:expat))))
7362
7363 (define-public emacs-highlight-indentation
7364 ;; Last release version is from 2015.
7365 (let ((commit "d03803f2c06749c430443a3d24e039cbafc9c58f")
7366 (revision "1"))
7367 (package
7368 (name "emacs-highlight-indentation")
7369 (version (git-version "0.7.0" revision commit))
7370 (source
7371 (origin
7372 (method git-fetch)
7373 (uri (git-reference
7374 (url "https://github.com/antonj/Highlight-Indentation-for-Emacs.git")
7375 (commit commit)))
7376 (file-name (git-file-name name version))
7377 (sha256
7378 (base32
7379 "1jq0gf4kcx9hvrw40rnw5c2qynjpjw1vsjbi2i4lqjbsnfnxn4wz"))))
7380 (build-system emacs-build-system)
7381 (home-page "https://github.com/antonj/Highlight-Indentation-for-Emacs/")
7382 (synopsis "Highlighting indentation for Emacs")
7383 (description "This package provides two minor modes to highlight
7384 indentation guides in Emacs:
7385
7386 @enumerate
7387 @item @code{highlight-indentation-mode}, which displays guidelines
7388 indentation (space indentation only).
7389 @item @code{highlight-indentation-current-column-mode}, which displays
7390 guidelines for the current-point indentation (space indentation only).
7391 @end enumerate")
7392 (license license:gpl2+))))
7393
7394 (define-public emacs-elpy
7395 (package
7396 (name "emacs-elpy")
7397 (version "1.32.0")
7398 (source (origin
7399 (method git-fetch)
7400 (uri (git-reference
7401 (url "https://github.com/jorgenschaefer/elpy.git")
7402 (commit version)))
7403 (file-name (git-file-name name version))
7404 (sha256
7405 (base32
7406 "0f00mdnzx6xqwni86rgvaa6sfkwyh62xfbwz8qsar15j0j6vc2dj"))))
7407 (build-system emacs-build-system)
7408 (arguments
7409 `(#:include (cons* "^elpy/[^/]+\\.py$" "^snippets\\/" %default-include)
7410 #:phases
7411 (modify-phases %standard-phases
7412 ;; The default environment of the RPC uses Virtualenv to install
7413 ;; Python dependencies from PyPI. We don't want/need this in Guix.
7414 (add-before 'check 'do-not-use-virtualenv
7415 (lambda _
7416 (setenv "ELPY_TEST_DONT_USE_VIRTUALENV" "1")
7417 (substitute* "elpy-rpc.el"
7418 (("defcustom elpy-rpc-virtualenv-path 'default")
7419 "defcustom elpy-rpc-virtualenv-path 'system"))
7420 #t))
7421 (add-before 'check 'build-doc
7422 (lambda _
7423 (with-directory-excursion "docs"
7424 (invoke "make" "info" "man"))
7425 ;; Move .info file at the root so that it can installed by the
7426 ;; 'move-doc phase.
7427 (rename-file "docs/_build/texinfo/Elpy.info" "Elpy.info")
7428 #t))
7429 (add-after 'build-doc 'install-manpage
7430 (lambda* (#:key outputs #:allow-other-keys)
7431 (let* ((out (assoc-ref outputs "out"))
7432 (man1 (string-append out "/share/man/man1")))
7433 (mkdir-p man1)
7434 (copy-file "docs/_build/man/elpy.1"
7435 (string-append man1 "/elpy.1")))
7436 #t)))
7437 #:tests? #t
7438 #:test-command '("ert-runner")))
7439 (propagated-inputs
7440 `(("emacs-company" ,emacs-company)
7441 ("emacs-find-file-in-project" ,emacs-find-file-in-project)
7442 ("emacs-highlight-indentation" ,emacs-highlight-indentation)
7443 ("emacs-yasnippet" ,emacs-yasnippet)
7444 ("pyvenv" ,emacs-pyvenv)
7445 ("s" ,emacs-s)
7446 ;; The following are recommended Python dependencies that make Elpy
7447 ;; much more useful. Installing these avoids Elpy prompting to install them
7448 ;; from PyPI using pip.
7449 ("python-autopep8" ,python-autopep8)
7450 ("python-black" ,python-black)
7451 ("python-flake8" ,python-flake8)
7452 ("python-jedi" ,python-jedi)
7453 ("python-rope" ,python-rope)
7454 ("python-yapf" ,python-yapf)))
7455 (native-inputs
7456 `(("ert-runner" ,emacs-ert-runner)
7457 ("emacs-f" ,emacs-f)
7458 ("python" ,python-wrapper)
7459 ;; For documentation.
7460 ("python-sphinx" ,python-sphinx)
7461 ("texinfo" ,texinfo)))
7462 (home-page "https://github.com/jorgenschaefer/elpy")
7463 (synopsis "Python development environment for Emacs")
7464 (description "Elpy brings powerful Python editing to Emacs. It combines
7465 and configures a number of other packages written in Emacs Lisp as well as
7466 Python, together offering features such as navigation, documentation,
7467 completion, interactive development and more.")
7468 (license license:gpl3+)))
7469
7470 (define-public emacs-rainbow-delimiters
7471 (package
7472 (name "emacs-rainbow-delimiters")
7473 (version "2.1.4")
7474 (source (origin
7475 (method git-fetch)
7476 (uri (git-reference
7477 (url "https://github.com/Fanael/rainbow-delimiters.git")
7478 (commit version)))
7479 (file-name (git-file-name name version))
7480 (sha256
7481 (base32
7482 "1zr2669savnmkc68hiqsq9wccm6bs1j6jbmlac1xqh6nq7xgq36g"))))
7483 (build-system emacs-build-system)
7484 (home-page "https://github.com/Fanael/rainbow-delimiters")
7485 (arguments
7486 `(#:tests? #t
7487 #:test-command '("emacs" "-Q" "-batch"
7488 "-l" "rainbow-delimiters-test.el"
7489 "-f" "ert-run-tests-batch-and-exit")))
7490 (synopsis "Highlight brackets according to their depth")
7491 (description
7492 "Rainbow-delimiters is a \"rainbow parentheses\"-like mode for Emacs which
7493 highlights parentheses, brackets, and braces according to their depth. Each
7494 successive level is highlighted in a different color, making it easy to spot
7495 matching delimiters, orient yourself in the code, and tell which statements
7496 are at a given level.")
7497 (license license:gpl3+)))
7498
7499 (define-public emacs-rainbow-identifiers
7500 (package
7501 (name "emacs-rainbow-identifiers")
7502 (version "0.2.2")
7503 (source (origin
7504 (method url-fetch)
7505 (uri (string-append "https://raw.githubusercontent.com/Fanael"
7506 "/rainbow-identifiers/" version
7507 "/rainbow-identifiers.el"))
7508 (file-name (string-append "rainbow-identifiers-" version ".el"))
7509 (sha256
7510 (base32
7511 "0325abxj47k0g1i8nqrq70w2wr6060ckhhf92krv1s072b3jzm31"))))
7512 (build-system emacs-build-system)
7513 (home-page "https://github.com/Fanael/rainbow-identifiers")
7514 (synopsis "Highlight identifiers in source code")
7515 (description
7516 "Rainbow identifiers mode is an Emacs minor mode providing highlighting of
7517 identifiers based on their names. Each identifier gets a color based on a hash
7518 of its name.")
7519 (license license:bsd-2)))
7520
7521 (define-public emacs-rainbow-mode
7522 (package
7523 (name "emacs-rainbow-mode")
7524 (version "1.0.2")
7525 (source (origin
7526 (method url-fetch)
7527 (uri (string-append
7528 "https://elpa.gnu.org/packages/rainbow-mode-" version ".el"))
7529 (sha256
7530 (base32
7531 "1zfqj63sr07pdlwy7caz4fxsjhmbhh939n81z6jxq9xggm8ajxkd"))))
7532 (build-system emacs-build-system)
7533 (home-page "https://elpa.gnu.org/packages/rainbow-mode.html")
7534 (synopsis "Colorize color names in buffers")
7535 (description
7536 "This minor mode sets background color to strings that match color
7537 names, e.g. #0000ff is displayed in white with a blue background.")
7538 (license license:gpl3+)))
7539
7540 (define-public emacs-ryo-modal
7541 ;; Package has no release. Version is extracted from "Version:" keyword in
7542 ;; main file.
7543 (let ((commit "3a54312eea7023a86ca3f8eb3c03c872554bff2f")
7544 (revision "0"))
7545 (package
7546 (name "emacs-ryo-modal")
7547 (version (git-version "0.4" revision commit))
7548 (source
7549 (origin
7550 (method git-fetch)
7551 (uri (git-reference
7552 (url "https://github.com/Kungsgeten/ryo-modal.git")
7553 (commit commit)))
7554 (file-name (git-file-name name version))
7555 (sha256
7556 (base32 "1cyvp3bi6yhckbdnq98xvghmhdzghya5y9wd7hxjawibs75rza95"))))
7557 (build-system emacs-build-system)
7558 (home-page "https://github.com/Kungsgeten/ryo-modal")
7559 (synopsis "Emacs minor mode for defining modal editing environments")
7560 (description "RYO modal provides a convenient way of defining modal
7561 keybindings in Emacs, and does not come with any predefined bindings.")
7562 (license license:expat))))
7563
7564 (define-public emacs-visual-fill-column
7565 (package
7566 (name "emacs-visual-fill-column")
7567 (version "1.11")
7568 (source (origin
7569 (method url-fetch)
7570 (uri (string-append "https://codeload.github.com/joostkremers/"
7571 "visual-fill-column/tar.gz/" version))
7572 (file-name (string-append name "-" version ".tar.gz"))
7573 (sha256
7574 (base32
7575 "13jnviakp607zcms7f8ams56mr8wffnq1pghlc6fvqs39663pgwh"))))
7576 (build-system emacs-build-system)
7577 (home-page "https://github.com/joostkremers/visual-fill-column")
7578 (synopsis "Fill-column for visual-line-mode")
7579 (description
7580 "@code{visual-fill-column-mode} is a small Emacs minor mode that mimics
7581 the effect of @code{fill-column} in @code{visual-line-mode}. Instead of
7582 wrapping lines at the window edge, which is the standard behaviour of
7583 @code{visual-line-mode}, it wraps lines at @code{fill-column}. If
7584 @code{fill-column} is too large for the window, the text is wrapped at the
7585 window edge.")
7586 (license license:gpl3+)))
7587
7588 (define-public emacs-writeroom
7589 (package
7590 (name "emacs-writeroom")
7591 (version "3.9")
7592 (source
7593 (origin
7594 (method git-fetch)
7595 (uri (git-reference
7596 (url "https://github.com/joostkremers/writeroom-mode.git")
7597 (commit version)))
7598 (file-name (git-file-name name version))
7599 (sha256
7600 (base32
7601 "1nrppnfqsaki6myp58w8jhmzb94rzskh5n98glcn4ghr8sqnafi8"))))
7602 (build-system emacs-build-system)
7603 (propagated-inputs
7604 `(("emacs-visual-fill-column" ,emacs-visual-fill-column)))
7605 (home-page "https://github.com/joostkremers/writeroom-mode")
7606 (synopsis "Distraction-free writing for Emacs")
7607 (description
7608 "This package defines a minor mode for distraction-free writing. Some of
7609 the default effects include entering fullscreen, deleting other windows of the
7610 current frame, disabling the mode line, and adding margins to the buffer that
7611 restrict the text width to 80 characters.")
7612 (license license:bsd-3)))
7613
7614 (define-public emacs-ido-completing-read+
7615 (package
7616 (name "emacs-ido-completing-read+")
7617 (version "3.12")
7618 (source (origin
7619 (method url-fetch)
7620 (uri (string-append "https://raw.githubusercontent.com"
7621 "/DarwinAwardWinner/ido-ubiquitous/v"
7622 version "/ido-completing-read+.el"))
7623 (file-name (string-append "ido-completing-read+-" version ".el"))
7624 (sha256
7625 (base32
7626 "1cyalb0p7nfsm4n6n9q6rjmvn6adqc0fq8ybnlj3n41n289dkfjf"))))
7627 (build-system emacs-build-system)
7628 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
7629 (synopsis "Replacement for completing-read using ido")
7630 (description
7631 "The ido-completing-read+ function is a wrapper for ido-completing-read.
7632 Importantly, it detects edge cases that ordinary ido cannot handle and either
7633 adjusts them so ido can handle them, or else simply falls back to the standard
7634 Emacs completion function instead.")
7635 (license license:gpl3+)))
7636
7637 (define-public emacs-ido-ubiquitous
7638 (package
7639 (name "emacs-ido-ubiquitous")
7640 (version "3.12")
7641 (source (origin
7642 (method url-fetch)
7643 (uri (string-append "https://raw.githubusercontent.com"
7644 "/DarwinAwardWinner/ido-ubiquitous/v"
7645 version "/ido-ubiquitous.el"))
7646 (file-name (string-append "ido-ubiquitous-" version ".el"))
7647 (sha256
7648 (base32
7649 "197ypji0fb6jsdcq40rpnknwlh3imas6s6jbsvkfm0pz9988c3q2"))))
7650 (build-system emacs-build-system)
7651 (propagated-inputs
7652 `(("emacs-ido-completing-read+" ,emacs-ido-completing-read+)))
7653 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
7654 (synopsis "Use ido (nearly) everywhere")
7655 (description
7656 "Ido-ubiquitous enables ido-style completion for almost every function
7657 that uses the standard completion function completing-read.")
7658 (license license:gpl3+)))
7659
7660 (define-public emacs-yaml-mode
7661 (package
7662 (name "emacs-yaml-mode")
7663 (version "0.0.14")
7664 (source (origin
7665 (method git-fetch)
7666 (uri (git-reference
7667 (url "https://github.com/yoshiki/yaml-mode.git")
7668 (commit version)))
7669 (file-name (git-file-name name version))
7670 (sha256
7671 (base32
7672 "18g064ardqi1f3xz7j6rs1x9fvv9sn0iq9vgid8c6qvxq7gwj00r"))))
7673 (build-system emacs-build-system)
7674 (home-page "https://github.com/yoshiki/yaml-mode")
7675 (synopsis "Major mode for editing YAML files")
7676 (description
7677 "Yaml-mode is an Emacs major mode for editing files in the YAML data
7678 serialization format. It was initially developed by Yoshiki Kurihara and many
7679 features were added by Marshall Vandegrift. As YAML and Python share the fact
7680 that indentation determines structure, this mode provides indentation and
7681 indentation command behavior very similar to that of python-mode.")
7682 (license license:gpl3+)))
7683
7684 (define-public emacs-gitlab-ci-mode
7685 (package
7686 (name "emacs-gitlab-ci-mode")
7687 (version "20190425.11.10")
7688 (source (origin
7689 (method git-fetch)
7690 (uri (git-reference
7691 (url "https://gitlab.com/joewreschnig/gitlab-ci-mode.git")
7692 (commit (string-append "v" version))))
7693 (file-name (git-file-name name version))
7694 (sha256
7695 (base32
7696 "1jkp9mnbiccqnha9zs646znqyqvy5jjb81kah7ghbkzdqqk2avm0"))))
7697 (build-system emacs-build-system)
7698 (propagated-inputs
7699 `(("emacs-yaml-mode" ,emacs-yaml-mode)))
7700 (home-page "https://gitlab.com/joewreschnig/gitlab-ci-mode/")
7701 (synopsis "Emacs mode for editing GitLab CI files")
7702 (description
7703 "@code{gitlab-ci-mode} is an Emacs major mode for editing GitLab CI
7704 files. It provides syntax highlighting and completion for keywords and
7705 special variables. An interface to GitLab’s CI file linter is also provided
7706 via @code{gitlab-ci-lint}.")
7707 (license license:gpl3+)))
7708
7709 (define-public emacs-gitlab-snip-helm
7710 (package
7711 (name "emacs-gitlab-snip-helm")
7712 (version "0.0.2")
7713 (source (origin
7714 (method git-fetch)
7715 (uri (git-reference
7716 (url "https://gitlab.com/sasanidas/gitlab-snip-helm.git")
7717 (commit version)))
7718 (file-name (git-file-name name version))
7719 (sha256
7720 (base32
7721 "1c5js19zyb1z61hapvbfcl5jhrjqij46cxldgqij6al0scw44dga"))))
7722 (build-system emacs-build-system)
7723 (propagated-inputs
7724 `(("emacs-dash" ,emacs-dash)
7725 ("emacs-helm" ,emacs-helm)))
7726 (home-page "https://gitlab.com/sasanidas/gitlab-snip-helm/")
7727 (synopsis "GitLab snippet API interaction for Emacs")
7728 (description "This package provides GitLab snippet API interaction for
7729 Emacs.")
7730 (license license:gpl3+)))
7731
7732 (define-public emacs-web-mode
7733 (package
7734 (name "emacs-web-mode")
7735 (version "17")
7736 (source
7737 (origin
7738 (method git-fetch)
7739 (uri (git-reference
7740 (url "https://github.com/fxbois/web-mode.git")
7741 (commit (string-append "v" version))))
7742 (file-name (git-file-name name version))
7743 (sha256
7744 (base32 "0jr5a1nzp8nbdng0k2fcaymiiv9ngrbknbrqaswgqn3akvx793jk"))))
7745 (build-system emacs-build-system)
7746 (synopsis "Major mode for editing web templates")
7747 (description "Web mode is an Emacs major mode for editing web templates
7748 aka HTML files embedding parts (CSS/JavaScript) and blocks (pre rendered by
7749 client/server side engines). Web mode is compatible with many template
7750 engines: PHP, JSP, ASP, Django, Twig, Jinja, Mustache, ERB, FreeMarker,
7751 Velocity, Cheetah, Smarty, CTemplate, Mustache, Blade, ErlyDTL, Go Template,
7752 Dust.js, React/JSX, Angularjs, ejs, etc.")
7753 (home-page "http://web-mode.org/")
7754 (license license:gpl3+)))
7755
7756 (define-public emacs-wgrep
7757 (package
7758 (name "emacs-wgrep")
7759 (version "2.3.2")
7760 (source (origin
7761 (method git-fetch)
7762 (uri (git-reference
7763 (url "https://github.com/mhayashi1120/Emacs-wgrep")
7764 (commit version)))
7765 (file-name (git-file-name name version))
7766 (sha256
7767 (base32
7768 "00cwqzb94jlq4mwgv8z7r3mn0a6mhq95z6j189kacq9g4473zh8d"))))
7769 (build-system emacs-build-system)
7770 (home-page "https://github.com/mhayashi1120/Emacs-wgrep")
7771 (synopsis "Edit a grep buffer and apply those changes to the files")
7772 (description
7773 "Emacs wgrep allows you to edit a grep buffer and apply those changes
7774 to the file buffer. Several backends are supported beside the classic grep:
7775 ack, ag, helm and pt.")
7776 (license license:gpl3+)))
7777
7778 (define-public emacs-helm
7779 (package
7780 (name "emacs-helm")
7781 (version "3.6.0")
7782 (source
7783 (origin
7784 (method git-fetch)
7785 (uri (git-reference
7786 (url "https://github.com/emacs-helm/helm.git")
7787 (commit (string-append "v" version))))
7788 (file-name (git-file-name name version))
7789 (sha256
7790 (base32 "0miq2q52pbicijp7pmj0widk252qixswywc03d120s4hya2b7vd7"))))
7791 (build-system emacs-build-system)
7792 (propagated-inputs
7793 `(("emacs-async" ,emacs-async)
7794 ("emacs-popup" ,emacs-popup)))
7795 (home-page "https://emacs-helm.github.io/helm/")
7796 (synopsis "Incremental completion and selection narrowing
7797 framework for Emacs")
7798 (description "Helm is incremental completion and selection narrowing
7799 framework for Emacs. It will help steer you in the right direction when
7800 you're looking for stuff in Emacs (like buffers, files, etc). Helm is a fork
7801 of @code{anything.el} originally written by Tamas Patrovic and can be
7802 considered to be its successor. Helm sets out to clean up the legacy code in
7803 @code{anything.el} and provide a cleaner, leaner and more modular tool, that's
7804 not tied in the trap of backward compatibility.")
7805 (license license:gpl3+)))
7806
7807 (define-public emacs-helm-org
7808 (let ((commit "8457e1e46227bf87726e05c42cec5a4b51c2ef7b")
7809 (revision "3"))
7810 (package
7811 (name "emacs-helm-org")
7812 (version (git-version "1.0" revision commit))
7813 (source
7814 (origin
7815 (method git-fetch)
7816 (uri (git-reference
7817 (url "https://github.com/emacs-helm/helm-org.git")
7818 (commit commit)))
7819 (file-name (git-file-name name version))
7820 (sha256
7821 (base32 "0kcjhwwi492n9m2w894hvdavfvhj45zygy7bwvx103wvpay5h6h6"))))
7822 (build-system emacs-build-system)
7823 (propagated-inputs
7824 `(("emacs-helm" ,emacs-helm)))
7825 (home-page "https://github.com/emacs-helm/helm-org")
7826 (synopsis "Helm interface to the Silver Searcher")
7827 (description
7828 "This package provides a frontend for grepping tools like ag and ack,
7829 as well as features for editing search results.")
7830 (license license:gpl3+))))
7831
7832 (define-public emacs-helm-swoop
7833 (package
7834 (name "emacs-helm-swoop")
7835 (version "2.0.0")
7836 (source
7837 (origin
7838 (method git-fetch)
7839 (uri (git-reference
7840 (url "https://github.com/emacsorphanage/helm-swoop.git")
7841 (commit version)))
7842 (file-name (git-file-name name version))
7843 (sha256
7844 (base32 "0k0ns92g45x8dbymqpl6ylk5mj3wiw2h03f48q5cy1z8in0c4rjd"))))
7845 (build-system emacs-build-system)
7846 (propagated-inputs
7847 `(("emacs-helm" ,emacs-helm)))
7848 (home-page "https://github.com/emacsorphanage/helm-swoop")
7849 (synopsis "Filter and jump to lines in an Emacs buffer using Helm")
7850 (description
7851 "This package builds on the Helm interface to provide several commands
7852 for search-based navigation of buffers.")
7853 (license license:gpl2+)))
7854
7855 (define-public emacs-helm-ag
7856 (package
7857 (name "emacs-helm-ag")
7858 (version "0.59")
7859 (source
7860 (origin
7861 (method git-fetch)
7862 (uri (git-reference
7863 (url "https://github.com/syohex/emacs-helm-ag.git")
7864 (commit version)))
7865 (file-name (git-file-name name version))
7866 (sha256
7867 (base32 "0vsz2b5qw4qahlf74059z4p1grinhfz28f0psw4c3qf4jasv3b9j"))))
7868 (build-system emacs-build-system)
7869 (propagated-inputs
7870 `(("emacs-helm" ,emacs-helm)))
7871 (home-page "https://github.com/syohex/emacs-helm-ag")
7872 (synopsis "Helm interface to the Silver Searcher")
7873 (description
7874 "This package provides a frontend for grepping tools like ag and ack,
7875 as well as features for editing search results.")
7876 (license license:gpl3+)))
7877
7878 ;; There hasn't been a tag or release since 2016, so we take the latest
7879 ;; commit.
7880 (define-public emacs-helm-projectile
7881 (let ((commit "5328b74dddcee8d1913803ca8167868831a07463")
7882 (version "0.14.0")
7883 (revision "1"))
7884 (package
7885 (name "emacs-helm-projectile")
7886 (version (git-version version revision commit))
7887 (source
7888 (origin
7889 (method git-fetch)
7890 (uri (git-reference
7891 (url "https://github.com/bbatsov/helm-projectile.git")
7892 (commit commit)))
7893 (file-name (git-file-name name version))
7894 (sha256
7895 (base32 "0a811cblrvc8llpv771b8dppgxs6bwjyvjy3qn2xns4nigvn93s0"))))
7896 (build-system emacs-build-system)
7897 (propagated-inputs
7898 `(("emacs-helm" ,emacs-helm)
7899 ("emacs-projectile" ,emacs-projectile)))
7900 (home-page "https://github.com/bbatsov/helm-projectile")
7901 (synopsis "Helm integration for Projectile")
7902 (description
7903 "This Emacs library provides a Helm interface for Projectile.")
7904 (license license:gpl3+))))
7905
7906 (define-public emacs-taskrunner
7907 (let ((commit "3afd4a546d42339543d3d4e51b175fc3e82b3358")
7908 (revision "1"))
7909 (package
7910 (name "emacs-taskrunner")
7911 (version (git-version "0.6" revision commit))
7912 (source
7913 (origin
7914 (method git-fetch)
7915 (uri (git-reference
7916 (url "https://github.com/emacs-taskrunner/emacs-taskrunner.git")
7917 (commit commit)))
7918 (file-name (git-file-name name version))
7919 (sha256
7920 (base32
7921 "1lkdvmjn3alhqxq2i64sdr977sbw3g0b2670d9bwyzi67qh0jxrv"))))
7922 (build-system emacs-build-system)
7923 (propagated-inputs
7924 `(("emacs-async" ,emacs-async)
7925 ("emacs-projectile" ,emacs-projectile)))
7926 (home-page "https://github.com/emacs-taskrunner/emacs-taskrunner")
7927 (synopsis "Retrieve tasks from various build systems and task-runners")
7928 (description "This package parses Makefiles and build-system files for
7929 multiple project types.")
7930 (license license:gpl3+))))
7931
7932 (define-public emacs-ivy-taskrunner
7933 (let ((commit "75d8d67cfe3c29663fe0f5508a887adf40ed5162")
7934 (revision "1"))
7935 (package
7936 (name "emacs-ivy-taskrunner")
7937 (version (git-version "0.9" revision commit))
7938 (source
7939 (origin
7940 (method git-fetch)
7941 (uri (git-reference
7942 (url "https://github.com/emacs-taskrunner/ivy-taskrunner.git")
7943 (commit commit)))
7944 (file-name (git-file-name name version))
7945 (sha256
7946 (base32
7947 "1wf4s4k0ap21f7g5w6128an8nsvbja7f5n889vcml5b6gjz058db"))))
7948 (build-system emacs-build-system)
7949 (propagated-inputs
7950 `(("emacs-ivy" ,emacs-ivy)
7951 ("emacs-taskrunner" ,emacs-taskrunner)
7952 ("emacs-projectile" ,emacs-projectile)))
7953 (home-page "https://github.com/emacs-taskrunner/ivy-taskrunner")
7954 (synopsis "Retrieve build-system tasks using Ivy")
7955 (description "This package provides an Ivy interface for selecting
7956 Makefile targets.")
7957 (license license:gpl3+))))
7958
7959 (define-public emacs-helm-taskrunner
7960 (let ((commit "1910dac19cbc7bd4fd08b0faf9affd455339fbea")
7961 (revision "1"))
7962 (package
7963 (name "emacs-helm-taskrunner")
7964 (version (git-version "0.9" revision commit))
7965 (source
7966 (origin
7967 (method git-fetch)
7968 (uri (git-reference
7969 (url "https://github.com/emacs-taskrunner/helm-taskrunner.git")
7970 (commit commit)))
7971 (file-name (git-file-name name version))
7972 (sha256
7973 (base32
7974 "182lmr858fx6rdhp1fy7kv8dvrhzcnxzwfck1q22s6xs8x85d5q7"))))
7975 (build-system emacs-build-system)
7976 (propagated-inputs
7977 `(("emacs-helm" ,emacs-helm)
7978 ("emacs-taskrunner" ,emacs-taskrunner)
7979 ("emacs-projectile" ,emacs-projectile)))
7980 (home-page "https://github.com/emacs-taskrunner/helm-taskrunner")
7981 (synopsis "Retrieve build-system tasks using Helm")
7982 (description "This package provides a Helm interface for selecting
7983 Makefile targets.")
7984 (license license:gpl3+))))
7985
7986 (define-public emacs-helm-make
7987 (let ((commit "feae8df22bc4b20705ea08ac9adfc2b43bb348d0")
7988 (revision "1"))
7989 (package
7990 (name "emacs-helm-make")
7991 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
7992 (source
7993 (origin
7994 (method git-fetch)
7995 (uri (git-reference
7996 (url "https://github.com/abo-abo/helm-make.git")
7997 (commit commit)))
7998 (file-name (git-file-name name version))
7999 (sha256
8000 (base32
8001 "1y2v77mmd1bfkkz51cnk1l0dg3lvvxc39wlamnm7wjns66dbvlam"))))
8002 (build-system emacs-build-system)
8003 (propagated-inputs
8004 `(("emacs-helm" ,emacs-helm)
8005 ("emacs-projectile" ,emacs-projectile)))
8006 (home-page "https://github.com/abo-abo/helm-make")
8007 (synopsis "Select a Makefile target with helm")
8008 (description "@code{helm-make} or @code{helm-make-projectile} will give
8009 you a @code{helm} selection of directory Makefile's targets. Selecting a
8010 target will call @code{compile} on it.")
8011 (license license:gpl3+))))
8012
8013 (define-public emacs-cider
8014 (package
8015 (name "emacs-cider")
8016 (version "0.23.0")
8017 (source
8018 (origin
8019 (method git-fetch)
8020 (uri (git-reference
8021 (url "https://github.com/clojure-emacs/cider.git")
8022 (commit (string-append "v" version))))
8023 (file-name (git-file-name name version))
8024 (sha256
8025 (base32
8026 "05yjkqc6d4grq9z5pxmv3anqh4zlhfg4v46jlccp6ynh030g7axs"))))
8027 (build-system emacs-build-system)
8028 (arguments
8029 '(#:exclude ; Don't exclude 'cider-test.el'.
8030 '("^\\.dir-locals\\.el$" "^test/")))
8031 (propagated-inputs
8032 `(("emacs-clojure-mode" ,emacs-clojure-mode)
8033 ("emacs-sesman" ,emacs-sesman)
8034 ("emacs-seq" ,emacs-seq)
8035 ("emacs-spinner" ,emacs-spinner)
8036 ("emacs-parseedn" ,emacs-parseedn)
8037 ("emacs-pkg-info" ,emacs-pkg-info)
8038 ("emacs-queue" ,emacs-queue)))
8039 (home-page "https://cider.mx/")
8040 (synopsis "Clojure development environment for Emacs")
8041 (description
8042 "CIDER (Clojure Interactive Development Environment that Rocks) aims to
8043 provide an interactive development experience similar to the one you'd get
8044 when programming in Emacs Lisp, Common Lisp (with SLIME or Sly), Scheme (with
8045 Geiser) and Smalltalk.
8046
8047 CIDER is the successor to the now deprecated combination of using SLIME +
8048 swank-clojure for Clojure development.
8049
8050 There are plenty of differences between CIDER and SLIME, but the core ideas
8051 are pretty much the same (and SLIME served as the principle inspiration for
8052 CIDER).")
8053 (license license:gpl3+)))
8054
8055 ;; There hasn't been a tag or release since 2016, so we take the latest
8056 ;; commit.
8057 (define-public emacs-sly
8058 (let ((commit "86a63df73360be51529806c7ed9b775b3f02284d")
8059 (revision "4"))
8060 (package
8061 (name "emacs-sly")
8062 (version (git-version "1.0.0" revision commit))
8063 (source
8064 (origin
8065 (method git-fetch)
8066 (uri (git-reference
8067 (url "https://github.com/joaotavora/sly.git")
8068 (commit commit)))
8069 (file-name (git-file-name name version))
8070 (sha256
8071 (base32
8072 "0sx6fdckcfcld41db0695svvlvllnfaazwx513686gnykwfd209n"))))
8073 (build-system emacs-build-system)
8074 (native-inputs
8075 `(("texinfo" ,texinfo)))
8076 (arguments
8077 `(#:include (cons* "^contrib\\/" "^lib\\/" "^slynk\\/" %default-include)
8078 #:phases
8079 ;; The package provides autoloads.
8080 (modify-phases %standard-phases
8081 (delete 'make-autoloads)
8082 (add-before 'install 'install-doc
8083 (lambda* (#:key outputs #:allow-other-keys)
8084 (let* ((out (assoc-ref outputs "out"))
8085 (info-dir (string-append out "/share/info"))
8086 (doc-dir (string-append out "/share/doc/"
8087 ,name "-" ,version))
8088 (doc-files '(;; "doc/sly-refcard.pdf" ; See sly-refcard.pdf below.
8089 "README.md" "NEWS.md" "PROBLEMS.md"
8090 "CONTRIBUTING.md")))
8091 (with-directory-excursion "doc"
8092 (substitute* "Makefile"
8093 (("infodir=/usr/local/info")
8094 (string-append "infodir=" info-dir))
8095 ;; Don't rebuild contributors.texi since we are not in
8096 ;; the git repo.
8097 (("contributors.texi: Makefile texinfo-tabulate.awk")
8098 "contributors.texi:"))
8099 (invoke "make" "html/index.html")
8100 (invoke "make" "sly.info")
8101 ;; TODO: We need minimal texlive with "preprint" package
8102 ;; (for fullpage.sty). (invoke "make" "sly-refcard.pdf")
8103 (install-file "sly.info" info-dir)
8104 (copy-recursively "html" (string-append doc-dir "/html")))
8105 (for-each (lambda (f)
8106 (install-file f doc-dir)
8107 (delete-file f))
8108 doc-files)
8109 (delete-file-recursively "doc")
8110 #t))))))
8111 (home-page "https://github.com/joaotavora/sly")
8112 (synopsis "Sylvester the Cat's Common Lisp IDE")
8113 (description
8114 "SLY is Sylvester the Cat's Common Lisp IDE. SLY is a fork of SLIME, and
8115 contains the following improvements over it:
8116
8117 @enumerate
8118 @item Completely redesigned REPL based on Emacs's own full-featured
8119 @code{comint.el}.
8120 @item Live code annotations via a new @code{sly-stickers} contrib.
8121 @item Consistent interactive button interface. Everything can be copied to
8122 the REPL.
8123 @item Multiple inspectors with independent history.
8124 @item Regexp-capable @code{M-x sly-apropos}.
8125 @item Contribs are first class SLY citizens and enabled by default.
8126 @item Use ASDF to loads contribs on demand.
8127 @end enumerate
8128
8129 SLY tracks SLIME's bugfixes and all its familiar features (debugger, inspector,
8130 xref, etc...) are still available, but with better integration.")
8131 (license license:gpl3+))))
8132
8133 (define-public emacs-sly-quicklisp
8134 (let ((commit "01ebe3976a244309f2e277c09206831135a0b66c")
8135 (revision "1"))
8136 (package
8137 (name "emacs-sly-quicklisp")
8138 (version (git-version "0.0.0" revision commit))
8139 (home-page "https://github.com/joaotavora/sly-quicklisp")
8140 (source
8141 (origin
8142 (method git-fetch)
8143 (uri (git-reference
8144 (url home-page)
8145 (commit commit)))
8146 (file-name (git-file-name name version))
8147 (sha256
8148 (base32
8149 "1vfqmvayf35g6y3ljsm3rlzv5jm50qikhh4lv2zkkswj6gkkb1cv"))))
8150 (build-system emacs-build-system)
8151 (propagated-inputs
8152 `(("emacs-sly" ,emacs-sly)))
8153 (arguments
8154 `(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
8155 #:phases
8156 ;; The package provides autoloads.
8157 (modify-phases %standard-phases
8158 (delete 'make-autoloads)
8159 (delete 'enable-autoloads-compilation))))
8160 (synopsis "Quicklisp support for SLY")
8161 (description
8162 "@command{sly-quicklisp} is an external contrib for SLY that provides a
8163 sly-quickload command that prompts the user for a package to install. ")
8164 (license license:gpl3+))))
8165
8166 (define-public emacs-sly-asdf
8167 (let ((commit "32ce14994e8faee9321605cec36d156b02996c46")
8168 (revision "4"))
8169 (package
8170 (name "emacs-sly-asdf")
8171 (version (git-version "0.1.0" revision commit))
8172 (home-page "https://github.com/mmgeorge/sly-asdf")
8173 (source
8174 (origin
8175 (method git-fetch)
8176 (uri (git-reference
8177 (url home-page)
8178 (commit commit)))
8179 (file-name (git-file-name name version))
8180 (sha256
8181 (base32
8182 "09x8l37wwqw74xc2frwzbfdb1if8rb3szg5akdk3v2qhik4sm3dd"))))
8183 (build-system emacs-build-system)
8184 (propagated-inputs
8185 `(("emacs-sly" ,emacs-sly)
8186 ("emacs-popup" ,emacs-popup)))
8187 (arguments
8188 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)))
8189 (synopsis "ASDF contrib for SLY")
8190 (description
8191 "@command{sly-asdf} is an external contrib for SLY that provides
8192 additional support for working with ASDF projects.")
8193 (license license:gpl3+))))
8194
8195 (define-public emacs-sly-named-readtables
8196 (let ((commit "a5a42674ccffa97ccd5e4e9742beaf3ea719931f")
8197 (revision "1"))
8198 (package
8199 (name "emacs-sly-named-readtables")
8200 (version (git-version "0.1" revision commit))
8201 (home-page "https://github.com/joaotavora/sly-named-readtables")
8202 (source
8203 (origin
8204 (method git-fetch)
8205 (uri (git-reference
8206 (url home-page)
8207 (commit commit)))
8208 (file-name (git-file-name name version))
8209 (sha256
8210 (base32
8211 "16asd119rzqrlclps2q6yrkis8jy5an5xgzzqvb7jdyq39zxg54q"))))
8212 (build-system emacs-build-system)
8213 (propagated-inputs
8214 `(("emacs-sly" ,emacs-sly)))
8215 (arguments
8216 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
8217 #:phases (modify-phases %standard-phases
8218 ;; Byte compilation of the autoload file fails.
8219 (delete 'enable-autoloads-compilation))))
8220 (synopsis "Named-readtables support for SLY")
8221 (description
8222 "@command{sly-named-readtables} is an external contrib for SLY that
8223 enables different readtables to be active in different parts of the same
8224 file.")
8225 (license license:gpl3+))))
8226
8227 (define-public emacs-sly-macrostep
8228 (let ((commit "be2d24545092d164be1a91031d8881afd29c9ec0")
8229 (revision "1"))
8230 (package
8231 (name "emacs-sly-macrostep")
8232 (version (git-version "0.1" revision commit))
8233 (home-page "https://github.com/joaotavora/sly-macrostep")
8234 (source
8235 (origin
8236 (method git-fetch)
8237 (uri (git-reference
8238 (url home-page)
8239 (commit commit)))
8240 (file-name (git-file-name name version))
8241 (sha256
8242 (base32
8243 "0v8m3zkccpqd2l8m9340y672l2mm3mrry8422nva5kfvpcwdayqb"))))
8244 (build-system emacs-build-system)
8245 (propagated-inputs
8246 `(("emacs-sly" ,emacs-sly)
8247 ("emacs-macrostep" ,emacs-macrostep)))
8248 (arguments
8249 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
8250 #:phases
8251 ;; The package provides autoloads.
8252 (modify-phases %standard-phases
8253 (delete 'make-autoloads)
8254 (delete 'enable-autoloads-compilation))))
8255 (synopsis "Expand Common Lisp macros inside source files with SLY")
8256 (description
8257 "@command{sly-macrostep} is a SLY contrib for expanding CL macros right
8258 inside the source file.")
8259 (license license:gpl3+))))
8260
8261 (define-public emacs-sly-package-inferred
8262 (let ((commit "800e71e2be631422277e2ec77e6d6f6ea20e95ef")
8263 (revision "1"))
8264 (package
8265 (name "emacs-sly-package-inferred")
8266 (version (git-version "0.1" revision commit))
8267 (home-page "https://github.com/40ants/sly-package-inferred")
8268 (source
8269 (origin
8270 (method git-fetch)
8271 (uri (git-reference
8272 (url home-page)
8273 (commit commit)))
8274 (file-name (git-file-name name version))
8275 (sha256
8276 (base32
8277 "1216idyp034nkqddhw4p53jkhhdxa6xnjjmsvijpf4rxqnfqvapg"))))
8278 (build-system emacs-build-system)
8279 (propagated-inputs
8280 `(("emacs-sly" ,emacs-sly)))
8281 (arguments
8282 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
8283 #:phases
8284 ;; The package provides autoloads.
8285 (modify-phases %standard-phases
8286 (delete 'make-autoloads))))
8287 (synopsis "Improved package inferred systems support for SLY")
8288 (description
8289 "@command{sly-package-inferred} is an external contrib for SLY that
8290 replaces its completion with a function which is better suited for systems
8291 using package inferred style.")
8292 (license license:gpl3+))))
8293
8294 (define-public emacs-lua-mode
8295 (let ((commit "1f596a93b3f1caadd7bba01030f8c179b029600b")
8296 (revision "1"))
8297 (package
8298 (name "emacs-lua-mode")
8299 (version (git-version "20191204" revision commit))
8300 (home-page "https://github.com/immerrr/lua-mode/")
8301 (source (origin
8302 (method git-fetch)
8303 (uri (git-reference
8304 (url home-page)
8305 (commit commit)))
8306 (file-name (git-file-name name version))
8307 (sha256
8308 (base32
8309 "0i4adlaik3qjx1wkb7rwk2clvj7ci2g8pm0siyb3yk90r6z5mspi"))))
8310 (build-system emacs-build-system)
8311 (arguments
8312 `(#:tests? #t
8313 #:test-command '("buttercup" "-l" "lua-mode.el")))
8314 (native-inputs
8315 `(("emacs-buttercup" ,emacs-buttercup)
8316 ("lua" ,lua)))
8317 (synopsis "Major mode for lua")
8318 (description
8319 "This Emacs package provides a mode for @uref{https://www.lua.org/,
8320 Lua programming language}.")
8321 (license license:gpl2+))))
8322
8323 (define-public emacs-ebuild-mode
8324 (package
8325 (name "emacs-ebuild-mode")
8326 (version "1.50")
8327 (source
8328 (origin
8329 (method url-fetch)
8330 (uri (string-append
8331 "https://dev.gentoo.org/~ulm/emacs/"
8332 "ebuild-mode-" version ".tar.xz"))
8333 (file-name (string-append name "-" version ".tar.xz"))
8334 (sha256
8335 (base32 "0bgi98vx6ahxijw69kfdiy3rkjdg7yi6k3bkjyasak5920m6fj1d"))))
8336 (build-system emacs-build-system)
8337 (arguments
8338 '(#:phases
8339 (modify-phases %standard-phases
8340 (add-after 'install 'install-doc
8341 (lambda* (#:key outputs #:allow-other-keys)
8342 (invoke "make" "ebuild-mode.info")
8343 (install-file "ebuild-mode.info"
8344 (string-append (assoc-ref outputs "out")
8345 "/share/info"))
8346 #t)))))
8347 (native-inputs
8348 `(("texinfo" ,texinfo)))
8349 (home-page "https://devmanual.gentoo.org")
8350 (synopsis "Major modes for Gentoo package files")
8351 (description
8352 "This Emacs package provides modes for ebuild, eclass, eblit, GLEP42
8353 news items, openrc and runscripts.")
8354 (license license:gpl2+)))
8355
8356 (define-public emacs-evil
8357 (package
8358 (name "emacs-evil")
8359 (version "1.14.0")
8360 (source
8361 (origin
8362 (method git-fetch)
8363 (uri (git-reference
8364 (url "https://github.com/emacs-evil/evil")
8365 (commit version)))
8366 (file-name (git-file-name name version))
8367 (sha256
8368 (base32
8369 "17xrn3s6a4afmls8fw8nnxa1jq9dmj2qqrxa2vngh50hxpz8840p"))))
8370 (arguments
8371 `(#:phases
8372 (modify-phases %standard-phases
8373 (add-before 'check 'fix-test-helpers
8374 (lambda _
8375 (substitute* "evil-test-helpers.el"
8376 (("\\(undo-tree-mode 1\\)") ""))
8377 #t)))))
8378 (build-system emacs-build-system)
8379 (home-page "https://github.com/emacs-evil/evil")
8380 (synopsis "Extensible Vi layer for Emacs")
8381 (description
8382 "Evil is an extensible vi layer for Emacs. It emulates the
8383 main features of Vim, and provides facilities for writing custom
8384 extensions.")
8385 (license license:gpl3+)))
8386
8387 (define-public emacs-evil-collection
8388 (let ((commit "d062cc206d671fb5aefb1e0e679a9cb1d6c73e33")
8389 (revision "14"))
8390 (package
8391 (name "emacs-evil-collection")
8392 (version (git-version "0.0.3" revision commit))
8393 (source (origin
8394 (method git-fetch)
8395 (uri (git-reference
8396 (url "https://github.com/emacs-evil/evil-collection")
8397 (commit commit)))
8398 (file-name (git-file-name name version))
8399 (sha256
8400 (base32
8401 "1zizfqmfrxx3shgggwa74rg2qqbrs8704wf94ajx0k11dbm1dbrp"))))
8402 (build-system emacs-build-system)
8403 (propagated-inputs
8404 `(("emacs-evil" ,emacs-evil)
8405 ("emacs-annalist" ,emacs-annalist)))
8406 (arguments
8407 `(#:include (cons* "^modes\\/" %default-include)))
8408 (home-page "https://github.com/emacs-evil/evil-collection")
8409 (synopsis "Collection of Evil bindings for many major and minor modes")
8410 (description "This is a collection of Evil bindings for the parts of
8411 Emacs that Evil does not cover properly by default, such as @code{help-mode},
8412 @code{M-x calendar}, Eshell and more.")
8413 (license license:gpl3+))))
8414
8415 (define-public emacs-goto-chg
8416 (let ((commit "1829a13026c597e358f716d2c7793202458120b5")
8417 (version "1.7.3")
8418 (revision "1"))
8419 (package
8420 (name "emacs-goto-chg")
8421 (version (git-version version revision commit))
8422 (source
8423 (origin
8424 (method git-fetch)
8425 (uri (git-reference
8426 (url "https://github.com/emacs-evil/goto-chg")
8427 (commit commit)))
8428 (file-name (git-file-name name version))
8429 (sha256
8430 (base32
8431 "1y603maw9xwdj3qiarmf1bp13461f9f5ackzicsbynl0i9la3qki"))))
8432 (build-system emacs-build-system)
8433 (propagated-inputs
8434 `(("emacs-undo-tree" ,emacs-undo-tree)))
8435 (home-page "https://github.com/emacs-evil/goto-chg")
8436 (synopsis "Go to the last change in the Emacs buffer")
8437 (description
8438 "This package provides @code{M-x goto-last-change} command that goes to
8439 the point of the most recent edit in the current Emacs buffer. When repeated,
8440 go to the second most recent edit, etc. Negative argument, @kbd{C-u -}, is
8441 used for reverse direction.")
8442 (license license:gpl2+))))
8443
8444 (define-public emacs-janpath-evil-numbers
8445 (let ((commit "d988041c1fe6e941dc8d591390750b237f71f524")
8446 (version "0.5")
8447 (revision "1"))
8448 (package
8449 (name "emacs-janpath-evil-numbers")
8450 (version (git-version version revision commit))
8451 (source
8452 (origin
8453 (method git-fetch)
8454 (uri (git-reference
8455 (url "https://github.com/janpath/evil-numbers")
8456 (commit commit)))
8457 (file-name (git-file-name name version))
8458 (sha256
8459 (base32
8460 "16zixhxxcb83m82f2cfiardfn99j3w41v6vh1qk6j9pplrlfw70v"))))
8461 (build-system emacs-build-system)
8462 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
8463 (home-page "https://github.com/janpath/evil-numbers")
8464 (synopsis "Increment and decrement numeric literals")
8465 (description
8466 "This package provides functionality to search for a number up to the
8467 end of a line and increment or decrement it.")
8468 (license license:gpl3+))))
8469
8470 (define-public emacs-evil-owl
8471 (let ((commit "24c5f43df375194386344e69bc720ea3986c9510")
8472 (revision "3"))
8473 (package
8474 (name "emacs-evil-owl")
8475 (version (git-version "0.0.1" revision commit))
8476 (source
8477 (origin
8478 (method git-fetch)
8479 (uri (git-reference
8480 (url "https://github.com/mamapanda/evil-owl")
8481 (commit commit)))
8482 (file-name (git-file-name name version))
8483 (sha256
8484 (base32
8485 "0bqzch14whlmrcasakah3psrzswvkzd7mmi8hx5s64kfp29wbdhi"))))
8486 (build-system emacs-build-system)
8487 (propagated-inputs
8488 `(("emacs-evil" ,emacs-evil)))
8489 (arguments
8490 `(#:tests? #t
8491 #:test-command '("make" "test")))
8492 (home-page "https://github.com/mamapanda/evil-owl")
8493 (synopsis "Preview candidates when using Evil registers and marks")
8494 (description
8495 "This package supplements Evil's register- and mark-based commands with
8496 a popup window for previewing candidates.")
8497 (license license:gpl3+))))
8498
8499 (define-public emacs-evil-args
8500 (let ((commit "758ad5ae54ad34202064fec192c88151c08cb387")
8501 (revision "1"))
8502 (package
8503 (name "emacs-evil-args")
8504 (version (git-version "1.0" revision commit))
8505 (source
8506 (origin
8507 (method git-fetch)
8508 (uri (git-reference
8509 (url "https://github.com/wcsmith/evil-args.git")
8510 (commit commit)))
8511 (file-name (git-file-name name version))
8512 (sha256
8513 (base32
8514 "0k35glgsirc3cph8v5hhjrqfh4ndwh8a28qbr03y3jl8s453xcj7"))))
8515 (build-system emacs-build-system)
8516 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
8517 (home-page "https://github.com/wcsmith/evil-args")
8518 (synopsis "Motions and text objects for delimited arguments in Evil")
8519 (description
8520 "This package provides motions and text objects for delimited
8521 arguments, such as arguments separated by commas and semicolons.")
8522 (license license:expat))))
8523
8524 (define-public emacs-evil-escape
8525 (package
8526 (name "emacs-evil-escape")
8527 (version "3.14")
8528 (source
8529 (origin
8530 (method git-fetch)
8531 (uri
8532 (git-reference
8533 (url "https://github.com/syl20bnr/evil-escape")
8534 (commit (string-append "v" version))))
8535 (file-name (git-file-name name version))
8536 (sha256
8537 (base32 "0s8lmmm25qabicwaj9jybpbd8mkc62yl7jnhk1lpablydjkv3w2i"))))
8538 (propagated-inputs
8539 `(("emacs-evil" ,emacs-evil)))
8540 (build-system emacs-build-system)
8541 (home-page "https://github.com/syl20bnr/evil-escape")
8542 (synopsis "Escape from insert state and everything else in Emacs")
8543 (description
8544 "Evil escape provides a customizable key sequence to escape from insert
8545 state and everything else in Emacs.")
8546 (license license:gpl3+)))
8547
8548 (define-public emacs-evil-exchange
8549 (let ((commit "47691537815150715e64e6f6ec79be7746c96120")
8550 (version "0.41")
8551 (revision "1"))
8552 (package
8553 (name "emacs-evil-exchange")
8554 (version (git-version version revision commit))
8555 (source
8556 (origin
8557 (method git-fetch)
8558 (uri (git-reference
8559 (url "https://github.com/Dewdrops/evil-exchange")
8560 (commit commit)))
8561 (file-name (git-file-name name version))
8562 (sha256
8563 (base32
8564 "0bjpn4yqig17ddym6wqq5fm1b294q74hzcbj9a6gs97fqiwf88xa"))))
8565 (build-system emacs-build-system)
8566 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
8567 (native-inputs `(("emacs-ert-runner" ,emacs-ert-runner)))
8568 (arguments
8569 `(#:phases
8570 (modify-phases %standard-phases
8571 (add-before 'check 'fix-makefile
8572 (lambda _
8573 (substitute* "Makefile"
8574 (("cask exec ") ""))
8575 #t)))
8576 #:tests? #t
8577 #:test-command '("make" "test")))
8578 (home-page "https://github.com/Dewdrops/evil-exchange")
8579 (synopsis "Exchange text easily within Evil")
8580 (description
8581 "This package, a port of @code{vim-exchange}, provides an Evil operator
8582 for exchanging text.")
8583 (license license:gpl3+))))
8584
8585 (define-public emacs-evil-replace-with-register
8586 (let ((commit "91cc7bf21a94703c441cc9212214075b226b7f67")
8587 (version "0.1")
8588 (revision "1"))
8589 (package
8590 (name "emacs-evil-replace-with-register")
8591 (version (git-version version revision commit))
8592 (source
8593 (origin
8594 (method git-fetch)
8595 (uri (git-reference
8596 (url "https://github.com/Dewdrops/evil-ReplaceWithRegister")
8597 (commit commit)))
8598 (file-name (git-file-name name version))
8599 (sha256
8600 (base32
8601 "14rpn76qrf287s3y2agmddcxi27r226i53ixjvd694ss039g0r11"))))
8602 (build-system emacs-build-system)
8603 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
8604 (home-page "https://github.com/Dewdrops/evil-ReplaceWithRegister")
8605 (synopsis "Quickly replace text with the contents of a register")
8606 (description
8607 "This package provides an Evil operator for replacing text with the
8608 contents of a register.")
8609 (license license:gpl3+))))
8610
8611 (define-public emacs-evil-indent-plus
8612 (let ((commit "0c7501e6efed661242c3a20e0a6c79a6455c2c40")
8613 (version "1.0.0")
8614 (revision "1"))
8615 (package
8616 (name "emacs-evil-indent-plus")
8617 (version (git-version version revision commit))
8618 (source
8619 (origin
8620 (method git-fetch)
8621 (uri (git-reference
8622 (url "https://github.com/TheBB/evil-indent-plus")
8623 (commit commit)))
8624 (file-name (git-file-name name version))
8625 (sha256
8626 (base32
8627 "1g6r1ydscwjvmhh1zg4q3nap4avk8lb9msdqrh7dff6pla0r2qs6"))))
8628 (build-system emacs-build-system)
8629 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
8630 (home-page "https://github.com/TheBB/evil-indent-plus")
8631 (synopsis "Text objects based on indentation")
8632 (description
8633 "This package adds new text objects for @code{evil-mode} based on
8634 blocks having the same or higher indentation, including or excluding
8635 surrounding lines.")
8636 (license license:gpl2+))))
8637
8638 (define-public emacs-evil-text-object-python
8639 (let ((commit "9a064fe6475429145cbcc3b270fcc963b67adb15")
8640 (version "1.0.1")
8641 (revision "1"))
8642 (package
8643 (name "emacs-evil-text-object-python")
8644 (version (git-version version revision commit))
8645 (source
8646 (origin
8647 (method git-fetch)
8648 (uri (git-reference
8649 (url "https://github.com/wbolster/evil-text-object-python")
8650 (commit commit)))
8651 (file-name (git-file-name name version))
8652 (sha256
8653 (base32
8654 "074zpm6mmr1wfl6d5xdf8jk1fs4ccpbzf4ahhkwga9g71xiplszv"))))
8655 (build-system emacs-build-system)
8656 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
8657 (home-page "https://github.com/wbolster/evil-text-object-python")
8658 (synopsis "Text objects for Python")
8659 (description
8660 "This package provides @code{evil-mode} text objects for Python.")
8661 (license license:gpl3+))))
8662
8663 (define-public emacs-evil-lion
8664 (let ((commit "6b03593f5dd6e7c9ca02207f9a73615cf94c93ab")
8665 (revision "1"))
8666 (package
8667 (name "emacs-evil-lion")
8668 (version (git-version "0.0.2" revision commit))
8669 (source
8670 (origin
8671 (method git-fetch)
8672 (uri (git-reference
8673 (url "https://github.com/edkolev/evil-lion")
8674 (commit commit)))
8675 (file-name (git-file-name name version))
8676 (sha256
8677 (base32
8678 "1a162hynp0jcsn50c1w5a02mrw9w3q05c7lkqzqd25px3d0p772q"))))
8679 (build-system emacs-build-system)
8680 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
8681 (arguments
8682 `(#:tests? #t
8683 #:test-command '("make" "test")))
8684 (home-page "https://github.com/edkolev/evil-lion")
8685 (synopsis "Align operator for @code{evil-mode}")
8686 (description
8687 "This package, a port of @code{vim-lion}, provides an operator for
8688 aligning text objects based on separators.")
8689 (license license:gpl3+))))
8690
8691 (define-public emacs-evil-expat
8692 (let ((commit "f4fcd0aa3edc359adb5c986b5dd9188d220d84e2")
8693 (revision "1"))
8694 (package
8695 (name "emacs-evil-expat")
8696 (version (git-version "0.0.1" revision commit))
8697 (source
8698 (origin
8699 (method git-fetch)
8700 (uri (git-reference
8701 (url "https://github.com/edkolev/evil-expat")
8702 (commit commit)))
8703 (file-name (git-file-name name version))
8704 (sha256
8705 (base32
8706 "0872ix682hkdz0k8pn6sb54rqkx00rz5fxpd5j2snx406yagpaxz"))))
8707 (build-system emacs-build-system)
8708 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
8709 (arguments
8710 `(#:tests? #t
8711 #:test-command '("make" "test")))
8712 (home-page "https://github.com/edkolev/evil-expat")
8713 (synopsis "Extra @code{ex} commands for @code{evil-mode}")
8714 (description
8715 "This package provides additional commands for the @code{ex} command
8716 line, including functions for version control with Git and for copying and
8717 pasting into and from @code{tmux} paste buffers.")
8718 (license license:gpl3+))))
8719
8720 (define-public emacs-evil-nerd-commenter
8721 (package
8722 (name "emacs-evil-nerd-commenter")
8723 (version "3.3.8")
8724 (source
8725 (origin
8726 (method git-fetch)
8727 (uri (git-reference
8728 (url "https://github.com/redguardtoo/evil-nerd-commenter")
8729 (commit version)))
8730 (file-name (git-file-name name version))
8731 (sha256
8732 (base32
8733 "0qd5a89mzvdyhd8lm13iwp220vzpd6dajwx54frlc5bzsxdmg6vc"))))
8734 (build-system emacs-build-system)
8735 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
8736 (arguments
8737 `(#:tests? #t
8738 #:test-command '("make" "test")))
8739 (home-page "https://github.com/redguardtoo/evil-nerd-commenter")
8740 (synopsis "Comment and uncomment lines efficiently")
8741 (description
8742 "This package provides text objects and operators for comments within
8743 @code{evil-mode}.")
8744 (license license:gpl3+)))
8745
8746 (define-public emacs-evil-visual-replace
8747 (package
8748 (name "emacs-evil-visual-replace")
8749 (version "0.0.5")
8750 (source
8751 (origin
8752 (method git-fetch)
8753 (uri (git-reference
8754 (url "https://github.com/troyp/evil-visual-replace")
8755 (commit version)))
8756 (file-name (git-file-name name version))
8757 (sha256
8758 (base32
8759 "1gfyrq7xfzmzh3x8k5f08n027dlbwi0pkkxf9c39fkxp4jngibsz"))))
8760 (build-system emacs-build-system)
8761 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
8762 (home-page "https://github.com/troyp/evil-visual-replace")
8763 (synopsis "Replacement commands for @code{evil-mode} visual blocks")
8764 (description
8765 "This package provides versions of @code{query-replace} and
8766 @code{replace-regexp} that work for @code{evil-mode} visual blocks.")
8767 (license license:gpl2+)))
8768
8769 (define-public emacs-evil-visualstar
8770 (let ((commit "06c053d8f7381f91c53311b1234872ca96ced752")
8771 (version "0.0.2")
8772 (revision "1"))
8773 (package
8774 (name "emacs-evil-visualstar")
8775 (version (git-version version revision commit))
8776 (source
8777 (origin
8778 (method git-fetch)
8779 (uri (git-reference
8780 (url "https://github.com/bling/evil-visualstar")
8781 (commit commit)))
8782 (file-name (git-file-name name version))
8783 (sha256
8784 (base32
8785 "0mkbzw12fav945icibc2293m5haxqr3hzkyli2cf4ssk6yvn0x4c"))))
8786 (build-system emacs-build-system)
8787 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
8788 (home-page "https://github.com/bling/evil-visualstar")
8789 (synopsis "Instantly search using the visual selection")
8790 (description
8791 "This package provides @code{evil-mode} functions for using selected text
8792 to search.")
8793 (license license:gpl3+))))
8794
8795 (define-public emacs-monky
8796 (package
8797 (name "emacs-monky")
8798 (version "0.1")
8799 (source (origin
8800 (method git-fetch)
8801 (uri (git-reference
8802 (url "https://github.com/ananthakumaran/monky.git")
8803 (commit version)))
8804 (file-name (git-file-name name version))
8805 (sha256
8806 (base32
8807 "1fgn7al4zwz2k5wb5dy3byqg9lsrjk9fra341mxh5ma2pfwxjgps"))))
8808 (build-system emacs-build-system)
8809 (home-page "https://ananthakumaran.in/monky/index.html")
8810 (arguments
8811 `(#:tests? #t
8812 #:test-command '("emacs" "--batch"
8813 "-l" "test/monky-unit-test.el"
8814 "-f" "ert-run-tests-batch-and-exit")))
8815 (synopsis "Interactive interface for the Mercurial version control system")
8816 (description
8817 "Monky provides an Emacs interface for Mercurial (Hg). Using Monky, you
8818 can selectively commit files, view the diffs, and other things.")
8819 (license license:gpl3+)))
8820
8821 (define-public emacs-monroe
8822 (package
8823 (name "emacs-monroe")
8824 (version "0.3.1")
8825 (source
8826 (origin
8827 (method git-fetch)
8828 (uri (git-reference
8829 (url "https://github.com/sanel/monroe.git")
8830 (commit version)))
8831 (file-name (git-file-name name version))
8832 (sha256
8833 (base32 "101lfrykdbv37spkbw7zihhx26bc1lhjyxbanrcp9880bxj04jiy"))))
8834 (build-system emacs-build-system)
8835 (home-page "https://github.com/sanel/monroe")
8836 (synopsis "Clojure nREPL client for Emacs")
8837 (description
8838 "Monroe is a nREPL client for Emacs, focused on simplicity and easy
8839 distribution, primarily targeting Clojure users")
8840 (license license:gpl3+)))
8841
8842 (define-public emacs-orgalist
8843 (package
8844 (name "emacs-orgalist")
8845 (version "1.12")
8846 (source
8847 (origin
8848 (method url-fetch)
8849 (uri (string-append "https://elpa.gnu.org/packages/"
8850 "orgalist-" version ".el"))
8851 (sha256
8852 (base32 "1hwm7j0hbv2pg9w885ky1c9qga3grcfq8v216jv2ivkw8xzavysd"))))
8853 (build-system emacs-build-system)
8854 (home-page "https://elpa.gnu.org/packages/orgalist.html")
8855 (synopsis "Manage Org-like lists in non-Org buffers")
8856 (description "Orgalist writes and manages Org mode's plain lists in
8857 non-Org buffers. More specifically, it supports the syntax of Org mode for
8858 numbered, unnumbered, description items, checkboxes, and counter cookies.
8859
8860 The library also implements radio lists, i.e., lists written in Org syntax
8861 later translated into the host format, e.g., LaTeX or HTML.")
8862 (license license:gpl3+)))
8863
8864 (define-public emacs-writegood-mode
8865 (package
8866 (name "emacs-writegood-mode")
8867 (version "2.0.2")
8868 (home-page "https://github.com/bnbeckwith/writegood-mode")
8869 (source (origin
8870 (method git-fetch)
8871 (uri (git-reference
8872 (url home-page)
8873 (commit (string-append "v" version))))
8874 (sha256
8875 (base32
8876 "1nnjn1r669hvvzfycllwap4w04m8rfsk4nzcg8057m1f263kj31b"))
8877 (file-name (string-append name "-checkout"))))
8878 (build-system emacs-build-system)
8879 (synopsis "Polish up poor writing on the fly")
8880 (description
8881 "This minor mode tries to find and highlight problems with your writing
8882 in English as you type. It primarily detects \"weasel words\" and abuse of
8883 passive voice.")
8884 (license license:gpl3+)))
8885
8886 (define-public emacs-neotree
8887 (package
8888 (name "emacs-neotree")
8889 (version "0.5.2")
8890 (home-page "https://github.com/jaypei/emacs-neotree")
8891 (source (origin
8892 (method git-fetch)
8893 (uri (git-reference
8894 (url home-page)
8895 (commit version)))
8896 (sha256
8897 (base32
8898 "0hx72fq10772bbyqrj7mhhp02k26cccjxdadiqm1ykainhfmn1x0"))
8899 (file-name (git-file-name name version))))
8900 (build-system emacs-build-system)
8901 (synopsis "Folder tree view for Emacs")
8902 (description "This Emacs package provides a folder tree view.")
8903 (license license:gpl3+)))
8904
8905 (define-public emacs-org
8906 (package
8907 (name "emacs-org")
8908 ;; emacs-org-contrib inherits from this package. Please update it as
8909 ;; well.
8910 (version "9.3.6")
8911 (source
8912 (origin
8913 (method url-fetch)
8914 (uri (string-append "https://elpa.gnu.org/packages/org-" version ".tar"))
8915 (sha256
8916 (base32 "0jwpgfzjvf1hd3mx582pw86hysdryaqzp69hk6azi9kmq4bzk87d"))))
8917 (build-system emacs-build-system)
8918 (arguments
8919 `(#:phases
8920 (modify-phases %standard-phases
8921 (add-after 'install 'install-documentation
8922 (lambda* (#:key outputs #:allow-other-keys)
8923 (let* ((share (string-append (assoc-ref outputs "out") "/share"))
8924 (info-dir (string-append share "/info"))
8925 (doc-dir (string-append share "/doc/" ,name "-" ,version)))
8926 (install-file "org" info-dir)
8927 (install-file "orgcard.pdf" doc-dir))
8928 #t)))))
8929 (home-page "https://orgmode.org/")
8930 (synopsis "Outline-based notes management and organizer")
8931 (description "Org is an Emacs mode for keeping notes, maintaining TODO
8932 lists, and project planning with a fast and effective lightweight markup
8933 language. It also is an authoring system with unique support for literate
8934 programming and reproducible research.")
8935 (license license:gpl3+)))
8936
8937 (define-public emacs-org-contrib
8938 (package
8939 (inherit emacs-org)
8940 (name "emacs-org-contrib")
8941 (version "20200213")
8942 (source
8943 (origin
8944 (method url-fetch)
8945 (uri (string-append "https://orgmode.org/elpa/"
8946 "org-plus-contrib-" version ".tar"))
8947 (sha256
8948 (base32 "0g6rrrwplrifz4ip0jg638m4kvpvdg03hwnyghd813w0lm935mh5"))))
8949 (arguments
8950 `(#:modules ((guix build emacs-build-system)
8951 (guix build utils)
8952 (guix build emacs-utils)
8953 (ice-9 ftw)
8954 (srfi srfi-1))
8955 #:phases
8956 (modify-phases %standard-phases
8957 (add-after 'install 'delete-org-files
8958 (lambda* (#:key inputs outputs #:allow-other-keys)
8959 (let* ((out (assoc-ref outputs "out"))
8960 (org (assoc-ref inputs "org"))
8961 (contrib-files
8962 (map basename (find-files out)))
8963 (org+contrib-files
8964 (map basename (find-files org)))
8965 (duplicates (lset-intersection string=?
8966 contrib-files
8967 org+contrib-files)))
8968 (with-directory-excursion
8969 (string-append out "/share/emacs/site-lisp")
8970 (for-each delete-file duplicates))
8971 #t))))))
8972 (propagated-inputs
8973 `(("arduino-mode" ,emacs-arduino-mode)
8974 ("cider" ,emacs-cider)
8975 ("org" ,emacs-org)
8976 ("scel" ,emacs-scel)))
8977 (synopsis "Contributed packages to Org mode")
8978 (description "Org is an Emacs mode for keeping notes, maintaining TODO
8979 lists, and project planning with a fast and effective plain-text system.
8980
8981 This package is equivalent to org-plus-contrib, but only includes additional
8982 files that you would find in @file{contrib/} from the git repository.")))
8983
8984 (define-public emacs-flx
8985 (package
8986 (name "emacs-flx")
8987 (version "0.6.1")
8988 (source
8989 (origin
8990 (method git-fetch)
8991 (uri (git-reference
8992 (url "https://github.com/lewang/flx.git")
8993 (commit (string-append "v" version))))
8994 (sha256
8995 (base32
8996 "0sjybrcnb2sl33swy3q664vqrparajcl0m455gciiih2j87hwadc"))
8997 (file-name (git-file-name name version))))
8998 (build-system emacs-build-system)
8999 (home-page "https://github.com/lewang/flx")
9000 (synopsis "Fuzzy matching for Emacs")
9001 (description
9002 "Flx provides fuzzy matching for emacs a la sublime text.
9003 The sorting algorithm is a balance between word beginnings (abbreviation)
9004 and contiguous matches (substring). The longer the substring match,
9005 the higher it scores. This maps well to how we think about matching.
9006 Flx has support for ido (interactively do things) through flx-ido.")
9007 (license license:gpl3+)))
9008
9009 (define-public emacs-cyberpunk-theme
9010 (package
9011 (name "emacs-cyberpunk-theme")
9012 (version "1.22")
9013 (source
9014 (origin
9015 (method git-fetch)
9016 (uri (git-reference
9017 (url "https://github.com/n3mo/cyberpunk-theme.el/")
9018 (commit version)))
9019 (sha256
9020 (base32
9021 "06nff38pcy5rgz13svkajsg0jjk73qy4a8m7p9f76yxcywxlgxlc"))
9022 (file-name (git-file-name name version))))
9023 (build-system emacs-build-system)
9024 (home-page "https://github.com/n3mo/cyberpunk-theme.el")
9025 (synopsis "Cyberpunk theme for Emacs built-in color theme support")
9026 (description
9027 "Cyberpunk color theme for the Emacs 24+ built-in color theme support
9028 known loosely as deftheme. Many mode-specific customizations are included.")
9029 (license license:gpl3+)))
9030
9031 (define-public emacs-danneskjold-theme
9032 (let* ((commit "8733d2fe8743e8a01826ea6d4430ef376c727e57")
9033 (revision "1"))
9034 (package
9035 (name "emacs-danneskjold-theme")
9036 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
9037 (home-page "https://github.com/rails-to-cosmos/danneskjold-theme")
9038 (source
9039 (origin
9040 (method git-fetch)
9041 (uri (git-reference
9042 (url home-page)
9043 (commit commit)))
9044 (file-name (git-file-name name version))
9045 (sha256
9046 (base32
9047 "0s6rbsb0y8i8m5b9xm4gw1p1cxsxdqnqxqqb638pygz9f76mbir1"))))
9048 (build-system emacs-build-system)
9049 (arguments
9050 `(#:phases
9051 (modify-phases %standard-phases
9052 (add-after 'unpack 'delete-screenshots
9053 (lambda _
9054 (delete-file-recursively "screenshots") #t)))))
9055 (synopsis "High-contrast Emacs theme")
9056 (description
9057 "@code{danneskjold-theme} is a high-contrast theme for Emacs.")
9058 (license license:gpl3+))))
9059
9060 (define-public emacs-dream-theme
9061 (let* ((commit "107a11d74365046f28a1802a2bdb5e69e4a7488b")
9062 (revision "1"))
9063 (package
9064 (name "emacs-dream-theme")
9065 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
9066 (source
9067 (origin
9068 (method git-fetch)
9069 (uri (git-reference
9070 (url "https://github.com/djcb/dream-theme")
9071 (commit commit)))
9072 (file-name (git-file-name name version))
9073 (sha256
9074 (base32
9075 "0za18nfkq4xqm35k6006vsixcbmvmxqgma4iw5sw37h8vmcsdylk"))))
9076 (build-system emacs-build-system)
9077 (home-page "https://github.com/djcb/dream-theme")
9078 (synopsis "High-contrast Emacs theme")
9079 (description
9080 "@code{dream-theme} is a dark, clean theme for Emacs. It is inspired
9081 by zenburn, sinburn and similar themes, but slowly diverging from them.")
9082 (license license:gpl3+))))
9083
9084 (define-public emacs-dracula-theme
9085 (package
9086 (name "emacs-dracula-theme")
9087 (version "1.7.0")
9088 (source
9089 (origin
9090 (method git-fetch)
9091 (uri (git-reference
9092 (url "https://github.com/dracula/emacs")
9093 (commit (string-append "v" version))))
9094 (file-name (git-file-name name version))
9095 (sha256
9096 (base32 "15y2djc5jljlvls1x9kp50m1kp0dcksmyixafsyimj66xpq9ngh0"))))
9097 (build-system emacs-build-system)
9098 (home-page "https://draculatheme.com/")
9099 (synopsis "Dark theme for Emacs")
9100 (description
9101 "Dracula is a dark color theme for many editors, shells and more. This
9102 package provides the Emacs theme.")
9103 (license license:expat)))
9104
9105 (define-public emacs-auto-complete
9106 (package
9107 (name "emacs-auto-complete")
9108 (version "1.5.1")
9109 (source
9110 (origin
9111 (method git-fetch)
9112 (uri (git-reference
9113 (url "https://github.com/auto-complete/auto-complete.git")
9114 (commit (string-append "v" version))))
9115 (sha256
9116 (base32
9117 "04i9b11iksg6acn885wl3qgi5xpsm3yszlqmd2x21yhprndlz7gb"))
9118 (file-name (git-file-name name version))))
9119 (build-system emacs-build-system)
9120 (propagated-inputs
9121 `(("emacs-popup" ,emacs-popup)))
9122 (home-page "https://github.com/auto-complete/auto-complete")
9123 (synopsis "Intelligent auto-completion extension for Emacs")
9124 (description
9125 "Auto-Complete is an intelligent auto-completion extension for Emacs.
9126 It extends the standard Emacs completion interface and provides an environment
9127 that allows users to concentrate more on their own work. Its features are:
9128 a visual interface, reduce overhead of completion by using statistic method,
9129 extensibility.")
9130 (license license:gpl3+)))
9131
9132 (define-public emacs-nginx-mode
9133 (package
9134 (name "emacs-nginx-mode")
9135 (version "1.1.9")
9136 (source
9137 (origin
9138 (method git-fetch)
9139 (uri (git-reference
9140 (url "https://github.com/ajc/nginx-mode.git")
9141 (commit (string-append "v" version))))
9142 (file-name (git-file-name name version))
9143 (sha256
9144 (base32 "17dh5pr3gh6adrbqx588gimxbb2fr7iv2qrxv6r48w2727l344xs"))))
9145 (build-system emacs-build-system)
9146 (home-page "https://github.com/ajc/nginx-mode")
9147 (synopsis "Emacs major mode for editing nginx config files")
9148 (description "This package provides an Emacs major mode for
9149 editing nginx config files.")
9150 (license license:gpl2+)))
9151
9152 (define-public emacs-stream
9153 (let ((commit "a3f3da155a49c133e2692bd8789b35492bfdc4f7")
9154 (revision "1"))
9155 (package
9156 (name "emacs-stream")
9157 (version (git-version "2.2.4" revision commit))
9158 (source
9159 (origin
9160 (method git-fetch)
9161 (uri (git-reference
9162 (url "https://github.com/Emacsmirror/stream.git")
9163 (commit commit)))
9164 (file-name (git-file-name name version))
9165 (sha256
9166 (base32 "0aig0yjb9z752ijh0mzildjmh44j051inchga8qll01dr8wf7332"))))
9167 (build-system emacs-build-system)
9168 (arguments
9169 `(#:tests? #t
9170 #:test-command '("emacs" "--batch"
9171 "-l" "tests/stream-tests.el"
9172 "-f" "ert-run-tests-batch-and-exit")))
9173 (home-page "https://github.com/Emacsmirror/stream")
9174 (synopsis "Implementation of streams for Emacs")
9175 (description "This library provides an implementation of streams for Emacs.
9176 Streams are implemented as delayed evaluation of cons cells.")
9177 (license license:gpl3+))))
9178
9179 (define-public emacs-cl-print
9180 (let ((commit "1a70c553dfb04352afb5b8696fe0cef8acc8f991")
9181 (revision "1"))
9182 (package
9183 (name "emacs-cl-print")
9184 (version (git-version "1.0" revision commit))
9185 (source
9186 (origin
9187 (method git-fetch)
9188 (uri (git-reference
9189 (url "https://github.com/emacsmirror/cl-print.git")
9190 (commit commit)))
9191 (file-name (git-file-name name version))
9192 (sha256
9193 (base32 "164zbnsi5mssvcpy0158fm7fw5cmd1r5nkpn29fmd2b2scy3gm79"))))
9194 (build-system emacs-build-system)
9195 (home-page "https://github.com/emacsmirror/cl-print")
9196 (synopsis "CL-style generic printing")
9197 (description "This package provides a generic function,
9198 @code{cl-print-object}, to which the programmer can add any method they
9199 please.")
9200 (license license:gpl3+))))
9201
9202 (define-public emacs-el-search
9203 (let ((commit "07bed84dd8ae9e4c6c648834224b1d33fdbd51e0")
9204 (revision "2"))
9205 (package
9206 (name "emacs-el-search")
9207 (version (git-version "1.12.6.1" revision commit))
9208 (source
9209 (origin
9210 (method git-fetch)
9211 (uri (git-reference
9212 (url "https://github.com/emacsmirror/el-search.git")
9213 (commit commit)))
9214 (file-name (git-file-name name version))
9215 (sha256
9216 (base32 "10w1ldgijdhfsrazp0y3bm76jv5wvdn94k1yp0pmc2m1896b58ak"))))
9217 (build-system emacs-build-system)
9218 (inputs
9219 `(("emacs-stream" ,emacs-stream)
9220 ("emacs-cl-print" ,emacs-cl-print)))
9221 (home-page "https://github.com/emacsmirror/el-search")
9222 (synopsis "Expression based interactive search for emacs-lisp-mode")
9223 (description "This package provides expression based interactive search
9224 procedures for emacs-lisp-mode.")
9225 (license license:gpl3+))))
9226
9227 (define-public emacs-ht
9228 (package
9229 (name "emacs-ht")
9230 (version "2.2")
9231 (source
9232 (origin
9233 (method git-fetch)
9234 (uri (git-reference
9235 (url "https://github.com/Wilfred/ht.el.git")
9236 (commit version)))
9237 (file-name (git-file-name name version))
9238 (sha256
9239 (base32 "1p3qa7g0wa0wbviv2f8bda39cjys3naayk5xjm3nxxmqsyy8papx"))))
9240 (build-system emacs-build-system)
9241 (propagated-inputs `(("emacs-dash" ,emacs-dash)))
9242 (native-inputs
9243 `(("emacs-ert-runner" ,emacs-ert-runner)))
9244 (arguments
9245 `(#:tests? #t
9246 #:test-command '("ert-runner")))
9247 (home-page "https://github.com/Wilfred/ht.el")
9248 (synopsis "Hash table library for Emacs")
9249 (description
9250 "This package simplifies the use of hash tables in elisp. It also
9251 provides functions to convert hash tables from and to alists and plists.")
9252 (license license:gpl3+)))
9253
9254 (define-public emacs-log4e
9255 (package
9256 (name "emacs-log4e")
9257 (version "0.3.0")
9258 (source
9259 (origin
9260 (method git-fetch)
9261 (uri (git-reference
9262 (url "https://github.com/aki2o/log4e.git")
9263 (commit (string-append "v" version))))
9264 (file-name (git-file-name name version))
9265 (sha256
9266 (base32 "1l28n7a0v2zkknc70i1wn6qb5i21dkhfizzk8wcj28v44cgzk022"))))
9267 (build-system emacs-build-system)
9268 (arguments
9269 `(#:phases
9270 (modify-phases %standard-phases
9271 (add-after 'unpack 'remove-tests
9272 ;; Guile builder complains about null characters in some
9273 ;; strings of test files. Remove "test" directory (it is not
9274 ;; needed anyway).
9275 (lambda _
9276 (delete-file-recursively "test"))))))
9277 (home-page "https://github.com/aki2o/log4e")
9278 (synopsis "Logging framework for elisp")
9279 (description
9280 "This package provides a logging framework for elisp. It allows
9281 you to deal with multiple log levels.")
9282 (license license:gpl3+)))
9283
9284 (define-public emacs-gntp
9285 (package
9286 (name "emacs-gntp")
9287 (version "0.1")
9288 (source
9289 (origin
9290 (method git-fetch)
9291 (uri (git-reference
9292 (url "https://github.com/tekai/gntp.el.git")
9293 (commit (string-append "v" version))))
9294 (file-name (git-file-name name version))
9295 (sha256
9296 (base32 "1nvyjjjydrimpxy4cpg90si7sr8lmldbhlcm2mx8npklp9pn5y3a"))))
9297 (build-system emacs-build-system)
9298 (home-page "https://github.com/tekai/gntp.el")
9299 (synopsis "Growl Notification Protocol for Emacs")
9300 (description
9301 "This package implements the Growl Notification Protocol GNTP
9302 described at @uref{http://www.growlforwindows.com/gfw/help/gntp.aspx}.
9303 It is incomplete as it only lets you send but not receive
9304 notifications.")
9305 (license license:bsd-3)))
9306
9307 (define-public emacs-alert
9308 (package
9309 (name "emacs-alert")
9310 (version "1.3")
9311 (source
9312 (origin
9313 (method git-fetch)
9314 (uri (git-reference
9315 (url "https://github.com/jwiegley/alert.git")
9316 (commit (string-append "v" version))))
9317 (file-name (git-file-name name version))
9318 (sha256
9319 (base32 "0lc0p5cl4hfrzw1z2ghb11k1lvljn5m08jw5fmgwgxv667kwh49r"))))
9320 (build-system emacs-build-system)
9321 (propagated-inputs
9322 `(("emacs-gntp" ,emacs-gntp)
9323 ("emacs-log4e" ,emacs-log4e)))
9324 (home-page "https://github.com/jwiegley/alert")
9325 (synopsis "Growl-style notification system for Emacs")
9326 (description
9327 "Alert is a Growl-workalike for Emacs which uses a common notification
9328 interface and multiple, selectable \"styles\", whose use is fully
9329 customizable by the user.")
9330 (license license:gpl2+)))
9331
9332 (define-public emacs-zones
9333 (let ((commit "3169815c323966ff8e252b44e3558d6d045243fe")
9334 (revision "2"))
9335 (package
9336 (name "emacs-zones")
9337 (version (git-version "0" revision commit))
9338 (source
9339 (origin
9340 (method git-fetch)
9341 (uri (git-reference
9342 (url "https://github.com/emacsmirror/zones.git")
9343 (commit commit)))
9344 (file-name (git-file-name name version))
9345 (sha256
9346 (base32
9347 "039msns5596rz0my7fxpanpxwg1lkhpiibm9ppnlzaajx1hszbzl"))
9348 (patches
9349 (search-patches
9350 "emacs-zones-called-interactively.patch"))))
9351 (build-system emacs-build-system)
9352 (home-page "https://www.emacswiki.org/emacs/Zones")
9353 (synopsis "Define and act on multiple zones of buffer text")
9354 (description "Library @file{zones.el} lets you easily define and
9355 subsequently act on multiple zones of buffer text. You can think of this as
9356 enlarging the notion of region. In effect, it can remove the requirement of
9357 target text being a contiguous sequence of characters. A set of buffer zones
9358 is, in effect, a (typically) noncontiguous set of text.")
9359 (license license:gpl3+))))
9360
9361 (define-public emacs-mu4e-alert
9362 (package
9363 (name "emacs-mu4e-alert")
9364 (version "1.0")
9365 (source
9366 (origin
9367 (method git-fetch)
9368 (uri (git-reference
9369 (url "https://github.com/iqbalansari/mu4e-alert.git")
9370 (commit (string-append "v" version))))
9371 (file-name (git-file-name name version))
9372 (sha256
9373 (base32 "1nvsfbfsma59ilf7c3vjngnmx3aapwvvvaafdy5szm5r6lkicqvg"))))
9374 (build-system emacs-build-system)
9375 (propagated-inputs
9376 `(("emacs-alert" ,emacs-alert)
9377 ("emacs-s" ,emacs-s)
9378 ("emacs-ht" ,emacs-ht)
9379 ("mu" ,mu)))
9380 (home-page "https://github.com/iqbalansari/mu4e-alert")
9381 (synopsis "Desktop notification for mu4e")
9382 (description
9383 "This package provides desktop notifications for mu4e.
9384 Additionally it can display the number of unread emails in the
9385 mode-line.")
9386 (license license:gpl3+)))
9387
9388 (define-public emacs-mu4e-jump-to-list
9389 (let ((commit "358bba003543b49ffa266e503e54aebd0ebe614b")
9390 (revision "1"))
9391 (package
9392 (name "emacs-mu4e-jump-to-list")
9393 (version (git-version "1.0" revision commit))
9394 (source
9395 (origin
9396 (method git-fetch)
9397 (uri (git-reference
9398 (url "https://gitlab.com/wavexx/mu4e-jump-to-list.el.git")
9399 (commit commit)))
9400 (file-name (git-file-name name version))
9401 (sha256
9402 (base32
9403 "00y9nap61q1z2cdql4k9g7fgi2gdgd9iy5s5lzrd9a4agbx6r7sv"))))
9404 (build-system emacs-build-system)
9405 (propagated-inputs
9406 `(("mu" ,mu)))
9407 (home-page "https://gitlab.com/wavexx/mu4e-jump-to-list.el")
9408 (synopsis "Select and view mailing lists in mu4e")
9409 (description
9410 "@code{mu4e-jump-to-list} allows you to select and view mailing lists
9411 automatically using existing List-ID headers in your mu database. Just press
9412 \"l\" in the headers view and any mailing list you've subscribed to will be
9413 automatically discovered and presented in recency order.")
9414 (license license:gpl3+))))
9415
9416 (define-public emacs-mu4e-patch
9417 (let ((commit "522da46c1653b1cacc79cde91d6534da7ae9517d")
9418 (revision "1"))
9419 (package
9420 (name "emacs-mu4e-patch")
9421 (version (git-version "0.1.0" revision commit))
9422 (source (origin
9423 (method git-fetch)
9424 (uri (git-reference
9425 (url "https://github.com/seanfarley/mu4e-patch")
9426 (commit commit)))
9427 (file-name (git-file-name name version))
9428 (sha256
9429 (base32
9430 "10lzf3b70pk6rzdrgx0ww0gc94v0ydh9zj1gbsa20xw27ds7hmfn"))))
9431 (build-system emacs-build-system)
9432 (propagated-inputs
9433 `(("mu" ,mu)))
9434 (home-page "https://github.com/seanfarley/mu4e-patch")
9435 (synopsis "Colorize patch-like emails in mu4e")
9436 (description
9437 "Extension for mu4e to colorize patch-like emails with diff-mode.
9438 This is based on Frank Terbeck's @code{gnus-article-treat-patch.el} but has
9439 been adapted to work with mu4e.")
9440 (license license:gpl3+))))
9441
9442 (define-public emacs-pretty-mode
9443 (package
9444 (name "emacs-pretty-mode")
9445 (version "2.0.3")
9446 (source
9447 (origin
9448 (method git-fetch)
9449 (uri (git-reference
9450 (url "https://github.com/akatov/pretty-mode/")
9451 (commit version)))
9452 (file-name (git-file-name name version))
9453 (sha256
9454 (base32
9455 "013fig9i4fyx16krp2vfv953p3rwdzr38zs6i50af4pqz4vrcfvh"))))
9456 (build-system emacs-build-system)
9457 (home-page "https://github.com/akatov/pretty-mode")
9458 (synopsis "Redisplay parts of the buffer as Unicode symbols")
9459 (description
9460 "Emacs minor mode for redisplaying parts of the buffer as pretty symbols.")
9461 (license license:gpl3+)))
9462
9463 (define-public emacs-yasnippet
9464 (package
9465 (name "emacs-yasnippet")
9466 (version "0.14.0")
9467 (source
9468 (origin
9469 (method git-fetch)
9470 (uri (git-reference
9471 (url "https://github.com/joaotavora/yasnippet.git")
9472 (commit version)))
9473 (file-name (string-append name "-" version ".tar.gz"))
9474 (sha256
9475 (base32 "0via9dzw8m5lzymg1h78xkwjssh39zr3g6ccyamlf1rjzjsyxknv"))
9476 (modules '((guix build utils)))
9477 (snippet
9478 '(begin
9479 ;; YASnippet expects a "snippets" subdirectory in the same
9480 ;; directory as yasnippet.el, but we don't install it because it's
9481 ;; a git submodule pointing to an external repository. Adjust
9482 ;; `yas-snippet-dirs' to prevent warnings about a missing
9483 ;; directory.
9484 (substitute* "yasnippet.el"
9485 (("^ +'yas-installed-snippets-dir\\)\\)\n")
9486 "))\n"))
9487 #t))))
9488 (build-system emacs-build-system)
9489 (arguments
9490 `(#:tests? #t
9491 #:test-command '("emacs" "--batch"
9492 "-l" "yasnippet-tests.el"
9493 "-f" "ert-run-tests-batch-and-exit")
9494 ;; FIXME: one failing test.
9495 #:phases
9496 (modify-phases %standard-phases
9497 (add-before 'check 'make-tests-writable
9498 (lambda _
9499 (make-file-writable "yasnippet-tests.el")
9500 #t))
9501 (add-before 'check 'delete-rebinding-test
9502 (lambda _
9503 (emacs-batch-edit-file "yasnippet-tests.el"
9504 `(progn (goto-char (point-min))
9505 (re-search-forward "ert-deftest test-rebindings")
9506 (beginning-of-line)
9507 (kill-sexp)
9508 (basic-save-buffer)))
9509 #t)))))
9510 (home-page "https://github.com/joaotavora/yasnippet")
9511 (synopsis "Yet another snippet extension for Emacs")
9512 (description
9513 "YASnippet is a template system for Emacs. It allows you to type an
9514 abbreviation and automatically expand it into function templates.")
9515 (license license:gpl3+)))
9516
9517 (define-public emacs-yasnippet-snippets
9518 (package
9519 (name "emacs-yasnippet-snippets")
9520 (version "0.20")
9521 (source
9522 (origin
9523 (method git-fetch)
9524 (uri (git-reference
9525 (url "https://github.com/AndreaCrotti/yasnippet-snippets")
9526 (commit version)))
9527 (file-name (git-file-name name version))
9528 (sha256
9529 (base32 "095w7cdmfwmmr6426mbq15n0a5izgbmv9408m9yh1pqz5x3v3vsx"))))
9530 (build-system trivial-build-system)
9531 (arguments
9532 `(#:modules ((guix build utils))
9533 #:builder
9534 (begin
9535 (use-modules (guix build utils))
9536 (let* ((source (assoc-ref %build-inputs "source"))
9537 (out (assoc-ref %outputs "out"))
9538 (snippet-dir
9539 (string-append out "/share/emacs/yasnippet-snippets/")))
9540 (with-directory-excursion source
9541 (mkdir-p snippet-dir)
9542 (copy-recursively "snippets" snippet-dir)))
9543 #t)))
9544 (home-page "https://github.com/AndreaCrotti/yasnippet-snippets")
9545 (synopsis "Collection of YASnippet snippets for many languages")
9546 (description
9547 "Provides Andrea Crotti's collection of YASnippet snippets. After installation,
9548 the snippets will be in \"~/.guix-profile/share/emacs/yasnippet-snippets/\".
9549 To make YASnippet aware of these snippets, add the above directory to
9550 @code{yas-snippet-dirs}.")
9551 (license license:gpl3+)))
9552
9553 (define-public emacs-helm-c-yasnippet
9554 (let ((commit "65ca732b510bfc31636708aebcfe4d2d845b59b0")
9555 (revision "1"))
9556 (package
9557 (name "emacs-helm-c-yasnippet")
9558 (version (string-append "0.6.7" "-" revision "."
9559 (string-take commit 7)))
9560 (source (origin
9561 (method git-fetch)
9562 (uri (git-reference
9563 (url "https://github.com/emacs-jp/helm-c-yasnippet")
9564 (commit commit)))
9565 (file-name (git-file-name name version))
9566 (sha256
9567 (base32
9568 "1cbafjqlzxbg19xfdqsinsh7afq58gkf44rsg1qxfgm8g6zhr7f8"))))
9569 (build-system emacs-build-system)
9570 (propagated-inputs
9571 `(("emacs-helm" ,emacs-helm)
9572 ("emacs-yasnippet" ,emacs-yasnippet)))
9573 (home-page "https://github.com/emacs-jp/helm-c-yasnippet")
9574 (synopsis "Helm integration for Yasnippet")
9575 (description "This Emacs library provides Helm interface for
9576 Yasnippet.")
9577 (license license:gpl2+))))
9578
9579 (define-public emacs-helm-system-packages
9580 ;; There won't be a new release after 1.10.1 until
9581 ;; https://github.com/emacs-helm/helm-system-packages/issues/25 is fixed,
9582 ;; and latest commits fix import issues with Guix.
9583 (let ((commit "6572340f41611ef1991e9612d34d59130957ee4a"))
9584 (package
9585 (name "emacs-helm-system-packages")
9586 (version (git-version "1.10.1" "1" commit))
9587 (source (origin
9588 (method git-fetch)
9589 (uri (git-reference
9590 (url "https://github.com/emacs-helm/helm-system-packages")
9591 (commit commit)))
9592 (file-name (git-file-name name version))
9593 (sha256
9594 (base32
9595 "0mcz6vkpk12vsyd37xv1rbg4v442sxc3lj8yxskqg294xbdaclz4"))))
9596 (build-system emacs-build-system)
9597 (inputs
9598 `(("recutils" ,recutils)))
9599 (propagated-inputs
9600 `(("emacs-helm" ,emacs-helm)))
9601 (arguments
9602 `(#:phases
9603 (modify-phases %standard-phases
9604 (add-after 'unpack 'configure
9605 (lambda* (#:key inputs outputs #:allow-other-keys)
9606 (let ((recutils (assoc-ref inputs "recutils")))
9607 ;; Specify the absolute file names of the various
9608 ;; programs so that everything works out-of-the-box.
9609 (substitute* "helm-system-packages-guix.el"
9610 (("recsel") (string-append recutils "/bin/recsel")))))))))
9611 (home-page "https://github.com/emacs-helm/helm-system-packages")
9612 (synopsis "Helm System Packages is an interface to your package manager")
9613 (description "List all available packages in Helm (with installed
9614 packages displayed in their own respective face). Fuzzy-search, mark and
9615 execute the desired action over any selections of packages: Install,
9616 uninstall, display packages details (in Org Mode) or insert details at point,
9617 find files owned by packages... And much more, including performing all the
9618 above over the network.")
9619 (license license:gpl3+))))
9620
9621 (define-public emacs-helm-org-rifle
9622 (package
9623 (name "emacs-helm-org-rifle")
9624 (version "1.7.0")
9625 (source
9626 (origin
9627 (method git-fetch)
9628 (uri (git-reference
9629 (url "https://github.com/alphapapa/helm-org-rifle")
9630 (commit version)))
9631 (file-name (git-file-name name version))
9632 (sha256
9633 (base32
9634 "058zvh7cdall7dl3xay9ibcjvs13fbqp8fli3lz980pinmsds3r2"))))
9635 (build-system emacs-build-system)
9636 (propagated-inputs
9637 `(("emacs-dash" ,emacs-dash)
9638 ("emacs-f" ,emacs-f)
9639 ("emacs-helm" ,emacs-helm)
9640 ("emacs-org" ,emacs-org)
9641 ("emacs-s" ,emacs-s)))
9642 (home-page "https://github.com/alphapapa/helm-org-rifle")
9643 (synopsis "Rifle through Org files")
9644 (description "This package searches both headings and contents of entries
9645 in Org buffers and displays matching entries.")
9646 (license license:gpl3+)))
9647
9648 (define-public emacs-dired-git-info
9649 ;; Upstream has no proper release. The base version is extracted from the
9650 ;; "Version" keyword in the main file.
9651 (let ((commit "91d57e3a4c5104c66a3abc18e281ee55e8979176")
9652 (revision "0"))
9653 (package
9654 (name "emacs-dired-git-info")
9655 (version (git-version "0.3.1" revision commit))
9656 (source
9657 (origin
9658 (method git-fetch)
9659 (uri
9660 (git-reference
9661 (url "https://github.com/clemera/dired-git-info")
9662 (commit commit)))
9663 (file-name (git-file-name name version))
9664 (sha256
9665 (base32 "1dr4iv95s4barxxj56znqkl9z0lg5jw731jmjr01s6vn8ar69gik"))))
9666 (build-system emacs-build-system)
9667 (home-page "https://github.com/clemera/dired-git-info/")
9668 (synopsis "Show git info in Emacs Dired")
9669 (description "This Emacs package provides a minor mode which shows git
9670 information inside the Dired buffer.")
9671 (license license:gpl3+))))
9672
9673 (define-public emacs-dired-toggle-sudo
9674 (let ((commit "13bbe52c54893f5aa3e56228450ffdd0c9e1d169")
9675 (revision "0"))
9676 (package
9677 (name "emacs-dired-toggle-sudo")
9678 (version (git-version "1.0" revision commit))
9679 (source
9680 (origin
9681 (method git-fetch)
9682 (uri (git-reference
9683 (url "https://github.com/renard/dired-toggle-sudo")
9684 (commit commit)))
9685 (file-name (git-file-name name version))
9686 (sha256
9687 (base32
9688 "1fw1pb1z6krqd1pfxxhr6rrfr9ckkcb0zsjzbjk0i2i1q5cg6car"))))
9689 (build-system emacs-build-system)
9690 (home-page "https://github.com/renard/dired-toggle-sudo")
9691 (synopsis "Browse directory with @code{sudo} privileges")
9692 (description "This package allows for the use of @code{dired} with
9693 @code{sudo} privileges.")
9694 (license license:wtfpl2))))
9695
9696 (define-public emacs-diredfl
9697 (package
9698 (name "emacs-diredfl")
9699 (version "0.4")
9700 (source
9701 (origin
9702 (method git-fetch)
9703 (uri
9704 (git-reference
9705 (url "https://github.com/purcell/diredfl")
9706 (commit version)))
9707 (file-name (git-file-name name version))
9708 (sha256
9709 (base32 "1zb2lz7rp58zqvpniqcsmqabi7nqg2d8bfd0hgmq68bn2hd25b5z"))))
9710 (build-system emacs-build-system)
9711 (home-page "https://github.com/purcell/diredfl/")
9712 (synopsis "Extra Emacs font lock rules for a more colourful Dired")
9713 (description "This library enables additional font locking in Dired mode.
9714 This is adapted from the extra font lock rules provided by Drew Adams' Dired+
9715 package.")
9716 (license license:gpl3+)))
9717
9718 (define-public emacs-memoize
9719 (package
9720 (name "emacs-memoize")
9721 (version "1.1")
9722 (source
9723 (origin
9724 (method git-fetch)
9725 (uri (git-reference
9726 (url "https://github.com/skeeto/emacs-memoize.git")
9727 (commit version)))
9728 (file-name (git-file-name name version))
9729 (sha256
9730 (base32 "04qgnlg4x6va7x364dhj1wbjmz8p5iq2vk36mn9198k2vxmijwzk"))))
9731 (build-system emacs-build-system)
9732 (arguments
9733 `(#:tests? #t
9734 #:test-command '("emacs" "--batch"
9735 "-l" "memoize-test.el"
9736 "-f" "ert-run-tests-batch-and-exit")))
9737 (home-page "https://github.com/skeeto/emacs-memoize")
9738 (synopsis "Emacs lisp memoization library")
9739 (description "@code{emacs-memoize} is an Emacs library for
9740 memoizing functions.")
9741 (license license:unlicense)))
9742
9743 (define-public emacs-linum-relative
9744 (package
9745 (name "emacs-linum-relative")
9746 (version "0.6")
9747 (source
9748 (origin
9749 (method git-fetch)
9750 (uri (git-reference
9751 (url "https://github.com/coldnew/linum-relative.git")
9752 (commit version)))
9753 (file-name (git-file-name name version))
9754 (sha256
9755 (base32 "0b3n1gk2w1p72x0zfdz9l70winq2fnjpjrgq0awxx730xk7ypp5n"))))
9756 (build-system emacs-build-system)
9757 (home-page "https://github.com/coldnew/linum-relative")
9758 (synopsis "Relative line numbering for Emacs")
9759 (description "@code{emacs-linum-relative} displays the relative line
9760 number on the left margin in Emacs.")
9761 (license license:gpl2+)))
9762
9763 (define-public emacs-idle-highlight
9764 (package
9765 (name "emacs-idle-highlight")
9766 (version "1.1.3")
9767 (source
9768 (origin
9769 (method git-fetch)
9770 (uri (git-reference
9771 (url "https://github.com/nonsequitur/idle-highlight-mode.git")
9772 (commit version)))
9773 (file-name (git-file-name name version))
9774 (sha256
9775 (base32 "0x4w1ksrw7dicl84zpf4d4scg672dyan9g95jkn6zvri0lr8xciv"))))
9776 (build-system emacs-build-system)
9777 (home-page "https://www.emacswiki.org/emacs/IdleHighlight")
9778 (synopsis "Highlights all occurrences of the word the point is on")
9779 (description
9780 "This Emacs package provides @code{idle-highlight-mode} that sets
9781 an idle timer to highlight all occurrences in the buffer of the word under
9782 the point.")
9783 (license license:gpl3+)))
9784
9785 (define-public emacs-ox-twbs
9786 (package
9787 (name "emacs-ox-twbs")
9788 (version "1.1.1")
9789 (source
9790 (origin
9791 (method git-fetch)
9792 (uri (git-reference
9793 (url "https://github.com/marsmining/ox-twbs.git")
9794 (commit (string-append "v" version))))
9795 (file-name (git-file-name name version))
9796 (sha256
9797 (base32 "0kd45p8y7ykadmai4jn1x1pgpafyqggwb1ccbjzalxw4k9wmd45f"))))
9798 (build-system emacs-build-system)
9799 (home-page "https://github.com/marsmining/ox-twbs")
9800 (synopsis "Export org-mode docs as HTML compatible with Twitter Bootstrap")
9801 (description
9802 "This Emacs package outputs your org-mode docs with a simple, clean and
9803 modern look. It implements a new HTML back-end for exporting org-mode docs as
9804 HTML compatible with Twitter Bootstrap. By default, HTML is exported with
9805 jQuery and Bootstrap resources included via osscdn.")
9806 (license license:gpl3+)))
9807
9808 (define-public emacs-highlight-sexp
9809 (package
9810 (name "emacs-highlight-sexp")
9811 (version "1.0")
9812 (source
9813 (origin
9814 (method git-fetch)
9815 (uri (git-reference
9816 (url "https://github.com/daimrod/highlight-sexp.git")
9817 (commit (string-append "v" version))))
9818 (file-name (git-file-name name version))
9819 (sha256
9820 (base32 "12cyk2q5g6p4ac2hykw1cag7dp1prjjnck5f7nalwwaklmy62y79"))))
9821 (build-system emacs-build-system)
9822 (home-page "https://github.com/daimrod/highlight-sexp")
9823 (synopsis "Minor mode that highlights the s-exp at the current position")
9824 (description
9825 "This Emacs package highlights the s-exp at the current position.")
9826 (license license:gpl3+)))
9827
9828 (define-public emacs-highlight-stages
9829 (let ((commit "29cbc5b78261916da042ddb107420083da49b271")
9830 (revision "1"))
9831 (package
9832 (name "emacs-highlight-stages")
9833 (version (string-append "1.1.0" "-" revision "." (string-take commit 7)))
9834 (source
9835 (origin
9836 (method git-fetch)
9837 (uri (git-reference
9838 (url "https://github.com/zk-phi/highlight-stages.git")
9839 (commit commit)))
9840 (file-name (git-file-name name version))
9841 (sha256
9842 (base32
9843 "0r6nbcrr0dqpgm8dir8ahzjy7rw4nrac48byamzrq96r7ajlxlv0"))
9844 (patches
9845 (search-patches "emacs-highlight-stages-add-gexp.patch"))))
9846 (build-system emacs-build-system)
9847 (home-page "https://github.com/wigust/highlight-stages")
9848 (synopsis "Minor mode that highlights (quasi-quoted) expressions")
9849 (description "@code{highlight-stages} provides an Emacs minor mode that
9850 highlights quasi-quoted expressions.")
9851 (license license:gpl3+))))
9852
9853 (define-public emacspeak
9854 (package
9855 (name "emacspeak")
9856 (version "52.0")
9857 (source
9858 (origin
9859 (method url-fetch)
9860 (uri (string-append
9861 "https://github.com/tvraman/emacspeak/releases/download/"
9862 version "/emacspeak-" version ".tar.bz2"))
9863 (sha256
9864 (base32 "0x5b0s38r5ih2lk7f5hasi9arrgxlmmq5jaddadbxi8in2gw2jzl"))))
9865 (build-system gnu-build-system)
9866 (arguments
9867 '(#:make-flags (list (string-append "prefix="
9868 (assoc-ref %outputs "out")))
9869 #:phases
9870 (modify-phases %standard-phases
9871 (add-after 'unpack 'delete-broken-symlink
9872 (lambda _
9873 (delete-file "lisp/sudoku.el")
9874 #t))
9875 (replace 'configure
9876 (lambda _
9877 (setenv "SHELL" (which "sh"))
9878 ;; Configure Emacspeak according to etc/install.org.
9879 (invoke "make" "config")))
9880 (add-after 'build 'build-espeak
9881 (lambda _
9882 (invoke "make" "espeak")))
9883 (replace 'install
9884 (lambda* (#:key inputs outputs #:allow-other-keys)
9885 (let* ((out (assoc-ref outputs "out"))
9886 (bin (string-append out "/bin"))
9887 (lisp (string-append out "/share/emacs/site-lisp/emacspeak"))
9888 (info (string-append out "/share/info"))
9889 (emacs (string-append (assoc-ref inputs "emacs")
9890 "/bin/emacs")))
9891 ;; According to etc/install.org, the Emacspeak directory should
9892 ;; be copied to its installation destination.
9893 (for-each
9894 (lambda (file)
9895 (copy-recursively file (string-append lisp "/" file)))
9896 '("etc" "info" "js" "lisp" "media" "servers" "sounds"
9897 "stumpwm" "xsl"))
9898 ;; Make sure emacspeak is loaded from the correct directory.
9899 (substitute* "run"
9900 (("\\./lisp/emacspeak-setup.el")
9901 (string-append lisp "/lisp/emacspeak-setup.el")))
9902 ;; Install the convenient startup script.
9903 (mkdir-p bin)
9904 (copy-file "run" (string-append bin "/emacspeak")))
9905 #t))
9906 (add-after 'install 'wrap-program
9907 (lambda* (#:key inputs outputs #:allow-other-keys)
9908 (let* ((out (assoc-ref outputs "out"))
9909 (emacspeak (string-append out "/bin/emacspeak"))
9910 (espeak (string-append (assoc-ref inputs "espeak")
9911 "/bin/espeak")))
9912 ;; The environment variable DTK_PROGRAM tells emacspeak what
9913 ;; program to use for speech.
9914 (wrap-program emacspeak
9915 `("DTK_PROGRAM" ":" prefix (,espeak)))
9916 #t))))
9917 #:tests? #f)) ; no check target
9918 (inputs
9919 `(("emacs" ,emacs)
9920 ("espeak" ,espeak-ng)
9921 ("perl" ,perl)
9922 ("tcl" ,tcl)
9923 ("tclx" ,tclx)))
9924 (home-page "http://emacspeak.sourceforge.net")
9925 (synopsis "Audio desktop interface for Emacs")
9926 (description
9927 "Emacspeak is a speech interface that allows visually impaired users to
9928 interact independently and efficiently with the computer. Audio
9929 formatting---a technique pioneered by AsTeR---and full support for W3C's Aural
9930 CSS (ACSS) allows Emacspeak to produce rich aural presentations of electronic
9931 information. By seamlessly blending all aspects of the Internet such as
9932 Web-surfing and messaging, Emacspeak speech-enables local and remote
9933 information via a consistent and well-integrated user interface.")
9934 (license license:gpl2+)))
9935
9936 (define-public emacs-adaptive-wrap
9937 (package
9938 (name "emacs-adaptive-wrap")
9939 (version "0.7")
9940 (source
9941 (origin
9942 (method url-fetch)
9943 (uri (string-append "https://elpa.gnu.org/packages/"
9944 "adaptive-wrap-" version ".el"))
9945 (sha256
9946 (base32 "10fb8gzvkbnrgzv28n1rczs03dvapr7rvi0kd73j6yf1zg2iz6qp"))))
9947 (build-system emacs-build-system)
9948 (home-page "https://elpa.gnu.org/packages/adaptive-wrap.html")
9949 (synopsis "Smart line-wrapping with wrap-prefix")
9950 (description
9951 "This Emacs package provides the @code{adaptive-wrap-prefix-mode}
9952 minor mode which sets the wrap-prefix property on the fly so that
9953 single-long-line paragraphs get word-wrapped in a way similar to what
9954 you'd get with @kbd{M-q} using @code{adaptive-fill-mode}, but without
9955 actually changing the buffer's text.")
9956 (license license:gpl3+)))
9957
9958 (define-public emacs-diff-hl
9959 (package
9960 (name "emacs-diff-hl")
9961 (version "1.8.7")
9962 (source
9963 (origin
9964 (method git-fetch)
9965 (uri (git-reference
9966 (url "https://github.com/dgutov/diff-hl")
9967 (commit version)))
9968 (file-name (git-file-name name version))
9969 (sha256
9970 (base32 "0i7x6qgr3nydcwhw72sbc8z9x9dfhgkf0dqj9nakvx36vn1bblbq"))))
9971 (build-system emacs-build-system)
9972 (home-page "https://github.com/dgutov/diff-hl")
9973 (synopsis
9974 "Highlight uncommitted changes using VC")
9975 (description
9976 "@code{diff-hl-mode} highlights uncommitted changes on the side of the
9977 window (using the fringe, by default), allows you to jump between
9978 the hunks and revert them selectively.")
9979 (license license:gpl3+)))
9980
9981 (define-public emacs-diminish
9982 (package
9983 (name "emacs-diminish")
9984 (version "0.45")
9985 (source
9986 (origin
9987 (method git-fetch)
9988 (uri (git-reference
9989 (url "https://github.com/myrjola/diminish.el.git")
9990 (commit (string-append "v" version))))
9991 (file-name (git-file-name name version))
9992 (sha256
9993 (base32 "0qpgfgp8hrzz4vdifxq8h25n0a0jlzgf7aa1fpy6r0080v5rqbb6"))))
9994 (build-system emacs-build-system)
9995 (home-page "https://github.com/myrjola/diminish.el")
9996 (synopsis "Diminish minor modes with no modeline display")
9997 (description "@code{emacs-diminish} implements hiding or
9998 abbreviation of the mode line displays (lighters) of minor modes.")
9999 (license license:gpl2+)))
10000
10001 (define-public emacs-use-package
10002 (package
10003 (name "emacs-use-package")
10004 (version "2.4")
10005 (source (origin
10006 (method git-fetch)
10007 (uri (git-reference
10008 (url "https://github.com/jwiegley/use-package")
10009 (commit version)))
10010 (file-name (git-file-name name version))
10011 (sha256
10012 (base32
10013 "1b7mjjh0d6fmkkd9vyj64vca27xqhga0nvyrrcqxpqjn62zq046y"))))
10014 (build-system emacs-build-system)
10015 (propagated-inputs
10016 `(("emacs-diminish" ,emacs-diminish)))
10017 (arguments
10018 `(#:tests? #t
10019 #:test-command '("emacs" "--batch"
10020 "-l" "use-package-tests.el"
10021 "-f" "ert-run-tests-batch-and-exit")))
10022 (home-page "https://github.com/jwiegley/use-package")
10023 (synopsis "Declaration for simplifying your .emacs")
10024 (description "The use-package macro allows you to isolate package
10025 configuration in your @file{.emacs} file in a way that is both
10026 performance-oriented and tidy.")
10027 (license license:gpl2+)))
10028
10029 (define-public emacs-leaf
10030 (package
10031 (name "emacs-leaf")
10032 (version "3.5.0")
10033 (source
10034 (origin
10035 (method git-fetch)
10036 (uri (git-reference
10037 (url "https://github.com/conao3/leaf.el.git")
10038 (commit (string-append "v" version))))
10039 (file-name (git-file-name name version))
10040 (sha256
10041 (base32
10042 "1rgd59146wad92yc64las0qgx67k2ifgsw1vwhp40xvkd7kb0r6d"))))
10043 (build-system emacs-build-system)
10044 (home-page "https://github.com/conao3/leaf.el")
10045 (arguments
10046 `(#:tests? #t
10047 #:test-command '("emacs" "--batch"
10048 "-l" "leaf-tests.el"
10049 "-f" "cort-test-run")))
10050 (synopsis
10051 "Simplify your init.el configuration, extended use-package")
10052 (description
10053 "This package provides macros that allows you to declaratively configure
10054 settings typical of an Elisp package with various keywords. The syntax is
10055 similar, but not identical to use-package -- overall, leaf aims at a cleaner
10056 and more predictable implementation.")
10057 (license license:agpl3+)))
10058
10059 (define-public emacs-strace-mode
10060 (let* ((commit "6a69b4b06db6797af56f33eda5cb28af94e59f11")
10061 (revision "1"))
10062 (package
10063 (name "emacs-strace-mode")
10064 (version (string-append "0.0.2-" revision "." (string-take commit 7)))
10065 (source (origin
10066 (method git-fetch)
10067 (uri (git-reference
10068 (url "https://github.com/pkmoore/strace-mode")
10069 (commit commit)))
10070 (file-name (git-file-name name version))
10071 (sha256
10072 (base32
10073 "1lbk2kzdznf2bkfazizfbimaxxzfzv00lrz1ran9dc2zqbc0bj9f"))))
10074 (build-system emacs-build-system)
10075 (home-page "https://github.com/pkmoore/strace-mode")
10076 (synopsis "Emacs major mode to highlight strace outputs")
10077 (description "@code{emacs-strace-mode} provides an Emacs major mode
10078 highlighting strace outputs.")
10079 (license license:gpl3+))))
10080
10081 (define-public emacs-default-encrypt
10082 (package
10083 (name "emacs-default-encrypt")
10084 (version "4.4")
10085 (source
10086 (origin
10087 (method url-fetch)
10088 (uri (string-append
10089 "https://informationelle-selbstbestimmung-im-internet.de"
10090 "/emacs/jl-encrypt" version "/jl-encrypt.el"))
10091 (file-name (string-append "jl-encrypt-" version ".el"))
10092 (sha256
10093 (base32
10094 "0w9ggz075j1zwg7d0rv9k8238g600p7czfnnsnawswi7yps2xk78"))))
10095 (build-system emacs-build-system)
10096 (home-page
10097 "https://informationelle-selbstbestimmung-im-internet.de/Emacs.html")
10098 (synopsis "Automatically encrypt or sign Gnus messages in Emacs")
10099 (description
10100 "DefaultEncrypt is designed to be used with Gnus in Emacs. It
10101 automatically encrypts messages that you send (e.g., email) when public keys
10102 for all recipients are available, and it protects you from accidentally
10103 sending un-encrypted messages. It can also be configured to automatically
10104 sign messages that you send. For details and instructions on how to use
10105 DefaultEncrypt, please refer to the home page or read the comments in the
10106 source file, @file{jl-encrypt.el}.")
10107 (license license:gpl3+)))
10108
10109 (define-public emacs-extend-smime
10110 (package
10111 (name "emacs-extend-smime")
10112 (version "3.3")
10113 (source
10114 (origin
10115 (method url-fetch)
10116 (uri (string-append
10117 "https://informationelle-selbstbestimmung-im-internet.de"
10118 "/emacs/jl-smime" version "/jl-smime.el"))
10119 (file-name (string-append "jl-smime-" version ".el"))
10120 (sha256
10121 (base32
10122 "1iv8s2wjmv3v5qfwlcy9hvvrmxxvp3f8m1krlr789q7bbh35jynh"))))
10123 (build-system emacs-build-system)
10124 (home-page
10125 "https://informationelle-selbstbestimmung-im-internet.de/Emacs.html")
10126 (synopsis "Improved S/MIME support for Gnus in Emacs")
10127 (propagated-inputs
10128 `(("emacs-default-encrypt" ,emacs-default-encrypt)))
10129 (description
10130 ;; TRANSLATORS: ExtendSMIME, DefaultEncrypt, and emacs-default-encrypt
10131 ;; should not be translated. The name "emacs-default-encrypt" refers to
10132 ;; the Guix package that provides DefaultEncrypt.
10133 "ExtendSMIME is designed to be used with Gnus in Emacs. It enhances
10134 DefaultEncrypt (emacs-default-encrypt) to support S/MIME (Secure/Multipurpose
10135 Internet Mail Extensions) via LDAP (Lightweight Directory Access Protocol).
10136 Before a message (e.g., email) is sent, ExtendSMIME searches for missing
10137 certificates via LDAP and imports them into @code{gpgsm}. When certificates
10138 for all recipients are available, DefaultEncrypt automatically encrypts the
10139 message. For details and instructions on how to use ExtendSMIME, please refer
10140 to the home page or read the comments in the source file,
10141 @file{jl-smime.el}.")
10142 (license license:gpl3+)))
10143
10144 (define-public emacs-htmlize
10145 (package
10146 (name "emacs-htmlize")
10147 (version "1.55")
10148 (source
10149 (origin
10150 (method git-fetch)
10151 (uri (git-reference
10152 (url "https://github.com/hniksic/emacs-htmlize.git")
10153 (commit (string-append "release/" version))))
10154 (file-name (git-file-name name version))
10155 (sha256
10156 (base32 "0gi3xshscpa53qrj8yplfsqahcilc2ybcc2p7gnh5nbnf2n1n97x"))))
10157 (build-system emacs-build-system)
10158 (home-page "https://github.com/hniksic/emacs-htmlize")
10159 (synopsis "Convert buffer text and decorations to HTML")
10160 (description "@code{emacs-htmlize} converts the buffer text and
10161 the associated decorations to HTML. Output to CSS, inline CSS and
10162 fonts is supported.")
10163 (license license:gpl2+)))
10164
10165 (define-public emacs-xmlgen
10166 (package
10167 (name "emacs-xmlgen")
10168 (version "0.5")
10169 (source
10170 (origin
10171 (method git-fetch)
10172 (uri (git-reference
10173 (url "https://github.com/philjackson/xmlgen.git")
10174 (commit version)))
10175 (file-name (git-file-name name version))
10176 (sha256
10177 (base32 "096i29v0badx0a6339h9ckdz78zj59gbjdp7vj7vhkq9d830392s"))))
10178 (build-system emacs-build-system)
10179 (arguments
10180 `(#:tests? #t
10181 #:test-command '("emacs" "--batch"
10182 "-l" "xmlgen-test.el"
10183 "-f" "ert-run-tests-batch-and-exit")))
10184 (home-page "https://github.com/philjackson/xmlgen")
10185 (synopsis "S-expression to XML domain specific language (DSL) in
10186 Emacs Lisp")
10187 (description "@code{emacs-xmlgen} provides S-expression to XML
10188 conversion for Emacs Lisp.")
10189 (license license:gpl2+)))
10190
10191 (define-public emacs-cdlatex
10192 (package
10193 (name "emacs-cdlatex")
10194 (version "4.7")
10195 (source
10196 (origin
10197 (method git-fetch)
10198 (uri (git-reference
10199 (url "https://github.com/cdominik/cdlatex.git")
10200 (commit version)))
10201 (file-name (git-file-name name version))
10202 (sha256
10203 (base32 "1jj9vmhc4s3ych08bjm1c2xwi81z1p20rj7bvxrgvb5aga2ghi9d"))))
10204 (build-system emacs-build-system)
10205 (propagated-inputs
10206 `(("emacs-auctex" ,emacs-auctex)))
10207 (home-page "https://github.com/cdominik/cdlatex")
10208 (synopsis "Fast Emacs input methods for LaTeX environments and
10209 math")
10210 (description "CDLaTeX is an Emacs minor mode supporting fast
10211 insertion of environment templates and math in LaTeX. Similar
10212 commands are also offered as part of the AUCTeX package, but it is not
10213 the same - CDLaTeX focuses on speediness for inserting LaTeX
10214 constructs.")
10215 (license license:gpl3+)))
10216
10217 (define-public emacs-cnfonts
10218 (package
10219 (name "emacs-cnfonts")
10220 (version "0.9.1")
10221 (source
10222 (origin
10223 (method git-fetch)
10224 (uri (git-reference
10225 (url "https://github.com/tumashu/cnfonts.git")
10226 (commit (string-append "v" version))))
10227 (file-name (git-file-name name version))
10228 (sha256
10229 (base32 "11d44lf0m0kbzq1mvyqkl4aprys0xqaarp08nij57xnynin1rynx"))))
10230 (build-system emacs-build-system)
10231 (home-page "https://github.com/tumashu/cnfonts")
10232 (synopsis "Emacs Chinese fonts setup tool")
10233 (description "cnfonts is a Chinese fonts setup tool, allowing for easy
10234 configuration of Chinese fonts.")
10235 (license license:gpl2+)))
10236
10237 (define-public emacs-php-mode
10238 (package
10239 (name "emacs-php-mode")
10240 (version "1.22.2")
10241 (source (origin
10242 (method git-fetch)
10243 (uri (git-reference
10244 (url "https://github.com/ejmr/php-mode.git")
10245 (commit (string-append "v" version))))
10246 (file-name (git-file-name name version))
10247 (sha256
10248 (base32
10249 "1r4bpyavlndd4c78cv5cc97bc0gkd4cggiyz4kd2vg6zlyc1nld3"))))
10250 (build-system emacs-build-system)
10251 (home-page "https://github.com/ejmr/php-mode")
10252 (synopsis "Major mode for editing PHP code")
10253 (description "@code{php-mode} is a major mode for editing PHP source
10254 code. It's an extension of C mode; thus it inherits all C mode's navigation
10255 functionality. But it colors according to the PHP grammar and indents
10256 according to the PEAR coding guidelines. It also includes a couple handy
10257 IDE-type features such as documentation search and a source and class
10258 browser.")
10259 (license license:gpl3+)))
10260
10261 (define-public emacs-pos-tip
10262 (package
10263 (name "emacs-pos-tip")
10264 (version "0.4.6")
10265 (source
10266 (origin
10267 (method git-fetch)
10268 (uri (git-reference
10269 (url "https://github.com/pitkali/pos-tip.git")
10270 (commit version)))
10271 (file-name (git-file-name name version))
10272 (sha256
10273 (base32 "0w8bnspnk871qndp18hs0wk4x9x31xr9rwbvf5dc8mcbnj29ch33"))))
10274 (build-system emacs-build-system)
10275 ;; The following functions and variables needed by emacs-pos-tip are
10276 ;; not included in emacs-minimal:
10277 ;; x-display-pixel-width, x-display-pixel-height, x-show-tip
10278 (arguments `(#:emacs ,emacs))
10279 (home-page "https://github.com/pitkali/pos-tip")
10280 (synopsis "Show tooltip at point")
10281 (description "The standard library tooltip.el provides a function for
10282 displaying a tooltip at the mouse position. However, locating a tooltip at an
10283 arbitrary buffer position in a window is not easy. Pos-tip provides such a
10284 function to be used by other frontend programs.")
10285 (license license:gpl2+)))
10286
10287 (define-public emacs-pyim-basedict
10288 (package
10289 (name "emacs-pyim-basedict")
10290 (version "0.3.1")
10291 (source
10292 (origin
10293 (method git-fetch)
10294 (uri (git-reference
10295 (url "https://github.com/tumashu/pyim-basedict.git")
10296 (commit (string-append "v" version))))
10297 (file-name (git-file-name name version))
10298 (sha256
10299 (base32 "0576r8ap9gp91ycjf1d47pn13kxp0f9fysn09zlq44hr0s1y2y5d"))))
10300 (build-system emacs-build-system)
10301 (home-page "https://github.com/tumashu/pyim-basedict")
10302 (synopsis "Input method dictionary of pyim")
10303 (description "Pyim-basedict is the default pinyin input method dictionary,
10304 containing words from the rime project.")
10305 (license license:gpl2+)))
10306
10307 (define-public emacs-pyim
10308 (package
10309 (name "emacs-pyim")
10310 (version "1.8")
10311 (source
10312 (origin
10313 (method git-fetch)
10314 (uri (git-reference
10315 (url "https://github.com/tumashu/pyim")
10316 (commit (string-append "v" version))))
10317 (file-name (git-file-name name version))
10318 (sha256
10319 (base32
10320 "16rma4cv7xgky0g3x4an27v30jdi6i1sqw43cl99zhkqvp43l3f9"))))
10321 (build-system emacs-build-system)
10322 (propagated-inputs
10323 `(("emacs-async" ,emacs-async)
10324 ("emacs-pyim-basedict" ,emacs-pyim-basedict)
10325 ("emacs-popup" ,emacs-popup)
10326 ("emacs-posframe" ,emacs-posframe)))
10327 (home-page "https://github.com/tumashu/pyim")
10328 (synopsis "Chinese input method")
10329 (description "Chinese input method which supports quanpin, shuangpin, wubi
10330 and cangjie.")
10331 (license license:gpl2+)))
10332
10333 (define-public emacs-posframe
10334 (package
10335 (name "emacs-posframe")
10336 (version "0.5.0")
10337 (source
10338 (origin
10339 (method git-fetch)
10340 (uri (git-reference
10341 (url "https://github.com/tumashu/posframe")
10342 (commit (string-append "v" version))))
10343 (file-name (git-file-name name version))
10344 (sha256
10345 (base32
10346 "1fhjxj7gi2pj5rdnmf0gddiwd8iifgjgjp01c01npz1gwwixyqh3"))))
10347 (build-system emacs-build-system)
10348 ;; emacs-minimal does not include the function font-info
10349 (arguments `(#:emacs ,emacs))
10350 (home-page "https://github.com/tumashu/posframe")
10351 (synopsis "Pop a posframe (a child frame) at point")
10352 (description "@code{emacs-posframe} can pop a posframe at point. A
10353 posframe is a child frame displayed within its root window's buffer.
10354 @code{emacs-posframe} is fast and works well with CJK languages.")
10355 (license license:gpl3+)))
10356
10357 (define-public emacs-el2org
10358 (package
10359 (name "emacs-el2org")
10360 (version "0.6.0")
10361 (source
10362 (origin
10363 (method git-fetch)
10364 (uri (git-reference
10365 (url "https://github.com/tumashu/el2org.git")
10366 (commit (string-append "v" version))))
10367 (file-name (git-file-name name version))
10368 (sha256
10369 (base32 "0mzddqny6wpg1fv99xrvlv7rxmaifvmy5bvj4in4pldhm4cx4q1b"))))
10370 (build-system emacs-build-system)
10371 (home-page "https://github.com/tumashu/el2org")
10372 (synopsis "Convert Emacs-lisp file to org file")
10373 (description "El2org is a simple tool, which can convert Emacs-lisp file
10374 to org file, you can use this tool to write orgify commentary.")
10375 (license license:gpl2+)))
10376
10377 (define-public emacs-mustache
10378 (package
10379 (name "emacs-mustache")
10380 (version "0.23")
10381 (source
10382 (origin
10383 (method git-fetch)
10384 (uri (git-reference
10385 (url "https://github.com/Wilfred/mustache.el.git")
10386 (commit version)))
10387 (file-name (git-file-name name version))
10388 (sha256
10389 (base32 "1n2ymd92qpvsby6ms0l3kjhdzzc47rri2aiscc6bs07hm4mjpr9q"))))
10390 (build-system emacs-build-system)
10391 (propagated-inputs
10392 `(("emacs-dash" ,emacs-dash)
10393 ("emacs-ht" ,emacs-ht)
10394 ("emacs-s" ,emacs-s)))
10395 (home-page "https://github.com/Wilfred/mustache.el")
10396 (synopsis "Mustache templating library for Emacs")
10397 (description "Mustache templating library for Emacs, mustache is
10398 a simple web template system, which is described as a logic-less system
10399 because it lacks any explicit control flow statements, both looping and
10400 conditional evaluation can be achieved using section tags processing lists
10401 and lambdas.")
10402 (license license:gpl3+)))
10403
10404 (define-public emacs-org2web
10405 (package
10406 (name "emacs-org2web")
10407 (version "0.9.1")
10408 (source
10409 (origin
10410 (method git-fetch)
10411 (uri (git-reference
10412 (url "https://github.com/tumashu/org2web.git")
10413 (commit (string-append "v" version))))
10414 (file-name (git-file-name name version))
10415 (sha256
10416 (base32 "0wsvfn409a2ivbich8b8zqza78sprirg4bl7igx536ydqclmi0n7"))))
10417 (build-system emacs-build-system)
10418 (propagated-inputs
10419 `(("emacs-dash" ,emacs-dash)
10420 ("emacs-el2org" ,emacs-el2org)
10421 ("emacs-ht" ,emacs-ht)
10422 ("emacs-mustache" ,emacs-mustache)
10423 ("emacs-simple-httpd" ,emacs-simple-httpd)))
10424 (home-page "https://github.com/tumashu/org2web")
10425 (synopsis "Static site generator based on org-mode ")
10426 (description "Org2web is a static site generator based on org-mode,
10427 which code derived from Kelvin H's org-page.")
10428 (license license:gpl2+)))
10429
10430 (define-public emacs-xelb
10431 (package
10432 (name "emacs-xelb")
10433 (version "0.18")
10434 (source (origin
10435 (method url-fetch)
10436 (uri (string-append "https://elpa.gnu.org/packages/xelb-"
10437 version ".tar"))
10438 (sha256
10439 (base32
10440 "1fp5mzl63sh0h3ws4l5p4qgvi7ny8a3fj6k4dhqa98xgw2bx03v7"))))
10441 (build-system emacs-build-system)
10442 ;; The following functions and variables needed by emacs-xelb are
10443 ;; not included in emacs-minimal:
10444 ;; x-display-screens, x-keysym-table, x-alt-keysym, x-meta-keysym
10445 ;; x-hyper-keysym, x-super-keysym, libxml-parse-xml-region
10446 ;; x-display-pixel-width, x-display-pixel-height
10447 (arguments
10448 `(#:emacs ,emacs
10449 #:phases
10450 (modify-phases %standard-phases
10451 (add-after 'unpack 'regenerate-el-files
10452 (lambda* (#:key inputs #:allow-other-keys)
10453 (invoke "make"
10454 (string-append "PROTO_PATH="
10455 (assoc-ref inputs "xcb-proto")
10456 "/share/xcb")
10457 (string-append "EMACS_BIN="
10458 (assoc-ref inputs "emacs")
10459 "/bin/emacs -Q")))))))
10460 (native-inputs `(("xcb-proto" ,xcb-proto)))
10461 (home-page "https://github.com/ch11ng/xelb")
10462 (synopsis "X protocol Emacs Lisp binding")
10463 (description "@code{emacs-xelb} is a pure Emacs Lisp implementation of the
10464 X11 protocol based on the XML description files from the XCB project. It
10465 features an object-oriented API and permits a certain degree of concurrency.
10466 It should enable you to implement low-level X11 applications.")
10467 (license license:gpl3+)))
10468
10469 (define-public emacs-exwm
10470 (package
10471 (name "emacs-exwm")
10472 (version "0.23")
10473 (synopsis "Emacs X window manager")
10474 (source (origin
10475 (method url-fetch)
10476 (uri (string-append "https://elpa.gnu.org/packages/exwm-"
10477 version ".tar"))
10478 (sha256
10479 (base32
10480 "05w1v3wrp1lzz20zd9lcvr5nhk809kgy6svvkbs15xhnr6x55ad5"))))
10481 (build-system emacs-build-system)
10482 (propagated-inputs
10483 `(("emacs-xelb" ,emacs-xelb)))
10484 (inputs
10485 `(("xhost" ,xhost)
10486 ("dbus" ,dbus)))
10487 ;; The following functions and variables needed by emacs-exwm are
10488 ;; not included in emacs-minimal:
10489 ;; scroll-bar-mode, fringe-mode
10490 ;; x-display-pixel-width, x-display-pixel-height
10491 (arguments
10492 `(#:emacs ,emacs
10493 #:phases
10494 (modify-phases %standard-phases
10495 (add-after 'build 'install-xsession
10496 (lambda* (#:key inputs outputs #:allow-other-keys)
10497 (let* ((out (assoc-ref outputs "out"))
10498 (xsessions (string-append out "/share/xsessions"))
10499 (bin (string-append out "/bin"))
10500 (exwm-executable (string-append bin "/exwm")))
10501 ;; Add a .desktop file to xsessions
10502 (mkdir-p xsessions)
10503 (mkdir-p bin)
10504 (make-desktop-entry-file
10505 (string-append xsessions "/exwm.desktop")
10506 #:name ,name
10507 #:comment ,synopsis
10508 #:exec exwm-executable
10509 #:try-exec exwm-executable)
10510 ;; Add a shell wrapper to bin
10511 (with-output-to-file exwm-executable
10512 (lambda _
10513 (format #t "#!~a ~@
10514 ~a +SI:localuser:$USER ~@
10515 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
10516 (string-append (assoc-ref inputs "bash") "/bin/sh")
10517 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
10518 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
10519 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
10520 '(cond
10521 ((file-exists-p "~/.exwm")
10522 (load-file "~/.exwm"))
10523 ((not (featurep 'exwm))
10524 (require 'exwm)
10525 (require 'exwm-config)
10526 (exwm-config-default)
10527 (message (concat "exwm configuration not found. "
10528 "Falling back to default configuration...")))))))
10529 (chmod exwm-executable #o555)
10530 #t))))))
10531 (home-page "https://github.com/ch11ng/exwm")
10532 (description "EXWM is a full-featured tiling X window manager for Emacs
10533 built on top of XELB.")
10534 (license license:gpl3+)))
10535
10536 (define-public emacs-switch-window
10537 (package
10538 (name "emacs-switch-window")
10539 (version "1.6.2")
10540 (source
10541 (origin
10542 (method git-fetch)
10543 (uri (git-reference
10544 (url "https://github.com/dimitri/switch-window")
10545 (commit (string-append "v" version))))
10546 (file-name (git-file-name name version))
10547 (sha256
10548 (base32
10549 "0rci96asgamr6qp6nkyr5vwrnslswjxcjd96yccy4aivh0g66yfg"))))
10550 (build-system emacs-build-system)
10551 (home-page "https://github.com/dimitri/switch-window")
10552 (synopsis "Emacs window switch tool")
10553 (description "Switch-window is an emacs window switch tool, which
10554 offer a visual way to choose a window to switch to, delete, split or
10555 other operations.")
10556 (license license:wtfpl2)))
10557
10558 (define-public emacs-exwm-x
10559 (package
10560 (name "emacs-exwm-x")
10561 (version "1.9.0")
10562 (synopsis "Derivative window manager based on EXWM")
10563 (source
10564 (origin
10565 (method git-fetch)
10566 (uri (git-reference
10567 (url "https://github.com/tumashu/exwm-x")
10568 (commit (string-append "v" version))))
10569 (file-name (git-file-name name version))
10570 (sha256
10571 (base32
10572 "03l3dl7s1qys1kkh40rm1sfx7axy1b8sf5f6nyksj9ps6d30p5i4"))))
10573 (build-system emacs-build-system)
10574 (propagated-inputs
10575 `(("emacs-exwm" ,emacs-exwm)
10576 ("emacs-switch-window" ,emacs-switch-window)
10577 ("emacs-ivy" ,emacs-ivy)
10578 ("emacs-use-package" ,emacs-use-package)))
10579 (inputs
10580 `(("xhost" ,xhost)
10581 ("dbus" ,dbus)))
10582 ;; Need emacs instead of emacs-minimal,
10583 ;; for emacs's bin path will be inserted into bin/exwm-x file.
10584 (arguments
10585 `(#:emacs ,emacs
10586 #:phases
10587 (modify-phases %standard-phases
10588 (add-after 'build 'install-xsession
10589 (lambda* (#:key inputs outputs #:allow-other-keys)
10590 (let* ((out (assoc-ref outputs "out"))
10591 (xsessions (string-append out "/share/xsessions"))
10592 (bin (string-append out "/bin"))
10593 (exwm-executable (string-append bin "/exwm-x")))
10594 ;; Add a .desktop file to xsessions
10595 (mkdir-p xsessions)
10596 (mkdir-p bin)
10597 (with-output-to-file
10598 (string-append xsessions "/exwm-x.desktop")
10599 (lambda _
10600 (format #t "[Desktop Entry]~@
10601 Name=~a~@
10602 Comment=~a~@
10603 Exec=~a~@
10604 TryExec=~@*~a~@
10605 Type=Application~%" ,name ,synopsis exwm-executable)))
10606 ;; Add a shell wrapper to bin
10607 (with-output-to-file exwm-executable
10608 (lambda _
10609 (format #t "#!~a ~@
10610 ~a +SI:localuser:$USER ~@
10611 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
10612 (string-append (assoc-ref inputs "bash") "/bin/sh")
10613 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
10614 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
10615 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
10616 '(require 'exwmx-loader))))
10617 (chmod exwm-executable #o555)
10618 #t))))))
10619 (home-page "https://github.com/tumashu/exwm-x")
10620 (description "EXWM-X is a derivative window manager based on EXWM, with focus
10621 on mouse-control.")
10622 (license license:gpl3+)))
10623
10624 (define-public emacs-gnugo
10625 (package
10626 (name "emacs-gnugo")
10627 (version "3.1.0")
10628 (source
10629 (origin
10630 (method url-fetch)
10631 (uri (string-append "https://elpa.gnu.org/packages/gnugo-"
10632 version ".tar"))
10633 (sha256
10634 (base32
10635 "0xpjvs250gg71qwapdsb1hlc61gs0gpkjds01srf784fvyxx2gf1"))))
10636 (build-system emacs-build-system)
10637 (arguments
10638 `(#:phases (modify-phases %standard-phases
10639 (add-after 'unpack 'configure-default-gnugo-xpms-variable
10640 (lambda _
10641 (substitute* "gnugo.el"
10642 (("defvar gnugo-xpms nil")
10643 "defvar gnugo-xpms #'gnugo-imgen-create-xpms"))
10644 #t)))))
10645 (propagated-inputs
10646 `(("emacs-ascii-art-to-unicode" ,emacs-ascii-art-to-unicode)
10647 ("emacs-xpm" ,emacs-xpm)))
10648 (home-page "https://elpa.gnu.org/packages/gnugo.html")
10649 (synopsis "Emacs major mode for playing GNU Go")
10650 (description "This package provides an Emacs based interface for GNU Go.
10651 It has a graphical mode where the board and stones are drawn using XPM images
10652 and supports the use of a mouse.")
10653 (license license:gpl3+)))
10654
10655 (define-public emacs-gnuplot
10656 (package
10657 (name "emacs-gnuplot")
10658 (version "0.7.0")
10659 (source
10660 (origin
10661 (method git-fetch)
10662 (uri (git-reference
10663 (url "https://github.com/bruceravel/gnuplot-mode.git")
10664 (commit version)))
10665 (file-name (git-file-name name version))
10666 (sha256
10667 (base32 "0bwri3cvm2vr27kyqkrddm28fs08axnd4nm9amfgp54xp20bn4yn"))))
10668 (build-system gnu-build-system)
10669 (native-inputs `(("emacs" ,emacs-minimal)))
10670 (arguments
10671 (let ((elisp-dir "/share/emacs/site-lisp"))
10672 `(#:modules ((guix build gnu-build-system)
10673 (guix build utils)
10674 (guix build emacs-utils))
10675 #:imported-modules (,@%gnu-build-system-modules
10676 (guix build emacs-utils))
10677 #:configure-flags
10678 (list (string-append "EMACS=" (assoc-ref %build-inputs "emacs")
10679 "/bin/emacs")
10680 (string-append "--with-lispdir=" %output ,elisp-dir))
10681 #:phases
10682 (modify-phases %standard-phases
10683 (add-after 'install 'generate-autoloads
10684 (lambda* (#:key outputs #:allow-other-keys)
10685 (emacs-generate-autoloads
10686 "gnuplot"
10687 (string-append (assoc-ref outputs "out") ,elisp-dir))
10688 #t))))))
10689 (home-page "https://github.com/bruceravel/gnuplot-mode")
10690 (synopsis "Emacs major mode for interacting with gnuplot")
10691 (description "@code{emacs-gnuplot} is an emacs major mode for interacting
10692 with gnuplot.")
10693 (license license:gpl2+)))
10694
10695 (define-public emacs-transpose-frame
10696 (package
10697 (name "emacs-transpose-frame")
10698 (version "0.1.0")
10699 (source
10700 (origin
10701 (method url-fetch)
10702 (uri "https://www.emacswiki.org/emacs/download/transpose-frame.el")
10703 (file-name (string-append "transpose-frame-" version ".el"))
10704 (sha256
10705 (base32
10706 "1f67yksgw9s6j0033hmqzaxx2a93jm11sd5ys7cc3li5gfh680m4"))))
10707 (build-system emacs-build-system)
10708 (home-page "https://www.emacswiki.org/emacs/TransposeFrame")
10709 (synopsis "Transpose window arrangement in current frame")
10710 (description "@code{emacs-transpose-frame} provides some interactive
10711 functions which allows users to transpose windows arrangement in currently
10712 selected frame.")
10713 (license license:bsd-2)))
10714
10715 (define-public emacs-key-chord
10716 (package
10717 (name "emacs-key-chord")
10718 (version "0.6")
10719 (source
10720 (origin
10721 (method url-fetch)
10722 (uri "https://www.emacswiki.org/emacs/download/key-chord.el")
10723 (file-name (string-append "key-chord-" version ".el"))
10724 (sha256
10725 (base32
10726 "03m44pqggfrd53nh9dvpdjgm0rvca34qxmd30hr33hzprzjambxg"))))
10727 (build-system emacs-build-system)
10728 (home-page "https://www.emacswiki.org/emacs/key-chord.el")
10729 (synopsis "Map pairs of simultaneously pressed keys to Emacs commands")
10730 (description "@code{emacs-key-chord} provides @code{key-chord-mode}, a
10731 mode for binding key chords to commands. A key chord is defined as two keys
10732 pressed simultaneously or a single key quickly pressed twice.")
10733 (license license:gpl2+)))
10734
10735 (define-public emacs-evil-surround
10736 (package
10737 (name "emacs-evil-surround")
10738 (version "1.1.0")
10739 (source
10740 (origin
10741 (method git-fetch)
10742 (uri (git-reference
10743 (url "https://github.com/emacs-evil/evil-surround")
10744 (commit version)))
10745 (file-name (git-file-name name version))
10746 (sha256
10747 (base32 "15v2spg5rhddr97pxjfvxj36sh7knp753a9qpw8v5zjnp65kf2kn"))))
10748 (build-system emacs-build-system)
10749 (propagated-inputs
10750 `(("emacs-evil" ,emacs-evil)))
10751 (arguments
10752 `(#:tests? #t
10753 #:test-command '("make" "test")))
10754 (home-page "https://github.com/emacs-evil/evil-surround")
10755 (synopsis "Easily modify surrounding parentheses and quotes")
10756 (description "@code{emacs-evil-surround} allows easy deletion, change and
10757 addition of surrounding pairs, such as parentheses and quotes, in evil mode.")
10758 (license license:gpl3+)))
10759
10760 (define-public emacs-evil-commentary
10761 (package
10762 (name "emacs-evil-commentary")
10763 (version "2.1.1")
10764 (source
10765 (origin
10766 (method git-fetch)
10767 (uri (git-reference
10768 (url "https://github.com/linktohack/evil-commentary.git")
10769 (commit (string-append "v" version))))
10770 (file-name (git-file-name name version))
10771 (sha256
10772 (base32 "0zjs9zyqfygnpxapvf0ymmiid40i06cxbhjzd81zw33nafgkf6r4"))))
10773 (build-system emacs-build-system)
10774 (propagated-inputs
10775 `(("emacs-evil" ,emacs-evil)))
10776 (home-page "https://github.com/linktohack/evil-commentary")
10777 (synopsis "Comment out code in evil mode")
10778 (description "@code{emacs-evil-commentary} adds keybindings to easily
10779 comment out lines of code in evil mode. It provides @code{gcc} to comment out
10780 lines, and @code{gc} to comment out the target of a motion.")
10781 (license license:gpl3+)))
10782
10783 ;; Tests for emacs-ansi have a circular dependency with ert-runner, and
10784 ;; therefore cannot be run
10785 (define-public emacs-ansi
10786 (package
10787 (name "emacs-ansi")
10788 (version "0.4.1")
10789 (source
10790 (origin
10791 (method git-fetch)
10792 (uri (git-reference
10793 (url "https://github.com/rejeep/ansi.el.git")
10794 (commit (string-append "v" version))))
10795 (file-name (git-file-name name version))
10796 (sha256
10797 (base32 "1hbddxarr40ygvaw4pwaivq2l4f0brszw73w1r50lkjlggb7bl3g"))))
10798 (build-system emacs-build-system)
10799 (propagated-inputs
10800 `(("emacs-dash" ,emacs-dash)
10801 ("emacs-s" ,emacs-s)))
10802 (home-page "https://github.com/rejeep/ansi.el")
10803 (synopsis "Convert strings to ANSI")
10804 (description "@code{emacs-ansi} defines functions that turns simple
10805 strings to ANSI strings. Turning a string into an ANSI string can be to add
10806 color to a text, add color in the background of a text or adding a style, such
10807 as bold, underscore or italic.")
10808 (license license:gpl3+)))
10809
10810 ;; Tests for emacs-commander have a circular dependency with ert-runner, and
10811 ;; therefore cannot be run
10812 (define-public emacs-commander
10813 (package
10814 (name "emacs-commander")
10815 (version "0.7.0")
10816 (source
10817 (origin
10818 (method git-fetch)
10819 (uri (git-reference
10820 (url "https://github.com/rejeep/commander.el.git")
10821 (commit (string-append "v" version))))
10822 (file-name (git-file-name name version))
10823 (sha256
10824 (base32 "1j6hhyzww7wfwk6bllbb5mk4hw4qs8hsgfbfdifsam9c6i4spm45"))))
10825 (build-system emacs-build-system)
10826 (propagated-inputs
10827 `(("emacs-dash" ,emacs-dash)
10828 ("emacs-f" ,emacs-f)
10829 ("emacs-s" ,emacs-s)))
10830 (home-page "https://github.com/rejeep/commander.el")
10831 (synopsis "Emacs command line parser")
10832 (description "@code{emacs-commander} provides command line parsing for
10833 Emacs.")
10834 (license license:gpl3+)))
10835
10836 (define-public emacs-eglot
10837 (package
10838 (name "emacs-eglot")
10839 (version "1.6")
10840 (source
10841 (origin
10842 (method url-fetch)
10843 (uri (string-append "https://elpa.gnu.org/packages/"
10844 "eglot-" version ".tar"))
10845 (sha256
10846 (base32 "15hd6sx7qrpvlvhwwkcgdiki8pswwf4mm7hkm0xvznskfcp44spx"))))
10847 (build-system emacs-build-system)
10848 (propagated-inputs
10849 `(("emacs-jsonrpc" ,emacs-jsonrpc)))
10850 (home-page "https://github.com/joaotavora/eglot")
10851 (synopsis "Client for Language Server Protocol (LSP) servers")
10852 (description
10853 "Emacs Polyglot, or Eglot, is an Emacs @acronym{Language Server Protocol,
10854 LSP} client that stays out of the way. It guesses the LSP program to start
10855 for the current file, using the major mode as a hint. It prompts you to enter
10856 one if it fails.")
10857 (license license:gpl3+)))
10858
10859 ;; Tests for ert-runner have a circular dependency with ecukes, and therefore
10860 ;; cannot be run
10861 (define-public emacs-ert-runner
10862 (package
10863 (name "emacs-ert-runner")
10864 (version "0.8.0")
10865 (source
10866 (origin
10867 (method git-fetch)
10868 (uri (git-reference
10869 (url "https://github.com/rejeep/ert-runner.el.git")
10870 (commit (string-append "v" version))))
10871 (file-name (git-file-name name version))
10872 (sha256
10873 (base32
10874 "08gygn9fjank5gpi4v6ynrkn0jbknxbwsn7md4p9ndygdbmnkf98"))))
10875 (build-system emacs-build-system)
10876 (inputs
10877 `(("emacs-ansi" ,emacs-ansi)
10878 ("emacs-commander" ,emacs-commander)
10879 ("emacs-dash" ,emacs-dash)
10880 ("emacs-f" ,emacs-f)
10881 ("emacs-s" ,emacs-s)
10882 ("emacs-shut-up" ,emacs-shut-up)))
10883 (arguments
10884 `(#:phases
10885 (modify-phases %standard-phases
10886 (add-after 'install 'install-executable
10887 (lambda* (#:key inputs outputs #:allow-other-keys)
10888 (let ((out (assoc-ref outputs "out"))
10889 (source-directory (string-append
10890 (getenv "TMPDIR") "/source")))
10891 (substitute* "bin/ert-runner"
10892 (("ERT_RUNNER=\"\\$\\(dirname \\$\\(dirname \\$0\\)\\)")
10893 (string-append "ERT_RUNNER=\"" out
10894 "/share/emacs/site-lisp")))
10895 (install-file "bin/ert-runner" (string-append out "/bin"))
10896 (wrap-program (string-append out "/bin/ert-runner")
10897 (list "EMACSLOADPATH" ":" 'prefix
10898 ;; Do not capture the transient source directory in
10899 ;; the wrapper.
10900 (delete source-directory
10901 (string-split (getenv "EMACSLOADPATH") #\:))))
10902 #t))))
10903 #:include (cons* "^reporters/.*\\.el$" %default-include)))
10904 (home-page "https://github.com/rejeep/ert-runner.el")
10905 (synopsis "Opinionated Ert testing workflow")
10906 (description "@code{ert-runner} is a tool for Emacs projects tested
10907 using ERT. It assumes a certain test structure setup and can therefore make
10908 running tests easier.")
10909 (license license:gpl3+)))
10910
10911 (define-public emacs-xtest
10912 (package
10913 (name "emacs-xtest")
10914 (version "1.1.0")
10915 (source (origin
10916 (method git-fetch)
10917 (uri (git-reference
10918 (url "https://github.com/promethial/xtest.git")
10919 (commit (string-append "v" version))))
10920 (file-name (git-file-name name version))
10921 (sha256
10922 (base32
10923 "1wqx6hlqcmqiljydih5fx89dw06g8w728pyn4iqsap8jwgjngb09"))))
10924 (arguments
10925 `(#:exclude '()))
10926 (build-system emacs-build-system)
10927 (home-page "https://github.com/promethial/xtest/")
10928 (synopsis "Simple testing with Emacs")
10929 (description "This package provides a simple testing library for Emacs.")
10930 (license license:gpl3+)))
10931
10932 (define-public emacs-disable-mouse
10933 (package
10934 (name "emacs-disable-mouse")
10935 (version "0.2")
10936 (source
10937 (origin
10938 (method git-fetch)
10939 (uri (git-reference
10940 (url "https://github.com/purcell/disable-mouse.git")
10941 (commit version)))
10942 (file-name (git-file-name name version))
10943 (sha256
10944 (base32 "1v1y5hf6k6ng7xsvgb27nh740d14m6l4krr0paccda8zgm4mw357"))))
10945 (build-system emacs-build-system)
10946 (home-page "https://github.com/purcell/disable-mouse")
10947 (synopsis "Disable mouse commands globally")
10948 (description
10949 "Provides @code{disable-mouse-mode} and @code{global-disable-mouse-mode},
10950 pair of minor modes which suppress all mouse events by intercepting them and
10951 running a customisable handler command (@code{ignore} by default). ")
10952 (license license:gpl3+)))
10953
10954 (define-public emacs-json-reformat
10955 (package
10956 (name "emacs-json-reformat")
10957 (version "0.0.6")
10958 (source
10959 (origin
10960 (method git-fetch)
10961 (uri (git-reference
10962 (url "https://github.com/gongo/json-reformat.git")
10963 (commit version)))
10964 (file-name (git-file-name name version))
10965 (sha256
10966 (base32 "0qp4n2k6s69jj4gwwimkpadjv245y54wk3bxb1x96f034gkp81vs"))
10967 (patches (search-patches "emacs-json-reformat-fix-tests.patch"))))
10968 (build-system emacs-build-system)
10969 (propagated-inputs
10970 `(("emacs-undercover" ,emacs-undercover)))
10971 (native-inputs
10972 `(("emacs-dash" ,emacs-dash)
10973 ("emacs-shut-up" ,emacs-shut-up)
10974 ("ert-runner" ,emacs-ert-runner)))
10975 (arguments
10976 `(#:tests? #t
10977 #:test-command '("ert-runner")
10978 #:phases
10979 (modify-phases %standard-phases
10980 (add-before 'check 'make-tests-writable
10981 (lambda _
10982 (for-each make-file-writable (find-files "test"))
10983 #t))
10984 (add-before 'check 'delete-json-objects-order-test
10985 (lambda _
10986 (emacs-batch-edit-file "test/json-reformat-test.el"
10987 `(progn (progn (goto-char (point-min))
10988 (re-search-forward
10989 "ert-deftest json-reformat-test:json-reformat-region")
10990 (beginning-of-line)
10991 (kill-sexp))
10992 (basic-save-buffer)))
10993 #t)))))
10994 (home-page "https://github.com/gongo/json-reformat")
10995 (synopsis "Reformatting tool for JSON")
10996 (description "@code{json-reformat} provides a reformatting tool for
10997 @url{http://json.org/, JSON}.")
10998 (license license:gpl3+)))
10999
11000 (define-public emacs-json-snatcher
11001 (package
11002 (name "emacs-json-snatcher")
11003 (version "1.0.0")
11004 (source
11005 (origin
11006 (method git-fetch)
11007 (uri (git-reference
11008 (url "https://github.com/Sterlingg/json-snatcher.git")
11009 (commit version)))
11010 (file-name (git-file-name name version))
11011 (sha256
11012 (base32 "05zsgnk7grgw9jzwl80h5sxfpifxlr37b4mkbvx7mjq4z14xc2jw"))))
11013 (build-system emacs-build-system)
11014 (home-page "https://github.com/sterlingg/json-snatcher")
11015 (synopsis "Grabs the path to JSON values in a JSON file")
11016 (description "@code{emacs-json-snatcher} grabs the path to JSON values in
11017 a @url{http://json.org/, JSON} file.")
11018 (license license:gpl3+)))
11019
11020 (define-public emacs-json-mode
11021 (package
11022 (name "emacs-json-mode")
11023 (version "1.7.0")
11024 (source
11025 (origin
11026 (method git-fetch)
11027 (uri (git-reference
11028 (url "https://github.com/joshwnj/json-mode.git")
11029 (commit (string-append "v" version))))
11030 (file-name (git-file-name name version))
11031 (sha256
11032 (base32 "0i79lqzdg59vkqwjd3q092xxn9vhxspb1vn4pkis0vfvn46g01jy"))))
11033 (build-system emacs-build-system)
11034 (propagated-inputs
11035 `(("emacs-json-reformat" ,emacs-json-reformat)
11036 ("emacs-json-snatcher" ,emacs-json-snatcher)))
11037 (home-page "https://github.com/joshwnj/json-mode")
11038 (synopsis "Major mode for editing JSON files")
11039 (description "@code{json-mode} extends the builtin js-mode syntax
11040 highlighting.")
11041 (license license:gpl3+)))
11042
11043 (define-public emacs-jsonrpc
11044 (package
11045 (name "emacs-jsonrpc")
11046 (version "1.0.11")
11047 (source
11048 (origin
11049 (method url-fetch)
11050 (uri (string-append "https://elpa.gnu.org/packages/"
11051 "jsonrpc-" version ".el"))
11052 (sha256
11053 (base32 "04cy1mqd6y8k5lcpg076szjk9av9345mmsnzzh6vgbcw3dcgbr23"))))
11054 (build-system emacs-build-system)
11055 (home-page "http://elpa.gnu.org/packages/jsonrpc.html")
11056 (synopsis "JSON-RPC library")
11057 (description
11058 "This library implements the JSONRPC 2.0 specification as
11059 described in @url{http://www.jsonrpc.org/}. As the name suggests,
11060 JSONRPC is a generic Remote Procedure Call protocol designed around
11061 JSON objects.")
11062 (license license:gpl3+)))
11063
11064 (define-public emacs-restclient
11065 (let ((commit "422ee8d8b077dffe65706a0f027ed700b84746bc")
11066 (version "0")
11067 (revision "2")) ;Guix package revision,
11068 ;upstream doesn't have official releases
11069 (package
11070 (name "emacs-restclient")
11071 (version (git-version version revision commit))
11072 (source (origin
11073 (method git-fetch)
11074 (uri (git-reference
11075 (url "https://github.com/pashky/restclient.el.git")
11076 (commit commit)))
11077 (sha256
11078 (base32
11079 "067nin7vxkdpffxa0q61ybv7szihhvpdinivmci9qkbb86rs9kkz"))
11080 (file-name (git-file-name name version))))
11081 (build-system emacs-build-system)
11082 (propagated-inputs
11083 `(("emacs-helm" ,emacs-helm)))
11084 (home-page "https://github.com/pashky/restclient.el")
11085 (synopsis "Explore and test HTTP REST webservices")
11086 (description
11087 "This tool allows for testing and exploration of HTTP REST Web services
11088 from within Emacs. Restclient runs queries from a plan-text query sheet,
11089 displays results pretty-printed in XML or JSON with @code{restclient-mode}")
11090 (license license:public-domain))))
11091
11092 (define-public emacs-whitespace-cleanup-mode
11093 (let ((commit "72427144b054b0238a86e1348c45d986b8830d9d")
11094 (revision "1"))
11095 (package
11096 (name "emacs-whitespace-cleanup-mode")
11097 (version (git-version "0.10" revision commit))
11098 (source (origin
11099 (method git-fetch)
11100 (uri (git-reference
11101 (url "https://github.com/purcell/whitespace-cleanup-mode")
11102 (commit commit)))
11103 (sha256
11104 (base32
11105 "1zlk534jbwrsabcg3kqlzk4h4hwya60lh6q2n1v4yn4rpf5ghsag"))
11106 (file-name (git-file-name name version))))
11107 (build-system emacs-build-system)
11108 (home-page "https://github.com/purcell/whitespace-cleanup-mode")
11109 (synopsis "Intelligently call @code{whitespace-cleanup} on save")
11110 (description
11111 "This package provides a minor mode that calls
11112 @code{whitespace-cleanup} before saving the current buffer only if the
11113 whitespace in the buffer was initially clean.")
11114 (license license:gpl3+))))
11115
11116 (define-public emacs-eimp
11117 (let ((version "1.4.0")
11118 (commit "2e7536fe6d8f7faf1bad7a8ae37faba0162c3b4f")
11119 (revision "1"))
11120 (package
11121 (name "emacs-eimp")
11122 (version (git-version version revision commit))
11123 (source
11124 (origin
11125 (method git-fetch)
11126 (uri (git-reference
11127 (url "https://github.com/nicferrier/eimp.git")
11128 (commit commit)))
11129 (file-name (git-file-name name version))
11130 (sha256
11131 (base32
11132 "154d57yafxbcf39r89n5j43c86rp2fki3lw3gwy7ww2g6qkclcra"))))
11133 (build-system emacs-build-system)
11134 (arguments
11135 `(#:phases
11136 (modify-phases %standard-phases
11137 (add-after 'unpack 'configure
11138 (lambda* (#:key inputs #:allow-other-keys)
11139 (let ((imagemagick (assoc-ref inputs "imagemagick")))
11140 ;; eimp.el is read-only in git.
11141 (chmod "eimp.el" #o644)
11142 (emacs-substitute-variables "eimp.el"
11143 ("eimp-mogrify-program"
11144 (string-append imagemagick "/bin/mogrify"))))
11145 #t)))))
11146 (inputs
11147 `(("imagemagick" ,imagemagick)))
11148 (home-page "https://github.com/nicferrier/eimp")
11149 (synopsis "Interactive image manipulation utility for Emacs")
11150 (description "@code{emacs-eimp} allows interactive image manipulation
11151 from within Emacs. It uses the code@{mogrify} utility from ImageMagick to do
11152 the actual transformations.")
11153 (license license:gpl2+))))
11154
11155 (define-public emacs-dired-hacks
11156 (let ((commit "886befe113fae397407c804f72c45613d1d43535")
11157 (revision "2"))
11158 (package
11159 (name "emacs-dired-hacks")
11160 (version (git-version "0.0.1" revision commit))
11161 (source (origin
11162 (method git-fetch)
11163 (uri (git-reference
11164 (url "https://github.com/Fuco1/dired-hacks.git")
11165 (commit commit)))
11166 (file-name (git-file-name name version))
11167 (sha256
11168 (base32
11169 "1cvibg90ggyrivpjmcfprpi2fx7dpa68f8kzg08s88gw5ib75djl"))))
11170 (build-system emacs-build-system)
11171 (propagated-inputs
11172 `(("emacs-dash" ,emacs-dash)
11173 ("emacs-eimp" ,emacs-eimp)
11174 ("emacs-f" ,emacs-f)
11175 ("emacs-s" ,emacs-s)))
11176 (home-page "https://github.com/Fuco1/dired-hacks")
11177 (synopsis
11178 "Collection of useful dired additions")
11179 (description
11180 "This package provides the following collection of Emacs dired mode
11181 additions:
11182
11183 @itemize
11184 @item dired-avfs
11185 @item dired-columns
11186 @item dired-filter
11187 @item dired-hacks-utils
11188 @item dired-images
11189 @item dired-list
11190 @item dired-narrow
11191 @item dired-open
11192 @item dired-rainbow
11193 @item dired-ranger
11194 @item dired-subtree
11195 @item dired-tagsistant
11196 @end itemize\n")
11197 (license license:gpl3+))))
11198
11199 (define-public emacs-dired-sidebar
11200 (let ((commit "21ccb6723bea69f2e2ca25998268d8a039f904cc")
11201 (revision "1"))
11202 (package
11203 (name "emacs-dired-sidebar")
11204 (home-page "https://github.com/jojojames/dired-sidebar")
11205 (version (git-version "0.1.0" revision commit))
11206 (source (origin
11207 (method git-fetch)
11208 (uri (git-reference (url home-page) (commit commit)))
11209 (file-name (git-file-name name version))
11210 (sha256
11211 (base32
11212 "0mck4qk6srbbf8xnn2sg11j822z4ybxvgavvy402d5sli515i8ca"))))
11213 (build-system emacs-build-system)
11214 (propagated-inputs
11215 `(("emacs-dired-subtree" ,emacs-dired-hacks)))
11216 (synopsis "Sidebar for Emacs using Dired")
11217 (description
11218 "This package provides a sidebar for Emacs similar to @code{NeoTree}
11219 or @code{treemacs}, but leveraging @code{Dired} to do the job of display.")
11220 (license license:gpl3+))))
11221
11222 (define-public emacs-which-key
11223 (package
11224 (name "emacs-which-key")
11225 (version "3.4.0")
11226 (source
11227 (origin
11228 (method git-fetch)
11229 (uri (git-reference
11230 (url "https://github.com/justbur/emacs-which-key.git")
11231 (commit (string-append "v" version))))
11232 (file-name (git-file-name name version))
11233 (sha256
11234 (base32 "1ahgb7dqdc75farkl0fg0a6hvx2067gdvjq99cd3z2dz56km0p05"))))
11235 (build-system emacs-build-system)
11236 (arguments
11237 `(#:tests? #t
11238 #:test-command '("emacs" "--batch"
11239 "-l" "which-key-tests.el"
11240 "-f" "ert-run-tests-batch-and-exit")))
11241 (home-page "https://github.com/justbur/emacs-which-key")
11242 (synopsis "Display available key bindings in popup")
11243 (description
11244 "@code{emacs-which-key} is a minor mode for Emacs that displays the key
11245 bindings following your currently entered incomplete command (a prefix) in a
11246 popup. For example, after enabling the minor mode if you enter C-x and wait
11247 for the default of 1 second, the minibuffer will expand with all of the
11248 available key bindings that follow C-x (or as many as space allows given your
11249 settings).")
11250 (license license:gpl3+)))
11251
11252 (define-public emacs-hercules
11253 (package
11254 (name "emacs-hercules")
11255 (version "0.2.1")
11256 (source
11257 (origin
11258 (method git-fetch)
11259 (uri (git-reference
11260 (url "https://gitlab.com/jjzmajic/hercules.el.git")
11261 (commit (string-append "v" version))))
11262 (file-name (git-file-name name version))
11263 (sha256
11264 (base32
11265 "19939pf5d6p2facmfhpyghx0vipb5k6ry3bmkmjfkj1zp132zfqf"))))
11266 (build-system emacs-build-system)
11267 (propagated-inputs
11268 `(("emacs-which-key" ,emacs-which-key)))
11269 (home-page "https://gitlab.com/jjzmajic/hercules.el")
11270 (synopsis "Call a chain of related commands without repeated prefix keys")
11271 (description
11272 "This package provides sticky-key-like functionality to obviate the
11273 need for repeated prefix-key sequences, and can reuse existing keymaps. The
11274 list of commands is displayed in a handy popup.")
11275 (license license:gpl3+)))
11276
11277 (define-public emacs-ws-butler
11278 (package
11279 (name "emacs-ws-butler")
11280 (version "0.6")
11281 (source (origin
11282 (method git-fetch)
11283 (uri (git-reference
11284 (url "https://github.com/lewang/ws-butler.git")
11285 (commit "323b651dd70ee40a25accc940b8f80c3a3185205")))
11286 (file-name (git-file-name name version))
11287 (sha256
11288 (base32
11289 "1a4b0lsmwq84qfx51c5xy4fryhb1ysld4fhgw2vr37izf53379sb"))))
11290 (build-system emacs-build-system)
11291 (native-inputs
11292 `(("ert-runner" ,emacs-ert-runner)))
11293 (arguments
11294 `(#:tests? #t
11295 #:test-command '("ert-runner" "tests")))
11296 (home-page "https://github.com/lewang/ws-butler")
11297 (synopsis "Trim spaces from end of lines")
11298 (description
11299 "This Emacs package automatically and unobtrusively trims whitespace
11300 characters from end of lines.")
11301 (license license:gpl3+)))
11302
11303 (define-public emacs-openwith
11304 (let ((changeset "aeb78782ec87680ea9f082a3f20a3675b3770cf9")
11305 (revision "0"))
11306 (package
11307 (name "emacs-openwith")
11308 (home-page "https://bitbucket.org/jpkotta/openwith")
11309 (version (git-version "0.0.1" revision changeset))
11310 (source (origin
11311 (method hg-fetch)
11312 (uri (hg-reference (url home-page) (changeset changeset)))
11313 (file-name (git-file-name name version))
11314 (sha256
11315 (base32
11316 "1wl6gnxsyhaad4cl9bxjc0qbc5jzvlwbwjbajs0n1s6qr07d6r01"))))
11317 (build-system emacs-build-system)
11318 (synopsis "Open external applications for files with Emacs")
11319 (description
11320 "This package enables you to associate file name patterns with external
11321 applications that are automatically invoked when you use commands like
11322 @code{find-file}. For example, you can have it open @code{png} files with
11323 @code{feh} and @code{mp4} files with @code{mpv}. This is especially useful
11324 when browsing files with Dired.")
11325 (license license:gpl2+))))
11326
11327 (define-public emacs-org-edit-latex
11328 (package
11329 (name "emacs-org-edit-latex")
11330 (version "0.8.0")
11331 (source
11332 (origin
11333 (method git-fetch)
11334 (uri (git-reference
11335 (url "https://github.com/et2010/org-edit-latex.git")
11336 (commit (string-append "v" version))))
11337 (file-name (git-file-name name version))
11338 (sha256
11339 (base32 "0zcllyhx9n9vcr5w87h0hfz25v52lvh5fi717cb7mf3jh89zh842"))))
11340 (build-system emacs-build-system)
11341 (propagated-inputs
11342 `(("emacs-auctex" ,emacs-auctex)
11343 ;; The version of org in Emacs 25.2 is not sufficient, because the
11344 ;; `org-latex-make-preamble' function is required.
11345 ("emacs-org" ,emacs-org)))
11346 (home-page "https://github.com/et2010/org-edit-latex")
11347 (synopsis "Edit a latex fragment just like editing a src block")
11348 (description "@code{emacs-org-edit-latex} is an extension for org-mode.
11349 It lets you edit a latex fragment in a dedicated buffer just like editing a
11350 src block.")
11351 (license license:gpl3+)))
11352
11353 (define-public emacs-emamux
11354 (package
11355 (name "emacs-emamux")
11356 (version "0.14")
11357 (source
11358 (origin
11359 (method git-fetch)
11360 (uri (git-reference
11361 (url "https://github.com/syohex/emacs-emamux.git")
11362 (commit version)))
11363 (file-name (git-file-name name version))
11364 (sha256
11365 (base32 "19y69qw79miim9cz5ji54gwspjkcp9g2c1xr5s7jj2fiabnxax6b"))))
11366 (build-system emacs-build-system)
11367 (home-page "https://github.com/syohex/emacs-emamux")
11368 (synopsis "Manipulate Tmux from Emacs")
11369 (description
11370 "@code{emacs-emamux} lets Emacs interact with the @code{tmux} terminal
11371 multiplexer.")
11372 (license license:gpl3+)))
11373
11374 (define-public emacs-rpm-spec-mode
11375 (package
11376 (name "emacs-rpm-spec-mode")
11377 (version "0.16")
11378 (source
11379 (origin
11380 (method url-fetch)
11381 ;; URI has the Fedora release number instead of the version
11382 ;; number. This will have to updated manually every new release.
11383 (uri (string-append
11384 "https://src.fedoraproject.org/cgit/rpms"
11385 "/emacs-rpm-spec-mode.git/snapshot"
11386 "/emacs-rpm-spec-mode-f26.tar.gz"))
11387 (sha256
11388 (base32
11389 "17dz80lhjrc89fj17pysl8slahzrqdkxgcjdk55zls6jizkr6kz3"))))
11390 (build-system emacs-build-system)
11391 (home-page "http://pkgs.fedoraproject.org/cgit/rpms/emacs-rpm-spec-mode.git")
11392 (synopsis "Emacs major mode for editing RPM spec files")
11393 (description "@code{emacs-rpm-spec-mode} provides an Emacs major mode for
11394 editing RPM spec files.")
11395 (license license:gpl2+)))
11396
11397 (define-public emacs-lcr
11398 (package
11399 (name "emacs-lcr")
11400 (version "1.1")
11401 (source
11402 (origin
11403 (method git-fetch)
11404 (uri (git-reference
11405 (url "https://github.com/jyp/lcr")
11406 (commit version)))
11407 (file-name (git-file-name name version))
11408 (sha256
11409 (base32 "0mc55icihxqpf8b05990q1lc2nj2792wcgyr73xsiqx0963sjaj8"))))
11410 (build-system emacs-build-system)
11411 (propagated-inputs
11412 `(("emacs-dash" ,emacs-dash)))
11413 (home-page "https://github.com/jyp/lcr")
11414 (synopsis "Lightweight coroutines in Emacs Lisp")
11415 (description "This package provides macros that can translate code into
11416 equivalent continuation-passing code, as well as miscellaneous utility
11417 functions written in continuation-passing style.")
11418 (license license:gpl3+)))
11419
11420 (define-public emacs-attrap
11421 (let ((commit "18cd1f7832870a36c404e872fa83a271fe8e688d")
11422 (revision "2"))
11423 (package
11424 (name "emacs-attrap")
11425 (version (git-version "1.0" revision commit))
11426 (source (origin
11427 (method git-fetch)
11428 (uri (git-reference
11429 (url "https://github.com/jyp/attrap")
11430 (commit commit)))
11431 (sha256
11432 (base32
11433 "078391949h0fgmshin8f79a1a595m06ig577rkgjqgngcp0d61l9"))
11434 (file-name (git-file-name name version))))
11435 (build-system emacs-build-system)
11436 (propagated-inputs
11437 `(("emacs-dash" ,emacs-dash)
11438 ("emacs-f" ,emacs-f)
11439 ("emacs-flycheck" ,emacs-flycheck)
11440 ("emacs-s" ,emacs-s)))
11441 (home-page "https://github.com/jyp/attrap")
11442 (synopsis "Fix coding error at point")
11443 (description "This package provides a command to fix the Flycheck error
11444 at point.")
11445 (license license:gpl3+))))
11446
11447 (define-public emacs-git-messenger
11448 (package
11449 (name "emacs-git-messenger")
11450 (version "0.18")
11451 (source
11452 (origin
11453 (method git-fetch)
11454 (uri (git-reference
11455 (url "https://github.com/syohex/emacs-git-messenger.git")
11456 (commit version)))
11457 (file-name (git-file-name name version))
11458 (sha256
11459 (base32 "04fnby2nblk8l70gv09asxkmnn53fh1pdfs77ix44npp99fyw8ix"))))
11460 (build-system emacs-build-system)
11461 (propagated-inputs
11462 `(("emacs-popup" ,emacs-popup)))
11463 (arguments
11464 `(#:tests? #t
11465 #:test-command '("emacs" "--batch" "-l" "test/test.el"
11466 "-f" "ert-run-tests-batch-and-exit")))
11467 (home-page "https://github.com/syohex/emacs-git-messenger")
11468 (synopsis "Popup commit message at current line")
11469 (description "@code{emacs-git-messenger} provides
11470 @code{git-messenger:popup-message}, a function that when called, will popup
11471 the last git commit message for the current line. This uses git-blame
11472 internally.")
11473 (license license:gpl3+)))
11474
11475 (define-public emacs-gitpatch
11476 (package
11477 (name "emacs-gitpatch")
11478 (version "0.5.1")
11479 (source
11480 (origin
11481 (method git-fetch)
11482 (uri (git-reference
11483 (url "https://github.com/tumashu/gitpatch.git")
11484 (commit (string-append "v" version))))
11485 (file-name (git-file-name name version))
11486 (sha256
11487 (base32 "1drf4fvmak7brf16axkh4nfz8pg44i7pjhfjz3dbkycbpp8y5vig"))))
11488 (build-system emacs-build-system)
11489 (home-page "https://github.com/tumashu/gitpatch")
11490 (synopsis "Mail git patch from Emacs")
11491 (description "@code{emacs-gitpatch} lets users easily send git patches,
11492 created by @code{git format-patch}, from @code{magit}, @code{dired} and
11493 @code{ibuffer} buffers.")
11494 (license license:gpl3+)))
11495
11496 (define-public emacs-erc-hl-nicks
11497 (package
11498 (name "emacs-erc-hl-nicks")
11499 (version "1.3.3")
11500 (source
11501 (origin
11502 (method git-fetch)
11503 (uri (git-reference
11504 (url "https://github.com/leathekd/erc-hl-nicks")
11505 (commit version)))
11506 (file-name (git-file-name name version))
11507 (sha256
11508 (base32 "0c82rxpl5v7bbxirf1ksg06xv5xcddh8nkrpj7i6nvfarwdfnk4f"))))
11509 (build-system emacs-build-system)
11510 (synopsis "Nickname highlighting for Emacs ERC")
11511 (description "@code{erc-hl-nicks} highlights nicknames in ERC, an IRC
11512 client for Emacs. The main features are:
11513 @itemize
11514 @item Auto-colorizes nicknames without having to specify colors
11515 @item Ignores certain characters that IRC clients add to nicknames to avoid
11516 duplicates (nickname, nickname’, nickname\", etc.)
11517 @item Attempts to produce colors with a sufficient amount of contrast between
11518 the nick color and the background color
11519 @end itemize\n")
11520 (home-page "https://github.com/leathekd/erc-hl-nicks")
11521 (license license:gpl3+)))
11522
11523 (define-public emacs-engine-mode
11524 (package
11525 (name "emacs-engine-mode")
11526 (version "2.1.1")
11527 (source
11528 (origin
11529 (method git-fetch)
11530 (uri (git-reference
11531 (url "https://github.com/hrs/engine-mode.git")
11532 (commit (string-append "v" version))))
11533 (file-name (git-file-name name version))
11534 (sha256
11535 (base32 "1xka8i4cdvp5r2v2mkli1zz17x1sdsnmszbhqav2rf94v656d91i"))))
11536 (build-system emacs-build-system)
11537 (synopsis "Minor mode for defining and querying search engines")
11538 (description "@code{engine-mode} is a global minor mode for Emacs. It
11539 enables you to easily define search engines, bind them to keybindings, and
11540 query them from the comfort of your editor.")
11541 (home-page "https://github.com/hrs/engine-mode")
11542 (license license:gpl3+)))
11543
11544 (define-public emacs-prop-menu
11545 (package
11546 (name "emacs-prop-menu")
11547 (version "0.1.2")
11548 (source
11549 (origin
11550 (method git-fetch)
11551 (uri (git-reference
11552 (url "https://github.com/david-christiansen/prop-menu-el.git")
11553 (commit version)))
11554 (file-name (git-file-name name version))
11555 (sha256
11556 (base32
11557 "18ap2liz5r5a8ja2zz9182fnfm47jnsbyblpq859zks356k37iwc"))))
11558 (build-system emacs-build-system)
11559 (home-page
11560 "https://github.com/david-christiansen/prop-menu-el")
11561 (synopsis
11562 "Create and display a context menu based on text and overlay properties")
11563 (description
11564 "This is a library for computing context menus based on text
11565 properties and overlays. The intended use is to have tools that
11566 annotate source code and others that use these annotations, without
11567 requiring a direct coupling between them, but maintaining
11568 discoverability.
11569
11570 Major modes that wish to use this library should first define an
11571 appropriate value for @code{prop-menu-item-functions}. Then, they should
11572 bind @code{prop-menu-by-completing-read} to an appropriate
11573 key. Optionally, a mouse pop-up can be added by binding
11574 @code{prop-menu-show-menu} to a mouse event.")
11575 (license license:gpl3+)))
11576
11577 (define-public emacs-idris-mode
11578 (let ((commit "acc8835449475d7cd205aba213fdd3d41c38ba40")
11579 (revision "0"))
11580 (package
11581 (name "emacs-idris-mode")
11582 (version (git-version "0.9.19" revision commit))
11583 (source
11584 (origin
11585 (method git-fetch)
11586 (uri (git-reference
11587 (url "https://github.com/idris-hackers/idris-mode.git")
11588 (commit commit)))
11589 (file-name (git-file-name name commit))
11590 (sha256
11591 (base32
11592 "0n9xbknc68id0mf8hbfmawi8qpvrs47ix807sk9ffv2g3ik32kk6"))))
11593 (build-system emacs-build-system)
11594 (propagated-inputs
11595 `(("emacs-prop-menu" ,emacs-prop-menu)))
11596 (home-page
11597 "https://github.com/idris-hackers/idris-mode")
11598 (synopsis "Major mode for editing Idris code")
11599 (description
11600 "This is an Emacs mode for editing Idris code. It requires the latest
11601 version of Idris, and some features may rely on the latest Git version of
11602 Idris.")
11603 (license license:gpl3+))))
11604
11605 (define-public emacs-browse-at-remote
11606 (package
11607 (name "emacs-browse-at-remote")
11608 (version "0.10.0")
11609 (source
11610 (origin
11611 (method git-fetch)
11612 (uri (git-reference
11613 (url "https://github.com/rmuslimov/browse-at-remote.git")
11614 (commit version)))
11615 (file-name (git-file-name name version))
11616 (sha256
11617 (base32 "0vhia7xmszcb3lxrb8wh93a3knjfzj48h8nhj4fh8zj1pjz6args"))))
11618 (build-system emacs-build-system)
11619 (propagated-inputs
11620 `(("emacs-f" ,emacs-f)
11621 ("emacs-s" ,emacs-s)))
11622 (native-inputs
11623 `(("ert-runner" ,emacs-ert-runner)))
11624 (arguments
11625 `(#:tests? #t
11626 #:test-command '("ert-runner")))
11627 (home-page "https://github.com/rmuslimov/browse-at-remote")
11628 (synopsis "Open github/gitlab/bitbucket/stash page from Emacs")
11629 (description
11630 "This Emacs package allows you to open a target page on
11631 github/gitlab (or bitbucket) by calling @code{browse-at-remote} command.
11632 It supports dired buffers and opens them in tree mode at destination.")
11633 (license license:gpl3+)))
11634
11635 (define-public emacs-tiny
11636 (let ((commit "fd8a6b0b0c564d8242259e20e557ee6041f40908")
11637 (revision "1"))
11638 (package
11639 (name "emacs-tiny")
11640 (version (git-version "0.2.1" revision commit))
11641 (source
11642 (origin
11643 (method git-fetch)
11644 (uri (git-reference
11645 (url "https://github.com/abo-abo/tiny.git")
11646 (commit commit)))
11647 (file-name (git-file-name name version))
11648 (sha256
11649 (base32
11650 "1498j392ap2mk4zmsm2id16pfgvj78r428da9vw7hdrzzibai2cx"))))
11651 (build-system emacs-build-system)
11652 (arguments
11653 `(#:tests? #t
11654 #:test-command '("make" "test")))
11655 (home-page "https://github.com/abo-abo/tiny")
11656 (synopsis "Quickly generate linear ranges in Emacs")
11657 (description
11658 "The main command of the @code{tiny} extension for Emacs is @code{tiny-expand}.
11659 It is meant to quickly generate linear ranges, e.g. 5, 6, 7, 8. Some elisp
11660 proficiency is an advantage, since you can transform your numeric range with
11661 an elisp expression.")
11662 (license license:gpl3+))))
11663
11664 (define-public emacs-emojify
11665 (package
11666 (name "emacs-emojify")
11667 (version "1.2")
11668 (source
11669 (origin
11670 (method git-fetch)
11671 (uri (git-reference
11672 (url "https://github.com/iqbalansari/emacs-emojify")
11673 (commit (string-append "v" version))))
11674 (file-name (git-file-name name version))
11675 (sha256
11676 (base32
11677 "1fqnj5x7ivjkm5y927dqqnm85q5hzczlb0hrfpjalrhasa6ijsrm"))))
11678 (build-system emacs-build-system)
11679 (arguments
11680 `(#:include (cons "^data/" %default-include)))
11681 (propagated-inputs
11682 `(("emacs-ht" ,emacs-ht)))
11683 (home-page "https://github.com/iqbalansari/emacs-emojify")
11684 (synopsis "Display emojis in Emacs")
11685 (description "This package displays emojis in Emacs similar to how Github,
11686 Slack, and other websites do. It can display plain ASCII like @code{:)} as
11687 well as Github-style emojis like @code{:smile:}. It provides a minor mode
11688 @code{emojify-mode} to enable the display of emojis in a buffer.")
11689 (license license:gpl3+)))
11690
11691 (define-public emacs-make-it-so
11692 (let ((commit "b73dfb640588123c9eece230ad72b37604f5c126")
11693 (revision "2"))
11694 (package
11695 (name "emacs-make-it-so")
11696 (version (git-version "0.1.0" revision commit))
11697 (source
11698 (origin
11699 (method git-fetch)
11700 (uri (git-reference
11701 (url "https://github.com/abo-abo/make-it-so")
11702 (commit commit)))
11703 (file-name (git-file-name name version))
11704 (sha256
11705 (base32
11706 "0p6xhyinzzkrwzbpxqfm8hlii0ikvmmylya240bwsa77w0g1k6xq"))))
11707 (build-system emacs-build-system)
11708 (arguments
11709 `(#:include (cons "^recipes/" %default-include)))
11710 (propagated-inputs
11711 `(("emacs-ivy" ,emacs-ivy)))
11712 (home-page "https://github.com/abo-abo/make-it-so")
11713 (synopsis "Transform files with Makefile recipes")
11714 (description "This package provides an interface for selecting from
11715 different conversion recipes, often including tools like @code{ffmpeg} or
11716 @code{convert}. The conversion command need only be written once, and
11717 subsequent invocations can be readily customized. Several recipes are
11718 included by default, and more can be readily added.")
11719 (license license:gpl3+))))
11720
11721 (define-public emacs-unidecode
11722 (let ((commit "5502ada9287b4012eabb879f12f5b0a9df52c5b7")
11723 (revision "1"))
11724 (package
11725 (name "emacs-unidecode")
11726 (version (git-version "0.2" revision commit))
11727 (source
11728 (origin
11729 (method git-fetch)
11730 (uri (git-reference
11731 (url "https://github.com/sindikat/unidecode")
11732 (commit commit)))
11733 (file-name (git-file-name name version))
11734 (sha256
11735 (base32
11736 "03x3nakbhmakwm977mwrf8jifvjnfwzpjv6wrwpizbqjnkgfchmn"))))
11737 (build-system emacs-build-system)
11738 (arguments
11739 `(#:include (cons* "^tools/" "^data/" %default-include)
11740 #:tests? #t
11741 #:test-command '("emacs" "--batch"
11742 "-l" "unidecode-test.el"
11743 "-f" "ert-run-tests-batch-and-exit")
11744 #:phases
11745 (modify-phases %standard-phases
11746 (add-before 'check 'make-tests-writable
11747 (lambda _
11748 (make-file-writable "unidecode-test.el")
11749 #t))
11750 (add-before 'check 'add-require
11751 (lambda _
11752 (emacs-batch-edit-file "unidecode-test.el"
11753 `(progn (progn (goto-char (point-min))
11754 (re-search-forward
11755 "ert-deftest")
11756 (forward-line -1)
11757 (insert "(require 'unidecode)"))
11758 (basic-save-buffer)))
11759 #t)))))
11760 (home-page "https://github.com/sindikat/unidecode")
11761 (synopsis "Transliterate Unicode text to ASCII")
11762 (description "This package provides functions for converting Unicode to ASCII.")
11763 (license license:gpl2+))))
11764
11765 (define-public emacs-pubmed
11766 (package
11767 (name "emacs-pubmed")
11768 (version "0.2.1")
11769 (source
11770 (origin
11771 (method git-fetch)
11772 (uri (git-reference
11773 (url "https://gitlab.com/fvdbeek/emacs-pubmed.git")
11774 (commit (string-append "v" version))))
11775 (file-name (git-file-name name version))
11776 (sha256
11777 (base32
11778 "15bwjxc7g43m5pi8z17anaqqkvi209r7kk1chmf175477gvrv7c0"))))
11779 (build-system emacs-build-system)
11780 (propagated-inputs
11781 `(("emacs-deferred" ,emacs-deferred)
11782 ("emacs-esxml" ,emacs-esxml)
11783 ("emacs-s" ,emacs-s)
11784 ("emacs-unidecode" ,emacs-unidecode)))
11785 (home-page "https://gitlab.com/fvdbeek/emacs-pubmed")
11786 (synopsis "Interface to PubMed")
11787 (description "This package provides an Emacs interface to the PubMed
11788 database of references on life sciences.")
11789 (license license:gpl3+)))
11790
11791 (define-public emacs-websocket
11792 (package
11793 (name "emacs-websocket")
11794 (version "1.10")
11795 (source
11796 (origin
11797 (method git-fetch)
11798 (uri (git-reference
11799 (url "https://github.com/ahyatt/emacs-websocket.git")
11800 (commit version)))
11801 (file-name (git-file-name name version))
11802 (sha256
11803 (base32
11804 "1dgrf7na6r6mmkknphzshlbd5fnzisg0qn0j7vfpa38wgsymaq52"))))
11805 (build-system emacs-build-system)
11806 (arguments
11807 `(#:tests? #t
11808 ;; TODO: also enable websocket-functional-test.el
11809 #:test-command '("emacs" "--batch"
11810 "-l" "websocket-test.el"
11811 "-f" "ert-run-tests-batch-and-exit")))
11812 (home-page "https://elpa.gnu.org/packages/websocket.html")
11813 (synopsis "Emacs WebSocket client and server")
11814 (description "This is an Elisp library for WebSocket clients to talk to
11815 WebSocket servers, and for WebSocket servers to accept connections from
11816 WebSocket clients. This library is designed to be used by other library
11817 writers, to write applications that use WebSockets, and is not useful by
11818 itself.")
11819 (license license:gpl3+)))
11820
11821 (define-public emacs-oauth2
11822 (package
11823 (name "emacs-oauth2")
11824 (version "0.11")
11825 (source
11826 (origin
11827 (method url-fetch)
11828 (uri (string-append "https://elpa.gnu.org/packages/oauth2-"
11829 version ".el"))
11830 (sha256
11831 (base32
11832 "0ydkc9jazsnbbvfhd47mql52y7k06n3z7r0naqxkwb99j9blqsmp"))))
11833 (build-system emacs-build-system)
11834 (home-page "https://elpa.gnu.org/packages/oauth2.html")
11835 (synopsis "OAuth 2.0 authorization protocol implementation")
11836 (description
11837 "This package provides an Elisp implementation of the OAuth 2.0 draft.
11838 The main entry point is @code{oauth2-auth-and-store} which will return a token
11839 structure. This token structure can be then used with
11840 @code{oauth2-url-retrieve-synchronously} or @code{oauth2-url-retrieve} to
11841 retrieve any data that need OAuth authentication to be accessed. If the token
11842 needs to be refreshed, the code handles it automatically and stores the new
11843 value of the access token.")
11844 (license license:gpl3+)))
11845
11846 (define-public emacs-circe
11847 (package
11848 (name "emacs-circe")
11849 (version "2.11")
11850 (source
11851 (origin
11852 (method git-fetch)
11853 (uri (git-reference
11854 (url "https://github.com/jorgenschaefer/circe.git")
11855 (commit (string-append "v" version))))
11856 (file-name (git-file-name name version))
11857 (sha256
11858 (base32 "0cr9flk310yn2jgvj4hbqw9nj5wlfi0fazdkqafzidgz6iq150wd"))))
11859 (build-system emacs-build-system)
11860 (arguments
11861 `(#:tests? #t
11862 #:test-command '("buttercup" "-L" ".")
11863 #:phases
11864 (modify-phases %standard-phases
11865 ;; The HOME environment variable should be set to an existing
11866 ;; directory for the tests to succeed.
11867 (add-before 'check 'set-home
11868 (lambda _
11869 (setenv "HOME" "/tmp")
11870 #t)))))
11871 (native-inputs
11872 `(("emacs-buttercup" ,emacs-buttercup)))
11873 ;; In order to securely connect to an IRC server using TLS, Circe requires
11874 ;; the GnuTLS binary.
11875 (propagated-inputs
11876 `(("gnutls" ,gnutls)))
11877 (home-page "https://github.com/jorgenschaefer/circe")
11878 (synopsis "Client for IRC in Emacs")
11879 (description "Circe is a Client for IRC in Emacs. It integrates well with
11880 the rest of the editor, using standard Emacs key bindings and indicating
11881 activity in channels in the status bar so it stays out of your way unless you
11882 want to use it.")
11883 (license license:gpl3+)))
11884
11885 (define-public emacs-tracking
11886 (package
11887 (inherit emacs-circe)
11888 (name "emacs-tracking")
11889 (arguments
11890 ;; "tracking.el" is a library extracted from Circe package. It requires
11891 ;; "shorten.el".
11892 `(#:include '("^shorten.el$" "^tracking.el$")
11893 ,@(package-arguments emacs-circe)))
11894 (home-page "https://github.com/jorgenschaefer/circe/wiki/Tracking")
11895 (synopsis "Buffer tracking library")
11896 (description "@code{tracking.el} provides a way for different modes to
11897 notify the user that a buffer needs attention. The user then can cycle
11898 through them using @key{C-c C-SPC}.")
11899 (license license:gpl3+)))
11900
11901 (define-public emacs-slack
11902 (let ((commit "b7b9eada0bf62d40dfe764b00f55913a2d3d742e")
11903 (revision "7"))
11904 (package
11905 (name "emacs-slack")
11906 (version (git-version "0.0.2" revision commit))
11907 (source (origin
11908 (method git-fetch)
11909 (uri (git-reference
11910 (url "https://github.com/yuya373/emacs-slack.git")
11911 (commit commit)))
11912 (file-name (git-file-name name commit))
11913 (sha256
11914 (base32
11915 "0cqr7jnfxzb0z2wy79pdwpv9cvmawjif1kin3zbp8q7zhwrq09v0"))))
11916 (build-system emacs-build-system)
11917 (arguments
11918 `(#:phases
11919 (modify-phases %standard-phases
11920 ;; HOME needs to exist for source compilation.
11921 (add-before 'build 'set-HOME
11922 (lambda _ (setenv "HOME" "/tmp") #t)))))
11923 (propagated-inputs
11924 `(("emacs-alert" ,emacs-alert)
11925 ("emacs-emojify" ,emacs-emojify)
11926 ("emacs-helm" ,emacs-helm)
11927 ("emacs-request" ,emacs-request)
11928 ("emacs-websocket" ,emacs-websocket)
11929 ("emacs-oauth2" ,emacs-oauth2)
11930 ("emacs-circe" ,emacs-circe)))
11931 (home-page "https://github.com/yuya373/emacs-slack")
11932 (synopsis "Slack client for Emacs")
11933 (description "This package provides an Emacs client for the Slack
11934 messaging service.")
11935 (license license:gpl3+))))
11936
11937 (define-public emacs-bash-completion
11938 (package
11939 (name "emacs-bash-completion")
11940 (version "2.1.0")
11941 (source
11942 (origin
11943 (method git-fetch)
11944 (uri (git-reference
11945 (url "https://github.com/szermatt/emacs-bash-completion.git")
11946 (commit version)))
11947 (file-name (git-file-name name version))
11948 (sha256
11949 (base32 "1a1wxcqzh0javjmxwi3lng5i99xiylm8lm04kv4q1lh9bli6vmv0"))))
11950 (inputs `(("bash" ,bash)))
11951 (build-system emacs-build-system)
11952 (arguments
11953 `(#:phases
11954 (modify-phases %standard-phases
11955 (add-after 'unpack 'make-git-checkout-writable
11956 (λ _
11957 (for-each make-file-writable (find-files "."))
11958 #t))
11959 (add-before 'install 'configure
11960 (lambda* (#:key inputs #:allow-other-keys)
11961 (let ((bash (assoc-ref inputs "bash")))
11962 (emacs-substitute-variables "bash-completion.el"
11963 ("bash-completion-prog" (string-append bash "/bin/bash"))))
11964 #t)))))
11965 (home-page "https://github.com/szermatt/emacs-bash-completion")
11966 (synopsis "Bash completion for the shell buffer")
11967 (description
11968 "@code{bash-completion} defines dynamic completion hooks for shell-mode
11969 and shell-command prompts that are based on Bash completion.")
11970 (license license:gpl2+)))
11971
11972 (define-public emacs-easy-kill
11973 (package
11974 (name "emacs-easy-kill")
11975 (version "0.9.3")
11976 (source (origin
11977 (method url-fetch)
11978 (uri (string-append "https://elpa.gnu.org/packages/easy-kill-"
11979 version ".tar"))
11980 (sha256
11981 (base32
11982 "17nw0mglmg877axwg1d0gs03yc0p04lzmd3pl0nsnqbh3303fnqb"))))
11983 (build-system emacs-build-system)
11984 (home-page "https://github.com/leoliu/easy-kill")
11985 (synopsis "Kill and mark things easily in Emacs")
11986 (description
11987 "This package provides commands @code{easy-kill} and @code{easy-mark} to
11988 let users kill or mark things easily.")
11989 (license license:gpl3+)))
11990
11991 (define-public emacs-csv-mode
11992 (package
11993 (name "emacs-csv-mode")
11994 (version "1.12")
11995 (source
11996 (origin
11997 (method url-fetch)
11998 (uri (string-append "https://elpa.gnu.org/packages/"
11999 "csv-mode-" version ".tar"))
12000 (sha256
12001 (base32 "0bya12smlrzwv4cbcmch4kg1fazp4k0ndrh1z17ix9p8c14d0v1j"))))
12002 (build-system emacs-build-system)
12003 (home-page "https://elpa.gnu.org/packages/csv-mode.html")
12004 (synopsis "Major mode for editing comma/char separated values")
12005 (description
12006 "This Emacs package implements CSV mode, a major mode for editing records
12007 in a generalized CSV (character-separated values) format.")
12008 (license license:gpl3+)))
12009
12010 (define-public emacs-transmission
12011 (package
12012 (name "emacs-transmission")
12013 (version "0.12.1")
12014 (source
12015 (origin
12016 (method git-fetch)
12017 (uri (git-reference
12018 (url "https://github.com/holomorph/transmission.git")
12019 (commit version)))
12020 (file-name (git-file-name name version))
12021 (sha256
12022 (base32 "0kvg2gawsgy440x1fsl2c4pkxwp3zirq9rzixanklk0ryijhd3ry"))))
12023 (build-system emacs-build-system)
12024 (home-page "https://github.com/holomorph/transmission")
12025 (synopsis "Emacs interface to a Transmission session")
12026 (description "This package provides an Emacs interface to interact with a
12027 running session of the Transmission Bittorrent client.
12028
12029 Features:
12030
12031 @itemize
12032 @item List, add, start/stop, verify, remove torrents.
12033 @item Set speed limits, ratio limits, bandwidth priorities, trackers.
12034 @item Navigate to the corresponding file list, torrent info, peer info
12035 contexts.
12036 @item Toggle downloading and set priorities for individual files.
12037 @end itemize\n")
12038 (license license:gpl3+)))
12039
12040 (define-public emacs-polymode
12041 (package
12042 (name "emacs-polymode")
12043 (version "0.2")
12044 (source (origin
12045 (method git-fetch)
12046 (uri (git-reference
12047 (url "https://github.com/polymode/polymode.git")
12048 (commit (string-append "v" version))))
12049 (file-name (git-file-name name version))
12050 (sha256
12051 (base32
12052 "04v0gnzfsjb50bgly6kvpryx8cyzwjaq2llw4qv9ijw1l6ixmq3b"))))
12053 (build-system emacs-build-system)
12054 (home-page "https://github.com/polymode/polymode")
12055 (synopsis "Framework for multiple Emacs modes based on indirect buffers")
12056 (description
12057 "Polymode is an Emacs package that offers generic support for multiple
12058 major modes inside a single Emacs buffer. It is lightweight, object oriented
12059 and highly extensible. Creating a new polymode typically takes only a few
12060 lines of code. Polymode also provides extensible facilities for external
12061 literate programming tools for exporting, weaving and tangling.")
12062 (license license:gpl3+)))
12063
12064 (define-public emacs-polymode-ansible
12065 (let ((commit "b26094d029e25dc797b94254f797e7807a57e4c8"))
12066 (package
12067 (name "emacs-polymode-ansible")
12068 ;; No upstream version release yet.
12069 (version (git-version "0.1" "1" commit))
12070 (source
12071 (origin
12072 (method git-fetch)
12073 (uri (git-reference
12074 (url "https://gitlab.com/mavit/poly-ansible")
12075 (commit commit)))
12076 (file-name (git-file-name name version))
12077 (sha256
12078 (base32
12079 "055shddqibib3hx2ykwdz910nrqws40cd407mq946l2bf6v87gj6"))))
12080 (build-system emacs-build-system)
12081 (propagated-inputs
12082 `(("emacs-ansible-doc" ,emacs-ansible-doc)
12083 ("emacs-jinja2-mode" ,emacs-jinja2-mode)
12084 ("emacs-polymode" ,emacs-polymode)
12085 ("emacs-yaml-mode" ,emacs-yaml-mode)))
12086 (properties '((upstream-name . "poly-ansible")))
12087 (home-page "https://gitlab.com/mavit/poly-ansible/")
12088 (synopsis "Polymode for Ansible - Jinja2 in YAML")
12089 (description
12090 "Edit YAML files for Ansible containing embedded Jinja2 templating.")
12091 (license license:gpl3+))))
12092
12093 (define-public emacs-polymode-org
12094 (package
12095 (name "emacs-polymode-org")
12096 (version "0.2")
12097 (source
12098 (origin
12099 (method git-fetch)
12100 (uri (git-reference
12101 (url "https://github.com/polymode/poly-org.git")
12102 (commit (string-append "v" version))))
12103 (file-name (git-file-name name version))
12104 (sha256
12105 (base32
12106 "04x6apjad4kg30456z1j4ipp64yjgkcaim6hqr6bb0rmrianqhck"))))
12107 (build-system emacs-build-system)
12108 (propagated-inputs
12109 `(("emacs-polymode" ,emacs-polymode)))
12110 (properties '((upstream-name . "poly-org")))
12111 (home-page "https://github.com/polymode/poly-org")
12112 (synopsis "Polymode definitions for Org mode buffers")
12113 (description
12114 "Provides definitions for @code{emacs-polymode} to support
12115 @code{emacs-org} buffers. Edit source blocks in an Org mode buffer using the
12116 native modes of the blocks' languages while remaining inside the primary Org
12117 buffer.")
12118 (license license:gpl3+)))
12119
12120 (define-public eless
12121 (package
12122 (name "eless")
12123 (version "0.3")
12124 (source
12125 (origin
12126 (method git-fetch)
12127 (uri (git-reference
12128 (url "https://github.com/kaushalmodi/eless.git")
12129 (commit (string-append "v" version))))
12130 (file-name (git-file-name name version))
12131 (sha256
12132 (base32 "0jr7vhh4vw69llhi0fh9ljscljkszkj0acdxl04da5hvqv6pnqbb"))))
12133 (build-system trivial-build-system)
12134 (inputs
12135 `(("bash" ,bash)))
12136 (arguments
12137 `(#:modules ((guix build utils))
12138 #:builder
12139 (begin
12140 (use-modules (guix build utils))
12141 (copy-recursively (assoc-ref %build-inputs "source") "source")
12142 (chdir "source")
12143 (substitute* "eless" (("/usr/bin/env bash")
12144 (string-append (assoc-ref %build-inputs "bash")
12145 "/bin/bash")))
12146 (install-file "eless" (string-append %output "/bin"))
12147 (install-file "doc/eless.info" (string-append %output "/share/info"))
12148 #t)))
12149 (home-page "https://github.com/kaushalmodi/eless")
12150 (synopsis "Use Emacs as a paginator")
12151 (description "@code{eless} provides a combination of Bash script
12152 and a minimal Emacs view-mode.
12153
12154 Feautures:
12155
12156 @itemize
12157 @item Independent of a user’s Emacs config.
12158 @item Customizable via the @code{(locate-user-emacs-file \"elesscfg\")} config.
12159 @item Not require an Emacs server to be already running.
12160 @item Syntax highlighting.
12161 @item Org-mode file rendering.
12162 @item @code{man} page viewer.
12163 @item Info viewer.
12164 @item Dired, wdired, (batch edit symbolic links).
12165 @item Colored diffs, git diff, git log, ls with auto ANSI detection.
12166 @item Filter log files lines matching a regexp.
12167 @item Auto-revert log files similar to @code{tail -f}.
12168 @item Quickly change frame and font sizes.
12169 @end itemize\n")
12170 (license license:expat)))
12171
12172 (define-public emacs-evil-matchit
12173 (package
12174 (name "emacs-evil-matchit")
12175 (version "2.3.4")
12176 (source
12177 (origin
12178 (method git-fetch)
12179 (uri (git-reference
12180 (url "https://github.com/redguardtoo/evil-matchit.git")
12181 (commit version)))
12182 (file-name (git-file-name name version))
12183 (sha256
12184 (base32 "1nflkmx08n3ya5vaipy1xg19hnqcp6f7ddsx9xjh5gl6ix2iz0az"))))
12185 (build-system emacs-build-system)
12186 (propagated-inputs
12187 `(("emacs-evil" ,emacs-evil)))
12188 (home-page "https://github.com/redguardtoo/evil-matchit")
12189 (synopsis "Vim matchit ported into Emacs")
12190 (description
12191 "@code{evil-matchit} is a minor mode for jumping between matching tags in
12192 evil mode using @kbd{%}. It is a port of @code{matchit} for Vim.")
12193 (license license:gpl3+)))
12194
12195 (define-public emacs-evil-smartparens
12196 (package
12197 (name "emacs-evil-smartparens")
12198 (version "0.4.0")
12199 (source
12200 (origin
12201 (method git-fetch)
12202 (uri (git-reference
12203 (url "https://github.com/expez/evil-smartparens.git")
12204 (commit version)))
12205 (file-name (git-file-name name version))
12206 (sha256
12207 (base32 "1di4qz5fbrlwbg16c2j0m7y8zqfxw027qd7zqmc3rwk9znbhg7wl"))))
12208 (build-system emacs-build-system)
12209 (propagated-inputs
12210 `(("emacs-evil" ,emacs-evil)
12211 ("emacs-smartparens" ,emacs-smartparens)))
12212 (home-page "https://github.com/expez/evil-smartparens")
12213 (synopsis "Emacs Evil integration for Smartparens")
12214 (description "@code{emacs-evil-smartparens} is an Emacs minor mode which
12215 makes Evil play nice with Smartparens. Evil is an Emacs minor mode that
12216 emulates Vim features and provides Vim-like key bindings.")
12217 (license license:gpl3+)))
12218
12219 (define-public emacs-evil-quickscope
12220 (package
12221 (name "emacs-evil-quickscope")
12222 (version "0.1.4")
12223 (source
12224 (origin
12225 (method git-fetch)
12226 (uri (git-reference
12227 (url "https://github.com/blorbx/evil-quickscope.git")
12228 (commit (string-append "v" version))))
12229 (file-name (git-file-name name version))
12230 (sha256
12231 (base32 "1ja9ggj70wf0nmma4xnc1zdzg2crq9h1cv3cj7cgwjmllflgkfq7"))))
12232 (build-system emacs-build-system)
12233 (propagated-inputs
12234 `(("emacs-evil" ,emacs-evil)))
12235 (arguments
12236 `(#:tests? #t
12237 #:test-command '("emacs" "--batch"
12238 "-l" "evil-quickscope-tests.el"
12239 "-f" "ert-run-tests-batch-and-exit")))
12240 (home-page "https://github.com/blorbx/evil-quickscope")
12241 (synopsis "Target highlighting for emacs evil-mode f,F,t and T commands")
12242 (description "@code{emacs-evil-quickscope} highlights targets for Evil
12243 mode’s f,F,t,T keys, allowing for quick navigation within a line. It is a
12244 port of quick-scope for Vim. Evil is an Emacs minor mode that emulates Vim
12245 features and provides Vim-like key bindings.")
12246 (license license:gpl3+)))
12247
12248 (define-public emacs-bongo
12249 (package
12250 (name "emacs-bongo")
12251 (version "1.1")
12252 (source
12253 (origin
12254 (method git-fetch)
12255 (uri (git-reference
12256 (url "https://github.com/dbrock/bongo.git")
12257 (commit version)))
12258 (file-name (git-file-name name version))
12259 (sha256
12260 (base32 "1nszph9mn98flyhn1jq3y6mdh6jymjkvj5ng36ql016dj92apvhv"))))
12261 (build-system emacs-build-system)
12262 (home-page "https://github.com/dbrock/bongo")
12263 (synopsis "Media player for Emacs")
12264 (description
12265 "This package provides a flexible media player for Emacs. @code{Bongo}
12266 supports multiple backends such as @code{vlc}, @code{mpg123},
12267 @code{ogg123}, @code{speexdec}, @code{timidity}, @code{mikmod} and
12268 @code{afplay}.")
12269 (license license:gpl2+)))
12270
12271 (define-public emacs-groovy-modes
12272 (package
12273 (name "emacs-groovy-modes")
12274 (version "2.0")
12275 (source (origin
12276 (method git-fetch)
12277 (uri (git-reference
12278 (url "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes")
12279 (commit version)))
12280 (file-name (git-file-name name version))
12281 (sha256
12282 (base32
12283 "0c1d4cbnlny8gpcd20zr1wxx6ggf28jgh7sgd5r1skpsvjpbfqx2"))))
12284 (build-system emacs-build-system)
12285 (propagated-inputs
12286 `(("emacs-s" ,emacs-s)))
12287 (home-page "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes")
12288 (synopsis "Groovy related modes for Emacs")
12289 (description
12290 "This package provides @code{groovy-mode} for syntax highlighting in
12291 Groovy source files, REPL integration with run-groovy and Grails project
12292 navigation with the grails mode.")
12293 (license license:gpl3+)))
12294
12295 (define-public emacs-org-tree-slide
12296 (let ((commit "036a36eec1cf712d3db155572aed325daa372eb5")
12297 (revision "2"))
12298 (package
12299 (name "emacs-org-tree-slide")
12300 (version (git-version "2.8.4" revision commit))
12301 (source (origin
12302 (method git-fetch)
12303 (uri (git-reference
12304 (url "https://github.com/takaxp/org-tree-slide.git")
12305 (commit commit)))
12306 (sha256
12307 (base32
12308 "1r8ncx25xmxicgciyv5przp68y8qgy40fm10ba55awvql4xcm0yk"))
12309 (file-name (git-file-name name version))))
12310 (build-system emacs-build-system)
12311 (home-page "https://github.com/takaxp/org-tree-slide")
12312 (synopsis "Presentation tool for org-mode")
12313 (description
12314 "Org-tree-slide provides a slideshow mode to view org-mode files. Use
12315 @code{org-tree-slide-mode} to enter the slideshow mode, and then @kbd{C->} and
12316 @kbd{C-<} to jump to the next and previous slide.")
12317 (license license:gpl3+))))
12318
12319 (define-public emacs-scratch-el
12320 (let ((commit "2cdf2b841ce7a0987093f65b0cc431947549f897")
12321 (revision "1"))
12322 (package
12323 (name "emacs-scratch-el")
12324 (version (git-version "1.2" revision commit))
12325 (source (origin
12326 (method git-fetch)
12327 (uri (git-reference
12328 (url "https://github.com/ieure/scratch-el.git")
12329 (commit commit)))
12330 (file-name (git-file-name name version))
12331 (sha256
12332 (base32
12333 "0wscsndynjmnliajqaz28r1ww81j8wh84zwaaswx51abhwgl0idf"))))
12334 (build-system emacs-build-system)
12335 (native-inputs
12336 `(("texinfo" ,texinfo)))
12337 (arguments
12338 '(#:phases
12339 (modify-phases %standard-phases
12340 (add-after 'install 'install-doc
12341 (lambda* (#:key outputs #:allow-other-keys)
12342 (unless (invoke "makeinfo" "scratch.texi")
12343 (error "makeinfo failed"))
12344 (install-file "scratch.info"
12345 (string-append (assoc-ref outputs "out")
12346 "/share/info"))
12347 #t)))))
12348 (home-page "https://github.com/ieure/scratch-el/")
12349 (synopsis "Create scratch buffers with the same mode as current buffer")
12350 (description "Scratch is an extension to Emacs that enables one to create
12351 scratch buffers that are in the same mode as the current buffer. This is
12352 notably useful when working on code in some language; you may grab code into a
12353 scratch buffer, and, by virtue of this extension, do so using the Emacs
12354 formatting rules for that language.")
12355 (license license:bsd-2))))
12356
12357 (define-public emacs-kv
12358 (package
12359 (name "emacs-kv")
12360 (version "0.0.19")
12361 (source
12362 (origin
12363 (method git-fetch)
12364 (uri (git-reference
12365 (url "https://github.com/nicferrier/emacs-kv.git")
12366 (commit "721148475bce38a70e0b678ba8aa923652e8900e")))
12367 (file-name (git-file-name name version))
12368 (sha256
12369 (base32
12370 "0r0lz2s6gvy04fwnafai668jsf4546h4k6zd6isx5wpk0n33pj5m"))))
12371 (build-system emacs-build-system)
12372 (arguments
12373 `(#:tests? #t
12374 #:test-command '("emacs" "--batch" "-l" "kv-tests.el"
12375 "-f" "ert-run-tests-batch-and-exit")))
12376 (home-page "https://github.com/nicferrier/emacs-kv")
12377 (synopsis "Key/Value data structures library for Emacs Lisp")
12378 (description "@code{emacs-kv} is a collection of tools for dealing with
12379 key/value data structures such as plists, alists and hash-tables in Emacs
12380 Lisp.")
12381 (license license:gpl3+)))
12382
12383 (define-public emacs-esxml
12384 (package
12385 (name "emacs-esxml")
12386 (version "0.3.4")
12387 (source (origin
12388 (method git-fetch)
12389 (uri (git-reference
12390 (url "https://github.com/tali713/esxml.git")
12391 (commit version)))
12392 (file-name (git-file-name name version))
12393 (sha256
12394 (base32
12395 "00vv8a75wdklygdyr4km9mc2ismxak69c45jmcny41xl44rp9x8m"))))
12396 (build-system emacs-build-system)
12397 (arguments
12398 `(#:phases
12399 (modify-phases %standard-phases
12400 (add-after 'unpack 'fix-sources
12401 (lambda _
12402 ;; See: https://github.com/tali713/esxml/pull/28.
12403 (substitute* "css-lite.el"
12404 ((";;; main interface")
12405 (string-append ";;; main interface\n"
12406 "(require 'cl-lib)"))
12407 (("mapcan")
12408 "cl-mapcan")
12409 (("',\\(cl-mapcan #'process-css-rule rules\\)")
12410 "(cl-mapcan #'process-css-rule ',rules)"))
12411 (substitute* "esxml-form.el"
12412 ((",esxml-form-field-defn")
12413 "#'esxml-form-field-defn"))
12414 ;; See: https://github.com/tali713/esxml/issues/25
12415 (delete-file "esxpath.el")
12416 #t)))))
12417 (propagated-inputs
12418 `(("emacs-kv" ,emacs-kv)))
12419 (home-page "https://github.com/tali713/esxml/")
12420 (synopsis "SXML for EmacsLisp")
12421 (description "This is XML/XHTML done with S-Expressions in EmacsLisp.
12422 Simply, this is the easiest way to write HTML or XML in Lisp. This library
12423 uses the native form of XML representation as used by many libraries already
12424 included within Emacs. See @code{esxml-to-xml} for a concise description of
12425 the format.")
12426 (license license:gpl3+)))
12427
12428 (define-public emacs-nov-el
12429 (package
12430 (name "emacs-nov-el")
12431 (version "0.2.9")
12432 (source (origin
12433 (method git-fetch)
12434 (uri (git-reference
12435 (url "https://github.com/wasamasa/nov.el.git")
12436 (commit version)))
12437 (file-name (git-file-name name version))
12438 (sha256
12439 (base32
12440 "0v01l1p35mcigixs6j4c5bpc7n7bd51kxa0p3l1xl0gr92774yq3"))))
12441 (build-system emacs-build-system)
12442 (arguments
12443 `(#:phases
12444 (modify-phases %standard-phases
12445 (add-after 'unpack 'embed-path-to-unzip
12446 (lambda _
12447 (substitute* "nov.el"
12448 (("\\(executable-find \"unzip\"\\)")
12449 (string-append "\"" (which "unzip") "\"")))
12450 #t)))))
12451 (propagated-inputs
12452 `(("emacs-dash" ,emacs-dash)
12453 ("emacs-esxml" ,emacs-esxml)))
12454 (inputs
12455 `(("unzip" ,unzip)))
12456 (home-page "https://github.com/wasamasa/nov.el/")
12457 (synopsis "Major mode for reading EPUBs in Emacs")
12458 (description "@code{nov.el} provides a major mode for reading EPUB
12459 documents.
12460
12461 Features:
12462
12463 @itemize
12464 @item Basic navigation (jump to TOC, previous/next chapter)
12465 @item Remembering and restoring the last read position
12466 @item Jump to next chapter when scrolling beyond end
12467 @item Renders EPUB2 (@code{.ncx}) and EPUB3 (@code{<nav>}) TOCs
12468 @item Hyperlinks to internal and external targets
12469 @item Supports textual and image documents
12470 @item View source of document files
12471 @item Metadata display
12472 @item Image rescaling
12473 @end itemize
12474 ")
12475 (license license:gpl3+)))
12476
12477 (define-public epipe
12478 (package
12479 (name "epipe")
12480 (version "0.1.0")
12481 (source
12482 (origin
12483 (method git-fetch)
12484 (uri (git-reference
12485 (url "https://github.com/cute-jumper/epipe.git")
12486 (commit version)))
12487 (file-name (git-file-name name version))
12488 (sha256
12489 (base32 "0lkisi1s7sn12nx8zh58qmsxwnk1rjwryj18wcbr148xqz3swg57"))))
12490 (build-system trivial-build-system)
12491 (inputs
12492 `(("bash" ,bash)
12493 ("perl" ,perl)))
12494 (arguments
12495 `(#:modules
12496 ((guix build utils))
12497 #:builder
12498 (begin
12499 (use-modules (guix build utils))
12500 ;; Extract source.
12501 (copy-recursively (assoc-ref %build-inputs "source") "source")
12502 (chdir "source")
12503 ;; Patch shebangs.
12504 (substitute* "epipe"
12505 (("/usr/bin/env bash")
12506 (string-append (assoc-ref %build-inputs "bash") "/bin/bash")))
12507 (patch-shebang "epipe.pl"
12508 (list (string-append (assoc-ref %build-inputs "perl")
12509 "/bin")))
12510 ;; Install.
12511 (for-each (lambda (file)
12512 (install-file file (string-append %output "/bin")))
12513 '("epipe" "epipe.pl"))
12514 #t)))
12515 (home-page "https://github.com/cute-jumper/epipe")
12516 (synopsis "Pipe to the @code{emacsclient}")
12517 (description "@code{epipe} provides an utility to use your editor in
12518 the pipeline, featuring the support for running @code{emacsclient}.")
12519 (license license:gpl3+)))
12520
12521 (define-public emacs-hcl-mode
12522 (package
12523 (name "emacs-hcl-mode")
12524 (version "0.03")
12525 (source
12526 (origin
12527 (method git-fetch)
12528 (uri (git-reference
12529 (url "https://github.com/syohex/emacs-hcl-mode.git")
12530 (commit version)))
12531 (file-name (git-file-name name version))
12532 (sha256
12533 (base32 "0jqrgq15jz6pvx38pnwkizzfiih0d3nxqphyrc92nqpcyimg8b6g"))))
12534 (build-system emacs-build-system)
12535 (home-page "https://github.com/syohex/emacs-hcl-mode")
12536 (synopsis "Major mode for the Hashicorp Configuration Language")
12537 (description
12538 "@code{emacs-hcl-mode} provides an Emacs major mode for working with
12539 @acronym{HCL, Hashicorp Configuration Language}. It provides syntax
12540 highlighting and indentation support.")
12541 (license license:gpl3+)))
12542
12543 (define-public emacs-terraform-mode
12544 (package
12545 (name "emacs-terraform-mode")
12546 (version "0.06")
12547 (source
12548 (origin
12549 (method git-fetch)
12550 (uri (git-reference
12551 (url "https://github.com/syohex/emacs-terraform-mode.git")
12552 (commit version)))
12553 (file-name (git-file-name name version))
12554 (sha256
12555 (base32 "05hn8kskx9lcgn7bzgam99c629zlryir2pickwrqndacjrqpdykx"))))
12556 (build-system emacs-build-system)
12557 (propagated-inputs
12558 `(("emacs-hcl-mode" ,emacs-hcl-mode)))
12559 (home-page "https://github.com/syohex/emacs-terraform-mode")
12560 (synopsis "Major mode for Terraform")
12561 (description
12562 "@code{emacs-terraform-mode} provides a major mode for working with
12563 @uref{https://www.terraform.io/, Terraform} configuration files. Most of the
12564 functionality is inherited from @code{hcl-mode}.")
12565 (license license:gpl3+)))
12566
12567 (define-public emacs-exec-path-from-shell
12568 (package
12569 (name "emacs-exec-path-from-shell")
12570 (version "1.12")
12571 (source
12572 (origin
12573 (method git-fetch)
12574 (uri (git-reference
12575 (url "https://github.com/purcell/exec-path-from-shell")
12576 (commit version)))
12577 (file-name (git-file-name name version))
12578 (sha256
12579 (base32
12580 "1ga8bpxngd3ph2hdiik92c612ki71qxw818i6rgx6f6a5r0sbf3p"))))
12581 (build-system emacs-build-system)
12582 (home-page "https://github.com/purcell/exec-path-from-shell")
12583 (synopsis "Get environment variables such as @var{PATH} from the shell")
12584 (description
12585 "This library allows the user to set Emacs @var{exec-path} and @var{PATH}
12586 from the shell @var{PATH}, so that @code{shell-command}, @code{compile} and
12587 the like work as expected on systems on which Emacs is not guaranteed to
12588 inherit a login shell's environment variables. It also allows other
12589 environment variables to be retrieved from the shell, so that Emacs will see
12590 the same values you get in a terminal.")
12591 (license license:gpl3+)))
12592
12593 (define-public emacs-frog-menu
12594 (let ((commit "740bbc88b8535d31f783f3b2043a2a6683afbf31")
12595 (revision "1"))
12596 (package
12597 (name "emacs-frog-menu")
12598 (version (git-version "0.2.9" revision commit))
12599 (source
12600 (origin
12601 (method git-fetch)
12602 (uri (git-reference
12603 (url "https://github.com/clemera/frog-menu")
12604 (commit commit)))
12605 (file-name (git-file-name name version))
12606 (sha256
12607 (base32
12608 "1g77424jwq62qj06rvld44s5hp0dw8rw2pwmmag6gd536zf65xrj"))))
12609 (build-system emacs-build-system)
12610 (propagated-inputs
12611 `(("emacs-posframe" ,emacs-posframe)
12612 ("emacs-avy" ,emacs-avy)))
12613 (home-page "https://github.com/clemera/frog-menu")
12614 (synopsis "Quickly pick items from ad hoc menus")
12615 (description
12616 "This package provides a popup offering a preview of a list of
12617 candidates on which user-defined dispatch actions can act.")
12618 (license license:gpl3+))))
12619
12620 (define-public emacs-frog-jump-buffer
12621 (let ((commit "2d7b342785ae27d45f5d252272df6eb773c78e20")
12622 (revision "1"))
12623 (package
12624 (name "emacs-frog-jump-buffer")
12625 (version (git-version "0.1.4" revision commit))
12626 (source
12627 (origin
12628 (method git-fetch)
12629 (uri (git-reference
12630 (url "https://github.com/waymondo/frog-jump-buffer")
12631 (commit commit)))
12632 (file-name (git-file-name name version))
12633 (sha256
12634 (base32
12635 "1z00by8hiss1r2lwmzrl8pnz6jykia2849dqqm4l3z5rf6lwvc0f"))))
12636 (build-system emacs-build-system)
12637 (propagated-inputs
12638 `(("emacs-dash" ,emacs-dash)
12639 ("emacs-frog-menu" ,emacs-frog-menu)
12640 ("emacs-avy" ,emacs-avy)))
12641 (home-page "https://github.com/waymondo/frog-jump-buffer")
12642 (synopsis "Jump to any Emacs buffer with minimal keystrokes")
12643 (description
12644 "This package provides a preview window of buffers that can be switched
12645 to with quicklink-style selections.")
12646 (license license:gpl3+))))
12647
12648 (define-public emacs-deft
12649 (package
12650 (name "emacs-deft")
12651 (version "0.8")
12652 (source
12653 (origin
12654 (method git-fetch)
12655 (uri (git-reference
12656 (url "https://github.com/jrblevin/deft.git")
12657 (commit (string-append "v" version))))
12658 (file-name (git-file-name name version))
12659 (sha256
12660 (base32
12661 "0z7cilgiz6krvl5h2z72hkch43qxmypb0k6p5vxn5lx1p6v0mrf2"))))
12662 (build-system emacs-build-system)
12663 (home-page "https://jblevins.org/projects/deft/")
12664 (synopsis "Quickly browse, filter, and edit plain text notes")
12665 (description
12666 "Deft is an Emacs mode for quickly browsing, filtering, and editing
12667 directories of plain text notes, inspired by Notational Velocity.")
12668 (license license:bsd-3)))
12669
12670 (define-public emacs-anzu
12671 (package
12672 (name "emacs-anzu")
12673 (version "0.62")
12674 (source
12675 (origin
12676 (method git-fetch)
12677 (uri (git-reference
12678 (url "https://github.com/syohex/emacs-anzu.git")
12679 (commit version)))
12680 (file-name (git-file-name name version))
12681 (sha256
12682 (base32 "1lzvc0ihcbplir4hqfyxfqpsd78arz15gk92kmq4f8ggbkl37fan"))))
12683 (build-system emacs-build-system)
12684 (home-page "https://github.com/syohex/emacs-anzu")
12685 (synopsis "Show number of matches in mode-line while searching")
12686 (description
12687 "Anzu provides a minor mode which displays \"current match/total
12688 matches\" in the mode line in various search modes. This is an Emacs port of
12689 Anzu.zim.")
12690 (license license:gpl3+)))
12691
12692 (define-public emacs-ascii-art-to-unicode
12693 (package
12694 (name "emacs-ascii-art-to-unicode")
12695 (version "1.12")
12696 (source
12697 (origin
12698 (method url-fetch)
12699 (uri (string-append "https://elpa.gnu.org/packages/ascii-art-to-unicode-"
12700 version ".el"))
12701 (sha256
12702 (base32
12703 "1w9h2lyriafxj71r79774gh822cz8mry3gdfzyj6ym6v9mvqypna"))))
12704 (build-system emacs-build-system)
12705 (home-page "https://elpa.gnu.org/packages/ascii-art-to-unicode.html")
12706 (synopsis "ASCII to Unicode art converter for Emacs")
12707 (description "This Emacs package provides the commands @command{aa2u} and
12708 @command{aa2u-rectangle}. Both of these commands can be used to convert
12709 simple ASCII art line drawings to Unicode; the former works on the active
12710 region of the buffer, while the latter works on rectangular selections.")
12711 (license license:gpl3+)))
12712
12713 (define-public emacs-emmet-mode
12714 (let ((commit "1acb821e0142136344ccf40c1e5fb664d7db2e70")
12715 (revision "1"))
12716 (package
12717 (name "emacs-emmet-mode")
12718 (version (git-version "1.0.8" revision commit))
12719 (source (origin
12720 (method git-fetch)
12721 (uri (git-reference
12722 (url "https://github.com/smihica/emmet-mode.git")
12723 (commit commit)))
12724 (file-name (git-file-name name version))
12725 (sha256
12726 (base32
12727 "1p25h191bm0h5b3w5apg7wks51k7pb7h4dlww4jbl9ri4d33fzcl"))))
12728 (build-system emacs-build-system)
12729 (home-page "https://github.com/smihica/emmet-mode")
12730 (synopsis "Unofficial Emmet's support for Emacs")
12731 (description
12732 "Unfold CSS-selector-like expressions to markup. It is intended to be
12733 used with SGML-like languages: XML, HTML, XHTML, XSL, etc.")
12734 (license license:gpl3+))))
12735
12736 (define-public emacs-ergoemacs-mode
12737 (let ((commit "3ce23bba3cb50562693860f87f3528c471d603ba")
12738 (revision "1"))
12739 (package
12740 (name "emacs-ergoemacs-mode")
12741 (version (git-version "5.16.10.12" revision commit))
12742 (source
12743 (origin
12744 (method git-fetch)
12745 (uri (git-reference
12746 (url "https://github.com/ergoemacs/ergoemacs-mode.git")
12747 (commit commit)))
12748 (file-name (git-file-name name version))
12749 (sha256
12750 (base32
12751 "1s3b9bridl78hh1mxmdk9nqlmqhibbaxk0a1cixmsf23s06w8w6l"))))
12752 (build-system emacs-build-system)
12753 (propagated-inputs
12754 `(("emacs-undo-tree" ,emacs-undo-tree)))
12755 (home-page "https://ergoemacs.github.io/")
12756 (synopsis "Emacs mode based on common modern interface and ergonomics")
12757 (description
12758 "This package provides an efficient Emacs keybinding set based on
12759 statistics of command frequency, and supports common shortcuts for open,
12760 close, copy, cut, paste, undo, redo.")
12761 (license license:gpl3+))))
12762
12763 (define-public emacs-password-store
12764 (package
12765 (name "emacs-password-store")
12766 (version "1.7.3")
12767 (source (origin
12768 (method url-fetch)
12769 (uri
12770 (string-append "https://git.zx2c4.com/password-store/snapshot/"
12771 "password-store-" version ".tar.xz"))
12772 (sha256
12773 (base32
12774 "1x53k5dn3cdmvy8m4fqdld4hji5n676ksl0ql4armkmsds26av1b"))))
12775 (build-system emacs-build-system)
12776 (arguments
12777 `(#:phases
12778 (modify-phases %standard-phases
12779 (add-after 'unpack 'extract-el-file
12780 (lambda _
12781 (copy-file "contrib/emacs/password-store.el" "password-store.el")
12782 (delete-file-recursively "contrib")
12783 (delete-file-recursively "man")
12784 (delete-file-recursively "src")
12785 (delete-file-recursively "tests"))))))
12786 (propagated-inputs
12787 `(("emacs-f" ,emacs-f)
12788 ("emacs-s" ,emacs-s)
12789 ("emacs-with-editor" ,emacs-with-editor)
12790 ("password-store" ,password-store)))
12791 (home-page "https://git.zx2c4.com/password-store/tree/contrib/emacs")
12792 (synopsis "Password store (pass) support for Emacs")
12793 (description
12794 "This package provides functions for working with pass (\"the
12795 standard Unix password manager\").")
12796 (license license:gpl2+)))
12797
12798 (define-public emacs-auth-source-pass
12799 (let ((commit "847a1f54ed48856b4dfaaa184583ef2c84173edf")
12800 (revision "2"))
12801 (package
12802 (name "emacs-auth-source-pass")
12803 (version (git-version "5.0.0" revision commit))
12804 (source
12805 (origin
12806 (method git-fetch)
12807 (uri (git-reference
12808 (url "https://github.com/DamienCassou/auth-password-store.git")
12809 (commit commit)))
12810 (file-name (git-file-name name version))
12811 (sha256
12812 (base32 "0g48z5w6n3c54zqfpx65dfyl9jqbl15idvbb1hhw2pd9f9r8fykk"))))
12813 (build-system emacs-build-system)
12814 (arguments
12815 `(#:tests? #t
12816 #:test-command '("emacs" "--batch"
12817 "-L" "."
12818 "-l" "test/auth-source-pass-tests.el"
12819 "-f" "ert-run-tests-batch-and-exit")))
12820 (home-page "https://github.com/DamienCassou/auth-password-store")
12821 (synopsis "Integrate @code{auth-source} with @code{password-store}")
12822 (description "This package helps Emacs integrate with the Unix
12823 @code{password-store} application.")
12824 (license license:gpl3+))))
12825
12826 (define-public emacs-pass
12827 (package
12828 (name "emacs-pass")
12829 (version "2.0")
12830 (source
12831 (origin
12832 (method git-fetch)
12833 (uri (git-reference
12834 (url "https://github.com/NicolasPetton/pass.git")
12835 (commit version)))
12836 (file-name (git-file-name name version))
12837 (sha256
12838 (base32 "0jc8j421mlflspg24jvrqc2n3y5n3cpk3hjy560il8g36xi1049p"))))
12839 (build-system emacs-build-system)
12840 (propagated-inputs
12841 `(("emacs-password-store" ,emacs-password-store)
12842 ("emacs-f" ,emacs-f)))
12843 (home-page "https://github.com/NicolasPetton/pass")
12844 (synopsis "Major mode for @file{password-store.el}")
12845 (description "This is a major mode for managing password-store (pass)
12846 keychains. The keychain entries are displayed in a directory-like structure
12847 and can be consulted and modified.")
12848 (license license:gpl3+)))
12849
12850 (define-public emacs-psc-ide
12851 ;; There is no proper release. The base version is extracted from the
12852 ;; "Version" keyword in the main file.
12853 (let ((commit "7fc2b841be25f5bc5e1eb7d0634436181c38b3fe")
12854 (revision "1"))
12855 (package
12856 (name "emacs-psc-ide")
12857 (version (git-version "0.1.0" revision commit))
12858 (source
12859 (origin
12860 (method git-fetch)
12861 (uri
12862 (git-reference
12863 (url "https://github.com/purescript-emacs/psc-ide-emacs")
12864 (commit commit)))
12865 (file-name (git-file-name name version))
12866 (sha256
12867 (base32 "0r0fymyai30jimm34z1cmav4wgij8ci6s1d9y7qigygfbbfrdsmj"))))
12868 (build-system emacs-build-system)
12869 (propagated-inputs
12870 `(("emacs-company" ,emacs-company)
12871 ("emacs-dash" ,emacs-dash)
12872 ("emacs-flycheck" ,emacs-flycheck)
12873 ("emacs-let-alist" ,emacs-let-alist)
12874 ("emacs-s" ,emacs-s)
12875 ("emacs-seq" ,emacs-seq)))
12876 (home-page "https://github.com/purescript-emacs/psc-ide-emacs")
12877 (synopsis "Emacs integration for PureScript's psc-ide tool")
12878 (description
12879 "This package provices Emacs integration for @code{psc-ide}, an IDE
12880 protocol for PureScript programming language. It features:
12881
12882 @itemize
12883 @item Completions
12884 @item Type at point
12885 @item Go to definition
12886 @item Automatic imports
12887 @item Case split
12888 @item Build system integration, and
12889 @item Flycheck support
12890 @end itemize")
12891 (license license:gpl3+))))
12892
12893 (define-public emacs-evil-anzu
12894 (package
12895 (name "emacs-evil-anzu")
12896 (version "0.03")
12897 (source
12898 (origin
12899 (method git-fetch)
12900 (uri (git-reference
12901 (url "https://github.com/syohex/emacs-evil-anzu")
12902 (commit version)))
12903 (file-name (git-file-name name version))
12904 (sha256
12905 (base32 "0lw7fg4gqwj30r0l6k2ni36sxqkf65zf0d0z3rxnpwbxlf8dlkrr"))))
12906 (build-system emacs-build-system)
12907 (propagated-inputs
12908 `(("emacs-evil" ,emacs-evil)
12909 ("emacs-anzu" ,emacs-anzu)))
12910 (home-page "https://github.com/syohex/emacs-evil-anzu")
12911 (synopsis "Anzu for evil-mode")
12912 (description "@code{anzu} provides a minor mode that displays the current
12913 match and total match information in the mode-line in various search modes.")
12914 (license license:gpl3+)))
12915
12916 (define-public emacs-pg
12917 (let ((commit "4f6516ec3946d95dcef49abb6703cc89ecb5183d"))
12918 (package
12919 (name "emacs-pg")
12920 (version (git-version "0.1" "1" commit))
12921 (source (origin
12922 (method git-fetch)
12923 (uri (git-reference (url "https://github.com/cbbrowne/pg.el")
12924 (commit commit)))
12925 (file-name (git-file-name name version))
12926 (sha256
12927 (base32
12928 "1zh7v4nnpzvbi8yj1ynlqlawk5bmlxi6s80b5f2y7hkdqb5q26k0"))))
12929 (build-system emacs-build-system)
12930 (home-page "https://github.com/cbbrowne/pg.el")
12931 (synopsis "Emacs Lisp interface for PostgreSQL")
12932 (description
12933 "This package provides an Emacs Lisp interface for PostgreSQL.")
12934 (license license:gpl3+))))
12935
12936 (define-public emacs-cl-generic
12937 (package
12938 (name "emacs-cl-generic")
12939 (version "0.3")
12940 (source
12941 (origin
12942 (method url-fetch)
12943 (uri (string-append "https://elpa.gnu.org/packages/cl-generic-"
12944 version ".el"))
12945 (sha256
12946 (base32
12947 "0vb338bhjpsnrf60qgxny4z5rjrnifahnrv9axd4shay89d894zq"))))
12948 (build-system emacs-build-system)
12949 ;; Byte compilation of the autoload file fails.
12950 (arguments
12951 `(#:phases (modify-phases %standard-phases
12952 (delete 'enable-autoloads-compilation))))
12953 (home-page "https://elpa.gnu.org/packages/seq.html")
12954 (synopsis
12955 "Forward @code{cl-generic} compatibility for Emacs before version 25")
12956 (description "This package provides a subset of the features of the
12957 @code{cl-generic} package introduced in Emacs-25, for use on previous
12958 @code{emacsen}.")
12959 (license license:gpl3+)))
12960
12961 (define-public emacs-finalize
12962 (package
12963 (name "emacs-finalize")
12964 (version "2.0.0")
12965 (source
12966 (origin
12967 (method git-fetch)
12968 (uri (git-reference
12969 (url "https://github.com/skeeto/elisp-finalize.git")
12970 (commit version)))
12971 (file-name (git-file-name name version))
12972 (sha256
12973 (base32 "1gvlm4i62af5jscwz0jccc8ra0grprxpg2rlq91d5nn8dn5lpy79"))))
12974 (build-system emacs-build-system)
12975 (propagated-inputs
12976 `(("emacs-cl-generic" ,emacs-cl-generic)))
12977 (home-page "https://github.com/skeeto/elisp-finalize")
12978 (synopsis "Finalizers for Emacs Lisp")
12979 (description
12980 "This package runs a callback (a finalizer)
12981 after its registered lisp object has been garbage collected. This allows
12982 extra resources, such as buffers and processes, to be cleaned up after the
12983 object has been freed.")
12984 (license license:unlicense)))
12985
12986 (define-public emacs-emacsql
12987 (package
12988 (name "emacs-emacsql")
12989 (version "3.0.0")
12990 (source (origin
12991 (method git-fetch)
12992 (uri (git-reference
12993 (url "https://github.com/skeeto/emacsql.git")
12994 (commit (string-append version))))
12995 (file-name (git-file-name name version))
12996 (sha256
12997 (base32
12998 "1c84gxr1majqj4b59wgdy3lzm3ap66w9qsrnkx8hdbk9895ak81g"))))
12999 (build-system emacs-build-system)
13000 (arguments
13001 `(#:modules ((guix build emacs-build-system)
13002 (guix build utils)
13003 (guix build emacs-utils)
13004 (srfi srfi-26))
13005 #:phases
13006 (modify-phases %standard-phases
13007 (delete 'build) ;‘build-emacsql-sqlite’ compiles ‘*.el’ files.
13008 (add-before 'install 'patch-elisp-shell-shebangs
13009 (lambda _
13010 (substitute* (find-files "." "\\.el")
13011 (("/bin/sh") (which "sh")))
13012 #t))
13013 (add-after 'patch-elisp-shell-shebangs 'setenv-shell
13014 (lambda _
13015 (setenv "SHELL" "sh")))
13016 (add-after 'setenv-shell 'build-emacsql-sqlite
13017 (lambda _
13018 (invoke "make" "binary" "CC=gcc")))
13019 (add-after 'build-emacsql-sqlite 'install-emacsql-sqlite
13020 ;; This build phase installs emacs-emacsql binary.
13021 (lambda* (#:key outputs #:allow-other-keys)
13022 (install-file "sqlite/emacsql-sqlite"
13023 (string-append (assoc-ref outputs "out")
13024 "/bin"))
13025 #t))
13026 (add-after 'install-emacsql-sqlite 'patch-emacsql-sqlite.el
13027 ;; This build phase removes interactive prompts
13028 ;; and makes sure Emacs look for binaries in the right places.
13029 (lambda* (#:key outputs #:allow-other-keys)
13030 (let ((file "emacsql-sqlite.el"))
13031 (chmod file #o644)
13032 (emacs-substitute-sexps file
13033 ;; Make sure Emacs looks for ‘GCC’ binary in the right place.
13034 ("(executable-find" (which "gcc"))
13035 ;; Make sure Emacs looks for ‘emacsql-sqlite’ binary
13036 ;; in the right place.
13037 ("(defvar emacsql-sqlite-executable"
13038 (string-append (assoc-ref outputs "out")
13039 "/bin/emacsql-sqlite"))))))
13040 (replace 'install
13041 (lambda* (#:key outputs #:allow-other-keys)
13042 (let* ((out (assoc-ref outputs "out")))
13043 (install-file "sqlite/emacsql-sqlite"
13044 (string-append out "/bin"))
13045 (for-each (cut install-file <>
13046 (string-append out "/share/emacs/site-lisp"))
13047 (find-files "." "\\.elc*$")))
13048 #t)))))
13049 (inputs
13050 `(("emacs-minimal" ,emacs-minimal)
13051 ("mariadb" ,mariadb "lib")
13052 ("mariadb-dev" ,mariadb "dev")
13053 ("postgresql" ,postgresql)))
13054 (propagated-inputs
13055 `(("emacs-finalize" ,emacs-finalize)
13056 ("emacs-pg" ,emacs-pg)))
13057 (home-page "https://github.com/skeeto/emacsql")
13058 (synopsis "Emacs high-level SQL database front-end")
13059 (description "Any readable Lisp value can be stored as a value in EmacSQL,
13060 including numbers, strings, symbols, lists, vectors, and closures. EmacSQL
13061 has no concept of @code{TEXT} values; it's all just Lisp objects. The Lisp
13062 object @code{nil} corresponds 1:1 with @code{NULL} in the database.")
13063 (license license:gpl3+)))
13064
13065 (define-public emacs-closql
13066 ;; Take a commit newer than 1.0.0 release because of Emacs upgrade to 26.3.
13067 (let ((commit "70b98dbae53611d10a461d9b4a6f71086910dcef"))
13068 (package
13069 (name "emacs-closql")
13070 (version (git-version "1.0.0" "1" commit))
13071 (source
13072 (origin
13073 (method git-fetch)
13074 (uri (git-reference
13075 (url "https://github.com/emacscollective/closql.git")
13076 (commit commit)))
13077 (file-name (git-file-name name version))
13078 (sha256
13079 (base32
13080 "1wvhrihg663f61yzc7f0vha2abjdnlwbk0gjcwakdfk1bhwf5ikh"))))
13081 (build-system emacs-build-system)
13082 (propagated-inputs
13083 `(("emacs-emacsql" ,emacs-emacsql)))
13084 (home-page "https://github.com/emacscollective/closql")
13085 (synopsis "Store EIEIO objects using EmacSQL")
13086 (description
13087 "This package stores uniform EIEIO objects in an EmacSQL
13088 database. SQLite is used as backend. This library imposes some restrictions
13089 on what kind of objects can be stored; it isn't intended to store arbitrary
13090 objects. All objects have to share a common superclass and subclasses cannot
13091 add any additional instance slots.")
13092 (license license:gpl3))))
13093
13094 (define-public emacs-epkg
13095 ;; The release version is to old for the current database scheme.
13096 (let ((commit "432312b9583ed7b88ad9644fd1bf2183765a892e"))
13097 (package
13098 (name "emacs-epkg")
13099 (version (git-version "3.0.0" "1" commit))
13100 (source
13101 (origin
13102 (method git-fetch)
13103 (uri (git-reference
13104 (url "https://github.com/emacscollective/epkg.git")
13105 (commit commit)))
13106 (file-name (git-file-name name version))
13107 (sha256
13108 (base32
13109 "0d882kahn7a0vri7a9r15lvmfx1zn2hsga6jfcc6jv0hqbswlb2k"))))
13110 (build-system emacs-build-system)
13111 (propagated-inputs
13112 `(("emacs-closql" ,emacs-closql)
13113 ("emacs-dash" ,emacs-dash)))
13114 (home-page "https://emacsmirror.net")
13115 (synopsis "Browse the Emacsmirror package database")
13116 (description "This package provides access to a local copy of the
13117 Emacsmirror package database. It provides low-level functions for querying
13118 the database and a @file{package.el} user interface for browsing the database.
13119 Epkg itself is not a package manager.
13120
13121 Getting a local copy:
13122
13123 @example
13124 git clone https://github.com/emacsmirror/epkgs.git ~/.emacs.d/epkgs
13125 cd ~/.emacs.d/epkgs
13126 git submodule init
13127 git config --global url.https://github.com/.insteadOf git@@github.com:
13128 git submodule update
13129 @end example
13130
13131 Some submodule may be missing. In this case Git will prompt for a GitHub user
13132 name and password. To skip it press a @key{Return} key.
13133
13134 You could get a Epkg package list by invoking @code{epkg-list-packages} in
13135 Emacs.")
13136 (license license:gpl3+))))
13137
13138 (define-public emacs-elisp-slime-nav
13139 (package
13140 (name "emacs-elisp-slime-nav")
13141 (version "0.9")
13142 (source
13143 (origin
13144 (method git-fetch)
13145 (uri (git-reference
13146 (url "https://github.com/purcell/elisp-slime-nav.git")
13147 (commit version)))
13148 (file-name (git-file-name name version))
13149 (sha256
13150 (base32 "11vyy0bvzbs1h1kggikrvhd658j7c730w0pdp6qkm60rigvfi1ih"))))
13151 (build-system emacs-build-system)
13152 (home-page "https://github.com/purcell/elisp-slime-nav")
13153 (synopsis "Make @code{M-.} and @code{M-,} work for elisp like they do in SLIME")
13154 (description
13155 "This package provides SLIME's convenient @code{M-.}and @code{M-,} navigation
13156 in @code{emacs-lisp-mode}, together with an elisp equivalent of
13157 @code{slime-describe-symbol}.")
13158 (license license:gpl3+)))
13159
13160 (define-public emacs-dedicated
13161 (package
13162 (name "emacs-dedicated")
13163 (version "1.0.0")
13164 (source
13165 (origin
13166 (method git-fetch)
13167 (uri (git-reference
13168 (url "https://github.com/emacsorphanage/dedicated.git")
13169 (commit version)))
13170 (file-name (git-file-name name version))
13171 (sha256
13172 (base32 "0pba9s0h37sxyqh733vi6k5raa4cs7aradipf3826inw36jcw414"))))
13173 (build-system emacs-build-system)
13174 (home-page "https://github.com/emacsorphanage/dedicated")
13175 (synopsis "Emacs minor mode for toggling a windows's \"dedicated\" flag")
13176 (description
13177 "This simple Emacs minor mode allows you to toggle a window's
13178 \"dedicated\" flag. When a window is \"dedicated\", Emacs will not select
13179 files into that window. This can be quite handy since many commands will use
13180 another window to show results (compilation mode, starting info, and so on).
13181 A dedicated window won't be used for such a purpose. For details, please read
13182 the source file.")
13183 (license license:gpl2+)))
13184
13185 (define-public emacs-nnreddit
13186 (let ((commit "9843f99d01fd8f1eea2fc685965a7c7f4eeb187a")
13187 (revision "1"))
13188 (package
13189 (name "emacs-nnreddit")
13190 (version (string-append "0.0.1-" revision "."
13191 (string-take commit 7)))
13192 (source (origin
13193 (method git-fetch)
13194 (uri (git-reference
13195 (url "https://github.com/paul-issartel/nnreddit.git")
13196 (commit commit)))
13197 (file-name (git-file-name name version))
13198 (sha256
13199 (base32
13200 "0j4h3bnga640250jdq8bwyja49r41ssrsjd6lba4gzzllqk02nbn"))))
13201 (build-system emacs-build-system)
13202 (home-page "https://github.com/paul-issartel/nnreddit")
13203 (synopsis "Reddit backend for the Gnus newsreader")
13204 (description "@url{https://www.reddit.com} backend for the Gnus
13205 newsreader.")
13206 (license license:gpl3+))))
13207
13208 (define-public emacs-makey
13209 (package
13210 (name "emacs-makey")
13211 (version "0.3")
13212 (source
13213 (origin
13214 (method git-fetch)
13215 (uri (git-reference
13216 (url "https://github.com/mickeynp/makey.git")
13217 (commit version)))
13218 (file-name (git-file-name name version))
13219 (sha256
13220 (base32 "1rr7vpm3xxzcaam3m8xni3ajy8ycyljix07n2jzczayri9sd8csy"))))
13221 (build-system emacs-build-system)
13222 (home-page "https://github.com/mickeynp/makey")
13223 (synopsis "Emacs interactive command-line mode")
13224 (description
13225 "This package provides an Emacs interactive command-line mode.")
13226 (license license:gpl3+)))
13227
13228 (define-public emacs-outorg
13229 (let ((commit "78b0695121fb974bc4e971eb4ef7f8afd6d89d64"))
13230 (package
13231 (name "emacs-outorg")
13232 (version (git-version "2.0" "1" commit))
13233 (source
13234 (origin
13235 (method git-fetch)
13236 (uri (git-reference
13237 (url "https://github.com/alphapapa/outorg")
13238 (commit commit)))
13239 (file-name (git-file-name name version))
13240 (sha256
13241 (base32
13242 "03aclh4m3f7rb821gr9pwvnqkkl91px3qxdcarpf3ypa1x4fxvlj"))))
13243 (build-system emacs-build-system)
13244 (home-page "https://github.com/alphapapa/outorg")
13245 (synopsis "Org-style comment editing")
13246 (description "Outorg is for editing comment-sections of source-code
13247 files in temporary Org-mode buffers. It turns conventional
13248 literate-programming upside-down in that the default mode is the
13249 programming-mode, and special action has to be taken to switch to the
13250 text-mode (i.e. Org-mode).")
13251 (license license:gpl3+))))
13252
13253 (define-public emacs-outshine
13254 (package
13255 (name "emacs-outshine")
13256 (version "3.0.1")
13257 (source (origin
13258 (method git-fetch)
13259 (uri (git-reference
13260 (url "https://github.com/alphapapa/outshine.git")
13261 (commit (string-append "v" version))))
13262 (file-name (git-file-name name version))
13263 (sha256
13264 (base32
13265 "1lh9f5dgdbwfyzxk6nsg1xwdjs8gc6p9mbyyhp6f8fnk3h0y88cg"))))
13266 (build-system emacs-build-system)
13267 (propagated-inputs
13268 `(("emacs-outorg" ,emacs-outorg)))
13269 (home-page "https://github.com/alphapapa/outshine")
13270 (synopsis "Emacs outline with outshine")
13271 (description "Outshine attempts to bring the look and feel of
13272 @code{org-mode} to an Emacs outside of the Org major-mode. It is an extension
13273 of @code{outline-minor-mode} (@code{org-mode} itself derives from
13274 outline-mode), so there is no such thing like an outshine mode, only
13275 @code{outline-minor-mode} with outshine extensions loaded.")
13276 (license license:gpl3+)))
13277
13278 (define-public emacs-frecency
13279 (let ((commit "31ef9ff4af1a4fed3dcc24ea74037feea8795c87")
13280 (version "0.1-pre")
13281 (revision "1"))
13282 (package
13283 (name "emacs-frecency")
13284 (version (git-version version revision commit))
13285 (source (origin
13286 (method git-fetch)
13287 (uri (git-reference
13288 (url "https://github.com/alphapapa/frecency.el")
13289 (commit commit)))
13290 (sha256
13291 (base32
13292 "051aihjdg3x22svaxhwylpi8i6s2x9j8syvsj1jgilgjjdy15l6j"))
13293 (file-name (git-file-name name version))))
13294 (build-system emacs-build-system)
13295 (propagated-inputs
13296 `(("emacs-a" ,emacs-a)
13297 ("emacs-dash" ,emacs-dash)))
13298 (home-page "https://github.com/alphapapa/frecency.el")
13299 (synopsis "Sort items by frequency and recency of access")
13300 (description "This package provides a way of sorting items via
13301 a heuristic based on frequency and recency.")
13302 (license license:gpl3+))))
13303
13304 (define-public emacs-org-recent-headings
13305 (package
13306 (name "emacs-org-recent-headings")
13307 (version "0.1")
13308 (source (origin
13309 (method git-fetch)
13310 (uri (git-reference
13311 (url "https://github.com/alphapapa/org-recent-headings.git")
13312 (commit version)))
13313 (file-name (git-file-name name version))
13314 (sha256
13315 (base32
13316 "0gsrzmg3mssh9s28yjm9m866fnhm1pcligssz1q6brga6dm6f2yy"))))
13317 (build-system emacs-build-system)
13318 (propagated-inputs
13319 `(("emacs-org" ,emacs-org)
13320 ("emacs-dash" ,emacs-dash)
13321 ("emacs-frecency" ,emacs-frecency)))
13322 (home-page "https://github.com/alphapapa/org-recent-headings")
13323 (synopsis "Navigate to recently used Org headings and lists")
13324 (description "This package maintains a list of recently used Org headings,
13325 as well as functions for navigating between these headings.")
13326 (license license:gpl3+)))
13327
13328 (define-public emacs-org-super-agenda
13329 ;; emacs-org-sidebar depends on a newer commit than the latest release version.
13330 (let ((commit "a87ca11fbbe72ab6c1c4c3b55ae9e1e93ebfb8ba")
13331 (revision "3"))
13332 (package
13333 (name "emacs-org-super-agenda")
13334 (version (git-version "1.1.1" revision commit))
13335 (source (origin
13336 (method git-fetch)
13337 (uri (git-reference
13338 (url "https://github.com/alphapapa/org-super-agenda")
13339 (commit commit)))
13340 (file-name (git-file-name name version))
13341 (sha256
13342 (base32
13343 "08b7babdaqblb6jff57an4kbcxk6fkhf668620fipfjgbsnqv3ff"))))
13344 (build-system emacs-build-system)
13345 (propagated-inputs
13346 `(("emacs-org" ,emacs-org)
13347 ("emacs-dash" ,emacs-dash)
13348 ("emacs-ts" ,emacs-ts)
13349 ("emacs-ht" ,emacs-ht)
13350 ("emacs-s" ,emacs-s)))
13351 (home-page "https://github.com/alphapapa/org-super-agenda")
13352 (synopsis "Supercharged Org agenda")
13353 (description "This package allows items in the Org agenda to be grouped
13354 into sections while preserving the structure imposed by any timestamps.")
13355 (license license:gpl3+))))
13356
13357 (define-public emacs-org-make-toc
13358 (package
13359 (name "emacs-org-make-toc")
13360 (version "0.5")
13361 (source (origin
13362 (method git-fetch)
13363 (uri (git-reference
13364 (url "https://github.com/alphapapa/org-make-toc")
13365 (commit version)))
13366 (file-name (git-file-name name version))
13367 (sha256
13368 (base32
13369 "180ji6nnj6qj0rs1rdp1zlcrfsqf7ikb44ym8icbp5d6al2s4hnr"))))
13370 (build-system emacs-build-system)
13371 (propagated-inputs
13372 `(("emacs-org" ,emacs-org)
13373 ("emacs-dash" ,emacs-dash)
13374 ("emacs-s" ,emacs-s)))
13375 (home-page "https://github.com/alphapapa/org-make-toc")
13376 (synopsis "Maintain a table of contents for an Org file")
13377 (description "This package facilitates the creation and maintenance of
13378 tables of contents.")
13379 (license license:gpl3+)))
13380
13381 (define-public emacs-ts
13382 (package
13383 (name "emacs-ts")
13384 (version "0.2")
13385 (source
13386 (origin
13387 (method git-fetch)
13388 (uri (git-reference
13389 (url "https://github.com/alphapapa/ts.el")
13390 (commit version)))
13391 (sha256
13392 (base32 "0hmzc1ppnkkr0lfq5fhzqr6icv6iqz824a6bnns7zr466hhqp3qb"))
13393 (file-name (git-file-name name version))))
13394 (build-system emacs-build-system)
13395 (propagated-inputs
13396 `(("emacs-s" ,emacs-s)
13397 ("emacs-dash" ,emacs-dash)))
13398 (arguments
13399 ;; XXX: Three tests are failing because of a timezone-related issue
13400 ;; with how they're written. On my machine, all the failing test
13401 ;; results are 18000 seconds (5 hours) off.
13402
13403 ;; The ts-parse-org function accepts a string without any timezone
13404 ;; info, not assumed to be in Unix time, and converts it to a so-called
13405 ;; ts struct. The ts-unix function (accessor) accepts a ts struct,
13406 ;; then seems to assume the struct's corresponding time is in terms of
13407 ;; the user's current time zone, before returning a Unix time in
13408 ;; seconds.
13409
13410 ;; The failing tests all have similar problems, but nothing else about
13411 ;; the library seems particularly off.
13412
13413 `(#:tests? #t
13414 #:test-command '("emacs" "--batch"
13415 "-l" "test/test.el"
13416 "-f" "ert-run-tests-batch-and-exit")
13417 #:phases
13418 (modify-phases %standard-phases
13419 (add-before 'check 'make-tests-writable
13420 (lambda _
13421 (make-file-writable "test/test.el")
13422 #t))
13423 (add-before 'check 'delete-failing-tests
13424 (lambda _
13425 (emacs-batch-edit-file "test/test.el"
13426 `(progn (progn
13427 (goto-char (point-min))
13428 (dolist (test-regexp
13429 '("ert-deftest ts-format"
13430 "ert-deftest ts-parse-org\\_>"
13431 "ert-deftest ts-parse-org-element"
13432 "ert-deftest ts-update"))
13433 (re-search-forward test-regexp)
13434 (beginning-of-line)
13435 (kill-sexp)))
13436 (basic-save-buffer)))
13437 #t)))))
13438 (home-page "https://github.com/alphapapa/ts.el")
13439 (synopsis "Timestamp and date/time library")
13440 (description "This package facilitates manipulating dates, times, and
13441 timestamps by providing a @code{ts} struct.")
13442 (license license:gpl3+)))
13443
13444 (define-public emacs-peg
13445 (package
13446 (name "emacs-peg")
13447 (version "0.6")
13448 (source (origin
13449 (method git-fetch)
13450 (uri (git-reference
13451 (url "https://github.com/emacsmirror/peg")
13452 (commit version)))
13453 (sha256
13454 (base32
13455 "0kjz7ch4bn0m4v9zgqyqcrsasnqc5c5drv2hp22j7rnbb7ny0q3n"))
13456 (file-name (git-file-name name version))))
13457 (build-system emacs-build-system)
13458 (home-page "https://github.com/emacsmirror/peg/")
13459 (synopsis "Parsing Expression Grammars in Elisp")
13460 (description "This package provides a macro that parses the current buffer
13461 according to a parsing expression grammar.")
13462 (license license:gpl3+)))
13463
13464 (define-public emacs-org-ql
13465 (package
13466 (name "emacs-org-ql")
13467 (version "0.3.2")
13468 (source (origin
13469 (method git-fetch)
13470 (uri (git-reference
13471 (url "https://github.com/alphapapa/org-ql")
13472 (commit version)))
13473 (sha256
13474 (base32
13475 "11bhpi2l28vp8mm9nx18jljbqdnh9vxpv9kp1dn9lpsgivcdbc34"))
13476 (file-name (git-file-name name version))))
13477 (build-system emacs-build-system)
13478 (propagated-inputs
13479 `(("emacs-s" ,emacs-s)
13480 ("emacs-f" ,emacs-f)
13481 ("emacs-ov" ,emacs-ov)
13482 ("emacs-peg" ,emacs-peg)
13483 ("emacs-org-super-agenda" ,emacs-org-super-agenda)
13484 ("emacs-ts" ,emacs-ts)
13485 ("emacs-org" ,emacs-org)
13486 ("emacs-helm" ,emacs-helm)
13487 ("emacs-helm-org" ,emacs-helm-org)
13488 ("emacs-dash" ,emacs-dash)))
13489 (native-inputs
13490 `(("emacs-buttercup" ,emacs-buttercup)))
13491 (arguments
13492 `(#:phases
13493 (modify-phases %standard-phases
13494 (add-after 'unpack 'require-helm
13495 (lambda _
13496 (substitute* "helm-org-ql.el"
13497 (("^;;;; Requirements")
13498 ";;;; Requirements\n(require 'helm)\n(require 'helm-org)"))
13499 #t)))
13500 #:tests? #t
13501 #:test-command '("buttercup" "-L" ".")))
13502 (home-page "https://github.com/alphapapa/org-ql/")
13503 (synopsis "Query language for Org buffers")
13504 (description "This package provides a Lispy query language for Org
13505 files, allowing for actions to be performed based on search criteria.")
13506 (license license:gpl3+)))
13507
13508 (define-public emacs-org-auto-expand
13509 (let ((commit "4938d5f6460e2f8f051ba9ac000b291bfa43ef62")
13510 (revision "1"))
13511 (package
13512 (name "emacs-org-auto-expand")
13513 (version (git-version "0.1" revision commit))
13514 (source (origin
13515 (method git-fetch)
13516 (uri (git-reference
13517 (url "https://github.com/alphapapa/org-auto-expand")
13518 (commit commit)))
13519 (file-name (git-file-name name version))
13520 (sha256
13521 (base32
13522 "1my0c6xmkh37lwi6l472lz9d86lf20h6xcllzlxm1lxa24rhva6v"))))
13523 (build-system emacs-build-system)
13524 (propagated-inputs
13525 `(("emacs-org" ,emacs-org)
13526 ("emacs-dash" ,emacs-dash)))
13527 (home-page "https://github.com/alphapapa/org-auto-expand")
13528 (synopsis "Automatically expand certain Org headings")
13529 (description "This package allows a customizable set of headings in Org
13530 files to be expanded upon opening them.")
13531 (license license:gpl3+))))
13532
13533 (define-public emacs-parsebib
13534 (package
13535 (name "emacs-parsebib")
13536 (version "2.3.3")
13537 (source
13538 (origin
13539 (method git-fetch)
13540 (uri (git-reference
13541 (url "https://github.com/joostkremers/parsebib.git")
13542 (commit version)))
13543 (file-name (git-file-name name version))
13544 (sha256
13545 (base32 "0mpgyy9qfb5x4fvlmb274hgayjbwf0bgk65dxyx31zikjwpcd56p"))))
13546 (build-system emacs-build-system)
13547 (home-page "https://github.com/joostkremers/parsebib")
13548 (synopsis "Library for parsing @file{.bib} files")
13549 (description
13550 "This package provides an Emacs library for parsing @file{.bib} files.")
13551 (license license:gpl3+)))
13552
13553 (define-public emacs-ebib
13554 (package
13555 (name "emacs-ebib")
13556 (version "2.22.1")
13557 (source
13558 (origin
13559 (method git-fetch)
13560 (uri (git-reference
13561 (url "https://github.com/joostkremers/ebib.git")
13562 (commit version)))
13563 (file-name (git-file-name name version))
13564 (sha256
13565 (base32 "0spiz5r2y4pdpyc4d3f9w228giq0j9rm8f5h5akzn5rwiq9pfkwz"))))
13566 (build-system emacs-build-system)
13567 (propagated-inputs
13568 `(("emacs-parsebib" ,emacs-parsebib)))
13569 (home-page "https://joostkremers.github.io/ebib/")
13570 (synopsis "BibTeX database manager for Emacs")
13571 (description
13572 "Ebib is a BibTeX database manager that runs in GNU Emacs.
13573 With Ebib you can create, sort and manage your @file{.bib} database files, all
13574 within Emacs. It supports searching, multi-line field values and
13575 @samp{@@String} and @samp{@@Preamble} definitions. Ebib integrates
13576 with (La)TeX mode, Org mode and other Emacs editing modes.")
13577 ;; The Ebib source files are released under a BSD license with
13578 ;; the exception of org-ebib.el, which is released under the GNU
13579 ;; GPL.
13580 (license (list license:bsd-3
13581 license:gpl3+))))
13582
13583 (define-public emacs-biblio
13584 (package
13585 (name "emacs-biblio")
13586 (version "0.2")
13587 (source
13588 (origin
13589 (method git-fetch)
13590 (uri (git-reference
13591 (url "https://github.com/cpitclaudel/biblio.el.git")
13592 (commit version)))
13593 (file-name (git-file-name name version))
13594 (sha256
13595 (base32 "1gxjind6r235az59dr8liv03d8994mqb8a7m28j3c12q7p70aziz"))))
13596 (build-system emacs-build-system)
13597 (propagated-inputs
13598 `(("emacs-seq" ,emacs-seq)
13599 ("emacs-dash" ,emacs-dash)
13600 ("emacs-let-alist" ,emacs-let-alist)))
13601 (home-page "https://github.com/cpitclaudel/biblio.el")
13602 (synopsis "Browse and import bibliographic references")
13603 (description "This package provides an extensible Emacs package for
13604 browsing and fetching references.
13605
13606 @file{biblio.el} makes it easy to browse and gather bibliographic references
13607 and publications from various sources, by keywords or by DOI. References are
13608 automatically fetched from well-curated sources, and formatted as BibTeX.")
13609 (license license:gpl3+)))
13610
13611 (define-public emacs-helm-bibtex
13612 (let ((commit "d4471232be26793fbf56c0ac3690b5f537c378b9")
13613 (revision "2"))
13614 (package
13615 (name "emacs-helm-bibtex")
13616 (version (string-append "2.0.0" "-" revision "."
13617 (string-take commit 7)))
13618 (source
13619 (origin
13620 (method git-fetch)
13621 (uri (git-reference
13622 (url "https://github.com/tmalsburg/helm-bibtex.git")
13623 (commit commit)))
13624 (file-name (git-file-name name version))
13625 (sha256
13626 (base32
13627 "1bkzhic6qckb267025il1r3xcpz99kisphxiafni1pxvf9jafr0j"))))
13628 (build-system emacs-build-system)
13629 (propagated-inputs
13630 `(("emacs-helm" ,emacs-helm)
13631 ("emacs-parsebib" ,emacs-parsebib)
13632 ("emacs-s" ,emacs-s)
13633 ("emacs-dash" ,emacs-dash)
13634 ("emacs-f" ,emacs-f)
13635 ("emacs-biblio" ,emacs-biblio)
13636 ("emacs-ivy" ,emacs-ivy)))
13637 (home-page "https://github.com/tmalsburg/helm-bibtex")
13638 (synopsis "Bibliography manager based on Helm")
13639 (description "This package provides bibliography manager for Emacs,
13640 based on Helm and the bibtex-completion backend.
13641
13642 Key features:
13643
13644 @itemize
13645 @item Quick access to your bibliography from within Emacs
13646 @item Powerful search capabilities
13647 @item Provides instant search results as you type
13648 @item Tightly integrated with LaTeX authoring, emails, Org mode, etc.
13649 @item Open the PDFs, URLs, or DOIs associated with an entry
13650 @item Insert LaTeX cite commands, Ebib links, or Pandoc citations,
13651 BibTeX entries, or plain text references at point, attach PDFs to emails
13652 @item Support for note taking
13653 @item Quick access to online bibliographic databases such as Pubmed,
13654 arXiv, Google Scholar, Library of Congress, etc.
13655 @item Imports BibTeX entries from CrossRef and other sources.
13656 @end itemize\n")
13657 (license license:gpl3+))))
13658
13659 (define-public emacs-ewmctrl
13660 (let ((commit "3d0217c4d6cdb5c308b6cb4293574f470d4faacf"))
13661 (package
13662 (name "emacs-ewmctrl")
13663 (version (git-version "0.0.1" "1" commit))
13664 (source
13665 (origin
13666 (method git-fetch)
13667 (uri (git-reference
13668 (url "https://github.com/flexibeast/ewmctrl.git")
13669 (commit commit)))
13670 (file-name (git-file-name name version))
13671 (sha256
13672 (base32
13673 "0ilwvx0qryv3v6xf0gxqwnfm6pf96gxap8h9g3f6z6lk9ff4n1wi"))))
13674 (build-system emacs-build-system)
13675 (arguments
13676 '(#:phases
13677 (modify-phases %standard-phases
13678 (add-after 'unpack 'patch-ewmctrl
13679 ;; This build phase makes sure ‘ewmctrl’ looks
13680 ;; for ‘wmctrl’ in the right place.
13681 (lambda _
13682 (let ((file "ewmctrl.el"))
13683 (chmod file #o644)
13684 (emacs-substitute-sexps file
13685 ("(defcustom ewmctrl-wmctrl-path" (which "wmctrl")))))))))
13686 (inputs
13687 `(("wmctrl" ,wmctrl)))
13688 (home-page "https://github.com/flexibeast/ewmctrl")
13689 (synopsis "Emacs interface to @code{wmctrl}")
13690 (description "@code{ewmctrl} provides an Emacs interface to
13691 @code{wmctrl} command-line window-management program.")
13692 (license license:gpl3+))))
13693
13694 (define-public emacs-erc-image
13695 (let ((commit "82fb3871f02e24b1e880770b9a3d187aab43d0f0")
13696 (revision "1"))
13697 (package
13698 (name "emacs-erc-image")
13699 (version (git-version "0" revision commit))
13700 (source
13701 (origin
13702 (method git-fetch)
13703 (uri (git-reference
13704 (url "https://github.com/kidd/erc-image.el")
13705 (commit commit)))
13706 (file-name (git-file-name name version))
13707 (sha256
13708 (base32
13709 "1q8mkf612fb4fjp8h4kbr107wn083iqfdgv8f80pcmil8y33dw9i"))))
13710 (build-system emacs-build-system)
13711 (home-page "https://github.com/kidd/erc-image.el")
13712 (synopsis "Show inlined images (png/jpg/gif/svg) in ERC buffers")
13713 (description "This plugin subscribes to hooks @code{erc-insert-modify-hook}
13714 and @code{erc-send-modify-hook} to download and show images.")
13715 (license license:gpl3+))))
13716
13717 (define-public emacs-helm-gtags
13718 (package
13719 (name "emacs-helm-gtags")
13720 (version "1.5.6")
13721 (source
13722 (origin
13723 (method git-fetch)
13724 (uri (git-reference
13725 (url "https://github.com/syohex/emacs-helm-gtags.git")
13726 (commit version)))
13727 (file-name (git-file-name name version))
13728 (sha256
13729 (base32 "0zyspn9rqfs3hkq8qx0q1w5qiv30ignbmycyv0vn3a6q7a5fsnhx"))))
13730 (build-system emacs-build-system)
13731 (propagated-inputs
13732 `(("emacs-helm" ,emacs-helm)))
13733 (home-page "https://github.com/syohex/emacs-helm-gtags")
13734 (synopsis "Emacs Helm interface to GNU Global")
13735 (description
13736 "@code{emacs-helm-gtags} provides a Emacs Helm interface to GNU Global.")
13737 (license license:gpl3+)))
13738
13739 (define-public emacs-list-utils
13740 (package
13741 (name "emacs-list-utils")
13742 (version "0.4.4")
13743 (source
13744 (origin
13745 (method git-fetch)
13746 (uri (git-reference
13747 (url "https://github.com/rolandwalker/list-utils.git")
13748 (commit (string-append "v" version))))
13749 (file-name (git-file-name name version))
13750 (sha256
13751 (base32 "0ql159v7sxs33yh2l080kchrj52vk34knz50cvqi3ykpb7djg3sz"))))
13752 (build-system emacs-build-system)
13753 (home-page "https://github.com/rolandwalker/list-utils")
13754 (synopsis "List-manipulation utility functions")
13755 (description "This package provides a list manipulation library for Emacs.")
13756 (license license:gpl3+)))
13757
13758 (define-public emacs-move-text
13759 (package
13760 (name "emacs-move-text")
13761 (version "2.0.8")
13762 (source
13763 (origin
13764 (method git-fetch)
13765 (uri (git-reference
13766 (url "https://github.com/emacsfodder/move-text.git")
13767 (commit version)))
13768 (file-name (git-file-name name version))
13769 (sha256
13770 (base32 "06jxk5g23822gfmwrxhc34zand3dr8p2wjh1zs3j61ibz6n0nmz1"))))
13771 (build-system emacs-build-system)
13772 (home-page "https://github.com/emacsfodder/move-text")
13773 (synopsis "Move current line or region with M-up or M-down")
13774 (description "This package provide functions to move the current line
13775 using @kbd{M-up} or @kbd{M-down} if a region is marked, it will move the
13776 region instead.")
13777 (license license:gpl3+)))
13778
13779 (define-public emacs-validate
13780 (package
13781 (name "emacs-validate")
13782 (version "1.0.5")
13783 (source (origin
13784 (method git-fetch)
13785 (uri (git-reference
13786 (url "https://github.com/Malabarba/validate.el")
13787 (commit version)))
13788 (file-name (git-file-name name version))
13789 (sha256
13790 (base32
13791 "1l12ibx6cw4mgicgjpw71fb4fr4sd0k54lvbpq7ngc29br3j6i4v"))))
13792 (build-system emacs-build-system)
13793 (home-page "https://github.com/Malabarba/validate.el")
13794 (synopsis "Emacs library for scheme validation")
13795 (description "This Emacs library provides two functions that perform
13796 schema validation.")
13797 (license license:gpl3+)))
13798
13799 (define-public emacs-rainbow-blocks
13800 (let ((commit "dd435d7bb34ff6f162a5f315df308b90b7e9f842"))
13801 (package
13802 (name "emacs-rainbow-blocks")
13803 (version (git-version "1.0.0" "1" commit))
13804 (source (origin
13805 (method git-fetch)
13806 (uri (git-reference
13807 (url "https://github.com/istib/rainbow-blocks.git")
13808 (commit commit)))
13809 (file-name (git-file-name name version))
13810 (sha256
13811 (base32
13812 "06yfb3i7wzvqrhkb61zib9xvpb5i00s4frizkzff66im05k0n795"))))
13813 (build-system emacs-build-system)
13814 (home-page "https://github.com/istib/rainbow-blocks")
13815 (synopsis "Highlight sexp blocks")
13816 (description "Rainbow-blocks is an Emacs mode that highlights blocks
13817 made of parentheses, brackets, and braces according to their depth. Each
13818 successive level is highlighted in a different color. This makes it easy to
13819 orient yourself in the code, and tell which statements are at a given level.")
13820 (license license:gpl3+))))
13821
13822 (define-public emacs-hierarchy
13823 (package
13824 (name "emacs-hierarchy")
13825 (version "0.7.0")
13826 (source
13827 (origin
13828 (method git-fetch)
13829 (uri (git-reference
13830 (url "https://github.com/DamienCassou/hierarchy.git")
13831 (commit (string-append "v" version))))
13832 (file-name (git-file-name name version))
13833 (sha256
13834 (base32 "1kykbb1sil5cycfa5aj8dhsxc5yrx1641i2np5kwdjid6ahdlz5r"))))
13835 (build-system emacs-build-system)
13836 (native-inputs
13837 `(("emacs-buttercup" ,emacs-buttercup)))
13838 (arguments
13839 `(#:tests? #t
13840 #:test-command '("buttercup" "-L" ".")))
13841 (home-page "https://github.com/DamienCassou/hierarchy")
13842 (synopsis "Library to create and display hierarchy structures")
13843 (description "This package provides an Emacs library to create, query,
13844 navigate and display hierarchy structures.")
13845 (license license:gpl3+)))
13846
13847 (define-public emacs-tree-mode
13848 (let ((commit "b06078826d5875d74b0e7b7ac47b0d0917610534")
13849 (revision "1"))
13850 (package
13851 (name "emacs-tree-mode")
13852 (version (string-append "0.0.1" "-" revision "."
13853 (string-take commit 7)))
13854 (source
13855 (origin
13856 (method git-fetch)
13857 (uri (git-reference
13858 (url "https://github.com/emacsorphanage/tree-mode.git")
13859 (commit commit)))
13860 (file-name (git-file-name name version))
13861 (sha256
13862 (base32
13863 "13bbdhdmqg4x9yghanhr8fsbsxbnypzxdxgicz31sjjm675kpnix"))))
13864 (build-system emacs-build-system)
13865 (home-page "https://github.com/emacsorphanage/tree-mode")
13866 (synopsis "Emacs mode to manage tree widgets")
13867 (description
13868 "This package provides an Emacs library to manage tree widgets.")
13869 (license license:gpl3+))))
13870
13871 (define-public emacs-md4rd
13872 (package
13873 (name "emacs-md4rd")
13874 (version "0.3.1")
13875 (source (origin
13876 (method git-fetch)
13877 (uri (git-reference
13878 (url "https://github.com/ahungry/md4rd.git")
13879 (commit version)))
13880 (file-name (git-file-name name version))
13881 (sha256
13882 (base32
13883 "1n6g6k4adzkkn1g7z4j27s35xy12c1fg2r08gv345ddr3wplq4ri"))))
13884 (propagated-inputs
13885 `(("emacs-hierarchy" ,emacs-hierarchy)
13886 ("emacs-request" ,emacs-request)
13887 ("emacs-dash" ,emacs-dash)
13888 ("emacs-s" ,emacs-s)
13889 ("emacs-tree-mode" ,emacs-tree-mode)))
13890 (build-system emacs-build-system)
13891 (home-page "https://github.com/ahungry/md4rd")
13892 (synopsis "Emacs Mode for Reddit")
13893 (description
13894 "This package allows reading Reddit from within Emacs interactively.")
13895 (license license:gpl3+)))
13896
13897 (define-public emacs-pulseaudio-control
13898 (let ((commit "7e1a87068379075a5e9ce36c64c686c03d20d379")
13899 (revision "3"))
13900 (package
13901 (name "emacs-pulseaudio-control")
13902 (version (git-version "0.0.1" revision commit))
13903 (source
13904 (origin
13905 (method git-fetch)
13906 (uri (git-reference
13907 (url "https://github.com/flexibeast/pulseaudio-control.git")
13908 (commit commit)))
13909 (file-name (git-file-name name version))
13910 (sha256
13911 (base32
13912 "0wcaqyh15x56255rrj350089z15pnwixa2vf0ly6dv0hjmzmh3mr"))))
13913 (build-system emacs-build-system)
13914 (arguments
13915 '(#:phases (modify-phases %standard-phases
13916 (add-after 'unpack 'patch-file-name
13917 (lambda* (#:key inputs #:allow-other-keys)
13918 (let ((pulseaudio (assoc-ref inputs "pulseaudio")))
13919 (chmod "pulseaudio-control.el" #o600)
13920 (emacs-substitute-variables "pulseaudio-control.el"
13921 ("pulseaudio-control-pactl-path"
13922 (string-append pulseaudio "/bin/pactl")))
13923 #t))))))
13924 (inputs `(("pulseaudio" ,pulseaudio)))
13925 (home-page "https://github.com/flexibeast/pulseaudio-control")
13926 (synopsis "Control @code{pulseaudio} from Emacs")
13927 (description
13928 "This package allows controlling @code{pulseaudio} from Emacs.")
13929 (license license:gpl3+))))
13930
13931 (define-public emacs-datetime
13932 (package
13933 (name "emacs-datetime")
13934 (version "0.3")
13935 (source
13936 (origin
13937 (method git-fetch)
13938 (uri (git-reference
13939 (url "https://github.com/doublep/datetime.git")
13940 (commit version)))
13941 (file-name (git-file-name name version))
13942 (sha256
13943 (base32 "0fdswqi53qx924lib7nd9dazn0916xf1ybrh3bcn3f8cn6b8ikg5"))))
13944 (build-system emacs-build-system)
13945 (home-page "https://github.com/doublep/datetime/")
13946 (synopsis "Library to work with dates in Emacs")
13947 (description "Parsing, formatting, matching and recoding
13948 timestamps and date-time format strings library for Emacs.")
13949 (license license:gpl3+)))
13950
13951 (define-public emacs-org-mind-map
13952 (let ((commit "9d6e262bedd94daf9de269f4d56de277275677cb")
13953 (revision "1"))
13954 (package
13955 (name "emacs-org-mind-map")
13956 (version (string-append "0.0.1" "-" revision "."
13957 (string-take commit 7)))
13958 (source
13959 (origin
13960 (method git-fetch)
13961 (uri (git-reference
13962 (url "https://github.com/theodorewiles/org-mind-map.git")
13963 (commit commit)))
13964 (file-name (git-file-name name version))
13965 (sha256
13966 (base32
13967 "0jgkkgq7g64zckrmjib0hvz0qy3ynz5vz13qbmlpf096l3bb65wn"))))
13968 (propagated-inputs
13969 `(("emacs-dash" ,emacs-dash)))
13970 (build-system emacs-build-system)
13971 (home-page "https://github.com/theodorewiles/org-mind-map")
13972 (synopsis "Create Graphviz directed graphs from Org files")
13973 (description
13974 "This package creates Graphviz directed graphs from Org files.")
13975 (license license:gpl3+))))
13976
13977 (define-public emacs-npm-mode
13978 (package
13979 (name "emacs-npm-mode")
13980 (version "0.6.0")
13981 (source
13982 (origin
13983 (method git-fetch)
13984 (uri (git-reference
13985 (url "https://github.com/mojochao/npm-mode.git")
13986 (commit version)))
13987 (file-name (git-file-name name version))
13988 (sha256
13989 (base32 "1mh6nbffciw4yhv049kdhh796ysj1x21ndm3fwymhskb3dy0w1ss"))))
13990 (build-system emacs-build-system)
13991 (home-page "https://github.com/mojochao/npm-mode")
13992 (synopsis "Minor mode for working with @code{npm} projects")
13993 (description
13994 "@code{npm-mode} provides a minor mode to work with @code{npm} projects.")
13995 (license license:gpl3+)))
13996
13997 (define-public emacs-seq
13998 (package
13999 (name "emacs-seq")
14000 (version "2.20")
14001 (source
14002 (origin
14003 (method url-fetch)
14004 (uri (string-append "https://elpa.gnu.org/packages/seq-" version ".tar"))
14005 (sha256
14006 (base32
14007 "0vrpx6nnyjb0gsypknzagimlhvcvi5y1rcdkpxyqr42415zr8d0n"))))
14008 (build-system emacs-build-system)
14009 (home-page "https://elpa.gnu.org/packages/seq.html")
14010 (synopsis "Sequence manipulation functions")
14011 (description "Sequence-manipulation functions that complement basic
14012 functions provided by @file{subr.el}.")
14013 (license license:gpl3+)))
14014
14015 (define-public emacs-itail
14016 (let ((commit "6e43c20da03be3b9c6ece93b7dc3495975ec1888")
14017 (revision "1"))
14018 (package
14019 (name "emacs-itail")
14020 (version (string-append "0.0.1" "-" revision "."
14021 (string-take commit 7)))
14022 (source
14023 (origin
14024 (method git-fetch)
14025 (uri (git-reference
14026 (url "https://github.com/re5et/itail.git")
14027 (commit commit)))
14028 (file-name (git-file-name name version))
14029 (sha256
14030 (base32
14031 "044nzxh1hq41faxw3lix0wy78vfz304pjcaa5a11dqfz7q3gx5cv"))))
14032 (build-system emacs-build-system)
14033 (home-page "https://github.com/re5et/itail")
14034 (synopsis "Interactive @code{tail} Emacs mode")
14035 (description "@code{itail} provides interactive @code{tail} mode
14036 that allows you to filter the tail with unix pipes and highlight the
14037 contents of the tailed file. Works locally or on remote files using
14038 tramp.")
14039 (license license:gpl3+))))
14040
14041 (define-public emacs-loop
14042 (package
14043 (name "emacs-loop")
14044 (version "1.3")
14045 (source
14046 (origin
14047 (method git-fetch)
14048 (uri (git-reference
14049 (url "https://github.com/Wilfred/loop.el.git")
14050 (commit version)))
14051 (file-name (git-file-name name version))
14052 (sha256
14053 (base32 "1gs95xnmnn8aa4794k7h8mw1sz1nfdh9v0caqj6yvnsdnwy74n5x"))))
14054 (build-system emacs-build-system)
14055 (native-inputs
14056 `(("emacs-ert-runner" ,emacs-ert-runner)
14057 ("emacs-undercover" ,emacs-undercover)))
14058 (arguments
14059 `(#:tests? #t
14060 #:test-command '("ert-runner")))
14061 (home-page "https://github.com/Wilfred/loop.el")
14062 (synopsis "Imperative loop structures for Emacs")
14063 (description "Loop structures familiar to users of other languages. This
14064 library adds a selection of popular loop structures as well as break and
14065 continue.")
14066 (license license:gpl3+)))
14067
14068 (define-public emacs-elisp-refs
14069 (package
14070 (name "emacs-elisp-refs")
14071 (version "1.3")
14072 (source
14073 (origin
14074 (method git-fetch)
14075 (uri (git-reference
14076 (url "https://github.com/Wilfred/elisp-refs.git")
14077 (commit version)))
14078 (file-name (git-file-name name version))
14079 (sha256
14080 (base32 "0w7k91xf69zc0zkjrw8h8sjdjf9xq9qs5zhvajhd718lzf93564b"))))
14081 (build-system emacs-build-system)
14082 (propagated-inputs
14083 `(("emacs-dash" ,emacs-dash)
14084 ("emacs-f" ,emacs-f)
14085 ("emacs-list-utils" ,emacs-list-utils)
14086 ("emacs-loop" ,emacs-loop)
14087 ("emacs-s" ,emacs-s)
14088 ("emacs-shut-up" ,emacs-shut-up)))
14089 (native-inputs
14090 `(("emacs-ert-runner" ,emacs-ert-runner)
14091 ("emacs-undercover" ,emacs-undercover)))
14092 (arguments
14093 `(#:tests? #t
14094 #:test-command '("ert-runner")))
14095 (home-page "https://github.com/Wilfred/elisp-refs")
14096 (synopsis "Find callers of elisp functions or macros")
14097 (description "Find references to functions, macros or variables. Unlike a
14098 dumb text search, @code{elisp-refs} actually parses the code, so it's never
14099 confused by comments or @code{foo-bar} matching @code{foo}.")
14100 (license license:gpl3+)))
14101
14102 (define-public emacs-crux
14103 (let ((commit "308f17d914e2cd79cbc809de66d02b03ceb82859")
14104 (revision "2"))
14105 (package
14106 (name "emacs-crux")
14107 (version (git-version "0.3.0" revision commit))
14108 (source
14109 (origin
14110 (method git-fetch)
14111 (uri (git-reference
14112 (url "https://github.com/bbatsov/crux.git")
14113 (commit commit)))
14114 (file-name (git-file-name name version))
14115 (sha256
14116 (base32
14117 "0rf84finwlvmy0xpgyljjvnrijlmkzjyw9rh97svgxp9c1rzfk0x"))))
14118 (build-system emacs-build-system)
14119 (home-page "https://github.com/bbatsov/crux")
14120 (synopsis "Collection of useful functions for Emacs")
14121 (description
14122 "@code{crux} provides a collection of useful functions for Emacs.")
14123 (license license:gpl3+))))
14124
14125 (define-public emacs-edit-server
14126 (package
14127 (name "emacs-edit-server")
14128 (version "1.13")
14129 (source
14130 (origin
14131 (method git-fetch)
14132 (uri (git-reference
14133 (url "https://github.com/stsquad/emacs_chrome.git")
14134 (commit (string-append "v" version))))
14135 (file-name (git-file-name name version))
14136 (sha256
14137 (base32 "12dp1xj09jrp0kxp9xb6cak9dn6zkyis1wfn4fnhzmxxnrd8c5rn"))))
14138 (build-system emacs-build-system)
14139 (arguments
14140 `(#:phases
14141 (modify-phases %standard-phases
14142 (add-after 'unpack 'chdir-elisp
14143 ;; Elisp directory is not in root of the source.
14144 (lambda _
14145 (chdir "servers"))))))
14146 (home-page "https://github.com/stsquad/emacs_chrome")
14147 (synopsis "Server that responds to edit requests from Chromium")
14148 (description
14149 "This package provides an edit server to respond to requests from Emacs.")
14150 (license license:gpl3+)))
14151
14152 (define-public emacs-m-buffer-el
14153 (package
14154 (name "emacs-m-buffer-el")
14155 (version "0.15")
14156 (source
14157 (origin
14158 (method git-fetch)
14159 (uri (git-reference
14160 (url "https://github.com/phillord/m-buffer-el")
14161 (commit (string-append "v" version))))
14162 (file-name (git-file-name name version))
14163 (sha256
14164 (base32
14165 "1sx76i59razwccvn6x7rx5a124bfyjw9fcbxf4gj7nsg33qiq809"))))
14166 (arguments
14167 `(#:phases
14168 (modify-phases %standard-phases
14169 (add-before 'install 'check
14170 (lambda* (#:key inputs #:allow-other-keys)
14171 (invoke "emacs" "--batch" "-L" "."
14172 "-l" "test/m-buffer-test.el"
14173 "-l" "test/m-buffer-at-test.el"
14174 "-f" "ert-run-tests-batch-and-exit"))))))
14175 (build-system emacs-build-system)
14176 (home-page "https://github.com/phillord/m-buffer-el")
14177 (synopsis "List oriented buffer operations for Emacs")
14178 (description "@code{m-buffer} provides a set of list-orientated functions
14179 for operating over the contents of Emacs buffers.")
14180 (license license:gpl3+)))
14181
14182 (define-public emacs-let-alist
14183 (package
14184 (name "emacs-let-alist")
14185 (version "1.0.6")
14186 (source
14187 (origin
14188 (method url-fetch)
14189 (uri (string-append
14190 "https://elpa.gnu.org/packages/let-alist-" version ".el"))
14191 (sha256
14192 (base32 "0szj7vnjzz4zci5fvz7xqgcpi4pzdyyf4qi2s8xar2hi7v3yaawr"))))
14193 (build-system emacs-build-system)
14194 (home-page "https://elpa.gnu.org/packages/let-alist.html")
14195 (synopsis "Easily let-bind values of an assoc-list by their names")
14196 (description "This package offers a single macro, @code{let-alist}. This
14197 macro takes a first argument (whose value must be an alist) and a body.")
14198 (license license:gpl3+)))
14199
14200 (define-public emacs-esup
14201 (let ((commit "a589005a9a888537deef94d6fe38a9b8790c97c7")
14202 (revision "1"))
14203 (package
14204 (name "emacs-esup")
14205 (version (string-append "0.6" "-" revision "."
14206 (string-take commit 7)))
14207 (source
14208 (origin
14209 (method git-fetch)
14210 (uri (git-reference
14211 (url "https://github.com/jschaf/esup.git")
14212 (commit commit)))
14213 (file-name (git-file-name name version))
14214 (sha256
14215 (base32
14216 "04lxmd0h7mfjjl0qghrycgff0vcv950j1wqv0dbkr61jxp64n5fv"))))
14217 ;; TODO: Add tests
14218 (build-system emacs-build-system)
14219 (home-page "https://github.com/jschaf/esup")
14220 (synopsis "Emacs start up profiler")
14221 (description "Benchmark Emacs Startup time without ever leaving
14222 your Emacs.")
14223 (license license:gpl2+))))
14224
14225 (define-public emacs-restart-emacs
14226 (let ((commit "9aa90d3df9e08bc420e1c9845ee3ff568e911bd9")
14227 (revision "1"))
14228 (package
14229 (name "emacs-restart-emacs")
14230 (version (git-version "0.1.1" revision commit))
14231 (source
14232 (origin
14233 (method git-fetch)
14234 (uri (git-reference
14235 (url "https://github.com/iqbalansari/restart-emacs.git")
14236 (commit commit)))
14237 (file-name (git-file-name name version))
14238 (sha256
14239 (base32 "02x1a85k7r95z8091zgjiaj9nf0zvx1jy4xvl3hr12qbnrx1wfav"))))
14240 (build-system emacs-build-system)
14241 (home-page "https://github.com/iqbalansari/restart-emacs")
14242 (synopsis "Restart Emacs from within Emacs")
14243 (description "This package provides a simple command to restart Emacs from
14244 within Emacs.")
14245 (license license:gpl3+))))
14246
14247 (define-public emacs-sourcemap
14248 (package
14249 (name "emacs-sourcemap")
14250 (version "0.03")
14251 (source
14252 (origin
14253 (method git-fetch)
14254 (uri (git-reference
14255 (url "https://github.com/syohex/emacs-sourcemap.git")
14256 (commit version)))
14257 (file-name (git-file-name name version))
14258 (sha256
14259 (base32 "115g2mfpbfywp8xnag4gsb50klfvplqfh928a5mabb5s8v4a3582"))))
14260 (build-system emacs-build-system)
14261 (home-page "https://github.com/syohex/emacs-sourcemap")
14262 (synopsis "Sourcemap parser")
14263 (description "Sourcemap parser")
14264 (license license:gpl3+)))
14265
14266 (define-public emacs-macrostep
14267 (let ((commit "424e3734a1ee526a1bd7b5c3cd1d3ef19d184267"))
14268 (package
14269 (name "emacs-macrostep")
14270 (version (git-version "0.9" "1" commit))
14271 (source (origin
14272 (method git-fetch)
14273 (uri (git-reference
14274 (url "https://github.com/joddie/macrostep.git")
14275 (commit commit)))
14276 (file-name (git-file-name name version))
14277 (sha256
14278 (base32
14279 "1fm40mxdn289cyzgw992223dgrjmwxn4q8svyyxfaxjrpb38jhjz"))))
14280 (build-system emacs-build-system)
14281 (arguments
14282 '(#:phases
14283 (modify-phases %standard-phases
14284 (add-before 'check 'remove-test
14285 ;; Fails because of requirement ‘/bin/sh’.
14286 (lambda _
14287 (let ((file "macrostep-test.el"))
14288 (chmod file #o644)
14289 (emacs-batch-edit-file file
14290 `(progn (progn (goto-char (point-min))
14291 (re-search-forward
14292 "(ert-deftest macrostep-expand-c-macros")
14293 (beginning-of-line)
14294 (kill-sexp))
14295 (basic-save-buffer))))))
14296 (add-before 'install 'check
14297 (lambda _
14298 (invoke "emacs" "--batch" "-L" "."
14299 "-l" "macrostep-test.el"
14300 "-f" "ert-run-tests-batch-and-exit"))))))
14301 (home-page "https://github.com/joddie/macrostep")
14302 (synopsis "Interactive macro-expander for Emacs")
14303 (description "@code{macrostep} is an Emacs minor mode for interactively
14304 stepping through the expansion of macros in Emacs Lisp source code. It lets
14305 you see exactly what happens at each step of the expansion process by
14306 pretty-printing the expanded forms inline in the source buffer, which is
14307 temporarily read-only while macro expansions are visible. You can expand and
14308 collapse macro forms one step at a time, and evaluate or instrument the
14309 expansions for debugging with Edebug as normal (but see “Bugs and known
14310 limitations”, below). Single-stepping through the expansion is particularly
14311 useful for debugging macros that expand into another macro form. These can be
14312 difficult to debug with Emacs’ built-in macroexpand, which continues expansion
14313 until the top-level form is no longer a macro call.")
14314 (license license:gpl3+))))
14315
14316 (define-public emacs-parent-mode
14317 (package
14318 (name "emacs-parent-mode")
14319 (version "2.3")
14320 (source
14321 (origin
14322 (method git-fetch)
14323 (uri (git-reference
14324 (url "https://github.com/Fanael/parent-mode.git")
14325 (commit version)))
14326 (file-name (git-file-name name version))
14327 (sha256
14328 (base32 "0i5bc7lyyrx6swqlrp9l5x72yzwi53qn6ldrfs99gh08b3yvsnni"))))
14329 (build-system emacs-build-system)
14330 (home-page "https://github.com/Fanael/parent-mode")
14331 (synopsis "Get major mode's parent modes")
14332 (description "Get major mode's parent modes")
14333 (license license:gpl3+)))
14334
14335 (define-public emacs-lacarte
14336 (package
14337 (name "emacs-lacarte")
14338 (version "0.1")
14339 (source (origin
14340 (method url-fetch)
14341 (uri "https://www.emacswiki.org/emacs/download/lacarte.el")
14342 (sha256
14343 (base32
14344 "1sbmk37ljq5j7dsw5c37sbxvlfgdqswh7bi4dknyjzfxlq50f4am"))))
14345 (build-system emacs-build-system)
14346 (home-page "https://www.emacswiki.org/emacs/lacarte.el")
14347 (synopsis "Execute menu items as commands, with completion")
14348 (description "Execute menu items as commands, with completion.")
14349 (license license:gpl3)))
14350
14351 (define-public emacs-isearch-prop
14352 (let ((commit "4a2765f835dd115d472142da05215c4c748809f4")
14353 (revision "2"))
14354 (package
14355 (name "emacs-isearch-prop")
14356 (version (git-version "0" revision commit))
14357 (source
14358 (origin
14359 (method git-fetch)
14360 (uri (git-reference
14361 (url "https://github.com/emacsmirror/isearch-prop.git")
14362 (commit commit)))
14363 (file-name (git-file-name name version))
14364 (sha256
14365 (base32
14366 "06gdk5m84q6pxwng8rjxny1zkll8f3m2x6lw4xyib2dvg7iaslh3"))))
14367 (build-system emacs-build-system)
14368 (home-page "https://www.emacswiki.org/emacs/isearch-prop.el")
14369 (synopsis "Extensions to @code{isearch.el}")
14370 (description "The Emacs library @code{isearch-prop.el} lets you search within
14371 contexts. You can limit incremental search to a set of zones of
14372 buffer text, search contexts that in effect constitute a multi-region.
14373 These zones can be defined in various ways, including some ways
14374 provided specially by this library.")
14375 (license license:gpl3+))))
14376
14377 (define-public emacs-company-lua
14378 (let ((commit "29f6819de4d691e5fd0b62893a9f4fbc1c6fcb52")
14379 (revision "2"))
14380 (package
14381 (name "emacs-company-lua")
14382 (version (git-version "0.1" "2" commit))
14383 (source
14384 (origin
14385 (method git-fetch)
14386 (uri (git-reference
14387 (url "https://github.com/ptrv/company-lua.git")
14388 (commit commit)))
14389 (file-name (git-file-name name version))
14390 (sha256
14391 (base32
14392 "0ny2dcc7c585p7v3j6q0rpkbj1qmf2ismy8a5020jpr585xvz0hh"))))
14393 (build-system emacs-build-system)
14394 (propagated-inputs
14395 `(("emacs-company" ,emacs-company)
14396 ("emacs-s" ,emacs-s)
14397 ("emacs-f" ,emacs-f)
14398 ("emacs-lua-mode" ,emacs-lua-mode)))
14399 (arguments
14400 `(#:include (cons* "^lua\\/" %default-include)))
14401 (home-page "https://github.com/ptrv/company-lua")
14402 (synopsis "Company backend for Lua")
14403 (description
14404 "This package provides Company backend for Lua programming language.")
14405 (license license:gpl3+))))
14406
14407 (define-public emacs-beginend
14408 (package
14409 (name "emacs-beginend")
14410 (version "2.0.0")
14411 (source
14412 (origin
14413 (method git-fetch)
14414 (uri (git-reference
14415 (url "https://github.com/DamienCassou/beginend.git")
14416 (commit (string-append "v" version))))
14417 (file-name (git-file-name name version))
14418 (sha256
14419 (base32 "1jbhg73g1rrkbwql5vi2b0ys9avfazmwzwgd90gkzwavw0ch9cvl"))))
14420 ;; TODO: Run tests.
14421 (build-system emacs-build-system)
14422 (inputs
14423 `(("emacs-undercover" ,emacs-undercover))) ; For tests.
14424 (home-page "https://github.com/DamienCassou/beginend")
14425 (synopsis "Redefine @code{M-<} and @code{M->} for Emacs modes")
14426 (description "@code{beginend} redefines @code{M-<} and @code{M->}
14427 keybindings for Emacs modes so that point moves to meaningful
14428 locations. Redefined keys are still accessible by pressing the same
14429 key again.")
14430 (license license:gpl3+)))
14431
14432 (define-public emacs-mbsync
14433 (let ((commit "b62491c0e0d89eb9c66261a16d7ac81231c9c453")
14434 (revision "4"))
14435 (package
14436 (name "emacs-mbsync")
14437 (version (git-version "0.1.2" revision commit))
14438 (source
14439 (origin
14440 (method git-fetch)
14441 (uri (git-reference
14442 (url "https://github.com/dimitri/mbsync-el.git")
14443 (commit commit)))
14444 (file-name (git-file-name name version))
14445 (sha256
14446 (base32
14447 "1zlih37mkqjn2czl12zn7lgxxljvrwhqqpbksj9c91zn0f0rm3mz"))))
14448 (build-system emacs-build-system)
14449 (home-page "https://github.com/dimitri/mbsync-el")
14450 (synopsis "Interface to mbsync for Emacs")
14451 (description "This package calls @code{mbsync} from
14452 within Emacs.")
14453 (license license:gpl3+))))
14454
14455 (define-public emacs-ibuffer-projectile
14456 (let ((commit "76496214144687cee0b5139be2e61b1e400cac87")
14457 (revision "2"))
14458 (package
14459 (name "emacs-ibuffer-projectile")
14460 (version (git-version "0.2" revision commit))
14461 (source
14462 (origin
14463 (method git-fetch)
14464 (uri (git-reference
14465 (url "https://github.com/purcell/ibuffer-projectile.git")
14466 (commit commit)))
14467 (file-name (git-file-name name version))
14468 (sha256
14469 (base32
14470 "0vv9xwb1qd5x8zhqmmsn1nrpd11cql9hxb7483nsdhcfwl4apqav"))))
14471 (build-system emacs-build-system)
14472 (propagated-inputs
14473 `(("emacs-projectile" ,emacs-projectile)))
14474 (home-page "https://github.com/purcell/ibuffer-projectile")
14475 (synopsis "Group ibuffer's list by projectile root")
14476 (description "Adds functionality to Emacs @code{ibuffer} for
14477 grouping buffers by their projectile root directory.")
14478 (license license:gpl3+))))
14479
14480 (define-public emacs-elm-mode
14481 (package
14482 (name "emacs-elm-mode")
14483 (version "0.21.0")
14484 (source
14485 (origin
14486 (method git-fetch)
14487 (uri
14488 (git-reference
14489 (url "https://github.com/jcollard/elm-mode")
14490 (commit (string-append "v" version))))
14491 (file-name (git-file-name name version))
14492 (sha256
14493 (base32 "0iwk4fmw8hq3ry4ky1zc7lgl4cpbnrjyk74c2xzddfspi3ks41fd"))))
14494 (propagated-inputs
14495 `(("emacs-dash" ,emacs-dash)
14496 ("emacs-f" ,emacs-f)
14497 ("emacs-reformatter" ,emacs-reformatter)
14498 ("emacs-s" ,emacs-s)))
14499 (build-system emacs-build-system)
14500 (home-page "https://github.com/jcollard/elm-mode")
14501 (synopsis "Emacs major mode for editing Elm source code")
14502 (description
14503 "This package provides a major mode for editing Elm source code, and
14504 working with common core and third-party Elm tools. Its features are:
14505
14506 @itemize
14507 @item Syntax highlighting
14508 @item Intelligent indentation
14509 @item Integration with elm-make
14510 @item Integration with elm-repl
14511 @item Integration with elm-reactor
14512 @item Integration with elm-package
14513 @item Integration with elm-oracle
14514 @item Integration with elm-format
14515 @item Integration with elm-test
14516 @end itemize")
14517 (license license:gpl3+)))
14518
14519 (define-public emacs-helm-mode-manager
14520 (package
14521 (name "emacs-helm-mode-manager")
14522 (version "1.0.0")
14523 (source
14524 (origin
14525 (method git-fetch)
14526 (uri (git-reference
14527 (url "https://github.com/istib/helm-mode-manager")
14528 (commit version)))
14529 (file-name (git-file-name name version))
14530 (sha256
14531 (base32
14532 "1srx5f0s9x7zan7ayqd6scxfhcvr3nkd4yzs96hphd87rb18apzk"))))
14533 (build-system emacs-build-system)
14534 (propagated-inputs
14535 `(("emacs-helm" ,emacs-helm)))
14536 (home-page "https://github.com/istib/helm-mode-manager/")
14537 (synopsis "Switch and toggle Emacs major and minor modes using Helm")
14538 (description "This package provides a Helm interface for toggling Emacs
14539 major or minor mode.
14540
14541 @itemize
14542 @item @code{helm-switch-major-mode} list of all major modes
14543 @item @code{helm-enable-minor-mode} list of all inactive minor modes
14544 @item @code{helm-disable-minor-mode} list of all ACTIVE minor modes
14545 @end itemize\n
14546
14547 Hitting @code{RET} enables the mode, @code{C-z} shows the mode
14548 documentation.")
14549 (license license:gpl3+)))
14550
14551 (define-public emacs-hy-mode
14552 (package
14553 (name "emacs-hy-mode")
14554 (version "1.0.3")
14555 (source
14556 (origin
14557 (method git-fetch)
14558 (uri (git-reference
14559 (url "https://github.com/hylang/hy-mode.git")
14560 (commit (string-append "v" version))))
14561 (file-name (git-file-name name version))
14562 (sha256
14563 (base32 "1jxximiznz7fw9ys5k6plw85zrbzvxidql7py1fdi425fdp4058z"))))
14564 (build-system emacs-build-system)
14565 (propagated-inputs
14566 `(("emacs-dash" ,emacs-dash)
14567 ("emacs-s" ,emacs-s)))
14568 (home-page "https://github.com/hylang/hy-mode")
14569 (synopsis "Major mode for Hylang")
14570 (description "This package provides a major mode for Hylang.")
14571 (license license:gpl3+)))
14572
14573 (define-public emacs-web-beautify
14574 (package
14575 (name "emacs-web-beautify")
14576 (version "0.3.2")
14577 (source
14578 (origin
14579 (method git-fetch)
14580 (uri (git-reference
14581 (url "https://github.com/yasuyk/web-beautify.git")
14582 (commit version)))
14583 (file-name (git-file-name name version))
14584 (sha256
14585 (base32 "0vms7zz3ym53wf1zdrkbf2ky2xjr1v134ngsd0jr8azyi8siw84d"))))
14586 (build-system emacs-build-system)
14587 (home-page "https://github.com/yasuyk/web-beautify")
14588 (synopsis "Format HTML, CSS and JavaScript, JSON")
14589 (description "This package provides an Emacs functions to format HTML,
14590 CSS, JavaScript, JSON.")
14591 (license license:gpl3+)))
14592
14593 (define-public emacs-helm-shell-history
14594 (let ((commit "110d3c35c52fe4b89b29e79ea4c8626bce7266a1"))
14595 (package
14596 (name "emacs-helm-shell-history")
14597 (version (git-version "0.1" "1" commit))
14598 (source
14599 (origin
14600 (method git-fetch)
14601 (uri (git-reference
14602 (url "https://github.com/yuutayamada/helm-shell-history.git")
14603 (commit commit)))
14604 (file-name (git-file-name name version))
14605 (sha256
14606 (base32
14607 "18fkjcz69g4dyaxhf9j8svr5x6dhsdnglddwisis8hdn504scpfj"))))
14608 (build-system emacs-build-system)
14609 (arguments
14610 '(#:phases
14611 (modify-phases %standard-phases
14612 (add-before 'check 'patch-helm-shell-history-file
14613 (lambda _
14614 (let ((file "helm-shell-history.el"))
14615 (chmod file #o644)
14616 (emacs-substitute-sexps file
14617 ("(defvar helm-shell-history-file"
14618 `(expand-file-name "~/.bash_history"))))
14619 #t)))))
14620 (propagated-inputs
14621 `(("emacs-helm" ,emacs-helm)))
14622 (home-page "https://github.com/yuutayamada/helm-shell-history")
14623 (synopsis "Find shell history with Emacs Helm")
14624 (description "This package provides an Emacs Helm interface to search
14625 throw a shell history.")
14626 (license license:gpl3+))))
14627
14628 (define-public emacs-discover-my-major
14629 (package
14630 (name "emacs-discover-my-major")
14631 (version "1.0")
14632 (source
14633 (origin
14634 (method git-fetch)
14635 (uri (git-reference
14636 (url "https://framagit.org/steckerhalter/discover-my-major.git/")
14637 (commit version)))
14638 (file-name (git-file-name name version))
14639 (sha256
14640 (base32
14641 "1wlqyl03hhnflbyay3qlvdzqzvv5rbybcjpfddggda7ias9h0pr4"))))
14642 (build-system emacs-build-system)
14643 (propagated-inputs
14644 `(("emacs-makey" ,emacs-makey)))
14645 (home-page "https://framagit.org/steckerhalter/discover-my-major/")
14646 (synopsis "Discover key bindings for the current Emacs major mode")
14647 (description "This package discovers key bindings and
14648 their meaning for the current Emacs major-mode.")
14649 (license license:gpl3+)))
14650
14651 (define-public emacs-org-ref
14652 ;; No release since June 2017.
14653 (let ((commit "5bb9be2232db72b04754d7e4c02a3976ad422f6f")
14654 (revision "2"))
14655 (package
14656 (name "emacs-org-ref")
14657 (version (git-version "1.1.1" revision commit))
14658 (source
14659 (origin
14660 (method git-fetch)
14661 (uri (git-reference
14662 (url "https://github.com/jkitchin/org-ref.git")
14663 (commit commit)))
14664 (file-name (git-file-name name version))
14665 (sha256
14666 (base32 "15gcvbfj19kyv4nxa632b261dwhb26m99plq230qhv9ssfwfgxbx"))))
14667 (build-system emacs-build-system)
14668 (propagated-inputs
14669 `(("emacs-dash" ,emacs-dash)
14670 ("emacs-f" ,emacs-f)
14671 ("emacs-helm" ,emacs-helm)
14672 ("emacs-helm-bibtex" ,emacs-helm-bibtex)
14673 ("emacs-htmlize" ,emacs-htmlize)
14674 ("emacs-hydra" ,emacs-hydra)
14675 ("emacs-ivy" ,emacs-ivy)
14676 ("emacs-key-chord" ,emacs-key-chord)
14677 ("emacs-pdf-tools" ,emacs-pdf-tools)
14678 ("emacs-s" ,emacs-s)))
14679 (home-page "https://github.com/jkitchin/org-ref")
14680 (synopsis "Citations, cross-references and bibliographies in Org mode")
14681 (description
14682 "Org Ref is an Emacs library that provides rich support for citations,
14683 labels and cross-references in Org mode.
14684
14685 The basic idea of Org Ref is that it defines a convenient interface to insert
14686 citations from a reference database (e.g., from BibTeX files), and a set of
14687 functional Org links for citations, cross-references and labels that export
14688 properly to LaTeX, and that provide clickable functionality to the user. Org
14689 Ref interfaces with Helm BibTeX to facilitate citation entry, and it can also
14690 use RefTeX.
14691
14692 It also provides a fairly large number of utilities for finding bad citations,
14693 extracting BibTeX entries from citations in an Org file, and functions to
14694 create and modify BibTeX entries from a variety of sources, most notably from
14695 a DOI.
14696
14697 Org Ref is especially suitable for Org documents destined for LaTeX export and
14698 scientific publication. Org Ref is also useful for research documents and
14699 notes.")
14700 (license license:gpl3+))))
14701
14702 ;; This project is unmaintained. Please use emacs-org-re-reveal instead.
14703 (define-public emacs-org-reveal
14704 (let ((commit "9210413202a360a559a51e8275faa42be68cf44b"))
14705 (package
14706 (name "emacs-org-reveal")
14707 (version (git-version "0.1" "3" commit))
14708 (source (origin
14709 (method git-fetch)
14710 (uri (git-reference
14711 (url "https://github.com/yjwen/org-reveal.git")
14712 (commit commit)))
14713 (file-name (git-file-name name version))
14714 (sha256
14715 (base32
14716 "1wlfk823d3vrn480m38j7ncaqm193lvh6y22b92fx4b3yhdbndza"))))
14717 (build-system emacs-build-system)
14718 (home-page "https://github.com/yjwen/org-reveal")
14719 (synopsis "Org and Reveal.js powered HTML presentation tool")
14720 (description "Org-Reveal is a @command{org-mode} extension that allows
14721 to create beautiful presentations (slides) with 3D effects from simple but
14722 powerful Org contents.")
14723 (license license:gpl3+))))
14724
14725 (define-public emacs-org-re-reveal
14726 (package
14727 (name "emacs-org-re-reveal")
14728 (version "2.12.2")
14729 (source (origin
14730 (method git-fetch)
14731 (uri (git-reference
14732 (url "https://gitlab.com/oer/org-re-reveal.git")
14733 (commit version)))
14734 (file-name (git-file-name name version))
14735 (sha256
14736 (base32
14737 "19nz77f2r49hqavz50ri222prhrd5890vhvc7jfazbascbcdjbqv"))))
14738 (build-system emacs-build-system)
14739 (propagated-inputs
14740 `(("emacs-htmlize" ,emacs-htmlize)
14741 ("emacs-org" ,emacs-org)))
14742 (home-page "https://gitlab.com/oer/org-re-reveal")
14743 (synopsis "Build HTML presentations with reveal.js from Org source files")
14744 (description "This project started as fork of org-reveal. It provides an
14745 export back-end for HTML presentations with reveal.js from Org mode source
14746 files.")
14747 (license license:gpl3+)))
14748
14749 (define-public emacs-add-hooks
14750 (package
14751 (name "emacs-add-hooks")
14752 (version "3.1.1")
14753 (source
14754 (origin
14755 (method git-fetch)
14756 (uri (git-reference
14757 (url "https://github.com/nickmccurdy/add-hooks.git")
14758 (commit version)))
14759 (file-name (git-file-name name version))
14760 (sha256
14761 (base32 "1jv9fpcsm572zg0j1mbpbfkqgdlqapy89xhhj19pswkhjns1y2wl"))))
14762 (build-system emacs-build-system)
14763 (home-page "https://github.com/nickmccurdy/add-hooks/")
14764 (synopsis "Emacs function for setting multiple hooks")
14765 (description "This package provides a @code{add-hooks} function tidies up
14766 duplicate hook and function names further into a single declarative call.")
14767 (license license:gpl3+)))
14768
14769 (define-public emacs-fancy-narrow
14770 (package
14771 (name "emacs-fancy-narrow")
14772 (version "0.9.5")
14773 (source
14774 (origin
14775 (method git-fetch)
14776 (uri (git-reference
14777 (url "https://github.com/Malabarba/fancy-narrow.git")
14778 (commit version)))
14779 (file-name (git-file-name name version))
14780 (sha256
14781 (base32 "0vcr1gnqawvc1yclqs23jvxm6bqix8kpflf1c7znb0wzxmz9kx7y"))))
14782 (build-system emacs-build-system)
14783 (home-page "https://github.com/Malabarba/fancy-narrow/releases")
14784 (synopsis "Imitate @code{narrow-to-region} with more eye candy")
14785 (description
14786 "Unlike @code{narrow-to-region}, which completely hides text outside
14787 the narrowed region, this package simply de-emphasizes the text, makes it
14788 read-only, and makes it unreachable. This leads to a much more natural
14789 feeling where the region stays static (instead of being brutally moved to a
14790 blank slate) and is clearly highlighted with respect to the rest of the
14791 buffer.")
14792 (license license:gpl2+)))
14793
14794 (define-public emacs-know-your-http-well
14795 (package
14796 (name "emacs-know-your-http-well")
14797 (version "0.5.0")
14798 (source
14799 (origin
14800 (method git-fetch)
14801 (uri (git-reference
14802 (url "https://github.com/for-GET/know-your-http-well.git")
14803 (commit (string-append "v" version))))
14804 (file-name (git-file-name name version))
14805 (sha256
14806 (base32 "1lppggnii2r9fvlhh33gbdrwb50za8lnalavlq9s86ngndn4n94k"))))
14807 (arguments
14808 `(#:phases
14809 (modify-phases %standard-phases
14810 (add-after 'unpack 'install-json-files
14811 (lambda* (#:key outputs #:allow-other-keys)
14812 (for-each (lambda (directory)
14813 (copy-recursively directory
14814 (string-append
14815 (assoc-ref outputs "out")
14816 directory)))
14817 '("js" "json"))))
14818 (add-after 'unpack 'chdir-elisp
14819 ;; Elisp directory is not in root of the source.
14820 (lambda _
14821 (chdir "emacs"))))))
14822 (build-system emacs-build-system)
14823 (home-page "https://github.com/for-GET/know-your-http-well")
14824 (synopsis "Meaning of HTTP headers codes")
14825 (description "Meaning of HTTP headers codes.")
14826 (license license:gpl3+)))
14827
14828 (define-public emacs-navi-mode
14829 (let ((commit "c1d38e8237f4e14af020a0b7d4f118ea198ab674"))
14830 (package
14831 (name "emacs-navi-mode")
14832 (version (git-version "2.0" "1" commit))
14833 (source
14834 (origin
14835 (method git-fetch)
14836 (uri (git-reference
14837 (url "https://github.com/alphapapa/navi.git")
14838 (commit commit)))
14839 (file-name (git-file-name name version))
14840 (sha256
14841 (base32
14842 "0jj5spk14hgb7zb1cd2n8whcw4k1kd5zb6llwj96v178yaws7l8k"))))
14843 (build-system emacs-build-system)
14844 (propagated-inputs
14845 `(("emacs-outshine" ,emacs-outshine)
14846 ("emacs-outorg" ,emacs-outorg)))
14847 (home-page "https://github.com/alphapapa/navi")
14848 (synopsis "Emacs major-mode for easy buffer-navigation")
14849 (description
14850 "This package provides an Emacs major-mode for easy buffer-navigation")
14851 (license license:gpl3+))))
14852
14853 (define-public emacs-download-region
14854 (let ((commit "eb9e557529a73b4cfc8281c70dd0d95db333fffa")
14855 (revision "1"))
14856 (package
14857 (name "emacs-download-region")
14858 (version (string-append "0.0.1" "-" revision "."
14859 (string-take commit 7)))
14860 (source
14861 (origin
14862 (method git-fetch)
14863 (uri (git-reference
14864 (url "https://github.com/zk-phi/download-region.git")
14865 (commit commit)))
14866 (file-name (git-file-name name version))
14867 (sha256
14868 (base32
14869 "0v52djg39b6k2snizd9x0qc009ws5y0ywqsfwhqgcbs5ymzh7dsc"))))
14870 (build-system emacs-build-system)
14871 (home-page "https://github.com/zk-phi/download-region")
14872 (synopsis "In buffer download manager for Emacs")
14873 (description "@code{download-region} provides in buffer
14874 downloading manager for Emacs.")
14875 (license license:gpl3+))))
14876
14877 (define-public emacs-helpful
14878 (package
14879 (name "emacs-helpful")
14880 (version "0.17")
14881 (source
14882 (origin
14883 (method git-fetch)
14884 (uri (git-reference
14885 (url "https://github.com/Wilfred/helpful.git")
14886 (commit version)))
14887 (file-name (git-file-name name version))
14888 (sha256
14889 (base32 "0v2y0x9pwi08y2mgjjiw5brfb5haa7pbmy4540glw904ffxxcblj"))))
14890 (build-system emacs-build-system)
14891 (propagated-inputs
14892 `(("emacs-elisp-refs" ,emacs-elisp-refs)
14893 ("emacs-dash" ,emacs-dash)
14894 ("emacs-s" ,emacs-s)
14895 ("emacs-f" ,emacs-f)
14896 ("emacs-shut-up" ,emacs-shut-up)))
14897 (native-inputs
14898 `(("emacs-ert-runner" ,emacs-ert-runner)
14899 ("emacs-undercover" ,emacs-undercover)))
14900 (arguments
14901 `(#:tests? #t
14902 #:test-command '("ert-runner")))
14903 (home-page "https://github.com/Wilfred/helpful")
14904 (synopsis "More contextual information in Emacs help")
14905 (description "@code{helpful} is an alternative to the built-in Emacs help
14906 that provides much more contextual information.
14907
14908 @itemize
14909 @item Show the source code for interactively defined functions (unlike the
14910 built-in Help).
14911 @item Fall back to the raw sexp if no source is available.
14912 @item Show where a function is being called.
14913 @item Docstrings will Highlight the summary (the first sentence), include
14914 cross-references, hide superfluous puncuation.
14915 @item Show you the properties that have been applied to the current
14916 symbol. This provides visibility of features like edebug or byte-code
14917 optimisation.
14918 @item Provide a separate @code{helpful-command} function to view interactive
14919 functions.
14920 @item Display any keybindings that apply to interactive functions.
14921 @item Trace, disassemble functions from inside Helpful. This is discoverable
14922 and doesn't require memorisation of commands.
14923 @end itemize\n")
14924 (license license:gpl3+)))
14925
14926 (define-public emacs-logview
14927 (package
14928 (name "emacs-logview")
14929 (version "0.9")
14930 (source
14931 (origin
14932 (method git-fetch)
14933 (uri (git-reference
14934 (url "https://github.com/doublep/logview.git")
14935 (commit version)))
14936 (file-name (git-file-name name version))
14937 (sha256
14938 (base32 "1qhzs75pxnaksbhczmpdcy2zmrqavlzkzss7ik5nv2wf9vs0sn02"))))
14939 (propagated-inputs
14940 `(("emacs-datetime" ,emacs-datetime)))
14941 (build-system emacs-build-system)
14942 (home-page "https://github.com/doublep/logview/")
14943 (synopsis "Emacs mode for viewing log files")
14944 (description "@code{logview} provides an Emacs mode to view log files.")
14945 (license license:gpl3+)))
14946
14947 (define-public emacs-suggest
14948 (package
14949 (name "emacs-suggest")
14950 (version "0.7")
14951 (home-page "https://github.com/Wilfred/suggest.el")
14952 (source
14953 (origin
14954 (method git-fetch)
14955 (uri (git-reference
14956 (url home-page)
14957 (commit version)))
14958 (file-name (git-file-name name version))
14959 (sha256
14960 (base32
14961 "01v8plska5d3g19sb1m4ph1i3ayprfzk8mi6mpabjy6zad397xjl"))))
14962 (build-system emacs-build-system)
14963 (propagated-inputs
14964 `(("emacs-loop" ,emacs-loop)
14965 ("emacs-dash" ,emacs-dash)
14966 ("emacs-s" ,emacs-s)
14967 ("emacs-f" ,emacs-f)
14968 ("emacs-spinner" ,emacs-spinner)
14969 ("emacs-shut-up" ,emacs-shut-up)))
14970 (native-inputs
14971 `(("emacs-ert-runner" ,emacs-ert-runner)
14972 ("emacs-undercover" ,emacs-undercover)))
14973 (arguments
14974 `(#:tests? #t
14975 #:test-command '("ert-runner")))
14976 (synopsis "Suggest Elisp functions that give the output requested")
14977 (description "Suggest.el will find functions that give the output
14978 requested. It's a great way of exploring list, string and arithmetic
14979 functions.")
14980 (license license:gpl3+)))
14981
14982 (define-public emacs-benchmark-init
14983 (package
14984 (name "emacs-benchmark-init")
14985 (version "1.0")
14986 (source
14987 (origin
14988 (method git-fetch)
14989 (uri (git-reference
14990 (url "https://github.com/dholm/benchmark-init-el.git")
14991 (commit version)))
14992 (file-name (git-file-name name version))
14993 (sha256
14994 (base32 "1kyn1izm5sbqbp9whnhk9dn3yc7zy8bz5san5w3ivi3rpx15fh94"))))
14995 (build-system emacs-build-system)
14996 (home-page "https://github.com/dholm/benchmark-init-el")
14997 (synopsis "Benchmark Emacs @code{require} and @code{load} calls")
14998 (description "@code{benchmark-init} provides a way to keep track of where
14999 time is being spent during Emacs startup in order to optimize startup time.")
15000 (license license:gpl3+)))
15001
15002 (define-public emacs-magit-gerrit
15003 (let ((version "0.3")
15004 (revision "1")
15005 (commit "ece6f369694aca17f3ac166ed2801b432acfe20d"))
15006 (package
15007 (name "emacs-magit-gerrit")
15008 (version (git-version version revision commit))
15009 (source (origin
15010 (method git-fetch)
15011 (uri (git-reference
15012 (url "https://github.com/terranpro/magit-gerrit.git")
15013 (commit commit)))
15014 (file-name (git-file-name name version))
15015 (sha256
15016 (base32
15017 "0mms0gxv9a3ns8lk5k2wjibm3088y1cmpr3axjdh6ppv7r5wdvii"))))
15018 (build-system emacs-build-system)
15019 (propagated-inputs
15020 `(("emacs-magit" ,emacs-magit)))
15021 (home-page "https://github.com/terranpro/magit-gerrit")
15022 (synopsis "Magit extension for Gerrit")
15023 (description "This Magit extension provides integration with Gerrit,
15024 which makes it possible to conduct Gerrit code reviews directly from within
15025 Emacs.")
15026 (license license:gpl3+))))
15027
15028 (define-public emacs-magit-org-todos-el
15029 (let ((commit "df206287737b9671f2e36ae7b1474ebbe9940d2a"))
15030 (package
15031 (name "emacs-magit-org-todos-el")
15032 (version (git-version "0.1.1" "1" commit))
15033 (source
15034 (origin
15035 (method git-fetch)
15036 (uri (git-reference
15037 (url "https://github.com/danielma/magit-org-todos.el.git")
15038 (commit commit)))
15039 (file-name (git-file-name name version))
15040 (sha256
15041 (base32
15042 "0kdp7k7jnnrkhsg0xh1c3h7iz0vgi120gf5xwl1hxy61avivnxrn"))))
15043 (propagated-inputs
15044 `(("magit" ,emacs-magit)))
15045 (build-system emacs-build-system)
15046 (home-page "https://github.com/danielma/magit-org-todos.el")
15047 (synopsis "Get todo.org into Emacs Magit status")
15048 (description "This package allows you to get @file{todo.org} into your
15049 magit status.
15050
15051 If you have a @file{todo.org} file with @code{TODO} items in the root of your
15052 repository, @code{magit-org-todos} will create a section in your Magit status
15053 buffer with each of your todos.")
15054 (license license:gpl3+))))
15055
15056 (define-public emacs-vcsh
15057 (package
15058 (name "emacs-vcsh")
15059 (version "0.4.4")
15060 (source
15061 (origin
15062 (method git-fetch)
15063 (uri (git-reference
15064 (url "https://gitlab.com/stepnem/vcsh-el.git")
15065 (commit version)))
15066 (file-name (git-file-name name version))
15067 (sha256
15068 (base32 "183pffdiqb7qqmjq31wxl3fpv8qswqgg99gb716rddiyk15ysri7"))))
15069 (build-system emacs-build-system)
15070 (home-page "https://gitlab.com/stepnem/vcsh-el")
15071 (synopsis "Emacs VCSH integration")
15072 (description
15073 "This library provides basic ``enter'' functionality and a few
15074 convenience commands to initialize a @acronym{VCSH, Version Control System for
15075 $HOME} repository and add files to it. It can be used in conjunction with
15076 Magit.")
15077 (license license:public-domain)))
15078
15079 (define-public emacs-f3
15080 (package
15081 (name "emacs-f3")
15082 (version "0.1")
15083 (source
15084 (origin
15085 (method git-fetch)
15086 (uri (git-reference
15087 (url "https://github.com/cosmicexplorer/f3.git")
15088 (commit version)))
15089 (file-name (git-file-name name version))
15090 (sha256
15091 (base32 "1qg48zbjdjqimw4516ymrsilz41zkib9321q0caf9474s9xyp2bi"))))
15092 (build-system emacs-build-system)
15093 (propagated-inputs
15094 `(("emacs-helm" ,emacs-helm)))
15095 (home-page "https://github.com/cosmicexplorer/f3")
15096 (synopsis "Fantastic File Finder for Emacs")
15097 (description
15098 "The Fantastic File Finder for Emacs. Find files fast, using helm.")
15099 (license license:gpl3+)))
15100
15101 (define-public emacs-lice-el
15102 (let ((commit "4339929927c62bd636f89bb39ea999d18d269250"))
15103 (package
15104 (name "emacs-lice-el")
15105 (version (git-version "0.2" "1" commit))
15106 (source (origin
15107 (method git-fetch)
15108 (uri (git-reference
15109 (url "https://github.com/buzztaiki/lice-el.git")
15110 (commit commit)))
15111 (file-name (git-file-name name version))
15112 (sha256
15113 (base32
15114 "0879z761b7gajkhq176ps745xpdrivch349crransv8fnsc759yb"))))
15115 (build-system emacs-build-system)
15116 (home-page "https://github.com/buzztaiki/lice-el")
15117 (synopsis "License and header template for Emacs")
15118 (description "@code{lice.el} provides following features:
15119
15120 @itemize
15121 @item License template management.
15122 @item File header insertion.
15123 @end itemize\n")
15124 (license license:gpl3+))))
15125
15126 (define-public emacs-academic-phrases
15127 (let ((commit "0823ed8c24b26c32f909b896a469833ec4d7b656"))
15128 (package
15129 (name "emacs-academic-phrases")
15130 (version (git-version "0.1" "1" commit))
15131 (source
15132 (origin
15133 (method git-fetch)
15134 (uri (git-reference
15135 (url "https://github.com/nashamri/academic-phrases.git")
15136 (commit commit)))
15137 (file-name (git-file-name name version))
15138 (sha256
15139 (base32
15140 "0qfzsq8jh05w4zkr0cvq3i1hdn97bq344vcqjg46sib26x3wpz6r"))))
15141 (build-system emacs-build-system)
15142 (propagated-inputs
15143 `(("emacs-dash" ,emacs-dash)
15144 ("emacs-s" ,emacs-s)
15145 ("emacs-ht" ,emacs-ht)))
15146 (home-page "https://github.com/nashamri/academic-phrases")
15147 (synopsis "Bypass that mental block when writing your papers")
15148 (description
15149 "When writing your academic paper, you might get stuck trying to find
15150 the right phrase that captures your intention. This package tries to
15151 alleviate that problem by presenting you with a list of phrases organized by
15152 the topic or by the paper section that you are writing. This package has
15153 around 600 phrases so far.
15154
15155 Using this package is easy, just call @code{academic-phrases} to get a list of
15156 phrases organized by topic, or call @code{academic-phrases-by-section} to
15157 browse the phrases by the paper section and fill-in the blanks if required.")
15158 (license license:gpl3+))))
15159
15160 (define-public emacs-auto-yasnippet
15161 (let ((commit "624b0d9711222073a2a3f2186e2605eb99fc83c9")
15162 (revision "2"))
15163 (package
15164 (name "emacs-auto-yasnippet")
15165 (version (git-version "0.3.0" revision commit))
15166 (source (origin
15167 (method git-fetch)
15168 (uri (git-reference
15169 (url "https://github.com/abo-abo/auto-yasnippet.git")
15170 (commit commit)))
15171 (file-name (git-file-name name version))
15172 (sha256
15173 (base32
15174 "15g8wi067f345xhpi0c12w0h04p4f4lpccwmdjdfj8hzfl4gyxy9"))))
15175 (build-system emacs-build-system)
15176 (arguments
15177 '(#:tests? #t
15178 #:test-command '("make" "test")))
15179 (propagated-inputs
15180 `(("emacs-yasnippet" ,emacs-yasnippet)))
15181 (home-page "https://github.com/abo-abo/auto-yasnippet/")
15182 (synopsis "Quickly create disposable yasnippets")
15183 (description "This package provides a hybrid of keyboard macros and
15184 yasnippet. You create the snippet on the go, usually to be used just in the
15185 one place. It's fast, because you're not leaving the current buffer, and all
15186 you do is enter the code you'd enter anyway, just placing ~ where you'd like
15187 yasnippet fields and mirrors to be.")
15188 (license license:gpl3+))))
15189
15190 (define-public emacs-highlight-numbers
15191 (package
15192 (name "emacs-highlight-numbers")
15193 (version "0.2.3")
15194 (source
15195 (origin
15196 (method git-fetch)
15197 (uri (git-reference
15198 (url "https://github.com/Fanael/highlight-numbers.git")
15199 (commit version)))
15200 (file-name (git-file-name name version))
15201 (sha256
15202 (base32 "1r07mpyr7rhd7bkg778hx6vbhb4n9ixgzkpszhgks7ri6ia38pj8"))))
15203 (build-system emacs-build-system)
15204 (propagated-inputs
15205 `(("emacs-parent-mode" ,emacs-parent-mode)))
15206 (home-page "https://github.com/Fanael/highlight-numbers")
15207 (synopsis "Highlight numbers in source code")
15208 (description "@code{highlight-numbers-mode} provides a minor mode for
15209 syntax highlighting of numeric literals in source code.
15210
15211 It s customizable: it's easy to add or redefine what exactly consitutes a
15212 \"number\" in given major mode. See @code{highlight-numbers-modelist}.")
15213 (license license:gpl3+)))
15214
15215 (define-public emacs-darkroom
15216 (package
15217 (name "emacs-darkroom")
15218 (version "0.2")
15219 (source (origin
15220 (method url-fetch)
15221 (uri (string-append "https://elpa.gnu.org/packages/darkroom-"
15222 version ".el"))
15223 (sha256
15224 (base32
15225 "1a528brhz4vckhp77n2c1phkyqdliykpj9kzk3f834f4rwnb5mp0"))))
15226 (build-system emacs-build-system)
15227 (home-page "https://elpa.gnu.org/packages/darkroom.html")
15228 (synopsis "Remove visual distractions and focus on writing")
15229 (description "@code{darkroom-mode} makes visual distractions disappear.
15230 The mode-line is temporarily elided, text is enlarged and margins are adjusted
15231 so that it's centered on the window.
15232
15233 @code{darkroom-tentative-mode} is similar, but it doesn't immediately turn-on
15234 @code{darkroom-mode}, unless the current buffer lives in the sole window of
15235 the Emacs frame (i.e. all other windows are deleted). Whenever the frame is
15236 split to display more windows and more buffers, the buffer exits
15237 @code{darkroom-mode}. Whenever they are deleted, the buffer re-enters
15238 @code{darkroom-mode}.")
15239 (license license:gpl3+)))
15240
15241 (define-public emacs-rsw-elisp
15242 (package
15243 (name "emacs-rsw-elisp")
15244 (version "1.0.5")
15245 (source (origin
15246 (method git-fetch)
15247 (uri (git-reference
15248 (url "https://github.com/rswgnu/rsw-elisp")
15249 (commit version)))
15250 (file-name (git-file-name name version))
15251 (sha256
15252 (base32
15253 "0dfq8myg0r91900bk1s70amsmm4mjk2qsg12v5pk7lla5d2vnyaf"))))
15254 (build-system emacs-build-system)
15255 (home-page "https://github.com/rswgnu/rsw-elisp")
15256 (synopsis "Improved expressions that interactively evaluate Emacs Lisp")
15257 (description "This package improves and replaces the GNU Emacs commands
15258 that interactively evaluate Emacs Lisp expressions. The new commands replace
15259 standard key bindings and are all prefixed with @code{rsw-elisp-}. They work
15260 the same way as the old commands when called non-interactively; only the
15261 interactive behavior should be different.")
15262 (license license:gpl3+)))
15263
15264 (define-public emacs-default-text-scale
15265 (let ((commit "968e985e219235f3e744d6d967e592acbaf6e0a8")
15266 (revision "1"))
15267 (package
15268 (name "emacs-default-text-scale")
15269 (version (string-append "0.1" "-" revision "."
15270 (string-take commit 7)))
15271 (source (origin
15272 (method git-fetch)
15273 (uri (git-reference
15274 (url "https://github.com/purcell/default-text-scale")
15275 (commit commit)))
15276 (file-name (git-file-name name version))
15277 (sha256
15278 (base32
15279 "0zds01c3q5yny6ab1fxfkzzgn1kgl3q23lxxap905f4qd70v922h"))))
15280 (build-system emacs-build-system)
15281 (home-page "https://github.com/purcell/default-text-scale")
15282 (synopsis "Adjust the font size in all Emacs frames")
15283 (description "This package provides commands for increasing or
15284 decreasing the default font size in all GUI Emacs frames.")
15285 (license license:gpl3+))))
15286
15287 (define-public emacs-mixed-pitch
15288 (package
15289 (name "emacs-mixed-pitch")
15290 (version "1.0.1")
15291 (source
15292 (origin
15293 (method git-fetch)
15294 (uri (git-reference
15295 (url "https://gitlab.com/jabranham/mixed-pitch.git")
15296 (commit version)))
15297 (file-name (git-file-name name version))
15298 (sha256
15299 (base32 "1458sy5b6bis1i0k23jdqk6hfqg0ghk637r3ajql2g19ym48rf58"))))
15300 (build-system emacs-build-system)
15301 (home-page "https://gitlab.com/jabranham/mixed-pitch")
15302 (synopsis "Mix variable- and fixed-pitch fonts in the same Emacs buffer")
15303 (description
15304 "@code{mixed-pitch-mode} is a minor mode that enables mixing
15305 variable-pitch and fixed-pitch fonts in the same buffer. The list
15306 @code{mixed-pitch-fixed-pitch-faces} defines the faces that are kept
15307 fixed-pitch,everything else becomes variable-pitch.")
15308 (license license:gpl3+)))
15309
15310 (define-public emacs-visual-regexp
15311 (package
15312 (name "emacs-visual-regexp")
15313 (version "1.1.1")
15314 (source
15315 (origin
15316 (method git-fetch)
15317 (uri (git-reference
15318 (url "https://github.com/benma/visual-regexp.el.git")
15319 (commit (string-append "v" version))))
15320 (file-name (git-file-name name version))
15321 (sha256
15322 (base32 "12zpmzwyp85dzsjpxd3279kpfi9yz3jwc1k9fnb3xv3pjiil5svg"))))
15323 (build-system emacs-build-system)
15324 (home-page "https://github.com/benma/visual-regexp.el/")
15325 (synopsis "Regexp command with interactive visual feedback")
15326 (description "This package provides an Emacs regexp command with
15327 interactive visual feedback.")
15328 (license license:gpl3+)))
15329
15330 (define-public emacs-faceup
15331 (let ((commit "6c92dad56a133e14e7b27831e1bcf9b3a71ff154")
15332 (revision "1"))
15333 (package
15334 (name "emacs-faceup")
15335 (version (string-append "0.0.1" "-" revision "."
15336 (string-take commit 7)))
15337 (source
15338 (origin
15339 (method git-fetch)
15340 (uri (git-reference
15341 (url "https://github.com/Lindydancer/faceup.git")
15342 (commit commit)))
15343 (file-name (git-file-name name version))
15344 (sha256
15345 (base32
15346 "1yzmy7flrhrh0i10bdszx8idx6r8h6czm4vm4q0z6fp5fw94zwrx"))))
15347 (build-system emacs-build-system)
15348 (home-page "https://github.com/Lindydancer/faceup")
15349 (synopsis "Markup language for faces and font-lock regression testing")
15350 (description "Emacs is capable of highlighting buffers based on
15351 language-specific @code{font-lock} rules. This package makes it possible to
15352 perform regression test for packages that provide font-lock rules.")
15353 (license license:gpl3+))))
15354
15355 (define-public emacs-racket-mode
15356 (let ((commit "5f396fa91fc22310f5c519aa658436a1a5251846")
15357 (revision "5"))
15358 (package
15359 (name "emacs-racket-mode")
15360 (version (git-version "0.0.2" revision commit))
15361 (source
15362 (origin
15363 (method git-fetch)
15364 (uri (git-reference
15365 (url "https://github.com/greghendershott/racket-mode")
15366 (commit commit)))
15367 (file-name (git-file-name name version))
15368 (sha256
15369 (base32
15370 "1214y08i0c51d1vzw9jzyf79vyfqizdy6m0980qs13qbdwsj32v0"))))
15371 (build-system emacs-build-system)
15372 (arguments
15373 `(#:include '("\\.el$" "\\.rkt$")))
15374 (propagated-inputs
15375 `(("emacs-faceup" ,emacs-faceup)
15376 ("emacs-s" ,emacs-s)))
15377 (home-page "https://www.racket-mode.com/")
15378 (synopsis "Major mode for the Racket language")
15379 (description "@code{racket-mode} provides:
15380
15381 @itemize
15382 @item Focus on Racket (not various Schemes).
15383 @item Follow DrRacket concepts where applicable.
15384 @item Thorough font-lock and indent.
15385 @end itemize\n")
15386 (license license:gpl3+))))
15387
15388 (define-public emacs-grep-context
15389 (let ((commit "5a4e3efdf775755c1bbefcfe4b461c1166d81d7d")
15390 (revision "1"))
15391 (package
15392 (name "emacs-grep-context")
15393 (version (git-version "0.1.0" revision commit))
15394 (source
15395 (origin
15396 (method git-fetch)
15397 (uri (git-reference
15398 (url "https://github.com/mkcms/grep-context.git")
15399 (commit commit)))
15400 (file-name (git-file-name name version))
15401 (sha256
15402 (base32
15403 "00q7l4a3c0ay6g5ff9bfa2qgkiswsyh4s6pqnpg0zpzhvv5710f5"))))
15404 (build-system emacs-build-system)
15405 (propagated-inputs
15406 `(("emacs-dash" ,emacs-dash)))
15407 (home-page "https://github.com/mkcms/grep-context")
15408 (synopsis "Increase context in compilation and grep buffers")
15409 (description
15410 "This package provides an Emacs package for more context in
15411 compilation/grep buffers. Works with @code{wgrep}, @code{ack}, @code{ag},
15412 @code{ivy}.")
15413 (license license:gpl3+))))
15414
15415 (define-public emacs-helm-firefox
15416 (let ((commit "0ad34b7b5abc485a86cae6920c14de861cbeb085")
15417 (revision "1"))
15418 (package
15419 (name "emacs-helm-firefox")
15420 (version (string-append "0.0.1" "-" revision "."
15421 (string-take commit 7)))
15422 (source
15423 (origin
15424 (method git-fetch)
15425 (uri (git-reference
15426 (url "https://github.com/emacs-helm/helm-firefox.git")
15427 (commit commit)))
15428 (file-name (git-file-name name version))
15429 (sha256
15430 (base32
15431 "08mjsi2f9s29fkk35cj1rrparjnkm836qmbfdwdz7y51f9varjbs"))))
15432 (propagated-inputs
15433 `(("emacs-helm" ,emacs-helm)))
15434 (build-system emacs-build-system)
15435 (home-page "https://github.com/emacs-helm/helm-firefox")
15436 (synopsis "Display firefox bookmarks with Emacs Helm interface")
15437 (description "Display firefox bookmarks with Emacs Helm interface")
15438 (license license:gpl3+))))
15439
15440 (define-public emacs-interactive-align
15441 (package
15442 (name "emacs-interactive-align")
15443 (version "0.4.2")
15444 (source
15445 (origin
15446 (method git-fetch)
15447 (uri (git-reference
15448 (url "https://github.com/mkcms/interactive-align.git")
15449 (commit (string-append "v" version))))
15450 (file-name (git-file-name name version))
15451 (sha256
15452 (base32
15453 "0bh03w91i622hbar5dcq631ndxx1y8kd3h655pgw1g0lqkv1mlnc"))))
15454 (build-system emacs-build-system)
15455 (home-page "https://github.com/mkcms/interactive-align/")
15456 (synopsis "Interactive align-regexp command in Emacs")
15457 (description "Interactive align-regexp command in Emacs")
15458 (license license:gpl3+)))
15459
15460 (define-public emacs-shift-number
15461 (package
15462 (name "emacs-shift-number")
15463 (version "0.1")
15464 (source
15465 (origin
15466 (method git-fetch)
15467 (uri (git-reference
15468 (url "https://github.com/alezost/shift-number.el")
15469 (commit (string-append "v" version))))
15470 (file-name (git-file-name name version))
15471 (sha256
15472 (base32
15473 "0zlwmzsxkv4mkggylxfx2fkrwgz7dz3zbg2gkn2rxcpy2k2gla64"))))
15474 (build-system emacs-build-system)
15475 (home-page "https://github.com/alezost/shift-number.el")
15476 (synopsis "Increase or decrease the number at point")
15477 (description "@code{emacs-shift-number} provides commands
15478 @code{shift-number-up} to increase and @code{shift-number-down} to
15479 decrease the number at point.")
15480 (license license:gpl3+)))
15481
15482 (define-public emacs-highlight-defined
15483 (package
15484 (name "emacs-highlight-defined")
15485 (version "0.1.5")
15486 (source
15487 (origin
15488 (method git-fetch)
15489 (uri (git-reference
15490 (url "https://github.com/Fanael/highlight-defined.git")
15491 (commit version)))
15492 (file-name (git-file-name name version))
15493 (sha256
15494 (base32 "08czwa165rnd5z0dwwdddn7zi5w63sdk31l47bj0598kbly01n7r"))))
15495 (build-system emacs-build-system)
15496 (home-page "https://github.com/Fanael/highlight-defined")
15497 (synopsis "Syntax highlighting of known Elisp symbols")
15498 (description "Minor mode providing syntax highlighting of known Emacs Lisp
15499 symbols. Currently the code distinguishes Lisp functions, built-in functions,
15500 macros, faces and variables. To enable call @code{highlight-defined-mode}. ")
15501 (license license:gpl3+)))
15502
15503 (define-public emacs-parinfer-mode
15504 (package
15505 (name "emacs-parinfer-mode")
15506 (version "0.4.10")
15507 (source
15508 (origin
15509 (method git-fetch)
15510 (uri (git-reference
15511 (url "https://github.com/DogLooksGood/parinfer-mode.git")
15512 (commit (string-append "v" version))))
15513 (file-name (git-file-name name version))
15514 (sha256
15515 (base32 "0v97ncb0w1slb0x8861l3yr1kqz6fgw1fwl1z9lz6hh8p2ih34sk"))))
15516 (propagated-inputs
15517 `(("emacs-dash" ,emacs-dash)
15518 ("emacs-rainbow-delimiters" ,emacs-rainbow-delimiters)
15519 ("emacs-company" ,emacs-company)))
15520 (build-system emacs-build-system)
15521 (home-page "https://github.com/DogLooksGood/parinfer-mode/")
15522 (synopsis "Lisp structure editing mode")
15523 (description "@code{parinfer-mode} is a proof-of-concept editor
15524 mode for Lisp programming languages. It will infer some changes to
15525 keep Parens and Indentation inline with one another.")
15526 (license license:gpl3+)))
15527
15528 (define-public emacs-helm-eww
15529 (package
15530 (name "emacs-helm-eww")
15531 (version "1.2")
15532 (source (origin
15533 (method git-fetch)
15534 (uri (git-reference
15535 (url "https://github.com/emacs-helm/helm-eww.git")
15536 (commit version)))
15537 (file-name (git-file-name name version))
15538 (sha256
15539 (base32
15540 "0hpq1h0p69c9k6hkd2mjpprx213sc5475q7pr2zpmwrjdzgcv70z"))))
15541 (propagated-inputs
15542 `(("emacs-helm" ,emacs-helm)))
15543 (build-system emacs-build-system)
15544 (home-page "https://github.com/emacs-helm/helm-eww/")
15545 (synopsis "Helm interface to EWW")
15546 (description "This package provides a Helm interface for EWW buffers,
15547 bookmarks and history.")
15548 (license license:gpl3+)))
15549
15550 (define-public emacs-stumpwm-mode
15551 (let ((commit "920f8fc1488f7953f205e1dda4c2ecbbbda56d6")
15552 (revision "3"))
15553 (package
15554 (name "emacs-stumpwm-mode")
15555 (version (git-version "0.0.1" revision commit))
15556 (source (origin
15557 (method git-fetch)
15558 (uri (git-reference
15559 (url "https://github.com/stumpwm/stumpwm-contrib.git")
15560 (commit commit)))
15561 (file-name (git-file-name name version))
15562 (sha256
15563 (base32
15564 "0giac390bq95ag41xkxqp8jjrhfx1wpgglz7jg5rkm0wjhcwmyml"))))
15565 (build-system emacs-build-system)
15566 (arguments
15567 `(#:phases
15568 (modify-phases %standard-phases
15569 (add-after 'unpack 'chdir-elisp
15570 ;; Elisp directory is not in root of the source.
15571 (lambda _
15572 (chdir "util/swm-emacs"))))))
15573 (home-page "https://github.com/stumpwm/stumpwm-contrib")
15574 (synopsis "Emacs minor-mode for Stumpwm")
15575 (description "Emacs minor-mode for Stumpwm")
15576 (license license:gpl3+))))
15577
15578 (define-public emacs-irfc
15579 (package
15580 (name "emacs-irfc")
15581 (version "20130824.507-1")
15582 (source
15583 (origin
15584 (method url-fetch)
15585 (uri "https://www.emacswiki.org/emacs/download/irfc.el")
15586 (file-name (string-append "irfc-" version ".el"))
15587 (sha256
15588 (base32
15589 "0rbfrza56kvspvgrwg0b5bj30d0qncqdsmfxn3y5caq4ifcj77hv"))))
15590 (build-system emacs-build-system)
15591 (home-page "https://www.emacswiki.org/emacs/download/irfc.el")
15592 (synopsis "Interface for IETF RFC document")
15593 (description
15594 "This package provides an Emacs interface for IETF RFC document.")
15595 (license license:gpl3+)))
15596
15597 (define-public emacs-ido-vertical-mode
15598 (package
15599 (name "emacs-ido-vertical-mode")
15600 (version "0.1.6")
15601 (source
15602 (origin
15603 (method git-fetch)
15604 (uri (git-reference
15605 (url "https://github.com/creichert/ido-vertical-mode.el.git")
15606 (commit (string-append "v" version))))
15607 (file-name (git-file-name name version))
15608 (sha256
15609 (base32 "1lv82q639xjnmvby56nwqn23ijh6f163bk675s33dkingm8csj8k"))))
15610 (build-system emacs-build-system)
15611 (home-page "https://github.com/creichert/ido-vertical-mode.el")
15612 (synopsis "Makes ido-mode display vertically")
15613 (description "Makes ido-mode display prospects vertically.")
15614 (license license:gpl3+)))
15615
15616 (define-public emacs-wordgen
15617 (package
15618 (name "emacs-wordgen")
15619 (version "0.1.4")
15620 (source
15621 (origin
15622 (method git-fetch)
15623 (uri (git-reference
15624 (url "https://github.com/Fanael/wordgen.el.git")
15625 (commit version)))
15626 (file-name (git-file-name name version))
15627 (sha256
15628 (base32 "06vbc9ycz1nbjwjkg99y3lj6jwb6lnwnmkqf09yr00jjrrfhfash"))))
15629 (build-system emacs-build-system)
15630 (home-page "https://github.com/Fanael/wordgen.el")
15631 (synopsis "Random word generator")
15632 (description "This package provides functions to generate random words
15633 using user-provided rules.")
15634 (license license:gpl3+)))
15635
15636 (define-public emacs-on-screen
15637 (package
15638 (name "emacs-on-screen")
15639 (version "1.3.3")
15640 (source
15641 (origin
15642 (method url-fetch)
15643 (uri (string-append
15644 "https://elpa.gnu.org/packages/on-screen-" version ".el"))
15645 (file-name (string-append name "-" version ".el"))
15646 (sha256
15647 (base32 "0ga4hw23ki583li2z2hr7l6hk1nc2kdg4afndg06cm9jn158wza7"))))
15648 (build-system emacs-build-system)
15649 (home-page "https://github.com/michael-heerdegen/on-screen.el")
15650 (synopsis "Guide your eyes while scrolling")
15651 (description
15652 "Scrolling can be distracting because your eyes may lose
15653 orientation. This library implements a minor mode that highlights
15654 the previously visible buffer part after each scroll.")
15655 (license license:gpl3+)))
15656
15657 (define-public emacs-highlight-escape-sequences
15658 (let ((commit "08d846a7aa748209d65fecead2b6a766c3e5cb41")
15659 (revision "1"))
15660 (package
15661 (name "emacs-highlight-escape-sequences")
15662 (version (string-append "0.0.1" "-" revision "."
15663 (string-take commit 7)))
15664 (source
15665 (origin
15666 (method git-fetch)
15667 (uri (git-reference
15668 (url "https://github.com/dgutov/highlight-escape-sequences.git")
15669 (commit commit)))
15670 (file-name (git-file-name name version))
15671 (sha256
15672 (base32
15673 "05mc3w1f8ykf80914a1yddw6j8cmh0h57llm07xh89s53821v2is"))))
15674 (build-system emacs-build-system)
15675 (home-page "https://github.com/dgutov/highlight-escape-sequences")
15676 (synopsis "Highlight escape sequences in Emacs")
15677 (description "@code{highlight-escape-sequences} provides an
15678 Emacs minor mode to escape sequences in code.")
15679 (license license:gpl3+))))
15680
15681 (define-public emacs-dashboard
15682 (package
15683 (name "emacs-dashboard")
15684 (version "1.6.0")
15685 (source
15686 (origin
15687 (method git-fetch)
15688 (uri (git-reference
15689 (url "https://github.com/rakanalh/emacs-dashboard.git")
15690 (commit version)))
15691 (file-name (git-file-name name version))
15692 (sha256
15693 (base32 "1g6g8vad1kdmv1zxp95a8sn70idl26isqjb3xk1r95pqnx1cn591"))))
15694 (build-system emacs-build-system)
15695 (propagated-inputs
15696 `(("emacs-page-break-lines" ,emacs-page-break-lines)))
15697 (arguments
15698 '(#:include '("\\.el$" "\\.txt$" "\\.png$")
15699 #:phases
15700 (modify-phases %standard-phases
15701 (add-after 'unpack 'patch-dashboard-widgets
15702 ;; This phase fixes compilation error.
15703 (lambda _
15704 (chmod "dashboard-widgets.el" #o666)
15705 (emacs-substitute-variables "dashboard-widgets.el"
15706 ("dashboard-init-info"
15707 '(format "Loaded in %s" (emacs-init-time))))
15708 #t)))))
15709 (home-page "https://github.com/rakanalh/emacs-dashboard")
15710 (synopsis "Startup screen extracted from Spacemacs")
15711 (description "This package provides an extensible Emacs dashboard, with
15712 sections for bookmarks, projectil projects, org-agenda and more. ")
15713 (license license:gpl3+)))
15714
15715 (define-public emacs-slime-company
15716 (package
15717 (name "emacs-slime-company")
15718 (version "1.1")
15719 (source
15720 (origin
15721 (method git-fetch)
15722 (uri (git-reference
15723 (url "https://github.com/anwyn/slime-company.git")
15724 (commit (string-append "v" version))))
15725 (file-name (git-file-name name version))
15726 (sha256
15727 (base32 "1hl1hqkc1pxga9k2k8k15d7dip7sfsmwf4wm4sh346m6nj606q8g"))))
15728 (build-system emacs-build-system)
15729 (propagated-inputs
15730 `(("emacs-slime" ,emacs-slime)
15731 ("emacs-company" ,emacs-company)))
15732 (home-page "https://company-mode.github.io")
15733 (synopsis "SLIME completion backend for @code{company-mode}")
15734 (description
15735 "This is a backend implementation for the completion package
15736 @code{company-mode} which supports the normal and the fuzzy completion
15737 modes of SLIME.")
15738 (license license:gpl3+)))
15739
15740 (define-public emacs-sml-mode
15741 (package
15742 (name "emacs-sml-mode")
15743 (version "6.10")
15744 (source
15745 (origin
15746 (method url-fetch)
15747 (uri (string-append "https://elpa.gnu.org/packages/sml-mode-"
15748 version ".el"))
15749 (sha256
15750 (base32 "01yf0s474r9xhj6nbs14ljn9ccxb5yy758i17c8nmgmqvm8fx7sb"))))
15751 (build-system emacs-build-system)
15752 (home-page "https://elpa.gnu.org/packages/sml-mode.html")
15753 (synopsis "Major mode for editing (Standard) ML")
15754 (description "SML-MODE is a major Emacs mode for editing Standard ML.
15755 It provides syntax highlighting and automatic indentation and
15756 comes with sml-proc which allows interaction with an inferior SML
15757 interactive loop.")
15758 (license license:gpl3+)))
15759
15760 (define-public emacs-eros
15761 (let ((commit "dd8910279226259e100dab798b073a52f9b4233a")
15762 (revision "2"))
15763 (package
15764 (name "emacs-eros")
15765 (version (git-version "0.0.1" revision commit))
15766 (source
15767 (origin
15768 (method git-fetch)
15769 (uri (git-reference
15770 (url "https://github.com/xiongtx/eros.git")
15771 (commit commit)))
15772 (file-name (git-file-name name version))
15773 (sha256
15774 (base32
15775 "08chj3a0lw4ygi2sv7wj0i6ihfbi8jhylr8p92inif8b88r6wg3k"))))
15776 (build-system emacs-build-system)
15777 (home-page "https://github.com/xiongtx/eros")
15778 (synopsis "Evaluation result overlays")
15779 (description "@code{eros} provides evaluation result overlays.")
15780 (license license:gpl3+))))
15781
15782 (define-public emacs-stickyfunc-enhance
15783 (let ((commit "13bdba51fcd83ccbc3267959d23afc94d458dcb0")
15784 (revision "1"))
15785 (package
15786 (name "emacs-stickyfunc-enhance")
15787 (version "0.1")
15788 (source
15789 (origin
15790 (method git-fetch)
15791 (uri (git-reference
15792 (url "https://github.com/tuhdo/semantic-stickyfunc-enhance.git")
15793 (commit commit)))
15794 (file-name (git-file-name name version))
15795 (sha256
15796 (base32
15797 "16dxjsr5nj20blww4xpd4jzgjprzzh1nwvb810ggdmp9paf4iy0g"))))
15798 (build-system emacs-build-system)
15799 (home-page "https://github.com/tuhdo/semantic-stickyfunc-enhance")
15800 (synopsis "Enhancement to stock @code{semantic-stickyfunc-mode}")
15801 (description
15802 "@code{semantic-stickyfunc-mode} shows the function point is currently
15803 in at the first line of the current buffer. This is useful when you have a
15804 very long function that spreads more than a screen, and you don't have to
15805 scroll up to read the function name and then scroll down to original position.")
15806 (license license:gpl3+))))
15807
15808 (define-public emacs-git-auto-commit-mode
15809 (package
15810 (name "emacs-git-auto-commit-mode")
15811 (version "4.5.0")
15812 (source
15813 (origin
15814 (method git-fetch)
15815 (uri (git-reference
15816 (url "https://github.com/ryuslash/git-auto-commit-mode.git")
15817 (commit version)))
15818 (file-name (git-file-name name version))
15819 (sha256
15820 (base32 "1w3v9pmlmdxl4pglsb6j0igp13lbzg5bhbr1rv2vll93m6zxmyma"))))
15821 (build-system emacs-build-system)
15822 (home-page "https://github.com/ryuslash/git-auto-commit-mode")
15823 (synopsis "Emacs Minor mode to automatically commit and push")
15824 (description "@code{git-auto-commit-mode} is an Emacs minor mode that
15825 tries to commit changes to a file after every save.
15826
15827 When @code{gac-automatically-push-p} is non-nil, it also tries to push to
15828 the current upstream.")
15829 (license license:gpl3+)))
15830
15831 (define-public emacs-scroll-on-drag
15832 (let ((commit "888abd04c34753b1fc4b2fe541bc004ebec5c996")
15833 (revision "1"))
15834 (package
15835 (name "emacs-scroll-on-drag")
15836 (version (git-version "0.1" revision commit))
15837 (source
15838 (origin
15839 (method git-fetch)
15840 (uri (git-reference
15841 (url "https://gitlab.com/ideasman42/emacs-scroll-on-drag.git")
15842 (commit commit)))
15843 (file-name (git-file-name name version))
15844 (sha256
15845 (base32
15846 "1si4hdqa3jw1inbyh3wb3i5i9grbms1nwky3vyk9zg7iznwm8a9p"))))
15847 (build-system emacs-build-system)
15848 (home-page "https://gitlab.com/ideasman42/emacs-scroll-on-drag")
15849 (synopsis "Interactive scrolling")
15850 (description "This package permits scrolling at increasing speeds based
15851 on drag distance.")
15852 (license license:gpl3+))))
15853
15854 (define-public emacs-company-restclient
15855 (package
15856 (name "emacs-company-restclient")
15857 (version "0.3.0")
15858 (source
15859 (origin
15860 (method git-fetch)
15861 (uri (git-reference
15862 (url "https://github.com/iquiw/company-restclient.git")
15863 (commit (string-append "v" version))))
15864 (file-name (git-file-name name version))
15865 (sha256
15866 (base32 "0yp0hlrgcr6yy1xkjvfckys2k24x9xg7y6336ma61bdwn5lpv0x0"))))
15867 (build-system emacs-build-system)
15868 (propagated-inputs
15869 `(("emacs-company" ,emacs-company)
15870 ("emacs-know-your-http-well" ,emacs-know-your-http-well)
15871 ("emacs-restclient" ,emacs-restclient)))
15872 (home-page "https://github.com/iquiw/company-restclient")
15873 (synopsis "Company-mode completion back-end for restclient-mode")
15874 (description "@code{company-mode} back-end for
15875 @code{restclient-mode}.
15876
15877 It provides auto-completion for HTTP methods and headers in
15878 @code{restclient-mode}. Completion source is given by
15879 @code{know-your-http-well}.")
15880 (license license:gpl3+)))
15881
15882 (define-public emacs-noflet
15883 (let ((version "20170629")
15884 (revision "1")
15885 (commit "7ae84dc3257637af7334101456dafe1759c6b68a"))
15886 (package
15887 (name "emacs-noflet")
15888 (version (git-version version revision commit))
15889 (source
15890 (origin
15891 (method git-fetch)
15892 (uri (git-reference
15893 (url "https://github.com/nicferrier/emacs-noflet")
15894 (commit commit)))
15895 (file-name (git-file-name name version))
15896 (sha256
15897 (base32
15898 "0g70gnmfi8n24jzfci9nrj0n9bn1qig7b8f9f325rin8h7x32ypf"))))
15899 (build-system emacs-build-system)
15900 (arguments
15901 `(#:phases
15902 (modify-phases %standard-phases
15903 (add-after 'unpack 'require-dash
15904 ;; noflet.el uses -map from dash, but (require 'dash) is
15905 ;; missing. So, add it.
15906 (lambda _
15907 (substitute* "noflet.el"
15908 ((";;; Code:") ";;; Code:\n(require 'dash)"))
15909 #t)))))
15910 (propagated-inputs
15911 `(("emacs-dash" ,emacs-dash)))
15912 (home-page "https://github.com/nicferrier/emacs-noflet")
15913 (synopsis "Locally override functions")
15914 (description "@code{emacs-noflet} lets you locally override functions,
15915 in the manner of @command{flet}, but with access to the original function
15916 through the symbol: @command{this-fn}.")
15917 (license license:gpl3+))))
15918
15919 (define-public emacs-dumb-jump
15920 (package
15921 (name "emacs-dumb-jump")
15922 (version "0.5.3")
15923 (source
15924 (origin
15925 (method git-fetch)
15926 (uri (git-reference
15927 (url "https://github.com/jacktasia/dumb-jump.git")
15928 (commit (string-append "v" version))))
15929 (file-name (git-file-name name version))
15930 (sha256
15931 (base32 "1njf60264snhxrd36m4z687lqfkis0p9mmrr7cf1c8l0lfdvawxi"))))
15932 (build-system emacs-build-system)
15933 (arguments
15934 `(#:tests? #f ; FIXME: Tests freeze when run.
15935 #:test-command '("ert-runner")
15936 #:phases
15937 (modify-phases %standard-phases
15938 (add-after 'unpack 'set-shell
15939 (lambda _
15940 ;; Setting the SHELL environment variable is required for the
15941 ;; tests to find sh.
15942 (setenv "SHELL" (which "sh"))
15943 #t)))))
15944 (native-inputs
15945 `(("emacs-el-mock" ,emacs-el-mock)
15946 ("emacs-noflet" ,emacs-noflet)
15947 ("emacs-undercover" ,emacs-undercover)
15948 ("ert-runner" ,emacs-ert-runner)))
15949 (propagated-inputs
15950 `(("emacs-f" ,emacs-f)
15951 ("emacs-popup" ,emacs-popup)))
15952 (home-page "https://github.com/jacktasia/dumb-jump")
15953 (synopsis "Jump to definition for multiple languages without configuration")
15954 (description "Dumb Jump is an Emacs \"jump to definition\" package with
15955 support for multiple programming languages that favors \"just working\" over
15956 speed or accuracy. This means minimal --- and ideally zero --- configuration
15957 with absolutely no stored indexes (tags) or persistent background processes.
15958 Dumb Jump performs best with The Silver Searcher @command{ag} or ripgrep
15959 @command{rg} installed.")
15960 (license license:gpl3+)))
15961
15962 (define-public emacs-dts-mode
15963 (let ((commit "9ee0854446dcc6c53d2b8d2941051768dba50344")
15964 (revision "1"))
15965 (package
15966 (name "emacs-dts-mode")
15967 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
15968 (source
15969 (origin
15970 (method git-fetch)
15971 (uri (git-reference
15972 (url "https://github.com/bgamari/dts-mode.git")
15973 (commit commit)))
15974 (file-name (git-file-name name version))
15975 (sha256
15976 (base32
15977 "1k8lljdbc90nd29xrhdrsscxavzdq532wq2mg7ljc94krj7538b1"))))
15978 (build-system emacs-build-system)
15979 (home-page "https://github.com/bgamari/dts-mode.git")
15980 (synopsis "Emacs minor mode for editing device tree files")
15981 (description
15982 "This package provides an Emacs minor mode for highlighting
15983 device tree files.")
15984 (license license:gpl3+))))
15985
15986 (define-public emacs-daemons
15987 (package
15988 (name "emacs-daemons")
15989 (version "2.0.0")
15990 (source
15991 (origin
15992 (method git-fetch)
15993 (uri (git-reference
15994 (url "https://github.com/cbowdon/daemons.el")
15995 (commit version)))
15996 (file-name (git-file-name name version))
15997 (sha256
15998 (base32
15999 "00bkzfaw3bqykcks610vk9wlpa2z360xn32bpsrycacwfv29j7g4"))))
16000 (build-system emacs-build-system)
16001 (home-page "https://github.com/cbowdon/daemons.el")
16002 (synopsis "Emacs UI for managing init system services")
16003 (description
16004 "This is an Emacs mode to give you a UI for managing init system
16005 daemons (services) for those getting tired of typing out @code{sudo service
16006 my_thing reload} all the time. It offers a consistent UI over different init
16007 systems.")
16008 (license license:gpl3+)))
16009
16010 (define-public emacs-isearch+
16011 (let ((commit "7c251b91a67bf914066e23e269ba52fda5b45f5f")
16012 (revision "2"))
16013 (package
16014 (name "emacs-isearch+")
16015 (version (git-version "0" revision commit))
16016 (source
16017 (origin
16018 (method git-fetch)
16019 (uri (git-reference
16020 (url "https://github.com/emacsmirror/isearch-plus.git")
16021 (commit commit)))
16022 (file-name (git-file-name name version))
16023 (sha256
16024 (base32
16025 "1w2799714jcdycjlxgs8lpmmz6dmzvcvqy8xwxhvmgpb60g4f2yr"))))
16026 (build-system emacs-build-system)
16027 (home-page "https://www.emacswiki.org/emacs/isearch+.el")
16028 (synopsis "Extensions to @code{isearch.el}")
16029 (description "This package extends @code{isearch} with advice, dynamic
16030 filters, highlighting of regexp group levels, and more.")
16031 (license license:gpl2+))))
16032
16033 (define-public emacs-eshell-bookmark
16034 (package
16035 (name "emacs-eshell-bookmark")
16036 (version "2.0.0")
16037 (source
16038 (origin
16039 (method git-fetch)
16040 (uri (git-reference
16041 (url "https://github.com/Fuco1/eshell-bookmark")
16042 (commit version)))
16043 (file-name (git-file-name name version))
16044 (sha256
16045 (base32
16046 "14dmsnixf9vqdhsixw693sml0fn80zcf0b37z049fb40cmppqxdw"))))
16047 (build-system emacs-build-system)
16048 (home-page "https://github.com/Fuco1/eshell-bookmark")
16049 (synopsis "Provide @file{bookmark.el} integration for @code{eshell}")
16050 (description
16051 "This package allows for bookmarking @code{eshell} buffers. Upon
16052 visiting the bookmark, a new @code{eshell} session will be opened in the
16053 appropriate directory if no @code{eshell} session is active.")
16054 (license license:gpl3+)))
16055
16056 (define-public emacs-eshell-z
16057 (package
16058 (name "emacs-eshell-z")
16059 (version "0.4")
16060 (source
16061 (origin
16062 (method git-fetch)
16063 (uri (git-reference
16064 (url "https://github.com/xuchunyang/eshell-z")
16065 (commit (string-append "v" version))))
16066 (file-name (git-file-name name version))
16067 (sha256
16068 (base32
16069 "13dwaq8q23rwmrkpy3gvf7aswrkk6b9ak5221xl7n0bld4wdhq3j"))))
16070 (build-system emacs-build-system)
16071 (home-page "https://github.com/xuchunyang/eshell-z")
16072 (synopsis "Quick navigation to frequently visited directories")
16073 (description
16074 "This package is a port of @code{z}, and keeps track of visited directories
16075 and commands invoked within them in order to enable navigation via input of
16076 matching regexps.")
16077 (license license:gpl3+)))
16078
16079 (define-public emacs-esh-autosuggest
16080 (package
16081 (name "emacs-esh-autosuggest")
16082 (version "2.0.0")
16083 (source
16084 (origin
16085 (method git-fetch)
16086 (uri (git-reference
16087 (url "https://github.com/dieggsy/esh-autosuggest")
16088 (commit version)))
16089 (file-name (git-file-name name version))
16090 (sha256
16091 (base32
16092 "116pdjgpjy9b0psm5kzwkwy7dq8vn0p6dy75dl1zsy2xrjf1iqdw"))))
16093 (build-system emacs-build-system)
16094 (propagated-inputs `(("emacs-company" ,emacs-company)))
16095 (home-page "https://github.com/dieggsy/esh-autosuggest")
16096 (synopsis "Fish-like autosuggestions in Eshell")
16097 (description
16098 "This package assumes you use something other than company for eshell
16099 completion (e.g. @code{eshell-pcomplete}, @code{completion-at-point},
16100 @code{helm-esh-pcomplete}). @code{company-mode} is used solely as a mechanism
16101 for history autosuggestions.
16102
16103 Unless you're using @code{use-package}'s hook keyword, you can enable the
16104 autosuggestions with:
16105 @code{(add-hook 'eshell-mode-hook #'esh-autosuggest-mode)}")
16106 (license license:gpl3+)))
16107
16108 (define-public emacs-desktop-environment
16109 (package
16110 (name "emacs-desktop-environment")
16111 (version "0.3.0")
16112 (source
16113 (origin
16114 (method git-fetch)
16115 (uri (git-reference
16116 (url "https://gitlab.petton.fr/DamienCassou/desktop-environment")
16117 (commit (string-append "v" version))))
16118 (file-name (git-file-name name version))
16119 (sha256
16120 (base32
16121 "195n99xvxyh4cfxjpfa1h1maalqrxf7nyi0bh3lqa1z6z5bdb6x2"))))
16122 (build-system emacs-build-system)
16123 (home-page "https://gitlab.petton.fr/DamienCassou/desktop-environment")
16124 (synopsis "Control your GNU/Linux desktop environment from Emacs")
16125 (description
16126 "This package helps you control your GNU/Linux desktop from Emacs.
16127 With @code{desktop-environment}, you can control the brightness and volume as
16128 well as take screenshots and lock your screen. The package depends on the
16129 availability of shell commands to do the hard work for us. These commands can
16130 be changed by customizing the appropriate variables.")
16131 (license license:gpl3+)))
16132
16133 (define-public emacs-org-caldav
16134 (let ((commit "a563500c9884f38ce08793e2964f8274adde163d"))
16135 (package
16136 (name "emacs-org-caldav")
16137 (version (git-version "0.0.0" "1" commit))
16138 (source
16139 (origin
16140 (method git-fetch)
16141 (uri (git-reference
16142 (url "https://github.com/dengste/org-caldav.git")
16143 (commit commit)))
16144 (file-name (git-file-name name version))
16145 (sha256
16146 (base32
16147 "18qi1iv5dc0gsvkv9ifal3cjpm568nlb907v8a53cnm4439x1l0l"))))
16148 (build-system emacs-build-system)
16149 (arguments
16150 ;; Tests require to have two specific calendars on a test server.
16151 `(#:exclude '("^org-caldav-testsuite\\.el")))
16152 (propagated-inputs
16153 `(("emacs-org" ,emacs-org)))
16154 (home-page "https://github.com/dengste/org-caldav")
16155 (synopsis "Sync Org files with external calendars via the CalDAV protocol")
16156 (description "Synchronize between events in Org files and a CalDAV
16157 calendar.")
16158 (license license:gpl3+))))
16159
16160 (define-public emacs-zotxt
16161 (package
16162 (name "emacs-zotxt")
16163 (version "20180518")
16164 (source
16165 (origin
16166 (method git-fetch)
16167 (uri (git-reference
16168 (url "https://github.com/egh/zotxt-emacs.git")
16169 (commit "23a4a9f74a658222027d53a9a83cd4bcc583ca8b")))
16170 (file-name (git-file-name name version))
16171 (sha256
16172 (base32 "09fq3w9yk9kn6bz7y9kgpiw612dvj3yzsdk734js6zgb0p8lfd2c"))))
16173 (build-system emacs-build-system)
16174 (propagated-inputs
16175 `(("emacs-deferred" ,emacs-deferred)
16176 ("emacs-request" ,emacs-request)))
16177 (home-page "https://github.com/egh/zotxt-emacs")
16178 (synopsis "Integrate Emacs with Zotero")
16179 (description "This package provides two integration features between Emacs
16180 and the Zotero research assistant: Insertion of links to Zotero items into an
16181 Org-mode file, and citations of Zotero items in Pandoc Markdown files.")
16182 (license license:gpl3+)))
16183
16184 (define-public emacs-evil-magit
16185 (let ((commit "253c644807013fe92429acdef418748794b8f254")
16186 (revision "4"))
16187 (package
16188 (name "emacs-evil-magit")
16189 (version (git-version "0.4.2" revision commit))
16190 (source
16191 (origin
16192 (method git-fetch)
16193 (uri (git-reference
16194 (url "https://github.com/emacs-evil/evil-magit")
16195 (commit commit)))
16196 (file-name (git-file-name name version))
16197 (sha256
16198 (base32
16199 "08mh7phxsdb9w4dfs0pmr4l4fdzzr2rm88z2s8karfi5j5ik2ag5"))))
16200 (build-system emacs-build-system)
16201 (propagated-inputs
16202 `(("emacs-evil" ,emacs-evil)
16203 ("magit" ,emacs-magit)))
16204 (arguments
16205 `(#:tests? #t
16206 #:test-command '("emacs" "-Q" "-batch"
16207 "-L" "."
16208 "-l" "evil-magit-tests"
16209 "-f" "ert-run-tests-batch-and-exit")))
16210 (home-page
16211 "https://github.com/emacs-evil/evil-magit")
16212 (synopsis "Evil-based key bindings for Magit")
16213 (description
16214 "This Emacs library configures Magit and Evil to play well with each other.
16215 For some background see @url{https://github.com/magit/evil-magit/issues/1}.
16216 See the README at @url{https://github.com/justbur/evil-magit} for a table
16217 describing the key binding changes.")
16218 (license license:gpl3+))))
16219
16220 (define-public emacs-evil-multiedit
16221 (package
16222 (name "emacs-evil-multiedit")
16223 (version "1.3.9")
16224 (source
16225 (origin
16226 (method git-fetch)
16227 (uri (git-reference
16228 (url "https://github.com/hlissner/evil-multiedit")
16229 (commit (string-append "v" version))))
16230 (file-name (git-file-name name version))
16231 (sha256
16232 (base32
16233 "19h3kqylqzbjv4297wkzzxdmn9yxbg6z4ga4ssrqri90xs7m3rw3"))))
16234 (build-system emacs-build-system)
16235 (propagated-inputs
16236 `(("emacs-evil" ,emacs-evil)
16237 ("emacs-iedit" ,emacs-iedit)))
16238 (native-inputs
16239 `(("emacs-ert-runner" ,emacs-ert-runner)))
16240 (arguments
16241 `(#:phases
16242 (modify-phases %standard-phases
16243 (add-before 'check 'fix-makefile
16244 (lambda _
16245 (substitute* "Makefile"
16246 (("@cask exec ") ""))
16247 #t)))
16248 #:tests? #t
16249 #:test-command '("make" "test")))
16250 (home-page
16251 "https://github.com/hlissner/evil-multiedit")
16252 (synopsis "Multiple cursors for Evil mode")
16253 (description
16254 "This plugin was an answer to the lack of proper multiple cursor support
16255 in Emacs+Evil. It allows you to select and edit matches interactively,
16256 integrating @code{iedit-mode} into Evil mode with an attempt at sensible
16257 defaults.")
16258 (license license:gpl3+)))
16259
16260 (define-public emacs-evil-mc
16261 (let ((commit "1cabb869fe70cef49f7dc06f015c3ade1a969c8c")
16262 (revision "2"))
16263 (package
16264 (name "emacs-evil-mc")
16265 (version (git-version "0.0.3" revision commit))
16266 (source
16267 (origin
16268 (method git-fetch)
16269 (uri (git-reference
16270 (url "https://github.com/gabesoft/evil-mc.git")
16271 (commit commit)))
16272 (file-name (git-file-name name version))
16273 (sha256
16274 (base32 "0p83p90faq1p02lmsfs7zrnky3cyzgy8z4m83a81r9kakjzhkrnb"))))
16275 (build-system emacs-build-system)
16276 (propagated-inputs
16277 `(("emacs-evil" ,emacs-evil)))
16278 (native-inputs
16279 `(("emacs-espuds" ,emacs-espuds)))
16280 (home-page "https://github.com/gabesoft/evil-mc")
16281 (synopsis "Interactive search compatible with @code{multiple-cursors}")
16282 (description "This package can be used with @code{multiple-cursors} to
16283 provide an incremental search that moves all fake cursors in sync.")
16284 (license license:expat))))
16285
16286 (define-public emacs-evil-org
16287 (let ((commit "9d4be14118bf27094a30dbff349b815f098aacbf"))
16288 (package
16289 (name "emacs-evil-org")
16290 (version (git-version "1.0.2" "1" commit))
16291 (source
16292 (origin
16293 (method git-fetch)
16294 (uri (git-reference
16295 (url "https://github.com/Somelauw/evil-org-mode")
16296 (commit commit)))
16297 (file-name (git-file-name name version))
16298 (sha256
16299 (base32
16300 "1fxxfkinb0gq4p5b686r7z4jrkv98zfgh5z889zkjacncv8ibswn"))))
16301 (build-system emacs-build-system)
16302 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
16303 (home-page
16304 "https://github.com/Somelauw/evil-org-mode")
16305 (synopsis "Evil keybindings for Org mode")
16306 (description
16307 "This package adds supplemental Evil mode key-bindings to Emacs
16308 Org-mode. It features:
16309 @itemize
16310 @item normal, visual and insert mode bindings;
16311 @item key bindings organised in key themes;
16312 @item operators like > and < to work on headings;
16313 @item text objects;
16314 @item table support;
16315 @item calendar (date selection) support;
16316 @item agenda support.
16317 @end itemize\n")
16318 (license license:gpl3+))))
16319
16320 (define-public emacs-debpaste
16321 (package
16322 (name "emacs-debpaste")
16323 (version "0.1.5")
16324 (home-page "https://github.com/alezost/debpaste.el")
16325 (source
16326 (origin
16327 (method git-fetch)
16328 (uri (git-reference (url home-page)
16329 (commit (string-append "v" version))))
16330 (file-name (git-file-name name version))
16331 (sha256
16332 (base32
16333 "1wi70r56pd5z0x4dp4m58p9asq03j74kdm4fi9vai83vsl2z9amq"))))
16334 (build-system emacs-build-system)
16335 (propagated-inputs
16336 `(("emacs-xml-rpc" ,emacs-xml-rpc)))
16337 (synopsis "Manipulate pastes from the Debian Pastezone")
16338 (description "Debpaste is an Emacs interface for the Debian Pastezone,
16339 allowing you to receive, post, and delete pastes. It communicates with the
16340 server using XML-RPC.")
16341 (license license:gpl3+)))
16342
16343 (define-public emacs-xml-rpc
16344 (let ((commit "8f624f8b964e9145acb504e4457c9510e87dd93c")
16345 (revision "1"))
16346 (package
16347 (name "emacs-xml-rpc")
16348 (version (git-version "1.6.12" revision commit))
16349 (source
16350 (origin
16351 (method git-fetch)
16352 (uri (git-reference
16353 (url "https://github.com/hexmode/xml-rpc-el")
16354 (commit commit)))
16355 (file-name (git-file-name name version))
16356 (sha256
16357 (base32
16358 "0xa54z52rsfl3n0xgmbycj4zazp8ksgdwcq56swzs6wp72zlalmj"))))
16359 (build-system emacs-build-system)
16360 (home-page "https://github.com/hexmode/xml-rpc-el")
16361 (synopsis "XML-RPC client for Emacs")
16362 (description "This package provides an XML-RPC client for Emacs capable
16363 of both synchronous and asynchronous method calls using the @code{url}
16364 package's async retrieval functionality. @file{xml-rpc.el} represents XML-RPC
16365 datatypes as Lisp values, automatically converting to and from the XML
16366 datastructures as needed, both for method parameters and return values, making
16367 using XML-RPC methods fairly transparent to the Lisp code.")
16368 (license license:gpl3+))))
16369
16370 (define-public emacs-xpm
16371 (package
16372 (name "emacs-xpm")
16373 (version "1.0.4")
16374 (source
16375 (origin
16376 (method url-fetch)
16377 (uri (string-append "https://elpa.gnu.org/packages/xpm-"
16378 version ".tar"))
16379 (sha256
16380 (base32
16381 "075miyashh9cm3b0gk6ngld3rm8bfgnh4qxnhxmmvjgzf6a64grh"))))
16382 (build-system emacs-build-system)
16383 (home-page "https://elpa.gnu.org/packages/xpm.html")
16384 (synopsis "XPM image editing mode for Emacs")
16385 (description "This Emacs package makes editing XPM images easy (and maybe
16386 fun). Editing is done directly on the (textual) image format, for maximal
16387 cohesion with the Emacs Way.")
16388 (license license:gpl3+)))
16389
16390 (define-public emacs-fish-completion
16391 (package
16392 (name "emacs-fish-completion")
16393 (version "1.2")
16394 (source
16395 (origin
16396 (method git-fetch)
16397 (uri (git-reference
16398 (url "https://gitlab.com/Ambrevar/emacs-fish-completion.git")
16399 (commit version)))
16400 (file-name (git-file-name name version))
16401 (sha256
16402 (base32
16403 "17lqip1i1rrsvxzz4bx9rqf1fvwd3hriwg3sj6qxmfc8pylnp37q"))))
16404 (build-system emacs-build-system)
16405 (inputs `(("fish" ,fish)))
16406 (arguments
16407 `(#:phases
16408 (modify-phases %standard-phases
16409 (add-after 'unpack 'configure
16410 (lambda* (#:key inputs outputs #:allow-other-keys)
16411 (let ((fish (assoc-ref inputs "fish")))
16412 ;; Specify the absolute file names of the various
16413 ;; programs so that everything works out-of-the-box.
16414 (make-file-writable "fish-completion.el")
16415 (emacs-substitute-variables
16416 "fish-completion.el"
16417 ("fish-completion-command"
16418 (string-append fish "/bin/fish")))))))))
16419 (home-page
16420 "https://gitlab.com/Ambrevar/emacs-fish-completion")
16421 (synopsis "Fish completion for Emacs pcomplete")
16422 (description
16423 "This package provides completion for the Fish shell to pcomplete (used
16424 by shell and Eshell). You can set it up globally with:
16425
16426 @example
16427 (when (and (executable-find \"fish\")
16428 (require 'fish-completion nil t))
16429 (global-fish-completion-mode))
16430 @end example
16431
16432 Alternatively, you can call the @code{fish-completion-mode} manually or in
16433 shell/Eshell mode hook.
16434
16435 The package @code{emacs-bash-completion} is an optional dependency: if available,
16436 @code{fish-completion-complete} can be configured to fall back on bash to further
16437 try completing. See @code{fish-completion-fallback-on-bash-p}.")
16438 (license license:gpl3+)))
16439
16440 (define-public emacs-gif-screencast
16441 (package
16442 (name "emacs-gif-screencast")
16443 (version "1.1")
16444 (source
16445 (origin
16446 (method git-fetch)
16447 (uri (git-reference
16448 (url "https://gitlab.com/Ambrevar/emacs-gif-screencast.git")
16449 (commit version)))
16450 (file-name (git-file-name name version))
16451 (sha256
16452 (base32
16453 "1g1by8lvf8c9vzm4wwsi5kp285kaj0ahsl54048ympin4pi0njw9"))))
16454 (build-system emacs-build-system)
16455 (inputs
16456 `(("scrot" ,scrot)
16457 ("imagemagick" ,imagemagick)
16458 ("gifsicle" ,gifsicle)))
16459 (arguments
16460 `(#:phases
16461 (modify-phases %standard-phases
16462 (add-after 'unpack 'configure
16463 (lambda* (#:key inputs outputs #:allow-other-keys)
16464 (let ((scrot (assoc-ref inputs "scrot"))
16465 (imagemagick (assoc-ref inputs "imagemagick"))
16466 (gifsicle (assoc-ref inputs "gifsicle")))
16467 (make-file-writable "gif-screencast.el")
16468 ;; Specify the absolute file names of the various
16469 ;; programs so that everything works out-of-the-box.
16470 (emacs-substitute-variables
16471 "gif-screencast.el"
16472 ("gif-screencast-program"
16473 (string-append scrot "/bin/scrot"))
16474 ("gif-screencast-convert-program"
16475 (string-append imagemagick "/bin/convert"))
16476 ("gif-screencast-cropping-program"
16477 (string-append imagemagick "/bin/mogrify"))
16478 ("gif-screencast-optimize-program"
16479 (string-append gifsicle "/bin/gifsicle")))))))))
16480 (home-page
16481 "https://gitlab.com/Ambrevar/emacs-gif-screencast")
16482 (synopsis "One-frame-per-action GIF recording")
16483 (description
16484 "Call @code{gif-screencast} to start a recording.
16485 A screenshot is taken for every user action. Call
16486 @code{gif-screencast-stop} (<f9> by default) to finish recording and create
16487 the GIF result.")
16488 (license license:gpl3+)))
16489
16490 (define-public emacs-google-translate
16491 (package
16492 (name "emacs-google-translate")
16493 (version "0.11.18")
16494 (source
16495 (origin
16496 (method git-fetch)
16497 (uri (git-reference
16498 (url "https://github.com/atykhonov/google-translate/")
16499 (commit (string-append "v" version))))
16500 (file-name (git-file-name name version))
16501 (sha256
16502 (base32
16503 "1kbiqisqyk31l94gxsirhnrdkj51ylgcb16fk2wf7zigmf13jqzp"))))
16504 (build-system emacs-build-system)
16505 (home-page "https://github.com/atykhonov/google-translate")
16506 (synopsis "Emacs interface to Google Translate")
16507 (description
16508 "This package provides an Emacs interface to the Google Translate
16509 on-line service.")
16510 (license license:gpl3+)))
16511
16512 (define-public emacs-helm-company
16513 (package
16514 (name "emacs-helm-company")
16515 (version "0.2.5")
16516 (source
16517 (origin
16518 (method git-fetch)
16519 (uri (git-reference
16520 (url "https://github.com/Sodel-the-Vociferous/helm-company")
16521 (commit (string-append "v" version))))
16522 (file-name (git-file-name name version))
16523 (sha256
16524 (base32
16525 "1ci37w6ahnqrfpb284gjvxmimlf61sdxb9k192yy9q983cksv2hx"))))
16526 (build-system emacs-build-system)
16527 (propagated-inputs
16528 `(("emacs-helm" ,emacs-helm)
16529 ("emacs-company" ,emacs-company)))
16530 (native-inputs
16531 `(("emacs-ert-runner" ,emacs-ert-runner)))
16532 (arguments
16533 `(#:tests? #t
16534 #:test-command '("ert-runner")))
16535 (home-page "https://github.com/Sodel-the-Vociferous/helm-company")
16536 (synopsis "Helm interface for company-mode")
16537 (description
16538 "This is a Helm interface to company-mode, a text completion
16539 framework.")
16540 (license license:gpl3+)))
16541
16542 (define-public emacs-helm-descbinds
16543 (let ((commit "033be73f21778633813264ce1634a6e1ad873d8e"))
16544 (package
16545 (name "emacs-helm-descbinds")
16546 (version (git-version "1.13" "1" commit))
16547 (source
16548 (origin
16549 (method git-fetch)
16550 (uri (git-reference
16551 (url "https://github.com/emacs-helm/helm-descbinds")
16552 (commit commit)))
16553 (file-name (git-file-name name version))
16554 (sha256
16555 (base32
16556 "1n89p56qwa243w1c85i5awnaf7piwjsvfi7nmnsrwm33hix5dknk"))))
16557 (build-system emacs-build-system)
16558 (propagated-inputs `(("emacs-helm" ,emacs-helm)))
16559 (home-page "https://github.com/emacs-helm/helm-descbinds")
16560 (synopsis "Convenient @code{describe-bindings} with Helm")
16561 (description
16562 "This package is a replacement of @code{describe-bindings} for Helm.
16563 @code{describe-bindings} is replaced with @code{helm-descbinds}. As usual,
16564 type @code{C-h b}, or any incomplete key sequence plus @code{C-h}, to run
16565 @code{helm-descbinds}. The bindings are presented in a similar way as
16566 @code{describe-bindings} does, but you can use completion to find the command
16567 you searched for and execute it, or view its documentation.")
16568 (license license:gpl3+))))
16569
16570 (define-public emacs-helm-emms
16571 (let ((commit "37e5aa029abfa5a5c48636314de8157142944fa2"))
16572 (package
16573 (name "emacs-helm-emms")
16574 (version (git-version "1.3" "3" commit))
16575 (source
16576 (origin
16577 (method git-fetch)
16578 (uri (git-reference
16579 (url "https://github.com/emacs-helm/helm-emms")
16580 (commit commit)))
16581 (file-name (git-file-name name version))
16582 (sha256
16583 (base32
16584 "0r1ai6xhzayyik30w2sx9n62bxxwm12vfmjspv0daqif9az8y3vg"))))
16585 (build-system emacs-build-system)
16586 (propagated-inputs
16587 `(("emacs-helm" ,emacs-helm)
16588 ("emacs-emms" ,emacs-emms)))
16589 (home-page
16590 "https://github.com/emacs-helm/helm-emms")
16591 (synopsis "Emms for Helm")
16592 (description "Helm interface for Emms to browse all tracks and all folders
16593 from @code{emms-source-file-default-directory}.")
16594 (license license:gpl3+))))
16595
16596 (define-public emacs-helm-exwm
16597 (package
16598 (name "emacs-helm-exwm")
16599 (version "0.0.2")
16600 (source
16601 (origin
16602 (method git-fetch)
16603 (uri (git-reference
16604 (url "https://github.com/emacs-helm/helm-exwm.git")
16605 (commit version)))
16606 (file-name (git-file-name name version))
16607 (sha256
16608 (base32 "0g4k01ps14bp2az8v6dcag9llg045k2b4kdis81xx4lvw76znr9v"))))
16609 (build-system emacs-build-system)
16610 (propagated-inputs
16611 `(("emacs-helm" ,emacs-helm)
16612 ("emacs-exwm" ,emacs-exwm)))
16613 (home-page
16614 "https://github.com/emacs-helm/helm-exwm")
16615 (synopsis "Helm for EXWM buffers")
16616 (description
16617 "@code{helm-exwm} runs a Helm session over the list of EXWM buffers.
16618 @code{helm-exwm-switch} is a convenience X application launcher using Helm to
16619 switch between the various windows of one or several specific applications.
16620 See @code{helm-exwm-switch-browser} for an example.")
16621 (license license:gpl3+)))
16622
16623 (define-public emacs-helm-flycheck
16624 (let ((commit "3cf7d3bb194acacc6395f88360588013d92675d6"))
16625 (package
16626 (name "emacs-helm-flycheck")
16627 (version (git-version "0.4" "1" commit))
16628 (source
16629 (origin
16630 (method git-fetch)
16631 (uri (git-reference
16632 (url "https://github.com/yasuyk/helm-flycheck")
16633 (commit commit)))
16634 (file-name (git-file-name name version))
16635 (sha256
16636 (base32
16637 "1a2yfxhz04klwhcandqvfzysxp6b7bxyxx1xk1x3kds5hif5fkl4"))))
16638 (build-system emacs-build-system)
16639 (propagated-inputs
16640 `(("emacs-dash" ,emacs-dash)
16641 ("emacs-flycheck" ,emacs-flycheck)
16642 ("emacs-helm" ,emacs-helm)))
16643 (home-page "https://github.com/yasuyk/helm-flycheck")
16644 (synopsis "Show Flycheck errors with Helm")
16645 (description
16646 "This integrates Flycheck with Helm.")
16647 (license license:gpl3+))))
16648
16649 (define-public emacs-helm-ls-git
16650 (let ((commit "76654c776a7f6e2e5290645e748aac2a746f7daa"))
16651 (package
16652 (name "emacs-helm-ls-git")
16653 (version (git-version "1.9.1" "1" commit))
16654 (source
16655 (origin
16656 (method git-fetch)
16657 (uri (git-reference
16658 (url "https://github.com/emacs-helm/helm-ls-git")
16659 (commit commit)))
16660 (file-name (git-file-name name version))
16661 (sha256
16662 (base32
16663 "0vsq1n3xl3ghy5zik2scm7jrs501n4kybdqd6yw6j0cv4jxdqbr0"))))
16664 (build-system emacs-build-system)
16665 (propagated-inputs `(("emacs-helm" ,emacs-helm)))
16666 (home-page "https://github.com/emacs-helm/helm-ls-git")
16667 (synopsis "Helm interface for listing the files in a Git repository")
16668 (description
16669 "This package provides a Helm interface for Git files.
16670 @itemize
16671 @item Display the open buffers in project.
16672 @item Display a status source showing state of project (modified files etc.).
16673 @item Display a list of all files in project under git control.
16674 @item Quickly look at diffs of modified files.
16675 @item Allow switching to @code{git status} with your preferred frontend
16676 (vc-dir, Magit,etc.).
16677 @item Full integration of git-grep, also allow usage of @code{helm-grep} (you
16678 can use ack-grep instead of grep).
16679 @item Integrate usage of gid from id-utils.
16680 @item Full integration with @code{helm-find-files}, allow you to browse
16681 projects unrelated to current-buffer.
16682 @item In addition, all actions of type files and buffers are provided.
16683 @end itemize\n")
16684 (license license:gpl3+))))
16685
16686 (define-public emacs-helm-mu
16687 (let ((commit "77e6fea24e01481418738421dbcfe28ef1bd63cf"))
16688 (package
16689 (name "emacs-helm-mu")
16690 (version (git-version "20180513" "1" commit))
16691 (source
16692 (origin
16693 (method git-fetch)
16694 (uri (git-reference
16695 (url "https://github.com/emacs-helm/helm-mu.git")
16696 (commit commit)))
16697 (file-name (git-file-name name version))
16698 (sha256
16699 (base32 "1lh0ahxdc5b2z18m9p30gwg8sbg33sjwkjr38p7h5xsm5fm7i0fz"))))
16700 (build-system emacs-build-system)
16701 (propagated-inputs
16702 `(("emacs-helm" ,emacs-helm)
16703 ("mu" ,mu)))
16704 (home-page
16705 "https://github.com/emacs-helm/helm-mu")
16706 (synopsis
16707 "Helm sources for searching emails and contacts")
16708 (description
16709 "Helm sources for searching emails and contacts using @code{mu} and
16710 @code{mu4e}. Mu is an indexer for maildirs and mu4e is a mutt-like MUA for
16711 Emacs build on top of mu. Mu is highly efficient making it possible to get
16712 instant results even for huge maildirs. It also provides search operators,
16713 e.g: @code{from:Peter to:Anne flag:attach search term}.")
16714 (license license:gpl3+))))
16715
16716 (define-public emacs-helm-pass
16717 (package
16718 (name "emacs-helm-pass")
16719 (version "0.3")
16720 (source
16721 (origin
16722 (method git-fetch)
16723 (uri (git-reference
16724 (url "https://github.com/emacs-helm/helm-pass")
16725 (commit version)))
16726 (file-name (git-file-name name version))
16727 (sha256
16728 (base32
16729 "0vglaknmir3yv4iwibwn8r40ran8d04gcyp99hx73ldmf3zqpnxv"))))
16730 (build-system emacs-build-system)
16731 (propagated-inputs
16732 `(("emacs-helm" ,emacs-helm)
16733 ("emacs-password-store" ,emacs-password-store)))
16734 (home-page "https://github.com/emacs-helm/helm-pass")
16735 (synopsis "Helm interface to pass, the standard Unix password manager")
16736 (description
16737 "Users of @code{helm-pass} may also be interested in functionality
16738 provided by other Emacs packages dealing with pass:
16739 @itemize
16740 @item @code{emacs-password-store}, which @code{helm-pass} relies on.
16741 @item @code{emacs-pass}, a major mode for @code{pass}.
16742 @item @code{auth-source-pass.el}: integration of Emacs' auth-source with
16743 @code{pass}, included in Emacs 26+).
16744 @end itemize\n")
16745 (license license:gpl3+)))
16746
16747 (define-public emacs-image+
16748 (let ((commit "6834d0c09bb4df9ecc0d7a559bd7827fed48fffc"))
16749 (package
16750 (name "emacs-image+")
16751 (version (git-version "0.6.2" "1" commit))
16752 (source
16753 (origin
16754 (method git-fetch)
16755 (uri (git-reference
16756 (url "https://github.com/mhayashi1120/Emacs-imagex")
16757 (commit commit)))
16758 (file-name (git-file-name name version))
16759 (sha256
16760 (base32
16761 "0v66wk9nh0raih4jhrzmmyi5lbysjnmbv791vm2230ffi2hmwxnd"))))
16762 (build-system emacs-build-system)
16763 (inputs `(("imagemagick" ,imagemagick)))
16764 (arguments
16765 `(#:phases
16766 (modify-phases %standard-phases
16767 (add-after 'unpack 'configure
16768 (lambda* (#:key inputs outputs #:allow-other-keys)
16769 (let ((imagemagick (assoc-ref inputs "imagemagick")))
16770 ;; Specify the absolute file names of the various
16771 ;; programs so that everything works out-of-the-box.
16772 (chmod "image+.el" #o666)
16773 (emacs-substitute-variables
16774 "image+.el"
16775 ("imagex-convert-command"
16776 (string-append imagemagick "/bin/convert"))
16777 ("imagex-identify-command"
16778 (string-append imagemagick "/bin/identify")))))))))
16779 (home-page "https://github.com/mhayashi1120/Emacs-imagex")
16780 (synopsis "Image manipulation extensions for Emacs")
16781 (description
16782 "Image+ provides keybindings allowing you to zoom in or zoom out of an
16783 image, rotate it, save modified images, and more.")
16784 (license license:gpl3+))))
16785
16786 (define-public emacs-package-lint
16787 (let ((commit "69bb89d00ba212b734c676ad056aa793c450b288"))
16788 (package
16789 (name "emacs-package-lint")
16790 (version (git-version "0.5" "1" commit))
16791 (source
16792 (origin
16793 (method git-fetch)
16794 (uri (git-reference
16795 (url "https://github.com/purcell/package-lint")
16796 (commit commit)))
16797 (file-name (git-file-name name version))
16798 (sha256
16799 (base32
16800 "1hfricsgmy3x9snnd2p4xq6vnnv94qdsxxnxp07b3hqc9bhw31rq"))))
16801 (build-system emacs-build-system)
16802 (home-page "https://github.com/purcell/package-lint")
16803 (synopsis "Linting library for elisp package authors")
16804 (description
16805 "This provides a list of issues with the Emacs package metadata of a file,
16806 e.g. the package dependencies it requires. See function
16807 @code{package-lint-buffer}. Checks will currently be enabled only if a
16808 \"Package-Requires:\" or \"Package-Version:\" header is present in the
16809 file.")
16810 (license license:gpl3+))))
16811
16812 (define-public emacs-picpocket
16813 (let ((version "40")
16814 (commit "6fd88b8711c4370662c0f9c462170187d092a046"))
16815 (package
16816 (name "emacs-picpocket")
16817 (version version)
16818 (source
16819 (origin
16820 (method git-fetch)
16821 (uri (git-reference
16822 (url "https://github.com/johanclaesson/picpocket")
16823 (commit commit)))
16824 (file-name (git-file-name name version))
16825 (sha256
16826 (base32 "1mdzzxf7xm7zwrpnqqxa27d1cr31pd72d7ilbwljv13qp177a3yw"))))
16827 (build-system emacs-build-system)
16828 (arguments ; needed for running tests
16829 `(#:tests? #t
16830 #:emacs ,emacs
16831 #:test-command '("emacs" "--batch"
16832 "-l" "picpocket-test.el"
16833 "-f" "ert-run-tests-batch-and-exit")))
16834 (home-page "https://github.com/johanclaesson/picpocket")
16835 (synopsis "Image viewer for Emacs")
16836 (description
16837 "Picpocket is an image viewer for GNU Emacs. It has commands for:
16838
16839 @itemize
16840 @item File operations on the picture files (delete, move, copy, hardlink).
16841 @item Scale and rotate the picture.
16842 @item Associate pictures with tags which are saved to disk.
16843 @item Filter pictures according to tags.
16844 @item Customizing keystrokes for quick tagging and file operations.
16845 @item Undo and browse history of undoable commands.
16846 @end itemize")
16847 (license license:gpl3+))))
16848
16849 (define-public emacs-mu4e-conversation
16850 (let ((commit "98110bb9c300fc9866dee8e0023355f9f79c9b96")
16851 (revision "5"))
16852 (package
16853 (name "emacs-mu4e-conversation")
16854 (version (git-version "0.0.1" revision commit))
16855 (source
16856 (origin
16857 (method git-fetch)
16858 (uri (git-reference
16859 (url "https://gitlab.com/Ambrevar/mu4e-conversation.git")
16860 (commit commit)))
16861 (file-name (git-file-name name version))
16862 (sha256
16863 (base32
16864 "080s96jkcw2p288sp1vgds91rgl693iz6hi2dv56p2ih0nnivwlg"))))
16865 (build-system emacs-build-system)
16866 (propagated-inputs
16867 `(("mu" ,mu)))
16868 (home-page
16869 "https://gitlab.com/Ambrevar/mu4e-conversation")
16870 (synopsis
16871 "Show a complete thread in a single buffer")
16872 (description
16873 "This package offers an alternate view to mu4e's e-mail display. It
16874 shows all e-mails of a thread in a single view, where each correspondent has
16875 their own face. Threads can be displayed linearly (in which case e-mails are
16876 displayed in chronological order) or as an Org document where the node tree
16877 maps the thread tree.")
16878 (license license:gpl3+))))
16879
16880 (define-public emacs-pinentry
16881 (let ((commit "dcc9ba03252ee5d39e03bba31b420e0708c3ba0c")
16882 (revision "1"))
16883 (package
16884 (name "emacs-pinentry")
16885 (version (git-version "0.1" revision commit))
16886 (source
16887 (origin
16888 (method url-fetch)
16889 (uri (string-append
16890 "http://git.savannah.gnu.org/cgit/emacs/elpa.git/plain"
16891 "/packages/pinentry/pinentry.el?id=" commit))
16892 (file-name (string-append "pinentry.el"))
16893 (sha256
16894 (base32
16895 "1lf30q6r8nz5cjzclbb9bbymsk2y75nskvb55hnjdv93gr3j0sik"))))
16896 (build-system emacs-build-system)
16897 (propagated-inputs
16898 `(("gnupg" ,gnupg)))
16899 (home-page "https://elpa.gnu.org/packages/pinentry.html")
16900 (synopsis "GnuPG Pinentry server implementation")
16901 (description
16902 "This package allows GnuPG passphrase to be prompted through the
16903 minibuffer instead of graphical dialog.
16904
16905 To use, add @code{allow-emacs-pinentry} to @code{~/.gnupg/gpg-agent.conf},
16906 reload the configuration with @code{gpgconf --reload gpg-agent}, and start the
16907 server with @code{M-x pinentry-start}.")
16908 (license license:gpl3+))))
16909
16910 (define-public emacs-so-long
16911 (let ((commit "cfae473b1bf65f78ddb015159e667ec0103d881c")
16912 (revision "2"))
16913 (package
16914 (name "emacs-so-long")
16915 (version (git-version "1.0" revision commit))
16916 (source
16917 (origin
16918 (method git-fetch)
16919 (uri (git-reference
16920 (url "https://git.savannah.gnu.org/git/so-long.git")
16921 (commit commit)))
16922 (file-name (git-file-name name version))
16923 (sha256
16924 (base32
16925 "0g943n5cl9lz5s7hszg6yvp10xd1xvd8mfgxyg0yckmp8fqkswin"))))
16926 (build-system emacs-build-system)
16927 (home-page "https://www.emacswiki.org/emacs/SoLong")
16928 (synopsis "Improve performance in files with long lines")
16929 (description "This package improves the performance of Emacs when
16930 viewing files with long lines.")
16931 (license license:gpl3+))))
16932
16933 (define-public emacs-github-review
16934 (let ((commit "a13a3b4f1b6114a32af843971a145ab880f51232")
16935 (revision "2"))
16936 (package
16937 (name "emacs-github-review")
16938 (version (git-version "0.1" revision commit))
16939 (source
16940 (origin
16941 (method git-fetch)
16942 (uri (git-reference
16943 (url "https://github.com/charignon/github-review")
16944 (commit commit)))
16945 (file-name (git-file-name name version))
16946 (sha256
16947 (base32
16948 "0injfpxzgfhmqalba845j5l5cdcxxqz43knhxwinf36g52nfabl0"))))
16949 (build-system emacs-build-system)
16950 (inputs
16951 `(("emacs-dash" ,emacs-dash)
16952 ("emacs-s" ,emacs-s)
16953 ("emacs-ghub" ,emacs-ghub)))
16954 (native-inputs
16955 `(("emacs-buttercup" ,emacs-buttercup)
16956 ("emacs-undercover" ,emacs-undercover)))
16957 (arguments
16958 `(#:tests? #t
16959 #:test-command '("buttercup" "-L" "test/github-review-test.el")))
16960 (home-page "https://github.com/charignon/github-review")
16961 (synopsis "Review GitHub pull requests within Emacs")
16962 (description "This package provides commands to pull in, comment on, and
16963 accept and reject GitHub pull requests.")
16964 (license license:gpl3+))))
16965
16966 (define-public emacs-deadgrep
16967 (let ((commit "3fc7ca1f58e190f0c80da455a0e40187e673020e")
16968 (revision "2"))
16969 (package
16970 (name "emacs-deadgrep")
16971 (version (git-version "0.8" revision commit))
16972 (source
16973 (origin
16974 (method git-fetch)
16975 (uri (git-reference
16976 (url "https://github.com/Wilfred/deadgrep")
16977 (commit commit)))
16978 (file-name (git-file-name name version))
16979 (sha256
16980 (base32
16981 "016gwqxd9aqzjw3hqv3vdf8cs6la8r65g6azg5rlmjqwfx3vsaha"))))
16982 (build-system emacs-build-system)
16983 (inputs
16984 `(("emacs-dash" ,emacs-dash)
16985 ("emacs-s" ,emacs-s)
16986 ("emacs-spinner" ,emacs-spinner)))
16987 (home-page "https://github.com/Wilfred/deadgrep")
16988 (synopsis "Frontend for @code{ripgrep}")
16989 (description "This package provides an Emacs interface for performing
16990 searches with @code{ripgrep}.")
16991 (license license:gpl3+))))
16992
16993 (define-public emacs-focus
16994 (let ((commit "ab42b8779929beeb7878c7fb3d3ccd80d9327c7f")
16995 (version "0.1.1")
16996 (revision "1"))
16997 (package
16998 (name "emacs-focus")
16999 (version (git-version version revision commit))
17000 (source
17001 (origin
17002 (method git-fetch)
17003 (uri (git-reference
17004 (url "https://github.com/larstvei/Focus")
17005 (commit commit)))
17006 (file-name (git-file-name name version))
17007 (sha256
17008 (base32
17009 "079v1syid7h2vr2ya6hs6hl0pgj60qdsw60mqw4cj2zllmkrkwj4"))))
17010 (build-system emacs-build-system)
17011 (home-page "https://github.com/larstvei/Focus")
17012 (synopsis "Minor mode for focusing in on relevant text")
17013 (description "This package provides a minor mode that dims the color of
17014 text in neighboring sections.")
17015 (license license:gpl3+))))
17016
17017 (define-public emacs-pandoc-mode
17018 (package
17019 (name "emacs-pandoc-mode")
17020 (version "2.27.2")
17021 (source
17022 (origin
17023 (method git-fetch)
17024 (uri (git-reference
17025 (url "https://github.com/joostkremers/pandoc-mode")
17026 (commit version)))
17027 (file-name (git-file-name name version))
17028 (sha256
17029 (base32
17030 "04bqc7mhgkfks3nsvimd3rrriv4nqbksmv5ahlbbd03aqa2b0vrv"))))
17031 (build-system emacs-build-system)
17032 (propagated-inputs
17033 `(("emacs-dash" ,emacs-dash)
17034 ("emacs-hydra" ,emacs-hydra)))
17035 (home-page "https://github.com/joostkremers/pandoc-mode")
17036 (synopsis "Minor mode for interacting with Pandoc")
17037 (description "This package provides a Hydra menu for interacting with the
17038 Pandoc, the document-conversion tool.")
17039 (license license:bsd-3)))
17040
17041 (define-public emacs-hlint-refactor-mode
17042 (let ((commit "c4307f86aad6d02e32e9b30cb6edc115584c791c")
17043 (revision "1"))
17044 (package
17045 (name "emacs-hlint-refactor-mode")
17046 (version (git-version "0.0.1" revision commit))
17047 (source
17048 (origin
17049 (method git-fetch)
17050 (uri (git-reference
17051 (url "https://github.com/mpickering/hlint-refactor-mode")
17052 (commit commit)))
17053 (file-name (git-file-name name version))
17054 (sha256
17055 (base32
17056 "1c71w9s34n0i7mm4njchxn6s3ri1y6mh3akgbg4nq41d42h8iap3"))))
17057 (build-system emacs-build-system)
17058 (propagated-inputs
17059 `(("apply-refact" ,apply-refact)
17060 ("hlint" ,hlint)))
17061 (home-page "https://github.com/mpickering/hlint-refactor-mode")
17062 (synopsis "Emacs bindings for @code{hlint}'s @code{--refactor} option")
17063 (description "This package applies refactoring suggestions from
17064 @code{hlint}.")
17065 (license license:expat))))
17066
17067 (define-public emacs-ccls
17068 (let ((commit "aab3e31fd716daf59f9794e62d473357263e8cc0")
17069 (revision "4"))
17070 (package
17071 (name "emacs-ccls")
17072 (version (git-version "0.1" revision commit))
17073 (source
17074 (origin
17075 (method git-fetch)
17076 (uri (git-reference
17077 (url "https://github.com/MaskRay/emacs-ccls")
17078 (commit commit)))
17079 (file-name (git-file-name name version))
17080 (sha256
17081 (base32
17082 "1ykgw21ypyhwlyflppjcgqrj1xw4d9rld4z65qvwhk3f12cv113j"))))
17083 (build-system emacs-build-system)
17084 (propagated-inputs
17085 `(("ccls" ,ccls)
17086 ("emacs-dash" ,emacs-dash)
17087 ("emacs-projectile" ,emacs-projectile)
17088 ("emacs-lsp-mode" ,emacs-lsp-mode)))
17089 (home-page "https://github.com/MaskRay/emacs-ccls")
17090 (synopsis "Emacs support for the @code{ccls} language server")
17091 (description "This package extends @code{lsp-mode} to work with @code{C}
17092 and @code{C++} files through the @code{ccls} language server.")
17093 (license license:expat))))
17094
17095 (define-public emacs-org-brain
17096 (package
17097 (name "emacs-org-brain")
17098 (version "0.5")
17099 (source
17100 (origin
17101 (method git-fetch)
17102 (uri (git-reference
17103 (url "https://github.com/Kungsgeten/org-brain.git")
17104 (commit "3faf9303af3f2356e3444e69c22dc6c5774047d1")))
17105 (file-name (git-file-name name version))
17106 (sha256
17107 (base32
17108 "1ad681zk6kckw2zbk0r4iaj4bw8cfqrbd1s3gdwgdjlzq81q9mmj"))))
17109 (build-system emacs-build-system)
17110 (home-page "https://github.com/Kungsgeten/org-brain")
17111 (synopsis "Org-mode wiki and concept-mapping for Emacs")
17112 (description "@code{emacs-org-brain} implements a variant of concept
17113 mapping in Emacs, using @code{org-mode}. An org-brain is a network of
17114 org-mode entries, where each entry is a file or a headline, and you can get a
17115 visual overview of the relationships between the entries: parents, children,
17116 siblings and friends. This visual overview can also be used to browse your
17117 entries. You can think of entries as nodes in a mind map, or pages in a
17118 wiki.")
17119 (license license:expat)))
17120
17121 (define-public emacs-recent-addresses
17122 (let ((commit "afbbfdc43b81e620acf827ca20d297e0c517b6eb")
17123 (revision "1"))
17124 (package
17125 (name "emacs-recent-addresses")
17126 (home-page "https://nschum.de/src/emacs/recent-addresses/")
17127 (version (git-version "0.1" revision commit))
17128 (source (origin
17129 (method git-fetch)
17130 (uri (git-reference
17131 ;; Note: Use a branch that works with Helm. Submitted
17132 ;; at <https://github.com/nschum/recent-addresses.el/pull/1>.
17133 (url "https://github.com/civodul/recent-addresses.el")
17134 (commit commit)))
17135 (sha256
17136 (base32
17137 "0ajrq0galjmdyjdjyxazykjyax3gh6hvfk4s7l657pi11g0q5zax"))
17138 (file-name (git-file-name name version))))
17139 (build-system emacs-build-system)
17140 (synopsis "Record recently-used email addressed and auto-complete them")
17141 (description
17142 "@code{recent-addresses} is an Emacs package that allows you to quickly
17143 look up previously used email addresses. It can be used alongside the Gnus
17144 email client.")
17145 (license license:gpl2+))))
17146
17147 (define-public emacs-fold-dwim
17148 (let ((commit "c46f4bb2ce91b4e307136320e72c28dd50b6cd8b")
17149 (revision "0"))
17150 (package
17151 (name "emacs-fold-dwim")
17152 (version (git-version "1.2" revision commit))
17153 (home-page "https://github.com/emacsattic/fold-dwim")
17154 (source (origin
17155 (method git-fetch)
17156 (uri (git-reference (url home-page) (commit commit)))
17157 (sha256
17158 (base32
17159 "1yz1wis31asw6xa5maliyd1ck2q02xnnh7dc6swgj9cb4wi7k6i1"))
17160 (file-name (git-file-name name version))))
17161 (build-system emacs-build-system)
17162 (synopsis "Unified user interface for Emacs folding modes")
17163 (description
17164 "DWIM stands for \"do what I mean\", as in the idea that one keystroke
17165 can do different things depending on the context. In this package, it means
17166 that, if the cursor is in a currently hidden folded construction, we want to
17167 show it; if it's not, we want to hide whatever fold the cursor is in.")
17168 (license license:gpl2+))))
17169
17170 (define-public emacs-markup-faces
17171 (package
17172 (name "emacs-markup-faces")
17173 (version "1.0.0")
17174 (source
17175 (origin
17176 (method url-fetch)
17177 (uri (string-append "https://stable.melpa.org/packages/markup-faces-"
17178 version ".el"))
17179 (sha256
17180 (base32
17181 "124dxbaa25fwxnpwsygpz7pw6da6dnnw7y2lic3jf8rgz7lw4v32"))))
17182 (build-system emacs-build-system)
17183 (home-page "https://github.com/sensorflo/markup-faces")
17184 (synopsis "Collection of Emacs faces for markup language modes")
17185 (description "emacs-markup-faces is like font-lock-faces, but tailored for
17186 markup languages instead programming languages. The sub group markup-faces-text
17187 is also intended for 'text viewing modes' such as info or (wo)man. This gives a
17188 common look and feel, or let's say theme, across different markup language modes
17189 and 'text viewing modes' respectively.")
17190 (license license:gpl3+)))
17191
17192 (define-public emacs-adoc-mode
17193 (package
17194 (name "emacs-adoc-mode")
17195 (version "0.6.6")
17196 (source
17197 (origin
17198 (method git-fetch)
17199 (uri (git-reference
17200 (url "https://github.com/sensorflo/adoc-mode.git")
17201 (commit (string-append "V" version))))
17202 (file-name (git-file-name name version))
17203 (sha256
17204 (base32
17205 "0kp2aafjhqxz3mjr9hkkss85r4n51chws5a2qj1xzb63dh36liwm"))))
17206 (build-system emacs-build-system)
17207 (arguments
17208 `(#:phases
17209 (modify-phases %standard-phases
17210 ;; See: https://github.com/sensorflo/adoc-mode/issues/39.
17211 (add-after 'unpack 'disable-failing-tests
17212 (lambda _
17213 (let-syntax
17214 ((disable-tests
17215 (syntax-rules ()
17216 ((_ file ())
17217 (syntax-error "test names list must not be empty"))
17218 ((_ file (test-name ...))
17219 (substitute* file
17220 (((string-append "^\\(ert-deftest " test-name ".*") all)
17221 (string-append all "(skip-unless nil)\n")) ...)))))
17222 (disable-tests "adoc-mode-test.el"
17223 ("adoctest-test-tempo-delimited-blocks"
17224 "adoctest-test-tempo-macros"
17225 "adoctest-test-tempo-paragraphs"
17226 "adoctest-test-tempo-passthroug-macros"
17227 "adoctest-test-tempo-quotes")))
17228 #t)))
17229 #:tests? #t
17230 #:test-command '("emacs" "-Q" "-batch"
17231 "-l" "adoc-mode-test.el"
17232 "-f" "ert-run-tests-batch-and-exit")))
17233 (propagated-inputs
17234 `(("emacs-markup-faces" ,emacs-markup-faces)))
17235 (home-page "https://github.com/sensorflo/adoc-mode/wiki")
17236 (synopsis "AsciiDoc mode for Emacs")
17237 (description "This package provides an Emacs major mode for editing AsciiDoc
17238 files. It focuses on highlighting the document to improve readability.")
17239 (license license:gpl2+)))
17240
17241 (define-public emacs-racer
17242 (package
17243 (name "emacs-racer")
17244 (version "1.2")
17245 (source
17246 (origin
17247 (method git-fetch)
17248 (uri
17249 (git-reference
17250 (url "https://github.com/racer-rust/emacs-racer")
17251 (commit version)))
17252 (file-name (git-file-name name version))
17253 (sha256
17254 (base32 "0xj5iki10cg8j8vvqjlw6lfx97k3agwirhchcjnzbnkry48x9qi6"))))
17255 (arguments
17256 `(#:tests? #t
17257 #:test-command '("make" "test")
17258 #:phases
17259 (modify-phases %standard-phases
17260 (add-before 'check 'fix-makefile
17261 (lambda _
17262 (substitute* "Makefile"
17263 (("\\$\\{CASK\\} exec ") ""))
17264 #t)))))
17265 (native-inputs
17266 `(("emacs-ert-runner" ,emacs-ert-runner)
17267 ("emacs-undercover" ,emacs-undercover)))
17268 (propagated-inputs
17269 `(("emacs-dash" ,emacs-dash)
17270 ("emacs-f" ,emacs-f)
17271 ("emacs-pos-tip" ,emacs-pos-tip)
17272 ("emacs-rust-mode" ,emacs-rust-mode)
17273 ("emacs-s" ,emacs-s)))
17274 (build-system emacs-build-system)
17275 (home-page "https://github.com/racer-rust/emacs-racer")
17276 (synopsis "Racer support for Emacs")
17277 (description
17278 "This is the official Emacs package for Racer. It supports code
17279 completion of variables, functions and modules. It can also jump to
17280 definition of functions and types, and show a help buffer based on the
17281 docstring of the thing at point.")
17282 (license license:expat)))
17283
17284 (define-public emacs-rust-mode
17285 (package
17286 (name "emacs-rust-mode")
17287 (version "0.4.0")
17288 (source (origin
17289 (method git-fetch)
17290 (uri (git-reference
17291 (url "https://github.com/rust-lang/rust-mode")
17292 (commit version)))
17293 (file-name (git-file-name name version))
17294 (sha256
17295 (base32
17296 "0bcrklyicxh032rrp585rl5mxd26nb61dp6r5bl935rlcmxzsczh"))))
17297 (build-system emacs-build-system)
17298 (arguments
17299 `(#:phases
17300 (modify-phases %standard-phases
17301 (replace 'check
17302 (lambda _
17303 (invoke "sh" "run_rust_emacs_tests.sh"))))))
17304 (home-page "https://github.com/rust-lang/rust-mode")
17305 (synopsis "Major Emacs mode for editing Rust source code")
17306 (description "This package provides a major Emacs mode for editing Rust
17307 source code.")
17308 (license (list license:expat
17309 license:asl2.0))))
17310
17311 (define-public emacs-ztree
17312 (let ((commit "c54425a094353ec40a8179f9eab3596f76c6cf94"))
17313 (package
17314 (name "emacs-ztree")
17315 (version (git-version "1.0.5" "1" commit))
17316 (source
17317 (origin
17318 (method git-fetch)
17319 (uri (git-reference
17320 (url "https://github.com/fourier/ztree")
17321 (commit commit)))
17322 (file-name (git-file-name name version))
17323 (sha256
17324 (base32
17325 "0j8fpxds8m1zi04nrs8vv21091abvh4n8ab76f1sgdxnp4l5cfb0"))))
17326 (build-system emacs-build-system)
17327 (home-page "https://github.com/fourier/ztree")
17328 (synopsis "Directory tree comparison mode for Emacs")
17329 (description "Ztree is a project dedicated to implementation of several
17330 text-tree applications inside GNU Emacs. It consists of 2 subprojects:
17331 @command{ztree-diff} and @command{ztree-dir} (the basis of
17332 @command{ztree-diff}).")
17333 (license license:gpl3))))
17334
17335 (define-public emacs-helm-org-contacts
17336 (let ((commit "e7f11615802df55bb8b679450b5a5ef82a9081f9"))
17337 (package
17338 (name "emacs-helm-org-contacts")
17339 (version (git-version "20200310" "1" commit))
17340 (source
17341 (origin
17342 (method git-fetch)
17343 (uri (git-reference
17344 (url "https://github.com/tmalsburg/helm-org-contacts")
17345 (commit commit)))
17346 (file-name (git-file-name name version))
17347 (sha256
17348 (base32
17349 "06a1gbrq3qcfsn0kyv4i24x1xxfrrwqa3kgfj4xa4va88q2vqyb5"))))
17350 (build-system emacs-build-system)
17351 (propagated-inputs
17352 `(("emacs-dash" ,emacs-dash)
17353 ("emacs-helm" ,emacs-helm)
17354 ("emacs-s" ,emacs-s)))
17355 (home-page "https://github.com/tmalsburg/helm-org-contacts")
17356 (synopsis "Helm source for org-contacts")
17357 (description "This Helm source can be used to search contacts stored in
17358 org-contacts format. There are actions for inserting postal addresses, email
17359 addresses, and phone numbers in the buffer where @command{helm-org-contacts}
17360 was called.")
17361 (license license:gpl3))))
17362
17363 (define-public emacs-dired-du
17364 (package
17365 (name "emacs-dired-du")
17366 (version "0.5.2")
17367 (source
17368 (origin
17369 (method url-fetch)
17370 (uri (string-append
17371 "https://elpa.gnu.org/packages/dired-du-" version ".tar"))
17372 (sha256
17373 (base32 "0vhph7vcicsiq28b10h3b4dvnhckcy4gccpdgsad5j7pwa5k26m1"))))
17374 (build-system emacs-build-system)
17375 (home-page "https://elpa.gnu.org/packages/dired-du.html")
17376 (synopsis "Dired with recursive directory sizes")
17377 (description
17378 "Display the recursive size of directories in Dired.
17379 This file defines a minor mode @command{dired-du-mode} to show the recursive
17380 size of directories in Dired buffers. If @command{du} program is available,
17381 then the directory sizes are obtained with it. Otherwise, the directory sizes
17382 are obtained with Lisp. The former is faster and provide a more precise
17383 value. For directories where the user doesn't have read permission, the
17384 recursive size is not obtained. Once this mode is enabled, every new Dired
17385 buffer displays recursive dir sizes.")
17386 (license license:gpl3+)))
17387
17388 (define-public emacs-dired-rsync
17389 (package
17390 (name "emacs-dired-rsync")
17391 (version "0.4")
17392 (source (origin
17393 (method git-fetch)
17394 (uri (git-reference
17395 (url "https://github.com/stsquad/dired-rsync.git")
17396 (commit version)))
17397 (file-name (git-file-name name version))
17398 (sha256
17399 (base32
17400 "0jzbn0izxqgz719gb6fpr60zbcb6w1ama13ngpvrig82nlhs37fv"))))
17401 (build-system emacs-build-system)
17402 (propagated-inputs
17403 `(("emacs-s" ,emacs-s)
17404 ("emacs-dash" ,emacs-dash)))
17405 (home-page "https://github.com/stsquad/dired-rsync/")
17406 (synopsis "Support for rsync from Emacs dired buffers")
17407 (description "This package adds a single command @code{dired-rsync} which
17408 allows the user to copy marked files in a dired buffer via @code{rsync}. This
17409 is useful, especially for large files, because the copy happens in the
17410 background and doesn’t lock up Emacs. It is also more efficient than using
17411 tramps own encoding methods for moving data between systems.")
17412 (license license:gpl3+)))
17413
17414 (define-public emacs-pcre2el
17415 ;; Last release is very old so we get the latest commit.
17416 (let ((commit "0b5b2a2c173aab3fd14aac6cf5e90ad3bf58fa7d"))
17417 (package
17418 (name "emacs-pcre2el")
17419 (version (git-version "1.8" "1" commit))
17420 (source
17421 (origin
17422 (method git-fetch)
17423 (uri (git-reference
17424 (url "https://github.com/joddie/pcre2el")
17425 (commit commit)))
17426 (file-name (git-file-name name version))
17427 (sha256
17428 (base32
17429 "14br6ad138qx1z822wqssswqiihxiynz1k69p6mcdisr2q8yyi1z"))))
17430 (build-system emacs-build-system)
17431 (home-page "https://github.com/joddie/pcre2el")
17432 (synopsis "Convert between PCRE, Emacs and rx regexp syntax")
17433 (description "@code{pcre2el} or @code{rxt} (RegeXp Translator or RegeXp
17434 Tools) is a utility for working with regular expressions in Emacs, based on a
17435 recursive-descent parser for regexp syntax. In addition to converting (a
17436 subset of) PCRE syntax into its Emacs equivalent, it can do the following:
17437
17438 @itemize
17439 @item convert Emacs syntax to PCRE
17440 @item convert either syntax to @code{rx}, an S-expression based regexp syntax
17441 @item untangle complex regexps by showing the parse tree in @code{rx} form and
17442 highlighting the corresponding chunks of code
17443 @item show the complete list of strings (productions) matching a regexp,
17444 provided the list is finite
17445 @item provide live font-locking of regexp syntax (so far only for Elisp
17446 buffers – other modes on the TODO list).
17447 @end itemize\n")
17448 (license license:gpl3))))
17449
17450 (define-public emacs-magit-todos
17451 (package
17452 (name "emacs-magit-todos")
17453 (version "1.4.1")
17454 (source
17455 (origin
17456 (method git-fetch)
17457 (uri (git-reference
17458 (url "https://github.com/alphapapa/magit-todos")
17459 (commit version)))
17460 (file-name (git-file-name name version))
17461 (sha256
17462 (base32
17463 "1rcl6j53yabxqk3jzgaxvm3wqq7rayf1hdib2v2fapw5b0layym6"))))
17464 (build-system emacs-build-system)
17465 (propagated-inputs
17466 `(("emacs-async" ,emacs-async)
17467 ("emacs-dash" ,emacs-dash)
17468 ("emacs-f" ,emacs-f)
17469 ("emacs-hl-todo" ,emacs-hl-todo)
17470 ("magit" ,emacs-magit)
17471 ("emacs-pcre2el" ,emacs-pcre2el)
17472 ("emacs-s" ,emacs-s)))
17473 (home-page "https://github.com/alphapapa/magit-todos")
17474 (synopsis "Show source files' TODOs (and FIXMEs, etc) in Magit status buffer")
17475 (description "This package displays keyword entries from source code
17476 comments and Org files in the Magit status buffer. Activating an item jumps
17477 to it in its file. By default, it uses keywords from @code{hl-todo}, minus a
17478 few (like NOTE).")
17479 (license license:gpl3)))
17480
17481 (define-public emacs-git-annex
17482 ;; Unreleased version has a fontification fix.
17483 (let ((commit "1324d3f23c534fe79391a2c256bb8803054e383b")
17484 (revision "2"))
17485 (package
17486 (name "emacs-git-annex")
17487 (version (git-version "1.1" revision commit))
17488 (source
17489 (origin
17490 (method git-fetch)
17491 (uri (git-reference
17492 (url "https://github.com/jwiegley/git-annex-el")
17493 (commit commit)))
17494 (file-name (git-file-name name version))
17495 (sha256
17496 (base32
17497 "1lfky2nsrlndlbvk6vwbswnvbvkz1sxgg0n3r5q6xykdkjym0lrh"))))
17498 (build-system emacs-build-system)
17499 (home-page "https://github.com/jwiegley/git-annex-el")
17500 (synopsis "Emacs integration for git-annex")
17501 (description "Enhances Dired and buffers visiting annex files with
17502 git-annex functionality. In Dired, the names of annex files are shortened by
17503 hiding the symbolic links and fontified based on whether content is present.
17504 Commands for performing some common operations (e.g., unlocking and adding
17505 files) are provided.")
17506 (license license:gpl2+))))
17507
17508 (define-public emacs-hackernews
17509 (let ((commit "2362d7b00e59da7caddc8c0adc24dccb42fddef9")
17510 (revision "2"))
17511 (package
17512 (name "emacs-hackernews")
17513 (version (git-version "0.5.0" revision commit))
17514 (source
17515 (origin
17516 (method git-fetch)
17517 (uri (git-reference
17518 (url "https://github.com/clarete/hackernews.el")
17519 (commit commit)))
17520 (file-name (git-file-name name version))
17521 (sha256
17522 (base32
17523 "1hcc5b173yzcvvd2ls3jxrmsw2w9bi21m9hcpcirkn0nh93ywadv"))))
17524 (build-system emacs-build-system)
17525 (home-page "https://github.com/clarete/hackernews.el")
17526 (synopsis "Hacker News client for Emacs")
17527 (description "The @command{hackernews} package is able to fetch stories
17528 from six different Hacker News feeds, namely top, new, best, ask, show and job
17529 stories. The default feed is top stories, which corresponds to the Hacker
17530 News homepage.")
17531 (license license:gpl3))))
17532
17533 (define-public emacs-youtube-dl
17534 (let ((commit "af877b5bc4f01c04fccfa7d47a2c328926f20ef4")
17535 (revision "2"))
17536 (package
17537 (name "emacs-youtube-dl")
17538 (version (git-version "1.0" "2" commit))
17539 (source
17540 (origin
17541 (method git-fetch)
17542 (uri (git-reference
17543 (url "https://github.com/skeeto/youtube-dl-emacs/")
17544 (commit commit)))
17545 (file-name (git-file-name name version))
17546 (sha256
17547 (base32
17548 "0zkl9jkjbx0lmp9ylv4rqg1zwqibk053s4rp7s1h0i18nzk7vn8j"))))
17549 (build-system emacs-build-system)
17550 (inputs
17551 `(("youtube-dl" ,youtube-dl)))
17552 (arguments
17553 `(#:phases
17554 (modify-phases %standard-phases
17555 (add-after 'unpack 'configure
17556 (lambda* (#:key inputs #:allow-other-keys)
17557 (let ((youtube-dl (assoc-ref inputs "youtube-dl")))
17558 ;; .el is read-only in git.
17559 (chmod "youtube-dl.el" #o644)
17560 ;; Specify the absolute file names of the various
17561 ;; programs so that everything works out-of-the-box.
17562 (emacs-substitute-variables
17563 "youtube-dl.el"
17564 ("youtube-dl-program"
17565 (string-append youtube-dl "/bin/youtube-dl")))))))))
17566 (home-page "https://github.com/skeeto/youtube-dl-emacs/")
17567 (synopsis "Emacs youtube-dl download manager")
17568 (description "This package manages a video download queue for
17569 @command{youtube-dl}, which serves as the back end. It manages a single
17570 @command{youtube-dl} subprocess, downloading one video at a time. New videos
17571 can be queued at any time.")
17572 (license license:unlicense))))
17573
17574 (define-public emacs-org-web-tools
17575 (package
17576 (name "emacs-org-web-tools")
17577 (version "1.0")
17578 (source
17579 (origin
17580 (method git-fetch)
17581 (uri (git-reference
17582 (url "https://github.com/alphapapa/org-web-tools")
17583 (commit version)))
17584 (file-name (git-file-name name version))
17585 (sha256
17586 (base32
17587 "0kak9h5ny00d39gnwspv53nadnag01brw2fq9zk5wpfc91h9bjng"))))
17588 (build-system emacs-build-system)
17589 (propagated-inputs
17590 `(("emacs-dash" ,emacs-dash)
17591 ("emacs-esxml" ,emacs-esxml)
17592 ("emacs-s" ,emacs-s)))
17593 (inputs
17594 `(("pandoc" ,ghc-pandoc)))
17595 (arguments
17596 `(#:phases
17597 (modify-phases %standard-phases
17598 (add-after 'unpack 'patch-exec-paths
17599 (lambda* (#:key inputs #:allow-other-keys)
17600 (let ((pandoc (assoc-ref inputs "pandoc")))
17601 (substitute* "org-web-tools.el"
17602 (("\"pandoc\"") (string-append "\"" pandoc "/bin/pandoc\"")))
17603 #t))))))
17604 (home-page "https://github.com/alphapapa/org-web-tools")
17605 (synopsis "Display/Process web page as Org-mode content")
17606 (description "This package contains library functions and commands useful
17607 for retrieving web page content and processing it into Org-mode content.
17608
17609 For example, you can copy a URL to the clipboard or kill-ring, then run a
17610 command that downloads the page, isolates the “readable” content with
17611 @command{eww-readable}, converts it to Org-mode content with Pandoc, and
17612 displays it in an Org-mode buffer. Another command does all of that but
17613 inserts it as an Org entry instead of displaying it in a new buffer.")
17614 (license license:gpl3+)))
17615
17616 (define-public emacs-blimp
17617 (let ((commit "e420763d6d18b5d1be552cdbc47f91418343db03"))
17618 (package
17619 (name "emacs-blimp")
17620 (version (git-version "0.0.0" "1" commit))
17621 (source
17622 (origin
17623 (method git-fetch)
17624 (uri (git-reference
17625 (url "https://github.com/walseb/blimp")
17626 (commit commit)))
17627 (file-name (git-file-name name version))
17628 (sha256
17629 (base32
17630 "09wmhpym516b81dfq8smdmysh1fn610dzlyvyl2rkx8600f0fizd"))))
17631 (build-system emacs-build-system)
17632 (propagated-inputs
17633 `(("emacs-eimp" ,emacs-eimp)))
17634 (home-page "https://github.com/walseb/blimp")
17635 (synopsis "Emacs wrapper around all Imagemagick commands")
17636 (description "Blimp (Bustling Image Manipulation Package) is a complete
17637 wrapper around all Imagemagick commands with descriptions, autocompletion (for
17638 some commands) and hints displayed in prompt using @command{eimp.el} to
17639 execute its commands and resize images.")
17640 (license license:gpl3+))))
17641
17642 (define-public emacs-synosaurus
17643 (let ((commit "8bf95b935976ec0a1964cf175ed57cc5f6f93bdb"))
17644 (package
17645 (name "emacs-synosaurus")
17646 (version (git-version "0.1.0" "1" commit))
17647 (source
17648 (origin
17649 (method git-fetch)
17650 (uri (git-reference
17651 (url "https://github.com/hpdeifel/synosaurus")
17652 (commit commit)))
17653 (file-name (git-file-name name version))
17654 (sha256
17655 (base32
17656 "15by9jccab6kyplxa6k0glzaivxkqdigl33gl2qi2cvy6f2q7gva"))))
17657 (build-system emacs-build-system)
17658 (propagated-inputs
17659 `(("wordnet" ,wordnet)))
17660 (arguments
17661 `(#:phases
17662 (modify-phases %standard-phases
17663 (add-after 'unpack 'configure
17664 (lambda* (#:key inputs outputs #:allow-other-keys)
17665 (let ((wn (assoc-ref inputs "wordnet")))
17666 ;; .el is read-only in git.
17667 (chmod "synosaurus-wordnet.el" #o644)
17668 ;; Specify the absolute file names of the various
17669 ;; programs so that everything works out-of-the-box.
17670 (emacs-substitute-variables
17671 "synosaurus-wordnet.el"
17672 ("wordnet-command"
17673 (string-append wn "/bin/wn")))))))))
17674 (home-page "https://github.com/hpdeifel/synosaurus")
17675 (synopsis "Extensible thesaurus mode for Emacs")
17676 (description "Synosaurus is a thesaurus fontend for Emacs with pluggable
17677 backends, including the @command{wordnet} offline backend.")
17678 (license license:gpl3+))))
17679
17680 (define-public emacs-editorconfig
17681 (package
17682 (name "emacs-editorconfig")
17683 (version "0.8.1")
17684 (source
17685 (origin
17686 (method git-fetch)
17687 (uri (git-reference
17688 (url "https://github.com/editorconfig/editorconfig-emacs")
17689 (commit (string-append "v" version))))
17690 (file-name (git-file-name name version))
17691 (sha256
17692 (base32
17693 "1djlhkap7zddknzvjsjz0agpfsms1ih05zcpg1bikid2vs4gddyr"))))
17694 (build-system emacs-build-system)
17695 (home-page "https://github.com/editorconfig/editorconfig-emacs")
17696 (synopsis "Define and maintain consistent coding styles between different
17697 editors and IDEs")
17698 (description "The EditorConfig project consists of a file format for
17699 defining coding styles and a collection of text editor plugins that enable
17700 editors to read the file format and adhere to defined styles. EditorConfig
17701 files are easily readable and they work nicely with version control systems.")
17702 (license license:gpl3+)))
17703
17704 (define-public emacs-all-the-icons
17705 (package
17706 (name "emacs-all-the-icons")
17707 (version "4.0.1")
17708 (source
17709 (origin
17710 (method git-fetch)
17711 (uri (git-reference
17712 (url "https://github.com/domtronn/all-the-icons.el.git")
17713 (commit version)))
17714 (file-name (git-file-name name version))
17715 (sha256
17716 (base32 "0yh7gnv9xfqn8q4rzaa6wpyn9575vyfxy7d3afly2mqsb367fgm5"))))
17717 (build-system emacs-build-system)
17718 (arguments
17719 `(#:include '("\\.el$" "^data/" "^fonts/")
17720 ;; Compiling "test/" fails with "Symbol’s value as variable is void:
17721 ;; all-the-icons--root-code". Ignoring tests.
17722 #:exclude '("^test/")
17723 #:tests? #f))
17724 (propagated-inputs
17725 `(("f" ,emacs-f)
17726 ("memoize" ,emacs-memoize)))
17727 (home-page "https://github.com/domtronn/all-the-icons.el")
17728 (synopsis "Collect icon fonts and propertize them within Emacs")
17729 (description
17730 "All-the-icons is a utility package to collect various icon fonts and
17731 propertize them within Emacs. Icon fonts allow you to propertize and format
17732 icons the same way you would normal text. This enables things such as better
17733 scaling of and anti aliasing of the icons.")
17734 ;; Package is released under Expat license. Elisp files are licensed
17735 ;; under GPL3+. Fonts come with various licenses: Expat for
17736 ;; "all-the-icons.ttf" and "file-icons.ttf", Apache License 2.0 for
17737 ;; "material-design-icons.ttf", and SIL OFL 1.1 for "fontawesome.ttf",
17738 ;; "ocitcons.ttf" and "weathericons.ttf".
17739 (license
17740 (list license:expat license:gpl3+ license:silofl1.1 license:asl2.0))))
17741
17742 (define-public emacs-wttrin
17743 (let ((commit "df5427ce2a5ad4dab652dbb1c4a1834d7ddc2abc")
17744 (revision "1"))
17745 (package
17746 (name "emacs-wttrin")
17747 (version (git-version "0.2.0" revision commit))
17748 (source (origin
17749 (method git-fetch)
17750 (uri (git-reference
17751 (url "https://github.com/bcbcarl/emacs-wttrin.git")
17752 (commit commit)))
17753 (file-name (git-file-name name version))
17754 (sha256
17755 (base32
17756 "1ai655f10iayb4vw0ass2j3x83f4vsv90326mnywkzfl3sxd432z"))))
17757 (build-system emacs-build-system)
17758 (propagated-inputs
17759 `(("emacs-xterm-color" ,emacs-xterm-color)))
17760 (home-page "https://github.com/bcbcarl/emacs-wttrin")
17761 (synopsis "Frontend for weather web service @url{wttr.in}")
17762 (description "This package provides local weather information from
17763 @url{wttr.in}.")
17764 (license license:expat))))
17765
17766 (define-public emacs-powerline
17767 (package
17768 (name "emacs-powerline")
17769 (version "2.4")
17770 (source
17771 (origin
17772 (method git-fetch)
17773 (uri (git-reference
17774 (url "https://github.com/milkypostman/powerline.git")
17775 (commit version)))
17776 (file-name (git-file-name name version))
17777 (sha256
17778 (base32
17779 "1hp3xp18943n0rlggz55150020ivw8gvi1vyxkr4z8xhpwq4gaar"))))
17780 (build-system emacs-build-system)
17781 (home-page "https://github.com/milkypostman/powerline/")
17782 (synopsis "Mode-line plugin for Emacs")
17783 (description "Powerline is a utility plugin which allows you to create
17784 a better-looking, more functional Emacs mode-line. A collection of predefined
17785 themes comes with the package.")
17786 (license license:gpl3+)))
17787
17788 (define-public emacs-spaceline
17789 (package
17790 (name "emacs-spaceline")
17791 (version "2.0.1")
17792 (source
17793 (origin
17794 (method git-fetch)
17795 (uri (git-reference
17796 (url "https://github.com/TheBB/spaceline.git")
17797 (commit (string-append "v" version))))
17798 (file-name (git-file-name name version))
17799 (sha256
17800 (base32
17801 "1q8r95zfrh0vxna5ml2pq9b9f66clfqcl4d2qy2aizkvzyxg6skl"))))
17802 (build-system emacs-build-system)
17803 (propagated-inputs
17804 `(("dash" ,emacs-dash)
17805 ("powerline" ,emacs-powerline)
17806 ("s" ,emacs-s)))
17807 (home-page "https://github.com/TheBB/spaceline")
17808 (synopsis "Powerline theme from Spacemacs")
17809 (description "Spaceline provides Spacemacs' mode-line theme.
17810 This package provides features for three kinds of users.
17811
17812 @itemize
17813 @item You just want to use the Spacemacs mode-line theme and forget about it.
17814 @item You want to use something similar to the Spacemacs mode-line theme, but
17815 with a handful of easy tweaks.
17816 @item You want an easy-to-use library for building your own mode-line from
17817 scratch, and you think the Spacemacs theme looks good.
17818 @end itemize")
17819 (license license:gpl3+)))
17820
17821 (define-public emacs-column-marker
17822 (package
17823 (name "emacs-column-marker")
17824 (version "9")
17825 (source
17826 (origin
17827 (method url-fetch)
17828 (uri "https://www.emacswiki.org/emacs/download/column-marker.el")
17829 (sha256 (base32 "05bv198zhqw5hqq6cr11mhz02dpca74hhp1ycwq369m0yb2naxy9"))))
17830 (build-system emacs-build-system)
17831 (home-page "https://www.emacswiki.org/emacs/ColumnMarker")
17832 (synopsis "Emacs mode for highlighting columns")
17833 (description
17834 "With @code{column-marker.el} you can highlight any number of text columns.
17835 Three such highlight column markers are provided by default. This is
17836 especially useful for languages like COBOL or Fortran where certain columns
17837 have special meaning. It is also handy for aligning text across long vertical
17838 distances. Multi-column characters, such as @kbd{TAB} are treated
17839 correctly.")
17840 (license license:gpl2+)))
17841
17842 (define-public emacs-slime-repl-ansi-color
17843 (let ((commit "ad03263f5d4de473bc173b64a6fc3dc1106393d7"))
17844 (package
17845 (name "emacs-slime-repl-ansi-color")
17846 (version (git-version "0.0.0" "1" commit))
17847 (source (origin
17848 (method git-fetch)
17849 (uri (git-reference
17850 (url "https://github.com/deadtrickster/slime-repl-ansi-color")
17851 (commit commit)))
17852 (file-name (git-file-name name version))
17853 (sha256
17854 (base32
17855 "0bpg7gxz310x7bnlg324c507sxc5gxwwz6h64h6kdq141r73vbi4"))))
17856 (build-system emacs-build-system)
17857 (home-page "https://github.com/deadtrickster/slime-repl-ansi-color")
17858 (synopsis "Color ANSI codes in the REPL of SLIME")
17859 (description "Color ANSI codes in the REPL of SLIME")
17860 (license license:gpl2+))))
17861
17862 (define-public emacs-helm-slime
17863 (package
17864 (name "emacs-helm-slime")
17865 (version "0.4.0")
17866 (source (origin
17867 (method git-fetch)
17868 (uri (git-reference
17869 (url "https://github.com/emacs-helm/helm-slime")
17870 (commit version)))
17871 (file-name (git-file-name name version))
17872 (sha256
17873 (base32
17874 "0mrpjhpijdrq353fnfvdj9l9xfsz390qlcvifcair9732ma7i8l0"))))
17875 (build-system emacs-build-system)
17876 (propagated-inputs
17877 `(("emacs-helm" ,emacs-helm)
17878 ("emacs-slime" ,emacs-slime)))
17879 (home-page "https://github.com/emacs-helm/helm-slime")
17880 (synopsis "Helm for SLIME, the Superior Lisp Interaction Mode for Emacs")
17881 (description "Helm-SLIME defines a few new commands:
17882
17883 @itemize
17884 @item helm-slime-complete: Select a symbol from the SLIME completion systems.
17885 @item helm-slime-list-connections: Yet another slime-list-connections with Helm.
17886 @item: helm-slime-apropos: Yet another slime-apropos with Helm.
17887 @item helm-slime-repl-history: Select an input from the SLIME REPL history and insert it.
17888 @end itemize\n")
17889 (license license:gpl3+)))
17890
17891 (define-public emacs-helm-sly
17892 (package
17893 (name "emacs-helm-sly")
17894 (version "0.4.1")
17895 (source (origin
17896 (method git-fetch)
17897 (uri (git-reference
17898 (url "https://github.com/emacs-helm/helm-sly")
17899 (commit version)))
17900 (file-name (git-file-name name version))
17901 (sha256
17902 (base32
17903 "0b2dx9nzh5233lkix3lz81c9cv626lk2hjpcjiikwvyp6y0q92ys"))))
17904 (build-system emacs-build-system)
17905 (propagated-inputs
17906 `(("emacs-helm" ,emacs-helm)
17907 ("emacs-sly" ,emacs-sly)))
17908 (home-page "https://github.com/emacs-helm/helm-sly")
17909 (synopsis "Helm for SLY, a Common Lisp interaction mode for Emacs")
17910 (description "Helm-SLY defines a few new commands:
17911
17912 @itemize
17913 @item helm-sly-list-connections: Yet another Lisp connection list with Helm.
17914 @item: helm-sly-apropos: Yet another @command{apropos} with Helm.
17915 @item helm-sly-mini: Like @command{helm-sly-list-connections}, but include an
17916 extra source of Lisp-related buffers, like the events buffer or the scratch
17917 buffer.
17918 @end itemize\n")
17919 (license license:gpl3+)))
17920
17921 (define-public emacs-gtk-look
17922 (package
17923 (name "emacs-gtk-look")
17924 (version "29")
17925 (source (origin
17926 (method url-fetch)
17927 (uri "https://download.tuxfamily.org/user42/gtk-look.el")
17928 (sha256
17929 (base32
17930 "14p2nwrd51cr1v06fxbjjn6jdrkf9d6vcxhmscm0kl677s25ypsp"))))
17931 (build-system emacs-build-system)
17932 (arguments
17933 `(#:phases
17934 (modify-phases %standard-phases
17935 (add-after 'unpack 'configure
17936 (lambda _
17937 ;; File is read-only.
17938 (chmod "gtk-look.el" #o644)
17939 (emacs-substitute-variables "gtk-look.el"
17940 ("gtk-lookup-devhelp-indices"
17941 '(list (expand-file-name "~/.guix-profile/share/gtk-doc/html/*/*.devhelp*"))))
17942 #t)))))
17943 (home-page "http://user42.tuxfamily.org/gtk-look/index.html")
17944 (synopsis "Find and display HTML documentation for GTK, GNOME and Glib")
17945 (description "@command{gtk-look} finds and displays HTML documentation for
17946 GTK, GNOME and Glib functions and variables in Emacs, similar to what
17947 info-lookup-symbol does for info files (C-h S). The documentation is expected
17948 to be devhelp indexes with HTML files. The location of the indexes can be
17949 customized. In addition to C code development @command{gtk-look} is good for
17950
17951 @itemize
17952 @item @command{perl-gtk2}, recognising class funcs like
17953 @command{Gtk2::Label->new} and bare method names like @command{set_text}.
17954 @item @command{guile-gnome}, recognising methods like @command{set-text} and
17955 classes like @command{<gtk-window>}.
17956 @end itemize\n")
17957 (license license:gpl3+)))
17958
17959 (define-public emacs-ov
17960 (package
17961 (name "emacs-ov")
17962 (version "1.0.6")
17963 (source (origin
17964 (method git-fetch)
17965 (uri (git-reference
17966 (url "https://github.com/ShingoFukuyama/ov.el.git")
17967 (commit version)))
17968 (file-name (git-file-name name version))
17969 (sha256
17970 (base32
17971 "0qxk2rf84j86syxi8xknsq252irwg7sz396v3bb4wqz4prpj0kzc"))))
17972 (build-system emacs-build-system)
17973 (home-page "https://github.com/ShingoFukuyama/ov.el")
17974 (synopsis "Overlay library for Emacs Lisp")
17975 (description "@code{ov.el} provides a simple way to manipulate overlays in
17976 Emacs.")
17977 (license license:gpl3+)))
17978
17979 (define-public emacs-matrix-client
17980 (let ((commit "a0623667b07a4bf60980c97b078e9faed97ace79"))
17981 (package
17982 (name "emacs-matrix-client")
17983 (version (git-version "0.0.0" "4" commit))
17984 (source (origin
17985 (method git-fetch)
17986 (uri (git-reference
17987 (url "https://github.com/jgkamat/matrix-client-el.git")
17988 (commit commit)))
17989 (file-name (git-file-name name version))
17990 (sha256
17991 (base32
17992 "1zya8id3y9wzjaj7nplq7br6nhm3lsskv0fkn1xr1y77fzcfgcdb"))))
17993 (build-system emacs-build-system)
17994 (arguments
17995 `(#:phases
17996 (modify-phases %standard-phases
17997 (add-after 'unpack 'add-missing-require
17998 ;; Fix a filter error at runtime due to a missing require.
17999 ;; Reported upstream:
18000 ;; <https://github.com/alphapapa/matrix-client.el/issues/76>
18001 (lambda _
18002 (substitute* "matrix-client-room.el"
18003 (("\\(require 'dash-functional\\)" all)
18004 (string-append all "\n" "(require 'anaphora)")))
18005 #t)))))
18006 (propagated-inputs
18007 `(("a" ,emacs-a)
18008 ("anaphora" ,emacs-anaphora)
18009 ("dash" ,emacs-dash)
18010 ("esxml" ,emacs-esxml)
18011 ("f" ,emacs-f)
18012 ("frame-purpose" ,emacs-frame-purpose)
18013 ("ht" ,emacs-ht)
18014 ("ov" ,emacs-ov)
18015 ("rainbow-identifiers" ,emacs-rainbow-identifiers)
18016 ("request" ,emacs-request)
18017 ("s" ,emacs-s)
18018 ("tracking" ,emacs-tracking)))
18019 (home-page "https://github.com/jgkamat/matrix-client-el")
18020 (synopsis "Matrix client for Emacs")
18021 (description "@code{matrix-client} is a simple chat UI to Matrix.org
18022 rooms. It also provides an API which allows Emacs to seamlessly create
18023 RPC channels with users and other software.")
18024 (license license:gpl3+))))
18025
18026 (define-public emacs-sesman
18027 (package
18028 (name "emacs-sesman")
18029 (version "0.3.4")
18030 (source
18031 (origin
18032 (method git-fetch)
18033 (uri (git-reference
18034 (url "https://github.com/vspinu/sesman.git")
18035 (commit (string-append "v" version))))
18036 (file-name (git-file-name name version))
18037 (sha256
18038 (base32
18039 "0z5jb4vpbjsi63w3wjy6d2lgz33qdfvrgfb3bszv4hcf6a96y7fc"))))
18040 (build-system emacs-build-system)
18041 (arguments
18042 `(#:phases
18043 (modify-phases %standard-phases
18044 (add-after 'unpack 'set-shell
18045 ;; Setting the SHELL environment variable is required for the tests
18046 ;; to find sh.
18047 (lambda _
18048 (setenv "SHELL" (which "sh"))
18049 #t)))
18050 #:tests? #t
18051 #:test-command '("make" "test")))
18052 (home-page "https://github.com/vspinu/sesman")
18053 (synopsis "Session manager for Emacs based IDEs")
18054 (description "Sesman provides facilities for session management and
18055 interactive session association with the current contexts (project, directory,
18056 buffers). While sesman can be used to manage arbitrary sessions, it primary
18057 targets the Emacs based IDEs (CIDER, ESS, Geiser, Robe, SLIME etc.)")
18058 (license license:gpl3+)))
18059
18060 (define-public emacs-buttercup
18061 (package
18062 (name "emacs-buttercup")
18063 (version "1.16")
18064 (source
18065 (origin
18066 (method git-fetch)
18067 (uri (git-reference
18068 (url "https://github.com/jorgenschaefer/emacs-buttercup.git")
18069 (commit (string-append "v" version))))
18070 (file-name (git-file-name name version))
18071 (sha256
18072 (base32
18073 "0dckgcyzsav6ld78bcyrrygy1cz1jvqgav6vy8f6klpmk3r8xrl1"))))
18074 (build-system emacs-build-system)
18075 (arguments
18076 `(#:tests? #t
18077 #:test-command '("make" "test")
18078 #:phases
18079 (modify-phases %standard-phases
18080 (add-after 'install 'install-bin
18081 (lambda* (#:key outputs #:allow-other-keys)
18082 (install-file "bin/buttercup"
18083 (string-append (assoc-ref outputs "out") "/bin"))
18084 #t)))))
18085 (home-page "https://github.com/jorgenschaefer/emacs-buttercup")
18086 (synopsis "Behavior driven emacs lisp testing framework")
18087 (description "Buttercup is a behavior-driven development framework for
18088 testing Emacs Lisp code. It groups related tests so they can share
18089 common set-up and tear-down code, and allows the programmer to \"spy\" on
18090 functions to ensure they are called with the right arguments during testing.")
18091 (license license:gpl3+)))
18092
18093 (define-public emacs-wordnut
18094 (let ((commit "feac531404041855312c1a046bde7ea18c674915")
18095 (revision "0"))
18096 (package
18097 (name "emacs-wordnut")
18098 (version (git-version "0.1" revision commit))
18099 (home-page "https://github.com/gromnitsky/wordnut")
18100 (source (origin
18101 (method git-fetch)
18102 (uri (git-reference (url home-page) (commit commit)))
18103 (sha256
18104 (base32
18105 "1jl0b6g64a9w0q7bfvwha67vgws5xd15b7mkfyb5gkz3pymqhfxn"))
18106 (patches
18107 (search-patches "emacs-wordnut-require-adaptive-wrap.patch"))
18108 (file-name (git-file-name name version))))
18109 (build-system emacs-build-system)
18110 (propagated-inputs
18111 `(("wordnet" ,wordnet)
18112 ("emacs-adaptive-wrap" ,emacs-adaptive-wrap)))
18113 (synopsis "Major mode for WordNet")
18114 (description "This Emacs package provides an interface for
18115 @code{wordnet}. Features include completion, if the query is not found
18116 too ambiguous and navigation in the result buffer.")
18117 (license license:gpl3+))))
18118
18119 (define-public emacs-frame-purpose
18120 (package
18121 (name "emacs-frame-purpose")
18122 (version "1.0")
18123 (source (origin
18124 (method git-fetch)
18125 (uri (git-reference
18126 (url "https://github.com/alphapapa/frame-purpose.el.git")
18127 (commit version)))
18128 (sha256
18129 (base32
18130 "0jq2aam1yvccw887ighd1wm2xkvk5bv53ffiz3crcl16a255aj4q"))
18131 (file-name (git-file-name name version))))
18132 (build-system emacs-build-system)
18133 (inputs
18134 `(("dash" ,emacs-dash)))
18135 (synopsis "Purpose-specific frames for Emacs")
18136 (description "@code{frame-purpose} makes it easy to open purpose-specific
18137 frames that only show certain buffers, e.g. by buffers’ major mode, their
18138 filename or directory, etc, with custom frame/X-window titles, icons, and
18139 other frame parameters.")
18140 (home-page "https://github.com/alphapapa/frame-purpose.el")
18141 (license license:gpl3+)))
18142
18143 (define-public emacs-arduino-mode
18144 (let ((commit "23ae47c9f28f559e70b790b471f20310e163a39b")
18145 (revision "1")) ;no release yet
18146 (package
18147 (name "emacs-arduino-mode")
18148 (version (git-version "0" revision commit))
18149 (source (origin
18150 (method git-fetch)
18151 (uri (git-reference
18152 (url "https://github.com/stardiviner/arduino-mode.git")
18153 (commit commit)))
18154 (sha256
18155 (base32
18156 "08vnbz9gpah1l93fzfd87aawrhcnh2v1kyfxgsn88pdwg8awz8rx"))
18157 (file-name (git-file-name name version))))
18158 (build-system emacs-build-system)
18159 (inputs
18160 `(("spinner" ,emacs-spinner)
18161 ("flycheck" ,emacs-flycheck)))
18162 (arguments
18163 `(#:phases
18164 (modify-phases %standard-phases
18165 ;; Emacs complains that "defmethod" and "defgeneric" are obsolete
18166 ;; macros when compiling. Substitute them with the recommended
18167 ;; macros "cl-defmethod" and "cl-defgeneric", respectively.
18168 (add-after 'unpack 'fix-obsolete
18169 (lambda _
18170 (substitute* "ede-arduino.el"
18171 (("defmethod") "cl-defmethod")
18172 (("defgeneric") "cl-defgeneric"))
18173 #t)))))
18174 (synopsis "Emacs major mode for editing Arduino sketches")
18175 (description "Emacs major mode for editing Arduino sketches.")
18176 (home-page "https://github.com/stardiviner/arduino-mode")
18177 (license license:gpl3+))))
18178
18179 (define-public emacs-annalist
18180 (let ((commit "e0601539c9ac0171a684ea3ff6266d215d1d08e6")
18181 (revision "1"))
18182 (package
18183 (name "emacs-annalist")
18184 (version (git-version "1.0.0" revision commit))
18185 (source (origin
18186 (method git-fetch)
18187 (uri (git-reference
18188 (url "https://github.com/noctuid/annalist.el.git")
18189 (commit commit)))
18190 (sha256
18191 (base32
18192 "10bmimdzpi6cql4sb2hbgdvrza83xbac50bi9qng4z662pfnlaam"))
18193 (file-name (git-file-name name version))))
18194 (build-system emacs-build-system)
18195 (native-inputs
18196 `(("emacs-buttercup" ,emacs-buttercup)
18197 ("emacs-lispy" ,emacs-lispy)
18198 ("emacs-evil" ,emacs-evil)))
18199 (arguments
18200 `(#:phases
18201 (modify-phases %standard-phases
18202 (add-before 'check 'fix-makefile
18203 (lambda _
18204 (substitute* "Makefile"
18205 (("cask exec ") ""))
18206 #t)))
18207 #:tests? #t
18208 #:test-command '("make" "test")))
18209 (home-page "https://github.com/noctuid/annalist.el")
18210 (synopsis "Record and display information with Org headings and tables")
18211 (description "This package allows for keybindings, settings, hooks, and
18212 advice to be recorded and displayed.")
18213 (license license:gpl3+))))
18214
18215 (define-public emacs-general
18216 (let ((commit "f38fb2294bd29261374b772f765730f2fa168b3e")
18217 (revision "3"))
18218 (package
18219 (name "emacs-general")
18220 (version (git-version "0" revision commit))
18221 (source (origin
18222 (method git-fetch)
18223 (uri (git-reference
18224 (url "https://github.com/noctuid/general.el.git")
18225 (commit commit)))
18226 (sha256
18227 (base32
18228 "1aqi5axkwfng6rm52sblf738c7rffp10sqs69dvkh2fv3ps8q28i"))
18229 (file-name (git-file-name name version))))
18230 (build-system emacs-build-system)
18231 (native-inputs
18232 `(("emacs-buttercup" ,emacs-buttercup)
18233 ("emacs-evil" ,emacs-evil)
18234 ("emacs-which-key" ,emacs-which-key)
18235 ("emacs-use-package" ,emacs-use-package)))
18236 (arguments
18237 `(#:phases
18238 (modify-phases %standard-phases
18239 (add-before 'check 'fix-makefile
18240 (lambda _
18241 (substitute* "Makefile"
18242 (("cask exec ") ""))
18243 #t)))
18244 #:tests? #t
18245 #:test-command '("make" "test")))
18246 (home-page "https://github.com/noctuid/general.el")
18247 (synopsis "More convenient key definitions in emacs")
18248 (description "@code{general.el} provides a more convenient method for
18249 binding keys in emacs (for both evil and non-evil users). Like
18250 @code{use-package}, which provides a convenient, unified interface for
18251 managing packages, @code{general.el} is intended to provide a convenient,
18252 unified interface for key definitions. While this package does implement some
18253 completely new functionality (such as the ability to make vim-style
18254 keybindings under non-prefix keys with an optional timeout), its primary
18255 purpose is to build on existing functionality to make key definition more
18256 clear and concise. @code{general-define-key} is user-extensible and supports
18257 defining multiple keys in multiple keymaps at once, implicitly wrapping key
18258 strings with (@code{kbd ...}), using named prefix key sequences (like the
18259 leader key in vim), and much more.")
18260 (license license:gpl3+))))
18261
18262 (define-public emacs-tldr
18263 (let ((commit "7203d1be3dcbf12131846ffe06601933fa874d74"))
18264 (package
18265 (name "emacs-tldr")
18266 (version (git-version "0" "1" commit))
18267 (home-page "https://github.com/kuanyui/tldr.el")
18268 (source (origin
18269 (method git-fetch)
18270 (uri (git-reference
18271 (url (string-append home-page ".git"))
18272 (commit commit)))
18273 (sha256
18274 (base32
18275 "1bw6la463l2yfm7rp76ga4makfy4kpxgwi7ni5gxk31w11g26ryk"))
18276 (file-name (git-file-name name version))))
18277 (build-system emacs-build-system)
18278 (propagated-inputs
18279 `(("emacs-request" ,emacs-request)))
18280 (synopsis "Simplified and community-driven man pages for Emacs")
18281 (description "@code{emacs-tldr} allows the user to access tldr pages
18282 from within emacs. The @code{tldr} pages are a community effort to simplify
18283 the man pages with practical examples.")
18284 (license license:wtfpl2))))
18285
18286 (define-public emacs-window-layout
18287 (package
18288 (name "emacs-window-layout")
18289 (version "1.4")
18290 (home-page "https://github.com/kiwanami/emacs-window-layout")
18291 (source (origin
18292 (method git-fetch)
18293 (uri (git-reference
18294 (url home-page)
18295 (commit (string-append "v" version))))
18296 (sha256
18297 (base32
18298 "0wgqi8r844lbx52fn6az8c1n8m681rp6dkfzd54wmdk1ka7zmvv6"))
18299 (file-name (git-file-name name version))))
18300 (build-system emacs-build-system)
18301 (synopsis "Simple window layout management framework for emacs")
18302 (description "A window-layout management library that can split a frame
18303 or a window into some windows according to a layout recipe.")
18304 (license license:gpl3+)))
18305
18306 (define-public emacs-e2wm
18307 (package
18308 (name "emacs-e2wm")
18309 (version "1.4")
18310 (home-page "https://github.com/kiwanami/emacs-window-manager")
18311 (source (origin
18312 (method git-fetch)
18313 (uri (git-reference
18314 (url home-page)
18315 (commit (string-append "v" version))))
18316 (sha256
18317 (base32
18318 "12midsrx07pdrsr1qbl2rpi7xyhxqx08bkz7n7gf8vsmqkpfp56s"))
18319 (file-name (git-file-name name version))))
18320 (build-system emacs-build-system)
18321 (propagated-inputs
18322 `(("emacs-window-layout" ,emacs-window-layout)))
18323 (synopsis "Equilibrium Emacs Window Manager")
18324 (description "E2WM is a window manager for Emacs. It enables to
18325 customize the place of pop-up window, how the windows are split, how the
18326 buffers are located in the windows, keybinds to manipulate windows and
18327 buffers, etc. It also has plug-ins to help your Emacs life.")
18328 (license license:gpl3+)))
18329
18330 (define-public emacs-ctable
18331 (let ((commit "b8830d1ca95abb100a81bc32011bd17d5ecba000"))
18332 (package
18333 (name "emacs-ctable")
18334 (version (git-version "0.1.2" "1" commit))
18335 (home-page "https://github.com/kiwanami/emacs-ctable")
18336 (source (origin
18337 (method git-fetch)
18338 (uri (git-reference
18339 (url home-page)
18340 (commit commit)))
18341 (sha256
18342 (base32
18343 "0pg303pnqscrsbx9579hc815angszsgf9vpd2z2f8p4f4ka6a00h"))
18344 (file-name (git-file-name name version))))
18345 (build-system emacs-build-system)
18346 (synopsis "Table component for Emacs Lisp")
18347 (description "This program is a table component for Emacs Lisp. Other
18348 programs can use this table component for the application UI.")
18349 (license license:gpl3+))))
18350
18351 (define-public emacs-leetcode
18352 (let ((commit "8624496af9e105c3e07d88844b37ede87540d604")
18353 (revision "1"))
18354 (package
18355 (name "emacs-leetcode")
18356 (version (git-version "0" "1" commit))
18357 (home-page "https://github.com/ginqi7/leetcode-emacs.git")
18358 (source (origin
18359 (method git-fetch)
18360 (uri (git-reference
18361 (url "https://github.com/ginqi7/leetcode-emacs")
18362 (commit commit)))
18363 (sha256
18364 (base32
18365 "11pp7ydlmwrv7djf9mwk4xzn295xbmdnj5x13bfj5yjpjr89p531"))
18366 (file-name (git-file-name name version))))
18367 (build-system emacs-build-system)
18368 (propagated-inputs
18369 `(("emacs-names" ,emacs-names)
18370 ("emacs-ctable" ,emacs-ctable)))
18371 (synopsis "Solve and submit LeetCode problems from within Emacs")
18372 (description "This package provides an Emacs interface to LeetCode
18373 allowing users to log in and solve problems of their choice using Emacs.")
18374 (license license:unlicense))))
18375
18376 (define-public emacs-epc
18377 (let ((commit "e1bfa5ca163273859336e3cc89b4b6460f7f8cda"))
18378 (package
18379 (name "emacs-epc")
18380 (version (git-version "0.1.1" "1" commit))
18381 (home-page "https://github.com/kiwanami/emacs-epc")
18382 (source (origin
18383 (method git-fetch)
18384 (uri (git-reference
18385 (url home-page)
18386 (commit commit)))
18387 (sha256
18388 (base32
18389 "15nkrjgi64f829isfd6xrhl4zw8jirr8pkas7nisrbk1av868hx0"))
18390 (file-name (git-file-name name version))))
18391 (build-system emacs-build-system)
18392 (propagated-inputs
18393 `(("emacs-deferred" ,emacs-deferred)
18394 ("emacs-ctable" ,emacs-ctable)))
18395 (synopsis "RPC stack for Emacs Lisp")
18396 (description "This program is an asynchronous RPC stack for Emacs.
18397 Using this RPC stack, Emacs can communicate with the peer process
18398 smoothly. Because the protocol employs S-expression encoding and consists of
18399 asynchronous communications, the RPC response is fairly good.")
18400 (license license:gpl3+))))
18401
18402 (define-public emacs-edbi
18403 (let ((commit "6f50aaf4bde75255221f2292c7a4ad3fa9d918c0"))
18404 (package
18405 (name "emacs-edbi")
18406 (version (git-version "0.1.3" "1" commit))
18407 (home-page "https://github.com/kiwanami/emacs-edbi")
18408 (source (origin
18409 (method git-fetch)
18410 (uri (git-reference
18411 (url home-page)
18412 (commit commit)))
18413 (sha256
18414 (base32
18415 "0x0igyvdcm4863n7zndvcv6wgzwgn7324cbfjja6xd7r0k936zdy"))
18416 (file-name (git-file-name name version))))
18417 (build-system emacs-build-system)
18418 (inputs
18419 `(("perl" ,perl)
18420 ("perl-rpc-epc-service" ,perl-rpc-epc-service)
18421 ("perl-dbi" ,perl-dbi)
18422 ;; TODO: Adding support for perl-dbd-mysql and others would
18423 ;; dramatically increase the closure size. Make several packages?
18424 ("perl-dbd-sqlite" ,perl-dbd-sqlite)))
18425 (propagated-inputs
18426 `(("emacs-e2wm" ,emacs-e2wm)
18427 ("emacs-epc" ,emacs-epc)))
18428 (arguments
18429 `(#:include '("\\.el$" "\\.pl$")
18430 #:phases
18431 (modify-phases %standard-phases
18432 (add-after 'install 'patch-path
18433 (lambda* (#:key inputs outputs #:allow-other-keys)
18434 (let ((perl (assoc-ref inputs "perl"))
18435 (dir (string-append (assoc-ref outputs "out")
18436 "/share/emacs/site-lisp")))
18437 (substitute* (string-append dir "/edbi.el")
18438 (("\"perl\"") (string-append "\"" perl "/bin/perl\"")))
18439 (chmod (string-append dir "/edbi-bridge.pl") #o555)
18440 (wrap-program (string-append dir "/edbi-bridge.pl")
18441 `("PERL5LIB" ":" prefix (,(getenv "PERL5LIB"))))
18442 #t))))))
18443 (synopsis "Database Interface for Emacs Lisp")
18444 (description "This program connects the database server through Perl's
18445 DBI, and provides DB-accessing API and the simple management UI.")
18446 (license license:gpl3+))))
18447
18448 (define-public emacs-edbi-sqlite
18449 (let ((commit "52cb9ca1af7691b592f2cfd2f007847e7a4ccd5f"))
18450 (package
18451 (name "emacs-edbi-sqlite")
18452 (version (git-version "0.1.1" "1" commit))
18453 (home-page "https://github.com/proofit404/edbi-sqlite")
18454 (source (origin
18455 (method git-fetch)
18456 (uri (git-reference
18457 (url home-page)
18458 (commit commit)))
18459 (sha256
18460 (base32
18461 "1vll81386fx90lq5sy4rlxcik6mvw7zx5cc51f0yaca9bkcckp51"))
18462 (file-name (git-file-name name version))))
18463 (build-system emacs-build-system)
18464 (propagated-inputs
18465 `(("emacs-edbi" ,emacs-edbi)))
18466 (synopsis "Open SQLite files in Emacs")
18467 (description "This package is a convenience wrapper for @command{edbi}
18468 to open SQLite databases.")
18469 (license license:gpl3+))))
18470
18471 (define-public emacs-nix-mode
18472 (package
18473 (name "emacs-nix-mode")
18474 (version "1.4.1")
18475 (source
18476 (origin
18477 (method git-fetch)
18478 (uri (git-reference
18479 (url "https://github.com/NixOS/nix-mode.git")
18480 (commit (string-append "v" version))))
18481 (file-name (git-file-name name version))
18482 (sha256
18483 (base32 "04xpgg9nba5m1bl7ci5l456whcb8nfhsbvgxyx89bp0zqgr005q7"))))
18484 (build-system emacs-build-system)
18485 (inputs
18486 `(("emacs-company" ,emacs-company)
18487 ("emacs-json-mode" ,emacs-json-mode)
18488 ("emacs-mmm-mode" ,emacs-mmm-mode)))
18489 (home-page "https://github.com/NixOS/nix-mode")
18490 (synopsis "Emacs major mode for editing Nix expressions")
18491 (description "@code{nixos-mode} provides an Emacs major mode for editing
18492 Nix expressions. It supports syntax highlighting, indenting and refilling of
18493 comments.")
18494 (license license:lgpl2.1+)))
18495
18496 (define-public emacs-libmpdel
18497 (package
18498 (name "emacs-libmpdel")
18499 (version "1.1.2")
18500 (source (origin
18501 (method git-fetch)
18502 (uri (git-reference
18503 (url "https://gitea.petton.fr/mpdel/libmpdel.git")
18504 (commit (string-append "v" version))))
18505 (file-name (git-file-name name version))
18506 (sha256
18507 (base32
18508 "0dnjndpv6bmz5blfs75ynmbm32g23l4slg5p3941b1i94a08qzpy"))))
18509 (build-system emacs-build-system)
18510 (home-page "https://gitea.petton.fr/mpdel/libmpdel")
18511 (synopsis "Emacs library to communicate with Music Player Daemon (MPD)")
18512 (description
18513 "An Emacs library client to communicate with Music Player Daemon (MPD), a
18514 flexible, powerful, server-side application for playing music.")
18515 (license license:gpl3+)))
18516
18517 (define-public emacs-mpdel
18518 (package
18519 (name "emacs-mpdel")
18520 (version "1.0.0")
18521 (source
18522 (origin
18523 (method git-fetch)
18524 (uri (git-reference
18525 (url "https://gitea.petton.fr/mpdel/mpdel.git")
18526 (commit (string-append "v" version))))
18527 (file-name (git-file-name name version))
18528 (sha256
18529 (base32
18530 "0pyyvbzskr44dxbmlp3y0r6s459fd51cvwjmnjaqxfxflr5v891g"))))
18531 (build-system emacs-build-system)
18532 (inputs
18533 `(("emacs-libmpdel" ,emacs-libmpdel)))
18534 (home-page "https://gitea.petton.fr/mpdel/mpdel")
18535 (synopsis "Emacs user interface for Music Player Daemon (MPD)")
18536 (description
18537 "MPDel provides an Emacs user interface to control playback (play, pause,
18538 next, volume) and display and control the current playlist as well as your
18539 stored playlists.")
18540 (license license:gpl3+)))
18541
18542 (define-public emacs-vterm
18543 (let ((version "0")
18544 (revision "1")
18545 (commit "e63bd65eece7c5de3a534b7e2fdbe58256ec2da0"))
18546 (package
18547 (name "emacs-vterm")
18548 (version (git-version version revision commit))
18549 (source (origin
18550 (method git-fetch)
18551 (uri (git-reference
18552 (url "https://github.com/akermu/emacs-libvterm.git")
18553 (commit commit)))
18554 (file-name (git-file-name name version))
18555 (sha256
18556 (base32
18557 "0iq857w54qmazxh23fipz85fb9i6dav3f63g0ghpmi6mybfp6i5v"))))
18558 (build-system emacs-build-system)
18559 (arguments
18560 `(#:modules ((guix build emacs-build-system)
18561 ((guix build cmake-build-system) #:prefix cmake:)
18562 (guix build emacs-utils)
18563 (guix build utils))
18564 #:imported-modules (,@%emacs-build-system-modules
18565 (guix build cmake-build-system))
18566 #:phases
18567 (modify-phases %standard-phases
18568 (add-before 'add-source-to-load-path 'substitute-vterm-module-path
18569 (lambda* (#:key outputs #:allow-other-keys)
18570 (chmod "vterm.el" #o644)
18571 (emacs-substitute-sexps "vterm.el"
18572 ("(require 'vterm-module nil t)"
18573 `(module-load
18574 ,(string-append (assoc-ref outputs "out")
18575 "/lib/vterm-module.so"))))
18576 #t))
18577 (add-after 'build 'configure
18578 ;; Run cmake.
18579 (lambda* (#:key outputs #:allow-other-keys)
18580 ((assoc-ref cmake:%standard-phases 'configure)
18581 #:outputs outputs
18582 #:out-of-source? #f
18583 #:configure-flags '("-DUSE_SYSTEM_LIBVTERM=ON"))
18584 #t))
18585 (add-after 'configure 'make
18586 ;; Run make.
18587 (lambda* (#:key (make-flags '()) outputs #:allow-other-keys)
18588 ;; Compile the shared object file.
18589 (apply invoke "make" "all" make-flags)
18590 ;; Move the file into /lib.
18591 (install-file
18592 "vterm-module.so"
18593 (string-append (assoc-ref outputs "out") "/lib"))
18594 #t)))
18595 #:tests? #f))
18596 (native-inputs
18597 `(("cmake" ,cmake-minimal)
18598 ("libtool" ,libtool)
18599 ("libvterm" ,libvterm)))
18600 (home-page "https://github.com/akermu/emacs-libvterm")
18601 (synopsis "Emacs libvterm integration")
18602 (description "This package implements a bridge to @code{libvterm} to
18603 display a terminal in an Emacs buffer.")
18604 (license license:gpl3+))))
18605
18606 (define-public emacs-simple-mpc
18607 ;; There have been no releases.
18608 (let ((commit "bee8520e81292b4c7353e45b193f9a13b482f5b2")
18609 (revision "1"))
18610 (package
18611 (name "emacs-simple-mpc")
18612 (version (git-version "0" revision commit))
18613 (source
18614 (origin
18615 (method git-fetch)
18616 (uri (git-reference
18617 (url "https://github.com/jorenvo/simple-mpc.git")
18618 (commit commit)))
18619 (file-name (git-file-name name version))
18620 (sha256
18621 (base32
18622 "1ja06pv007cmzjjgka95jlg31k7d29jrih1yxyblsxv85s9sg21q"))))
18623 (build-system emacs-build-system)
18624 (propagated-inputs `(("emacs-s" ,emacs-s)))
18625 (home-page "https://github.com/jorenvo/simple-mpc")
18626 (synopsis "Simple Emacs frontend to mpc")
18627 (description "This package provides an Emacs major mode which acts as a
18628 front end to mpc, a client for the @dfn{Music Player Daemon} (MPD).")
18629 (license license:gpl3+))))
18630
18631 (define-public emacs-mkmcc-gnuplot-mode
18632 (package
18633 (name "emacs-mkmcc-gnuplot-mode")
18634 (version "1.2.0")
18635 (source
18636 (origin
18637 (method git-fetch)
18638 (uri (git-reference
18639 (url "https://github.com/mkmcc/gnuplot-mode")
18640 (commit "601f6392986f0cba332c87678d31ae0d0a496ce7")))
18641 (file-name (git-file-name name version))
18642 (sha256
18643 (base32
18644 "14f0yh1rjqc3337j4sbqzfb7pjim2c8a7wk1a73xkrdkmjn82vgb"))))
18645 (build-system emacs-build-system)
18646 (home-page "https://mkmcc.github.io/software/gnuplot-mode.html")
18647 (synopsis "Minimal emacs major mode for editing gnuplot scripts")
18648 (description "@code{emacs-mkmcc-gnuplot-mode} is a minimal emacs major
18649 mode for editing gnuplot scripts. It provides syntax highlighting,
18650 indentation and a command to plot the file.")
18651 (license license:gpl3+)))
18652
18653 (define-public emacs-cmake-font-lock
18654 (let ((commit "e0ceaaae19c13b66f781512e3295bfc6707b56f4")
18655 (revision "1"))
18656 (package
18657 (name "emacs-cmake-font-lock")
18658 (version (git-version "0.1.5" revision commit))
18659 (source (origin
18660 (method git-fetch)
18661 (uri (git-reference
18662 (url "https://github.com/Lindydancer/cmake-font-lock.git")
18663 (commit commit)))
18664 (file-name (git-file-name name version))
18665 (sha256
18666 (base32
18667 "03gsyn95dlmsn15bl353bphi3qy7ccn5bss3f7n97kf38bllh0yf"))))
18668 (build-system emacs-build-system)
18669 (native-inputs
18670 `(("emacs-faceup" ,emacs-faceup)))
18671 (arguments
18672 `(#:include (cons "^admin\\/" %default-include)))
18673 (home-page "https://github.com/Lindydancer/cmake-font-lock")
18674 (synopsis "Advanced type-aware syntax-highlighting for CMake")
18675 (description "This package highlights function arguments in CMake
18676 according to their use.")
18677 (license license:gpl3+))))
18678
18679 (define-public emacs-dtrt-indent
18680 (package
18681 (name "emacs-dtrt-indent")
18682 (version "0.8")
18683 (source (origin
18684 (method git-fetch)
18685 (uri (git-reference
18686 (url "https://github.com/jscheid/dtrt-indent")
18687 (commit version)))
18688 (file-name (git-file-name name version))
18689 (sha256
18690 (base32
18691 "0pgf0pvqd8k4yzhdn2df9lp0y8hmlm2ccrh07jivwlccs95pcz7z"))))
18692 (build-system emacs-build-system)
18693 (home-page "https://github.com/jscheid/dtrt-indent")
18694 (synopsis "Minor mode that guesses the indentation offset")
18695 (description "This package provides a minor mode that guesses the
18696 indentation offset originally used for creating source code files and
18697 transparently adjusts the corresponding settings in Emacs, making it more
18698 convenient to edit foreign files.")
18699 (license license:gpl2+)))
18700
18701 (define-public emacs-repo
18702 (package
18703 (name "emacs-repo")
18704 (version "0.1.3")
18705 (source (origin
18706 (method git-fetch)
18707 (uri (git-reference
18708 (url "https://github.com/canatella/repo-el")
18709 (commit version)))
18710 (file-name (git-file-name name version))
18711 (sha256
18712 (base32
18713 "0rbvcvm7bfr6ncji7cllfxyyr6x7n9fx863byp243phsj3n93adz"))))
18714 (build-system emacs-build-system)
18715 (native-inputs
18716 `(("emacs-el-mock" ,emacs-el-mock)
18717 ("ert-runner" ,emacs-ert-runner)))
18718 (propagated-inputs
18719 `(("emacs-f" ,emacs-f)
18720 ("magit" ,emacs-magit)))
18721 (home-page "https://github.com/canatella/repo-el")
18722 (synopsis "Emacs interface for the Google Repo tool")
18723 (description "This package provides integration of the Google Repo tool
18724 with emacs. It displays the output of the @code{repo status} command in a
18725 buffer and launches Magit from the status buffer for the project at point.")
18726 (license license:gpl3+)))
18727
18728 (define-public emacs-alect-themes
18729 (package
18730 (name "emacs-alect-themes")
18731 (version "0.9")
18732 (source (origin
18733 (method git-fetch)
18734 (uri (git-reference
18735 (url "https://github.com/alezost/alect-themes")
18736 (commit (string-append "v" version))))
18737 (file-name (git-file-name name version))
18738 (sha256
18739 (base32
18740 "0nffxpdm0sa7bynwi0rmlwpc4qmvbda5ankhzz7fmk4ap9fkjxv9"))))
18741 (build-system emacs-build-system)
18742 (home-page "https://github.com/alezost/alect-themes")
18743 (synopsis "Low contrast, light, dark and black color theme for Emacs")
18744 (description "@code{emacs-alect-themes} provides configurable light, dark
18745 and black color themes for Emacs. The themes are intended to be used with
18746 GUI.")
18747 (license license:gpl3+)))
18748
18749 (define-public emacs-google-c-style
18750 (let ((commit "6271f3f473ceb3a7fef99388a3040903b1a145f1")
18751 (revision "0"))
18752 (package
18753 (name "emacs-google-c-style")
18754 (version (git-version "0.1" revision commit))
18755 (source (origin
18756 (method git-fetch)
18757 (uri (git-reference
18758 (url "https://github.com/google/styleguide")
18759 (commit commit)))
18760 (file-name (git-file-name name version))
18761 (sha256
18762 (base32
18763 "1jghyyasdl15c4gaqaxmdn43am63k6bykn5ab83f1ahv9zi1krxk"))))
18764 (build-system emacs-build-system)
18765 (home-page "https://github.com/google/styleguide")
18766 (synopsis "Emacs settings file for Google C/C++ style")
18767 (description "@code{emacs-google-c-style} provides an Emacs settings
18768 file for Google C and C++ style.")
18769 (license license:gpl1+))))
18770
18771 (define-public emacs-redshank
18772 (let ((commit "f98e68f532e622bcd464292ca4a9cf5fbea14ebb")
18773 (revision "1"))
18774 (package
18775 (name "emacs-redshank")
18776 (version (git-version "0.1" revision commit))
18777 (source (origin
18778 (method git-fetch)
18779 (uri (git-reference
18780 (url "http://www.foldr.org/~michaelw/projects/redshank.git")
18781 (commit commit)))
18782 (file-name (git-file-name name version))
18783 (sha256
18784 (base32
18785 "1jdkgvd5xy9hl5q611jwah2n05abjp7qcy9sj4k1z11x0ii62b6p"))))
18786 (build-system emacs-build-system)
18787 (propagated-inputs
18788 `(("emacs-paredit" ,emacs-paredit)))
18789 (home-page "http://www.foldr.org/~michaelw/emacs/redshank/")
18790 (synopsis "Common Lisp Editing Extensions (for Emacs)")
18791 (description "Redshank is a collection of code-wrangling Emacs macros
18792 mostly geared towards Common Lisp, but some are useful for other Lisp
18793 dialects, too. Redshank's code transformations aim to be expression-based (as
18794 opposed to character-based).")
18795 (license license:gpl1+))))
18796
18797 (define-public emacs-disk-usage
18798 (package
18799 (name "emacs-disk-usage")
18800 (version "1.3.3")
18801 (source
18802 (origin
18803 (method git-fetch)
18804 (uri (git-reference
18805 (url "https://gitlab.com/Ambrevar/emacs-disk-usage.git")
18806 (commit version)))
18807 (file-name (git-file-name name version))
18808 (sha256
18809 (base32
18810 "0hv2gsd8k5fbjgckgiyisq4rn1i7y4rchbjy8kmixjv6mx563bll"))))
18811 (build-system emacs-build-system)
18812 (home-page "https://gitlab.com/Ambrevar/emacs-disk-usage")
18813 (synopsis "Sort and browse disk usage listings with Emacs")
18814 (description "Disk Usage is a file system analyzer: it offers a tabulated
18815 view of file listings sorted by size. Directory sizes are computed
18816 recursively. The results are cached for speed.")
18817 (license license:gpl3+)))
18818
18819 (define-public emacs-orgit
18820 (package
18821 (name "emacs-orgit")
18822 (version "1.5.3")
18823 (home-page "https://github.com/magit/orgit")
18824 (source (origin
18825 (method git-fetch)
18826 (uri (git-reference
18827 (url home-page)
18828 (commit (string-append "v" version))))
18829 (file-name (git-file-name name version))
18830 (sha256
18831 (base32
18832 "1ywavzki510rslsgfm0cnn3mlh644p61ha2nfb715xhkg7cd3j9g"))))
18833 (build-system emacs-build-system)
18834 (propagated-inputs
18835 `(("emacs-dash" ,emacs-dash)
18836 ("emacs-magit" ,emacs-magit)))
18837 (synopsis "Support for Org links to Magit buffers")
18838 (description "This package defines several Org link types, which can be
18839 used to link to certain Magit buffers. Use the command
18840 @command{org-store-link} while such a buffer is current to store a link.
18841 Later you can insert it into an Org buffer using the command
18842 @code{org-insert-link}.")
18843 (license license:gpl3+)))
18844
18845 (define-public emacs-amx
18846 (package
18847 (name "emacs-amx")
18848 (version "3.3")
18849 (source
18850 (origin
18851 (method git-fetch)
18852 (uri (git-reference
18853 (url "https://github.com/DarwinAwardWinner/amx")
18854 (commit (string-append "v" version))))
18855 (file-name (git-file-name name version))
18856 (sha256
18857 (base32 "0ikjzs119g57cwh2v3jmy63lggqc0ib99q5gsl93slkk4y2ihavw"))))
18858 (build-system emacs-build-system)
18859 (propagated-inputs
18860 `(("emacs-s" ,emacs-s)))
18861 (home-page "https://github.com/DarwinAwardWinner/amx")
18862 (synopsis "Alternative M-x interface for Emacs")
18863 (description "Amx is an alternative interface for M-x in Emacs. It
18864 provides several enhancements over the ordinary
18865 @code{execute-extended-command}, such as prioritizing your most-used commands
18866 in the completion list and showing keyboard shortcuts, and it supports several
18867 completion systems for selecting commands, such as Ido and Ivy.")
18868 (license license:gpl3+)))
18869
18870 (define-public emacs-lorem-ipsum
18871 (let ((commit "4b39f6fed455d67f635b3837cf5668bf74d0f6cd"))
18872 (package
18873 (name "emacs-lorem-ipsum")
18874 (version (git-version "0.2" "1" commit))
18875 (home-page "https://github.com/jschaf/emacs-lorem-ipsum/")
18876 (source (origin
18877 (method git-fetch)
18878 (uri (git-reference
18879 (url home-page)
18880 (commit commit)))
18881 (file-name (git-file-name name version))
18882 (sha256
18883 (base32
18884 "0a3b18p3vdjci89prsgdzjnfxsl8p67vjhf8ai4qdng7zvh50lir"))))
18885 (build-system emacs-build-system)
18886 (synopsis "Insert dummy pseudo Latin text in Emacs")
18887 (description "This package provides convenience functions to insert
18888 dummy Latin text into a buffer. This can be useful if you need to produce
18889 paragraphs or pages of text for testing purposes.")
18890 (license license:gpl3+))))
18891
18892 (define-public emacs-lisp-extra-font-lock
18893 (let ((commit "4605eccbe1a7fcbd3cacf5b71249435413b4db4f"))
18894 (package
18895 (name "emacs-lisp-extra-font-lock")
18896 (version (git-version "0.0.6" "1" commit))
18897 (home-page "https://github.com/Lindydancer/lisp-extra-font-lock")
18898 (source (origin
18899 (method git-fetch)
18900 (uri (git-reference
18901 (url home-page)
18902 (commit commit)))
18903 (file-name (git-file-name name version))
18904 (sha256
18905 (base32
18906 "152vcp3mdlv33jf5va4rinl1d0k960gnfhbrqqrafazgx9j3ya8w"))))
18907 (build-system emacs-build-system)
18908 (synopsis "Highlight bound variables and quoted expressions in Emacs")
18909 (description "This package highlight the location where local variables
18910 is created (bound, for example, by let) as well as quoted and backquoted
18911 constant expressions.")
18912 (license license:gpl3+))))
18913
18914 (define-public emacs-docker-tramp
18915 (package
18916 (name "emacs-docker-tramp")
18917 (version "0.1")
18918 (source
18919 (origin
18920 (method git-fetch)
18921 (uri (git-reference
18922 (url "https://github.com/emacs-pe/docker-tramp.el")
18923 (commit (string-append "v" version))))
18924 (file-name (git-file-name name version))
18925 (sha256
18926 (base32
18927 "0lxvzmfg52fhxrhbvp92zwp7cv4i1rlxnkyyzgngj3sjm7y60yvg"))))
18928 (build-system emacs-build-system)
18929 (home-page "https://github.com/emacs-pe/docker-tramp.el")
18930 (synopsis "TRAMP integration for docker containers")
18931 (description
18932 "This package provides a TRAMP method for Docker containers.")
18933 (license license:gpl3+)))
18934
18935 (define-public emacs-docker
18936 (package
18937 (name "emacs-docker")
18938 (version "1.3.0")
18939 (source (origin
18940 (method git-fetch)
18941 (uri (git-reference
18942 (url "https://github.com/Silex/docker.el")
18943 (commit version)))
18944 (file-name (git-file-name name version))
18945 (sha256
18946 (base32
18947 "1g8r1faqp0z0vqp9qrl8m84pa0v2ddvc91klphdkfmldwv7rfipw"))))
18948 (inputs
18949 `(("emacs-undercover" ,emacs-undercover)))
18950 (propagated-inputs
18951 `(("emacs-dash" ,emacs-dash)
18952 ("emacs-docker-tramp" ,emacs-docker-tramp)
18953 ("emacs-magit-popup" ,emacs-magit-popup)
18954 ("emacs-s" ,emacs-s)
18955 ("emacs-tablist" ,emacs-tablist)
18956 ("emacs-json-mode" ,emacs-json-mode)))
18957 (arguments
18958 `(#:phases
18959 (modify-phases %standard-phases
18960 (delete 'check)))) ;no tests
18961 (build-system emacs-build-system)
18962 (home-page "https://github.com/Silex/docker.el")
18963 (synopsis "Manage docker from Emacs")
18964 (description "This package provides an Emacs interface for Docker.")
18965 (license license:gpl3+)))
18966
18967 (define-public emacs-dockerfile-mode
18968 ;; Latest upstream release is too old.
18969 (let ((commit "ed73e82dcc636dad00d1a8c3b32a49136d25ee60"))
18970 (package
18971 (name "emacs-dockerfile-mode")
18972 (version (git-version "1.2" "2" commit))
18973 (source
18974 (origin
18975 (method git-fetch)
18976 (uri (git-reference
18977 (url "https://github.com/spotify/dockerfile-mode.git")
18978 (commit commit)))
18979 (file-name (git-file-name name version))
18980 (sha256
18981 (base32
18982 "0lri2rnx4lr23vqfphkpq39cd4xfgzkvz1xsz7ccdvl4qj0k7fdl"))))
18983 (build-system emacs-build-system)
18984 (propagated-inputs
18985 `(("emacs-s" ,emacs-s)))
18986 (home-page "https://github.com/spotify/dockerfile-mode")
18987 (synopsis "Major mode for editing Dockerfile")
18988 (description
18989 "This package provides a major mode @code{dockerfile-mode} for use with
18990 the standard @code{Dockerfile} file format.")
18991 (license license:asl2.0))))
18992
18993 (define-public emacs-lsp-mode
18994 (package
18995 (name "emacs-lsp-mode")
18996 (version "6.3.1")
18997 (source (origin
18998 (method git-fetch)
18999 (uri (git-reference
19000 (url "https://github.com/emacs-lsp/lsp-mode.git")
19001 (commit version)))
19002 (file-name (git-file-name name version))
19003 (sha256
19004 (base32
19005 "125rpmhlyd6wmq7p71j54x3rzmk07vn1hdcvvdjjip5481raxcwx"))))
19006 (build-system emacs-build-system)
19007 (propagated-inputs
19008 `(("emacs-dash" ,emacs-dash)
19009 ("emacs-f" ,emacs-f)
19010 ("emacs-ht" ,emacs-ht)
19011 ("emacs-markdown-mode" ,emacs-markdown-mode)
19012 ("emacs-spinner" ,emacs-spinner)
19013 ("emacs-hydra" ,emacs-hydra)))
19014 (home-page "https://github.com/emacs-lsp/lsp-mode")
19015 (synopsis "Emacs client and library for the Language Server Protocol")
19016 (description "@code{LSP-mode} is a client and library implementation for
19017 the Language Server Protocol. This mode aims to provide an IDE-like
19018 experience by providing optional integration with other popular Emacs packages
19019 like @code{company}, @code{flycheck}, and @code{projectile}.")
19020 (license license:gpl3+)))
19021
19022 (define-public emacs-pfuture
19023 (let ((commit "368254ee30692c709400db413c347e18e76a8a55"))
19024 (package
19025 (name "emacs-pfuture")
19026 (version (git-version "1.6" "1" commit))
19027 (source (origin
19028 (method git-fetch)
19029 (uri (git-reference
19030 (url "https://github.com/Alexander-Miller/pfuture.git")
19031 (commit commit)))
19032 (file-name (git-file-name name version))
19033 (sha256
19034 (base32
19035 "096raqpjx84njws85r7pqq1wi9w9bjwkr0ga1mbbhlna1mfn3mg4"))))
19036 (build-system emacs-build-system)
19037 (home-page
19038 "https://github.com/Alexander-Miller/pfuture")
19039 (synopsis "Simple wrapper around asynchronous processes for Emacs")
19040 (description "This package provides a simple wrapper around asynchronous
19041 processes for Emacs")
19042 (license license:gpl3+))))
19043
19044 (define-public emacs-treemacs
19045 (package
19046 (name "emacs-treemacs")
19047 (version "2.6")
19048 (source (origin
19049 (method git-fetch)
19050 (uri (git-reference
19051 (url "https://github.com/Alexander-Miller/treemacs.git")
19052 (commit version)))
19053 (file-name (git-file-name name version))
19054 (sha256
19055 (base32
19056 "13gs8g05xj7np3i2q3bbxg6zgdiazzn1spxii4x0cyd4pg83c0i1"))))
19057 (build-system emacs-build-system)
19058 (propagated-inputs
19059 `(("emacs-dash" ,emacs-dash)
19060 ("emacs-s" ,emacs-s)
19061 ("emacs-f" ,emacs-f)
19062 ("emacs-ace-window" ,emacs-ace-window)
19063 ("emacs-pfuture" ,emacs-pfuture)
19064 ("emacs-hydra" ,emacs-hydra)
19065 ("emacs-ht" ,emacs-ht)))
19066 (native-inputs
19067 `(("emacs-buttercup" ,emacs-buttercup)
19068 ("emacs-el-mock" ,emacs-el-mock)))
19069 (inputs
19070 `(("python" ,python)))
19071 (arguments
19072 `(#:tests? #t ;TODO: Investigate ‘treemacs--parse-collapsed-dirs’ test failure.
19073 #:phases
19074 (modify-phases %standard-phases
19075 (add-after 'unpack 'fix-makefile
19076 (lambda _
19077 (substitute* "Makefile"
19078 (("@\\$\\(CASK\\) exec ") ""))
19079 #t))
19080 (add-after 'fix-makefile 'chdir-elisp
19081 ;; Elisp directory is not in root of the source.
19082 (lambda _
19083 (chdir "src/elisp")))
19084 (replace 'check
19085 (lambda _
19086 (with-directory-excursion "../.." ;treemacs root
19087 (chmod "test/test-treemacs.el" #o644)
19088 (emacs-substitute-sexps "test/test-treemacs.el"
19089 ("(describe \"treemacs--parse-collapsed-dirs\""
19090 ""))
19091 (invoke "make" "test"))))
19092 (add-before 'install 'patch-paths
19093 (lambda* (#:key inputs outputs #:allow-other-keys)
19094 (with-directory-excursion "../.." ;treemacs root
19095 (chmod "src/elisp/treemacs-core-utils.el" #o644)
19096 (emacs-substitute-variables "src/elisp/treemacs-core-utils.el"
19097 ("treemacs-dir"
19098 (string-append (assoc-ref outputs "out") "/")))
19099 (chmod "src/elisp/treemacs-icons.el" #o644)
19100 (substitute* "src/elisp/treemacs-icons.el"
19101 (("icons/default") "share/emacs-treemacs/images"))
19102 (chmod "src/elisp/treemacs-customization.el" #o644)
19103 (emacs-substitute-variables "src/elisp/treemacs-customization.el"
19104 ("treemacs-python-executable"
19105 (string-append (assoc-ref inputs "python") "/bin/python3")))
19106 (chmod "src/elisp/treemacs-async.el" #o644)
19107 (substitute* "src/elisp/treemacs-async.el"
19108 (("src/scripts") (string-append "share/" ,name "/scripts"))))
19109 #t))
19110 (add-after 'install 'install-data
19111 (lambda* (#:key outputs #:allow-other-keys)
19112 (let ((out (assoc-ref outputs "out")))
19113 (with-directory-excursion "../.." ;treemacs root
19114 (copy-recursively "icons/default"
19115 (string-append out "/share/" ,name "/images"))
19116 (copy-recursively
19117 "src/scripts"
19118 (string-append out "/share/" ,name "/scripts"))
19119 #t)))))))
19120 (home-page "https://github.com/Alexander-Miller/treemacs")
19121 (synopsis "Emacs tree style file explorer")
19122 (description "Powerful and flexible file tree project explorer.")
19123 (license license:gpl3+)))
19124
19125 (define-public emacs-treemacs-extra
19126 (package
19127 (inherit emacs-treemacs)
19128 (name "emacs-treemacs-extra")
19129 (propagated-inputs
19130 `(,@(package-propagated-inputs emacs-treemacs)
19131 ("emacs-evil" ,emacs-evil)
19132 ("emacs-magit" ,emacs-magit)
19133 ("emacs-projectile" ,emacs-projectile)))
19134 (arguments
19135 (substitute-keyword-arguments
19136 (package-arguments emacs-treemacs)
19137 ((#:phases phases)
19138 `(modify-phases ,phases
19139 (add-after 'chdir-elisp 'copy-extra
19140 (lambda _
19141 (copy-recursively "../extra" ".")))))))))
19142
19143 (define-public emacs-lsp-java
19144 (package
19145 (name "emacs-lsp-java")
19146 (version "2.2")
19147 (source (origin
19148 (method git-fetch)
19149 (uri (git-reference
19150 (url "https://github.com/emacs-lsp/lsp-java.git")
19151 (commit version)))
19152 (file-name (git-file-name name version))
19153 (sha256
19154 (base32
19155 "0hcnvbyaqyypgby1bfj4zbrbq97amk8hfx0sj4w73rl46yf4jk3j"))))
19156 (build-system emacs-build-system)
19157 (propagated-inputs
19158 `(("emacs-lsp-mode" ,emacs-lsp-mode)
19159 ("emacs-markdown-mode" ,emacs-markdown-mode)
19160 ("emacs-dash" ,emacs-dash)
19161 ("emacs-f" ,emacs-f)
19162 ("emacs-ht" ,emacs-ht)
19163 ("emacs-request" ,emacs-request)
19164 ("emacs-treemacs" ,emacs-treemacs)))
19165 (home-page "https://github.com/emacs-lsp/lsp-java/")
19166 (synopsis "Java support for lsp-mode")
19167 (description "Emacs Java IDE using Eclipse JDT Language Server.")
19168 (license license:gpl3+)))
19169
19170 (define-public emacs-lsp-ui
19171 (package
19172 (name "emacs-lsp-ui")
19173 (version "6.2")
19174 (source (origin
19175 (method git-fetch)
19176 (uri (git-reference
19177 (url "https://github.com/emacs-lsp/lsp-ui.git")
19178 (commit version)))
19179 (file-name (git-file-name name version))
19180 (sha256
19181 (base32
19182 "024753bi0p1jyjhw7wk8k6s16kbwab5ar4cfasvbn8g08acf293b"))))
19183 (build-system emacs-build-system)
19184 (propagated-inputs
19185 `(("emacs-dash" ,emacs-dash)
19186 ("emacs-lsp-mode" ,emacs-lsp-mode)
19187 ("emacs-markdown-mode" ,emacs-markdown-mode)
19188 ("emacs-flycheck" ,emacs-flycheck)))
19189 (home-page "https://github.com/emacs-lsp/lsp-ui")
19190 (synopsis "User interface extensions for @code{lsp-mode}")
19191 (description
19192 "@code{LSP-ui} contains several enhancements and integrations for
19193 @code{lsp-mode}, such as visual flychecking, displaying references in-line,
19194 and code peeking.")
19195 (license license:gpl3+)))
19196
19197 (define-public emacs-lsp-lua-emmy
19198 (let ((commit "ab53fb2a8b8942804eb75bab5624fd19f1d360bf"))
19199 (package
19200 (name "emacs-lsp-lua-emmy")
19201 (version (git-version "0.1.0" "1" commit))
19202 (source (origin
19203 (method git-fetch)
19204 (uri (git-reference
19205 (url "https://github.com/phenix3443/lsp-lua-emmy.git")
19206 (commit commit)))
19207 (file-name (git-file-name name version))
19208 (sha256
19209 (base32
19210 "0rbizis73n1w5ig07fj1han74chbc1zpbp5bn37rj0gz608aqka8"))))
19211 (build-system emacs-build-system)
19212 (propagated-inputs
19213 `(("emacs-lsp-mode" ,emacs-lsp-mode)))
19214 (home-page "https://github.com/phenix3443/lsp-lua-emmy/")
19215 (synopsis "Lua support in @code{lsp-mode} client for Emacs")
19216 (description "This package provides a Lua language support in
19217 @code{lsp-mode} client for Emacs.")
19218 (license license:gpl3+))))
19219
19220 (define-public emacs-lsp-ivy
19221 (let ((commit "caf1e1d7e22ed0b5fe18dd508d1a6f83dd163288")
19222 (revision "2"))
19223 (package
19224 (name "emacs-lsp-ivy")
19225 (version (git-version "0.1" revision commit))
19226 (source (origin
19227 (method git-fetch)
19228 (uri (git-reference
19229 (url "https://github.com/emacs-lsp/lsp-ivy.git")
19230 (commit commit)))
19231 (file-name (git-file-name name version))
19232 (sha256
19233 (base32
19234 "084ds4qhzhivfnicy3h7z4mblxgcqx8pfnkbjr9qjrfng7cisy4z"))))
19235 (build-system emacs-build-system)
19236 (propagated-inputs
19237 `(("emacs-ivy" ,emacs-ivy)
19238 ("emacs-lsp-mode" ,emacs-lsp-mode)
19239 ("emacs-dash" ,emacs-dash)))
19240 (home-page "https://github.com/emacs-lsp/lsp-ivy")
19241 (synopsis "Provide LSP-enhanced completion for symbols")
19242 (description
19243 "This package enhances @code{ivy} with completion for symbols from
19244 workspaces with a LSP-compliant server running.")
19245 (license license:gpl3+))))
19246
19247 (define-public emacs-helm-lsp
19248 (let ((commit "3a58ca4cfd94b9ab1e15e819d3b16ef568e8889b")
19249 (revision "1"))
19250 (package
19251 (name "emacs-helm-lsp")
19252 (version (git-version "0.1" revision commit))
19253 (source (origin
19254 (method git-fetch)
19255 (uri (git-reference
19256 (url "https://github.com/emacs-lsp/helm-lsp.git")
19257 (commit commit)))
19258 (file-name (git-file-name name version))
19259 (sha256
19260 (base32
19261 "0wh5zai3s17ss2q8wcdd6d87hv1h3nbyrxxs4js9cas8m6y2ssjv"))))
19262 (build-system emacs-build-system)
19263 (propagated-inputs
19264 `(("emacs-helm" ,emacs-helm)
19265 ("emacs-lsp-mode" ,emacs-lsp-mode)
19266 ("emacs-dash" ,emacs-dash)))
19267 (home-page "https://github.com/emacs-lsp/helm-lsp")
19268 (synopsis "Provide LSP-enhanced completion for symbols")
19269 (description
19270 "This package enhances @code{helm} with completion for symbols from
19271 workspaces with a LSP-compliant server running.")
19272 (license license:gpl3+))))
19273
19274 (define-public emacs-helm-notmuch
19275 (package
19276 (name "emacs-helm-notmuch")
19277 (version "1.2")
19278 (home-page "https://github.com/emacs-helm/helm-notmuch/")
19279 (source (origin
19280 (method git-fetch)
19281 (uri (git-reference
19282 (url home-page)
19283 (commit version)))
19284 (file-name (git-file-name name version))
19285 (sha256
19286 (base32
19287 "1k038dbdpaa411gl4071x19fklhnizhr346plxw23lsnxir9dhqc"))))
19288 (build-system emacs-build-system)
19289 (propagated-inputs
19290 `(("emacs-helm" ,emacs-helm)
19291 ("notmuch" ,notmuch)))
19292 (synopsis "Search emails with Emacs Notmuch and Helm")
19293 (description
19294 "This package can be used to search emails in Emacs, searching result
19295 displays as you type thanks to Helm, though @command{notmuch-search} does the
19296 real search.")
19297 (license license:gpl3+)))
19298
19299 (define-public emacs-elmacro
19300 (let ((commit "89b9b0feabafd01fee48111d67131c4c9b5fed9a"))
19301 (package
19302 (name "emacs-elmacro")
19303 (version (git-version "1.1.0" "1" commit))
19304 (home-page "https://github.com/Silex/elmacro")
19305 (source (origin
19306 (method git-fetch)
19307 (uri (git-reference
19308 (url home-page)
19309 (commit commit)))
19310 (file-name (git-file-name name version))
19311 (sha256
19312 (base32
19313 "06wkzafh6vbcjf0m3sl253mgcq32p8cdv7vsfmyx51baa36938ha"))))
19314 (build-system emacs-build-system)
19315 (propagated-inputs
19316 `(("emacs-s" ,emacs-s)
19317 ("emacs-dash" ,emacs-dash)))
19318 (synopsis "Convert keyboard macros to Emacs Lisp")
19319 (description
19320 "This package displays keyboard macros or latest interactive commands
19321 as Emacs Lisp.")
19322 (license license:gpl3+))))
19323
19324 (define-public emacs-transient
19325 (let ((revision "1")
19326 (commit "a6e4cced303b3febd59412b24a97eaf1e855e6d7"))
19327 (package
19328 (name "emacs-transient")
19329 (version (git-version "0.2.0" revision commit))
19330 (source (origin
19331 (method git-fetch)
19332 (uri (git-reference
19333 (url "https://github.com/magit/transient")
19334 (commit commit)))
19335 (file-name (git-file-name name version))
19336 (sha256
19337 (base32
19338 "01xsw9sxr50valc2q590ngy3ra2ll01p39l9cbzvqqz6mxyymxmd"))))
19339 (build-system emacs-build-system)
19340 (arguments
19341 `(#:tests? #f ;no test suite
19342 #:phases
19343 (modify-phases %standard-phases
19344 (add-after 'unpack 'build-info-manual
19345 (lambda _
19346 (invoke "make" "info")
19347 ;; Move the info file to lisp so that it gets installed by the
19348 ;; emacs-build-system.
19349 (rename-file "docs/transient.info" "lisp/transient.info")))
19350 (add-after 'build-info-manual 'enter-lisp-directory
19351 (lambda _
19352 (chdir "lisp")
19353 #t)))))
19354 (native-inputs
19355 `(("texinfo" ,texinfo)))
19356 (propagated-inputs
19357 `(("dash" ,emacs-dash)))
19358 (home-page "https://magit.vc/manual/transient")
19359 (synopsis "Transient commands in Emacs")
19360 (description "Taking inspiration from prefix keys and prefix arguments
19361 in Emacs, Transient implements a similar abstraction involving a prefix
19362 command, infix arguments and suffix commands. We could call this abstraction
19363 a \"transient command\", but because it always involves at least two
19364 commands (a prefix and a suffix) we prefer to call it just a \"transient\".")
19365 (license license:gpl3+))))
19366
19367 (define-public emacs-forge
19368 (let ((commit "09bf8adc9c9afb492632e612f51f39e1cc15fca0"))
19369 (package
19370 (name "emacs-forge")
19371 (version (git-version "0.1.0" "4" commit))
19372 (source
19373 (origin
19374 (method git-fetch)
19375 (uri (git-reference
19376 (url "https://github.com/magit/forge.git")
19377 (commit commit)))
19378 (file-name (git-file-name name version))
19379 (sha256
19380 (base32
19381 "148h1rvmfmxyrfy2q5l0vzblr7lpsyw1si30hfwhzsj8fvj21qcr"))))
19382 (build-system emacs-build-system)
19383 (native-inputs
19384 `(("texinfo" ,texinfo)))
19385 (propagated-inputs
19386 `(("emacs-closql" ,emacs-closql)
19387 ("emacs-dash" ,emacs-dash)
19388 ("emacs-emacsql-sqlite" ,emacs-emacsql)
19389 ("emacs-ghub" ,emacs-ghub)
19390 ("emacs-let-alist" ,emacs-let-alist)
19391 ("emacs-magit" ,emacs-magit)
19392 ("emacs-markdown-mode" ,emacs-markdown-mode)
19393 ("emacs-transient" ,emacs-transient)))
19394 (arguments
19395 `(#:tests? #f ;no tests
19396 #:phases
19397 (modify-phases %standard-phases
19398 (add-after 'unpack 'build-info-manual
19399 (lambda _
19400 (invoke "make" "info")
19401 ;; Move the info file to lisp so that it gets installed by the
19402 ;; emacs-build-system.
19403 (rename-file "docs/forge.info" "lisp/forge.info")))
19404 (add-after 'build-info-manual 'chdir-lisp
19405 (lambda _
19406 (chdir "lisp")
19407 #t)))))
19408 (home-page "https://github.com/magit/forge/")
19409 (synopsis "Access Git forges from Magit")
19410 (description "Work with Git forges, such as Github and Gitlab, from the
19411 comfort of Magit and the rest of Emacs.")
19412 (license license:gpl3+))))
19413
19414 (define-public emacs-matcha
19415 (let ((commit "c7df5cf5cdac9ae369e241342389ccda0205eab9"))
19416 (package
19417 (name "emacs-matcha")
19418 (version (git-version "0.0.1" "1" commit)) ;no upstream release
19419 (source (origin
19420 (method git-fetch)
19421 (uri (git-reference
19422 (url "https://github.com/jojojames/matcha.git")
19423 (commit commit)))
19424 (file-name (git-file-name name version))
19425 (sha256
19426 (base32
19427 "1lfnh1glg6al677m7ci0x8g5wjdhjxlfl3nv1f1ppsw4dpnwsj9b"))))
19428 (propagated-inputs
19429 `(("emacs-hydra" ,emacs-hydra)
19430 ("emacs-transient" ,emacs-transient)))
19431 (build-system emacs-build-system)
19432 (home-page "https://github.com/jojojames/matcha/")
19433 (synopsis "Collection of hydras with a generic interface to launch them")
19434 (description "Matcha provides a collection of transients for various
19435 packages with a consistent way to use them.")
19436 (license license:gpl3+))))
19437
19438 (define-public emacs-undo-propose-el
19439 (let ((commit "f80baee566807d733fbacbab08a897bcd62579c3")
19440 (revision "3"))
19441 (package
19442 (name "emacs-undo-propose-el")
19443 (version (git-version "3.0.0" revision commit))
19444 (source
19445 (origin
19446 (method git-fetch)
19447 (uri (git-reference
19448 (url "https://github.com/jackkamm/undo-propose-el")
19449 (commit commit)))
19450 (file-name (git-file-name name version))
19451 (sha256
19452 (base32
19453 "00rqz63bhh66q78l646q3w16gydygj8h4d8np0dpbifgzciak90b"))))
19454 (build-system emacs-build-system)
19455 (arguments
19456 `(#:tests? #t
19457 #:test-command '("make" "test")))
19458 (home-page "https://github.com/jackkamm/undo-propose-el")
19459 (synopsis "Simple and safe navigation of @code{undo} history")
19460 (description "This package permits navigation of @code{undo} history in a
19461 temporary buffer, which is read-only save for @code{undo} commands, and
19462 subsequent committal of a chain of @code{undo} commands as a single edit in
19463 the @code{undo} history.")
19464 (license license:gpl3+))))
19465
19466 (define-public emacs-elisp-docstring-mode
19467 (let ((commit "f512e509dd690f65133e55563ebbfd2dede5034f")
19468 (version "0.0.1")
19469 (revision "1"))
19470 (package
19471 (name "emacs-elisp-docstring-mode")
19472 (version (git-version version revision commit))
19473 (source
19474 (origin
19475 (method git-fetch)
19476 (uri (git-reference
19477 (url "https://github.com/Fuco1/elisp-docstring-mode")
19478 (commit commit)))
19479 (file-name (git-file-name name version))
19480 (sha256
19481 (base32
19482 "0al8m75p359h4n82rf0dsl22qfdg9cwwywn5pn7x6gb96c7qrqaa"))))
19483 (build-system emacs-build-system)
19484 (home-page "https://github.com/Fuco1/elisp-docstring-mode")
19485 (synopsis "Major mode for editing Emacs Lisp docstrings")
19486 (description "This package provides font lock and automatic escaping and
19487 unescaping of quotes.")
19488 (license license:gpl3+))))
19489
19490 (define-public emacs-vimrc-mode
19491 (let ((commit "13bc150a870d5d4a95f1111e4740e2b22813c30e")
19492 (version "0.3.1")
19493 (revision "1"))
19494 (package
19495 (name "emacs-vimrc-mode")
19496 (version (git-version version revision commit))
19497 (source
19498 (origin
19499 (method git-fetch)
19500 (uri (git-reference
19501 (url "https://github.com/mcandre/vimrc-mode")
19502 (commit commit)))
19503 (file-name (git-file-name name version))
19504 (sha256
19505 (base32
19506 "0026dqs3hwygk2k2xfra90w5sfnxrfj7l69jz7sq5glavbf340pk"))))
19507 (build-system emacs-build-system)
19508 (home-page "https://github.com/mcandre/vimrc-mode")
19509 (synopsis "Major mode for Vimscript")
19510 (description "This package provides font lock and @code{beginning-} and
19511 @code{end-of-defun} functions for Vimscript files.")
19512 (license license:gpl3+))))
19513
19514 (define-public emacs-flycheck-elm
19515 (let ((revision "0")
19516 (commit "1b60050efd4729bfba548f3e5adbcb58436667cb"))
19517 (package
19518 (name "emacs-flycheck-elm")
19519 (version (git-version "0" revision commit))
19520 (source
19521 (origin
19522 (method git-fetch)
19523 (uri
19524 (git-reference
19525 (url "https://github.com/bsermons/flycheck-elm")
19526 (commit commit)))
19527 (file-name (git-file-name name version))
19528 (sha256
19529 (base32 "1kjms9d2c98ffd1qxs879qhg0n4jzic0r5kni9y4gz3v09ww8zms"))))
19530 (build-system emacs-build-system)
19531 (propagated-inputs
19532 `(("emacs-flycheck" ,emacs-flycheck)
19533 ("emacs-let-alist" ,emacs-let-alist)))
19534 (home-page "https://github.com/bsermons/flycheck-elm")
19535 (synopsis "Flycheck support for the Elm language")
19536 (description "Flycheck Elm adds Flycheck support for Elm language.")
19537 (license license:gpl3+))))
19538
19539 (define-public emacs-flycheck-haskell
19540 (let ((commit "32ddff87165a7d3a35e7318bee997b5b4bd41278")
19541 (revision "2"))
19542 (package
19543 (name "emacs-flycheck-haskell")
19544 (version (git-version "0.8" revision commit))
19545 (source
19546 (origin
19547 (method git-fetch)
19548 (uri (git-reference
19549 (url "https://github.com/flycheck/flycheck-haskell")
19550 (commit commit)))
19551 (file-name (git-file-name name version))
19552 (sha256
19553 (base32
19554 "10pgsbagq6qj4mshq5sypv0q0khck92b30sc793b4g1pfpsxvgjn"))))
19555 (build-system emacs-build-system)
19556 (propagated-inputs
19557 `(("emacs-dash" ,emacs-dash)
19558 ("emacs-seq" ,emacs-seq)
19559 ("emacs-flycheck" ,emacs-flycheck)
19560 ("emacs-haskell-mode" ,emacs-haskell-mode)
19561 ("emacs-let-alist" ,emacs-let-alist)))
19562 (arguments
19563 `(#:include '("\\.el$" "\\.hs$")))
19564 (home-page "https://github.com/flycheck/flycheck-haskell")
19565 (synopsis "Flycheck for Haskell")
19566 (description "This package configures syntax-checking for Haskell
19567 buffers.")
19568 (license license:gpl3+))))
19569
19570 (define-public emacs-js2-refactor-el
19571 (let ((commit "d4c40b5fc86d3edd7c6a7d83ac86483ee1cb7a28")
19572 (revision "2"))
19573 (package
19574 (name "emacs-js2-refactor-el")
19575 (version (git-version "0.9.0" revision commit))
19576 (source
19577 (origin
19578 (method git-fetch)
19579 (uri (git-reference
19580 (url "https://github.com/magnars/js2-refactor.el")
19581 (commit commit)))
19582 (file-name (git-file-name name version))
19583 (sha256
19584 (base32
19585 "08b25y3raz0p98zxk9xdd8nj9shqd6mzrqhbq1gg4cwsmi7h7ly1"))))
19586 (build-system emacs-build-system)
19587 (propagated-inputs
19588 `(("emacs-dash" ,emacs-dash)
19589 ("emacs-s" ,emacs-s)
19590 ("emacs-js2-mode" ,emacs-js2-mode)
19591 ("emacs-yasnippet" ,emacs-yasnippet)
19592 ("emacs-multiple-cursors" ,emacs-multiple-cursors)))
19593 (native-inputs
19594 `(("emacs-buttercup" ,emacs-buttercup)
19595 ("emacs-espuds" ,emacs-espuds)))
19596 (home-page "https://github.com/magnars/js2-refactor.el")
19597 (synopsis "JavaScript refactoring in Emacs")
19598 (description "This package provides various refactoring functions for
19599 JavaScript.")
19600 (license license:gpl3+))))
19601
19602 (define-public emacs-prettier
19603 (let ((commit "e9b73e81d3e1642aec682195f127a42dfb0b5774")
19604 (version "0.1.0")
19605 (revision "1"))
19606 (package
19607 (name "emacs-prettier")
19608 (version (git-version version revision commit))
19609 (source
19610 (origin
19611 (method git-fetch)
19612 (uri (git-reference
19613 (url "https://github.com/prettier/prettier-emacs")
19614 (commit commit)))
19615 (file-name (git-file-name name version))
19616 (sha256
19617 (base32
19618 "0hj4fv3fgc60i6jrsx4a81s5c9fsxxafhhs3q2q1dypsscjci9ph"))))
19619 (build-system emacs-build-system)
19620 (home-page "https://github.com/prettier/prettier-emacs")
19621 (synopsis "Automatic formatting of JavaScript code")
19622 (description "This package integrates Prettier with Emacs, and
19623 provides a minor mode that autoformats the buffer upon saving.")
19624 (license license:expat))))
19625
19626 (define-public emacs-fish-mode
19627 (package
19628 (name "emacs-fish-mode")
19629 (version "0.1.4")
19630 (source
19631 (origin
19632 (method git-fetch)
19633 (uri (git-reference
19634 (url "https://github.com/wwwjfy/emacs-fish")
19635 (commit version)))
19636 (file-name (git-file-name name version))
19637 (sha256
19638 (base32
19639 "0a74ghmjjrxfdhk4mvq6lar4w6l6lc4iilabs99smqr2fn5rsslq"))))
19640 (build-system emacs-build-system)
19641 (home-page "https://github.com/wwwjfy/emacs-fish")
19642 (synopsis "Major mode for Fish shell scripts")
19643 (description "This package provides syntax highlighting and indentation
19644 functions for Fish shell scripts.")
19645 (license license:gpl3+)))
19646
19647 (define-public emacs-eshell-up
19648 (let ((commit "9c100bae5c3020e8d9307e4332d3b64e7dc28519")
19649 (version "0.0.3")
19650 (revision "12"))
19651 (package
19652 (name "emacs-eshell-up")
19653 (version (git-version version revision commit))
19654 (source
19655 (origin
19656 (method git-fetch)
19657 (uri (git-reference
19658 (url "https://github.com/peterwvj/eshell-up")
19659 (commit commit)))
19660 (file-name (git-file-name name version))
19661 (sha256
19662 (base32
19663 "00zdbcncjabgj5mp47l1chymx5na18v2g4kj730dgmj3rnl3iz2q"))))
19664 (build-system emacs-build-system)
19665 (home-page "https://github.com/peterwvj/eshell-up")
19666 (synopsis "Quickly go to a parent directory in @code{Eshell}")
19667 (description "This package provides quick navigation to a specific
19668 parent directory using @code{Eshell}.")
19669 (license license:gpl3+))))
19670
19671 (define-public emacs-tco-el
19672 (let ((commit "482db5313f090b17ed22ccd856f0e141dc75afe6")
19673 (revision "1"))
19674 (package
19675 (name "emacs-tco-el")
19676 (version (git-version "0.3" revision commit))
19677 (source
19678 (origin
19679 (method git-fetch)
19680 (uri (git-reference
19681 (url "https://github.com/Wilfred/tco.el")
19682 (commit commit)))
19683 (file-name (git-file-name name version))
19684 (sha256
19685 (base32
19686 "1z7xkbrqznk6ni687qqknp8labcyhl8y6576hjfri89fn21385y9"))))
19687 (build-system emacs-build-system)
19688 (propagated-inputs
19689 `(("emacs-dash" ,emacs-dash)))
19690 (native-inputs
19691 `(("emacs-ert-runner" ,emacs-ert-runner)
19692 ("emacs-undercover" ,emacs-undercover)))
19693 (arguments
19694 `(#:tests? #t
19695 #:test-command '("ert-runner")))
19696 (home-page "https://github.com/Wilfred/tco.el")
19697 (synopsis "Tail-call optimization for Emacs Lisp")
19698 (description "This package provides tail-call optimization for Emacs
19699 Lisp functions that call themselves in tail position.")
19700 (license license:gpl3+))))
19701
19702 (define-public emacs-equake
19703 (let ((commit "7eddc025ee61b83029363e22219af228b8c20681")
19704 (revision "2"))
19705 (package
19706 (name "emacs-equake")
19707 (version (git-version "0.85" revision commit))
19708 (source
19709 (origin
19710 (method git-fetch)
19711 (uri (git-reference
19712 (url "https://gitlab.com/emacsomancer/equake/")
19713 (commit commit)))
19714 (file-name (git-file-name name version))
19715 (sha256
19716 (base32
19717 "1c55pbqak3d02sw6z1139baxzy401b90g0gxzcc3j6sgplz6sc6w"))))
19718 (build-system emacs-build-system)
19719 (propagated-inputs
19720 `(("emacs-dash" ,emacs-dash)
19721 ("emacs-tco-el" ,emacs-tco-el)))
19722 (home-page "https://gitlab.com/emacsomancer/equake/")
19723 (synopsis "Drop-down console for @code{Eshell} and terminal emulators")
19724 (description "This package provides a Quake-style drop-down console
19725 compatible with Emacs' shell modes.")
19726 (license license:gpl3+))))
19727
19728 (define-public emacs-vdiff
19729 (let ((commit "09e15fc932bfd2febe1d4a65780a532394562b07")
19730 (revision "1"))
19731 (package
19732 (name "emacs-vdiff")
19733 (version (git-version "0.2.3" revision commit))
19734 (source
19735 (origin
19736 (method git-fetch)
19737 (uri (git-reference
19738 (url "https://github.com/justbur/emacs-vdiff.git")
19739 (commit commit)))
19740 (file-name (git-file-name name version))
19741 (sha256
19742 (base32
19743 "1gvqi5l4zs872nn4pmj603aza09d81qad2rgijzv268lif8z34db"))))
19744 (build-system emacs-build-system)
19745 (propagated-inputs
19746 `(("emacs-hydra" ,emacs-hydra)))
19747 (arguments
19748 `(#:tests? #t
19749 #:test-command '("emacs" "-Q" "-batch" "-L" "."
19750 "-l" "vdiff-test.el"
19751 "-f" "ert-run-tests-batch-and-exit")))
19752 (home-page "https://github.com/justbur/emacs-vdiff/")
19753 (synopsis "Frontend for diffing based on vimdiff")
19754 (description "This package permits comparisons of two or three buffers
19755 based on diff output.")
19756 (license license:gpl3+))))
19757
19758 (define-public emacs-vdiff-magit
19759 ;; Need to use a more recent commit than the latest release version because
19760 ;; of Magit and Transient
19761 (let ((commit "b100d126c69e5c26a61ae05aa1778bcc4302b597")
19762 (version "0.3.2")
19763 (revision "8"))
19764 (package
19765 (name "emacs-vdiff-magit")
19766 (version (git-version version revision commit))
19767 (source
19768 (origin
19769 (method git-fetch)
19770 (uri (git-reference
19771 (url "https://github.com/justbur/emacs-vdiff-magit/")
19772 (commit commit)))
19773 (file-name (git-file-name name version))
19774 (sha256
19775 (base32
19776 "16cjmrzflf2i1w01973sl944xrfanakba8sb4dpwi79d92xp03xy"))))
19777 (build-system emacs-build-system)
19778 (propagated-inputs
19779 `(("emacs-vdiff" ,emacs-vdiff)
19780 ("emacs-magit" ,emacs-magit)
19781 ("emacs-transient" ,emacs-transient)))
19782 (home-page "https://github.com/justbur/emacs-vdiff-magit/")
19783 (synopsis "Frontend for diffing based on vimdiff")
19784 (description "This package permits comparisons of two or three buffers
19785 based on diff output.")
19786 (license license:gpl3+))))
19787
19788 (define-public emacs-all-the-icons-dired
19789 (let ((commit "980b7747d6c4a7992a1ec56afad908956db0a519")
19790 (version "1.0")
19791 (revision "1"))
19792 (package
19793 (name "emacs-all-the-icons-dired")
19794 (version (git-version version revision commit))
19795 (source
19796 (origin
19797 (method git-fetch)
19798 (uri (git-reference
19799 (url "https://github.com/jtbm37/all-the-icons-dired/")
19800 (commit commit)))
19801 (file-name (git-file-name name version))
19802 (sha256
19803 (base32
19804 "1pvbgyxfj4j205nj1r02045f1y4wgavdsk7f45hxkkhms1rj8jyy"))))
19805 (build-system emacs-build-system)
19806 (propagated-inputs
19807 `(("emacs-all-the-icons" ,emacs-all-the-icons)))
19808 (home-page "https://github.com/jtbm37/all-the-icons-dired/")
19809 (synopsis "Show icons for each file in @code{dired-mode}")
19810 (description "This package allows icons from @file{all-the-icons.el} to
19811 be used in @code{dired-mode}.")
19812 (license license:gpl3+))))
19813
19814 (define-public emacs-exwm-edit
19815 (let ((commit "bc25ba094b383be3c650ca0b7e1534efe2bb154f")
19816 (version "0.0.1")
19817 (revision "2"))
19818 (package
19819 (name "emacs-exwm-edit")
19820 (version (git-version version revision commit))
19821 (source
19822 (origin
19823 (method git-fetch)
19824 (uri (git-reference
19825 (url "https://github.com/agzam/exwm-edit/")
19826 (commit commit)))
19827 (file-name (git-file-name name version))
19828 (sha256
19829 (base32
19830 "1z1ya9xgknka3dy3b3x8zzfkxdx5jqsi8q5aqkvxjxa6n7mmqdwv"))))
19831 (build-system emacs-build-system)
19832 (propagated-inputs
19833 `(("emacs-exwm" ,emacs-exwm)))
19834 (home-page "https://github.com/agzam/exwm-edit/")
19835 (synopsis "Open temp buffers for editing text from EXWM buffers")
19836 (description "This package facilitates editing text from EXWM buffers by
19837 generating a temp buffer in which any useful Emacs utilities and modes can be
19838 invoked.")
19839 (license license:gpl3+))))
19840
19841 (define-public emacs-ert-async
19842 (package
19843 (name "emacs-ert-async")
19844 (version "0.1.2")
19845 (source
19846 (origin
19847 (method git-fetch)
19848 (uri (git-reference
19849 (url "https://github.com/rejeep/ert-async.el")
19850 (commit (string-append "v" version))))
19851 (file-name (git-file-name name version))
19852 (sha256
19853 (base32
19854 "0hn9i405nfhjd1h9vnwj43nxbbz00khrwkjq0acfyxjaz1shfac9"))))
19855 (build-system emacs-build-system)
19856 (home-page "https://github.com/rejeep/ert-async.el")
19857 (synopsis "Async support for ERT")
19858 (description "This package allows ERT to work with asynchronous tests.")
19859 (license license:gpl3+)))
19860
19861 (define-public emacs-prodigy-el
19862 (let ((commit "0a12eec1f001a4eef16b2c0c524f02f2647a4ff1")
19863 (revision "2"))
19864 (package
19865 (name "emacs-prodigy-el")
19866 (version (git-version "0.7.0" revision commit))
19867 (source
19868 (origin
19869 (method git-fetch)
19870 (uri (git-reference
19871 (url "https://github.com/rejeep/prodigy.el")
19872 (commit commit)))
19873 (file-name (git-file-name name version))
19874 (sha256
19875 (base32
19876 "02kysq57kqzg0zkhaf302ada9cp9spgp71z8vbdq4c7dl6x75h4g"))))
19877 (build-system emacs-build-system)
19878 (propagated-inputs
19879 `(("emacs-dash" ,emacs-dash)
19880 ("emacs-s" ,emacs-s)
19881 ("emacs-f" ,emacs-f)))
19882 (native-inputs
19883 `(("emacs-el-mock" ,emacs-el-mock)
19884 ("emacs-ert-async" ,emacs-ert-async)))
19885 (home-page "https://github.com/rejeep/prodigy.el")
19886 (synopsis "Manage external services from within Emacs")
19887 (description "This package provides a GUI for defining and monitoring services.")
19888 (license license:gpl3+))))
19889
19890 (define-public emacs-web-server
19891 (let ((commit "cafa5b7582c57252a0884b2c33da9b18fb678713")
19892 (revision "1"))
19893 (package
19894 (name "emacs-web-server")
19895 (version (git-version "0.1.0" revision commit))
19896 (source
19897 (origin
19898 (method git-fetch)
19899 (uri (git-reference
19900 (url "https://github.com/eschulte/emacs-web-server/")
19901 (commit commit)))
19902 (file-name (git-file-name name version))
19903 (sha256
19904 (base32
19905 "1c0lfqmbs5hvz3fh3c8wgp6ipwmxrwx9xj264bjpj3phixd5419y"))))
19906 (build-system emacs-build-system)
19907 (native-inputs
19908 `(("curl" ,curl)))
19909 (arguments
19910 `(#:phases
19911 (modify-phases %standard-phases
19912 (add-after 'unpack 'set-shell
19913 ;; Setting the SHELL environment variable is required for the tests
19914 ;; to find sh.
19915 (lambda _
19916 (setenv "SHELL" (which "sh"))
19917 #t)))
19918 #:tests? #t
19919 #:test-command '("make" "check")))
19920 (home-page "https://github.com/eschulte/emacs-web-server/")
19921 (synopsis "Web server with handlers in Emacs Lisp")
19922 (description "This package supports HTTP GET and POST requests with
19923 url-encoded parameters, as well as web sockets.")
19924 (license license:gpl3+))))
19925
19926 (define-public emacs-markdown-preview-mode
19927 (package
19928 (name "emacs-markdown-preview-mode")
19929 (version "0.9.2")
19930 (source
19931 (origin
19932 (method git-fetch)
19933 (uri (git-reference
19934 (url "https://github.com/ancane/markdown-preview-mode")
19935 (commit (string-append "v" version))))
19936 (file-name (git-file-name name version))
19937 (sha256
19938 (base32
19939 "1d1id99gagymvzdfa1mwqh8y3szm8ii47rpijkfi1qnifjg5jaq9"))))
19940 (build-system emacs-build-system)
19941 (propagated-inputs
19942 `(("emacs-markdown-mode" ,emacs-markdown-mode)
19943 ("emacs-websocket" ,emacs-websocket)
19944 ("emacs-web-server" ,emacs-web-server)))
19945 (arguments '(#:include '("\\.el$" "\\.html$")))
19946 (home-page "https://github.com/ancane/markdown-preview-mode")
19947 (synopsis "Preview Markdown files")
19948 (description "This package provides a minor mode for preview of Markdown
19949 files, and sends rendered Markdown to a web browser.")
19950 (license license:gpl3+)))
19951
19952 (define-public emacs-dotenv-mode
19953 (package
19954 (name "emacs-dotenv-mode")
19955 (version "0.2.4")
19956 (source
19957 (origin
19958 (method git-fetch)
19959 (uri (git-reference
19960 (url "https://github.com/preetpalS/emacs-dotenv-mode")
19961 (commit (string-append "v" version))))
19962 (file-name (git-file-name name version))
19963 (sha256
19964 (base32
19965 "1fplkhxnsgdrg10iqsmw162zny2idz4vvv35spsb9j0hsk8imclc"))))
19966 (build-system emacs-build-system)
19967 (home-page "https://github.com/preetpalS/emacs-dotenv-mode")
19968 (synopsis "Major mode for @file{.env} files")
19969 (description "This package provides syntax highlighting for @file{.env}
19970 files.")
19971 (license license:gpl3+)))
19972
19973 (define-public emacs-add-node-modules-path
19974 (let ((commit "f31e69ccb681f882aebb806ce6e9478e3ac39708")
19975 (version "1.2.0")
19976 (revision "10"))
19977 (package
19978 (name "emacs-add-node-modules-path")
19979 (version (git-version version revision commit))
19980 (source
19981 (origin
19982 (method git-fetch)
19983 (uri (git-reference
19984 (url "https://github.com/codesuki/add-node-modules-path")
19985 (commit commit)))
19986 (file-name (git-file-name name version))
19987 (sha256
19988 (base32
19989 "0p106bqmvdr8by5iv02bshm339qbrjcch2d15mrm4h3nav03v306"))))
19990 (build-system emacs-build-system)
19991 (home-page "https://github.com/codesuki/add-node-modules-path")
19992 (synopsis "Add @file{node_modules} to the buffer-local @file{exec-path}")
19993 (description "This package searches the parent directories of the
19994 current file for the project's @file{node_modules/.bin/} directory, allowing
19995 Emacs to find project-specific installations of packages.")
19996 (license license:expat))))
19997
19998 (define-public emacs-flow-minor-mode
19999 (let ((commit "d1b32a7dd0d33c6a00a106da5f4b2323602cbd3e")
20000 (version "0.3")
20001 (revision "4"))
20002 (package
20003 (name "emacs-flow-minor-mode")
20004 (version (git-version version revision commit))
20005 (source
20006 (origin
20007 (method git-fetch)
20008 (uri (git-reference
20009 (url "https://github.com/an-sh/flow-minor-mode")
20010 (commit commit)))
20011 (file-name (git-file-name name version))
20012 (sha256
20013 (base32
20014 "169r4ib9qg9q6fm3p0p23qs1qx4pa9pg1qvyq4ysr85i7kwygppl"))))
20015 (build-system emacs-build-system)
20016 (home-page "https://github.com/an-sh/flow-minor-mode")
20017 (synopsis "Minor mode for JavaScript Flow files")
20018 (description "This package integrates Flow with Emacs, allowing for
20019 definition-jumping and type-checking on demand.")
20020 (license license:bsd-3))))
20021
20022 (define-public emacs-rjsx-mode
20023 (let ((commit "0e7fa6b4facdec4f85a7a8865bdf59dfd57217b5")
20024 (revision "2"))
20025 (package
20026 (name "emacs-rjsx-mode")
20027 (version (git-version "0.4" revision commit))
20028 (source
20029 (origin
20030 (method git-fetch)
20031 (uri (git-reference
20032 (url "https://github.com/felipeochoa/rjsx-mode")
20033 (commit commit)))
20034 (file-name (git-file-name name version))
20035 (sha256
20036 (base32
20037 "0s0871sx3ch09kgvbcp9na4zdrfrda62xjq8m9knbq5vnj8q8qpi"))))
20038 (build-system emacs-build-system)
20039 (propagated-inputs
20040 `(("emacs-js2-mode" ,emacs-js2-mode)))
20041 (arguments
20042 `(#:tests? #t
20043 #:test-command '("make" "test")))
20044 (home-page "https://github.com/felipeochoa/rjsx-mode")
20045 (synopsis "Major mode for JSX files")
20046 (description "This package extends the parser of @code{js2-mode} to
20047 support JSX syntax.")
20048 (license license:expat))))
20049
20050 (define-public emacs-origami-el
20051 (let ((commit "1f38085c8f9af7842765ed63f7d6dfe4dab59366")
20052 (version "1.0")
20053 (revision "1"))
20054 (package
20055 (name "emacs-origami-el")
20056 (version (git-version version revision commit))
20057 (source
20058 (origin
20059 (method git-fetch)
20060 (uri (git-reference
20061 (url "https://github.com/gregsexton/origami.el")
20062 (commit commit)))
20063 (file-name (git-file-name name version))
20064 (sha256
20065 (base32
20066 "0ha1qsz2p36pqa0sa2sp83lspbgx5lr7930qxnwd585liajzdd9x"))))
20067 (build-system emacs-build-system)
20068 (propagated-inputs
20069 `(("emacs-dash" ,emacs-dash)
20070 ("emacs-s" ,emacs-s)))
20071 (home-page "https://github.com/gregsexton/origami.el")
20072 (synopsis "Flexible text-folding")
20073 (description "This package provides a minor mode for collapsing and
20074 expanding regions of text without modifying the actual contents.")
20075 (license license:expat))))
20076
20077 (define-public emacs-peep-dired
20078 (let ((commit "c88a9a3050197840edfe145f11e0bb9488de32f4")
20079 (version "0")
20080 (revision "1"))
20081 (package
20082 (name "emacs-peep-dired")
20083 (version (git-version version revision commit))
20084 (source
20085 (origin
20086 (method git-fetch)
20087 (uri (git-reference
20088 (url "https://github.com/asok/peep-dired")
20089 (commit commit)))
20090 (file-name (git-file-name name version))
20091 (sha256
20092 (base32
20093 "1wy5qpnfri1gha2cnl6q20qar8dbl2mimpb43bnhmm2g3wgjyad6"))))
20094 (build-system emacs-build-system)
20095 (home-page "https://github.com/asok/peep-dired")
20096 (synopsis "Preview files in another window")
20097 (description "This package provides a minor mode that allows files to be
20098 previewed by scrolling up and down within a @code{dired} buffer.")
20099 (license license:gpl3+))))
20100
20101 (define-public emacs-counsel-etags
20102 (package
20103 (name "emacs-counsel-etags")
20104 (version "1.8.9")
20105 (source
20106 (origin
20107 (method git-fetch)
20108 (uri (git-reference
20109 (url "https://github.com/redguardtoo/counsel-etags")
20110 (commit version)))
20111 (file-name (git-file-name name version))
20112 (sha256
20113 (base32
20114 "0rmdl93kgyydwa96yclds9vwly41bpk8v18cbqc1x266w6v77dr9"))))
20115 (build-system emacs-build-system)
20116 (propagated-inputs
20117 `(("emacs-ivy" ,emacs-ivy)))
20118 (arguments
20119 `(#:tests? #t
20120 #:test-command '("make" "test")))
20121 (home-page "https://github.com/redguardtoo/counsel-etags")
20122 (synopsis "Fast @code{Ctags}/@code{Etags} solution with @code{ivy-mode}")
20123 (description "This package uses @code{ivy-mode} to facilitate navigating
20124 and searching through @code{Ctags} files.")
20125 (license license:gpl3+)))
20126
20127 (define-public emacs-ivy-clipmenu
20128 (let ((commit "d2071f2c5043a05d610cd1952e84176ca78c31dc"))
20129 (package
20130 (name "emacs-ivy-clipmenu")
20131 (version (git-version "0.0.1" "1" commit))
20132 (source (origin
20133 (method git-fetch)
20134 (uri (git-reference
20135 (url "https://github.com/wpcarro/ivy-clipmenu.el.git")
20136 (commit commit)))
20137 (file-name (git-file-name name version))
20138 (sha256
20139 (base32
20140 "0npd8glzk5z4n7y9mzbsbzi0cf3by19fqcki052jr3dga363lds7"))))
20141 (propagated-inputs
20142 `(("emacs-f" ,emacs-f)
20143 ("emacs-ivy" ,emacs-ivy)))
20144 (build-system emacs-build-system)
20145 (home-page "https://github.com/wpcarro/ivy-clipmenu.el")
20146 (synopsis "Ivy integration with clipmenu")
20147 (description "Ivy integration with the clipboard manager, clipmenu.")
20148 (license license:expat))))
20149
20150 (define-public emacs-org-download
20151 (let ((commit "10c9d7c8eed928c88a896310c882e3af4d8d0f61")
20152 (revision "2"))
20153 (package
20154 (name "emacs-org-download")
20155 (version (git-version "0.1.0" revision commit))
20156 (source (origin
20157 (method git-fetch)
20158 (uri (git-reference
20159 (url "https://github.com/abo-abo/org-download")
20160 (commit commit)))
20161 (sha256
20162 (base32
20163 "0i8wlx1i7y1vn5lqwjifvymvszg28a07vwqcm4jslf1v2ajs1lsl"))
20164 (file-name (git-file-name name version))))
20165 (build-system emacs-build-system)
20166 (propagated-inputs
20167 `(("emacs-org" ,emacs-org)
20168 ("emacs-async" ,emacs-async)))
20169 (home-page "https://github.com/abo-abo/org-download")
20170 (synopsis "Facilitate moving images")
20171 (description "This package provides utilities for managing image files
20172 copied into @code{org-mode} buffers.")
20173 (license license:gpl3+))))
20174
20175 (define-public emacs-dash-docs
20176 (let ((commit "111fd9b97001f1ad887b45e5308a14ddd68ce70a")
20177 (revision "1"))
20178 (package
20179 (name "emacs-dash-docs")
20180 (version (git-version "1.4.0" revision commit))
20181 (source
20182 (origin
20183 (method git-fetch)
20184 (uri (git-reference
20185 (url "https://github.com/dash-docs-el/dash-docs.git")
20186 (commit commit)))
20187 (file-name (git-file-name name version))
20188 (sha256
20189 (base32
20190 "0sckb7z0ylflva212bns7iq9mfnffgjghi0qspsbfwra35zb9xng"))))
20191 (build-system emacs-build-system)
20192 (propagated-inputs
20193 `(("emacs-async" ,emacs-async)))
20194 (native-inputs
20195 `(("emacs-undercover" ,emacs-undercover)
20196 ("emacs-ert-runner" ,emacs-ert-runner)))
20197 (arguments
20198 `(#:tests? #t
20199 #:test-command '("ert-runner")
20200 #:phases
20201 ;; this test requires network access, so remove it
20202 (modify-phases %standard-phases
20203 (add-before 'check 'make-tests-writable
20204 (lambda _
20205 (make-file-writable "test/dash-docs-test.el")
20206 #t))
20207 (add-before 'check 'delete-test
20208 (lambda _
20209 (emacs-batch-edit-file "test/dash-docs-test.el"
20210 `(progn (progn
20211 (goto-char (point-min))
20212 (re-search-forward "ert-deftest dash-docs-official-docsets-test")
20213 (beginning-of-line)
20214 (kill-sexp))
20215 (basic-save-buffer)))
20216 #t)))))
20217 (home-page "https://github.com/dash-docs-el/dash-docs")
20218 (synopsis "Offline documentation browser for APIs using Dash docsets")
20219 (description "This package exposes functionality to work with Dash docsets.")
20220 (license license:gpl3+))))
20221
20222 (define-public emacs-helm-dash
20223 (let ((commit "7f853bd34da666f0e9a883011c80f451b06f6c59")
20224 (revision "2"))
20225 (package
20226 (name "emacs-helm-dash")
20227 (version (git-version "1.3.0" revision commit))
20228 (source
20229 (origin
20230 (method git-fetch)
20231 (uri (git-reference
20232 (url "https://github.com/areina/helm-dash.git")
20233 (commit commit)))
20234 (file-name (git-file-name name version))
20235 (sha256
20236 (base32
20237 "0r192vzry1212ihabg9pgw9xar8zdgnbgy0vsgvfm8s5wj6ny7jp"))))
20238 (build-system emacs-build-system)
20239 (propagated-inputs
20240 `(("emacs-helm" ,emacs-helm)
20241 ("emacs-dash-docs" ,emacs-dash-docs)))
20242 (home-page "https://github.com/areina/helm-dash")
20243 (synopsis "Offline documentation browser for APIs using Dash docsets")
20244 (description "This package uses Helm to install and navigate through
20245 Dash docsets.")
20246 (license license:gpl3+))))
20247
20248 (define-public emacs-counsel-dash
20249 (let ((commit "7027868d483b51d949b9f20fb8f34b122ca61520")
20250 (revision "3"))
20251 (package
20252 (name "emacs-counsel-dash")
20253 (version (git-version "0.1.3" revision commit))
20254 (source
20255 (origin
20256 (method git-fetch)
20257 (uri (git-reference
20258 (url "https://github.com/dash-docs-el/counsel-dash.git")
20259 (commit commit)))
20260 (file-name (git-file-name name version))
20261 (sha256
20262 (base32
20263 "0h3f5pxnmb21pq4hh7k4w8jzflz1k2ap7nwpjc222w0q6x6jrbjp"))))
20264 (build-system emacs-build-system)
20265 (propagated-inputs
20266 `(("emacs-dash-docs" ,emacs-dash-docs)
20267 ("emacs-ivy" ,emacs-ivy)))
20268 (arguments
20269 `(#:phases
20270 (modify-phases %standard-phases
20271 (add-after 'unpack 'require-ivy
20272 (lambda _
20273 (substitute* "counsel-dash.el"
20274 (("^\\(require 'cl-lib\\)")
20275 "(require 'cl-lib)\n(require 'ivy)\n(require 'subr-x)"))
20276 #t)))))
20277 (home-page "https://github.com/dash-docs-el/counsel-dash")
20278 (synopsis "Offline documentation browser for APIs using Dash docsets")
20279 (description "This package uses @code{ivy-mode} to install and navigate
20280 through Dash docsets.")
20281 (license license:expat))))
20282
20283 (define-public emacs-el-patch
20284 (package
20285 (name "emacs-el-patch")
20286 (version "2.2.3")
20287 (source
20288 (origin
20289 (method git-fetch)
20290 (uri (git-reference
20291 (url "https://github.com/raxod502/el-patch")
20292 (commit version)))
20293 (file-name (git-file-name name version))
20294 (sha256
20295 (base32
20296 "18djslz177q6q33y82zmg2v6n9236a76kiqfvxdk4vbqzjbq82f7"))))
20297 (build-system emacs-build-system)
20298 (home-page "https://github.com/raxod502/el-patch")
20299 (synopsis "Future-proof your Emacs customizations")
20300 (description "This package allows for an alternate definition of an Elisp
20301 function to be specified and for any differences from the original definition
20302 to be examined using Ediff.")
20303 (license license:expat)))
20304
20305 (define-public emacs-info-plus
20306 (let ((commit "4a6b93c170169594e1e8ea60cd799a1a88a969da")
20307 (revision "2"))
20308 (package
20309 (name "emacs-info-plus")
20310 (version (git-version "0" revision commit))
20311 (source
20312 (origin
20313 (method git-fetch)
20314 (uri (git-reference
20315 (url "https://github.com/emacsmirror/info-plus")
20316 (commit commit)))
20317 (file-name (git-file-name name version))
20318 (sha256
20319 (base32
20320 "1xzmx7m1qbl3b1x6yq1db1a108xqaa64ljfv1hdw763zmy4kc6m0"))))
20321 (build-system emacs-build-system)
20322 (home-page "https://github.com/emacsmirror/info-plus")
20323 (synopsis "Extensions to @file{info.el}")
20324 (description "This package extends Emacs' @file{info.el} by allowing
20325 outline-enabled table of contents, additional metadata association for Info
20326 nodes, and more.")
20327 (license license:gpl2+))))
20328
20329 (define-public emacs-eval-sexp-fu-el
20330 (package
20331 (name "emacs-eval-sexp-fu-el")
20332 (version "0.5.0")
20333 (source
20334 (origin
20335 (method git-fetch)
20336 (uri (git-reference
20337 (url "https://github.com/hchbaw/eval-sexp-fu.el")
20338 (commit (string-append "v" version))))
20339 (file-name (git-file-name name version))
20340 (sha256
20341 (base32
20342 "01mpnpgmlnfbi2yw9dxz5iw72mw3lk223bj172i4fnx3xdrrxbij"))))
20343 (build-system emacs-build-system)
20344 (home-page "https://github.com/hchbaw/eval-sexp-fu.el")
20345 (synopsis "Enhancements for evaluating s-expressions")
20346 (description "This package provides provides variants of
20347 @code{eval-last-sexp} that work on the containing list or s-expression, as
20348 well as an option for visually flashing evaluated s-expressions.")
20349 (license license:gpl3+)))
20350
20351 (define-public emacs-counsel-tramp
20352 (package
20353 (name "emacs-counsel-tramp")
20354 (version "0.6.3")
20355 (source
20356 (origin
20357 (method git-fetch)
20358 (uri (git-reference
20359 (url "https://github.com/masasam/emacs-counsel-tramp")
20360 (commit version)))
20361 (file-name (git-file-name name version))
20362 (sha256
20363 (base32
20364 "1qy9lf7cyv6hp9mmpwh92cpdcffbxzyzchx6878d5pmk9qh6xy92"))))
20365 (build-system emacs-build-system)
20366 (propagated-inputs
20367 `(("emacs-ivy" ,emacs-ivy)))
20368 (home-page "https://github.com/masasam/emacs-counsel-tramp")
20369 (synopsis "Ivy interface for TRAMP")
20370 (description "This package allows @code{ivy-mode} to display and filter
20371 SSH servers.")
20372 (license license:gpl3+)))
20373
20374 (define-public emacs-tramp
20375 (package
20376 (name "emacs-tramp")
20377 (version "2.4.3.5")
20378 (source
20379 (origin
20380 (method url-fetch)
20381 (uri (string-append "https://elpa.gnu.org/packages/"
20382 "tramp-" version ".tar"))
20383 (sha256
20384 (base32 "14djizi4ivwv4ad4nymday86jbh45w14wdhlm96743ffwr45dd2m"))))
20385 (build-system emacs-build-system)
20386 (arguments
20387 `(#:emacs ,emacs ;need D-Bus
20388 #:phases
20389 (modify-phases %standard-phases
20390 ;; All but one "/bin/" directory refer to remote
20391 ;; environments, which may not be Guix. Do not patch them
20392 ;; blindly. However, local encoding shell has to be patched.
20393 (replace 'patch-el-files
20394 (lambda* (#:key inputs #:allow-other-keys)
20395 (let ((sh (assoc-ref inputs "bash"))
20396 (file "tramp.el"))
20397 (emacs-substitute-variables file
20398 ("tramp-encoding-shell" (string-append sh "/bin/sh"))))
20399 #t)))))
20400 (inputs
20401 `(("bash" ,bash)))
20402 (home-page "https://savannah.gnu.org/projects/tramp")
20403 (synopsis "Remote file editing package for Emacs")
20404 (description
20405 "Tramp stands for ``Transparent Remote (file) Access, Multiple
20406 Protocol''. This package provides remote file editing, using
20407 a combination of @command{rsh} and @command{rcp} or other work-alike
20408 programs, such as @command{ssh} and @command{scp}.")
20409 (license license:gpl3+)))
20410
20411 (define-public emacs-tramp-auto-auth
20412 (let ((commit "f15a12dfab651aff60f4a9d70f868030a12344ac"))
20413 (package
20414 (name "emacs-tramp-auto-auth")
20415 (version (git-version "20191027" "1" commit))
20416 (source
20417 (origin
20418 (method git-fetch)
20419 (uri (git-reference
20420 (url "https://github.com/oitofelix/tramp-auto-auth.git")
20421 (commit commit)))
20422 (file-name (git-file-name name version))
20423 (sha256
20424 (base32
20425 "09nkjgwppjfgv04q0gv468qihgx4y3p39lpwbd6vbh3wgbccas9k"))))
20426 (build-system emacs-build-system)
20427 (home-page "https://github.com/oitofelix/tramp-auto-auth")
20428 (synopsis "TRAMP automatic authentication library")
20429 (description "This package provides @code{tramp-auto-auth-mode} Emacs
20430 global minor mode whose purpose is to automatically feed TRAMP sub-processes
20431 with passwords for paths matching regexps.")
20432 (license license:gpl3+))))
20433
20434 (define-public emacs-eacl
20435 (package
20436 (name "emacs-eacl")
20437 (version "2.0.1")
20438 (source
20439 (origin
20440 (method git-fetch)
20441 (uri (git-reference
20442 (url "https://github.com/redguardtoo/eacl")
20443 (commit version)))
20444 (file-name (git-file-name name version))
20445 (sha256
20446 (base32
20447 "0ksn11sm3g1ja5lpjz3hrzzw8b480mfcb3q589m52qjgvvn5iyfv"))))
20448 (build-system emacs-build-system)
20449 (propagated-inputs
20450 `(("emacs-ivy" ,emacs-ivy)))
20451 (home-page "https://github.com/redguardtoo/eacl")
20452 (synopsis "Auto-complete lines by using @code{grep} on a project")
20453 (description "This package provides auto-completion commands for single
20454 and multiple lines of code in a project.")
20455 (license license:gpl3+)))
20456
20457 (define-public emacs-semantic-refactor
20458 ;; The last release, 0.5, was made on 2015-07-26 and there have been 47
20459 ;; commits since then.
20460 (let ((commit "6f2c97d17fb70f4ca2112f5a2b99a8ec162004f5"))
20461 (package
20462 (name "emacs-semantic-refactor")
20463 (version (git-version "0.5" "1" commit))
20464 (source
20465 (origin
20466 (method git-fetch)
20467 (uri (git-reference
20468 (url "https://github.com/tuhdo/semantic-refactor")
20469 (commit commit)))
20470 (file-name (git-file-name name version))
20471 (sha256
20472 (base32
20473 "1lyz3zjkx2csh0xdy1zpx8s32qp1p3sig57mwi9xhgpqjyf0axmb"))))
20474 (build-system emacs-build-system)
20475 (home-page "https://github.com/tuhdo/semantic-refactor")
20476 (synopsis "Refactoring tool for C/C++ and Lisp dialects")
20477 (description "This package provides a refactoring tool based on the
20478 Emacs Semantic parser framework. For C and C++ it supports operations such as:
20479
20480 @enumerate
20481 @item Generating class implementations
20482 @item Generating function prototypes
20483 @item Converting functions to function pointers
20484 @item Moving semantic units
20485 @item etc...
20486 @end enumerate
20487
20488 For Lisp dialects like Clojure, ELisp, and Scheme, it supports operations such
20489 as:
20490
20491 @enumerate
20492 @item Formatting the whole buffer
20493 @item Converting sexpressions to one or multiple lines
20494 @item etc...
20495 @end enumerate\n")
20496 (license license:gpl3+))))
20497
20498 (define-public emacs-nhexl-mode
20499 (package
20500 (name "emacs-nhexl-mode")
20501 (version "1.4")
20502 (source
20503 (origin
20504 (method url-fetch)
20505 (uri (string-append
20506 "https://elpa.gnu.org/packages/nhexl-mode-"
20507 version ".el"))
20508 (sha256
20509 (base32 "1c2q4w6hkvc7z4026hiqdcsm2scd6q35x7b0dk80h8qicsbi14c8"))))
20510 (build-system emacs-build-system)
20511 (home-page "https://elpa.gnu.org/packages/nhexl-mode.html")
20512 (synopsis "Minor mode to edit files via hex-dump format")
20513 (description
20514 "This package implements NHexl mode, a minor mode for editing files
20515 in hex dump format. The mode command is called @command{nhexl-mode}.
20516
20517 This minor mode implements similar functionality to @command{hexl-mode},
20518 but using a different implementation technique, which makes it
20519 usable as a \"plain\" minor mode. It works on any buffer, and does
20520 not mess with the undo log or with the major mode.
20521
20522 It also comes with:
20523
20524 @itemize
20525 @item @command{nhexl-nibble-edit-mode}: a \"nibble editor\" minor mode, where
20526 the cursor pretends to advance by nibbles (4-bit) and the self-insertion keys
20527 (which only work for hex-digits) will only modify the nibble under point.
20528 @item @command{nhexl-overwrite-only-mode}: a minor mode to try and avoid
20529 moving text. In this minor mode, not only self-inserting keys overwrite
20530 existing text, but commands like `yank' and @command{kill-region} as well.
20531 @item It overrides @code{C-u} to use hexadecimal, so you can do @code{C-u a 4
20532 C-f} to advance by #xa4 characters.
20533 @end itemize\n")
20534 (license license:gpl3+)))
20535
20536 (define-public emacs-helm-wikipedia
20537 (let ((commit "126f044e0a0e1432e0791c33ce2a41875d704a9b"))
20538 (package
20539 (name "emacs-helm-wikipedia")
20540 (version (git-version "0.0.0" "1" commit))
20541 (home-page "https://github.com/emacs-helm/helm-wikipedia/")
20542 (source
20543 (origin
20544 (method git-fetch)
20545 (uri (git-reference
20546 (url home-page)
20547 (commit commit)))
20548 (file-name (git-file-name name version))
20549 (sha256
20550 (base32
20551 "148a5xsnbsiddhf9cl7yxdk41lrv38h0pip91kcflw9d7l0dp7pr"))))
20552 (build-system emacs-build-system)
20553 (inputs
20554 `(("helm" ,emacs-helm)))
20555 (synopsis "Search suggestions and article extracts from Wikipedia for Emacs")
20556 (description
20557 "This package provides an Emacs Helm interface for search suggestions
20558 and article extracts for Wikipedia.")
20559 (license license:gpl3+))))
20560
20561 (define-public emacs-webfeeder
20562 (package
20563 (name "emacs-webfeeder")
20564 (version "1.0.0")
20565 (source
20566 (origin
20567 (method url-fetch)
20568 (uri (string-append
20569 "https://elpa.gnu.org/packages/webfeeder-"
20570 version
20571 ".tar"))
20572 (sha256
20573 (base32
20574 "06y5vxw9m6pmbrzb8v2i3w9dnhgqxz06vyx1knmgi9cczlrj4a64"))))
20575 (build-system emacs-build-system)
20576 (home-page "https://gitlab.com/Ambrevar/emacs-webfeeder")
20577 (synopsis "Build RSS and Atom webfeeds from HTML files")
20578 (description
20579 "Webfeeder is an Emacs library to generate RSS and Atom feeds from HTML
20580 files. The various elements of the HTML input are parsed with customizable
20581 functions (e.g. @code{webfeeder-title-function}).")
20582 (license license:gpl3+)))
20583
20584 (define-public emacs-evil-numbers
20585 (let ((commit "6ea1c8c3a9b37bed63d48f1128e9a4910e68187e"))
20586 (package
20587 (name "emacs-evil-numbers")
20588 (version (git-version "0.4" "1" commit))
20589 (source (origin
20590 (method git-fetch)
20591 (uri (git-reference
20592 (url "https://github.com/dieggsy/evil-numbers")
20593 (commit commit)))
20594 (file-name (git-file-name name version))
20595 (sha256
20596 (base32
20597 "1aq95hj8x13py0pwsnc6wvd8cc5yv5qin8ym9js42y5966vwj4np"))))
20598 (build-system emacs-build-system)
20599 (home-page "https://github.com/dieggsy/evil-numbers")
20600 (synopsis "Increment and decrement numbers in Emacs")
20601 (description "This package increments and decrements binary, octal,
20602 decimal and hex literals. It works like C-a/C-x in Vim, i.e. searches for
20603 number up to EOL and then increments or decrements and keeps zero padding up
20604 (unlike in Vim). When a region is active, as in Evil's visual mode, all the
20605 numbers within that region will be incremented/decremented (unlike in Vim).
20606
20607 It is a fork of https://github.com/cofi/evil-numbers, which is unmaintained.")
20608 (license license:gpl3+))))
20609
20610 (define-public emacs-rotate-text
20611 (package
20612 (name "emacs-rotate-text")
20613 (version "0.1")
20614 (source (origin
20615 (method git-fetch)
20616 (uri (git-reference
20617 (url "https://github.com/nschum/rotate-text.el.git")
20618 (commit version)))
20619 (file-name (git-file-name name version))
20620 (sha256
20621 (base32
20622 "1cgxv4aibkvv6lnssynn0438a615fz3zq8hg9sb0lhfgsr99pxln"))))
20623 (build-system emacs-build-system)
20624 (home-page "https://nschum.de/src/emacs/rotate-text/")
20625 (synopsis "Cycle through words, symbols and patterns in Emacs")
20626 (description "@code{rotate-text} allows you rotate to commonly
20627 interchanged text with a single keystroke. For example, you can toggle
20628 between \"frame-width\" and \"frame-height\", between \"public\",
20629 \"protected\" and \"private\" and between \"variable1\", \"variable2\" through
20630 \"variableN\".")
20631 (license license:gpl2+)))
20632
20633 (define-public emacs-ediprolog
20634 (package
20635 (name "emacs-ediprolog")
20636 (version "1.2")
20637 (source
20638 (origin
20639 (method url-fetch)
20640 (uri (string-append
20641 "https://elpa.gnu.org/packages/ediprolog-"
20642 version
20643 ".el"))
20644 (sha256
20645 (base32
20646 "039ffvp7c810mjyargmgw1i87g0z8qs8qicq826sd9aiz9hprfaz"))))
20647 (build-system emacs-build-system)
20648 (home-page "https://elpa.gnu.org/packages/ediprolog.html")
20649 (synopsis "Emacs Does Interactive Prolog")
20650 (description "This package provides a major mode that let the user
20651 interact with SWI-Prolog in all buffers. For instance, one can consult Prolog
20652 programs and evaluate embedded queries. This mode is focused on the command
20653 @code{ediprolog-dwim} (Do What I Mean) which is supposed to, depending on the
20654 context, carry out the appropriate action.")
20655 (license license:gpl3+)))
20656
20657 (define-public emacs-evil-cleverparens
20658 (let ((commit "8c45879d49bfa6d4e414b6c1df700a4a51cbb869")
20659 (revision "1"))
20660 (package
20661 (name "emacs-evil-cleverparens")
20662 (version (git-version "2017-07-17" revision commit))
20663 (source (origin
20664 (method git-fetch)
20665 (uri (git-reference
20666 (url "https://github.com/luxbock/evil-cleverparens.git")
20667 (commit commit)))
20668 (sha256 (base32 "0lhnybpnk4n2yhlcnj9zxn0vi5hpjfaqfhvyfy7ckzz74g8v7iyw"))
20669 (file-name (git-file-name name version))))
20670 (build-system emacs-build-system)
20671 (propagated-inputs
20672 `(("emacs-evil" ,emacs-evil)
20673 ("emacs-paredit" ,emacs-paredit)
20674 ("emacs-smartparens" ,emacs-smartparens)))
20675 (home-page "https://github.com/luxbock/evil-cleverparens")
20676 (synopsis "Emacs modal editing optimized for editing Lisp")
20677 (description "@code{evil-cleverparens} remaps Evil keybindings to allow
20678 modal editing with screwing up the structure of Lisp code. Alternatives for
20679 verb commands which would are normally destructive (such as deletion) are
20680 provided. Those alternative commands are and bound by default to their
20681 corresponding Evil keys.")
20682 (license license:expat))))
20683
20684 (define-public emacs-evil-traces
20685 (let ((commit "1931e3ea2c64b4aec393a9c25063c330deff55e3")
20686 (revision "2"))
20687 (package
20688 (name "emacs-evil-traces")
20689 (version (git-version "0.0.1" revision commit))
20690 (source (origin
20691 (method git-fetch)
20692 (uri (git-reference
20693 (url "https://github.com/mamapanda/evil-traces.git")
20694 (commit commit)))
20695 (file-name (git-file-name name version))
20696 (sha256
20697 (base32
20698 "12p9lfxscs182vbd4dy0m5gacs3d4kyprbz5yndpwvl8g2qsqplz"))))
20699 (build-system emacs-build-system)
20700 (propagated-inputs
20701 `(("emacs-evil" ,emacs-evil)))
20702 (arguments
20703 `(#:phases
20704 (modify-phases %standard-phases
20705 (add-after 'unpack 'set-shell
20706 ;; Setting the SHELL environment variable is required for the tests
20707 ;; to find sh.
20708 (lambda _
20709 (setenv "SHELL" (which "sh"))
20710 #t)))
20711 #:tests? #t
20712 #:test-command '("make" "test")))
20713 (home-page "https://github.com/mamapanda/evil-traces")
20714 (synopsis "Visual hints for @code{evil-ex}")
20715 (description "This package adds visual hints to certain @code{ex}
20716 commands in @code{evil-mode}.")
20717 (license license:gpl3+))))
20718
20719 (define-public emacs-evil-tmux-navigator
20720 (package
20721 (name "emacs-evil-tmux-navigator")
20722 (version "0.1.5")
20723 (source
20724 (origin
20725 (method git-fetch)
20726 (uri
20727 (git-reference
20728 (url "https://github.com/keith/evil-tmux-navigator")
20729 (commit version)))
20730 (file-name (git-file-name name version))
20731 (sha256
20732 (base32
20733 "1na44rbc03sr5b4z9pvnps6n4nmrqcz58nywix9825l74a419ijx"))))
20734 (propagated-inputs
20735 `(("emacs-evil" ,emacs-evil)))
20736 (build-system emacs-build-system)
20737 (home-page "https://github.com/keith/evil-tmux-navigator")
20738 (synopsis
20739 "Navigate seamlessly between emacs windows and tmux panes")
20740 (description
20741 "This package lets you use C-h, C-j, C-k and C-l to navigate between
20742 Emacs windows and tmux panes.")
20743 (license license:expat)))
20744
20745 (define-public emacs-xclip
20746 (package
20747 (name "emacs-xclip")
20748 (version "1.10")
20749 (source
20750 (origin
20751 (method url-fetch)
20752 (uri (string-append "https://elpa.gnu.org/packages/"
20753 "xclip-" version ".el"))
20754 (sha256
20755 (base32 "0i3i9kwfg8qmhcmqhhnrb1kljgwkccv63s9q1mjwqfjldyfh8j8i"))))
20756 (build-system emacs-build-system)
20757 (home-page "http://elpa.gnu.org/packages/xclip.html")
20758 (synopsis "Copy and paste GUI clipboard from Emacs in text terminal")
20759 (description
20760 "This package allows Emacs to copy to and paste from the GUI clipboard
20761 when running in text terminal.
20762
20763 It can use external command-line tools for that, e.g., @command{xclip} or
20764 @command{xsel}, which you may need to install in order for the package to
20765 work.")
20766 (license license:gpl3+)))
20767
20768 (define-public emacs-xterm-color
20769 (package
20770 (name "emacs-xterm-color")
20771 (version "1.9")
20772 (source (origin
20773 (method git-fetch)
20774 (uri (git-reference
20775 (url "https://github.com/atomontage/xterm-color.git")
20776 (commit version)))
20777 (file-name (git-file-name name version))
20778 (sha256
20779 (base32
20780 "0i9ivc5xhl5y5v0l18kbhfg8s2abb9zaimyx951b8bc0f5as68xm"))))
20781 (build-system emacs-build-system)
20782 (home-page "https://github.com/atomontage/xterm-color")
20783 (synopsis "ANSI & xterm-256 color text property translator for Emacs")
20784 (description "@code{xterm-color.el} is an ANSI control sequence to
20785 text-property translator.")
20786 (license license:bsd-2)))
20787
20788 (define-public emacs-org-noter
20789 (package
20790 (name "emacs-org-noter")
20791 (version "1.4.1")
20792 (source
20793 (origin
20794 (method git-fetch)
20795 (uri (git-reference
20796 (url "https://github.com/weirdNox/org-noter.git")
20797 (commit version)))
20798 (file-name (git-file-name name version))
20799 (sha256
20800 (base32
20801 "1vwfpdi7hfkxx4vi0cwg7rvqby3i0mymzdkyzrqzv30dazmcjpag"))))
20802 (build-system emacs-build-system)
20803 (propagated-inputs `(("emacs-org" ,emacs-org)))
20804 (home-page "https://github.com/weirdNox/org-noter")
20805 (synopsis "Synchronized, Org-mode, document annotator")
20806 (description
20807 "This package lets you create notes that are kept in sync when you
20808 scroll through the document, but that are external to it---the notes
20809 themselves live in an Org-mode file. As such, this leverages the power of
20810 Org-mode (the notes may have outlines, latex fragments, babel, etc...) while
20811 acting like notes that are made @emph{in} the document.")
20812 (license license:gpl3+)))
20813
20814 (define-public emacs-org-redmine
20815 (let ((commit "e77d013bc3784947c46a5c53f03cd7d3c68552fc"))
20816 (package
20817 (name "emacs-org-redmine")
20818 (version (git-version "0.1" "1" commit))
20819 (source (origin
20820 (method git-fetch)
20821 (uri (git-reference
20822 (url "https://github.com/gongo/org-redmine.git")
20823 (commit commit)))
20824 (file-name (git-file-name name version))
20825 (sha256
20826 (base32
20827 "06miv3mf2a39vkf6mmm5ssc47inqh7dq82khsyc03anz4d4lj822"))))
20828 (build-system emacs-build-system)
20829 (home-page "https://github.com/gongo/org-redmine/")
20830 (synopsis "Redmine tools using Emacs")
20831 (description "This program provides an Emacs client for Redmine.")
20832 (license license:gpl3+))))
20833
20834 (define-public emacs-multi-term
20835 (let ((commit "0804b11e52b960c80f5cd0712ee1e53ae70d83a4"))
20836 (package
20837 (name "emacs-multi-term")
20838 (version "1.2")
20839 (source (origin
20840 (method git-fetch)
20841 (uri (git-reference
20842 (url "https://github.com/manateelazycat/multi-term.git")
20843 (commit commit)))
20844 (file-name (git-file-name name version))
20845 (sha256
20846 (base32
20847 "0apvidmvb7rv05qjnjhax42ma8wrimik5vxx620dlbv17svz7iyf"))))
20848 (build-system emacs-build-system)
20849 (inputs `(("zsh" ,zsh)))
20850 (home-page "https://github.com/manateelazycat/multi-term")
20851 (synopsis "Manage multiple terminal buffers in Emacs")
20852 (description
20853 "This package enhances @code{term.el} with the following features:
20854
20855 @enumerate
20856 @item Functions to switch between multiple terminal buffers
20857 @item List of keys to be intercepted by @code{emacs-multi-term} instead of by
20858 the underlying terminal
20859 @item Kills the unused buffer left after exiting the terminal
20860 @item Kills the running sub-processes along with the terminal when killing the
20861 it forcibly
20862 @item Dedicated window for debugging program.
20863 @end enumerate")
20864 (license license:gpl3+))))
20865
20866 (define-public emacs-elpher
20867 (package
20868 (name "emacs-elpher")
20869 (version "2.7.8")
20870 (source
20871 (origin
20872 (method git-fetch)
20873 (uri (git-reference
20874 (url "git://thelambdalab.xyz/elpher.git")
20875 (commit (string-append "v" version))))
20876 (file-name (git-file-name name version))
20877 (sha256
20878 (base32
20879 "1x86c2lmqpmi5my356iz7lbygwpmp956dc50ng762ld0savzxff0"))))
20880 (build-system emacs-build-system)
20881 (native-inputs
20882 `(("texinfo" ,texinfo)))
20883 (arguments
20884 `(#:phases
20885 (modify-phases %standard-phases
20886 (add-before 'install 'build-doc
20887 (lambda _
20888 (invoke "makeinfo" "elpher.texi"))))))
20889 (home-page "gopher://thelambdalab.xyz/1/projects/elpher/")
20890 (synopsis "Gopher client for Emacs")
20891 (description "Elpher is a full-featured gopher client for Emacs. Its
20892 features include intuitive keyboard and mouse-driven browsing, out-of-the-box
20893 compatibility with evil-mode, clickable web and gopher links in plain text,
20894 caching of visited sites, pleasant and configurable visualization of Gopher
20895 directories, direct visualisation of image files, jumping directly to links by
20896 name (with autocompletion), a simple bookmark management system and
20897 connections using TLS encryption.")
20898 (license license:gpl3+)))
20899
20900 (define-public emacs-zerodark-theme
20901 (package
20902 (name "emacs-zerodark-theme")
20903 (version "4.6")
20904 (source
20905 (origin
20906 (method git-fetch)
20907 (uri (git-reference
20908 (url "https://github.com/NicolasPetton/zerodark-theme")
20909 (commit version)))
20910 (file-name (git-file-name name version))
20911 (sha256
20912 (base32
20913 "0pfyd1iqs7l2ngwgvj9n0r9k1px7yl16h8n502xdyf0pprxcs4p6"))))
20914 (build-system emacs-build-system)
20915 (propagated-inputs
20916 `(("emacs-flycheck" ,emacs-flycheck)
20917 ("emacs-all-the-icons" ,emacs-all-the-icons)))
20918 (home-page
20919 "https://gitlab.petton.fr/nico/zerodark-theme")
20920 (synopsis
20921 "Dark, medium contrast theme for Emacs")
20922 (description
20923 "Zerodark is a dark theme inspired from One Dark and Niflheim.
20924 An optional mode-line format can be enabled with @code{zerodark-setup-modeline-format}.")
20925 (license license:gpl3+)))
20926
20927 (define-public emacs-gnus-alias
20928 (package
20929 (name "emacs-gnus-alias")
20930 (version "20150316")
20931 (source (origin
20932 (method git-fetch)
20933 (uri (git-reference
20934 (url "https://github.com/hexmode/gnus-alias.git")
20935 (commit "9447d3ccb4c0e75d0468899cccff7aa249657bac")))
20936 (file-name (git-file-name name version))
20937 (sha256
20938 (base32
20939 "1i278npayv3kfxxd1ypi9n83q5l402sbc1zkm11pf8g006ifqsp4"))))
20940 (build-system emacs-build-system)
20941 (home-page "https://melpa.org/#/gnus-alias")
20942 (synopsis "Alternative to @code{gnus-posting-styles}")
20943 (description "This Emacs add-on provides a simple mechanism to switch
20944 Identities when using a @code{message-mode} or a @code{message-mode} derived
20945 mode. Identities can include @code{From} and @code{Organisation} headers,
20946 extra headers, body and signature. Other features include:
20947
20948 @itemize
20949 @item Switch Identities in a message buffer.
20950 @item Access original message to help determine Identity of the followup/reply
20951 message.
20952 @item Act on a forwarded message as if it were a message being replied to.
20953 @item Start a new message with a given Identity pre-selected.
20954 @end itemize")
20955 (license license:gpl2+)))
20956
20957 (define-public emacs-ox-epub
20958 (package
20959 (name "emacs-ox-epub")
20960 (version "0.3")
20961 (source (origin
20962 (method git-fetch)
20963 (uri (git-reference
20964 (url "https://github.com/ofosos/ox-epub.git")
20965 (commit (string-append "v" version))))
20966 (file-name (git-file-name name version))
20967 (sha256
20968 (base32
20969 "057sqmvm8hwkhcg3yd4i8zz2xlqsqrpyiklyiw750s3i5mxdn0k7"))))
20970 (build-system emacs-build-system)
20971 (home-page "https://github.com/ofosos/ox-epub")
20972 (synopsis "Export org mode projects to EPUB")
20973 (description "@code{ox-epub} extends the (X)HTML exporter to generate
20974 @code{.epub} files directly from OrgMode. This will export EPUB version 2,
20975 which should give broad compatibility. It should also be relatiely easy to
20976 convert the resulting @code{.epub} to a @code{.mobi} file. Needs a working
20977 zip utility (default is @code{zip}).")
20978 (license license:gpl3+)))
20979
20980 (define-public emacs-ox-hugo
20981 (package
20982 (name "emacs-ox-hugo")
20983 (version "0.8")
20984 (source
20985 (origin
20986 (method git-fetch)
20987 (uri (git-reference
20988 (url "https://github.com/kaushalmodi/ox-hugo.git")
20989 (commit (string-append "v" version))))
20990 (file-name (git-file-name name version))
20991 (sha256
20992 (base32
20993 "11h464cyc28ld0b0zridgm4drydc1qjxbm1y24zrwlkyqqjk6yr7"))))
20994 (build-system emacs-build-system)
20995 (home-page "https://ox-hugo.scripter.co")
20996 (synopsis "Hugo markdown back-end for Org export engine")
20997 (description
20998 "Ox-hugo is an Org exporter backend that exports Org to Hugo-compatible
20999 Markdown, Blackfriday, and also generates the front-matter in TOML or YAML
21000 format.")
21001 (license license:gpl3+)))
21002
21003 (define-public emacs-ox-pandoc
21004 (package
21005 (name "emacs-ox-pandoc")
21006 (version "20180510")
21007 (source (origin
21008 (method git-fetch)
21009 (uri (git-reference
21010 (url "https://github.com/kawabata/ox-pandoc.git")
21011 (commit "aa37dc7e94213d4ebedb85c384c1ba35007da18e")))
21012 (file-name (git-file-name name version))
21013 (sha256
21014 (base32
21015 "0iibxplgdp34bpq1yll2gmqjd8d8lnqn4mqjvx6cdf0y438yr4jz"))))
21016 (build-system emacs-build-system)
21017 (inputs
21018 `(("pandoc" ,ghc-pandoc)))
21019 (propagated-inputs
21020 `(("emacs-dash" ,emacs-dash)
21021 ("emacs-ht" ,emacs-ht)))
21022 (home-page "https://github.com/kawabata/ox-pandoc")
21023 (synopsis "Org exporter for Pandoc")
21024 (description "@code{ox-pandoc} is an exporter for converting Org-mode
21025 files to numerous other formats via Pandoc.")
21026 (license license:gpl3+)))
21027
21028 (define-public emacs-wc-mode
21029 (package
21030 (name "emacs-wc-mode")
21031 (version "1.3")
21032 (source (origin
21033 (method git-fetch)
21034 (uri (git-reference
21035 (url "https://github.com/bnbeckwith/wc-mode.git")
21036 (commit (string-append "v" version))))
21037 (file-name (git-file-name name version))
21038 (sha256
21039 (base32
21040 "0pjlxv46zzqdq6q131jb306vqlg4sfqls1x8vag7mmfw462hafqp"))))
21041 (build-system emacs-build-system)
21042 (home-page "https://github.com/bnbeckwith/wc-mode")
21043 (synopsis "Running word count with goals (minor mode)")
21044 (description "@code{wc-mode} is a minor mode, providing a ‘wc’ function
21045 for Emacs buffers as well as a modeline addition with live word, line and
21046 character counts. Additionally, a user can set specific goals for adding or
21047 deleting words. These goals were partly inspired by 750words.com where the
21048 goal of the site is to encourage writing by setting a goal of 750 words at a
21049 time.")
21050 (license license:gpl3+)))
21051
21052 (define-public emacs-mastodon
21053 (package
21054 (name "emacs-mastodon")
21055 (version "0.9.0")
21056 (source (origin
21057 (method git-fetch)
21058 (uri (git-reference
21059 (url "https://github.com/jdenen/mastodon.el.git")
21060 (commit version)))
21061 (file-name (git-file-name name version))
21062 (sha256
21063 (base32
21064 "0hwax6y9dghqwsbnb6f1bnc7gh8xsh5cvcnayk2sn49x8b0zi5h1"))))
21065 (build-system emacs-build-system)
21066 (arguments
21067 `(#:phases
21068 (modify-phases %standard-phases
21069 ;; Move the source files to the top level, which is included in
21070 ;; the EMACSLOADPATH.
21071 (add-after 'unpack 'move-source-files
21072 (lambda _
21073 (let ((el-files (find-files "./lisp" ".*\\.el$")))
21074 (for-each (lambda (f)
21075 (rename-file f (basename f)))
21076 el-files))
21077 #t)))))
21078 (home-page "https://github.com/jdenen/mastodon.el")
21079 (synopsis "Emacs client for Mastodon")
21080 (description "@code{mastodon.el} is an Emacs client for Mastodon, the
21081 federated microblogging social network.")
21082 (license license:gpl3+)))
21083
21084 ;; The last release tarball is for version 0.6. We pick a commit close to
21085 ;; version 0.6.10, which doesn't have a release tarball.
21086 (define-public emacs-ebdb
21087 (let ((commit "2a87f5ed2a53e3a4e91e8c88ba5afc49f5e945df")
21088 (revision "0"))
21089 (package
21090 (name "emacs-ebdb")
21091 (version (git-version "0.6.10" revision commit))
21092 (source (origin
21093 (method git-fetch)
21094 (uri (git-reference
21095 (url "https://github.com/girzel/ebdb.git")
21096 (commit commit)))
21097 (file-name (git-file-name name version))
21098 (sha256
21099 (base32
21100 "0fidy7z0c86dpqiss97sg5s92fd3fj4bdl8pqqdgg2m00jx4mrjz"))))
21101 (build-system emacs-build-system)
21102 (home-page "https://github.com/girzel/ebdb")
21103 (synopsis "EIEIO port of BBDB, Emacs's contact-management package")
21104 (description "EBDB is a contact management/addressbook package for
21105 Emacs. It's a re-write of the Insidious Big Brother Database (BBDB) using
21106 Emacs Lisp's (relatively new) EIEIO object oriented libraries.")
21107 (license license:gpl3+))))
21108
21109 (define-public emacs-refactor
21110 (package
21111 (name "emacs-refactor")
21112 (version "0.4")
21113 (source (origin
21114 (method git-fetch)
21115 (uri (git-reference
21116 (url "https://github.com/Wilfred/emacs-refactor.git")
21117 (commit version)))
21118 (file-name (git-file-name name version))
21119 (sha256
21120 (base32
21121 "1yky7vlv91501xb43xk19rr8mxlvrsxhawsc98jivf64nad5dqay"))))
21122 (build-system emacs-build-system)
21123 (propagated-inputs
21124 `(("emacs-dash" ,emacs-dash)
21125 ("emacs-s" ,emacs-s)
21126 ("emacs-popup" ,emacs-popup)
21127 ("emacs-list-utils" ,emacs-list-utils)
21128 ("emacs-iedit" ,emacs-iedit)))
21129 (home-page "https://github.com/Wilfred/emacs-refactor/")
21130 (synopsis "Language-specific refactoring in Emacs")
21131 (description "Emacs Refactor (EMR) is a framework for providing
21132 language-specific refactoring in Emacs. It includes refactoring commands for
21133 a variety of languages, including elisp itself.")
21134 (license license:gpl3+)))
21135
21136 (define-public emacs-flyspell-correct
21137 (package
21138 (name "emacs-flyspell-correct")
21139 (version "0.5")
21140 (source
21141 (origin
21142 (method git-fetch)
21143 (uri (git-reference
21144 (url "https://github.com/d12frosted/flyspell-correct.git")
21145 (commit (string-append "v" version))))
21146 (file-name (git-file-name name version))
21147 (sha256
21148 (base32
21149 "1r9hmz7sihhy7npv6nxp04sy57glzmfax5d67mwn96fdnc0yhlnd"))))
21150 (build-system emacs-build-system)
21151 (propagated-inputs
21152 `(("emacs-helm" ,emacs-helm)
21153 ("emacs-ivy" ,emacs-ivy)
21154 ("emacs-popup" ,emacs-popup)))
21155 (home-page
21156 "https://github.com/d12frosted/flyspell-correct")
21157 (synopsis
21158 "Correcting words with flyspell via custom interfaces")
21159 (description
21160 "This package provides functionality for correcting words via custom
21161 interfaces. Several interfaces are supported beside the classic ido: popup,
21162 helm and ivy.")
21163 (license license:gpl3+)))
21164
21165 (define-public emacs-org-emms
21166 (let ((commit "07a8917f3d628c32e5de1dbd118ac08203772533")
21167 (revision "1"))
21168 (package
21169 (name "emacs-org-emms")
21170 (version
21171 (git-version "0.1" revision commit))
21172 (source
21173 (origin
21174 (method git-fetch)
21175 (uri (git-reference
21176 (url "https://gitlab.com/jagrg/org-emms.git")
21177 (commit commit)))
21178 (file-name (git-file-name name commit))
21179 (sha256
21180 (base32
21181 "1sqsm5sv311xfdk4f4rsnvprdf2v2vm7l1b3vqi7pc0g8adlnw1d"))))
21182 (build-system emacs-build-system)
21183 (propagated-inputs
21184 `(("emms" ,emacs-emms)
21185 ("emacs-org" ,emacs-org)))
21186 (home-page "https://gitlab.com/jagrg/org-emms")
21187 (synopsis "Play multimedia files from org-mode")
21188 (description
21189 "This package provides a new org link type for playing back multimedia
21190 files from org-mode using EMMS, The Emacs Multimedia System. If the link
21191 contains a track position, playback will start at the specified position.")
21192 (license license:gpl3+))))
21193
21194 (define-public emacs-org-jira
21195 (package
21196 (name "emacs-org-jira")
21197 (version "4.3.1")
21198 (source
21199 (origin
21200 (method git-fetch)
21201 (uri (git-reference
21202 (url "https://github.com/ahungry/org-jira.git")
21203 (commit version)))
21204 (file-name (git-file-name name version))
21205 (sha256
21206 (base32
21207 "1l80r2a9zzbfk2c78i40h0ww79vm9v4j6xi2h5i4w9kqh10rs6h2"))))
21208 (build-system emacs-build-system)
21209 (propagated-inputs
21210 `(("emacs-request" ,emacs-request)
21211 ("emacs-s" ,emacs-s)
21212 ("emacs-dash" ,emacs-dash)
21213 ("emacs-org" ,emacs-org)))
21214 (home-page "https://github.com/ahungry/org-jira")
21215 (synopsis "Syncing between Jira and Org-mode")
21216 (description
21217 "This package provides an extension to org-mode for syncing issues with
21218 JIRA issue servers.")
21219 (license license:gpl3+)))
21220
21221 (define-public emacs-systemd-mode
21222 (package
21223 (name "emacs-systemd-mode")
21224 (version "1.6")
21225 (source (origin
21226 (method git-fetch)
21227 (uri (git-reference
21228 (url "https://github.com/holomorph/systemd-mode.git")
21229 (commit (string-append "v" version))))
21230 (file-name (git-file-name name version))
21231 (sha256
21232 (base32
21233 "0ylgnvpfindg4cxccbqy02ic7p0i9rygf1w16dm1filwhbqvjplq"))))
21234 (build-system emacs-build-system)
21235 (arguments '(#:include '("\\.el$" "\\.txt$")))
21236 (home-page "https://github.com/holomorph/systemd-mode")
21237 (synopsis
21238 "Major mode for editing systemd units")
21239 (description
21240 "Major mode for editing systemd units in GNU Emacs.")
21241 (license license:gpl3+)))
21242
21243 (define-public emacs-ssh-config-mode
21244 (let ((commit "4c1dfa57d452cb5654453bf186c8ff63e1e71b56")
21245 (revision "1"))
21246 (package
21247 (name "emacs-ssh-config-mode")
21248 (version (git-version "8.0" revision commit))
21249 (source
21250 (origin
21251 (method git-fetch)
21252 (uri
21253 (git-reference
21254 (url "https://github.com/jhgorrell/ssh-config-mode-el.git")
21255 (commit commit)))
21256 (file-name (git-file-name name commit))
21257 (sha256
21258 (base32
21259 "0crglfdazzckizbwzmgl2rn6j85avfzkr1q7ijxd17rp2anvr9bd"))))
21260 (build-system emacs-build-system)
21261 (arguments '(#:include '("\\.el$" "\\.txt$")))
21262 (home-page
21263 "https://github.com/jhgorrell/ssh-config-mode-el")
21264 (synopsis
21265 "Mode for fontification of ~/.ssh/config")
21266 (description
21267 "This package fontifies the ssh config keywords and creates
21268 keybindings for skipping from host section to host section.")
21269 (license license:gpl3+))))
21270
21271 (define-public emacs-ssh-agency
21272 (package
21273 (name "emacs-ssh-agency")
21274 (version "0.4")
21275 (source (origin
21276 (method git-fetch)
21277 (uri (git-reference
21278 (url "https://github.com/magit/ssh-agency.git")
21279 (commit version)))
21280 (file-name (git-file-name name version))
21281 (sha256
21282 (base32
21283 "0895n7bss4wdydic1gflr03f2cwdyqywl16gvb599lpn288jhwvz"))))
21284 (build-system emacs-build-system)
21285 (propagated-inputs
21286 `(("dash" ,emacs-dash)))
21287 (home-page "https://github.com/magit/ssh-agency")
21288 (synopsis "Manage @code{ssh-agent} from Emacs")
21289 (description
21290 "This package provides functions to startup @code{ssh-agent}, set the
21291 needed environment variables in Emacs, and prompt for passphrases from within
21292 Emacs so that pushes and pulls from @code{magit} will not require entering any
21293 passphrase.
21294
21295 It can also be useful on Unix-like platforms to delay having to enter your
21296 passphrase until the first time you push to a remote.")
21297 (license license:gpl3+)))
21298
21299 (define-public emacs-tao-theme
21300 (let ((commit "c5107fbe7e752f4e58c2d2147ff18a1ebb12937c")
21301 (revision "0"))
21302 (package
21303 (name "emacs-tao-theme")
21304 (version (git-version "0" revision commit))
21305 (source
21306 (origin
21307 (method git-fetch)
21308 (uri (git-reference
21309 (url "https://github.com/11111000000/tao-theme-emacs.git")
21310 (commit commit)))
21311 (file-name (git-file-name name version))
21312 (sha256
21313 (base32
21314 "07vvlglmkj87hpxz79s3bl2cjn71vain57fdxs7j9vlr5jkchxwn"))))
21315 (build-system emacs-build-system)
21316 (home-page "https://github.com/11111000000/tao-theme-emacs")
21317 (synopsis "Parameterized uncolored color themes for Emacs")
21318 (description
21319 "This package provides two parameterized uncolored color themes for
21320 Emacs: @code{tao-yin} and @code{tao-yang}. The default
21321 @code{tao-theme-scale-fn} is @code{tao-theme-golden-scale}.
21322
21323 You can customize: @code{tao-theme-scale-fn}, that returns 16 2-digit numbers;
21324 @code{tao-theme-scale-filter-fn}, for edge filter; and
21325 @code{tao-theme-use-height}.")
21326 (license license:gpl3+))))
21327
21328 (define-public emacs-almost-mono-themes
21329 (let ((commit "c3a85c1a665530a5d830665969725cdba8eceb75")
21330 (revision "0"))
21331 (package
21332 (name "emacs-almost-mono-themes")
21333 (version (git-version "0" revision commit))
21334 (source
21335 (origin
21336 (method git-fetch)
21337 (uri (git-reference
21338 (url "https://github.com/cryon/almost-mono-themes.git")
21339 (commit commit)))
21340 (file-name (git-file-name name version))
21341 (sha256
21342 (base32
21343 "034k32xkr5ma415hlkbl35z0jxc4sa1inf87hg3y6lrlfl83fyjh"))))
21344 (build-system emacs-build-system)
21345 (home-page "https://github.com/cryon/almost-mono-themes")
21346 (synopsis "Almost monochromatic themes for emacs in a few variants")
21347 (description
21348 "This package provides a collection of almost monochrome Emacs themes:
21349 @code{almost-mono-black} and @code{almost-mono-white}.")
21350 (license license:gpl3+))))
21351
21352 (define-public emacs-quasi-monochrome
21353 (let ((commit "68060dbbc0bbfe4924387392874186c5a29bb434")
21354 (revision "0"))
21355 (package
21356 (name "emacs-quasi-monochrome")
21357 (version (git-version "1.2" revision commit))
21358 (source
21359 (origin
21360 (method git-fetch)
21361 (uri (git-reference
21362 (url "https://github.com/lbolla/emacs-quasi-monochrome.git")
21363 (commit commit)))
21364 (file-name (git-file-name name version))
21365 (sha256
21366 (base32
21367 "0zp2xr0bjfqrpb0bqczzick1vvbjmipjavrdi70kw6a9caynvq22"))))
21368 (build-system emacs-build-system)
21369 (home-page "https://github.com/lbolla/emacs-quasi-monochrome")
21370 (synopsis "Dark color theme for Emacs")
21371 (description
21372 "This package provides a dark color theme with a black background, high
21373 contrast and few colors.")
21374 (license license:gpl3+))))
21375
21376 (define-public emacs-doom-themes
21377 (let ((commit "54039c5171e3f8c9cef1f82122549b66cd8c8f7b")
21378 (revision "4")
21379 (version "2.1.6"))
21380 (package
21381 (name "emacs-doom-themes")
21382 (version (git-version version revision commit))
21383 (source (origin
21384 (method git-fetch)
21385 (uri (git-reference
21386 (url "https://github.com/hlissner/emacs-doom-themes.git")
21387 (commit commit)))
21388 (file-name (git-file-name name version))
21389 (sha256
21390 (base32 "1iwdjq4q2gkhi6jwas3ywgmdz5dg14sfb3fzhqd7wih6j3i2l3cr"))))
21391 (build-system emacs-build-system)
21392 (native-inputs
21393 `(("emacs-ert-runner" ,emacs-ert-runner)))
21394 (arguments
21395 `(#:tests? #t
21396 #:test-command '("ert-runner")
21397 #:modules ((guix build emacs-build-system)
21398 (guix build utils)
21399 (guix build emacs-utils)
21400 (srfi srfi-1))
21401 #:phases
21402 (modify-phases %standard-phases
21403 (add-after 'unpack 'move-themes
21404 (lambda _
21405 ;; Move the source files to the top level, which is in the
21406 ;; EMACSLOADPATH.
21407 (for-each (lambda (f)
21408 (rename-file f (basename f)))
21409 (find-files "./themes" ".*\\.el$"))
21410 #t))
21411 ;; There is a byte-code overflow issue in the latest checkout
21412 ;; which affects byte-compilation for several (read `most') theme
21413 ;; files. In order to cope with this issue, we disable
21414 ;; byte-compilation until this issue is resolved.
21415 ;; <https://github.com/hlissner/emacs-doom-themes/issues/314>
21416 ;;
21417 ;; NOTE: Byte-comp has been disabled in/after commit 9cd6872.
21418 ;; However our method of selective disabling is preferential to
21419 ;; just widely disabling byte-compilation.
21420 (add-after 'move-themes 'disable-breaking-compilation
21421 (lambda _
21422 (for-each (lambda (file)
21423 (chmod file #o600) ; needed to write changes.
21424 (emacs-batch-disable-compilation file))
21425 (cons "doom-themes-ext-neotree.el"
21426 ;; NOTE: When updating this package, determine
21427 ;; whether changed theme files can byte-compile.
21428 ;; If they can successfully byte-compile, add them
21429 ;; to this list of exceptions.
21430 (lset-difference string-contains
21431 (find-files "." ".*-theme.el")
21432 '("material"
21433 "snazzy"
21434 "tomorrow-day"))))
21435 #t)))))
21436 (synopsis "Wide collection of color themes for Emacs")
21437 (description "Emacs-doom-themes contains numerous popular color themes for
21438 Emacs that integrate with major modes like Org-mode.")
21439 (home-page "https://github.com/hlissner/emacs-doom-themes")
21440 (license license:expat))))
21441
21442 (define-public emacs-modus-operandi-theme
21443 (package
21444 (name "emacs-modus-operandi-theme")
21445 (version "0.8.1")
21446 (source
21447 (origin
21448 (method url-fetch)
21449 (uri (string-append "https://elpa.gnu.org/packages/"
21450 "modus-operandi-theme-" version ".el"))
21451 (sha256
21452 (base32 "0i8s6blkhx53m1jk1bblqs7fwlbn57xkxxhsp9famcj5m0xyfimb"))))
21453 (build-system emacs-build-system)
21454 (home-page "https://gitlab.com/protesilaos/modus-themes")
21455 (synopsis "Accessible light theme (WCAG AAA)")
21456 (description
21457 "Modus operandi is the light version of the Modus accessible themes for
21458 GNU Emacs. The contrast ratio between foreground and background values should
21459 always be greater than 7:1, which conforms with the WCAG AAA accessibility
21460 standard. This is the highest standard of its kind.")
21461 (license license:gpl3+)))
21462
21463 (define-public emacs-modus-vivendi-theme
21464 (package
21465 (name "emacs-modus-vivendi-theme")
21466 (version "0.8.1")
21467 (source
21468 (origin
21469 (method url-fetch)
21470 (uri (string-append "https://elpa.gnu.org/packages/"
21471 "modus-vivendi-theme-" version ".el"))
21472 (sha256
21473 (base32 "121nlr5w58j4q47rh9xjjf9wzb97yl2m1n2l6g58ck4vnarwndl1"))))
21474 (build-system emacs-build-system)
21475 (home-page "https://gitlab.com/protesilaos/modus-themes")
21476 (synopsis "Accessible dark theme (WCAG AAA)")
21477 (description
21478 "Modus vivendi is the dark version of the Modus accessible themes for GNU
21479 Emacs. The contrast ratio between foreground and background values should
21480 always be greater than 7:1, which conforms with the WCAG AAA accessibility
21481 standard. This is the highest standard of its kind.")
21482 (license license:gpl3+)))
21483
21484 (define-public emacs-modus-themes
21485 (deprecated-package "emacs-modus-themes" emacs-modus-operandi-theme))
21486
21487 (define-public emacs-punpun-theme
21488 (let ((commit "2f78125609277b2478abdebd8f9d5ee10a823b65")
21489 (revision "0"))
21490 (package
21491 (name "emacs-punpun-theme")
21492 (version (git-version "0" revision commit))
21493 (source
21494 (origin
21495 (method git-fetch)
21496 (uri (git-reference
21497 (url "https://github.com/wasamasa/punpun-theme.git")
21498 (commit commit)))
21499 (file-name (git-file-name name version))
21500 (sha256
21501 (base32
21502 "1sgxrj3igzq86h3whfymxf4qzv9kpvcrlhbvjmnp7fwrplys0n7d"))))
21503 (build-system emacs-build-system)
21504 (home-page "https://github.com/wasamasa/punpun-theme")
21505 (synopsis "Bleak Emacs theme")
21506 (description
21507 "A bleak theme. Uses shades of gray and the occasional splash of
21508 color. Designed for 256-color terminals. Comes in light and dark!")
21509 (license license:gpl3+))))
21510
21511 (define-public emacs-spacemacs-theme
21512 (let ((commit "f79c40fb241e204539fde97200abae91e828e585")
21513 (revision "1"))
21514 (package
21515 (name "emacs-spacemacs-theme")
21516 (version (git-version "0" revision commit)) ;no release yet
21517 (source
21518 (origin
21519 (method git-fetch)
21520 (uri (git-reference
21521 (url "https://github.com/nashamri/spacemacs-theme.git")
21522 (commit commit)))
21523 (file-name (git-file-name name version))
21524 (sha256
21525 (base32 "1l2kkiyrskkpx8f901v0wrzaah1wjg15zdyv88spj3mh3hwd3b6n"))))
21526 (build-system emacs-build-system)
21527 (home-page "https://github.com/nashamri/spacemacs-theme")
21528 (synopsis
21529 "Light and dark theme for spacemacs that supports GUI and terminal")
21530 (description
21531 "Spacemacs theme is an Emacs color theme that started as
21532 a theme for Spacemacs. The theme comes with dark and light variants
21533 and it should work well with 256 color terminals.")
21534 (license license:gpl3+))))
21535
21536 (define-public emacs-elixir-mode
21537 (package
21538 (name "emacs-elixir-mode")
21539 (version "2.3.1")
21540 (source
21541 (origin
21542 (method git-fetch)
21543 (uri (git-reference
21544 (url "https://github.com/elixir-editors/emacs-elixir.git")
21545 (commit (string-append "v" version))))
21546 (file-name (git-file-name name version))
21547 (sha256
21548 (base32 "06bi68x49v6f7flpz279mm4jpg31ll3s274givm3pvr8slcxs6xg"))))
21549 (build-system emacs-build-system)
21550 (propagated-inputs
21551 `(("emacs-pkg-info" ,emacs-pkg-info)))
21552 (home-page
21553 "https://github.com/elixir-editors/emacs-elixir")
21554 (synopsis "Major mode for editing Elixir files")
21555 (description
21556 "Elixir-Mode provides font-locking, indentation and navigation support
21557 for the Elixir programming language.")
21558 (license license:gpl3+)))
21559
21560 (define-public emacs-dimmer
21561 (package
21562 (name "emacs-dimmer")
21563 (version "0.3.0")
21564 (source
21565 (origin
21566 (method git-fetch)
21567 (uri (git-reference
21568 (url "https://github.com/gonewest818/dimmer.el.git")
21569 (commit version)))
21570 (file-name (git-file-name name version))
21571 (sha256
21572 (base32 "1jv9rrv15nb5hpwcaqlpjj932gyisrkwbv11czkg3v0bn7qn6yif"))))
21573 (build-system emacs-build-system)
21574 (home-page "https://github.com/gonewest818/dimmer.el")
21575 (synopsis "Visually highlights the selected buffer in Emacs")
21576 (description "Dimmer provides a minor mode that indicates which buffer is
21577 currently active by dimming the faces in the other buffers. It does this
21578 nondestructively, and computes the dimmed faces dynamically such that your
21579 overall color scheme is shown in a muted form without requiring you to define
21580 what is a \"dim\" version of every face.")
21581 (license license:gpl3+)))
21582
21583 (define-public emacs-minibuffer-line
21584 (package
21585 (name "emacs-minibuffer-line")
21586 (version "0.1")
21587 (source
21588 (origin
21589 (method url-fetch)
21590 (uri (string-append
21591 "https://elpa.gnu.org/packages/minibuffer-line-"
21592 version
21593 ".el"))
21594 (sha256
21595 (base32 "1ny4iirp26na5118wfgxlv6fxlrdclzdbd9m0lkrv51w0qw7spil"))))
21596 (build-system emacs-build-system)
21597 (home-page "https://elpa.gnu.org/packages/minibuffer-line.html")
21598 (synopsis "Display status info in the minibuffer window")
21599 (description
21600 "This package lets you display various status information in the
21601 minibuffer window instead of the mode-line. Of course, this is only displayed
21602 when the minibuffer window is not already used for other things (e.g. a
21603 minibuffer or an each area message).
21604
21605 The contents and aspect is controlled by the @code{minibuffer-line-format}
21606 variable and the @code{minibuffer-line} face.")
21607 (license license:gpl3+)))
21608
21609 (define-public emacs-eshell-prompt-extras
21610 (package
21611 (name "emacs-eshell-prompt-extras")
21612 (version "1.0")
21613 (home-page "https://github.com/zwild/eshell-prompt-extras")
21614 (source
21615 (origin
21616 (method git-fetch)
21617 (uri (git-reference
21618 (url home-page)
21619 (commit version)))
21620 (file-name (git-file-name name version))
21621 (sha256
21622 (base32
21623 "0gb07mns23dgqqr6qfy7d6ndizy15sqgbgfaig6k5xbjnwi02v9g"))))
21624 (build-system emacs-build-system)
21625 (synopsis "Display extra information and color for your Eshell prompt")
21626 (description "This library displays various customizable elements for
21627 @code{eshell} prompts: remote user, remote host, python virtual environment
21628 info, git branch, git dirty info and git unpushed number. Multiple themes are
21629 available.")
21630 (license license:gpl3+)))
21631
21632 (define-public emacs-eshell-did-you-mean
21633 (package
21634 (name "emacs-eshell-did-you-mean")
21635 (version "0.1")
21636 (home-page "https://github.com/xuchunyang/eshell-did-you-mean")
21637 (source
21638 (origin
21639 (method git-fetch)
21640 (uri (git-reference
21641 (url home-page)
21642 (commit (string-append "v" version))))
21643 (file-name (git-file-name name version))
21644 (sha256
21645 (base32
21646 "0v0wshck5n4hspcv1zk1g2nm6xiigcjp16lx0dc8wzkl6ymljvbg"))))
21647 (build-system emacs-build-system)
21648 (synopsis "Display suggestions on 'command not found' in Eshell")
21649 (description "This library adds a list of 'Did you mean...' suggestions
21650 when the command was not found in Eshell. The suggestions are found after the
21651 commands that bear resemblance to the input command.")
21652 (license license:gpl3+)))
21653
21654 (define-public emacs-unfill
21655 (package
21656 (name "emacs-unfill")
21657 (version "0.2")
21658 (home-page "https://github.com/purcell/unfill")
21659 (source
21660 (origin
21661 (method git-fetch)
21662 (uri (git-reference
21663 (url home-page)
21664 (commit version)))
21665 (file-name (git-file-name name version))
21666 (sha256
21667 (base32 "0wyradin5igp25nsd3n22i2ppxhmy49ac1iq1w2715v8pfmiydnc"))))
21668 (build-system emacs-build-system)
21669 (synopsis "Inverse of Emacs' @code{fill-paragraph} and @code{fill-region}")
21670 (description
21671 "The functions in this package provide the inverse of Emacs'
21672 @code{fill-paragraph} and @code{fill-region}.")
21673 (license license:gpl3+)))
21674
21675 (define-public emacs-windower
21676 (package
21677 (name "emacs-windower")
21678 (version "0.0.1")
21679 (home-page "https://gitlab.com/ambrevar/emacs-windower")
21680 (source
21681 (origin
21682 (method git-fetch)
21683 (uri (git-reference
21684 (url home-page)
21685 (commit version)))
21686 (file-name (git-file-name name version))
21687 (sha256
21688 (base32 "0h24gb1ip0czfasxm8wwcc3v19g7mznzw2sxkmmfb5iis59p7dfy"))))
21689 (build-system emacs-build-system)
21690 (synopsis "Helper functions for window manipulation in Emacs")
21691 (description
21692 "This package provides helper functions for window manipulation in Emacs,
21693 such as:
21694
21695 @itemize
21696 @item switch to last buffer,
21697 @item toggle single window display,
21698 @item toggle between horizontal and vertical splits,
21699 @item move borders more naturally,
21700 @item swap windows à-la @code{windmove}.
21701 @end itemize")
21702 (license license:gpl3+)))
21703
21704 (define-public emacs-flycheck-cpplint
21705 (let ((commit "1d8a090861572258ab704915263feeb3a436c3d2")
21706 (revision "1"))
21707 (package
21708 (name "emacs-flycheck-cpplint")
21709 (version (git-version "0.1" revision commit))
21710 (source
21711 (origin
21712 (method git-fetch)
21713 (uri (git-reference
21714 (url "https://github.com/flycheck/flycheck-google-cpplint")
21715 (commit commit)))
21716 (file-name (git-file-name name version))
21717 (sha256
21718 (base32 "0l6sg83f6z8x2alnblpv03rj442sbnkkkcbf8i0agjmx3713a5yx"))))
21719 (build-system emacs-build-system)
21720 (arguments
21721 `(#:phases
21722 (modify-phases %standard-phases
21723 (add-after 'unpack 'set-cpplint-path
21724 (lambda _
21725 (substitute* "flycheck-google-cpplint.el"
21726 (("\"cpplint.py\"")
21727 (string-append "\"" (which "cpplint") "\"")))
21728 #t)))))
21729 (inputs
21730 `(("cpplint" ,cpplint)))
21731 (propagated-inputs
21732 `(("flycheck-mode" ,emacs-flycheck)))
21733 (synopsis "Google C++ checker for Flycheck")
21734 (description "This package provides a interface for @code{cpplint} over
21735 Flycheck plugin. @code{cpplint} is a static code checker for C++, following
21736 Google guidelines.")
21737 (home-page "https://github.com/flycheck/flycheck-google-cpplint")
21738 (license license:gpl3+))))
21739
21740 (define-public emacs-helm-fish-completion
21741 (package
21742 (name "emacs-helm-fish-completion")
21743 (version "0.4")
21744 (home-page "https://github.com/emacs-helm/helm-fish-completion")
21745 (source
21746 (origin
21747 (method git-fetch)
21748 (uri (git-reference
21749 (url home-page)
21750 (commit version)))
21751 (file-name (git-file-name name version))
21752 (sha256
21753 (base32 "0mh10qq3r16hjrayrbns51gmjpjnmpzy4i05rwn14rf2icvhs6x8"))))
21754 (build-system emacs-build-system)
21755 (propagated-inputs
21756 `(("helm" ,emacs-helm)
21757 ("fish-completion" ,emacs-fish-completion)))
21758 (synopsis "Helm interface for Emacs fish-completion")
21759 (description "Helm Fish Completion is a Helm interface for Emacs
21760 fish-completion. It can be used in both Eshell and M-x shell.")
21761 (license license:gpl3+)))
21762
21763 (define-public emacs-telega
21764 ;; This package has versions newer than indicated on MELPA.
21765 ;; Get the current version from `telega-version` in telega.el.
21766 ;; or by running M-x telega-version.
21767 (let ((commit "ae09592498ce380e57fbb76725fd4c89ae248864")
21768 (revision "0")
21769 (version "0.6.0"))
21770 (package
21771 (name "emacs-telega")
21772 (version (git-version version revision commit))
21773 (source
21774 (origin
21775 (method git-fetch)
21776 (uri (git-reference
21777 (url "https://github.com/zevlg/telega.el.git")
21778 (commit commit)))
21779 (sha256
21780 (base32
21781 "0mv6i80958d9crzspzik5xh5g8326115bvg2frgv0dp9p6rm86m3"))
21782 (patches (search-patches "emacs-telega-test-env.patch"))
21783 (file-name (git-file-name name version))))
21784 (build-system gnu-build-system)
21785 (arguments
21786 `(#:modules ((guix build gnu-build-system)
21787 ((guix build emacs-build-system) #:prefix emacs:)
21788 (guix build utils)
21789 (guix build emacs-utils))
21790 #:imported-modules (,@%gnu-build-system-modules
21791 (guix build emacs-build-system)
21792 (guix build emacs-utils))
21793 #:test-target "test"
21794 #:make-flags (list "WITH_VOIP=t")
21795 #:phases
21796 (modify-phases %standard-phases
21797 (add-after 'unpack 'prefix-patch
21798 (lambda _
21799 (substitute* "server/Makefile"
21800 (("CC=cc")
21801 "CC=gcc")
21802 (("INSTALL_PREFIX=\\$\\(HOME\\)/.telega")
21803 (string-append "INSTALL_PREFIX=" (assoc-ref %outputs "out")
21804 "/bin"))
21805 ;; Manually invoke `run_tests.py` after install phase.
21806 (("python3 run_tests.py")
21807 ""))
21808 #t))
21809 (add-after 'unpack 'telega-paths-patch
21810 (lambda* (#:key inputs #:allow-other-keys)
21811 ;; Hard-code paths to `ffplay` and `ffmpeg`.
21812 (let ((ffplay-bin (string-append (assoc-ref inputs "ffmpeg")
21813 "/bin/ffplay"))
21814 (ffmpeg-bin (string-append (assoc-ref inputs "ffmpeg")
21815 "/bin/ffmpeg")))
21816 (substitute* "telega-ffplay.el"
21817 (("\\(executable-find \"ffplay\"\\)")
21818 (string-append
21819 "(and (file-executable-p \"" ffplay-bin "\")"
21820 "\"" ffplay-bin "\")"))
21821 (("\\(executable-find \"ffmpeg\"\\)")
21822 (string-append
21823 "(and (file-executable-p \"" ffmpeg-bin "\")"
21824 "\"" ffmpeg-bin "\")"))))
21825 ;; Modify telega-util to reflect unique dir name in
21826 ;; `telega-install-data' phase.
21827 (substitute* "telega-util.el"
21828 (("\\(concat \"etc/\" filename\\) telega--lib-directory")
21829 "(concat \"telega-data/\" filename)
21830 (locate-dominating-file telega--lib-directory
21831 \"telega-data\")"))
21832 #t))
21833 ;; The server test suite has a hardcoded path.
21834 ;; Reset this behavior to use the proper path.
21835 (add-after 'unpack 'server-suite-patch
21836 (lambda _
21837 (substitute* "server/run_tests.py"
21838 (("~/.telega/telega-server")
21839 (string-append (assoc-ref %outputs "out")
21840 "/bin/telega-server")))
21841 #t))
21842 (add-after 'install 'run-server-suite
21843 (lambda _
21844 (invoke "python3" "server/run_tests.py")
21845 #t))
21846 (delete 'configure)
21847 ;; Build emacs-side using `emacs-build-system'
21848 (add-after 'compress-documentation 'emacs-add-source-to-load-path
21849 (assoc-ref emacs:%standard-phases 'add-source-to-load-path))
21850 (add-after 'emacs-add-source-to-load-path 'emacs-install
21851 (assoc-ref emacs:%standard-phases 'install))
21852 ;; This step installs subdir /etc, which contains images, sounds and
21853 ;; various other data, next to the site-lisp dir.
21854 (add-after 'emacs-install 'telega-install-data
21855 (lambda* (#:key outputs #:allow-other-keys)
21856 (copy-recursively
21857 "etc"
21858 (string-append (assoc-ref outputs "out")
21859 "/share/emacs/telega-data/"))
21860 #t))
21861 (add-after 'telega-install-data 'emacs-build
21862 (assoc-ref emacs:%standard-phases 'build))
21863 (add-after 'emacs-build 'emacs-make-autoloads
21864 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
21865 (inputs
21866 `(("ffmpeg" ,ffmpeg))) ; mp4/gif support.
21867 (propagated-inputs
21868 `(("emacs-visual-fill-column" ,emacs-visual-fill-column)
21869 ("emacs-company" ,emacs-company)
21870 ("libwebp" ,libwebp))) ; sticker support.
21871 (native-inputs
21872 `(("tdlib" ,tdlib)
21873 ("libtgvoip" ,libtgvoip) ; VoIP support.
21874 ;; Use Emacs with wide ints on 32-bit architectures.
21875 ("emacs" ,(match (%current-system)
21876 ((or "i686-linux" "armhf-linux")
21877 emacs-wide-int)
21878 (_
21879 emacs)))
21880 ("python" ,python)))
21881 (synopsis "GNU Emacs client for the Telegram messenger")
21882 (description
21883 "Telega is a full-featured, unofficial GNU Emacs-based client for the
21884 Telegram messaging platform.")
21885 (home-page "https://github.com/zevlg/telega.el")
21886 (license license:gpl3+))))
21887
21888 (define-public emacs-doom-modeline
21889 (package
21890 (name "emacs-doom-modeline")
21891 (version "2.8.2")
21892 (source (origin
21893 (method git-fetch)
21894 (uri (git-reference
21895 (url "https://github.com/seagle0128/doom-modeline.git")
21896 (commit (string-append "v" version))))
21897 (sha256
21898 (base32
21899 "11srz1mr821axggs2jcmdhihxx09a2dniqv3n039wbdfaimfaidz"))
21900 (file-name (git-file-name name version))))
21901 (build-system emacs-build-system)
21902 (arguments
21903 `(#:test-command '("ert-runner")))
21904 (native-inputs `(("emacs-ert-runner" ,emacs-ert-runner)))
21905 (propagated-inputs
21906 `(("emacs-all-the-icons" ,emacs-all-the-icons)
21907 ("emacs-shrink-path" ,emacs-shrink-path)))
21908 (synopsis "Fancy and fast mode-line inspired by minimalism design")
21909 (description "Doom modeline is a complete modeline for GNU Emacs inspired
21910 by the Doom theme collection. This modeline features support for mode-specific
21911 icon support, git integration, and several other utilities.")
21912 (home-page "https://github.com/seagle0128/doom-modeline/")
21913 (license license:gpl3+)))
21914
21915 (define-public emacs-shrink-path
21916 (package
21917 (name "emacs-shrink-path")
21918 (version "0.3.1")
21919 (source
21920 (origin
21921 (method git-fetch)
21922 (uri (git-reference
21923 (url "https://gitlab.com/bennya/shrink-path.el.git")
21924 (commit (string-append "v" version))))
21925 (sha256
21926 (base32
21927 "0kx0c4syd7k6ff9j463bib32pz4wq0rzjlg6b0yqnymlzfr1mbki"))
21928 (file-name (git-file-name name version))))
21929 (build-system emacs-build-system)
21930 (propagated-inputs
21931 `(("emacs-s" ,emacs-s)
21932 ("emacs-dash" ,emacs-dash)
21933 ("emacs-f" ,emacs-f)))
21934 (home-page "https://gitlab.com/bennya/shrink-path.el")
21935 (synopsis "Fish-style path truncation in emacs-lisp")
21936 (description "This package provides utility functions that allow for
21937 Fish-style truncated directories in eshell and various modelines.")
21938 (license license:gpl3+)))
21939
21940 (define-public emacs-org-present
21941 (let ((commit "d13acd70eff6a1608bc991920232146a0de76b21"))
21942 (package
21943 (name "emacs-org-present")
21944 (version "0.0.1")
21945 (source
21946 (origin
21947 (method git-fetch)
21948 (uri (git-reference
21949 (url "https://github.com/rlister/org-present.git")
21950 (commit commit)))
21951 (file-name (git-file-name name version))
21952 (sha256
21953 (base32
21954 "0jz8xiny3rv9ql0p623byz32pip1b82j2c2nyfz2wd114kiabb6q"))))
21955 (build-system emacs-build-system)
21956 (synopsis "Ultra-minimalist presentation minor-mode for Emacs org-mode")
21957 (description "Org-present is an extremely minimalist presentation tool
21958 for Emacs org-mode. Simply layout your presentation with each slide under a
21959 top-level header, start the minor mode with @code{org-present}, and page through
21960 each slide with left/right keys.")
21961 (home-page "https://github.com/rlister/org-present")
21962 (license license:gpl2))))
21963
21964 (define-public emacs-fullframe
21965 (package
21966 (name "emacs-fullframe")
21967 (version "0.5.0")
21968 (source
21969 (origin
21970 (method git-fetch)
21971 (uri (git-reference
21972 (url "https://github.com/tomterl/fullframe.git")
21973 (commit version)))
21974 (sha256
21975 (base32
21976 "0m43qnhp6ibsskpjkxc86p3lrjsjc0ndqml3lbd65s79x4x7i3fi"))
21977 (file-name (git-file-name name version))))
21978 (build-system emacs-build-system)
21979 (home-page "https://github.com/tomterl/fullframe")
21980 (synopsis "Generalized automatic execution in a single frame")
21981 (description "This library provides helpers for single-window-per-frame
21982 execution of buffer-exposing commands.")
21983 (license license:gpl3+)))
21984
21985 (define-public emacs-eshell-toggle
21986 (let ((commit "ddfbe0a693497c4d4bc5494a19970ba4f6ab9033")
21987 (revision "1"))
21988 (package
21989 (name "emacs-eshell-toggle")
21990 (version (git-version "0.10.0" revision commit))
21991 (source
21992 (origin
21993 (method git-fetch)
21994 (uri (git-reference
21995 (url "https://github.com/4DA/eshell-toggle.git")
21996 (commit commit)))
21997 (sha256
21998 (base32
21999 "0xqrp8pwbmfxjdqipgpw5nw633mvhjjjm3k3j9sh9xdpmw05hhws"))
22000 (file-name (git-file-name name version))))
22001 (build-system emacs-build-system)
22002 (propagated-inputs
22003 `(("emacs-dash" ,emacs-dash)))
22004 (home-page "https://github.com/4DA/eshell-toggle")
22005 (synopsis "Show and hide an @code{eshell} instance")
22006 (description "This package toggles an @code{eshell} instance for the
22007 current buffer.")
22008 (license license:gpl3+))))
22009
22010 (define-public emacs-repl-toggle
22011 (package
22012 (name "emacs-repl-toggle")
22013 (version "0.6.1")
22014 (source
22015 (origin
22016 (method git-fetch)
22017 (uri (git-reference
22018 (url "https://github.com/tomterl/repl-toggle.git")
22019 (commit version)))
22020 (sha256
22021 (base32
22022 "12h3xxja3isnhvrqx7m2g7a5d8h68cc85pbqyhiipfxyafyl1yxd"))
22023 (file-name (git-file-name name version))))
22024 (build-system emacs-build-system)
22025 (propagated-inputs
22026 `(("emacs-fullframe" ,emacs-fullframe)))
22027 (home-page "https://github.com/tomterl/repl-toggle")
22028 (synopsis "Switch to and from current major mode's REPL")
22029 (description "This package provides a function to switch to and from a
22030 REPL appropriate to the current major mode.")
22031 (license license:gpl3+)))
22032
22033 (define-public emacs-blackout
22034 (let ((commit "4bac44671fca4c98d96aa94c79946bf4d4baf0ee")
22035 (revision "1"))
22036 (package
22037 (name "emacs-blackout")
22038 (version (git-version "1.0" revision commit))
22039 (source
22040 (origin
22041 (method git-fetch)
22042 (uri (git-reference
22043 (url "https://github.com/raxod502/blackout.git")
22044 (commit commit)))
22045 (sha256
22046 (base32
22047 "1wnh0nwy6r3a18sy9sqmrwv04vnmaflxy4g7mq8jiyyjijri7l1b"))
22048 (file-name (git-file-name name version))))
22049 (build-system emacs-build-system)
22050 (home-page "https://github.com/raxod502/blackout")
22051 (synopsis "Clean up mode lighters")
22052 (description "This package provides a function for hiding and customizing
22053 display of major and minor modes in the mode line.")
22054 (license license:gpl3+))))
22055
22056 (define-public emacs-ivy-omni-org
22057 (let ((commit "5460a9fc061a4a5ae8372dc8df966ced94abab58")
22058 (revision "1"))
22059 (package
22060 (name "emacs-ivy-omni-org")
22061 (version (git-version "0.2.1" revision commit))
22062 (source
22063 (origin
22064 (method git-fetch)
22065 (uri (git-reference
22066 (url "https://github.com/akirak/ivy-omni-org.git")
22067 (commit commit)))
22068 (file-name (git-file-name name version))
22069 (sha256
22070 (base32
22071 "1np1f51hc3phkl5w02a9a79gl38ra2d535i784fn4pqaasvm0rq8"))))
22072 (build-system emacs-build-system)
22073 (propagated-inputs
22074 `(("emacs-ivy" ,emacs-ivy)
22075 ("emacs-dash" ,emacs-dash)))
22076 (synopsis "Browse anything in Org mode")
22077 (description "This package allows Org items to be accessed via the Ivy
22078 interface.")
22079 (home-page "https://github.com/akirak/ivy-omni-org")
22080 (license license:gpl3+))))
22081
22082 (define-public emacs-ivy-posframe
22083 (let ((commit "ae9bafe94fe6b77b6fe45766ae6172646f6a5d50"))
22084 (package
22085 (name "emacs-ivy-posframe")
22086 (version (git-version "0.1.0" "1" commit))
22087 (source
22088 (origin
22089 (method git-fetch)
22090 (uri (git-reference
22091 (url "https://github.com/tumashu/ivy-posframe.git")
22092 (commit commit)))
22093 (file-name (git-file-name name version))
22094 (sha256
22095 (base32
22096 "1j6yns5d7lh2v1nfcznrirl7qicdli9csciqvfgj4gkh72a97pw1"))))
22097 (build-system emacs-build-system)
22098 (propagated-inputs
22099 `(("emacs-posframe" ,emacs-posframe)
22100 ("emacs-ivy" ,emacs-ivy)))
22101 (home-page "https://github.com/tumashu/ivy-posframe")
22102 (synopsis "Pop a posframe (a child frame) to show Ivy candidates")
22103 (description
22104 "This package provides an Emacs Ivy extension, which let Ivy use
22105 posframe to show its candidate menu.")
22106 (license license:gpl3+))))
22107
22108 (define-public emacs-shackle
22109 (let ((commit "7ccbe513852a1d1700b698547efca14b8940319d")
22110 (revision "1"))
22111 (package
22112 (name "emacs-shackle")
22113 (version (git-version "1.0.3" revision commit))
22114 (source
22115 (origin
22116 (method git-fetch)
22117 (uri (git-reference
22118 (url "https://github.com/wasamasa/shackle.git")
22119 (commit commit)))
22120 (file-name (git-file-name name version))
22121 (sha256
22122 (base32
22123 "0agsp8ia4irr540r898ifhjqp28n1zsq1pilv1kc272spn3qhvp9"))))
22124 (build-system emacs-build-system)
22125 (synopsis "Enforce rules for popups")
22126 (description "This package provides a global minor mode in which users
22127 can specify how popup-displaying functions occupy the screen.")
22128 (home-page "https://github.com/wasamasa/shackle")
22129 (license license:gpl3+))))
22130
22131 (define-public emacs-helm-lacarte
22132 (let ((commit "40a6c449720be521435b6b1da7911af3a0b9dca0")
22133 (revision "1"))
22134 (package
22135 (name "emacs-helm-lacarte")
22136 (version (git-version "0" revision commit))
22137 (source
22138 (origin
22139 (method git-fetch)
22140 (uri (git-reference
22141 (url "https://github.com/emacs-helm/helm-lacarte.git")
22142 (commit commit)))
22143 (file-name (git-file-name name version))
22144 (sha256
22145 (base32
22146 "0dkfd3lap2v7b4nckzv8v7hczmzwzhbl75haqkra107ln91ldbwc"))))
22147 (build-system emacs-build-system)
22148 (propagated-inputs
22149 `(("emacs-helm" ,emacs-helm)
22150 ("emacs-lacarte" ,emacs-lacarte)))
22151 (synopsis "Helm interface to @code{lacarte.el}")
22152 (description "This package provides a Helm interface to
22153 @code{lacarte.el}, a package that displays mode-specific commands as menu
22154 items.")
22155 (home-page "https://github.com/emacs-helm/helm-lacarte")
22156 (license license:gpl3+))))
22157
22158 (define-public emacs-esh-help
22159 (let ((commit "417673ed18a983930a66a6692dbfb288a995cb80")
22160 (revision "1"))
22161 (package
22162 (name "emacs-esh-help")
22163 (version (git-version "1.0.1" revision commit))
22164 (source
22165 (origin
22166 (method git-fetch)
22167 (uri (git-reference
22168 (url "https://github.com/tom-tan/esh-help.git")
22169 (commit commit)))
22170 (file-name (git-file-name name version))
22171 (sha256
22172 (base32
22173 "0x7d51a6ljl014zy7mi27vzcqqbcwg9z4drq29fr2ajk82mqhlgd"))))
22174 (build-system emacs-build-system)
22175 (propagated-inputs
22176 `(("emacs-dash" ,emacs-dash)))
22177 (synopsis "Help functions for Eshell")
22178 (description "This package provides a @code{run-help} function inspired
22179 by @code{zsh} as well as @code{eldoc} support.")
22180 (home-page "https://github.com/tom-tan/esh-help")
22181 (license license:gpl3+))))
22182
22183 (define-public emacs-isearch-dabbrev
22184 (let ((commit "1efe7abba4923015cbc2462395deaec5446a9cc8")
22185 (revision "1"))
22186 (package
22187 (name "emacs-isearch-dabbrev")
22188 (version (git-version "0.1" revision commit))
22189 (source
22190 (origin
22191 (method git-fetch)
22192 (uri (git-reference
22193 (url "https://github.com/Dewdrops/isearch-dabbrev.git")
22194 (commit commit)))
22195 (file-name (git-file-name name version))
22196 (sha256
22197 (base32
22198 "17d0816awadvsw1qc7r0p6ira75jmgxaj9hsk9ypayxsaf6ynyrb"))))
22199 (build-system emacs-build-system)
22200 (synopsis "Use @code{dabbrev} within @code{isearch}")
22201 (description "This package allows @code{dabbrev-expand} to be used
22202 within @code{isearch-mode}.")
22203 (home-page "https://github.com/Dewdrops/isearch-dabbrev")
22204 (license license:gpl3+))))
22205
22206 (define-public emacs-helm-linux-disks
22207 (let ((commit "2cdc8116a08534289eb0dc76461d0f93a0bdf231")
22208 (revision "1"))
22209 (package
22210 (name "emacs-helm-linux-disks")
22211 (version (git-version "0.1" revision commit))
22212 (source
22213 (origin
22214 (method git-fetch)
22215 (uri (git-reference
22216 (url "https://github.com/Akirak/helm-linux-disks.git")
22217 (commit commit)))
22218 (file-name (git-file-name name version))
22219 (sha256
22220 (base32
22221 "1limw82zd8jz3mhh9rqlmhj4cjhfgybs9argfjid1an3vpyhc85i"))))
22222 (build-system emacs-build-system)
22223 (propagated-inputs
22224 `(("emacs-helm" ,emacs-helm)))
22225 (synopsis "Mount/unmount volumes in Linux via Helm")
22226 (description "This package provides a Helm interface to run operations
22227 on removable volumes in Linux.")
22228 (home-page "https://github.com/Akirak/helm-linux-disks")
22229 (license license:gpl3+))))
22230
22231 (define-public emacs-psession
22232 (let ((commit "3e97267c92b164584e06a6c70ee7491714c7c12c")
22233 (revision "1"))
22234 (package
22235 (name "emacs-psession")
22236 (version (git-version "1.5" revision commit))
22237 (source
22238 (origin
22239 (method git-fetch)
22240 (uri (git-reference
22241 (url "https://github.com/thierryvolpiatto/psession.git")
22242 (commit commit)))
22243 (file-name (git-file-name name version))
22244 (sha256
22245 (base32
22246 "15frl618393bc891d0yi3mdxzvbq790a86vfvp3dyd5riz4ddg95"))))
22247 (build-system emacs-build-system)
22248 (propagated-inputs
22249 `(("emacs-async" ,emacs-async)))
22250 (synopsis "Persistent save of @code{elisp} objects.")
22251 (description "This package provides minor modes for saving Emacs session
22252 data, including buffers, window configuration, variables, and more.")
22253 (home-page "https://github.com/thierryvolpiatto/psession")
22254 (license license:gpl3+))))
22255
22256 (define-public emacs-parseedn
22257 (package
22258 (name "emacs-parseedn")
22259 (version "0.1.0")
22260 (source
22261 (origin
22262 (method git-fetch)
22263 (uri (git-reference
22264 (url "https://github.com/clojure-emacs/parseedn.git")
22265 (commit (string-append "v" version))))
22266 (file-name (git-file-name name version))
22267 (sha256
22268 (base32
22269 "11wi3hwcgmy54p6ivpijqm7v0hj6j75a19qk5z779bqfrp79b4pc"))))
22270 (build-system emacs-build-system)
22271 (propagated-inputs
22272 `(("emacs-a" ,emacs-a)
22273 ("emacs-parseclj" ,emacs-parseclj)))
22274 (home-page "https://cider.mx")
22275 (synopsis "EDN parser for Emacs Lisp")
22276 (description
22277 "An Emacs Lisp library for parsing EDN (Clojure) data.
22278 It uses parseclj's shift-reduce parser internally.")
22279 (license license:gpl3+)))
22280
22281 (define-public emacs-parseclj
22282 (package
22283 (name "emacs-parseclj")
22284 (version "0.1.0")
22285 (source
22286 (origin
22287 (method git-fetch)
22288 (uri (git-reference
22289 (url "https://github.com/clojure-emacs/parseclj.git")
22290 (commit (string-append "v" version))))
22291 (file-name (git-file-name name version))
22292 (sha256
22293 (base32
22294 "03bm5dm4hmkqimv4wqxjjh5814pxysmm7z54bv2rf7zwv1x7dggr"))))
22295 (build-system emacs-build-system)
22296 (propagated-inputs `(("emacs-a" ,emacs-a)))
22297 (home-page "https://cider.mx")
22298 (synopsis "Clojure parser for Emacs Lisp")
22299 (description
22300 "An Emacs Lisp library for parsing Clojure code and EDN data.
22301 It supports several input and output formats, all powered by the
22302 same shift-reduce parser function.")
22303 (license license:gpl3+)))
22304
22305 (define-public emacs-hide-mode-line
22306 (package
22307 (name "emacs-hide-mode-line")
22308 (version "1.0.2")
22309 (source (origin
22310 (method git-fetch)
22311 (uri (git-reference
22312 (url "https://github.com/hlissner/emacs-hide-mode-line.git")
22313 (commit (string-append "v" version))))
22314 (file-name (git-file-name name version))
22315 (sha256
22316 (base32
22317 "0dfzjgxfkcw4wisbyldsm1km18pfp9j8xgadn6qnsz11l55bpgyp"))))
22318 (build-system emacs-build-system)
22319 (synopsis "Emacs plugin that hides the mode-line")
22320 (description "A minor mode that hides the mode-line in your current
22321 buffer. It can be used to toggle an alternative mode-line, toggle its visibility,
22322 or simply disable the mode-line in buffers where it is not very useful.")
22323 (home-page "https://github.com/hlissner/emacs-hide-mode-line")
22324 (license license:expat)))
22325
22326 (define-public emacs-helm-cider
22327 ;; No new release since March 2018.
22328 (let ((commit "9363cc537f06233345aa3af5cd46aa5681ad607b"))
22329 (package
22330 (name "emacs-helm-cider")
22331 (version (git-version "0.4.0" "1" commit))
22332 (home-page "https://github.com/clojure-emacs/helm-cider")
22333 (source (origin
22334 (method git-fetch)
22335 (uri (git-reference
22336 (url home-page)
22337 (commit commit)))
22338 (file-name (git-file-name name version))
22339 (sha256
22340 (base32
22341 "0vfn4smqba1vsshz48ggkj8gs94la0sxb1sq4shrb41qj2x3dci7"))))
22342 (build-system emacs-build-system)
22343 (propagated-inputs
22344 `(("emacs-helm" ,emacs-helm)
22345 ("emacs-cider" ,emacs-cider)))
22346 (synopsis "Helm interface to Clojure's CIDER")
22347 (description "Helm-CIDER adds Helm interfaces to
22348 @command{cider-apropos}, @command{cider-apropos-documentation},
22349 @command{cider-browse-ns} (namespaces).
22350
22351 It also provides original Helm commands: @command{helm-cider-spec},
22352 @command{helm-cider-spec-ns}, @command{helm-cider-repl-history},
22353 @command{helm-cider-cheatsheet}.")
22354 (license license:gpl3+))))
22355
22356 (define-public emacs-edn
22357 ;; No release since February 2016
22358 (let ((commit "be9e32d1b49e35247b263b0243df7cfdc8d413ab"))
22359 (package
22360 (name "emacs-edn")
22361 (version (git-version "1.1.2" "1" commit))
22362 (home-page "https://github.com/expez/edn.el")
22363 (source (origin
22364 (method git-fetch)
22365 (uri (git-reference
22366 (url home-page)
22367 (commit commit)))
22368 (file-name (git-file-name name version))
22369 (sha256
22370 (base32
22371 "1xp2hjhn52k6l1g6ypva6dsklpawni7gvjafbz6404f9dyxflh7l"))))
22372 (build-system emacs-build-system)
22373 (propagated-inputs
22374 `(("emacs-peg" ,emacs-peg)))
22375 (synopsis "Read and write EDN from Elisp")
22376 (description "This is an Emacs Lisp library for reading and writing the
22377 data format @code{edn}. See @url{https://github.com/edn-format/edn}.")
22378 (license license:gpl3+))))
22379
22380 (define-public emacs-helm-clojuredocs
22381 (let ((commit "5a7f0f2cb401be0b09e73262a1c18265ab9a3cea"))
22382 (package
22383 (name "emacs-helm-clojuredocs")
22384 (version (git-version "0.3" "1" commit))
22385 (home-page "https://github.com/mbuczko/helm-clojuredocs")
22386 (source (origin
22387 (method git-fetch)
22388 (uri (git-reference
22389 (url home-page)
22390 (commit commit)))
22391 (file-name (git-file-name name version))
22392 (sha256
22393 (base32
22394 "015b8zxh91ljhqvn6z43gy08di54xcw9skw0i7frj3d7gk984qhl"))))
22395 (build-system emacs-build-system)
22396 (propagated-inputs
22397 `(("emacs-helm" ,emacs-helm)
22398 ("emacs-edn" ,emacs-edn)))
22399 (synopsis "Search help on clojuredocs.org with Helm")
22400 (description "This package provides a Helm interface to lookup Clojure
22401 documentation on @url{https://clojuredocs.org} with Helm.
22402
22403 Two function are exposed:
22404 @itemize
22405 @item @command{helm-clojuredocs}: opens a Helm session with no initial
22406 pattern. Searching starts with minimal 3 characters entered.
22407 @item @command{helm-clojuredocs-at-point}: opens a Helm session with initial
22408 pattern guessed from thing under current cursor position.
22409 @end itemize\n")
22410 (license license:gpl3+))))
22411
22412 (define-public emacs-metal-mercury-mode
22413 (let ((commit "99e2d8fb7177cae3bfa2dec2910fc28216d5f5a8")
22414 (revision "1")
22415 (version "0.0.0"))
22416 (package
22417 (name "emacs-metal-mercury-mode")
22418 (version (git-version version revision commit))
22419 (source
22420 (origin
22421 (method git-fetch)
22422 (uri (git-reference
22423 (url "https://github.com/ahungry/metal-mercury-mode.git")
22424 (commit commit)))
22425 (sha256
22426 (base32
22427 "0iil5k3rgifz2vqwsy12rbv5rzyvidq4sgwazsb2hzys8xynmfn5"))
22428 (file-name (git-file-name name version))))
22429 (build-system emacs-build-system)
22430 (propagated-inputs
22431 `(("emacs-dash" ,emacs-dash)))
22432 (synopsis "Major mode for editing Mercury files")
22433 (description
22434 "Major mode for editing Mercury files. This is a rewrite of the original
22435 mercury-mode provided by Emacs as a wrapper around prolog-mode.")
22436 (home-page "https://github.com/ahungry/metal-mercury-mode")
22437 (license license:gpl3+))))
22438
22439 (define-public emacs-boxquote
22440 ;; The following commit is 2.1 release with a switch to GPL3+ license.
22441 (let ((commit "7e47e0e2853bc1215739b2e28f260e9eed93b2c5")
22442 (revision "0"))
22443 (package
22444 (name "emacs-boxquote")
22445 (version (git-version "2.1" revision commit))
22446 (source
22447 (origin
22448 (method git-fetch)
22449 (uri (git-reference
22450 (url "https://github.com/davep/boxquote.el.git")
22451 (commit commit)))
22452 (file-name (git-file-name name version))
22453 (sha256
22454 (base32 "1aqhg24gajvllbqxb0zxrnx6sddas37k2ldfinqyszd856sjhsg3"))))
22455 (build-system emacs-build-system)
22456 (home-page "https://github.com/davep/boxquote.el")
22457 (synopsis "Quote text with different kinds of boxes")
22458 (description "@code{boxquote} provides a set of functions for using
22459 a text quoting style that partially boxes in the left hand side of an area of
22460 text, such a marking style might be used to show externally included text or
22461 example code.")
22462 (license license:gpl3+))))
22463
22464 (define-public emacs-buffer-move
22465 (package
22466 (name "emacs-buffer-move")
22467 (version "0.6.2")
22468 (source
22469 (origin
22470 (method git-fetch)
22471 (uri (git-reference
22472 (url "https://github.com/lukhas/buffer-move.git")
22473 (commit version)))
22474 (file-name (git-file-name name version))
22475 (sha256
22476 (base32 "0xdks4jfqyhkh34y48iq3gz8swp0f526kwnaai5mhgvazvs4za8c"))))
22477 (build-system emacs-build-system)
22478 (home-page "https://github.com/lukhas/buffer-move")
22479 (synopsis "Functions for moving Emacs' buffers around")
22480 (description
22481 "This package define functions for swapping buffers between windows
22482 contained in the same frame. An alternate behavior is to have the current
22483 window switch to the previous buffer instead of swapping with the other
22484 window.")
22485 (license license:gpl3+)))
22486
22487 (define-public emacs-company-ebdb
22488 (package
22489 (name "emacs-company-ebdb")
22490 (version "1.1")
22491 (source
22492 (origin
22493 (method url-fetch)
22494 (uri (string-append "https://elpa.gnu.org/packages/"
22495 "company-ebdb-" version ".el"))
22496 (sha256
22497 (base32 "146qpiigz12zp1823ggxfrx090g0mxs7gz1ba7sa0iq6ibgzwwm9"))))
22498 (build-system emacs-build-system)
22499 (propagated-inputs
22500 `(("emacs-company" ,emacs-company)))
22501 (home-page "https://elpa.gnu.org/packages/company-ebdb.html")
22502 (synopsis "Company completion backend for EBDB in Message mode")
22503 (description "@code{company-ebdb} provides Company mode integration for
22504 EBDB. It is copied more or less intact from @code{company-bbdb}, originally
22505 by Jan Tatarik.")
22506 (license license:gpl3+)))
22507
22508 (define-public emacs-mwim
22509 ;; Use the latest commit not in a release version as of yet, since it
22510 ;; contains a bug fix for the cases where `comment-start-skip' is nil.
22511 (let ((commit "b4f3edb4c0fb8f8b71cecbf8095c2c25a8ffbf85")
22512 (revision "0"))
22513 (package
22514 (name "emacs-mwim")
22515 (version (git-version "0.4" revision commit))
22516 (source
22517 (origin
22518 (method git-fetch)
22519 (uri (git-reference
22520 (url "https://github.com/alezost/mwim.el.git")
22521 (commit commit)))
22522 (file-name (git-file-name name version))
22523 (sha256
22524 (base32 "0l3k611gp9g2x2vfmh92wnhnda81dslpwwpb8mxmzk308man77ya"))))
22525 (build-system emacs-build-system)
22526 (home-page "https://github.com/alezost/mwim.el")
22527 (synopsis "Move to the beginning/end of line, code or comment")
22528 (description "@code{mwim} provides several commands to switch between
22529 various line positions, like moving to the beginning/end of code, line, or
22530 comment.")
22531 (license license:gpl3+))))
22532
22533 (define-public emacs-delight
22534 (package
22535 (name "emacs-delight")
22536 (version "1.5")
22537 (source
22538 (origin
22539 (method url-fetch)
22540 (uri (string-append "https://elpa.gnu.org/packages/"
22541 "delight-" version ".el"))
22542 (sha256
22543 (base32 "0kzlvzwmn6zj0874086q2xw0pclyi7wlkq48zh2lkd2796xm8vw7"))))
22544 (build-system emacs-build-system)
22545 (home-page "https://elpa.gnu.org/packages/delight.html")
22546 (synopsis "Dimmer switch for your mode-line lighter text")
22547 (description "@code{delight} enables customizing or hiding the
22548 mode-line text (lighter) of major and minor modes.")
22549 (license license:gpl3+)))
22550
22551 (define-public emacs-unkillable-scratch
22552 ;; Use the latest (unreleased) commit as of now, since it contains a handy
22553 ;; `unkillable-scratch-do-not-reset-scratch-buffer' customization to not
22554 ;; repopulate the scratch buffer with `initial-scratch-message'.
22555 (let ((commit "b24c2a760529833f230c14cb02ff6e7ec92288ab")
22556 (revision "0"))
22557 (package
22558 (name "emacs-unkillable-scratch")
22559 (version (git-version "1.0.0" revision commit))
22560 (source
22561 (origin
22562 (method git-fetch)
22563 (uri (git-reference
22564 (url "https://github.com/EricCrosson/unkillable-scratch.git")
22565 (commit commit)))
22566 (file-name (git-file-name name version))
22567 (sha256
22568 (base32 "13wjbcxr3km4s96yhpavgs5acs5pvqv3ih1p84diqb3x3i6wd4pa"))))
22569 (build-system emacs-build-system)
22570 (home-page "https://github.com/EricCrosson/unkillable-scratch")
22571 (synopsis "Prevents the *scratch* buffer from being killed")
22572 (description "@code{unkillable-scratch} helps prevent killing buffers
22573 matching a given regexp.")
22574 (license license:gpl2+))))
22575
22576 (define-public emacs-switch-buffer-functions
22577 (package
22578 (name "emacs-switch-buffer-functions")
22579 (version "0.0.1")
22580 (source
22581 (origin
22582 (method git-fetch)
22583 (uri (git-reference
22584 (url "https://github.com/10sr/switch-buffer-functions-el.git")
22585 (commit (string-append "v" version))))
22586 (file-name (git-file-name name version))
22587 (sha256
22588 (base32 "0pq53b8wrjbrxd5hnrcdi0z7mffp4bax55hn90k9ca3j76lhbn1k"))))
22589 (build-system emacs-build-system)
22590 (home-page "https://github.com/10sr/switch-buffer-functions-el")
22591 (synopsis "Hooks run when switching current buffer")
22592 (description "This package provides a hook variable
22593 @code{switch-buffer-functions}. The hooks will be run when the current buffer
22594 is changed after an interactive command, i.e., when @code{post-command-hook}
22595 hooks are run. The hooked functions will be called with both the previous and
22596 the current buffer.")
22597 (license license:unlicense)))
22598
22599 (define-public emacs-erc-scrolltoplace
22600 (package
22601 (name "emacs-erc-scrolltoplace")
22602 (version "0.1.0")
22603 (source
22604 (origin
22605 (method git-fetch)
22606 (uri (git-reference
22607 (url "https://gitlab.com/jgkamat/erc-scrolltoplace.git")
22608 (commit version)))
22609 (file-name (git-file-name name version))
22610 (sha256
22611 (base32 "11zpqwh1mlfifbgnvhc63bvnhg340jgxssm3m43hr1sxsyb52lh6"))))
22612 (build-system emacs-build-system)
22613 (propagated-inputs
22614 `(("emacs-switch-buffer-functions" ,emacs-switch-buffer-functions)))
22615 (home-page "https://gitlab.com/jgkamat/erc-scrolltoplace")
22616 (synopsis "ERC module to replace scrolltobottom while using keep-place")
22617 (description "@code{erc-scrolltoplace} is an ERC module to try
22618 to emulate @code{scrolltobottom} while @code{keep-place} is enabled.")
22619 (license license:gpl3+)))
22620
22621 (define-public emacs-dmenu
22622 ;; Use the latest commit, as there are no tagged releases.
22623 (let ((commit "e8cc9b27c79d3ecc252267c082ab8e9c82eab264")
22624 (revision "0"))
22625 (package
22626 (name "emacs-dmenu")
22627 (version (git-version "0.1" revision commit))
22628 (source
22629 (origin
22630 (method git-fetch)
22631 (uri (git-reference
22632 (url "https://github.com/lujun9972/el-dmenu.git")
22633 (commit commit)))
22634 (file-name (git-file-name name version))
22635 (sha256
22636 (base32 "098ncygms1r33zhjlq4fj2p4jc91v5whqrm3fazzdk7sd6dilf25"))))
22637 (build-system emacs-build-system)
22638 (home-page "https://github.com/lujun9972/el-dmenu")
22639 (synopsis "Simulate the @command{dmenu} command line program")
22640 (description "This package provides a @command{dmenu} command for
22641 launching other commands/applications from within Emacs, similar to the
22642 @command{dmenu} program. This is especially useful when using EXWM.")
22643 (license license:gpl3+))))
22644
22645 (define-public emacs-no-littering
22646 (package
22647 (name "emacs-no-littering")
22648 (version "1.0.3")
22649 (source
22650 (origin
22651 (method git-fetch)
22652 (uri (git-reference
22653 (url "https://github.com/emacscollective/no-littering.git")
22654 (commit (string-append "v" version))))
22655 (file-name (git-file-name name version))
22656 (sha256
22657 (base32 "17is06l0w6glppabv2kaclrnqi3dqb6p6alpslpg7lrjd8vd45ir"))))
22658 (build-system emacs-build-system)
22659 (home-page "https://github.com/emacscollective/no-littering")
22660 (synopsis "Help keep ~/.emacs.d/ clean")
22661 (description "The default paths used to store configuration files and
22662 persistent data are not consistent across Emacs packages, be them built-in or
22663 third-party ones. @code{no-littering} sets out to help clean
22664 @file{~/.emacs.d/} by putting configuration files and persistent data files in
22665 two user-defined directories, as well as using more descriptive names for
22666 files and subdirectories when appropriate.")
22667 (license license:gpl3+)))
22668
22669 (define-public emacs-message-x
22670 ;; Use the latest commit, as there are no tagged releases.
22671 (let ((commit "5524de7bbfdd8749c110f48de5afb024d9f83133")
22672 (revision "0"))
22673 (package
22674 (name "emacs-message-x")
22675 (version (git-version "1.23" revision commit))
22676 (source
22677 (origin
22678 (method git-fetch)
22679 (uri (git-reference
22680 (url "https://github.com/emacsmirror/message-x.git")
22681 (commit commit)))
22682 (file-name (git-file-name name version))
22683 (sha256
22684 (base32 "0qy1xf11j357lsnbb829hnbg7fq1cii4cx54fwf0wgjh1bv2abvj"))))
22685 (build-system emacs-build-system)
22686 (home-page "https://www.emacswiki.org/emacs/message-x.el")
22687 (synopsis "Customizable completion in message headers")
22688 (description "@code{message-x} assigns a context-sensitive function to
22689 the TAB key in Message mode. When on a header line, it performs completion
22690 based on which header we are in (for example, newsgroup name completion makes
22691 sense on the @samp{Newsgroups} header, whereas mail alias expansion makes
22692 sense in the @samp{To} and @samp{Cc} headers). When in the message body, this
22693 executes a different function (default: @code{indent-relative}).")
22694 (license license:gpl2+))))
22695
22696 (define-public emacs-gnus-harvest
22697 (let ((commit "feda071a87b799bd5d23cacde3ee71f0b166e75d")
22698 (revision "0"))
22699 (package
22700 (name "emacs-gnus-harvest")
22701 (version (git-version "1.0" revision commit))
22702 (source
22703 (origin
22704 (method git-fetch)
22705 (uri (git-reference
22706 (url "https://github.com/jwiegley/gnus-harvest.git")
22707 (commit commit)))
22708 (file-name (git-file-name name version))
22709 (sha256
22710 (base32 "08zb7vc3v3wdxkzgi902vlc5ybfvm8fxrvm5drnwfsjj9873pbcb"))))
22711 (build-system emacs-build-system)
22712 (inputs
22713 `(("sqlite" ,sqlite)))
22714 (arguments
22715 `(#:phases
22716 (modify-phases %standard-phases
22717 (add-before 'build 'patch-exec-paths
22718 (lambda* (#:key inputs #:allow-other-keys)
22719 (let ((sqlite (assoc-ref inputs "sqlite"))
22720 (file "gnus-harvest.el"))
22721 (make-file-writable file)
22722 (emacs-substitute-variables file
22723 ("gnus-harvest-sqlite-program"
22724 (string-append sqlite "/bin/sqlite3"))))
22725 #t)))))
22726 (home-page "https://github.com/jwiegley/gnus-harvest")
22727 (synopsis
22728 "Harvest email addresses from read/written Gnus articles")
22729 (description "@code{gnus-harvest} notices email address in every message
22730 or post you read or write, and collects them in a SQLite database, which can
22731 be easily and quickly queried to determine the completion list. It optionally
22732 uses BBDB and Message-X.")
22733 (license license:gpl3+))))
22734
22735 (define-public emacs-auto-dictionary-mode
22736 (package
22737 (name "emacs-auto-dictionary-mode")
22738 (version "1.1")
22739 (source
22740 (origin
22741 (method git-fetch)
22742 (uri (git-reference
22743 (url "https://github.com/nschum/auto-dictionary-mode")
22744 (commit version)))
22745 (file-name (git-file-name name version))
22746 (sha256
22747 (base32 "191294k92qp8gmfypf0q8j8qrym96aqikzvyb9p03wqvbr3r1dsk"))))
22748 (build-system emacs-build-system)
22749 (home-page "http://nschum.de/src/emacs/auto-dictionary/")
22750 (synopsis "Automatic dictionary switcher for Emacs spell checking")
22751 (description "@code{auto-dictionary} is a minor mode that hooks into
22752 Flyspell's on-the-fly spell checking and extends these checks to also detect
22753 language. Auto-dictionary then sets @code{ispell-dictionary} to use the
22754 detected language.")
22755 (license license:gpl2+)))
22756
22757 (define-public emacs-persist
22758 (package
22759 (name "emacs-persist")
22760 (version "0.4")
22761 (source
22762 (origin
22763 (method url-fetch)
22764 (uri (string-append "https://elpa.gnu.org/packages/"
22765 "persist-" version ".tar"))
22766 (sha256
22767 (base32 "0gpxy41qawzss2526j9a7lys60vqma1lvamn4bfabwza7gfhac0q"))))
22768 (build-system emacs-build-system)
22769 (home-page "http://elpa.gnu.org/packages/persist.html")
22770 (synopsis "Persist variables between Emacs sessions")
22771 (description
22772 "This package provides variables which persist across sessions.
22773 Values are stored in a directory in @code{user-emacs-directory}, using
22774 one file per value. This makes it easy to delete or remove unused
22775 variables.")
22776 (license license:gpl3+)))
22777
22778 (define-public emacs-company-emoji
22779 (package
22780 (name "emacs-company-emoji")
22781 (version "2.5.2")
22782 (source
22783 (origin
22784 (method git-fetch)
22785 (uri (git-reference
22786 (url "https://github.com/dunn/company-emoji/")
22787 (commit version)))
22788 (file-name (git-file-name name version))
22789 (sha256
22790 (base32 "0r9zcbm3nb3zw5cwrkl098v5b49jbga5404bj7j55g6k4rwkjar2"))))
22791 (build-system emacs-build-system)
22792 (propagated-inputs
22793 `(("emacs-company" ,emacs-company)))
22794 (home-page "https://github.com/dunn/company-emoji/")
22795 (synopsis "Company completion back-end for emoji")
22796 (description
22797 "This library is a Company back-end providing auto-completion for
22798 emoji.")
22799 (license license:gpl3+)))
22800
22801 (define-public emacs-exiftool
22802 (package
22803 (name "emacs-exiftool")
22804 (version "0.3.2")
22805 (source
22806 (origin
22807 (method git-fetch)
22808 (uri (git-reference
22809 (url "https://git.systemreboot.net/exiftool.el/")
22810 (commit (string-append "v" version))))
22811 (file-name (git-file-name name version))
22812 (sha256
22813 (base32
22814 "0bv58is66cz21yhc0qqkp1z4nk13zfi2l7i6pjbhyi0g1n88qqyv"))))
22815 (build-system emacs-build-system)
22816 (arguments
22817 `(#:tests? #t
22818 #:test-command '("make" "-C" "tests")
22819 #:phases
22820 (modify-phases %standard-phases
22821 (add-after 'unpack 'configure
22822 (lambda* (#:key inputs #:allow-other-keys)
22823 (make-file-writable "exiftool.el")
22824 (emacs-substitute-variables "exiftool.el"
22825 ("exiftool-executable"
22826 (string-append (assoc-ref inputs "perl-image-exiftool")
22827 "/bin/exiftool")))
22828 #t)))))
22829 (inputs
22830 `(("perl-image-exiftool" ,perl-image-exiftool)))
22831 (home-page "https://git.systemreboot.net/exiftool.el/about/")
22832 (synopsis "Elisp wrapper around ExifTool")
22833 (description "@code{emacs-exiftool} is an Elisp wrapper around ExifTool.
22834 ExifTool supports reading and writing metadata in various formats including
22835 EXIF, XMP and IPTC.")
22836 (license license:gpl3+)))
22837
22838 (define-public emacs-password-generator
22839 (package
22840 (name "emacs-password-generator")
22841 (version "1.01")
22842 (home-page "https://github.com/zargener/emacs-password-genarator")
22843 (source
22844 (origin
22845 (method git-fetch)
22846 (uri (git-reference
22847 (url home-page)
22848 (commit "904cdb591a04305ba882ce19e1d117f5fa60f7d3")))
22849 (file-name (git-file-name name version))
22850 (sha256
22851 (base32
22852 "1qgvn79qz1h8ykm5i1qv2fja4v2y0g2i0n5sf7byhnqhqlwn63nv"))))
22853 (build-system emacs-build-system)
22854 (synopsis "Generate passwords inside Emacs")
22855 (description "@code{emacs-password-generator} provides simple functions to
22856 generate random passwords and insert them into the current buffer. It also
22857 supports generation of phonetic and numeric passwords.")
22858 (license license:artistic2.0)))
22859
22860 (define-public emacs-csv
22861 (package
22862 (name "emacs-csv")
22863 (version "2.1")
22864 (home-page "https://gitlab.com/u11/csv.el")
22865 (source
22866 (origin
22867 (method git-fetch)
22868 (uri (git-reference
22869 (url home-page)
22870 (commit (string-append "V" version))))
22871 (file-name (git-file-name name version))
22872 (sha256
22873 (base32
22874 "1vmazjrfcsa9aa9aw8bq5sazdhqvhxyj837dyw5lmh8gk7z0xdaa"))))
22875 (build-system emacs-build-system)
22876 (synopsis "Elisp functions for reading and parsing CSV files")
22877 (description
22878 "@code{csv.el} provides functions for reading and parsing @acronym{CSV,
22879 Comma-Separated Values} files. It follows the format as defined in RFC 4180
22880 @emph{Common Format and MIME Type for CSV
22881 Files} (@url{http://tools.ietf.org/html/rfc4180}).")
22882 (license license:gpl3+)))
22883
22884 (define-public emacs-org-journal
22885 (package
22886 (name "emacs-org-journal")
22887 (version "2.0.0")
22888 (source
22889 (origin
22890 (method git-fetch)
22891 (uri (git-reference
22892 (url "https://github.com/bastibe/org-journal.git")
22893 (commit version)))
22894 (file-name (git-file-name name version))
22895 (sha256
22896 (base32 "18dqd0jy2x530lk0h4fcn9cld9qh4w7b3vxa60fpiia628vsv1dg"))))
22897 (build-system emacs-build-system)
22898 (home-page "https://github.com/bastibe/org-journal")
22899 (synopsis "Simple Org mode journaling mode")
22900 (description
22901 "Org Journal is a set of functions to maintain a simple personal diary /
22902 journal using in Emacs, adapted from
22903 @url{https://www.emacswiki.org/emacs/PersonalDiary}. Convenient bindings
22904 allow the creation of journal records in the current daily, weekly, monthly or
22905 yearly file and search within all records or specified time intervals. All
22906 records can be browsed and searched from the Emacs Calendar for convenience.
22907 All entries in a specified TODO state will be carried over to the next day.")
22908 (license license:bsd-3)))
22909
22910 (define-public emacs-org-static-blog
22911 (package
22912 (name "emacs-org-static-blog")
22913 (version "1.3.0")
22914 (source
22915 (origin
22916 (method git-fetch)
22917 (uri (git-reference
22918 (url "https://github.com/bastibe/org-static-blog")
22919 (commit version)))
22920 (file-name (git-file-name name version))
22921 (sha256
22922 (base32 "15iy3z8rglaqbx1fz14inh18ksgjsmq30b8hyv3lgjvcc9ssaiw0"))))
22923 (build-system emacs-build-system)
22924 (home-page "https://github.com/bastibe/org-static-blog")
22925 (synopsis
22926 "Simple Org mode based static blog generator")
22927 (description
22928 "@code{emacs-org-static-blog} is one more static blog generator, it
22929 focuses on being simple. All files are simple Org files in a directory. The
22930 only requirement is that every Org file must have a @samp{title} and
22931 a @samp{date} keywords, and optionally, a @samp{filetags} keyword.")
22932 (license license:bsd-3)))
22933
22934 (define-public emacs-ddskk
22935 ;; XXX: Upstream adds code names to their release tags, so version and code
22936 ;; name below need to be updated together.
22937 (let ((version "16.3")
22938 (code-name "Kutomatsunai"))
22939 (package
22940 (name "emacs-ddskk")
22941 (version version)
22942 (source
22943 (origin
22944 (method git-fetch)
22945 (uri (git-reference
22946 (url "https://github.com/skk-dev/ddskk")
22947 (commit (string-append "ddskk-" version "_" code-name))))
22948 (file-name (git-file-name name version))
22949 (sha256
22950 (base32 "0ln4x8f35z5y3kf9m718g223bn3lzcmw40jfjg2j5yi24ydf1wm9"))))
22951 (build-system gnu-build-system)
22952 (arguments
22953 `(#:modules ((guix build gnu-build-system)
22954 (guix build utils)
22955 (guix build emacs-utils))
22956 #:imported-modules (,@%gnu-build-system-modules
22957 (guix build emacs-utils))
22958 #:test-target "test"
22959 #:phases
22960 (modify-phases %standard-phases
22961 (replace 'configure
22962 (lambda* (#:key outputs #:allow-other-keys)
22963 (make-file-writable "SKK-MK")
22964 (emacs-substitute-variables "SKK-MK"
22965 ("PREFIX" (assoc-ref outputs "out"))
22966 ("LISPDIR" '(expand-file-name "/share/emacs/site-lisp" PREFIX))
22967 ("SKK_PREFIX" "")
22968 ("SKK_INFODIR" '(expand-file-name "info" PREFIX)))
22969 (for-each make-file-writable (find-files "./doc"))
22970 #t)))))
22971 (native-inputs
22972 `(("emacs-minimal" ,emacs-minimal)))
22973 (home-page "https://github.com/skk-dev/ddskk")
22974 (synopsis "Simple Kana to Kanji conversion program")
22975 (description
22976 "Daredevil SKK is a version of @acronym{SKK, Simple Kana to Kanji
22977 conversion program}, a Japanese input method on Emacs.")
22978 (license license:gpl2+))))
22979
22980 (define-public emacs-objed
22981 (package
22982 (name "emacs-objed")
22983 (version "0.8.3")
22984 (source
22985 (origin
22986 (method url-fetch)
22987 (uri (string-append
22988 "https://elpa.gnu.org/packages/objed-" version ".tar"))
22989 (sha256
22990 (base32
22991 "1s38d6bvggdk5p45ww1jb4gxifzgjwgw1m6ar920nlg0j4fgbcvr"))))
22992 (build-system emacs-build-system)
22993 (home-page "https://github.com/clemera/objed")
22994 (synopsis "Navigate and edit text objects")
22995 (description
22996 "@code{emacs-objed} allows navigating and editing text objects. It
22997 enables modal editing and composition of commands, too. It combines ideas of
22998 other Editors like Vim or Kakoune and tries to align them with regular Emacs
22999 conventions.")
23000 (license license:gpl3+)))
23001
23002 (define-public emacs-haskell-snippets
23003 ;; The commit below is 5 commits ahead of release, and includes a build fix.
23004 (let ((commit "07b0f460b946fd1be26c29652cb0468b47782f3a"))
23005 (package
23006 (name "emacs-haskell-snippets")
23007 (version (git-version "0.1.0" "0" commit))
23008 (source
23009 (origin
23010 (method git-fetch)
23011 (uri
23012 (git-reference
23013 (url "https://github.com/haskell/haskell-snippets")
23014 (commit commit)))
23015 (file-name (git-file-name name version))
23016 (sha256
23017 (base32 "0a7y3awi9hcyahggf0ghsdwvsmrhr9yq634wy9lkqjzrm2hqj0ci"))))
23018 (build-system emacs-build-system)
23019 (arguments
23020 `(#:phases
23021 (modify-phases %standard-phases
23022 (add-after 'install 'install-snippets
23023 (lambda* (#:key outputs #:allow-other-keys)
23024 (let* ((out (assoc-ref outputs "out"))
23025 (snippets
23026 (string-append
23027 out "/share/emacs/site-lisp/snippets/haskell-mode")))
23028 (mkdir-p snippets)
23029 (copy-recursively "snippets/haskell-mode" snippets)
23030 #t))))))
23031 (propagated-inputs
23032 `(("emacs-yasnippet" ,emacs-yasnippet)))
23033 (home-page "https://github.com/haskell/haskell-snippets")
23034 (synopsis "Official collection of YASnippet Haskell snippets for Emacs")
23035 (description "Haskell-Snippets is a collection of YASnippet Haskell
23036 snippets for Emacs.")
23037 (license license:expat))))
23038
23039 (define-public emacs-org-roam
23040 (package
23041 (name "emacs-org-roam")
23042 (version "1.0.0")
23043 (source
23044 (origin
23045 (method git-fetch)
23046 (uri (git-reference
23047 (url "https://github.com/jethrokuan/org-roam.git")
23048 (commit (string-append "v" version))))
23049 (file-name (git-file-name name version))
23050 (sha256
23051 (base32 "08pfa63k194dpk0y2gfa0nzn5lig81q0l9axkq5j4ibj6ifaap4a"))))
23052 (build-system emacs-build-system)
23053 (propagated-inputs
23054 `(("emacs-company" ,emacs-company)
23055 ("emacs-dash" ,emacs-dash)
23056 ("emacs-emacsql-sqlite" ,emacs-emacsql)
23057 ("emacs-f" ,emacs-f)
23058 ("emacs-org-ref" ,emacs-org-ref)
23059 ("emacs-s" ,emacs-s)))
23060 (home-page "https://github.com/jethrokuan/org-roam/")
23061 (synopsis "Non-hierarchical note-taking with Org mode")
23062 (description "Emacs Org Roam is a solution for taking non-hierarchical
23063 notes with Org mode. Notes are captured without hierarchy and are connected
23064 by tags. Notes can be found and created quickly. Org Roam should also work
23065 as a plug-and-play solution for anyone already using Org mode for their
23066 personal wiki.")
23067 (license license:gpl3+)))
23068
23069 (define-public emacs-uml-mode
23070 ;; Package has no release. Version is extracted from "Version:" keyword in
23071 ;; main file.
23072 (let ((commit "4c37ac1c4424b2313cd8f16ba48a98a4cc214200")
23073 (revision "1"))
23074 (package
23075 (name "emacs-uml-mode")
23076 (version (git-version "0.0.4" revision commit))
23077 (source
23078 (origin
23079 (method git-fetch)
23080 (uri (git-reference
23081 (url "https://github.com/ianxm/emacs-uml.git")
23082 (commit commit)))
23083 (file-name (git-file-name name version))
23084 (sha256
23085 (base32 "145i4srnfvd1vyibri2a1l6p9mbjvkkwlrpi41134pbarqffcnka"))))
23086 (build-system emacs-build-system)
23087 (home-page "https://github.com/ianxm/emacs-uml")
23088 (synopsis "Minor mode for editing ASCII UML sequence diagrams")
23089 (description "Emacs UML mode is a minor mode that makes it easy to build
23090 ASCII UML sequence diagrams in Emacs, which can be embedded in source code,
23091 comments or emails.")
23092 (license license:gpl3+))))
23093
23094 (define-public emacs-trashed
23095 (package
23096 (name "emacs-trashed")
23097 (version "1.9.0")
23098 (source
23099 (origin
23100 (method git-fetch)
23101 (uri (git-reference
23102 (url "https://github.com/shingo256/trashed/")
23103 (commit version)))
23104 (file-name (git-file-name name version))
23105 (sha256
23106 (base32 "13grdi12iwlw4fiphdfmvclfpbr6ajlgfbfyi7v41z8k3rxz4ypz"))))
23107 (build-system emacs-build-system)
23108 (home-page "https://github.com/shingo256/trashed/")
23109 (synopsis "View and edit system trash can in Emacs")
23110 (description "Open, view, browse, restore or permanently delete trashed
23111 files or directories in trash can with Dired-like look and feel. The trash
23112 can has to be compliant with freedesktop.org. In Emacs, you can trash files by
23113 deleting them with @code{(setq delete-by-moving-to-trash t)}. This package
23114 provides a simple but convenient user interface to manage those trashed
23115 files.")
23116 (license license:gpl3+)))
23117
23118 (define-public emacs-plantuml-mode
23119 (package
23120 (name "emacs-plantuml-mode")
23121 (version "1.4.1")
23122 (source
23123 (origin
23124 (method git-fetch)
23125 (uri (git-reference
23126 (url "https://github.com/skuro/plantuml-mode")
23127 (commit (string-append "v" version))))
23128 (file-name (git-file-name name version))
23129 (sha256
23130 (base32 "0yp41d2dmf3sx7qnl5x0zdjcr9y71b2wwc9m0q31v22xqn938ipc"))))
23131 (arguments
23132 '(#:phases
23133 (modify-phases %standard-phases
23134 (add-after 'unpack 'use-local-plantuml
23135 (lambda* (#:key inputs #:allow-other-keys)
23136 (let ((plantuml (assoc-ref inputs "plantuml"))
23137 (file "plantuml-mode.el"))
23138 (chmod file #o644)
23139 (emacs-substitute-variables file
23140 ("plantuml-jar-path"
23141 (string-append plantuml "/share/java/plantuml.jar"))
23142 ("plantuml-executable-path"
23143 (string-append plantuml "/bin/plantuml"))
23144 ("plantuml-server-url" 'nil)
23145 ("plantuml-default-exec-mode" ''executable))
23146 (emacs-batch-edit-file file
23147 `(progn (progn
23148 (goto-char (point-min))
23149 (re-search-forward "(defun plantuml-download-jar")
23150 (beginning-of-line)
23151 (kill-sexp))
23152 (basic-save-buffer)))
23153 #t))))))
23154 (inputs
23155 `(("plantuml" ,plantuml)))
23156 (propagated-inputs
23157 `(("emacs-dash" ,emacs-dash)))
23158 (build-system emacs-build-system)
23159 (home-page "https://github.com/skuro/plantuml-mode")
23160 (synopsis "Major mode for editing PlantUML sources")
23161 (description "This package provides a major mode for editing PlantUML
23162 sources. It features syntax highlighting, autocompletion, preview of buffer
23163 or region and use of locally installed binaries.")
23164 (license license:gpl3+)))