gnu: Add emacs-rocket-chat.
[jackhill/guix/guix.git] / gnu / packages / emacs-xyz.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2014 Taylan Ulrich Bayirli/Kammer <taylanbayirli@gmail.com>
3 ;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
4 ;;; Copyright © 2014, 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org>
5 ;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Alex Kost <alezost@gmail.com>
6 ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
7 ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
8 ;;; Copyright © 2016, 2017, 2018, 2019 Chris Marusich <cmmarusich@gmail.com>
9 ;;; Copyright © 2015, 2016, 2018, 2020 Christopher Lemmer Webber <cwebber@dustycloud.org>
10 ;;; Copyright © 2016 Adriano Peluso <catonano@gmail.com>
11 ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
12 ;;; Copyright © 2016 David Thompson <davet@gnu.org>
13 ;;; Copyright © 2016 Matthew Jordan <matthewjordandevops@yandex.com>
14 ;;; Copyright © 2016, 2017 Roel Janssen <roel@gnu.org>
15 ;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
16 ;;; Copyright © 2016, 2019 Alex Griffin <a@ajgrf.com>
17 ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
18 ;;; Copyright © 2016, 2017, 2018 Alex Vong <alexvong1995@gmail.com>
19 ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Arun Isaac <arunisaac@systemreboot.net>
20 ;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
21 ;;; Copyright © 2017, 2018, 2019, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
22 ;;; Copyright © 2017, 2018, 2019, 2020 Clément Lassieur <clement@lassieur.org>
23 ;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com>
24 ;;; Copyright © 2017, 2018 Kyle Meyer <kyle@kyleam.com>
25 ;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
26 ;;; Copyright © 2017 George Clemmer <myglc2@gmail.com>
27 ;;; Copyright © 2017, 2018 Feng Shu <tumashu@163.com>
28 ;;; Copyright © 2017, 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
29 ;;; Copyright © 2017, 2018, 2019, 2020 Oleg Pykhalov <go.wigust@gmail.com>
30 ;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com>
31 ;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com>
32 ;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
33 ;;; Copyright © 2017 Mike Gerwitz <mtg@gnu.org>
34 ;;; Copyright © 2017, 2018, 2019, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
35 ;;; Copyright © 2018 Sohom Bhattacharjee <soham.bhattacharjee15@gmail.com>
36 ;;; Copyright © 2018, 2019 Mathieu Lirzin <mthl@gnu.org>
37 ;;; Copyright © 2018, 2019, 2020 Pierre Neidhardt <mail@ambrevar.xyz>
38 ;;; Copyright © 2018, 2019, 2020 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
39 ;;; Copyright © 2018, 2019 Jack Hill <jackhill@jackhill.us>
40 ;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
41 ;;; Copyright © 2018 Alex Branham <alex.branham@gmail.com>
42 ;;; Copyright © 2018 Thorsten Wilms <t_w_@freenet.de>
43 ;;; Copyright © 2018, 2019, 2020 Pierre Langlois <pierre.langlois@gmx.com>
44 ;;; Copyright © 2018, 2019, 2020 Brett Gilio <brettg@gnu.org>
45 ;;; Copyright © 2019, 2020 Dimakakos Dimos <bendersteed@teknik.io>
46 ;;; Copyright © 2019, 2020 Brian Leung <bkleung89@gmail.com>
47 ;;; Copyright © 2019 mikadoZero <mikadozero@yandex.com>
48 ;;; Copyright © 2019 Gabriel Hondet <gabrielhondet@gmail.com>
49 ;;; Copyright © 2019, 2020 Joseph LaFreniere <joseph@lafreniere.xyz>
50 ;;; Copyright © 2019 Amar Singh <nly@disroot.org>
51 ;;; Copyright © 2019 Baptiste Strazzulla <bstrazzull@hotmail.fr>
52 ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
53 ;;; Copyright © 2019 Jens Mølgaard <jens@zete.tk>
54 ;;; Copyright © 2019, 2020 Amin Bandali <bandali@gnu.org>
55 ;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org>
56 ;;; Copyright © 2019 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
57 ;;; Copyright © 2019 Stephen Webber <montokapro@gmail.com>
58 ;;; Copyright © 2019 Leo Prikler <leo.prikler@student.tugraz.at>
59 ;;; Copyright © 2019 David Wilson <david@daviwil.com>
60 ;;; Copyright © 2020 Paul Garlick <pgarlick@tourbillion-technology.com>
61 ;;; Copyright © 2020 Robert Smith <robertsmith@posteo.net>
62 ;;; Copyright © 2020 Evan Straw <evan.straw99@gmail.com>
63 ;;; Copyright © 2020 Masaya Tojo <masaya@tojo.tokyo>
64 ;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net>
65 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
66 ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
67 ;;; Copyright © 2020 6033fe7de85d <6033fe7de85d@airmail.cc>
68 ;;; Copyright © 2020 John Soo <jsoo1@asu.edu>
69 ;;; Copyright © 2020 Jérémy Korwin-Zmijowski <jeremy@korwin-zmijowski.fr>
70 ;;; Copyright © 2020 Alberto Eleuterio Flores Guerrero <barbanegra+guix@posteo.mx>
71 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
72 ;;; Copyright © 2020 pinoaffe <pinoaffe@airmail.cc>
73 ;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
74 ;;; Copyright © 2020 Ryan Desfosses <rdes@protonmail.com>
75 ;;; Copyright © 2020 Marcin Karpezo <sirmacik@wioo.waw.pl>
76 ;;; Copyright © 2020 Fredrik Salomonsson <plattfot@gmail.com>
77 ;;; Copyright © 2020 Ryan Desfosses <rdes@protonmail.com>
78 ;;; Copyright © 2020 Eric Bavier <bavier@posteo.net>
79 ;;; Copyright © 2020 Morgan Smith <Morgan.J.Smith@outlook.com>
80 ;;; Copyright © 2020 Peng Mei Yu <i@pengmeiyu.com>
81 ;;; Copyright © 2020 Niklas Eklund <niklas.eklund@posteo.net>
82 ;;; Copyright © 2020 Marco Grassi <marco.au.grassi98@protonmail.com>
83 ;;; Copyright © 2020 Tomás Ortín Fernández <tomasortin@mailbox.org>
84 ;;; Copyright © 2020 Zhu Zihao <all_but_last@163.com>
85 ;;;
86 ;;; This file is part of GNU Guix.
87 ;;;
88 ;;; GNU Guix is free software; you can redistribute it and/or modify it
89 ;;; under the terms of the GNU General Public License as published by
90 ;;; the Free Software Foundation; either version 3 of the License, or (at
91 ;;; your option) any later version.
92 ;;;
93 ;;; GNU Guix is distributed in the hope that it will be useful, but
94 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
95 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
96 ;;; GNU General Public License for more details.
97 ;;;
98 ;;; You should have received a copy of the GNU General Public License
99 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
100
101 (define-module (gnu packages emacs-xyz)
102 #:use-module ((guix licenses) #:prefix license:)
103 #:use-module (guix packages)
104 #:use-module (guix cvs-download)
105 #:use-module (guix download)
106 #:use-module (guix bzr-download)
107 #:use-module (guix git-download)
108 #:use-module (guix hg-download)
109 #:use-module (guix build-system gnu)
110 #:use-module (guix build-system cmake)
111 #:use-module (guix build-system emacs)
112 #:use-module (guix build-system glib-or-gtk)
113 #:use-module (guix build-system perl)
114 #:use-module (guix build-system trivial)
115 #:use-module (gnu packages)
116 #:use-module (gnu packages admin)
117 #:use-module (gnu packages audio)
118 #:use-module (gnu packages bash)
119 #:use-module (gnu packages cmake)
120 #:use-module (gnu packages code)
121 #:use-module (gnu packages cpp)
122 #:use-module (gnu packages curl)
123 #:use-module (gnu packages databases)
124 #:use-module (gnu packages dictionaries)
125 #:use-module (gnu packages djvu)
126 #:use-module (gnu packages emacs)
127 #:use-module (gnu packages guile)
128 #:use-module (gnu packages gtk)
129 #:use-module (gnu packages gnome)
130 #:use-module (gnu packages haskell-apps)
131 #:use-module (gnu packages ibus)
132 #:use-module (gnu packages ncurses)
133 #:use-module (gnu packages python)
134 #:use-module (gnu packages python-xyz)
135 #:use-module (gnu packages telephony)
136 #:use-module (gnu packages terminals)
137 #:use-module (gnu packages tex)
138 #:use-module (gnu packages texinfo)
139 #:use-module (gnu packages tcl)
140 #:use-module (gnu packages tls)
141 #:use-module (gnu packages pkg-config)
142 #:use-module (gnu packages xorg)
143 #:use-module (gnu packages lesstif)
144 #:use-module (gnu packages llvm)
145 #:use-module (gnu packages image)
146 #:use-module (gnu packages linux)
147 #:use-module (gnu packages libevent)
148 #:use-module (gnu packages lua)
149 #:use-module (gnu packages music)
150 #:use-module (gnu packages version-control)
151 #:use-module (gnu packages imagemagick)
152 #:use-module (gnu packages w3m)
153 #:use-module (gnu packages web)
154 #:use-module (gnu packages wget)
155 #:use-module (gnu packages autotools)
156 #:use-module (gnu packages base)
157 #:use-module (gnu packages compression)
158 #:use-module (gnu packages node)
159 #:use-module (gnu packages xml)
160 #:use-module (gnu packages glib)
161 #:use-module (gnu packages acl)
162 #:use-module (gnu packages mail)
163 #:use-module (gnu packages messaging)
164 #:use-module (gnu packages package-management)
165 #:use-module (gnu packages perl)
166 #:use-module (gnu packages pdf)
167 #:use-module (gnu packages ruby)
168 #:use-module (gnu packages rust-apps)
169 #:use-module (gnu packages scheme)
170 #:use-module (gnu packages speech)
171 #:use-module (gnu packages xiph)
172 #:use-module (gnu packages mp3)
173 #:use-module (gnu packages gettext)
174 #:use-module (gnu packages fribidi)
175 #:use-module (gnu packages gd)
176 #:use-module (gnu packages fontutils)
177 #:use-module (gnu packages password-utils)
178 #:use-module (gnu packages pulseaudio)
179 #:use-module (gnu packages sphinx)
180 #:use-module (gnu packages xdisorg)
181 #:use-module (gnu packages shells)
182 #:use-module (gnu packages sqlite)
183 #:use-module (gnu packages ghostscript)
184 #:use-module (gnu packages gnupg)
185 #:use-module (gnu packages video)
186 #:use-module (gnu packages haskell-xyz)
187 #:use-module (gnu packages wordnet)
188 #:use-module (gnu packages photo)
189 #:use-module (gnu packages uml)
190 #:use-module (gnu packages finance)
191 #:use-module (guix utils)
192 #:use-module (srfi srfi-1)
193 #:use-module (ice-9 match))
194
195 ;;;
196 ;;; Emacs hacking.
197 ;;;
198
199 (define-public emacs-geiser
200 (package
201 (name "emacs-geiser")
202 (version "0.12")
203 (source
204 (origin
205 (method git-fetch)
206 (uri (git-reference
207 (url "https://gitlab.com/jaor/geiser/")
208 (commit version)))
209 (file-name (git-file-name name version))
210 (sha256
211 (base32 "0n718xpys7v94zaf9lpmsx97qgn6qxif1acr718wyvpmfr4hiv08"))))
212 (build-system gnu-build-system)
213 (arguments
214 '(#:phases
215 (modify-phases %standard-phases
216 (add-after 'install 'post-install
217 (lambda* (#:key outputs #:allow-other-keys)
218 (symlink "geiser-install.el"
219 (string-append (assoc-ref outputs "out")
220 "/share/emacs/site-lisp/"
221 "geiser-autoloads.el"))
222 #t)))))
223 (inputs
224 `(("guile" ,guile-2.2)))
225 (native-inputs
226 `(("emacs" ,emacs-minimal)
227 ("autoconf" ,autoconf)
228 ("automake" ,automake)
229 ("texinfo" ,texinfo)))
230 (home-page "https://nongnu.org/geiser/")
231 (synopsis "Collection of Emacs modes for Guile and Racket hacking")
232 (description
233 "Geiser is a collection of Emacs major and minor modes that conspire with
234 one or more Scheme implementations to keep the Lisp Machine Spirit alive. The
235 continuously running Scheme interpreter takes the center of the stage in
236 Geiser. A bundle of Elisp shims orchestrates the dialog between the Scheme
237 implementation, Emacs and, ultimately, the schemer, giving them access to live
238 metadata.")
239 (license license:bsd-3)))
240
241 (define-public emacs-ac-geiser
242 (let ((commit "93818c936ee7e2f1ba1b315578bde363a7d43d05")
243 (revision "0"))
244 (package
245 (name "emacs-ac-geiser")
246 (version (git-version "0.1" revision commit))
247 (source
248 (origin
249 (uri (git-reference
250 (url "https://github.com/xiaohanyu/ac-geiser")
251 (commit commit)))
252 (method git-fetch)
253 (sha256
254 (base32 "00n2qa26yilaj837n1yp6lbqa4gf30nkkbvanl7m9ih7k48ssqmw"))
255 (file-name (git-file-name name version))))
256 (build-system emacs-build-system)
257 (propagated-inputs
258 `(("geiser" ,emacs-geiser)
259 ("auto-complete" ,emacs-auto-complete)))
260 (synopsis "Auto-complete backend for geiser")
261 (description
262 "This package provides an auto-complete source for Scheme projects
263 using geiser.")
264 (license license:bsd-3)
265 (home-page "https://github.com/xiaohanyu/ac-geiser"))))
266
267 (define-public emacs-hyperbole
268 (package
269 (name "emacs-hyperbole")
270 (version "7.1.3")
271 (source
272 (origin
273 (method url-fetch)
274 (uri (string-append "https://elpa.gnu.org/packages/"
275 "hyperbole-" version ".tar"))
276 (sha256
277 (base32 "0bizibn4qgxqp89fyik6p47s9hss1g932mg8k7pznn3kkhj5c8rh"))
278 (patches
279 (search-patches "emacs-hyperbole-toggle-messaging.patch"))))
280 (build-system emacs-build-system)
281 (arguments
282 `(#:include '("DEMO"
283 "DEMO-ROLO.otl"
284 "HY-ABOUT"
285 "\\.el$"
286 "\\.info$"
287 "\\.kotl$")
288 #:phases
289 (modify-phases %standard-phases
290 ;; Fix build issues about missing "domainname" and "hpmap:dir-user"
291 ;; parent dir.
292 (add-after 'unpack 'fix-build
293 (lambda* (#:key inputs #:allow-other-keys)
294 (substitute* "hypb.el"
295 (("/bin/domainname")
296 (string-append (assoc-ref inputs "inetutils")
297 "/bin/dnsdomainname")))
298 (substitute* "hyperbole.el"
299 (("\\(hyperb:check-dir-user\\)") ""))
300 #t)))))
301 (inputs
302 `(("inetutils" ,inetutils)))
303 (home-page "https://www.gnu.org/software/hyperbole/")
304 (synopsis "The Everyday Hypertextual Information Manager")
305 (description
306 "GNU Hyperbole, or just Hyperbole, is an easy-to-use, yet powerful and
307 programmable hypertextual information management system implemented as a GNU
308 Emacs package. It offers rapid views and interlinking of all kinds of textual
309 information, utilizing Emacs for editing. It can dramatically increase your
310 productivity and greatly reduce the number of keyboard/mouse keys you'll need
311 to work efficiently. Hyperbole lets you:
312
313 @itemize
314 @item Quickly create hyperlink buttons either from the keyboard or by dragging
315 between a source and destination window with a mouse button depressed. Later,
316 activate buttons by pressing/clicking on them or by giving the name of the
317 button.
318 @item Activate many kinds of \"implicit buttons\" recognized by context within
319 text buffers, e.g. URLs, grep output lines, and git commits. A single key or
320 mouse button automatically does the right thing in dozens of contexts; just
321 press and go.
322 @item Build outlines with multi-level numbered outline nodes, e.g. 1.4.8.6,
323 that all renumber automatically as any node or tree is moved in the outline.
324 Each node also has a permanent hyperlink anchor that you can reference from
325 any other node.
326 @item Manage all your contacts quickly with hierarchical categories and embed
327 hyperlinks within each entry. Or create an archive of documents with
328 hierarchical entries and use the same search mechanism to quickly find any
329 matching entry.
330 @item Use single keys to easily manage your Emacs windows or frames and
331 quickly retrieve saved window and frame configurations.
332 @item Search for things in your current buffers, in a directory tree or across
333 major web search engines with the touch of a few keys.
334 @end itemize
335
336 The common thread in all these features is making retrieval, management and
337 display of information fast and easy. That is Hyperbole's purpose.")
338 (license license:gpl3+)))
339
340 (define-public emacs-paredit
341 (package
342 (name "emacs-paredit")
343 (version "24")
344 (source (origin
345 (method url-fetch)
346 (uri (string-append "http://mumble.net/~campbell/emacs/paredit-"
347 version ".el"))
348 (sha256
349 (base32
350 "0pp3n8q6kc70blqsaw0zlzp6bc327dpgdrjr0cnh7hqg1lras7ka"))))
351 (build-system emacs-build-system)
352 (home-page "http://mumble.net/~campbell/emacs/paredit/")
353 (synopsis "Emacs minor mode for editing parentheses")
354 (description
355 "ParEdit (paredit.el) is a minor mode for performing structured editing
356 of S-expression data. The typical example of this would be Lisp or Scheme
357 source code.
358
359 ParEdit helps **keep parentheses balanced** and adds many keys for moving
360 S-expressions and moving around in S-expressions. Its behavior can be jarring
361 for those who may want transient periods of unbalanced parentheses, such as
362 when typing parentheses directly or commenting out code line by line.")
363 (license license:gpl3+)))
364
365 (define-public git-modes
366 (package
367 (name "emacs-git-modes")
368 (version "1.2.8")
369 (source (origin
370 (method git-fetch)
371 (uri (git-reference
372 (url "https://github.com/magit/git-modes")
373 (commit version)))
374 (file-name (git-file-name name version))
375 (sha256
376 (base32
377 "08hy7rbfazs6grkpk54i82bz0i0c74zcjk96cip8970h6jn3mj72"))))
378 (build-system emacs-build-system)
379 (home-page "https://github.com/magit/git-modes")
380 (synopsis "Emacs major modes for Git configuration files")
381 (description
382 "This package provides Emacs major modes for editing various Git
383 configuration files, such as .gitattributes, .gitignore, and .git/config.")
384 (license license:gpl3+)))
385
386 (define-public emacs-with-editor
387 ;; This commit fixes an (magit) issue with emacs 28, see
388 ;; https://lists.gnu.org/archive/html/help-gnu-emacs/2020-10/msg00211.html
389 (let ((commit "c4768f51c7415119519b4626d8643d60e584098c")
390 (revision "1"))
391 (package
392 (name "emacs-with-editor")
393 (version (git-version "2.9.4" revision commit))
394 (source
395 (origin
396 (method git-fetch)
397 (uri (git-reference
398 (url "https://github.com/magit/with-editor")
399 (commit commit)))
400 (file-name (git-file-name name version))
401 (sha256
402 (base32 "01ysb9pnscpmingay6njdywkqgj4hn5l5d9igsg3x7p7061jwwix"))))
403 (build-system emacs-build-system)
404 (propagated-inputs
405 `(("emacs-dash" ,emacs-dash)))
406 (home-page "https://github.com/magit/with-editor")
407 (synopsis "Emacs library for using Emacsclient as EDITOR")
408 (description
409 "This package provides an Emacs library to use the Emacsclient as
410 @code{$EDITOR} of child processes, making sure they know how to call home.
411 For remote processes a substitute is provided, which communicates with Emacs
412 on stdout instead of using a socket as the Emacsclient does.")
413 (license license:gpl3+))))
414
415 (define-public emacs-libgit
416 (let ((commit "0ef8b13aef011a98b7da756e4f1ce3bb18e4d55a")
417 (revision "1"))
418 (package
419 (name "emacs-libgit")
420 (version (git-version "20200515" revision commit))
421 (source (origin
422 (method git-fetch)
423 (uri (git-reference
424 (url "https://github.com/magit/libegit2")
425 (commit commit)))
426 (file-name (git-file-name name version))
427 (sha256
428 (base32
429 "0pnjr3bg6y6354dfjjxfj0g51swzgl1fncpprah75x4k94rd369f"))
430 (patches (search-patches
431 ;; Submitted for inclusion upstream (see:
432 ;; https://github.com/magit/libegit2/pull/96).
433 "emacs-libgit-use-system-libgit2.patch"))))
434 ;; Use the cmake-build-system as it provides support for cross builds.
435 (build-system cmake-build-system)
436 (arguments
437 `(#:configure-flags '("-DUSE_SYSTEM_LIBGIT2=x")
438 ;; Add the emacs-build-system byte compilation and install phases.
439 #:imported-modules (,@%cmake-build-system-modules
440 (guix build emacs-build-system)
441 (guix build emacs-utils))
442 #:modules ((guix build cmake-build-system)
443 ((guix build emacs-build-system) #:prefix emacs:)
444 (guix build emacs-utils)
445 (guix build utils))
446 #:phases
447 (modify-phases %standard-phases
448 (add-after 'unpack 'set-libgit--module-file
449 (lambda* (#:key outputs #:allow-other-keys)
450 (let ((out (assoc-ref outputs "out")))
451 (make-file-writable "libgit.el")
452 (emacs-substitute-variables "libgit.el"
453 ("libgit--module-file"
454 (string-append out "/share/emacs/site-lisp/libegit2.so")))
455 #t)))
456 (add-before 'install 'prepare-for-install
457 (lambda _
458 (let ((s (string-append "../" ,name "-" ,version "-checkout")))
459 (copy-file "libegit2.so" (string-append s "/libegit2.so"))
460 (chdir s)
461 #t)))
462 (replace 'install
463 (lambda* (#:key outputs #:allow-other-keys)
464 (let ((install (assoc-ref emacs:%standard-phases 'install)))
465 (install #:outputs outputs
466 #:include (cons "\\.so$"
467 emacs:%default-include)))))
468 (add-after 'install 'make-autoloads
469 (assoc-ref emacs:%standard-phases 'make-autoloads))
470 (add-after 'make-autoloads 'enable-autoloads-compilation
471 (assoc-ref emacs:%standard-phases 'enable-autoloads-compilation))
472 (add-after 'enable-autoloads-compilation 'patch-el-files
473 (assoc-ref emacs:%standard-phases 'patch-el-files))
474 (add-after 'patch-el-files 'emacs-build
475 (assoc-ref emacs:%standard-phases 'build))
476 (add-after 'emacs-build 'validate-compiled-autoloads
477 (assoc-ref emacs:%standard-phases 'validate-compiled-autoloads)))))
478 (native-inputs
479 `(("pkg-config" ,pkg-config)
480 ("emacs" ,emacs-no-x)
481 ("git" ,git-minimal)))
482 (inputs
483 `(("libgit2" ,libgit2)))
484 (home-page "https://github.com/magit/libegit2")
485 (synopsis "Emacs bindings for libgit2")
486 (description "This is an experimental module written in C providing
487 libgit2 bindings for Emacs, intended to boost the performance of Magit.")
488 ;; The LICENSE file says GPL v2+, but libgit.el says GPL v3+.
489 (license license:gpl3+))))
490
491 (define-public emacs-magit
492 ;; There hasn't been an official release since 2018-11-16.
493 (let ((commit "7f486d47fe7042edba8d9a855a4c2c301a30bc6b")
494 (revision "6"))
495 (package
496 (name "emacs-magit")
497 (version (git-version "2.90.1" revision commit))
498 (source
499 (origin
500 (method git-fetch)
501 (uri (git-reference
502 (url "https://github.com/magit/magit")
503 (commit commit)))
504 (file-name (git-file-name name version))
505 (sha256
506 (base32 "05kyc5y5wa1p3h8j7mbgvfc4zcj998zi26lnnmksj9wnvahzxfms"))))
507 (build-system emacs-build-system)
508 (arguments
509 `(#:emacs ,emacs-no-x ;module support is required
510 #:tests? #t
511 #:test-command '("make" "test")
512 #:phases
513 (modify-phases %standard-phases
514 (add-after 'unpack 'build-info-manual
515 (lambda _
516 (invoke "make" "info")
517 ;; Copy info files to the lisp directory, which acts as
518 ;; the root of the project for the emacs-build-system.
519 (for-each (lambda (f)
520 (install-file f "lisp"))
521 (find-files "Documentation" "\\.info$"))
522 (chdir "lisp")
523 #t))
524 (add-after 'build-info-manual 'set-magit-version
525 (lambda _
526 (make-file-writable "magit.el")
527 (emacs-substitute-variables "magit.el"
528 ("magit-version" ,version))
529 #t))
530 (add-after 'set-magit-version 'patch-exec-paths
531 (lambda* (#:key inputs #:allow-other-keys)
532 (let ((perl (assoc-ref inputs "perl")))
533 (make-file-writable "magit-sequence.el")
534 (emacs-substitute-variables "magit-sequence.el"
535 ("magit-perl-executable" (string-append perl "/bin/perl")))
536 #t)))
537 (add-before 'check 'configure-git
538 (lambda _
539 ;; Otherwise some tests fail with error "unable to auto-detect
540 ;; email address".
541 (setenv "HOME" (getcwd))
542 (invoke "git" "config" "--global" "user.name" "toto")
543 (invoke "git" "config" "--global" "user.email"
544 "toto@toto.com")))
545 (add-after 'configure-git 'disable-tramp-test
546 (lambda _
547 ;; There is an issue causing TRAMP to fail in the build
548 ;; environment. Setting the tramp-remote-shell parameter of
549 ;; the sudo-method to the file name of the shell didn't help.
550 (chdir "..")
551 (substitute* "t/magit-tests.el"
552 (("^\\(ert-deftest magit-toplevel:tramp.*" all)
553 (string-append all " (skip-unless nil)")))
554 #t))
555 (add-before 'install 'enter-lisp-directory
556 (lambda _
557 (chdir "lisp")
558 #t)))))
559 (native-inputs
560 `(("texinfo" ,texinfo)))
561 (inputs
562 `(("git" ,git)
563 ("perl" ,perl)))
564 (propagated-inputs
565 `(("emacs-dash" ,emacs-dash)
566 ("emacs-libgit" ,emacs-libgit)
567 ("emacs-transient" ,emacs-transient)
568 ("emacs-with-editor" ,emacs-with-editor)))
569 (home-page "https://magit.vc/")
570 (synopsis "Emacs interface for the Git version control system")
571 (description
572 "With Magit, you can inspect and modify your Git repositories
573 with Emacs. You can review and commit the changes you have made to
574 the tracked files, for example, and you can browse the history of past
575 changes. There is support for cherry picking, reverting, merging,
576 rebasing, and other common Git operations.")
577 (license license:gpl3+))))
578
579 (define-public emacs-magit-svn
580 (let ((commit "9e33ceee32f665db59909e1c00a667ccdd04178f"))
581 (package
582 (name "emacs-magit-svn")
583 (version (git-version "2.2.1" "2" commit))
584 (source (origin
585 (method git-fetch)
586 (uri (git-reference
587 (url "https://github.com/magit/magit-svn")
588 (commit commit)))
589 (file-name (git-file-name name version))
590 (sha256
591 (base32
592 "1mlqz8dh6jy5rv72lgkxv253dgh73fmbaidskicypapvbl3lr6xy"))))
593 (build-system emacs-build-system)
594 (propagated-inputs `(("dash" ,emacs-dash)
595 ("with-editor" ,emacs-with-editor)
596 ("magit" ,emacs-magit)
597 ("transient" ,emacs-transient)))
598 (home-page "https://github.com/magit/magit-svn")
599 (synopsis "Git-SVN extension to Magit")
600 (description
601 "This package is an extension to Magit, the Git Emacs mode, providing
602 support for Git-SVN.")
603 (license license:gpl3+))))
604
605 (define-public emacs-magit-popup
606 (package
607 (name "emacs-magit-popup")
608 (version "2.13.3")
609 (source
610 (origin
611 (method git-fetch)
612 (uri (git-reference
613 (url "https://github.com/magit/magit-popup")
614 (commit (string-append "v" version))))
615 (file-name (git-file-name name version))
616 (sha256
617 (base32 "0znp6gx6vpcsybg774ab06mdgxb7sfk3gki1yp2qhkanav13i6q1"))))
618 (build-system emacs-build-system)
619 (arguments
620 `(#:phases
621 (modify-phases %standard-phases
622 (add-before 'install 'make-info
623 (lambda _
624 (invoke "make" "info"))))))
625 (native-inputs
626 `(("texinfo" ,texinfo)))
627 (propagated-inputs
628 `(("emacs-dash" ,emacs-dash)))
629 (home-page "https://github.com/magit/magit-popup")
630 (synopsis "Define prefix-infix-suffix command combos")
631 (description
632 "This library implements a generic interface for toggling switches and
633 setting options and then invoking an Emacs command which does something with
634 these arguments. The prototypical use is for the command to call an external
635 process, passing on the arguments as command line arguments.")
636 (license license:gpl3+)))
637
638 (define-public emacs-magit-annex
639 (let ((commit "ef5dce6267e9118a5eca82a22bcad0b67826c23a")
640 (revision "1"))
641 (package
642 (name "emacs-magit-annex")
643 (version (git-version "1.7.1" revision commit))
644 (source (origin
645 (method git-fetch)
646 (uri (git-reference
647 (url "https://github.com/magit/magit-annex")
648 (commit commit)))
649 (file-name (git-file-name name version))
650 (sha256
651 (base32
652 "0vzkydgl889cq173zjl89g2vrddb9abc4a8gljiz3b4a7n5b1nrd"))))
653 (build-system emacs-build-system)
654 (propagated-inputs
655 `(("magit" ,emacs-magit)
656 ("transient" ,emacs-transient)))
657 (home-page "https://github.com/magit/magit-annex/")
658 (synopsis "Git-annex support for Magit")
659 (description
660 "Magit-annex adds a few git-annex operations to the Magit interface.")
661 (license license:gpl3+))))
662
663 (define-public emacs-minions
664 (package
665 (name "emacs-minions")
666 (version "0.3.2")
667 (source (origin
668 (method git-fetch)
669 (uri (git-reference
670 (url "https://github.com/tarsius/minions")
671 (commit (string-append "v" version))))
672 (file-name (git-file-name name version))
673 (sha256
674 (base32
675 "16rplpbfy3dnvqqgavk9jb1f1ihr5875zlixd4zxb1pqxs3jkgw3"))))
676 (build-system emacs-build-system)
677 (propagated-inputs
678 `(("emacs-dash" ,emacs-dash)))
679 (home-page "https://github.com/tarsius/minions")
680 (synopsis "Minor-mode menu for the mode line")
681 (description
682 "This package implements a menu that lists enabled minor-modes, as well
683 as commonly but not currently enabled minor-modes. It can be used to toggle
684 local and global minor-modes, to access mode-specific menus, and to get help
685 about modes.
686
687 This menu is intended as a replacement for the incomplete yet wide list of
688 enabled minor-modes that is displayed in the mode line by default. To use the
689 menu like this, enable Minions mode.
690
691 Alternatively the menu can be bound globally, for example:
692 @code{(global-set-key [S-down-mouse-3] 'minions-minor-modes-menu)}.")
693 (license license:gpl3+)))
694
695 (define-public emacs-moody
696 (package
697 (name "emacs-moody")
698 (version "0.5.3")
699 (source (origin
700 (method git-fetch)
701 (uri (git-reference
702 (url "https://github.com/tarsius/moody")
703 (commit (string-append "v" version))))
704 (file-name (git-file-name name version))
705 (sha256
706 (base32
707 "1xyw4l42053595r76lj8safsx6pj25as0107wd96by3h7dg9m586"))))
708 (build-system emacs-build-system)
709 (home-page "https://github.com/tarsius/moody")
710 (synopsis "Tabs and ribbons for Emacs mode-line")
711 (description
712 "@code{emacs-moody} provides utilities for displaying elements of
713 the mode line as tabs and ribbons. It also provides replacements for a few
714 built-in elements. The biggest difference to similar packages is that
715 this one is much simpler and much more consistent. When using this package,
716 then only the color of the mode line changes when a window becomes in-/active.")
717 (license license:gpl3+)))
718
719 (define-public emacs-treepy
720 (package
721 (name "emacs-treepy")
722 (version "0.1.2")
723 (source (origin
724 (method git-fetch)
725 (uri (git-reference
726 (url "https://github.com/volrath/treepy.el")
727 (commit version)))
728 (file-name (git-file-name name version))
729 (sha256
730 (base32
731 "0pmrpij80m5kgcr8bw36r8wllgppasw08vn3ghwvis9srpaq75cn"))))
732 (build-system emacs-build-system)
733 (home-page
734 "https://github.com/volrath/treepy.el")
735 (synopsis "Tree traversal tools")
736 (description
737 "Generic tools for recursive and iterative tree traversal based on
738 clojure.walk and clojure.zip respectively.")
739 (license license:gpl3+)))
740
741 (define-public emacs-graphql
742 (package
743 (name "emacs-graphql")
744 (version "0.1.1")
745 (source (origin
746 (modules '((guix build utils)))
747 ;; Remove examples file with references to external packages as
748 ;; they do not exist at compilation time.
749 (snippet
750 '(begin (delete-file "examples.el")
751 #t))
752 (method git-fetch)
753 (uri (git-reference
754 (url "https://github.com/vermiculus/graphql.el")
755 (commit version)))
756 (file-name (git-file-name name version))
757 (sha256
758 (base32
759 "0sp0skc1rnhi39szfbq1i99pdgd3bhn4c15cff05iqhjy2d4hniw"))))
760 (build-system emacs-build-system)
761 (home-page
762 "https://github.com/vermiculus/graphql.el")
763 (synopsis "GraphQL utilities")
764 (description
765 "GraphQL.el provides a generally-applicable domain-specific language for
766 creating and executing GraphQL queries against your favorite web services.
767 GraphQL is a data query language and runtime designed and used to request and
768 deliver data to mobile and web apps.")
769 (license license:gpl3+)))
770
771 (define-public emacs-graphql-mode
772 ;; No tagged commit.
773 (let ((commit "9bed568ec86242dbe30bdbab324aa0eb2cd9bf08")
774 (revision "1"))
775 (package
776 (name "emacs-graphql-mode")
777 (version commit)
778 (source
779 (origin
780 (method git-fetch)
781 (uri (git-reference
782 (url "https://github.com/davazp/graphql-mode")
783 (commit commit)))
784 (file-name (git-file-name name version))
785 (sha256
786 (base32 "0x9y7qq6y0zg8ncamzvk68ccmdyzh7xsj0xs0ykyl20d5wdpplj4"))))
787 (build-system emacs-build-system)
788 (home-page "https://github.com/davazp/graphql-mode")
789 (synopsis "Emacs mode to edit GraphQL schema and queries")
790 (description
791 "This package implements a major mode to edit GraphQL schemas and
792 query. The basic functionality includes syntax highlight and indentation.
793 Additionally, it is able to send GraphQL queries to an end-point URL.
794
795 Files with the @file{.graphql} and @file{.gql} extensions are
796 automatically opened with this mode.")
797 (license license:gpl3+))))
798
799 (define-public emacs-ghub
800 (package
801 (name "emacs-ghub")
802 (version "3.4.1")
803 (source
804 (origin
805 (method git-fetch)
806 (uri (git-reference
807 (url "https://github.com/magit/ghub")
808 (commit (string-append "v" version))))
809 (file-name (git-file-name name version))
810 (sha256
811 (base32 "07iy4203ppvzkh67sb0v968hnypnvy4dpfy0qpqrp8zmc455dxq5"))))
812 (build-system emacs-build-system)
813 (arguments
814 `(#:phases
815 (modify-phases %standard-phases
816 (add-before 'install 'make-info
817 (lambda _
818 (invoke "make" "info"))))))
819 (native-inputs
820 `(("texinfo" ,texinfo)))
821 (propagated-inputs
822 `(("dash" ,emacs-dash)
823 ("emacs-let-alist" ,emacs-let-alist)
824 ("treepy" ,emacs-treepy)))
825 (home-page "https://github.com/magit/ghub")
826 (synopsis "Emacs client libraries for the APIs of various Git forges")
827 (description
828 "Ghub provides basic support for using the APIs of various Git forges from
829 Emacs packages. It supports the REST APIs of Github, Github GraphQL, Gitlab,
830 Gitea, Gogs and Bitbucket. It abstracts access to API resources using only a
831 handful of functions that are not resource-specific.")
832 (license license:gpl3+)))
833
834 (define-public emacs-typit
835 ;; Last release is from 2017.
836 (let ((commit "231cb7df43253b84323520b8ed70f128d37003af")
837 (revision "1"))
838 (package
839 (name "emacs-typit")
840 (version (git-version "0.2.1" revision commit))
841 (source
842 (origin
843 (method git-fetch)
844 (uri (git-reference
845 (url "https://github.com/mrkkrp/typit")
846 (commit commit)))
847 (file-name (git-file-name name version))
848 (sha256
849 (base32 "1savrxs7xl92ifyxpxkkzv2didr7lb405h0dwz1bs1wldr5fb53f"))))
850 (build-system emacs-build-system)
851 (arguments
852 `(#:phases
853 (modify-phases %standard-phases
854 (add-after 'install 'install-dictionaries
855 (lambda* (#:key outputs #:allow-other-keys)
856 (let* ((out (assoc-ref outputs "out"))
857 (site-lisp
858 (string-append
859 out "/share/emacs/site-lisp/dict")))
860 (mkdir-p site-lisp)
861 (copy-recursively "dict" site-lisp)
862 #t))))))
863 (propagated-inputs
864 `(("emacs-f" ,emacs-f)
865 ("emacs-mmt" ,emacs-mmt)))
866 (home-page "https://github.com/mrkkrp/typit")
867 (synopsis "Typing game for Emacs with two difficulties")
868 (description "Emacs Typit is a typing game for Emacs. Words that are
869 picked randomly from the most frequent words in language you're practicing,
870 until time is up.")
871 (license license:gpl3+))))
872
873 (define-public emacs-scribble-mode
874 (let ((commit "217945d54de5e4bb207033f2116baa28f5c5ecf2")
875 (revision "2"))
876 (package
877 (name "emacs-scribble-mode")
878 (version (git-version "0.1" revision commit))
879 (source (origin
880 (method git-fetch)
881 (uri (git-reference
882 (url "https://github.com/emacs-pe/scribble-mode")
883 (commit commit)))
884 (file-name (git-file-name name version))
885 (sha256
886 (base32
887 "1s5ccw1a5ack01wd94ywfcrar9j98agchwdh30q7iyxr0d2z4sii"))))
888 (build-system emacs-build-system)
889 (home-page "https://github.com/emacs-pe/scribble-mode")
890 (synopsis "Emacs mode for editing the Scribble documentation syntax.")
891 (description
892 "This package provides basic syntax highlighting and editing support
893 for editing Racket's Scribble documentation syntax in Emacs.")
894 (license license:gpl3+))))
895
896 (define-public emacs-shroud
897 (package
898 (name "emacs-shroud")
899 (version "1.105")
900 (source
901 (origin
902 (method git-fetch)
903 (uri (git-reference
904 (url "https://git.savannah.gnu.org/git/emacs-shroud.git")
905 (commit version)))
906 (file-name (git-file-name name version))
907 (sha256
908 (base32 "0q2pb3w8s833fjhkzicciw2php4lsnismad1dnwgp2lcway757ra"))))
909 (build-system gnu-build-system)
910 (native-inputs
911 `(("autoconf" ,autoconf)
912 ("automake" ,automake)
913 ("texinfo" ,texinfo)
914 ("perl" ,perl)
915 ("emacs-minimal" ,emacs-minimal)))
916 (propagated-inputs
917 `(("emacs-bui" ,emacs-bui)
918 ("emacs-dash" ,emacs-dash)
919 ("emacs-f" ,emacs-f)
920 ("emacs-s" ,emacs-s)
921 ("gnupg" ,gnupg)
922 ("shroud" ,shroud)))
923 (home-page "https://www.nongnu.org/emacs-shroud")
924 (synopsis "Emacs interface to the Shroud password manager")
925 (description
926 "This package provides an Emacs interface to the Shroud password manager,
927 using the Buffers User Interface library. You can view, copy, and edit secrets
928 from within Emacs.")
929 (license license:gpl3+)))
930
931 (define-public emacs-unpackaged-el
932 (let ((commit "746801a677ada6cd6fa076e423aa0953779f3fad")
933 (revision "3"))
934 (package
935 (name "emacs-unpackaged-el")
936 (version (git-version "0" revision commit))
937 (source
938 (origin
939 (method git-fetch)
940 (uri (git-reference
941 (url "https://github.com/alphapapa/unpackaged.el")
942 (commit commit)))
943 (file-name (git-file-name name version))
944 (sha256
945 (base32
946 "0jvb2ci0h0lj368qhbff3pzkxj3nhlligpbkjzi525k9rkjgm7l8"))))
947 (build-system emacs-build-system)
948 (propagated-inputs
949 `(("emacs-dash" ,emacs-dash)
950 ("emacs-org" ,emacs-org)
951 ("emacs-s" ,emacs-s)
952 ("emacs-hydra" ,emacs-hydra)
953 ("emacs-use-package" ,emacs-use-package)))
954 (arguments
955 `(#:phases
956 (modify-phases %standard-phases
957 (add-after 'unpack 'require-hydra
958 (lambda _
959 (substitute* "unpackaged.el"
960 ((";;; Code:") ";;; Code:\n(require 'hydra)"))
961 #t)))))
962 (home-page "https://github.com/alphapapa/unpackaged.el")
963 (synopsis "Useful snippets of Emacs Lisp code")
964 (description "This package provides Emacs Lisp utilities for a variety
965 of tasks, including version control, task management, and regex-based
966 replacement.")
967 (license license:gpl3+))))
968
969 (define-public emacs-haskell-mode
970 (package
971 (name "emacs-haskell-mode")
972 (version "17.2")
973 (source
974 (origin
975 (method git-fetch)
976 (uri (git-reference
977 (url "https://github.com/haskell/haskell-mode")
978 (commit version)))
979 (file-name (git-file-name name version))
980 (sha256
981 (base32 "0zxbacqzr84krmhqpvzndnvlcjh1gs1x20ys0dykgd7chyhci5j5"))))
982 (propagated-inputs
983 `(("emacs-dash" ,emacs-dash)))
984 (native-inputs
985 `(("emacs" ,emacs-minimal)
986 ("emacs-el-search" ,emacs-el-search)
987 ("emacs-stream" ,emacs-stream)
988 ("texinfo" ,texinfo)))
989 (build-system gnu-build-system)
990 (arguments
991 `(#:make-flags (list (string-append "EMACS="
992 (assoc-ref %build-inputs "emacs")
993 "/bin/emacs"))
994 #:modules ((ice-9 match)
995 (srfi srfi-26)
996 ,@%gnu-build-system-modules)
997 #:phases
998 (modify-phases %standard-phases
999 (delete 'configure)
1000 (add-before 'build 'pre-build
1001 (lambda* (#:key inputs #:allow-other-keys)
1002 (define (el-dir store-dir)
1003 (match (find-files store-dir "\\.el$")
1004 ((f1 f2 ...) (dirname f1))
1005 (_ "")))
1006
1007 (let ((sh (string-append (assoc-ref inputs "bash") "/bin/sh")))
1008 (define emacs-prefix? (cut string-prefix? "emacs-" <>))
1009
1010 (setenv "SHELL" "sh")
1011 (setenv "EMACSLOADPATH"
1012 (string-concatenate
1013 (map (match-lambda
1014 (((? emacs-prefix? name) . dir)
1015 (string-append (el-dir dir) ":"))
1016 (_ ""))
1017 inputs)))
1018 (substitute* (find-files "." "\\.el") (("/bin/sh") sh))
1019 #t)))
1020 (add-before 'check 'delete-failing-tests
1021 ;; XXX: these tests require GHC executable, which would be a big
1022 ;; native input.
1023 (lambda _
1024 (with-directory-excursion "tests"
1025 ;; File `haskell-indent-tests.el' fails with
1026 ;; `haskell-indent-put-region-in-literate-2'
1027 ;; on Emacs 27.1+
1028 ;; XXX: https://github.com/haskell/haskell-mode/issues/1714
1029 (for-each delete-file
1030 '("haskell-indent-tests.el"
1031 "haskell-customize-tests.el"
1032 "inferior-haskell-tests.el")))
1033 #t))
1034 (replace 'install
1035 (lambda* (#:key outputs #:allow-other-keys)
1036 (let* ((out (assoc-ref outputs "out"))
1037 (el-dir (string-append out "/share/emacs/site-lisp"))
1038 (doc (string-append
1039 out "/share/doc/haskell-mode-" ,version))
1040 (info (string-append out "/share/info")))
1041 (define (copy-to-dir dir files)
1042 (for-each (lambda (f)
1043 (install-file f dir))
1044 files))
1045
1046 (with-directory-excursion "doc"
1047 (invoke "makeinfo" "haskell-mode.texi")
1048 (install-file "haskell-mode.info" info))
1049 (copy-to-dir doc '("CONTRIBUTING.md" "NEWS" "README.md"))
1050 (copy-to-dir el-dir (find-files "." "\\.elc?"))
1051 #t))))))
1052 (home-page "https://github.com/haskell/haskell-mode")
1053 (synopsis "Haskell mode for Emacs")
1054 (description
1055 "This is an Emacs mode for editing, debugging and developing Haskell
1056 programs.")
1057 (license license:gpl3+)))
1058
1059 (define-public emacs-dante
1060 (let ((commit "38b589417294c7ea44bf65b73b8046d950f9531b")
1061 (revision "1"))
1062 (package
1063 (name "emacs-dante")
1064 (version (git-version "1.6" revision commit))
1065 (source (origin
1066 (method git-fetch)
1067 (uri (git-reference
1068 (url "https://github.com/jyp/dante")
1069 (commit commit)))
1070 (sha256
1071 (base32
1072 "1mnmn635552zlwd4zr68jbvdjipl6gi4mi6wiyck28fsmq8kw96h"))
1073 (file-name (git-file-name name version))))
1074 (build-system emacs-build-system)
1075 (propagated-inputs
1076 `(("emacs-dash" ,emacs-dash)
1077 ("emacs-f" ,emacs-f)
1078 ("emacs-flycheck" ,emacs-flycheck)
1079 ("emacs-haskell-mode" ,emacs-haskell-mode)
1080 ("emacs-s" ,emacs-s)
1081 ("emacs-company" ,emacs-company)
1082 ("emacs-lcr" ,emacs-lcr)))
1083 (home-page "https://github.com/jyp/dante")
1084 (synopsis "Minor mode for interactive Haskell")
1085 (description
1086 "This package provides a minor mode for Haskell development that
1087 supports type hints, definition-jumping, completion, and more.")
1088 (license license:gpl3+))))
1089
1090 (define-public emacs-flycheck
1091 ;; Last release version was more than 500 commits ago.
1092 (let ((commit "9bcf6b665e15db94870bebc81dc8248c3eec20d3")
1093 (revision "2"))
1094 (package
1095 (name "emacs-flycheck")
1096 (version (git-version "31" revision commit))
1097 (source
1098 (origin
1099 (method git-fetch)
1100 (uri (git-reference
1101 (url "https://github.com/flycheck/flycheck/")
1102 (commit commit)))
1103 (sha256
1104 (base32 "015ixss5bjr7gvhj8mkw5x2x1hy6fvvsjarr2xpv0gskkkngs7pg"))
1105 (file-name (git-file-name name version))))
1106 (build-system emacs-build-system)
1107 (propagated-inputs
1108 `(("emacs-dash" ,emacs-dash)))
1109 (native-inputs
1110 `(("emacs-shut-up" ,emacs-shut-up)))
1111 (arguments
1112 `(#:phases
1113 (modify-phases %standard-phases
1114 (add-after 'unpack 'change-flycheck-version
1115 (lambda _
1116 (substitute* "flycheck.el"
1117 (("\\(pkg-info-version-info 'flycheck\\)")
1118 (string-append "\"" ,version "\"")))
1119 #t)))
1120 ;; TODO: many failing tests
1121 #:tests? #f
1122 #:test-command '("emacs" "-Q" "--batch" "-L" "."
1123 "--load" "test/flycheck-test"
1124 "--load" "test/run.el"
1125 "-f" "flycheck-run-tests-main")))
1126 (home-page "https://www.flycheck.org")
1127 (synopsis "On-the-fly syntax checking")
1128 (description
1129 "This package provides on-the-fly syntax checking for GNU Emacs. It is a
1130 replacement for the older Flymake extension which is part of GNU Emacs, with
1131 many improvements and additional features.
1132
1133 Flycheck provides fully-automatic, fail-safe, on-the-fly background syntax
1134 checking for over 30 programming and markup languages with more than 70
1135 different tools. It highlights errors and warnings inline in the buffer, and
1136 provides an optional IDE-like error list.")
1137 (license license:gpl3+)))) ;+GFDLv1.3+ for the manual
1138
1139 (define-public emacs-flymake-shellcheck
1140 ;; No tag, version grabbed from source .el file.
1141 (let ((commit "78956f0e5bb9c4d35989657a55929e8e3f5691e6")
1142 (revision "0"))
1143 (package
1144 (name "emacs-flymake-shellcheck")
1145 (version (git-version "0.1" revision commit))
1146 (source
1147 (origin
1148 (method git-fetch)
1149 (uri (git-reference
1150 (url "https://github.com/federicotdn/flymake-shellcheck")
1151 (commit commit)))
1152 (file-name (git-file-name name version))
1153 (sha256
1154 (base32 "068mx5p4drwgppy4ry1rfq6qi79w6d82b4rnpl2jm37grsg94lix"))))
1155 (build-system emacs-build-system)
1156 (home-page "https://github.com/federicotdn/flymake-shellcheck")
1157 (synopsis "Flymake backend for Bash/Sh powered by ShellCheck")
1158 (description
1159 "This package provides a backend for Flymake to use the
1160 tool ShellCheck for static analyzing @command{bash} and @command{sh}
1161 scripts.")
1162 (license license:gpl3+))))
1163
1164 (define-public emacs-a
1165 (package
1166 (name "emacs-a")
1167 (version "0.1.1")
1168 (source (origin
1169 (method git-fetch)
1170 (uri (git-reference
1171 (url "https://github.com/plexus/a.el")
1172 (commit (string-append "v" version))))
1173 (file-name (git-file-name name version))
1174 (sha256
1175 (base32
1176 "00v9w6qg3bkwdhypq0ssf0phdh0f4bcq59c20lngd6vhk0204dqi"))))
1177 (build-system emacs-build-system)
1178 (home-page "https://github.com/plexus/a.el/")
1179 (synopsis
1180 "Emacs library for dealing with association lists and hash tables")
1181 (description "@code{emacs-a} provides Emacs Lisp functions for dealing
1182 with associative structures in a uniform and functional way. These functions
1183 can take association lists, hash tables, and in some cases vectors (where the
1184 index is considered the key).")
1185 (license license:gpl3+)))
1186
1187 (define-public emacs-ace-jump-mode
1188 (package
1189 (name "emacs-ace-jump-mode")
1190 (version "2.0")
1191 (home-page "https://github.com/winterTTr/ace-jump-mode")
1192 (source (origin
1193 (method git-fetch)
1194 (uri (git-reference
1195 (url home-page)
1196 (commit (string-append "v" version))))
1197 (sha256
1198 (base32
1199 "1bwvzh056ls2v7y26a0s4j5mj582dmds04lx4x6iqihs04ss74bb"))
1200 (file-name (git-file-name name version))))
1201 (build-system emacs-build-system)
1202 (synopsis "Cursor location minor mode for fast navigation")
1203 (description "Ace-jump-mode is a fast/direct cursor location minor
1204 mode. It creates an N-Branch search tree internally and marks all
1205 the possible position with predefined keys in within the whole Emacs
1206 view. This allows you to move to the character, word, or line almost
1207 directly.")
1208 (license license:gpl3+)))
1209
1210 (define-public emacs-anaphora
1211 (package
1212 (name "emacs-anaphora")
1213 (version "1.0.4")
1214 (source
1215 (origin
1216 (method git-fetch)
1217 (uri (git-reference
1218 (url "https://github.com/rolandwalker/anaphora")
1219 (commit (string-append "v" version))))
1220 (file-name (git-file-name name version))
1221 (sha256
1222 (base32
1223 "11fgiy029sqz7nvdm7dcal95lacryz9zql0x5h05z48nrrcl4bib"))))
1224 (build-system emacs-build-system)
1225 (home-page "https://github.com/rolandwalker/anaphora/")
1226 (synopsis "Anaphoric expressions for Emacs Lisp")
1227 (description "@code{emacs-anaphora} implements anaphoric expressions for
1228 Emacs Lisp.
1229
1230 Anaphoric expressions implicitly create one or more temporary variables which
1231 can be referred to during the expression. This technique can improve clarity
1232 in certain cases. It also enables recursion for anonymous functions.")
1233 (license license:public-domain)))
1234
1235 (define-public emacs-xr
1236 (package
1237 (name "emacs-xr")
1238 (version "1.19")
1239 (source
1240 (origin
1241 (method url-fetch)
1242 (uri (string-append "https://elpa.gnu.org/packages/xr-" version ".tar"))
1243 (sha256
1244 (base32 "1aa3iqh0r635jw8k89zh8y4am9d4hfrqpk9mrdh2b51invjn8llq"))))
1245 (build-system emacs-build-system)
1246 (home-page "https://elpa.gnu.org/packages/xr.html")
1247 (synopsis "Convert string regexp to rx notation")
1248 (description
1249 "This is an inverse companion to the @code{rx} package for translating
1250 regexps in string form to the @code{rx} notation. Its chief uses are:
1251
1252 @itemize
1253 @item Migrating existing code to @code{rx} form, for better readability and
1254 maintainability
1255 @item Understanding complex regexp strings and finding errors in them
1256 @end itemize
1257
1258 In addition to Emacs regexps, this package can also parse and troubleshoot
1259 skip set strings, which are arguments to @code{skip-chars-forward} and
1260 @code{skip-chars-backward}.")
1261 (license license:gpl3+)))
1262
1263 (define-public emacs-ample-regexps
1264 (let ((commit "153969ce547afe410b8986f01c9ed4087c9cd20b")
1265 (revision "2"))
1266 (package
1267 (name "emacs-ample-regexps")
1268 (version (git-version "0.1" revision commit))
1269 (source
1270 (origin
1271 (method git-fetch)
1272 (uri (git-reference
1273 (url "https://github.com/immerrr/ample-regexps.el")
1274 (commit commit)))
1275 (file-name (git-file-name name version))
1276 (sha256
1277 (base32
1278 "0dkp7bcd7h2ds40wyszy11nmh7c2jxrwy04ayz7pbxh53ir7s2k0"))))
1279 (build-system emacs-build-system)
1280 (native-inputs
1281 `(("ert-runner" ,emacs-ert-runner)))
1282 (arguments
1283 `(#:tests? #t
1284 #:test-command '("ert-runner" "-l" "ample-regexps")))
1285 (home-page "https://github.com/immerrr/ample-regexps.el")
1286 (synopsis "Compose and reuse Emacs regexps")
1287 (description
1288 "This package allows common parts of regexps to be easily picked out
1289 and reused.")
1290 (license license:gpl3+))))
1291
1292 (define-public emacs-ample-theme
1293 (let ((commit "536966adf882446165a1f756830028faa792c7a9")
1294 (revision "1"))
1295 (package
1296 (name "emacs-ample-theme")
1297 (version (git-version "0.0.0" revision commit))
1298 (source (origin
1299 (method git-fetch)
1300 (uri (git-reference
1301 (url "https://github.com/jordonbiondo/ample-theme")
1302 (commit commit)))
1303 (file-name (git-file-name name version))
1304 (sha256
1305 (base32
1306 "07bpv8dag40qjnm5000pgzpazj4whfxf93x2vprz26sg3mjfx0nf"))))
1307 (build-system emacs-build-system)
1308 (home-page "https://github.com/jordonbiondo/ample-theme")
1309 (synopsis "Theme for Emacs providing dark, light, and flat versions")
1310 (description "Ample themes is a collection of three themes sharing a
1311 similar pallet with a light, dark and flat versions with a focus on being easy
1312 on the eyes during night and day. They only support GUI and 256 colour
1313 terminals.")
1314 (license license:gpl3+))))
1315
1316 (define-public emacs-reformatter
1317 (package
1318 (name "emacs-reformatter")
1319 (version "0.4")
1320 (source
1321 (origin
1322 (method git-fetch)
1323 (uri (git-reference
1324 (url "https://github.com/purcell/reformatter.el")
1325 (commit version)))
1326 (file-name (git-file-name name version))
1327 (sha256
1328 (base32
1329 "0hhy6x1bkwlhdlarsgm06g3am4yh02yqv8qs34szpzgy53x84qah"))))
1330 (build-system emacs-build-system)
1331 (home-page "https://github.com/purcell/reformatter.el")
1332 (synopsis "Define commands which run reformatters on the current buffer")
1333 (description
1334 "This library lets elisp authors easily define an idiomatic command to
1335 reformat the current buffer using a command-line program, together with an
1336 optional minor mode which can apply this command automatically on save.")
1337 (license license:gpl3+)))
1338
1339 (define-public emacs-relint
1340 (package
1341 (name "emacs-relint")
1342 (version "1.18")
1343 (source
1344 (origin
1345 (method url-fetch)
1346 (uri (string-append "https://elpa.gnu.org/packages/"
1347 "relint-" version ".tar"))
1348 (sha256
1349 (base32 "0zfislsksrkn6qs0w26yaff5xr7xqy2x235dcdpz8s2v35b6dhci"))))
1350 (build-system emacs-build-system)
1351 (propagated-inputs `(("emacs-xr" ,emacs-xr)))
1352 (home-page "https://github.com/mattiase/relint")
1353 (synopsis "Elisp regexp mistake finder")
1354 (description
1355 "Relint (regular expression lint) scans Elisp files for mistakes in
1356 regexps, including deprecated syntax and bad practice. It also checks the
1357 regexp-like arguments to @code{skip-chars-forward} and
1358 @code{skip-chars-backward}.")
1359 (license license:gpl3+)))
1360
1361 (define-public emacs-bug-hunter
1362 (let ((commit "b88d981afa9154b236c5a3a83b50d5889d46c6a7")
1363 (revision "1"))
1364 (package
1365 (name "emacs-bug-hunter")
1366 (version (git-version "1.3.1" revision commit))
1367 (source
1368 (origin
1369 (method git-fetch)
1370 (uri (git-reference
1371 (url "https://github.com/Malabarba/elisp-bug-hunter")
1372 (commit commit)))
1373 (file-name (git-file-name name commit))
1374 (sha256
1375 (base32
1376 "134fj493sdn93pyyac8rpz1fzahzmayvphsrmqp3wvgysmfqm38l"))))
1377 (build-system emacs-build-system)
1378 (home-page "https://github.com/Malabarba/elisp-bug-hunter")
1379 (synopsis "Hunt down errors by bisecting elisp files")
1380 (description
1381 "The Bug Hunter is an Emacs library that finds the source of an error
1382 or unexpected behavior inside an elisp configuration file (typically
1383 @file{init.el} or @file{.emacs}).")
1384 (license license:gpl3+))))
1385
1386 \f
1387 ;;;
1388 ;;; Web browsing.
1389 ;;;
1390
1391 (define-public emacs-w3m
1392 ;; Emacs-w3m follows a "rolling release" model.
1393 (package
1394 (name "emacs-w3m")
1395 (version "2018-11-11")
1396 (source (origin
1397 (method cvs-fetch)
1398 (uri (cvs-reference
1399 (root-directory
1400 ":pserver:anonymous@cvs.namazu.org:/storage/cvsroot")
1401 (module "emacs-w3m")
1402 (revision version)))
1403 (file-name (string-append name "-" version "-checkout"))
1404 (sha256
1405 (base32
1406 "0nvahdbjs12zg7zsk4gql02mvnv56cf1rwj2f5p42lwp3xvswiwp"))))
1407 (build-system gnu-build-system)
1408 (native-inputs `(("autoconf" ,autoconf)
1409 ("texinfo" ,texinfo)
1410 ("emacs" ,emacs-minimal)))
1411 (inputs `(("w3m" ,w3m)
1412 ("imagemagick" ,imagemagick)))
1413 (arguments
1414 `(#:modules ((guix build gnu-build-system)
1415 (guix build utils)
1416 (guix build emacs-utils))
1417 #:imported-modules (,@%gnu-build-system-modules
1418 (guix build emacs-utils))
1419 #:configure-flags
1420 (let ((out (assoc-ref %outputs "out")))
1421 (list (string-append "--with-lispdir="
1422 out "/share/emacs/site-lisp")
1423 (string-append "--with-icondir="
1424 out "/share/images/emacs-w3m")
1425 ;; Leave .el files uncompressed, otherwise GC can't
1426 ;; identify run-time dependencies. See
1427 ;; <http://lists.gnu.org/archive/html/guix-devel/2015-12/msg00208.html>
1428 "--without-compress-install"))
1429 #:tests? #f ; no check target
1430 #:phases
1431 (modify-phases %standard-phases
1432 (add-after 'unpack 'autoconf
1433 (lambda _
1434 (invoke "autoconf")))
1435 (add-before 'configure 'support-emacs!
1436 (lambda _
1437 ;; For some reason 'AC_PATH_EMACS' thinks that 'Emacs 26' is
1438 ;; unsupported.
1439 (substitute* "configure"
1440 (("EMACS_FLAVOR=unsupported")
1441 "EMACS_FLAVOR=emacs"))
1442 #t))
1443 (add-before 'build 'patch-exec-paths
1444 (lambda* (#:key inputs outputs #:allow-other-keys)
1445 (let ((out (assoc-ref outputs "out"))
1446 (w3m (assoc-ref inputs "w3m"))
1447 (imagemagick (assoc-ref inputs "imagemagick"))
1448 (coreutils (assoc-ref inputs "coreutils")))
1449 (make-file-writable "w3m.el")
1450 (emacs-substitute-variables "w3m.el"
1451 ("w3m-command" (string-append w3m "/bin/w3m"))
1452 ("w3m-touch-command"
1453 (string-append coreutils "/bin/touch"))
1454 ("w3m-icon-directory"
1455 (string-append out "/share/images/emacs-w3m")))
1456 (make-file-writable "w3m-image.el")
1457 (emacs-substitute-variables "w3m-image.el"
1458 ("w3m-imagick-convert-program"
1459 (string-append imagemagick "/bin/convert"))
1460 ("w3m-imagick-identify-program"
1461 (string-append imagemagick "/bin/identify")))
1462 #t)))
1463 (replace 'install
1464 (lambda* (#:key outputs #:allow-other-keys)
1465 (invoke "make" "install" "install-icons")
1466 (with-directory-excursion
1467 (string-append (assoc-ref outputs "out")
1468 "/share/emacs/site-lisp")
1469 (for-each delete-file '("ChangeLog" "ChangeLog.1"))
1470 (symlink "w3m-load.el" "w3m-autoloads.el")
1471 #t))))))
1472 (home-page "http://emacs-w3m.namazu.org/")
1473 (synopsis "Simple Web browser for Emacs based on w3m")
1474 (description
1475 "Emacs-w3m is an emacs interface for the w3m web browser.")
1476 (license license:gpl2+)))
1477
1478 (define-public emacs-wget
1479 (package
1480 (name "emacs-wget")
1481 (version "0.5.0")
1482 (source (origin
1483 (method url-fetch)
1484 (uri (string-append "mirror://debian/pool/main/w/wget-el/wget-el_"
1485 version ".orig.tar.gz"))
1486 (sha256
1487 (base32 "10byvyv9dk0ib55gfqm7bcpxmx2qbih1jd03gmihrppr2mn52nff"))))
1488 (build-system gnu-build-system)
1489 (inputs `(("wget" ,wget)))
1490 (native-inputs `(("emacs" ,emacs-minimal)))
1491 (arguments
1492 `(#:modules ((guix build gnu-build-system)
1493 (guix build utils)
1494 (guix build emacs-utils))
1495 #:imported-modules (,@%gnu-build-system-modules
1496 (guix build emacs-utils))
1497 #:tests? #f ; no check target
1498 #:phases
1499 (modify-phases %standard-phases
1500 (replace 'configure
1501 (lambda* (#:key outputs #:allow-other-keys)
1502 (substitute* "Makefile"
1503 (("/usr/local") (assoc-ref outputs "out"))
1504 (("/site-lisp/emacs-wget") "/site-lisp"))
1505 #t))
1506 (add-before 'build 'patch-exec-paths
1507 (lambda* (#:key inputs outputs #:allow-other-keys)
1508 (let ((wget (assoc-ref inputs "wget")))
1509 (emacs-substitute-variables "wget.el"
1510 ("wget-command" (string-append wget "/bin/wget"))))
1511 #t))
1512 (add-after 'install 'post-install
1513 (lambda* (#:key outputs #:allow-other-keys)
1514 (emacs-generate-autoloads
1515 "wget" (string-append (assoc-ref outputs "out")
1516 "/share/emacs/site-lisp/"))
1517 #t)))))
1518 (home-page "https://www.emacswiki.org/emacs/EmacsWget")
1519 (synopsis "Simple file downloader for Emacs based on wget")
1520 (description
1521 "Emacs-wget is an emacs interface for the wget file downloader.")
1522 (license license:gpl2+)))
1523
1524 (define-public emacs-eww-lnum
1525 (package
1526 (name "emacs-eww-lnum")
1527 (version "1.1")
1528 (source (origin
1529 (method git-fetch)
1530 (uri (git-reference
1531 (url "https://github.com/m00natic/eww-lnum")
1532 (commit version)))
1533 (file-name (git-file-name name version))
1534 (sha256
1535 (base32
1536 "0gs6bi3s2sszc6v2b26929azmn5513kvyin99n4d0ark1jdbjmv2"))))
1537 (build-system emacs-build-system)
1538 (home-page "https://github.com/m00natic/eww-lnum")
1539 (synopsis "Conkeror-like functionality for Eww")
1540 (description "This is extension to the Emacs browser Eww that adds
1541 Conkeror-like functionality. In short, currently visible links, forms,
1542 buttons are temporarily assigned numbers with which the former can be
1543 immediately activated. Also filtering can be applied so selection can be
1544 incrementally confined in Isearch manner.")
1545 (license license:gpl3+)))
1546
1547
1548 \f
1549 ;;;
1550 ;;; Multimedia.
1551 ;;;
1552
1553 (define emacs-emms-print-metadata
1554 (package
1555 (name "emacs-emms-print-metadata")
1556 (version "5.42")
1557 (source
1558 (origin
1559 (method url-fetch)
1560 (uri (string-append "https://elpa.gnu.org/packages/"
1561 "emms-" version ".tar"))
1562 (sha256
1563 (base32 "1khx1fvllrs6w9kxk12mp1hj309c90mc7lkq1vvlqlr7vd6zmnpj"))))
1564 (build-system gnu-build-system)
1565 (arguments
1566 `(#:make-flags '("emms-print-metadata")
1567 #:tests? #f ; No tests.
1568 #:phases
1569 (modify-phases %standard-phases
1570 (delete 'configure)
1571 (replace 'install
1572 (lambda* (#:key outputs #:allow-other-keys)
1573 (let* ((out (assoc-ref outputs "out")))
1574 (install-file "src/emms-print-metadata"
1575 (string-append out "/bin"))
1576 (install-file "emms-print-metadata.1"
1577 (string-append out "/share/man/man1"))
1578 #t))))))
1579 (inputs
1580 `(("taglib" ,taglib)))
1581 (home-page "https://www.gnu.org/software/emms/")
1582 (synopsis "The Emacs Multimedia System")
1583 (description
1584 "EMMS is the Emacs Multimedia System. It is a small front-end which
1585 can control one of the supported external players. Thus, it supports
1586 whatever formats are supported by your music player. It also
1587 supports tagging and playlist management, all behind a clean and
1588 light user interface.")
1589 (license license:gpl3+)))
1590
1591 (define-public emacs-emms
1592 (package
1593 (inherit emacs-emms-print-metadata)
1594 (name "emacs-emms")
1595 (build-system emacs-build-system)
1596 (arguments
1597 `(#:phases
1598 (modify-phases %standard-phases
1599 (add-after 'unpack 'set-external-programs
1600 ;; Specify the absolute file names of the various programs
1601 ;; so that everything works out-of-the-box.
1602 (lambda* (#:key inputs outputs #:allow-other-keys)
1603 (let ((out (assoc-ref outputs "out"))
1604 (emms-print-metadata (assoc-ref inputs "emms-print-metadata"))
1605 (flac (assoc-ref inputs "flac"))
1606 (vorbis (assoc-ref inputs "vorbis-tools"))
1607 (alsa (assoc-ref inputs "alsa-utils"))
1608 (mpg321 (assoc-ref inputs "mpg321"))
1609 (mp3info (assoc-ref inputs "mp3info"))
1610 (mutagen (assoc-ref inputs "mutagen"))
1611 (opus (assoc-ref inputs "opus-tools")))
1612 (emacs-substitute-variables "emms-player-mpg321-remote.el"
1613 ("emms-player-mpg321-remote-command"
1614 (string-append mpg321 "/bin/mpg321")))
1615 (substitute* "emms-player-simple.el"
1616 (("\"ogg123\"")
1617 (string-append "\"" vorbis "/bin/ogg123\"")))
1618 (substitute* "emms-player-simple.el"
1619 (("\"mpg321\"")
1620 (string-append "\"" mpg321 "/bin/mpg321\"")))
1621 (emacs-substitute-variables "emms-info-ogginfo.el"
1622 ("emms-info-ogginfo-program-name"
1623 (string-append vorbis "/bin/ogginfo")))
1624 (emacs-substitute-variables "emms-info-opusinfo.el"
1625 ("emms-info-opusinfo-program-name"
1626 (string-append opus "/bin/opusinfo")))
1627 (emacs-substitute-variables "emms-info-libtag.el"
1628 ("emms-info-libtag-program-name"
1629 (string-append emms-print-metadata "/bin/emms-print-metadata")))
1630 (emacs-substitute-variables "emms-info-mp3info.el"
1631 ("emms-info-mp3info-program-name"
1632 (string-append mp3info "/bin/mp3info")))
1633 (emacs-substitute-variables "emms-info-metaflac.el"
1634 ("emms-info-metaflac-program-name"
1635 (string-append flac "/bin/metaflac")))
1636 (emacs-substitute-variables "emms-source-file.el"
1637 ("emms-source-file-gnu-find" (which "find")))
1638 (substitute* "emms-volume-amixer.el"
1639 (("\"amixer\"")
1640 (string-append "\"" alsa "/bin/amixer\"")))
1641 (substitute* "emms-tag-editor.el"
1642 (("\"mid3v2\"")
1643 (string-append "\"" mutagen "/bin/mid3v2\"")))
1644 #t))))))
1645 (inputs
1646 `(("emms-print-metadata" ,emacs-emms-print-metadata)
1647 ("alsa-utils" ,alsa-utils)
1648 ("flac" ,flac) ;for metaflac
1649 ("vorbis-tools" ,vorbis-tools)
1650 ("mpg321" ,mpg321)
1651 ("mp3info" ,mp3info)
1652 ("mutagen" ,python-mutagen)
1653 ("opus-tools" ,opus-tools)))))
1654
1655 (define-public emacs-emms-mode-line-cycle
1656 (package
1657 (name "emacs-emms-mode-line-cycle")
1658 (version "0.2.5")
1659 (source
1660 (origin
1661 (method git-fetch)
1662 (uri (git-reference
1663 (url "https://github.com/momomo5717/emms-mode-line-cycle")
1664 (commit version)))
1665 (file-name (git-file-name name version))
1666 (sha256
1667 (base32
1668 "0q80f0plch6k4lhs8c9qm3mfycfbp3kn5sjrk9zxgxwnn901y9mp"))))
1669 (build-system emacs-build-system)
1670 (propagated-inputs
1671 `(("emms" ,emacs-emms)))
1672 (home-page "https://github.com/momomo5717/emms-mode-line-cycle")
1673 (synopsis "Display the EMMS mode line as a ticker")
1674 (description
1675 "This is a minor mode for updating the EMMS mode-line string cyclically
1676 within a specified width. It is useful for displaying long track titles.")
1677 (license license:gpl3+)))
1678
1679 \f
1680 ;;;
1681 ;;; Miscellaneous.
1682 ;;;
1683
1684 (define-public emacs-ace-link
1685 (package
1686 (name "emacs-ace-link")
1687 (version "0.5.0")
1688 (source
1689 (origin
1690 (method git-fetch)
1691 (uri (git-reference
1692 (url "https://github.com/abo-abo/ace-link")
1693 (commit version)))
1694 (file-name (git-file-name name version))
1695 (sha256
1696 (base32
1697 "147dz79vg4ym5wg3d544bw2khdb2j3hr73rw4qfm64wf0q2dj0vk"))))
1698 (build-system emacs-build-system)
1699 (propagated-inputs
1700 `(("emacs-avy" ,emacs-avy)))
1701 (home-page "https://github.com/abo-abo/ace-link")
1702 (synopsis "Quickly follow links in Emacs")
1703 (description
1704 "Currently, to jump to a link in a @code{Info-mode}, @code{help-mode},
1705 @code{woman-mode}, @code{org-mode}, @code{eww-mode}, @code{compilation-mode},
1706 @code{goto-address-mode} buffer, you can tab through the links to select the
1707 one you want. This is an O(N) operation, where the N is the amount of links.
1708 This package turns this into an O(1) operation. It does so by assigning a
1709 letter to each link using avy.")
1710 (license license:gpl3+)))
1711
1712 (define-public emacs-auto-sudoedit
1713 (package
1714 (name "emacs-auto-sudoedit")
1715 (version "1.0.0")
1716 (source
1717 (origin
1718 (method git-fetch)
1719 (uri (git-reference
1720 (url "https://github.com/ncaq/auto-sudoedit")
1721 (commit (string-append "v" version))))
1722 (file-name (git-file-name name version))
1723 (sha256
1724 (base32 "10p0hc95j382km8655pqld9wxg10j1f36czzppkdd6a55cxarv9f"))))
1725 (propagated-inputs
1726 `(("emacs-f" ,emacs-f)))
1727 (build-system emacs-build-system)
1728 (home-page "https://github.com/ncaq/auto-sudoedit")
1729 (synopsis "Automatically re-open read-only files with sudo")
1730 (description
1731 "This package automatically reopens a file or directory with
1732 @command{sudo} if it cannot write to it.")
1733 (license license:expat)))
1734
1735 (define-public emacs-bbdb
1736 (package
1737 (name "emacs-bbdb")
1738 (version "3.2")
1739 (source
1740 (origin
1741 (method url-fetch)
1742 (uri (string-append "https://elpa.gnu.org/packages/"
1743 "bbdb-" version ".tar"))
1744 (sha256
1745 (base32 "1p56dg0mja2b2figy7yhdx714zd5j6njzn0k07zjka3jc06izvjx"))))
1746 (build-system emacs-build-system)
1747 (arguments
1748 ;; XXX: The following file cannot be byte-compiled, because et requires
1749 ;; `vm-autoloads', from the VM package, with is neither in Emacs nor
1750 ;; packaged in Guix. So, don't bother for now.
1751 `(#:exclude '("bbdb-vm\\.el")))
1752 (home-page "http://elpa.gnu.org/packages/bbdb.html")
1753 (synopsis "Contact management utility for Emacs")
1754 (description
1755 "BBDB is the Insidious Big Brother Database for GNU Emacs. It provides
1756 an address book for email and snail mail addresses, phone numbers and the
1757 like. It can be linked with various Emacs mail clients (Message and Mail
1758 mode, Rmail, Gnus, MH-E, and VM). BBDB is fully customizable.")
1759 (license license:gpl3+)))
1760
1761 (define-public emacs-bluetooth
1762 (package
1763 (name "emacs-bluetooth")
1764 (version "0.2")
1765 (source
1766 (origin
1767 (method url-fetch)
1768 (uri (string-append "https://elpa.gnu.org/packages/"
1769 "bluetooth-" version ".el"))
1770 (sha256
1771 (base32 "1dq04p6ms0zx4awlypp4crkz7dzal4xg8ac7p8fqacz196rczssp"))))
1772 (build-system emacs-build-system)
1773 (inputs
1774 `(("bluez" ,bluez)))
1775 (propagated-inputs
1776 `(("emacs-dash" ,emacs-dash)))
1777 (home-page "https://gitlab.com/rstocker/emacs-bluetooth")
1778 (synopsis "Manage Bluetooth devices using Emacs")
1779 (description
1780 "This package implements basic Bluetooth management functionality, such
1781 as connecting and disconnecting devices, setting properties and aliases,
1782 putting the adapter in discovery mode and controlling its power supply. It
1783 also includes a pairing agent.")
1784 (license license:gpl3+)))
1785
1786 (define-public emacs-aggressive-indent
1787 (package
1788 (name "emacs-aggressive-indent")
1789 (version "1.8.3")
1790 (source (origin
1791 (method url-fetch)
1792 (uri (string-append "https://elpa.gnu.org/packages/"
1793 "aggressive-indent-" version ".el"))
1794 (sha256
1795 (base32
1796 "0jnzccl50x0wapprgwxinp99pwwa6j43q6msn4gv437j7swy8wnj"))))
1797 (build-system emacs-build-system)
1798 (home-page "https://elpa.gnu.org/packages/aggressive-indent.html")
1799 (synopsis "Minor mode to aggressively keep your code always indented")
1800 (description
1801 "@code{aggressive-indent-mode} is a minor mode that keeps your code
1802 always indented. It reindents after every change, making it more reliable
1803 than @code{electric-indent-mode}.")
1804 (license license:gpl2+)))
1805
1806 (define-public emacs-gcmh
1807 ;; No tagged release upstream.
1808 (let ((commit "84c43a4c0b41a595ac6e299fa317d2831813e580")
1809 (revision "0"))
1810 (package
1811 (name "emacs-gcmh")
1812 (version (git-version "0.1" revision commit))
1813 (source
1814 (origin
1815 (method git-fetch)
1816 (uri (git-reference
1817 (url "https://gitlab.com/koral/gcmh")
1818 (commit commit)))
1819 (sha256
1820 (base32 "1r3wiqhrzh7wvqy484nl031fd4bn4cpvkv9646s4cjgvnnnv7jz3"))
1821 (file-name (git-file-name name version))))
1822 (build-system emacs-build-system)
1823 (home-page "https://gitlab.com/koral/gcmh")
1824 (synopsis "Emacs Garbage Collector Magic Hack")
1825 (description
1826 "This package enforces a sneaky @dfn{garbage collector} (GC) strategy
1827 to minimize GC interference with the activity. During normal use a high GC
1828 threshold is set. When idling GC is immediately triggered and a low threshold
1829 is set.")
1830 (license license:gpl3+))))
1831
1832 (define-public emacs-ctrlf
1833 (package
1834 (name "emacs-ctrlf")
1835 (version "1.1")
1836 (source
1837 (origin
1838 (method git-fetch)
1839 (uri (git-reference
1840 (url "https://github.com/raxod502/ctrlf")
1841 (commit (string-append "v" version))))
1842 (file-name (git-file-name name version))
1843 (sha256
1844 (base32 "1ffcjf0ff0748gqipkklz6jmcj4f3blgzdcax93ql9ws8bmvlsdc"))))
1845 (build-system emacs-build-system)
1846 (home-page "https://github.com/raxod502/ctrlf/")
1847 (synopsis "Single-buffer text search in Emacs")
1848 (description "CTRLF (pronounced @emph{control F}) is an intuitive and
1849 efficient solution for single-buffer text search in Emacs, replacing packages
1850 such as Isearch, Swiper, and helm-swoop. It takes inspiration from the
1851 widely-adopted and battle-tested @samp{Ctrl+F} interfaces in programs such as
1852 web browsers, but follows the flow and keybindings of Isearch.")
1853 (license license:expat)))
1854
1855 (define-public emacs-dhall-mode
1856 ;; There is no proper release. The base version is extracted from the
1857 ;; "Version" keyword in the main file.
1858 (let ((revision "1")
1859 (commit "484bcf8f78f1183ef45c3b04a362bb73690c6b9b"))
1860 (package
1861 (name "emacs-dhall-mode")
1862 (version (git-version "0.1.3" revision commit))
1863 (source
1864 (origin
1865 (method git-fetch)
1866 (uri
1867 (git-reference
1868 (url "https://github.com/psibi/dhall-mode")
1869 (commit commit)))
1870 (file-name (git-file-name name version))
1871 (sha256
1872 (base32 "1wggg8jlzg9rph4jhxp6yiri178rnasbv38838i973kjgqjxrl76"))))
1873 (build-system emacs-build-system)
1874 (propagated-inputs
1875 `(("emacs-reformatter" ,emacs-reformatter)))
1876 (home-page "https://github.com/psibi/dhall-mode")
1877 (synopsis "Major mode for working with Dhall configuration language")
1878 (description
1879 "Dhall-mode provides an Emacs Major mode for working with the Dhall
1880 configuration language. It features:
1881
1882 @itemize
1883 @item Syntax highlighting
1884 @item Multiline support for String
1885 @item Basic indentation, commenting
1886 @item Automatic formatting on save using dhall-format.
1887 @item Error highlighting.
1888 @end itemize")
1889 (license license:gpl3+))))
1890
1891 (define-public emacs-link-hint
1892 ;; Last release was in 2015.
1893 (let ((commit "d74a483652486260c052941fedeadddb1ea71f88")
1894 (revision "1"))
1895 (package
1896 (name "emacs-link-hint")
1897 (version (git-version "0.1" revision commit))
1898 (source
1899 (origin
1900 (method git-fetch)
1901 (uri (git-reference
1902 (url "https://github.com/noctuid/link-hint.el")
1903 (commit commit)))
1904 (file-name (git-file-name name version))
1905 (sha256
1906 (base32
1907 "0dghxd165fbds6czy9bfwpid3i4irgp3q08n9mg57sfifi0cmij0"))))
1908 (build-system emacs-build-system)
1909 (propagated-inputs
1910 `(("emacs-avy" ,emacs-avy)))
1911 (home-page "https://github.com/noctuid/link-hint.el")
1912 (synopsis "Vimperator-style link-hinting in Emacs")
1913 (description "This package provides commands for visiting and acting on
1914 links.")
1915 (license license:gpl3+))))
1916
1917 (define-public emacs-ag
1918 (package
1919 (name "emacs-ag")
1920 (version "0.48")
1921 (source (origin
1922 (method git-fetch)
1923 (uri (git-reference
1924 (url "https://github.com/Wilfred/ag.el")
1925 (commit version)))
1926 (file-name (git-file-name name version))
1927 (sha256
1928 (base32
1929 "1p918y24vcn2pdliaymd210xp9fvhd4a1srqbv2lfiqrh59yjidx"))))
1930 (build-system emacs-build-system)
1931 (arguments
1932 `(#:phases
1933 (modify-phases %standard-phases
1934 (add-before 'install 'make-info
1935 (lambda _
1936 (with-directory-excursion "docs"
1937 (invoke "make" "info"))))
1938 (add-after 'install 'install-info
1939 (lambda* (#:key outputs #:allow-other-keys)
1940 (let* ((out (assoc-ref outputs "out"))
1941 (info (string-append out "/share/info")))
1942 (install-file "docs/_build/texinfo/agel.info" info)
1943 #t))))))
1944 (native-inputs
1945 `(("python-sphinx" ,python-sphinx)
1946 ("texinfo" ,texinfo)))
1947 (propagated-inputs
1948 `(("dash" ,emacs-dash)
1949 ("s" ,emacs-s)
1950 ;; We need to use 'ag' as the executable on remote systems.
1951 ("the-silver-searcher" ,the-silver-searcher)))
1952 (home-page "https://github.com/Wilfred/ag.el")
1953 (synopsis "Front-end for ag (the-silver-searcher) for Emacs")
1954 (description "This package provides the ability to use the silver
1955 searcher, a code searching tool, sometimes abbreviated to @code{ag}. Features
1956 include version control system awareness, use of Perl compatible regular
1957 expressions, editing the search results directly and searching file names
1958 rather than the contents of files.")
1959 (license license:gpl3+)))
1960
1961 (define-public emacs-async
1962 (package
1963 (name "emacs-async")
1964 (home-page "https://github.com/jwiegley/emacs-async")
1965 (version "1.9.4")
1966 (source (origin
1967 (method git-fetch)
1968 (uri (git-reference
1969 (url home-page)
1970 (commit (string-append "v" version))))
1971 (file-name (git-file-name name version))
1972 (sha256
1973 (base32
1974 "0hhpyxb3d531jb2f3wvzx25183f0anm8nxv6mh0p825q2gkm6ly7"))))
1975 (build-system emacs-build-system)
1976 (synopsis "Asynchronous processing in Emacs")
1977 (description
1978 "This package provides the ability to call asynchronous functions and
1979 processes. For example, it can be used to run dired commands (for copying,
1980 moving, etc.) asynchronously using @code{dired-async-mode}. Also it is used
1981 as a library for other Emacs packages.")
1982 (license license:gpl3+)))
1983
1984 (define-public emacs-auctex
1985 (package
1986 (name "emacs-auctex")
1987 (version "12.2.5")
1988 (source
1989 (origin
1990 (method url-fetch)
1991 (uri (string-append "https://elpa.gnu.org/packages/"
1992 "auctex-" version ".tar"))
1993 (sha256
1994 (base32 "1288n0yna36g2h15gk34gvllifx4qms48355j8l2cafabvkffiph"))))
1995 (build-system emacs-build-system)
1996 ;; We use 'emacs' because AUCTeX requires dbus at compile time
1997 ;; ('emacs-minimal' does not provide dbus).
1998 (arguments
1999 `(#:emacs ,emacs
2000 #:include '("\\.el$" "^images/" "^latex/" "\\.info$")
2001 #:exclude '("^tests/" "^latex/README")
2002 #:phases
2003 (modify-phases %standard-phases
2004 (add-after 'unpack 'configure
2005 (lambda* (#:key inputs #:allow-other-keys)
2006 (emacs-substitute-variables "preview.el"
2007 ("preview-gs-command"
2008 (string-append (assoc-ref inputs "ghostscript") "/bin/gs")))
2009 (substitute* "preview.el"
2010 (("\"dvipng ")
2011 (string-append "\"" (assoc-ref inputs "texlive")
2012 "/bin/dvipng "))
2013 (("\"dvips ")
2014 (string-append "\"" (assoc-ref inputs "texlive")
2015 "/bin/dvips "))
2016 (("\"pdf2dsc ")
2017 (string-append "\"" (assoc-ref inputs "ghostscript")
2018 "/bin/pdf2dsc ")))))
2019 (add-after 'install 'install-doc
2020 (lambda* (#:key outputs #:allow-other-keys)
2021 (let* ((out (assoc-ref outputs "out"))
2022 (etc-dir (string-append out "/share/" ,name "/"
2023 ,version "/etc")))
2024 (with-directory-excursion "doc"
2025 (setenv "HOME" (getenv "TMPDIR")) ; for mktextfm
2026 (invoke "pdftex" "tex-ref")
2027 (install-file "tex-ref.pdf"
2028 (string-append etc-dir "/refcards")))
2029 #t))))))
2030 (native-inputs
2031 `(("perl" ,perl)))
2032 (inputs
2033 `(("ghostscript" ,ghostscript)
2034 ("texlive" ,(texlive-union (list texlive-amsfonts)))))
2035 (home-page "https://www.gnu.org/software/auctex/")
2036 (synopsis "Integrated environment for TeX")
2037 (description
2038 "AUCTeX is a comprehensive customizable integrated environment for
2039 writing input files for TeX, LaTeX, ConTeXt, Texinfo, and docTeX using Emacs
2040 or XEmacs.")
2041 (license license:gpl3+)))
2042
2043 (define-public emacs-autothemer
2044 (package
2045 (name "emacs-autothemer")
2046 (version "0.2.2")
2047 (source
2048 (origin
2049 (method git-fetch)
2050 (uri (git-reference
2051 (url "https://github.com/sebastiansturm/autothemer")
2052 (commit version)))
2053 (file-name (git-file-name name version))
2054 (sha256
2055 (base32
2056 "0cd2pqh6k32sjidkcd8682y4l6mx52xw4a05f38kk8nsrk28m74k"))))
2057 (build-system emacs-build-system)
2058 (propagated-inputs
2059 `(("emacs-dash" ,emacs-dash)))
2060 (home-page "https://github.com/sebastiansturm/autothemer")
2061 (synopsis "Conveniently create Emacs themes")
2062 (description
2063 "Autothemer provides a thin layer on top of @code{deftheme} and
2064 @code{custom-theme-set-faces} that creates a new custom color theme, based on
2065 a set of simplified face specifications and a user-supplied color palette")
2066 (license license:gpl3+)))
2067
2068 (define-public emacs-howm
2069 (package
2070 (name "emacs-howm")
2071 (version "1.4.6")
2072 (source
2073 (origin
2074 (method url-fetch)
2075 (uri (string-append "https://howm.sourceforge.jp/a/"
2076 "howm-" version ".tar.gz"))
2077 (sha256
2078 (base32 "17ihch1zbk08ih7gc232jlmbw7hax8ldb9glxp8d75k4asa98qh5"))))
2079 (build-system gnu-build-system)
2080 (native-inputs
2081 `(("emacs" ,emacs-minimal)))
2082 (arguments
2083 `(#:configure-flags
2084 (list (string-append "--with-howmdir=" %output
2085 "/share/emacs/site-lisp/"))
2086 #:modules ((guix build gnu-build-system)
2087 ((guix build emacs-build-system) #:prefix emacs:)
2088 (guix build utils))
2089 #:imported-modules (,@%gnu-build-system-modules
2090 (guix build emacs-build-system)
2091 (guix build emacs-utils))
2092 #:phases
2093 (modify-phases %standard-phases
2094 (add-after 'install 'make-autoloads
2095 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
2096 (home-page "https://howm.osdn.jp/")
2097 (synopsis "Note-taking tool for Emacs")
2098 (description "Howm is a note-taking tool for Emacs. Like
2099 code@{emacs-wiki.el}, it facilitates using hyperlinks and doing full-text
2100 searches. Unlike code@{emacs-wiki.el}, it can be combined with any format.")
2101 (license license:gpl1+)))
2102
2103 (define-public emacs-bm
2104 (package
2105 (name "emacs-bm")
2106 (version "201905")
2107 (source
2108 (origin
2109 (method git-fetch)
2110 (uri (git-reference
2111 (url "https://github.com/joodland/bm")
2112 (commit version)))
2113 (file-name (git-file-name name version))
2114 (sha256
2115 (base32 "180b3rc13asrmsdh7v405d54jkrininvaj52xhp71vw91ng51dkn"))))
2116 (build-system emacs-build-system)
2117 (home-page "https://github.com/joodland/bm")
2118 (synopsis "Visual bookmarks for Emacs")
2119 (description "This package provides visible, buffer local bookmarks and
2120 the ability to jump forward and backward to the next bookmark.")
2121 (license license:gpl2+)))
2122
2123 (define-public emacs-calfw
2124 (package
2125 (name "emacs-calfw")
2126 (version "1.6")
2127 (source
2128 (origin
2129 (method git-fetch)
2130 (uri (git-reference
2131 (url "https://github.com/kiwanami/emacs-calfw")
2132 (commit (string-append "v" version))))
2133 (file-name (git-file-name name version))
2134 (sha256
2135 (base32
2136 "0r42cagvmvvib76kd15nd9ix55ys6i549vxnls4z16s864695zpa"))))
2137 (build-system emacs-build-system)
2138 (propagated-inputs
2139 `(("emacs-howm" ,emacs-howm)))
2140 (home-page "https://github.com/kiwanami/emacs-calfw/")
2141 (synopsis "Calendar framework for Emacs")
2142 (description
2143 "This package displays a calendar view with various schedule data in the
2144 Emacs buffer.")
2145 (license license:gpl3+)))
2146
2147 (define-public emacs-caps-lock
2148 (package
2149 (name "emacs-caps-lock")
2150 (version "1.0")
2151 (source
2152 (origin
2153 (method url-fetch)
2154 (uri (string-append "https://elpa.gnu.org/packages/"
2155 "caps-lock-" version ".el"))
2156 (sha256
2157 (base32 "1i4hwam81p4dr0bk8257fkiz4xmv6knkjxj7a00fa35kgx5blpva"))))
2158 (build-system emacs-build-system)
2159 (home-page "http://elpa.gnu.org/packages/caps-lock.html")
2160 (synopsis "Caps Lock as a minor mode")
2161 (description
2162 "This package provides a minor mode to emulate the behavior of a Caps
2163 Lock key.")
2164 (license license:gpl3+)))
2165
2166 (define-public emacs-chronometrist
2167 (package
2168 (name "emacs-chronometrist")
2169 (version "0.5.5")
2170 (source
2171 (origin
2172 (method git-fetch)
2173 (uri (git-reference
2174 (url "https://github.com/contrapunctus-1/chronometrist.git")
2175 (commit (string-append "v" version))))
2176 (file-name (git-file-name name version))
2177 (sha256
2178 (base32 "1zccyfpgq68ixrcl8jq2r38165ngkqrb42y2hkyab6gxhvh4wkpl"))))
2179 (build-system emacs-build-system)
2180 (arguments
2181 `(#:phases
2182 (modify-phases %standard-phases
2183 (add-after 'unpack 'chdir-elisp
2184 ;; Elisp directory is not in root of the source.
2185 (lambda _
2186 (chdir "elisp")
2187 #t))
2188 (add-after 'install 'install-doc
2189 ;; Documentation consists of several Markdown files.
2190 (lambda* (#:key outputs #:allow-other-keys)
2191 (let* ((out (assoc-ref outputs "out"))
2192 (doc (string-append out
2193 "/share/doc/emacs-chronometrist-"
2194 ,version)))
2195 (with-directory-excursion "../doc"
2196 (for-each (lambda (f) (install-file f doc))
2197 (cons* "../UNLICENSE"
2198 "../WTFPL"
2199 (find-files "." "\\.md$")))))
2200 #t)))))
2201 (propagated-inputs
2202 `(("emacs-anaphora" ,emacs-anaphora)
2203 ("emacs-dash" ,emacs-dash)
2204 ("emacs-s" ,emacs-s)
2205 ("emacs-ts" ,emacs-ts)))
2206 (home-page "https://github.com/contrapunctus-1/chronometrist")
2207 (synopsis "Time tracker for Emacs")
2208 (description "Chronometrist is a time tracker in Emacs, largely modelled
2209 after the Android application, @emph{A Time Tracker}.
2210
2211 Its features are:
2212 @itemize
2213 @item Simple and efficient to use,
2214 @item Displays useful information about your time usage,
2215 @item Support for both mouse and keyboard,
2216 @item Human errors in tracking are easily fixed by editing a plain text file,
2217 @item Hooks to let you perform arbitrary actions when starting/stopping tasks.
2218 @end itemize")
2219 ;; Software is dual-licensed.
2220 (license (list license:unlicense license:wtfpl2))))
2221
2222 (define-public emacs-direnv
2223 (package
2224 (name "emacs-direnv")
2225 (version "2.1.0")
2226 (source
2227 (origin
2228 (method git-fetch)
2229 (uri (git-reference
2230 (url "https://github.com/wbolster/emacs-direnv")
2231 (commit version)))
2232 (file-name (git-file-name name version))
2233 (sha256
2234 (base32 "0xkqn4604k2imas6azy1www56br8ls4iv9a44pxcd8h94j1fp44d"))))
2235 (build-system emacs-build-system)
2236 (propagated-inputs
2237 `(("dash" ,emacs-dash)
2238 ("with-editor" ,emacs-with-editor)))
2239 (home-page "https://github.com/wbolster/emacs-direnv")
2240 (synopsis "Direnv integration for Emacs")
2241 (description
2242 "This package provides support for invoking direnv to get the environment
2243 for the current file and updating the environment within Emacs to match.
2244
2245 Direnv can be invoked manually, and a global minor mode is included that will
2246 update the environment when the active buffer changes.
2247
2248 Using emacs-direnv means that programs started from Emacs will use the
2249 environment set through Direnv.")
2250 (license license:gpl3+)))
2251
2252 (define-public emacs-elf-mode
2253 (package
2254 (name "emacs-elf-mode")
2255 (version "0.1.0")
2256 (source
2257 (origin
2258 (method git-fetch)
2259 (uri
2260 (git-reference
2261 (url "https://github.com/abo-abo/elf-mode")
2262 (commit version)))
2263 (file-name (git-file-name name version))
2264 (sha256
2265 (base32 "0cbvjbk2893ag1iy8ggixpirfiyhssm7fii96hb9jqdz874cdl0k"))))
2266 (build-system emacs-build-system)
2267 (home-page "https://github.com/abo-abo/elf-mode")
2268 (synopsis "Show symbol list when opening a binary file in Emacs")
2269 (description "This Emacs package provides a command showing the symbols
2270 that the binary uses instead of the actual binary contents.")
2271 (license license:gpl3+)))
2272
2273 (define-public emacs-form-feed
2274 (package
2275 (name "emacs-form-feed")
2276 (version "0.2.2")
2277 (source
2278 (origin
2279 (method git-fetch)
2280 (uri (git-reference
2281 (url "https://github.com/wasamasa/form-feed")
2282 (commit version)))
2283 (file-name (git-file-name name version))
2284 (sha256
2285 (base32 "171jna631b2iqcimfsik9c66gii8nc0zdb58m077w00rn7rcxbh2"))))
2286 (build-system emacs-build-system)
2287 (home-page "https://github.com/wasamasa/form-feed")
2288 (synopsis "Display ^L glyphs as horizontal lines")
2289 (description
2290 "This package provides a minor mode @code{form-feed-mode} to display page
2291 delimiters which usually appear as ^L glyphs on a single line as horizontal
2292 lines spanning the entire window. The minor mode is suitable for inclusion
2293 into mode hooks and is intended to be used that way.")
2294 (license license:gpl3+)))
2295
2296 (define-public emacs-ggtags
2297 (package
2298 (name "emacs-ggtags")
2299 (version "0.8.13")
2300 (source
2301 (origin
2302 (method url-fetch)
2303 (uri (string-append "https://elpa.gnu.org/packages/ggtags-"
2304 version ".el"))
2305 (sha256
2306 (base32
2307 "1qa7lcrcmf76sf6dy8sxbg4adq7rg59fm0n5848w3qxgsr0h45fg"))))
2308 (build-system emacs-build-system)
2309 (inputs
2310 `(("global" ,global)))
2311 (arguments
2312 `(#:phases
2313 (modify-phases %standard-phases
2314 (add-after 'unpack 'configure
2315 (lambda* (#:key inputs #:allow-other-keys)
2316 (chmod "ggtags.el" #o644)
2317 (emacs-substitute-variables "ggtags.el"
2318 ("ggtags-executable-directory"
2319 (string-append (assoc-ref inputs "global") "/bin")))
2320 #t)))))
2321 (home-page "https://github.com/leoliu/ggtags")
2322 (synopsis "Frontend to the GNU Global source code tagging system")
2323 (description "@code{ggtags} provides a frontend to the GNU Global source
2324 code tagging system.
2325
2326 Features:
2327
2328 @itemize
2329 @item Build on @code{compile.el} for asynchronicity and its large feature-set.
2330 @item Automatically update Global's tag files when needed with tuning for
2331 large source trees.
2332 @item Intuitive navigation among multiple matches with mode-line display of
2333 current match, total matches and exit status.
2334 @item Read tag with completion.
2335 @item Show definition at point.
2336 @item Jump to #include files.
2337 @item Support search history and saving a search to register/bookmark.
2338 @item Query replace.
2339 @item Manage Global's environment variables on a per-project basis.
2340 @item Highlight (definition) tag at point.
2341 @item Abbreviated display of file names.
2342 @item Support all Global search backends: @code{grep}, @code{idutils}, etc.
2343 @item Support exuberant ctags @url{http://ctags.sourceforge.net/} and
2344 @code{pygments} backend.
2345 @item Support all Global's output formats: @code{grep}, @code{ctags-x},
2346 @code{cscope} etc.
2347 @item Support projects on remote hosts (e.g. via @code{tramp}).
2348 @item Support eldoc.
2349 @item Search @code{GTAGSLIBPATH} for references and symbols.
2350 @end itemize\n")
2351 (license license:gpl3+)))
2352
2353 (define-public emacs-go-mode
2354 (package
2355 (name "emacs-go-mode")
2356 (version "1.5.0")
2357 (source (origin
2358 (method git-fetch)
2359 (uri (git-reference
2360 (url "https://github.com/dominikh/go-mode.el")
2361 (commit (string-append "v" version))))
2362 (file-name (git-file-name name version))
2363 (sha256
2364 (base32
2365 "1nd2h50yb0493wvf1h7fzplq45rmqn2w7kxpgnlxzhkvq99v8vzf"))))
2366 (build-system emacs-build-system)
2367 (arguments
2368 `(#:phases
2369 (modify-phases %standard-phases
2370 (add-after 'unpack 'make-writable
2371 (lambda _
2372 (for-each make-file-writable (find-files "." "\\.el$"))
2373 #t)))))
2374 (home-page "https://github.com/dominikh/go-mode.el")
2375 (synopsis "Go mode for Emacs")
2376 (description
2377 "This package provides go-mode, an Emacs mode for working with software
2378 written in the Go programming language.")
2379 (license license:bsd-3)))
2380
2381 (define-public emacs-google-maps
2382 ;; There has been no new release tag since 2013.
2383 (let ((commit "2eb16ff609f5a9f8d02c15238a111fbb7db6c146")
2384 (revision "1"))
2385 (package
2386 (name "emacs-google-maps")
2387 (version (git-version "1.0.0" revision commit))
2388 (source
2389 (origin
2390 (method git-fetch)
2391 (uri (git-reference
2392 (url "https://github.com/jd/google-maps.el")
2393 (commit commit)))
2394 (file-name (git-file-name name version))
2395 (sha256
2396 (base32 "1bl0dnksbf14d0xcnvdy9qpvzc5c8jwkxpmfvgayj6djikxnw2md"))))
2397 (build-system emacs-build-system)
2398 (home-page "https://github.com/jd/google-maps.el")
2399 (synopsis "Access Google Maps from Emacs")
2400 (description "The @code{google-maps} package displays Google Maps
2401 directly inside Emacs. It requires a Google Map Static API key to function.")
2402 (license license:gpl3+))))
2403
2404 (define-public emacs-graphviz-dot-mode
2405 (package
2406 (name "emacs-graphviz-dot-mode")
2407 (version "0.4.2")
2408 (source
2409 (origin
2410 (method git-fetch)
2411 (uri (git-reference
2412 (url "https://github.com/ppareit/graphviz-dot-mode")
2413 (commit (string-append "v" version))))
2414 (file-name (git-file-name name version))
2415 (sha256
2416 (base32 "1v1p85wk73nfsvv66qf90flgf9dqhmv15z1r7q4zmc4ifklqn08m"))))
2417 (build-system emacs-build-system)
2418 (arguments
2419 `(#:phases
2420 (modify-phases %standard-phases
2421 (add-before 'install 'make-info
2422 (lambda* (#:key inputs #:allow-other-keys)
2423 (with-directory-excursion "texinfo"
2424 (substitute* "Makefile"
2425 (("\\/usr\\/bin\\/gzip")
2426 (string-append (assoc-ref inputs "gzip") "/bin/gzip")))
2427 (invoke "make"
2428 "clean"
2429 "info"
2430 (string-append "TEXINFODIR="
2431 (assoc-ref inputs "texinfo")
2432 "/bin")))))
2433 (add-after 'install 'install-info
2434 (lambda* (#:key outputs #:allow-other-keys)
2435 (let* ((out (assoc-ref outputs "out"))
2436 (info (string-append out "/share/info")))
2437 (install-file "texinfo/graphviz-dot-mode.info.gz" info)
2438 #t))))))
2439 (native-inputs
2440 `(("gzip" ,gzip)
2441 ("texinfo" ,texinfo)))
2442 (propagated-inputs
2443 `(("emacs-company" ,emacs-company)))
2444 (home-page "http://ppareit.github.com/graphviz-dot-mode")
2445 (synopsis "Major mode for editing Graphviz DOT files")
2446 (description
2447 "This Emacs package helps you to create @file{.dot} or @file{.gv} files
2448 using the DOT syntax, and use Graphviz to convert these files to diagrams.")
2449 (license license:gpl2+)))
2450
2451 (define-public emacs-imenu-list
2452 (package
2453 (name "emacs-imenu-list")
2454 (version "0.8")
2455 (source
2456 (origin
2457 (method git-fetch)
2458 (uri
2459 (git-reference
2460 (url "https://github.com/bmag/imenu-list")
2461 (commit (string-append "v" version))))
2462 (file-name (git-file-name name version))
2463 (sha256
2464 (base32 "13xh9bdl3k6ccfq83wjmkpi4269qahv4davki4wq18dr4amrzhlx"))))
2465 (build-system emacs-build-system)
2466 (home-page "https://github.com/bmag/imenu-list")
2467 (synopsis
2468 "Automatically tracks the current buffer's imenu entries")
2469 (description
2470 "This Emacs minor mode creates an automatically updated buffer called
2471 @code{*Ilist*} that is populated with the current buffer's imenu entries.
2472 This buffer is typically shown as a sidebar (Emacs vertically splits the
2473 window).")
2474 (license license:gpl3+)))
2475
2476 (define-public emacs-mmm-mode
2477 (package
2478 (name "emacs-mmm-mode")
2479 (version "0.5.8")
2480 (source
2481 (origin
2482 (method url-fetch)
2483 (uri (string-append "https://elpa.gnu.org/packages/"
2484 "mmm-mode-" version ".tar"))
2485 (sha256
2486 (base32 "05ckf4zapdpvnd3sqpw6kxaa567zh536a36m9qzx3sqyjbyn5fb4"))))
2487 (build-system emacs-build-system)
2488 (home-page "https://github.com/purcell/mmm-mode")
2489 (synopsis "Allow multiple major modes in an Emacs buffer")
2490 (description
2491 "MMM Mode is a minor mode that allows multiple major modes to coexist in
2492 a single buffer.")
2493 (license license:gpl3+)))
2494
2495 (define-public emacs-mmt
2496 (package
2497 (name "emacs-mmt")
2498 (version "0.2.0")
2499 (source
2500 (origin
2501 (method git-fetch)
2502 (uri (git-reference
2503 (url "https://github.com/mrkkrp/mmt")
2504 (commit version)))
2505 (file-name (git-file-name name version))
2506 (sha256
2507 (base32 "13vbfc5597v0gd87qyhn10f93nb477vjpg3jlpphbax9fvkf4gav"))))
2508 (build-system emacs-build-system)
2509 (home-page "https://github.com/mrkkrp/mmt")
2510 (synopsis "Classic tools to write Emacs Lisp macros")
2511 (description "Emacs MMT is a package that contains classic tools for Emacs
2512 Lisp developers who want to write macros with convenience.")
2513 (license license:gpl3+)))
2514
2515 (define-public emacs-tablist
2516 (package
2517 (name "emacs-tablist")
2518 (version "1.0")
2519 (source (origin
2520 (method git-fetch)
2521 (uri (git-reference
2522 (url "https://github.com/politza/tablist")
2523 (commit (string-append "v" version))))
2524 (file-name (git-file-name name version))
2525 (sha256
2526 (base32
2527 "0pzsdg0rm59daw34ppss79cg05z9wnr8nkmdcc48nkd0p69ip2yy"))))
2528 (build-system emacs-build-system)
2529 (home-page "https://github.com/politza/tablist")
2530 (synopsis "Extension for @code{tabulated-list-mode}")
2531 (description "Tablist is the Emacs package that provides several
2532 additional features to @code{tabulated-list-mode}: it adds marks,
2533 filters, new key bindings and faces. It can be enabled by
2534 @code{tablist-mode} or @code{tablist-minor-mode} commands.")
2535 (license license:gpl3+)))
2536
2537 (define-public emacs-djvu
2538 (package
2539 (name "emacs-djvu")
2540 (version "1.1")
2541 (source
2542 (origin
2543 (method url-fetch)
2544 (uri (string-append "https://elpa.gnu.org/packages/"
2545 "djvu-" version ".el"))
2546 (sha256
2547 (base32 "0njgyx09q225hliacsnjk8wallg5i6xkz6bj501pb05nwqfbvfk7"))))
2548 (build-system emacs-build-system)
2549 (inputs `(("djview" ,djview)
2550 ("djvulibre" ,djvulibre)))
2551 (arguments
2552 `(#:phases
2553 (modify-phases %standard-phases
2554 (add-after 'unpack 'configure
2555 (lambda* (#:key inputs outputs #:allow-other-keys)
2556 (let ((file "djvu.el")
2557 (djview (assoc-ref inputs "djview"))
2558 (djvulibre (assoc-ref inputs "djvulibre")))
2559 ;; Specify the absolute executable locations.
2560 (chmod file #o644)
2561 (substitute* file
2562 (("\"djvused\"") (string-append "\"" djvulibre "/bin/djvused\""))
2563 (("\"djvm\"") (string-append "\"" djvulibre "/bin/djvm\""))
2564 (("\"ddjvu\"") (string-append "\"" djvulibre "/bin/ddjvu\"")))
2565 (emacs-substitute-variables file
2566 ("djvu-djview-command" (string-append djview "/bin/djview"))))
2567 #t)))))
2568 (home-page "http://elpa.gnu.org/packages/djvu.html")
2569 (synopsis "Edit and view Djvu files via djvused")
2570 (description
2571 "This package is a front end for the command-line program djvused from
2572 DjVuLibre, see @url{http://djvu.sourceforge.net/}.")
2573 (license license:gpl3+)))
2574
2575 (define-public emacs-pabbrev
2576 (package
2577 (name "emacs-pabbrev")
2578 (version "4.2.1")
2579 (source
2580 (origin
2581 (method url-fetch)
2582 (uri (string-append "https://elpa.gnu.org/packages/"
2583 "pabbrev-" version ".el"))
2584 (sha256
2585 (base32 "19v5adk61y8fpigw7k6wz6dj79jwr450hnbi7fj0jvb21cvjmfxh"))))
2586 (build-system emacs-build-system)
2587 (home-page "http://elpa.gnu.org/packages/pabbrev.html")
2588 (synopsis "Predictive abbreviation expansion")
2589 (description
2590 "The code provides a abbreviation expansion for Emacs. It is
2591 fairly similar to Dabbrev expansion, which works based on the contents
2592 of the current buffer (or other buffers).
2593
2594 Predictive abbreviation expansion works based on the previously
2595 written text. Unlike dynamic abbreviation, the text is analysed
2596 during idle time, while Emacs is doing nothing else.")
2597 (license license:gpl3+)))
2598
2599 (define-public emacs-pdf-tools
2600 ;; XXX: Development branch fixes an incompatibility with Emacs 27+. See
2601 ;; <https://github.com/politza/pdf-tools/issues/616>.
2602 (let ((commit "c510442ab89c8a9e9881230eeb364f4663f59e76")
2603 (revision "1"))
2604 (package
2605 (name "emacs-pdf-tools")
2606 (version (git-version "0.90" revision commit))
2607 (source
2608 (origin
2609 (method git-fetch)
2610 (uri (git-reference
2611 (url "https://github.com/politza/pdf-tools")
2612 (commit commit)))
2613 (file-name (git-file-name name version))
2614 (sha256
2615 (base32 "17z3cpn76g9dp62drjrgrqpp1bgf4gl5k5gspylskpvd4kj4bq4d"))))
2616 (build-system gnu-build-system)
2617 (arguments
2618 `(#:tests? #f ; there are no tests
2619 #:modules ((guix build gnu-build-system)
2620 ((guix build emacs-build-system) #:prefix emacs:)
2621 (guix build utils)
2622 (guix build emacs-utils))
2623 #:imported-modules (,@%gnu-build-system-modules
2624 (guix build emacs-build-system)
2625 (guix build emacs-utils))
2626 #:phases
2627 (modify-phases %standard-phases
2628 ;; Build server side using 'gnu-build-system'.
2629 (add-after 'unpack 'enter-server-dir
2630 (lambda _ (chdir "server") #t))
2631 (add-after 'enter-server-dir 'autogen
2632 (lambda _
2633 (invoke "bash" "autogen.sh")))
2634
2635 ;; Build emacs side using 'emacs-build-system'.
2636 (add-after 'compress-documentation 'enter-lisp-dir
2637 (lambda _ (chdir "../lisp") #t))
2638 (add-after 'enter-lisp-dir 'emacs-patch-variables
2639 (lambda* (#:key outputs #:allow-other-keys)
2640 (for-each make-file-writable (find-files "."))
2641
2642 ;; Set path to epdfinfo program.
2643 (emacs-substitute-variables "pdf-info.el"
2644 ("pdf-info-epdfinfo-program"
2645 (string-append (assoc-ref outputs "out")
2646 "/bin/epdfinfo")))
2647 ;; Set 'pdf-tools-handle-upgrades' to nil to avoid "auto
2648 ;; upgrading" that pdf-tools tries to perform.
2649 (emacs-substitute-variables "pdf-tools.el"
2650 ("pdf-tools-handle-upgrades" '()))))
2651 (add-after 'emacs-patch-variables 'emacs-add-source-to-load-path
2652 (assoc-ref emacs:%standard-phases 'add-source-to-load-path))
2653 (add-after 'emacs-add-source-to-load-path 'emacs-install
2654 (assoc-ref emacs:%standard-phases 'install))
2655 (add-after 'emacs-install 'emacs-build
2656 (assoc-ref emacs:%standard-phases 'build))
2657 (add-after 'emacs-install 'emacs-make-autoloads
2658 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
2659 (native-inputs
2660 `(("autoconf" ,autoconf)
2661 ("automake" ,automake)
2662 ("pkg-config" ,pkg-config)
2663 ("emacs" ,emacs-minimal)))
2664 (inputs
2665 `(("poppler" ,poppler)
2666 ("cairo" ,cairo)
2667 ("glib" ,glib)
2668 ("libpng" ,libpng)
2669 ("zlib" ,zlib)))
2670 (propagated-inputs
2671 `(("tablist" ,emacs-tablist)))
2672 (home-page "https://github.com/politza/pdf-tools")
2673 (synopsis "Emacs support library for PDF files")
2674 (description
2675 "PDF Tools is, among other things, a replacement of DocView for PDF
2676 files. The key difference is that pages are not pre-rendered by
2677 e.g. ghostscript and stored in the file-system, but rather created on-demand
2678 and stored in memory.")
2679 (license license:gpl3+))))
2680
2681 (define-public emacs-dash
2682 (package
2683 (name "emacs-dash")
2684 (version "2.17.0")
2685 (source (origin
2686 (method git-fetch)
2687 (uri (git-reference
2688 (url "https://github.com/magnars/dash.el")
2689 (commit version)))
2690 (file-name (git-file-name name version))
2691 (sha256
2692 (base32
2693 "153f55dqkhs8w2xlf6b88wp5vlkap7h8vjd9wxh4jp2ram5g4l1n"))))
2694 (build-system emacs-build-system)
2695 (arguments
2696 `(#:tests? #t
2697 #:test-command '("./run-tests.sh")))
2698 (home-page "https://github.com/magnars/dash.el")
2699 (synopsis "Modern list library for Emacs")
2700 (description "This package provides a modern list API library for Emacs.")
2701 (license license:gpl3+)))
2702
2703 (define-public emacs-bui
2704 (package
2705 (name "emacs-bui")
2706 (version "1.2.1")
2707 (source (origin
2708 (method git-fetch)
2709 (uri (git-reference
2710 (url "https://notabug.org/alezost/emacs-bui.git")
2711 (commit (string-append "v" version))))
2712 (file-name (git-file-name name version))
2713 (sha256
2714 (base32
2715 "0sszdl4kvqbihdh8d7mybpp0d8yw2p3gyiipjcxz9xhvvmw3ww4x"))))
2716 (build-system emacs-build-system)
2717 (propagated-inputs
2718 `(("dash" ,emacs-dash)))
2719 (home-page "https://notabug.org/alezost/emacs-bui")
2720 (synopsis "Buffer interface library for Emacs")
2721 (description
2722 "BUI (Buffer User Interface) is a library for making @code{list} and
2723 @code{info} interfaces to display an arbitrary data of the same
2724 type, for example: packages, buffers, files, etc.")
2725 (license license:gpl3+)))
2726
2727 (define-public emacs-guix
2728 (let ((commit "58a840d0671091e3064e36244790ef8839da87d6")
2729 (revision "2"))
2730 (package
2731 (name "emacs-guix")
2732 (version (git-version "0.5.2" revision commit))
2733 (source (origin
2734 (method git-fetch)
2735 (uri (git-reference
2736 (url "https://gitlab.com/emacs-guix/emacs-guix")
2737 (commit commit)))
2738 (file-name (git-file-name name version))
2739 (sha256
2740 (base32
2741 "1qnr5sixmvrhr9rinrhfy7sy20mikjvvwbdixwkbx30qpcdwgwj1"))))
2742 (build-system gnu-build-system)
2743 (native-inputs
2744 `(("autoconf" ,autoconf)
2745 ("automake" ,automake)
2746 ("pkg-config" ,pkg-config)
2747 ("texinfo" ,texinfo)
2748 ("emacs" ,emacs-minimal)))
2749 (inputs
2750 `(("guile" ,@(assoc-ref (package-native-inputs guix) "guile"))
2751 ("guix" ,guix)))
2752 (propagated-inputs
2753 `(("geiser" ,emacs-geiser)
2754 ("guile-gcrypt" ,guile-gcrypt)
2755 ("dash" ,emacs-dash)
2756 ("bui" ,emacs-bui)
2757 ("edit-indirect" ,emacs-edit-indirect)
2758 ("magit-popup" ,emacs-magit-popup)))
2759 (home-page "https://emacs-guix.gitlab.io/website/")
2760 (synopsis "Emacs interface for GNU Guix")
2761 (description
2762 "Emacs-Guix provides a visual interface, tools and features for the GNU
2763 Guix package manager. Particularly, it allows you to do various package
2764 management tasks from Emacs. To begin with, run @code{M-x guix-about} or
2765 @code{M-x guix-help} command.")
2766 (license license:gpl3+))))
2767
2768 (define-public emacs-build-farm
2769 (package
2770 (name "emacs-build-farm")
2771 (version "0.2.2")
2772 (source (origin
2773 (method git-fetch)
2774 (uri (git-reference
2775 (url "https://notabug.org/alezost/emacs-build-farm.git")
2776 (commit (string-append "v" version))))
2777 (file-name (git-file-name name version))
2778 (sha256
2779 (base32
2780 "0i0bwbav5861j2y15j9nd5m9rdqg9q97zgcbld8pivr9nyxy63lz"))))
2781 (build-system emacs-build-system)
2782 (propagated-inputs
2783 `(("bui" ,emacs-bui)
2784 ("magit-popup" ,emacs-magit-popup)))
2785 (home-page "https://notabug.org/alezost/emacs-build-farm")
2786 (synopsis "Emacs interface for Hydra and Cuirass build farms")
2787 (description
2788 "This Emacs package provides an interface for Hydra and
2789 Cuirass (build farms used by Nix and Guix). It allows you to look at
2790 various data related to the build farm projects, jobsets, builds and
2791 evaluations. The entry point is @code{M-x build-farm} command.")
2792 (license license:gpl3+)))
2793
2794 (define-public emacs-d-mode
2795 (package
2796 (name "emacs-d-mode")
2797 (version "2.0.10")
2798 (source
2799 (origin
2800 (method git-fetch)
2801 (uri (git-reference
2802 (url "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode")
2803 (commit version)))
2804 (file-name (git-file-name name version))
2805 (sha256
2806 (base32 "0915kb9jcaixgindhj85fmykkhvj31ckp1yg6746fznwdgfrlifv"))))
2807 (build-system emacs-build-system)
2808 (propagated-inputs
2809 `(("emacs-undercover" ,emacs-undercover)))
2810 (home-page "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode")
2811 (synopsis "Emacs major mode for editing D code")
2812 (description "This package provides an Emacs major mode for highlighting
2813 code written in the D programming language. This mode is currently known to
2814 work with Emacs 24 and 25.")
2815 (license license:gpl2+)))
2816
2817 (define-public emacs-extempore-mode
2818 ;; Use the latest commit at time of packaging. There are no releases or tags.
2819 (let ((commit "09518ae6650d7be33a4633a4c0f31b7130d04c6e")
2820 (revision "1"))
2821 (package
2822 (name "emacs-extempore-mode")
2823 (version (git-version "0.0.0" revision commit))
2824 (source
2825 (origin
2826 (method git-fetch)
2827 (uri (git-reference
2828 (url "https://github.com/extemporelang/extempore-emacs-mode")
2829 (commit commit)))
2830 (file-name (git-file-name name version))
2831 (sha256
2832 (base32 "0hfza9lzdsz94gxhmzyp9fwviscv19rmnjgd0q613faayn11sjsp"))))
2833 (build-system emacs-build-system)
2834 (home-page "https://github.com/extemporelang/extempore-emacs-mode")
2835 (synopsis "Emacs major mode for Extempore source files")
2836 (description
2837 "This package provides a major mode for editing Extempore code. It can
2838 create an Extempore REPL, connect the current @code{extempore-mode} buffer to a
2839 running Extempore process, and more.")
2840 (license license:bsd-2))))
2841
2842 (define-public emacs-kakoune
2843 ;; Package has no release. Version is extracted from "Version:" keyword in
2844 ;; main file.
2845 (let ((commit "d73d14e69ea38076af50cc69f846808383ff539d")
2846 (revision "0"))
2847 (package
2848 (name "emacs-kakoune")
2849 (version (git-version "0.1" revision commit))
2850 (source
2851 (origin
2852 (method git-fetch)
2853 (uri (git-reference
2854 (url "https://github.com/jmorag/kakoune.el")
2855 (commit commit)))
2856 (file-name (git-file-name name version))
2857 (sha256
2858 (base32 "0nk6jdy1y5mc3ryd0smiqghrk6iv34d5grc7f7migmshlbq0np92"))))
2859 (build-system emacs-build-system)
2860 (propagated-inputs
2861 `(("emacs-expand-region" ,emacs-expand-region)
2862 ("emacs-multiple-cursors" ,emacs-multiple-cursors)
2863 ("emacs-ryo-modal" ,emacs-ryo-modal)))
2864 (home-page "https://github.com/jmorag/kakoune.el")
2865 (synopsis "Emacs simple simulation, but not emulation, of Kakoune")
2866 (description "This package provides many, but not all of the editing
2867 primitives in the Kakoune editor. Unlike Evil mode for Vim, this is a very
2868 shallow emulation, which seeks to do as little work as possible, leveraging
2869 Emacs native editing commands and the work of other packages wherever
2870 possible.")
2871 (license license:expat))))
2872
2873 (define-public emacs-kana
2874 ;; Package has no release. Version is extracted from "Version:" keyword in
2875 ;; main file.
2876 (let ((commit "b239c3c3c6124b46ff720cca7b80ecbafd7fa489")
2877 (revision "0"))
2878 (package
2879 (name "emacs-kana")
2880 (version (git-version "1.0.0" revision commit))
2881 (source
2882 (origin
2883 (method git-fetch)
2884 (uri (git-reference
2885 (url "https://github.com/chenyanming/kana")
2886 (commit commit)))
2887 (file-name (git-file-name name version))
2888 (sha256
2889 (base32 "0vrrl1kniq4h111jvnapvx3wybvsl3alfaygw634mmryr3h7pwi8"))))
2890 (build-system emacs-build-system)
2891 (home-page "https://github.com/chenyanming/kana")
2892 (synopsis "Learn Japanese Kana in Emacs")
2893 (description
2894 "This Emacs mode displays Hiragana and Katakana flashcards. It can use
2895 functionality from Emacs Kanji mode if it is installed.")
2896 (license license:gpl3+))))
2897
2898 (define-public emacs-kanji
2899 ;; Package has no release. Version is extracted from "Version:" keyword in
2900 ;; main file.
2901 (let ((commit "5e9d5b72468ece11cfb81b729be6babf63ede425")
2902 (revision "0"))
2903 (package
2904 (name "emacs-kanji")
2905 (version (git-version "1.0" revision commit))
2906 (source
2907 (origin
2908 (method git-fetch)
2909 (uri (git-reference
2910 (url "https://github.com/wsgac/kanji-mode")
2911 (commit commit)))
2912 (file-name (git-file-name name version))
2913 (sha256
2914 (base32 "1zh7klqaza840q5f44zzh1wrnd6sqa2k93z3dgx3yhhsxfd1dxvy"))))
2915 (build-system emacs-build-system)
2916 (home-page "https://github.com/wsgac/kanji-mode")
2917 (synopsis "Emacs minor mode for displaying Japanese Kanji stroke order")
2918 (description
2919 "This minor mode displays the stroke order of the Kanji sign under
2920 cursor in a transient buffer. It has a built-in collection of SVG images
2921 depicting stroke orders for all Kanji. The collection is a slightly modified
2922 and limited version of the images provided by the KanjiVG project.")
2923 (license license:gpl3+))))
2924
2925 (define-public emacs-keyfreq
2926 (package
2927 (name "emacs-keyfreq")
2928 (version "20160516.716")
2929 (source
2930 (origin
2931 (method url-fetch)
2932 (uri (string-append "http://melpa.org/packages/keyfreq-"
2933 version ".el"))
2934 (sha256
2935 (base32
2936 "008hd7d06qskc3mx0bbdgpgy2pwxr8185fzlyqf9qjg49y74p6g8"))))
2937 (build-system emacs-build-system)
2938 (home-page "https://github.com/dacap/keyfreq")
2939 (synopsis "Track Emacs command frequencies")
2940 (description "@code{emacs-keyfeq} tracks and shows how many times you used
2941 a command.")
2942 (license license:gpl3+)))
2943
2944 (define-public emacs-olivetti
2945 (package
2946 (name "emacs-olivetti")
2947 (version "1.11.1")
2948 (source
2949 (origin
2950 (method git-fetch)
2951 (uri (git-reference
2952 (url "https://github.com/rnkn/olivetti")
2953 (commit (string-append "v" version))))
2954 (file-name (git-file-name name version))
2955 (sha256
2956 (base32 "0rghxjdzyfykd4qc2zkavvbyf9xc899k1b8hbk890f1y3vakqvqz"))))
2957 (build-system emacs-build-system)
2958 (home-page "https://github.com/rnkn/olivetti")
2959 (synopsis "Emacs minor mode for a nice writing environment")
2960 (description "This package provides an Emacs minor mode that puts writing
2961 in the center.")
2962 (license license:gpl3+)))
2963
2964 (define-public emacs-undo-tree
2965 (package
2966 (name "emacs-undo-tree")
2967 (version "0.7.5")
2968 (source
2969 (origin
2970 (method url-fetch)
2971 (uri (string-append "https://elpa.gnu.org/packages/"
2972 "undo-tree-" version ".el"))
2973 (sha256
2974 (base32 "00admi87gqm0akhfqm4dcp9fw8ihpygy030955jswkha4zs7lw2p"))))
2975 (build-system emacs-build-system)
2976 (home-page "http://www.dr-qubit.org/emacs.php")
2977 (synopsis "Treat undo history as a tree")
2978 (description
2979 "Tree-like interface to Emacs undo system, providing
2980 graphical tree presentation of all previous states of buffer that
2981 allows easily move between them.")
2982 (license license:gpl3+)))
2983
2984 (define-public emacs-s
2985 (package
2986 (name "emacs-s")
2987 (version "1.12.0")
2988 (source
2989 (origin
2990 (method git-fetch)
2991 (uri (git-reference
2992 (url "https://github.com/magnars/s.el")
2993 (commit version)))
2994 (file-name (git-file-name name version))
2995 (sha256
2996 (base32 "1g8mqd13llj007al4nlxxx4z2lcsg3wk970mgjn0avwrhjjgdmmv"))))
2997 (build-system emacs-build-system)
2998 (arguments
2999 `(#:tests? #t
3000 #:emacs ,emacs ; FIXME: tests fail with emacs-minimal
3001 #:test-command '("./run-tests.sh")))
3002 (home-page "https://github.com/magnars/s.el")
3003 (synopsis "Emacs string manipulation library")
3004 (description "This package provides an Emacs library for manipulating
3005 strings.")
3006 (license license:gpl3+)))
3007
3008 (define-public emacs-symon
3009 (package
3010 (name "emacs-symon")
3011 (version "20160630")
3012 (source
3013 (origin
3014 (method git-fetch)
3015 (uri (git-reference
3016 (url "https://github.com/zk-phi/symon")
3017 (commit version)))
3018 (file-name (git-file-name name version))
3019 (sha256
3020 (base32 "1q7di9s8k710nx98wnqnbkkhdimrn0jf6z4xkm4c78l6s5idjwlz"))))
3021 (build-system emacs-build-system)
3022 (home-page "https://github.com/zk-phi/symon")
3023 (synopsis "Tiny graphical system monitor")
3024 (description
3025 "Tiny graphical system monitor for the Emacs minibuffer when idle.")
3026 (license license:gpl2+)))
3027
3028 (define-public emacs-sx
3029 (let ((version "20191229")
3030 (revision "0")
3031 (commit "e9d1093c97507a6d7b4f4710ef65200dae725e5f"))
3032 (package
3033 (name "emacs-sx")
3034 (version (git-version version revision commit))
3035 (source
3036 (origin
3037 (method git-fetch)
3038 (uri (git-reference
3039 (url "https://github.com/vermiculus/sx.el")
3040 (commit commit)))
3041 (file-name (git-file-name name version))
3042 (sha256
3043 (base32 "0m90ddwm8j0y6d1ppqhd2gil1107k202blw6mzm5bdambn4nfqkf"))))
3044 (build-system emacs-build-system)
3045 (propagated-inputs
3046 `(("emacs-markdown-mode" ,emacs-markdown-mode)))
3047 (home-page "https://github.com/vermiculus/sx.el")
3048 (synopsis "Emacs StackExchange client")
3049 (description
3050 "Emacs StackExchange client. Ask and answer questions on
3051 Stack Overflow, Super User, and other StackExchange sites.")
3052 (license license:gpl3+))))
3053
3054 (define-public emacs-toc-org
3055 (package
3056 (name "emacs-toc-org")
3057 (version "1.1.0")
3058 (source
3059 (origin
3060 (method git-fetch)
3061 (uri (git-reference
3062 (url "https://github.com/snosov1/toc-org")
3063 (commit version)))
3064 (file-name (git-file-name name version))
3065 (sha256
3066 (base32 "0lk0rji85a1c0c5r9an0fdvsm4n4jyixsknmr8ywha3lfmc2p0l8"))))
3067 (build-system emacs-build-system)
3068 (home-page "https://github.com/snosov1/toc-org")
3069 (synopsis "Table of Contents generator for Emacs Org mode")
3070 (description
3071 "This package generates a table of contents when saving in Org and
3072 Markdown files.")
3073 (license license:gpl2+)))
3074
3075 (define-public emacs-toml-mode
3076 (let ((version "0.1.3")
3077 (revision "0")
3078 (commit "f6c61817b00f9c4a3cab1bae9c309e0fc45cdd06"))
3079 (package
3080 (name "emacs-toml-mode")
3081 (version (git-version version revision commit))
3082 (source
3083 (origin
3084 (method git-fetch)
3085 (uri (git-reference
3086 (url "https://github.com/dryman/toml-mode.el")
3087 (commit commit)))
3088 (file-name (git-file-name name version))
3089 (sha256
3090 (base32 "05b4ksay85c8y5ncax0qsvnmplwsfiw24z16a58gkarjz938hb57"))))
3091 (build-system emacs-build-system)
3092 (home-page "https://github.com/dryman/toml-mode.el")
3093 (synopsis "Emacs major mode for editing TOML files")
3094 (description
3095 ;; XXX: Ideally we'd use @acronym for "TOML", but Guile's Texinfo
3096 ;; parser does not currently support @comma{}, making it impossible
3097 ;; to use commas in the @acronym arguments.
3098 "This package provides a major mode for editing files in @dfn{TOML}
3099 (Tom's Obvious, Minimal Language) data format.")
3100 (license license:gpl3+))))
3101
3102 (define-public emacs-twittering-mode
3103 (package
3104 (name "emacs-twittering-mode")
3105 (version "3.1.0")
3106 (source
3107 (origin
3108 (method url-fetch)
3109 (uri (string-append "mirror://sourceforge/twmode"
3110 "/twittering-mode-" version
3111 "/twittering-mode-" version ".tar.xz"))
3112 (sha256
3113 (base32 "02imis1gxz90lah0b5n37j2hlsaw5igss11d85vpsm5d1bgw8j28"))))
3114 (build-system emacs-build-system)
3115 (home-page "http://twmode.sourceforge.net")
3116 (synopsis "Emacs major mode for Twitter")
3117 (description
3118 "Twittering mode is an Emacs major mode for Twitter.
3119 You can check timelines, tweet, mark posts as favorites and so on with
3120 Emacs.")
3121 (license license:gpl2+)))
3122
3123 (define-public emacs-f
3124 (package
3125 (name "emacs-f")
3126 (version "0.20.0")
3127 (source (origin
3128 (method git-fetch)
3129 (uri (git-reference
3130 (url "https://github.com/rejeep/f.el")
3131 (commit (string-append "v" version))))
3132 (file-name (git-file-name name version))
3133 (sha256
3134 (base32
3135 "1a47xk3yp1rp17fqg7ldl3d3fb888h0fz3sysqfdz1bfdgs8a9bk"))))
3136 (build-system emacs-build-system)
3137 (propagated-inputs
3138 `(("emacs-s" ,emacs-s)
3139 ("emacs-dash" ,emacs-dash)))
3140 (home-page "https://github.com/rejeep/f.el")
3141 (synopsis "Emacs API for working with files and directories")
3142 (description "This package provides an Emacs library for working with
3143 files and directories.")
3144 (license license:gpl3+)))
3145
3146 (define-public emacs-fountain-mode
3147 (package
3148 (name "emacs-fountain-mode")
3149 (version "3.3.0")
3150 (source
3151 (origin
3152 (method git-fetch)
3153 (uri (git-reference
3154 (url "https://github.com/rnkn/fountain-mode")
3155 (commit (string-append "v" version))))
3156 (file-name (git-file-name name version))
3157 (sha256
3158 (base32 "04jrv6i4ah3i8c9hcd9wyaw2vrxr46f50qb9qwna2v7qa5vaway3"))))
3159 (build-system emacs-build-system)
3160 (home-page "https://github.com/rnkn/fountain-mode")
3161 (synopsis "Major mode for screenwriting in Fountain markup")
3162 (description "Fountain Mode is a scriptwriting program for GNU Emacs
3163 using the Fountain plain text markup format.")
3164 (license license:gpl3+)))
3165
3166 (define-public emacs-fringe-helper
3167 (let ((commit "ef4a9c023bae18ec1ddd7265f1f2d6d2e775efdd")
3168 (revision "1"))
3169 (package
3170 (name "emacs-fringe-helper")
3171 (version (git-version "1.0.1" revision commit))
3172 (source
3173 (origin
3174 (method git-fetch)
3175 (uri (git-reference
3176 (url "https://github.com/nschum/fringe-helper.el")
3177 (commit commit)))
3178 (file-name (git-file-name name version))
3179 (sha256
3180 (base32 "0ra9rc53l1gvkqank8apasl3r7wz2yfjrcvmfk3wpxhh24ppxv9d"))))
3181 (build-system emacs-build-system)
3182 (arguments
3183 `(#:tests? #t
3184 #:test-command '("emacs" "--batch"
3185 "-l" "tests.el"
3186 "-f" "ert-run-tests-batch-and-exit")))
3187 (home-page "https://github.com/nschum/fringe-helper.el")
3188 (synopsis "Helper functions for fringe bitmaps")
3189 (description
3190 "This package allows fringe bitmaps to be defined with a visual string
3191 representation.")
3192 (license license:gpl2+))))
3193
3194 (define-public emacs-git-gutter
3195 (package
3196 (name "emacs-git-gutter")
3197 (version "0.90")
3198 (source
3199 (origin
3200 (method git-fetch)
3201 (uri (git-reference
3202 (url "https://github.com/syohex/emacs-git-gutter")
3203 (commit version)))
3204 (file-name (git-file-name name version))
3205 (sha256
3206 (base32 "1abagq0psip7cgsqbfjv72qy60ywsny0ibsfcn74ldj6a9v17mz5"))))
3207 (build-system emacs-build-system)
3208 (home-page "https://github.com/syohex/emacs-git-gutter")
3209 (synopsis "See and manage hunks of text in a version control system")
3210 (description
3211 "This package is an Emacs minor mode for displaying and interacting with
3212 hunks of text managed in a version control system. Added modified and deleted
3213 areas can be indicated with symbols on the edge of the buffer, and commands
3214 can be used to move between and perform actions on these hunks.
3215
3216 Git, Mercurial, Subversion and Bazaar are supported, and many parts of the
3217 display and behaviour is easily customisable.")
3218 (license license:gpl3+)))
3219
3220 (define-public emacs-git-gutter-fringe
3221 (let ((commit "16226caab44174301f1659f7bf8cc67a76153445")
3222 (revision "1"))
3223 (package
3224 (name "emacs-git-gutter-fringe")
3225 (version (git-version "0.23" revision commit))
3226 (source
3227 (origin
3228 (method git-fetch)
3229 (uri (git-reference
3230 (url "https://github.com/syohex/git-gutter-fringe")
3231 (commit commit)))
3232 (file-name (git-file-name name version))
3233 (sha256
3234 (base32 "1y77gjl0yznamdj0f55d418zb75k22izisjg7ikvrfsl2yfqf3pm"))))
3235 (build-system emacs-build-system)
3236 (propagated-inputs
3237 `(("emacs-git-gutter" ,emacs-git-gutter)
3238 ("emacs-fringe-helper" ,emacs-fringe-helper)))
3239 (home-page "https://github.com/syohex/git-gutter-fringe")
3240 (synopsis "See and manage hunks of text in a version control system")
3241 (description
3242 "This package extends @code{git-gutter} to use the fringe area of a
3243 window.")
3244 (license license:gpl3+))))
3245
3246 (define-public emacs-git-link
3247 (package
3248 (name "emacs-git-link")
3249 (version "0.7.5")
3250 (source
3251 (origin
3252 (method git-fetch)
3253 (uri (git-reference
3254 (url "https://github.com/sshaw/git-link")
3255 (commit (string-append "v" version))))
3256 (file-name (git-file-name name version))
3257 (sha256
3258 (base32 "04xa6lp8wkjb6zs096bf4sz124grcjj15xv1h009bmn2j95rggj6"))))
3259 (build-system emacs-build-system)
3260 (arguments
3261 `(#:tests? #t
3262 #:test-command '("make" "test")))
3263 (home-page "https://github.com/sshaw/git-link")
3264 (synopsis "Create links for files and commits in GitHub/GitLab/etc. repos")
3265 (description
3266 "@code{git-link} returns the URL for the current buffer's file location
3267 at the current line number or active region. @code{git-link-commit} returns
3268 the URL for a commit. URLs are added to the kill ring.")
3269 (license license:gpl3+)))
3270
3271 (define-public emacs-apheleia
3272 (package
3273 (name "emacs-apheleia")
3274 (version "1.0")
3275 (source
3276 (origin
3277 (method git-fetch)
3278 (uri (git-reference
3279 (url "https://github.com/raxod502/apheleia")
3280 (commit (string-append "v" version))))
3281 (file-name (git-file-name name version))
3282 (sha256
3283 (base32 "04pls7zahy4jfkikv6fvd9vfpm4glhyanmmkx79hgi9pwdv966rf"))))
3284 (build-system emacs-build-system)
3285 (home-page "https://github.com/raxod502/apheleia")
3286 (synopsis "Reformat buffer stably")
3287 (description
3288 "This package allows for a buffer to be reformatted without moving point,
3289 so that running a formatting tool like @code{Prettier} or @code{Black} upon
3290 saving won't move point back to the beginning of the buffer.")
3291 (license license:gpl3+)))
3292
3293 (define-public emacs-git-timemachine
3294 (package
3295 (name "emacs-git-timemachine")
3296 (version "4.11")
3297 (source
3298 (origin
3299 (method git-fetch)
3300 (uri (git-reference
3301 (url "https://gitlab.com/pidu/git-timemachine.git")
3302 (commit version)))
3303 (file-name (git-file-name name version))
3304 (sha256
3305 (base32
3306 "1pz4l1xnq6s67w5yq9107vm8dg7rqf8n9dmbn90jys97c722g70n"))))
3307 (build-system emacs-build-system)
3308 (propagated-inputs
3309 `(("emacs-transient" ,emacs-transient)))
3310 (home-page "https://gitlab.com/pidu/git-timemachine")
3311 (synopsis "Step through historic versions of Git-controlled files")
3312 (description "This package enables you to step through historic versions
3313 of files under Git version control from within Emacs.")
3314 (license license:gpl3+)))
3315
3316 (define-public emacs-minitest
3317 (let ((commit "1aadb7865c1dc69c201cecee275751ecec33a182")
3318 (revision "1"))
3319 (package
3320 (name "emacs-minitest")
3321 (version (git-version "0.8.0" revision commit))
3322 (source (origin
3323 (method git-fetch)
3324 (uri (git-reference
3325 (url "https://github.com/arthurnn/minitest-emacs")
3326 (commit commit)))
3327 (file-name (git-file-name name commit))
3328 (sha256
3329 (base32
3330 "1l18zqpdzbnqj2qawq8hj7z7pl8hr8z9d8ihy8jaiqma915hmhj1"))))
3331 (build-system emacs-build-system)
3332 (arguments
3333 '(#:include (cons "^snippets\\/minitest-mode\\/" %default-include)
3334 #:exclude (delete "^[^/]*tests?\\.el$" %default-exclude)))
3335 (propagated-inputs
3336 `(("emacs-dash" ,emacs-dash)
3337 ("emacs-f" ,emacs-f)))
3338 (home-page "https://github.com/arthurnn/minitest-emacs")
3339 (synopsis "Emacs minitest mode")
3340 (description
3341 "The minitest mode provides commands to run the tests for the current
3342 file or line, as well as rerunning the previous tests, or all the tests for a
3343 project.
3344
3345 This package also includes relevant snippets for yasnippet.")
3346 (license license:expat))))
3347
3348 (define-public emacs-gdscript-mode
3349 (package
3350 (name "emacs-gdscript-mode")
3351 (version "1.4.0")
3352 (source
3353 (origin
3354 (method git-fetch)
3355 (uri (git-reference
3356 (url "https://github.com/godotengine/emacs-gdscript-mode")
3357 (commit version)))
3358 (file-name (git-file-name name version))
3359 (sha256
3360 (base32 "09q0himrz7a6xgz0jmcl85qc5xhk5fwi6d2vw1n8qaiavm96ksdy"))))
3361 (build-system emacs-build-system)
3362 (home-page "https://github.com/godotengine/emacs-gdscript-mode")
3363 (synopsis "GDScript support and syntax highlighting in Emacs")
3364 (description
3365 "This package adds support for the GDScript programming language from the
3366 Godot game engine in Emacs. It features all the essentials, e.g., syntax
3367 highlighting, code folding, indentation, automatic pairing, auto-completion,
3368 and code formatting.")
3369 (license license:gpl3+)))
3370
3371 (define-public emacs-el-mock
3372 (package
3373 (name "emacs-el-mock")
3374 (version "1.25.1")
3375 (source
3376 (origin
3377 (method git-fetch)
3378 (uri (git-reference
3379 (url "https://github.com/rejeep/el-mock.el")
3380 (commit (string-append "v" version))))
3381 (file-name (git-file-name name version))
3382 (sha256
3383 (base32 "13mv1rhgkwiww2wh5w926jz7idppp492wir1vdl245c5x50dh4f7"))))
3384 (build-system emacs-build-system)
3385 (home-page "https://github.com/rejeep/el-mock.el")
3386 (synopsis "Tiny mock and stub framework in Emacs Lisp")
3387 (description
3388 "Emacs Lisp Mock is a library for mocking and stubbing using readable
3389 syntax. Most commonly Emacs Lisp Mock is used in conjunction with Emacs Lisp
3390 Expectations, but it can be used in other contexts.")
3391 (license license:gpl3+)))
3392
3393 (define-public emacs-espuds
3394 (package
3395 (name "emacs-espuds")
3396 (version "0.3.3")
3397 (source
3398 (origin
3399 (method git-fetch)
3400 (uri (git-reference
3401 (url "https://github.com/ecukes/espuds")
3402 (commit (string-append "v" version))))
3403 (file-name (git-file-name name version))
3404 (sha256
3405 (base32 "16r4j27j9yfdiy841w9q5ykkc6n3wrm7hvfacagb32mydk821ijg"))))
3406 (build-system emacs-build-system)
3407 (propagated-inputs
3408 `(("emacs-s" ,emacs-s)
3409 ("emacs-dash" ,emacs-dash)
3410 ("emacs-f" ,emacs-f)))
3411 (home-page "https://github.com/ecukes/espuds")
3412 (synopsis "Common step definitions for Ecukes")
3413 (description "Espuds is a collection of the most commonly used step
3414 definitions for testing with the Ecukes framework.")
3415 (license license:gpl3+)))
3416
3417 (define-public emacs-spark
3418 (let ((version "20160503") ; no proper tag, use date of commit
3419 (commit "0bf148c3ede3b31d56fd75f347cdd0b0eae60025")
3420 (revision "1"))
3421 (package
3422 (name "emacs-spark")
3423 (version (git-version version revision commit))
3424 (source
3425 (origin
3426 (method git-fetch)
3427 (uri (git-reference
3428 (url "https://github.com/alvinfrancis/spark")
3429 (commit commit)))
3430 (file-name (git-file-name name version))
3431 (sha256
3432 (base32
3433 "1ykqr86j17mi95s08d9fp02d7ych1331b04dcqxzxnmpkhwngyj1"))))
3434 (build-system emacs-build-system)
3435 (home-page "https://github.com/alvinfrancis/spark")
3436 (synopsis "Sparkline generation library for Emacs Lisp")
3437 (description "@code{emacs-spark} is a sparkline generation library for
3438 Emacs Lisp. It generates a sparkline string given a list of numbers. It is a
3439 port of @code{cl-spark} to Emacs Lisp.")
3440 (license license:expat))))
3441
3442 (define-public emacs-es-mode
3443 (package
3444 (name "emacs-es-mode")
3445 (version "4.3.0")
3446 (source
3447 (origin
3448 (method git-fetch)
3449 (uri (git-reference
3450 (url "https://github.com/dakrone/es-mode")
3451 (commit version)))
3452 (file-name (git-file-name name version))
3453 (sha256
3454 (base32 "1qhfnd5anp5qrmravv7ks5ix763xnki2f5jwcyj70qyxwr0l60cg"))))
3455 (build-system emacs-build-system)
3456 (propagated-inputs
3457 ;; The version of org in Emacs 24.5 is not sufficient, and causes tables
3458 ;; to be rendered incorrectly
3459 `(("emacs-dash" ,emacs-dash)
3460 ("emacs-org" ,emacs-org)
3461 ("emacs-spark" ,emacs-spark)))
3462 (home-page "https://github.com/dakrone/es-mode")
3463 (synopsis "Major mode for editing Elasticsearch queries")
3464 (description "@code{es-mode} includes highlighting, completion and
3465 indentation support for Elasticsearch queries. Also supported are
3466 @code{es-mode} blocks in @code{org-mode}, for which the results of queries can
3467 be processed through @code{jq}, or in the case of aggregations, can be
3468 rendered in to a table. In addition, there is an @code{es-command-center}
3469 mode, which displays information about Elasticsearch clusters.")
3470 (license license:gpl3+)))
3471
3472 (define-public emacs-expand-region
3473 (package
3474 (name "emacs-expand-region")
3475 (version "0.11.0")
3476 (source
3477 (origin
3478 (method git-fetch)
3479 (uri (git-reference
3480 (url "https://github.com/magnars/expand-region.el")
3481 (commit version)))
3482 (file-name (git-file-name name version))
3483 (sha256
3484 (base32 "0h40dhc3kn8fq86xnwi5lz7ql8my8737y7wkqr897p15y90swr35"))))
3485 (build-system emacs-build-system)
3486 (home-page "https://github.com/magnars/expand-region.el")
3487 (synopsis "Increase selected region by semantic units")
3488 (description
3489 "Expand region increases the selected region by semantic units. Just
3490 keep pressing the key until it selects what you want. There's also
3491 @code{er/contract-region} if you expand too far.")
3492 (license license:gpl3+)))
3493
3494 (define-public emacs-explain-pause-mode
3495 (let ((commit "2356c8c3639cbeeb9751744dbe737267849b4b51")
3496 (revision "0"))
3497 (package
3498 (name "emacs-explain-pause-mode")
3499 (version (git-version "0.1" revision commit))
3500 (source (origin
3501 (method git-fetch)
3502 (uri (git-reference
3503 (url "https://github.com/lastquestion/explain-pause-mode")
3504 (commit commit)))
3505 (file-name (git-file-name name version))
3506 (sha256
3507 (base32
3508 "0frnfwqal9mrnrz6q4v7vcai26ahaw81894arff1yjw372pfgv7v"))))
3509 (build-system emacs-build-system)
3510 (native-inputs
3511 `(("emacs" ,emacs-buttercup)))
3512 (arguments
3513 '(#:tests? #t
3514 ;; Don't run case-tests as they will fail to create sockets because
3515 ;; the path is too long
3516 #:test-command '("make" "byte-compile" "unit-tests")
3517 ;; Parallel testing will cause the tests to run before
3518 ;; byte-compilation is finished
3519 #:parallel-tests? #f))
3520 (home-page "https://github.com/lastquestion/explain-pause-mode")
3521 (synopsis "Top-like interface to determine why Emacs paused")
3522 (description
3523 "This package monitors Emacs function calls and records their execution
3524 time. This information can be reviewed to determine what is causing the user
3525 interface to pause.")
3526 (license license:gpl3+))))
3527
3528 (define-public emacs-fill-column-indicator
3529 (package
3530 (name "emacs-fill-column-indicator")
3531 (version "1.90")
3532 (source
3533 (origin
3534 (method git-fetch)
3535 (uri (git-reference
3536 (url "https://github.com/alpaker/Fill-Column-Indicator")
3537 (commit version)))
3538 (file-name (git-file-name name version))
3539 (sha256
3540 (base32 "0snjznxdwwfdgccdcvrnk467416r244r2r5qcm2sga8l0ha9gw9z"))))
3541 (build-system emacs-build-system)
3542 (home-page "https://www.emacswiki.org/emacs/FillColumnIndicator")
3543 (synopsis "Graphically indicate the fill column")
3544 (description
3545 "Fill-column-indicator graphically indicates the location of the fill
3546 column by drawing a thin line down the length of the editing window.")
3547 (license license:gpl3+)))
3548
3549 (define-public emacs-grep-a-lot
3550 (package
3551 (name "emacs-grep-a-lot")
3552 (version "1.0.7")
3553 (source
3554 (origin
3555 (method git-fetch)
3556 (uri (git-reference
3557 (url "https://github.com/ZungBang/emacs-grep-a-lot")
3558 (commit "9f9f645b9e308a0d887b66864ff97d0fca1ba4ad")))
3559 (file-name (git-file-name name version))
3560 (sha256
3561 (base32 "1f8262mrlinzgnn4m49hbj1hm3c1mvzza24py4b37sasn49546lw"))))
3562 (build-system emacs-build-system)
3563 (home-page "https://github.com/ZungBang/emacs-grep-a-lot")
3564 (synopsis "Enables multiple grep buffers in Emacs")
3565 (description
3566 "This Emacs package allows managing multiple grep buffers.")
3567 (license license:gpl3+)))
3568
3569 (define-public emacs-fd
3570 (package
3571 (name "emacs-fd")
3572 (version "0.1.0")
3573 (source (origin
3574 (method git-fetch)
3575 (uri (git-reference
3576 (url "https://github.com/yqrashawn/fd-dired")
3577 (commit version)))
3578 (file-name (git-file-name name version))
3579 (sha256
3580 (base32
3581 "1fas0fpvym2lyzybwm44gly9jz6a2fpp72yxnwfbqqjkfgk9910y"))))
3582 (build-system emacs-build-system)
3583 (home-page "https://github.com/yqrashawn/fd-dired")
3584 (synopsis "Dired-mode interface for fd result")
3585 (description "This package provides a dired-mode interface for fd's
3586 result.")
3587 (license license:gpl3+)))
3588
3589 (define-public emacs-rg
3590 (package
3591 (name "emacs-rg")
3592 (version "1.8.1")
3593 (source
3594 (origin
3595 (method git-fetch)
3596 (uri (git-reference
3597 (url "https://github.com/dajva/rg.el")
3598 (commit version)))
3599 (file-name (git-file-name name version))
3600 (sha256
3601 (base32 "0k7x5z7mh9flwih35cqy8chs54rack3nswdcpw5wcpgv6xim227y"))))
3602 (build-system emacs-build-system)
3603 (arguments
3604 '(#:phases
3605 (modify-phases %standard-phases
3606 (add-after 'unpack 'hardcode-rg-path
3607 ;; Hardcode the path to ripgrep.
3608 (lambda _
3609 (let ((file "rg.el"))
3610 (chmod file #o644)
3611 (emacs-substitute-sexps file
3612 ("(defcustom rg-executable" (which "rg")))))))))
3613 (propagated-inputs
3614 `(("emacs-s" ,emacs-s)
3615 ("emacs-wgrep" ,emacs-wgrep)))
3616 (inputs
3617 `(("ripgrep" ,ripgrep)))
3618 (home-page "https://rgel.readthedocs.io/en/latest/")
3619 (synopsis "Search tool based on @code{ripgrep}")
3620 (description
3621 "@code{rg} is an Emacs search package based on the @code{ripgrep} command
3622 line tool. It allows one to interactively search based on the editing context
3623 then refine or modify the search results.")
3624 (license license:gpl3+)))
3625
3626 (define-public emacs-inf-ruby
3627 (package
3628 (name "emacs-inf-ruby")
3629 (version "2.5.2")
3630 (source
3631 (origin
3632 (method git-fetch)
3633 (uri (git-reference
3634 (url "https://github.com/nonsequitur/inf-ruby")
3635 (commit version)))
3636 (file-name (git-file-name name version))
3637 (sha256
3638 (base32 "0a1hhvfbl6mq8rjsi77fg9fh5a91hi5scjrg9rjqc5ffbql67y0v"))))
3639 (build-system emacs-build-system)
3640 (home-page "https://github.com/nonsequitur/inf-ruby")
3641 (synopsis "Provides a REPL buffer connected to a Ruby subprocess in Emacs")
3642 (description
3643 "@code{inf-ruby} provides a Read Eval Print Loop (REPL) buffer, allowing
3644 for easy interaction with a ruby subprocess. Features include support for
3645 detecting specific uses of Ruby, e.g. when using rails, and using a
3646 appropriate console.")
3647 (license license:gpl3+)))
3648
3649 (define-public emacs-znc
3650 (package
3651 (name "emacs-znc")
3652 (version "0.0.2")
3653 (source
3654 (origin
3655 (method url-fetch)
3656 (uri (string-append "https://marmalade-repo.org/packages/znc-"
3657 version ".el"))
3658 (sha256
3659 (base32
3660 "1d8lqvybgyazin5z0g1c4l3rg1vzrrvf0saqs53jr1zcdg0lianh"))))
3661 (build-system emacs-build-system)
3662 (home-page "https://github.com/sshirokov/ZNC.el")
3663 (synopsis "Make ERC and ZNC get along better")
3664 (description
3665 "This is a thin wrapper around @code{erc} that enables one to use the ZNC
3666 IRC bouncer with ERC.")
3667 (license license:expat)))
3668
3669 (define-public emacs-erc-status-sidebar
3670 (let ((commit "ea4189a1dbfe60117359c36e681ad7c389e2968c")
3671 (revision "1"))
3672 (package
3673 (name "emacs-erc-status-sidebar")
3674 (version (git-version "0.1" revision commit))
3675 (source
3676 (origin
3677 (method git-fetch)
3678 (uri (git-reference
3679 (url "https://github.com/drewbarbs/erc-status-sidebar")
3680 (commit commit)))
3681 (file-name (git-file-name name version))
3682 (sha256
3683 (base32 "1hwlhzgx03z8891sblz56zdp8zj0izh72kxykgcnz5rrkyc3vfi3"))))
3684 (build-system emacs-build-system)
3685 (home-page "https://github.com/drewbarbs/erc-status-sidebar")
3686 (synopsis "Hexchat-like activity overview for ERC channels")
3687 (description
3688 "This package provides a Hexchat-like status bar for joined channels in
3689 ERC, an Emacs client for IRC (Internet Relay Chat). It relies on the
3690 @code{erc-track} module, and displays all the same information
3691 @code{erc-track} does in the mode line, but in an alternative format.")
3692 (license license:expat))))
3693
3694 (define-public emacs-shut-up
3695 (package
3696 (name "emacs-shut-up")
3697 (version "0.3.2")
3698 (source
3699 (origin
3700 (method git-fetch)
3701 (uri (git-reference
3702 (url "https://github.com/cask/shut-up")
3703 (commit (string-append "v" version))))
3704 (file-name (git-file-name name version))
3705 (sha256
3706 (base32 "103yvfgkj78i4bnv1fwk76izsa8h4wyj3vwj1vq7xggj607hkxzq"))))
3707 (build-system emacs-build-system)
3708 (home-page "https://github.com/cask/shut-up")
3709 (synopsis "Silence Emacs")
3710 (description "This package silences most output of Emacs when running an
3711 Emacs shell script.")
3712 (license license:expat)))
3713
3714 (define-public emacs-undercover
3715 (package
3716 (name "emacs-undercover")
3717 (version "0.6.1")
3718 (source
3719 (origin
3720 (method git-fetch)
3721 (uri (git-reference
3722 (url "https://github.com/sviridov/undercover.el")
3723 (commit version)))
3724 (file-name (git-file-name name version))
3725 (sha256
3726 (base32 "080bmfwyfi8663y8x594770hqz7mff7zvj2v03qdfwbhdr9w9y29"))))
3727 (build-system emacs-build-system)
3728 (propagated-inputs
3729 `(("emacs-dash" ,emacs-dash)
3730 ("emacs-shut-up" ,emacs-shut-up)))
3731 (home-page "https://github.com/sviridov/undercover.el")
3732 (synopsis "Test coverage library for Emacs Lisp")
3733 (description
3734 "Undercover is a test coverage library for software written in Emacs
3735 Lisp.")
3736 (license license:expat)))
3737
3738 (define-public emacs-paren-face
3739 (package
3740 (name "emacs-paren-face")
3741 (version "1.0.6")
3742 (source
3743 (origin
3744 (method git-fetch)
3745 (uri (git-reference
3746 (url "https://github.com/tarsius/paren-face")
3747 (commit version)))
3748 (file-name (git-file-name name version))
3749 (sha256
3750 (base32 "17bdcxah216z928387yx6z9lmp4jsi461n8fwiqaibn2qy5fagas"))))
3751 (build-system emacs-build-system)
3752 (home-page "https://github.com/tarsius/paren-face")
3753 (synopsis "Face for parentheses in Lisp modes")
3754 (description
3755 "This library defines a face named @code{parenthesis} used just for
3756 parentheses. The intended purpose of this face is to make parentheses less
3757 visible in Lisp code by dimming them. Lispers probably don't need to be
3758 constantly made aware of the existence of the parentheses. Dimming them might
3759 be even more useful for people new to Lisp who have not yet learned to
3760 subconsciously blend out the parentheses.")
3761 (license license:gpl3+)))
3762
3763 (define-public emacs-page-break-lines
3764 (package
3765 (name "emacs-page-break-lines")
3766 (version "0.11")
3767 (source
3768 (origin
3769 (method git-fetch)
3770 (uri (git-reference
3771 (url "https://github.com/purcell/page-break-lines")
3772 (commit version)))
3773 (file-name (git-file-name name version))
3774 (sha256
3775 (base32 "1wp974716ih2cz9kdmdz7xwjy1qnnfzdzlfr9kchknagw8d9nn12"))))
3776 (build-system emacs-build-system)
3777 (home-page "https://github.com/purcell/page-break-lines")
3778 (synopsis "Display page breaks as tidy horizontal lines")
3779 (description
3780 "This library provides a global mode which displays form feed characters
3781 as horizontal rules.")
3782 (license license:gpl3+)))
3783
3784 (define-public emacs-simple-httpd
3785 (package
3786 (name "emacs-simple-httpd")
3787 (version "1.5.1")
3788 (source
3789 (origin
3790 (method git-fetch)
3791 (uri (git-reference
3792 (url "https://github.com/skeeto/emacs-web-server")
3793 (commit version)))
3794 (file-name (git-file-name name version))
3795 (sha256
3796 (base32 "0dpn92rg813c4pq7a1vzj3znyxzp2lmvxqz6pzcqi0l2xn5r3wvb"))))
3797 (build-system emacs-build-system)
3798 (home-page "https://github.com/skeeto/emacs-web-server")
3799 (synopsis "HTTP server in pure Emacs Lisp")
3800 (description
3801 "This package provides a simple HTTP server written in Emacs Lisp to
3802 serve files and directory listings.")
3803 (license license:unlicense)))
3804
3805 (define-public emacs-skewer-mode
3806 (package
3807 (name "emacs-skewer-mode")
3808 (version "1.8.0")
3809 (source
3810 (origin
3811 (method git-fetch)
3812 (uri (git-reference
3813 (url "https://github.com/skeeto/skewer-mode")
3814 (commit version)))
3815 (file-name (git-file-name name version))
3816 (sha256
3817 (base32 "1ha7jl7776pk1bki5zj2q0jy66450mn8xr3aqjc0m9kj3gc9qxgw"))))
3818 (build-system emacs-build-system)
3819 (propagated-inputs
3820 `(("emacs-simple-httpd" ,emacs-simple-httpd)
3821 ("emacs-js2-mode" ,emacs-js2-mode)))
3822 (arguments '(#:include '("\\.el$" "\\.js$" "\\.html$")))
3823 (home-page "https://github.com/skeeto/skewer-mode")
3824 (synopsis "Live web development in Emacs")
3825 (description
3826 "Skewer-mode provides live interaction with JavaScript, CSS, and HTML in
3827 a web browser. Expressions are sent on-the-fly from an editing buffer to be
3828 evaluated in the browser, just like Emacs does with an inferior Lisp process
3829 in Lisp modes.")
3830 (license license:unlicense)))
3831
3832 (define-public emacs-litable
3833 (let ((commit "b0278f3f8dcff424bfbdfdefb545b1fbff33206f"))
3834 (package
3835 (name "emacs-litable")
3836 (version (git-version "0.1" "0" commit))
3837 (source (origin
3838 (method git-fetch)
3839 (uri (git-reference
3840 (url "https://github.com/Fuco1/litable")
3841 (commit commit)))
3842 (file-name (git-file-name name version))
3843 (sha256
3844 (base32
3845 "0bny40hv9a024n01clxns351cs4j4ifhgcc7m4743xncqf612p7g"))))
3846 (build-system emacs-build-system)
3847 (propagated-inputs
3848 `(("emacs-dash" ,emacs-dash)))
3849 (home-page "https://github.com/Fuco1/litable/")
3850 (synopsis "Dynamic evaluation replacement with Emacs")
3851 (description "This package provides dynamic evaluation in Emacs.")
3852 (license license:gpl3+))))
3853
3854 (define-public emacs-literate-calc-mode
3855 (let ((commit "e855bd718fa7d0d70b8f43264e10664369dd3a37")
3856 (revision "0"))
3857 (package
3858 (name "emacs-literate-calc-mode")
3859 (version (git-version "0.1" revision commit))
3860 (source
3861 (origin
3862 (method git-fetch)
3863 (uri (git-reference
3864 (url "https://github.com/sulami/literate-calc-mode.el")
3865 (commit commit)))
3866 (file-name (git-file-name name version))
3867 (sha256
3868 (base32 "0mk4cig8g8ibz97mvyan79fkypyanh7r0h7h20ibafq09nb0mw01"))))
3869 (build-system emacs-build-system)
3870 (propagated-inputs
3871 `(("emacs-s" ,emacs-s)))
3872 (home-page "https://github.com/sulami/literate-calc-mode.el")
3873 (synopsis "Literate programming for Emacs Calc")
3874 (description
3875 "This library provides literate programming for Calc. There is both
3876 a major and a minor mode. The major mode does some basic syntax highlighting,
3877 while the minor mode only evaluates all Calc statements while typing. In
3878 particular, the minor mode works quite well with Org or Markdown modes, or
3879 other markup language major modes.")
3880 (license license:gpl3+))))
3881
3882 (define-public emacs-standard-dirs
3883 (package
3884 (name "emacs-standard-dirs")
3885 (version "2.0.0")
3886 (home-page "https://github.com/lafrenierejm/standard-dirs.el")
3887 (source
3888 (origin
3889 (method git-fetch)
3890 (uri (git-reference
3891 (url home-page)
3892 (commit version)))
3893 (file-name (git-file-name name version))
3894 (sha256
3895 (base32 "0r814qcrhvx4qlx4sdzwdmrhiryslqclx0bnpp0qcrbx6g8qfl25"))))
3896 (build-system emacs-build-system)
3897 (propagated-inputs
3898 `(("emacs-f" ,emacs-f)
3899 ("emacs-s" ,emacs-s)))
3900 (synopsis "Platform-specific paths for config, cache, and other data")
3901 (description
3902 "This package provides platform-specific paths for reading and writing
3903 configuration, cache, and other data.")
3904 (license license:gpl3+)))
3905
3906 (define-public emacs-string-inflection
3907 (package
3908 (name "emacs-string-inflection")
3909 (version "1.0.6")
3910 (source (origin
3911 (method git-fetch)
3912 (uri (git-reference
3913 (url "https://github.com/akicho8/string-inflection")
3914 (commit "a150e7bdda60b7824d3a936750ce23f73b0e4edd")))
3915 (file-name (git-file-name name version))
3916 (sha256
3917 (base32
3918 "1k0sm552iawi49v4zis6dbb81d1rzgky9v0dpv7nj31gnb7bmy7k"))))
3919 (build-system emacs-build-system)
3920 (native-inputs
3921 `(("ert-runner" ,emacs-ert-runner)))
3922 (arguments
3923 `(#:tests? #t
3924 #:test-command '("ert-runner")))
3925 (home-page "https://github.com/akicho8/string-inflection")
3926 (synopsis "Convert symbol names between different naming conventions")
3927 (description
3928 "This Emacs package provides convenient methods for manipulating the
3929 naming style of a symbol. It supports different naming conventions such as:
3930
3931 @enumerate
3932 @item camel case
3933 @item Pascal case
3934 @item all upper case
3935 @item lower case separated by underscore
3936 @item etc...
3937 @end enumerate\n")
3938 (license license:gpl2+)))
3939
3940 (define-public emacs-stripe-buffer
3941 (package
3942 (name "emacs-stripe-buffer")
3943 (version "0.2.5")
3944 (source
3945 (origin
3946 (method git-fetch)
3947 (uri (git-reference
3948 (url "https://github.com/sabof/stripe-buffer")
3949 (commit version)))
3950 (file-name (git-file-name name version))
3951 (sha256
3952 (base32 "035ym1c1vzg6hjsnd258z4dkrfc11lj4c0y4gpgybhk54dq3w9dk"))))
3953 (build-system emacs-build-system)
3954 (home-page "https://github.com/sabof/stripe-buffer/")
3955 (synopsis "Add stripes to list buffers")
3956 (description
3957 "This Emacs package adds faces to add stripes to list buffers and org
3958 tables.")
3959 (license license:gpl2+)))
3960
3961 (define-public emacs-org-beautify-theme
3962 ;; Latest release (0.4) is not tagged, use commit hash.
3963 (let ((commit "df6a1114fda313e1689363e196c8284fbe2a2738")
3964 (revision "0"))
3965 (package
3966 (name "emacs-org-beautify-theme")
3967 (version "0.4")
3968 (source
3969 (origin
3970 (method git-fetch)
3971 (uri (git-reference
3972 (url "https://github.com/jonnay/org-beautify-theme")
3973 (commit commit)))
3974 (file-name (git-file-name name version))
3975 (sha256
3976 (base32 "1lkz7736swimad12khwbbqc4gxjydgr1k45p4mx03s25pv1w920y"))))
3977 (build-system emacs-build-system)
3978 (home-page "https://github.com/jonnay/org-beautify-theme")
3979 (synopsis "Theme to make Org mode look more beautiful")
3980 (description
3981 "The theme adds padding between headings, increases the size of titles,
3982 strike through completed TODO headings, changes Org blocks, changes Org check
3983 boxes, and more.")
3984 (license license:gpl3+))))
3985
3986 (define-public emacs-org-rich-yank
3987 (package
3988 (name "emacs-org-rich-yank")
3989 (version "0.2.1")
3990 (source
3991 (origin
3992 (method git-fetch)
3993 (uri (git-reference
3994 (url "https://github.com/unhammer/org-rich-yank")
3995 (commit (string-append "v" version))))
3996 (file-name (git-file-name name version))
3997 (sha256
3998 (base32 "0gxb0fnh5gxjmld0hnk5hli0cvdd8gjd27m30bk2b80kwldxlq1z"))))
3999 (build-system emacs-build-system)
4000 (home-page "https://github.com/unhammer/org-rich-yank")
4001 (synopsis "Automatically surround source code pasted into Org with
4002 @code{#+BEGIN_SRC} blocks")
4003 (description
4004 "This package provides a utility function for Org buffers that makes a
4005 @code{_SRC} block with the appropriate language annotation for code that has
4006 been copied from an Emacs major mode.")
4007 (license license:gpl2+)))
4008
4009 (define-public emacs-ob-erlang
4010 (let ((revision "1")
4011 (commit "f1a8c665b8f7d0ab32267a9961de8eed872e6333"))
4012 (package
4013 (name "emacs-ob-erlang")
4014 (version (git-version "20180827" revision commit))
4015 (source (origin
4016 (method git-fetch)
4017 (uri (git-reference
4018 (url "https://github.com/xfwduke/ob-erlang")
4019 (commit commit)))
4020 (file-name (git-file-name name version))
4021 (sha256
4022 (base32
4023 "0b5zajqiy6955yvlqwy92prrqy89lqchsv4ss2ylws3p4s14rhij"))))
4024 (build-system emacs-build-system)
4025 (home-page "https://github.com/xfwduke/ob-erlang/")
4026 (synopsis "Org-babel support for Erlang")
4027 (description "This package adds support for working with Erlang code
4028 blocks with @code{org-babel} in @code{org-mode}.")
4029 (license license:gpl3+))))
4030
4031 (define-public emacs-ob-restclient
4032 (let ((commit "f7449b2068498fe9d8ab9589e0a638148861533f"))
4033 (package
4034 (name "emacs-ob-restclient")
4035 (version (git-version "0.02" "2" commit))
4036 (source
4037 (origin
4038 (method git-fetch)
4039 (uri (git-reference
4040 (url "https://github.com/alf/ob-restclient.el")
4041 (commit commit)))
4042 (file-name (git-file-name name version))
4043 (sha256
4044 (base32 "0s3931w9ab3yfml2pmq71rw21yf6hpg7m3vihxyy3vs6zli1cvmq"))))
4045 (propagated-inputs
4046 `(("emacs-restclient" ,emacs-restclient)))
4047 (build-system emacs-build-system)
4048 (home-page "https://github.com/alf/ob-restclient.el")
4049 (synopsis "Org-babel functionality for @code{restclient-mode}")
4050 (description
4051 "This package integrates @code{restclient-mode} with Org.")
4052 (license license:gpl3+))))
4053
4054 (define-public emacs-org-now
4055 (let ((commit "8f6b277a73f1c66e58ccb4b7f40d406851befc91"))
4056 (package
4057 (name "emacs-org-now")
4058 (version (git-version "0.1-pre" "1" commit))
4059 (source
4060 (origin
4061 (method git-fetch)
4062 (uri (git-reference
4063 (url "https://github.com/alphapapa/org-now")
4064 (commit commit)))
4065 (file-name (git-file-name name version))
4066 (sha256
4067 (base32 "117zzkryznznk6h4i1jqzdn888nl019xrgxm2gza0lndx8dxsg2c"))))
4068 (propagated-inputs
4069 `(("emacs-dash" ,emacs-dash)))
4070 (build-system emacs-build-system)
4071 (home-page "https://github.com/alphapapa/org-now")
4072 (synopsis "Show current Org tasks in a sidebar")
4073 (description
4074 "This package provides commands to show Org headings in a sidebar
4075 window while working on them. After defining one heading as the \"now\"
4076 heading, other headings can be refiled to it with one command, and back to
4077 their original location with another.")
4078 (license license:gpl3+))))
4079
4080 (define-public emacs-rich-minority
4081 (package
4082 (name "emacs-rich-minority")
4083 (version "1.0.3")
4084 (source
4085 (origin
4086 (method git-fetch)
4087 (uri (git-reference
4088 (url "https://github.com/Malabarba/rich-minority")
4089 (commit version)))
4090 (file-name (git-file-name name version))
4091 (sha256
4092 (base32
4093 "1kn7c9qr9ykj68iqffzzmjsr6aazwac8cxb7j960sjb282rq0yyj"))))
4094 (build-system emacs-build-system)
4095 (home-page "https://github.com/Malabarba/rich-minority")
4096 (synopsis "Clean-up and beautify the list of minor modes")
4097 (description
4098 "This Emacs package hides and/or highlights minor modes in the
4099 mode-line.")
4100 (license license:gpl2+)))
4101
4102 (define-public emacs-robe
4103 (package
4104 (name "emacs-robe")
4105 (version "0.8.2")
4106 (source
4107 (origin
4108 (method git-fetch)
4109 (uri (git-reference
4110 (url "https://github.com/dgutov/robe")
4111 (commit version)))
4112 (file-name (git-file-name name version))
4113 (sha256
4114 (base32 "0qw18wi54yg971n4wnjqkd8lqj5lbs9ra8bvmngif2bzhqlfdsbn"))))
4115 (build-system emacs-build-system)
4116 (arguments
4117 '(#:include (cons "^lib\\/" %default-include)))
4118 (propagated-inputs
4119 `(("emacs-inf-ruby" ,emacs-inf-ruby)))
4120 (home-page "https://github.com/dgutov/robe")
4121 (synopsis "Ruby code assistance tool for Emacs")
4122 (description
4123 "Robe can provide information on loaded classes and modules in Ruby code,
4124 as well as where methods are defined. This allows the user to jump to method
4125 definitions, modules and classes, display method documentation and provide
4126 method and constant name completion.")
4127 (license license:gpl3+)))
4128
4129 (define-public emacs-robot-mode
4130 (let ((commit "32846e7e80ae3471b7c07f9709dcaa4f9b9ed4a0")
4131 (revision "1"))
4132 (package
4133 (name "emacs-robot-mode")
4134 (version (git-version "0.0.0" revision commit))
4135 (source (origin
4136 (method git-fetch)
4137 (uri (git-reference
4138 ;; A better maintained fork of robot-mode.
4139 (url "https://github.com/jvalkeejarvi/robot-mode")
4140 (commit commit)))
4141 (file-name (git-file-name name version))
4142 (sha256
4143 (base32
4144 "1i8wf7m0gml8zvvmlgppjzv78b432686p1qdbzgclc7qfcvzag0d"))))
4145 (build-system emacs-build-system)
4146 (propagated-inputs `(("emacs-s" ,emacs-s)))
4147 (home-page "https://github.com/jvalkeejarvi/robot-mode")
4148 (synopsis "Emacs mode for Robot Framework")
4149 (description "This major mode facilitates editing Robot Framework source
4150 files with features such as syntax highlighting, comments, finding keywords,
4151 completing keywords and smart indentation.")
4152 (license license:gpl3+))))
4153
4154 (define-public emacs-rspec
4155 (let ((commit "66ea7cc9699d6edc6115daa024818adbd85efc20")
4156 (revision "1"))
4157 (package
4158 (name "emacs-rspec")
4159 (version (git-version "1.11" revision commit))
4160 (source
4161 (origin
4162 (method git-fetch)
4163 (uri (git-reference
4164 (url "https://github.com/pezra/rspec-mode")
4165 (commit commit)))
4166 (file-name (git-file-name name version))
4167 (sha256
4168 (base32 "0b11s8r0pi7ah54km4yg4fqff8wkk409d25qnlwm1l94pdwjd1c8"))))
4169 (build-system emacs-build-system)
4170 (arguments
4171 `(#:include (cons "^snippets\\/rspec-mode\\/" %default-include)
4172 #:tests? #t
4173 #:test-command '("make" "test")))
4174 (home-page "https://github.com/pezra/rspec-mode")
4175 (synopsis "Provides a rspec mode for working with RSpec")
4176 (description
4177 "The Emacs RSpec mode provides keybindings for Ruby source files, e.g. to
4178 verify the spec associated with the current buffer, or entire project, as well
4179 as moving between the spec files, and corresponding code files.
4180
4181 Also included are keybindings for spec files and Dired buffers, as well as
4182 snippets for yasnippet.")
4183 (license license:gpl3+))))
4184
4185 (define-public emacs-smart-mode-line
4186 (package
4187 (name "emacs-smart-mode-line")
4188 (version "2.13")
4189 (source
4190 (origin
4191 (method git-fetch)
4192 (uri (git-reference
4193 (url "https://github.com/Malabarba/smart-mode-line")
4194 (commit version)))
4195 (file-name (git-file-name name version))
4196 (sha256
4197 (base32 "164b697xm1rwcggv37dymhf3npbyh2bs59z8b6m5x35lb4c3lf8b"))))
4198 (build-system emacs-build-system)
4199 (propagated-inputs
4200 `(("emacs-rich-minority" ,emacs-rich-minority)))
4201 (home-page "https://github.com/Malabarba/smart-mode-line")
4202 (synopsis "Color-coded smart mode-line")
4203 (description
4204 "Smart Mode Line is a mode-line theme for Emacs. It aims to be easy to
4205 read from small to large monitors by using colors, a prefix feature, and smart
4206 truncation.")
4207 (license license:gpl2+)))
4208
4209 (define-public emacs-sqlite
4210 ;; XXX: There is no tagged commit.
4211 (let ((commit "dad42b8bbca4994be1871343dd18fd6528ee5797")
4212 (revision "0"))
4213 (package
4214 (name "emacs-sqlite")
4215 (build-system emacs-build-system)
4216 (version (git-version "1.0" revision commit))
4217 (source
4218 (origin
4219 (method git-fetch)
4220 (uri (git-reference
4221 (url "https://gitlab.com/cnngimenez/sqlite.el")
4222 (commit commit)))
4223 (file-name (git-file-name name version))
4224 (sha256
4225 (base32 "06ln4vijl8kii3nzc5cscgsadx1fqgxksflijd3ain83bn8g4wrd"))))
4226 (home-page "https://gitlab.com/cnngimenez/sqlite.el")
4227 (synopsis "SQLite interface for Emacs Lisp")
4228 (description "Emacs SQLite is a simple SQLite interface for connecting
4229 and retrieving information using the SQLite program through Elisp programming.
4230 It is not intended as a user interface.")
4231 (license license:gpl3+))))
4232
4233 (define-public emacs-sr-speedbar
4234 (let ((commit "77a83fb50f763a465c021eca7343243f465b4a47")
4235 (revision "0"))
4236 (package
4237 (name "emacs-sr-speedbar")
4238 (version (git-version "20161025" revision commit))
4239 (source
4240 (origin
4241 (method git-fetch)
4242 (uri (git-reference
4243 (url "https://github.com/emacsorphanage/sr-speedbar")
4244 (commit commit)))
4245 (file-name (git-file-name name version))
4246 (sha256
4247 (base32
4248 "0sd12555hk7z721y00kv3crdybvcn1i08wmd148z5imayzibj153"))))
4249 (build-system emacs-build-system)
4250 (home-page "https://www.emacswiki.org/emacs/SrSpeedbar")
4251 (synopsis "Same frame Emacs @code{speedbar}")
4252 (description
4253 "This Emacs package allows you to show @code{M-x speedbar} in the
4254 same frame (in an extra window). You can customize the initial width of
4255 the speedbar window.")
4256 (license license:gpl3+))))
4257
4258 (define-public emacs-shell-switcher
4259 (package
4260 (name "emacs-shell-switcher")
4261 (version "1.0.1")
4262 (source
4263 (origin
4264 (method git-fetch)
4265 (uri (git-reference
4266 (url "https://github.com/DamienCassou/shell-switcher")
4267 (commit (string-append "v" version))))
4268 (file-name (git-file-name name version))
4269 (sha256
4270 (base32 "0ia7sdip4hl27avckv3qpqgm3k4ynvp3xxq1cy53bqfzzx0gcria"))))
4271 (build-system emacs-build-system)
4272 (home-page "https://github.com/DamienCassou/shell-switcher")
4273 (synopsis "Provide fast switching between shell buffers")
4274 (description
4275 "This package provides commands to quickly switch between shell buffers.")
4276 (license license:gpl3+)))
4277
4278 (define-public emacs-shx
4279 (package
4280 (name "emacs-shx")
4281 (version "1.5.0")
4282 (source (origin
4283 (method git-fetch)
4284 (uri (git-reference
4285 (url "https://github.com/riscy/shx-for-emacs")
4286 (commit (string-append "v" version))))
4287 (file-name (git-file-name name version))
4288 (sha256
4289 (base32 "1cb5w6p9gnfxgh8qp7yj2f5ibpk1b4b5af3ynldaaj6yfpa8hqzn"))))
4290 (build-system emacs-build-system)
4291 (arguments
4292 `(#:tests? #t
4293 #:test-command
4294 '("emacs" "--batch" "--quiet"
4295 "--script" "test/script.el")))
4296 (home-page "https://github.com/riscy/shx-for-emacs")
4297 (synopsis "Extras for the comint-mode shell")
4298 (description
4299 "This package extends @code{comint-mode}: it parses markup in the output
4300 stream, enabling plots and graphics to be embedded, and adds command-line
4301 functions which plug into Emacs (e.g. use @code{:e <filename>} to edit a
4302 file).")
4303 (license license:gpl3+)))
4304
4305 (define-public emacs-names
4306 (let ((commit "d8baba5360e5253938a25d3e005455b6d2d86971")
4307 (version "20151201.0")
4308 (revision "8"))
4309 (package
4310 (name "emacs-names")
4311 (version (git-version version revision commit))
4312 (source
4313 (origin
4314 (method git-fetch)
4315 (uri (git-reference
4316 (url "https://github.com/Malabarba/names")
4317 (commit commit)))
4318 (file-name (git-file-name name version))
4319 (sha256
4320 (base32
4321 "11wyha2q8y7bzqq3jrzix8n97ywvsibvddrahqcps1a1yqk4hzfz"))))
4322 (build-system emacs-build-system)
4323 (home-page "https://github.com/Malabarba/names/")
4324 (synopsis "Namespace implementation for Emacs Lisp")
4325 (description
4326 "This package provides a macro that writes your namespaces for you.")
4327 (license license:gpl3+))))
4328
4329 (define-public emacs-evil-leader
4330 (package
4331 (name "emacs-evil-leader")
4332 (version "0.4.3")
4333 (source
4334 (origin
4335 (method git-fetch)
4336 (uri
4337 (git-reference
4338 (url "https://github.com/cofi/evil-leader")
4339 (commit version)))
4340 (file-name (git-file-name name version))
4341 (sha256
4342 (base32 "1k2zinchs0jjllp8zkpggckyy63dkyi5yig3p46vh4w45jdzysk5"))))
4343 (inputs
4344 `(("emacs-evil" ,emacs-evil)))
4345 (build-system emacs-build-system)
4346 (home-page "https://github.com/cofi/evil-leader")
4347 (synopsis "Implement <leader> feature from Vim")
4348 (description
4349 "Evil Leader provides the @code{<leader>} feature from Vim that provides
4350 an easy way to bind keys under a configurable prefix key.")
4351 (license license:gpl3+)))
4352
4353 (define-public emacs-evil-textobj-syntax
4354 (let ((commit "2d9ba8c75c754b409aea7469f46a5cfa52a872f3")
4355 (version "0")
4356 (revision "1"))
4357 (package
4358 (name "emacs-evil-textobj-syntax")
4359 (version (git-version version revision commit))
4360 (source
4361 (origin
4362 (method git-fetch)
4363 (uri (git-reference
4364 (url "https://github.com/laishulu/evil-textobj-syntax/")
4365 (commit commit)))
4366 (file-name (git-file-name name version))
4367 (sha256
4368 (base32
4369 "031p5i3274dazp7rz6m5y38shfgszm1clmkcf58qfqlvy978ammc"))))
4370 (build-system emacs-build-system)
4371 (propagated-inputs `(("emacs-evil" ,emacs-evil)
4372 ("emacs-names" ,emacs-names)))
4373 (home-page "https://github.com/laishulu/evil-textobj-syntax/")
4374 (synopsis "Text objects based on syntax highlighting")
4375 (description
4376 "This package provides text objects for @code{evil-mode} with
4377 boundaries defined by syntax highlighting.")
4378 (license license:gpl3+))))
4379
4380 (define-public emacs-flycheck-flow
4381 (let ((commit "9e8e52cfc98af6a23fd906f9cb5d5d470d8cf82d")
4382 (version "1.1")
4383 (revision "1"))
4384 (package
4385 (name "emacs-flycheck-flow")
4386 (version (git-version version revision commit))
4387 (source
4388 (origin
4389 (method git-fetch)
4390 (uri (git-reference
4391 (url "https://github.com/lbolla/emacs-flycheck-flow")
4392 (commit commit)))
4393 (file-name (git-file-name name version))
4394 (sha256
4395 (base32
4396 "14qldlisbmxzammr500gyha2hiv2xgyzfc6mysqii06kbcqn1ik1"))))
4397 (build-system emacs-build-system)
4398 (propagated-inputs
4399 `(("emacs-flycheck" ,emacs-flycheck)))
4400 (home-page "https://github.com/lbolla/emacs-flycheck-flow")
4401 (synopsis "Flow support for @code{flycheck-mode}")
4402 (description
4403 "This package allows @code{flycheck-mode} to provide syntax-checking
4404 for Flow files.")
4405 (license license:gpl3+))))
4406
4407 (define-public emacs-flycheck-grammalecte
4408 (package
4409 (name "emacs-flycheck-grammalecte")
4410 (version "1.2")
4411 (source
4412 (origin
4413 (method url-fetch)
4414 (uri (string-append "https://git.deparis.io/"
4415 "flycheck-grammalecte/snapshot/"
4416 "flycheck-grammalecte-" version ".tar.xz"))
4417 (sha256
4418 (base32 "1mzmzyik843r4j0ibpwqrxmb0g4xmirrf3lxr010bddkmmxf749a"))))
4419 (build-system emacs-build-system)
4420 (arguments
4421 `(#:include '("\\.(el|py)$")
4422 #:exclude '("^test-profile.el$")
4423 #:emacs ,emacs ;need libxml support
4424 #:phases
4425 (modify-phases %standard-phases
4426 (add-after 'unpack 'specify-python-location
4427 ;; Hard-code python3 executable location in the library.
4428 (lambda* (#:key inputs #:allow-other-keys)
4429 (let ((python3 (string-append (assoc-ref inputs "python")
4430 "/bin/python3")))
4431 (substitute* "flycheck-grammalecte.el"
4432 (("\"python3") (string-append "\"" python3)))
4433 (substitute* '("conjugueur.py" "flycheck-grammalecte.py")
4434 (("/usr/bin/env python3?") python3))
4435 #t)))
4436 (add-before 'build 'link-to-grammalecte
4437 ;; XXX: The Python part of the package requires grammalecte, but
4438 ;; the library is not specified in PYTHONPATH, since we're not
4439 ;; using Python build system. As a workaround, we symlink
4440 ;; grammalecte libraries here.
4441 (lambda* (#:key inputs outputs #:allow-other-keys)
4442 (let* ((out (assoc-ref outputs "out"))
4443 (grammalecte (assoc-ref inputs "grammalecte"))
4444 (version ,(version-major+minor (package-version python))))
4445 (with-directory-excursion
4446 (string-append out "/share/emacs/site-lisp")
4447 (symlink (string-append grammalecte "/lib/"
4448 "python" version "/site-packages/"
4449 "grammalecte")
4450 "grammalecte"))
4451 #t))))))
4452 (inputs
4453 `(("grammalecte" ,grammalecte)
4454 ("python" ,python)))
4455 (propagated-inputs
4456 `(("emacs-flycheck" ,emacs-flycheck)))
4457 (home-page "https://git.deparis.io/flycheck-grammalecte/")
4458 (synopsis "Integrate Grammalecte with Flycheck")
4459 (description
4460 "Integrate the French grammar and typography checker Grammalecte with
4461 Flycheck to automatically look for mistakes in your writings. It also
4462 provides an easy way to find synonyms and antonyms for a given word (to avoid
4463 repetitions for example).")
4464 (license license:gpl3+)))
4465
4466 (define-public emacs-flycheck-guile
4467 (package
4468 (name "emacs-flycheck-guile")
4469 (version "0.2")
4470 (source
4471 (origin
4472 (method git-fetch)
4473 (uri
4474 (git-reference
4475 (url "https://github.com/flatwhatson/flycheck-guile")
4476 (commit version)))
4477 (file-name (git-file-name name version))
4478 (sha256
4479 (base32 "0cs5r0ik6a3bl1k3imjl0r8y1i69kx9x9m9cgxj470qk34brwyj5"))))
4480 (propagated-inputs
4481 `(("emacs-flycheck" ,emacs-flycheck)
4482 ("emacs-geiser" ,emacs-geiser)))
4483 (build-system emacs-build-system)
4484 (home-page "https://github.com/flatwhatson/flycheck-guile")
4485 (synopsis "GNU Guile support for Flycheck")
4486 (description
4487 "This package provides a Flycheck checker for GNU Guile using @code{guild
4488 compile}.")
4489 (license license:gpl3+)))
4490
4491 (define-public emacs-flycheck-ledger
4492 (package
4493 (name "emacs-flycheck-ledger")
4494 (version "0.5")
4495 (source
4496 (origin
4497 (method git-fetch)
4498 (uri (git-reference
4499 (url "https://github.com/purcell/flycheck-ledger.git")
4500 (commit version)))
4501 (file-name (git-file-name name version))
4502 (sha256
4503 (base32 "1djrj3is0dzrl2703bw7bclf33dp4xqmy144q7xj5pvpb9v3kf50"))))
4504 (inputs `(("ledger" ,ledger)))
4505 (arguments
4506 `(#:phases
4507 (modify-phases %standard-phases
4508 (add-after 'unpack 'configure
4509 (lambda* (#:key inputs outputs #:allow-other-keys)
4510 (let ((ledger (assoc-ref inputs "ledger")))
4511 ;; Specify the absolute executable location of ledger.
4512 (substitute* "flycheck-ledger.el"
4513 (("\"ledger\"") (string-append "\"" ledger "\""))))
4514 #t)))))
4515 (propagated-inputs
4516 `(("emacs-flycheck" ,emacs-flycheck)))
4517 (build-system emacs-build-system)
4518 (home-page "https://github.com/purcell/flycheck-ledger")
4519 (synopsis "Ledger support for Flycheck")
4520 (description
4521 "This Flycheck checker uses the output of @code{ledger balance} on the
4522 current file to find errors such as unbalanced transactions and syntax
4523 errors.")
4524 (license license:gpl3+)))
4525
4526 (define-public emacs-flycheck-rust
4527 (package
4528 (name "emacs-flycheck-rust")
4529 (version "1.1")
4530 (source
4531 (origin
4532 (method git-fetch)
4533 (uri
4534 (git-reference
4535 (url "https://github.com/flycheck/flycheck-rust")
4536 (commit version)))
4537 (file-name (git-file-name name version))
4538 (sha256
4539 (base32 "1fh6j5w2387nh2fwwjphkhq17cgj5m2q5k0fhidvgc2w65lzbr1r"))))
4540 (propagated-inputs
4541 `(("emacs-dash" ,emacs-dash)
4542 ("emacs-flycheck" ,emacs-flycheck)
4543 ("emacs-let-alist" ,emacs-let-alist)))
4544 (build-system emacs-build-system)
4545 (home-page "https://github.com/flycheck/flycheck-rust")
4546 (synopsis "Rust/Cargo support for Flycheck")
4547 (description
4548 "This Flycheck extension configures Flycheck automatically for
4549 the current Cargo project.")
4550 (license license:gpl3+)))
4551
4552 (define-public emacs-elisp-demos
4553 (package
4554 (name "emacs-elisp-demos")
4555 (version "2020.02.19")
4556 (source
4557 (origin
4558 (method git-fetch)
4559 (uri (git-reference
4560 (url "https://github.com/xuchunyang/elisp-demos")
4561 (commit version)))
4562 (file-name (git-file-name name version))
4563 (sha256
4564 (base32
4565 "0mckgaz92v3y2vlkggx9kd51fd1mahylw39c42l51dyv8wscm7sc"))))
4566 (build-system emacs-build-system)
4567 (arguments
4568 `(#:include '("\\.el$" "\\.org$")
4569 #:tests? #t
4570 #:test-command '("make" "test")))
4571 (home-page "https://github.com/xuchunyang/elisp-demos/")
4572 (synopsis "Enhance @code{*Help*} buffers with additional examples")
4573 (description
4574 "This package injects example uses of Elisp functions into their
4575 respective @code{*Help*} buffers.")
4576 (license license:gpl3+)))
4577
4578 (define-public emacs-docker-compose-mode
4579 (package
4580 (name "emacs-docker-compose-mode")
4581 (version "1.1.0")
4582 (source
4583 (origin
4584 (method git-fetch)
4585 (uri (git-reference
4586 (url "https://github.com/meqif/docker-compose-mode")
4587 (commit version)))
4588 (file-name (git-file-name name version))
4589 (sha256
4590 (base32
4591 "1fbcxwfvm33xcdj3cs26d9i1zyrryyjjkv7sc3mfxd45nq8d3ivj"))))
4592 (build-system emacs-build-system)
4593 (propagated-inputs
4594 `(("emacs-dash" ,emacs-dash)
4595 ("emacs-f" ,emacs-f)))
4596 (home-page "https://github.com/meqif/docker-compose-mode/")
4597 (synopsis "Major mode for editing @file{docker-compose} files")
4598 (description
4599 "This is a major mode for @file{docker-compose} files that provides
4600 completion of relevant keywords.")
4601 (license license:expat)))
4602
4603 (define-public emacs-dvc
4604 (let ((revision "591") ;no tags or official releases
4605 (guix-revision "1"))
4606 (package
4607 (name "emacs-dvc")
4608 (version (string-append "0.0.0-" guix-revision "." revision))
4609 (source
4610 (origin
4611 (method bzr-fetch)
4612 (uri (bzr-reference
4613 (url "lp:dvc")
4614 (revision revision)))
4615 (sha256
4616 (base32
4617 "03pqn493w70wcpgaxvqnfgynxghw114l9pyiv3r414d84vzhan6h"))
4618 (file-name (string-append name "-" version "-checkout"))))
4619 (build-system gnu-build-system)
4620 (arguments
4621 `(#:configure-flags
4622 (list (string-append "--with-lispdir=" (assoc-ref %outputs "out")
4623 "/share/emacs/site-lisp/"))
4624 #:tests? #f ;no test suite
4625 #:phases
4626 (modify-phases %standard-phases
4627 (add-before 'build 'set-home
4628 ;; Something in dvc-bookmarks.el attempts to write config files in
4629 ;; $HOME during the autoload generation.
4630 (lambda _ (setenv "HOME" (getenv "TMPDIR")) #t))
4631 (add-before 'build 'fix-texinfo
4632 ;; See https://bugs.launchpad.net/dvc/+bug/1264383.
4633 (lambda _
4634 (substitute* "texinfo/dvc-intro.texinfo"
4635 (("@itemx update ``to''")
4636 "@item update ``to''")
4637 (("@itemx brief")
4638 "@item brief")
4639 (("@itemx full")
4640 "@item full")
4641 (("@itemx drop")
4642 "@item drop")
4643 (("@itemx left file")
4644 "@item left file"))
4645 #t)))))
4646 (native-inputs
4647 `(("autoconf" ,autoconf)
4648 ("automake" ,automake) ;for aclocal
4649 ("emacs" ,emacs-minimal)
4650 ("texinfo" ,texinfo)))
4651 (home-page "http://xsteve.at/prg/emacs_dvc/index.html")
4652 (synopsis "Emacs front-end for various distributed version control systems.")
4653 (description "DVC is a legacy Emacs front-end for a number of
4654 distributed version control systems. It currently supports GNU Arch, GNU
4655 Bazaar, git, Mercurial, and Monotone. It also provides some integration with
4656 Gnus, e.g., for applying patches received by email.")
4657 (license license:gpl2+))))
4658
4659 (define-public emacs-sudo-edit
4660 (let ((commit "cc3d478937b1accd38742bfceba92af02ee9357d")
4661 (revision "6"))
4662 (package
4663 (name "emacs-sudo-edit")
4664 (version (git-version "0.1.0" revision commit))
4665 (source
4666 (origin
4667 (method git-fetch)
4668 (uri (git-reference
4669 (url "https://github.com/nflath/sudo-edit")
4670 (commit commit)))
4671 (file-name (git-file-name name version))
4672 (sha256
4673 (base32
4674 "1qv58x5j5a3v1s2ylhck1ykbfclq0mbi0gsvaql3nyv8cxazqlwl"))))
4675 (build-system emacs-build-system)
4676 (native-inputs
4677 `(("emacs-undercover" ,emacs-undercover)))
4678 (arguments
4679 `(#:phases
4680 (modify-phases %standard-phases
4681 (add-before 'check 'fix-makefile
4682 (lambda _
4683 (substitute* "Makefile"
4684 (("\\$\\(CASK\\) exec ") ""))
4685 #t)))
4686 #:tests? #t
4687 #:test-command '("make" "test")))
4688 (home-page "https://github.com/nflath/sudo-edit/")
4689 (synopsis "Open files as another user")
4690 (description
4691 "This package allows editing files as another user, including the root
4692 user.")
4693 (license license:gpl3+))))
4694
4695 (define-public emacs-miniedit
4696 (package
4697 (name "emacs-miniedit")
4698 (version "2.0")
4699 (source
4700 (origin
4701 (method git-fetch)
4702 (uri (git-reference
4703 (url "https://github.com/emacsmirror/miniedit")
4704 (commit version)))
4705 (file-name (git-file-name name version))
4706 (sha256
4707 (base32
4708 "1850z96gly0jnr50472idqz1drzqarr0n23bbasslrc501xkg0bq"))))
4709 (build-system emacs-build-system)
4710 (home-page "https://github.com/emacsmirror/miniedit/")
4711 (synopsis "Enhanced editing for minibuffer fields")
4712 (description
4713 "This package provides a function that can be called from the
4714 minibuffer to enable editing the minibuffer input in another buffer with
4715 @code{text-mode} enabled.")
4716 (license license:gpl2+)))
4717
4718 (define-public emacs-ob-ipython
4719 (package
4720 (name "emacs-ob-ipython")
4721 (version "20180224")
4722 (source (origin
4723 (method git-fetch)
4724 (uri (git-reference
4725 (commit "7147455230841744fb5b95dcbe03320313a77124")
4726 (url "https://github.com/gregsexton/ob-ipython")))
4727 (file-name (git-file-name name version))
4728 (sha256
4729 (base32
4730 "1a10fc2jk37ni5sjjvf87s5nyaz2a6h2mlj5dxh4dhv5sd3bb85p"))))
4731 (build-system emacs-build-system)
4732 (propagated-inputs
4733 `(("emacs-f" ,emacs-f)))
4734 (home-page "http://www.gregsexton.org")
4735 (synopsis "Org-Babel functions for IPython evaluation")
4736 (description "This package adds support to Org-Babel for evaluating Python
4737 source code using IPython.")
4738 (license license:gpl3+)))
4739
4740 (define-public emacs-debbugs
4741 (package
4742 (name "emacs-debbugs")
4743 (version "0.26")
4744 (source
4745 (origin
4746 (method url-fetch)
4747 (uri (string-append "https://elpa.gnu.org/packages/debbugs-"
4748 version ".tar"))
4749 (sha256
4750 (base32 "14n2rrs3ccvlp8fhxs08awlqdfawxwbj8nq1xpa0wwlbfvxnf24c"))))
4751 (build-system emacs-build-system)
4752 (arguments '(#:include '("\\.el$" "\\.wsdl$" "\\.info$")))
4753 (propagated-inputs
4754 `(("emacs-async" ,emacs-async)))
4755 (home-page "https://elpa.gnu.org/packages/debbugs.html")
4756 (synopsis "Access the Debbugs bug tracker in Emacs")
4757 (description
4758 "This package lets you access the @uref{http://bugs.gnu.org,GNU Bug
4759 Tracker} from within Emacs.
4760
4761 For instance, it defines the command @code{M-x debbugs-gnu} for listing bugs,
4762 and the command @code{M-x debbugs-gnu-search} for bug searching. If you
4763 prefer the listing of bugs as TODO items of @code{org-mode}, you could use
4764 @code{M-x debbugs-org} and related commands.
4765
4766 A minor mode @code{debbugs-browse-mode} let you browse URLs to the GNU Bug
4767 Tracker as well as bug identifiers prepared for @code{bug-reference-mode}.")
4768 (license license:gpl3+)))
4769
4770 (define-public emacs-ert-expectations
4771 (package
4772 (name "emacs-ert-expectations")
4773 (version "0.2")
4774 (source
4775 (origin
4776 (method url-fetch)
4777 (uri "https://www.emacswiki.org/emacs/download/ert-expectations.el")
4778 (sha256
4779 (base32
4780 "0cwy3ilsid90abzzjb7ha2blq9kmv3gfp3icwwfcz6qczgirq6g7"))))
4781 (build-system emacs-build-system)
4782 (home-page "https://www.emacswiki.org/emacs/ert-expectations.el")
4783 (synopsis "Simple unit test framework for Emacs Lisp")
4784 (description "@code{emacs-ert-expectations} is a simple unit test
4785 framework for Emacs Lisp to be used with @code{ert}.")
4786 (license license:gpl3+)))
4787
4788 (define-public emacs-deferred
4789 (package
4790 (name "emacs-deferred")
4791 (version "0.5.1")
4792 (home-page "https://github.com/kiwanami/emacs-deferred")
4793 (source (origin
4794 (method git-fetch)
4795 (uri (git-reference
4796 (url home-page)
4797 (commit (string-append "v" version))))
4798 (file-name (git-file-name name version))
4799 (sha256
4800 (base32
4801 "0xy9zb6wwkgwhcxdnslqk52bq3z24chgk6prqi4ks0qcf2bwyh5h"))))
4802 (build-system emacs-build-system)
4803 (arguments
4804 `(#:phases
4805 (modify-phases %standard-phases
4806 (add-after 'unpack 'set-shell
4807 ;; Setting the SHELL environment variable is required for the tests
4808 ;; to find sh.
4809 (lambda _
4810 (setenv "SHELL" (which "sh"))
4811 #t))
4812 (add-before 'check 'fix-makefile
4813 (lambda _
4814 (substitute* "Makefile"
4815 (("\\$\\(CASK\\) exec ") ""))
4816 #t)))
4817 #:tests? #t
4818 #:test-command '("make" "test")))
4819 (native-inputs
4820 `(("emacs-ert-expectations" ,emacs-ert-expectations)
4821 ("emacs-undercover" ,emacs-undercover)
4822 ("ert-runner" ,emacs-ert-runner)))
4823 (synopsis "Simple asynchronous functions for Emacs Lisp")
4824 (description
4825 "The @code{deferred.el} library provides support for asynchronous tasks.
4826 The API is almost the same as that of
4827 @uref{https://github.com/cho45/jsdeferred, JSDeferred}, a JavaScript library
4828 for asynchronous tasks.")
4829 (license license:gpl3+)))
4830
4831 (define-public emacs-butler
4832 (package
4833 (name "emacs-butler")
4834 (version "0.2.4")
4835 (home-page "https://github.com/AshtonKem/Butler")
4836 (source (origin
4837 (method git-fetch)
4838 (uri (git-reference
4839 (url home-page)
4840 (commit version)))
4841 (file-name (git-file-name name version))
4842 (sha256
4843 (base32
4844 "1pii9dw4skq7nr4na6qxqasl36av8cwjp71bf1fgppqpcd9z8skj"))))
4845 (build-system emacs-build-system)
4846 (propagated-inputs
4847 `(("emacs-deferred" ,emacs-deferred)))
4848 (synopsis "Emacs client for Jenkins")
4849 (description
4850 "Butler provides an interface to connect to Jenkins continuous
4851 integration servers. Users can specify a list of server in the
4852 @code{butler-server-list} variable and then use @code{M-x butler-status} to
4853 view the build status of those servers' build jobs, and possibly to trigger
4854 build jobs.")
4855 (license license:gpl3+)))
4856
4857 (define-public emacs-company
4858 (package
4859 (name "emacs-company")
4860 (version "0.9.13")
4861 (source
4862 (origin
4863 (method url-fetch)
4864 (uri (string-append "https://elpa.gnu.org/packages/"
4865 "company-" version ".tar"))
4866 (sha256
4867 (base32 "1c9x9wlzzsn7vrsm57l2l44nqx455saa6wrm853szzg09qn8dlnw"))))
4868 (build-system emacs-build-system)
4869 (home-page "https://company-mode.github.io/")
4870 (synopsis "Modular text completion framework")
4871 (description
4872 "Company is a modular completion mechanism. Modules for retrieving
4873 completion candidates are called back-ends, modules for displaying them are
4874 front-ends. Company comes with many back-ends, e.g., @code{company-elisp}.
4875 These are distributed in separate files and can be used individually.")
4876 (license license:gpl3+)))
4877
4878 (define-public emacs-company-posframe
4879 (let ((version "0.1.0")
4880 (revision "1")
4881 (commit "67d899502384fb9ab2870aba0af41523dea7b64f"))
4882 (package
4883 (name "emacs-company-posframe")
4884 (version (git-version version revision commit))
4885 (source (origin
4886 (method git-fetch)
4887 (uri (git-reference
4888 (url "https://github.com/tumashu/company-posframe")
4889 (commit commit)))
4890 (file-name (git-file-name name version))
4891 (sha256
4892 (base32
4893 "051smlvz1siwglsd9k9l0m20mygrx4niflmyshha0064287aysxr"))))
4894 (build-system emacs-build-system)
4895 (propagated-inputs
4896 `(("emacs-company" ,emacs-company)
4897 ("emacs-posframe" ,emacs-posframe)))
4898 (home-page "https://github.com/tumashu/company-posframe")
4899 (synopsis "Use a posframe for @code{emacs-company}'s candidate menu")
4900 (description
4901 "Allows @code{emacs-company} to use child frames for its candidate menus.
4902
4903 @code{emacs-company-posframe} is fast enough for daily use and supports CJK
4904 languages.")
4905 (license license:gpl3+))))
4906
4907 (define-public emacs-irony-mode
4908 (package
4909 (name "emacs-irony-mode")
4910 (version "1.4.0")
4911 (home-page "https://github.com/Sarcasm/irony-mode")
4912 (source (origin
4913 (method git-fetch)
4914 (uri (git-reference
4915 (url (string-append home-page ".git"))
4916 (commit (string-append "v" version))))
4917 (file-name (git-file-name name version))
4918 (sha256
4919 (base32
4920 "0n2nfcq58md1p2xdhq1smh8v7lsyj0ci7ma5xyd6bkg5rvhsh10i"))))
4921 (build-system emacs-build-system)
4922 (inputs `(("server" ,emacs-irony-mode-server)))
4923 (arguments `(#:phases
4924 (modify-phases %standard-phases
4925 (add-after 'unpack 'configure
4926 (lambda* (#:key inputs #:allow-other-keys)
4927 (chmod "irony.el" #o644)
4928 (emacs-substitute-variables "irony.el"
4929 ("irony-server-install-prefix"
4930 (assoc-ref inputs "server")))
4931 #t)))))
4932 (synopsis "C/C++/ObjC Code completion and syntax checks for Emacs")
4933 (description "Irony-mode provides Clang-assisted syntax checking and
4934 completion for C, C++, and ObjC in GNU Emacs. Using @code{libclang} it can
4935 provide syntax checking and autocompletion on compiler level which is very
4936 resistant against false positives. It also integrates well with other
4937 packages like @code{eldoc-mode} and especially @code{company-mode} as
4938 described on the homepage.")
4939 (license license:gpl3+)))
4940
4941 (define-public emacs-irony-mode-server
4942 (package (inherit emacs-irony-mode)
4943 (name "emacs-irony-mode-server")
4944 (inputs
4945 `(("clang" ,clang)))
4946 (arguments
4947 `(#:phases
4948 (modify-phases %standard-phases
4949 (replace 'configure
4950 (lambda* (#:key outputs #:allow-other-keys)
4951 (let ((out (assoc-ref outputs "out")))
4952 (invoke "cmake"
4953 "server"
4954 (string-append "-DCMAKE_INSTALL_PREFIX=" out)) #t))))))
4955 (build-system cmake-build-system)
4956 (synopsis "Server for the Emacs @dfn{irony mode}")))
4957
4958 (define-public emacs-company-irony
4959 (package
4960 (name "emacs-company-irony")
4961 (version "1.1.0")
4962 (source (origin
4963 (method git-fetch)
4964 (uri (git-reference
4965 (url "https://github.com/Sarcasm/company-irony")
4966 (commit (string-append "v" version))))
4967 (sha256 (base32
4968 "1qgyam2vyjw90kpxns5cd6bq3qiqjhzpwrlvmi18vyb69qcgqd8a"))
4969 (file-name (git-file-name name version))))
4970 (build-system emacs-build-system)
4971 (inputs
4972 `(("emacs-irony-mode" ,emacs-irony-mode)
4973 ("emacs-company" ,emacs-company)))
4974 (synopsis "C++ completion backend for Company using irony-mode")
4975 (description "This backend for company-mode allows for C++ code completion
4976 with irony-mode using clang-tooling.")
4977 (home-page "https://github.com/Sarcasm/company-irony")
4978 (license license:gpl3+)))
4979
4980 (define-public emacs-flycheck-irony
4981 (package
4982 (name "emacs-flycheck-irony")
4983 (version "0.1.0")
4984 (source (origin
4985 (method git-fetch)
4986 (uri (git-reference
4987 (url "https://github.com/Sarcasm/flycheck-irony")
4988 (commit (string-append "v" version))))
4989 (file-name (git-file-name name version))
4990 (sha256
4991 (base32 "0qa5a8wzvzxwqql92ibc9s43k8sj3vwn7skz9hfr8av0skkhx996"))))
4992 (build-system emacs-build-system)
4993 (inputs
4994 `(("irony-mode" ,emacs-irony-mode)
4995 ("flycheck-mode" ,emacs-flycheck)
4996 ("emacs-company" ,emacs-company)))
4997 (synopsis "Live syntax checking frontend for Flycheck using irony-mode")
4998 (description "This package provides a frontend for Flycheck that lets
4999 irony-mode do the syntax checking.")
5000 (home-page "https://github.com/Sarcasm/flycheck-irony")
5001 (license license:gpl3+)))
5002
5003 (define-public emacs-irony-eldoc
5004 (package
5005 (name "emacs-irony-eldoc")
5006 (version (package-version emacs-irony-mode))
5007 (source
5008 (origin
5009 (method git-fetch)
5010 (uri (git-reference
5011 (url "https://github.com/ikirill/irony-eldoc")
5012 (commit "0df5831eaae264a25422b061eb2792aadde8b3f2")))
5013 (file-name (git-file-name name version))
5014 (sha256
5015 (base32 "1l5qpr66v1l12fb50yh73grb2rr85xxmbj19mm33b5rdrq2bqmmd"))))
5016 (build-system emacs-build-system)
5017 (inputs
5018 `(("irony-mode" ,emacs-irony-mode)))
5019 (synopsis "Eldoc integration for irony-mode")
5020 (description "Irony-eldoc is an eldoc extension that shows documentation
5021 for the current function or variable in the minibuffer.")
5022 (home-page "https://github.com/ikirill/irony-eldoc")
5023 (license license:gpl3+)))
5024
5025 (define-public emacs-company-quickhelp
5026 ;; XXX: release version 2.3.0 is on an unmaintained branch for some reason,
5027 ;; so we use the latest 2.2.0 commit instead
5028 (let ((commit "479676cade80a9f03802ca3d956591820ed5c537")
5029 (revision "1"))
5030 (package
5031 (name "emacs-company-quickhelp")
5032 (version (git-version "2.2.0" revision commit))
5033 (source
5034 (origin
5035 (method git-fetch)
5036 (uri (git-reference
5037 (url "https://github.com/expez/company-quickhelp")
5038 (commit commit)))
5039 (file-name (git-file-name name version))
5040 (sha256
5041 (base32 "0hbqpnaf4hnin3nmdzmfj3v22kk9a97b6zssqs96ns36d9h52xcp"))))
5042 (build-system emacs-build-system)
5043 (propagated-inputs
5044 `(("emacs-pos-tip" ,emacs-pos-tip)
5045 ("emacs-company" ,emacs-company)))
5046 (home-page "https://github.com/expez/company-quickhelp")
5047 (synopsis "Popup documentation for completion candidates")
5048 (description "@code{company-quickhelp} shows documentation for the
5049 completion candidate when using the Company text completion framework.")
5050 (license license:gpl3+))))
5051
5052 (define-public emacs-math-symbol-lists
5053 (let ((commit "dc7531cff0c845d5470a50c24d5d7309b2ced7eb")
5054 (revision "1"))
5055 (package
5056 (name "emacs-math-symbol-lists")
5057 (version (git-version "1.2.1" revision commit))
5058 (source
5059 (origin
5060 (method git-fetch)
5061 (uri (git-reference
5062 (url "https://github.com/vspinu/math-symbol-lists")
5063 (commit commit)))
5064 (file-name (git-file-name name version))
5065 (sha256
5066 (base32 "094m21i9rns6m59cmhxcivxxafbg52w8f8na4y3v47aq67zmhhqm"))))
5067 (build-system emacs-build-system)
5068 (home-page "https://github.com/vspinu/math-symbol-lists")
5069 (synopsis "Lists of Unicode math symbols and @code{LaTeX} commands")
5070 (description "This is a storage package used by completion engines like
5071 @code{company-math}.")
5072 (license license:gpl3+))))
5073
5074 (define-public emacs-company-coq
5075 (package
5076 (name "emacs-company-coq")
5077 (version "1.0.1")
5078 (source
5079 (origin
5080 (method git-fetch)
5081 (uri
5082 (git-reference
5083 (url "https://github.com/cpitclaudel/company-coq")
5084 (commit version)))
5085 (file-name (git-file-name name version))
5086 (sha256
5087 (base32 "0dxi4h8xqq5647k7h89s4pi8nwyj3brlhsckrv3p3b1g4dr6mk3b"))))
5088 (inputs
5089 `(("emacs-company" ,emacs-company)
5090 ("emacs-company-math" ,emacs-company-math)
5091 ("emacs-dash" ,emacs-dash)
5092 ("emacs-yasnippet" ,emacs-yasnippet)))
5093 (build-system emacs-build-system)
5094 (home-page "https://github.com/cpitclaudel/company-coq")
5095 (synopsis "Emacs extensions for Proof General's Coq mode")
5096 (description "This package includes a collection of Company mode backends
5097 for Proof-General's Coq mode, and many useful extensions to Proof-General. It
5098 features:
5099
5100 @itemize
5101 @item Prettification of operators, types, and subscripts,
5102 @item Auto-completion,
5103 @item Insertion of cases,
5104 @item Fully explicit intros,
5105 @item Outlines, code folding, and jumping to definition,
5106 @item Help with errors,
5107 @item and more.
5108 @end itemize")
5109 (license license:gpl3+)))
5110
5111 (define-public emacs-company-math
5112 (let ((commit "600e49449644f6835f9dc3501bc58461999e8ab9")
5113 (revision "1"))
5114 (package
5115 (name "emacs-company-math")
5116 (version (git-version "1.3" revision commit))
5117 (source
5118 (origin
5119 (method git-fetch)
5120 (uri (git-reference
5121 (url "https://github.com/vspinu/company-math")
5122 (commit commit)))
5123 (file-name (git-file-name name version))
5124 (sha256
5125 (base32
5126 "1ps2lpkzn8mjbpcbvvy1qz3xbgrh6951x8y9bsd1fm32drdph9lh"))))
5127 (build-system emacs-build-system)
5128 (propagated-inputs
5129 `(("emacs-math-symbol-lists" ,emacs-math-symbol-lists)
5130 ("emacs-company" ,emacs-company)))
5131 (home-page "https://github.com/vspinu/company-math")
5132 (synopsis "Completion backends for Unicode math symbols and @code{LaTeX} tags")
5133 (description "This package provides a backend for use with
5134 @code{company-mode} allowing for completion of common math symbols.")
5135 (license license:gpl3+))))
5136
5137 (define-public emacs-compdef
5138 (let ((commit "67104a38763cc819644f711248b170a43bce151b")
5139 (revision "2"))
5140 (package
5141 (name "emacs-compdef")
5142 (version (git-version "0.2" revision commit))
5143 (source
5144 (origin
5145 (method git-fetch)
5146 (uri (git-reference
5147 (url "https://gitlab.com/jjzmajic/compdef.git")
5148 (commit commit)))
5149 (file-name (git-file-name name version))
5150 (sha256
5151 (base32 "1f6y6cr67gps9jp5hd20xszfd3k26v70g6z4g5db6wdkvlnc2wkg"))))
5152 (build-system emacs-build-system)
5153 (home-page "https://gitlab.com/jjzmajic/compdef")
5154 (synopsis "Set local completion backends")
5155 (description "This package provides a function to cleanly set local
5156 completion backends according to mode, and integrates with
5157 @code{use-package}.")
5158 (license license:gpl3+))))
5159
5160 (define-public emacs-icomplete-vertical
5161 (package
5162 (name "emacs-icomplete-vertical")
5163 (version "0.1")
5164 (source
5165 (origin
5166 (method git-fetch)
5167 (uri (git-reference
5168 (url "https://github.com/oantolin/icomplete-vertical")
5169 (commit version)))
5170 (file-name (git-file-name name version))
5171 (sha256
5172 (base32
5173 "1bqnlvv1gvrjriazvzd3bq98r8ii6fqax0zznhvkl1ij5pf55a90"))))
5174 (build-system emacs-build-system)
5175 (home-page "https://github.com/oantolin/icomplete-vertical")
5176 (synopsis "Display icomplete candidates vertically")
5177 (description
5178 "This package defines a global minor mode to display Icomplete
5179 completion candidates vertically.")
5180 (license license:gpl3+)))
5181
5182 (define-public emacs-handle
5183 (let ((commit "51c050bc1c6e5caf0eb47ecd985daea1db7241ab")
5184 (revision "2"))
5185 (package
5186 (name "emacs-handle")
5187 (version (git-version "0.1" revision commit))
5188 (source
5189 (origin
5190 (method git-fetch)
5191 (uri (git-reference
5192 (url "https://gitlab.com/jjzmajic/handle.git")
5193 (commit commit)))
5194 (file-name (git-file-name name version))
5195 (sha256
5196 (base32 "14f15qzfmwdslml4rv37zb5d1lsjf0jibriz636hb7q7knx1n4sg"))))
5197 (build-system emacs-build-system)
5198 (propagated-inputs
5199 `(("emacs-parent-mode" ,emacs-parent-mode)))
5200 (home-page "https://gitlab.com/jjzmajic/handle")
5201 (synopsis "Handle generic functions across related major modes")
5202 (description "This package provides generic functions that specialize on
5203 major modes and intended purpose rather than on arguments. Different
5204 callables for tasks like expression evaluation, definition-jumping, and more
5205 can now be grouped accordingly and tried in sequence until one of them
5206 succeeds.")
5207 (license license:gpl3+))))
5208
5209 (define-public emacs-nswbuff
5210 (let ((commit "362da7f3687e2eb5bb11667347de85f4a9d002bc")
5211 (revision "1"))
5212 (package
5213 (name "emacs-nswbuff")
5214 (version (git-version "1.0" revision commit))
5215 (source
5216 (origin
5217 (method git-fetch)
5218 (uri (git-reference
5219 (url "https://github.com/joostkremers/nswbuff")
5220 (commit commit)))
5221 (file-name (git-file-name name version))
5222 (sha256
5223 (base32 "0l2xfz8z5qd4hz3kv6zn7h6qq3narkilri8a071y1n8j31jps4ma"))))
5224 (build-system emacs-build-system)
5225 (home-page "https://github.com/joostkremers/nswbuff")
5226 (synopsis "Quickly switch between buffers")
5227 (description "This package allows for navigating between buffers within
5228 a customizable list.")
5229 (license license:gpl3+))))
5230
5231 (define-public emacs-phi-search
5232 (let ((commit "9a089b8271cb1cff9640848850298c9ec855286c")
5233 (revision "1"))
5234 (package
5235 (name "emacs-phi-search")
5236 (version (git-version "20160630" revision commit))
5237 (source
5238 (origin
5239 (method git-fetch)
5240 (uri (git-reference
5241 (url "https://github.com/zk-phi/phi-search")
5242 (commit commit)))
5243 (file-name (git-file-name name version))
5244 (sha256
5245 (base32 "1gr5plcbrfdc4pglfj905s89hf8x0kc083h30wcnd81bnw9jwz1x"))))
5246 (build-system emacs-build-system)
5247 (home-page "https://github.com/zk-phi/phi-search")
5248 (synopsis "Interactive search compatible with @code{multiple-cursors}")
5249 (description "This package can be used with @code{multiple-cursors} to
5250 provide an incremental search that moves all fake cursors in sync.")
5251 (license license:gpl2+))))
5252
5253 (define-public emacs-phi-search-mc
5254 (let ((commit "7aa671910f766437089aec26c3aa7814222d1356")
5255 (revision "1"))
5256 (package
5257 (name "emacs-phi-search-mc")
5258 (version (git-version "2.2.1" revision commit))
5259 (source
5260 (origin
5261 (method git-fetch)
5262 (uri (git-reference
5263 (url "https://github.com/knu/phi-search-mc.el")
5264 (commit commit)))
5265 (file-name (git-file-name name version))
5266 (sha256
5267 (base32 "0wr86ad0yl52im6b9z0b9pzmhcn39qg5m9878yfv1nbxliw40lcd"))))
5268 (build-system emacs-build-system)
5269 (propagated-inputs
5270 `(("emacs-phi-search" ,emacs-phi-search)
5271 ("emacs-multiple-cursors" ,emacs-multiple-cursors)))
5272 (home-page "https://github.com/knu/phi-search-mc.el")
5273 (synopsis "Extend @code{phi-search} with additional
5274 @code{multiple-cursors} functionality")
5275 (description "This package provides further integration between
5276 @code{multiple-cursors} and @code{phi-search}, a package that allows for
5277 interactive searches to move multiple fake cursors.")
5278 (license license:bsd-2))))
5279
5280 (define-public emacs-multiple-cursors
5281 (package
5282 (name "emacs-multiple-cursors")
5283 (version "1.4.0")
5284 (source
5285 (origin
5286 (method git-fetch)
5287 (uri (git-reference
5288 (url "https://github.com/magnars/multiple-cursors.el")
5289 (commit version)))
5290 (file-name (git-file-name name version))
5291 (sha256
5292 (base32 "1ijgvzv5r44xqvz751fd5drbvrspapw6xwv47582w255j363r6ss"))))
5293 (build-system emacs-build-system)
5294 (home-page "https://github.com/magnars/multiple-cursors.el")
5295 (synopsis "Multiple cursors for Emacs")
5296 (description
5297 "This package adds support to Emacs for editing text with multiple
5298 simultaneous cursors.")
5299 (license license:gpl3+)))
5300
5301 (define-public emacs-mc-extras
5302 (let ((commit "053abc52181b8718559d7361a587bbb795faf164")
5303 (revision "1"))
5304 (package
5305 (name "emacs-mc-extras")
5306 (version (git-version "1.2.4" revision commit))
5307 (source
5308 (origin
5309 (method git-fetch)
5310 (uri (git-reference
5311 (url "https://github.com/knu/mc-extras.el")
5312 (commit commit)))
5313 (file-name (git-file-name name version))
5314 (sha256
5315 (base32 "16y48qrd20m20vypvys5jp4v4gc1qrqlkm75s1pk1r68i9zrw481"))))
5316 (build-system emacs-build-system)
5317 (propagated-inputs
5318 `(("emacs-multiple-cursors" ,emacs-multiple-cursors)))
5319 (home-page "https://github.com/knu/mc-extras.el")
5320 (synopsis "Extra functions for manipulating multiple cursors")
5321 (description
5322 "This package provides additional functions for
5323 @code{multiple-cursors}, including functions for marking s-expressions,
5324 comparing characters, removing cursors, and more.")
5325 (license license:bsd-2))))
5326
5327 (define-public emacs-typo
5328 (package
5329 (name "emacs-typo")
5330 (version "1.1")
5331 (home-page "https://github.com/jorgenschaefer/typoel")
5332 (source (origin
5333 (method git-fetch)
5334 (uri (git-reference
5335 (url home-page)
5336 (commit (string-append "v" version))))
5337 (file-name (git-file-name name version))
5338 (sha256
5339 (base32
5340 "1jhd4grch5iz12gyxwfbsgh4dmz5hj4bg4gnvphccg8dsnni05k2"))))
5341 (build-system emacs-build-system)
5342 (synopsis "Minor mode for typographic editing")
5343 (description
5344 "This package provides two Emacs modes, @code{typo-mode} and
5345 @code{typo-global-mode}. These modes automatically insert Unicode characters
5346 for quotation marks, dashes, and ellipses. For example, typing @kbd{\"}
5347 automatically inserts a Unicode opening or closing quotation mark, depending
5348 on context.")
5349 (license license:gpl3+)))
5350
5351 (define-public emacs-company-lsp
5352 (package
5353 (name "emacs-company-lsp")
5354 (version "2.1.0")
5355 (source (origin
5356 (method git-fetch)
5357 (uri (git-reference
5358 (url "https://github.com/tigersoldier/company-lsp")
5359 (commit version)))
5360 (file-name (git-file-name name version))
5361 (sha256
5362 (base32
5363 "1hy1x2w0yp5brm7714d1hziz3rpkywb5jp3yj78ibmi9ifny9vri"))))
5364 (build-system emacs-build-system)
5365 (propagated-inputs
5366 `(("emacs-dash" ,emacs-dash)
5367 ("emacs-lsp-mode" ,emacs-lsp-mode)
5368 ("emacs-company" ,emacs-company)
5369 ("emacs-s" ,emacs-s)
5370 ("emacs-dash" ,emacs-dash)))
5371 (native-inputs
5372 `(("emacs-buttercup" ,emacs-buttercup)))
5373 (arguments
5374 `(#:tests? #t
5375 #:test-command '("buttercup" "-L" ".")))
5376 (home-page "https://github.com/tigersoldier/company-lsp")
5377 (synopsis "Completion for @code{lsp-mode}")
5378 (description
5379 "This package provides completion features that are not possible with
5380 @code{lsp-mode} and @code{company-capf} alone, including support for trigger
5381 characters and asynchronous fetching of completion candidates.")
5382 (license license:gpl3+)))
5383
5384 (define-public emacs-scala-mode
5385 (package
5386 (name "emacs-scala-mode")
5387 (version "1.1.0")
5388 (source
5389 (origin
5390 (method git-fetch)
5391 (uri (git-reference
5392 (url "https://github.com/hvesalai/emacs-scala-mode")
5393 (commit (string-append "v" version))))
5394 (file-name (git-file-name name version))
5395 (sha256
5396 (base32 "1072lsin7dxadc0xyhy42wd0cw549axbbd4dy95wfmfcc1xbzjwv"))))
5397 (build-system emacs-build-system)
5398 (home-page "https://github.com/hvesalai/emacs-scala-mode")
5399 (synopsis "Emacs major mode for Scala")
5400 (description
5401 "This package provides basic Emacs support for the Scala language,
5402 including: local indenting of code, comments and multi-line strings, motion
5403 commands and highlighting.")
5404 ;; There are no copyright headers in the source code. The LICENSE file
5405 ;; indicates GPL3.
5406 (license license:gpl3)))
5407
5408 (define-public emacs-sbt-mode
5409 (package
5410 (name "emacs-sbt-mode")
5411 (version "2.0.0")
5412 (source
5413 (origin
5414 (method git-fetch)
5415 (uri (git-reference
5416 (url "https://github.com/hvesalai/emacs-sbt-mode")
5417 (commit (string-append "v" version))))
5418 (file-name (git-file-name name version))
5419 (sha256
5420 (base32 "0lv9ridzk9x6rkf7lj21srnszypyq04vqg05vl10zhpz1yqlnbjd"))))
5421 (build-system emacs-build-system)
5422 (home-page "https://github.com/hvesalai/emacs-sbt-mode")
5423 (synopsis "Basic functionality for interacting with sbt inside Emacs")
5424 (description
5425 "This mode provides basic functionality required for successfully
5426 interacting with sbt inside Emacs. The core functionality includes
5427 interacting with the sbt shell and Scala console, compiling code and
5428 navigation to errors.")
5429 (license license:gpl3+)))
5430
5431 (define-public emacs-scheme-complete
5432 (let ((commit "9b5cf224bf2a5994bc6d5b152ff487517f1a9bb5"))
5433 (package
5434 (name "emacs-scheme-complete")
5435 (version (string-append "20151223." (string-take commit 8)))
5436 (source
5437 (origin
5438 (method git-fetch)
5439 (uri (git-reference
5440 (url "https://github.com/ashinn/scheme-complete")
5441 (commit commit)))
5442 (file-name (git-file-name name version))
5443 (sha256
5444 (base32
5445 "141wn9l0m33w0g3dqmx8nxbfdny1r5xbr6ak61rsz21bk0qafs7x"))
5446 (patches
5447 (search-patches "emacs-scheme-complete-scheme-r5rs-info.patch"))))
5448 (build-system emacs-build-system)
5449 (home-page "https://github.com/ashinn/scheme-complete")
5450 (synopsis "Smart tab completion for Scheme in Emacs")
5451 (description
5452 "This file provides a single function, @code{scheme-smart-complete},
5453 which you can use for intelligent, context-sensitive completion for any Scheme
5454 implementation in Emacs. To use it just load this file and bind that function
5455 to a key in your preferred mode.")
5456 (license license:public-domain))))
5457
5458 (define-public emacs-scel
5459 (let ((version "20170629")
5460 (revision "1")
5461 (commit "aeea3ad4be9306d14c3a734a4ff54fee10ac135b"))
5462 (package
5463 (name "emacs-scel")
5464 (version (git-version version revision commit))
5465 (source
5466 (origin
5467 (method git-fetch)
5468 (uri (git-reference
5469 (url "https://github.com/supercollider/scel")
5470 (commit commit)))
5471 (file-name (git-file-name name version))
5472 (sha256
5473 (base32
5474 "0jvmzs1lsjyndqshhii2y4mnr3wghai26i3p75453zrpxpg0zvvw"))))
5475 (build-system emacs-build-system)
5476 (arguments
5477 `(#:modules ((guix build emacs-build-system)
5478 ((guix build cmake-build-system) #:prefix cmake:)
5479 (guix build utils))
5480 #:imported-modules (,@%emacs-build-system-modules
5481 (guix build cmake-build-system))
5482 #:phases
5483 (modify-phases %standard-phases
5484 (add-after 'unpack 'configure
5485 (lambda* (#:key outputs #:allow-other-keys)
5486 (substitute* "el/CMakeLists.txt"
5487 (("share/emacs/site-lisp/SuperCollider")
5488 (string-append
5489 "share/emacs/site-lisp")))
5490 ((assoc-ref cmake:%standard-phases 'configure)
5491 #:outputs outputs
5492 #:configure-flags '("-DSC_EL_BYTECOMPILE=OFF"))))
5493 (add-after 'add-source-to-load-path 'add-el-dir-to-emacs-load-path
5494 (lambda _
5495 (setenv "EMACSLOADPATH"
5496 (string-append (getcwd) "/el:" (getenv "EMACSLOADPATH")))
5497 #t))
5498 (replace 'install (assoc-ref cmake:%standard-phases 'install)))))
5499 (inputs
5500 `(("supercollider" ,supercollider)))
5501 (native-inputs
5502 `(("cmake" ,cmake-minimal)))
5503 (home-page "https://github.com/supercollider/scel")
5504 (synopsis "SuperCollider Emacs interface")
5505 (description "@code{emacs-scel} is an Emacs interface to SuperCollider.
5506 SuperCollider is a platform for audio synthesis and algorithmic composition.")
5507 (license license:gpl2+))))
5508
5509 (define-public emacs-company-auctex
5510 (let ((commit "48c42c58ce2f0e693301b0cb2d085055410c1b25")
5511 (revision "1"))
5512 (package
5513 (name "emacs-company-auctex")
5514 (version (git-version "0" revision commit))
5515 (source (origin
5516 (method git-fetch)
5517 (uri (git-reference
5518 (url "https://github.com/alexeyr/company-auctex")
5519 (commit commit)))
5520 (file-name (git-file-name name version))
5521 (sha256
5522 (base32
5523 "10qn7frn5wcmrlci3v6iliqzj7r9dls87h9zp3xkgrgn4bqprfp8"))))
5524 (build-system emacs-build-system)
5525 (propagated-inputs
5526 `(("emacs-yasnippet" ,emacs-yasnippet)
5527 ("emacs-auctex" ,emacs-auctex)
5528 ("emacs-company" ,emacs-company)))
5529 (home-page "https://github.com/alexeyr/company-auctex/")
5530 (synopsis "Completion for @code{AUCTeX}")
5531 (description
5532 "This package provides a group of backends permitting auto-completion
5533 for @code{AUCTeX}.")
5534 (license license:gpl3+))))
5535
5536 (define-public emacs-mit-scheme-doc
5537 (package
5538 (name "emacs-mit-scheme-doc")
5539 (version "20140203")
5540 (source
5541 (origin
5542 (modules '((guix build utils)))
5543 (snippet
5544 ;; keep only file of interest
5545 '(begin
5546 (for-each delete-file '("dot-emacs.el" "Makefile"))
5547 (install-file "6.945-config/mit-scheme-doc.el" ".")
5548 (delete-file-recursively "6.945-config")
5549 #t))
5550 (file-name (string-append name "-" version ".tar.bz2"))
5551 (method url-fetch)
5552 (uri (string-append "http://groups.csail.mit.edu/mac/users/gjs/"
5553 "6.945/dont-panic/emacs-basic-config.tar.bz2"))
5554 (sha256
5555 (base32
5556 "0dqidg2bd66pawqfarvwca93w5gqf9mikn1k2a2rmd9ymfjpziq1"))))
5557 (build-system emacs-build-system)
5558 (inputs `(("mit-scheme" ,mit-scheme)))
5559 (arguments
5560 `(#:phases
5561 (modify-phases %standard-phases
5562 (add-after 'unpack 'configure-doc
5563 (lambda* (#:key inputs #:allow-other-keys)
5564 (let* ((mit-scheme-dir (assoc-ref inputs "mit-scheme"))
5565 (doc-dir (string-append mit-scheme-dir "/share/doc/"
5566 "mit-scheme-"
5567 ,(package-version mit-scheme))))
5568 (substitute* "mit-scheme-doc.el"
5569 (("http://www\\.gnu\\.org/software/mit-scheme/documentation/mit-scheme-ref/")
5570 (string-append "file:" doc-dir "/mit-scheme-ref/")))))))))
5571 (home-page "https://groups.csail.mit.edu/mac/users/gjs/6.945/dont-panic/")
5572 (synopsis "MIT-Scheme documentation lookup for Emacs")
5573 (description
5574 "This package provides a set of Emacs functions to search definitions of
5575 identifiers in the MIT-Scheme documentation.")
5576 (license license:gpl2+)))
5577
5578 (define-public emacs-constants
5579 (package
5580 (name "emacs-constants")
5581 (version "2.6")
5582 (home-page "https://staff.fnwi.uva.nl/c.dominik/Tools/constants")
5583 (source
5584 (origin
5585 (method git-fetch)
5586 (uri (git-reference
5587 (url "https://github.com/fedeinthemix/emacs-constants")
5588 (commit (string-append "v" version))))
5589 (file-name (git-file-name name version))
5590 (sha256
5591 (base32 "0f5sh6b45a8p9kancjp9jk44ws8ww6x50a0i6zgyyvr7dbvii1a0"))))
5592 (build-system emacs-build-system)
5593 (synopsis "Enter definition of constants into an Emacs buffer")
5594 (description
5595 "This package provides functions for inserting the definition of natural
5596 constants and units into an Emacs buffer.")
5597 (license license:gpl2+)))
5598
5599 (define-public emacs-tagedit
5600 (package
5601 (name "emacs-tagedit")
5602 (version "1.4.0")
5603 (source
5604 (origin
5605 (method git-fetch)
5606 (uri (git-reference
5607 (url "https://github.com/magnars/tagedit")
5608 (commit version)))
5609 (file-name (git-file-name name version))
5610 (sha256
5611 (base32 "0kq40g46s8kgiafrhdq99h79rz9h5fvgz59k7ralmf86bl4sdmdb"))))
5612 (build-system emacs-build-system)
5613 (propagated-inputs
5614 `(("emacs-s" ,emacs-s)
5615 ("emacs-dash" ,emacs-dash)))
5616 (home-page "https://github.com/magnars/tagedit")
5617 (synopsis "Some paredit-like features for html-mode")
5618 (description
5619 "This package provides a collection of paredit-like functions for editing
5620 in @code{html-mode}.")
5621 (license license:gpl3+)))
5622
5623 (define-public emacs-slime
5624 (package
5625 (name "emacs-slime")
5626 (version "2.26")
5627 (source
5628 (origin
5629 (method git-fetch)
5630 (uri (git-reference
5631 (url "https://github.com/slime/slime")
5632 (commit (string-append "v" version))))
5633 (file-name (git-file-name name version))
5634 (sha256
5635 (base32 "0mxb1wnw19v0s72w2wkz5afdlzvpy5nn7pr4vav403qybac0sw5c"))))
5636 (build-system emacs-build-system)
5637 (native-inputs
5638 `(("texinfo" ,texinfo)))
5639 (arguments
5640 `(#:include '("\\.el$" "\\.lisp$" "\\.asd$" "contrib")
5641 #:exclude '("^slime-tests.el" "^contrib/test/"
5642 "^contrib/Makefile$" "^contrib/README.md$")
5643 #:phases
5644 (modify-phases %standard-phases
5645 (add-after 'unpack 'make-git-checkout-writable
5646 (lambda _
5647 (for-each make-file-writable (find-files "."))
5648 #t))
5649 (add-before 'install 'configure
5650 (lambda* _
5651 (emacs-substitute-variables "slime.el"
5652 ("inferior-lisp-program" "sbcl"))
5653 #t))
5654 (add-before 'install 'install-doc
5655 (lambda* (#:key outputs #:allow-other-keys)
5656 (let* ((out (assoc-ref outputs "out"))
5657 (info-dir (string-append out "/share/info"))
5658 (doc-dir (string-append out "/share/doc/"
5659 ,name "-" ,version))
5660 (doc-files '("doc/slime-refcard.pdf"
5661 "README.md" "NEWS" "PROBLEMS"
5662 "CONTRIBUTING.md")))
5663 (with-directory-excursion "doc"
5664 (substitute* "Makefile"
5665 (("infodir=/usr/local/info")
5666 (string-append "infodir=" info-dir)))
5667 (invoke "make" "html/index.html")
5668 (invoke "make" "slime.info")
5669 (install-file "slime.info" info-dir)
5670 (copy-recursively "html" (string-append doc-dir "/html")))
5671 (for-each (lambda (f)
5672 (install-file f doc-dir)
5673 (delete-file f))
5674 doc-files)
5675 (delete-file-recursively "doc")
5676 #t))))))
5677 (home-page "https://github.com/slime/slime")
5678 (synopsis "Superior Lisp Interaction Mode for Emacs")
5679 (description
5680 "SLIME extends Emacs with support for interactive programming in
5681 Common Lisp. The features are centered around @command{slime-mode},
5682 an Emacs minor mode that complements the standard @command{lisp-mode}.
5683 While lisp-mode supports editing Lisp source files, @command{slime-mode}
5684 adds support for interacting with a running Common Lisp process
5685 for compilation, debugging, documentation lookup, and so on.")
5686 (license (list license:gpl2+ license:public-domain))))
5687
5688 (define-public emacs-popup
5689 (package
5690 (name "emacs-popup")
5691 (version "0.5.8")
5692 (source
5693 (origin
5694 (method git-fetch)
5695 (uri (git-reference
5696 (url "https://github.com/auto-complete/popup-el")
5697 (commit (string-append "v" version))))
5698 (file-name (git-file-name name version))
5699 (sha256
5700 (base32 "0qrsz4z9q2bfq9xv4n94mvyslm232v2ql9r1fjycx7rnmpqggiwl"))))
5701 (build-system emacs-build-system)
5702 (home-page "https://github.com/auto-complete/popup-el")
5703 (synopsis "Visual Popup User Interface for Emacs")
5704 (description
5705 "Popup.el is a visual popup user interface library for Emacs.
5706 This provides a basic API and common UI widgets such as popup tooltips
5707 and popup menus.")
5708 (license license:gpl3+)))
5709
5710 (define-public emacs-python-black
5711 (package
5712 (name "emacs-python-black")
5713 (version "1.0.0")
5714 (source
5715 (origin
5716 (method git-fetch)
5717 (uri (git-reference
5718 (url "https://github.com/wbolster/emacs-python-black")
5719 (commit version)))
5720 (file-name (git-file-name name version))
5721 (sha256
5722 (base32
5723 "0fjnd85nlkck156dj6cahk8chhgkbgl2kwywqzi8bl4yj700m4dk"))))
5724 (build-system emacs-build-system)
5725 (propagated-inputs
5726 `(("emacs-dash" ,emacs-dash)
5727 ("emacs-reformatter" ,emacs-reformatter)
5728 ("python-black-macchiato" ,python-black-macchiato)))
5729 (arguments `(#:tests? #f))
5730 (home-page "https://github.com/wbolster/emacs-python-black")
5731 (synopsis "Reformat Python code via @code{python-black}")
5732 (description
5733 "This package makes it easy to reformat Python code using
5734 @code{python-black} and @code{python-black-macchiato} for entire and partial
5735 buffers, respectively.")
5736 (license license:bsd-3)))
5737
5738 (define-public emacs-py-isort
5739 (package
5740 (name "emacs-py-isort")
5741 (version "2016.1")
5742 (source
5743 (origin
5744 (method git-fetch)
5745 (uri (git-reference
5746 (url "https://github.com/paetzke/py-isort.el")
5747 (commit (string-append "v" version))))
5748 (file-name (git-file-name name version))
5749 (sha256
5750 (base32 "08i55gv392wc12x8v3dca0dmz8a8p9ljsqhyajsb6qv1k120wqhx"))))
5751 (build-system emacs-build-system)
5752 (arguments
5753 `(#:tests? #f)) ;tests fail with "emacs: standard input is not a tty"
5754 (propagated-inputs
5755 `(("python-isort" ,python-isort)))
5756 (home-page "https://github.com/paetzke/py-isort.el")
5757 (synopsis "Sort the imports in Python buffers")
5758 (description
5759 "This package provides commands and a minor mode to sort Python imports
5760 using @code{python-isort}.")
5761 (license license:gpl3+)))
5762
5763 (define-public emacs-python-environment
5764 (package
5765 (name "emacs-python-environment")
5766 (version "0.0.2")
5767 (source
5768 (origin
5769 (method git-fetch)
5770 (uri (git-reference
5771 (url "https://github.com/tkf/emacs-python-environment/")
5772 (commit version)))
5773 (file-name (git-file-name name version))
5774 (sha256
5775 (base32 "0q6bib9nr6xiq6npzbngyfcjk87yyvwzq1zirr3z1h5wadm34lsk"))))
5776 (build-system emacs-build-system)
5777 (propagated-inputs
5778 `(("emacs-deferred" ,emacs-deferred)))
5779 (home-page "https://github.com/tkf/emacs-python-environment")
5780 (synopsis "Provides a @code{virtualenv} API in Emacs Lisp")
5781 (description
5782 "This package permits automated installation of tools written in Python.")
5783 (license license:gpl3+)))
5784
5785 (define-public emacs-jedi
5786 (package
5787 (name "emacs-jedi")
5788 (version "0.2.8")
5789 (source (origin
5790 (method git-fetch)
5791 (uri (git-reference
5792 (url "https://github.com/tkf/emacs-jedi/")
5793 (commit (string-append "v" version))))
5794 (file-name (git-file-name name version))
5795 (sha256
5796 (base32
5797 "1bckxppfzd5gwn0aw4h86igb7igal9axqncq7j8zmflg7zppncf1"))))
5798 (build-system emacs-build-system)
5799 (native-inputs
5800 `(("emacs-mocker" ,emacs-mocker)))
5801 (propagated-inputs
5802 `(("emacs-auto-complete" ,emacs-auto-complete)
5803 ("emacs-python-environment" ,emacs-python-environment)
5804 ("emacs-epc" ,emacs-epc)))
5805 (home-page "https://github.com/tkf/emacs-jedi")
5806 (synopsis "Provides Python completion in Emacs")
5807 (description
5808 "This package provides completion in Python buffers and also helps find
5809 the locations of docstrings, arguments, and functions.")
5810 (license license:gpl3+)))
5811
5812 (define-public emacs-company-jedi
5813 (package
5814 (name "emacs-company-jedi")
5815 (version "0.04")
5816 (source (origin
5817 (method git-fetch)
5818 (uri (git-reference
5819 (url "https://github.com/syohex/emacs-company-jedi")
5820 (commit version)))
5821 (file-name (git-file-name name version))
5822 (sha256
5823 (base32
5824 "1ihqapp4dv92794rsgyq0rmhwika60cmradqd4bn9b72ss6plxs1"))))
5825 (build-system emacs-build-system)
5826 (propagated-inputs
5827 `(("emacs-jedi" ,emacs-jedi)
5828 ("emacs-company" ,emacs-company)))
5829 (home-page "https://github.com/syohex/emacs-company-jedi")
5830 (synopsis "Provides Python completion in @code{company-mode}")
5831 (description
5832 "This package provides a Company backend for Python.")
5833 (license license:gpl3+)))
5834
5835 (define-public emacs-puppet-mode
5836 (let ((commit "b3ed5057166a4f49dfa9be638523a348b55a2fd2")
5837 (revision "1"))
5838 (package
5839 (name "emacs-puppet-mode")
5840 ;; The last release, 0.3 was several years ago, and there have been many
5841 ;; commits since
5842 (version (git-version "0.3" revision commit))
5843 (source
5844 (origin
5845 (method url-fetch)
5846 (uri (string-append
5847 "https://raw.githubusercontent.com/voxpupuli/puppet-mode/"
5848 commit "/puppet-mode.el"))
5849 (sha256
5850 (base32
5851 "1indycxawsl0p2aqqg754f6735q3cmah9vd886rpn0ncc3ipi1xm"))))
5852 (build-system emacs-build-system)
5853 (home-page "https://github.com/voxpupuli/puppet-mode")
5854 (synopsis "Emacs major mode for the Puppet configuration language")
5855 (description
5856 "This package provides support for the Puppet configuration language,
5857 including syntax highlighting, indentation of expressions and statements,
5858 linting of manifests and integration with Puppet Debugger.")
5859 ;; Also incorporates work covered by the Apache License, Version 2.0
5860 (license license:gpl3+))))
5861
5862 (define-public emacs-god-mode
5863 (package
5864 (name "emacs-god-mode")
5865 (version "2.17.0")
5866 (source
5867 (origin
5868 (method git-fetch)
5869 (uri (git-reference
5870 (url "https://github.com/chrisdone/god-mode")
5871 (commit version)))
5872 (file-name (git-file-name name version))
5873 (sha256
5874 (base32
5875 "1d2nrj35fzhnycchi0b7m5mbk5fyq7bgpbkkvc5xzqafclrsnapi"))))
5876 (build-system emacs-build-system)
5877 (home-page "https://github.com/chrisdone/god-mode")
5878 (synopsis "Minor mode for entering commands without modifier keys")
5879 (description
5880 "This package provides a global minor mode for entering Emacs commands
5881 without modifier keys. It's similar to Vim's separation of commands and
5882 insertion mode. When enabled all keys are implicitly prefixed with
5883 @samp{C-} (among other helpful shortcuts).")
5884 (license license:gpl3+)))
5885
5886 (define-public emacs-jinja2-mode
5887 (package
5888 (name "emacs-jinja2-mode")
5889 (version "0.2")
5890 (source
5891 (origin
5892 (method git-fetch)
5893 (uri (git-reference
5894 (url "https://github.com/paradoxxxzero/jinja2-mode")
5895 (commit (string-append "v" version))))
5896 (file-name (git-file-name name version))
5897 (sha256
5898 (base32 "0l26wcy496k6xk7q5sf905xir0p73ziy6c44is77854lv3y0z381"))))
5899 (build-system emacs-build-system)
5900 (home-page "https://github.com/paradoxxxzero/jinja2-mode")
5901 (synopsis "Major mode for jinja2")
5902 (description
5903 "Emacs major mode for jinja2 with: syntax highlighting,
5904 sgml/html integration, and indentation (working with sgml).")
5905 (license license:gpl3+)))
5906
5907 (define-public emacs-company-cabal
5908 ;; The latest version is 0.3.0, but no release has been provided after 0.2.1.
5909 (let ((commit "62112a7259e24bd6c08885629a185afe512b7d3d")
5910 (revision "1"))
5911 (package
5912 (name "emacs-company-cabal")
5913 (version (git-version "0.3.0" revision commit))
5914 (source (origin
5915 (method git-fetch)
5916 (uri (git-reference
5917 (url "https://github.com/iquiw/company-cabal/")
5918 (commit commit)))
5919 (file-name (git-file-name name version))
5920 (sha256
5921 (base32
5922 "1gf45xwjzdm8i4q6c6khk4dbg1mmp2r0awz2sjr4dcr2dbd1n7mg"))))
5923 (build-system emacs-build-system)
5924 (propagated-inputs
5925 `(("emacs-company" ,emacs-company)))
5926 (arguments
5927 `(#:include (cons "^tools\\/" %default-include)))
5928 (home-page "https://github.com/iquiw/company-cabal/")
5929 (synopsis "Company completion for Haskell Cabal files")
5930 (description
5931 "This package allows for completion of field names, section names,
5932 field values, and more within @code{haskell-cabal-mode}.")
5933 (license license:gpl3+))))
5934
5935 (define-public emacs-rfcview
5936 (package
5937 (name "emacs-rfcview")
5938 (version "0.13")
5939 (home-page "http://www.loveshack.ukfsn.org/emacs")
5940 (source (origin
5941 (method url-fetch)
5942 (uri "http://www.loveshack.ukfsn.org/emacs/rfcview.el")
5943 (sha256
5944 (base32
5945 "0ympj5rxig383zl2jf0pzdsa80nnq0dpvjiriq0ivfi98fj7kxbz"))))
5946 (build-system emacs-build-system)
5947 (synopsis "Prettify Request for Comments (RFC) documents")
5948 (description "The Internet Engineering Task Force (IETF) and the Internet
5949 Society (ISOC) publish various Internet-related protocols and specifications
5950 as \"Request for Comments\" (RFC) documents and Internet Standard (STD)
5951 documents. RFCs and STDs are published in a simple text form. This package
5952 provides an Emacs major mode, rfcview-mode, which makes it more pleasant to
5953 read these documents in Emacs. It prettifies the text and adds
5954 hyperlinks/menus for easier navigation. It also provides functions for
5955 browsing the index of RFC documents and fetching them from remote servers or
5956 local directories.")
5957 (license license:gpl3+)))
5958
5959 (define-public emacs-ffap-rfc-space
5960 (package
5961 (name "emacs-ffap-rfc-space")
5962 (version "12")
5963 (home-page "https://user42.tuxfamily.org/ffap-rfc-space/index.html")
5964 (source (origin
5965 (method url-fetch)
5966 (uri "http://download.tuxfamily.org/user42/ffap-rfc-space.el")
5967 (sha256
5968 (base32
5969 "1iv61dv57a73mdps7rn6zmgz7nqh14v0ninidyrasy45b1nv6gck"))))
5970 (build-system emacs-build-system)
5971 (synopsis "Make ffap recognize an RFC with a space before its number")
5972 (description "The Internet Engineering Task Force (IETF) and the
5973 Internet Society (ISOC) publish various Internet-related protocols and
5974 specifications as \"Request for Comments\" (RFC) documents. The
5975 built-in Emacs module \"ffap\" (Find File at Point) has the ability to
5976 recognize names at point which look like \"RFC1234\" and \"RFC-1234\"
5977 and load the appropriate RFC from a remote server. However, it fails
5978 to recognize a name like \"RFC 1234\". This package enhances ffap so
5979 that it correctly finds RFCs even when a space appears before the
5980 number.")
5981 (license license:gpl3+)))
5982
5983 (define-public emacs-feature-mode
5984 (let ((version "20190801")
5985 (revision "1")
5986 (commit "11ae1671629bfedaa553c7b819676d64eb320992"))
5987 (package
5988 (name "emacs-feature-mode")
5989 (version (git-version version revision commit))
5990 (source (origin
5991 (method git-fetch)
5992 (uri (git-reference
5993 (url "https://github.com/michaelklishin/cucumber.el")
5994 (commit commit)))
5995 (file-name (git-file-name name version))
5996 (sha256
5997 (base32
5998 "0yd4gkxz9xcbgibfgr8apsid3f83nmg5jgqk5nql0linj5gymc28"))))
5999 (build-system emacs-build-system)
6000 (arguments
6001 `(#:include (cons* "^features\\/" "snippets\\/" "^support\\/"
6002 %default-include)))
6003 (home-page "https://github.com/michaelklishin/cucumber.el/")
6004 (synopsis "Emacs mode for editing Gherkin plain text user stories")
6005 (description "Major mode for editing Gherkin (popularized by the
6006 Cucumber tool) user stories. Also known by the name @code{cucumber.el}.")
6007 (license license:gpl2+))))
6008
6009 (define-public emacs-org-bullets
6010 (package
6011 (name "emacs-org-bullets")
6012 (version "0.2.4")
6013 (source
6014 (origin
6015 (method git-fetch)
6016 (uri (git-reference
6017 (url "https://github.com/sabof/org-bullets")
6018 (commit version)))
6019 (file-name (git-file-name name version))
6020 (sha256
6021 (base32 "10nr4sjffnqbllv6gmak6pviyynrb7pi5nvrq331h5alm3xcpq0w"))))
6022 (build-system emacs-build-system)
6023 (home-page "https://github.com/sabof/org-bullets")
6024 (synopsis "Show bullets in org-mode as UTF-8 characters")
6025 (description
6026 "This package provides an Emacs minor mode causing bullets in
6027 @code{org-mode} to be rendered as UTF-8 characters.")
6028 (license license:gpl3+)))
6029
6030 (define-public emacs-org-drill
6031 (package
6032 (name "emacs-org-drill")
6033 (version "2.7.0")
6034 (source
6035 (origin
6036 (method git-fetch)
6037 (uri (git-reference
6038 (url "https://gitlab.com/phillord/org-drill")
6039 (commit version)))
6040 (file-name (git-file-name name version))
6041 (sha256
6042 (base32 "13y302lyscdqrba1sfx60yf5ji2xi7fbsvjsjbw7hiz63kg6rccy"))))
6043 (build-system emacs-build-system)
6044 (propagated-inputs
6045 `(("emacs-org" ,emacs-org)
6046 ("emacs-persist" ,emacs-persist)))
6047 (home-page "https://gitlab.com/phillord/org-drill")
6048 (synopsis "Flash card memorization system using Org mode")
6049 (description
6050 "This package uses spaced repetition algorithms to conduct interactive
6051 drill sessions to aid in memorization. In these sessions you are shown flash
6052 cards created in Org mode.")
6053 (license license:gpl3+)))
6054
6055 (define-public emacs-org-superstar
6056 (package
6057 (name "emacs-org-superstar")
6058 (version "1.4.0")
6059 (source
6060 (origin
6061 (method git-fetch)
6062 (uri (git-reference
6063 (url "https://github.com/integral-dw/org-superstar-mode")
6064 (commit (string-append "v" version))))
6065 (file-name (git-file-name name version))
6066 (sha256
6067 (base32 "1aklp6nk05ghpq7ybsbvn28wrygfwqvq58k1hjll97nbhd7h0gyb"))))
6068 (build-system emacs-build-system)
6069 (propagated-inputs
6070 `(("emacs-org" ,emacs-org)))
6071 (home-page "https://github.com/integral-dw/org-superstar-mode")
6072 (synopsis "Prettify headings and plain lists in Org mode")
6073 (description "This package prettifies headings and plain lists in
6074 Org mode. It is a direct descendant of @code{org-bullets}, with most
6075 of the code base completely rewritten.
6076
6077 Currently, this package prettifies Org heading lines by:
6078 @itemize
6079 @item replacing trailing bullets by UTF-8 bullets,
6080 @item hiding leading stars, customizing their look or removing them from vision,
6081 @item applying a custom face to the header bullet,
6082 @item applying a custom face to the leading bullets,
6083 @item using double-bullets for inline tasks,
6084 @item (optional) using special bullets for TODO keywords.
6085 @end itemize
6086
6087 It also prettifies Org plain list bullets by:
6088 @itemize
6089 @item replacing each bullet type (*, + and -) with UTF-8 bullets,
6090 @item applying a custom face to item bullets.
6091 @end itemize
6092
6093 Features degrade gracefully when viewed from terminal.")
6094 (license license:gpl3+)))
6095
6096 (define-public emacs-org-pomodoro
6097 ;; Last release version was from 2016.
6098 (let ((commit "aa07c11318f91219336197e62c47bc7a3d090479")
6099 (revision "1"))
6100 (package
6101 (name "emacs-org-pomodoro")
6102 (version (git-version "2.1.0" revision commit))
6103 (source
6104 (origin
6105 (method git-fetch)
6106 (uri (git-reference
6107 (url "https://github.com/marcinkoziej/org-pomodoro")
6108 (commit commit)))
6109 (file-name (git-file-name name version))
6110 (sha256
6111 (base32 "0nbprh2nhnmb7ngp9ndr6zr37ashcsvpi5slv7a37x1dl7j6w1k4"))))
6112 (build-system emacs-build-system)
6113 (propagated-inputs
6114 `(("emacs-alert" ,emacs-alert)))
6115 (arguments
6116 `(#:include (cons "^resources\\/" %default-include)
6117 #:tests? #t
6118 #:test-command '("emacs" "--batch"
6119 "-l" "org-pomodoro-tests.el"
6120 "-f" "ert-run-tests-batch-and-exit")
6121 #:phases
6122 (modify-phases %standard-phases
6123 (add-before 'check 'make-tests-writable
6124 (lambda _
6125 (make-file-writable "org-pomodoro-tests.el")
6126 #t))
6127 (add-before 'check 'add-require
6128 (lambda _
6129 (emacs-batch-edit-file "org-pomodoro-tests.el"
6130 `(progn (progn (goto-char (point-min))
6131 (re-search-forward
6132 "ert-deftest")
6133 (beginning-of-line)
6134 (forward-line -1)
6135 (insert "(require 'org-pomodoro)"))
6136 (basic-save-buffer)))
6137 #t)))))
6138 (home-page "https://github.com/marcinkoziej/org-pomodoro")
6139 (synopsis "Pomodoro technique for org-mode")
6140 (description "@code{emacs-org-pomodoro} adds very basic support for
6141 Pomodoro technique in Emacs org-mode.
6142
6143 Run @code{M-x org-pomodoro} for the task at point or select one of the
6144 last tasks that you clocked time for. Each clocked-in pomodoro starts
6145 a timer of 25 minutes and after each pomodoro a break timer of 5
6146 minutes is started automatically. Every 4 breaks a long break is
6147 started with 20 minutes. All values are customizable.")
6148 (license license:gpl3+))))
6149
6150 (define-public emacs-org-sidebar
6151 (package
6152 (name "emacs-org-sidebar")
6153 (version "0.2")
6154 (source
6155 (origin
6156 (method git-fetch)
6157 (uri (git-reference
6158 (url "https://github.com/alphapapa/org-sidebar")
6159 (commit version)))
6160 (file-name (git-file-name name version))
6161 (sha256
6162 (base32 "106h06vjfbqfj761vbxwymd6612ds8c6fk053yzgbrqzm3hn2c03"))))
6163 (build-system emacs-build-system)
6164 (propagated-inputs
6165 `(("emacs-dash" ,emacs-dash)
6166 ("emacs-org-super-agenda" ,emacs-org-super-agenda)
6167 ("emacs-org" ,emacs-org)
6168 ("emacs-org-ql" ,emacs-org-ql)
6169 ("emacs-s" ,emacs-s)))
6170 (home-page "https://github.com/alphapapa/org-sidebar")
6171 (synopsis "Helpful sidebar for Org buffers")
6172 (description "This package provides a sidebar for Org buffers. At the
6173 top is a chronological list of scheduled and deadlined tasks in the current
6174 buffer (similar to the Org agenda ,but without all its features), and below
6175 that is a list of all other non-done to-do items. If the buffer is narrowed,
6176 the sidebar only shows items in the narrowed portion; this allows seeing an
6177 overview of tasks in a subtree.")
6178 (license license:gpl3+)))
6179
6180 (define-public emacs-org-trello
6181 (package
6182 (name "emacs-org-trello")
6183 (version "0.8.1")
6184 (source
6185 (origin
6186 (method git-fetch)
6187 (uri (git-reference
6188 (url "https://github.com/org-trello/org-trello")
6189 (commit version)))
6190 (file-name (git-file-name name version))
6191 (sha256
6192 (base32
6193 "02gx3kv4mkij69ln8x8wf9n28x17pbb4kv85v78d3lxph7ykqimc"))))
6194 (build-system emacs-build-system)
6195 (propagated-inputs
6196 `(("emacs-dash" ,emacs-dash)
6197 ("emacs-deferred" ,emacs-deferred)
6198 ("emacs-f" ,emacs-f)
6199 ("emacs-helm" ,emacs-helm)
6200 ("emacs-request" ,emacs-request)
6201 ("emacs-s" ,emacs-s)))
6202 (home-page "https://org-trello.github.io")
6203 (synopsis "Emacs minor mode for interacting with Trello")
6204 (description "This package provides an Emacs minor mode to extend
6205 @code{org-mode} with Trello abilities. Trello is an online project
6206 organizer.")
6207 (license license:gpl3+)))
6208
6209 (define-public emacs-org-tanglesync
6210 (let ((commit "d99181f173b4e55b4e835d99fcd415e62beb047f")
6211 (revision "2"))
6212 (package
6213 (name "emacs-org-tanglesync")
6214 (version (git-version "0.6" revision commit))
6215 (source
6216 (origin
6217 (method git-fetch)
6218 (uri (git-reference
6219 (url "https://github.com/mtekman/org-tanglesync.el")
6220 (commit commit)))
6221 (file-name (git-file-name name version))
6222 (sha256
6223 (base32 "0x94gy1bgfd1f3p9w2bfrqj11bwy9ql0cpi1gw6srpj7kykx0lml"))))
6224 (build-system emacs-build-system)
6225 (propagated-inputs
6226 `(("emacs-org" ,emacs-org)))
6227 (home-page "https://github.com/mtekman/org-tanglesync.el")
6228 (synopsis "Sync Org source blocks with tangled external files")
6229 (description "This package automatically pulls changes from source code
6230 to their corresponding tangled blocks.")
6231 (license license:gpl3+))))
6232
6233 (define-public emacs-company-flow
6234 (let ((commit "76ef585c70d2a3206c2eadf24ba61e59124c3a16")
6235 (revision "1"))
6236 (package
6237 (name "emacs-company-flow")
6238 (version (git-version "0.1.0" revision commit))
6239 (source (origin
6240 (method git-fetch)
6241 (uri (git-reference
6242 (url "https://github.com/aaronjensen/company-flow/")
6243 (commit commit)))
6244 (file-name (git-file-name name version))
6245 (sha256
6246 (base32
6247 "0zs9cblnbkxa0dxw4lyllmybqizxcdx96gv8jlhx20nrjpi78piw"))))
6248 (build-system emacs-build-system)
6249 (propagated-inputs
6250 `(("emacs-company" ,emacs-company)
6251 ("emacs-dash" ,emacs-dash)))
6252 (home-page "https://github.com/aaronjensen/company-flow/")
6253 (synopsis "Flow backend for @code{company-mode}")
6254 (description
6255 "This package provides completion for JavaScript files utilizing Flow.")
6256 (license license:gpl3+))))
6257
6258 (define-public emacs-habitica
6259 (let ((commit "c45c602ddf9d6cbb0e3baf5cb3e1b7ef90f2759d")
6260 (revision "1"))
6261 (package
6262 (name "emacs-habitica")
6263 (version (git-version "1.0" revision commit))
6264 (source
6265 (origin
6266 (method git-fetch)
6267 (uri (git-reference
6268 (url "https://github.com/abrochard/emacs-habitica")
6269 (commit commit)))
6270 (file-name (git-file-name name version))
6271 (sha256
6272 (base32
6273 "0wgnzn3z98bl28jgqi7xklw9fwx2wwgihj3mq0jb8ah4vn70d0j3"))))
6274 (build-system emacs-build-system)
6275 (home-page "https://github.com/abrochard/emacs-habitica")
6276 (synopsis "Emacs interface for Habitica")
6277 (description "Emacs extension for @uref{https://habitica.com/, Habitica},
6278 a RPG style habit tracker and todo list.")
6279 (license license:gpl3+))))
6280
6281 (define-public emacs-atom-one-dark-theme
6282 (let ((commit "1f1185bf667a38d3d0d180ce85fd4c131818aae2")
6283 (revision "0"))
6284 (package
6285 (name "emacs-atom-one-dark-theme")
6286 (version (git-version "0.4.0" revision commit))
6287 (source (origin
6288 (method git-fetch)
6289 (uri (git-reference
6290 (url "https://github.com/jonathanchu/atom-one-dark-theme")
6291 (commit commit)))
6292 (sha256
6293 (base32
6294 "1alma16hg3mfjly8a9s3mrswkjjx4lrpdnf43869hn2ibkn7zx9z"))
6295 (file-name (git-file-name name version))))
6296 (build-system emacs-build-system)
6297 (home-page "https://github.com/jonathanchu/atom-one-dark-theme")
6298 (synopsis "Atom One Dark color theme for Emacs")
6299 (description "An Emacs port of the Atom One Dark theme from Atom.io.")
6300 (license license:gpl3+))))
6301
6302 (define-public emacs-zenburn-theme
6303 (package
6304 (name "emacs-zenburn-theme")
6305 (version "2.6")
6306 (source
6307 (origin
6308 (method git-fetch)
6309 (uri (git-reference
6310 (url "https://github.com/bbatsov/zenburn-emacs")
6311 (commit (string-append "v" version))))
6312 (file-name (git-file-name name version))
6313 (sha256
6314 (base32 "1n87r5hs7h5r8dgfid66skpzcypl9hssr9m3npp916g6jfsi782f"))))
6315 (build-system emacs-build-system)
6316 (home-page "https://github.com/bbatsov/zenburn-emacs")
6317 (synopsis "Low contrast color theme for Emacs")
6318 (description
6319 "Zenburn theme is a port of the popular Vim Zenburn theme for Emacs.
6320 It is built on top of the custom theme support in Emacs 24 or later.")
6321 (license license:gpl3+)))
6322
6323 (define-public emacs-moe-theme-el
6324 (let ((commit "6e086d855d6bb446bbd1090742815589a81a915f")
6325 (version "1.0")
6326 (revision "1"))
6327 (package
6328 (name "emacs-moe-theme-el")
6329 (version (git-version version revision commit))
6330 (source
6331 (origin
6332 (method git-fetch)
6333 (uri (git-reference
6334 (url "https://github.com/kuanyui/moe-theme.el")
6335 (commit commit)))
6336 (file-name (git-file-name name version))
6337 (sha256
6338 (base32 "0xj4wfd7h4jqnr193pizm9frf6lmwjr0dsdv2l9mqh9k691z1dnc"))))
6339 (build-system emacs-build-system)
6340 (home-page "https://github.com/kuanyui/moe-theme.el")
6341 (synopsis "Anime-inspired color themes")
6342 (description
6343 "This package provides vibrant color schemes with light and dark
6344 variants.")
6345 (license license:gpl3+))))
6346
6347 (define-public emacs-solarized-theme
6348 (package
6349 (name "emacs-solarized-theme")
6350 (version "1.3.1")
6351 (source
6352 (origin
6353 (method git-fetch)
6354 (uri (git-reference
6355 (url "https://github.com/bbatsov/solarized-emacs/")
6356 (commit (string-append "v" version))))
6357 (file-name (git-file-name name version))
6358 (sha256
6359 (base32 "15ql8xcixgm7mbs7rsbybwszanqibq057j5b5ds89a31dw7zxf1g"))))
6360 (build-system emacs-build-system)
6361 (propagated-inputs
6362 `(("emacs-dash" ,emacs-dash)))
6363 (home-page "https://github.com/bbatsov/solarized-emacs")
6364 (synopsis "Port of the Solarized theme for Emacs")
6365 (description
6366 "Solarized for Emacs is a port of the Solarized theme for Vim. This
6367 package provides a light and a dark variant.")
6368 (license license:gpl3+)))
6369
6370 (define-public emacs-poet-theme
6371 (let ((commit "d84f7b259cc9b6ff8d442cf4c38bd6c7065ff8f4")
6372 (revision "0"))
6373 (package
6374 (name "emacs-poet-theme")
6375 (version (git-version "0" revision commit))
6376 (source
6377 (origin
6378 (method git-fetch)
6379 (uri (git-reference
6380 (url "https://github.com/kunalb/poet")
6381 (commit commit)))
6382 (file-name (git-file-name name version))
6383 (sha256
6384 (base32
6385 "0a84jdaj619mb59a46dmkk2sfs42rylqk9ryl1drgs8d3lia79mz"))))
6386 (build-system emacs-build-system)
6387 (home-page "https://github.com/kunalb/poet/")
6388 (synopsis "Emacs theme for prose")
6389 (description
6390 "Emacs has very good support for multiple fonts in a single file. Poet
6391 uses this support to make it much more convenient to write prose within Emacs,
6392 with particular attention paid to @code{org-mode} and @code{markdown-mode}.
6393 Code blocks, tables, etc are formatted in monospace text with the appropriate
6394 backgrounds.")
6395 (license license:expat))))
6396
6397 (define-public emacs-ahungry-theme
6398 (package
6399 (name "emacs-ahungry-theme")
6400 (version "1.10.0")
6401 (source
6402 (origin (method url-fetch)
6403 (uri (string-append "https://elpa.gnu.org/packages/ahungry-theme-"
6404 version ".tar"))
6405 (sha256
6406 (base32
6407 "14q5yw56n82qph09bk7wmj5b1snhh9w0nk5s1l7yn9ldg71xq6pm"))))
6408 (build-system emacs-build-system)
6409 (home-page "https://github.com/ahungry/color-theme-ahungry")
6410 (synopsis "Ahungry color theme for Emacs")
6411 (description "Ahungry theme for Emacs provides bright and bold colors.
6412 If you load it from a terminal, you will be able to make use of the
6413 transparent background. If you load it from a GUI, it will default to a
6414 dark background.")
6415 (license license:gpl3+)))
6416
6417 (define-public emacs-gruvbox-theme
6418 (package
6419 (name "emacs-gruvbox-theme")
6420 (version "1.28.0")
6421 (source (origin
6422 (method git-fetch)
6423 (uri (git-reference
6424 (url "https://github.com/greduan/emacs-theme-gruvbox")
6425 (commit version)))
6426 (file-name (git-file-name name version))
6427 (sha256
6428 (base32
6429 "00qq92gp1g55pzm97rh7k0dgxy44pxziridl8kqm4rbpi31r7k9p"))))
6430 (build-system emacs-build-system)
6431 (propagated-inputs
6432 `(("emacs-autothemer" ,emacs-autothemer)))
6433 (home-page "https://github.com/greduan/emacs-theme-gruvbox")
6434 (synopsis "Gruvbox is a retro groove color scheme ported from Vim")
6435 (description
6436 "Gruvbox is heavily inspired by badwolf, jellybeans and solarized.
6437
6438 Designed as a bright theme with pastel 'retro groove' colors and light/dark
6439 mode switching in the way of solarized. The main focus when developing gruvbox
6440 is to keep colors easily distinguishable, contrast enough and still pleasant
6441 for the eyes.")
6442 (license license:expat))) ; MIT license
6443
6444 (define-public emacs-spacegray-theme
6445 (let ((commit "9826265c2bceb2ebc1c5e16a45021da0253ace97")
6446 (revision "0"))
6447 (package
6448 (name "emacs-spacegray-theme")
6449 (version (git-version "0" revision commit))
6450 (source (origin
6451 (method git-fetch)
6452 (uri (git-reference
6453 (url "https://github.com/bruce/emacs-spacegray-theme")
6454 (commit commit)))
6455 (file-name (git-file-name name version))
6456 (sha256
6457 (base32
6458 "0aplwmm17ypbns5blc4rf5rr6dasj0zp5ibykpfl43fh4bd8z89n"))))
6459 (build-system emacs-build-system)
6460 (home-page "https://github.com/bruce/emacs-spacegray-theme")
6461 (synopsis "Port of Sublime Text's Spacegray theme for Emacs")
6462 (description
6463 "@code{spacegray-theme} is an Emacs port of the Spacegray theme from
6464 Sublime Text. It features a dark blue/gray background and soft blue, green,
6465 orange and red as accent colors.")
6466 (license license:expat)))) ; MIT license
6467
6468 (define-public emacs-2048-game
6469 (package
6470 (name "emacs-2048-game")
6471 (version "20151026.1233")
6472 (source
6473 (origin
6474 (method url-fetch)
6475 (uri (string-append "https://melpa.org/packages/2048-game-"
6476 version ".el"))
6477 (sha256
6478 (base32
6479 "0gy2pvz79whpavp4jmz8h9krzn7brmvv3diixi1d4w51pcdvaldd"))))
6480 (build-system emacs-build-system)
6481 (home-page "https://hg.sr.ht/~zck/game-2048")
6482 (synopsis "Implementation of the game 2048 in Emacs Lisp")
6483 (description
6484 "This program is an implementation of 2048 for Emacs.
6485 The goal of this game is to create a tile with value 2048. The size of the
6486 board and goal value can be customized.")
6487 (license license:gpl3+)))
6488
6489 (define-public emacs-chess
6490 (package
6491 (name "emacs-chess")
6492 (version "2.0.4")
6493 (source
6494 (origin
6495 (method url-fetch)
6496 (uri (string-append "https://elpa.gnu.org/packages/"
6497 "chess-" version ".tar"))
6498 (sha256
6499 (base32 "1sq1bjmp513vldfh7hc2bbfc54665abqiz0kqgqq3gijckaxn5js"))))
6500 (build-system emacs-build-system)
6501 (arguments
6502 `(#:phases
6503 (modify-phases %standard-phases
6504 (add-after 'install 'install-pieces
6505 (lambda* (#:key outputs #:allow-other-keys)
6506 (let* ((out (assoc-ref outputs "out"))
6507 (pieces
6508 (string-append out "/share/emacs/site-lisp/pieces")))
6509 (mkdir-p pieces)
6510 (copy-recursively "pieces" pieces)
6511 #t))))))
6512 (home-page "https://elpa.gnu.org/packages/chess.html")
6513 (synopsis "Play chess in GNU Emacs")
6514 (description
6515 "Chess is an Emacs Lisp library and several clients on top of the
6516 underlying library functionality for performing various activities related to
6517 the game of chess.")
6518 (license license:gpl3+)))
6519
6520 (define-public emacs-4clojure
6521 ;; There is no release. Base version is extracted from Version keyword in
6522 ;; the main file.
6523 (let ((commit "4eccf8c7d4341a36c269451838114b27836699f9")
6524 (revision "1"))
6525 (package
6526 (name "emacs-4clojure")
6527 (version (git-version "0.2.1" revision commit))
6528 (source
6529 (origin
6530 (method git-fetch)
6531 (uri (git-reference
6532 (url "https://github.com/emacsorphanage/4clojure")
6533 (commit commit)))
6534 (file-name (git-file-name name version))
6535 (sha256
6536 (base32 "19x653lzc1dxil4ix257hciidbdmbhaxhs6qhlkwi9ygjrlrgvnk"))))
6537 (build-system emacs-build-system)
6538 (propagated-inputs
6539 `(("emacs-request" ,emacs-request)))
6540 (home-page "https://github.com/emacsorphanage/4clojure/")
6541 (synopsis "Open and evaluate 4clojure questions in Emacs")
6542 (description "Emacs 4clojure interacts with
6543 @url{http://www.4clojure.com, 4clojure} problems. You can open a specific
6544 question and move to the next or previous one. You can also verify your
6545 answers.")
6546 (license license:gpl3+))))
6547
6548 (define-public emacs-base16-theme
6549 (package
6550 (name "emacs-base16-theme")
6551 (version "2.2")
6552 (source
6553 (origin
6554 (method git-fetch)
6555 (uri (git-reference
6556 (url "https://github.com/belak/base16-emacs")
6557 (commit version)))
6558 (file-name (git-file-name name version))
6559 (sha256
6560 (base32 "01w89g413s1da6rf94y1xnhw79cjy2bqb01yfjs58cy492cm0vr6"))))
6561 (build-system emacs-build-system)
6562 (home-page "https://github.com/belak/base16-emacs")
6563 (synopsis "Base16 color themes for Emacs")
6564 (description
6565 "Base16 provides carefully chosen syntax highlighting and a default set
6566 of sixteen colors suitable for a wide range of applications. Base16 is not a
6567 single theme but a set of guidelines with numerous implementations.")
6568 (license license:expat)))
6569
6570 (define-public emacs-solaire-mode
6571 (package
6572 (name "emacs-solaire-mode")
6573 (version "1.0.9")
6574 (source
6575 (origin
6576 (method git-fetch)
6577 (uri (git-reference
6578 (url "https://github.com/hlissner/emacs-solaire-mode")
6579 (commit (string-append "v" version))))
6580 (file-name (git-file-name name version))
6581 (sha256
6582 (base32 "011m4r7s6i9lgjymh7jgq5jwwrpz4vmpvp3c8d4ix96v5hi04kzg"))))
6583 (build-system emacs-build-system)
6584 (home-page "https://github.com/hlissner/emacs-solaire-mode")
6585 (synopsis "Change background of file-visiting buffers in Emacs")
6586 (description
6587 "@code{solaire-mode} is inspired by editors which visually distinguish
6588 code-editing windows from sidebars, popups, terminals, ecetera. It changes the
6589 background of file-visiting buffers (and certain aspects of the UI) to make
6590 them easier to distinguish from other, less important buffers.")
6591 (license license:expat)))
6592
6593 (define-public emacs-prescient
6594 (package
6595 (name "emacs-prescient")
6596 (version "5.0")
6597 (source
6598 (origin
6599 (method git-fetch)
6600 (uri (git-reference
6601 (url "https://github.com/raxod502/prescient.el")
6602 (commit (string-append "v" version))))
6603 (file-name (git-file-name name version))
6604 (sha256
6605 (base32 "001q4l730bhw4d508jxlpzh1z459qzpg6rbncp12jrfm5yidksix"))))
6606 (build-system emacs-build-system)
6607 (propagated-inputs
6608 `(("emacs-company" ,emacs-company)
6609 ("emacs-ivy" ,emacs-ivy)
6610 ("emacs-selectrum" ,emacs-selectrum)))
6611 (home-page "https://github.com/raxod502/prescient.el/")
6612 (synopsis "Emacs library for sorting and filtering candidates")
6613 (description
6614 "Prescient is a library for sorting and filtering, as well as extensions
6615 for Ivy and Company that make use of the library.")
6616 (license license:expat)))
6617
6618 (define-public emacs-selectrum
6619 (package
6620 (name "emacs-selectrum")
6621 (version "2.0")
6622 (source
6623 (origin
6624 (method git-fetch)
6625 (uri (git-reference
6626 (url "https://github.com/raxod502/selectrum")
6627 (commit (string-append "v" version))))
6628 (file-name (git-file-name name version))
6629 (sha256
6630 (base32 "08wm4ybidn8g7sy5a009lnsm0f1p7a3jfzpzxnzylvnyrmyhi3y4"))))
6631 (build-system emacs-build-system)
6632 (home-page "https://github.com/raxod502/selectrum/")
6633 (synopsis "Incremental narrowing in Emacs")
6634 (description "Selectrum is a solution for incremental narrowing in
6635 Emacs, replacing Helm, Ivy, and IDO. Its design philosophy is based
6636 on choosing the right abstractions and prioritizing consistency and
6637 predictability over special-cased improvements for particular cases.
6638 As such, Selectrum follows existing Emacs conventions where they exist
6639 and are reasonable, and it declines to implement features which have
6640 marginal benefit compared to the additional complexity of a new
6641 interface.")
6642 (license license:expat)))
6643
6644 (define-public emacs-smartparens
6645 (package
6646 (name "emacs-smartparens")
6647 (version "1.11.0")
6648 (source
6649 (origin
6650 (method git-fetch)
6651 (uri (git-reference
6652 (url "https://github.com/Fuco1/smartparens")
6653 (commit version)))
6654 (file-name (git-file-name name version))
6655 (sha256
6656 (base32 "0zij2f2rjjym98w68jkp10n1ckpfprlkk217c3fg16hz5nq4vnm6"))))
6657 (build-system emacs-build-system)
6658 (propagated-inputs
6659 `(("emacs-dash" ,emacs-dash)
6660 ("emacs-markdown-mode" ,emacs-markdown-mode)))
6661 (home-page "https://github.com/Fuco1/smartparens")
6662 (synopsis "Paredit-like insertion, wrapping and navigation with user
6663 defined pairs")
6664 (description
6665 "Smartparens is a minor mode for Emacs that deals with parens pairs
6666 and tries to be smart about it. It started as a unification effort to
6667 combine functionality of several existing packages in a single,
6668 compatible and extensible way to deal with parentheses, delimiters, tags
6669 and the like. Some of these packages include autopair, textmate,
6670 wrap-region, electric-pair-mode, paredit and others. With the basic
6671 features found in other packages it also brings many improvements as
6672 well as completely new features.")
6673 (license license:gpl3+)))
6674
6675 (define-public emacs-highlight-symbol
6676 ;; We prefer a more recent commit that provides an option to squelch
6677 ;; echo-area alerts that can drown out useful information like eldoc
6678 ;; messages.
6679 (let ((commit "7a789c779648c55b16e43278e51be5898c121b3a")
6680 (version "1.3")
6681 (revision "1"))
6682 (package
6683 (name "emacs-highlight-symbol")
6684 (version (git-version version revision commit))
6685 (source
6686 (origin
6687 (method git-fetch)
6688 (uri (git-reference
6689 (url "https://github.com/nschum/highlight-symbol.el")
6690 (commit commit)))
6691 (file-name (git-file-name name version))
6692 (sha256
6693 (base32 "19cgyk0sh8nsmf3jbi92i8qsdx4l4yilfq5jj9zfdbj9p5gvwx96"))))
6694 (build-system emacs-build-system)
6695 (home-page "https://nschum.de/src/emacs/highlight-symbol/")
6696 (synopsis "Automatic and manual symbol highlighting for Emacs")
6697 (description
6698 "Use @code{highlight-symbol} to toggle highlighting of the symbol at
6699 point throughout the current buffer. Use @code{highlight-symbol-mode} to keep
6700 the symbol at point highlighted.
6701
6702 The functions @code{highlight-symbol-next}, @code{highlight-symbol-prev},
6703 @code{highlight-symbol-next-in-defun} and
6704 @code{highlight-symbol-prev-in-defun} allow for cycling through the locations
6705 of any symbol at point. Use @code{highlight-symbol-nav-mode} to enable key
6706 bindings @code{M-p} and @code{M-p} for navigation. When
6707 @code{highlight-symbol-on-navigation-p} is set, highlighting is triggered
6708 regardless of @code{highlight-symbol-idle-delay}.
6709
6710 @code{highlight-symbol-query-replace} can be used to replace the symbol. ")
6711 (license license:gpl2+))))
6712
6713 (define-public emacs-symbol-overlay
6714 (package
6715 (name "emacs-symbol-overlay")
6716 (version "4.2")
6717 (source
6718 (origin
6719 (method git-fetch)
6720 (uri (git-reference
6721 (url "https://github.com/wolray/symbol-overlay")
6722 (commit version)))
6723 (file-name (git-file-name name version))
6724 (sha256
6725 (base32 "10n0871xzycifyqp73xnbqmrgy60imlb26yhm3p6vfj3d84mg1b2"))))
6726 (build-system emacs-build-system)
6727 (home-page "https://github.com/wolray/symbol-overlay")
6728 (synopsis "Highlight symbols and perform various search operations on them")
6729 (description
6730 "This package provides functions for highlighting and navigating
6731 between symbols.")
6732 (license license:gpl3+)))
6733
6734 (define-public emacs-hl-todo
6735 (package
6736 (name "emacs-hl-todo")
6737 (version "3.1.2")
6738 (source (origin
6739 (method git-fetch)
6740 (uri (git-reference
6741 (url "https://github.com/tarsius/hl-todo")
6742 (commit (string-append "v" version))))
6743 (file-name (git-file-name name version))
6744 (sha256
6745 (base32
6746 "1i5mdmkbrxqx75grwl01pywbgl8pasr00mq6fidspp0aligsbg6w"))))
6747 (build-system emacs-build-system)
6748 (home-page "https://github.com/tarsius/hl-todo")
6749 (synopsis "Emacs mode to highlight TODO and similar keywords")
6750 (description
6751 "This package provides an Emacs mode to highlight TODO and similar
6752 keywords in comments and strings. This package also provides commands for
6753 moving to the next or previous keyword and to invoke @code{occur} with a
6754 regexp that matches all known keywords.")
6755 (license license:gpl3+)))
6756
6757 (define-public emacs-perspective
6758 (package
6759 (name "emacs-perspective")
6760 (version "2.11")
6761 (source
6762 (origin
6763 (method git-fetch)
6764 (uri (git-reference
6765 (url "https://github.com/nex3/perspective-el")
6766 (commit version)))
6767 (file-name (git-file-name name version))
6768 (sha256
6769 (base32
6770 "0nka5z6226r174ligja023qx2bb1pfyjbanafxprbyxkr17b2794"))))
6771 (build-system emacs-build-system)
6772 (arguments
6773 `(#:tests? #t
6774 #:test-command '("emacs" "-Q" "-batch" "-L" "."
6775 "-l" "test/test-perspective.el"
6776 "-f" "ert-run-tests-batch-and-exit")))
6777 (home-page "https://github.com/nex3/perspective-el")
6778 (synopsis "Switch between named \"perspectives\"")
6779 (description
6780 "This package provides tagged workspaces in Emacs, similar to workspaces in
6781 windows managers such as Awesome and XMonad. @code{perspective.el} provides
6782 multiple workspaces (or \"perspectives\") for each Emacs frame. Each
6783 perspective is composed of a window configuration and a set of buffers.
6784 Switching to a perspective activates its window configuration, and when in a
6785 perspective only its buffers are available by default.")
6786 ;; This package is released under the same license as Emacs (GPLv3+) or
6787 ;; the Expat license.
6788 (license license:gpl3+)))
6789
6790 (define-public emacs-persp-mode
6791 (package
6792 (name "emacs-persp-mode")
6793 (version "2.9.8")
6794 (source
6795 (origin
6796 (method git-fetch)
6797 (uri (git-reference
6798 (url "https://github.com/Bad-ptr/persp-mode.el")
6799 (commit (string-append "v" version))))
6800 (file-name (git-file-name name version))
6801 (sha256
6802 (base32
6803 "0b4y7a6j70s9lvr37riyy9k5kh3yvmx0m6nd9c0c8572ji4ij65g"))))
6804 (build-system emacs-build-system)
6805 (home-page "https://github.com/Bad-ptr/persp-mode.el")
6806 (synopsis "Switch between named \"perspectives\" shared among frames")
6807 (description
6808 "This package extends @code{perspective.el} to enable perspectives that
6809 can be saved to and restored from a file.")
6810 (license license:gpl2+)))
6811
6812 (define-public emacs-test-simple
6813 (package
6814 (name "emacs-test-simple")
6815 (version "1.3.0")
6816 (source
6817 (origin
6818 (method url-fetch)
6819 (uri (string-append "https://elpa.gnu.org/packages/test-simple-"
6820 version ".el"))
6821 (sha256
6822 (base32
6823 "1yd61jc9ds95a5n09052kwc5gasy57g4lxr0jsff040brlyi9czz"))))
6824 (build-system emacs-build-system)
6825 (home-page "https://github.com/rocky/emacs-test-simple")
6826 (synopsis "Simple unit test framework for Emacs Lisp")
6827 (description
6828 "Test Simple is a simple unit test framework for Emacs Lisp. It
6829 alleviates the need for context macros, enclosing specifications or required
6830 test tags. It supports both interactive and non-interactive use.")
6831 (license license:gpl3+)))
6832
6833 (define-public emacs-load-relative
6834 (package
6835 (name "emacs-load-relative")
6836 (version "1.3.1")
6837 (source
6838 (origin
6839 (method url-fetch)
6840 (uri (string-append "https://elpa.gnu.org/packages/load-relative-"
6841 version ".el"))
6842 (sha256
6843 (base32 "1m37scr82lqqy954fchjxrmdh4lngrl4d1yzxhp3yfjhsydizhrj"))))
6844 (build-system emacs-build-system)
6845 (home-page "https://github.com/rocky/emacs-load-relative")
6846 (synopsis "Emacs Lisp relative file loading related functions")
6847 (description
6848 "Provides functions which facilitate writing multi-file Emacs packages
6849 and running from the source tree without having to \"install\" code or fiddle
6850 with @{load-path}.
6851
6852 The main function, @code{load-relative}, loads an Emacs Lisp file relative to
6853 another (presumably currently running) Emacs Lisp file.")
6854 (license license:gpl3+)))
6855
6856 (define-public emacs-loc-changes
6857 (package
6858 (name "emacs-loc-changes")
6859 (version "1.2")
6860 (source
6861 (origin
6862 (method url-fetch)
6863 (uri (string-append "https://elpa.gnu.org/packages/loc-changes-"
6864 version ".el"))
6865 (sha256
6866 (base32
6867 "1x8fn8vqasayf1rb8a6nma9n6nbvkx60krmiahyb05vl5rrsw6r3"))))
6868 (build-system emacs-build-system)
6869 (home-page "https://github.com/rocky/emacs-loc-changes")
6870 (synopsis "Keeps track of positions even after buffer changes")
6871 (description
6872 "This Emacs package provides a mean to track important buffer positions
6873 after buffer changes.")
6874 (license license:gpl3+)))
6875
6876 (define-public emacs-realgud
6877 (package
6878 (name "emacs-realgud")
6879 (version "1.5.1")
6880 (source
6881 (origin
6882 (method git-fetch)
6883 (uri (git-reference
6884 (url "https://github.com/realgud/realgud/")
6885 (commit version)))
6886 (sha256
6887 (base32
6888 "1d3s23jk0i34wpyxfajydgyyvsxnpbqrfl0mgydsq7zw2c75ylnq"))
6889 (file-name (git-file-name name version))))
6890 (build-system emacs-build-system)
6891 (arguments
6892 `(#:tests? #t
6893 #:phases
6894 (modify-phases %standard-phases
6895 (add-after 'unpack 'fix-realgud:run-process-void-error
6896 ;; See: https://github.com/realgud/realgud/issues/269.
6897 (lambda _
6898 (substitute* '("realgud/debugger/gdb/gdb.el"
6899 "realgud/debugger/gub/gub.el")
6900 (("^\\(require 'load-relative\\).*" anchor)
6901 (string-append anchor
6902 "(require-relative-list \
6903 '(\"../../common/run\") \"realgud:\")\n")))
6904 #t))
6905 (add-after 'unpack 'fix-autogen-script
6906 (lambda _
6907 (substitute* "autogen.sh"
6908 (("./configure") "sh configure"))
6909 #t))
6910 (add-after 'fix-autogen-script 'autogen
6911 (lambda _
6912 (setenv "CONFIG_SHELL" "sh")
6913 (invoke "sh" "autogen.sh")))
6914 (add-after 'fix-autogen-script 'set-home
6915 (lambda _
6916 (setenv "HOME" (getenv "TMPDIR"))
6917 #t))
6918 (add-before 'patch-el-files 'remove-realgud-pkg.el
6919 (lambda _
6920 ;; FIXME: `patch-el-files' crashes on this file with error:
6921 ;; unable to locate "bashdb".
6922 (delete-file "./test/test-regexp-bashdb.el")
6923 #t)))
6924 #:include (cons* ".*\\.el$" %default-include)))
6925 (native-inputs
6926 `(("autoconf" ,autoconf)
6927 ("automake" ,automake)
6928 ("emacs-test-simple" ,emacs-test-simple)))
6929 (propagated-inputs
6930 `(("emacs-load-relative" ,emacs-load-relative)
6931 ("emacs-loc-changes" ,emacs-loc-changes)))
6932 (home-page "https://github.com/realgud/realgud/")
6933 (synopsis
6934 "Modular front-end for interacting with external debuggers")
6935 (description
6936 "RealGUD is a modular, extensible GNU Emacs front-end for interacting
6937 with external debuggers. It integrates various debuggers such as gdb, pdb,
6938 ipdb, jdb, lldb, bashdb, zshdb, etc. and allows to visually step code in the
6939 sources. Unlike GUD, it also supports running multiple debug sessions in
6940 parallel.")
6941 (license license:gpl3+)))
6942
6943 (define-public emacs-request
6944 (package
6945 (name "emacs-request")
6946 (version "0.3.2")
6947 (source (origin
6948 (method git-fetch)
6949 (uri (git-reference
6950 (url "https://github.com/tkf/emacs-request")
6951 (commit (string-append "v" version))))
6952 (file-name (git-file-name name version))
6953 (sha256
6954 (base32
6955 "1djywhvvb6kwdj0nd3axjvb7k2g06dzkc6hsf29w9rsk96vr8ryl"))))
6956 (build-system emacs-build-system)
6957 (arguments
6958 `(#:tests? #f)) ; requires network access.
6959 (propagated-inputs
6960 `(("emacs-deferred" ,emacs-deferred)))
6961 (home-page "https://github.com/tkf/emacs-request")
6962 (synopsis "Package for speaking HTTP in Emacs Lisp")
6963 (description "This package provides a HTTP request library with multiple
6964 backends. It supports url.el which is shipped with Emacs and the curl command
6965 line program.")
6966 (license license:gpl3+)))
6967
6968 (define-public emacs-rudel
6969 (package
6970 (name "emacs-rudel")
6971 (version "0.3.2")
6972 (source
6973 (origin
6974 (method url-fetch)
6975 (uri (string-append "https://elpa.gnu.org/packages/rudel-"
6976 version ".tar"))
6977 (sha256
6978 (base32 "03hcvpp6ykavidwn5x48gs986w1i5icvh7ks6p74pdaagpgw4jmk"))))
6979 (build-system emacs-build-system)
6980 (home-page "http://rudel.sourceforge.net/")
6981 (synopsis "Collaborative editing framework")
6982 (description
6983 "Rudel is a collaborative editing environment for GNU Emacs. Its purpose
6984 is to share buffers with other users in order to edit the contents of those
6985 buffers collaboratively. Rudel supports multiple backends to enable
6986 communication with other collaborative editors using different protocols,
6987 though currently Obby (for use with the Gobby editor) is the only
6988 fully-functional one.")
6989 (license license:gpl3+)))
6990
6991 (define-public emacs-hydra
6992 (package
6993 (name "emacs-hydra")
6994 (version "0.15.0")
6995 (source
6996 (origin
6997 (method git-fetch)
6998 (uri (git-reference
6999 (url "https://github.com/abo-abo/hydra")
7000 (commit version)))
7001 (file-name (git-file-name name version))
7002 (sha256
7003 (base32
7004 "0fapvhmhgc9kppf3bvkgry0cd7gyilg7sfvlscfrfjxpx4xvwsfy"))))
7005 (build-system emacs-build-system)
7006 (arguments
7007 `(#:tests? #t
7008 #:test-command '("make" "test")))
7009 (home-page "https://github.com/abo-abo/hydra")
7010 (synopsis "Make Emacs bindings that stick around")
7011 (description
7012 "This package can be used to tie related commands into a family of short
7013 bindings with a common prefix---a Hydra. Once you summon the Hydra (through
7014 the prefixed binding), all the heads can be called in succession with only a
7015 short extension. Any binding that isn't the Hydra's head vanquishes the
7016 Hydra. Note that the final binding, besides vanquishing the Hydra, will still
7017 serve its original purpose, calling the command assigned to it. This makes
7018 the Hydra very seamless; it's like a minor mode that disables itself
7019 automatically.")
7020 (license license:gpl3+)))
7021
7022 (define-public emacs-interleave
7023 (package
7024 (name "emacs-interleave")
7025 (version "1.4.0")
7026 (source
7027 (origin
7028 (method git-fetch)
7029 (uri
7030 (git-reference
7031 (url "https://github.com/rudolfochrist/interleave")
7032 (commit (string-append "interleave-" version))))
7033 (file-name (git-file-name name version))
7034 (sha256
7035 (base32 "0l5b681mrpk12lx5c16m7kc13p29z6zismwg1llsjg7cdmrmsrcb"))))
7036 (build-system emacs-build-system)
7037 (home-page "https://github.com/rudolfochrist/interleave")
7038 (synopsis "Emacs minor mode to interleave notes and text books")
7039 (description
7040 "Interleave is a minor mode that presents a document viewer side
7041 by side to an Org buffer with your notes relevant to the current page.")
7042 (license license:gpl3+)))
7043
7044 (define-public emacs-ivy
7045 (package
7046 (name "emacs-ivy")
7047 (version "0.13.1")
7048 (source
7049 (origin
7050 (method url-fetch)
7051 (uri (string-append "https://elpa.gnu.org/packages/ivy-" version ".tar"))
7052 (sha256
7053 (base32 "0n0ixhdykbdpis4krkqq6zncbby28p34742q96n0l91w0p19slcx"))))
7054 (build-system emacs-build-system)
7055 (propagated-inputs
7056 `(("emacs-hydra" ,emacs-hydra)))
7057 (home-page "https://github.com/abo-abo/swiper")
7058 (synopsis "Incremental vertical completion for Emacs")
7059 (description
7060 "This package provides @code{ivy-read} as an alternative to
7061 @code{completing-read} and similar functions. No attempt is made to determine
7062 the best candidate. Instead, the user can navigate candidates with
7063 @code{ivy-next-line} and @code{ivy-previous-line}. The matching is done by
7064 splitting the input text by spaces and re-building it into a regular
7065 expression.")
7066 (license license:gpl3+)))
7067
7068 (define-public emacs-counsel
7069 (package
7070 (name "emacs-counsel")
7071 (version "0.13.1")
7072 (source
7073 (origin
7074 (method url-fetch)
7075 (uri (string-append "https://elpa.gnu.org/packages/"
7076 "counsel-" version ".el"))
7077 (sha256
7078 (base32 "1y3hr3j5bh5mbyh1cqzxx04181qpvj4xyv1gym2gxcjd30nfllli"))))
7079 (build-system emacs-build-system)
7080 (propagated-inputs
7081 `(("emacs-swiper" ,emacs-swiper)))
7082 (home-page "https://github.com/abo-abo/swiper")
7083 (synopsis "Various completion functions using Ivy")
7084 (description
7085 "Just call one of the interactive functions in a file to complete the
7086 corresponding thing using Ivy.
7087
7088 The following completions are currently available:
7089 @itemize
7090 @item Symbol completion for Elisp, Common Lisp, Python, Clojure, C, C++.
7091 @item Describe functions for Elisp: function, variable, library, command,
7092 @item bindings, theme.
7093 @item Navigation functions: imenu, ace-line, semantic, outline.
7094 @item Git utilities: git-files, git-grep, git-log, git-stash, git-checkout.
7095 @item Grep utilities: grep, ag, pt, recoll, ack, rg.
7096 @item System utilities: process list, rhythmbox, linux-app.
7097 @item Many more.
7098 @end itemize")
7099 (license license:gpl3+)))
7100
7101 (define-public emacs-swiper
7102 (package
7103 (name "emacs-swiper")
7104 (version "0.13.1")
7105 (source
7106 (origin
7107 (method url-fetch)
7108 (uri (string-append "https://elpa.gnu.org/packages/"
7109 "swiper-" version ".el"))
7110 (sha256
7111 (base32 "06ild7kck0x5ry8bf0al24nh04q01q3jhj6jjl4xz8n2s6jnn70y"))))
7112 (build-system emacs-build-system)
7113 (propagated-inputs
7114 `(("emacs-ivy" ,emacs-ivy)))
7115 (home-page "https://github.com/abo-abo/swiper")
7116 (synopsis "Isearch with an overview")
7117 (description
7118 "This package gives an overview of the current regex search candidates.
7119 The search regex can be split into groups with a space. Each group is
7120 highlighted with a different face.
7121
7122 It can double as a quick `regex-builder', although only single lines will be
7123 matched.")
7124 (license license:gpl3+)))
7125
7126 (define-public emacs-ivy-xref
7127 (let ((commit "1a35fc0f070388701b05b0a455cbe262e924d547")
7128 (revision "1"))
7129 (package
7130 (name "emacs-ivy-xref")
7131 (version (git-version "0.1" revision commit))
7132 (source
7133 (origin
7134 (method git-fetch)
7135 (uri (git-reference
7136 (url "https://github.com/alexmurray/ivy-xref")
7137 (commit commit)))
7138 (file-name (git-file-name name version))
7139 (sha256
7140 (base32
7141 "0d71nm9d9ajp5i6dnl8h1hw9jqp8gd1ajgninb1h13i80rplzl9k"))))
7142 (build-system emacs-build-system)
7143 (propagated-inputs
7144 `(("emacs-ivy" ,emacs-ivy)))
7145 (home-page "https://github.com/alexmurray/ivy-xref")
7146 (synopsis "Ivy interface for @code{xref}")
7147 (description "This package provides an Ivy interface for selecting from
7148 @code{xref} results.")
7149 (license license:gpl3))))
7150
7151 (define-public emacs-ivy-pass
7152 (let ((commit "5b523de1151f2109fdd6a8114d0af12eef83d3c5")
7153 (revision "1"))
7154 (package
7155 (name "emacs-ivy-pass")
7156 (version (git-version "0.1" revision commit))
7157 (source
7158 (origin
7159 (method git-fetch)
7160 (uri (git-reference
7161 (url "https://github.com/ecraven/ivy-pass")
7162 (commit commit)))
7163 (file-name (git-file-name name version))
7164 (sha256
7165 (base32
7166 "18crb4zh2pjf0cmv3b913m9vfng27girjwfqc3mk7vqd1r5a49yk"))))
7167 (build-system emacs-build-system)
7168 (propagated-inputs
7169 `(("emacs-ivy" ,emacs-ivy)
7170 ("emacs-password-store" ,emacs-password-store)
7171 ("password-store" ,password-store)))
7172 (home-page "https://github.com/ecraven/ivy-pass")
7173 (synopsis "Ivy interface for password store (pass)")
7174 (description "This package provides an Ivy interface for working with
7175 the password store @code{pass}.")
7176 (license license:gpl3))))
7177
7178 (define-public emacs-ivy-yasnippet
7179 (let ((commit "32580b4fd23ebf9ca7dde96704f7d53df6e253cd")
7180 (revision "2"))
7181 (package
7182 (name "emacs-ivy-yasnippet")
7183 (version (git-version "0.1" revision commit))
7184 (source
7185 (origin
7186 (method git-fetch)
7187 (uri (git-reference
7188 (url "https://github.com/mkcms/ivy-yasnippet")
7189 (commit commit)))
7190 (file-name (git-file-name name version))
7191 (sha256
7192 (base32
7193 "1wfg6mmd5gl1qgvayyzpxlkh9s7jgn20y8l1vh1zbj1czvv51xp8"))))
7194 (build-system emacs-build-system)
7195 (propagated-inputs
7196 `(("emacs-ivy" ,emacs-ivy)
7197 ("emacs-yasnippet" ,emacs-yasnippet)
7198 ("emacs-dash" ,emacs-dash)))
7199 (home-page "https://github.com/mkcms/ivy-yasnippet")
7200 (synopsis "Preview @code{yasnippets} with @code{ivy}")
7201 (description "This package allows you to select @code{yasnippet}
7202 snippets using @code{ivy} completion. When current selection changes in the
7203 minibuffer, the snippet contents are temporarily expanded in the buffer. To
7204 use it, call @code{M-x ivy-yasnippet} (but make sure you have enabled
7205 @code{yas-minor-mode} first).")
7206 (license license:gpl3+))))
7207
7208 (define-public emacs-ivy-rich
7209 ;; The latest release version has a small mistake that has since been fixed,
7210 ;; so we use a more recent commit.
7211 (let ((commit "7a667b135983a1f3ad33d6db8514638e2a3bdfb3")
7212 (revision "2"))
7213 (package
7214 (name "emacs-ivy-rich")
7215 (version (git-version "0.1.4" revision commit))
7216 (source
7217 (origin
7218 (method git-fetch)
7219 (uri (git-reference
7220 (url "https://github.com/Yevgnen/ivy-rich")
7221 (commit commit)))
7222 (file-name (git-file-name name version))
7223 (sha256
7224 (base32 "1v5j6pak2j1wjw19y7rx9rhxif0bj2h47xyl2knfcl6fi4qiqm9y"))))
7225 (build-system emacs-build-system)
7226 (propagated-inputs
7227 `(("emacs-ivy" ,emacs-ivy)))
7228 (home-page "https://github.com/Yevgnen/ivy-rich")
7229 (synopsis "More friendly interface for @code{ivy}")
7230 (description
7231 "This package extends @code{ivy} by showing more information in the
7232 minibuffer for each candidate. It adds columns showing buffer modes, file
7233 sizes, docstrings, etc. If @code{emacs-all-the-icons} is installed, it can
7234 show icons as well.")
7235 (license license:gpl3+))))
7236
7237 (define-public emacs-avy
7238 (package
7239 (name "emacs-avy")
7240 (version "0.5.0")
7241 (source
7242 (origin
7243 (method git-fetch)
7244 (uri (git-reference
7245 (url "https://github.com/abo-abo/avy")
7246 (commit version)))
7247 (file-name (git-file-name name version))
7248 (sha256
7249 (base32 "09qdni1s74i5pv8741szl5g4ynj8fxn0x65qmwa9rmfkbimnc0fs"))))
7250 (build-system emacs-build-system)
7251 (arguments
7252 `(#:tests? #t
7253 #:test-command '("make" "test")))
7254 (home-page "https://github.com/abo-abo/avy")
7255 (synopsis "Tree-based completion for Emacs")
7256 (description
7257 "This package provides a generic completion method based on building a
7258 balanced decision tree with each candidate being a leaf. To traverse the tree
7259 from the root to a desired leaf, typically a sequence of @code{read-key} can
7260 be used.
7261
7262 In order for @code{read-key} to make sense, the tree needs to be visualized
7263 appropriately, with a character at each branch node. So this completion
7264 method works only for things that you can see on your screen, all at once,
7265 such as the positions of characters, words, line beginnings, links, or
7266 windows.")
7267 (license license:gpl3+)))
7268
7269 (define-public emacs-ace-window
7270 (package
7271 (name "emacs-ace-window")
7272 (version "0.10.0")
7273 (source
7274 (origin
7275 (method git-fetch)
7276 (uri (git-reference
7277 (url "https://github.com/abo-abo/ace-window")
7278 (commit version)))
7279 (file-name (git-file-name name version))
7280 (sha256
7281 (base32
7282 "0f3r40d5yxp2pm2j0nn86s29nqj8py0jxjbj50v4ci3hsd92d8jl"))))
7283 (build-system emacs-build-system)
7284 (propagated-inputs
7285 `(("emacs-avy" ,emacs-avy)))
7286 (home-page "https://github.com/abo-abo/ace-window")
7287 (synopsis "Quickly switch windows in Emacs")
7288 (description
7289 "@code{ace-window} is meant to replace @code{other-window}.
7290 In fact, when there are only two windows present, @code{other-window} is
7291 called. If there are more, each window will have its first character
7292 highlighted. Pressing that character will switch to that window.")
7293 (license license:gpl3+)))
7294
7295 (define-public emacs-windsize
7296 ;; There is no proper release. The base version is extracted from the
7297 ;; "Version" keyword in the main file.
7298 (let ((revision "1")
7299 (commit "62c2846bbe95b0a73e996c75e4a644d05f57aaaa"))
7300 (package
7301 (name "emacs-windsize")
7302 (version (git-version "0.1" revision commit))
7303 (source
7304 (origin
7305 (method git-fetch)
7306 (uri (git-reference
7307 (url "https://github.com/grammati/windsize")
7308 (commit commit)))
7309 (sha256
7310 (base32 "13kfrmv3vmkfanxv9nym5v43hx5p7xkgqmx65zcxh4gcbaham1mi"))))
7311 (build-system emacs-build-system)
7312 (home-page "https://github.com/grammati/windsize")
7313 (synopsis "Easy resizing of Emacs windows")
7314 (description
7315 "This package allows moving the borders of the active window
7316 with the arrow keys. It prefers to move the right or bottom border when
7317 possible, and falls back to moving the left or top border otherwise.")
7318 (license license:gpl3+))))
7319
7320 (define-public emacs-iedit
7321 ;; Last release version was in 2016.
7322 (let ((commit "e2c100cdd67b7d82835d281ac2cd1bf4f374bc8f")
7323 (revision "1"))
7324 (package
7325 (name "emacs-iedit")
7326 (version (git-version "0.9.9.9" revision commit))
7327 (source
7328 (origin
7329 (method git-fetch)
7330 (uri (git-reference
7331 (url "https://github.com/victorhge/iedit")
7332 (commit commit)))
7333 (file-name (git-file-name name version))
7334 (sha256
7335 (base32 "0wr3w2id95wx2rma8n1ifjrv9rx37ly26ijc5zi58id0yrip3hnc"))))
7336 (build-system emacs-build-system)
7337 (home-page "https://www.emacswiki.org/emacs/Iedit")
7338 (synopsis "Edit multiple regions in the same way simultaneously")
7339 (description
7340 "This package is an Emacs minor mode and allows you to edit one
7341 occurrence of some text in a buffer (possibly narrowed) or region, and
7342 simultaneously have other occurrences edited in the same way.
7343
7344 You can also use Iedit mode as a quick way to temporarily show only the buffer
7345 lines that match the current text being edited. This gives you the effect of
7346 a temporary @code{keep-lines} or @code{occur}.")
7347 (license license:gpl3+))))
7348
7349 (define-public emacs-zoutline
7350 (package
7351 (name "emacs-zoutline")
7352 (version "0.2.0")
7353 (source
7354 (origin
7355 (method git-fetch)
7356 (uri (git-reference
7357 (url "https://github.com/abo-abo/zoutline")
7358 (commit version)))
7359 (sha256
7360 (base32
7361 "1w0zh6vs7klgivq5r030a82mcfg1zwic4x3fimyiqyg5n8p67hyx"))
7362 (file-name (git-file-name name version))))
7363 (build-system emacs-build-system)
7364 (home-page "https://github.com/abo-abo/zoutline")
7365 (synopsis "Simple outline library")
7366 (description
7367 "This library provides helpers for outlines. Outlines allow users to
7368 navigate code in a tree-like fashion.")
7369 (license license:gpl3+)))
7370
7371 (define-public emacs-lispy
7372 (package
7373 (name "emacs-lispy")
7374 (version "0.27.0")
7375 (home-page "https://github.com/abo-abo/lispy")
7376 (source (origin
7377 (method git-fetch)
7378 (uri (git-reference
7379 (url "https://github.com/abo-abo/lispy")
7380 (commit version)))
7381 (sha256
7382 (base32
7383 "1cm7f4pyl73f3vhkb7ah6bbbrj2sa7n0p31g09k7dy4zgx04bgw6"))
7384 (file-name (git-file-name name version))))
7385 (build-system emacs-build-system)
7386 (propagated-inputs
7387 `(("emacs-ace-window" ,emacs-ace-window)
7388 ("emacs-hydra" ,emacs-hydra)
7389 ("emacs-iedit" ,emacs-iedit)
7390 ("emacs-swiper" ,emacs-swiper)
7391 ("emacs-zoutline" ,emacs-zoutline)))
7392 (native-inputs
7393 `(("emacs-clojure-mode" ,emacs-clojure-mode)
7394 ("emacs-undercover" ,emacs-undercover)))
7395 (arguments
7396 `(#:include (cons* "^lispy-clojure\\.clj$"
7397 "^lispy-python\\.py$"
7398 %default-include)
7399 #:phases
7400 ;; XXX: one failing test involving python evaluation
7401 (modify-phases %standard-phases
7402 (add-before 'check 'make-test-writable
7403 (lambda _
7404 (make-file-writable "lispy-test.el")
7405 #t))
7406 (add-before 'check 'remove-python-eval-test
7407 (lambda _
7408 (emacs-batch-edit-file "lispy-test.el"
7409 `(progn
7410 (progn
7411 (goto-char (point-min))
7412 (re-search-forward
7413 "ert-deftest lispy-eval-python-str")
7414 (beginning-of-line)
7415 (kill-sexp))
7416 (basic-save-buffer)))
7417 #t)))
7418 #:tests? #t
7419 #:test-command '("make" "test")))
7420 (synopsis "Modal S-expression editing")
7421 (description
7422 "Due to the structure of Lisp syntax it's very rare for the programmer
7423 to want to insert characters right before \"(\" or right after \")\". Thus
7424 unprefixed printable characters can be used to call commands when the point is
7425 at one of these special locations. Lispy provides unprefixed keybindings for
7426 S-expression editing when point is at the beginning or end of an
7427 S-expression.")
7428 (license license:gpl3+)))
7429
7430 (define-public emacs-lispyville
7431 (let ((commit "1bf38088c981f5ab4ef2e2684952ab6af96378db")
7432 (revision "2"))
7433 (package
7434 (name "emacs-lispyville")
7435 (version (git-version "0.1" revision commit))
7436 (home-page "https://github.com/noctuid/lispyville")
7437 (source (origin
7438 (method git-fetch)
7439 (uri (git-reference (url home-page) (commit commit)))
7440 (sha256
7441 (base32
7442 "07z8qqvaxf963kwn7l2gk47989zb7r3d8ybqjs2cg6hzmzb77wbw"))
7443 (file-name (git-file-name name version))))
7444 (propagated-inputs
7445 `(("emacs-evil" ,emacs-evil)
7446 ("emacs-lispy" ,emacs-lispy)))
7447 (build-system emacs-build-system)
7448 (synopsis "Minor mode for integrating Evil with lispy")
7449 (description
7450 "LispyVille's main purpose is to provide a Lisp editing environment
7451 suited towards Evil users. It can serve as a minimal layer on top of lispy
7452 for better integration with Evil, but it does not require the use of lispy’s
7453 keybinding style. The provided commands allow for editing Lisp in normal
7454 state and will work even without lispy being enabled.")
7455 (license license:gpl3+))))
7456
7457 (define-public emacs-lpy
7458 (let ((commit "43b401fe15f0f0d01edb189378b9498121e9f766")
7459 (revision "3"))
7460 (package
7461 (name "emacs-lpy")
7462 (version (git-version "0.1.0" revision commit))
7463 (source
7464 (origin
7465 (method git-fetch)
7466 (uri (git-reference
7467 (url "https://github.com/abo-abo/lpy")
7468 (commit commit)))
7469 (sha256
7470 (base32
7471 "0xj1r7cn1rivaxhvawvmgx9fg3xilpfw4lkf2x2aqplr4s85ijas"))
7472 (file-name (git-file-name name version))))
7473 (propagated-inputs
7474 `(("emacs-zoutline" ,emacs-zoutline)
7475 ("emacs-lispy" ,emacs-lispy)))
7476 (build-system emacs-build-system)
7477 (home-page "https://github.com/abo-abo/lpy")
7478 (synopsis "Modal editing for Python")
7479 (description
7480 "This package provides a minor mode for Python that binds useful
7481 commands to unprefixed keys, such as @code{j} or @code{e}, under certain
7482 circumstances, and leaves the keys untouched outside of those situations,
7483 allowing unprefixed keys to insert their respective characters as expected.")
7484 (license license:gpl3+))))
7485
7486 (define-public emacs-clojure-mode
7487 (package
7488 (name "emacs-clojure-mode")
7489 (version "5.12.0")
7490 (source
7491 (origin
7492 (method git-fetch)
7493 (uri (git-reference
7494 (url "https://github.com/clojure-emacs/clojure-mode")
7495 (commit version)))
7496 (file-name (git-file-name name version))
7497 (sha256
7498 (base32 "14ipfy9ji39pnb9x7bzjp8lyqyxk168fx017m823j7a2g9i0sgp3"))))
7499 (build-system emacs-build-system)
7500 (native-inputs
7501 `(("emacs-buttercup" ,emacs-buttercup)
7502 ("emacs-dash" ,emacs-dash)
7503 ("emacs-paredit" ,emacs-paredit)
7504 ("emacs-s" ,emacs-s)))
7505 (arguments
7506 `(#:tests? #t
7507 #:test-command '("buttercup")
7508 #:phases
7509 (modify-phases %standard-phases
7510 (add-before 'check 'fix-tests
7511 ;; See: https://github.com/clojure-emacs/clojure-mode/issues/568
7512 (lambda _
7513 (substitute* "clojure-mode.el"
7514 (("\\(list \\(cdr project\\)\\)" line)
7515 (string-append "\"Return the list of directory roots of the PROJECT.\"\n"
7516 line)))
7517 #t)))))
7518 (home-page "https://github.com/clojure-emacs/clojure-mode")
7519 (synopsis "Major mode for Clojure code")
7520 (description
7521 "This Emacs package provides font-lock, indentation, navigation and basic
7522 refactoring for the @uref{http://clojure.org, Clojure programming language}.
7523 It is recommended to use @code{clojure-mode} with Paredit or Smartparens.")
7524 (license license:gpl3+)))
7525
7526 (define-public emacs-epl
7527 (package
7528 (name "emacs-epl")
7529 (version "0.9")
7530 (source
7531 (origin
7532 (method git-fetch)
7533 (uri (git-reference
7534 (url "https://github.com/cask/epl")
7535 (commit version)))
7536 (file-name (git-file-name name version))
7537 (sha256
7538 (base32 "0d3z5z90ln8ipk1yds1n1p8fj9yyh2kpspqjs7agl38indra3nb4"))))
7539 (build-system emacs-build-system)
7540 (home-page "https://github.com/cask/epl")
7541 (synopsis "Emacs Package Library")
7542 (description
7543 "A package management library for Emacs, based on @code{package.el}.
7544
7545 The purpose of this library is to wrap all the quirks and hassle of
7546 @code{package.el} into a sane API.")
7547 (license license:gpl3+)))
7548
7549 (define-public emacs-counsel-notmuch
7550 ;; Upstream provides no release. Extract version for main file.
7551 (let ((commit "a4a1562935e4180c42524c51609d1283e9be0688")
7552 (revision "0"))
7553 (package
7554 (name "emacs-counsel-notmuch")
7555 (version (git-version "1.0" revision commit))
7556 (source
7557 (origin
7558 (method git-fetch)
7559 (uri (git-reference
7560 (url "https://github.com/fuxialexander/counsel-notmuch.git")
7561 (commit commit)))
7562 (file-name (git-file-name name version))
7563 (sha256
7564 (base32 "01k1321d961kc2i660a5595bqk0d85f16snsxngsn5si6y83kqr7"))))
7565 (build-system emacs-build-system)
7566 (arguments
7567 `(#:phases
7568 (modify-phases %standard-phases
7569 (add-after 'unpack 'locate-notmuch
7570 (lambda* (#:key inputs #:allow-other-keys)
7571 (make-file-writable "counsel-notmuch.el")
7572 (emacs-substitute-variables "counsel-notmuch.el"
7573 ("counsel-notmuch-path"
7574 (string-append (assoc-ref inputs "notmuch")
7575 "/bin/notmuch")))
7576 #t)))))
7577 (inputs
7578 `(("emacs-counsel" ,emacs-counsel)
7579 ("notmuch" ,notmuch)
7580 ("emacs-s" ,emacs-s)))
7581 (home-page "https://github.com/fuxialexander/counsel-notmuch")
7582 (synopsis "Search emails in Notmuch asynchronously with Ivy")
7583 (description
7584 "This package can be used to search emails in Notmuch
7585 asynchronously, with Counsel and Ivy. Simply call
7586 @code{counsel-notmuch} and input your Notmuch query.")
7587 (license license:gpl3+))))
7588
7589 (define-public emacs-counsel-projectile
7590 (package
7591 (name "emacs-counsel-projectile")
7592 (version "0.3.1")
7593 (source (origin
7594 (method git-fetch)
7595 (uri (git-reference
7596 (url "https://github.com/ericdanan/counsel-projectile")
7597 (commit version)))
7598 (file-name (git-file-name name version))
7599 (sha256
7600 (base32
7601 "1k4n5lw6wwbgpwv0dg9dw0bjzi0hvbgkzrs1zmq36yhfz6y8gwnh"))))
7602 (build-system emacs-build-system)
7603 (propagated-inputs
7604 `(("emacs-counsel" ,emacs-counsel)
7605 ("emacs-projectile" ,emacs-projectile)))
7606 (home-page "https://github.com/ericdanan/counsel-projectile")
7607 (synopsis "Enhance Projectile with Ivy")
7608 (description
7609 "This package uses Ivy to provide additional actions for Projectile
7610 commands and replacements for existing functions.")
7611 (license license:gpl3+)))
7612
7613 (define-public emacs-qml-mode
7614 (package
7615 (name "emacs-qml-mode")
7616 (version "0.4")
7617 (source (origin
7618 (method git-fetch)
7619 (uri (git-reference
7620 (url "https://github.com/coldnew/qml-mode")
7621 (commit version)))
7622 (file-name (git-file-name name version))
7623 (sha256
7624 (base32
7625 "1sncsvzjfgmhp4m8w5jd4y51k24n2jfpgvrkd64wlhhzbj3wb947"))))
7626 (build-system emacs-build-system)
7627 (home-page "https://github.com/coldnew/qml-mode/")
7628 (synopsis "Qt Modeling Language (QML) mode for Emacs")
7629 (description "This package provides the @code{qml-mode} major Emacs mode
7630 for editing source files written in the Qt Modeling Language (QML) user
7631 interface markup language. It provides syntax highlighting and basic
7632 navigation commands. @code{qml-mode} is derived from code{js-mode}, the Emacs
7633 builtin JavaScript mode.")
7634 (license license:gpl2+)))
7635
7636 (define-public emacs-queue
7637 (package
7638 (name "emacs-queue")
7639 (version "0.2")
7640 (source (origin
7641 (method url-fetch)
7642 (uri (string-append "https://elpa.gnu.org/packages/queue-"
7643 version ".el"))
7644 (sha256
7645 (base32
7646 "0cx2848sqnnkkr4zisvqadzxngjyhmb36mh0q3if7q19yjjhmrkb"))))
7647 (build-system emacs-build-system)
7648 (home-page "http://www.dr-qubit.org/tags/computing-code-emacs.html")
7649 (synopsis "Queue data structure for Emacs")
7650 (description
7651 "This Emacs library provides queue data structure. These queues can be
7652 used both as a first-in last-out (FILO) and as a first-in first-out (FIFO)
7653 stack, i.e. elements can be added to the front or back of the queue, and can
7654 be removed from the front. This type of data structure is sometimes called an
7655 \"output-restricted deque\".")
7656 (license license:gpl3+)))
7657
7658 (define-public emacs-quickrun
7659 (package
7660 (name "emacs-quickrun")
7661 (version "2.3.1")
7662 (source
7663 (origin
7664 (method git-fetch)
7665 (uri (git-reference
7666 (url "https://github.com/emacsorphanage/quickrun")
7667 (commit version)))
7668 (sha256
7669 (base32 "0a1n2v09h0n7d9p2izflqqang4ny0b46dlqvmxvkkik4bb6f4wcz"))
7670 (file-name (git-file-name name version))))
7671 (build-system emacs-build-system)
7672 (home-page "https://github.com/emacsorphanage/quickrun")
7673 (synopsis "Execute editing buffer and show its output quickly")
7674 (description
7675 "This package evaluates the content of a buffer, or region, and displays
7676 the result. Quickrun executes not only script languages (Perl, Ruby, Python
7677 etc), but also compiling languages (C, C++, Go, Java etc) and markup
7678 languages.")
7679 (license license:gpl3+)))
7680
7681 (define-public emacs-pkg-info
7682 (package
7683 (name "emacs-pkg-info")
7684 (version "0.6")
7685 (source
7686 (origin
7687 (method git-fetch)
7688 (uri (git-reference
7689 (url "https://github.com/lunaryorn/pkg-info.el")
7690 (commit version)))
7691 (file-name (git-file-name name version))
7692 (sha256
7693 (base32 "0nk12dcppdyhav6m6yf7abpywyd7amxd4237zsfd32w4zxsx39k1"))))
7694 (build-system emacs-build-system)
7695 (propagated-inputs `(("emacs-epl" ,emacs-epl)))
7696 (home-page "https://github.com/lunaryorn/pkg-info.el")
7697 (synopsis "Information about Emacs packages")
7698 (description
7699 "This library extracts information from the installed Emacs packages.")
7700 (license license:gpl3+)))
7701
7702 (define-public emacs-spinner
7703 (package
7704 (name "emacs-spinner")
7705 (version "1.7.3")
7706 (source (origin
7707 (method url-fetch)
7708 (uri (string-append "https://elpa.gnu.org/packages/spinner-"
7709 version ".el"))
7710 (sha256
7711 (base32
7712 "19kp1mmndbmw11sgvv2ggfjl4pyf5zrsbh3871f0965pw9z8vahd"))))
7713 (build-system emacs-build-system)
7714 (home-page "https://github.com/Malabarba/spinner.el")
7715 (synopsis "Emacs mode-line spinner for operations in progress")
7716 (description
7717 "This Emacs package adds spinners and progress-bars to the mode-line for
7718 ongoing operations.")
7719 (license license:gpl3+)))
7720
7721 (define-public emacs-sparql-mode
7722 (package
7723 (name "emacs-sparql-mode")
7724 (version "4.0.2")
7725 (source
7726 (origin
7727 (method git-fetch)
7728 (uri (git-reference
7729 (url "https://github.com/ljos/sparql-mode")
7730 (commit (string-append "v" version))))
7731 (file-name (git-file-name name version))
7732 (sha256
7733 (base32 "0hqp8r24wvzrkl630wbm0lynrcrnawv2yn2a3xgwqwwhwgva35rn"))))
7734 (build-system emacs-build-system)
7735 (propagated-inputs
7736 `(("emacs-company" ,emacs-company)))
7737 (home-page "https://github.com/ljos/sparql-mode")
7738 (synopsis "SPARQL mode for Emacs")
7739 (description
7740 "This package is a major mode for Emacs that provides syntax highlighting
7741 for SPARQL. It can also execute queries against a SPARQL HTTP endpoint, such
7742 as Fuseki or DBPedia.")
7743 (license license:gpl3+)))
7744
7745 (define-public emacs-better-defaults
7746 (package
7747 (name "emacs-better-defaults")
7748 (version "0.1.3")
7749 (source
7750 (origin
7751 (method git-fetch)
7752 (uri (git-reference
7753 (url "https://github.com/technomancy/better-defaults")
7754 (commit version)))
7755 (file-name (git-file-name name version))
7756 (sha256
7757 (base32
7758 "1rxznx2l0cdpiz8mad8s6q17m1fngpgb1cki7ch6yh18r3qz8ysr"))))
7759 (build-system emacs-build-system)
7760 (home-page "https://github.com/technomancy/better-defaults")
7761 (synopsis "Better defaults for Emacs")
7762 (description
7763 "Better defaults attempts to address the most obvious deficiencies of the
7764 Emacs default configuration in uncontroversial ways that nearly everyone can
7765 agree upon.")
7766 (license license:gpl3+)))
7767
7768 (define-public emacs-undohist-el
7769 (let ((commit "d2239a5f736724ceb9e3b6bcaa86f4064805cda0")
7770 (revision "1"))
7771 (package
7772 (name "emacs-undohist-el")
7773 (version (git-version "0" revision commit))
7774 (source
7775 (origin
7776 (method git-fetch)
7777 (uri (git-reference
7778 (url "https://github.com/m2ym/undohist-el")
7779 (commit commit)))
7780 (file-name (git-file-name name version))
7781 (sha256
7782 (base32
7783 "1c0daw246ky7b1x5b8h55x79pl1pjqk1k348l487bdd8zdj4w9wx"))
7784 (patches
7785 (search-patches "emacs-undohist-ignored.patch"))))
7786 (build-system emacs-build-system)
7787 (home-page "https://github.com/m2ym/undohist-el")
7788 (synopsis "Save undo history between sessions")
7789 (description "This package allows persistent use of undo history for
7790 individual file buffers.")
7791 (license license:gpl3+))))
7792
7793 (define-public emacs-eprime
7794 (let ((commit "17a481af26496be91c07139a9bfc05cfe722506f"))
7795 (package
7796 (name "emacs-eprime")
7797 (version (string-append "20140513-" (string-take commit 7)))
7798 (source (origin
7799 (method url-fetch)
7800 (uri (string-append "https://raw.githubusercontent.com"
7801 "/AndrewHynes/eprime-mode/"
7802 commit "/eprime-mode.el"))
7803 (file-name (string-append "eprime-" version ".el"))
7804 (sha256
7805 (base32
7806 "0v68lggkyq7kbcr9zyi573m2g2x251xy3jadlaw8kx02l8krwq8d"))))
7807 (build-system emacs-build-system)
7808 (home-page "https://github.com/AndrewHynes/eprime-mode")
7809 (synopsis "E-prime checking mode for Emacs")
7810 (description "This package provides an E-prime checking mode for Emacs
7811 that highlights non-conforming text. The subset of the English language called
7812 E-Prime forbids the use of the \"to be\" form to strengthen your writing.")
7813 (license license:gpl3+))))
7814
7815 (define-public emacs-julia-mode
7816 ;; XXX: Upstream version remained stuck at 0.3. See
7817 ;; <https://github.com/JuliaEditorSupport/julia-emacs/issues/46>.
7818 (let ((commit "115d4dc8a07445301772da8376b232fa8c7168f4")
7819 (revision "1"))
7820 (package
7821 (name "emacs-julia-mode")
7822 (version (string-append "0.3-" revision "." (string-take commit 8)))
7823 (source
7824 (origin
7825 (method git-fetch)
7826 (uri (git-reference
7827 (url "https://github.com/JuliaEditorSupport/julia-emacs")
7828 (commit commit)))
7829 (file-name (git-file-name name version))
7830 (sha256
7831 (base32
7832 "1is4dcv6blslpzbjcg8l2jpxi8xj96q4cm0nxjxsyswpm8bw8ki0"))))
7833 (build-system emacs-build-system)
7834 (arguments
7835 `(#:tests? #t
7836 #:test-command '("emacs" "--batch"
7837 "-l" "julia-mode-tests.el"
7838 "-f" "ert-run-tests-batch-and-exit")))
7839 (home-page "https://github.com/JuliaEditorSupport/julia-emacs")
7840 (synopsis "Major mode for Julia")
7841 (description "This Emacs package provides a mode for the Julia
7842 programming language.")
7843 (license license:expat))))
7844
7845 (define-public emacs-smex
7846 (package
7847 (name "emacs-smex")
7848 (version "3.0")
7849 (source (origin
7850 (method url-fetch)
7851 (uri (string-append "https://raw.githubusercontent.com"
7852 "/nonsequitur/smex/" version "/smex.el"))
7853 (file-name (string-append "smex-" version ".el"))
7854 (sha256
7855 (base32
7856 "0ar310zx9k5y4i1vl2rawvi712xj9gx77160860jbs691p77cxqp"))))
7857 (build-system emacs-build-system)
7858 (home-page "https://github.com/nonsequitur/smex/")
7859 (synopsis "M-x interface with Ido-style fuzzy matching")
7860 (description
7861 "Smex is a M-x enhancement for Emacs. Built on top of Ido, it provides a
7862 convenient interface to your recently and most frequently used commands. And
7863 to all the other commands, too.")
7864 (license license:gpl3+)))
7865
7866 (define-public emacs-js2-mode
7867 (let ((commit "40aab27581279d0fdbfeb9afeb85f39d401a927f")
7868 (revision "1"))
7869 (package
7870 (name "emacs-js2-mode")
7871 (version (git-version "20190219" revision commit))
7872 (source
7873 (origin
7874 (method git-fetch)
7875 (uri (git-reference
7876 (url "https://github.com/mooz/js2-mode")
7877 (commit commit)))
7878 (file-name (git-file-name name version))
7879 (sha256
7880 (base32 "0ysd0ji3vvk2zpjcg1wl7b2hva8471vq0ypib4h6spnpjdr43vzk"))))
7881 (build-system emacs-build-system)
7882 (arguments
7883 `(#:tests? #t
7884 #:test-command '("make" "test")))
7885 (home-page "https://github.com/mooz/js2-mode/")
7886 (synopsis "Improved JavaScript editing mode for Emacs")
7887 (description
7888 "Js2-mode provides a JavaScript major mode for Emacs that is more
7889 advanced than the built-in javascript-mode. Features include accurate syntax
7890 highlighting using a recursive-descent parser, on-the-fly reporting of syntax
7891 errors and strict-mode warnings, smart line-wrapping within comments and
7892 strings, and code folding.")
7893 (license license:gpl3+))))
7894
7895 (define-public emacs-nodejs-repl
7896 (package
7897 (name "emacs-nodejs-repl")
7898 (version "0.2.2")
7899 (source (origin
7900 (method git-fetch)
7901 (uri (git-reference
7902 (url "https://github.com/abicky/nodejs-repl.el")
7903 (commit version)))
7904 (file-name (git-file-name name version))
7905 (sha256
7906 (base32
7907 "1kkj888k9x5n0i7xkia177gzsa84my3g8n0n7v65281cc4f1yhk5"))))
7908 (build-system emacs-build-system)
7909 (inputs
7910 `(("node" ,node)))
7911 (native-inputs
7912 `(("emacs-ert-expectations" ,emacs-ert-expectations)))
7913 (arguments
7914 `(#:phases
7915 (modify-phases %standard-phases
7916 (add-after 'unpack 'set-shell
7917 ;; Setting the SHELL environment variable is required for the tests
7918 ;; to find sh.
7919 (lambda _
7920 (setenv "SHELL" (which "sh"))
7921 #t))
7922 (add-after 'unpack 'configure
7923 (lambda* (#:key inputs outputs #:allow-other-keys)
7924 (let ((node (assoc-ref inputs "node")))
7925 ;; Specify the absolute file names of the various
7926 ;; programs so that everything works out-of-the-box.
7927 (make-file-writable "nodejs-repl.el")
7928 (emacs-substitute-variables
7929 "nodejs-repl.el"
7930 ("nodejs-repl-command"
7931 (string-append node "/bin/node")))))))
7932 #:tests? #t
7933 #:test-command '("emacs" "-Q" "--batch"
7934 "-L" "."
7935 "-l" "test/test.el"
7936 "-f" "ert-run-tests-batch-and-exit")))
7937 (home-page "https://github.com/abicky/nodejs-repl.el")
7938 (synopsis "Node.js REPL inside Emacs")
7939 (description
7940 "This program is derived from comint-mode and provides the following
7941 features:
7942
7943 @itemize
7944 @item TAB completion same as Node.js REPL
7945 @item file name completion in string
7946 @item incremental history search
7947 @end itemize")
7948 (license license:gpl3+)))
7949
7950 (define-public emacs-typescript-mode
7951 (package
7952 (name "emacs-typescript-mode")
7953 (version "0.3")
7954 (source (origin
7955 (method git-fetch)
7956 (uri (git-reference
7957 (url "https://github.com/ananthakumaran/typescript.el")
7958 (commit (string-append "v" version))))
7959 (file-name (git-file-name name version))
7960 (sha256
7961 (base32
7962 "002f1xfhq43fjaqliwrgxspryfahpa82va5dw3p8kwil2xwvc6mh"))))
7963 (build-system emacs-build-system)
7964 (home-page "https://github.com/ananthakumaran/typescript.el")
7965 (synopsis "Emacs major mode for editing Typescript code")
7966 (description
7967 "This is based on Karl Landstrom's barebones @code{typescript-mode}.
7968 This is much more robust and works with @code{cc-mode}'s comment
7969 filling (mostly). The modifications to the original @code{javascript.el} mode
7970 mainly consisted in replacing \"javascript\" with \"typescript\"
7971
7972 The main features of this Typescript mode are syntactic highlighting (enabled
7973 with @code{font-lock-mode} or @code{global-font-lock-mode}), automatic
7974 indentation and filling of comments and C preprocessor fontification.")
7975 (license license:gpl3+)))
7976
7977 (define-public emacs-tide
7978 (package
7979 (name "emacs-tide")
7980 (version "3.2.3")
7981 (source (origin
7982 (method git-fetch)
7983 (uri (git-reference
7984 (url "https://github.com/ananthakumaran/tide")
7985 (commit (string-append "v" version))))
7986 (file-name (git-file-name name version))
7987 (sha256
7988 (base32
7989 "19kjq4kr2j853p5qp1s79zxmrfprli82lsnphbrlp9vbnib28xyd"))))
7990 (build-system emacs-build-system)
7991 (propagated-inputs
7992 `(("emacs-dash" ,emacs-dash)
7993 ("emacs-s" ,emacs-s)
7994 ("emacs-flycheck" ,emacs-flycheck)
7995 ("emacs-typescript-mode" ,emacs-typescript-mode)))
7996 (home-page "https://github.com/ananthakumaran/tide")
7997 (synopsis "Typescript IDE for Emacs")
7998 (description
7999 "Tide is an Interactive Development Environment (IDE) for Emacs which
8000 provides the following features:
8001
8002 @itemize
8003 @item ElDoc
8004 @item Auto complete
8005 @item Flycheck
8006 @item Jump to definition, Jump to type definition
8007 @item Find occurrences
8008 @item Rename symbol
8009 @item Imenu
8010 @item Compile On Save
8011 @item Highlight Identifiers
8012 @item Code Fixes
8013 @item Code Refactor
8014 @item Organize Imports
8015 @end itemize")
8016 (license license:gpl3+)))
8017
8018 (define-public emacs-markdown-mode
8019 (package
8020 (name "emacs-markdown-mode")
8021 (version "2.4")
8022 (source
8023 (origin
8024 (method git-fetch)
8025 (uri (git-reference
8026 (url "https://github.com/jrblevin/markdown-mode")
8027 (commit (string-append "v" version))))
8028 (file-name (git-file-name name version))
8029 (sha256
8030 (base32 "0g0ja4h651yfabm3k6gbw4y8w7wibc9283fyfzb33kjj38ivl5d7"))))
8031 (build-system emacs-build-system)
8032 (home-page "https://jblevins.org/projects/markdown-mode/")
8033 (synopsis "Emacs Major mode for Markdown files")
8034 (description
8035 "Markdown-mode is a major mode for editing Markdown-formatted text files
8036 in Emacs.")
8037 (license license:gpl3+)))
8038
8039 (define-public emacs-evil-markdown
8040 (let ((commit "685d7fbb81bc02fa32779d2a127b99a0c8c7436b")
8041 (revision "2"))
8042 (package
8043 (name "emacs-evil-markdown")
8044 (version (git-version "0.0.2" revision commit))
8045 (source
8046 (origin
8047 (method git-fetch)
8048 (uri (git-reference
8049 (url "https://github.com/Somelauw/evil-markdown")
8050 (commit commit)))
8051 (file-name (git-file-name name version))
8052 (sha256
8053 (base32 "1z1sjn6dcqv8mmkh6nfcwhnql2z6xr9yx3hs77bfxj79pf3c466p"))))
8054 (build-system emacs-build-system)
8055 (propagated-inputs
8056 `(("emacs-evil" ,emacs-evil)
8057 ("emacs-markdown-mode" ,emacs-markdown-mode)))
8058 (home-page "https://github.com/Somelauw/evil-markdown/")
8059 (synopsis "Evil keybindings for @code{markdown-mode}")
8060 (description
8061 "This package provides custom text objects and bindings for
8062 @code{markdown-mode}.")
8063 (license license:gpl3+))))
8064
8065 (define-public emacs-edit-indirect
8066 (package
8067 (name "emacs-edit-indirect")
8068 (version "0.1.6")
8069 (source
8070 (origin
8071 (method git-fetch)
8072 (uri (git-reference
8073 (url "https://github.com/Fanael/edit-indirect")
8074 (commit version)))
8075 (file-name (git-file-name name version))
8076 (sha256
8077 (base32 "189nvmlkki1jfszm9i0crbb1p4nzgmbly0wpvpg0i8vmw7vrpl40"))))
8078 (build-system emacs-build-system)
8079 (home-page "https://github.com/Fanael/edit-indirect")
8080 (synopsis "Edit regions in separate buffers")
8081 (description "This package allows you to edit regions in separate buffers,
8082 like @code{org-edit-src-code} but for arbitrary regions.")
8083 (license license:bsd-2)))
8084
8085 (define-public emacs-projectile
8086 (package
8087 (name "emacs-projectile")
8088 (version "2.2.0")
8089 (source (origin
8090 (method url-fetch)
8091 (uri (string-append "https://raw.githubusercontent.com/bbatsov"
8092 "/projectile/v" version "/projectile.el"))
8093 (file-name (string-append "projectile-" version ".el"))
8094 (sha256
8095 (base32
8096 "1d983siysg98bjbb2r99qbrpvpf6dn85si8gyak4z05m67s8sn6v"))))
8097 (build-system emacs-build-system)
8098 (propagated-inputs
8099 `(("emacs-dash" ,emacs-dash)
8100 ("emacs-pkg-info" ,emacs-pkg-info)))
8101 (home-page "https://github.com/bbatsov/projectile")
8102 (synopsis "Manage and navigate projects in Emacs easily")
8103 (description
8104 "This library provides easy project management and navigation. The
8105 concept of a project is pretty basic - just a folder containing special file.
8106 Currently git, mercurial and bazaar repos are considered projects by default.
8107 If you want to mark a folder manually as a project just create an empty
8108 .projectile file in it.")
8109 (license license:gpl3+)))
8110
8111 (define-public emacs-skeletor
8112 (let ((commit "47c5b761aee8452716c97a69949ac2f675affe13")
8113 (revision "1"))
8114 (package
8115 (name "emacs-skeletor")
8116 (version (git-version "1.6.1" revision commit))
8117 (source (origin
8118 (method git-fetch)
8119 (uri (git-reference
8120 (url "https://github.com/chrisbarrett/skeletor.el")
8121 (commit commit)))
8122 (file-name (git-file-name name version))
8123 (sha256
8124 (base32
8125 "12bdgykfh4mwsqdazxjdvha62h3q3v33159ypy91f6x59y01fi0n"))))
8126 (build-system emacs-build-system)
8127 (propagated-inputs
8128 `(("emacs-s" ,emacs-s)
8129 ("emacs-f" ,emacs-f)
8130 ("emacs-dash" ,emacs-dash)
8131 ("emacs-let-alist" ,emacs-let-alist)))
8132 (native-inputs
8133 `(("emacs-ert-runner" ,emacs-ert-runner)))
8134 (arguments
8135 `(#:include (cons "^project-skeletons\\/" %default-include)
8136 ;; XXX: one failing test involving initializing a git repo
8137 #:phases
8138 (modify-phases %standard-phases
8139 (add-before 'check 'make-test-writable
8140 (lambda _
8141 (make-file-writable "test/skeletor-test.el")
8142 #t))
8143 (add-before 'check 'remove-git-test
8144 (lambda _
8145 (emacs-batch-edit-file "test/skeletor-test.el"
8146 `(progn
8147 (progn
8148 (goto-char (point-min))
8149 (re-search-forward
8150 "ert-deftest initialises-git-repo")
8151 (beginning-of-line)
8152 (kill-sexp))
8153 (basic-save-buffer)))
8154 #t)))
8155 #:tests? #t
8156 #:test-command '("ert-runner")))
8157 (home-page "https://github.com/chrisbarrett/skeletor.el")
8158 (synopsis "Project skeletons for Emacs")
8159 (description "This package provides project templates and automates the
8160 mundane parts of setting up a new project, such as version control, licenses,
8161 and tooling.")
8162 (license license:gpl3+))))
8163
8164 (define-public emacs-elfeed
8165 (package
8166 (name "emacs-elfeed")
8167 (version "3.3.0")
8168 (source
8169 (origin
8170 (method git-fetch)
8171 (uri (git-reference
8172 (url "https://github.com/skeeto/elfeed")
8173 (commit version)))
8174 (file-name (git-file-name name version))
8175 (sha256
8176 (base32 "0j8a94val4ml7g1vcjgzk1w89h55sxfdrwnncmz6qbh1y2xsz8c5"))))
8177 (build-system emacs-build-system)
8178 (arguments
8179 `(#:tests? #t
8180 #:test-command '("make" "test")))
8181 (home-page "https://github.com/skeeto/elfeed")
8182 (synopsis "Atom/RSS feed reader for Emacs")
8183 (description
8184 "Elfeed is an extensible web feed reader for Emacs, supporting both Atom
8185 and RSS, with a user interface inspired by notmuch.")
8186 (license license:gpl3+)))
8187
8188 (define-public emacs-elfeed-org
8189 (let ((commit "77b6bbf222487809813de260447d31c4c59902c9"))
8190 (package
8191 (name "emacs-elfeed-org")
8192 (version (git-version "0.1" "1" commit))
8193 (source
8194 (origin
8195 (method git-fetch)
8196 (uri (git-reference
8197 (url "https://github.com/remyhonig/elfeed-org")
8198 (commit commit)))
8199 (file-name (git-file-name name version))
8200 (sha256
8201 (base32 "0a2ibka82xq1dhy2z7rd2y9zhcj8rna8357881yz49wf55ccgm53"))))
8202 (build-system emacs-build-system)
8203 (propagated-inputs
8204 `(("emacs-elfeed" ,emacs-elfeed)
8205 ("emacs-org" ,emacs-org)
8206 ("emacs-dash" ,emacs-dash)
8207 ("emacs-s" ,emacs-s)))
8208 (native-inputs
8209 `(("ert-runner" ,emacs-ert-runner)
8210 ("emacs-xtest" ,emacs-xtest)))
8211 (arguments
8212 `(#:tests? #t
8213 #:test-command '("ert-runner" "-L" "org-mode/lisp")
8214 #:phases
8215 (modify-phases %standard-phases
8216 (add-before 'check 'chmod
8217 (lambda _
8218 (chmod "test/fixture-mark-feed-ignore.org" #o644)
8219 #t)))))
8220 (home-page "https://github.com/remyhonig/elfeed-org")
8221 (synopsis "Configure Elfeed with an Org-mode file")
8222 (description
8223 "@code{elfeed-org} lets you manage your Elfeed subscriptions
8224 in Org-mode. Maintaining tags for all RSS feeds is cumbersome using
8225 the regular flat list, where there is no hierarchy and tag names are
8226 duplicated a lot. Org-mode makes the book keeping of tags and feeds
8227 much easier.")
8228 (license license:gpl3+))))
8229
8230 (define-public emacs-el-x
8231 (package
8232 (name "emacs-el-x")
8233 (version "0.3.1")
8234 (source (origin
8235 (method git-fetch)
8236 (uri (git-reference
8237 (url "https://github.com/sigma/el-x")
8238 (commit (string-append "v" version))))
8239 (file-name (git-file-name name version))
8240 (sha256
8241 (base32
8242 "1i6j44ssxm1xdg0mf91nh1lnprwsaxsx8vsrf720nan7mfr283h5"))))
8243 (build-system emacs-build-system)
8244 (arguments
8245 `(#:phases
8246 (modify-phases %standard-phases
8247 ;; Move the source files to the top level, which is included in
8248 ;; the EMACSLOADPATH.
8249 (add-after 'unpack 'move-source-files
8250 (lambda _
8251 (let ((el-files (find-files "./lisp" ".*\\.el$")))
8252 (for-each (lambda (f)
8253 (rename-file f (basename f)))
8254 el-files))
8255 #t)))))
8256 (home-page "https://github.com/sigma/el-x")
8257 (synopsis "Emacs Lisp extensions")
8258 (description "command@{emacs-el-x} defines the @code{dflet} macro to
8259 provide the historic behavior of @code{flet}, as well as
8260 @code{declare-function} stub for older Emacs.")
8261 (license license:gpl2+)))
8262
8263 (define-public emacs-mocker
8264 (package
8265 (name "emacs-mocker")
8266 (version "0.3.1")
8267 (source (origin
8268 (method git-fetch)
8269 (uri (git-reference
8270 (url "https://github.com/sigma/mocker.el")
8271 (commit (string-append "v" version))))
8272 (file-name (git-file-name name version))
8273 (sha256
8274 (base32
8275 "1lav7am41v63xgavq8pr88y828jmd1cxd4prjq7jlbxm6nvrwxh2"))))
8276 (build-system emacs-build-system)
8277 (arguments
8278 `(#:tests? #t
8279 #:test-command '("ert-runner")))
8280 (native-inputs
8281 `(("ert-runner" ,emacs-ert-runner)))
8282 (propagated-inputs
8283 `(("emacs-el-x" ,emacs-el-x)))
8284 (home-page "https://github.com/sigma/mocker.el")
8285 (synopsis "Mocking framework for Emacs Lisp")
8286 (description "Mocker.el is a framework for writing tests in Emacs Lisp.
8287 It uses regular Lisp rather than a domain specific language (DSL), which
8288 maximizes flexibility (at the expense of conciseness).")
8289 (license license:gpl2+)))
8290
8291 (define-public emacs-find-file-in-project
8292 (package
8293 (name "emacs-find-file-in-project")
8294 (version "5.7.10")
8295 (source (origin
8296 (method git-fetch)
8297 (uri (git-reference
8298 (url "https://github.com/technomancy/find-file-in-project")
8299 (commit version)))
8300 (file-name (git-file-name name version))
8301 (sha256
8302 (base32
8303 "156sfd5xs831sdlkf7p5m20hzznv1zlf9nm3pfm8n8ixp13fnzj0"))))
8304 (build-system emacs-build-system)
8305 (arguments
8306 `(#:tests? #t
8307 #:test-command '("ert-runner" "tests")))
8308 (native-inputs
8309 `(("ert-runner" ,emacs-ert-runner)))
8310 (home-page "https://github.com/technomancy/find-file-in-project")
8311 (synopsis "File/directory finder for Emacs")
8312 (description "@code{find-file-in-project} finds files or
8313 directories quickly in the current project. The project root is detected
8314 automatically when Git, Subversion or Mercurial are used. It also provides
8315 functions to assist in reviewing changes on files.")
8316 (license license:gpl3+)))
8317
8318 (define-public emacs-pyvenv
8319 (package
8320 (name "emacs-pyvenv")
8321 (version "1.21")
8322 (source (origin
8323 (method git-fetch)
8324 (uri (git-reference
8325 (url "https://github.com/jorgenschaefer/pyvenv")
8326 (commit (string-append "v" version))))
8327 (file-name (git-file-name name version))
8328 (sha256
8329 (base32
8330 "055sgk8zf4wb5nqsf3qasf5gg861zlb1831733f1qcrd2ij5gzxx"))))
8331 (build-system emacs-build-system)
8332 (arguments
8333 `(#:phases
8334 (modify-phases %standard-phases
8335 ;; This phase incorrectly attempts to substitute "activate" and fails
8336 ;; doing so.
8337 (delete 'patch-el-files))
8338 #:tests? #t
8339 #:test-command '("ert-runner")))
8340 (native-inputs
8341 `(("ert-runner" ,emacs-ert-runner)
8342 ("emacs-mocker" ,emacs-mocker)))
8343 (home-page "https://github.com/jorgenschaefer/pyvenv")
8344 (synopsis "Python virtual environment interface for Emacs")
8345 (description "pyvenv.el is a minor mode to support using Python virtual
8346 environments (virtualenv) inside Emacs.")
8347 (license license:gpl3+)))
8348
8349 (define-public emacs-highlight-indent-guides
8350 (let ((version "0.8.5") ; from package metadata
8351 (revision "0")
8352 (commit "c2c9de4d01edfb89609c91d4d7f1d81312015a2c"))
8353 (package
8354 (name "emacs-highlight-indent-guides")
8355 (version (git-version version revision commit))
8356 (source
8357 (origin
8358 (method git-fetch)
8359 (uri (git-reference
8360 (url "https://github.com/DarthFennec/highlight-indent-guides")
8361 (commit commit)))
8362 (file-name (git-file-name name version))
8363 (sha256
8364 (base32 "10chvqnmdmkx6i9sigqframr85ziyafiz44glwhvhjajfkv42ad2"))))
8365 (build-system emacs-build-system)
8366 (home-page
8367 "https://github.com/DarthFennec/highlight-indent-guides")
8368 (synopsis "Minor mode to highlight indentation")
8369 (description
8370 "This package provides a minor mode to highlight indentation levels via
8371 font-lock. Indent widths are dynamically discovered, which means this
8372 correctly highlights in any mode, regardless of indent width, even in
8373 languages with non-uniform indentation such as Haskell. This mode works
8374 properly around hard tabs and mixed indentation and behaves well in large
8375 buffers.")
8376 (license license:expat))))
8377
8378 (define-public emacs-highlight-indentation
8379 ;; Last release version is from 2015.
8380 (let ((commit "d03803f2c06749c430443a3d24e039cbafc9c58f")
8381 (revision "1"))
8382 (package
8383 (name "emacs-highlight-indentation")
8384 (version (git-version "0.7.0" revision commit))
8385 (source
8386 (origin
8387 (method git-fetch)
8388 (uri (git-reference
8389 (url "https://github.com/antonj/Highlight-Indentation-for-Emacs")
8390 (commit commit)))
8391 (file-name (git-file-name name version))
8392 (sha256
8393 (base32
8394 "1jq0gf4kcx9hvrw40rnw5c2qynjpjw1vsjbi2i4lqjbsnfnxn4wz"))))
8395 (build-system emacs-build-system)
8396 (home-page "https://github.com/antonj/Highlight-Indentation-for-Emacs/")
8397 (synopsis "Highlighting indentation for Emacs")
8398 (description "This package provides two minor modes to highlight
8399 indentation guides in Emacs:
8400
8401 @enumerate
8402 @item @code{highlight-indentation-mode}, which displays guidelines
8403 indentation (space indentation only).
8404 @item @code{highlight-indentation-current-column-mode}, which displays
8405 guidelines for the current-point indentation (space indentation only).
8406 @end enumerate")
8407 (license license:gpl2+))))
8408
8409 (define-public emacs-elpy
8410 (package
8411 (name "emacs-elpy")
8412 (version "1.34.0")
8413 (source (origin
8414 (method git-fetch)
8415 (uri (git-reference
8416 (url "https://github.com/jorgenschaefer/elpy")
8417 (commit version)))
8418 (file-name (git-file-name name version))
8419 (sha256
8420 (base32
8421 "1x1z298axbh4xalssnq9nkf2z1sdgmx839vb01xz18kr9lfavx1x"))))
8422 (build-system emacs-build-system)
8423 (arguments
8424 `(#:include (cons* "^elpy/[^/]+\\.py$" "^snippets\\/" %default-include)
8425 #:phases
8426 (modify-phases %standard-phases
8427 ;; The following tests fail when building with Emacs 27 (see:
8428 ;; https://github.com/jorgenschaefer/elpy/issues/1812).
8429 (add-after 'unpack 'disable-problematic-tests
8430 (lambda _
8431 (substitute* "test/elpy-company-backend-test.el"
8432 (("elpy-company-backend-should-add-shell-candidates.*" all)
8433 (string-append all " (skip-unless nil)\n")))
8434 (substitute* "test/elpy-folding-fold-comments-test.el"
8435 (("elpy-fold-at-point-should-fold-and-unfold-comments.*" all)
8436 (string-append all " (skip-unless nil)\n")))
8437 #t))
8438 ;; The default environment of the RPC uses Virtualenv to install
8439 ;; Python dependencies from PyPI. We don't want/need this in Guix.
8440 (add-before 'check 'do-not-use-virtualenv
8441 (lambda _
8442 (setenv "ELPY_TEST_DONT_USE_VIRTUALENV" "1")
8443 (substitute* "elpy-rpc.el"
8444 (("defcustom elpy-rpc-virtualenv-path 'default")
8445 "defcustom elpy-rpc-virtualenv-path 'system"))
8446 #t))
8447 (add-before 'check 'build-doc
8448 (lambda _
8449 (with-directory-excursion "docs"
8450 (invoke "make" "info" "man"))
8451 ;; Move .info file at the root so that it can installed by the
8452 ;; 'move-doc phase.
8453 (rename-file "docs/_build/texinfo/Elpy.info" "Elpy.info")
8454 #t))
8455 (add-after 'build-doc 'install-manpage
8456 (lambda* (#:key outputs #:allow-other-keys)
8457 (let* ((out (assoc-ref outputs "out"))
8458 (man1 (string-append out "/share/man/man1")))
8459 (mkdir-p man1)
8460 (copy-file "docs/_build/man/elpy.1"
8461 (string-append man1 "/elpy.1")))
8462 #t)))
8463 #:tests? #t
8464 #:test-command '("ert-runner")))
8465 (propagated-inputs
8466 `(("emacs-company" ,emacs-company)
8467 ("emacs-find-file-in-project" ,emacs-find-file-in-project)
8468 ("emacs-highlight-indentation" ,emacs-highlight-indentation)
8469 ("emacs-yasnippet" ,emacs-yasnippet)
8470 ("pyvenv" ,emacs-pyvenv)
8471 ("s" ,emacs-s)
8472 ;; The following are recommended Python dependencies that make Elpy
8473 ;; much more useful. Installing these avoids Elpy prompting to install them
8474 ;; from PyPI using pip.
8475 ("python-autopep8" ,python-autopep8)
8476 ("python-black" ,python-black)
8477 ("python-flake8" ,python-flake8)
8478 ("python-jedi" ,python-jedi)
8479 ("python-rope" ,python-rope)
8480 ("python-yapf" ,python-yapf)))
8481 (native-inputs
8482 `(("ert-runner" ,emacs-ert-runner)
8483 ("emacs-f" ,emacs-f)
8484 ("python" ,python-wrapper)
8485 ;; For documentation.
8486 ("python-sphinx" ,python-sphinx)
8487 ("texinfo" ,texinfo)))
8488 (home-page "https://github.com/jorgenschaefer/elpy")
8489 (synopsis "Python development environment for Emacs")
8490 (description "Elpy brings powerful Python editing to Emacs. It combines
8491 and configures a number of other packages written in Emacs Lisp as well as
8492 Python, together offering features such as navigation, documentation,
8493 completion, interactive development and more.")
8494 (license license:gpl3+)))
8495
8496 (define-public emacs-rainbow-delimiters
8497 (package
8498 (name "emacs-rainbow-delimiters")
8499 (version "2.1.4")
8500 (source (origin
8501 (method git-fetch)
8502 (uri (git-reference
8503 (url "https://github.com/Fanael/rainbow-delimiters")
8504 (commit version)))
8505 (file-name (git-file-name name version))
8506 (sha256
8507 (base32
8508 "1zr2669savnmkc68hiqsq9wccm6bs1j6jbmlac1xqh6nq7xgq36g"))))
8509 (build-system emacs-build-system)
8510 (home-page "https://github.com/Fanael/rainbow-delimiters")
8511 (arguments
8512 `(#:tests? #t
8513 #:test-command '("emacs" "-Q" "-batch"
8514 "-l" "rainbow-delimiters-test.el"
8515 "-f" "ert-run-tests-batch-and-exit")))
8516 (synopsis "Highlight brackets according to their depth")
8517 (description
8518 "Rainbow-delimiters is a \"rainbow parentheses\"-like mode for Emacs which
8519 highlights parentheses, brackets, and braces according to their depth. Each
8520 successive level is highlighted in a different color, making it easy to spot
8521 matching delimiters, orient yourself in the code, and tell which statements
8522 are at a given level.")
8523 (license license:gpl3+)))
8524
8525 (define-public emacs-rainbow-identifiers
8526 (package
8527 (name "emacs-rainbow-identifiers")
8528 (version "0.2.2")
8529 (source (origin
8530 (method url-fetch)
8531 (uri (string-append "https://raw.githubusercontent.com/Fanael"
8532 "/rainbow-identifiers/" version
8533 "/rainbow-identifiers.el"))
8534 (file-name (string-append "rainbow-identifiers-" version ".el"))
8535 (sha256
8536 (base32
8537 "0325abxj47k0g1i8nqrq70w2wr6060ckhhf92krv1s072b3jzm31"))))
8538 (build-system emacs-build-system)
8539 (home-page "https://github.com/Fanael/rainbow-identifiers")
8540 (synopsis "Highlight identifiers in source code")
8541 (description
8542 "Rainbow identifiers mode is an Emacs minor mode providing highlighting of
8543 identifiers based on their names. Each identifier gets a color based on a hash
8544 of its name.")
8545 (license license:bsd-2)))
8546
8547 (define-public emacs-rainbow-mode
8548 (package
8549 (name "emacs-rainbow-mode")
8550 (version "1.0.5")
8551 (source
8552 (origin
8553 (method url-fetch)
8554 (uri (string-append "https://elpa.gnu.org/packages/"
8555 "rainbow-mode-" version ".el"))
8556 (sha256
8557 (base32 "159fps843k5pap9k04a7ll1k3gw6d9c6w08lq4bbc3lqg78aa2l9"))))
8558 (build-system emacs-build-system)
8559 (home-page "https://elpa.gnu.org/packages/rainbow-mode.html")
8560 (synopsis "Colorize color names in buffers")
8561 (description
8562 "This minor mode sets background color to strings that match color
8563 names, e.g., @samp{#0000ff} is displayed in white with a blue background.")
8564 (license license:gpl3+)))
8565
8566 (define-public emacs-ryo-modal
8567 ;; Package has no release. Version is extracted from "Version:" keyword in
8568 ;; main file.
8569 (let ((commit "3a54312eea7023a86ca3f8eb3c03c872554bff2f")
8570 (revision "0"))
8571 (package
8572 (name "emacs-ryo-modal")
8573 (version (git-version "0.4" revision commit))
8574 (source
8575 (origin
8576 (method git-fetch)
8577 (uri (git-reference
8578 (url "https://github.com/Kungsgeten/ryo-modal")
8579 (commit commit)))
8580 (file-name (git-file-name name version))
8581 (sha256
8582 (base32 "1cyvp3bi6yhckbdnq98xvghmhdzghya5y9wd7hxjawibs75rza95"))))
8583 (build-system emacs-build-system)
8584 (home-page "https://github.com/Kungsgeten/ryo-modal")
8585 (synopsis "Emacs minor mode for defining modal editing environments")
8586 (description "RYO modal provides a convenient way of defining modal
8587 keybindings in Emacs, and does not come with any predefined bindings.")
8588 (license license:expat))))
8589
8590 (define-public emacs-visual-fill-column
8591 (package
8592 (name "emacs-visual-fill-column")
8593 (version "1.11")
8594 (source (origin
8595 (method url-fetch)
8596 (uri (string-append "https://codeload.github.com/joostkremers/"
8597 "visual-fill-column/tar.gz/" version))
8598 (file-name (string-append name "-" version ".tar.gz"))
8599 (sha256
8600 (base32
8601 "13jnviakp607zcms7f8ams56mr8wffnq1pghlc6fvqs39663pgwh"))))
8602 (build-system emacs-build-system)
8603 (home-page "https://github.com/joostkremers/visual-fill-column")
8604 (synopsis "Fill-column for visual-line-mode")
8605 (description
8606 "@code{visual-fill-column-mode} is a small Emacs minor mode that mimics
8607 the effect of @code{fill-column} in @code{visual-line-mode}. Instead of
8608 wrapping lines at the window edge, which is the standard behaviour of
8609 @code{visual-line-mode}, it wraps lines at @code{fill-column}. If
8610 @code{fill-column} is too large for the window, the text is wrapped at the
8611 window edge.")
8612 (license license:gpl3+)))
8613
8614 (define-public emacs-writeroom
8615 (package
8616 (name "emacs-writeroom")
8617 (version "3.10")
8618 (source
8619 (origin
8620 (method git-fetch)
8621 (uri (git-reference
8622 (url "https://github.com/joostkremers/writeroom-mode")
8623 (commit version)))
8624 (file-name (git-file-name name version))
8625 (sha256
8626 (base32
8627 "0la4q2dm123l4rdfh0ry03b99ihvh324y7iw12az909198bcx335"))))
8628 (build-system emacs-build-system)
8629 (propagated-inputs
8630 `(("emacs-visual-fill-column" ,emacs-visual-fill-column)))
8631 (home-page "https://github.com/joostkremers/writeroom-mode")
8632 (synopsis "Distraction-free writing for Emacs")
8633 (description
8634 "This package defines a minor mode for distraction-free writing. Some of
8635 the default effects include entering fullscreen, deleting other windows of the
8636 current frame, disabling the mode line, and adding margins to the buffer that
8637 restrict the text width to 80 characters.")
8638 (license license:bsd-3)))
8639
8640 (define-public emacs-ido-completing-read+
8641 (package
8642 (name "emacs-ido-completing-read+")
8643 (version "3.12")
8644 (source (origin
8645 (method url-fetch)
8646 (uri (string-append "https://raw.githubusercontent.com"
8647 "/DarwinAwardWinner/ido-ubiquitous/v"
8648 version "/ido-completing-read+.el"))
8649 (file-name (string-append "ido-completing-read+-" version ".el"))
8650 (sha256
8651 (base32
8652 "1cyalb0p7nfsm4n6n9q6rjmvn6adqc0fq8ybnlj3n41n289dkfjf"))))
8653 (build-system emacs-build-system)
8654 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
8655 (synopsis "Replacement for completing-read using ido")
8656 (description
8657 "The ido-completing-read+ function is a wrapper for ido-completing-read.
8658 Importantly, it detects edge cases that ordinary ido cannot handle and either
8659 adjusts them so ido can handle them, or else simply falls back to the standard
8660 Emacs completion function instead.")
8661 (license license:gpl3+)))
8662
8663 (define-public emacs-ido-ubiquitous
8664 (package
8665 (name "emacs-ido-ubiquitous")
8666 (version "3.12")
8667 (source (origin
8668 (method url-fetch)
8669 (uri (string-append "https://raw.githubusercontent.com"
8670 "/DarwinAwardWinner/ido-ubiquitous/v"
8671 version "/ido-ubiquitous.el"))
8672 (file-name (string-append "ido-ubiquitous-" version ".el"))
8673 (sha256
8674 (base32
8675 "197ypji0fb6jsdcq40rpnknwlh3imas6s6jbsvkfm0pz9988c3q2"))))
8676 (build-system emacs-build-system)
8677 (propagated-inputs
8678 `(("emacs-ido-completing-read+" ,emacs-ido-completing-read+)))
8679 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
8680 (synopsis "Use ido (nearly) everywhere")
8681 (description
8682 "Ido-ubiquitous enables ido-style completion for almost every function
8683 that uses the standard completion function completing-read.")
8684 (license license:gpl3+)))
8685
8686 (define-public emacs-yaml-mode
8687 (package
8688 (name "emacs-yaml-mode")
8689 (version "0.0.14")
8690 (source (origin
8691 (method git-fetch)
8692 (uri (git-reference
8693 (url "https://github.com/yoshiki/yaml-mode")
8694 (commit version)))
8695 (file-name (git-file-name name version))
8696 (sha256
8697 (base32
8698 "18g064ardqi1f3xz7j6rs1x9fvv9sn0iq9vgid8c6qvxq7gwj00r"))))
8699 (build-system emacs-build-system)
8700 (home-page "https://github.com/yoshiki/yaml-mode")
8701 (synopsis "Major mode for editing YAML files")
8702 (description
8703 "Yaml-mode is an Emacs major mode for editing files in the YAML data
8704 serialization format. It was initially developed by Yoshiki Kurihara and many
8705 features were added by Marshall Vandegrift. As YAML and Python share the fact
8706 that indentation determines structure, this mode provides indentation and
8707 indentation command behavior very similar to that of python-mode.")
8708 (license license:gpl3+)))
8709
8710 (define-public emacs-gitlab-ci-mode
8711 (package
8712 (name "emacs-gitlab-ci-mode")
8713 (version "20190425.11.10")
8714 (source (origin
8715 (method git-fetch)
8716 (uri (git-reference
8717 (url "https://gitlab.com/joewreschnig/gitlab-ci-mode.git")
8718 (commit (string-append "v" version))))
8719 (file-name (git-file-name name version))
8720 (sha256
8721 (base32
8722 "1jkp9mnbiccqnha9zs646znqyqvy5jjb81kah7ghbkzdqqk2avm0"))))
8723 (build-system emacs-build-system)
8724 (propagated-inputs
8725 `(("emacs-yaml-mode" ,emacs-yaml-mode)))
8726 (home-page "https://gitlab.com/joewreschnig/gitlab-ci-mode/")
8727 (synopsis "Emacs mode for editing GitLab CI files")
8728 (description
8729 "@code{gitlab-ci-mode} is an Emacs major mode for editing GitLab CI
8730 files. It provides syntax highlighting and completion for keywords and
8731 special variables. An interface to GitLab’s CI file linter is also provided
8732 via @code{gitlab-ci-lint}.")
8733 (license license:gpl3+)))
8734
8735 (define-public emacs-gitlab-snip-helm
8736 (package
8737 (name "emacs-gitlab-snip-helm")
8738 (version "0.0.2")
8739 (source (origin
8740 (method git-fetch)
8741 (uri (git-reference
8742 (url "https://gitlab.com/sasanidas/gitlab-snip-helm.git")
8743 (commit version)))
8744 (file-name (git-file-name name version))
8745 (sha256
8746 (base32
8747 "1c5js19zyb1z61hapvbfcl5jhrjqij46cxldgqij6al0scw44dga"))))
8748 (build-system emacs-build-system)
8749 (propagated-inputs
8750 `(("emacs-dash" ,emacs-dash)
8751 ("emacs-helm" ,emacs-helm)))
8752 (home-page "https://gitlab.com/sasanidas/gitlab-snip-helm/")
8753 (synopsis "GitLab snippet API interaction for Emacs")
8754 (description "This package provides GitLab snippet API interaction for
8755 Emacs.")
8756 (license license:gpl3+)))
8757
8758 (define-public emacs-web-mode
8759 (package
8760 (name "emacs-web-mode")
8761 (version "17")
8762 (source
8763 (origin
8764 (method git-fetch)
8765 (uri (git-reference
8766 (url "https://github.com/fxbois/web-mode")
8767 (commit (string-append "v" version))))
8768 (file-name (git-file-name name version))
8769 (sha256
8770 (base32 "0jr5a1nzp8nbdng0k2fcaymiiv9ngrbknbrqaswgqn3akvx793jk"))))
8771 (build-system emacs-build-system)
8772 (synopsis "Major mode for editing web templates")
8773 (description "Web mode is an Emacs major mode for editing web templates
8774 aka HTML files embedding parts (CSS/JavaScript) and blocks (pre rendered by
8775 client/server side engines). Web mode is compatible with many template
8776 engines: PHP, JSP, ASP, Django, Twig, Jinja, Mustache, ERB, FreeMarker,
8777 Velocity, Cheetah, Smarty, CTemplate, Mustache, Blade, ErlyDTL, Go Template,
8778 Dust.js, React/JSX, Angularjs, ejs, etc.")
8779 (home-page "http://web-mode.org/")
8780 (license license:gpl3+)))
8781
8782 (define-public emacs-wgrep
8783 (package
8784 (name "emacs-wgrep")
8785 (version "2.3.2")
8786 (source (origin
8787 (method git-fetch)
8788 (uri (git-reference
8789 (url "https://github.com/mhayashi1120/Emacs-wgrep")
8790 (commit version)))
8791 (file-name (git-file-name name version))
8792 (sha256
8793 (base32
8794 "00cwqzb94jlq4mwgv8z7r3mn0a6mhq95z6j189kacq9g4473zh8d"))))
8795 (build-system emacs-build-system)
8796 (home-page "https://github.com/mhayashi1120/Emacs-wgrep")
8797 (synopsis "Edit a grep buffer and apply those changes to the files")
8798 (description
8799 "Emacs wgrep allows you to edit a grep buffer and apply those changes
8800 to the file buffer. Several backends are supported beside the classic grep:
8801 ack, ag, helm and pt.")
8802 (license license:gpl3+)))
8803
8804 (define-public emacs-helm
8805 (package
8806 (name "emacs-helm")
8807 (version "3.6.5")
8808 (source
8809 (origin
8810 (method git-fetch)
8811 (uri (git-reference
8812 (url "https://github.com/emacs-helm/helm")
8813 (commit (string-append "v" version))))
8814 (file-name (git-file-name name version))
8815 (sha256
8816 (base32 "0yzpb84346v42ig4h0rsnvzmln58ilhc0gsq0ggc7038ypqkdw4d"))))
8817 (build-system emacs-build-system)
8818 (propagated-inputs
8819 `(("emacs-async" ,emacs-async)
8820 ("emacs-popup" ,emacs-popup)))
8821 (home-page "https://emacs-helm.github.io/helm/")
8822 (synopsis "Incremental completion and selection narrowing
8823 framework for Emacs")
8824 (description "Helm is incremental completion and selection narrowing
8825 framework for Emacs. It will help steer you in the right direction when
8826 you're looking for stuff in Emacs (like buffers, files, etc). Helm is a fork
8827 of @code{anything.el} originally written by Tamas Patrovic and can be
8828 considered to be its successor. Helm sets out to clean up the legacy code in
8829 @code{anything.el} and provide a cleaner, leaner and more modular tool, that's
8830 not tied in the trap of backward compatibility.")
8831 (license license:gpl3+)))
8832
8833 (define-public emacs-helm-org
8834 (let ((commit "8457e1e46227bf87726e05c42cec5a4b51c2ef7b")
8835 (revision "3"))
8836 (package
8837 (name "emacs-helm-org")
8838 (version (git-version "1.0" revision commit))
8839 (source
8840 (origin
8841 (method git-fetch)
8842 (uri (git-reference
8843 (url "https://github.com/emacs-helm/helm-org")
8844 (commit commit)))
8845 (file-name (git-file-name name version))
8846 (sha256
8847 (base32 "0kcjhwwi492n9m2w894hvdavfvhj45zygy7bwvx103wvpay5h6h6"))))
8848 (build-system emacs-build-system)
8849 (propagated-inputs
8850 `(("emacs-helm" ,emacs-helm)))
8851 (home-page "https://github.com/emacs-helm/helm-org")
8852 (synopsis "Helm interface to the Silver Searcher")
8853 (description
8854 "This package provides a frontend for grepping tools like ag and ack,
8855 as well as features for editing search results.")
8856 (license license:gpl3+))))
8857
8858 (define-public emacs-helm-swoop
8859 (package
8860 (name "emacs-helm-swoop")
8861 (version "3.0.0")
8862 (source
8863 (origin
8864 (method git-fetch)
8865 (uri (git-reference
8866 (url "https://github.com/emacsorphanage/helm-swoop")
8867 (commit version)))
8868 (file-name (git-file-name name version))
8869 (sha256
8870 (base32 "1qjay0fvryxa8n1ws6r1by512p2fylb2nj7ycm1497fcalb0d706"))))
8871 (build-system emacs-build-system)
8872 (propagated-inputs
8873 `(("emacs-helm" ,emacs-helm)))
8874 (home-page "https://github.com/emacsorphanage/helm-swoop")
8875 (synopsis "Filter and jump to lines in an Emacs buffer using Helm")
8876 (description
8877 "This package builds on the Helm interface to provide several commands
8878 for search-based navigation of buffers.")
8879 (license license:gpl2+)))
8880
8881 (define-public emacs-helm-ag
8882 (package
8883 (name "emacs-helm-ag")
8884 (version "0.62")
8885 (source
8886 (origin
8887 (method git-fetch)
8888 (uri (git-reference
8889 (url "https://github.com/syohex/emacs-helm-ag")
8890 (commit version)))
8891 (file-name (git-file-name name version))
8892 (sha256
8893 (base32 "0xgbpp8xqdiyvfs64x0q909g77ml28z3irw2lnasvpsg0dfdm2zy"))))
8894 (build-system emacs-build-system)
8895 (propagated-inputs
8896 `(("emacs-helm" ,emacs-helm)))
8897 (home-page "https://github.com/syohex/emacs-helm-ag")
8898 (synopsis "Helm interface to the Silver Searcher")
8899 (description
8900 "This package provides a frontend for grepping tools like ag and ack,
8901 as well as features for editing search results.")
8902 (license license:gpl3+)))
8903
8904 (define-public emacs-helm-projectile
8905 (package
8906 (name "emacs-helm-projectile")
8907 (version "1.0.0")
8908 (source
8909 (origin
8910 (method git-fetch)
8911 (uri (git-reference
8912 (url "https://github.com/bbatsov/helm-projectile")
8913 (commit (string-append "v" version))))
8914 (file-name (git-file-name name version))
8915 (sha256
8916 (base32 "05gpg90gg03yalmv9fw1y9k21i2l617iipvs0p9n80aln8nrzs8g"))))
8917 (build-system emacs-build-system)
8918 (propagated-inputs
8919 `(("emacs-helm" ,emacs-helm)
8920 ("emacs-projectile" ,emacs-projectile)))
8921 (home-page "https://github.com/bbatsov/helm-projectile")
8922 (synopsis "Helm integration for Projectile")
8923 (description
8924 "This Emacs library provides a Helm interface for Projectile.")
8925 (license license:gpl3+)))
8926
8927 (define-public emacs-taskrunner
8928 (let ((commit "3afd4a546d42339543d3d4e51b175fc3e82b3358")
8929 (revision "1"))
8930 (package
8931 (name "emacs-taskrunner")
8932 (version (git-version "0.6" revision commit))
8933 (source
8934 (origin
8935 (method git-fetch)
8936 (uri (git-reference
8937 (url "https://github.com/emacs-taskrunner/emacs-taskrunner")
8938 (commit commit)))
8939 (file-name (git-file-name name version))
8940 (sha256
8941 (base32
8942 "1lkdvmjn3alhqxq2i64sdr977sbw3g0b2670d9bwyzi67qh0jxrv"))))
8943 (build-system emacs-build-system)
8944 (propagated-inputs
8945 `(("emacs-async" ,emacs-async)
8946 ("emacs-projectile" ,emacs-projectile)))
8947 (home-page "https://github.com/emacs-taskrunner/emacs-taskrunner")
8948 (synopsis "Retrieve tasks from various build systems and task-runners")
8949 (description "This package parses Makefiles and build-system files for
8950 multiple project types.")
8951 (license license:gpl3+))))
8952
8953 (define-public emacs-ivy-taskrunner
8954 (let ((commit "75d8d67cfe3c29663fe0f5508a887adf40ed5162")
8955 (revision "1"))
8956 (package
8957 (name "emacs-ivy-taskrunner")
8958 (version (git-version "0.9" revision commit))
8959 (source
8960 (origin
8961 (method git-fetch)
8962 (uri (git-reference
8963 (url "https://github.com/emacs-taskrunner/ivy-taskrunner")
8964 (commit commit)))
8965 (file-name (git-file-name name version))
8966 (sha256
8967 (base32
8968 "1wf4s4k0ap21f7g5w6128an8nsvbja7f5n889vcml5b6gjz058db"))))
8969 (build-system emacs-build-system)
8970 (propagated-inputs
8971 `(("emacs-ivy" ,emacs-ivy)
8972 ("emacs-taskrunner" ,emacs-taskrunner)
8973 ("emacs-projectile" ,emacs-projectile)))
8974 (home-page "https://github.com/emacs-taskrunner/ivy-taskrunner")
8975 (synopsis "Retrieve build-system tasks using Ivy")
8976 (description "This package provides an Ivy interface for selecting
8977 Makefile targets.")
8978 (license license:gpl3+))))
8979
8980 (define-public emacs-helm-taskrunner
8981 (let ((commit "1910dac19cbc7bd4fd08b0faf9affd455339fbea")
8982 (revision "1"))
8983 (package
8984 (name "emacs-helm-taskrunner")
8985 (version (git-version "0.9" revision commit))
8986 (source
8987 (origin
8988 (method git-fetch)
8989 (uri (git-reference
8990 (url "https://github.com/emacs-taskrunner/helm-taskrunner")
8991 (commit commit)))
8992 (file-name (git-file-name name version))
8993 (sha256
8994 (base32
8995 "182lmr858fx6rdhp1fy7kv8dvrhzcnxzwfck1q22s6xs8x85d5q7"))))
8996 (build-system emacs-build-system)
8997 (propagated-inputs
8998 `(("emacs-helm" ,emacs-helm)
8999 ("emacs-taskrunner" ,emacs-taskrunner)
9000 ("emacs-projectile" ,emacs-projectile)))
9001 (home-page "https://github.com/emacs-taskrunner/helm-taskrunner")
9002 (synopsis "Retrieve build-system tasks using Helm")
9003 (description "This package provides a Helm interface for selecting
9004 Makefile targets.")
9005 (license license:gpl3+))))
9006
9007 (define-public emacs-helm-make
9008 (let ((commit "feae8df22bc4b20705ea08ac9adfc2b43bb348d0")
9009 (revision "1"))
9010 (package
9011 (name "emacs-helm-make")
9012 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
9013 (source
9014 (origin
9015 (method git-fetch)
9016 (uri (git-reference
9017 (url "https://github.com/abo-abo/helm-make")
9018 (commit commit)))
9019 (file-name (git-file-name name version))
9020 (sha256
9021 (base32
9022 "1y2v77mmd1bfkkz51cnk1l0dg3lvvxc39wlamnm7wjns66dbvlam"))))
9023 (build-system emacs-build-system)
9024 (propagated-inputs
9025 `(("emacs-helm" ,emacs-helm)
9026 ("emacs-projectile" ,emacs-projectile)))
9027 (home-page "https://github.com/abo-abo/helm-make")
9028 (synopsis "Select a Makefile target with helm")
9029 (description "@code{helm-make} or @code{helm-make-projectile} will give
9030 you a @code{helm} selection of directory Makefile's targets. Selecting a
9031 target will call @code{compile} on it.")
9032 (license license:gpl3+))))
9033
9034 (define-public emacs-cider
9035 (package
9036 (name "emacs-cider")
9037 (version "0.26.1")
9038 (source
9039 (origin
9040 (method git-fetch)
9041 (uri (git-reference
9042 (url "https://github.com/clojure-emacs/cider")
9043 (commit (string-append "v" version))))
9044 (file-name (git-file-name name version))
9045 (sha256
9046 (base32 "0m77jbxl380dp1wyj12m82bb06r80js8yxl530ryp1mwvy74f00d"))))
9047 (build-system emacs-build-system)
9048 (arguments
9049 '(#:exclude ;don't exclude 'cider-test.el'
9050 '("^\\.dir-locals\\.el$" "^test/")))
9051 (propagated-inputs
9052 `(("emacs-clojure-mode" ,emacs-clojure-mode)
9053 ("emacs-parseedn" ,emacs-parseedn)
9054 ("emacs-pkg-info" ,emacs-pkg-info)
9055 ("emacs-queue" ,emacs-queue)
9056 ("emacs-sesman" ,emacs-sesman)
9057 ("emacs-spinner" ,emacs-spinner)))
9058 (home-page "https://cider.mx/")
9059 (synopsis "Clojure development environment for Emacs")
9060 (description
9061 "CIDER (Clojure Interactive Development Environment that Rocks) aims to
9062 provide an interactive development experience similar to the one you'd get
9063 when programming in Emacs Lisp, Common Lisp (with SLIME or Sly), Scheme (with
9064 Geiser) and Smalltalk.
9065
9066 CIDER is the successor to the now deprecated combination of using SLIME +
9067 swank-clojure for Clojure development.
9068
9069 There are plenty of differences between CIDER and SLIME, but the core ideas
9070 are pretty much the same (and SLIME served as the principle inspiration for
9071 CIDER).")
9072 (license license:gpl3+)))
9073
9074 ;; There hasn't been a tag or release since 2016, so we take the latest
9075 ;; commit.
9076 (define-public emacs-sly
9077 (let ((commit "8e22c1f62667434ec1acd1e0c6b7ec1c22dc0958")
9078 ;; Update together with sbcl-slynk-boot0.
9079 (revision "6"))
9080 (package
9081 (name "emacs-sly")
9082 (version (git-version "1.0.0" revision commit))
9083 (source
9084 (origin
9085 (method git-fetch)
9086 (uri (git-reference
9087 (url "https://github.com/joaotavora/sly")
9088 (commit commit)))
9089 (file-name (git-file-name name version))
9090 (sha256
9091 (base32
9092 "09wyqixsn7k889i54amf8bwjg6iyirp89xmcrgfwal010kh1ixcl"))))
9093 (build-system emacs-build-system)
9094 (native-inputs
9095 `(("texinfo" ,texinfo)))
9096 (arguments
9097 `(#:include (cons* "^contrib\\/" "^lib\\/" "^slynk\\/" %default-include)
9098 #:phases
9099 ;; The package provides autoloads.
9100 (modify-phases %standard-phases
9101 (delete 'make-autoloads)
9102 (add-before 'install 'install-doc
9103 (lambda* (#:key outputs #:allow-other-keys)
9104 (let* ((out (assoc-ref outputs "out"))
9105 (info-dir (string-append out "/share/info"))
9106 (doc-dir (string-append out "/share/doc/"
9107 ,name "-" ,version))
9108 (doc-files '(;; "doc/sly-refcard.pdf" ; See sly-refcard.pdf below.
9109 "README.md" "NEWS.md" "PROBLEMS.md"
9110 "CONTRIBUTING.md")))
9111 (with-directory-excursion "doc"
9112 (substitute* "Makefile"
9113 (("infodir=/usr/local/info")
9114 (string-append "infodir=" info-dir))
9115 ;; Don't rebuild contributors.texi since we are not in
9116 ;; the git repo.
9117 (("contributors.texi: Makefile texinfo-tabulate.awk")
9118 "contributors.texi:"))
9119 (invoke "make" "html/index.html")
9120 (invoke "make" "sly.info")
9121 ;; TODO: We need minimal texlive with "preprint" package
9122 ;; (for fullpage.sty). (invoke "make" "sly-refcard.pdf")
9123 (install-file "sly.info" info-dir)
9124 (copy-recursively "html" (string-append doc-dir "/html")))
9125 (for-each (lambda (f)
9126 (install-file f doc-dir)
9127 (delete-file f))
9128 doc-files)
9129 (delete-file-recursively "doc")
9130 #t))))))
9131 (home-page "https://github.com/joaotavora/sly")
9132 (synopsis "Sylvester the Cat's Common Lisp IDE")
9133 (description
9134 "SLY is Sylvester the Cat's Common Lisp IDE. SLY is a fork of SLIME, and
9135 contains the following improvements over it:
9136
9137 @enumerate
9138 @item Completely redesigned REPL based on Emacs's own full-featured
9139 @code{comint.el}.
9140 @item Live code annotations via a new @code{sly-stickers} contrib.
9141 @item Consistent interactive button interface. Everything can be copied to
9142 the REPL.
9143 @item Multiple inspectors with independent history.
9144 @item Regexp-capable @code{M-x sly-apropos}.
9145 @item Contribs are first class SLY citizens and enabled by default.
9146 @item Use ASDF to loads contribs on demand.
9147 @end enumerate
9148
9149 SLY tracks SLIME's bugfixes and all its familiar features (debugger, inspector,
9150 xref, etc...) are still available, but with better integration.")
9151 (license license:gpl3+))))
9152
9153 (define-public emacs-sly-quicklisp
9154 (let ((commit "01ebe3976a244309f2e277c09206831135a0b66c")
9155 (revision "1"))
9156 (package
9157 (name "emacs-sly-quicklisp")
9158 (version (git-version "0.0.0" revision commit))
9159 (home-page "https://github.com/joaotavora/sly-quicklisp")
9160 (source
9161 (origin
9162 (method git-fetch)
9163 (uri (git-reference
9164 (url home-page)
9165 (commit commit)))
9166 (file-name (git-file-name name version))
9167 (sha256
9168 (base32
9169 "1vfqmvayf35g6y3ljsm3rlzv5jm50qikhh4lv2zkkswj6gkkb1cv"))))
9170 (build-system emacs-build-system)
9171 (propagated-inputs
9172 `(("emacs-sly" ,emacs-sly)))
9173 (arguments
9174 `(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
9175 #:phases
9176 ;; The package provides autoloads.
9177 (modify-phases %standard-phases
9178 (delete 'make-autoloads)
9179 (delete 'enable-autoloads-compilation))))
9180 (synopsis "Quicklisp support for SLY")
9181 (description
9182 "@command{sly-quicklisp} is an external contrib for SLY that provides a
9183 sly-quickload command that prompts the user for a package to install. ")
9184 (license license:gpl3+))))
9185
9186 (define-public emacs-sly-asdf
9187 (let ((commit "32ce14994e8faee9321605cec36d156b02996c46")
9188 (revision "4"))
9189 (package
9190 (name "emacs-sly-asdf")
9191 (version (git-version "0.1.0" revision commit))
9192 (home-page "https://github.com/mmgeorge/sly-asdf")
9193 (source
9194 (origin
9195 (method git-fetch)
9196 (uri (git-reference
9197 (url home-page)
9198 (commit commit)))
9199 (file-name (git-file-name name version))
9200 (sha256
9201 (base32
9202 "09x8l37wwqw74xc2frwzbfdb1if8rb3szg5akdk3v2qhik4sm3dd"))))
9203 (build-system emacs-build-system)
9204 (propagated-inputs
9205 `(("emacs-sly" ,emacs-sly)
9206 ("emacs-popup" ,emacs-popup)))
9207 (arguments
9208 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)))
9209 (synopsis "ASDF contrib for SLY")
9210 (description
9211 "@command{sly-asdf} is an external contrib for SLY that provides
9212 additional support for working with ASDF projects.")
9213 (license license:gpl3+))))
9214
9215 (define-public emacs-sly-named-readtables
9216 (let ((commit "a5a42674ccffa97ccd5e4e9742beaf3ea719931f")
9217 (revision "1"))
9218 (package
9219 (name "emacs-sly-named-readtables")
9220 (version (git-version "0.1" revision commit))
9221 (home-page "https://github.com/joaotavora/sly-named-readtables")
9222 (source
9223 (origin
9224 (method git-fetch)
9225 (uri (git-reference
9226 (url home-page)
9227 (commit commit)))
9228 (file-name (git-file-name name version))
9229 (sha256
9230 (base32
9231 "16asd119rzqrlclps2q6yrkis8jy5an5xgzzqvb7jdyq39zxg54q"))))
9232 (build-system emacs-build-system)
9233 (propagated-inputs
9234 `(("emacs-sly" ,emacs-sly)))
9235 (arguments
9236 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
9237 #:phases (modify-phases %standard-phases
9238 ;; Byte compilation of the autoload file fails.
9239 (delete 'enable-autoloads-compilation))))
9240 (synopsis "Named-readtables support for SLY")
9241 (description
9242 "@command{sly-named-readtables} is an external contrib for SLY that
9243 enables different readtables to be active in different parts of the same
9244 file.")
9245 (license license:gpl3+))))
9246
9247 (define-public emacs-sly-macrostep
9248 (let ((commit "5113e4e926cd752b1d0bcc1508b3ebad5def5fad")
9249 (revision "2"))
9250 (package
9251 (name "emacs-sly-macrostep")
9252 (version (git-version "0.1" revision commit))
9253 (home-page "https://github.com/joaotavora/sly-macrostep")
9254 (source
9255 (origin
9256 (method git-fetch)
9257 (uri (git-reference
9258 (url home-page)
9259 (commit commit)))
9260 (file-name (git-file-name name version))
9261 (sha256
9262 (base32
9263 "1nxf28gn4f3n0wnv7nb5sgl36fz175y470zs9hig4kq8cp0yal0r"))))
9264 (build-system emacs-build-system)
9265 (propagated-inputs
9266 `(("emacs-sly" ,emacs-sly)
9267 ("emacs-macrostep" ,emacs-macrostep)))
9268 (arguments
9269 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
9270 #:phases
9271 ;; The package provides autoloads.
9272 (modify-phases %standard-phases
9273 (delete 'make-autoloads)
9274 (delete 'enable-autoloads-compilation))))
9275 (synopsis "Expand Common Lisp macros inside source files with SLY")
9276 (description
9277 "@command{sly-macrostep} is a SLY contrib for expanding CL macros right
9278 inside the source file.")
9279 (license license:gpl3+))))
9280
9281 (define-public emacs-sly-package-inferred
9282 (let ((commit "800e71e2be631422277e2ec77e6d6f6ea20e95ef")
9283 (revision "1"))
9284 (package
9285 (name "emacs-sly-package-inferred")
9286 (version (git-version "0.1" revision commit))
9287 (home-page "https://github.com/40ants/sly-package-inferred")
9288 (source
9289 (origin
9290 (method git-fetch)
9291 (uri (git-reference
9292 (url home-page)
9293 (commit commit)))
9294 (file-name (git-file-name name version))
9295 (sha256
9296 (base32
9297 "1216idyp034nkqddhw4p53jkhhdxa6xnjjmsvijpf4rxqnfqvapg"))))
9298 (build-system emacs-build-system)
9299 (propagated-inputs
9300 `(("emacs-sly" ,emacs-sly)))
9301 (arguments
9302 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
9303 #:phases
9304 ;; The package provides autoloads.
9305 (modify-phases %standard-phases
9306 (delete 'make-autoloads))))
9307 (synopsis "Improved package inferred systems support for SLY")
9308 (description
9309 "@command{sly-package-inferred} is an external contrib for SLY that
9310 replaces its completion with a function which is better suited for systems
9311 using package inferred style.")
9312 (license license:gpl3+))))
9313
9314 (define-public emacs-lua-mode
9315 (package
9316 (name "emacs-lua-mode")
9317 (version "20201010")
9318 (home-page "https://github.com/immerrr/lua-mode/")
9319 (source
9320 (origin
9321 (method git-fetch)
9322 (uri (git-reference
9323 (url home-page)
9324 (commit (string-append "v" version))))
9325 (file-name (git-file-name name version))
9326 (sha256
9327 (base32 "0zf43f7fkrgki6pbc09zak975p4jx1yf3ipfs38hypfl9s5d6xrf"))))
9328 (build-system emacs-build-system)
9329 (arguments
9330 `(#:tests? #t
9331 #:test-command '("buttercup" "-l" "lua-mode.el")))
9332 (native-inputs
9333 `(("emacs-buttercup" ,emacs-buttercup)
9334 ("lua" ,lua)))
9335 (synopsis "Major mode for lua")
9336 (description
9337 "This Emacs package provides a mode for @uref{https://www.lua.org/,
9338 Lua programming language}.")
9339 (license license:gpl2+)))
9340
9341 (define-public emacs-ebuild-mode
9342 (package
9343 (name "emacs-ebuild-mode")
9344 (version "1.51")
9345 (source
9346 (origin
9347 (method url-fetch)
9348 (uri (string-append
9349 "https://dev.gentoo.org/~ulm/emacs/"
9350 "ebuild-mode-" version ".tar.xz"))
9351 (file-name (string-append name "-" version ".tar.xz"))
9352 (sha256
9353 (base32 "0sfmd6ns2qdmybcynlvc4fqzkbkzmm54rn87wyirdcqnpy0x03i2"))))
9354 (build-system emacs-build-system)
9355 (arguments
9356 '(#:phases
9357 (modify-phases %standard-phases
9358 (add-after 'install 'install-doc
9359 (lambda* (#:key outputs #:allow-other-keys)
9360 (invoke "make" "ebuild-mode.info")
9361 (install-file "ebuild-mode.info"
9362 (string-append (assoc-ref outputs "out")
9363 "/share/info"))
9364 #t)))))
9365 (native-inputs
9366 `(("texinfo" ,texinfo)))
9367 (home-page "https://devmanual.gentoo.org")
9368 (synopsis "Major modes for Gentoo package files")
9369 (description
9370 "This Emacs package provides modes for ebuild, eclass, eblit, GLEP42
9371 news items, openrc and runscripts.")
9372 (license license:gpl2+)))
9373
9374 (define-public emacs-evil
9375 (package
9376 (name "emacs-evil")
9377 (version "1.14.0")
9378 (source
9379 (origin
9380 (method git-fetch)
9381 (uri (git-reference
9382 (url "https://github.com/emacs-evil/evil")
9383 (commit version)))
9384 (file-name (git-file-name name version))
9385 (sha256
9386 (base32
9387 "17xrn3s6a4afmls8fw8nnxa1jq9dmj2qqrxa2vngh50hxpz8840p"))))
9388 (arguments
9389 `(#:phases
9390 (modify-phases %standard-phases
9391 (add-before 'check 'fix-test-helpers
9392 (lambda _
9393 (substitute* "evil-test-helpers.el"
9394 (("\\(undo-tree-mode 1\\)") ""))
9395 #t))
9396 (add-before 'install 'make-info
9397 (lambda _
9398 (with-directory-excursion "doc/build/texinfo"
9399 (invoke "makeinfo" "--no-split"
9400 "-o" "evil.info" "evil.texi")))))))
9401 (build-system emacs-build-system)
9402 (native-inputs `(("texinfo" ,texinfo)))
9403 (home-page "https://github.com/emacs-evil/evil")
9404 (synopsis "Extensible Vi layer for Emacs")
9405 (description
9406 "Evil is an extensible vi layer for Emacs. It emulates the
9407 main features of Vim, and provides facilities for writing custom
9408 extensions.")
9409 (license license:gpl3+)))
9410
9411 (define-public emacs-evil-collection
9412 (let ((commit "c68aed6a9694836602ada224160bc5b4c0a37919")
9413 (revision "15"))
9414 (package
9415 (name "emacs-evil-collection")
9416 (version (git-version "0.0.3" revision commit))
9417 (source (origin
9418 (method git-fetch)
9419 (uri (git-reference
9420 (url "https://github.com/emacs-evil/evil-collection")
9421 (commit commit)))
9422 (file-name (git-file-name name version))
9423 (sha256
9424 (base32
9425 "1xhrzl0vy540a572f9fnh5a039bpqsrkv0kh6bqw0rki70w7x0xx"))))
9426 (build-system emacs-build-system)
9427 (propagated-inputs
9428 `(("emacs-evil" ,emacs-evil)
9429 ("emacs-annalist" ,emacs-annalist)))
9430 (arguments
9431 `(#:include (cons* "^modes\\/" %default-include)))
9432 (home-page "https://github.com/emacs-evil/evil-collection")
9433 (synopsis "Collection of Evil bindings for many major and minor modes")
9434 (description "This is a collection of Evil bindings for the parts of
9435 Emacs that Evil does not cover properly by default, such as @code{help-mode},
9436 @code{M-x calendar}, Eshell and more.")
9437 (license license:gpl3+))))
9438
9439 (define-public emacs-goto-chg
9440 (let ((commit "1829a13026c597e358f716d2c7793202458120b5")
9441 (version "1.7.3")
9442 (revision "1"))
9443 (package
9444 (name "emacs-goto-chg")
9445 (version (git-version version revision commit))
9446 (source
9447 (origin
9448 (method git-fetch)
9449 (uri (git-reference
9450 (url "https://github.com/emacs-evil/goto-chg")
9451 (commit commit)))
9452 (file-name (git-file-name name version))
9453 (sha256
9454 (base32
9455 "1y603maw9xwdj3qiarmf1bp13461f9f5ackzicsbynl0i9la3qki"))))
9456 (build-system emacs-build-system)
9457 (propagated-inputs
9458 `(("emacs-undo-tree" ,emacs-undo-tree)))
9459 (home-page "https://github.com/emacs-evil/goto-chg")
9460 (synopsis "Go to the last change in the Emacs buffer")
9461 (description
9462 "This package provides @code{M-x goto-last-change} command that goes to
9463 the point of the most recent edit in the current Emacs buffer. When repeated,
9464 go to the second most recent edit, etc. Negative argument, @kbd{C-u -}, is
9465 used for reverse direction.")
9466 (license license:gpl2+))))
9467
9468 (define-public emacs-janpath-evil-numbers
9469 (let ((commit "d988041c1fe6e941dc8d591390750b237f71f524")
9470 (version "0.5")
9471 (revision "1"))
9472 (package
9473 (name "emacs-janpath-evil-numbers")
9474 (version (git-version version revision commit))
9475 (source
9476 (origin
9477 (method git-fetch)
9478 (uri (git-reference
9479 (url "https://github.com/janpath/evil-numbers")
9480 (commit commit)))
9481 (file-name (git-file-name name version))
9482 (sha256
9483 (base32
9484 "16zixhxxcb83m82f2cfiardfn99j3w41v6vh1qk6j9pplrlfw70v"))))
9485 (build-system emacs-build-system)
9486 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9487 (home-page "https://github.com/janpath/evil-numbers")
9488 (synopsis "Increment and decrement numeric literals")
9489 (description
9490 "This package provides functionality to search for a number up to the
9491 end of a line and increment or decrement it.")
9492 (license license:gpl3+))))
9493
9494 (define-public emacs-evil-owl
9495 (let ((commit "24c5f43df375194386344e69bc720ea3986c9510")
9496 (revision "3"))
9497 (package
9498 (name "emacs-evil-owl")
9499 (version (git-version "0.0.1" revision commit))
9500 (source
9501 (origin
9502 (method git-fetch)
9503 (uri (git-reference
9504 (url "https://github.com/mamapanda/evil-owl")
9505 (commit commit)))
9506 (file-name (git-file-name name version))
9507 (sha256
9508 (base32
9509 "0bqzch14whlmrcasakah3psrzswvkzd7mmi8hx5s64kfp29wbdhi"))))
9510 (build-system emacs-build-system)
9511 (propagated-inputs
9512 `(("emacs-evil" ,emacs-evil)))
9513 (arguments
9514 `(#:tests? #t
9515 #:test-command '("make" "test")))
9516 (home-page "https://github.com/mamapanda/evil-owl")
9517 (synopsis "Preview candidates when using Evil registers and marks")
9518 (description
9519 "This package supplements Evil's register- and mark-based commands with
9520 a popup window for previewing candidates.")
9521 (license license:gpl3+))))
9522
9523 (define-public emacs-evil-args
9524 (let ((commit "758ad5ae54ad34202064fec192c88151c08cb387")
9525 (revision "1"))
9526 (package
9527 (name "emacs-evil-args")
9528 (version (git-version "1.0" revision commit))
9529 (source
9530 (origin
9531 (method git-fetch)
9532 (uri (git-reference
9533 (url "https://github.com/wcsmith/evil-args")
9534 (commit commit)))
9535 (file-name (git-file-name name version))
9536 (sha256
9537 (base32
9538 "0k35glgsirc3cph8v5hhjrqfh4ndwh8a28qbr03y3jl8s453xcj7"))))
9539 (build-system emacs-build-system)
9540 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9541 (home-page "https://github.com/wcsmith/evil-args")
9542 (synopsis "Motions and text objects for delimited arguments in Evil")
9543 (description
9544 "This package provides motions and text objects for delimited
9545 arguments, such as arguments separated by commas and semicolons.")
9546 (license license:expat))))
9547
9548 (define-public emacs-evil-escape
9549 (package
9550 (name "emacs-evil-escape")
9551 (version "3.14")
9552 (source
9553 (origin
9554 (method git-fetch)
9555 (uri
9556 (git-reference
9557 (url "https://github.com/syl20bnr/evil-escape")
9558 (commit (string-append "v" version))))
9559 (file-name (git-file-name name version))
9560 (sha256
9561 (base32 "0s8lmmm25qabicwaj9jybpbd8mkc62yl7jnhk1lpablydjkv3w2i"))))
9562 (propagated-inputs
9563 `(("emacs-evil" ,emacs-evil)))
9564 (build-system emacs-build-system)
9565 (home-page "https://github.com/syl20bnr/evil-escape")
9566 (synopsis "Escape from insert state and everything else in Emacs")
9567 (description
9568 "Evil escape provides a customizable key sequence to escape from insert
9569 state and everything else in Emacs.")
9570 (license license:gpl3+)))
9571
9572 (define-public emacs-evil-exchange
9573 (let ((commit "47691537815150715e64e6f6ec79be7746c96120")
9574 (version "0.41")
9575 (revision "1"))
9576 (package
9577 (name "emacs-evil-exchange")
9578 (version (git-version version revision commit))
9579 (source
9580 (origin
9581 (method git-fetch)
9582 (uri (git-reference
9583 (url "https://github.com/Dewdrops/evil-exchange")
9584 (commit commit)))
9585 (file-name (git-file-name name version))
9586 (sha256
9587 (base32
9588 "0bjpn4yqig17ddym6wqq5fm1b294q74hzcbj9a6gs97fqiwf88xa"))))
9589 (build-system emacs-build-system)
9590 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9591 (native-inputs `(("emacs-ert-runner" ,emacs-ert-runner)))
9592 (arguments
9593 `(#:phases
9594 (modify-phases %standard-phases
9595 (add-before 'check 'fix-makefile
9596 (lambda _
9597 (substitute* "Makefile"
9598 (("cask exec ") ""))
9599 #t)))
9600 #:tests? #t
9601 #:test-command '("make" "test")))
9602 (home-page "https://github.com/Dewdrops/evil-exchange")
9603 (synopsis "Exchange text easily within Evil")
9604 (description
9605 "This package, a port of @code{vim-exchange}, provides an Evil operator
9606 for exchanging text.")
9607 (license license:gpl3+))))
9608
9609 (define-public emacs-evil-replace-with-register
9610 (let ((commit "91cc7bf21a94703c441cc9212214075b226b7f67")
9611 (version "0.1")
9612 (revision "1"))
9613 (package
9614 (name "emacs-evil-replace-with-register")
9615 (version (git-version version revision commit))
9616 (source
9617 (origin
9618 (method git-fetch)
9619 (uri (git-reference
9620 (url "https://github.com/Dewdrops/evil-ReplaceWithRegister")
9621 (commit commit)))
9622 (file-name (git-file-name name version))
9623 (sha256
9624 (base32
9625 "14rpn76qrf287s3y2agmddcxi27r226i53ixjvd694ss039g0r11"))))
9626 (build-system emacs-build-system)
9627 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9628 (home-page "https://github.com/Dewdrops/evil-ReplaceWithRegister")
9629 (synopsis "Quickly replace text with the contents of a register")
9630 (description
9631 "This package provides an Evil operator for replacing text with the
9632 contents of a register.")
9633 (license license:gpl3+))))
9634
9635 (define-public emacs-evil-indent-plus
9636 (let ((commit "0c7501e6efed661242c3a20e0a6c79a6455c2c40")
9637 (version "1.0.0")
9638 (revision "1"))
9639 (package
9640 (name "emacs-evil-indent-plus")
9641 (version (git-version version revision commit))
9642 (source
9643 (origin
9644 (method git-fetch)
9645 (uri (git-reference
9646 (url "https://github.com/TheBB/evil-indent-plus")
9647 (commit commit)))
9648 (file-name (git-file-name name version))
9649 (sha256
9650 (base32
9651 "1g6r1ydscwjvmhh1zg4q3nap4avk8lb9msdqrh7dff6pla0r2qs6"))))
9652 (build-system emacs-build-system)
9653 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9654 (home-page "https://github.com/TheBB/evil-indent-plus")
9655 (synopsis "Text objects based on indentation")
9656 (description
9657 "This package adds new text objects for @code{evil-mode} based on
9658 blocks having the same or higher indentation, including or excluding
9659 surrounding lines.")
9660 (license license:gpl2+))))
9661
9662 (define-public emacs-evil-text-object-python
9663 (let ((commit "9a064fe6475429145cbcc3b270fcc963b67adb15")
9664 (version "1.0.1")
9665 (revision "1"))
9666 (package
9667 (name "emacs-evil-text-object-python")
9668 (version (git-version version revision commit))
9669 (source
9670 (origin
9671 (method git-fetch)
9672 (uri (git-reference
9673 (url "https://github.com/wbolster/evil-text-object-python")
9674 (commit commit)))
9675 (file-name (git-file-name name version))
9676 (sha256
9677 (base32
9678 "074zpm6mmr1wfl6d5xdf8jk1fs4ccpbzf4ahhkwga9g71xiplszv"))))
9679 (build-system emacs-build-system)
9680 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9681 (home-page "https://github.com/wbolster/evil-text-object-python")
9682 (synopsis "Text objects for Python")
9683 (description
9684 "This package provides @code{evil-mode} text objects for Python.")
9685 (license license:gpl3+))))
9686
9687 (define-public emacs-evil-lion
9688 (let ((commit "6b03593f5dd6e7c9ca02207f9a73615cf94c93ab")
9689 (revision "1"))
9690 (package
9691 (name "emacs-evil-lion")
9692 (version (git-version "0.0.2" revision commit))
9693 (source
9694 (origin
9695 (method git-fetch)
9696 (uri (git-reference
9697 (url "https://github.com/edkolev/evil-lion")
9698 (commit commit)))
9699 (file-name (git-file-name name version))
9700 (sha256
9701 (base32
9702 "1a162hynp0jcsn50c1w5a02mrw9w3q05c7lkqzqd25px3d0p772q"))))
9703 (build-system emacs-build-system)
9704 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9705 (arguments
9706 `(#:tests? #t
9707 #:test-command '("make" "test")))
9708 (home-page "https://github.com/edkolev/evil-lion")
9709 (synopsis "Align operator for @code{evil-mode}")
9710 (description
9711 "This package, a port of @code{vim-lion}, provides an operator for
9712 aligning text objects based on separators.")
9713 (license license:gpl3+))))
9714
9715 (define-public emacs-evil-expat
9716 (let ((commit "f4fcd0aa3edc359adb5c986b5dd9188d220d84e2")
9717 (revision "1"))
9718 (package
9719 (name "emacs-evil-expat")
9720 (version (git-version "0.0.1" revision commit))
9721 (source
9722 (origin
9723 (method git-fetch)
9724 (uri (git-reference
9725 (url "https://github.com/edkolev/evil-expat")
9726 (commit commit)))
9727 (file-name (git-file-name name version))
9728 (sha256
9729 (base32
9730 "0872ix682hkdz0k8pn6sb54rqkx00rz5fxpd5j2snx406yagpaxz"))))
9731 (build-system emacs-build-system)
9732 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9733 (arguments
9734 `(#:tests? #t
9735 #:test-command '("make" "test")))
9736 (home-page "https://github.com/edkolev/evil-expat")
9737 (synopsis "Extra @code{ex} commands for @code{evil-mode}")
9738 (description
9739 "This package provides additional commands for the @code{ex} command
9740 line, including functions for version control with Git and for copying and
9741 pasting into and from @code{tmux} paste buffers.")
9742 (license license:gpl3+))))
9743
9744 (define-public emacs-evil-nerd-commenter
9745 (package
9746 (name "emacs-evil-nerd-commenter")
9747 (version "3.3.8")
9748 (source
9749 (origin
9750 (method git-fetch)
9751 (uri (git-reference
9752 (url "https://github.com/redguardtoo/evil-nerd-commenter")
9753 (commit version)))
9754 (file-name (git-file-name name version))
9755 (sha256
9756 (base32
9757 "0qd5a89mzvdyhd8lm13iwp220vzpd6dajwx54frlc5bzsxdmg6vc"))))
9758 (build-system emacs-build-system)
9759 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9760 (arguments
9761 `(#:tests? #t
9762 #:test-command '("make" "test")))
9763 (home-page "https://github.com/redguardtoo/evil-nerd-commenter")
9764 (synopsis "Comment and uncomment lines efficiently")
9765 (description
9766 "This package provides text objects and operators for comments within
9767 @code{evil-mode}.")
9768 (license license:gpl3+)))
9769
9770 (define-public emacs-evil-visual-replace
9771 (package
9772 (name "emacs-evil-visual-replace")
9773 (version "0.0.5")
9774 (source
9775 (origin
9776 (method git-fetch)
9777 (uri (git-reference
9778 (url "https://github.com/troyp/evil-visual-replace")
9779 (commit version)))
9780 (file-name (git-file-name name version))
9781 (sha256
9782 (base32
9783 "1gfyrq7xfzmzh3x8k5f08n027dlbwi0pkkxf9c39fkxp4jngibsz"))))
9784 (build-system emacs-build-system)
9785 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9786 (home-page "https://github.com/troyp/evil-visual-replace")
9787 (synopsis "Replacement commands for @code{evil-mode} visual blocks")
9788 (description
9789 "This package provides versions of @code{query-replace} and
9790 @code{replace-regexp} that work for @code{evil-mode} visual blocks.")
9791 (license license:gpl2+)))
9792
9793 (define-public emacs-evil-visualstar
9794 (let ((commit "06c053d8f7381f91c53311b1234872ca96ced752")
9795 (version "0.0.2")
9796 (revision "1"))
9797 (package
9798 (name "emacs-evil-visualstar")
9799 (version (git-version version revision commit))
9800 (source
9801 (origin
9802 (method git-fetch)
9803 (uri (git-reference
9804 (url "https://github.com/bling/evil-visualstar")
9805 (commit commit)))
9806 (file-name (git-file-name name version))
9807 (sha256
9808 (base32
9809 "0mkbzw12fav945icibc2293m5haxqr3hzkyli2cf4ssk6yvn0x4c"))))
9810 (build-system emacs-build-system)
9811 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9812 (home-page "https://github.com/bling/evil-visualstar")
9813 (synopsis "Instantly search using the visual selection")
9814 (description
9815 "This package provides @code{evil-mode} functions for using selected text
9816 to search.")
9817 (license license:gpl3+))))
9818
9819 (define-public emacs-monky
9820 (package
9821 (name "emacs-monky")
9822 (version "0.1")
9823 (source (origin
9824 (method git-fetch)
9825 (uri (git-reference
9826 (url "https://github.com/ananthakumaran/monky")
9827 (commit version)))
9828 (file-name (git-file-name name version))
9829 (sha256
9830 (base32
9831 "1fgn7al4zwz2k5wb5dy3byqg9lsrjk9fra341mxh5ma2pfwxjgps"))))
9832 (build-system emacs-build-system)
9833 (home-page "https://ananthakumaran.in/monky/index.html")
9834 (arguments
9835 `(#:tests? #t
9836 #:test-command '("emacs" "--batch"
9837 "-l" "test/monky-unit-test.el"
9838 "-f" "ert-run-tests-batch-and-exit")))
9839 (synopsis "Interactive interface for the Mercurial version control system")
9840 (description
9841 "Monky provides an Emacs interface for Mercurial (Hg). Using Monky, you
9842 can selectively commit files, view the diffs, and other things.")
9843 (license license:gpl3+)))
9844
9845 (define-public emacs-monroe
9846 (package
9847 (name "emacs-monroe")
9848 (version "0.3.1")
9849 (source
9850 (origin
9851 (method git-fetch)
9852 (uri (git-reference
9853 (url "https://github.com/sanel/monroe")
9854 (commit version)))
9855 (file-name (git-file-name name version))
9856 (sha256
9857 (base32 "101lfrykdbv37spkbw7zihhx26bc1lhjyxbanrcp9880bxj04jiy"))))
9858 (build-system emacs-build-system)
9859 (home-page "https://github.com/sanel/monroe")
9860 (synopsis "Clojure nREPL client for Emacs")
9861 (description
9862 "Monroe is a nREPL client for Emacs, focused on simplicity and easy
9863 distribution, primarily targeting Clojure users")
9864 (license license:gpl3+)))
9865
9866 (define-public emacs-orgalist
9867 (package
9868 (name "emacs-orgalist")
9869 (version "1.13")
9870 (source
9871 (origin
9872 (method url-fetch)
9873 (uri (string-append "https://elpa.gnu.org/packages/"
9874 "orgalist-" version ".el"))
9875 (sha256
9876 (base32 "1wkxc5kcy1g4lx6pd78pa8znncjyl9zyhsvz7wpp56qmhq4hlav3"))))
9877 (build-system emacs-build-system)
9878 (home-page "https://elpa.gnu.org/packages/orgalist.html")
9879 (synopsis "Manage Org-like lists in non-Org buffers")
9880 (description "Orgalist writes and manages Org mode's plain lists in
9881 non-Org buffers. More specifically, it supports the syntax of Org mode for
9882 numbered, unnumbered, description items, checkboxes, and counter cookies.
9883
9884 The library also implements radio lists, i.e., lists written in Org syntax
9885 later translated into the host format, e.g., LaTeX or HTML.")
9886 (license license:gpl3+)))
9887
9888 (define-public emacs-writegood-mode
9889 (package
9890 (name "emacs-writegood-mode")
9891 (version "2.0.2")
9892 (home-page "https://github.com/bnbeckwith/writegood-mode")
9893 (source (origin
9894 (method git-fetch)
9895 (uri (git-reference
9896 (url home-page)
9897 (commit (string-append "v" version))))
9898 (sha256
9899 (base32
9900 "1nnjn1r669hvvzfycllwap4w04m8rfsk4nzcg8057m1f263kj31b"))
9901 (file-name (string-append name "-checkout"))))
9902 (build-system emacs-build-system)
9903 (synopsis "Polish up poor writing on the fly")
9904 (description
9905 "This minor mode tries to find and highlight problems with your writing
9906 in English as you type. It primarily detects \"weasel words\" and abuse of
9907 passive voice.")
9908 (license license:gpl3+)))
9909
9910 (define-public emacs-neotree
9911 (package
9912 (name "emacs-neotree")
9913 (version "0.5.2")
9914 (home-page "https://github.com/jaypei/emacs-neotree")
9915 (source (origin
9916 (method git-fetch)
9917 (uri (git-reference
9918 (url home-page)
9919 (commit version)))
9920 (sha256
9921 (base32
9922 "0hx72fq10772bbyqrj7mhhp02k26cccjxdadiqm1ykainhfmn1x0"))
9923 (file-name (git-file-name name version))))
9924 (build-system emacs-build-system)
9925 (synopsis "Folder tree view for Emacs")
9926 (description "This Emacs package provides a folder tree view.")
9927 (license license:gpl3+)))
9928
9929 (define-public emacs-org
9930 (package
9931 (name "emacs-org")
9932 ;; emacs-org-contrib inherits from this package. Please update it as
9933 ;; well.
9934 (version "9.4")
9935 (source
9936 (origin
9937 (method url-fetch)
9938 (uri (string-append "https://elpa.gnu.org/packages/org-" version ".tar"))
9939 (sha256
9940 (base32 "1awkrh3y90q7c0as3327rqj0zylf5cpjzr1pyvbzymli16irhwb6"))))
9941 (build-system emacs-build-system)
9942 (arguments
9943 `(#:phases
9944 (modify-phases %standard-phases
9945 (add-after 'install 'install-documentation
9946 (lambda* (#:key outputs #:allow-other-keys)
9947 (let* ((share (string-append (assoc-ref outputs "out") "/share"))
9948 (info-dir (string-append share "/info"))
9949 (doc-dir (string-append share "/doc/" ,name "-" ,version)))
9950 (install-file "org" info-dir)
9951 (install-file "orgcard.pdf" doc-dir))
9952 #t)))))
9953 (home-page "https://orgmode.org/")
9954 (synopsis "Outline-based notes management and organizer")
9955 (description "Org is an Emacs mode for keeping notes, maintaining TODO
9956 lists, and project planning with a fast and effective lightweight markup
9957 language. It also is an authoring system with unique support for literate
9958 programming and reproducible research.")
9959 (license license:gpl3+)))
9960
9961 (define-public emacs-org-contrib
9962 (package
9963 (inherit emacs-org)
9964 (name "emacs-org-contrib")
9965 (version "20200914")
9966 (source
9967 (origin
9968 (method url-fetch)
9969 (uri (string-append "https://orgmode.org/elpa/"
9970 "org-plus-contrib-" version ".tar"))
9971 (sha256
9972 (base32 "1naq25g4d95cx29axx428rnpc4m9hd0j7w1l0vqwkdjyr5qfj0ab"))
9973 ;; ob-sclang.el is packaged separately to avoid the dependency on
9974 ;; SuperCollider and qtwebengine.
9975 (modules '((guix build utils)))
9976 (snippet '(begin (delete-file "ob-sclang.el") #t))))
9977 (arguments
9978 `(#:modules ((guix build emacs-build-system)
9979 (guix build utils)
9980 (guix build emacs-utils)
9981 (ice-9 ftw)
9982 (srfi srfi-1))
9983 #:phases
9984 (modify-phases %standard-phases
9985 (add-after 'install 'delete-org-files
9986 (lambda* (#:key inputs outputs #:allow-other-keys)
9987 (let* ((out (assoc-ref outputs "out"))
9988 (org (assoc-ref inputs "org"))
9989 (contrib-files
9990 (map basename (find-files out)))
9991 (org+contrib-files
9992 (map basename (find-files org)))
9993 (duplicates (lset-intersection string=?
9994 contrib-files
9995 org+contrib-files)))
9996 (with-directory-excursion
9997 (string-append out "/share/emacs/site-lisp")
9998 (for-each delete-file duplicates))
9999 #t))))))
10000 (propagated-inputs
10001 `(("arduino-mode" ,emacs-arduino-mode)
10002 ("cider" ,emacs-cider)
10003 ("org" ,emacs-org)))
10004 (synopsis "Contributed packages to Org mode")
10005 (description "Org is an Emacs mode for keeping notes, maintaining TODO
10006 lists, and project planning with a fast and effective plain-text system.
10007
10008 This package is equivalent to org-plus-contrib, but only includes additional
10009 files that you would find in @file{contrib/} from the git repository.")))
10010
10011 (define-public emacs-ob-sclang
10012 (package
10013 (inherit emacs-org-contrib)
10014 (name "emacs-ob-sclang")
10015 (source
10016 (origin (inherit (package-source emacs-org-contrib))
10017 (modules '((guix build utils)))
10018 (snippet
10019 '(begin
10020 (for-each (lambda (file)
10021 (unless (equal? file "./ob-sclang.el")
10022 (delete-file file)))
10023 (find-files "." "\\.el"))
10024 #t))))
10025 (propagated-inputs
10026 `(("org" ,emacs-org)
10027 ("scel" ,emacs-scel)))
10028 (synopsis "Org Babel support for SuperCollider")
10029 (description "This package adds support for evaluating @code{sclang}
10030 Org mode source blocks. It is extracted from the @code{emacs-org-contrib}
10031 package.")))
10032
10033 (define-public emacs-org-edna
10034 (package
10035 (name "emacs-org-edna")
10036 (version "1.1.2")
10037 (source (origin
10038 (method bzr-fetch)
10039 (uri (bzr-reference
10040 (url "bzr://bzr.savannah.nongnu.org/org-edna-el")
10041 (revision version)))
10042 (file-name (string-append name "-" version "-checkout"))
10043 (sha256
10044 (base32
10045 "01dblddgx0yid5hrgl4swbr4grhv057kfbdy122wihzqpsrgq86n"))))
10046 (build-system emacs-build-system)
10047 (home-page "https://savannah.nongnu.org/projects/org-edna-el/")
10048 (synopsis "Manage Org task dependencies")
10049 (description "This package provides an extensible means of specifying
10050 conditions which must be fulfilled before a task can be completed and actions
10051 to take once it is. Org Edna runs when either the BLOCKER or TRIGGER
10052 properties are set on a heading, and when it is changing from a TODO state to
10053 a DONE state.")
10054 (license license:gpl3+)))
10055
10056 (define-public emacs-flx
10057 (package
10058 (name "emacs-flx")
10059 (version "0.6.1")
10060 (source
10061 (origin
10062 (method git-fetch)
10063 (uri (git-reference
10064 (url "https://github.com/lewang/flx")
10065 (commit (string-append "v" version))))
10066 (sha256
10067 (base32
10068 "0sjybrcnb2sl33swy3q664vqrparajcl0m455gciiih2j87hwadc"))
10069 (file-name (git-file-name name version))))
10070 (build-system emacs-build-system)
10071 (home-page "https://github.com/lewang/flx")
10072 (synopsis "Fuzzy matching for Emacs")
10073 (description
10074 "Flx provides fuzzy matching for emacs a la sublime text.
10075 The sorting algorithm is a balance between word beginnings (abbreviation)
10076 and contiguous matches (substring). The longer the substring match,
10077 the higher it scores. This maps well to how we think about matching.
10078 Flx has support for ido (interactively do things) through flx-ido.")
10079 (license license:gpl3+)))
10080
10081 (define-public emacs-cyberpunk-theme
10082 (package
10083 (name "emacs-cyberpunk-theme")
10084 (version "1.22")
10085 (source
10086 (origin
10087 (method git-fetch)
10088 (uri (git-reference
10089 (url "https://github.com/n3mo/cyberpunk-theme.el/")
10090 (commit version)))
10091 (sha256
10092 (base32
10093 "06nff38pcy5rgz13svkajsg0jjk73qy4a8m7p9f76yxcywxlgxlc"))
10094 (file-name (git-file-name name version))))
10095 (build-system emacs-build-system)
10096 (home-page "https://github.com/n3mo/cyberpunk-theme.el")
10097 (synopsis "Cyberpunk theme for Emacs built-in color theme support")
10098 (description
10099 "Cyberpunk color theme for the Emacs 24+ built-in color theme support
10100 known loosely as deftheme. Many mode-specific customizations are included.")
10101 (license license:gpl3+)))
10102
10103 (define-public emacs-danneskjold-theme
10104 (let* ((commit "8733d2fe8743e8a01826ea6d4430ef376c727e57")
10105 (revision "1"))
10106 (package
10107 (name "emacs-danneskjold-theme")
10108 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
10109 (home-page "https://github.com/rails-to-cosmos/danneskjold-theme")
10110 (source
10111 (origin
10112 (method git-fetch)
10113 (uri (git-reference
10114 (url home-page)
10115 (commit commit)))
10116 (file-name (git-file-name name version))
10117 (sha256
10118 (base32
10119 "0s6rbsb0y8i8m5b9xm4gw1p1cxsxdqnqxqqb638pygz9f76mbir1"))))
10120 (build-system emacs-build-system)
10121 (arguments
10122 `(#:phases
10123 (modify-phases %standard-phases
10124 (add-after 'unpack 'delete-screenshots
10125 (lambda _
10126 (delete-file-recursively "screenshots") #t)))))
10127 (synopsis "High-contrast Emacs theme")
10128 (description
10129 "@code{danneskjold-theme} is a high-contrast theme for Emacs.")
10130 (license license:gpl3+))))
10131
10132 (define-public emacs-dream-theme
10133 (let* ((commit "107a11d74365046f28a1802a2bdb5e69e4a7488b")
10134 (revision "1"))
10135 (package
10136 (name "emacs-dream-theme")
10137 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
10138 (source
10139 (origin
10140 (method git-fetch)
10141 (uri (git-reference
10142 (url "https://github.com/djcb/dream-theme")
10143 (commit commit)))
10144 (file-name (git-file-name name version))
10145 (sha256
10146 (base32
10147 "0za18nfkq4xqm35k6006vsixcbmvmxqgma4iw5sw37h8vmcsdylk"))))
10148 (build-system emacs-build-system)
10149 (home-page "https://github.com/djcb/dream-theme")
10150 (synopsis "High-contrast Emacs theme")
10151 (description
10152 "@code{dream-theme} is a dark, clean theme for Emacs. It is inspired
10153 by zenburn, sinburn and similar themes, but slowly diverging from them.")
10154 (license license:gpl3+))))
10155
10156 (define-public emacs-dracula-theme
10157 (package
10158 (name "emacs-dracula-theme")
10159 (version "1.7.0")
10160 (source
10161 (origin
10162 (method git-fetch)
10163 (uri (git-reference
10164 (url "https://github.com/dracula/emacs")
10165 (commit (string-append "v" version))))
10166 (file-name (git-file-name name version))
10167 (sha256
10168 (base32 "15y2djc5jljlvls1x9kp50m1kp0dcksmyixafsyimj66xpq9ngh0"))))
10169 (build-system emacs-build-system)
10170 (home-page "https://draculatheme.com/")
10171 (synopsis "Dark theme for Emacs")
10172 (description
10173 "Dracula is a dark color theme for many editors, shells and more. This
10174 package provides the Emacs theme.")
10175 (license license:expat)))
10176
10177 (define-public emacs-auto-complete
10178 (package
10179 (name "emacs-auto-complete")
10180 (version "1.5.1")
10181 (source
10182 (origin
10183 (method git-fetch)
10184 (uri (git-reference
10185 (url "https://github.com/auto-complete/auto-complete")
10186 (commit (string-append "v" version))))
10187 (sha256
10188 (base32
10189 "04i9b11iksg6acn885wl3qgi5xpsm3yszlqmd2x21yhprndlz7gb"))
10190 (file-name (git-file-name name version))))
10191 (build-system emacs-build-system)
10192 (propagated-inputs
10193 `(("emacs-popup" ,emacs-popup)))
10194 (home-page "https://github.com/auto-complete/auto-complete")
10195 (synopsis "Intelligent auto-completion extension for Emacs")
10196 (description
10197 "Auto-Complete is an intelligent auto-completion extension for Emacs.
10198 It extends the standard Emacs completion interface and provides an environment
10199 that allows users to concentrate more on their own work. Its features are:
10200 a visual interface, reduce overhead of completion by using statistic method,
10201 extensibility.")
10202 (license license:gpl3+)))
10203
10204 (define-public emacs-nginx-mode
10205 (package
10206 (name "emacs-nginx-mode")
10207 (version "1.1.9")
10208 (source
10209 (origin
10210 (method git-fetch)
10211 (uri (git-reference
10212 (url "https://github.com/ajc/nginx-mode")
10213 (commit (string-append "v" version))))
10214 (file-name (git-file-name name version))
10215 (sha256
10216 (base32 "17dh5pr3gh6adrbqx588gimxbb2fr7iv2qrxv6r48w2727l344xs"))))
10217 (build-system emacs-build-system)
10218 (home-page "https://github.com/ajc/nginx-mode")
10219 (synopsis "Emacs major mode for editing nginx config files")
10220 (description "This package provides an Emacs major mode for
10221 editing nginx config files.")
10222 (license license:gpl2+)))
10223
10224 (define-public emacs-stream
10225 (package
10226 (name "emacs-stream")
10227 (version "2.2.5")
10228 (source
10229 (origin
10230 (method url-fetch)
10231 (uri (string-append "https://elpa.gnu.org/packages/"
10232 "stream-" version ".tar"))
10233 (file-name (git-file-name name version))
10234 (sha256
10235 (base32 "00c3n4gyxzv7vczqms0d62kl8zsmjfyxa92mwxn2snyx857a9jfw"))))
10236 (build-system emacs-build-system)
10237 (home-page "http://elpa.gnu.org/packages/stream.html")
10238 (synopsis "Implementation of streams for Emacs")
10239 (description "This library provides an implementation of streams for Emacs.
10240 Streams are implemented as delayed evaluation of cons cells.")
10241 (license license:gpl3+)))
10242
10243 (define-public emacs-cl-print
10244 (let ((commit "1a70c553dfb04352afb5b8696fe0cef8acc8f991")
10245 (revision "1"))
10246 (package
10247 (name "emacs-cl-print")
10248 (version (git-version "1.0" revision commit))
10249 (source
10250 (origin
10251 (method git-fetch)
10252 (uri (git-reference
10253 (url "https://github.com/emacsmirror/cl-print")
10254 (commit commit)))
10255 (file-name (git-file-name name version))
10256 (sha256
10257 (base32 "164zbnsi5mssvcpy0158fm7fw5cmd1r5nkpn29fmd2b2scy3gm79"))))
10258 (build-system emacs-build-system)
10259 (home-page "https://github.com/emacsmirror/cl-print")
10260 (synopsis "CL-style generic printing")
10261 (description "This package provides a generic function,
10262 @code{cl-print-object}, to which the programmer can add any method they
10263 please.")
10264 (license license:gpl3+))))
10265
10266 (define-public emacs-el-search
10267 (let ((commit "07bed84dd8ae9e4c6c648834224b1d33fdbd51e0")
10268 (revision "2"))
10269 (package
10270 (name "emacs-el-search")
10271 (version (git-version "1.12.6.1" revision commit))
10272 (source
10273 (origin
10274 (method git-fetch)
10275 (uri (git-reference
10276 (url "https://github.com/emacsmirror/el-search")
10277 (commit commit)))
10278 (file-name (git-file-name name version))
10279 (sha256
10280 (base32 "10w1ldgijdhfsrazp0y3bm76jv5wvdn94k1yp0pmc2m1896b58ak"))))
10281 (build-system emacs-build-system)
10282 (inputs
10283 `(("emacs-stream" ,emacs-stream)
10284 ("emacs-cl-print" ,emacs-cl-print)))
10285 (home-page "https://github.com/emacsmirror/el-search")
10286 (synopsis "Expression based interactive search for emacs-lisp-mode")
10287 (description "This package provides expression based interactive search
10288 procedures for emacs-lisp-mode.")
10289 (license license:gpl3+))))
10290
10291 (define-public emacs-ht
10292 (package
10293 (name "emacs-ht")
10294 (version "2.2")
10295 (source
10296 (origin
10297 (method git-fetch)
10298 (uri (git-reference
10299 (url "https://github.com/Wilfred/ht.el")
10300 (commit version)))
10301 (file-name (git-file-name name version))
10302 (sha256
10303 (base32 "1p3qa7g0wa0wbviv2f8bda39cjys3naayk5xjm3nxxmqsyy8papx"))))
10304 (build-system emacs-build-system)
10305 (propagated-inputs `(("emacs-dash" ,emacs-dash)))
10306 (native-inputs
10307 `(("emacs-ert-runner" ,emacs-ert-runner)))
10308 (arguments
10309 `(#:tests? #t
10310 #:test-command '("ert-runner")))
10311 (home-page "https://github.com/Wilfred/ht.el")
10312 (synopsis "Hash table library for Emacs")
10313 (description
10314 "This package simplifies the use of hash tables in elisp. It also
10315 provides functions to convert hash tables from and to alists and plists.")
10316 (license license:gpl3+)))
10317
10318 (define-public emacs-log4e
10319 (package
10320 (name "emacs-log4e")
10321 (version "0.3.0")
10322 (source
10323 (origin
10324 (method git-fetch)
10325 (uri (git-reference
10326 (url "https://github.com/aki2o/log4e")
10327 (commit (string-append "v" version))))
10328 (file-name (git-file-name name version))
10329 (sha256
10330 (base32 "1l28n7a0v2zkknc70i1wn6qb5i21dkhfizzk8wcj28v44cgzk022"))))
10331 (build-system emacs-build-system)
10332 (arguments
10333 `(#:phases
10334 (modify-phases %standard-phases
10335 (add-after 'unpack 'remove-tests
10336 ;; Guile builder complains about null characters in some
10337 ;; strings of test files. Remove "test" directory (it is not
10338 ;; needed anyway).
10339 (lambda _
10340 (delete-file-recursively "test"))))))
10341 (home-page "https://github.com/aki2o/log4e")
10342 (synopsis "Logging framework for elisp")
10343 (description
10344 "This package provides a logging framework for elisp. It allows
10345 you to deal with multiple log levels.")
10346 (license license:gpl3+)))
10347
10348 (define-public emacs-gntp
10349 (package
10350 (name "emacs-gntp")
10351 (version "0.1")
10352 (source
10353 (origin
10354 (method git-fetch)
10355 (uri (git-reference
10356 (url "https://github.com/tekai/gntp.el")
10357 (commit (string-append "v" version))))
10358 (file-name (git-file-name name version))
10359 (sha256
10360 (base32 "1nvyjjjydrimpxy4cpg90si7sr8lmldbhlcm2mx8npklp9pn5y3a"))))
10361 (build-system emacs-build-system)
10362 (home-page "https://github.com/tekai/gntp.el")
10363 (synopsis "Growl Notification Protocol for Emacs")
10364 (description
10365 "This package implements the Growl Notification Protocol GNTP
10366 described at @uref{http://www.growlforwindows.com/gfw/help/gntp.aspx}.
10367 It is incomplete as it only lets you send but not receive
10368 notifications.")
10369 (license license:bsd-3)))
10370
10371 (define-public emacs-alert
10372 (package
10373 (name "emacs-alert")
10374 (version "1.3")
10375 (source
10376 (origin
10377 (method git-fetch)
10378 (uri (git-reference
10379 (url "https://github.com/jwiegley/alert")
10380 (commit (string-append "v" version))))
10381 (file-name (git-file-name name version))
10382 (sha256
10383 (base32 "0lc0p5cl4hfrzw1z2ghb11k1lvljn5m08jw5fmgwgxv667kwh49r"))))
10384 (build-system emacs-build-system)
10385 (propagated-inputs
10386 `(("emacs-gntp" ,emacs-gntp)
10387 ("emacs-log4e" ,emacs-log4e)))
10388 (home-page "https://github.com/jwiegley/alert")
10389 (synopsis "Growl-style notification system for Emacs")
10390 (description
10391 "Alert is a Growl-workalike for Emacs which uses a common notification
10392 interface and multiple, selectable \"styles\", whose use is fully
10393 customizable by the user.")
10394 (license license:gpl2+)))
10395
10396 (define-public emacs-zones
10397 (package
10398 (name "emacs-zones")
10399 (version "2019.7.13")
10400 (source
10401 (origin
10402 (method url-fetch)
10403 (uri (string-append "https://elpa.gnu.org/packages/"
10404 "zones-" version ".el"))
10405 (sha256
10406 (base32 "0qp1ba2pkqx9d35g7z8hf8qs2k455krf2a92l4rka3ipsbnmq5k1"))))
10407 (build-system emacs-build-system)
10408 (home-page "https://www.emacswiki.org/emacs/Zones")
10409 (synopsis "Define and act on multiple zones of buffer text")
10410 (description
10411 "Library @file{zones.el} lets you easily define and subsequently act on
10412 multiple zones of buffer text. You can think of this as enlarging the notion
10413 of region. In effect, it can remove the requirement of target text being
10414 a contiguous sequence of characters. A set of buffer zones is, in effect,
10415 a (typically) noncontiguous set of text.")
10416 (license license:gpl3+)))
10417
10418 (define-public emacs-mu4e-alert
10419 (package
10420 (name "emacs-mu4e-alert")
10421 (version "1.0")
10422 (source
10423 (origin
10424 (method git-fetch)
10425 (uri (git-reference
10426 (url "https://github.com/iqbalansari/mu4e-alert")
10427 (commit (string-append "v" version))))
10428 (file-name (git-file-name name version))
10429 (sha256
10430 (base32 "1nvsfbfsma59ilf7c3vjngnmx3aapwvvvaafdy5szm5r6lkicqvg"))))
10431 (build-system emacs-build-system)
10432 (propagated-inputs
10433 `(("emacs-alert" ,emacs-alert)
10434 ("emacs-s" ,emacs-s)
10435 ("emacs-ht" ,emacs-ht)
10436 ("mu" ,mu)))
10437 (home-page "https://github.com/iqbalansari/mu4e-alert")
10438 (synopsis "Desktop notification for mu4e")
10439 (description
10440 "This package provides desktop notifications for mu4e.
10441 Additionally it can display the number of unread emails in the
10442 mode-line.")
10443 (license license:gpl3+)))
10444
10445 (define-public emacs-mu4e-jump-to-list
10446 (let ((commit "358bba003543b49ffa266e503e54aebd0ebe614b")
10447 (revision "1"))
10448 (package
10449 (name "emacs-mu4e-jump-to-list")
10450 (version (git-version "1.0" revision commit))
10451 (source
10452 (origin
10453 (method git-fetch)
10454 (uri (git-reference
10455 (url "https://gitlab.com/wavexx/mu4e-jump-to-list.el.git")
10456 (commit commit)))
10457 (file-name (git-file-name name version))
10458 (sha256
10459 (base32
10460 "00y9nap61q1z2cdql4k9g7fgi2gdgd9iy5s5lzrd9a4agbx6r7sv"))))
10461 (build-system emacs-build-system)
10462 (propagated-inputs
10463 `(("mu" ,mu)))
10464 (home-page "https://gitlab.com/wavexx/mu4e-jump-to-list.el")
10465 (synopsis "Select and view mailing lists in mu4e")
10466 (description
10467 "@code{mu4e-jump-to-list} allows you to select and view mailing lists
10468 automatically using existing List-ID headers in your mu database. Just press
10469 \"l\" in the headers view and any mailing list you've subscribed to will be
10470 automatically discovered and presented in recency order.")
10471 (license license:gpl3+))))
10472
10473 (define-public emacs-mu4e-patch
10474 (let ((commit "522da46c1653b1cacc79cde91d6534da7ae9517d")
10475 (revision "1"))
10476 (package
10477 (name "emacs-mu4e-patch")
10478 (version (git-version "0.1.0" revision commit))
10479 (source (origin
10480 (method git-fetch)
10481 (uri (git-reference
10482 (url "https://github.com/seanfarley/mu4e-patch")
10483 (commit commit)))
10484 (file-name (git-file-name name version))
10485 (sha256
10486 (base32
10487 "10lzf3b70pk6rzdrgx0ww0gc94v0ydh9zj1gbsa20xw27ds7hmfn"))))
10488 (build-system emacs-build-system)
10489 (propagated-inputs
10490 `(("mu" ,mu)))
10491 (home-page "https://github.com/seanfarley/mu4e-patch")
10492 (synopsis "Colorize patch-like emails in mu4e")
10493 (description
10494 "Extension for mu4e to colorize patch-like emails with diff-mode.
10495 This is based on Frank Terbeck's @code{gnus-article-treat-patch.el} but has
10496 been adapted to work with mu4e.")
10497 (license license:gpl3+))))
10498
10499 (define-public emacs-pretty-mode
10500 (package
10501 (name "emacs-pretty-mode")
10502 (version "2.0.3")
10503 (source
10504 (origin
10505 (method git-fetch)
10506 (uri (git-reference
10507 (url "https://github.com/akatov/pretty-mode/")
10508 (commit version)))
10509 (file-name (git-file-name name version))
10510 (sha256
10511 (base32
10512 "013fig9i4fyx16krp2vfv953p3rwdzr38zs6i50af4pqz4vrcfvh"))))
10513 (build-system emacs-build-system)
10514 (home-page "https://github.com/akatov/pretty-mode")
10515 (synopsis "Redisplay parts of the buffer as Unicode symbols")
10516 (description
10517 "Emacs minor mode for redisplaying parts of the buffer as pretty symbols.")
10518 (license license:gpl3+)))
10519
10520 (define-public emacs-yasnippet
10521 (package
10522 (name "emacs-yasnippet")
10523 (version "0.14.0")
10524 (source
10525 (origin
10526 (method git-fetch)
10527 (uri (git-reference
10528 (url "https://github.com/joaotavora/yasnippet")
10529 (commit version)))
10530 (file-name (git-file-name name version))
10531 (sha256
10532 (base32 "0via9dzw8m5lzymg1h78xkwjssh39zr3g6ccyamlf1rjzjsyxknv"))))
10533 (build-system emacs-build-system)
10534 (arguments
10535 `(#:tests? #t
10536 #:test-command '("emacs" "--batch"
10537 "-l" "yasnippet-tests.el"
10538 "-f" "ert-run-tests-batch-and-exit")
10539 #:phases
10540 (modify-phases %standard-phases
10541 ;; Set HOME, otherwise test-rebindings fails.
10542 (add-before 'check 'set-home
10543 (lambda _
10544 (setenv "HOME" (getcwd))
10545 #t)))))
10546 (home-page "https://github.com/joaotavora/yasnippet")
10547 (synopsis "Yet another snippet extension for Emacs")
10548 (description "YASnippet is a template system for Emacs. It allows you to
10549 type an abbreviation and automatically expand it into function templates.")
10550 (license license:gpl3+)))
10551
10552 (define-public emacs-yasnippet-snippets
10553 (package
10554 (name "emacs-yasnippet-snippets")
10555 (version "0.23")
10556 (source
10557 (origin
10558 (method git-fetch)
10559 (uri (git-reference
10560 (url "https://github.com/AndreaCrotti/yasnippet-snippets")
10561 (commit version)))
10562 (file-name (git-file-name name version))
10563 (sha256
10564 (base32 "18pcnjnqvcky6i49p38vy3ms5xiisn27vy47pc3vsgr3r2n87mqb"))))
10565 (build-system trivial-build-system)
10566 (arguments
10567 `(#:modules ((guix build utils))
10568 #:builder
10569 (begin
10570 (use-modules (guix build utils))
10571 (let* ((source (assoc-ref %build-inputs "source"))
10572 (out (assoc-ref %outputs "out"))
10573 (snippet-dir
10574 (string-append out "/share/emacs/yasnippet-snippets/")))
10575 (with-directory-excursion source
10576 (mkdir-p snippet-dir)
10577 (copy-recursively "snippets" snippet-dir)))
10578 #t)))
10579 (home-page "https://github.com/AndreaCrotti/yasnippet-snippets")
10580 (synopsis "Collection of YASnippet snippets for many languages")
10581 (description
10582 "Provides Andrea Crotti's collection of YASnippet snippets. After installation,
10583 the snippets will be in \"~/.guix-profile/share/emacs/yasnippet-snippets/\".
10584 To make YASnippet aware of these snippets, add the above directory to
10585 @code{yas-snippet-dirs}.")
10586 (license license:gpl3+)))
10587
10588 (define-public emacs-helm-c-yasnippet
10589 (let ((commit "65ca732b510bfc31636708aebcfe4d2d845b59b0")
10590 (revision "1"))
10591 (package
10592 (name "emacs-helm-c-yasnippet")
10593 (version (string-append "0.6.7" "-" revision "."
10594 (string-take commit 7)))
10595 (source (origin
10596 (method git-fetch)
10597 (uri (git-reference
10598 (url "https://github.com/emacs-jp/helm-c-yasnippet")
10599 (commit commit)))
10600 (file-name (git-file-name name version))
10601 (sha256
10602 (base32
10603 "1cbafjqlzxbg19xfdqsinsh7afq58gkf44rsg1qxfgm8g6zhr7f8"))))
10604 (build-system emacs-build-system)
10605 (propagated-inputs
10606 `(("emacs-helm" ,emacs-helm)
10607 ("emacs-yasnippet" ,emacs-yasnippet)))
10608 (home-page "https://github.com/emacs-jp/helm-c-yasnippet")
10609 (synopsis "Helm integration for Yasnippet")
10610 (description "This Emacs library provides Helm interface for
10611 Yasnippet.")
10612 (license license:gpl2+))))
10613
10614 (define-public emacs-helm-system-packages
10615 ;; There won't be a new release after 1.10.1 until
10616 ;; https://github.com/emacs-helm/helm-system-packages/issues/25 is fixed,
10617 ;; and latest commits fix import issues with Guix.
10618 (let ((commit "6572340f41611ef1991e9612d34d59130957ee4a"))
10619 (package
10620 (name "emacs-helm-system-packages")
10621 (version (git-version "1.10.1" "1" commit))
10622 (source (origin
10623 (method git-fetch)
10624 (uri (git-reference
10625 (url "https://github.com/emacs-helm/helm-system-packages")
10626 (commit commit)))
10627 (file-name (git-file-name name version))
10628 (sha256
10629 (base32
10630 "0mcz6vkpk12vsyd37xv1rbg4v442sxc3lj8yxskqg294xbdaclz4"))))
10631 (build-system emacs-build-system)
10632 (inputs
10633 `(("recutils" ,recutils)))
10634 (propagated-inputs
10635 `(("emacs-helm" ,emacs-helm)))
10636 (arguments
10637 `(#:phases
10638 (modify-phases %standard-phases
10639 (add-after 'unpack 'configure
10640 (lambda* (#:key inputs outputs #:allow-other-keys)
10641 (let ((recutils (assoc-ref inputs "recutils")))
10642 ;; Specify the absolute file names of the various
10643 ;; programs so that everything works out-of-the-box.
10644 (substitute* "helm-system-packages-guix.el"
10645 (("recsel") (string-append recutils "/bin/recsel")))))))))
10646 (home-page "https://github.com/emacs-helm/helm-system-packages")
10647 (synopsis "Helm System Packages is an interface to your package manager")
10648 (description "List all available packages in Helm (with installed
10649 packages displayed in their own respective face). Fuzzy-search, mark and
10650 execute the desired action over any selections of packages: Install,
10651 uninstall, display packages details (in Org Mode) or insert details at point,
10652 find files owned by packages... And much more, including performing all the
10653 above over the network.")
10654 (license license:gpl3+))))
10655
10656 (define-public emacs-helm-org-rifle
10657 (package
10658 (name "emacs-helm-org-rifle")
10659 (version "1.7.0")
10660 (source
10661 (origin
10662 (method git-fetch)
10663 (uri (git-reference
10664 (url "https://github.com/alphapapa/helm-org-rifle")
10665 (commit version)))
10666 (file-name (git-file-name name version))
10667 (sha256
10668 (base32
10669 "058zvh7cdall7dl3xay9ibcjvs13fbqp8fli3lz980pinmsds3r2"))))
10670 (build-system emacs-build-system)
10671 (propagated-inputs
10672 `(("emacs-dash" ,emacs-dash)
10673 ("emacs-f" ,emacs-f)
10674 ("emacs-helm" ,emacs-helm)
10675 ("emacs-org" ,emacs-org)
10676 ("emacs-s" ,emacs-s)))
10677 (home-page "https://github.com/alphapapa/helm-org-rifle")
10678 (synopsis "Rifle through Org files")
10679 (description "This package searches both headings and contents of entries
10680 in Org buffers and displays matching entries.")
10681 (license license:gpl3+)))
10682
10683 (define-public emacs-dired-git-info
10684 ;; Upstream has no proper release. The base version is extracted from the
10685 ;; "Version" keyword in the main file.
10686 (let ((commit "91d57e3a4c5104c66a3abc18e281ee55e8979176")
10687 (revision "0"))
10688 (package
10689 (name "emacs-dired-git-info")
10690 (version (git-version "0.3.1" revision commit))
10691 (source
10692 (origin
10693 (method git-fetch)
10694 (uri
10695 (git-reference
10696 (url "https://github.com/clemera/dired-git-info")
10697 (commit commit)))
10698 (file-name (git-file-name name version))
10699 (sha256
10700 (base32 "1dr4iv95s4barxxj56znqkl9z0lg5jw731jmjr01s6vn8ar69gik"))))
10701 (build-system emacs-build-system)
10702 (home-page "https://github.com/clemera/dired-git-info/")
10703 (synopsis "Show git info in Emacs Dired")
10704 (description "This Emacs package provides a minor mode which shows git
10705 information inside the Dired buffer.")
10706 (license license:gpl3+))))
10707
10708 (define-public emacs-dired-toggle-sudo
10709 (let ((commit "13bbe52c54893f5aa3e56228450ffdd0c9e1d169")
10710 (revision "0"))
10711 (package
10712 (name "emacs-dired-toggle-sudo")
10713 (version (git-version "1.0" revision commit))
10714 (source
10715 (origin
10716 (method git-fetch)
10717 (uri (git-reference
10718 (url "https://github.com/renard/dired-toggle-sudo")
10719 (commit commit)))
10720 (file-name (git-file-name name version))
10721 (sha256
10722 (base32
10723 "1fw1pb1z6krqd1pfxxhr6rrfr9ckkcb0zsjzbjk0i2i1q5cg6car"))))
10724 (build-system emacs-build-system)
10725 (home-page "https://github.com/renard/dired-toggle-sudo")
10726 (synopsis "Browse directory with @code{sudo} privileges")
10727 (description "This package allows for the use of @code{dired} with
10728 @code{sudo} privileges.")
10729 (license license:wtfpl2))))
10730
10731 (define-public emacs-diredfl
10732 (package
10733 (name "emacs-diredfl")
10734 (version "0.4")
10735 (source
10736 (origin
10737 (method git-fetch)
10738 (uri
10739 (git-reference
10740 (url "https://github.com/purcell/diredfl")
10741 (commit version)))
10742 (file-name (git-file-name name version))
10743 (sha256
10744 (base32 "1zb2lz7rp58zqvpniqcsmqabi7nqg2d8bfd0hgmq68bn2hd25b5z"))))
10745 (build-system emacs-build-system)
10746 (home-page "https://github.com/purcell/diredfl/")
10747 (synopsis "Extra Emacs font lock rules for a more colourful Dired")
10748 (description "This library enables additional font locking in Dired mode.
10749 This is adapted from the extra font lock rules provided by Drew Adams' Dired+
10750 package.")
10751 (license license:gpl3+)))
10752
10753 (define-public emacs-memoize
10754 (package
10755 (name "emacs-memoize")
10756 (version "1.1")
10757 (source
10758 (origin
10759 (method git-fetch)
10760 (uri (git-reference
10761 (url "https://github.com/skeeto/emacs-memoize")
10762 (commit version)))
10763 (file-name (git-file-name name version))
10764 (sha256
10765 (base32 "04qgnlg4x6va7x364dhj1wbjmz8p5iq2vk36mn9198k2vxmijwzk"))))
10766 (build-system emacs-build-system)
10767 (arguments
10768 `(#:tests? #t
10769 #:test-command '("emacs" "--batch"
10770 "-l" "memoize-test.el"
10771 "-f" "ert-run-tests-batch-and-exit")))
10772 (home-page "https://github.com/skeeto/emacs-memoize")
10773 (synopsis "Emacs lisp memoization library")
10774 (description "@code{emacs-memoize} is an Emacs library for
10775 memoizing functions.")
10776 (license license:unlicense)))
10777
10778 (define-public emacs-linum-relative
10779 (package
10780 (name "emacs-linum-relative")
10781 (version "0.6")
10782 (source
10783 (origin
10784 (method git-fetch)
10785 (uri (git-reference
10786 (url "https://github.com/coldnew/linum-relative")
10787 (commit version)))
10788 (file-name (git-file-name name version))
10789 (sha256
10790 (base32 "0b3n1gk2w1p72x0zfdz9l70winq2fnjpjrgq0awxx730xk7ypp5n"))))
10791 (build-system emacs-build-system)
10792 (home-page "https://github.com/coldnew/linum-relative")
10793 (synopsis "Relative line numbering for Emacs")
10794 (description "@code{emacs-linum-relative} displays the relative line
10795 number on the left margin in Emacs.")
10796 (license license:gpl2+)))
10797
10798 (define-public emacs-idle-highlight
10799 (package
10800 (name "emacs-idle-highlight")
10801 (version "1.1.3")
10802 (source
10803 (origin
10804 (method git-fetch)
10805 (uri (git-reference
10806 (url "https://github.com/nonsequitur/idle-highlight-mode")
10807 (commit version)))
10808 (file-name (git-file-name name version))
10809 (sha256
10810 (base32 "0x4w1ksrw7dicl84zpf4d4scg672dyan9g95jkn6zvri0lr8xciv"))))
10811 (build-system emacs-build-system)
10812 (home-page "https://www.emacswiki.org/emacs/IdleHighlight")
10813 (synopsis "Highlights all occurrences of the word the point is on")
10814 (description
10815 "This Emacs package provides @code{idle-highlight-mode} that sets
10816 an idle timer to highlight all occurrences in the buffer of the word under
10817 the point.")
10818 (license license:gpl3+)))
10819
10820 (define-public emacs-ox-twbs
10821 (package
10822 (name "emacs-ox-twbs")
10823 (version "1.1.1")
10824 (source
10825 (origin
10826 (method git-fetch)
10827 (uri (git-reference
10828 (url "https://github.com/marsmining/ox-twbs")
10829 (commit (string-append "v" version))))
10830 (file-name (git-file-name name version))
10831 (sha256
10832 (base32 "0kd45p8y7ykadmai4jn1x1pgpafyqggwb1ccbjzalxw4k9wmd45f"))))
10833 (build-system emacs-build-system)
10834 (home-page "https://github.com/marsmining/ox-twbs")
10835 (synopsis "Export org-mode docs as HTML compatible with Twitter Bootstrap")
10836 (description
10837 "This Emacs package outputs your org-mode docs with a simple, clean and
10838 modern look. It implements a new HTML back-end for exporting org-mode docs as
10839 HTML compatible with Twitter Bootstrap. By default, HTML is exported with
10840 jQuery and Bootstrap resources included via osscdn.")
10841 (license license:gpl3+)))
10842
10843 (define-public emacs-highlight-sexp
10844 (package
10845 (name "emacs-highlight-sexp")
10846 (version "1.0")
10847 (source
10848 (origin
10849 (method git-fetch)
10850 (uri (git-reference
10851 (url "https://github.com/daimrod/highlight-sexp")
10852 (commit (string-append "v" version))))
10853 (file-name (git-file-name name version))
10854 (sha256
10855 (base32 "12cyk2q5g6p4ac2hykw1cag7dp1prjjnck5f7nalwwaklmy62y79"))))
10856 (build-system emacs-build-system)
10857 (home-page "https://github.com/daimrod/highlight-sexp")
10858 (synopsis "Minor mode that highlights the s-exp at the current position")
10859 (description
10860 "This Emacs package highlights the s-exp at the current position.")
10861 (license license:gpl3+)))
10862
10863 (define-public emacs-highlight-stages
10864 (let ((commit "29cbc5b78261916da042ddb107420083da49b271")
10865 (revision "1"))
10866 (package
10867 (name "emacs-highlight-stages")
10868 (version (string-append "1.1.0" "-" revision "." (string-take commit 7)))
10869 (source
10870 (origin
10871 (method git-fetch)
10872 (uri (git-reference
10873 (url "https://github.com/zk-phi/highlight-stages")
10874 (commit commit)))
10875 (file-name (git-file-name name version))
10876 (sha256
10877 (base32
10878 "0r6nbcrr0dqpgm8dir8ahzjy7rw4nrac48byamzrq96r7ajlxlv0"))
10879 (patches
10880 (search-patches "emacs-highlight-stages-add-gexp.patch"))))
10881 (build-system emacs-build-system)
10882 (home-page "https://github.com/wigust/highlight-stages")
10883 (synopsis "Minor mode that highlights (quasi-quoted) expressions")
10884 (description "@code{highlight-stages} provides an Emacs minor mode that
10885 highlights quasi-quoted expressions.")
10886 (license license:gpl3+))))
10887
10888 (define-public emacspeak
10889 (package
10890 (name "emacspeak")
10891 (version "52.0")
10892 (source
10893 (origin
10894 (method url-fetch)
10895 (uri (string-append
10896 "https://github.com/tvraman/emacspeak/releases/download/"
10897 version "/emacspeak-" version ".tar.bz2"))
10898 (sha256
10899 (base32 "0x5b0s38r5ih2lk7f5hasi9arrgxlmmq5jaddadbxi8in2gw2jzl"))))
10900 (build-system gnu-build-system)
10901 (arguments
10902 '(#:make-flags (list (string-append "prefix="
10903 (assoc-ref %outputs "out")))
10904 #:phases
10905 (modify-phases %standard-phases
10906 (add-after 'unpack 'delete-broken-symlink
10907 (lambda _
10908 (delete-file "lisp/sudoku.el")
10909 #t))
10910 (replace 'configure
10911 (lambda _
10912 (setenv "SHELL" (which "sh"))
10913 ;; Configure Emacspeak according to etc/install.org.
10914 (invoke "make" "config")))
10915 (add-after 'build 'build-espeak
10916 (lambda _
10917 (invoke "make" "espeak")))
10918 (replace 'install
10919 (lambda* (#:key inputs outputs #:allow-other-keys)
10920 (let* ((out (assoc-ref outputs "out"))
10921 (bin (string-append out "/bin"))
10922 (lisp (string-append out "/share/emacs/site-lisp/emacspeak"))
10923 (info (string-append out "/share/info"))
10924 (emacs (string-append (assoc-ref inputs "emacs")
10925 "/bin/emacs")))
10926 ;; According to etc/install.org, the Emacspeak directory should
10927 ;; be copied to its installation destination.
10928 (for-each
10929 (lambda (file)
10930 (copy-recursively file (string-append lisp "/" file)))
10931 '("etc" "info" "js" "lisp" "media" "servers" "sounds"
10932 "stumpwm" "xsl"))
10933 ;; Make sure emacspeak is loaded from the correct directory.
10934 (substitute* "run"
10935 (("\\./lisp/emacspeak-setup.el")
10936 (string-append lisp "/lisp/emacspeak-setup.el")))
10937 ;; Install the convenient startup script.
10938 (mkdir-p bin)
10939 (copy-file "run" (string-append bin "/emacspeak")))
10940 #t))
10941 (add-after 'install 'wrap-program
10942 (lambda* (#:key inputs outputs #:allow-other-keys)
10943 (let* ((out (assoc-ref outputs "out"))
10944 (emacspeak (string-append out "/bin/emacspeak"))
10945 (espeak (string-append (assoc-ref inputs "espeak")
10946 "/bin/espeak")))
10947 ;; The environment variable DTK_PROGRAM tells emacspeak what
10948 ;; program to use for speech.
10949 (wrap-program emacspeak
10950 `("DTK_PROGRAM" ":" prefix (,espeak)))
10951 #t))))
10952 #:tests? #f)) ; no check target
10953 (inputs
10954 `(("emacs" ,emacs)
10955 ("espeak" ,espeak-ng)
10956 ("perl" ,perl)
10957 ("tcl" ,tcl)
10958 ("tclx" ,tclx)))
10959 (home-page "http://emacspeak.sourceforge.net")
10960 (synopsis "Audio desktop interface for Emacs")
10961 (description
10962 "Emacspeak is a speech interface that allows visually impaired users to
10963 interact independently and efficiently with the computer. Audio
10964 formatting---a technique pioneered by AsTeR---and full support for W3C's Aural
10965 CSS (ACSS) allows Emacspeak to produce rich aural presentations of electronic
10966 information. By seamlessly blending all aspects of the Internet such as
10967 Web-surfing and messaging, Emacspeak speech-enables local and remote
10968 information via a consistent and well-integrated user interface.")
10969 (license license:gpl2+)))
10970
10971 (define-public emacs-adaptive-wrap
10972 (package
10973 (name "emacs-adaptive-wrap")
10974 (version "0.7")
10975 (source
10976 (origin
10977 (method url-fetch)
10978 (uri (string-append "https://elpa.gnu.org/packages/"
10979 "adaptive-wrap-" version ".el"))
10980 (sha256
10981 (base32 "10fb8gzvkbnrgzv28n1rczs03dvapr7rvi0kd73j6yf1zg2iz6qp"))))
10982 (build-system emacs-build-system)
10983 (home-page "https://elpa.gnu.org/packages/adaptive-wrap.html")
10984 (synopsis "Smart line-wrapping with wrap-prefix")
10985 (description
10986 "This Emacs package provides the @code{adaptive-wrap-prefix-mode}
10987 minor mode which sets the wrap-prefix property on the fly so that
10988 single-long-line paragraphs get word-wrapped in a way similar to what
10989 you'd get with @kbd{M-q} using @code{adaptive-fill-mode}, but without
10990 actually changing the buffer's text.")
10991 (license license:gpl3+)))
10992
10993 (define-public emacs-diff-hl
10994 (package
10995 (name "emacs-diff-hl")
10996 (version "1.8.7")
10997 (source
10998 (origin
10999 (method git-fetch)
11000 (uri (git-reference
11001 (url "https://github.com/dgutov/diff-hl")
11002 (commit version)))
11003 (file-name (git-file-name name version))
11004 (sha256
11005 (base32 "0i7x6qgr3nydcwhw72sbc8z9x9dfhgkf0dqj9nakvx36vn1bblbq"))))
11006 (build-system emacs-build-system)
11007 (home-page "https://github.com/dgutov/diff-hl")
11008 (synopsis
11009 "Highlight uncommitted changes using VC")
11010 (description
11011 "@code{diff-hl-mode} highlights uncommitted changes on the side of the
11012 window (using the fringe, by default), allows you to jump between
11013 the hunks and revert them selectively.")
11014 (license license:gpl3+)))
11015
11016 (define-public emacs-diminish
11017 (package
11018 (name "emacs-diminish")
11019 (version "0.45")
11020 (source
11021 (origin
11022 (method git-fetch)
11023 (uri (git-reference
11024 (url "https://github.com/myrjola/diminish.el")
11025 (commit (string-append "v" version))))
11026 (file-name (git-file-name name version))
11027 (sha256
11028 (base32 "0qpgfgp8hrzz4vdifxq8h25n0a0jlzgf7aa1fpy6r0080v5rqbb6"))))
11029 (build-system emacs-build-system)
11030 (home-page "https://github.com/myrjola/diminish.el")
11031 (synopsis "Diminish minor modes with no modeline display")
11032 (description "@code{emacs-diminish} implements hiding or
11033 abbreviation of the mode line displays (lighters) of minor modes.")
11034 (license license:gpl2+)))
11035
11036 (define-public emacs-use-package
11037 (package
11038 (name "emacs-use-package")
11039 (version "2.4")
11040 (source (origin
11041 (method git-fetch)
11042 (uri (git-reference
11043 (url "https://github.com/jwiegley/use-package")
11044 (commit version)))
11045 (file-name (git-file-name name version))
11046 (sha256
11047 (base32
11048 "1b7mjjh0d6fmkkd9vyj64vca27xqhga0nvyrrcqxpqjn62zq046y"))))
11049 (build-system emacs-build-system)
11050 (native-inputs
11051 `(("texinfo" ,texinfo)))
11052 (propagated-inputs
11053 `(("emacs-diminish" ,emacs-diminish)))
11054 (arguments
11055 `(#:tests? #t
11056 #:test-command '("emacs" "--batch"
11057 "-l" "use-package-tests.el"
11058 "-f" "ert-run-tests-batch-and-exit")
11059 #:phases
11060 (modify-phases %standard-phases
11061 (add-before 'install 'install-manual
11062 (lambda* (#:key outputs #:allow-other-keys)
11063 (let* ((out (assoc-ref outputs "out"))
11064 (info-dir (string-append out "/share/info")))
11065 (mkdir-p info-dir)
11066 (install-file "use-package.info" info-dir)
11067 #t)))
11068 (add-before 'install-manual 'build-manual
11069 (lambda _
11070 (invoke "makeinfo" "use-package.texi")
11071 #t)))))
11072 (home-page "https://github.com/jwiegley/use-package")
11073 (synopsis "Declaration for simplifying your .emacs")
11074 (description "The use-package macro allows you to isolate package
11075 configuration in your @file{.emacs} file in a way that is both
11076 performance-oriented and tidy.")
11077 (license license:gpl2+)))
11078
11079 (define-public emacs-leaf
11080 (package
11081 (name "emacs-leaf")
11082 (version "4.2.5")
11083 (source
11084 (origin
11085 (method url-fetch)
11086 (uri (string-append "https://elpa.gnu.org/packages/"
11087 "leaf-" version ".tar"))
11088 (sha256
11089 (base32 "0y78mp4c2gcwp7dc87wlx3r4hfmap14vvx8gkjc9nkf99qavpnkw"))))
11090 (build-system emacs-build-system)
11091 (home-page "https://github.com/conao3/leaf.el")
11092 (synopsis "Simplify your init.el configuration, extended use-package")
11093 (description
11094 "This package provides macros that allows you to declaratively configure
11095 settings typical of an Elisp package with various keywords. The syntax is
11096 similar, but not identical to use-package -- overall, leaf aims at a cleaner
11097 and more predictable implementation.")
11098 (license license:agpl3+)))
11099
11100 (define-public emacs-strace-mode
11101 (let* ((commit "6a69b4b06db6797af56f33eda5cb28af94e59f11")
11102 (revision "1"))
11103 (package
11104 (name "emacs-strace-mode")
11105 (version (string-append "0.0.2-" revision "." (string-take commit 7)))
11106 (source (origin
11107 (method git-fetch)
11108 (uri (git-reference
11109 (url "https://github.com/pkmoore/strace-mode")
11110 (commit commit)))
11111 (file-name (git-file-name name version))
11112 (sha256
11113 (base32
11114 "1lbk2kzdznf2bkfazizfbimaxxzfzv00lrz1ran9dc2zqbc0bj9f"))))
11115 (build-system emacs-build-system)
11116 (home-page "https://github.com/pkmoore/strace-mode")
11117 (synopsis "Emacs major mode to highlight strace outputs")
11118 (description "@code{emacs-strace-mode} provides an Emacs major mode
11119 highlighting strace outputs.")
11120 (license license:gpl3+))))
11121
11122 (define-public emacs-default-encrypt
11123 (package
11124 (name "emacs-default-encrypt")
11125 (version "4.4")
11126 (source
11127 (origin
11128 (method url-fetch)
11129 (uri (string-append
11130 "https://informationelle-selbstbestimmung-im-internet.de"
11131 "/emacs/jl-encrypt" version "/jl-encrypt.el"))
11132 (file-name (string-append "jl-encrypt-" version ".el"))
11133 (sha256
11134 (base32
11135 "0w9ggz075j1zwg7d0rv9k8238g600p7czfnnsnawswi7yps2xk78"))))
11136 (build-system emacs-build-system)
11137 (home-page
11138 "https://informationelle-selbstbestimmung-im-internet.de/Emacs.html")
11139 (synopsis "Automatically encrypt or sign Gnus messages in Emacs")
11140 (description
11141 "DefaultEncrypt is designed to be used with Gnus in Emacs. It
11142 automatically encrypts messages that you send (e.g., email) when public keys
11143 for all recipients are available, and it protects you from accidentally
11144 sending un-encrypted messages. It can also be configured to automatically
11145 sign messages that you send. For details and instructions on how to use
11146 DefaultEncrypt, please refer to the home page or read the comments in the
11147 source file, @file{jl-encrypt.el}.")
11148 (license license:gpl3+)))
11149
11150 (define-public emacs-extend-smime
11151 (package
11152 (name "emacs-extend-smime")
11153 (version "3.3")
11154 (source
11155 (origin
11156 (method url-fetch)
11157 (uri (string-append
11158 "https://informationelle-selbstbestimmung-im-internet.de"
11159 "/emacs/jl-smime" version "/jl-smime.el"))
11160 (file-name (string-append "jl-smime-" version ".el"))
11161 (sha256
11162 (base32
11163 "1iv8s2wjmv3v5qfwlcy9hvvrmxxvp3f8m1krlr789q7bbh35jynh"))))
11164 (build-system emacs-build-system)
11165 (home-page
11166 "https://informationelle-selbstbestimmung-im-internet.de/Emacs.html")
11167 (synopsis "Improved S/MIME support for Gnus in Emacs")
11168 (propagated-inputs
11169 `(("emacs-default-encrypt" ,emacs-default-encrypt)))
11170 (description
11171 ;; TRANSLATORS: ExtendSMIME, DefaultEncrypt, and emacs-default-encrypt
11172 ;; should not be translated. The name "emacs-default-encrypt" refers to
11173 ;; the Guix package that provides DefaultEncrypt.
11174 "ExtendSMIME is designed to be used with Gnus in Emacs. It enhances
11175 DefaultEncrypt (emacs-default-encrypt) to support S/MIME (Secure/Multipurpose
11176 Internet Mail Extensions) via LDAP (Lightweight Directory Access Protocol).
11177 Before a message (e.g., email) is sent, ExtendSMIME searches for missing
11178 certificates via LDAP and imports them into @code{gpgsm}. When certificates
11179 for all recipients are available, DefaultEncrypt automatically encrypts the
11180 message. For details and instructions on how to use ExtendSMIME, please refer
11181 to the home page or read the comments in the source file,
11182 @file{jl-smime.el}.")
11183 (license license:gpl3+)))
11184
11185 (define-public emacs-htmlize
11186 (package
11187 (name "emacs-htmlize")
11188 (version "1.55")
11189 (source
11190 (origin
11191 (method git-fetch)
11192 (uri (git-reference
11193 (url "https://github.com/hniksic/emacs-htmlize")
11194 (commit (string-append "release/" version))))
11195 (file-name (git-file-name name version))
11196 (sha256
11197 (base32 "0gi3xshscpa53qrj8yplfsqahcilc2ybcc2p7gnh5nbnf2n1n97x"))))
11198 (build-system emacs-build-system)
11199 (home-page "https://github.com/hniksic/emacs-htmlize")
11200 (synopsis "Convert buffer text and decorations to HTML")
11201 (description "@code{emacs-htmlize} converts the buffer text and
11202 the associated decorations to HTML. Output to CSS, inline CSS and
11203 fonts is supported.")
11204 (license license:gpl2+)))
11205
11206 (define-public emacs-xmlgen
11207 (package
11208 (name "emacs-xmlgen")
11209 (version "0.5")
11210 (source
11211 (origin
11212 (method git-fetch)
11213 (uri (git-reference
11214 (url "https://github.com/philjackson/xmlgen")
11215 (commit version)))
11216 (file-name (git-file-name name version))
11217 (sha256
11218 (base32 "096i29v0badx0a6339h9ckdz78zj59gbjdp7vj7vhkq9d830392s"))))
11219 (build-system emacs-build-system)
11220 (arguments
11221 `(#:tests? #t
11222 #:test-command '("emacs" "--batch"
11223 "-l" "xmlgen-test.el"
11224 "-f" "ert-run-tests-batch-and-exit")))
11225 (home-page "https://github.com/philjackson/xmlgen")
11226 (synopsis "S-expression to XML domain specific language (DSL) in
11227 Emacs Lisp")
11228 (description "@code{emacs-xmlgen} provides S-expression to XML
11229 conversion for Emacs Lisp.")
11230 (license license:gpl2+)))
11231
11232 (define-public emacs-cdlatex
11233 (package
11234 (name "emacs-cdlatex")
11235 (version "4.7")
11236 (source
11237 (origin
11238 (method git-fetch)
11239 (uri (git-reference
11240 (url "https://github.com/cdominik/cdlatex")
11241 (commit version)))
11242 (file-name (git-file-name name version))
11243 (sha256
11244 (base32 "1jj9vmhc4s3ych08bjm1c2xwi81z1p20rj7bvxrgvb5aga2ghi9d"))))
11245 (build-system emacs-build-system)
11246 (propagated-inputs
11247 `(("emacs-auctex" ,emacs-auctex)))
11248 (home-page "https://github.com/cdominik/cdlatex")
11249 (synopsis "Fast Emacs input methods for LaTeX environments and
11250 math")
11251 (description "CDLaTeX is an Emacs minor mode supporting fast
11252 insertion of environment templates and math in LaTeX. Similar
11253 commands are also offered as part of the AUCTeX package, but it is not
11254 the same - CDLaTeX focuses on speediness for inserting LaTeX
11255 constructs.")
11256 (license license:gpl3+)))
11257
11258 (define-public emacs-cnfonts
11259 (package
11260 (name "emacs-cnfonts")
11261 (version "0.9.1")
11262 (source
11263 (origin
11264 (method git-fetch)
11265 (uri (git-reference
11266 (url "https://github.com/tumashu/cnfonts")
11267 (commit (string-append "v" version))))
11268 (file-name (git-file-name name version))
11269 (sha256
11270 (base32 "11d44lf0m0kbzq1mvyqkl4aprys0xqaarp08nij57xnynin1rynx"))))
11271 (build-system emacs-build-system)
11272 (home-page "https://github.com/tumashu/cnfonts")
11273 (synopsis "Emacs Chinese fonts setup tool")
11274 (description "cnfonts is a Chinese fonts setup tool, allowing for easy
11275 configuration of Chinese fonts.")
11276 (license license:gpl2+)))
11277
11278 (define-public emacs-php-mode
11279 (package
11280 (name "emacs-php-mode")
11281 (version "1.23.0")
11282 (source
11283 (origin
11284 (method git-fetch)
11285 (uri (git-reference
11286 (url "https://github.com/ejmr/php-mode")
11287 (commit (string-append "v" version))))
11288 (file-name (git-file-name name version))
11289 (sha256
11290 (base32 "0wnkcxg6djy4jvxhshiy1iw6b5cf79pjwjhfd1a060cavhfm4v5c"))))
11291 (build-system emacs-build-system)
11292 (home-page "https://github.com/ejmr/php-mode")
11293 (synopsis "Major mode for editing PHP code")
11294 (description
11295 "PHP mode is a major mode for editing PHP source code. It's an extension
11296 of C mode; thus it inherits all C mode's navigation functionality. But it
11297 colors according to the PHP grammar and indents according to the PEAR coding
11298 guidelines. It also includes a couple handy IDE-type features such as
11299 documentation search and a source and class browser.")
11300 (license license:gpl3+)))
11301
11302 (define-public emacs-pos-tip
11303 (package
11304 (name "emacs-pos-tip")
11305 (version "0.4.6")
11306 (source
11307 (origin
11308 (method git-fetch)
11309 (uri (git-reference
11310 (url "https://github.com/pitkali/pos-tip")
11311 (commit version)))
11312 (file-name (git-file-name name version))
11313 (sha256
11314 (base32 "0w8bnspnk871qndp18hs0wk4x9x31xr9rwbvf5dc8mcbnj29ch33"))))
11315 (build-system emacs-build-system)
11316 ;; The following functions and variables needed by emacs-pos-tip are
11317 ;; not included in emacs-minimal:
11318 ;; x-display-pixel-width, x-display-pixel-height, x-show-tip
11319 (arguments `(#:emacs ,emacs))
11320 (home-page "https://github.com/pitkali/pos-tip")
11321 (synopsis "Show tooltip at point")
11322 (description "The standard library tooltip.el provides a function for
11323 displaying a tooltip at the mouse position. However, locating a tooltip at an
11324 arbitrary buffer position in a window is not easy. Pos-tip provides such a
11325 function to be used by other frontend programs.")
11326 (license license:gpl2+)))
11327
11328 (define-public emacs-pyim-basedict
11329 (package
11330 (name "emacs-pyim-basedict")
11331 (version "0.3.1")
11332 (source
11333 (origin
11334 (method git-fetch)
11335 (uri (git-reference
11336 (url "https://github.com/tumashu/pyim-basedict")
11337 (commit (string-append "v" version))))
11338 (file-name (git-file-name name version))
11339 (sha256
11340 (base32 "0576r8ap9gp91ycjf1d47pn13kxp0f9fysn09zlq44hr0s1y2y5d"))))
11341 (build-system emacs-build-system)
11342 (home-page "https://github.com/tumashu/pyim-basedict")
11343 (synopsis "Input method dictionary of pyim")
11344 (description "Pyim-basedict is the default pinyin input method dictionary,
11345 containing words from the Rime project.")
11346 (license license:gpl2+)))
11347
11348 (define-public emacs-pyim
11349 (package
11350 (name "emacs-pyim")
11351 (version "1.8")
11352 (source
11353 (origin
11354 (method git-fetch)
11355 (uri (git-reference
11356 (url "https://github.com/tumashu/pyim")
11357 (commit (string-append "v" version))))
11358 (file-name (git-file-name name version))
11359 (sha256
11360 (base32
11361 "16rma4cv7xgky0g3x4an27v30jdi6i1sqw43cl99zhkqvp43l3f9"))))
11362 (build-system emacs-build-system)
11363 (propagated-inputs
11364 `(("emacs-async" ,emacs-async)
11365 ("emacs-pyim-basedict" ,emacs-pyim-basedict)
11366 ("emacs-popup" ,emacs-popup)
11367 ("emacs-posframe" ,emacs-posframe)))
11368 (home-page "https://github.com/tumashu/pyim")
11369 (synopsis "Chinese input method")
11370 (description "Chinese input method which supports quanpin, shuangpin, wubi
11371 and cangjie.")
11372 (license license:gpl2+)))
11373
11374 (define-public emacs-posframe
11375 (package
11376 (name "emacs-posframe")
11377 (version "0.8.1")
11378 (source
11379 (origin
11380 (method url-fetch)
11381 (uri (string-append "https://elpa.gnu.org/packages/"
11382 "posframe-" version ".el"))
11383 (sha256
11384 (base32 "01s9lc1liaxfpnfw183a320blp7cv6qg8gh2r22w4wkzi1yrcbb7"))))
11385 (build-system emacs-build-system)
11386 ;; emacs-minimal does not include the function font-info.
11387 (arguments
11388 `(#:emacs ,emacs))
11389 (home-page "https://github.com/tumashu/posframe")
11390 (synopsis "Pop a posframe (a child frame) at point")
11391 (description
11392 "Posframe can pop a posframe at point. A posframe is a child frame
11393 displayed within its root window's buffer. Posframe is fast and works well
11394 with CJK languages.")
11395 (license license:gpl3+)))
11396
11397 (define-public emacs-el2org
11398 (package
11399 (name "emacs-el2org")
11400 (version "0.6.0")
11401 (source
11402 (origin
11403 (method git-fetch)
11404 (uri (git-reference
11405 (url "https://github.com/tumashu/el2org")
11406 (commit (string-append "v" version))))
11407 (file-name (git-file-name name version))
11408 (sha256
11409 (base32 "0mzddqny6wpg1fv99xrvlv7rxmaifvmy5bvj4in4pldhm4cx4q1b"))))
11410 (build-system emacs-build-system)
11411 (home-page "https://github.com/tumashu/el2org")
11412 (synopsis "Convert Emacs-lisp file to org file")
11413 (description "El2org is a simple tool, which can convert Emacs-lisp file
11414 to org file, you can use this tool to write orgify commentary.")
11415 (license license:gpl2+)))
11416
11417 (define-public emacs-mustache
11418 (package
11419 (name "emacs-mustache")
11420 (version "0.23")
11421 (source
11422 (origin
11423 (method git-fetch)
11424 (uri (git-reference
11425 (url "https://github.com/Wilfred/mustache.el")
11426 (commit version)))
11427 (file-name (git-file-name name version))
11428 (sha256
11429 (base32 "1n2ymd92qpvsby6ms0l3kjhdzzc47rri2aiscc6bs07hm4mjpr9q"))))
11430 (build-system emacs-build-system)
11431 (propagated-inputs
11432 `(("emacs-dash" ,emacs-dash)
11433 ("emacs-ht" ,emacs-ht)
11434 ("emacs-s" ,emacs-s)))
11435 (home-page "https://github.com/Wilfred/mustache.el")
11436 (synopsis "Mustache templating library for Emacs")
11437 (description "Mustache templating library for Emacs, mustache is
11438 a simple web template system, which is described as a logic-less system
11439 because it lacks any explicit control flow statements, both looping and
11440 conditional evaluation can be achieved using section tags processing lists
11441 and lambdas.")
11442 (license license:gpl3+)))
11443
11444 (define-public emacs-org2web
11445 (package
11446 (name "emacs-org2web")
11447 (version "0.9.1")
11448 (source
11449 (origin
11450 (method git-fetch)
11451 (uri (git-reference
11452 (url "https://github.com/tumashu/org2web")
11453 (commit (string-append "v" version))))
11454 (file-name (git-file-name name version))
11455 (sha256
11456 (base32 "0wsvfn409a2ivbich8b8zqza78sprirg4bl7igx536ydqclmi0n7"))))
11457 (build-system emacs-build-system)
11458 (propagated-inputs
11459 `(("emacs-dash" ,emacs-dash)
11460 ("emacs-el2org" ,emacs-el2org)
11461 ("emacs-ht" ,emacs-ht)
11462 ("emacs-mustache" ,emacs-mustache)
11463 ("emacs-simple-httpd" ,emacs-simple-httpd)))
11464 (home-page "https://github.com/tumashu/org2web")
11465 (synopsis "Static site generator based on org-mode ")
11466 (description "Org2web is a static site generator based on org-mode,
11467 which code derived from Kelvin H's org-page.")
11468 (license license:gpl2+)))
11469
11470 (define-public emacs-xelb
11471 (package
11472 (name "emacs-xelb")
11473 (version "0.18")
11474 (source (origin
11475 (method url-fetch)
11476 (uri (string-append "https://elpa.gnu.org/packages/xelb-"
11477 version ".tar"))
11478 (sha256
11479 (base32
11480 "1fp5mzl63sh0h3ws4l5p4qgvi7ny8a3fj6k4dhqa98xgw2bx03v7"))))
11481 (build-system emacs-build-system)
11482 ;; The following functions and variables needed by emacs-xelb are
11483 ;; not included in emacs-minimal:
11484 ;; x-display-screens, x-keysym-table, x-alt-keysym, x-meta-keysym
11485 ;; x-hyper-keysym, x-super-keysym, libxml-parse-xml-region
11486 ;; x-display-pixel-width, x-display-pixel-height
11487 (arguments
11488 `(#:emacs ,emacs
11489 #:phases
11490 (modify-phases %standard-phases
11491 (add-after 'unpack 'regenerate-el-files
11492 (lambda* (#:key inputs #:allow-other-keys)
11493 (invoke "make"
11494 (string-append "PROTO_PATH="
11495 (assoc-ref inputs "xcb-proto")
11496 "/share/xcb")
11497 (string-append "EMACS_BIN="
11498 (assoc-ref inputs "emacs")
11499 "/bin/emacs -Q")))))))
11500 (native-inputs `(("xcb-proto" ,xcb-proto)))
11501 (home-page "https://github.com/ch11ng/xelb")
11502 (synopsis "X protocol Emacs Lisp binding")
11503 (description "@code{emacs-xelb} is a pure Emacs Lisp implementation of the
11504 X11 protocol based on the XML description files from the XCB project. It
11505 features an object-oriented API and permits a certain degree of concurrency.
11506 It should enable you to implement low-level X11 applications.")
11507 (license license:gpl3+)))
11508
11509 (define-public emacs-exwm
11510 (package
11511 (name "emacs-exwm")
11512 (version "0.24")
11513 (synopsis "Emacs X window manager")
11514 (source
11515 (origin
11516 (method url-fetch)
11517 (uri (string-append "https://elpa.gnu.org/packages/"
11518 "exwm-" version ".tar"))
11519 (sha256
11520 (base32 "0lj1a3cmbpf4h6x8k6x8cdm1qb51ca6filydnvi5zcda8zpl060s"))
11521 (patches
11522 ;; Patch fixing fullscreen view. Applied upstream as
11523 ;; edb930005b0ba83051ca8a59b493e9a3c8ef580a. It can be removed in
11524 ;; next release.
11525 (search-patches "emacs-exwm-fix-fullscreen-states.patch"))))
11526 (build-system emacs-build-system)
11527 (propagated-inputs
11528 `(("emacs-xelb" ,emacs-xelb)))
11529 (inputs
11530 `(("xhost" ,xhost)
11531 ("dbus" ,dbus)))
11532 ;; The following functions and variables needed by emacs-exwm are
11533 ;; not included in emacs-minimal:
11534 ;; scroll-bar-mode, fringe-mode
11535 ;; x-display-pixel-width, x-display-pixel-height
11536 (arguments
11537 `(#:emacs ,emacs
11538 #:phases
11539 (modify-phases %standard-phases
11540 (add-after 'build 'install-xsession
11541 (lambda* (#:key inputs outputs #:allow-other-keys)
11542 (let* ((out (assoc-ref outputs "out"))
11543 (xsessions (string-append out "/share/xsessions"))
11544 (bin (string-append out "/bin"))
11545 (exwm-executable (string-append bin "/exwm")))
11546 ;; Add a .desktop file to xsessions
11547 (mkdir-p xsessions)
11548 (mkdir-p bin)
11549 (make-desktop-entry-file
11550 (string-append xsessions "/exwm.desktop")
11551 #:name ,name
11552 #:comment ,synopsis
11553 #:exec exwm-executable
11554 #:try-exec exwm-executable)
11555 ;; Add a shell wrapper to bin
11556 (with-output-to-file exwm-executable
11557 (lambda _
11558 (format #t "#!~a ~@
11559 ~a +SI:localuser:$USER ~@
11560 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
11561 (string-append (assoc-ref inputs "bash") "/bin/sh")
11562 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
11563 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
11564 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
11565 '(cond
11566 ((file-exists-p "~/.exwm")
11567 (load-file "~/.exwm"))
11568 ((not (featurep 'exwm))
11569 (require 'exwm)
11570 (require 'exwm-config)
11571 (exwm-config-default)
11572 (message (concat "exwm configuration not found. "
11573 "Falling back to default configuration...")))))))
11574 (chmod exwm-executable #o555)
11575 #t))))))
11576 (home-page "https://github.com/ch11ng/exwm")
11577 (description
11578 "EXWM is a full-featured tiling X window manager for Emacs built on top
11579 of XELB.")
11580 (license license:gpl3+)))
11581
11582 (define-public emacs-xelb-no-x-toolkit
11583 (package
11584 (inherit emacs-xelb)
11585 (name "emacs-xelb-no-x-toolkit")
11586 (arguments
11587 (substitute-keyword-arguments (package-arguments emacs-xelb)
11588 ((#:emacs emacs) `,emacs-no-x-toolkit)))))
11589
11590 (define-public emacs-exwm-no-x-toolkit
11591 (package
11592 (inherit emacs-exwm)
11593 (name "emacs-exwm-no-x-toolkit")
11594 (synopsis "Emacs X window manager (without an X toolkit)")
11595 (propagated-inputs
11596 `(("emacs-xelb-no-x-toolkit" ,emacs-xelb-no-x-toolkit)))
11597 (arguments
11598 (substitute-keyword-arguments (package-arguments emacs-exwm)
11599 ((#:emacs emacs) `,emacs-no-x-toolkit)))))
11600
11601 (define-public emacs-switch-window
11602 (package
11603 (name "emacs-switch-window")
11604 (version "1.6.2")
11605 (source
11606 (origin
11607 (method git-fetch)
11608 (uri (git-reference
11609 (url "https://github.com/dimitri/switch-window")
11610 (commit (string-append "v" version))))
11611 (file-name (git-file-name name version))
11612 (sha256
11613 (base32
11614 "0rci96asgamr6qp6nkyr5vwrnslswjxcjd96yccy4aivh0g66yfg"))))
11615 (build-system emacs-build-system)
11616 (home-page "https://github.com/dimitri/switch-window")
11617 (synopsis "Emacs window switch tool")
11618 (description "Switch-window is an emacs window switch tool, which
11619 offer a visual way to choose a window to switch to, delete, split or
11620 other operations.")
11621 (license license:wtfpl2)))
11622
11623 (define-public emacs-exwm-x
11624 (package
11625 (name "emacs-exwm-x")
11626 (version "1.9.0")
11627 (synopsis "Derivative window manager based on EXWM")
11628 (source
11629 (origin
11630 (method git-fetch)
11631 (uri (git-reference
11632 (url "https://github.com/tumashu/exwm-x")
11633 (commit (string-append "v" version))))
11634 (file-name (git-file-name name version))
11635 (sha256
11636 (base32
11637 "03l3dl7s1qys1kkh40rm1sfx7axy1b8sf5f6nyksj9ps6d30p5i4"))))
11638 (build-system emacs-build-system)
11639 (propagated-inputs
11640 `(("emacs-counsel" ,emacs-counsel)
11641 ("emacs-exwm" ,emacs-exwm)
11642 ("emacs-switch-window" ,emacs-switch-window)
11643 ("emacs-use-package" ,emacs-use-package)))
11644 (inputs
11645 `(("xhost" ,xhost)
11646 ("dbus" ,dbus)))
11647 ;; Need emacs instead of emacs-minimal,
11648 ;; for emacs's bin path will be inserted into bin/exwm-x file.
11649 (arguments
11650 `(#:emacs ,emacs
11651 #:phases
11652 (modify-phases %standard-phases
11653 (add-after 'build 'install-xsession
11654 (lambda* (#:key inputs outputs #:allow-other-keys)
11655 (let* ((out (assoc-ref outputs "out"))
11656 (xsessions (string-append out "/share/xsessions"))
11657 (bin (string-append out "/bin"))
11658 (exwm-executable (string-append bin "/exwm-x")))
11659 ;; Add a .desktop file to xsessions
11660 (mkdir-p xsessions)
11661 (mkdir-p bin)
11662 (with-output-to-file
11663 (string-append xsessions "/exwm-x.desktop")
11664 (lambda _
11665 (format #t "[Desktop Entry]~@
11666 Name=~a~@
11667 Comment=~a~@
11668 Exec=~a~@
11669 TryExec=~@*~a~@
11670 Type=Application~%" ,name ,synopsis exwm-executable)))
11671 ;; Add a shell wrapper to bin
11672 (with-output-to-file exwm-executable
11673 (lambda _
11674 (format #t "#!~a ~@
11675 ~a +SI:localuser:$USER ~@
11676 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
11677 (string-append (assoc-ref inputs "bash") "/bin/sh")
11678 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
11679 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
11680 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
11681 '(require 'exwmx-loader))))
11682 (chmod exwm-executable #o555)
11683 #t))))))
11684 (home-page "https://github.com/tumashu/exwm-x")
11685 (description "EXWM-X is a derivative window manager based on EXWM, with focus
11686 on mouse-control.")
11687 (license license:gpl3+)))
11688
11689 (define-public emacs-gnugo
11690 (package
11691 (name "emacs-gnugo")
11692 (version "3.1.0")
11693 (source
11694 (origin
11695 (method url-fetch)
11696 (uri (string-append "https://elpa.gnu.org/packages/gnugo-"
11697 version ".tar"))
11698 (sha256
11699 (base32
11700 "0xpjvs250gg71qwapdsb1hlc61gs0gpkjds01srf784fvyxx2gf1"))))
11701 (build-system emacs-build-system)
11702 (arguments
11703 `(#:phases (modify-phases %standard-phases
11704 (add-after 'unpack 'configure-default-gnugo-xpms-variable
11705 (lambda _
11706 (substitute* "gnugo.el"
11707 (("defvar gnugo-xpms nil")
11708 "defvar gnugo-xpms #'gnugo-imgen-create-xpms"))
11709 #t)))))
11710 (propagated-inputs
11711 `(("emacs-ascii-art-to-unicode" ,emacs-ascii-art-to-unicode)
11712 ("emacs-xpm" ,emacs-xpm)))
11713 (home-page "https://elpa.gnu.org/packages/gnugo.html")
11714 (synopsis "Emacs major mode for playing GNU Go")
11715 (description "This package provides an Emacs based interface for GNU Go.
11716 It has a graphical mode where the board and stones are drawn using XPM images
11717 and supports the use of a mouse.")
11718 (license license:gpl3+)))
11719
11720 (define-public emacs-gnuplot
11721 (package
11722 (name "emacs-gnuplot")
11723 (version "0.7.0")
11724 (source
11725 (origin
11726 (method git-fetch)
11727 (uri (git-reference
11728 (url "https://github.com/emacsorphanage/gnuplot-mode")
11729 (commit version)))
11730 (file-name (git-file-name name version))
11731 (sha256
11732 (base32 "0bwri3cvm2vr27kyqkrddm28fs08axnd4nm9amfgp54xp20bn4yn"))))
11733 (build-system emacs-build-system)
11734 (home-page "https://github.com/emacsorphanage/gnuplot-mode")
11735 (synopsis "Emacs major mode for interacting with Gnuplot")
11736 (description
11737 "Emacs Gnuplot is an Emacs major mode for interacting with Gnuplot.")
11738 (license license:gpl2+)))
11739
11740 (define-public emacs-transpose-frame
11741 (package
11742 (name "emacs-transpose-frame")
11743 (version "0.1.0")
11744 (source
11745 (origin
11746 (method url-fetch)
11747 (uri "https://www.emacswiki.org/emacs/download/transpose-frame.el")
11748 (file-name (string-append "transpose-frame-" version ".el"))
11749 (sha256
11750 (base32
11751 "1f67yksgw9s6j0033hmqzaxx2a93jm11sd5ys7cc3li5gfh680m4"))))
11752 (build-system emacs-build-system)
11753 (home-page "https://www.emacswiki.org/emacs/TransposeFrame")
11754 (synopsis "Transpose window arrangement in current frame")
11755 (description "@code{emacs-transpose-frame} provides some interactive
11756 functions which allows users to transpose windows arrangement in currently
11757 selected frame.")
11758 (license license:bsd-2)))
11759
11760 (define-public emacs-key-chord
11761 (package
11762 (name "emacs-key-chord")
11763 (version "0.6")
11764 (source
11765 (origin
11766 (method url-fetch)
11767 (uri "https://www.emacswiki.org/emacs/download/key-chord.el")
11768 (file-name (string-append "key-chord-" version ".el"))
11769 (sha256
11770 (base32
11771 "03m44pqggfrd53nh9dvpdjgm0rvca34qxmd30hr33hzprzjambxg"))))
11772 (build-system emacs-build-system)
11773 (home-page "https://www.emacswiki.org/emacs/key-chord.el")
11774 (synopsis "Map pairs of simultaneously pressed keys to Emacs commands")
11775 (description "@code{emacs-key-chord} provides @code{key-chord-mode}, a
11776 mode for binding key chords to commands. A key chord is defined as two keys
11777 pressed simultaneously or a single key quickly pressed twice.")
11778 (license license:gpl2+)))
11779
11780 (define-public emacs-evil-surround
11781 (package
11782 (name "emacs-evil-surround")
11783 (version "1.1.0")
11784 (source
11785 (origin
11786 (method git-fetch)
11787 (uri (git-reference
11788 (url "https://github.com/emacs-evil/evil-surround")
11789 (commit version)))
11790 (file-name (git-file-name name version))
11791 (sha256
11792 (base32 "15v2spg5rhddr97pxjfvxj36sh7knp753a9qpw8v5zjnp65kf2kn"))))
11793 (build-system emacs-build-system)
11794 (propagated-inputs
11795 `(("emacs-evil" ,emacs-evil)))
11796 (arguments
11797 `(#:tests? #t
11798 #:test-command '("make" "test")))
11799 (home-page "https://github.com/emacs-evil/evil-surround")
11800 (synopsis "Easily modify surrounding parentheses and quotes")
11801 (description "@code{emacs-evil-surround} allows easy deletion, change and
11802 addition of surrounding pairs, such as parentheses and quotes, in evil mode.")
11803 (license license:gpl3+)))
11804
11805 (define-public emacs-evil-commentary
11806 (package
11807 (name "emacs-evil-commentary")
11808 (version "2.1.1")
11809 (source
11810 (origin
11811 (method git-fetch)
11812 (uri (git-reference
11813 (url "https://github.com/linktohack/evil-commentary")
11814 (commit (string-append "v" version))))
11815 (file-name (git-file-name name version))
11816 (sha256
11817 (base32 "0zjs9zyqfygnpxapvf0ymmiid40i06cxbhjzd81zw33nafgkf6r4"))))
11818 (build-system emacs-build-system)
11819 (propagated-inputs
11820 `(("emacs-evil" ,emacs-evil)))
11821 (home-page "https://github.com/linktohack/evil-commentary")
11822 (synopsis "Comment out code in evil mode")
11823 (description "@code{emacs-evil-commentary} adds keybindings to easily
11824 comment out lines of code in evil mode. It provides @code{gcc} to comment out
11825 lines, and @code{gc} to comment out the target of a motion.")
11826 (license license:gpl3+)))
11827
11828 ;; Tests for emacs-ansi have a circular dependency with ert-runner, and
11829 ;; therefore cannot be run
11830 (define-public emacs-ansi
11831 (let ((commit "a41d5cc719297515d85bb5256980cd1204a71b88")
11832 (revision "1"))
11833 (package
11834 (name "emacs-ansi")
11835 (version (git-version "0.4.1" revision commit))
11836 (source
11837 (origin
11838 (method git-fetch)
11839 (uri (git-reference
11840 (url "https://github.com/rejeep/ansi.el")
11841 (commit commit)))
11842 (file-name (git-file-name name version))
11843 (sha256
11844 (base32 "051v8dmji90chwbsyqsqry7h35mksal2j6rgw1kpmjsni86d79y1"))))
11845 (build-system emacs-build-system)
11846 (propagated-inputs
11847 `(("emacs-dash" ,emacs-dash)
11848 ("emacs-s" ,emacs-s)))
11849 (home-page "https://github.com/rejeep/ansi.el")
11850 (synopsis "Convert strings to ANSI")
11851 (description "@code{emacs-ansi} defines functions that turns simple
11852 strings to ANSI strings. Turning a string into an ANSI string can be to add
11853 color to a text, add color in the background of a text or adding a style, such
11854 as bold, underscore or italic.")
11855 (license license:gpl3+))))
11856
11857 ;; Tests for emacs-commander have a circular dependency with ert-runner, and
11858 ;; therefore cannot be run
11859 (define-public emacs-commander
11860 (package
11861 (name "emacs-commander")
11862 (version "0.7.0")
11863 (source
11864 (origin
11865 (method git-fetch)
11866 (uri (git-reference
11867 (url "https://github.com/rejeep/commander.el")
11868 (commit (string-append "v" version))))
11869 (file-name (git-file-name name version))
11870 (sha256
11871 (base32 "1j6hhyzww7wfwk6bllbb5mk4hw4qs8hsgfbfdifsam9c6i4spm45"))))
11872 (build-system emacs-build-system)
11873 (propagated-inputs
11874 `(("emacs-dash" ,emacs-dash)
11875 ("emacs-f" ,emacs-f)
11876 ("emacs-s" ,emacs-s)))
11877 (home-page "https://github.com/rejeep/commander.el")
11878 (synopsis "Emacs command line parser")
11879 (description "@code{emacs-commander} provides command line parsing for
11880 Emacs.")
11881 (license license:gpl3+)))
11882
11883 (define-public emacs-eglot
11884 (package
11885 (name "emacs-eglot")
11886 (version "1.6")
11887 (source
11888 (origin
11889 (method url-fetch)
11890 (uri (string-append "https://elpa.gnu.org/packages/"
11891 "eglot-" version ".tar"))
11892 (sha256
11893 (base32 "15hd6sx7qrpvlvhwwkcgdiki8pswwf4mm7hkm0xvznskfcp44spx"))))
11894 (build-system emacs-build-system)
11895 (propagated-inputs
11896 `(("emacs-jsonrpc" ,emacs-jsonrpc)))
11897 (home-page "https://github.com/joaotavora/eglot")
11898 (synopsis "Client for Language Server Protocol (LSP) servers")
11899 (description
11900 "Emacs Polyglot, or Eglot, is an Emacs @acronym{Language Server Protocol,
11901 LSP} client that stays out of the way. It guesses the LSP program to start
11902 for the current file, using the major mode as a hint. It prompts you to enter
11903 one if it fails.")
11904 (license license:gpl3+)))
11905
11906 ;; Tests for ert-runner have a circular dependency with ecukes, and therefore
11907 ;; cannot be run
11908 (define-public emacs-ert-runner
11909 (package
11910 (name "emacs-ert-runner")
11911 (version "0.8.0")
11912 (source
11913 (origin
11914 (method git-fetch)
11915 (uri (git-reference
11916 (url "https://github.com/rejeep/ert-runner.el")
11917 (commit (string-append "v" version))))
11918 (file-name (git-file-name name version))
11919 (sha256
11920 (base32
11921 "08gygn9fjank5gpi4v6ynrkn0jbknxbwsn7md4p9ndygdbmnkf98"))))
11922 (build-system emacs-build-system)
11923 (inputs
11924 `(("emacs-ansi" ,emacs-ansi)
11925 ("emacs-commander" ,emacs-commander)
11926 ("emacs-dash" ,emacs-dash)
11927 ("emacs-f" ,emacs-f)
11928 ("emacs-s" ,emacs-s)
11929 ("emacs-shut-up" ,emacs-shut-up)))
11930 (arguments
11931 `(#:phases
11932 (modify-phases %standard-phases
11933 (add-after 'install 'install-executable
11934 (lambda* (#:key inputs outputs #:allow-other-keys)
11935 (let ((out (assoc-ref outputs "out"))
11936 (source-directory (string-append
11937 (getenv "TMPDIR") "/source")))
11938 (substitute* "bin/ert-runner"
11939 (("ERT_RUNNER=\"\\$\\(dirname \\$\\(dirname \\$0\\)\\)")
11940 (string-append "ERT_RUNNER=\"" out
11941 "/share/emacs/site-lisp")))
11942 (install-file "bin/ert-runner" (string-append out "/bin"))
11943 (wrap-program (string-append out "/bin/ert-runner")
11944 (list "EMACSLOADPATH" ":" 'prefix
11945 ;; Do not capture the transient source directory in
11946 ;; the wrapper.
11947 (delete source-directory
11948 (string-split (getenv "EMACSLOADPATH") #\:))))
11949 #t))))
11950 #:include (cons* "^reporters/.*\\.el$" %default-include)))
11951 (home-page "https://github.com/rejeep/ert-runner.el")
11952 (synopsis "Opinionated Ert testing workflow")
11953 (description "@code{ert-runner} is a tool for Emacs projects tested
11954 using ERT. It assumes a certain test structure setup and can therefore make
11955 running tests easier.")
11956 (license license:gpl3+)))
11957
11958 (define-public emacs-xtest
11959 (package
11960 (name "emacs-xtest")
11961 (version "1.1.0")
11962 (source (origin
11963 (method git-fetch)
11964 (uri (git-reference
11965 (url "https://github.com/promethial/xtest")
11966 (commit (string-append "v" version))))
11967 (file-name (git-file-name name version))
11968 (sha256
11969 (base32
11970 "1wqx6hlqcmqiljydih5fx89dw06g8w728pyn4iqsap8jwgjngb09"))))
11971 (arguments
11972 `(#:exclude '()))
11973 (build-system emacs-build-system)
11974 (home-page "https://github.com/promethial/xtest/")
11975 (synopsis "Simple testing with Emacs")
11976 (description "This package provides a simple testing library for Emacs.")
11977 (license license:gpl3+)))
11978
11979 (define-public emacs-disable-mouse
11980 (package
11981 (name "emacs-disable-mouse")
11982 (version "0.2")
11983 (source
11984 (origin
11985 (method git-fetch)
11986 (uri (git-reference
11987 (url "https://github.com/purcell/disable-mouse")
11988 (commit version)))
11989 (file-name (git-file-name name version))
11990 (sha256
11991 (base32 "1v1y5hf6k6ng7xsvgb27nh740d14m6l4krr0paccda8zgm4mw357"))))
11992 (build-system emacs-build-system)
11993 (home-page "https://github.com/purcell/disable-mouse")
11994 (synopsis "Disable mouse commands globally")
11995 (description
11996 "Provides @code{disable-mouse-mode} and @code{global-disable-mouse-mode},
11997 pair of minor modes which suppress all mouse events by intercepting them and
11998 running a customisable handler command (@code{ignore} by default). ")
11999 (license license:gpl3+)))
12000
12001 (define-public emacs-json-reformat
12002 (package
12003 (name "emacs-json-reformat")
12004 (version "0.0.6")
12005 (source
12006 (origin
12007 (method git-fetch)
12008 (uri (git-reference
12009 (url "https://github.com/gongo/json-reformat")
12010 (commit version)))
12011 (file-name (git-file-name name version))
12012 (sha256
12013 (base32 "0qp4n2k6s69jj4gwwimkpadjv245y54wk3bxb1x96f034gkp81vs"))
12014 (patches (search-patches "emacs-json-reformat-fix-tests.patch"))))
12015 (build-system emacs-build-system)
12016 (propagated-inputs
12017 `(("emacs-undercover" ,emacs-undercover)))
12018 (native-inputs
12019 `(("emacs-dash" ,emacs-dash)
12020 ("emacs-shut-up" ,emacs-shut-up)
12021 ("ert-runner" ,emacs-ert-runner)))
12022 (arguments
12023 `(#:tests? #t
12024 #:test-command '("ert-runner")
12025 #:phases
12026 (modify-phases %standard-phases
12027 (add-before 'check 'make-tests-writable
12028 (lambda _
12029 (for-each make-file-writable (find-files "test"))
12030 #t))
12031 (add-before 'check 'delete-json-objects-order-test
12032 (lambda _
12033 (emacs-batch-edit-file "test/json-reformat-test.el"
12034 `(progn (progn (goto-char (point-min))
12035 (re-search-forward
12036 "ert-deftest json-reformat-test:json-reformat-region")
12037 (beginning-of-line)
12038 (kill-sexp))
12039 (basic-save-buffer)))
12040 #t)))))
12041 (home-page "https://github.com/gongo/json-reformat")
12042 (synopsis "Reformatting tool for JSON")
12043 (description "@code{json-reformat} provides a reformatting tool for
12044 @url{http://json.org/, JSON}.")
12045 (license license:gpl3+)))
12046
12047 (define-public emacs-json-snatcher
12048 (package
12049 (name "emacs-json-snatcher")
12050 (version "1.0.0")
12051 (source
12052 (origin
12053 (method git-fetch)
12054 (uri (git-reference
12055 (url "https://github.com/Sterlingg/json-snatcher")
12056 (commit version)))
12057 (file-name (git-file-name name version))
12058 (sha256
12059 (base32 "05zsgnk7grgw9jzwl80h5sxfpifxlr37b4mkbvx7mjq4z14xc2jw"))))
12060 (build-system emacs-build-system)
12061 (home-page "https://github.com/sterlingg/json-snatcher")
12062 (synopsis "Grabs the path to JSON values in a JSON file")
12063 (description "@code{emacs-json-snatcher} grabs the path to JSON values in
12064 a @url{http://json.org/, JSON} file.")
12065 (license license:gpl3+)))
12066
12067 (define-public emacs-json-mode
12068 (package
12069 (name "emacs-json-mode")
12070 (version "1.7.0")
12071 (source
12072 (origin
12073 (method git-fetch)
12074 (uri (git-reference
12075 (url "https://github.com/joshwnj/json-mode")
12076 (commit (string-append "v" version))))
12077 (file-name (git-file-name name version))
12078 (sha256
12079 (base32 "0i79lqzdg59vkqwjd3q092xxn9vhxspb1vn4pkis0vfvn46g01jy"))))
12080 (build-system emacs-build-system)
12081 (propagated-inputs
12082 `(("emacs-json-reformat" ,emacs-json-reformat)
12083 ("emacs-json-snatcher" ,emacs-json-snatcher)))
12084 (home-page "https://github.com/joshwnj/json-mode")
12085 (synopsis "Major mode for editing JSON files")
12086 (description "@code{json-mode} extends the builtin js-mode syntax
12087 highlighting.")
12088 (license license:gpl3+)))
12089
12090 (define-public emacs-jsonrpc
12091 (package
12092 (name "emacs-jsonrpc")
12093 (version "1.0.12")
12094 (source
12095 (origin
12096 (method url-fetch)
12097 (uri (string-append "https://elpa.gnu.org/packages/"
12098 "jsonrpc-" version ".el"))
12099 (sha256
12100 (base32 "0cqp05awikbrn88ifld3vwnv6cxgmr83wlnsvxw8bqb96djz70ad"))))
12101 (build-system emacs-build-system)
12102 (home-page "http://elpa.gnu.org/packages/jsonrpc.html")
12103 (synopsis "JSON-RPC library")
12104 (description
12105 "This library implements the JSONRPC 2.0 specification as
12106 described in @url{http://www.jsonrpc.org/}. As the name suggests,
12107 JSONRPC is a generic Remote Procedure Call protocol designed around
12108 JSON objects.")
12109 (license license:gpl3+)))
12110
12111 (define-public emacs-restclient
12112 (let ((commit "ac8aad6c6b9e9d918062fa3c89c22c2f4ec48bc3")
12113 (version "0")
12114 (revision "3")) ;Guix package revision,
12115 ;upstream doesn't have official releases
12116 (package
12117 (name "emacs-restclient")
12118 (version (git-version version revision commit))
12119 (source (origin
12120 (method git-fetch)
12121 (uri (git-reference
12122 (url "https://github.com/pashky/restclient.el")
12123 (commit commit)))
12124 (sha256
12125 (base32
12126 "1a2c7xzy7rsan1zcdskia6m7n6j29xacfkqjlfdhzk6rr1bpzkwk"))
12127 (file-name (git-file-name name version))))
12128 (build-system emacs-build-system)
12129 (propagated-inputs
12130 `(("emacs-helm" ,emacs-helm)
12131 ("emacs-jq-mode" ,emacs-jq-mode)))
12132 (home-page "https://github.com/pashky/restclient.el")
12133 (synopsis "Explore and test HTTP REST webservices")
12134 (description
12135 "This tool allows for testing and exploration of HTTP REST Web services
12136 from within Emacs. Restclient runs queries from a plan-text query sheet,
12137 displays results pretty-printed in XML or JSON with @code{restclient-mode}")
12138 (license license:public-domain))))
12139
12140 (define-public emacs-jq-mode
12141 (package
12142 (name "emacs-jq-mode")
12143 (version "0.5.0")
12144 (source
12145 (origin
12146 (method git-fetch)
12147 (uri (git-reference
12148 (url "https://github.com/ljos/jq-mode")
12149 (commit (string-append "v" version))))
12150 (file-name (git-file-name name version))
12151 (sha256
12152 (base32 "0xk0if5i9cz4w06lx8v1vdm112pn1ybqgfw048sx15yyvfzgril1"))))
12153 (build-system emacs-build-system)
12154 (home-page "https://github.com/ljos/jq-mode")
12155 (synopsis "Major mode for editing jq queries")
12156 (description
12157 "Jq mode is an Emacs major mode for editing jq-scripts.")
12158 (license license:gpl3+)))
12159
12160 (define-public emacs-whitespace-cleanup-mode
12161 (let ((commit "72427144b054b0238a86e1348c45d986b8830d9d")
12162 (revision "1"))
12163 (package
12164 (name "emacs-whitespace-cleanup-mode")
12165 (version (git-version "0.10" revision commit))
12166 (source (origin
12167 (method git-fetch)
12168 (uri (git-reference
12169 (url "https://github.com/purcell/whitespace-cleanup-mode")
12170 (commit commit)))
12171 (sha256
12172 (base32
12173 "1zlk534jbwrsabcg3kqlzk4h4hwya60lh6q2n1v4yn4rpf5ghsag"))
12174 (file-name (git-file-name name version))))
12175 (build-system emacs-build-system)
12176 (home-page "https://github.com/purcell/whitespace-cleanup-mode")
12177 (synopsis "Intelligently call @code{whitespace-cleanup} on save")
12178 (description
12179 "This package provides a minor mode that calls
12180 @code{whitespace-cleanup} before saving the current buffer only if the
12181 whitespace in the buffer was initially clean.")
12182 (license license:gpl3+))))
12183
12184 (define-public emacs-eimp
12185 (let ((version "1.4.0")
12186 (commit "2e7536fe6d8f7faf1bad7a8ae37faba0162c3b4f")
12187 (revision "1"))
12188 (package
12189 (name "emacs-eimp")
12190 (version (git-version version revision commit))
12191 (source
12192 (origin
12193 (method git-fetch)
12194 (uri (git-reference
12195 (url "https://github.com/nicferrier/eimp")
12196 (commit commit)))
12197 (file-name (git-file-name name version))
12198 (sha256
12199 (base32
12200 "154d57yafxbcf39r89n5j43c86rp2fki3lw3gwy7ww2g6qkclcra"))))
12201 (build-system emacs-build-system)
12202 (arguments
12203 `(#:phases
12204 (modify-phases %standard-phases
12205 (add-after 'unpack 'configure
12206 (lambda* (#:key inputs #:allow-other-keys)
12207 (let ((imagemagick (assoc-ref inputs "imagemagick")))
12208 ;; eimp.el is read-only in git.
12209 (chmod "eimp.el" #o644)
12210 (emacs-substitute-variables "eimp.el"
12211 ("eimp-mogrify-program"
12212 (string-append imagemagick "/bin/mogrify"))))
12213 #t)))))
12214 (inputs
12215 `(("imagemagick" ,imagemagick)))
12216 (home-page "https://github.com/nicferrier/eimp")
12217 (synopsis "Interactive image manipulation utility for Emacs")
12218 (description "@code{emacs-eimp} allows interactive image manipulation
12219 from within Emacs. It uses the code@{mogrify} utility from ImageMagick to do
12220 the actual transformations.")
12221 (license license:gpl2+))))
12222
12223 (define-public emacs-dired-hacks
12224 (let ((commit "886befe113fae397407c804f72c45613d1d43535")
12225 (revision "2"))
12226 (package
12227 (name "emacs-dired-hacks")
12228 (version (git-version "0.0.1" revision commit))
12229 (source (origin
12230 (method git-fetch)
12231 (uri (git-reference
12232 (url "https://github.com/Fuco1/dired-hacks")
12233 (commit commit)))
12234 (file-name (git-file-name name version))
12235 (sha256
12236 (base32
12237 "1cvibg90ggyrivpjmcfprpi2fx7dpa68f8kzg08s88gw5ib75djl"))))
12238 (build-system emacs-build-system)
12239 (propagated-inputs
12240 `(("emacs-dash" ,emacs-dash)
12241 ("emacs-eimp" ,emacs-eimp)
12242 ("emacs-f" ,emacs-f)
12243 ("emacs-s" ,emacs-s)))
12244 (home-page "https://github.com/Fuco1/dired-hacks")
12245 (synopsis
12246 "Collection of useful dired additions")
12247 (description
12248 "This package provides the following collection of Emacs dired mode
12249 additions:
12250
12251 @itemize
12252 @item dired-avfs
12253 @item dired-columns
12254 @item dired-filter
12255 @item dired-hacks-utils
12256 @item dired-images
12257 @item dired-list
12258 @item dired-narrow
12259 @item dired-open
12260 @item dired-rainbow
12261 @item dired-ranger
12262 @item dired-subtree
12263 @item dired-tagsistant
12264 @end itemize\n")
12265 (license license:gpl3+))))
12266
12267 (define-public emacs-dired-sidebar
12268 (let ((commit "21ccb6723bea69f2e2ca25998268d8a039f904cc")
12269 (revision "1"))
12270 (package
12271 (name "emacs-dired-sidebar")
12272 (home-page "https://github.com/jojojames/dired-sidebar")
12273 (version (git-version "0.1.0" revision commit))
12274 (source (origin
12275 (method git-fetch)
12276 (uri (git-reference (url home-page) (commit commit)))
12277 (file-name (git-file-name name version))
12278 (sha256
12279 (base32
12280 "0mck4qk6srbbf8xnn2sg11j822z4ybxvgavvy402d5sli515i8ca"))))
12281 (build-system emacs-build-system)
12282 (propagated-inputs
12283 `(("emacs-dired-subtree" ,emacs-dired-hacks)))
12284 (synopsis "Sidebar for Emacs using Dired")
12285 (description
12286 "This package provides a sidebar for Emacs similar to @code{NeoTree}
12287 or @code{treemacs}, but leveraging @code{Dired} to do the job of display.")
12288 (license license:gpl3+))))
12289
12290 (define-public emacs-which-key
12291 (package
12292 (name "emacs-which-key")
12293 (version "3.5.0")
12294 (source
12295 (origin
12296 (method git-fetch)
12297 (uri (git-reference
12298 (url "https://github.com/justbur/emacs-which-key")
12299 (commit (string-append "v" version))))
12300 (file-name (git-file-name name version))
12301 (sha256
12302 (base32 "13lgjsm9pwgjsxg7lzc1c9sw2bzssxikfj6grnshqfll8kz8yr4r"))))
12303 (build-system emacs-build-system)
12304 (arguments
12305 `(#:tests? #t
12306 #:test-command '("emacs" "--batch"
12307 "-l" "which-key-tests.el"
12308 "-f" "ert-run-tests-batch-and-exit")))
12309 (home-page "https://github.com/justbur/emacs-which-key")
12310 (synopsis "Display available key bindings in popup")
12311 (description
12312 "@code{emacs-which-key} is a minor mode for Emacs that displays the key
12313 bindings following your currently entered incomplete command (a prefix) in a
12314 popup. For example, after enabling the minor mode if you enter C-x and wait
12315 for the default of 1 second, the minibuffer will expand with all of the
12316 available key bindings that follow C-x (or as many as space allows given your
12317 settings).")
12318 (license license:gpl3+)))
12319
12320 (define-public emacs-hercules
12321 (package
12322 (name "emacs-hercules")
12323 (version "0.2.1")
12324 (source
12325 (origin
12326 (method git-fetch)
12327 (uri (git-reference
12328 (url "https://gitlab.com/jjzmajic/hercules.el.git")
12329 (commit (string-append "v" version))))
12330 (file-name (git-file-name name version))
12331 (sha256
12332 (base32
12333 "19939pf5d6p2facmfhpyghx0vipb5k6ry3bmkmjfkj1zp132zfqf"))))
12334 (build-system emacs-build-system)
12335 (propagated-inputs
12336 `(("emacs-which-key" ,emacs-which-key)))
12337 (home-page "https://gitlab.com/jjzmajic/hercules.el")
12338 (synopsis "Call a chain of related commands without repeated prefix keys")
12339 (description
12340 "This package provides sticky-key-like functionality to obviate the
12341 need for repeated prefix-key sequences, and can reuse existing keymaps. The
12342 list of commands is displayed in a handy popup.")
12343 (license license:gpl3+)))
12344
12345 (define-public emacs-ws-butler
12346 (package
12347 (name "emacs-ws-butler")
12348 (version "0.6")
12349 (source (origin
12350 (method git-fetch)
12351 (uri (git-reference
12352 (url "https://github.com/lewang/ws-butler")
12353 (commit "323b651dd70ee40a25accc940b8f80c3a3185205")))
12354 (file-name (git-file-name name version))
12355 (sha256
12356 (base32
12357 "1a4b0lsmwq84qfx51c5xy4fryhb1ysld4fhgw2vr37izf53379sb"))))
12358 (build-system emacs-build-system)
12359 (native-inputs
12360 `(("ert-runner" ,emacs-ert-runner)))
12361 (arguments
12362 `(#:tests? #t
12363 #:test-command '("ert-runner" "tests")))
12364 (home-page "https://github.com/lewang/ws-butler")
12365 (synopsis "Trim spaces from end of lines")
12366 (description
12367 "This Emacs package automatically and unobtrusively trims whitespace
12368 characters from end of lines.")
12369 (license license:gpl3+)))
12370
12371 (define-public emacs-openwith
12372 (let ((changeset "aeb78782ec87680ea9f082a3f20a3675b3770cf9")
12373 (revision "0"))
12374 (package
12375 (name "emacs-openwith")
12376 (home-page "https://bitbucket.org/jpkotta/openwith")
12377 (version (git-version "0.0.1" revision changeset))
12378 (source (origin
12379 (method hg-fetch)
12380 (uri (hg-reference (url home-page) (changeset changeset)))
12381 (file-name (git-file-name name version))
12382 (sha256
12383 (base32
12384 "1wl6gnxsyhaad4cl9bxjc0qbc5jzvlwbwjbajs0n1s6qr07d6r01"))))
12385 (build-system emacs-build-system)
12386 (synopsis "Open external applications for files with Emacs")
12387 (description
12388 "This package enables you to associate file name patterns with external
12389 applications that are automatically invoked when you use commands like
12390 @code{find-file}. For example, you can have it open @code{png} files with
12391 @code{feh} and @code{mp4} files with @code{mpv}. This is especially useful
12392 when browsing files with Dired.")
12393 (license license:gpl2+))))
12394
12395 (define-public emacs-org-edit-latex
12396 (package
12397 (name "emacs-org-edit-latex")
12398 (version "0.8.0")
12399 (source
12400 (origin
12401 (method git-fetch)
12402 (uri (git-reference
12403 (url "https://github.com/et2010/org-edit-latex")
12404 (commit (string-append "v" version))))
12405 (file-name (git-file-name name version))
12406 (sha256
12407 (base32 "0zcllyhx9n9vcr5w87h0hfz25v52lvh5fi717cb7mf3jh89zh842"))))
12408 (build-system emacs-build-system)
12409 (propagated-inputs
12410 `(("emacs-auctex" ,emacs-auctex)
12411 ;; The version of org in Emacs 25.2 is not sufficient, because the
12412 ;; `org-latex-make-preamble' function is required.
12413 ("emacs-org" ,emacs-org)))
12414 (home-page "https://github.com/et2010/org-edit-latex")
12415 (synopsis "Edit a latex fragment just like editing a src block")
12416 (description "@code{emacs-org-edit-latex} is an extension for org-mode.
12417 It lets you edit a latex fragment in a dedicated buffer just like editing a
12418 src block.")
12419 (license license:gpl3+)))
12420
12421 (define-public emacs-emamux
12422 (package
12423 (name "emacs-emamux")
12424 (version "0.14")
12425 (source
12426 (origin
12427 (method git-fetch)
12428 (uri (git-reference
12429 (url "https://github.com/syohex/emacs-emamux")
12430 (commit version)))
12431 (file-name (git-file-name name version))
12432 (sha256
12433 (base32 "19y69qw79miim9cz5ji54gwspjkcp9g2c1xr5s7jj2fiabnxax6b"))))
12434 (build-system emacs-build-system)
12435 (home-page "https://github.com/syohex/emacs-emamux")
12436 (synopsis "Manipulate Tmux from Emacs")
12437 (description
12438 "@code{emacs-emamux} lets Emacs interact with the @code{tmux} terminal
12439 multiplexer.")
12440 (license license:gpl3+)))
12441
12442 (define-public emacs-rpm-spec-mode
12443 (package
12444 (name "emacs-rpm-spec-mode")
12445 (version "0.16")
12446 (source
12447 (origin
12448 (method url-fetch)
12449 ;; URI has the Fedora release number instead of the version
12450 ;; number. This will have to updated manually every new release.
12451 (uri (string-append
12452 "https://src.fedoraproject.org/cgit/rpms"
12453 "/emacs-rpm-spec-mode.git/snapshot"
12454 "/emacs-rpm-spec-mode-f26.tar.gz"))
12455 (sha256
12456 (base32
12457 "17dz80lhjrc89fj17pysl8slahzrqdkxgcjdk55zls6jizkr6kz3"))))
12458 (build-system emacs-build-system)
12459 (home-page "http://pkgs.fedoraproject.org/cgit/rpms/emacs-rpm-spec-mode.git")
12460 (synopsis "Emacs major mode for editing RPM spec files")
12461 (description "@code{emacs-rpm-spec-mode} provides an Emacs major mode for
12462 editing RPM spec files.")
12463 (license license:gpl2+)))
12464
12465 (define-public emacs-lcr
12466 (package
12467 (name "emacs-lcr")
12468 (version "1.1")
12469 (source
12470 (origin
12471 (method git-fetch)
12472 (uri (git-reference
12473 (url "https://github.com/jyp/lcr")
12474 (commit version)))
12475 (file-name (git-file-name name version))
12476 (sha256
12477 (base32 "0mc55icihxqpf8b05990q1lc2nj2792wcgyr73xsiqx0963sjaj8"))))
12478 (build-system emacs-build-system)
12479 (propagated-inputs
12480 `(("emacs-dash" ,emacs-dash)))
12481 (home-page "https://github.com/jyp/lcr")
12482 (synopsis "Lightweight coroutines in Emacs Lisp")
12483 (description "This package provides macros that can translate code into
12484 equivalent continuation-passing code, as well as miscellaneous utility
12485 functions written in continuation-passing style.")
12486 (license license:gpl3+)))
12487
12488 (define-public emacs-attrap
12489 (let ((commit "18cd1f7832870a36c404e872fa83a271fe8e688d")
12490 (revision "2"))
12491 (package
12492 (name "emacs-attrap")
12493 (version (git-version "1.0" revision commit))
12494 (source (origin
12495 (method git-fetch)
12496 (uri (git-reference
12497 (url "https://github.com/jyp/attrap")
12498 (commit commit)))
12499 (sha256
12500 (base32
12501 "078391949h0fgmshin8f79a1a595m06ig577rkgjqgngcp0d61l9"))
12502 (file-name (git-file-name name version))))
12503 (build-system emacs-build-system)
12504 (propagated-inputs
12505 `(("emacs-dash" ,emacs-dash)
12506 ("emacs-f" ,emacs-f)
12507 ("emacs-flycheck" ,emacs-flycheck)
12508 ("emacs-s" ,emacs-s)))
12509 (home-page "https://github.com/jyp/attrap")
12510 (synopsis "Fix coding error at point")
12511 (description "This package provides a command to fix the Flycheck error
12512 at point.")
12513 (license license:gpl3+))))
12514
12515 (define-public emacs-git-messenger
12516 (package
12517 (name "emacs-git-messenger")
12518 (version "0.18")
12519 (source
12520 (origin
12521 (method git-fetch)
12522 (uri (git-reference
12523 (url "https://github.com/syohex/emacs-git-messenger")
12524 (commit version)))
12525 (file-name (git-file-name name version))
12526 (sha256
12527 (base32 "04fnby2nblk8l70gv09asxkmnn53fh1pdfs77ix44npp99fyw8ix"))))
12528 (build-system emacs-build-system)
12529 (propagated-inputs
12530 `(("emacs-popup" ,emacs-popup)))
12531 (arguments
12532 `(#:tests? #t
12533 #:test-command '("emacs" "--batch" "-l" "test/test.el"
12534 "-f" "ert-run-tests-batch-and-exit")))
12535 (home-page "https://github.com/syohex/emacs-git-messenger")
12536 (synopsis "Popup commit message at current line")
12537 (description "@code{emacs-git-messenger} provides
12538 @code{git-messenger:popup-message}, a function that when called, will popup
12539 the last git commit message for the current line. This uses git-blame
12540 internally.")
12541 (license license:gpl3+)))
12542
12543 (define-public emacs-gitpatch
12544 (package
12545 (name "emacs-gitpatch")
12546 (version "0.5.1")
12547 (source
12548 (origin
12549 (method git-fetch)
12550 (uri (git-reference
12551 (url "https://github.com/tumashu/gitpatch")
12552 (commit (string-append "v" version))))
12553 (file-name (git-file-name name version))
12554 (sha256
12555 (base32 "1drf4fvmak7brf16axkh4nfz8pg44i7pjhfjz3dbkycbpp8y5vig"))))
12556 (build-system emacs-build-system)
12557 (home-page "https://github.com/tumashu/gitpatch")
12558 (synopsis "Mail git patch from Emacs")
12559 (description "@code{emacs-gitpatch} lets users easily send git patches,
12560 created by @code{git format-patch}, from @code{magit}, @code{dired} and
12561 @code{ibuffer} buffers.")
12562 (license license:gpl3+)))
12563
12564 (define-public emacs-erc-hl-nicks
12565 (package
12566 (name "emacs-erc-hl-nicks")
12567 (version "1.3.4")
12568 (source
12569 (origin
12570 (method git-fetch)
12571 (uri (git-reference
12572 (url "https://github.com/leathekd/erc-hl-nicks")
12573 (commit version)))
12574 (file-name (git-file-name name version))
12575 (sha256
12576 (base32 "0k57scxa8rm859fqsm8srhps7rlq06jzazhjbwnadzrh8i5fyvra"))))
12577 (build-system emacs-build-system)
12578 (synopsis "Nickname highlighting for Emacs ERC")
12579 (description "@code{erc-hl-nicks} highlights nicknames in ERC, an IRC
12580 client for Emacs. The main features are:
12581 @itemize
12582 @item Auto-colorizes nicknames without having to specify colors
12583 @item Ignores certain characters that IRC clients add to nicknames to avoid
12584 duplicates (nickname, nickname’, nickname\", etc.)
12585 @item Attempts to produce colors with a sufficient amount of contrast between
12586 the nick color and the background color
12587 @end itemize\n")
12588 (home-page "https://github.com/leathekd/erc-hl-nicks")
12589 (license license:gpl3+)))
12590
12591 (define-public emacs-engine-mode
12592 (package
12593 (name "emacs-engine-mode")
12594 (version "2.1.1")
12595 (source
12596 (origin
12597 (method git-fetch)
12598 (uri (git-reference
12599 (url "https://github.com/hrs/engine-mode")
12600 (commit (string-append "v" version))))
12601 (file-name (git-file-name name version))
12602 (sha256
12603 (base32 "1xka8i4cdvp5r2v2mkli1zz17x1sdsnmszbhqav2rf94v656d91i"))))
12604 (build-system emacs-build-system)
12605 (synopsis "Minor mode for defining and querying search engines")
12606 (description "@code{engine-mode} is a global minor mode for Emacs. It
12607 enables you to easily define search engines, bind them to keybindings, and
12608 query them from the comfort of your editor.")
12609 (home-page "https://github.com/hrs/engine-mode")
12610 (license license:gpl3+)))
12611
12612 (define-public emacs-prop-menu
12613 (package
12614 (name "emacs-prop-menu")
12615 (version "0.1.2")
12616 (source
12617 (origin
12618 (method git-fetch)
12619 (uri (git-reference
12620 (url "https://github.com/david-christiansen/prop-menu-el")
12621 (commit version)))
12622 (file-name (git-file-name name version))
12623 (sha256
12624 (base32
12625 "18ap2liz5r5a8ja2zz9182fnfm47jnsbyblpq859zks356k37iwc"))))
12626 (build-system emacs-build-system)
12627 (home-page
12628 "https://github.com/david-christiansen/prop-menu-el")
12629 (synopsis
12630 "Create and display a context menu based on text and overlay properties")
12631 (description
12632 "This is a library for computing context menus based on text
12633 properties and overlays. The intended use is to have tools that
12634 annotate source code and others that use these annotations, without
12635 requiring a direct coupling between them, but maintaining
12636 discoverability.
12637
12638 Major modes that wish to use this library should first define an
12639 appropriate value for @code{prop-menu-item-functions}. Then, they should
12640 bind @code{prop-menu-by-completing-read} to an appropriate
12641 key. Optionally, a mouse pop-up can be added by binding
12642 @code{prop-menu-show-menu} to a mouse event.")
12643 (license license:gpl3+)))
12644
12645 (define-public emacs-idris-mode
12646 (let ((commit "b77eadd8ac2048d5c882b4464bd9673e45dd6a59")
12647 (revision "0"))
12648 (package
12649 (name "emacs-idris-mode")
12650 (version (git-version "1.0" revision commit))
12651 (source
12652 (origin
12653 (method git-fetch)
12654 (uri (git-reference
12655 (url "https://github.com/idris-hackers/idris-mode")
12656 (commit commit)))
12657 (file-name (git-file-name name commit))
12658 (sha256
12659 (base32
12660 "1v8av6jza1j00ln75zjwaca0vmmv0fhhhi94p84rlfzgzykyb9g1"))))
12661 (build-system emacs-build-system)
12662 (propagated-inputs
12663 `(("emacs-prop-menu" ,emacs-prop-menu)))
12664 (home-page
12665 "https://github.com/idris-hackers/idris-mode")
12666 (synopsis "Major mode for editing Idris code")
12667 (description
12668 "This is an Emacs mode for editing Idris code. It is compatible with
12669 the latest versions of Idris 1.")
12670 (license license:gpl3+))))
12671
12672 (define-public emacs-browse-at-remote
12673 (package
12674 (name "emacs-browse-at-remote")
12675 (version "0.14.0")
12676 (source
12677 (origin
12678 (method git-fetch)
12679 (uri (git-reference
12680 (url "https://github.com/rmuslimov/browse-at-remote")
12681 (commit version)))
12682 (file-name (git-file-name name version))
12683 (sha256
12684 (base32 "0bx4ns0jb0sqrjk1nsspvl3mhz3n12925azf7brlwb1vcgnji09v"))))
12685 (build-system emacs-build-system)
12686 (propagated-inputs
12687 `(("emacs-f" ,emacs-f)
12688 ("emacs-s" ,emacs-s)))
12689 (native-inputs
12690 `(("ert-runner" ,emacs-ert-runner)))
12691 (arguments
12692 `(#:tests? #t
12693 #:test-command '("ert-runner")))
12694 (home-page "https://github.com/rmuslimov/browse-at-remote")
12695 (synopsis "Open github/gitlab/bitbucket/stash page from Emacs")
12696 (description
12697 "This Emacs package allows you to open a target page on
12698 github/gitlab (or bitbucket) by calling @code{browse-at-remote} command.
12699 It supports dired buffers and opens them in tree mode at destination.")
12700 (license license:gpl3+)))
12701
12702 (define-public emacs-tiny
12703 (let ((commit "fd8a6b0b0c564d8242259e20e557ee6041f40908")
12704 (revision "1"))
12705 (package
12706 (name "emacs-tiny")
12707 (version (git-version "0.2.1" revision commit))
12708 (source
12709 (origin
12710 (method git-fetch)
12711 (uri (git-reference
12712 (url "https://github.com/abo-abo/tiny")
12713 (commit commit)))
12714 (file-name (git-file-name name version))
12715 (sha256
12716 (base32
12717 "1498j392ap2mk4zmsm2id16pfgvj78r428da9vw7hdrzzibai2cx"))))
12718 (build-system emacs-build-system)
12719 (arguments
12720 `(#:tests? #t
12721 #:test-command '("make" "test")))
12722 (home-page "https://github.com/abo-abo/tiny")
12723 (synopsis "Quickly generate linear ranges in Emacs")
12724 (description
12725 "The main command of the @code{tiny} extension for Emacs is @code{tiny-expand}.
12726 It is meant to quickly generate linear ranges, e.g. 5, 6, 7, 8. Some elisp
12727 proficiency is an advantage, since you can transform your numeric range with
12728 an elisp expression.")
12729 (license license:gpl3+))))
12730
12731 (define-public emacs-emojify
12732 (package
12733 (name "emacs-emojify")
12734 (version "1.2")
12735 (source
12736 (origin
12737 (method git-fetch)
12738 (uri (git-reference
12739 (url "https://github.com/iqbalansari/emacs-emojify")
12740 (commit (string-append "v" version))))
12741 (file-name (git-file-name name version))
12742 (sha256
12743 (base32
12744 "1fqnj5x7ivjkm5y927dqqnm85q5hzczlb0hrfpjalrhasa6ijsrm"))))
12745 (build-system emacs-build-system)
12746 (arguments
12747 `(#:include (cons "^data/" %default-include)))
12748 (propagated-inputs
12749 `(("emacs-ht" ,emacs-ht)))
12750 (home-page "https://github.com/iqbalansari/emacs-emojify")
12751 (synopsis "Display emojis in Emacs")
12752 (description "This package displays emojis in Emacs similar to how Github,
12753 Slack, and other websites do. It can display plain ASCII like @code{:)} as
12754 well as Github-style emojis like @code{:smile:}. It provides a minor mode
12755 @code{emojify-mode} to enable the display of emojis in a buffer.")
12756 (license license:gpl3+)))
12757
12758 (define-public emacs-make-it-so
12759 (let ((commit "b73dfb640588123c9eece230ad72b37604f5c126")
12760 (revision "2"))
12761 (package
12762 (name "emacs-make-it-so")
12763 (version (git-version "0.1.0" revision commit))
12764 (source
12765 (origin
12766 (method git-fetch)
12767 (uri (git-reference
12768 (url "https://github.com/abo-abo/make-it-so")
12769 (commit commit)))
12770 (file-name (git-file-name name version))
12771 (sha256
12772 (base32
12773 "0p6xhyinzzkrwzbpxqfm8hlii0ikvmmylya240bwsa77w0g1k6xq"))))
12774 (build-system emacs-build-system)
12775 (arguments
12776 `(#:include (cons "^recipes/" %default-include)))
12777 (propagated-inputs
12778 `(("emacs-ivy" ,emacs-ivy)))
12779 (home-page "https://github.com/abo-abo/make-it-so")
12780 (synopsis "Transform files with Makefile recipes")
12781 (description "This package provides an interface for selecting from
12782 different conversion recipes, often including tools like @code{ffmpeg} or
12783 @code{convert}. The conversion command need only be written once, and
12784 subsequent invocations can be readily customized. Several recipes are
12785 included by default, and more can be readily added.")
12786 (license license:gpl3+))))
12787
12788 (define-public emacs-unidecode
12789 (let ((commit "5502ada9287b4012eabb879f12f5b0a9df52c5b7")
12790 (revision "1"))
12791 (package
12792 (name "emacs-unidecode")
12793 (version (git-version "0.2" revision commit))
12794 (source
12795 (origin
12796 (method git-fetch)
12797 (uri (git-reference
12798 (url "https://github.com/sindikat/unidecode")
12799 (commit commit)))
12800 (file-name (git-file-name name version))
12801 (sha256
12802 (base32
12803 "03x3nakbhmakwm977mwrf8jifvjnfwzpjv6wrwpizbqjnkgfchmn"))))
12804 (build-system emacs-build-system)
12805 (arguments
12806 `(#:include (cons* "^tools/" "^data/" %default-include)
12807 #:tests? #t
12808 #:test-command '("emacs" "--batch"
12809 "-l" "unidecode-test.el"
12810 "-f" "ert-run-tests-batch-and-exit")
12811 #:phases
12812 (modify-phases %standard-phases
12813 (add-before 'check 'make-tests-writable
12814 (lambda _
12815 (make-file-writable "unidecode-test.el")
12816 #t))
12817 (add-before 'check 'add-require
12818 (lambda _
12819 (emacs-batch-edit-file "unidecode-test.el"
12820 `(progn (progn (goto-char (point-min))
12821 (re-search-forward
12822 "ert-deftest")
12823 (forward-line -1)
12824 (insert "(require 'unidecode)"))
12825 (basic-save-buffer)))
12826 #t)))))
12827 (home-page "https://github.com/sindikat/unidecode")
12828 (synopsis "Transliterate Unicode text to ASCII")
12829 (description "This package provides functions for converting Unicode to ASCII.")
12830 (license license:gpl2+))))
12831
12832 (define-public emacs-pubmed
12833 (package
12834 (name "emacs-pubmed")
12835 (version "0.2.1")
12836 (source
12837 (origin
12838 (method git-fetch)
12839 (uri (git-reference
12840 (url "https://gitlab.com/fvdbeek/emacs-pubmed.git")
12841 (commit (string-append "v" version))))
12842 (file-name (git-file-name name version))
12843 (sha256
12844 (base32
12845 "15bwjxc7g43m5pi8z17anaqqkvi209r7kk1chmf175477gvrv7c0"))))
12846 (build-system emacs-build-system)
12847 (propagated-inputs
12848 `(("emacs-deferred" ,emacs-deferred)
12849 ("emacs-esxml" ,emacs-esxml)
12850 ("emacs-s" ,emacs-s)
12851 ("emacs-unidecode" ,emacs-unidecode)))
12852 (home-page "https://gitlab.com/fvdbeek/emacs-pubmed")
12853 (synopsis "Interface to PubMed")
12854 (description "This package provides an Emacs interface to the PubMed
12855 database of references on life sciences.")
12856 (license license:gpl3+)))
12857
12858 (define-public emacs-websocket
12859 (package
12860 (name "emacs-websocket")
12861 (version "1.12")
12862 (source
12863 (origin
12864 (method url-fetch)
12865 (uri (string-append "https://elpa.gnu.org/packages/"
12866 "websocket-" version ".tar"))
12867 (sha256
12868 (base32 "0ap4z80c6pzpb69wrx0hsvwzignxmd2b9xy974by9gf5xm2wpa8w"))))
12869 (build-system emacs-build-system)
12870 (home-page "https://elpa.gnu.org/packages/websocket.html")
12871 (synopsis "Emacs WebSocket client and server")
12872 (description
12873 "This is an Elisp library for WebSocket clients to talk to WebSocket
12874 servers, and for WebSocket servers to accept connections from WebSocket
12875 clients. This library is designed to be used by other library writers, to
12876 write applications that use WebSockets, and is not useful by itself.")
12877 (license license:gpl3+)))
12878
12879 (define-public emacs-oauth2
12880 (package
12881 (name "emacs-oauth2")
12882 (version "0.15")
12883 (source
12884 (origin
12885 (method url-fetch)
12886 (uri (string-append "https://elpa.gnu.org/packages/"
12887 "oauth2-" version ".el"))
12888 (sha256
12889 (base32 "0ij17g6i8d4cyzc8v6sy2qglwhzd767331gavll6d507krdh3ca3"))))
12890 (build-system emacs-build-system)
12891 (home-page "https://elpa.gnu.org/packages/oauth2.html")
12892 (synopsis "OAuth 2.0 authorization protocol implementation")
12893 (description
12894 "This package provides an Elisp implementation of the OAuth 2.0 draft.
12895 The main entry point is @code{oauth2-auth-and-store} which will return a token
12896 structure. This token structure can be then used with
12897 @code{oauth2-url-retrieve-synchronously} or @code{oauth2-url-retrieve} to
12898 retrieve any data that need OAuth authentication to be accessed. If the token
12899 needs to be refreshed, the code handles it automatically and stores the new
12900 value of the access token.")
12901 (license license:gpl3+)))
12902
12903 (define-public emacs-auth-source-xoauth2
12904 (package
12905 (name "emacs-auth-source-xoauth2")
12906 (version "1.0")
12907 (source
12908 (origin
12909 (method git-fetch)
12910 (uri (git-reference
12911 (url "https://github.com/ccrusius/auth-source-xoauth2")
12912 (commit (string-append "v" version))))
12913 (file-name (git-file-name name version))
12914 (sha256
12915 (base32 "0nl859csl8xcd6ybpjj15ph8l8fxwkwf45kbylss68alkyf1rl3v"))))
12916 (build-system emacs-build-system)
12917 (home-page "https://github.com/ccrusius/auth-source-xoauth2")
12918 (synopsis "XOAuth2 authentication capabilities for Emacs auth-source")
12919 (description
12920 "This package adds XOAuth2 authentication capabilities to Emacs
12921 auth-source. This integration requires some preliminary work on the users’
12922 part, which includes creating tokens.")
12923 (license license:asl2.0)))
12924
12925 (define-public emacs-circe
12926 (package
12927 (name "emacs-circe")
12928 (version "2.11")
12929 (source
12930 (origin
12931 (method git-fetch)
12932 (uri (git-reference
12933 (url "https://github.com/jorgenschaefer/circe")
12934 (commit (string-append "v" version))))
12935 (file-name (git-file-name name version))
12936 (sha256
12937 (base32 "0cr9flk310yn2jgvj4hbqw9nj5wlfi0fazdkqafzidgz6iq150wd"))))
12938 (build-system emacs-build-system)
12939 (arguments
12940 `(#:tests? #t
12941 #:test-command '("buttercup" "-L" ".")
12942 #:phases
12943 (modify-phases %standard-phases
12944 ;; The HOME environment variable should be set to an existing
12945 ;; directory for the tests to succeed.
12946 (add-before 'check 'set-home
12947 (lambda _
12948 (setenv "HOME" "/tmp")
12949 #t)))))
12950 (native-inputs
12951 `(("emacs-buttercup" ,emacs-buttercup)))
12952 ;; In order to securely connect to an IRC server using TLS, Circe requires
12953 ;; the GnuTLS binary.
12954 (propagated-inputs
12955 `(("gnutls" ,gnutls)))
12956 (home-page "https://github.com/jorgenschaefer/circe")
12957 (synopsis "Client for IRC in Emacs")
12958 (description "Circe is a Client for IRC in Emacs. It integrates well with
12959 the rest of the editor, using standard Emacs key bindings and indicating
12960 activity in channels in the status bar so it stays out of your way unless you
12961 want to use it.")
12962 (license license:gpl3+)))
12963
12964 (define-public emacs-tracking
12965 (package
12966 (inherit emacs-circe)
12967 (name "emacs-tracking")
12968 (arguments
12969 ;; "tracking.el" is a library extracted from Circe package. It requires
12970 ;; "shorten.el".
12971 `(#:include '("^shorten.el$" "^tracking.el$")
12972 ,@(package-arguments emacs-circe)))
12973 (home-page "https://github.com/jorgenschaefer/circe/wiki/Tracking")
12974 (synopsis "Buffer tracking library")
12975 (description "@code{tracking.el} provides a way for different modes to
12976 notify the user that a buffer needs attention. The user then can cycle
12977 through them using @key{C-c C-SPC}.")
12978 (license license:gpl3+)))
12979
12980 (define-public emacs-slack
12981 (let ((commit "a6d9f49bc6161f12c594d25254e77eedf4a67666")
12982 (revision "8"))
12983 (package
12984 (name "emacs-slack")
12985 (version (git-version "0.0.2" revision commit))
12986 (source (origin
12987 (method git-fetch)
12988 (uri (git-reference
12989 (url "https://github.com/yuya373/emacs-slack")
12990 (commit commit)))
12991 (file-name (git-file-name name commit))
12992 (sha256
12993 (base32
12994 "0crjjankqi4bqjk5pdz4r2ixf56n1nnq8ab1gz3sbl3v6as6262w"))))
12995 (build-system emacs-build-system)
12996 (arguments
12997 `(#:phases
12998 (modify-phases %standard-phases
12999 ;; HOME needs to exist for source compilation.
13000 (add-before 'build 'set-HOME
13001 (lambda _ (setenv "HOME" "/tmp") #t)))))
13002 (propagated-inputs
13003 `(("emacs-alert" ,emacs-alert)
13004 ("emacs-emojify" ,emacs-emojify)
13005 ("emacs-helm" ,emacs-helm)
13006 ("emacs-request" ,emacs-request)
13007 ("emacs-websocket" ,emacs-websocket)
13008 ("emacs-oauth2" ,emacs-oauth2)
13009 ("emacs-circe" ,emacs-circe)))
13010 (home-page "https://github.com/yuya373/emacs-slack")
13011 (synopsis "Slack client for Emacs")
13012 (description "This package provides an Emacs client for the Slack
13013 messaging service.")
13014 (license license:gpl3+))))
13015
13016 (define-public emacs-bash-completion
13017 (package
13018 (name "emacs-bash-completion")
13019 (version "3.1.0")
13020 (source
13021 (origin
13022 (method git-fetch)
13023 (uri (git-reference
13024 (url "https://github.com/szermatt/emacs-bash-completion")
13025 (commit (string-append "v" version))))
13026 (file-name (git-file-name name version))
13027 (sha256
13028 (base32 "11j2k3irixp47r2iglxdmjphahqhgnxg98n2xwagwzyq99lsamj4"))))
13029 (inputs `(("bash" ,bash)))
13030 (build-system emacs-build-system)
13031 (arguments
13032 `(#:phases
13033 (modify-phases %standard-phases
13034 (add-after 'unpack 'make-git-checkout-writable
13035 (λ _
13036 (for-each make-file-writable (find-files "."))
13037 #t))
13038 (add-before 'install 'configure
13039 (lambda* (#:key inputs #:allow-other-keys)
13040 (let ((bash (assoc-ref inputs "bash")))
13041 (emacs-substitute-variables "bash-completion.el"
13042 ("bash-completion-prog" (string-append bash "/bin/bash"))))
13043 #t)))))
13044 (home-page "https://github.com/szermatt/emacs-bash-completion")
13045 (synopsis "Bash completion for the shell buffer")
13046 (description
13047 "@code{bash-completion} defines dynamic completion hooks for shell-mode
13048 and shell-command prompts that are based on Bash completion.")
13049 (license license:gpl2+)))
13050
13051 (define-public emacs-easy-kill
13052 (package
13053 (name "emacs-easy-kill")
13054 (version "0.9.3")
13055 (source (origin
13056 (method url-fetch)
13057 (uri (string-append "https://elpa.gnu.org/packages/easy-kill-"
13058 version ".tar"))
13059 (sha256
13060 (base32
13061 "17nw0mglmg877axwg1d0gs03yc0p04lzmd3pl0nsnqbh3303fnqb"))))
13062 (build-system emacs-build-system)
13063 (home-page "https://github.com/leoliu/easy-kill")
13064 (synopsis "Kill and mark things easily in Emacs")
13065 (description
13066 "This package provides commands @code{easy-kill} and @code{easy-mark} to
13067 let users kill or mark things easily.")
13068 (license license:gpl3+)))
13069
13070 (define-public emacs-csv-mode
13071 (package
13072 (name "emacs-csv-mode")
13073 (version "1.12")
13074 (source
13075 (origin
13076 (method url-fetch)
13077 (uri (string-append "https://elpa.gnu.org/packages/"
13078 "csv-mode-" version ".tar"))
13079 (sha256
13080 (base32 "0bya12smlrzwv4cbcmch4kg1fazp4k0ndrh1z17ix9p8c14d0v1j"))))
13081 (build-system emacs-build-system)
13082 (home-page "https://elpa.gnu.org/packages/csv-mode.html")
13083 (synopsis "Major mode for editing comma/char separated values")
13084 (description
13085 "This Emacs package implements CSV mode, a major mode for editing records
13086 in a generalized CSV (character-separated values) format.")
13087 (license license:gpl3+)))
13088
13089 (define-public emacs-transmission
13090 (package
13091 (name "emacs-transmission")
13092 (version "0.12.1")
13093 (source
13094 (origin
13095 (method git-fetch)
13096 (uri (git-reference
13097 (url "https://github.com/holomorph/transmission")
13098 (commit version)))
13099 (file-name (git-file-name name version))
13100 (sha256
13101 (base32 "0kvg2gawsgy440x1fsl2c4pkxwp3zirq9rzixanklk0ryijhd3ry"))))
13102 (build-system emacs-build-system)
13103 (home-page "https://github.com/holomorph/transmission")
13104 (synopsis "Emacs interface to a Transmission session")
13105 (description "This package provides an Emacs interface to interact with a
13106 running session of the Transmission Bittorrent client.
13107
13108 Features:
13109
13110 @itemize
13111 @item List, add, start/stop, verify, remove torrents.
13112 @item Set speed limits, ratio limits, bandwidth priorities, trackers.
13113 @item Navigate to the corresponding file list, torrent info, peer info
13114 contexts.
13115 @item Toggle downloading and set priorities for individual files.
13116 @end itemize\n")
13117 (license license:gpl3+)))
13118
13119 (define-public emacs-polymode
13120 (package
13121 (name "emacs-polymode")
13122 (version "0.2")
13123 (source (origin
13124 (method git-fetch)
13125 (uri (git-reference
13126 (url "https://github.com/polymode/polymode")
13127 (commit (string-append "v" version))))
13128 (file-name (git-file-name name version))
13129 (sha256
13130 (base32
13131 "04v0gnzfsjb50bgly6kvpryx8cyzwjaq2llw4qv9ijw1l6ixmq3b"))))
13132 (build-system emacs-build-system)
13133 (home-page "https://github.com/polymode/polymode")
13134 (synopsis "Framework for multiple Emacs modes based on indirect buffers")
13135 (description
13136 "Polymode is an Emacs package that offers generic support for multiple
13137 major modes inside a single Emacs buffer. It is lightweight, object oriented
13138 and highly extensible. Creating a new polymode typically takes only a few
13139 lines of code. Polymode also provides extensible facilities for external
13140 literate programming tools for exporting, weaving and tangling.")
13141 (license license:gpl3+)))
13142
13143 (define-public emacs-polymode-ansible
13144 (let ((commit "b26094d029e25dc797b94254f797e7807a57e4c8"))
13145 (package
13146 (name "emacs-polymode-ansible")
13147 ;; No upstream version release yet.
13148 (version (git-version "0.1" "1" commit))
13149 (source
13150 (origin
13151 (method git-fetch)
13152 (uri (git-reference
13153 (url "https://gitlab.com/mavit/poly-ansible")
13154 (commit commit)))
13155 (file-name (git-file-name name version))
13156 (sha256
13157 (base32
13158 "055shddqibib3hx2ykwdz910nrqws40cd407mq946l2bf6v87gj6"))))
13159 (build-system emacs-build-system)
13160 (propagated-inputs
13161 `(("emacs-ansible-doc" ,emacs-ansible-doc)
13162 ("emacs-jinja2-mode" ,emacs-jinja2-mode)
13163 ("emacs-polymode" ,emacs-polymode)
13164 ("emacs-yaml-mode" ,emacs-yaml-mode)))
13165 (properties '((upstream-name . "poly-ansible")))
13166 (home-page "https://gitlab.com/mavit/poly-ansible/")
13167 (synopsis "Polymode for Ansible - Jinja2 in YAML")
13168 (description
13169 "Edit YAML files for Ansible containing embedded Jinja2 templating.")
13170 (license license:gpl3+))))
13171
13172 (define-public emacs-polymode-org
13173 (package
13174 (name "emacs-polymode-org")
13175 (version "0.2")
13176 (source
13177 (origin
13178 (method git-fetch)
13179 (uri (git-reference
13180 (url "https://github.com/polymode/poly-org")
13181 (commit (string-append "v" version))))
13182 (file-name (git-file-name name version))
13183 (sha256
13184 (base32
13185 "04x6apjad4kg30456z1j4ipp64yjgkcaim6hqr6bb0rmrianqhck"))))
13186 (build-system emacs-build-system)
13187 (propagated-inputs
13188 `(("emacs-polymode" ,emacs-polymode)))
13189 (properties '((upstream-name . "poly-org")))
13190 (home-page "https://github.com/polymode/poly-org")
13191 (synopsis "Polymode definitions for Org mode buffers")
13192 (description
13193 "Provides definitions for @code{emacs-polymode} to support
13194 @code{emacs-org} buffers. Edit source blocks in an Org mode buffer using the
13195 native modes of the blocks' languages while remaining inside the primary Org
13196 buffer.")
13197 (license license:gpl3+)))
13198
13199 (define-public eless
13200 (package
13201 (name "eless")
13202 (version "0.3")
13203 (source
13204 (origin
13205 (method git-fetch)
13206 (uri (git-reference
13207 (url "https://github.com/kaushalmodi/eless")
13208 (commit (string-append "v" version))))
13209 (file-name (git-file-name name version))
13210 (sha256
13211 (base32 "0jr7vhh4vw69llhi0fh9ljscljkszkj0acdxl04da5hvqv6pnqbb"))))
13212 (build-system trivial-build-system)
13213 (inputs
13214 `(("bash" ,bash)))
13215 (arguments
13216 `(#:modules ((guix build utils))
13217 #:builder
13218 (begin
13219 (use-modules (guix build utils))
13220 (copy-recursively (assoc-ref %build-inputs "source") "source")
13221 (chdir "source")
13222 (substitute* "eless" (("/usr/bin/env bash")
13223 (string-append (assoc-ref %build-inputs "bash")
13224 "/bin/bash")))
13225 (install-file "eless" (string-append %output "/bin"))
13226 (install-file "doc/eless.info" (string-append %output "/share/info"))
13227 #t)))
13228 (home-page "https://github.com/kaushalmodi/eless")
13229 (synopsis "Use Emacs as a paginator")
13230 (description "@code{eless} provides a combination of Bash script
13231 and a minimal Emacs view-mode.
13232
13233 Features:
13234
13235 @itemize
13236 @item Independent of a user’s Emacs config.
13237 @item Customizable via the @code{(locate-user-emacs-file \"elesscfg\")} config.
13238 @item Not require an Emacs server to be already running.
13239 @item Syntax highlighting.
13240 @item Org-mode file rendering.
13241 @item @code{man} page viewer.
13242 @item Info viewer.
13243 @item Dired, wdired, (batch edit symbolic links).
13244 @item Colored diffs, git diff, git log, ls with auto ANSI detection.
13245 @item Filter log files lines matching a regexp.
13246 @item Auto-revert log files similar to @code{tail -f}.
13247 @item Quickly change frame and font sizes.
13248 @end itemize\n")
13249 (license license:expat)))
13250
13251 (define-public emacs-evil-matchit
13252 (package
13253 (name "emacs-evil-matchit")
13254 (version "2.3.4")
13255 (source
13256 (origin
13257 (method git-fetch)
13258 (uri (git-reference
13259 (url "https://github.com/redguardtoo/evil-matchit")
13260 (commit version)))
13261 (file-name (git-file-name name version))
13262 (sha256
13263 (base32 "1nflkmx08n3ya5vaipy1xg19hnqcp6f7ddsx9xjh5gl6ix2iz0az"))))
13264 (build-system emacs-build-system)
13265 (propagated-inputs
13266 `(("emacs-evil" ,emacs-evil)))
13267 (home-page "https://github.com/redguardtoo/evil-matchit")
13268 (synopsis "Vim matchit ported into Emacs")
13269 (description
13270 "@code{evil-matchit} is a minor mode for jumping between matching tags in
13271 evil mode using @kbd{%}. It is a port of @code{matchit} for Vim.")
13272 (license license:gpl3+)))
13273
13274 (define-public emacs-evil-smartparens
13275 (package
13276 (name "emacs-evil-smartparens")
13277 (version "0.4.0")
13278 (source
13279 (origin
13280 (method git-fetch)
13281 (uri (git-reference
13282 (url "https://github.com/expez/evil-smartparens")
13283 (commit version)))
13284 (file-name (git-file-name name version))
13285 (sha256
13286 (base32 "1di4qz5fbrlwbg16c2j0m7y8zqfxw027qd7zqmc3rwk9znbhg7wl"))))
13287 (build-system emacs-build-system)
13288 (propagated-inputs
13289 `(("emacs-evil" ,emacs-evil)
13290 ("emacs-smartparens" ,emacs-smartparens)))
13291 (home-page "https://github.com/expez/evil-smartparens")
13292 (synopsis "Emacs Evil integration for Smartparens")
13293 (description "@code{emacs-evil-smartparens} is an Emacs minor mode which
13294 makes Evil play nice with Smartparens. Evil is an Emacs minor mode that
13295 emulates Vim features and provides Vim-like key bindings.")
13296 (license license:gpl3+)))
13297
13298 (define-public emacs-evil-quickscope
13299 (package
13300 (name "emacs-evil-quickscope")
13301 (version "0.1.4")
13302 (source
13303 (origin
13304 (method git-fetch)
13305 (uri (git-reference
13306 (url "https://github.com/blorbx/evil-quickscope")
13307 (commit (string-append "v" version))))
13308 (file-name (git-file-name name version))
13309 (sha256
13310 (base32 "1ja9ggj70wf0nmma4xnc1zdzg2crq9h1cv3cj7cgwjmllflgkfq7"))))
13311 (build-system emacs-build-system)
13312 (propagated-inputs
13313 `(("emacs-evil" ,emacs-evil)))
13314 (arguments
13315 `(#:tests? #t
13316 #:test-command '("emacs" "--batch"
13317 "-l" "evil-quickscope-tests.el"
13318 "-f" "ert-run-tests-batch-and-exit")))
13319 (home-page "https://github.com/blorbx/evil-quickscope")
13320 (synopsis "Target highlighting for emacs evil-mode f,F,t and T commands")
13321 (description "@code{emacs-evil-quickscope} highlights targets for Evil
13322 mode’s f,F,t,T keys, allowing for quick navigation within a line. It is a
13323 port of quick-scope for Vim. Evil is an Emacs minor mode that emulates Vim
13324 features and provides Vim-like key bindings.")
13325 (license license:gpl3+)))
13326
13327 (define-public emacs-bongo
13328 (package
13329 (name "emacs-bongo")
13330 (version "1.1")
13331 (source
13332 (origin
13333 (method git-fetch)
13334 (uri (git-reference
13335 (url "https://github.com/dbrock/bongo")
13336 (commit version)))
13337 (file-name (git-file-name name version))
13338 (sha256
13339 (base32 "1nszph9mn98flyhn1jq3y6mdh6jymjkvj5ng36ql016dj92apvhv"))))
13340 (build-system emacs-build-system)
13341 (home-page "https://github.com/dbrock/bongo")
13342 (synopsis "Media player for Emacs")
13343 (description
13344 "This package provides a flexible media player for Emacs. @code{Bongo}
13345 supports multiple backends such as @code{vlc}, @code{mpg123},
13346 @code{ogg123}, @code{speexdec}, @code{timidity}, @code{mikmod} and
13347 @code{afplay}.")
13348 (license license:gpl2+)))
13349
13350 (define-public emacs-groovy-modes
13351 (package
13352 (name "emacs-groovy-modes")
13353 (version "2.0")
13354 (source (origin
13355 (method git-fetch)
13356 (uri (git-reference
13357 (url "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes")
13358 (commit version)))
13359 (file-name (git-file-name name version))
13360 (sha256
13361 (base32
13362 "0c1d4cbnlny8gpcd20zr1wxx6ggf28jgh7sgd5r1skpsvjpbfqx2"))))
13363 (build-system emacs-build-system)
13364 (propagated-inputs
13365 `(("emacs-s" ,emacs-s)))
13366 (home-page "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes")
13367 (synopsis "Groovy related modes for Emacs")
13368 (description
13369 "This package provides @code{groovy-mode} for syntax highlighting in
13370 Groovy source files, REPL integration with run-groovy and Grails project
13371 navigation with the grails mode.")
13372 (license license:gpl3+)))
13373
13374 (define-public emacs-jenkinsfile-mode
13375 (let ((commit "00d259ff9b870d234540e00e1d7c83cccdb063b8")
13376 (revision "1"))
13377 (package
13378 (name "emacs-jenkinsfile-mode")
13379 (version (git-version "0.0.1" revision commit))
13380 (source (origin
13381 (method git-fetch)
13382 (uri (git-reference
13383 (url "https://github.com/john2x/jenkinsfile-mode")
13384 (commit commit)))
13385 (file-name (git-file-name name version))
13386 (sha256
13387 (base32
13388 "0srf6xdjnrd4v4ks9pal7i48wmkcl4q5ry7d0yzfx1c9pz2qg9zx"))))
13389 (propagated-inputs
13390 `(("emacs-groovy-modes" ,emacs-groovy-modes)))
13391 (build-system emacs-build-system)
13392 (home-page "https://github.com/john2x/jenkinsfile-mode/")
13393 (synopsis "Emacs major-mode for editing Jenkinsfile")
13394 (description "This package provides a @code{jenkinsfile-mode} derived
13395 from @code{groovy-mode} for editing Jenkins declarative pipeline files.")
13396 (license license:gpl3+))))
13397
13398 (define-public emacs-org-tree-slide
13399 (let ((commit "036a36eec1cf712d3db155572aed325daa372eb5")
13400 (revision "2"))
13401 (package
13402 (name "emacs-org-tree-slide")
13403 (version (git-version "2.8.4" revision commit))
13404 (source (origin
13405 (method git-fetch)
13406 (uri (git-reference
13407 (url "https://github.com/takaxp/org-tree-slide")
13408 (commit commit)))
13409 (sha256
13410 (base32
13411 "1r8ncx25xmxicgciyv5przp68y8qgy40fm10ba55awvql4xcm0yk"))
13412 (file-name (git-file-name name version))))
13413 (build-system emacs-build-system)
13414 (home-page "https://github.com/takaxp/org-tree-slide")
13415 (synopsis "Presentation tool for org-mode")
13416 (description
13417 "Org-tree-slide provides a slideshow mode to view org-mode files. Use
13418 @code{org-tree-slide-mode} to enter the slideshow mode, and then @kbd{C->} and
13419 @kbd{C-<} to jump to the next and previous slide.")
13420 (license license:gpl3+))))
13421
13422 (define-public emacs-scratch-el
13423 (let ((commit "2cdf2b841ce7a0987093f65b0cc431947549f897")
13424 (revision "1"))
13425 (package
13426 (name "emacs-scratch-el")
13427 (version (git-version "1.2" revision commit))
13428 (source (origin
13429 (method git-fetch)
13430 (uri (git-reference
13431 (url "https://github.com/ieure/scratch-el")
13432 (commit commit)))
13433 (file-name (git-file-name name version))
13434 (sha256
13435 (base32
13436 "0wscsndynjmnliajqaz28r1ww81j8wh84zwaaswx51abhwgl0idf"))))
13437 (build-system emacs-build-system)
13438 (native-inputs
13439 `(("texinfo" ,texinfo)))
13440 (arguments
13441 '(#:phases
13442 (modify-phases %standard-phases
13443 (add-after 'install 'install-doc
13444 (lambda* (#:key outputs #:allow-other-keys)
13445 (unless (invoke "makeinfo" "scratch.texi")
13446 (error "makeinfo failed"))
13447 (install-file "scratch.info"
13448 (string-append (assoc-ref outputs "out")
13449 "/share/info"))
13450 #t)))))
13451 (home-page "https://github.com/ieure/scratch-el/")
13452 (synopsis "Create scratch buffers with the same mode as current buffer")
13453 (description "Scratch is an extension to Emacs that enables one to create
13454 scratch buffers that are in the same mode as the current buffer. This is
13455 notably useful when working on code in some language; you may grab code into a
13456 scratch buffer, and, by virtue of this extension, do so using the Emacs
13457 formatting rules for that language.")
13458 (license license:bsd-2))))
13459
13460 (define-public emacs-kv
13461 (package
13462 (name "emacs-kv")
13463 (version "0.0.19")
13464 (source
13465 (origin
13466 (method git-fetch)
13467 (uri (git-reference
13468 (url "https://github.com/nicferrier/emacs-kv")
13469 (commit "721148475bce38a70e0b678ba8aa923652e8900e")))
13470 (file-name (git-file-name name version))
13471 (sha256
13472 (base32
13473 "0r0lz2s6gvy04fwnafai668jsf4546h4k6zd6isx5wpk0n33pj5m"))))
13474 (build-system emacs-build-system)
13475 (arguments
13476 `(#:tests? #t
13477 #:test-command '("emacs" "--batch" "-l" "kv-tests.el"
13478 "-f" "ert-run-tests-batch-and-exit")))
13479 (home-page "https://github.com/nicferrier/emacs-kv")
13480 (synopsis "Key/Value data structures library for Emacs Lisp")
13481 (description "@code{emacs-kv} is a collection of tools for dealing with
13482 key/value data structures such as plists, alists and hash-tables in Emacs
13483 Lisp.")
13484 (license license:gpl3+)))
13485
13486 (define-public emacs-esxml
13487 (package
13488 (name "emacs-esxml")
13489 (version "0.3.4")
13490 (source (origin
13491 (method git-fetch)
13492 (uri (git-reference
13493 (url "https://github.com/tali713/esxml")
13494 (commit version)))
13495 (file-name (git-file-name name version))
13496 (sha256
13497 (base32
13498 "00vv8a75wdklygdyr4km9mc2ismxak69c45jmcny41xl44rp9x8m"))))
13499 (build-system emacs-build-system)
13500 (arguments
13501 `(#:phases
13502 (modify-phases %standard-phases
13503 (add-after 'unpack 'fix-sources
13504 (lambda _
13505 ;; See: https://github.com/tali713/esxml/pull/28.
13506 (substitute* "css-lite.el"
13507 ((";;; main interface")
13508 (string-append ";;; main interface\n"
13509 "(require 'cl-lib)"))
13510 (("mapcan")
13511 "cl-mapcan")
13512 (("',\\(cl-mapcan #'process-css-rule rules\\)")
13513 "(cl-mapcan #'process-css-rule ',rules)"))
13514 (substitute* "esxml-form.el"
13515 ((",esxml-form-field-defn")
13516 "#'esxml-form-field-defn"))
13517 ;; See: https://github.com/tali713/esxml/issues/25
13518 (delete-file "esxpath.el")
13519 #t)))))
13520 (propagated-inputs
13521 `(("emacs-kv" ,emacs-kv)))
13522 (home-page "https://github.com/tali713/esxml/")
13523 (synopsis "SXML for EmacsLisp")
13524 (description "This is XML/XHTML done with S-Expressions in EmacsLisp.
13525 Simply, this is the easiest way to write HTML or XML in Lisp. This library
13526 uses the native form of XML representation as used by many libraries already
13527 included within Emacs. See @code{esxml-to-xml} for a concise description of
13528 the format.")
13529 (license license:gpl3+)))
13530
13531 (define-public emacs-nov-el
13532 (package
13533 (name "emacs-nov-el")
13534 (version "0.3.1")
13535 (source
13536 (origin
13537 (method git-fetch)
13538 (uri (git-reference
13539 (url "https://depp.brause.cc/nov.el.git")
13540 (commit version)))
13541 (file-name (git-file-name name version))
13542 (sha256
13543 (base32 "13r7lvyyyv62m57m4s4xjs4qz2ckhqk6ib514px7qzc7mdzcz9i9"))))
13544 (build-system emacs-build-system)
13545 (arguments
13546 `(#:phases
13547 (modify-phases %standard-phases
13548 (add-after 'unpack 'embed-path-to-unzip
13549 (lambda _
13550 (substitute* "nov.el"
13551 (("\\(executable-find \"unzip\"\\)")
13552 (string-append "\"" (which "unzip") "\"")))
13553 #t)))))
13554 (propagated-inputs
13555 `(("emacs-dash" ,emacs-dash)
13556 ("emacs-esxml" ,emacs-esxml)))
13557 (inputs
13558 `(("unzip" ,unzip)))
13559 (home-page "https://depp.brause.cc/nov.el/")
13560 (synopsis "Major mode for reading EPUBs in Emacs")
13561 (description "@code{nov.el} provides a major mode for reading EPUB
13562 documents.
13563
13564 Features:
13565
13566 @itemize
13567 @item Basic navigation (jump to TOC, previous/next chapter)
13568 @item Remembering and restoring the last read position
13569 @item Jump to next chapter when scrolling beyond end
13570 @item Renders EPUB2 (@code{.ncx}) and EPUB3 (@code{<nav>}) TOCs
13571 @item Hyperlinks to internal and external targets
13572 @item Supports textual and image documents
13573 @item View source of document files
13574 @item Metadata display
13575 @item Image rescaling
13576 @end itemize
13577 ")
13578 (license license:gpl3+)))
13579
13580 (define-public epipe
13581 (package
13582 (name "epipe")
13583 (version "0.1.0")
13584 (source
13585 (origin
13586 (method git-fetch)
13587 (uri (git-reference
13588 (url "https://github.com/cute-jumper/epipe")
13589 (commit version)))
13590 (file-name (git-file-name name version))
13591 (sha256
13592 (base32 "0lkisi1s7sn12nx8zh58qmsxwnk1rjwryj18wcbr148xqz3swg57"))))
13593 (build-system trivial-build-system)
13594 (inputs
13595 `(("bash" ,bash)
13596 ("perl" ,perl)))
13597 (arguments
13598 `(#:modules
13599 ((guix build utils))
13600 #:builder
13601 (begin
13602 (use-modules (guix build utils))
13603 ;; Extract source.
13604 (copy-recursively (assoc-ref %build-inputs "source") "source")
13605 (chdir "source")
13606 ;; Patch shebangs.
13607 (substitute* "epipe"
13608 (("/usr/bin/env bash")
13609 (string-append (assoc-ref %build-inputs "bash") "/bin/bash")))
13610 (patch-shebang "epipe.pl"
13611 (list (string-append (assoc-ref %build-inputs "perl")
13612 "/bin")))
13613 ;; Install.
13614 (for-each (lambda (file)
13615 (install-file file (string-append %output "/bin")))
13616 '("epipe" "epipe.pl"))
13617 #t)))
13618 (home-page "https://github.com/cute-jumper/epipe")
13619 (synopsis "Pipe to the @code{emacsclient}")
13620 (description "@code{epipe} provides an utility to use your editor in
13621 the pipeline, featuring the support for running @code{emacsclient}.")
13622 (license license:gpl3+)))
13623
13624 (define-public emacs-hcl-mode
13625 (package
13626 (name "emacs-hcl-mode")
13627 (version "0.03")
13628 (source
13629 (origin
13630 (method git-fetch)
13631 (uri (git-reference
13632 (url "https://github.com/syohex/emacs-hcl-mode")
13633 (commit version)))
13634 (file-name (git-file-name name version))
13635 (sha256
13636 (base32 "0jqrgq15jz6pvx38pnwkizzfiih0d3nxqphyrc92nqpcyimg8b6g"))))
13637 (build-system emacs-build-system)
13638 (home-page "https://github.com/syohex/emacs-hcl-mode")
13639 (synopsis "Major mode for the Hashicorp Configuration Language")
13640 (description
13641 "@code{emacs-hcl-mode} provides an Emacs major mode for working with
13642 @acronym{HCL, Hashicorp Configuration Language}. It provides syntax
13643 highlighting and indentation support.")
13644 (license license:gpl3+)))
13645
13646 (define-public emacs-terraform-mode
13647 (package
13648 (name "emacs-terraform-mode")
13649 (version "0.06")
13650 (source
13651 (origin
13652 (method git-fetch)
13653 (uri (git-reference
13654 (url "https://github.com/syohex/emacs-terraform-mode")
13655 (commit version)))
13656 (file-name (git-file-name name version))
13657 (sha256
13658 (base32 "05hn8kskx9lcgn7bzgam99c629zlryir2pickwrqndacjrqpdykx"))))
13659 (build-system emacs-build-system)
13660 (propagated-inputs
13661 `(("emacs-hcl-mode" ,emacs-hcl-mode)))
13662 (home-page "https://github.com/syohex/emacs-terraform-mode")
13663 (synopsis "Major mode for Terraform")
13664 (description
13665 "@code{emacs-terraform-mode} provides a major mode for working with
13666 @uref{https://www.terraform.io/, Terraform} configuration files. Most of the
13667 functionality is inherited from @code{hcl-mode}.")
13668 (license license:gpl3+)))
13669
13670 (define-public emacs-exec-path-from-shell
13671 (package
13672 (name "emacs-exec-path-from-shell")
13673 (version "1.12")
13674 (source
13675 (origin
13676 (method git-fetch)
13677 (uri (git-reference
13678 (url "https://github.com/purcell/exec-path-from-shell")
13679 (commit version)))
13680 (file-name (git-file-name name version))
13681 (sha256
13682 (base32
13683 "1ga8bpxngd3ph2hdiik92c612ki71qxw818i6rgx6f6a5r0sbf3p"))))
13684 (build-system emacs-build-system)
13685 (home-page "https://github.com/purcell/exec-path-from-shell")
13686 (synopsis "Get environment variables such as @var{PATH} from the shell")
13687 (description
13688 "This library allows the user to set Emacs @var{exec-path} and @var{PATH}
13689 from the shell @var{PATH}, so that @code{shell-command}, @code{compile} and
13690 the like work as expected on systems on which Emacs is not guaranteed to
13691 inherit a login shell's environment variables. It also allows other
13692 environment variables to be retrieved from the shell, so that Emacs will see
13693 the same values you get in a terminal.")
13694 (license license:gpl3+)))
13695
13696 (define-public emacs-frog-menu
13697 (package
13698 (name "emacs-frog-menu")
13699 (version "0.2.11")
13700 (source
13701 (origin
13702 (method url-fetch)
13703 (uri (string-append "https://elpa.gnu.org/packages/"
13704 "frog-menu-" version ".el"))
13705 (sha256
13706 (base32 "06iw11z61fd0g4w3562k3smcmzaq3nivvvc6gzm8y8k5pcrqzdff"))))
13707 (build-system emacs-build-system)
13708 (propagated-inputs
13709 `(("emacs-avy" ,emacs-avy)
13710 ("emacs-posframe" ,emacs-posframe)))
13711 (home-page "https://github.com/clemera/frog-menu")
13712 (synopsis "Quickly pick items from ad hoc menus")
13713 (description
13714 "This package provides a popup offering a preview of a list of candidates
13715 on which user-defined dispatch actions can act.")
13716 (license license:gpl3+)))
13717
13718 (define-public emacs-frog-jump-buffer
13719 (let ((commit "2d7b342785ae27d45f5d252272df6eb773c78e20")
13720 (revision "1"))
13721 (package
13722 (name "emacs-frog-jump-buffer")
13723 (version (git-version "0.1.4" revision commit))
13724 (source
13725 (origin
13726 (method git-fetch)
13727 (uri (git-reference
13728 (url "https://github.com/waymondo/frog-jump-buffer")
13729 (commit commit)))
13730 (file-name (git-file-name name version))
13731 (sha256
13732 (base32
13733 "1z00by8hiss1r2lwmzrl8pnz6jykia2849dqqm4l3z5rf6lwvc0f"))))
13734 (build-system emacs-build-system)
13735 (propagated-inputs
13736 `(("emacs-dash" ,emacs-dash)
13737 ("emacs-frog-menu" ,emacs-frog-menu)
13738 ("emacs-avy" ,emacs-avy)))
13739 (home-page "https://github.com/waymondo/frog-jump-buffer")
13740 (synopsis "Jump to any Emacs buffer with minimal keystrokes")
13741 (description
13742 "This package provides a preview window of buffers that can be switched
13743 to with quicklink-style selections.")
13744 (license license:gpl3+))))
13745
13746 (define-public emacs-deft
13747 (package
13748 (name "emacs-deft")
13749 (version "0.8")
13750 (source
13751 (origin
13752 (method git-fetch)
13753 (uri (git-reference
13754 (url "https://github.com/jrblevin/deft")
13755 (commit (string-append "v" version))))
13756 (file-name (git-file-name name version))
13757 (sha256
13758 (base32
13759 "0z7cilgiz6krvl5h2z72hkch43qxmypb0k6p5vxn5lx1p6v0mrf2"))))
13760 (build-system emacs-build-system)
13761 (home-page "https://jblevins.org/projects/deft/")
13762 (synopsis "Quickly browse, filter, and edit plain text notes")
13763 (description
13764 "Deft is an Emacs mode for quickly browsing, filtering, and editing
13765 directories of plain text notes, inspired by Notational Velocity.")
13766 (license license:bsd-3)))
13767
13768 (define-public emacs-anzu
13769 (package
13770 (name "emacs-anzu")
13771 (version "0.62")
13772 (source
13773 (origin
13774 (method git-fetch)
13775 (uri (git-reference
13776 (url "https://github.com/syohex/emacs-anzu")
13777 (commit version)))
13778 (file-name (git-file-name name version))
13779 (sha256
13780 (base32 "1lzvc0ihcbplir4hqfyxfqpsd78arz15gk92kmq4f8ggbkl37fan"))))
13781 (build-system emacs-build-system)
13782 (home-page "https://github.com/syohex/emacs-anzu")
13783 (synopsis "Show number of matches in mode-line while searching")
13784 (description
13785 "Anzu provides a minor mode which displays \"current match/total
13786 matches\" in the mode line in various search modes. This is an Emacs port of
13787 Anzu.zim.")
13788 (license license:gpl3+)))
13789
13790 (define-public emacs-ascii-art-to-unicode
13791 (package
13792 (name "emacs-ascii-art-to-unicode")
13793 (version "1.12")
13794 (source
13795 (origin
13796 (method url-fetch)
13797 (uri (string-append "https://elpa.gnu.org/packages/ascii-art-to-unicode-"
13798 version ".el"))
13799 (sha256
13800 (base32
13801 "1w9h2lyriafxj71r79774gh822cz8mry3gdfzyj6ym6v9mvqypna"))))
13802 (build-system emacs-build-system)
13803 (home-page "https://elpa.gnu.org/packages/ascii-art-to-unicode.html")
13804 (synopsis "ASCII to Unicode art converter for Emacs")
13805 (description "This Emacs package provides the commands @command{aa2u} and
13806 @command{aa2u-rectangle}. Both of these commands can be used to convert
13807 simple ASCII art line drawings to Unicode; the former works on the active
13808 region of the buffer, while the latter works on rectangular selections.")
13809 (license license:gpl3+)))
13810
13811 (define-public emacs-emmet-mode
13812 (let ((commit "1acb821e0142136344ccf40c1e5fb664d7db2e70")
13813 (revision "1"))
13814 (package
13815 (name "emacs-emmet-mode")
13816 (version (git-version "1.0.8" revision commit))
13817 (source (origin
13818 (method git-fetch)
13819 (uri (git-reference
13820 (url "https://github.com/smihica/emmet-mode")
13821 (commit commit)))
13822 (file-name (git-file-name name version))
13823 (sha256
13824 (base32
13825 "1p25h191bm0h5b3w5apg7wks51k7pb7h4dlww4jbl9ri4d33fzcl"))))
13826 (build-system emacs-build-system)
13827 (home-page "https://github.com/smihica/emmet-mode")
13828 (synopsis "Unofficial Emmet's support for Emacs")
13829 (description
13830 "Unfold CSS-selector-like expressions to markup. It is intended to be
13831 used with SGML-like languages: XML, HTML, XHTML, XSL, etc.")
13832 (license license:gpl3+))))
13833
13834 (define-public emacs-ergoemacs-mode
13835 (let ((commit "3ce23bba3cb50562693860f87f3528c471d603ba")
13836 (revision "1"))
13837 (package
13838 (name "emacs-ergoemacs-mode")
13839 (version (git-version "5.16.10.12" revision commit))
13840 (source
13841 (origin
13842 (method git-fetch)
13843 (uri (git-reference
13844 (url "https://github.com/ergoemacs/ergoemacs-mode")
13845 (commit commit)))
13846 (file-name (git-file-name name version))
13847 (sha256
13848 (base32
13849 "1s3b9bridl78hh1mxmdk9nqlmqhibbaxk0a1cixmsf23s06w8w6l"))))
13850 (build-system emacs-build-system)
13851 (propagated-inputs
13852 `(("emacs-undo-tree" ,emacs-undo-tree)))
13853 (home-page "https://ergoemacs.github.io/")
13854 (synopsis "Emacs mode based on common modern interface and ergonomics")
13855 (description
13856 "This package provides an efficient Emacs keybinding set based on
13857 statistics of command frequency, and supports common shortcuts for open,
13858 close, copy, cut, paste, undo, redo.")
13859 (license license:gpl3+))))
13860
13861 (define-public emacs-password-store
13862 (package
13863 (name "emacs-password-store")
13864 (version "1.7.3")
13865 (source (origin
13866 (method url-fetch)
13867 (uri
13868 (string-append "https://git.zx2c4.com/password-store/snapshot/"
13869 "password-store-" version ".tar.xz"))
13870 (sha256
13871 (base32
13872 "1x53k5dn3cdmvy8m4fqdld4hji5n676ksl0ql4armkmsds26av1b"))))
13873 (build-system emacs-build-system)
13874 (arguments
13875 `(#:phases
13876 (modify-phases %standard-phases
13877 (add-after 'unpack 'extract-el-file
13878 (lambda _
13879 (copy-file "contrib/emacs/password-store.el" "password-store.el")
13880 (delete-file-recursively "contrib")
13881 (delete-file-recursively "man")
13882 (delete-file-recursively "src")
13883 (delete-file-recursively "tests"))))))
13884 (propagated-inputs
13885 `(("emacs-f" ,emacs-f)
13886 ("emacs-s" ,emacs-s)
13887 ("emacs-with-editor" ,emacs-with-editor)
13888 ("password-store" ,password-store)))
13889 (home-page "https://git.zx2c4.com/password-store/tree/contrib/emacs")
13890 (synopsis "Password store (pass) support for Emacs")
13891 (description
13892 "This package provides functions for working with pass (\"the
13893 standard Unix password manager\").")
13894 (license license:gpl2+)))
13895
13896 (define-public emacs-auth-source-pass
13897 (let ((commit "847a1f54ed48856b4dfaaa184583ef2c84173edf")
13898 (revision "2"))
13899 (package
13900 (name "emacs-auth-source-pass")
13901 (version (git-version "5.0.0" revision commit))
13902 (source
13903 (origin
13904 (method git-fetch)
13905 (uri (git-reference
13906 (url "https://github.com/DamienCassou/auth-password-store")
13907 (commit commit)))
13908 (file-name (git-file-name name version))
13909 (sha256
13910 (base32 "0g48z5w6n3c54zqfpx65dfyl9jqbl15idvbb1hhw2pd9f9r8fykk"))))
13911 (build-system emacs-build-system)
13912 (arguments
13913 `(#:tests? #t
13914 #:test-command '("emacs" "--batch"
13915 "-L" "."
13916 "-l" "test/auth-source-pass-tests.el"
13917 "-f" "ert-run-tests-batch-and-exit")))
13918 (home-page "https://github.com/DamienCassou/auth-password-store")
13919 (synopsis "Integrate @code{auth-source} with @code{password-store}")
13920 (description "This package helps Emacs integrate with the Unix
13921 @code{password-store} application.")
13922 (license license:gpl3+))))
13923
13924 (define-public emacs-pass
13925 (package
13926 (name "emacs-pass")
13927 (version "2.0")
13928 (source
13929 (origin
13930 (method git-fetch)
13931 (uri (git-reference
13932 (url "https://github.com/NicolasPetton/pass")
13933 (commit version)))
13934 (file-name (git-file-name name version))
13935 (sha256
13936 (base32 "0jc8j421mlflspg24jvrqc2n3y5n3cpk3hjy560il8g36xi1049p"))))
13937 (build-system emacs-build-system)
13938 (propagated-inputs
13939 `(("emacs-password-store" ,emacs-password-store)
13940 ("emacs-f" ,emacs-f)))
13941 (home-page "https://github.com/NicolasPetton/pass")
13942 (synopsis "Major mode for @file{password-store.el}")
13943 (description "This is a major mode for managing password-store (pass)
13944 keychains. The keychain entries are displayed in a directory-like structure
13945 and can be consulted and modified.")
13946 (license license:gpl3+)))
13947
13948 (define-public emacs-psc-ide
13949 ;; There is no proper release. The base version is extracted from the
13950 ;; "Version" keyword in the main file.
13951 (let ((commit "7fc2b841be25f5bc5e1eb7d0634436181c38b3fe")
13952 (revision "1"))
13953 (package
13954 (name "emacs-psc-ide")
13955 (version (git-version "0.1.0" revision commit))
13956 (source
13957 (origin
13958 (method git-fetch)
13959 (uri
13960 (git-reference
13961 (url "https://github.com/purescript-emacs/psc-ide-emacs")
13962 (commit commit)))
13963 (file-name (git-file-name name version))
13964 (sha256
13965 (base32 "0r0fymyai30jimm34z1cmav4wgij8ci6s1d9y7qigygfbbfrdsmj"))))
13966 (build-system emacs-build-system)
13967 (propagated-inputs
13968 `(("emacs-company" ,emacs-company)
13969 ("emacs-dash" ,emacs-dash)
13970 ("emacs-flycheck" ,emacs-flycheck)
13971 ("emacs-let-alist" ,emacs-let-alist)
13972 ("emacs-s" ,emacs-s)))
13973 (home-page "https://github.com/purescript-emacs/psc-ide-emacs")
13974 (synopsis "Emacs integration for PureScript's psc-ide tool")
13975 (description
13976 "This package provices Emacs integration for @code{psc-ide}, an IDE
13977 protocol for PureScript programming language. It features:
13978
13979 @itemize
13980 @item Completions
13981 @item Type at point
13982 @item Go to definition
13983 @item Automatic imports
13984 @item Case split
13985 @item Build system integration, and
13986 @item Flycheck support
13987 @end itemize")
13988 (license license:gpl3+))))
13989
13990 (define-public emacs-evil-anzu
13991 (package
13992 (name "emacs-evil-anzu")
13993 (version "0.03")
13994 (source
13995 (origin
13996 (method git-fetch)
13997 (uri (git-reference
13998 (url "https://github.com/syohex/emacs-evil-anzu")
13999 (commit version)))
14000 (file-name (git-file-name name version))
14001 (sha256
14002 (base32 "0lw7fg4gqwj30r0l6k2ni36sxqkf65zf0d0z3rxnpwbxlf8dlkrr"))))
14003 (build-system emacs-build-system)
14004 (propagated-inputs
14005 `(("emacs-evil" ,emacs-evil)
14006 ("emacs-anzu" ,emacs-anzu)))
14007 (home-page "https://github.com/syohex/emacs-evil-anzu")
14008 (synopsis "Anzu for evil-mode")
14009 (description "@code{anzu} provides a minor mode that displays the current
14010 match and total match information in the mode-line in various search modes.")
14011 (license license:gpl3+)))
14012
14013 (define-public emacs-pg
14014 (let ((commit "4f6516ec3946d95dcef49abb6703cc89ecb5183d"))
14015 (package
14016 (name "emacs-pg")
14017 (version (git-version "0.1" "1" commit))
14018 (source (origin
14019 (method git-fetch)
14020 (uri (git-reference (url "https://github.com/cbbrowne/pg.el")
14021 (commit commit)))
14022 (file-name (git-file-name name version))
14023 (sha256
14024 (base32
14025 "1zh7v4nnpzvbi8yj1ynlqlawk5bmlxi6s80b5f2y7hkdqb5q26k0"))))
14026 (build-system emacs-build-system)
14027 (home-page "https://github.com/cbbrowne/pg.el")
14028 (synopsis "Emacs Lisp interface for PostgreSQL")
14029 (description
14030 "This package provides an Emacs Lisp interface for PostgreSQL.")
14031 (license license:gpl3+))))
14032
14033 (define-public emacs-cl-generic
14034 (package
14035 (name "emacs-cl-generic")
14036 (version "0.3")
14037 (source
14038 (origin
14039 (method url-fetch)
14040 (uri (string-append "https://elpa.gnu.org/packages/cl-generic-"
14041 version ".el"))
14042 (sha256
14043 (base32
14044 "0vb338bhjpsnrf60qgxny4z5rjrnifahnrv9axd4shay89d894zq"))))
14045 (build-system emacs-build-system)
14046 ;; Byte compilation of the autoload file fails.
14047 (arguments
14048 `(#:phases (modify-phases %standard-phases
14049 (delete 'enable-autoloads-compilation))))
14050 (home-page "https://elpa.gnu.org/packages/seq.html")
14051 (synopsis
14052 "Forward @code{cl-generic} compatibility for Emacs before version 25")
14053 (description "This package provides a subset of the features of the
14054 @code{cl-generic} package introduced in Emacs-25, for use on previous
14055 @code{emacsen}.")
14056 (license license:gpl3+)))
14057
14058 (define-public emacs-finalize
14059 (package
14060 (name "emacs-finalize")
14061 (version "2.0.0")
14062 (source
14063 (origin
14064 (method git-fetch)
14065 (uri (git-reference
14066 (url "https://github.com/skeeto/elisp-finalize")
14067 (commit version)))
14068 (file-name (git-file-name name version))
14069 (sha256
14070 (base32 "1gvlm4i62af5jscwz0jccc8ra0grprxpg2rlq91d5nn8dn5lpy79"))))
14071 (build-system emacs-build-system)
14072 (propagated-inputs
14073 `(("emacs-cl-generic" ,emacs-cl-generic)))
14074 (home-page "https://github.com/skeeto/elisp-finalize")
14075 (synopsis "Finalizers for Emacs Lisp")
14076 (description
14077 "This package runs a callback (a finalizer)
14078 after its registered lisp object has been garbage collected. This allows
14079 extra resources, such as buffers and processes, to be cleaned up after the
14080 object has been freed.")
14081 (license license:unlicense)))
14082
14083 (define-public emacs-emacsql
14084 (package
14085 (name "emacs-emacsql")
14086 (version "3.0.0")
14087 (source (origin
14088 (method git-fetch)
14089 (uri (git-reference
14090 (url "https://github.com/skeeto/emacsql")
14091 (commit (string-append version))))
14092 (file-name (git-file-name name version))
14093 (sha256
14094 (base32
14095 "1c84gxr1majqj4b59wgdy3lzm3ap66w9qsrnkx8hdbk9895ak81g"))))
14096 (build-system emacs-build-system)
14097 (arguments
14098 `(#:modules ((guix build emacs-build-system)
14099 (guix build utils)
14100 (guix build emacs-utils)
14101 (srfi srfi-26))
14102 #:phases
14103 (modify-phases %standard-phases
14104 (delete 'build) ;‘build-emacsql-sqlite’ compiles ‘*.el’ files.
14105 (add-before 'install 'patch-elisp-shell-shebangs
14106 (lambda _
14107 (substitute* (find-files "." "\\.el")
14108 (("/bin/sh") (which "sh")))
14109 #t))
14110 (add-after 'patch-elisp-shell-shebangs 'setenv-shell
14111 (lambda _
14112 (setenv "SHELL" "sh")))
14113 (add-after 'setenv-shell 'build-emacsql-sqlite
14114 (lambda _
14115 (invoke "make" "binary" "CC=gcc")))
14116 (add-after 'build-emacsql-sqlite 'install-emacsql-sqlite
14117 ;; This build phase installs emacs-emacsql binary.
14118 (lambda* (#:key outputs #:allow-other-keys)
14119 (install-file "sqlite/emacsql-sqlite"
14120 (string-append (assoc-ref outputs "out")
14121 "/bin"))
14122 #t))
14123 (add-after 'install-emacsql-sqlite 'patch-emacsql-sqlite.el
14124 ;; This build phase removes interactive prompts
14125 ;; and makes sure Emacs look for binaries in the right places.
14126 (lambda* (#:key outputs #:allow-other-keys)
14127 (let ((file "emacsql-sqlite.el"))
14128 (chmod file #o644)
14129 (emacs-substitute-sexps file
14130 ;; Make sure Emacs looks for ‘GCC’ binary in the right place.
14131 ("(executable-find" (which "gcc"))
14132 ;; Make sure Emacs looks for ‘emacsql-sqlite’ binary
14133 ;; in the right place.
14134 ("(defvar emacsql-sqlite-executable"
14135 (string-append (assoc-ref outputs "out")
14136 "/bin/emacsql-sqlite"))))))
14137 (replace 'install
14138 (lambda* (#:key outputs #:allow-other-keys)
14139 (let* ((out (assoc-ref outputs "out")))
14140 (install-file "sqlite/emacsql-sqlite"
14141 (string-append out "/bin"))
14142 (for-each (cut install-file <>
14143 (string-append out "/share/emacs/site-lisp"))
14144 (find-files "." "\\.elc*$")))
14145 #t)))))
14146 (inputs
14147 `(("emacs-minimal" ,emacs-minimal)
14148 ("mariadb" ,mariadb "lib")
14149 ("mariadb-dev" ,mariadb "dev")
14150 ("postgresql" ,postgresql)))
14151 (propagated-inputs
14152 `(("emacs-finalize" ,emacs-finalize)
14153 ("emacs-pg" ,emacs-pg)))
14154 (home-page "https://github.com/skeeto/emacsql")
14155 (synopsis "Emacs high-level SQL database front-end")
14156 (description "Any readable Lisp value can be stored as a value in EmacSQL,
14157 including numbers, strings, symbols, lists, vectors, and closures. EmacSQL
14158 has no concept of @code{TEXT} values; it's all just Lisp objects. The Lisp
14159 object @code{nil} corresponds 1:1 with @code{NULL} in the database.")
14160 (license license:gpl3+)))
14161
14162 (define-public emacs-emacsql-sqlite3
14163 (package
14164 (name "emacs-emacsql-sqlite3")
14165 (version "1.0.1")
14166 (source (origin
14167 (method git-fetch)
14168 (uri (git-reference
14169 (url "https://github.com/cireu/emacsql-sqlite3")
14170 (commit version)))
14171 (file-name (git-file-name name version))
14172 (sha256
14173 (base32
14174 "1yy9y27rckm776jnl2rh1fz3bh09690xwzq7102vlw7xkb9s7jhj"))))
14175 (build-system emacs-build-system)
14176 (native-inputs
14177 `(("ert-runner" ,emacs-ert-runner)))
14178 (inputs
14179 `(("sqlite" ,sqlite)))
14180 (propagated-inputs
14181 `(("emacs-emacsql" ,emacs-emacsql)))
14182 (arguments
14183 `(#:tests? #t
14184 #:test-command '("emacs" "-Q" "--batch" "-L" "."
14185 "--load" "emacsql-sqlite3-test.el"
14186 "-f" "ert-run-tests-batch-and-exit")
14187 #:phases
14188 (modify-phases %standard-phases
14189 (add-after 'unpack 'embed-path-to-sqlite3
14190 (lambda _
14191 (substitute* "emacsql-sqlite3.el"
14192 (("\\(executable-find \"sqlite3\"\\)")
14193 (string-append "\"" (which "sqlite3") "\"")))
14194 #t)))))
14195 (home-page "https://github.com/cireu/emacsql-sqlite3")
14196 (synopsis "EmacSQL backend for SQLite")
14197 (description "This is yet another EmacSQL backend for SQLite which uses
14198 official @command{sqlite3} executable to access SQL database.")
14199 (license license:gpl3+)))
14200
14201 (define-public emacs-closql
14202 ;; Take a commit newer than 1.0.0 release because of Emacs upgrade to 26.3.
14203 (let ((commit "70b98dbae53611d10a461d9b4a6f71086910dcef"))
14204 (package
14205 (name "emacs-closql")
14206 (version (git-version "1.0.0" "1" commit))
14207 (source
14208 (origin
14209 (method git-fetch)
14210 (uri (git-reference
14211 (url "https://github.com/emacscollective/closql")
14212 (commit commit)))
14213 (file-name (git-file-name name version))
14214 (sha256
14215 (base32
14216 "1wvhrihg663f61yzc7f0vha2abjdnlwbk0gjcwakdfk1bhwf5ikh"))))
14217 (build-system emacs-build-system)
14218 (propagated-inputs
14219 `(("emacs-emacsql" ,emacs-emacsql)))
14220 (home-page "https://github.com/emacscollective/closql")
14221 (synopsis "Store EIEIO objects using EmacSQL")
14222 (description
14223 "This package stores uniform EIEIO objects in an EmacSQL
14224 database. SQLite is used as backend. This library imposes some restrictions
14225 on what kind of objects can be stored; it isn't intended to store arbitrary
14226 objects. All objects have to share a common superclass and subclasses cannot
14227 add any additional instance slots.")
14228 (license license:gpl3))))
14229
14230 (define-public emacs-epkg
14231 (package
14232 (name "emacs-epkg")
14233 (version "3.2.2")
14234 (source
14235 (origin
14236 (method git-fetch)
14237 (uri (git-reference
14238 (url "https://github.com/emacscollective/epkg")
14239 (commit (string-append "v" version))))
14240 (file-name (git-file-name name version))
14241 (sha256
14242 (base32
14243 "1pxz611qb3m33r6343h0xhwqvvhjl131zyc2klplzgb23rkm8lk0"))))
14244 (build-system emacs-build-system)
14245 (propagated-inputs
14246 `(("emacs-closql" ,emacs-closql)
14247 ("emacs-dash" ,emacs-dash)))
14248 (home-page "https://emacsmirror.net")
14249 (synopsis "Browse the Emacsmirror package database")
14250 (description "This package provides access to a local copy of the
14251 Emacsmirror package database. It provides low-level functions for querying
14252 the database and a @file{package.el} user interface for browsing the database.
14253 Epkg itself is not a package manager.
14254
14255 Getting a local copy:
14256
14257 @example
14258 git clone https://github.com/emacsmirror/epkgs.git ~/.emacs.d/epkgs
14259 cd ~/.emacs.d/epkgs
14260 git submodule init
14261 git config --global url.https://github.com/.insteadOf git@@github.com:
14262 git submodule update
14263 @end example
14264
14265 Some submodule may be missing. In this case Git will prompt for a GitHub user
14266 name and password. To skip it press a @key{Return} key.
14267
14268 You could get a Epkg package list by invoking @code{epkg-list-packages} in
14269 Emacs.")
14270 (license license:gpl3+)))
14271
14272 (define-public emacs-elisp-slime-nav
14273 (package
14274 (name "emacs-elisp-slime-nav")
14275 (version "0.9")
14276 (source
14277 (origin
14278 (method git-fetch)
14279 (uri (git-reference
14280 (url "https://github.com/purcell/elisp-slime-nav")
14281 (commit version)))
14282 (file-name (git-file-name name version))
14283 (sha256
14284 (base32 "11vyy0bvzbs1h1kggikrvhd658j7c730w0pdp6qkm60rigvfi1ih"))))
14285 (build-system emacs-build-system)
14286 (home-page "https://github.com/purcell/elisp-slime-nav")
14287 (synopsis "Make @code{M-.} and @code{M-,} work for elisp like they do in SLIME")
14288 (description
14289 "This package provides SLIME's convenient @code{M-.}and @code{M-,} navigation
14290 in @code{emacs-lisp-mode}, together with an elisp equivalent of
14291 @code{slime-describe-symbol}.")
14292 (license license:gpl3+)))
14293
14294 (define-public emacs-dedicated
14295 (package
14296 (name "emacs-dedicated")
14297 (version "1.0.0")
14298 (source
14299 (origin
14300 (method git-fetch)
14301 (uri (git-reference
14302 (url "https://github.com/emacsorphanage/dedicated")
14303 (commit version)))
14304 (file-name (git-file-name name version))
14305 (sha256
14306 (base32 "0pba9s0h37sxyqh733vi6k5raa4cs7aradipf3826inw36jcw414"))))
14307 (build-system emacs-build-system)
14308 (home-page "https://github.com/emacsorphanage/dedicated")
14309 (synopsis "Emacs minor mode for toggling a windows's \"dedicated\" flag")
14310 (description
14311 "This simple Emacs minor mode allows you to toggle a window's
14312 \"dedicated\" flag. When a window is \"dedicated\", Emacs will not select
14313 files into that window. This can be quite handy since many commands will use
14314 another window to show results (compilation mode, starting info, and so on).
14315 A dedicated window won't be used for such a purpose. For details, please read
14316 the source file.")
14317 (license license:gpl2+)))
14318
14319 (define-public emacs-nnreddit
14320 (let ((commit "9843f99d01fd8f1eea2fc685965a7c7f4eeb187a")
14321 (revision "1"))
14322 (package
14323 (name "emacs-nnreddit")
14324 (version (string-append "0.0.1-" revision "."
14325 (string-take commit 7)))
14326 (source (origin
14327 (method git-fetch)
14328 (uri (git-reference
14329 (url "https://github.com/paul-issartel/nnreddit")
14330 (commit commit)))
14331 (file-name (git-file-name name version))
14332 (sha256
14333 (base32
14334 "0j4h3bnga640250jdq8bwyja49r41ssrsjd6lba4gzzllqk02nbn"))))
14335 (build-system emacs-build-system)
14336 (home-page "https://github.com/paul-issartel/nnreddit")
14337 (synopsis "Reddit backend for the Gnus newsreader")
14338 (description "@url{https://www.reddit.com} backend for the Gnus
14339 newsreader.")
14340 (license license:gpl3+))))
14341
14342 (define-public emacs-makey
14343 (package
14344 (name "emacs-makey")
14345 (version "0.3")
14346 (source
14347 (origin
14348 (method git-fetch)
14349 (uri (git-reference
14350 (url "https://github.com/mickeynp/makey")
14351 (commit version)))
14352 (file-name (git-file-name name version))
14353 (sha256
14354 (base32 "1rr7vpm3xxzcaam3m8xni3ajy8ycyljix07n2jzczayri9sd8csy"))))
14355 (build-system emacs-build-system)
14356 (home-page "https://github.com/mickeynp/makey")
14357 (synopsis "Emacs interactive command-line mode")
14358 (description
14359 "This package provides an Emacs interactive command-line mode.")
14360 (license license:gpl3+)))
14361
14362 (define-public emacs-outorg
14363 (let ((commit "78b0695121fb974bc4e971eb4ef7f8afd6d89d64"))
14364 (package
14365 (name "emacs-outorg")
14366 (version (git-version "2.0" "1" commit))
14367 (source
14368 (origin
14369 (method git-fetch)
14370 (uri (git-reference
14371 (url "https://github.com/alphapapa/outorg")
14372 (commit commit)))
14373 (file-name (git-file-name name version))
14374 (sha256
14375 (base32
14376 "03aclh4m3f7rb821gr9pwvnqkkl91px3qxdcarpf3ypa1x4fxvlj"))))
14377 (build-system emacs-build-system)
14378 (home-page "https://github.com/alphapapa/outorg")
14379 (synopsis "Org-style comment editing")
14380 (description "Outorg is for editing comment-sections of source-code
14381 files in temporary Org-mode buffers. It turns conventional
14382 literate-programming upside-down in that the default mode is the
14383 programming-mode, and special action has to be taken to switch to the
14384 text-mode (i.e. Org-mode).")
14385 (license license:gpl3+))))
14386
14387 (define-public emacs-outshine
14388 (package
14389 (name "emacs-outshine")
14390 (version "3.0.1")
14391 (source (origin
14392 (method git-fetch)
14393 (uri (git-reference
14394 (url "https://github.com/alphapapa/outshine")
14395 (commit (string-append "v" version))))
14396 (file-name (git-file-name name version))
14397 (sha256
14398 (base32
14399 "1lh9f5dgdbwfyzxk6nsg1xwdjs8gc6p9mbyyhp6f8fnk3h0y88cg"))))
14400 (build-system emacs-build-system)
14401 (propagated-inputs
14402 `(("emacs-outorg" ,emacs-outorg)))
14403 (home-page "https://github.com/alphapapa/outshine")
14404 (synopsis "Emacs outline with outshine")
14405 (description "Outshine attempts to bring the look and feel of
14406 @code{org-mode} to an Emacs outside of the Org major-mode. It is an extension
14407 of @code{outline-minor-mode} (@code{org-mode} itself derives from
14408 outline-mode), so there is no such thing like an outshine mode, only
14409 @code{outline-minor-mode} with outshine extensions loaded.")
14410 (license license:gpl3+)))
14411
14412 (define-public emacs-frecency
14413 (let ((commit "31ef9ff4af1a4fed3dcc24ea74037feea8795c87")
14414 (version "0.1-pre")
14415 (revision "1"))
14416 (package
14417 (name "emacs-frecency")
14418 (version (git-version version revision commit))
14419 (source (origin
14420 (method git-fetch)
14421 (uri (git-reference
14422 (url "https://github.com/alphapapa/frecency.el")
14423 (commit commit)))
14424 (sha256
14425 (base32
14426 "051aihjdg3x22svaxhwylpi8i6s2x9j8syvsj1jgilgjjdy15l6j"))
14427 (file-name (git-file-name name version))))
14428 (build-system emacs-build-system)
14429 (propagated-inputs
14430 `(("emacs-a" ,emacs-a)
14431 ("emacs-dash" ,emacs-dash)))
14432 (home-page "https://github.com/alphapapa/frecency.el")
14433 (synopsis "Sort items by frequency and recency of access")
14434 (description "This package provides a way of sorting items via
14435 a heuristic based on frequency and recency.")
14436 (license license:gpl3+))))
14437
14438 (define-public emacs-org-recent-headings
14439 (package
14440 (name "emacs-org-recent-headings")
14441 (version "0.1")
14442 (source (origin
14443 (method git-fetch)
14444 (uri (git-reference
14445 (url "https://github.com/alphapapa/org-recent-headings")
14446 (commit version)))
14447 (file-name (git-file-name name version))
14448 (sha256
14449 (base32
14450 "0gsrzmg3mssh9s28yjm9m866fnhm1pcligssz1q6brga6dm6f2yy"))))
14451 (build-system emacs-build-system)
14452 (propagated-inputs
14453 `(("emacs-org" ,emacs-org)
14454 ("emacs-dash" ,emacs-dash)
14455 ("emacs-frecency" ,emacs-frecency)))
14456 (home-page "https://github.com/alphapapa/org-recent-headings")
14457 (synopsis "Navigate to recently used Org headings and lists")
14458 (description "This package maintains a list of recently used Org headings,
14459 as well as functions for navigating between these headings.")
14460 (license license:gpl3+)))
14461
14462 (define-public emacs-org-super-agenda
14463 ;; emacs-org-sidebar depends on a newer commit than the latest release version.
14464 (let ((commit "a87ca11fbbe72ab6c1c4c3b55ae9e1e93ebfb8ba")
14465 (revision "3"))
14466 (package
14467 (name "emacs-org-super-agenda")
14468 (version (git-version "1.1.1" revision commit))
14469 (source (origin
14470 (method git-fetch)
14471 (uri (git-reference
14472 (url "https://github.com/alphapapa/org-super-agenda")
14473 (commit commit)))
14474 (file-name (git-file-name name version))
14475 (sha256
14476 (base32
14477 "08b7babdaqblb6jff57an4kbcxk6fkhf668620fipfjgbsnqv3ff"))))
14478 (build-system emacs-build-system)
14479 (propagated-inputs
14480 `(("emacs-org" ,emacs-org)
14481 ("emacs-dash" ,emacs-dash)
14482 ("emacs-ts" ,emacs-ts)
14483 ("emacs-ht" ,emacs-ht)
14484 ("emacs-s" ,emacs-s)))
14485 (home-page "https://github.com/alphapapa/org-super-agenda")
14486 (synopsis "Supercharged Org agenda")
14487 (description "This package allows items in the Org agenda to be grouped
14488 into sections while preserving the structure imposed by any timestamps.")
14489 (license license:gpl3+))))
14490
14491 (define-public emacs-org-make-toc
14492 (package
14493 (name "emacs-org-make-toc")
14494 (version "0.5")
14495 (source (origin
14496 (method git-fetch)
14497 (uri (git-reference
14498 (url "https://github.com/alphapapa/org-make-toc")
14499 (commit version)))
14500 (file-name (git-file-name name version))
14501 (sha256
14502 (base32
14503 "180ji6nnj6qj0rs1rdp1zlcrfsqf7ikb44ym8icbp5d6al2s4hnr"))))
14504 (build-system emacs-build-system)
14505 (propagated-inputs
14506 `(("emacs-org" ,emacs-org)
14507 ("emacs-dash" ,emacs-dash)
14508 ("emacs-s" ,emacs-s)))
14509 (home-page "https://github.com/alphapapa/org-make-toc")
14510 (synopsis "Maintain a table of contents for an Org file")
14511 (description "This package facilitates the creation and maintenance of
14512 tables of contents.")
14513 (license license:gpl3+)))
14514
14515 (define-public emacs-ts
14516 (package
14517 (name "emacs-ts")
14518 (version "0.2")
14519 (source
14520 (origin
14521 (method git-fetch)
14522 (uri (git-reference
14523 (url "https://github.com/alphapapa/ts.el")
14524 (commit version)))
14525 (sha256
14526 (base32 "0hmzc1ppnkkr0lfq5fhzqr6icv6iqz824a6bnns7zr466hhqp3qb"))
14527 (file-name (git-file-name name version))))
14528 (build-system emacs-build-system)
14529 (propagated-inputs
14530 `(("emacs-s" ,emacs-s)
14531 ("emacs-dash" ,emacs-dash)))
14532 (arguments
14533 ;; XXX: Three tests are failing because of a timezone-related issue
14534 ;; with how they're written. On my machine, all the failing test
14535 ;; results are 18000 seconds (5 hours) off.
14536
14537 ;; The ts-parse-org function accepts a string without any timezone
14538 ;; info, not assumed to be in Unix time, and converts it to a so-called
14539 ;; ts struct. The ts-unix function (accessor) accepts a ts struct,
14540 ;; then seems to assume the struct's corresponding time is in terms of
14541 ;; the user's current time zone, before returning a Unix time in
14542 ;; seconds.
14543
14544 ;; The failing tests all have similar problems, but nothing else about
14545 ;; the library seems particularly off.
14546
14547 `(#:tests? #t
14548 #:test-command '("emacs" "--batch"
14549 "-l" "test/test.el"
14550 "-f" "ert-run-tests-batch-and-exit")
14551 #:phases
14552 (modify-phases %standard-phases
14553 (add-before 'check 'make-tests-writable
14554 (lambda _
14555 (make-file-writable "test/test.el")
14556 #t))
14557 (add-before 'check 'delete-failing-tests
14558 (lambda _
14559 (emacs-batch-edit-file "test/test.el"
14560 `(progn (progn
14561 (goto-char (point-min))
14562 (dolist (test-regexp
14563 '("ert-deftest ts-format"
14564 "ert-deftest ts-parse-org\\_>"
14565 "ert-deftest ts-parse-org-element"
14566 "ert-deftest ts-update"))
14567 (re-search-forward test-regexp)
14568 (beginning-of-line)
14569 (kill-sexp)))
14570 (basic-save-buffer)))
14571 #t)))))
14572 (home-page "https://github.com/alphapapa/ts.el")
14573 (synopsis "Timestamp and date/time library")
14574 (description "This package facilitates manipulating dates, times, and
14575 timestamps by providing a @code{ts} struct.")
14576 (license license:gpl3+)))
14577
14578 (define-public emacs-peg
14579 (package
14580 (name "emacs-peg")
14581 (version "1.0")
14582 (source
14583 (origin
14584 (method url-fetch)
14585 (uri (string-append "https://elpa.gnu.org/packages/peg-" version ".tar"))
14586 (sha256
14587 (base32 "0skr5dz9k34r409hisnj37n1b7n62l3md0glnfx578xkbmxlpcxl"))))
14588 (build-system emacs-build-system)
14589 (home-page "https://elpa.gnu.org/packages/peg.html")
14590 (synopsis "Parsing Expression Grammars in Elisp")
14591 (description "This package provides a macro that parses the current buffer
14592 according to a parsing expression grammar.")
14593 (license license:gpl3+)))
14594
14595 (define-public emacs-org-ql
14596 (package
14597 (name "emacs-org-ql")
14598 (version "0.3.2")
14599 (source (origin
14600 (method git-fetch)
14601 (uri (git-reference
14602 (url "https://github.com/alphapapa/org-ql")
14603 (commit version)))
14604 (sha256
14605 (base32
14606 "11bhpi2l28vp8mm9nx18jljbqdnh9vxpv9kp1dn9lpsgivcdbc34"))
14607 (file-name (git-file-name name version))))
14608 (build-system emacs-build-system)
14609 (propagated-inputs
14610 `(("emacs-s" ,emacs-s)
14611 ("emacs-f" ,emacs-f)
14612 ("emacs-ov" ,emacs-ov)
14613 ("emacs-peg" ,emacs-peg)
14614 ("emacs-org-super-agenda" ,emacs-org-super-agenda)
14615 ("emacs-ts" ,emacs-ts)
14616 ("emacs-org" ,emacs-org)
14617 ("emacs-helm" ,emacs-helm)
14618 ("emacs-helm-org" ,emacs-helm-org)
14619 ("emacs-dash" ,emacs-dash)))
14620 (native-inputs
14621 `(("emacs-buttercup" ,emacs-buttercup)))
14622 (arguments
14623 `(#:phases
14624 (modify-phases %standard-phases
14625 (add-after 'unpack 'require-helm
14626 (lambda _
14627 (substitute* "helm-org-ql.el"
14628 (("^;;;; Requirements")
14629 ";;;; Requirements\n(require 'helm)\n(require 'helm-org)"))
14630 #t)))
14631 #:tests? #t
14632 #:test-command '("buttercup" "-L" ".")))
14633 (home-page "https://github.com/alphapapa/org-ql/")
14634 (synopsis "Query language for Org buffers")
14635 (description "This package provides a Lispy query language for Org
14636 files, allowing for actions to be performed based on search criteria.")
14637 (license license:gpl3+)))
14638
14639 (define-public emacs-org-auto-expand
14640 (let ((commit "4938d5f6460e2f8f051ba9ac000b291bfa43ef62")
14641 (revision "1"))
14642 (package
14643 (name "emacs-org-auto-expand")
14644 (version (git-version "0.1" revision commit))
14645 (source (origin
14646 (method git-fetch)
14647 (uri (git-reference
14648 (url "https://github.com/alphapapa/org-auto-expand")
14649 (commit commit)))
14650 (file-name (git-file-name name version))
14651 (sha256
14652 (base32
14653 "1my0c6xmkh37lwi6l472lz9d86lf20h6xcllzlxm1lxa24rhva6v"))))
14654 (build-system emacs-build-system)
14655 (propagated-inputs
14656 `(("emacs-org" ,emacs-org)
14657 ("emacs-dash" ,emacs-dash)))
14658 (home-page "https://github.com/alphapapa/org-auto-expand")
14659 (synopsis "Automatically expand certain Org headings")
14660 (description "This package allows a customizable set of headings in Org
14661 files to be expanded upon opening them.")
14662 (license license:gpl3+))))
14663
14664 (define-public emacs-parsebib
14665 (package
14666 (name "emacs-parsebib")
14667 (version "2.3.3")
14668 (source
14669 (origin
14670 (method git-fetch)
14671 (uri (git-reference
14672 (url "https://github.com/joostkremers/parsebib")
14673 (commit version)))
14674 (file-name (git-file-name name version))
14675 (sha256
14676 (base32 "0mpgyy9qfb5x4fvlmb274hgayjbwf0bgk65dxyx31zikjwpcd56p"))))
14677 (build-system emacs-build-system)
14678 (home-page "https://github.com/joostkremers/parsebib")
14679 (synopsis "Library for parsing @file{.bib} files")
14680 (description
14681 "This package provides an Emacs library for parsing @file{.bib} files.")
14682 (license license:gpl3+)))
14683
14684 (define-public emacs-ebib
14685 (package
14686 (name "emacs-ebib")
14687 (version "2.22.1")
14688 (source
14689 (origin
14690 (method git-fetch)
14691 (uri (git-reference
14692 (url "https://github.com/joostkremers/ebib")
14693 (commit version)))
14694 (file-name (git-file-name name version))
14695 (sha256
14696 (base32 "0spiz5r2y4pdpyc4d3f9w228giq0j9rm8f5h5akzn5rwiq9pfkwz"))))
14697 (build-system emacs-build-system)
14698 (propagated-inputs
14699 `(("emacs-parsebib" ,emacs-parsebib)))
14700 (home-page "https://joostkremers.github.io/ebib/")
14701 (synopsis "BibTeX database manager for Emacs")
14702 (description
14703 "Ebib is a BibTeX database manager that runs in GNU Emacs.
14704 With Ebib you can create, sort and manage your @file{.bib} database files, all
14705 within Emacs. It supports searching, multi-line field values and
14706 @samp{@@String} and @samp{@@Preamble} definitions. Ebib integrates
14707 with (La)TeX mode, Org mode and other Emacs editing modes.")
14708 ;; The Ebib source files are released under a BSD license with
14709 ;; the exception of org-ebib.el, which is released under the GNU
14710 ;; GPL.
14711 (license (list license:bsd-3
14712 license:gpl3+))))
14713
14714 (define-public emacs-biblio
14715 (package
14716 (name "emacs-biblio")
14717 (version "0.2")
14718 (source
14719 (origin
14720 (method git-fetch)
14721 (uri (git-reference
14722 (url "https://github.com/cpitclaudel/biblio.el")
14723 (commit version)))
14724 (file-name (git-file-name name version))
14725 (sha256
14726 (base32 "1gxjind6r235az59dr8liv03d8994mqb8a7m28j3c12q7p70aziz"))))
14727 (build-system emacs-build-system)
14728 (propagated-inputs
14729 `(("emacs-dash" ,emacs-dash)
14730 ("emacs-let-alist" ,emacs-let-alist)))
14731 (home-page "https://github.com/cpitclaudel/biblio.el")
14732 (synopsis "Browse and import bibliographic references")
14733 (description "This package provides an extensible Emacs package for
14734 browsing and fetching references.
14735
14736 @file{biblio.el} makes it easy to browse and gather bibliographic references
14737 and publications from various sources, by keywords or by DOI. References are
14738 automatically fetched from well-curated sources, and formatted as BibTeX.")
14739 (license license:gpl3+)))
14740
14741 (define-public emacs-helm-bibtex
14742 (let ((commit "d4471232be26793fbf56c0ac3690b5f537c378b9")
14743 (revision "2"))
14744 (package
14745 (name "emacs-helm-bibtex")
14746 (version (string-append "2.0.0" "-" revision "."
14747 (string-take commit 7)))
14748 (source
14749 (origin
14750 (method git-fetch)
14751 (uri (git-reference
14752 (url "https://github.com/tmalsburg/helm-bibtex")
14753 (commit commit)))
14754 (file-name (git-file-name name version))
14755 (sha256
14756 (base32
14757 "1bkzhic6qckb267025il1r3xcpz99kisphxiafni1pxvf9jafr0j"))))
14758 (build-system emacs-build-system)
14759 (propagated-inputs
14760 `(("emacs-helm" ,emacs-helm)
14761 ("emacs-parsebib" ,emacs-parsebib)
14762 ("emacs-s" ,emacs-s)
14763 ("emacs-dash" ,emacs-dash)
14764 ("emacs-f" ,emacs-f)
14765 ("emacs-biblio" ,emacs-biblio)
14766 ("emacs-ivy" ,emacs-ivy)))
14767 (home-page "https://github.com/tmalsburg/helm-bibtex")
14768 (synopsis "Bibliography manager based on Helm")
14769 (description "This package provides bibliography manager for Emacs,
14770 based on Helm and the bibtex-completion backend.
14771
14772 Key features:
14773
14774 @itemize
14775 @item Quick access to your bibliography from within Emacs
14776 @item Powerful search capabilities
14777 @item Provides instant search results as you type
14778 @item Tightly integrated with LaTeX authoring, emails, Org mode, etc.
14779 @item Open the PDFs, URLs, or DOIs associated with an entry
14780 @item Insert LaTeX cite commands, Ebib links, or Pandoc citations,
14781 BibTeX entries, or plain text references at point, attach PDFs to emails
14782 @item Support for note taking
14783 @item Quick access to online bibliographic databases such as Pubmed,
14784 arXiv, Google Scholar, Library of Congress, etc.
14785 @item Imports BibTeX entries from CrossRef and other sources.
14786 @end itemize\n")
14787 (license license:gpl3+))))
14788
14789 (define-public emacs-ewmctrl
14790 (let ((commit "3d0217c4d6cdb5c308b6cb4293574f470d4faacf"))
14791 (package
14792 (name "emacs-ewmctrl")
14793 (version (git-version "0.0.1" "1" commit))
14794 (source
14795 (origin
14796 (method git-fetch)
14797 (uri (git-reference
14798 (url "https://github.com/flexibeast/ewmctrl")
14799 (commit commit)))
14800 (file-name (git-file-name name version))
14801 (sha256
14802 (base32
14803 "0ilwvx0qryv3v6xf0gxqwnfm6pf96gxap8h9g3f6z6lk9ff4n1wi"))))
14804 (build-system emacs-build-system)
14805 (arguments
14806 '(#:phases
14807 (modify-phases %standard-phases
14808 (add-after 'unpack 'patch-ewmctrl
14809 ;; This build phase makes sure ‘ewmctrl’ looks
14810 ;; for ‘wmctrl’ in the right place.
14811 (lambda _
14812 (let ((file "ewmctrl.el"))
14813 (chmod file #o644)
14814 (emacs-substitute-sexps file
14815 ("(defcustom ewmctrl-wmctrl-path" (which "wmctrl")))))))))
14816 (inputs
14817 `(("wmctrl" ,wmctrl)))
14818 (home-page "https://github.com/flexibeast/ewmctrl")
14819 (synopsis "Emacs interface to @code{wmctrl}")
14820 (description "@code{ewmctrl} provides an Emacs interface to
14821 @code{wmctrl} command-line window-management program.")
14822 (license license:gpl3+))))
14823
14824 (define-public emacs-erc-image
14825 (let ((commit "82fb3871f02e24b1e880770b9a3d187aab43d0f0")
14826 (revision "3"))
14827 (package
14828 (name "emacs-erc-image")
14829 (version (git-version "0" revision commit))
14830 (source
14831 (origin
14832 (method git-fetch)
14833 (uri (git-reference
14834 (url "https://github.com/kidd/erc-image.el")
14835 (commit commit)))
14836 (file-name (git-file-name name version))
14837 (sha256
14838 (base32
14839 "1q8mkf612fb4fjp8h4kbr107wn083iqfdgv8f80pcmil8y33dw9i"))))
14840 (build-system emacs-build-system)
14841 (arguments
14842 `(#:phases (modify-phases %standard-phases
14843 ;; The package autoloader fails to provide
14844 ;; the image module when handled by Guix.
14845 ;; Disable this phase, and let the package
14846 ;; handle the `eval-after-load' procedure.
14847 (delete 'make-autoloads))))
14848 (home-page "https://github.com/kidd/erc-image.el")
14849 (synopsis "Show inlined images (png/jpg/gif/svg) in ERC buffers")
14850 (description "This plugin subscribes to hooks @code{erc-insert-modify-hook}
14851 and @code{erc-send-modify-hook} to download and show images.")
14852 (license license:gpl3+))))
14853
14854 (define-public emacs-helm-gtags
14855 (package
14856 (name "emacs-helm-gtags")
14857 (version "1.5.7")
14858 (source
14859 (origin
14860 (method git-fetch)
14861 (uri (git-reference
14862 (url "https://github.com/syohex/emacs-helm-gtags")
14863 (commit version)))
14864 (file-name (git-file-name name version))
14865 (sha256
14866 (base32 "1kc1jzk10nfd2v20g8dwnb6a944afrwdwnkzl06w4ba8k4yim7gi"))))
14867 (build-system emacs-build-system)
14868 (propagated-inputs
14869 `(("emacs-helm" ,emacs-helm)))
14870 (home-page "https://github.com/syohex/emacs-helm-gtags")
14871 (synopsis "Emacs Helm interface to GNU Global")
14872 (description
14873 "@code{emacs-helm-gtags} provides a Emacs Helm interface to GNU Global.")
14874 (license license:gpl3+)))
14875
14876 (define-public emacs-list-utils
14877 (package
14878 (name "emacs-list-utils")
14879 (version "0.4.4")
14880 (source
14881 (origin
14882 (method git-fetch)
14883 (uri (git-reference
14884 (url "https://github.com/rolandwalker/list-utils")
14885 (commit (string-append "v" version))))
14886 (file-name (git-file-name name version))
14887 (sha256
14888 (base32 "0ql159v7sxs33yh2l080kchrj52vk34knz50cvqi3ykpb7djg3sz"))))
14889 (build-system emacs-build-system)
14890 (home-page "https://github.com/rolandwalker/list-utils")
14891 (synopsis "List-manipulation utility functions")
14892 (description "This package provides a list manipulation library for Emacs.")
14893 (license license:gpl3+)))
14894
14895 (define-public emacs-move-text
14896 (package
14897 (name "emacs-move-text")
14898 (version "2.0.8")
14899 (source
14900 (origin
14901 (method git-fetch)
14902 (uri (git-reference
14903 (url "https://github.com/emacsfodder/move-text")
14904 (commit version)))
14905 (file-name (git-file-name name version))
14906 (sha256
14907 (base32 "06jxk5g23822gfmwrxhc34zand3dr8p2wjh1zs3j61ibz6n0nmz1"))))
14908 (build-system emacs-build-system)
14909 (home-page "https://github.com/emacsfodder/move-text")
14910 (synopsis "Move current line or region with M-up or M-down")
14911 (description "This package provide functions to move the current line
14912 using @kbd{M-up} or @kbd{M-down} if a region is marked, it will move the
14913 region instead.")
14914 (license license:gpl3+)))
14915
14916 (define-public emacs-validate
14917 (package
14918 (name "emacs-validate")
14919 (version "1.0.5")
14920 (source (origin
14921 (method git-fetch)
14922 (uri (git-reference
14923 (url "https://github.com/Malabarba/validate.el")
14924 (commit version)))
14925 (file-name (git-file-name name version))
14926 (sha256
14927 (base32
14928 "1l12ibx6cw4mgicgjpw71fb4fr4sd0k54lvbpq7ngc29br3j6i4v"))))
14929 (build-system emacs-build-system)
14930 (home-page "https://github.com/Malabarba/validate.el")
14931 (synopsis "Emacs library for scheme validation")
14932 (description "This Emacs library provides two functions that perform
14933 schema validation.")
14934 (license license:gpl3+)))
14935
14936 (define-public emacs-rainbow-blocks
14937 (let ((commit "dd435d7bb34ff6f162a5f315df308b90b7e9f842"))
14938 (package
14939 (name "emacs-rainbow-blocks")
14940 (version (git-version "1.0.0" "1" commit))
14941 (source (origin
14942 (method git-fetch)
14943 (uri (git-reference
14944 (url "https://github.com/istib/rainbow-blocks")
14945 (commit commit)))
14946 (file-name (git-file-name name version))
14947 (sha256
14948 (base32
14949 "06yfb3i7wzvqrhkb61zib9xvpb5i00s4frizkzff66im05k0n795"))))
14950 (build-system emacs-build-system)
14951 (home-page "https://github.com/istib/rainbow-blocks")
14952 (synopsis "Highlight sexp blocks")
14953 (description "Rainbow-blocks is an Emacs mode that highlights blocks
14954 made of parentheses, brackets, and braces according to their depth. Each
14955 successive level is highlighted in a different color. This makes it easy to
14956 orient yourself in the code, and tell which statements are at a given level.")
14957 (license license:gpl3+))))
14958
14959 (define-public emacs-hierarchy
14960 (package
14961 (name "emacs-hierarchy")
14962 (version "0.7.0")
14963 (source
14964 (origin
14965 (method git-fetch)
14966 (uri (git-reference
14967 (url "https://github.com/DamienCassou/hierarchy")
14968 (commit (string-append "v" version))))
14969 (file-name (git-file-name name version))
14970 (sha256
14971 (base32 "1kykbb1sil5cycfa5aj8dhsxc5yrx1641i2np5kwdjid6ahdlz5r"))))
14972 (build-system emacs-build-system)
14973 (native-inputs
14974 `(("emacs-buttercup" ,emacs-buttercup)))
14975 (arguments
14976 `(#:tests? #t
14977 #:test-command '("buttercup" "-L" ".")))
14978 (home-page "https://github.com/DamienCassou/hierarchy")
14979 (synopsis "Library to create and display hierarchy structures")
14980 (description "This package provides an Emacs library to create, query,
14981 navigate and display hierarchy structures.")
14982 (license license:gpl3+)))
14983
14984 (define-public emacs-tree-mode
14985 (let ((commit "b06078826d5875d74b0e7b7ac47b0d0917610534")
14986 (revision "1"))
14987 (package
14988 (name "emacs-tree-mode")
14989 (version (string-append "0.0.1" "-" revision "."
14990 (string-take commit 7)))
14991 (source
14992 (origin
14993 (method git-fetch)
14994 (uri (git-reference
14995 (url "https://github.com/emacsorphanage/tree-mode")
14996 (commit commit)))
14997 (file-name (git-file-name name version))
14998 (sha256
14999 (base32
15000 "13bbdhdmqg4x9yghanhr8fsbsxbnypzxdxgicz31sjjm675kpnix"))))
15001 (build-system emacs-build-system)
15002 (home-page "https://github.com/emacsorphanage/tree-mode")
15003 (synopsis "Emacs mode to manage tree widgets")
15004 (description
15005 "This package provides an Emacs library to manage tree widgets.")
15006 (license license:gpl3+))))
15007
15008 (define-public emacs-md4rd
15009 (package
15010 (name "emacs-md4rd")
15011 (version "0.3.1")
15012 (source (origin
15013 (method git-fetch)
15014 (uri (git-reference
15015 (url "https://github.com/ahungry/md4rd")
15016 (commit version)))
15017 (file-name (git-file-name name version))
15018 (sha256
15019 (base32
15020 "1n6g6k4adzkkn1g7z4j27s35xy12c1fg2r08gv345ddr3wplq4ri"))))
15021 (propagated-inputs
15022 `(("emacs-hierarchy" ,emacs-hierarchy)
15023 ("emacs-request" ,emacs-request)
15024 ("emacs-dash" ,emacs-dash)
15025 ("emacs-s" ,emacs-s)
15026 ("emacs-tree-mode" ,emacs-tree-mode)))
15027 (build-system emacs-build-system)
15028 (home-page "https://github.com/ahungry/md4rd")
15029 (synopsis "Emacs Mode for Reddit")
15030 (description
15031 "This package allows reading Reddit from within Emacs interactively.")
15032 (license license:gpl3+)))
15033
15034 (define-public emacs-pulseaudio-control
15035 (let ((commit "7e1a87068379075a5e9ce36c64c686c03d20d379")
15036 (revision "3"))
15037 (package
15038 (name "emacs-pulseaudio-control")
15039 (version (git-version "0.0.1" revision commit))
15040 (source
15041 (origin
15042 (method git-fetch)
15043 (uri (git-reference
15044 (url "https://github.com/flexibeast/pulseaudio-control")
15045 (commit commit)))
15046 (file-name (git-file-name name version))
15047 (sha256
15048 (base32
15049 "0wcaqyh15x56255rrj350089z15pnwixa2vf0ly6dv0hjmzmh3mr"))))
15050 (build-system emacs-build-system)
15051 (arguments
15052 '(#:phases (modify-phases %standard-phases
15053 (add-after 'unpack 'patch-file-name
15054 (lambda* (#:key inputs #:allow-other-keys)
15055 (let ((pulseaudio (assoc-ref inputs "pulseaudio")))
15056 (chmod "pulseaudio-control.el" #o600)
15057 (emacs-substitute-variables "pulseaudio-control.el"
15058 ("pulseaudio-control-pactl-path"
15059 (string-append pulseaudio "/bin/pactl")))
15060 #t))))))
15061 (inputs `(("pulseaudio" ,pulseaudio)))
15062 (home-page "https://github.com/flexibeast/pulseaudio-control")
15063 (synopsis "Control @code{pulseaudio} from Emacs")
15064 (description
15065 "This package allows controlling @code{pulseaudio} from Emacs.")
15066 (license license:gpl3+))))
15067
15068 (define-public emacs-datetime
15069 (package
15070 (name "emacs-datetime")
15071 (version "0.6.6")
15072 (source
15073 (origin
15074 (method git-fetch)
15075 (uri (git-reference
15076 (url "https://github.com/doublep/datetime")
15077 (commit version)))
15078 (file-name (git-file-name name version))
15079 (sha256
15080 (base32
15081 "0a3q667pybpmsjkbgf6287jwgpnx8brp5314wb8zbczw6ncygnbi"))))
15082 (build-system emacs-build-system)
15083 (inputs
15084 `(("emacs-extmap" ,emacs-extmap)))
15085 (home-page "https://github.com/doublep/datetime/")
15086 (synopsis "Library to work with dates in Emacs")
15087 (description "Parsing, formatting, matching and recoding
15088 timestamps and date-time format strings library for Emacs.")
15089 (license license:gpl3+)))
15090
15091 (define-public emacs-org-mind-map
15092 (let ((commit "9d6e262bedd94daf9de269f4d56de277275677cb")
15093 (revision "1"))
15094 (package
15095 (name "emacs-org-mind-map")
15096 (version (string-append "0.0.1" "-" revision "."
15097 (string-take commit 7)))
15098 (source
15099 (origin
15100 (method git-fetch)
15101 (uri (git-reference
15102 (url "https://github.com/theodorewiles/org-mind-map")
15103 (commit commit)))
15104 (file-name (git-file-name name version))
15105 (sha256
15106 (base32
15107 "0jgkkgq7g64zckrmjib0hvz0qy3ynz5vz13qbmlpf096l3bb65wn"))))
15108 (propagated-inputs
15109 `(("emacs-dash" ,emacs-dash)))
15110 (build-system emacs-build-system)
15111 (home-page "https://github.com/theodorewiles/org-mind-map")
15112 (synopsis "Create Graphviz directed graphs from Org files")
15113 (description
15114 "This package creates Graphviz directed graphs from Org files.")
15115 (license license:gpl3+))))
15116
15117 (define-public emacs-npm-mode
15118 (package
15119 (name "emacs-npm-mode")
15120 (version "0.6.0")
15121 (source
15122 (origin
15123 (method git-fetch)
15124 (uri (git-reference
15125 (url "https://github.com/mojochao/npm-mode")
15126 (commit version)))
15127 (file-name (git-file-name name version))
15128 (sha256
15129 (base32 "1mh6nbffciw4yhv049kdhh796ysj1x21ndm3fwymhskb3dy0w1ss"))))
15130 (build-system emacs-build-system)
15131 (home-page "https://github.com/mojochao/npm-mode")
15132 (synopsis "Minor mode for working with @code{npm} projects")
15133 (description
15134 "@code{npm-mode} provides a minor mode to work with @code{npm} projects.")
15135 (license license:gpl3+)))
15136
15137 (define-public emacs-itail
15138 (let ((commit "6e43c20da03be3b9c6ece93b7dc3495975ec1888")
15139 (revision "1"))
15140 (package
15141 (name "emacs-itail")
15142 (version (string-append "0.0.1" "-" revision "."
15143 (string-take commit 7)))
15144 (source
15145 (origin
15146 (method git-fetch)
15147 (uri (git-reference
15148 (url "https://github.com/re5et/itail")
15149 (commit commit)))
15150 (file-name (git-file-name name version))
15151 (sha256
15152 (base32
15153 "044nzxh1hq41faxw3lix0wy78vfz304pjcaa5a11dqfz7q3gx5cv"))))
15154 (build-system emacs-build-system)
15155 (home-page "https://github.com/re5et/itail")
15156 (synopsis "Interactive @code{tail} Emacs mode")
15157 (description "@code{itail} provides interactive @code{tail} mode
15158 that allows you to filter the tail with unix pipes and highlight the
15159 contents of the tailed file. Works locally or on remote files using
15160 tramp.")
15161 (license license:gpl3+))))
15162
15163 (define-public emacs-loop
15164 (package
15165 (name "emacs-loop")
15166 (version "1.3")
15167 (source
15168 (origin
15169 (method git-fetch)
15170 (uri (git-reference
15171 (url "https://github.com/Wilfred/loop.el")
15172 (commit version)))
15173 (file-name (git-file-name name version))
15174 (sha256
15175 (base32 "1gs95xnmnn8aa4794k7h8mw1sz1nfdh9v0caqj6yvnsdnwy74n5x"))))
15176 (build-system emacs-build-system)
15177 (native-inputs
15178 `(("emacs-ert-runner" ,emacs-ert-runner)
15179 ("emacs-undercover" ,emacs-undercover)))
15180 (arguments
15181 `(#:tests? #t
15182 #:test-command '("ert-runner")))
15183 (home-page "https://github.com/Wilfred/loop.el")
15184 (synopsis "Imperative loop structures for Emacs")
15185 (description "Loop structures familiar to users of other languages. This
15186 library adds a selection of popular loop structures as well as break and
15187 continue.")
15188 (license license:gpl3+)))
15189
15190 (define-public emacs-elisp-refs
15191 (package
15192 (name "emacs-elisp-refs")
15193 (version "1.3")
15194 (source
15195 (origin
15196 (method git-fetch)
15197 (uri (git-reference
15198 (url "https://github.com/Wilfred/elisp-refs")
15199 (commit version)))
15200 (file-name (git-file-name name version))
15201 (sha256
15202 (base32 "0w7k91xf69zc0zkjrw8h8sjdjf9xq9qs5zhvajhd718lzf93564b"))))
15203 (build-system emacs-build-system)
15204 (propagated-inputs
15205 `(("emacs-dash" ,emacs-dash)
15206 ("emacs-f" ,emacs-f)
15207 ("emacs-list-utils" ,emacs-list-utils)
15208 ("emacs-loop" ,emacs-loop)
15209 ("emacs-s" ,emacs-s)
15210 ("emacs-shut-up" ,emacs-shut-up)))
15211 (native-inputs
15212 `(("emacs-ert-runner" ,emacs-ert-runner)
15213 ("emacs-undercover" ,emacs-undercover)))
15214 (arguments
15215 `(#:tests? #t
15216 #:test-command '("ert-runner")
15217 #:phases
15218 (modify-phases %standard-phases
15219 (add-before 'check 'disable-refs-next-match-test
15220 ;; Hack to disable the failing test for emacs27
15221 ;; https://github.com/Wilfred/elisp-refs/issues/29
15222 (lambda _
15223 (substitute* "test/unit-test.el"
15224 (("ert-deftest elisp-refs-next-match")
15225 "defun elisp-refs-next-match"))
15226 #t)))))
15227 (home-page "https://github.com/Wilfred/elisp-refs")
15228 (synopsis "Find callers of elisp functions or macros")
15229 (description "Find references to functions, macros or variables. Unlike a
15230 dumb text search, @code{elisp-refs} actually parses the code, so it's never
15231 confused by comments or @code{foo-bar} matching @code{foo}.")
15232 (license license:gpl3+)))
15233
15234 (define-public emacs-crux
15235 (let ((commit "308f17d914e2cd79cbc809de66d02b03ceb82859")
15236 (revision "2"))
15237 (package
15238 (name "emacs-crux")
15239 (version (git-version "0.3.0" revision commit))
15240 (source
15241 (origin
15242 (method git-fetch)
15243 (uri (git-reference
15244 (url "https://github.com/bbatsov/crux")
15245 (commit commit)))
15246 (file-name (git-file-name name version))
15247 (sha256
15248 (base32
15249 "0rf84finwlvmy0xpgyljjvnrijlmkzjyw9rh97svgxp9c1rzfk0x"))))
15250 (build-system emacs-build-system)
15251 (home-page "https://github.com/bbatsov/crux")
15252 (synopsis "Collection of useful functions for Emacs")
15253 (description
15254 "@code{crux} provides a collection of useful functions for Emacs.")
15255 (license license:gpl3+))))
15256
15257 (define-public emacs-edit-server
15258 (package
15259 (name "emacs-edit-server")
15260 (version "1.15")
15261 (source
15262 (origin
15263 (method git-fetch)
15264 (uri (git-reference
15265 (url "https://github.com/stsquad/emacs_chrome")
15266 (commit (string-append "v" version))))
15267 (file-name (git-file-name name version))
15268 (sha256
15269 (base32 "0xxby3ghs38i1l7kag12rnzlzcg9297pm8k6kqq3aqzsg9d2950y"))))
15270 (build-system emacs-build-system)
15271 (arguments
15272 `(#:phases
15273 (modify-phases %standard-phases
15274 (add-after 'unpack 'chdir-elisp
15275 ;; Elisp directory is not in root of the source.
15276 (lambda _
15277 (chdir "servers"))))))
15278 (home-page "https://github.com/stsquad/emacs_chrome")
15279 (synopsis "Server that responds to edit requests from Chromium")
15280 (description
15281 "This package provides an edit server to respond to requests from Emacs.")
15282 (license license:gpl3+)))
15283
15284 (define-public emacs-m-buffer-el
15285 (package
15286 (name "emacs-m-buffer-el")
15287 (version "0.15")
15288 (source
15289 (origin
15290 (method git-fetch)
15291 (uri (git-reference
15292 (url "https://github.com/phillord/m-buffer-el")
15293 (commit (string-append "v" version))))
15294 (file-name (git-file-name name version))
15295 (sha256
15296 (base32
15297 "1sx76i59razwccvn6x7rx5a124bfyjw9fcbxf4gj7nsg33qiq809"))))
15298 (arguments
15299 `(#:phases
15300 (modify-phases %standard-phases
15301 (add-before 'install 'check
15302 (lambda* (#:key inputs #:allow-other-keys)
15303 (invoke "emacs" "--batch" "-L" "."
15304 "-l" "test/m-buffer-test.el"
15305 "-l" "test/m-buffer-at-test.el"
15306 "-f" "ert-run-tests-batch-and-exit"))))))
15307 (build-system emacs-build-system)
15308 (home-page "https://github.com/phillord/m-buffer-el")
15309 (synopsis "List oriented buffer operations for Emacs")
15310 (description "@code{m-buffer} provides a set of list-orientated functions
15311 for operating over the contents of Emacs buffers.")
15312 (license license:gpl3+)))
15313
15314 (define-public emacs-let-alist
15315 (package
15316 (name "emacs-let-alist")
15317 (version "1.0.6")
15318 (source
15319 (origin
15320 (method url-fetch)
15321 (uri (string-append
15322 "https://elpa.gnu.org/packages/let-alist-" version ".el"))
15323 (sha256
15324 (base32 "0szj7vnjzz4zci5fvz7xqgcpi4pzdyyf4qi2s8xar2hi7v3yaawr"))))
15325 (build-system emacs-build-system)
15326 (home-page "https://elpa.gnu.org/packages/let-alist.html")
15327 (synopsis "Easily let-bind values of an assoc-list by their names")
15328 (description "This package offers a single macro, @code{let-alist}. This
15329 macro takes a first argument (whose value must be an alist) and a body.")
15330 (license license:gpl3+)))
15331
15332 (define-public emacs-esup
15333 (let ((commit "0de8af8233d9ce1b67f05a50f25c481c4f1118d8")
15334 (revision "1"))
15335 (package
15336 (name "emacs-esup")
15337 (version (git-version "0.7.1" revision commit))
15338 (source
15339 (origin
15340 (method git-fetch)
15341 (uri (git-reference
15342 (url "https://github.com/jschaf/esup")
15343 (commit commit)))
15344 (file-name (git-file-name name version))
15345 (sha256
15346 (base32
15347 "01khb3xyj0ylwib6ryzzvqmkh5wvzxiq2n3l0s3h9zv7wx849bzv"))))
15348 (build-system emacs-build-system)
15349 (native-inputs
15350 `(("emacs-noflet" ,emacs-noflet)
15351 ("emacs-undercover" ,emacs-undercover)
15352 ("emacs-buttercup" ,emacs-buttercup)))
15353 (propagated-inputs
15354 `(("emacs-dash" ,emacs-dash)))
15355 (arguments
15356 `(#:tests? #t
15357 #:test-command '("buttercup" "-L" ".")))
15358 (home-page "https://github.com/jschaf/esup")
15359 (synopsis "Emacs start up profiler")
15360 (description "Benchmark Emacs Startup time without ever leaving
15361 your Emacs.")
15362 (license license:gpl2+))))
15363
15364 (define-public emacs-restart-emacs
15365 (let ((commit "9aa90d3df9e08bc420e1c9845ee3ff568e911bd9")
15366 (revision "1"))
15367 (package
15368 (name "emacs-restart-emacs")
15369 (version (git-version "0.1.1" revision commit))
15370 (source
15371 (origin
15372 (method git-fetch)
15373 (uri (git-reference
15374 (url "https://github.com/iqbalansari/restart-emacs")
15375 (commit commit)))
15376 (file-name (git-file-name name version))
15377 (sha256
15378 (base32 "02x1a85k7r95z8091zgjiaj9nf0zvx1jy4xvl3hr12qbnrx1wfav"))))
15379 (build-system emacs-build-system)
15380 (home-page "https://github.com/iqbalansari/restart-emacs")
15381 (synopsis "Restart Emacs from within Emacs")
15382 (description "This package provides a simple command to restart Emacs from
15383 within Emacs.")
15384 (license license:gpl3+))))
15385
15386 (define-public emacs-sourcemap
15387 (package
15388 (name "emacs-sourcemap")
15389 (version "0.03")
15390 (source
15391 (origin
15392 (method git-fetch)
15393 (uri (git-reference
15394 (url "https://github.com/syohex/emacs-sourcemap")
15395 (commit version)))
15396 (file-name (git-file-name name version))
15397 (sha256
15398 (base32 "115g2mfpbfywp8xnag4gsb50klfvplqfh928a5mabb5s8v4a3582"))))
15399 (build-system emacs-build-system)
15400 (home-page "https://github.com/syohex/emacs-sourcemap")
15401 (synopsis "Sourcemap parser")
15402 (description "Sourcemap parser")
15403 (license license:gpl3+)))
15404
15405 (define-public emacs-macrostep
15406 (let ((commit "424e3734a1ee526a1bd7b5c3cd1d3ef19d184267"))
15407 (package
15408 (name "emacs-macrostep")
15409 (version (git-version "0.9" "1" commit))
15410 (source (origin
15411 (method git-fetch)
15412 (uri (git-reference
15413 (url "https://github.com/joddie/macrostep")
15414 (commit commit)))
15415 (file-name (git-file-name name version))
15416 (sha256
15417 (base32
15418 "1fm40mxdn289cyzgw992223dgrjmwxn4q8svyyxfaxjrpb38jhjz"))))
15419 (build-system emacs-build-system)
15420 (arguments
15421 '(#:phases
15422 (modify-phases %standard-phases
15423 (add-before 'check 'remove-test
15424 ;; Fails because of requirement ‘/bin/sh’.
15425 (lambda _
15426 (let ((file "macrostep-test.el"))
15427 (chmod file #o644)
15428 (emacs-batch-edit-file file
15429 `(progn (progn (goto-char (point-min))
15430 (re-search-forward
15431 "(ert-deftest macrostep-expand-c-macros")
15432 (beginning-of-line)
15433 (kill-sexp))
15434 (basic-save-buffer))))))
15435 (add-before 'install 'check
15436 (lambda _
15437 (invoke "emacs" "--batch" "-L" "."
15438 "-l" "macrostep-test.el"
15439 "-f" "ert-run-tests-batch-and-exit"))))))
15440 (home-page "https://github.com/joddie/macrostep")
15441 (synopsis "Interactive macro-expander for Emacs")
15442 (description "@code{macrostep} is an Emacs minor mode for interactively
15443 stepping through the expansion of macros in Emacs Lisp source code. It lets
15444 you see exactly what happens at each step of the expansion process by
15445 pretty-printing the expanded forms inline in the source buffer, which is
15446 temporarily read-only while macro expansions are visible. You can expand and
15447 collapse macro forms one step at a time, and evaluate or instrument the
15448 expansions for debugging with Edebug as normal (but see “Bugs and known
15449 limitations”, below). Single-stepping through the expansion is particularly
15450 useful for debugging macros that expand into another macro form. These can be
15451 difficult to debug with Emacs’ built-in macroexpand, which continues expansion
15452 until the top-level form is no longer a macro call.")
15453 (license license:gpl3+))))
15454
15455 (define-public emacs-parent-mode
15456 (package
15457 (name "emacs-parent-mode")
15458 (version "2.3")
15459 (source
15460 (origin
15461 (method git-fetch)
15462 (uri (git-reference
15463 (url "https://github.com/Fanael/parent-mode")
15464 (commit version)))
15465 (file-name (git-file-name name version))
15466 (sha256
15467 (base32 "0i5bc7lyyrx6swqlrp9l5x72yzwi53qn6ldrfs99gh08b3yvsnni"))))
15468 (build-system emacs-build-system)
15469 (home-page "https://github.com/Fanael/parent-mode")
15470 (synopsis "Get major mode's parent modes")
15471 (description "Get major mode's parent modes")
15472 (license license:gpl3+)))
15473
15474 (define-public emacs-lacarte
15475 (package
15476 (name "emacs-lacarte")
15477 (version "0.1")
15478 (source (origin
15479 (method url-fetch)
15480 (uri "https://www.emacswiki.org/emacs/download/lacarte.el")
15481 (sha256
15482 (base32
15483 "1sbmk37ljq5j7dsw5c37sbxvlfgdqswh7bi4dknyjzfxlq50f4am"))))
15484 (build-system emacs-build-system)
15485 (home-page "https://www.emacswiki.org/emacs/lacarte.el")
15486 (synopsis "Execute menu items as commands, with completion")
15487 (description "Execute menu items as commands, with completion.")
15488 (license license:gpl3)))
15489
15490 (define-public emacs-isearch-prop
15491 (let ((commit "4a2765f835dd115d472142da05215c4c748809f4")
15492 (revision "2"))
15493 (package
15494 (name "emacs-isearch-prop")
15495 (version (git-version "0" revision commit))
15496 (source
15497 (origin
15498 (method git-fetch)
15499 (uri (git-reference
15500 (url "https://github.com/emacsmirror/isearch-prop")
15501 (commit commit)))
15502 (file-name (git-file-name name version))
15503 (sha256
15504 (base32
15505 "06gdk5m84q6pxwng8rjxny1zkll8f3m2x6lw4xyib2dvg7iaslh3"))))
15506 (build-system emacs-build-system)
15507 (home-page "https://www.emacswiki.org/emacs/isearch-prop.el")
15508 (synopsis "Extensions to @code{isearch.el}")
15509 (description "The Emacs library @code{isearch-prop.el} lets you search within
15510 contexts. You can limit incremental search to a set of zones of
15511 buffer text, search contexts that in effect constitute a multi-region.
15512 These zones can be defined in various ways, including some ways
15513 provided specially by this library.")
15514 (license license:gpl3+))))
15515
15516 (define-public emacs-company-lua
15517 (let ((commit "29f6819de4d691e5fd0b62893a9f4fbc1c6fcb52")
15518 (revision "2"))
15519 (package
15520 (name "emacs-company-lua")
15521 (version (git-version "0.1" "2" commit))
15522 (source
15523 (origin
15524 (method git-fetch)
15525 (uri (git-reference
15526 (url "https://github.com/ptrv/company-lua")
15527 (commit commit)))
15528 (file-name (git-file-name name version))
15529 (sha256
15530 (base32
15531 "0ny2dcc7c585p7v3j6q0rpkbj1qmf2ismy8a5020jpr585xvz0hh"))))
15532 (build-system emacs-build-system)
15533 (propagated-inputs
15534 `(("emacs-company" ,emacs-company)
15535 ("emacs-s" ,emacs-s)
15536 ("emacs-f" ,emacs-f)
15537 ("emacs-lua-mode" ,emacs-lua-mode)))
15538 (arguments
15539 `(#:include (cons* "^lua\\/" %default-include)))
15540 (home-page "https://github.com/ptrv/company-lua")
15541 (synopsis "Company backend for Lua")
15542 (description
15543 "This package provides Company backend for Lua programming language.")
15544 (license license:gpl3+))))
15545
15546 (define-public emacs-beginend
15547 (package
15548 (name "emacs-beginend")
15549 (version "2.2.0")
15550 (source
15551 (origin
15552 (method git-fetch)
15553 (uri (git-reference
15554 (url "https://github.com/DamienCassou/beginend")
15555 (commit (string-append "v" version))))
15556 (file-name (git-file-name name version))
15557 (sha256
15558 (base32 "1r9033zlx2q2dk3bjz004flxdiw79qiswq0zqdjnlzwassvk0f35"))))
15559 ;; TODO: Run tests.
15560 (build-system emacs-build-system)
15561 (inputs
15562 `(("emacs-undercover" ,emacs-undercover))) ; For tests.
15563 (home-page "https://github.com/DamienCassou/beginend")
15564 (synopsis "Redefine @code{M-<} and @code{M->} for Emacs modes")
15565 (description "@code{beginend} redefines @code{M-<} and @code{M->}
15566 keybindings for Emacs modes so that point moves to meaningful
15567 locations. Redefined keys are still accessible by pressing the same
15568 key again.")
15569 (license license:gpl3+)))
15570
15571 (define-public emacs-mbsync
15572 (let ((commit "b62491c0e0d89eb9c66261a16d7ac81231c9c453")
15573 (revision "4"))
15574 (package
15575 (name "emacs-mbsync")
15576 (version (git-version "0.1.2" revision commit))
15577 (source
15578 (origin
15579 (method git-fetch)
15580 (uri (git-reference
15581 (url "https://github.com/dimitri/mbsync-el")
15582 (commit commit)))
15583 (file-name (git-file-name name version))
15584 (sha256
15585 (base32
15586 "1zlih37mkqjn2czl12zn7lgxxljvrwhqqpbksj9c91zn0f0rm3mz"))))
15587 (build-system emacs-build-system)
15588 (home-page "https://github.com/dimitri/mbsync-el")
15589 (synopsis "Interface to mbsync for Emacs")
15590 (description "This package calls @code{mbsync} from
15591 within Emacs.")
15592 (license license:gpl3+))))
15593
15594 (define-public emacs-ibuffer-projectile
15595 (let ((commit "76496214144687cee0b5139be2e61b1e400cac87")
15596 (revision "2"))
15597 (package
15598 (name "emacs-ibuffer-projectile")
15599 (version (git-version "0.2" revision commit))
15600 (source
15601 (origin
15602 (method git-fetch)
15603 (uri (git-reference
15604 (url "https://github.com/purcell/ibuffer-projectile")
15605 (commit commit)))
15606 (file-name (git-file-name name version))
15607 (sha256
15608 (base32
15609 "0vv9xwb1qd5x8zhqmmsn1nrpd11cql9hxb7483nsdhcfwl4apqav"))))
15610 (build-system emacs-build-system)
15611 (propagated-inputs
15612 `(("emacs-projectile" ,emacs-projectile)))
15613 (home-page "https://github.com/purcell/ibuffer-projectile")
15614 (synopsis "Group ibuffer's list by projectile root")
15615 (description "Adds functionality to Emacs @code{ibuffer} for
15616 grouping buffers by their projectile root directory.")
15617 (license license:gpl3+))))
15618
15619 (define-public emacs-elm-mode
15620 (package
15621 (name "emacs-elm-mode")
15622 (version "0.21.0")
15623 (source
15624 (origin
15625 (method git-fetch)
15626 (uri
15627 (git-reference
15628 (url "https://github.com/jcollard/elm-mode")
15629 (commit (string-append "v" version))))
15630 (file-name (git-file-name name version))
15631 (sha256
15632 (base32 "0iwk4fmw8hq3ry4ky1zc7lgl4cpbnrjyk74c2xzddfspi3ks41fd"))))
15633 (propagated-inputs
15634 `(("emacs-dash" ,emacs-dash)
15635 ("emacs-f" ,emacs-f)
15636 ("emacs-reformatter" ,emacs-reformatter)
15637 ("emacs-s" ,emacs-s)))
15638 (build-system emacs-build-system)
15639 (home-page "https://github.com/jcollard/elm-mode")
15640 (synopsis "Emacs major mode for editing Elm source code")
15641 (description
15642 "This package provides a major mode for editing Elm source code, and
15643 working with common core and third-party Elm tools. Its features are:
15644
15645 @itemize
15646 @item Syntax highlighting
15647 @item Intelligent indentation
15648 @item Integration with elm-make
15649 @item Integration with elm-repl
15650 @item Integration with elm-reactor
15651 @item Integration with elm-package
15652 @item Integration with elm-oracle
15653 @item Integration with elm-format
15654 @item Integration with elm-test
15655 @end itemize")
15656 (license license:gpl3+)))
15657
15658 (define-public emacs-helm-mode-manager
15659 (package
15660 (name "emacs-helm-mode-manager")
15661 (version "1.0.0")
15662 (source
15663 (origin
15664 (method git-fetch)
15665 (uri (git-reference
15666 (url "https://github.com/istib/helm-mode-manager")
15667 (commit version)))
15668 (file-name (git-file-name name version))
15669 (sha256
15670 (base32
15671 "1srx5f0s9x7zan7ayqd6scxfhcvr3nkd4yzs96hphd87rb18apzk"))))
15672 (build-system emacs-build-system)
15673 (propagated-inputs
15674 `(("emacs-helm" ,emacs-helm)))
15675 (home-page "https://github.com/istib/helm-mode-manager/")
15676 (synopsis "Switch and toggle Emacs major and minor modes using Helm")
15677 (description "This package provides a Helm interface for toggling Emacs
15678 major or minor mode.
15679
15680 @itemize
15681 @item @code{helm-switch-major-mode} list of all major modes
15682 @item @code{helm-enable-minor-mode} list of all inactive minor modes
15683 @item @code{helm-disable-minor-mode} list of all ACTIVE minor modes
15684 @end itemize\n
15685
15686 Hitting @code{RET} enables the mode, @code{C-z} shows the mode
15687 documentation.")
15688 (license license:gpl3+)))
15689
15690 (define-public emacs-hy-mode
15691 (package
15692 (name "emacs-hy-mode")
15693 (version "1.0.4")
15694 (source
15695 (origin
15696 (method git-fetch)
15697 (uri (git-reference
15698 (url "https://github.com/hylang/hy-mode")
15699 (commit (string-append "v" version))))
15700 (file-name (git-file-name name version))
15701 (sha256
15702 (base32 "0gihxlmfminadaqdr8d2zccd7wwygl3m0gfzxsk5izi7f8hl4w7f"))))
15703 (build-system emacs-build-system)
15704 (propagated-inputs
15705 `(("emacs-dash" ,emacs-dash)
15706 ("emacs-s" ,emacs-s)))
15707 (home-page "https://github.com/hylang/hy-mode")
15708 (synopsis "Major mode for Hylang")
15709 (description "This package provides a major mode for Hylang.")
15710 (license license:gpl3+)))
15711
15712 (define-public emacs-web-beautify
15713 (package
15714 (name "emacs-web-beautify")
15715 (version "0.3.2")
15716 (source
15717 (origin
15718 (method git-fetch)
15719 (uri (git-reference
15720 (url "https://github.com/yasuyk/web-beautify")
15721 (commit version)))
15722 (file-name (git-file-name name version))
15723 (sha256
15724 (base32 "0vms7zz3ym53wf1zdrkbf2ky2xjr1v134ngsd0jr8azyi8siw84d"))))
15725 (build-system emacs-build-system)
15726 (home-page "https://github.com/yasuyk/web-beautify")
15727 (synopsis "Format HTML, CSS and JavaScript, JSON")
15728 (description "This package provides an Emacs functions to format HTML,
15729 CSS, JavaScript, JSON.")
15730 (license license:gpl3+)))
15731
15732 (define-public emacs-helm-shell-history
15733 (let ((commit "110d3c35c52fe4b89b29e79ea4c8626bce7266a1"))
15734 (package
15735 (name "emacs-helm-shell-history")
15736 (version (git-version "0.1" "1" commit))
15737 (source
15738 (origin
15739 (method git-fetch)
15740 (uri (git-reference
15741 (url "https://github.com/yuutayamada/helm-shell-history")
15742 (commit commit)))
15743 (file-name (git-file-name name version))
15744 (sha256
15745 (base32
15746 "18fkjcz69g4dyaxhf9j8svr5x6dhsdnglddwisis8hdn504scpfj"))))
15747 (build-system emacs-build-system)
15748 (arguments
15749 '(#:phases
15750 (modify-phases %standard-phases
15751 (add-before 'check 'patch-helm-shell-history-file
15752 (lambda _
15753 (let ((file "helm-shell-history.el"))
15754 (chmod file #o644)
15755 (emacs-substitute-sexps file
15756 ("(defvar helm-shell-history-file"
15757 `(expand-file-name "~/.bash_history"))))
15758 #t)))))
15759 (propagated-inputs
15760 `(("emacs-helm" ,emacs-helm)))
15761 (home-page "https://github.com/yuutayamada/helm-shell-history")
15762 (synopsis "Find shell history with Emacs Helm")
15763 (description "This package provides an Emacs Helm interface to search
15764 throw a shell history.")
15765 (license license:gpl3+))))
15766
15767 (define-public emacs-discover-my-major
15768 (package
15769 (name "emacs-discover-my-major")
15770 (version "1.0")
15771 (source
15772 (origin
15773 (method git-fetch)
15774 (uri (git-reference
15775 (url "https://framagit.org/steckerhalter/discover-my-major.git/")
15776 (commit version)))
15777 (file-name (git-file-name name version))
15778 (sha256
15779 (base32
15780 "1wlqyl03hhnflbyay3qlvdzqzvv5rbybcjpfddggda7ias9h0pr4"))))
15781 (build-system emacs-build-system)
15782 (propagated-inputs
15783 `(("emacs-makey" ,emacs-makey)))
15784 (home-page "https://framagit.org/steckerhalter/discover-my-major/")
15785 (synopsis "Discover key bindings for the current Emacs major mode")
15786 (description "This package discovers key bindings and
15787 their meaning for the current Emacs major-mode.")
15788 (license license:gpl3+)))
15789
15790 (define-public emacs-org-ref
15791 ;; No release since June 2017.
15792 (let ((commit "5bb9be2232db72b04754d7e4c02a3976ad422f6f")
15793 (revision "2"))
15794 (package
15795 (name "emacs-org-ref")
15796 (version (git-version "1.1.1" revision commit))
15797 (source
15798 (origin
15799 (method git-fetch)
15800 (uri (git-reference
15801 (url "https://github.com/jkitchin/org-ref")
15802 (commit commit)))
15803 (file-name (git-file-name name version))
15804 (sha256
15805 (base32 "15gcvbfj19kyv4nxa632b261dwhb26m99plq230qhv9ssfwfgxbx"))))
15806 (build-system emacs-build-system)
15807 (propagated-inputs
15808 `(("emacs-dash" ,emacs-dash)
15809 ("emacs-f" ,emacs-f)
15810 ("emacs-helm" ,emacs-helm)
15811 ("emacs-helm-bibtex" ,emacs-helm-bibtex)
15812 ("emacs-htmlize" ,emacs-htmlize)
15813 ("emacs-hydra" ,emacs-hydra)
15814 ("emacs-ivy" ,emacs-ivy)
15815 ("emacs-key-chord" ,emacs-key-chord)
15816 ("emacs-pdf-tools" ,emacs-pdf-tools)
15817 ("emacs-s" ,emacs-s)))
15818 (home-page "https://github.com/jkitchin/org-ref")
15819 (synopsis "Citations, cross-references and bibliographies in Org mode")
15820 (description
15821 "Org Ref is an Emacs library that provides rich support for citations,
15822 labels and cross-references in Org mode.
15823
15824 The basic idea of Org Ref is that it defines a convenient interface to insert
15825 citations from a reference database (e.g., from BibTeX files), and a set of
15826 functional Org links for citations, cross-references and labels that export
15827 properly to LaTeX, and that provide clickable functionality to the user. Org
15828 Ref interfaces with Helm BibTeX to facilitate citation entry, and it can also
15829 use RefTeX.
15830
15831 It also provides a fairly large number of utilities for finding bad citations,
15832 extracting BibTeX entries from citations in an Org file, and functions to
15833 create and modify BibTeX entries from a variety of sources, most notably from
15834 a DOI.
15835
15836 Org Ref is especially suitable for Org documents destined for LaTeX export and
15837 scientific publication. Org Ref is also useful for research documents and
15838 notes.")
15839 (license license:gpl3+))))
15840
15841 (define-public emacs-org-reveal
15842 (let ((commit "84039bb499290926511b04749882ecb5eda45a0c"))
15843 (package
15844 (name "emacs-org-reveal")
15845 (version (git-version "20200607" "1" commit))
15846 (source (origin
15847 (method git-fetch)
15848 (uri (git-reference
15849 (url "https://github.com/yjwen/org-reveal")
15850 (commit commit)))
15851 (file-name (git-file-name name version))
15852 (sha256
15853 (base32
15854 "1fx3xmnkpfljrdmy0dsyq79k93ky57gcqm1ad9qbzykk7qjvmmi8"))))
15855 (build-system emacs-build-system)
15856 (home-page "https://github.com/yjwen/org-reveal")
15857 (synopsis "Org and Reveal.js powered HTML presentation tool")
15858 (description "Org-Reveal is a @command{org-mode} extension that allows
15859 to create beautiful presentations (slides) with 3D effects from simple but
15860 powerful Org contents.")
15861 (license license:gpl3+))))
15862
15863 (define-public emacs-org-re-reveal
15864 (package
15865 (name "emacs-org-re-reveal")
15866 (version "3.1.1")
15867 (source (origin
15868 (method git-fetch)
15869 (uri (git-reference
15870 (url "https://gitlab.com/oer/org-re-reveal")
15871 (commit version)))
15872 (file-name (git-file-name name version))
15873 (sha256
15874 (base32
15875 "0an799lxy1j48zlg00982d1rhg46ls4fz4v7r7qdh6228icq5hij"))))
15876 (build-system emacs-build-system)
15877 (propagated-inputs
15878 `(("emacs-htmlize" ,emacs-htmlize)
15879 ("emacs-org" ,emacs-org)))
15880 (home-page "https://gitlab.com/oer/org-re-reveal")
15881 (synopsis "Build HTML presentations with reveal.js from Org source files")
15882 (description "This project started as fork of org-reveal. It provides an
15883 export back-end for HTML presentations with reveal.js from Org mode source
15884 files.")
15885 (license license:gpl3+)))
15886
15887 (define-public emacs-add-hooks
15888 (package
15889 (name "emacs-add-hooks")
15890 (version "3.1.1")
15891 (source
15892 (origin
15893 (method git-fetch)
15894 (uri (git-reference
15895 (url "https://github.com/nickmccurdy/add-hooks")
15896 (commit version)))
15897 (file-name (git-file-name name version))
15898 (sha256
15899 (base32 "1jv9fpcsm572zg0j1mbpbfkqgdlqapy89xhhj19pswkhjns1y2wl"))))
15900 (build-system emacs-build-system)
15901 (home-page "https://github.com/nickmccurdy/add-hooks/")
15902 (synopsis "Emacs function for setting multiple hooks")
15903 (description "This package provides a @code{add-hooks} function tidies up
15904 duplicate hook and function names further into a single declarative call.")
15905 (license license:gpl3+)))
15906
15907 (define-public emacs-fancy-battery
15908 (package
15909 (name "emacs-fancy-battery")
15910 (version "0.2")
15911 (source
15912 (origin
15913 (method git-fetch)
15914 (uri (git-reference
15915 (url "https://github.com/emacsorphanage/fancy-battery")
15916 (commit version)))
15917 (file-name (git-file-name name version))
15918 (sha256
15919 (base32 "05lwcwf412m717yhwpjrswqkm8c3i7391rmiwv2k8xc1vk6dpp4g"))))
15920 (build-system emacs-build-system)
15921 (home-page "https://github.com/emacsorphanage/fancy-battery")
15922 (synopsis "Display battery status in Emacs mode line")
15923 (description "This package provides @code{fancy-battery-mode} which is
15924 like the built-in @code{display-battery-mode}, but more fancy. It just the
15925 remaining time, uses colours to indicate the status of the battery, and is
15926 more customizable.")
15927 (license license:gpl3)))
15928
15929 (define-public emacs-fancy-narrow
15930 (package
15931 (name "emacs-fancy-narrow")
15932 (version "0.9.5")
15933 (source
15934 (origin
15935 (method git-fetch)
15936 (uri (git-reference
15937 (url "https://github.com/Malabarba/fancy-narrow")
15938 (commit version)))
15939 (file-name (git-file-name name version))
15940 (sha256
15941 (base32 "0vcr1gnqawvc1yclqs23jvxm6bqix8kpflf1c7znb0wzxmz9kx7y"))))
15942 (build-system emacs-build-system)
15943 (home-page "https://github.com/Malabarba/fancy-narrow/releases")
15944 (synopsis "Imitate @code{narrow-to-region} with more eye candy")
15945 (description
15946 "Unlike @code{narrow-to-region}, which completely hides text outside
15947 the narrowed region, this package simply de-emphasizes the text, makes it
15948 read-only, and makes it unreachable. This leads to a much more natural
15949 feeling where the region stays static (instead of being brutally moved to a
15950 blank slate) and is clearly highlighted with respect to the rest of the
15951 buffer.")
15952 (license license:gpl2+)))
15953
15954 (define-public emacs-know-your-http-well
15955 (package
15956 (name "emacs-know-your-http-well")
15957 (version "0.5.0")
15958 (source
15959 (origin
15960 (method git-fetch)
15961 (uri (git-reference
15962 (url "https://github.com/for-GET/know-your-http-well")
15963 (commit (string-append "v" version))))
15964 (file-name (git-file-name name version))
15965 (sha256
15966 (base32 "1lppggnii2r9fvlhh33gbdrwb50za8lnalavlq9s86ngndn4n94k"))))
15967 (arguments
15968 `(#:phases
15969 (modify-phases %standard-phases
15970 (add-after 'unpack 'install-json-files
15971 (lambda* (#:key outputs #:allow-other-keys)
15972 (for-each (lambda (directory)
15973 (copy-recursively directory
15974 (string-append
15975 (assoc-ref outputs "out")
15976 directory)))
15977 '("js" "json"))))
15978 (add-after 'unpack 'chdir-elisp
15979 ;; Elisp directory is not in root of the source.
15980 (lambda _
15981 (chdir "emacs"))))))
15982 (build-system emacs-build-system)
15983 (home-page "https://github.com/for-GET/know-your-http-well")
15984 (synopsis "Meaning of HTTP headers codes")
15985 (description "Meaning of HTTP headers codes.")
15986 (license license:gpl3+)))
15987
15988 (define-public emacs-navi-mode
15989 (let ((commit "c1d38e8237f4e14af020a0b7d4f118ea198ab674"))
15990 (package
15991 (name "emacs-navi-mode")
15992 (version (git-version "2.0" "1" commit))
15993 (source
15994 (origin
15995 (method git-fetch)
15996 (uri (git-reference
15997 (url "https://github.com/alphapapa/navi")
15998 (commit commit)))
15999 (file-name (git-file-name name version))
16000 (sha256
16001 (base32
16002 "0jj5spk14hgb7zb1cd2n8whcw4k1kd5zb6llwj96v178yaws7l8k"))))
16003 (build-system emacs-build-system)
16004 (propagated-inputs
16005 `(("emacs-outshine" ,emacs-outshine)
16006 ("emacs-outorg" ,emacs-outorg)))
16007 (home-page "https://github.com/alphapapa/navi")
16008 (synopsis "Emacs major-mode for easy buffer-navigation")
16009 (description
16010 "This package provides an Emacs major-mode for easy buffer-navigation")
16011 (license license:gpl3+))))
16012
16013 (define-public emacs-download-region
16014 (let ((commit "eb9e557529a73b4cfc8281c70dd0d95db333fffa")
16015 (revision "1"))
16016 (package
16017 (name "emacs-download-region")
16018 (version (string-append "0.0.1" "-" revision "."
16019 (string-take commit 7)))
16020 (source
16021 (origin
16022 (method git-fetch)
16023 (uri (git-reference
16024 (url "https://github.com/zk-phi/download-region")
16025 (commit commit)))
16026 (file-name (git-file-name name version))
16027 (sha256
16028 (base32
16029 "0v52djg39b6k2snizd9x0qc009ws5y0ywqsfwhqgcbs5ymzh7dsc"))))
16030 (build-system emacs-build-system)
16031 (home-page "https://github.com/zk-phi/download-region")
16032 (synopsis "In buffer download manager for Emacs")
16033 (description "@code{download-region} provides in buffer
16034 downloading manager for Emacs.")
16035 (license license:gpl3+))))
16036
16037 (define-public emacs-helpful
16038 (package
16039 (name "emacs-helpful")
16040 (version "0.18")
16041 (source
16042 (origin
16043 (method git-fetch)
16044 (uri (git-reference
16045 (url "https://github.com/Wilfred/helpful")
16046 (commit version)))
16047 (file-name (git-file-name name version))
16048 (sha256
16049 (base32 "0gdjxykqkal2x765mi51m99i5ql23i1fy909wy4mzj5ajhjfgqcc"))))
16050 (build-system emacs-build-system)
16051 (propagated-inputs
16052 `(("emacs-elisp-refs" ,emacs-elisp-refs)
16053 ("emacs-dash" ,emacs-dash)
16054 ("emacs-s" ,emacs-s)
16055 ("emacs-f" ,emacs-f)
16056 ("emacs-shut-up" ,emacs-shut-up)))
16057 (native-inputs
16058 `(("emacs-ert-runner" ,emacs-ert-runner)
16059 ("emacs-undercover" ,emacs-undercover)))
16060 (arguments
16061 `(#:tests? #t
16062 #:test-command '("ert-runner")))
16063 (home-page "https://github.com/Wilfred/helpful")
16064 (synopsis "More contextual information in Emacs help")
16065 (description "@code{helpful} is an alternative to the built-in Emacs help
16066 that provides much more contextual information.
16067
16068 @itemize
16069 @item Show the source code for interactively defined functions (unlike the
16070 built-in Help).
16071 @item Fall back to the raw sexp if no source is available.
16072 @item Show where a function is being called.
16073 @item Docstrings will Highlight the summary (the first sentence), include
16074 cross-references, hide superfluous puncuation.
16075 @item Show you the properties that have been applied to the current
16076 symbol. This provides visibility of features like edebug or byte-code
16077 optimisation.
16078 @item Provide a separate @code{helpful-command} function to view interactive
16079 functions.
16080 @item Display any keybindings that apply to interactive functions.
16081 @item Trace, disassemble functions from inside Helpful. This is discoverable
16082 and doesn't require memorisation of commands.
16083 @end itemize\n")
16084 (license license:gpl3+)))
16085
16086 (define-public emacs-logview
16087 (package
16088 (name "emacs-logview")
16089 (version "0.9")
16090 (source
16091 (origin
16092 (method git-fetch)
16093 (uri (git-reference
16094 (url "https://github.com/doublep/logview")
16095 (commit version)))
16096 (file-name (git-file-name name version))
16097 (sha256
16098 (base32 "1qhzs75pxnaksbhczmpdcy2zmrqavlzkzss7ik5nv2wf9vs0sn02"))))
16099 (propagated-inputs
16100 `(("emacs-datetime" ,emacs-datetime)))
16101 (build-system emacs-build-system)
16102 (home-page "https://github.com/doublep/logview/")
16103 (synopsis "Emacs mode for viewing log files")
16104 (description "@code{logview} provides an Emacs mode to view log files.")
16105 (license license:gpl3+)))
16106
16107 (define-public emacs-suggest
16108 (package
16109 (name "emacs-suggest")
16110 (version "0.7")
16111 (home-page "https://github.com/Wilfred/suggest.el")
16112 (source
16113 (origin
16114 (method git-fetch)
16115 (uri (git-reference
16116 (url home-page)
16117 (commit version)))
16118 (file-name (git-file-name name version))
16119 (sha256
16120 (base32
16121 "01v8plska5d3g19sb1m4ph1i3ayprfzk8mi6mpabjy6zad397xjl"))))
16122 (build-system emacs-build-system)
16123 (propagated-inputs
16124 `(("emacs-loop" ,emacs-loop)
16125 ("emacs-dash" ,emacs-dash)
16126 ("emacs-s" ,emacs-s)
16127 ("emacs-f" ,emacs-f)
16128 ("emacs-spinner" ,emacs-spinner)
16129 ("emacs-shut-up" ,emacs-shut-up)))
16130 (native-inputs
16131 `(("emacs-ert-runner" ,emacs-ert-runner)
16132 ("emacs-undercover" ,emacs-undercover)))
16133 (arguments
16134 `(#:tests? #t
16135 #:test-command '("ert-runner")))
16136 (synopsis "Suggest Elisp functions that give the output requested")
16137 (description "Suggest.el will find functions that give the output
16138 requested. It's a great way of exploring list, string and arithmetic
16139 functions.")
16140 (license license:gpl3+)))
16141
16142 (define-public emacs-benchmark-init
16143 (package
16144 (name "emacs-benchmark-init")
16145 (version "1.0")
16146 (source
16147 (origin
16148 (method git-fetch)
16149 (uri (git-reference
16150 (url "https://github.com/dholm/benchmark-init-el")
16151 (commit version)))
16152 (file-name (git-file-name name version))
16153 (sha256
16154 (base32 "1kyn1izm5sbqbp9whnhk9dn3yc7zy8bz5san5w3ivi3rpx15fh94"))))
16155 (build-system emacs-build-system)
16156 (home-page "https://github.com/dholm/benchmark-init-el")
16157 (synopsis "Benchmark Emacs @code{require} and @code{load} calls")
16158 (description "@code{benchmark-init} provides a way to keep track of where
16159 time is being spent during Emacs startup in order to optimize startup time.")
16160 (license license:gpl3+)))
16161
16162 (define-public emacs-magit-gerrit
16163 (let ((version "0.3")
16164 (revision "1")
16165 (commit "ece6f369694aca17f3ac166ed2801b432acfe20d"))
16166 (package
16167 (name "emacs-magit-gerrit")
16168 (version (git-version version revision commit))
16169 (source (origin
16170 (method git-fetch)
16171 (uri (git-reference
16172 (url "https://github.com/terranpro/magit-gerrit")
16173 (commit commit)))
16174 (file-name (git-file-name name version))
16175 (sha256
16176 (base32
16177 "0mms0gxv9a3ns8lk5k2wjibm3088y1cmpr3axjdh6ppv7r5wdvii"))))
16178 (build-system emacs-build-system)
16179 (propagated-inputs
16180 `(("emacs-magit" ,emacs-magit)))
16181 (home-page "https://github.com/terranpro/magit-gerrit")
16182 (synopsis "Magit extension for Gerrit")
16183 (description "This Magit extension provides integration with Gerrit,
16184 which makes it possible to conduct Gerrit code reviews directly from within
16185 Emacs.")
16186 (license license:gpl3+))))
16187
16188 (define-public emacs-magit-org-todos-el
16189 (let ((commit "df206287737b9671f2e36ae7b1474ebbe9940d2a"))
16190 (package
16191 (name "emacs-magit-org-todos-el")
16192 (version (git-version "0.1.1" "1" commit))
16193 (source
16194 (origin
16195 (method git-fetch)
16196 (uri (git-reference
16197 (url "https://github.com/danielma/magit-org-todos.el")
16198 (commit commit)))
16199 (file-name (git-file-name name version))
16200 (sha256
16201 (base32
16202 "0kdp7k7jnnrkhsg0xh1c3h7iz0vgi120gf5xwl1hxy61avivnxrn"))))
16203 (propagated-inputs
16204 `(("magit" ,emacs-magit)))
16205 (build-system emacs-build-system)
16206 (home-page "https://github.com/danielma/magit-org-todos.el")
16207 (synopsis "Get todo.org into Emacs Magit status")
16208 (description "This package allows you to get @file{todo.org} into your
16209 magit status.
16210
16211 If you have a @file{todo.org} file with @code{TODO} items in the root of your
16212 repository, @code{magit-org-todos} will create a section in your Magit status
16213 buffer with each of your todos.")
16214 (license license:gpl3+))))
16215
16216 (define-public emacs-vcsh
16217 (package
16218 (name "emacs-vcsh")
16219 (version "0.4.4")
16220 (source
16221 (origin
16222 (method git-fetch)
16223 (uri (git-reference
16224 (url "https://gitlab.com/stepnem/vcsh-el.git")
16225 (commit version)))
16226 (file-name (git-file-name name version))
16227 (sha256
16228 (base32 "183pffdiqb7qqmjq31wxl3fpv8qswqgg99gb716rddiyk15ysri7"))))
16229 (build-system emacs-build-system)
16230 (home-page "https://gitlab.com/stepnem/vcsh-el")
16231 (synopsis "Emacs VCSH integration")
16232 (description
16233 "This library provides basic ``enter'' functionality and a few
16234 convenience commands to initialize a @acronym{VCSH, Version Control System for
16235 $HOME} repository and add files to it. It can be used in conjunction with
16236 Magit.")
16237 (license license:public-domain)))
16238
16239 (define-public emacs-f3
16240 (package
16241 (name "emacs-f3")
16242 (version "0.1")
16243 (source
16244 (origin
16245 (method git-fetch)
16246 (uri (git-reference
16247 (url "https://github.com/cosmicexplorer/f3")
16248 (commit version)))
16249 (file-name (git-file-name name version))
16250 (sha256
16251 (base32 "1qg48zbjdjqimw4516ymrsilz41zkib9321q0caf9474s9xyp2bi"))))
16252 (build-system emacs-build-system)
16253 (propagated-inputs
16254 `(("emacs-helm" ,emacs-helm)))
16255 (home-page "https://github.com/cosmicexplorer/f3")
16256 (synopsis "Fantastic File Finder for Emacs")
16257 (description
16258 "The Fantastic File Finder for Emacs. Find files fast, using helm.")
16259 (license license:gpl3+)))
16260
16261 (define-public emacs-lice-el
16262 (let ((commit "482e58ab83fff86ed754b00be27b62a219597e7c"))
16263 (package
16264 (name "emacs-lice-el")
16265 (version (git-version "0.2" "2" commit))
16266 (source (origin
16267 (method git-fetch)
16268 (uri (git-reference
16269 (url "https://github.com/buzztaiki/lice-el")
16270 (commit commit)))
16271 (file-name (git-file-name name version))
16272 (sha256
16273 (base32
16274 "0yxkjyhfk8kpr8yqz54gdx6xwkj4s8bnbz60162jh12crj0bs5n7"))))
16275 (build-system emacs-build-system)
16276 (arguments
16277 `(#:phases
16278 (modify-phases %standard-phases
16279 (add-after 'unpack 'patch-template-directory
16280 (lambda* (#:key outputs #:allow-other-keys)
16281 (chmod "lice.el" #o666)
16282 (emacs-substitute-variables "lice.el"
16283 ("lice:system-template-directory"
16284 (string-append (assoc-ref outputs "out")
16285 "/share/emacs-lice-el/template")))
16286 #t))
16287 (add-after 'install 'install-templates
16288 (lambda* (#:key outputs #:allow-other-keys)
16289 (copy-recursively
16290 "template"
16291 (string-append (assoc-ref outputs "out")
16292 "/share/emacs-lice-el/template"))
16293 #t)))))
16294 (home-page "https://github.com/buzztaiki/lice-el")
16295 (synopsis "License and header template for Emacs")
16296 (description "@code{lice.el} provides following features:
16297
16298 @itemize
16299 @item License template management.
16300 @item File header insertion.
16301 @end itemize\n")
16302 (license license:gpl3+))))
16303
16304 (define-public emacs-academic-phrases
16305 (let ((commit "0823ed8c24b26c32f909b896a469833ec4d7b656"))
16306 (package
16307 (name "emacs-academic-phrases")
16308 (version (git-version "0.1" "1" commit))
16309 (source
16310 (origin
16311 (method git-fetch)
16312 (uri (git-reference
16313 (url "https://github.com/nashamri/academic-phrases")
16314 (commit commit)))
16315 (file-name (git-file-name name version))
16316 (sha256
16317 (base32
16318 "0qfzsq8jh05w4zkr0cvq3i1hdn97bq344vcqjg46sib26x3wpz6r"))))
16319 (build-system emacs-build-system)
16320 (propagated-inputs
16321 `(("emacs-dash" ,emacs-dash)
16322 ("emacs-s" ,emacs-s)
16323 ("emacs-ht" ,emacs-ht)))
16324 (home-page "https://github.com/nashamri/academic-phrases")
16325 (synopsis "Bypass that mental block when writing your papers")
16326 (description
16327 "When writing your academic paper, you might get stuck trying to find
16328 the right phrase that captures your intention. This package tries to
16329 alleviate that problem by presenting you with a list of phrases organized by
16330 the topic or by the paper section that you are writing. This package has
16331 around 600 phrases so far.
16332
16333 Using this package is easy, just call @code{academic-phrases} to get a list of
16334 phrases organized by topic, or call @code{academic-phrases-by-section} to
16335 browse the phrases by the paper section and fill-in the blanks if required.")
16336 (license license:gpl3+))))
16337
16338 (define-public emacs-auto-yasnippet
16339 (let ((commit "624b0d9711222073a2a3f2186e2605eb99fc83c9")
16340 (revision "2"))
16341 (package
16342 (name "emacs-auto-yasnippet")
16343 (version (git-version "0.3.0" revision commit))
16344 (source (origin
16345 (method git-fetch)
16346 (uri (git-reference
16347 (url "https://github.com/abo-abo/auto-yasnippet")
16348 (commit commit)))
16349 (file-name (git-file-name name version))
16350 (sha256
16351 (base32
16352 "15g8wi067f345xhpi0c12w0h04p4f4lpccwmdjdfj8hzfl4gyxy9"))))
16353 (build-system emacs-build-system)
16354 (arguments
16355 '(#:tests? #t
16356 #:test-command '("make" "test")))
16357 (propagated-inputs
16358 `(("emacs-yasnippet" ,emacs-yasnippet)))
16359 (home-page "https://github.com/abo-abo/auto-yasnippet/")
16360 (synopsis "Quickly create disposable yasnippets")
16361 (description "This package provides a hybrid of keyboard macros and
16362 yasnippet. You create the snippet on the go, usually to be used just in the
16363 one place. It's fast, because you're not leaving the current buffer, and all
16364 you do is enter the code you'd enter anyway, just placing ~ where you'd like
16365 yasnippet fields and mirrors to be.")
16366 (license license:gpl3+))))
16367
16368 (define-public emacs-highlight-numbers
16369 (package
16370 (name "emacs-highlight-numbers")
16371 (version "0.2.3")
16372 (source
16373 (origin
16374 (method git-fetch)
16375 (uri (git-reference
16376 (url "https://github.com/Fanael/highlight-numbers")
16377 (commit version)))
16378 (file-name (git-file-name name version))
16379 (sha256
16380 (base32 "1r07mpyr7rhd7bkg778hx6vbhb4n9ixgzkpszhgks7ri6ia38pj8"))))
16381 (build-system emacs-build-system)
16382 (propagated-inputs
16383 `(("emacs-parent-mode" ,emacs-parent-mode)))
16384 (home-page "https://github.com/Fanael/highlight-numbers")
16385 (synopsis "Highlight numbers in source code")
16386 (description "@code{highlight-numbers-mode} provides a minor mode for
16387 syntax highlighting of numeric literals in source code.
16388
16389 It s customizable: it's easy to add or redefine what exactly consitutes a
16390 \"number\" in given major mode. See @code{highlight-numbers-modelist}.")
16391 (license license:gpl3+)))
16392
16393 (define-public emacs-darkroom
16394 (package
16395 (name "emacs-darkroom")
16396 (version "0.3")
16397 (source
16398 (origin
16399 (method url-fetch)
16400 (uri (string-append "https://elpa.gnu.org/packages/"
16401 "darkroom-" version ".el"))
16402 (sha256
16403 (base32 "0l1xg5kqmjw22k78qnsln0ifx2dx74xxqj0qp8xxcpqvzzx0xh86"))))
16404 (build-system emacs-build-system)
16405 (home-page "https://elpa.gnu.org/packages/darkroom.html")
16406 (synopsis "Remove visual distractions and focus on writing")
16407 (description "@code{darkroom-mode} makes visual distractions disappear.
16408 The mode-line is temporarily elided, text is enlarged and margins are adjusted
16409 so that it's centered on the window.
16410
16411 @code{darkroom-tentative-mode} is similar, but it doesn't immediately turn-on
16412 @code{darkroom-mode}, unless the current buffer lives in the sole window of
16413 the Emacs frame (i.e. all other windows are deleted). Whenever the frame is
16414 split to display more windows and more buffers, the buffer exits
16415 @code{darkroom-mode}. Whenever they are deleted, the buffer re-enters
16416 @code{darkroom-mode}.")
16417 (license license:gpl3+)))
16418
16419 (define-public emacs-rsw-elisp
16420 (package
16421 (name "emacs-rsw-elisp")
16422 (version "1.0.5")
16423 (source (origin
16424 (method git-fetch)
16425 (uri (git-reference
16426 (url "https://github.com/rswgnu/rsw-elisp")
16427 (commit version)))
16428 (file-name (git-file-name name version))
16429 (sha256
16430 (base32
16431 "0dfq8myg0r91900bk1s70amsmm4mjk2qsg12v5pk7lla5d2vnyaf"))))
16432 (build-system emacs-build-system)
16433 (home-page "https://github.com/rswgnu/rsw-elisp")
16434 (synopsis "Improved expressions that interactively evaluate Emacs Lisp")
16435 (description "This package improves and replaces the GNU Emacs commands
16436 that interactively evaluate Emacs Lisp expressions. The new commands replace
16437 standard key bindings and are all prefixed with @code{rsw-elisp-}. They work
16438 the same way as the old commands when called non-interactively; only the
16439 interactive behavior should be different.")
16440 (license license:gpl3+)))
16441
16442 (define-public emacs-default-text-scale
16443 (let ((commit "968e985e219235f3e744d6d967e592acbaf6e0a8")
16444 (revision "1"))
16445 (package
16446 (name "emacs-default-text-scale")
16447 (version (string-append "0.1" "-" revision "."
16448 (string-take commit 7)))
16449 (source (origin
16450 (method git-fetch)
16451 (uri (git-reference
16452 (url "https://github.com/purcell/default-text-scale")
16453 (commit commit)))
16454 (file-name (git-file-name name version))
16455 (sha256
16456 (base32
16457 "0zds01c3q5yny6ab1fxfkzzgn1kgl3q23lxxap905f4qd70v922h"))))
16458 (build-system emacs-build-system)
16459 (home-page "https://github.com/purcell/default-text-scale")
16460 (synopsis "Adjust the font size in all Emacs frames")
16461 (description "This package provides commands for increasing or
16462 decreasing the default font size in all GUI Emacs frames.")
16463 (license license:gpl3+))))
16464
16465 (define-public emacs-mixed-pitch
16466 (package
16467 (name "emacs-mixed-pitch")
16468 (version "1.0.1")
16469 (source
16470 (origin
16471 (method git-fetch)
16472 (uri (git-reference
16473 (url "https://gitlab.com/jabranham/mixed-pitch.git")
16474 (commit version)))
16475 (file-name (git-file-name name version))
16476 (sha256
16477 (base32 "1458sy5b6bis1i0k23jdqk6hfqg0ghk637r3ajql2g19ym48rf58"))))
16478 (build-system emacs-build-system)
16479 (home-page "https://gitlab.com/jabranham/mixed-pitch")
16480 (synopsis "Mix variable- and fixed-pitch fonts in the same Emacs buffer")
16481 (description
16482 "@code{mixed-pitch-mode} is a minor mode that enables mixing
16483 variable-pitch and fixed-pitch fonts in the same buffer. The list
16484 @code{mixed-pitch-fixed-pitch-faces} defines the faces that are kept
16485 fixed-pitch,everything else becomes variable-pitch.")
16486 (license license:gpl3+)))
16487
16488 (define-public emacs-visual-regexp
16489 (package
16490 (name "emacs-visual-regexp")
16491 (version "1.1.2")
16492 (source
16493 (origin
16494 (method git-fetch)
16495 (uri (git-reference
16496 (url "https://github.com/benma/visual-regexp.el")
16497 (commit (string-append "v" version))))
16498 (file-name (git-file-name name version))
16499 (sha256
16500 (base32 "12p3rlhdphwmx1kxsjzcl2wj3i6qgpvw8iwhg1whs6yqgaxivixd"))))
16501 (build-system emacs-build-system)
16502 (home-page "https://github.com/benma/visual-regexp.el/")
16503 (synopsis "Regexp command with interactive visual feedback")
16504 (description "This package provides an Emacs regexp command with
16505 interactive visual feedback.")
16506 (license license:gpl3+)))
16507
16508 (define-public emacs-faceup
16509 (let ((commit "6c92dad56a133e14e7b27831e1bcf9b3a71ff154")
16510 (revision "1"))
16511 (package
16512 (name "emacs-faceup")
16513 (version (string-append "0.0.1" "-" revision "."
16514 (string-take commit 7)))
16515 (source
16516 (origin
16517 (method git-fetch)
16518 (uri (git-reference
16519 (url "https://github.com/Lindydancer/faceup")
16520 (commit commit)))
16521 (file-name (git-file-name name version))
16522 (sha256
16523 (base32
16524 "1yzmy7flrhrh0i10bdszx8idx6r8h6czm4vm4q0z6fp5fw94zwrx"))))
16525 (build-system emacs-build-system)
16526 (home-page "https://github.com/Lindydancer/faceup")
16527 (synopsis "Markup language for faces and font-lock regression testing")
16528 (description "Emacs is capable of highlighting buffers based on
16529 language-specific @code{font-lock} rules. This package makes it possible to
16530 perform regression test for packages that provide font-lock rules.")
16531 (license license:gpl3+))))
16532
16533 (define-public emacs-racket-mode
16534 (let ((commit "5eb31a284c8db5102bc71b1e2c6ce3a095ae085b")
16535 (revision "6"))
16536 (package
16537 (name "emacs-racket-mode")
16538 (version (git-version "0.0.2" revision commit))
16539 (source
16540 (origin
16541 (method git-fetch)
16542 (uri (git-reference
16543 (url "https://github.com/greghendershott/racket-mode")
16544 (commit commit)))
16545 (file-name (git-file-name name version))
16546 (sha256
16547 (base32
16548 "081h6rd0gv88m0wvnmghi242kl39x1sz34qr4cq9vz04iwvnmgrm"))))
16549 (build-system emacs-build-system)
16550 (arguments
16551 `(#:include '("\\.el$" "\\.rkt$")))
16552 (propagated-inputs
16553 `(("emacs-faceup" ,emacs-faceup)
16554 ("emacs-pos-tip" ,emacs-pos-tip)
16555 ("emacs-s" ,emacs-s)))
16556 (home-page "https://www.racket-mode.com/")
16557 (synopsis "Major mode for the Racket language")
16558 (description "@code{racket-mode} provides:
16559
16560 @itemize
16561 @item Focus on Racket (not various Schemes).
16562 @item Follow DrRacket concepts where applicable.
16563 @item Thorough font-lock and indent.
16564 @end itemize\n")
16565 (license license:gpl3+))))
16566
16567 (define-public emacs-grep-context
16568 (let ((commit "5a4e3efdf775755c1bbefcfe4b461c1166d81d7d")
16569 (revision "1"))
16570 (package
16571 (name "emacs-grep-context")
16572 (version (git-version "0.1.0" revision commit))
16573 (source
16574 (origin
16575 (method git-fetch)
16576 (uri (git-reference
16577 (url "https://github.com/mkcms/grep-context")
16578 (commit commit)))
16579 (file-name (git-file-name name version))
16580 (sha256
16581 (base32
16582 "00q7l4a3c0ay6g5ff9bfa2qgkiswsyh4s6pqnpg0zpzhvv5710f5"))))
16583 (build-system emacs-build-system)
16584 (propagated-inputs
16585 `(("emacs-dash" ,emacs-dash)))
16586 (home-page "https://github.com/mkcms/grep-context")
16587 (synopsis "Increase context in compilation and grep buffers")
16588 (description
16589 "This package provides an Emacs package for more context in
16590 compilation/grep buffers. Works with @code{wgrep}, @code{ack}, @code{ag},
16591 @code{ivy}.")
16592 (license license:gpl3+))))
16593
16594 (define-public emacs-helm-firefox
16595 (let ((commit "0ad34b7b5abc485a86cae6920c14de861cbeb085")
16596 (revision "1"))
16597 (package
16598 (name "emacs-helm-firefox")
16599 (version (string-append "0.0.1" "-" revision "."
16600 (string-take commit 7)))
16601 (source
16602 (origin
16603 (method git-fetch)
16604 (uri (git-reference
16605 (url "https://github.com/emacs-helm/helm-firefox")
16606 (commit commit)))
16607 (file-name (git-file-name name version))
16608 (sha256
16609 (base32
16610 "08mjsi2f9s29fkk35cj1rrparjnkm836qmbfdwdz7y51f9varjbs"))))
16611 (propagated-inputs
16612 `(("emacs-helm" ,emacs-helm)))
16613 (build-system emacs-build-system)
16614 (home-page "https://github.com/emacs-helm/helm-firefox")
16615 (synopsis "Display firefox bookmarks with Emacs Helm interface")
16616 (description "Display firefox bookmarks with Emacs Helm interface")
16617 (license license:gpl3+))))
16618
16619 (define-public emacs-interactive-align
16620 (package
16621 (name "emacs-interactive-align")
16622 (version "0.4.2")
16623 (source
16624 (origin
16625 (method git-fetch)
16626 (uri (git-reference
16627 (url "https://github.com/mkcms/interactive-align")
16628 (commit (string-append "v" version))))
16629 (file-name (git-file-name name version))
16630 (sha256
16631 (base32
16632 "0bh03w91i622hbar5dcq631ndxx1y8kd3h655pgw1g0lqkv1mlnc"))))
16633 (build-system emacs-build-system)
16634 (home-page "https://github.com/mkcms/interactive-align/")
16635 (synopsis "Interactive align-regexp command in Emacs")
16636 (description "Interactive align-regexp command in Emacs")
16637 (license license:gpl3+)))
16638
16639 (define-public emacs-shift-number
16640 (package
16641 (name "emacs-shift-number")
16642 (version "0.1")
16643 (source
16644 (origin
16645 (method git-fetch)
16646 (uri (git-reference
16647 (url "https://github.com/alezost/shift-number.el")
16648 (commit (string-append "v" version))))
16649 (file-name (git-file-name name version))
16650 (sha256
16651 (base32
16652 "0zlwmzsxkv4mkggylxfx2fkrwgz7dz3zbg2gkn2rxcpy2k2gla64"))))
16653 (build-system emacs-build-system)
16654 (home-page "https://github.com/alezost/shift-number.el")
16655 (synopsis "Increase or decrease the number at point")
16656 (description "@code{emacs-shift-number} provides commands
16657 @code{shift-number-up} to increase and @code{shift-number-down} to
16658 decrease the number at point.")
16659 (license license:gpl3+)))
16660
16661 (define-public emacs-highlight-defined
16662 (package
16663 (name "emacs-highlight-defined")
16664 (version "0.1.5")
16665 (source
16666 (origin
16667 (method git-fetch)
16668 (uri (git-reference
16669 (url "https://github.com/Fanael/highlight-defined")
16670 (commit version)))
16671 (file-name (git-file-name name version))
16672 (sha256
16673 (base32 "08czwa165rnd5z0dwwdddn7zi5w63sdk31l47bj0598kbly01n7r"))))
16674 (build-system emacs-build-system)
16675 (home-page "https://github.com/Fanael/highlight-defined")
16676 (synopsis "Syntax highlighting of known Elisp symbols")
16677 (description "Minor mode providing syntax highlighting of known Emacs Lisp
16678 symbols. Currently the code distinguishes Lisp functions, built-in functions,
16679 macros, faces and variables. To enable call @code{highlight-defined-mode}. ")
16680 (license license:gpl3+)))
16681
16682 (define-public emacs-parinfer-mode
16683 (package
16684 (name "emacs-parinfer-mode")
16685 (version "0.4.10")
16686 (source
16687 (origin
16688 (method git-fetch)
16689 (uri (git-reference
16690 (url "https://github.com/DogLooksGood/parinfer-mode")
16691 (commit (string-append "v" version))))
16692 (file-name (git-file-name name version))
16693 (sha256
16694 (base32 "0v97ncb0w1slb0x8861l3yr1kqz6fgw1fwl1z9lz6hh8p2ih34sk"))))
16695 (propagated-inputs
16696 `(("emacs-dash" ,emacs-dash)
16697 ("emacs-rainbow-delimiters" ,emacs-rainbow-delimiters)
16698 ("emacs-company" ,emacs-company)))
16699 (build-system emacs-build-system)
16700 (home-page "https://github.com/DogLooksGood/parinfer-mode/")
16701 (synopsis "Lisp structure editing mode")
16702 (description "@code{parinfer-mode} is a proof-of-concept editor
16703 mode for Lisp programming languages. It will infer some changes to
16704 keep Parens and Indentation inline with one another.")
16705 (license license:gpl3+)))
16706
16707 (define-public emacs-helm-eww
16708 (package
16709 (name "emacs-helm-eww")
16710 (version "1.2")
16711 (source (origin
16712 (method git-fetch)
16713 (uri (git-reference
16714 (url "https://github.com/emacs-helm/helm-eww")
16715 (commit version)))
16716 (file-name (git-file-name name version))
16717 (sha256
16718 (base32
16719 "0hpq1h0p69c9k6hkd2mjpprx213sc5475q7pr2zpmwrjdzgcv70z"))))
16720 (propagated-inputs
16721 `(("emacs-helm" ,emacs-helm)))
16722 (build-system emacs-build-system)
16723 (home-page "https://github.com/emacs-helm/helm-eww/")
16724 (synopsis "Helm interface to EWW")
16725 (description "This package provides a Helm interface for EWW buffers,
16726 bookmarks and history.")
16727 (license license:gpl3+)))
16728
16729 (define-public emacs-stumpwm-mode
16730 (let ((commit "920f8fc1488f7953f205e1dda4c2ecbbbda56d6")
16731 (revision "3"))
16732 (package
16733 (name "emacs-stumpwm-mode")
16734 (version (git-version "0.0.1" revision commit))
16735 (source (origin
16736 (method git-fetch)
16737 (uri (git-reference
16738 (url "https://github.com/stumpwm/stumpwm-contrib")
16739 (commit commit)))
16740 (file-name (git-file-name name version))
16741 (sha256
16742 (base32
16743 "0giac390bq95ag41xkxqp8jjrhfx1wpgglz7jg5rkm0wjhcwmyml"))))
16744 (build-system emacs-build-system)
16745 (arguments
16746 `(#:phases
16747 (modify-phases %standard-phases
16748 (add-after 'unpack 'chdir-elisp
16749 ;; Elisp directory is not in root of the source.
16750 (lambda _
16751 (chdir "util/swm-emacs"))))))
16752 (home-page "https://github.com/stumpwm/stumpwm-contrib")
16753 (synopsis "Emacs minor-mode for Stumpwm")
16754 (description "Emacs minor-mode for Stumpwm")
16755 (license license:gpl3+))))
16756
16757 (define-public emacs-irfc
16758 (package
16759 (name "emacs-irfc")
16760 (version "20130824.507-1")
16761 (source
16762 (origin
16763 (method url-fetch)
16764 (uri "https://www.emacswiki.org/emacs/download/irfc.el")
16765 (file-name (string-append "irfc-" version ".el"))
16766 (sha256
16767 (base32
16768 "0rbfrza56kvspvgrwg0b5bj30d0qncqdsmfxn3y5caq4ifcj77hv"))))
16769 (build-system emacs-build-system)
16770 (home-page "https://www.emacswiki.org/emacs/download/irfc.el")
16771 (synopsis "Interface for IETF RFC document")
16772 (description
16773 "This package provides an Emacs interface for IETF RFC document.")
16774 (license license:gpl3+)))
16775
16776 (define-public emacs-ido-vertical-mode
16777 (package
16778 (name "emacs-ido-vertical-mode")
16779 (version "0.1.6")
16780 (source
16781 (origin
16782 (method git-fetch)
16783 (uri (git-reference
16784 (url "https://github.com/creichert/ido-vertical-mode.el")
16785 (commit (string-append "v" version))))
16786 (file-name (git-file-name name version))
16787 (sha256
16788 (base32 "1lv82q639xjnmvby56nwqn23ijh6f163bk675s33dkingm8csj8k"))))
16789 (build-system emacs-build-system)
16790 (home-page "https://github.com/creichert/ido-vertical-mode.el")
16791 (synopsis "Makes ido-mode display vertically")
16792 (description "Makes ido-mode display prospects vertically.")
16793 (license license:gpl3+)))
16794
16795 (define-public emacs-wordgen
16796 (package
16797 (name "emacs-wordgen")
16798 (version "0.1.4")
16799 (source
16800 (origin
16801 (method git-fetch)
16802 (uri (git-reference
16803 (url "https://github.com/Fanael/wordgen.el")
16804 (commit version)))
16805 (file-name (git-file-name name version))
16806 (sha256
16807 (base32 "06vbc9ycz1nbjwjkg99y3lj6jwb6lnwnmkqf09yr00jjrrfhfash"))))
16808 (build-system emacs-build-system)
16809 (home-page "https://github.com/Fanael/wordgen.el")
16810 (synopsis "Random word generator")
16811 (description "This package provides functions to generate random words
16812 using user-provided rules.")
16813 (license license:gpl3+)))
16814
16815 (define-public emacs-on-screen
16816 (package
16817 (name "emacs-on-screen")
16818 (version "1.3.3")
16819 (source
16820 (origin
16821 (method url-fetch)
16822 (uri (string-append
16823 "https://elpa.gnu.org/packages/on-screen-" version ".el"))
16824 (file-name (string-append name "-" version ".el"))
16825 (sha256
16826 (base32 "0ga4hw23ki583li2z2hr7l6hk1nc2kdg4afndg06cm9jn158wza7"))))
16827 (build-system emacs-build-system)
16828 (home-page "https://github.com/michael-heerdegen/on-screen.el")
16829 (synopsis "Guide your eyes while scrolling")
16830 (description
16831 "Scrolling can be distracting because your eyes may lose
16832 orientation. This library implements a minor mode that highlights
16833 the previously visible buffer part after each scroll.")
16834 (license license:gpl3+)))
16835
16836 (define-public emacs-highlight-escape-sequences
16837 ;; No release upstream. Extract version from main file.
16838 (let ((commit "08d846a7aa748209d65fecead2b6a766c3e5cb41")
16839 (revision "0"))
16840 (package
16841 (name "emacs-highlight-escape-sequences")
16842 (version (git-version "0.4" revision commit))
16843 (source
16844 (origin
16845 (method git-fetch)
16846 (uri (git-reference
16847 (url "https://github.com/dgutov/highlight-escape-sequences")
16848 (commit commit)))
16849 (file-name (git-file-name name version))
16850 (sha256
16851 (base32 "05mc3w1f8ykf80914a1yddw6j8cmh0h57llm07xh89s53821v2is"))))
16852 (build-system emacs-build-system)
16853 (home-page "https://github.com/dgutov/highlight-escape-sequences")
16854 (synopsis "Highlight escape sequences in Emacs")
16855 (description "@code{highlight-escape-sequences} provides an
16856 Emacs minor mode to escape sequences in code.")
16857 (license license:gpl3+))))
16858
16859 (define-public emacs-dashboard
16860 (package
16861 (name "emacs-dashboard")
16862 (version "1.6.0")
16863 (source
16864 (origin
16865 (method git-fetch)
16866 (uri (git-reference
16867 (url "https://github.com/rakanalh/emacs-dashboard")
16868 (commit version)))
16869 (file-name (git-file-name name version))
16870 (sha256
16871 (base32 "1g6g8vad1kdmv1zxp95a8sn70idl26isqjb3xk1r95pqnx1cn591"))))
16872 (build-system emacs-build-system)
16873 (propagated-inputs
16874 `(("emacs-page-break-lines" ,emacs-page-break-lines)))
16875 (arguments
16876 '(#:include '("\\.el$" "\\.txt$" "\\.png$")
16877 #:phases
16878 (modify-phases %standard-phases
16879 (add-after 'unpack 'patch-dashboard-widgets
16880 ;; This phase fixes compilation error.
16881 (lambda _
16882 (chmod "dashboard-widgets.el" #o666)
16883 (emacs-substitute-variables "dashboard-widgets.el"
16884 ("dashboard-init-info"
16885 '(format "Loaded in %s" (emacs-init-time))))
16886 #t)))))
16887 (home-page "https://github.com/rakanalh/emacs-dashboard")
16888 (synopsis "Startup screen extracted from Spacemacs")
16889 (description "This package provides an extensible Emacs dashboard, with
16890 sections for bookmarks, projectil projects, org-agenda and more. ")
16891 (license license:gpl3+)))
16892
16893 (define-public emacs-slime-company
16894 (package
16895 (name "emacs-slime-company")
16896 (version "1.1")
16897 (source
16898 (origin
16899 (method git-fetch)
16900 (uri (git-reference
16901 (url "https://github.com/anwyn/slime-company")
16902 (commit (string-append "v" version))))
16903 (file-name (git-file-name name version))
16904 (sha256
16905 (base32 "1hl1hqkc1pxga9k2k8k15d7dip7sfsmwf4wm4sh346m6nj606q8g"))))
16906 (build-system emacs-build-system)
16907 (propagated-inputs
16908 `(("emacs-slime" ,emacs-slime)
16909 ("emacs-company" ,emacs-company)))
16910 (home-page "https://company-mode.github.io")
16911 (synopsis "SLIME completion backend for @code{company-mode}")
16912 (description
16913 "This is a backend implementation for the completion package
16914 @code{company-mode} which supports the normal and the fuzzy completion
16915 modes of SLIME.")
16916 (license license:gpl3+)))
16917
16918 (define-public emacs-sml-mode
16919 (package
16920 (name "emacs-sml-mode")
16921 (version "6.10")
16922 (source
16923 (origin
16924 (method url-fetch)
16925 (uri (string-append "https://elpa.gnu.org/packages/sml-mode-"
16926 version ".el"))
16927 (sha256
16928 (base32 "01yf0s474r9xhj6nbs14ljn9ccxb5yy758i17c8nmgmqvm8fx7sb"))))
16929 (build-system emacs-build-system)
16930 (home-page "https://elpa.gnu.org/packages/sml-mode.html")
16931 (synopsis "Major mode for editing (Standard) ML")
16932 (description "SML-MODE is a major Emacs mode for editing Standard ML.
16933 It provides syntax highlighting and automatic indentation and
16934 comes with sml-proc which allows interaction with an inferior SML
16935 interactive loop.")
16936 (license license:gpl3+)))
16937
16938 (define-public emacs-eros
16939 (let ((commit "dd8910279226259e100dab798b073a52f9b4233a")
16940 (revision "2"))
16941 (package
16942 (name "emacs-eros")
16943 (version (git-version "0.0.1" revision commit))
16944 (source
16945 (origin
16946 (method git-fetch)
16947 (uri (git-reference
16948 (url "https://github.com/xiongtx/eros")
16949 (commit commit)))
16950 (file-name (git-file-name name version))
16951 (sha256
16952 (base32
16953 "08chj3a0lw4ygi2sv7wj0i6ihfbi8jhylr8p92inif8b88r6wg3k"))))
16954 (build-system emacs-build-system)
16955 (home-page "https://github.com/xiongtx/eros")
16956 (synopsis "Evaluation result overlays")
16957 (description "@code{eros} provides evaluation result overlays.")
16958 (license license:gpl3+))))
16959
16960 (define-public emacs-stickyfunc-enhance
16961 (let ((commit "13bdba51fcd83ccbc3267959d23afc94d458dcb0")
16962 (revision "1"))
16963 (package
16964 (name "emacs-stickyfunc-enhance")
16965 (version "0.1")
16966 (source
16967 (origin
16968 (method git-fetch)
16969 (uri (git-reference
16970 (url "https://github.com/tuhdo/semantic-stickyfunc-enhance")
16971 (commit commit)))
16972 (file-name (git-file-name name version))
16973 (sha256
16974 (base32
16975 "16dxjsr5nj20blww4xpd4jzgjprzzh1nwvb810ggdmp9paf4iy0g"))))
16976 (build-system emacs-build-system)
16977 (home-page "https://github.com/tuhdo/semantic-stickyfunc-enhance")
16978 (synopsis "Enhancement to stock @code{semantic-stickyfunc-mode}")
16979 (description
16980 "@code{semantic-stickyfunc-mode} shows the function point is currently
16981 in at the first line of the current buffer. This is useful when you have a
16982 very long function that spreads more than a screen, and you don't have to
16983 scroll up to read the function name and then scroll down to original position.")
16984 (license license:gpl3+))))
16985
16986 (define-public emacs-git-auto-commit-mode
16987 (package
16988 (name "emacs-git-auto-commit-mode")
16989 (version "4.7.0")
16990 (source
16991 (origin
16992 (method git-fetch)
16993 (uri (git-reference
16994 (url "https://github.com/ryuslash/git-auto-commit-mode")
16995 (commit version)))
16996 (file-name (git-file-name name version))
16997 (sha256
16998 (base32 "0gpib57f7xza04g3iyihw5v15hb7pncqsmvyggib902yvcxlkvqf"))))
16999 (build-system emacs-build-system)
17000 (native-inputs
17001 `(("emacs-buttercup" ,emacs-buttercup)
17002 ("git" ,git)))
17003 (arguments
17004 `(#:tests? #t
17005 #:test-command '("buttercup" "-L" ".")))
17006 (home-page "https://github.com/ryuslash/git-auto-commit-mode")
17007 (synopsis "Emacs Minor mode to automatically commit and push")
17008 (description "@code{git-auto-commit-mode} is an Emacs minor mode that
17009 tries to commit changes to a file after every save.
17010
17011 When @code{gac-automatically-push-p} is non-nil, it also tries to push to the
17012 current upstream.")
17013 (license license:gpl3+)))
17014
17015 (define-public emacs-scroll-on-drag
17016 (let ((commit "888abd04c34753b1fc4b2fe541bc004ebec5c996")
17017 (revision "1"))
17018 (package
17019 (name "emacs-scroll-on-drag")
17020 (version (git-version "0.1" revision commit))
17021 (source
17022 (origin
17023 (method git-fetch)
17024 (uri (git-reference
17025 (url "https://gitlab.com/ideasman42/emacs-scroll-on-drag.git")
17026 (commit commit)))
17027 (file-name (git-file-name name version))
17028 (sha256
17029 (base32
17030 "1si4hdqa3jw1inbyh3wb3i5i9grbms1nwky3vyk9zg7iznwm8a9p"))))
17031 (build-system emacs-build-system)
17032 (home-page "https://gitlab.com/ideasman42/emacs-scroll-on-drag")
17033 (synopsis "Interactive scrolling")
17034 (description "This package permits scrolling at increasing speeds based
17035 on drag distance.")
17036 (license license:gpl3+))))
17037
17038 (define-public emacs-company-restclient
17039 (package
17040 (name "emacs-company-restclient")
17041 (version "0.3.0")
17042 (source
17043 (origin
17044 (method git-fetch)
17045 (uri (git-reference
17046 (url "https://github.com/iquiw/company-restclient")
17047 (commit (string-append "v" version))))
17048 (file-name (git-file-name name version))
17049 (sha256
17050 (base32 "0yp0hlrgcr6yy1xkjvfckys2k24x9xg7y6336ma61bdwn5lpv0x0"))))
17051 (build-system emacs-build-system)
17052 (propagated-inputs
17053 `(("emacs-company" ,emacs-company)
17054 ("emacs-know-your-http-well" ,emacs-know-your-http-well)
17055 ("emacs-restclient" ,emacs-restclient)))
17056 (home-page "https://github.com/iquiw/company-restclient")
17057 (synopsis "Company-mode completion back-end for restclient-mode")
17058 (description "@code{company-mode} back-end for
17059 @code{restclient-mode}.
17060
17061 It provides auto-completion for HTTP methods and headers in
17062 @code{restclient-mode}. Completion source is given by
17063 @code{know-your-http-well}.")
17064 (license license:gpl3+)))
17065
17066 (define-public emacs-noflet
17067 (let ((version "20170629")
17068 (revision "1")
17069 (commit "7ae84dc3257637af7334101456dafe1759c6b68a"))
17070 (package
17071 (name "emacs-noflet")
17072 (version (git-version version revision commit))
17073 (source
17074 (origin
17075 (method git-fetch)
17076 (uri (git-reference
17077 (url "https://github.com/nicferrier/emacs-noflet")
17078 (commit commit)))
17079 (file-name (git-file-name name version))
17080 (sha256
17081 (base32
17082 "0g70gnmfi8n24jzfci9nrj0n9bn1qig7b8f9f325rin8h7x32ypf"))))
17083 (build-system emacs-build-system)
17084 (arguments
17085 `(#:phases
17086 (modify-phases %standard-phases
17087 (add-after 'unpack 'require-dash
17088 ;; noflet.el uses -map from dash, but (require 'dash) is
17089 ;; missing. So, add it.
17090 (lambda _
17091 (substitute* "noflet.el"
17092 ((";;; Code:") ";;; Code:\n(require 'dash)"))
17093 #t)))))
17094 (propagated-inputs
17095 `(("emacs-dash" ,emacs-dash)))
17096 (home-page "https://github.com/nicferrier/emacs-noflet")
17097 (synopsis "Locally override functions")
17098 (description "@code{emacs-noflet} lets you locally override functions,
17099 in the manner of @command{flet}, but with access to the original function
17100 through the symbol: @command{this-fn}.")
17101 (license license:gpl3+))))
17102
17103 (define-public emacs-dumb-jump
17104 (package
17105 (name "emacs-dumb-jump")
17106 (version "0.5.3")
17107 (source
17108 (origin
17109 (method git-fetch)
17110 (uri (git-reference
17111 (url "https://github.com/jacktasia/dumb-jump")
17112 (commit (string-append "v" version))))
17113 (file-name (git-file-name name version))
17114 (sha256
17115 (base32 "1njf60264snhxrd36m4z687lqfkis0p9mmrr7cf1c8l0lfdvawxi"))))
17116 (build-system emacs-build-system)
17117 (arguments
17118 `(#:tests? #f ; FIXME: Tests freeze when run.
17119 #:test-command '("ert-runner")
17120 #:phases
17121 (modify-phases %standard-phases
17122 (add-after 'unpack 'set-shell
17123 (lambda _
17124 ;; Setting the SHELL environment variable is required for the
17125 ;; tests to find sh.
17126 (setenv "SHELL" (which "sh"))
17127 #t)))))
17128 (native-inputs
17129 `(("emacs-el-mock" ,emacs-el-mock)
17130 ("emacs-noflet" ,emacs-noflet)
17131 ("emacs-undercover" ,emacs-undercover)
17132 ("ert-runner" ,emacs-ert-runner)))
17133 (propagated-inputs
17134 `(("emacs-f" ,emacs-f)
17135 ("emacs-popup" ,emacs-popup)))
17136 (home-page "https://github.com/jacktasia/dumb-jump")
17137 (synopsis "Jump to definition for multiple languages without configuration")
17138 (description "Dumb Jump is an Emacs \"jump to definition\" package with
17139 support for multiple programming languages that favors \"just working\" over
17140 speed or accuracy. This means minimal --- and ideally zero --- configuration
17141 with absolutely no stored indexes (tags) or persistent background processes.
17142 Dumb Jump performs best with The Silver Searcher @command{ag} or ripgrep
17143 @command{rg} installed.")
17144 (license license:gpl3+)))
17145
17146 (define-public emacs-dts-mode
17147 (let ((commit "9ee0854446dcc6c53d2b8d2941051768dba50344")
17148 (revision "1"))
17149 (package
17150 (name "emacs-dts-mode")
17151 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
17152 (source
17153 (origin
17154 (method git-fetch)
17155 (uri (git-reference
17156 (url "https://github.com/bgamari/dts-mode")
17157 (commit commit)))
17158 (file-name (git-file-name name version))
17159 (sha256
17160 (base32
17161 "1k8lljdbc90nd29xrhdrsscxavzdq532wq2mg7ljc94krj7538b1"))))
17162 (build-system emacs-build-system)
17163 (home-page "https://github.com/bgamari/dts-mode.git")
17164 (synopsis "Emacs minor mode for editing device tree files")
17165 (description
17166 "This package provides an Emacs minor mode for highlighting
17167 device tree files.")
17168 (license license:gpl3+))))
17169
17170 (define-public emacs-daemons
17171 (package
17172 (name "emacs-daemons")
17173 (version "2.0.0")
17174 (source
17175 (origin
17176 (method git-fetch)
17177 (uri (git-reference
17178 (url "https://github.com/cbowdon/daemons.el")
17179 (commit version)))
17180 (file-name (git-file-name name version))
17181 (sha256
17182 (base32
17183 "00bkzfaw3bqykcks610vk9wlpa2z360xn32bpsrycacwfv29j7g4"))))
17184 (build-system emacs-build-system)
17185 (home-page "https://github.com/cbowdon/daemons.el")
17186 (synopsis "Emacs UI for managing init system services")
17187 (description
17188 "This is an Emacs mode to give you a UI for managing init system
17189 daemons (services) for those getting tired of typing out @code{sudo service
17190 my_thing reload} all the time. It offers a consistent UI over different init
17191 systems.")
17192 (license license:gpl3+)))
17193
17194 (define-public emacs-isearch+
17195 (let ((commit "7c251b91a67bf914066e23e269ba52fda5b45f5f")
17196 (revision "2"))
17197 (package
17198 (name "emacs-isearch+")
17199 (version (git-version "0" revision commit))
17200 (source
17201 (origin
17202 (method git-fetch)
17203 (uri (git-reference
17204 (url "https://github.com/emacsmirror/isearch-plus")
17205 (commit commit)))
17206 (file-name (git-file-name name version))
17207 (sha256
17208 (base32
17209 "1w2799714jcdycjlxgs8lpmmz6dmzvcvqy8xwxhvmgpb60g4f2yr"))))
17210 (build-system emacs-build-system)
17211 (home-page "https://www.emacswiki.org/emacs/isearch+.el")
17212 (synopsis "Extensions to @code{isearch.el}")
17213 (description "This package extends @code{isearch} with advice, dynamic
17214 filters, highlighting of regexp group levels, and more.")
17215 (license license:gpl2+))))
17216
17217 (define-public emacs-eshell-bookmark
17218 (package
17219 (name "emacs-eshell-bookmark")
17220 (version "2.0.0")
17221 (source
17222 (origin
17223 (method git-fetch)
17224 (uri (git-reference
17225 (url "https://github.com/Fuco1/eshell-bookmark")
17226 (commit version)))
17227 (file-name (git-file-name name version))
17228 (sha256
17229 (base32
17230 "14dmsnixf9vqdhsixw693sml0fn80zcf0b37z049fb40cmppqxdw"))))
17231 (build-system emacs-build-system)
17232 (home-page "https://github.com/Fuco1/eshell-bookmark")
17233 (synopsis "Provide @file{bookmark.el} integration for @code{eshell}")
17234 (description
17235 "This package allows for bookmarking @code{eshell} buffers. Upon
17236 visiting the bookmark, a new @code{eshell} session will be opened in the
17237 appropriate directory if no @code{eshell} session is active.")
17238 (license license:gpl3+)))
17239
17240 (define-public emacs-eshell-syntax-highlighting
17241 (package
17242 (name "emacs-eshell-syntax-highlighting")
17243 (version "0.2")
17244 (source
17245 (origin
17246 (method git-fetch)
17247 (uri (git-reference
17248 (url "https://github.com/akreisher/eshell-syntax-highlighting")
17249 (commit version)))
17250 (file-name (git-file-name name version))
17251 (sha256
17252 (base32 "0id27874wsb5y169030x8g1ldpa1mnskv1s2j3ygqiyh5fvpfash"))))
17253 (build-system emacs-build-system)
17254 (home-page "https://github.com/akreisher/eshell-syntax-highlighting")
17255 (synopsis "Add syntax highlighting to Eshell")
17256 (description
17257 "This package highlights user commands at the Eshell interactive prompt
17258 to provide feedback on the validity of commands and syntax.")
17259 (license license:gpl3+)))
17260
17261 (define-public emacs-eshell-z
17262 (package
17263 (name "emacs-eshell-z")
17264 (version "0.4")
17265 (source
17266 (origin
17267 (method git-fetch)
17268 (uri (git-reference
17269 (url "https://github.com/xuchunyang/eshell-z")
17270 (commit (string-append "v" version))))
17271 (file-name (git-file-name name version))
17272 (sha256
17273 (base32
17274 "13dwaq8q23rwmrkpy3gvf7aswrkk6b9ak5221xl7n0bld4wdhq3j"))))
17275 (build-system emacs-build-system)
17276 (home-page "https://github.com/xuchunyang/eshell-z")
17277 (synopsis "Quick navigation to frequently visited directories")
17278 (description
17279 "This package is a port of @code{z}, and keeps track of visited directories
17280 and commands invoked within them in order to enable navigation via input of
17281 matching regexps.")
17282 (license license:gpl3+)))
17283
17284 (define-public emacs-esh-autosuggest
17285 (package
17286 (name "emacs-esh-autosuggest")
17287 (version "2.0.0")
17288 (source
17289 (origin
17290 (method git-fetch)
17291 (uri (git-reference
17292 (url "https://github.com/dieggsy/esh-autosuggest")
17293 (commit version)))
17294 (file-name (git-file-name name version))
17295 (sha256
17296 (base32
17297 "116pdjgpjy9b0psm5kzwkwy7dq8vn0p6dy75dl1zsy2xrjf1iqdw"))))
17298 (build-system emacs-build-system)
17299 (propagated-inputs `(("emacs-company" ,emacs-company)))
17300 (home-page "https://github.com/dieggsy/esh-autosuggest")
17301 (synopsis "Fish-like autosuggestions in Eshell")
17302 (description
17303 "This package assumes you use something other than company for eshell
17304 completion (e.g. @code{eshell-pcomplete}, @code{completion-at-point},
17305 @code{helm-esh-pcomplete}). @code{company-mode} is used solely as a mechanism
17306 for history autosuggestions.
17307
17308 Unless you're using @code{use-package}'s hook keyword, you can enable the
17309 autosuggestions with:
17310 @code{(add-hook 'eshell-mode-hook #'esh-autosuggest-mode)}")
17311 (license license:gpl3+)))
17312
17313 (define-public emacs-desktop-environment
17314 (package
17315 (name "emacs-desktop-environment")
17316 (version "0.3.0")
17317 (source
17318 (origin
17319 (method git-fetch)
17320 (uri (git-reference
17321 (url "https://gitlab.petton.fr/DamienCassou/desktop-environment")
17322 (commit (string-append "v" version))))
17323 (file-name (git-file-name name version))
17324 (sha256
17325 (base32
17326 "195n99xvxyh4cfxjpfa1h1maalqrxf7nyi0bh3lqa1z6z5bdb6x2"))))
17327 (build-system emacs-build-system)
17328 (home-page "https://gitlab.petton.fr/DamienCassou/desktop-environment")
17329 (synopsis "Control your GNU/Linux desktop environment from Emacs")
17330 (description
17331 "This package helps you control your GNU/Linux desktop from Emacs.
17332 With @code{desktop-environment}, you can control the brightness and volume as
17333 well as take screenshots and lock your screen. The package depends on the
17334 availability of shell commands to do the hard work for us. These commands can
17335 be changed by customizing the appropriate variables.")
17336 (license license:gpl3+)))
17337
17338 (define-public emacs-org-caldav
17339 (let ((commit "a563500c9884f38ce08793e2964f8274adde163d"))
17340 (package
17341 (name "emacs-org-caldav")
17342 (version (git-version "0.0.0" "1" commit))
17343 (source
17344 (origin
17345 (method git-fetch)
17346 (uri (git-reference
17347 (url "https://github.com/dengste/org-caldav")
17348 (commit commit)))
17349 (file-name (git-file-name name version))
17350 (sha256
17351 (base32
17352 "18qi1iv5dc0gsvkv9ifal3cjpm568nlb907v8a53cnm4439x1l0l"))))
17353 (build-system emacs-build-system)
17354 (arguments
17355 ;; Tests require to have two specific calendars on a test server.
17356 `(#:exclude '("^org-caldav-testsuite\\.el")))
17357 (propagated-inputs
17358 `(("emacs-org" ,emacs-org)))
17359 (home-page "https://github.com/dengste/org-caldav")
17360 (synopsis "Sync Org files with external calendars via the CalDAV protocol")
17361 (description "Synchronize between events in Org files and a CalDAV
17362 calendar.")
17363 (license license:gpl3+))))
17364
17365 (define-public emacs-zotxt
17366 (package
17367 (name "emacs-zotxt")
17368 (version "20180518")
17369 (source
17370 (origin
17371 (method git-fetch)
17372 (uri (git-reference
17373 (url "https://github.com/egh/zotxt-emacs")
17374 (commit "23a4a9f74a658222027d53a9a83cd4bcc583ca8b")))
17375 (file-name (git-file-name name version))
17376 (sha256
17377 (base32 "09fq3w9yk9kn6bz7y9kgpiw612dvj3yzsdk734js6zgb0p8lfd2c"))))
17378 (build-system emacs-build-system)
17379 (propagated-inputs
17380 `(("emacs-deferred" ,emacs-deferred)
17381 ("emacs-request" ,emacs-request)))
17382 (home-page "https://github.com/egh/zotxt-emacs")
17383 (synopsis "Integrate Emacs with Zotero")
17384 (description "This package provides two integration features between Emacs
17385 and the Zotero research assistant: Insertion of links to Zotero items into an
17386 Org-mode file, and citations of Zotero items in Pandoc Markdown files.")
17387 (license license:gpl3+)))
17388
17389 (define-public emacs-evil-magit
17390 (let ((commit "253c644807013fe92429acdef418748794b8f254")
17391 (revision "4"))
17392 (package
17393 (name "emacs-evil-magit")
17394 (version (git-version "0.4.2" revision commit))
17395 (source
17396 (origin
17397 (method git-fetch)
17398 (uri (git-reference
17399 (url "https://github.com/emacs-evil/evil-magit")
17400 (commit commit)))
17401 (file-name (git-file-name name version))
17402 (sha256
17403 (base32
17404 "08mh7phxsdb9w4dfs0pmr4l4fdzzr2rm88z2s8karfi5j5ik2ag5"))))
17405 (build-system emacs-build-system)
17406 (propagated-inputs
17407 `(("emacs-evil" ,emacs-evil)
17408 ("magit" ,emacs-magit)))
17409 (arguments
17410 `(#:tests? #t
17411 #:test-command '("emacs" "-Q" "-batch"
17412 "-L" "."
17413 "-l" "evil-magit-tests"
17414 "-f" "ert-run-tests-batch-and-exit")))
17415 (home-page
17416 "https://github.com/emacs-evil/evil-magit")
17417 (synopsis "Evil-based key bindings for Magit")
17418 (description
17419 "This Emacs library configures Magit and Evil to play well with each other.
17420 For some background see @url{https://github.com/magit/evil-magit/issues/1}.
17421 See the README at @url{https://github.com/justbur/evil-magit} for a table
17422 describing the key binding changes.")
17423 (license license:gpl3+))))
17424
17425 (define-public emacs-evil-multiedit
17426 (package
17427 (name "emacs-evil-multiedit")
17428 (version "1.3.9")
17429 (source
17430 (origin
17431 (method git-fetch)
17432 (uri (git-reference
17433 (url "https://github.com/hlissner/evil-multiedit")
17434 (commit (string-append "v" version))))
17435 (file-name (git-file-name name version))
17436 (sha256
17437 (base32
17438 "19h3kqylqzbjv4297wkzzxdmn9yxbg6z4ga4ssrqri90xs7m3rw3"))))
17439 (build-system emacs-build-system)
17440 (propagated-inputs
17441 `(("emacs-evil" ,emacs-evil)
17442 ("emacs-iedit" ,emacs-iedit)))
17443 (native-inputs
17444 `(("emacs-ert-runner" ,emacs-ert-runner)))
17445 (arguments
17446 `(#:phases
17447 (modify-phases %standard-phases
17448 (add-before 'check 'fix-makefile
17449 (lambda _
17450 (substitute* "Makefile"
17451 (("@cask exec ") ""))
17452 #t)))
17453 #:tests? #t
17454 #:test-command '("make" "test")))
17455 (home-page
17456 "https://github.com/hlissner/evil-multiedit")
17457 (synopsis "Multiple cursors for Evil mode")
17458 (description
17459 "This plugin was an answer to the lack of proper multiple cursor support
17460 in Emacs+Evil. It allows you to select and edit matches interactively,
17461 integrating @code{iedit-mode} into Evil mode with an attempt at sensible
17462 defaults.")
17463 (license license:gpl3+)))
17464
17465 (define-public emacs-evil-mc
17466 (let ((commit "1cabb869fe70cef49f7dc06f015c3ade1a969c8c")
17467 (revision "2"))
17468 (package
17469 (name "emacs-evil-mc")
17470 (version (git-version "0.0.3" revision commit))
17471 (source
17472 (origin
17473 (method git-fetch)
17474 (uri (git-reference
17475 (url "https://github.com/gabesoft/evil-mc")
17476 (commit commit)))
17477 (file-name (git-file-name name version))
17478 (sha256
17479 (base32 "0p83p90faq1p02lmsfs7zrnky3cyzgy8z4m83a81r9kakjzhkrnb"))))
17480 (build-system emacs-build-system)
17481 (propagated-inputs
17482 `(("emacs-evil" ,emacs-evil)))
17483 (native-inputs
17484 `(("emacs-espuds" ,emacs-espuds)))
17485 (home-page "https://github.com/gabesoft/evil-mc")
17486 (synopsis "Interactive search compatible with @code{multiple-cursors}")
17487 (description "This package can be used with @code{multiple-cursors} to
17488 provide an incremental search that moves all fake cursors in sync.")
17489 (license license:expat))))
17490
17491 (define-public emacs-evil-org
17492 (let ((commit "9d4be14118bf27094a30dbff349b815f098aacbf"))
17493 (package
17494 (name "emacs-evil-org")
17495 (version (git-version "1.0.2" "1" commit))
17496 (source
17497 (origin
17498 (method git-fetch)
17499 (uri (git-reference
17500 (url "https://github.com/Somelauw/evil-org-mode")
17501 (commit commit)))
17502 (file-name (git-file-name name version))
17503 (sha256
17504 (base32
17505 "1fxxfkinb0gq4p5b686r7z4jrkv98zfgh5z889zkjacncv8ibswn"))))
17506 (build-system emacs-build-system)
17507 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
17508 (home-page
17509 "https://github.com/Somelauw/evil-org-mode")
17510 (synopsis "Evil keybindings for Org mode")
17511 (description
17512 "This package adds supplemental Evil mode key-bindings to Emacs
17513 Org-mode. It features:
17514 @itemize
17515 @item normal, visual and insert mode bindings;
17516 @item key bindings organised in key themes;
17517 @item operators like > and < to work on headings;
17518 @item text objects;
17519 @item table support;
17520 @item calendar (date selection) support;
17521 @item agenda support.
17522 @end itemize\n")
17523 (license license:gpl3+))))
17524
17525 (define-public emacs-debpaste
17526 (package
17527 (name "emacs-debpaste")
17528 (version "0.1.5")
17529 (home-page "https://github.com/alezost/debpaste.el")
17530 (source
17531 (origin
17532 (method git-fetch)
17533 (uri (git-reference (url home-page)
17534 (commit (string-append "v" version))))
17535 (file-name (git-file-name name version))
17536 (sha256
17537 (base32
17538 "1wi70r56pd5z0x4dp4m58p9asq03j74kdm4fi9vai83vsl2z9amq"))))
17539 (build-system emacs-build-system)
17540 (propagated-inputs
17541 `(("emacs-xml-rpc" ,emacs-xml-rpc)))
17542 (synopsis "Manipulate pastes from the Debian Pastezone")
17543 (description "Debpaste is an Emacs interface for the Debian Pastezone,
17544 allowing you to receive, post, and delete pastes. It communicates with the
17545 server using XML-RPC.")
17546 (license license:gpl3+)))
17547
17548 (define-public emacs-xml-rpc
17549 (let ((commit "8f624f8b964e9145acb504e4457c9510e87dd93c")
17550 (revision "1"))
17551 (package
17552 (name "emacs-xml-rpc")
17553 (version (git-version "1.6.12" revision commit))
17554 (source
17555 (origin
17556 (method git-fetch)
17557 (uri (git-reference
17558 (url "https://github.com/hexmode/xml-rpc-el")
17559 (commit commit)))
17560 (file-name (git-file-name name version))
17561 (sha256
17562 (base32
17563 "0xa54z52rsfl3n0xgmbycj4zazp8ksgdwcq56swzs6wp72zlalmj"))))
17564 (build-system emacs-build-system)
17565 (home-page "https://github.com/hexmode/xml-rpc-el")
17566 (synopsis "XML-RPC client for Emacs")
17567 (description "This package provides an XML-RPC client for Emacs capable
17568 of both synchronous and asynchronous method calls using the @code{url}
17569 package's async retrieval functionality. @file{xml-rpc.el} represents XML-RPC
17570 datatypes as Lisp values, automatically converting to and from the XML
17571 datastructures as needed, both for method parameters and return values, making
17572 using XML-RPC methods fairly transparent to the Lisp code.")
17573 (license license:gpl3+))))
17574
17575 (define-public emacs-xpm
17576 (package
17577 (name "emacs-xpm")
17578 (version "1.0.4")
17579 (source
17580 (origin
17581 (method url-fetch)
17582 (uri (string-append "https://elpa.gnu.org/packages/xpm-"
17583 version ".tar"))
17584 (sha256
17585 (base32
17586 "075miyashh9cm3b0gk6ngld3rm8bfgnh4qxnhxmmvjgzf6a64grh"))))
17587 (build-system emacs-build-system)
17588 (home-page "https://elpa.gnu.org/packages/xpm.html")
17589 (synopsis "XPM image editing mode for Emacs")
17590 (description "This Emacs package makes editing XPM images easy (and maybe
17591 fun). Editing is done directly on the (textual) image format, for maximal
17592 cohesion with the Emacs Way.")
17593 (license license:gpl3+)))
17594
17595 (define-public emacs-fish-completion
17596 (package
17597 (name "emacs-fish-completion")
17598 (version "1.2")
17599 (source
17600 (origin
17601 (method git-fetch)
17602 (uri (git-reference
17603 (url "https://gitlab.com/Ambrevar/emacs-fish-completion.git")
17604 (commit version)))
17605 (file-name (git-file-name name version))
17606 (sha256
17607 (base32
17608 "17lqip1i1rrsvxzz4bx9rqf1fvwd3hriwg3sj6qxmfc8pylnp37q"))))
17609 (build-system emacs-build-system)
17610 (inputs `(("fish" ,fish)))
17611 (arguments
17612 `(#:phases
17613 (modify-phases %standard-phases
17614 (add-after 'unpack 'configure
17615 (lambda* (#:key inputs outputs #:allow-other-keys)
17616 (let ((fish (assoc-ref inputs "fish")))
17617 ;; Specify the absolute file names of the various
17618 ;; programs so that everything works out-of-the-box.
17619 (make-file-writable "fish-completion.el")
17620 (emacs-substitute-variables
17621 "fish-completion.el"
17622 ("fish-completion-command"
17623 (string-append fish "/bin/fish")))))))))
17624 (home-page
17625 "https://gitlab.com/Ambrevar/emacs-fish-completion")
17626 (synopsis "Fish completion for Emacs pcomplete")
17627 (description
17628 "This package provides completion for the Fish shell to pcomplete (used
17629 by shell and Eshell). You can set it up globally with:
17630
17631 @example
17632 (when (and (executable-find \"fish\")
17633 (require 'fish-completion nil t))
17634 (global-fish-completion-mode))
17635 @end example
17636
17637 Alternatively, you can call the @code{fish-completion-mode} manually or in
17638 shell/Eshell mode hook.
17639
17640 The package @code{emacs-bash-completion} is an optional dependency: if available,
17641 @code{fish-completion-complete} can be configured to fall back on bash to further
17642 try completing. See @code{fish-completion-fallback-on-bash-p}.")
17643 (license license:gpl3+)))
17644
17645 (define-public emacs-gif-screencast
17646 (package
17647 (name "emacs-gif-screencast")
17648 (version "1.1")
17649 (source
17650 (origin
17651 (method git-fetch)
17652 (uri (git-reference
17653 (url "https://gitlab.com/Ambrevar/emacs-gif-screencast.git")
17654 (commit version)))
17655 (file-name (git-file-name name version))
17656 (sha256
17657 (base32
17658 "1g1by8lvf8c9vzm4wwsi5kp285kaj0ahsl54048ympin4pi0njw9"))))
17659 (build-system emacs-build-system)
17660 (inputs
17661 `(("scrot" ,scrot)
17662 ("imagemagick" ,imagemagick)
17663 ("gifsicle" ,gifsicle)))
17664 (arguments
17665 `(#:phases
17666 (modify-phases %standard-phases
17667 (add-after 'unpack 'configure
17668 (lambda* (#:key inputs outputs #:allow-other-keys)
17669 (let ((scrot (assoc-ref inputs "scrot"))
17670 (imagemagick (assoc-ref inputs "imagemagick"))
17671 (gifsicle (assoc-ref inputs "gifsicle")))
17672 (make-file-writable "gif-screencast.el")
17673 ;; Specify the absolute file names of the various
17674 ;; programs so that everything works out-of-the-box.
17675 (emacs-substitute-variables
17676 "gif-screencast.el"
17677 ("gif-screencast-program"
17678 (string-append scrot "/bin/scrot"))
17679 ("gif-screencast-convert-program"
17680 (string-append imagemagick "/bin/convert"))
17681 ("gif-screencast-cropping-program"
17682 (string-append imagemagick "/bin/mogrify"))
17683 ("gif-screencast-optimize-program"
17684 (string-append gifsicle "/bin/gifsicle")))))))))
17685 (home-page
17686 "https://gitlab.com/Ambrevar/emacs-gif-screencast")
17687 (synopsis "One-frame-per-action GIF recording")
17688 (description
17689 "Call @code{gif-screencast} to start a recording.
17690 A screenshot is taken for every user action. Call
17691 @code{gif-screencast-stop} (<f9> by default) to finish recording and create
17692 the GIF result.")
17693 (license license:gpl3+)))
17694
17695 (define-public emacs-google-translate
17696 (package
17697 (name "emacs-google-translate")
17698 (version "0.12.0")
17699 (source
17700 (origin
17701 (method git-fetch)
17702 (uri (git-reference
17703 (url "https://github.com/atykhonov/google-translate/")
17704 (commit (string-append "v" version))))
17705 (file-name (git-file-name name version))
17706 (sha256
17707 (base32
17708 "0rwpij2bm8d4jq2w5snkp88mfryplw8166dsrjm407n2p6xr48zx"))))
17709 (build-system emacs-build-system)
17710 (home-page "https://github.com/atykhonov/google-translate")
17711 (synopsis "Emacs interface to Google Translate")
17712 (description
17713 "This package provides an Emacs interface to the Google Translate
17714 on-line service.")
17715 (license license:gpl3+)))
17716
17717 (define-public emacs-helm-company
17718 (package
17719 (name "emacs-helm-company")
17720 (version "0.2.5")
17721 (source
17722 (origin
17723 (method git-fetch)
17724 (uri (git-reference
17725 (url "https://github.com/Sodel-the-Vociferous/helm-company")
17726 (commit (string-append "v" version))))
17727 (file-name (git-file-name name version))
17728 (sha256
17729 (base32
17730 "1ci37w6ahnqrfpb284gjvxmimlf61sdxb9k192yy9q983cksv2hx"))))
17731 (build-system emacs-build-system)
17732 (propagated-inputs
17733 `(("emacs-helm" ,emacs-helm)
17734 ("emacs-company" ,emacs-company)))
17735 (native-inputs
17736 `(("emacs-ert-runner" ,emacs-ert-runner)))
17737 (arguments
17738 `(#:tests? #t
17739 #:test-command '("ert-runner")))
17740 (home-page "https://github.com/Sodel-the-Vociferous/helm-company")
17741 (synopsis "Helm interface for company-mode")
17742 (description
17743 "This is a Helm interface to company-mode, a text completion
17744 framework.")
17745 (license license:gpl3+)))
17746
17747 (define-public emacs-helm-descbinds
17748 (let ((commit "033be73f21778633813264ce1634a6e1ad873d8e"))
17749 (package
17750 (name "emacs-helm-descbinds")
17751 (version (git-version "1.13" "1" commit))
17752 (source
17753 (origin
17754 (method git-fetch)
17755 (uri (git-reference
17756 (url "https://github.com/emacs-helm/helm-descbinds")
17757 (commit commit)))
17758 (file-name (git-file-name name version))
17759 (sha256
17760 (base32
17761 "1n89p56qwa243w1c85i5awnaf7piwjsvfi7nmnsrwm33hix5dknk"))))
17762 (build-system emacs-build-system)
17763 (propagated-inputs `(("emacs-helm" ,emacs-helm)))
17764 (home-page "https://github.com/emacs-helm/helm-descbinds")
17765 (synopsis "Convenient @code{describe-bindings} with Helm")
17766 (description
17767 "This package is a replacement of @code{describe-bindings} for Helm.
17768 @code{describe-bindings} is replaced with @code{helm-descbinds}. As usual,
17769 type @code{C-h b}, or any incomplete key sequence plus @code{C-h}, to run
17770 @code{helm-descbinds}. The bindings are presented in a similar way as
17771 @code{describe-bindings} does, but you can use completion to find the command
17772 you searched for and execute it, or view its documentation.")
17773 (license license:gpl3+))))
17774
17775 (define-public emacs-helm-emms
17776 (let ((commit "37e5aa029abfa5a5c48636314de8157142944fa2"))
17777 (package
17778 (name "emacs-helm-emms")
17779 (version (git-version "1.3" "3" commit))
17780 (source
17781 (origin
17782 (method git-fetch)
17783 (uri (git-reference
17784 (url "https://github.com/emacs-helm/helm-emms")
17785 (commit commit)))
17786 (file-name (git-file-name name version))
17787 (sha256
17788 (base32
17789 "0r1ai6xhzayyik30w2sx9n62bxxwm12vfmjspv0daqif9az8y3vg"))))
17790 (build-system emacs-build-system)
17791 (propagated-inputs
17792 `(("emacs-helm" ,emacs-helm)
17793 ("emacs-emms" ,emacs-emms)))
17794 (home-page
17795 "https://github.com/emacs-helm/helm-emms")
17796 (synopsis "Emms for Helm")
17797 (description "Helm interface for Emms to browse all tracks and all folders
17798 from @code{emms-source-file-default-directory}.")
17799 (license license:gpl3+))))
17800
17801 (define-public emacs-helm-exwm
17802 (package
17803 (name "emacs-helm-exwm")
17804 (version "0.0.2")
17805 (source
17806 (origin
17807 (method git-fetch)
17808 (uri (git-reference
17809 (url "https://github.com/emacs-helm/helm-exwm")
17810 (commit version)))
17811 (file-name (git-file-name name version))
17812 (sha256
17813 (base32 "0g4k01ps14bp2az8v6dcag9llg045k2b4kdis81xx4lvw76znr9v"))))
17814 (build-system emacs-build-system)
17815 (propagated-inputs
17816 `(("emacs-helm" ,emacs-helm)
17817 ("emacs-exwm" ,emacs-exwm)))
17818 (home-page
17819 "https://github.com/emacs-helm/helm-exwm")
17820 (synopsis "Helm for EXWM buffers")
17821 (description
17822 "@code{helm-exwm} runs a Helm session over the list of EXWM buffers.
17823 @code{helm-exwm-switch} is a convenience X application launcher using Helm to
17824 switch between the various windows of one or several specific applications.
17825 See @code{helm-exwm-switch-browser} for an example.")
17826 (license license:gpl3+)))
17827
17828 (define-public emacs-helm-flycheck
17829 (let ((commit "3cf7d3bb194acacc6395f88360588013d92675d6"))
17830 (package
17831 (name "emacs-helm-flycheck")
17832 (version (git-version "0.4" "1" commit))
17833 (source
17834 (origin
17835 (method git-fetch)
17836 (uri (git-reference
17837 (url "https://github.com/yasuyk/helm-flycheck")
17838 (commit commit)))
17839 (file-name (git-file-name name version))
17840 (sha256
17841 (base32
17842 "1a2yfxhz04klwhcandqvfzysxp6b7bxyxx1xk1x3kds5hif5fkl4"))))
17843 (build-system emacs-build-system)
17844 (propagated-inputs
17845 `(("emacs-dash" ,emacs-dash)
17846 ("emacs-flycheck" ,emacs-flycheck)
17847 ("emacs-helm" ,emacs-helm)))
17848 (home-page "https://github.com/yasuyk/helm-flycheck")
17849 (synopsis "Show Flycheck errors with Helm")
17850 (description
17851 "This integrates Flycheck with Helm.")
17852 (license license:gpl3+))))
17853
17854 (define-public emacs-helm-ls-git
17855 (let ((commit "76654c776a7f6e2e5290645e748aac2a746f7daa"))
17856 (package
17857 (name "emacs-helm-ls-git")
17858 (version (git-version "1.9.1" "1" commit))
17859 (source
17860 (origin
17861 (method git-fetch)
17862 (uri (git-reference
17863 (url "https://github.com/emacs-helm/helm-ls-git")
17864 (commit commit)))
17865 (file-name (git-file-name name version))
17866 (sha256
17867 (base32
17868 "0vsq1n3xl3ghy5zik2scm7jrs501n4kybdqd6yw6j0cv4jxdqbr0"))))
17869 (build-system emacs-build-system)
17870 (propagated-inputs `(("emacs-helm" ,emacs-helm)))
17871 (home-page "https://github.com/emacs-helm/helm-ls-git")
17872 (synopsis "Helm interface for listing the files in a Git repository")
17873 (description
17874 "This package provides a Helm interface for Git files.
17875 @itemize
17876 @item Display the open buffers in project.
17877 @item Display a status source showing state of project (modified files etc.).
17878 @item Display a list of all files in project under git control.
17879 @item Quickly look at diffs of modified files.
17880 @item Allow switching to @code{git status} with your preferred frontend
17881 (vc-dir, Magit,etc.).
17882 @item Full integration of git-grep, also allow usage of @code{helm-grep} (you
17883 can use ack-grep instead of grep).
17884 @item Integrate usage of gid from id-utils.
17885 @item Full integration with @code{helm-find-files}, allow you to browse
17886 projects unrelated to current-buffer.
17887 @item In addition, all actions of type files and buffers are provided.
17888 @end itemize\n")
17889 (license license:gpl3+))))
17890
17891 (define-public emacs-helm-mu
17892 (let ((commit "77e6fea24e01481418738421dbcfe28ef1bd63cf"))
17893 (package
17894 (name "emacs-helm-mu")
17895 (version (git-version "20180513" "1" commit))
17896 (source
17897 (origin
17898 (method git-fetch)
17899 (uri (git-reference
17900 (url "https://github.com/emacs-helm/helm-mu")
17901 (commit commit)))
17902 (file-name (git-file-name name version))
17903 (sha256
17904 (base32 "1lh0ahxdc5b2z18m9p30gwg8sbg33sjwkjr38p7h5xsm5fm7i0fz"))))
17905 (build-system emacs-build-system)
17906 (propagated-inputs
17907 `(("emacs-helm" ,emacs-helm)
17908 ("mu" ,mu)))
17909 (home-page
17910 "https://github.com/emacs-helm/helm-mu")
17911 (synopsis
17912 "Helm sources for searching emails and contacts")
17913 (description
17914 "Helm sources for searching emails and contacts using @code{mu} and
17915 @code{mu4e}. Mu is an indexer for maildirs and mu4e is a mutt-like MUA for
17916 Emacs build on top of mu. Mu is highly efficient making it possible to get
17917 instant results even for huge maildirs. It also provides search operators,
17918 e.g: @code{from:Peter to:Anne flag:attach search term}.")
17919 (license license:gpl3+))))
17920
17921 (define-public emacs-helm-pass
17922 (package
17923 (name "emacs-helm-pass")
17924 (version "0.3")
17925 (source
17926 (origin
17927 (method git-fetch)
17928 (uri (git-reference
17929 (url "https://github.com/emacs-helm/helm-pass")
17930 (commit version)))
17931 (file-name (git-file-name name version))
17932 (sha256
17933 (base32
17934 "0vglaknmir3yv4iwibwn8r40ran8d04gcyp99hx73ldmf3zqpnxv"))))
17935 (build-system emacs-build-system)
17936 (propagated-inputs
17937 `(("emacs-helm" ,emacs-helm)
17938 ("emacs-password-store" ,emacs-password-store)))
17939 (home-page "https://github.com/emacs-helm/helm-pass")
17940 (synopsis "Helm interface to pass, the standard Unix password manager")
17941 (description
17942 "Users of @code{helm-pass} may also be interested in functionality
17943 provided by other Emacs packages dealing with pass:
17944 @itemize
17945 @item @code{emacs-password-store}, which @code{helm-pass} relies on.
17946 @item @code{emacs-pass}, a major mode for @code{pass}.
17947 @item @code{auth-source-pass.el}: integration of Emacs' auth-source with
17948 @code{pass}, included in Emacs 26+).
17949 @end itemize\n")
17950 (license license:gpl3+)))
17951
17952 (define-public emacs-image+
17953 (let ((commit "6834d0c09bb4df9ecc0d7a559bd7827fed48fffc"))
17954 (package
17955 (name "emacs-image+")
17956 (version (git-version "0.6.2" "1" commit))
17957 (source
17958 (origin
17959 (method git-fetch)
17960 (uri (git-reference
17961 (url "https://github.com/mhayashi1120/Emacs-imagex")
17962 (commit commit)))
17963 (file-name (git-file-name name version))
17964 (sha256
17965 (base32
17966 "0v66wk9nh0raih4jhrzmmyi5lbysjnmbv791vm2230ffi2hmwxnd"))))
17967 (build-system emacs-build-system)
17968 (inputs `(("imagemagick" ,imagemagick)))
17969 (arguments
17970 `(#:phases
17971 (modify-phases %standard-phases
17972 (add-after 'unpack 'configure
17973 (lambda* (#:key inputs outputs #:allow-other-keys)
17974 (let ((imagemagick (assoc-ref inputs "imagemagick")))
17975 ;; Specify the absolute file names of the various
17976 ;; programs so that everything works out-of-the-box.
17977 (chmod "image+.el" #o666)
17978 (emacs-substitute-variables
17979 "image+.el"
17980 ("imagex-convert-command"
17981 (string-append imagemagick "/bin/convert"))
17982 ("imagex-identify-command"
17983 (string-append imagemagick "/bin/identify")))))))))
17984 (home-page "https://github.com/mhayashi1120/Emacs-imagex")
17985 (synopsis "Image manipulation extensions for Emacs")
17986 (description
17987 "Image+ provides keybindings allowing you to zoom in or zoom out of an
17988 image, rotate it, save modified images, and more.")
17989 (license license:gpl3+))))
17990
17991 (define-public emacs-package-lint
17992 (let ((commit "69bb89d00ba212b734c676ad056aa793c450b288"))
17993 (package
17994 (name "emacs-package-lint")
17995 (version (git-version "0.5" "1" commit))
17996 (source
17997 (origin
17998 (method git-fetch)
17999 (uri (git-reference
18000 (url "https://github.com/purcell/package-lint")
18001 (commit commit)))
18002 (file-name (git-file-name name version))
18003 (sha256
18004 (base32
18005 "1hfricsgmy3x9snnd2p4xq6vnnv94qdsxxnxp07b3hqc9bhw31rq"))))
18006 (build-system emacs-build-system)
18007 (home-page "https://github.com/purcell/package-lint")
18008 (synopsis "Linting library for elisp package authors")
18009 (description
18010 "This provides a list of issues with the Emacs package metadata of a file,
18011 e.g. the package dependencies it requires. See function
18012 @code{package-lint-buffer}. Checks will currently be enabled only if a
18013 \"Package-Requires:\" or \"Package-Version:\" header is present in the
18014 file.")
18015 (license license:gpl3+))))
18016
18017 (define-public emacs-picpocket
18018 (let ((version "40")
18019 (commit "6fd88b8711c4370662c0f9c462170187d092a046"))
18020 (package
18021 (name "emacs-picpocket")
18022 (version version)
18023 (source
18024 (origin
18025 (method git-fetch)
18026 (uri (git-reference
18027 (url "https://github.com/johanclaesson/picpocket")
18028 (commit commit)))
18029 (file-name (git-file-name name version))
18030 (sha256
18031 (base32 "1mdzzxf7xm7zwrpnqqxa27d1cr31pd72d7ilbwljv13qp177a3yw"))))
18032 (build-system emacs-build-system)
18033 (arguments ; needed for running tests
18034 `(#:tests? #t
18035 #:emacs ,emacs
18036 #:test-command '("emacs" "--batch"
18037 "-l" "picpocket-test.el"
18038 "-f" "ert-run-tests-batch-and-exit")))
18039 (home-page "https://github.com/johanclaesson/picpocket")
18040 (synopsis "Image viewer for Emacs")
18041 (description
18042 "Picpocket is an image viewer for GNU Emacs. It has commands for:
18043
18044 @itemize
18045 @item File operations on the picture files (delete, move, copy, hardlink).
18046 @item Scale and rotate the picture.
18047 @item Associate pictures with tags which are saved to disk.
18048 @item Filter pictures according to tags.
18049 @item Customizing keystrokes for quick tagging and file operations.
18050 @item Undo and browse history of undoable commands.
18051 @end itemize")
18052 (license license:gpl3+))))
18053
18054 (define-public emacs-mu4e-conversation
18055 (let ((commit "98110bb9c300fc9866dee8e0023355f9f79c9b96")
18056 (revision "5"))
18057 (package
18058 (name "emacs-mu4e-conversation")
18059 (version (git-version "0.0.1" revision commit))
18060 (source
18061 (origin
18062 (method git-fetch)
18063 (uri (git-reference
18064 (url "https://gitlab.com/Ambrevar/mu4e-conversation.git")
18065 (commit commit)))
18066 (file-name (git-file-name name version))
18067 (sha256
18068 (base32
18069 "080s96jkcw2p288sp1vgds91rgl693iz6hi2dv56p2ih0nnivwlg"))))
18070 (build-system emacs-build-system)
18071 (propagated-inputs
18072 `(("mu" ,mu)))
18073 (home-page
18074 "https://gitlab.com/Ambrevar/mu4e-conversation")
18075 (synopsis
18076 "Show a complete thread in a single buffer")
18077 (description
18078 "This package offers an alternate view to mu4e's e-mail display. It
18079 shows all e-mails of a thread in a single view, where each correspondent has
18080 their own face. Threads can be displayed linearly (in which case e-mails are
18081 displayed in chronological order) or as an Org document where the node tree
18082 maps the thread tree.")
18083 (license license:gpl3+))))
18084
18085 (define-public emacs-pinentry
18086 (let ((commit "dcc9ba03252ee5d39e03bba31b420e0708c3ba0c")
18087 (revision "1"))
18088 (package
18089 (name "emacs-pinentry")
18090 (version (git-version "0.1" revision commit))
18091 (source
18092 (origin
18093 (method url-fetch)
18094 (uri (string-append
18095 "http://git.savannah.gnu.org/cgit/emacs/elpa.git/plain"
18096 "/packages/pinentry/pinentry.el?id=" commit))
18097 (file-name (string-append "pinentry.el"))
18098 (sha256
18099 (base32
18100 "1lf30q6r8nz5cjzclbb9bbymsk2y75nskvb55hnjdv93gr3j0sik"))))
18101 (build-system emacs-build-system)
18102 (propagated-inputs
18103 `(("gnupg" ,gnupg)))
18104 (home-page "https://elpa.gnu.org/packages/pinentry.html")
18105 (synopsis "GnuPG Pinentry server implementation")
18106 (description
18107 "This package allows GnuPG passphrase to be prompted through the
18108 minibuffer instead of graphical dialog.
18109
18110 To use, add @code{allow-emacs-pinentry} to @code{~/.gnupg/gpg-agent.conf},
18111 reload the configuration with @code{gpgconf --reload gpg-agent}, and start the
18112 server with @code{M-x pinentry-start}.")
18113 (license license:gpl3+))))
18114
18115 (define-public emacs-so-long
18116 (let ((commit "cfae473b1bf65f78ddb015159e667ec0103d881c")
18117 (revision "2"))
18118 (package
18119 (name "emacs-so-long")
18120 (version (git-version "1.0" revision commit))
18121 (source
18122 (origin
18123 (method git-fetch)
18124 (uri (git-reference
18125 (url "https://git.savannah.gnu.org/git/so-long.git")
18126 (commit commit)))
18127 (file-name (git-file-name name version))
18128 (sha256
18129 (base32
18130 "0g943n5cl9lz5s7hszg6yvp10xd1xvd8mfgxyg0yckmp8fqkswin"))))
18131 (build-system emacs-build-system)
18132 (home-page "https://www.emacswiki.org/emacs/SoLong")
18133 (synopsis "Improve performance in files with long lines")
18134 (description "This package improves the performance of Emacs when
18135 viewing files with long lines.")
18136 (license license:gpl3+))))
18137
18138 (define-public emacs-github-review
18139 (let ((commit "a13a3b4f1b6114a32af843971a145ab880f51232")
18140 (revision "2"))
18141 (package
18142 (name "emacs-github-review")
18143 (version (git-version "0.1" revision commit))
18144 (source
18145 (origin
18146 (method git-fetch)
18147 (uri (git-reference
18148 (url "https://github.com/charignon/github-review")
18149 (commit commit)))
18150 (file-name (git-file-name name version))
18151 (sha256
18152 (base32
18153 "0injfpxzgfhmqalba845j5l5cdcxxqz43knhxwinf36g52nfabl0"))))
18154 (build-system emacs-build-system)
18155 (inputs
18156 `(("emacs-dash" ,emacs-dash)
18157 ("emacs-s" ,emacs-s)
18158 ("emacs-ghub" ,emacs-ghub)))
18159 (native-inputs
18160 `(("emacs-buttercup" ,emacs-buttercup)
18161 ("emacs-undercover" ,emacs-undercover)))
18162 (arguments
18163 `(#:tests? #t
18164 #:test-command '("buttercup" "-L" "test/github-review-test.el")))
18165 (home-page "https://github.com/charignon/github-review")
18166 (synopsis "Review GitHub pull requests within Emacs")
18167 (description "This package provides commands to pull in, comment on, and
18168 accept and reject GitHub pull requests.")
18169 (license license:gpl3+))))
18170
18171 (define-public emacs-deadgrep
18172 (let ((commit "7e50e71c6ff4e17dded43e0836dae4e5ec020fcf")
18173 (revision "1"))
18174 (package
18175 (name "emacs-deadgrep")
18176 (version (git-version "0.10" revision commit))
18177 (source
18178 (origin
18179 (method git-fetch)
18180 (uri (git-reference
18181 (url "https://github.com/Wilfred/deadgrep")
18182 (commit commit)))
18183 (file-name (git-file-name name version))
18184 (sha256
18185 (base32
18186 "1vjhrq02l8gvdn2haygzq7277hnhjchs9xrfpcnh76gqip200gx4"))))
18187 (build-system emacs-build-system)
18188 (propagated-inputs
18189 `(("emacs-dash" ,emacs-dash)
18190 ("emacs-s" ,emacs-s)
18191 ("emacs-spinner" ,emacs-spinner)))
18192 (home-page "https://github.com/Wilfred/deadgrep")
18193 (synopsis "Frontend for @code{ripgrep}")
18194 (description "This package provides an Emacs interface for performing
18195 searches with @code{ripgrep}.")
18196 (license license:gpl3+))))
18197
18198 (define-public emacs-focus
18199 (let ((commit "ab42b8779929beeb7878c7fb3d3ccd80d9327c7f")
18200 (version "0.1.1")
18201 (revision "1"))
18202 (package
18203 (name "emacs-focus")
18204 (version (git-version version revision commit))
18205 (source
18206 (origin
18207 (method git-fetch)
18208 (uri (git-reference
18209 (url "https://github.com/larstvei/Focus")
18210 (commit commit)))
18211 (file-name (git-file-name name version))
18212 (sha256
18213 (base32
18214 "079v1syid7h2vr2ya6hs6hl0pgj60qdsw60mqw4cj2zllmkrkwj4"))))
18215 (build-system emacs-build-system)
18216 (home-page "https://github.com/larstvei/Focus")
18217 (synopsis "Minor mode for focusing in on relevant text")
18218 (description "This package provides a minor mode that dims the color of
18219 text in neighboring sections.")
18220 (license license:gpl3+))))
18221
18222 (define-public emacs-pandoc-mode
18223 (package
18224 (name "emacs-pandoc-mode")
18225 (version "2.27.2")
18226 (source
18227 (origin
18228 (method git-fetch)
18229 (uri (git-reference
18230 (url "https://github.com/joostkremers/pandoc-mode")
18231 (commit version)))
18232 (file-name (git-file-name name version))
18233 (sha256
18234 (base32
18235 "04bqc7mhgkfks3nsvimd3rrriv4nqbksmv5ahlbbd03aqa2b0vrv"))))
18236 (build-system emacs-build-system)
18237 (propagated-inputs
18238 `(("emacs-dash" ,emacs-dash)
18239 ("emacs-hydra" ,emacs-hydra)))
18240 (home-page "https://github.com/joostkremers/pandoc-mode")
18241 (synopsis "Minor mode for interacting with Pandoc")
18242 (description "This package provides a Hydra menu for interacting with the
18243 Pandoc, the document-conversion tool.")
18244 (license license:bsd-3)))
18245
18246 (define-public emacs-hlint-refactor-mode
18247 (let ((commit "c4307f86aad6d02e32e9b30cb6edc115584c791c")
18248 (revision "1"))
18249 (package
18250 (name "emacs-hlint-refactor-mode")
18251 (version (git-version "0.0.1" revision commit))
18252 (source
18253 (origin
18254 (method git-fetch)
18255 (uri (git-reference
18256 (url "https://github.com/mpickering/hlint-refactor-mode")
18257 (commit commit)))
18258 (file-name (git-file-name name version))
18259 (sha256
18260 (base32
18261 "1c71w9s34n0i7mm4njchxn6s3ri1y6mh3akgbg4nq41d42h8iap3"))))
18262 (build-system emacs-build-system)
18263 (propagated-inputs
18264 `(("apply-refact" ,apply-refact)
18265 ("hlint" ,hlint)))
18266 (home-page "https://github.com/mpickering/hlint-refactor-mode")
18267 (synopsis "Emacs bindings for @code{hlint}'s @code{--refactor} option")
18268 (description "This package applies refactoring suggestions from
18269 @code{hlint}.")
18270 (license license:expat))))
18271
18272 (define-public emacs-ccls
18273 (let ((commit "aab3e31fd716daf59f9794e62d473357263e8cc0")
18274 (revision "4"))
18275 (package
18276 (name "emacs-ccls")
18277 (version (git-version "0.1" revision commit))
18278 (source
18279 (origin
18280 (method git-fetch)
18281 (uri (git-reference
18282 (url "https://github.com/MaskRay/emacs-ccls")
18283 (commit commit)))
18284 (file-name (git-file-name name version))
18285 (sha256
18286 (base32
18287 "1ykgw21ypyhwlyflppjcgqrj1xw4d9rld4z65qvwhk3f12cv113j"))))
18288 (build-system emacs-build-system)
18289 (propagated-inputs
18290 `(("ccls" ,ccls)
18291 ("emacs-dash" ,emacs-dash)
18292 ("emacs-projectile" ,emacs-projectile)
18293 ("emacs-lsp-mode" ,emacs-lsp-mode)))
18294 (home-page "https://github.com/MaskRay/emacs-ccls")
18295 (synopsis "Emacs support for the @code{ccls} language server")
18296 (description "This package extends @code{lsp-mode} to work with @code{C}
18297 and @code{C++} files through the @code{ccls} language server.")
18298 (license license:expat))))
18299
18300 (define-public emacs-org-brain
18301 (package
18302 (name "emacs-org-brain")
18303 (version "0.5")
18304 (source
18305 (origin
18306 (method git-fetch)
18307 (uri (git-reference
18308 (url "https://github.com/Kungsgeten/org-brain")
18309 (commit "3faf9303af3f2356e3444e69c22dc6c5774047d1")))
18310 (file-name (git-file-name name version))
18311 (sha256
18312 (base32
18313 "1ad681zk6kckw2zbk0r4iaj4bw8cfqrbd1s3gdwgdjlzq81q9mmj"))))
18314 (build-system emacs-build-system)
18315 (home-page "https://github.com/Kungsgeten/org-brain")
18316 (synopsis "Org-mode wiki and concept-mapping for Emacs")
18317 (description "@code{emacs-org-brain} implements a variant of concept
18318 mapping in Emacs, using @code{org-mode}. An org-brain is a network of
18319 org-mode entries, where each entry is a file or a headline, and you can get a
18320 visual overview of the relationships between the entries: parents, children,
18321 siblings and friends. This visual overview can also be used to browse your
18322 entries. You can think of entries as nodes in a mind map, or pages in a
18323 wiki.")
18324 (license license:expat)))
18325
18326 (define-public emacs-recent-addresses
18327 (let ((commit "afbbfdc43b81e620acf827ca20d297e0c517b6eb")
18328 (revision "1"))
18329 (package
18330 (name "emacs-recent-addresses")
18331 (home-page "https://nschum.de/src/emacs/recent-addresses/")
18332 (version (git-version "0.1" revision commit))
18333 (source (origin
18334 (method git-fetch)
18335 (uri (git-reference
18336 ;; Note: Use a branch that works with Helm. Submitted
18337 ;; at <https://github.com/nschum/recent-addresses.el/pull/1>.
18338 (url "https://github.com/civodul/recent-addresses.el")
18339 (commit commit)))
18340 (sha256
18341 (base32
18342 "0ajrq0galjmdyjdjyxazykjyax3gh6hvfk4s7l657pi11g0q5zax"))
18343 (file-name (git-file-name name version))))
18344 (build-system emacs-build-system)
18345 (synopsis "Record recently-used email addressed and auto-complete them")
18346 (description
18347 "@code{recent-addresses} is an Emacs package that allows you to quickly
18348 look up previously used email addresses. It can be used alongside the Gnus
18349 email client.")
18350 (license license:gpl2+))))
18351
18352 (define-public emacs-fold-dwim
18353 (let ((commit "c46f4bb2ce91b4e307136320e72c28dd50b6cd8b")
18354 (revision "0"))
18355 (package
18356 (name "emacs-fold-dwim")
18357 (version (git-version "1.2" revision commit))
18358 (home-page "https://github.com/emacsattic/fold-dwim")
18359 (source (origin
18360 (method git-fetch)
18361 (uri (git-reference (url home-page) (commit commit)))
18362 (sha256
18363 (base32
18364 "1yz1wis31asw6xa5maliyd1ck2q02xnnh7dc6swgj9cb4wi7k6i1"))
18365 (file-name (git-file-name name version))))
18366 (build-system emacs-build-system)
18367 (synopsis "Unified user interface for Emacs folding modes")
18368 (description
18369 "DWIM stands for \"do what I mean\", as in the idea that one keystroke
18370 can do different things depending on the context. In this package, it means
18371 that, if the cursor is in a currently hidden folded construction, we want to
18372 show it; if it's not, we want to hide whatever fold the cursor is in.")
18373 (license license:gpl2+))))
18374
18375 (define-public emacs-markup-faces
18376 (package
18377 (name "emacs-markup-faces")
18378 (version "1.0.0")
18379 (source
18380 (origin
18381 (method url-fetch)
18382 (uri (string-append "https://stable.melpa.org/packages/markup-faces-"
18383 version ".el"))
18384 (sha256
18385 (base32
18386 "124dxbaa25fwxnpwsygpz7pw6da6dnnw7y2lic3jf8rgz7lw4v32"))))
18387 (build-system emacs-build-system)
18388 (home-page "https://github.com/sensorflo/markup-faces")
18389 (synopsis "Collection of Emacs faces for markup language modes")
18390 (description "emacs-markup-faces is like font-lock-faces, but tailored for
18391 markup languages instead programming languages. The sub group markup-faces-text
18392 is also intended for 'text viewing modes' such as info or (wo)man. This gives a
18393 common look and feel, or let's say theme, across different markup language modes
18394 and 'text viewing modes' respectively.")
18395 (license license:gpl3+)))
18396
18397 (define-public emacs-adoc-mode
18398 (package
18399 (name "emacs-adoc-mode")
18400 (version "0.6.6")
18401 (source
18402 (origin
18403 (method git-fetch)
18404 (uri (git-reference
18405 (url "https://github.com/sensorflo/adoc-mode")
18406 (commit (string-append "V" version))))
18407 (file-name (git-file-name name version))
18408 (sha256
18409 (base32
18410 "0kp2aafjhqxz3mjr9hkkss85r4n51chws5a2qj1xzb63dh36liwm"))))
18411 (build-system emacs-build-system)
18412 (arguments
18413 `(#:phases
18414 (modify-phases %standard-phases
18415 ;; See: https://github.com/sensorflo/adoc-mode/issues/39.
18416 (add-after 'unpack 'disable-failing-tests
18417 (lambda _
18418 (let-syntax
18419 ((disable-tests
18420 (syntax-rules ()
18421 ((_ file ())
18422 (syntax-error "test names list must not be empty"))
18423 ((_ file (test-name ...))
18424 (substitute* file
18425 (((string-append "^\\(ert-deftest " test-name ".*") all)
18426 (string-append all "(skip-unless nil)\n")) ...)))))
18427 (disable-tests "adoc-mode-test.el"
18428 ("adoctest-test-tempo-delimited-blocks"
18429 "adoctest-test-tempo-macros"
18430 "adoctest-test-tempo-paragraphs"
18431 "adoctest-test-tempo-passthroug-macros"
18432 "adoctest-test-tempo-quotes")))
18433 #t)))
18434 #:tests? #t
18435 #:test-command '("emacs" "-Q" "-batch"
18436 "-l" "adoc-mode-test.el"
18437 "-f" "ert-run-tests-batch-and-exit")))
18438 (propagated-inputs
18439 `(("emacs-markup-faces" ,emacs-markup-faces)))
18440 (home-page "https://github.com/sensorflo/adoc-mode/wiki")
18441 (synopsis "AsciiDoc mode for Emacs")
18442 (description "This package provides an Emacs major mode for editing AsciiDoc
18443 files. It focuses on highlighting the document to improve readability.")
18444 (license license:gpl2+)))
18445
18446 (define-public emacs-racer
18447 (package
18448 (name "emacs-racer")
18449 (version "1.2")
18450 (source
18451 (origin
18452 (method git-fetch)
18453 (uri
18454 (git-reference
18455 (url "https://github.com/racer-rust/emacs-racer")
18456 (commit version)))
18457 (file-name (git-file-name name version))
18458 (sha256
18459 (base32 "0xj5iki10cg8j8vvqjlw6lfx97k3agwirhchcjnzbnkry48x9qi6"))))
18460 (arguments
18461 `(#:tests? #t
18462 #:test-command '("make" "test")
18463 #:phases
18464 (modify-phases %standard-phases
18465 (add-before 'check 'fix-makefile
18466 (lambda _
18467 (substitute* "Makefile"
18468 (("\\$\\{CASK\\} exec ") ""))
18469 #t)))))
18470 (native-inputs
18471 `(("emacs-ert-runner" ,emacs-ert-runner)
18472 ("emacs-undercover" ,emacs-undercover)))
18473 (propagated-inputs
18474 `(("emacs-dash" ,emacs-dash)
18475 ("emacs-f" ,emacs-f)
18476 ("emacs-pos-tip" ,emacs-pos-tip)
18477 ("emacs-rust-mode" ,emacs-rust-mode)
18478 ("emacs-s" ,emacs-s)))
18479 (build-system emacs-build-system)
18480 (home-page "https://github.com/racer-rust/emacs-racer")
18481 (synopsis "Racer support for Emacs")
18482 (description
18483 "This is the official Emacs package for Racer. It supports code
18484 completion of variables, functions and modules. It can also jump to
18485 definition of functions and types, and show a help buffer based on the
18486 docstring of the thing at point.")
18487 (license license:expat)))
18488
18489 (define-public emacs-rust-mode
18490 (package
18491 (name "emacs-rust-mode")
18492 (version "0.4.0")
18493 (source (origin
18494 (method git-fetch)
18495 (uri (git-reference
18496 (url "https://github.com/rust-lang/rust-mode")
18497 (commit version)))
18498 (file-name (git-file-name name version))
18499 (sha256
18500 (base32
18501 "0bcrklyicxh032rrp585rl5mxd26nb61dp6r5bl935rlcmxzsczh"))))
18502 (build-system emacs-build-system)
18503 (arguments
18504 `(#:phases
18505 (modify-phases %standard-phases
18506 (replace 'check
18507 (lambda _
18508 (invoke "sh" "run_rust_emacs_tests.sh"))))))
18509 (home-page "https://github.com/rust-lang/rust-mode")
18510 (synopsis "Major Emacs mode for editing Rust source code")
18511 (description "This package provides a major Emacs mode for editing Rust
18512 source code.")
18513 (license (list license:expat
18514 license:asl2.0))))
18515
18516 (define-public emacs-ztree
18517 (let ((commit "c54425a094353ec40a8179f9eab3596f76c6cf94"))
18518 (package
18519 (name "emacs-ztree")
18520 (version (git-version "1.0.5" "1" commit))
18521 (source
18522 (origin
18523 (method git-fetch)
18524 (uri (git-reference
18525 (url "https://github.com/fourier/ztree")
18526 (commit commit)))
18527 (file-name (git-file-name name version))
18528 (sha256
18529 (base32
18530 "0j8fpxds8m1zi04nrs8vv21091abvh4n8ab76f1sgdxnp4l5cfb0"))))
18531 (build-system emacs-build-system)
18532 (home-page "https://github.com/fourier/ztree")
18533 (synopsis "Directory tree comparison mode for Emacs")
18534 (description "Ztree is a project dedicated to implementation of several
18535 text-tree applications inside GNU Emacs. It consists of 2 subprojects:
18536 @command{ztree-diff} and @command{ztree-dir} (the basis of
18537 @command{ztree-diff}).")
18538 (license license:gpl3))))
18539
18540 (define-public emacs-helm-org-contacts
18541 (let ((commit "e7f11615802df55bb8b679450b5a5ef82a9081f9"))
18542 (package
18543 (name "emacs-helm-org-contacts")
18544 (version (git-version "20200310" "1" commit))
18545 (source
18546 (origin
18547 (method git-fetch)
18548 (uri (git-reference
18549 (url "https://github.com/tmalsburg/helm-org-contacts")
18550 (commit commit)))
18551 (file-name (git-file-name name version))
18552 (sha256
18553 (base32
18554 "06a1gbrq3qcfsn0kyv4i24x1xxfrrwqa3kgfj4xa4va88q2vqyb5"))))
18555 (build-system emacs-build-system)
18556 (propagated-inputs
18557 `(("emacs-dash" ,emacs-dash)
18558 ("emacs-helm" ,emacs-helm)
18559 ("emacs-s" ,emacs-s)))
18560 (home-page "https://github.com/tmalsburg/helm-org-contacts")
18561 (synopsis "Helm source for org-contacts")
18562 (description "This Helm source can be used to search contacts stored in
18563 org-contacts format. There are actions for inserting postal addresses, email
18564 addresses, and phone numbers in the buffer where @command{helm-org-contacts}
18565 was called.")
18566 (license license:gpl3))))
18567
18568 (define-public emacs-dired-du
18569 (package
18570 (name "emacs-dired-du")
18571 (version "0.5.2")
18572 (source
18573 (origin
18574 (method url-fetch)
18575 (uri (string-append
18576 "https://elpa.gnu.org/packages/dired-du-" version ".tar"))
18577 (sha256
18578 (base32 "0vhph7vcicsiq28b10h3b4dvnhckcy4gccpdgsad5j7pwa5k26m1"))))
18579 (build-system emacs-build-system)
18580 (home-page "https://elpa.gnu.org/packages/dired-du.html")
18581 (synopsis "Dired with recursive directory sizes")
18582 (description
18583 "Display the recursive size of directories in Dired.
18584 This file defines a minor mode @command{dired-du-mode} to show the recursive
18585 size of directories in Dired buffers. If @command{du} program is available,
18586 then the directory sizes are obtained with it. Otherwise, the directory sizes
18587 are obtained with Lisp. The former is faster and provide a more precise
18588 value. For directories where the user doesn't have read permission, the
18589 recursive size is not obtained. Once this mode is enabled, every new Dired
18590 buffer displays recursive dir sizes.")
18591 (license license:gpl3+)))
18592
18593 (define-public emacs-dired-rsync
18594 (package
18595 (name "emacs-dired-rsync")
18596 (version "0.4")
18597 (source (origin
18598 (method git-fetch)
18599 (uri (git-reference
18600 (url "https://github.com/stsquad/dired-rsync")
18601 (commit version)))
18602 (file-name (git-file-name name version))
18603 (sha256
18604 (base32
18605 "0jzbn0izxqgz719gb6fpr60zbcb6w1ama13ngpvrig82nlhs37fv"))))
18606 (build-system emacs-build-system)
18607 (propagated-inputs
18608 `(("emacs-s" ,emacs-s)
18609 ("emacs-dash" ,emacs-dash)))
18610 (home-page "https://github.com/stsquad/dired-rsync/")
18611 (synopsis "Support for rsync from Emacs dired buffers")
18612 (description "This package adds a single command @code{dired-rsync} which
18613 allows the user to copy marked files in a dired buffer via @code{rsync}. This
18614 is useful, especially for large files, because the copy happens in the
18615 background and doesn’t lock up Emacs. It is also more efficient than using
18616 tramps own encoding methods for moving data between systems.")
18617 (license license:gpl3+)))
18618
18619 (define-public emacs-pcre2el
18620 ;; Last release is very old so we get the latest commit.
18621 (let ((commit "0b5b2a2c173aab3fd14aac6cf5e90ad3bf58fa7d"))
18622 (package
18623 (name "emacs-pcre2el")
18624 (version (git-version "1.8" "1" commit))
18625 (source
18626 (origin
18627 (method git-fetch)
18628 (uri (git-reference
18629 (url "https://github.com/joddie/pcre2el")
18630 (commit commit)))
18631 (file-name (git-file-name name version))
18632 (sha256
18633 (base32
18634 "14br6ad138qx1z822wqssswqiihxiynz1k69p6mcdisr2q8yyi1z"))))
18635 (build-system emacs-build-system)
18636 (home-page "https://github.com/joddie/pcre2el")
18637 (synopsis "Convert between PCRE, Emacs and rx regexp syntax")
18638 (description "@code{pcre2el} or @code{rxt} (RegeXp Translator or RegeXp
18639 Tools) is a utility for working with regular expressions in Emacs, based on a
18640 recursive-descent parser for regexp syntax. In addition to converting (a
18641 subset of) PCRE syntax into its Emacs equivalent, it can do the following:
18642
18643 @itemize
18644 @item convert Emacs syntax to PCRE
18645 @item convert either syntax to @code{rx}, an S-expression based regexp syntax
18646 @item untangle complex regexps by showing the parse tree in @code{rx} form and
18647 highlighting the corresponding chunks of code
18648 @item show the complete list of strings (productions) matching a regexp,
18649 provided the list is finite
18650 @item provide live font-locking of regexp syntax (so far only for Elisp
18651 buffers – other modes on the TODO list).
18652 @end itemize\n")
18653 (license license:gpl3))))
18654
18655 (define-public emacs-magit-todos
18656 (package
18657 (name "emacs-magit-todos")
18658 (version "1.4.1")
18659 (source
18660 (origin
18661 (method git-fetch)
18662 (uri (git-reference
18663 (url "https://github.com/alphapapa/magit-todos")
18664 (commit version)))
18665 (file-name (git-file-name name version))
18666 (sha256
18667 (base32
18668 "1rcl6j53yabxqk3jzgaxvm3wqq7rayf1hdib2v2fapw5b0layym6"))))
18669 (build-system emacs-build-system)
18670 (propagated-inputs
18671 `(("emacs-async" ,emacs-async)
18672 ("emacs-dash" ,emacs-dash)
18673 ("emacs-f" ,emacs-f)
18674 ("emacs-hl-todo" ,emacs-hl-todo)
18675 ("magit" ,emacs-magit)
18676 ("emacs-pcre2el" ,emacs-pcre2el)
18677 ("emacs-s" ,emacs-s)))
18678 (home-page "https://github.com/alphapapa/magit-todos")
18679 (synopsis "Show source files' TODOs (and FIXMEs, etc) in Magit status buffer")
18680 (description "This package displays keyword entries from source code
18681 comments and Org files in the Magit status buffer. Activating an item jumps
18682 to it in its file. By default, it uses keywords from @code{hl-todo}, minus a
18683 few (like NOTE).")
18684 (license license:gpl3)))
18685
18686 (define-public emacs-git-annex
18687 ;; Unreleased version has a fontification fix.
18688 (let ((commit "1324d3f23c534fe79391a2c256bb8803054e383b")
18689 (revision "2"))
18690 (package
18691 (name "emacs-git-annex")
18692 (version (git-version "1.1" revision commit))
18693 (source
18694 (origin
18695 (method git-fetch)
18696 (uri (git-reference
18697 (url "https://github.com/jwiegley/git-annex-el")
18698 (commit commit)))
18699 (file-name (git-file-name name version))
18700 (sha256
18701 (base32
18702 "1lfky2nsrlndlbvk6vwbswnvbvkz1sxgg0n3r5q6xykdkjym0lrh"))))
18703 (build-system emacs-build-system)
18704 (home-page "https://github.com/jwiegley/git-annex-el")
18705 (synopsis "Emacs integration for git-annex")
18706 (description "Enhances Dired and buffers visiting annex files with
18707 git-annex functionality. In Dired, the names of annex files are shortened by
18708 hiding the symbolic links and fontified based on whether content is present.
18709 Commands for performing some common operations (e.g., unlocking and adding
18710 files) are provided.")
18711 (license license:gpl2+))))
18712
18713 (define-public emacs-hackernews
18714 (let ((commit "2362d7b00e59da7caddc8c0adc24dccb42fddef9")
18715 (revision "2"))
18716 (package
18717 (name "emacs-hackernews")
18718 (version (git-version "0.5.0" revision commit))
18719 (source
18720 (origin
18721 (method git-fetch)
18722 (uri (git-reference
18723 (url "https://github.com/clarete/hackernews.el")
18724 (commit commit)))
18725 (file-name (git-file-name name version))
18726 (sha256
18727 (base32
18728 "1hcc5b173yzcvvd2ls3jxrmsw2w9bi21m9hcpcirkn0nh93ywadv"))))
18729 (build-system emacs-build-system)
18730 (home-page "https://github.com/clarete/hackernews.el")
18731 (synopsis "Hacker News client for Emacs")
18732 (description "The @command{hackernews} package is able to fetch stories
18733 from six different Hacker News feeds, namely top, new, best, ask, show and job
18734 stories. The default feed is top stories, which corresponds to the Hacker
18735 News homepage.")
18736 (license license:gpl3))))
18737
18738 (define-public emacs-youtube-dl
18739 (let ((commit "af877b5bc4f01c04fccfa7d47a2c328926f20ef4")
18740 (revision "2"))
18741 (package
18742 (name "emacs-youtube-dl")
18743 (version (git-version "1.0" "2" commit))
18744 (source
18745 (origin
18746 (method git-fetch)
18747 (uri (git-reference
18748 (url "https://github.com/skeeto/youtube-dl-emacs/")
18749 (commit commit)))
18750 (file-name (git-file-name name version))
18751 (sha256
18752 (base32
18753 "0zkl9jkjbx0lmp9ylv4rqg1zwqibk053s4rp7s1h0i18nzk7vn8j"))))
18754 (build-system emacs-build-system)
18755 (inputs
18756 `(("youtube-dl" ,youtube-dl)))
18757 (arguments
18758 `(#:phases
18759 (modify-phases %standard-phases
18760 (add-after 'unpack 'configure
18761 (lambda* (#:key inputs #:allow-other-keys)
18762 (let ((youtube-dl (assoc-ref inputs "youtube-dl")))
18763 ;; .el is read-only in git.
18764 (chmod "youtube-dl.el" #o644)
18765 ;; Specify the absolute file names of the various
18766 ;; programs so that everything works out-of-the-box.
18767 (emacs-substitute-variables
18768 "youtube-dl.el"
18769 ("youtube-dl-program"
18770 (string-append youtube-dl "/bin/youtube-dl")))))))))
18771 (home-page "https://github.com/skeeto/youtube-dl-emacs/")
18772 (synopsis "Emacs youtube-dl download manager")
18773 (description "This package manages a video download queue for
18774 @command{youtube-dl}, which serves as the back end. It manages a single
18775 @command{youtube-dl} subprocess, downloading one video at a time. New videos
18776 can be queued at any time.")
18777 (license license:unlicense))))
18778
18779 (define-public emacs-ytdl
18780 (package
18781 (name "emacs-ytdl")
18782 (version "1.3.5")
18783 (source
18784 (origin
18785 (method git-fetch)
18786 (uri (git-reference
18787 (url "https://gitlab.com/tuedachu/ytdl")
18788 (commit version)))
18789 (file-name (git-file-name name version))
18790 (sha256
18791 (base32 "1xv93ny942gha1ipic5r6z4icjsb7src7ssdck9983kks3zacjk7"))))
18792 (build-system emacs-build-system)
18793 (inputs
18794 `(("youtube-dl" ,youtube-dl)))
18795 (propagated-inputs
18796 `(("async" ,emacs-async)
18797 ("transient" ,emacs-transient)))
18798 (arguments
18799 `(#:phases
18800 (modify-phases %standard-phases
18801 (add-after 'unpack 'configure
18802 (lambda* (#:key inputs #:allow-other-keys)
18803 (let ((youtube-dl (assoc-ref inputs "youtube-dl")))
18804 ;; .el is read-only in git.
18805 (make-file-writable "ytdl.el")
18806 ;; Specify the absolute file names of the various programs so
18807 ;; that everything works out-of-the-box.
18808 (emacs-substitute-variables "ytdl.el"
18809 ("ytdl-command" (string-append youtube-dl "/bin/youtube-dl")))
18810 #t))))))
18811 (home-page "https://gitlab.com/tuedachu/ytdl")
18812 (synopsis "Emacs interface for youtube-dl")
18813 (description
18814 "This package manages a video download queue for @command{youtube-dl},
18815 which serves as the back end. New videos can be queued at any time. All
18816 youtube-dl backends are supported. It is possible to create download profiles
18817 depending on the downloaded URL.")
18818 (license license:gpl3+)))
18819
18820 (define-public emacs-org-web-tools
18821 (package
18822 (name "emacs-org-web-tools")
18823 (version "1.0")
18824 (source
18825 (origin
18826 (method git-fetch)
18827 (uri (git-reference
18828 (url "https://github.com/alphapapa/org-web-tools")
18829 (commit version)))
18830 (file-name (git-file-name name version))
18831 (sha256
18832 (base32
18833 "0kak9h5ny00d39gnwspv53nadnag01brw2fq9zk5wpfc91h9bjng"))))
18834 (build-system emacs-build-system)
18835 (propagated-inputs
18836 `(("emacs-dash" ,emacs-dash)
18837 ("emacs-esxml" ,emacs-esxml)
18838 ("emacs-s" ,emacs-s)))
18839 (inputs
18840 `(("pandoc" ,pandoc)))
18841 (arguments
18842 `(#:phases
18843 (modify-phases %standard-phases
18844 (add-after 'unpack 'patch-exec-paths
18845 (lambda* (#:key inputs #:allow-other-keys)
18846 (let ((pandoc (assoc-ref inputs "pandoc")))
18847 (substitute* "org-web-tools.el"
18848 (("\"pandoc\"") (string-append "\"" pandoc "/bin/pandoc\"")))
18849 #t))))))
18850 (home-page "https://github.com/alphapapa/org-web-tools")
18851 (synopsis "Display/Process web page as Org-mode content")
18852 (description "This package contains library functions and commands useful
18853 for retrieving web page content and processing it into Org-mode content.
18854
18855 For example, you can copy a URL to the clipboard or kill-ring, then run a
18856 command that downloads the page, isolates the “readable” content with
18857 @command{eww-readable}, converts it to Org-mode content with Pandoc, and
18858 displays it in an Org-mode buffer. Another command does all of that but
18859 inserts it as an Org entry instead of displaying it in a new buffer.")
18860 (license license:gpl3+)))
18861
18862 (define-public emacs-blimp
18863 (let ((commit "e420763d6d18b5d1be552cdbc47f91418343db03"))
18864 (package
18865 (name "emacs-blimp")
18866 (version (git-version "0.0.0" "1" commit))
18867 (source
18868 (origin
18869 (method git-fetch)
18870 (uri (git-reference
18871 (url "https://github.com/walseb/blimp")
18872 (commit commit)))
18873 (file-name (git-file-name name version))
18874 (sha256
18875 (base32
18876 "09wmhpym516b81dfq8smdmysh1fn610dzlyvyl2rkx8600f0fizd"))))
18877 (build-system emacs-build-system)
18878 (propagated-inputs
18879 `(("emacs-eimp" ,emacs-eimp)))
18880 (home-page "https://github.com/walseb/blimp")
18881 (synopsis "Emacs wrapper around all Imagemagick commands")
18882 (description "Blimp (Bustling Image Manipulation Package) is a complete
18883 wrapper around all Imagemagick commands with descriptions, autocompletion (for
18884 some commands) and hints displayed in prompt using @command{eimp.el} to
18885 execute its commands and resize images.")
18886 (license license:gpl3+))))
18887
18888 (define-public emacs-synosaurus
18889 (let ((commit "8bf95b935976ec0a1964cf175ed57cc5f6f93bdb"))
18890 (package
18891 (name "emacs-synosaurus")
18892 (version (git-version "0.1.0" "1" commit))
18893 (source
18894 (origin
18895 (method git-fetch)
18896 (uri (git-reference
18897 (url "https://github.com/hpdeifel/synosaurus")
18898 (commit commit)))
18899 (file-name (git-file-name name version))
18900 (sha256
18901 (base32
18902 "15by9jccab6kyplxa6k0glzaivxkqdigl33gl2qi2cvy6f2q7gva"))))
18903 (build-system emacs-build-system)
18904 (propagated-inputs
18905 `(("wordnet" ,wordnet)))
18906 (arguments
18907 `(#:phases
18908 (modify-phases %standard-phases
18909 (add-after 'unpack 'configure
18910 (lambda* (#:key inputs outputs #:allow-other-keys)
18911 (let ((wn (assoc-ref inputs "wordnet")))
18912 ;; .el is read-only in git.
18913 (chmod "synosaurus-wordnet.el" #o644)
18914 ;; Specify the absolute file names of the various
18915 ;; programs so that everything works out-of-the-box.
18916 (emacs-substitute-variables
18917 "synosaurus-wordnet.el"
18918 ("wordnet-command"
18919 (string-append wn "/bin/wn")))))))))
18920 (home-page "https://github.com/hpdeifel/synosaurus")
18921 (synopsis "Extensible thesaurus mode for Emacs")
18922 (description "Synosaurus is a thesaurus fontend for Emacs with pluggable
18923 backends, including the @command{wordnet} offline backend.")
18924 (license license:gpl3+))))
18925
18926 (define-public emacs-editorconfig
18927 (package
18928 (name "emacs-editorconfig")
18929 (version "0.8.1")
18930 (source
18931 (origin
18932 (method git-fetch)
18933 (uri (git-reference
18934 (url "https://github.com/editorconfig/editorconfig-emacs")
18935 (commit (string-append "v" version))))
18936 (file-name (git-file-name name version))
18937 (sha256
18938 (base32
18939 "1djlhkap7zddknzvjsjz0agpfsms1ih05zcpg1bikid2vs4gddyr"))))
18940 (build-system emacs-build-system)
18941 (home-page "https://github.com/editorconfig/editorconfig-emacs")
18942 (synopsis "Define and maintain consistent coding styles between different
18943 editors and IDEs")
18944 (description "The EditorConfig project consists of a file format for
18945 defining coding styles and a collection of text editor plugins that enable
18946 editors to read the file format and adhere to defined styles. EditorConfig
18947 files are easily readable and they work nicely with version control systems.")
18948 (license license:gpl3+)))
18949
18950 (define-public emacs-all-the-icons
18951 (package
18952 (name "emacs-all-the-icons")
18953 (version "4.0.1")
18954 (source
18955 (origin
18956 (method git-fetch)
18957 (uri (git-reference
18958 (url "https://github.com/domtronn/all-the-icons.el")
18959 (commit version)))
18960 (file-name (git-file-name name version))
18961 (sha256
18962 (base32 "0yh7gnv9xfqn8q4rzaa6wpyn9575vyfxy7d3afly2mqsb367fgm5"))))
18963 (build-system emacs-build-system)
18964 (arguments
18965 `(#:include '("\\.el$" "^data/" "^fonts/")
18966 ;; Compiling "test/" fails with "Symbol’s value as variable is void:
18967 ;; all-the-icons--root-code". Ignoring tests.
18968 #:exclude '("^test/")
18969 #:tests? #f))
18970 (propagated-inputs
18971 `(("f" ,emacs-f)
18972 ("memoize" ,emacs-memoize)))
18973 (home-page "https://github.com/domtronn/all-the-icons.el")
18974 (synopsis "Collect icon fonts and propertize them within Emacs")
18975 (description
18976 "All-the-icons is a utility package to collect various icon fonts and
18977 propertize them within Emacs. Icon fonts allow you to propertize and format
18978 icons the same way you would normal text. This enables things such as better
18979 scaling of and anti aliasing of the icons.")
18980 ;; Package is released under Expat license. Elisp files are licensed
18981 ;; under GPL3+. Fonts come with various licenses: Expat for
18982 ;; "all-the-icons.ttf" and "file-icons.ttf", Apache License 2.0 for
18983 ;; "material-design-icons.ttf", and SIL OFL 1.1 for "fontawesome.ttf",
18984 ;; "ocitcons.ttf" and "weathericons.ttf".
18985 (license
18986 (list license:expat license:gpl3+ license:silofl1.1 license:asl2.0))))
18987
18988 (define-public emacs-wttrin
18989 (let ((commit "df5427ce2a5ad4dab652dbb1c4a1834d7ddc2abc")
18990 (revision "1"))
18991 (package
18992 (name "emacs-wttrin")
18993 (version (git-version "0.2.0" revision commit))
18994 (source (origin
18995 (method git-fetch)
18996 (uri (git-reference
18997 (url "https://github.com/bcbcarl/emacs-wttrin")
18998 (commit commit)))
18999 (file-name (git-file-name name version))
19000 (sha256
19001 (base32
19002 "1ai655f10iayb4vw0ass2j3x83f4vsv90326mnywkzfl3sxd432z"))))
19003 (build-system emacs-build-system)
19004 (propagated-inputs
19005 `(("emacs-xterm-color" ,emacs-xterm-color)))
19006 (home-page "https://github.com/bcbcarl/emacs-wttrin")
19007 (synopsis "Frontend for weather web service @url{wttr.in}")
19008 (description "This package provides local weather information from
19009 @url{wttr.in}.")
19010 (license license:expat))))
19011
19012 (define-public emacs-browse-kill-ring
19013 (let ((commit "1ef72cc6accd94cd7032c02b1b2c78ae7f1d1965")
19014 (revision "0"))
19015 (package
19016 (name "emacs-browse-kill-ring")
19017 (version (git-version "2.0.0" revision commit))
19018 (source
19019 (origin
19020 (method git-fetch)
19021 (uri (git-reference
19022 (url "https://github.com/browse-kill-ring/browse-kill-ring")
19023 (commit commit)))
19024 (file-name (git-file-name name version))
19025 (sha256
19026 (base32
19027 "0mil32g7hcw376jibs5hdyv00xbaql3m4a27rwqaafg0x59avxdj"))))
19028 (build-system emacs-build-system)
19029 (home-page "https://github.com/browse-kill-ring/browse-kill-ring")
19030 (synopsis "Interactively insert items from kill-ring")
19031 (description
19032 "Did you ever feel that @code{C-y M-y M-y M-y ...} is not a great way
19033 of trying to find that piece of text you know you killed a while back? Then
19034 @code{browse-kill-ring.el} is for you.")
19035 (license license:gpl2+))))
19036
19037 (define-public emacs-powerline
19038 (package
19039 (name "emacs-powerline")
19040 (version "2.4")
19041 (source
19042 (origin
19043 (method git-fetch)
19044 (uri (git-reference
19045 (url "https://github.com/milkypostman/powerline")
19046 (commit version)))
19047 (file-name (git-file-name name version))
19048 (sha256
19049 (base32
19050 "1hp3xp18943n0rlggz55150020ivw8gvi1vyxkr4z8xhpwq4gaar"))))
19051 (build-system emacs-build-system)
19052 (home-page "https://github.com/milkypostman/powerline/")
19053 (synopsis "Mode-line plugin for Emacs")
19054 (description "Powerline is a utility plugin which allows you to create
19055 a better-looking, more functional Emacs mode-line. A collection of predefined
19056 themes comes with the package.")
19057 (license license:gpl3+)))
19058
19059 (define-public emacs-spaceline
19060 (package
19061 (name "emacs-spaceline")
19062 (version "2.0.1")
19063 (source
19064 (origin
19065 (method git-fetch)
19066 (uri (git-reference
19067 (url "https://github.com/TheBB/spaceline")
19068 (commit (string-append "v" version))))
19069 (file-name (git-file-name name version))
19070 (sha256
19071 (base32
19072 "1q8r95zfrh0vxna5ml2pq9b9f66clfqcl4d2qy2aizkvzyxg6skl"))))
19073 (build-system emacs-build-system)
19074 (propagated-inputs
19075 `(("dash" ,emacs-dash)
19076 ("powerline" ,emacs-powerline)
19077 ("s" ,emacs-s)))
19078 (home-page "https://github.com/TheBB/spaceline")
19079 (synopsis "Powerline theme from Spacemacs")
19080 (description "Spaceline provides Spacemacs' mode-line theme.
19081 This package provides features for three kinds of users.
19082
19083 @itemize
19084 @item You just want to use the Spacemacs mode-line theme and forget about it.
19085 @item You want to use something similar to the Spacemacs mode-line theme, but
19086 with a handful of easy tweaks.
19087 @item You want an easy-to-use library for building your own mode-line from
19088 scratch, and you think the Spacemacs theme looks good.
19089 @end itemize")
19090 (license license:gpl3+)))
19091
19092 (define-public emacs-spaceline-next
19093 (let ((commit "1b26af2c1a701481ac5d90928fe0200e389756c3")
19094 (last-release-version "2.0.1")
19095 (revision "0"))
19096 (package
19097 (inherit emacs-spaceline)
19098 (name "emacs-spaceline-next")
19099 (version (git-version last-release-version revision commit))
19100 (source
19101 (origin
19102 (method git-fetch)
19103 (uri (git-reference
19104 (url "https://github.com/TheBB/spaceline.git")
19105 (commit commit)))
19106 (sha256
19107 (base32 "11lwckqcgzsahrkkm5wk1ph4kc7d4yz05r7251g8c9f0q6vdj9dp"))
19108 (file-name (git-file-name name version)))))))
19109
19110 (define-public emacs-column-marker
19111 (package
19112 (name "emacs-column-marker")
19113 (version "9")
19114 (source
19115 (origin
19116 (method url-fetch)
19117 (uri "https://www.emacswiki.org/emacs/download/column-marker.el")
19118 (sha256 (base32 "05bv198zhqw5hqq6cr11mhz02dpca74hhp1ycwq369m0yb2naxy9"))))
19119 (build-system emacs-build-system)
19120 (home-page "https://www.emacswiki.org/emacs/ColumnMarker")
19121 (synopsis "Emacs mode for highlighting columns")
19122 (description
19123 "With @code{column-marker.el} you can highlight any number of text columns.
19124 Three such highlight column markers are provided by default. This is
19125 especially useful for languages like COBOL or Fortran where certain columns
19126 have special meaning. It is also handy for aligning text across long vertical
19127 distances. Multi-column characters, such as @kbd{TAB} are treated
19128 correctly.")
19129 (license license:gpl2+)))
19130
19131 (define-public emacs-slime-repl-ansi-color
19132 (let ((commit "ad03263f5d4de473bc173b64a6fc3dc1106393d7"))
19133 (package
19134 (name "emacs-slime-repl-ansi-color")
19135 (version (git-version "0.0.0" "1" commit))
19136 (source (origin
19137 (method git-fetch)
19138 (uri (git-reference
19139 (url "https://github.com/deadtrickster/slime-repl-ansi-color")
19140 (commit commit)))
19141 (file-name (git-file-name name version))
19142 (sha256
19143 (base32
19144 "0bpg7gxz310x7bnlg324c507sxc5gxwwz6h64h6kdq141r73vbi4"))))
19145 (build-system emacs-build-system)
19146 (home-page "https://github.com/deadtrickster/slime-repl-ansi-color")
19147 (synopsis "Color ANSI codes in the REPL of SLIME")
19148 (description "Color ANSI codes in the REPL of SLIME")
19149 (license license:gpl2+))))
19150
19151 (define-public emacs-helm-slime
19152 (package
19153 (name "emacs-helm-slime")
19154 (version "0.4.0")
19155 (source (origin
19156 (method git-fetch)
19157 (uri (git-reference
19158 (url "https://github.com/emacs-helm/helm-slime")
19159 (commit version)))
19160 (file-name (git-file-name name version))
19161 (sha256
19162 (base32
19163 "0mrpjhpijdrq353fnfvdj9l9xfsz390qlcvifcair9732ma7i8l0"))))
19164 (build-system emacs-build-system)
19165 (propagated-inputs
19166 `(("emacs-helm" ,emacs-helm)
19167 ("emacs-slime" ,emacs-slime)))
19168 (home-page "https://github.com/emacs-helm/helm-slime")
19169 (synopsis "Helm for SLIME, the Superior Lisp Interaction Mode for Emacs")
19170 (description "Helm-SLIME defines a few new commands:
19171
19172 @itemize
19173 @item helm-slime-complete: Select a symbol from the SLIME completion systems.
19174 @item helm-slime-list-connections: Yet another slime-list-connections with Helm.
19175 @item: helm-slime-apropos: Yet another slime-apropos with Helm.
19176 @item helm-slime-repl-history: Select an input from the SLIME REPL history and insert it.
19177 @end itemize\n")
19178 (license license:gpl3+)))
19179
19180 (define-public emacs-helm-sly
19181 (package
19182 (name "emacs-helm-sly")
19183 (version "0.4.1")
19184 (source (origin
19185 (method git-fetch)
19186 (uri (git-reference
19187 (url "https://github.com/emacs-helm/helm-sly")
19188 (commit version)))
19189 (file-name (git-file-name name version))
19190 (sha256
19191 (base32
19192 "0b2dx9nzh5233lkix3lz81c9cv626lk2hjpcjiikwvyp6y0q92ys"))))
19193 (build-system emacs-build-system)
19194 (propagated-inputs
19195 `(("emacs-helm" ,emacs-helm)
19196 ("emacs-sly" ,emacs-sly)))
19197 (home-page "https://github.com/emacs-helm/helm-sly")
19198 (synopsis "Helm for SLY, a Common Lisp interaction mode for Emacs")
19199 (description "Helm-SLY defines a few new commands:
19200
19201 @itemize
19202 @item helm-sly-list-connections: Yet another Lisp connection list with Helm.
19203 @item: helm-sly-apropos: Yet another @command{apropos} with Helm.
19204 @item helm-sly-mini: Like @command{helm-sly-list-connections}, but include an
19205 extra source of Lisp-related buffers, like the events buffer or the scratch
19206 buffer.
19207 @end itemize\n")
19208 (license license:gpl3+)))
19209
19210 (define-public emacs-gtk-look
19211 (package
19212 (name "emacs-gtk-look")
19213 (version "29")
19214 (source (origin
19215 (method url-fetch)
19216 (uri "https://download.tuxfamily.org/user42/gtk-look.el")
19217 (sha256
19218 (base32
19219 "14p2nwrd51cr1v06fxbjjn6jdrkf9d6vcxhmscm0kl677s25ypsp"))))
19220 (build-system emacs-build-system)
19221 (arguments
19222 `(#:phases
19223 (modify-phases %standard-phases
19224 (add-after 'unpack 'configure
19225 (lambda _
19226 ;; File is read-only.
19227 (chmod "gtk-look.el" #o644)
19228 (emacs-substitute-variables "gtk-look.el"
19229 ("gtk-lookup-devhelp-indices"
19230 '(list (expand-file-name "~/.guix-profile/share/gtk-doc/html/*/*.devhelp*"))))
19231 #t)))))
19232 (home-page "http://user42.tuxfamily.org/gtk-look/index.html")
19233 (synopsis "Find and display HTML documentation for GTK, GNOME and Glib")
19234 (description "@command{gtk-look} finds and displays HTML documentation for
19235 GTK, GNOME and Glib functions and variables in Emacs, similar to what
19236 info-lookup-symbol does for info files (C-h S). The documentation is expected
19237 to be devhelp indexes with HTML files. The location of the indexes can be
19238 customized. In addition to C code development @command{gtk-look} is good for
19239
19240 @itemize
19241 @item @command{perl-gtk2}, recognising class funcs like
19242 @command{Gtk2::Label->new} and bare method names like @command{set_text}.
19243 @item @command{guile-gnome}, recognising methods like @command{set-text} and
19244 classes like @command{<gtk-window>}.
19245 @end itemize\n")
19246 (license license:gpl3+)))
19247
19248 (define-public emacs-ov
19249 (package
19250 (name "emacs-ov")
19251 (version "1.0.6")
19252 (source (origin
19253 (method git-fetch)
19254 (uri (git-reference
19255 (url "https://github.com/ShingoFukuyama/ov.el")
19256 (commit version)))
19257 (file-name (git-file-name name version))
19258 (sha256
19259 (base32
19260 "0qxk2rf84j86syxi8xknsq252irwg7sz396v3bb4wqz4prpj0kzc"))))
19261 (build-system emacs-build-system)
19262 (home-page "https://github.com/ShingoFukuyama/ov.el")
19263 (synopsis "Overlay library for Emacs Lisp")
19264 (description "@code{ov.el} provides a simple way to manipulate overlays in
19265 Emacs.")
19266 (license license:gpl3+)))
19267
19268 (define-public emacs-matrix-client
19269 (let ((commit "a0623667b07a4bf60980c97b078e9faed97ace79"))
19270 (package
19271 (name "emacs-matrix-client")
19272 (version (git-version "0.0.0" "4" commit))
19273 (source (origin
19274 (method git-fetch)
19275 (uri (git-reference
19276 (url "https://github.com/jgkamat/matrix-client-el")
19277 (commit commit)))
19278 (file-name (git-file-name name version))
19279 (sha256
19280 (base32
19281 "1zya8id3y9wzjaj7nplq7br6nhm3lsskv0fkn1xr1y77fzcfgcdb"))))
19282 (build-system emacs-build-system)
19283 (arguments
19284 `(#:phases
19285 (modify-phases %standard-phases
19286 (add-after 'unpack 'add-missing-require
19287 ;; Fix a filter error at runtime due to a missing require.
19288 ;; Reported upstream:
19289 ;; <https://github.com/alphapapa/matrix-client.el/issues/76>
19290 (lambda _
19291 (substitute* "matrix-client-room.el"
19292 (("\\(require 'dash-functional\\)" all)
19293 (string-append all "\n" "(require 'anaphora)")))
19294 #t)))))
19295 (propagated-inputs
19296 `(("a" ,emacs-a)
19297 ("anaphora" ,emacs-anaphora)
19298 ("dash" ,emacs-dash)
19299 ("esxml" ,emacs-esxml)
19300 ("f" ,emacs-f)
19301 ("frame-purpose" ,emacs-frame-purpose)
19302 ("ht" ,emacs-ht)
19303 ("ov" ,emacs-ov)
19304 ("rainbow-identifiers" ,emacs-rainbow-identifiers)
19305 ("request" ,emacs-request)
19306 ("s" ,emacs-s)
19307 ("tracking" ,emacs-tracking)))
19308 (home-page "https://github.com/jgkamat/matrix-client-el")
19309 (synopsis "Matrix client for Emacs")
19310 (description "@code{matrix-client} is a simple chat UI to Matrix.org
19311 rooms. It also provides an API which allows Emacs to seamlessly create
19312 RPC channels with users and other software.")
19313 (license license:gpl3+))))
19314
19315 (define-public emacs-sesman
19316 (package
19317 (name "emacs-sesman")
19318 (version "0.3.4")
19319 (source
19320 (origin
19321 (method git-fetch)
19322 (uri (git-reference
19323 (url "https://github.com/vspinu/sesman")
19324 (commit (string-append "v" version))))
19325 (file-name (git-file-name name version))
19326 (sha256
19327 (base32
19328 "0z5jb4vpbjsi63w3wjy6d2lgz33qdfvrgfb3bszv4hcf6a96y7fc"))))
19329 (build-system emacs-build-system)
19330 (arguments
19331 `(#:phases
19332 (modify-phases %standard-phases
19333 (add-after 'unpack 'set-shell
19334 ;; Setting the SHELL environment variable is required for the tests
19335 ;; to find sh.
19336 (lambda _
19337 (setenv "SHELL" (which "sh"))
19338 #t)))
19339 #:tests? #t
19340 #:test-command '("make" "test")))
19341 (home-page "https://github.com/vspinu/sesman")
19342 (synopsis "Session manager for Emacs based IDEs")
19343 (description "Sesman provides facilities for session management and
19344 interactive session association with the current contexts (project, directory,
19345 buffers). While sesman can be used to manage arbitrary sessions, it primary
19346 targets the Emacs based IDEs (CIDER, ESS, Geiser, Robe, SLIME etc.)")
19347 (license license:gpl3+)))
19348
19349 (define-public emacs-buttercup
19350 (package
19351 (name "emacs-buttercup")
19352 (version "1.23")
19353 (source
19354 (origin
19355 (method git-fetch)
19356 (uri (git-reference
19357 (url "https://github.com/jorgenschaefer/emacs-buttercup")
19358 (commit (string-append "v" version))))
19359 (file-name (git-file-name name version))
19360 (sha256
19361 (base32
19362 "0ym1hajy47n5f1rxic8qfxrwd8zc1r7csz1v4hrwhwm4qld4krfr"))))
19363 (build-system emacs-build-system)
19364 (arguments
19365 `(#:tests? #t
19366 #:test-command '("make" "test")
19367 #:phases
19368 (modify-phases %standard-phases
19369 (add-after 'install 'install-bin
19370 (lambda* (#:key outputs #:allow-other-keys)
19371 (install-file "bin/buttercup"
19372 (string-append (assoc-ref outputs "out") "/bin"))
19373 #t)))))
19374 (home-page "https://github.com/jorgenschaefer/emacs-buttercup")
19375 (synopsis "Behavior driven emacs lisp testing framework")
19376 (description "Buttercup is a behavior-driven development framework for
19377 testing Emacs Lisp code. It groups related tests so they can share
19378 common set-up and tear-down code, and allows the programmer to \"spy\" on
19379 functions to ensure they are called with the right arguments during testing.")
19380 (license license:gpl3+)))
19381
19382 (define-public emacs-cort
19383 ;; Choosing a recent commit to fix some bugs.
19384 ;; https://github.com/conao3/cort.el/issues/106
19385 (let ((commit "495c3972b92b57a0cb5dd65ce5de9d3c6b8b6509")
19386 (revision "1"))
19387 (package
19388 (name "emacs-cort")
19389 (version (git-version "3.0.5" revision commit))
19390 (source (origin
19391 (method git-fetch)
19392 (uri (git-reference
19393 (url "https://github.com/conao3/cort.el")
19394 (commit commit)))
19395 (file-name (git-file-name name version))
19396 (sha256
19397 (base32
19398 "0f4irq1arh9c7lf9a5bla25am0jy5r6lj8ayb8k9k7lrirzhyk99"))))
19399 (build-system emacs-build-system)
19400 (propagated-inputs
19401 `(("emacs-ansi" ,emacs-ansi)))
19402 (arguments
19403 `(#:tests? #t
19404 #:test-command '("emacs" "--batch" "--quick"
19405 "--directory=." "--load=cort-tests.el"
19406 "--funcall=cort-test-run")))
19407 (home-page "https://github.com/conao3/cort.el")
19408 (synopsis "Unit test framework for the Emacs Lisp")
19409 (description "@code{cort} is a lightweight Emacs Lisp unit test library.")
19410 (license license:gpl3+))))
19411
19412 (define-public emacs-wordnut
19413 (let ((commit "feac531404041855312c1a046bde7ea18c674915")
19414 (revision "0"))
19415 (package
19416 (name "emacs-wordnut")
19417 (version (git-version "0.1" revision commit))
19418 (home-page "https://github.com/gromnitsky/wordnut")
19419 (source (origin
19420 (method git-fetch)
19421 (uri (git-reference (url home-page) (commit commit)))
19422 (sha256
19423 (base32
19424 "1jl0b6g64a9w0q7bfvwha67vgws5xd15b7mkfyb5gkz3pymqhfxn"))
19425 (patches
19426 (search-patches "emacs-wordnut-require-adaptive-wrap.patch"))
19427 (file-name (git-file-name name version))))
19428 (build-system emacs-build-system)
19429 (propagated-inputs
19430 `(("wordnet" ,wordnet)
19431 ("emacs-adaptive-wrap" ,emacs-adaptive-wrap)))
19432 (synopsis "Major mode for WordNet")
19433 (description "This Emacs package provides an interface for
19434 @code{wordnet}. Features include completion, if the query is not found
19435 too ambiguous and navigation in the result buffer.")
19436 (license license:gpl3+))))
19437
19438 (define-public emacs-frame-purpose
19439 (package
19440 (name "emacs-frame-purpose")
19441 (version "1.0")
19442 (source (origin
19443 (method git-fetch)
19444 (uri (git-reference
19445 (url "https://github.com/alphapapa/frame-purpose.el")
19446 (commit version)))
19447 (sha256
19448 (base32
19449 "0jq2aam1yvccw887ighd1wm2xkvk5bv53ffiz3crcl16a255aj4q"))
19450 (file-name (git-file-name name version))))
19451 (build-system emacs-build-system)
19452 (inputs
19453 `(("dash" ,emacs-dash)))
19454 (synopsis "Purpose-specific frames for Emacs")
19455 (description "@code{frame-purpose} makes it easy to open purpose-specific
19456 frames that only show certain buffers, e.g. by buffers’ major mode, their
19457 filename or directory, etc, with custom frame/X-window titles, icons, and
19458 other frame parameters.")
19459 (home-page "https://github.com/alphapapa/frame-purpose.el")
19460 (license license:gpl3+)))
19461
19462 (define-public emacs-arduino-mode
19463 (let ((commit "23ae47c9f28f559e70b790b471f20310e163a39b")
19464 (revision "1")) ;no release yet
19465 (package
19466 (name "emacs-arduino-mode")
19467 (version (git-version "0" revision commit))
19468 (source (origin
19469 (method git-fetch)
19470 (uri (git-reference
19471 (url "https://github.com/stardiviner/arduino-mode")
19472 (commit commit)))
19473 (sha256
19474 (base32
19475 "08vnbz9gpah1l93fzfd87aawrhcnh2v1kyfxgsn88pdwg8awz8rx"))
19476 (file-name (git-file-name name version))))
19477 (build-system emacs-build-system)
19478 (inputs
19479 `(("spinner" ,emacs-spinner)
19480 ("flycheck" ,emacs-flycheck)))
19481 (arguments
19482 `(#:phases
19483 (modify-phases %standard-phases
19484 ;; Emacs complains that "defmethod" and "defgeneric" are obsolete
19485 ;; macros when compiling. Substitute them with the recommended
19486 ;; macros "cl-defmethod" and "cl-defgeneric", respectively.
19487 (add-after 'unpack 'fix-obsolete
19488 (lambda _
19489 (substitute* "ede-arduino.el"
19490 (("defmethod") "cl-defmethod")
19491 (("defgeneric") "cl-defgeneric"))
19492 #t)))))
19493 (synopsis "Emacs major mode for editing Arduino sketches")
19494 (description "Emacs major mode for editing Arduino sketches.")
19495 (home-page "https://github.com/stardiviner/arduino-mode")
19496 (license license:gpl3+))))
19497
19498 (define-public emacs-annalist
19499 (let ((commit "e0601539c9ac0171a684ea3ff6266d215d1d08e6")
19500 (revision "1"))
19501 (package
19502 (name "emacs-annalist")
19503 (version (git-version "1.0.0" revision commit))
19504 (source (origin
19505 (method git-fetch)
19506 (uri (git-reference
19507 (url "https://github.com/noctuid/annalist.el")
19508 (commit commit)))
19509 (sha256
19510 (base32
19511 "10bmimdzpi6cql4sb2hbgdvrza83xbac50bi9qng4z662pfnlaam"))
19512 (file-name (git-file-name name version))))
19513 (build-system emacs-build-system)
19514 (native-inputs
19515 `(("emacs-buttercup" ,emacs-buttercup)
19516 ("emacs-lispy" ,emacs-lispy)
19517 ("emacs-evil" ,emacs-evil)))
19518 (arguments
19519 `(#:phases
19520 (modify-phases %standard-phases
19521 (add-before 'check 'fix-makefile
19522 (lambda _
19523 (substitute* "Makefile"
19524 (("cask exec ") ""))
19525 #t)))
19526 #:tests? #t
19527 #:test-command '("make" "test")))
19528 (home-page "https://github.com/noctuid/annalist.el")
19529 (synopsis "Record and display information with Org headings and tables")
19530 (description "This package allows for keybindings, settings, hooks, and
19531 advice to be recorded and displayed.")
19532 (license license:gpl3+))))
19533
19534 (define-public emacs-general
19535 (let ((commit "a0b17d207badf462311b2eef7c065b884462cb7c")
19536 (revision "4"))
19537 (package
19538 (name "emacs-general")
19539 (version (git-version "0" revision commit))
19540 (source
19541 (origin
19542 (method git-fetch)
19543 (uri (git-reference
19544 (url "https://github.com/noctuid/general.el")
19545 (commit commit)))
19546 (sha256
19547 (base32 "0wn5rk3gkimdklip392mnjrmkymgrb7q9skifi03cbpjam1anzvv"))
19548 (file-name (git-file-name name version))))
19549 (build-system emacs-build-system)
19550 (native-inputs
19551 `(("emacs-buttercup" ,emacs-buttercup)
19552 ("emacs-evil" ,emacs-evil)
19553 ("emacs-which-key" ,emacs-which-key)
19554 ("emacs-use-package" ,emacs-use-package)))
19555 (arguments
19556 `(#:tests? #t
19557 #:test-command '("buttercup" "-L" "test/test-general.el")))
19558 (home-page "https://github.com/noctuid/general.el")
19559 (synopsis "More convenient key definitions in emacs")
19560 (description "@code{general.el} provides a more convenient method for
19561 binding keys in emacs (for both evil and non-evil users). Like
19562 @code{use-package}, which provides a convenient, unified interface for
19563 managing packages, @code{general.el} is intended to provide a convenient,
19564 unified interface for key definitions. While this package does implement some
19565 completely new functionality (such as the ability to make vim-style
19566 keybindings under non-prefix keys with an optional timeout), its primary
19567 purpose is to build on existing functionality to make key definition more
19568 clear and concise. @code{general-define-key} is user-extensible and supports
19569 defining multiple keys in multiple keymaps at once, implicitly wrapping key
19570 strings with (@code{kbd ...}), using named prefix key sequences (like the
19571 leader key in vim), and much more.")
19572 (license license:gpl3+))))
19573
19574 (define-public emacs-tldr
19575 (let ((commit "7203d1be3dcbf12131846ffe06601933fa874d74"))
19576 (package
19577 (name "emacs-tldr")
19578 (version (git-version "0" "1" commit))
19579 (home-page "https://github.com/kuanyui/tldr.el")
19580 (source (origin
19581 (method git-fetch)
19582 (uri (git-reference
19583 (url (string-append home-page ".git"))
19584 (commit commit)))
19585 (sha256
19586 (base32
19587 "1bw6la463l2yfm7rp76ga4makfy4kpxgwi7ni5gxk31w11g26ryk"))
19588 (file-name (git-file-name name version))))
19589 (build-system emacs-build-system)
19590 (propagated-inputs
19591 `(("emacs-request" ,emacs-request)))
19592 (synopsis "Simplified and community-driven man pages for Emacs")
19593 (description "@code{emacs-tldr} allows the user to access tldr pages
19594 from within emacs. The @code{tldr} pages are a community effort to simplify
19595 the man pages with practical examples.")
19596 (license license:wtfpl2))))
19597
19598 (define-public emacs-window-layout
19599 (package
19600 (name "emacs-window-layout")
19601 (version "1.4")
19602 (home-page "https://github.com/kiwanami/emacs-window-layout")
19603 (source (origin
19604 (method git-fetch)
19605 (uri (git-reference
19606 (url home-page)
19607 (commit (string-append "v" version))))
19608 (sha256
19609 (base32
19610 "0wgqi8r844lbx52fn6az8c1n8m681rp6dkfzd54wmdk1ka7zmvv6"))
19611 (file-name (git-file-name name version))))
19612 (build-system emacs-build-system)
19613 (synopsis "Simple window layout management framework for emacs")
19614 (description "A window-layout management library that can split a frame
19615 or a window into some windows according to a layout recipe.")
19616 (license license:gpl3+)))
19617
19618 (define-public emacs-e2wm
19619 (package
19620 (name "emacs-e2wm")
19621 (version "1.4")
19622 (home-page "https://github.com/kiwanami/emacs-window-manager")
19623 (source (origin
19624 (method git-fetch)
19625 (uri (git-reference
19626 (url home-page)
19627 (commit (string-append "v" version))))
19628 (sha256
19629 (base32
19630 "12midsrx07pdrsr1qbl2rpi7xyhxqx08bkz7n7gf8vsmqkpfp56s"))
19631 (file-name (git-file-name name version))))
19632 (build-system emacs-build-system)
19633 (propagated-inputs
19634 `(("emacs-window-layout" ,emacs-window-layout)))
19635 (synopsis "Equilibrium Emacs Window Manager")
19636 (description "E2WM is a window manager for Emacs. It enables to
19637 customize the place of pop-up window, how the windows are split, how the
19638 buffers are located in the windows, keybinds to manipulate windows and
19639 buffers, etc. It also has plug-ins to help your Emacs life.")
19640 (license license:gpl3+)))
19641
19642 (define-public emacs-ctable
19643 (let ((commit "b8830d1ca95abb100a81bc32011bd17d5ecba000"))
19644 (package
19645 (name "emacs-ctable")
19646 (version (git-version "0.1.2" "1" commit))
19647 (home-page "https://github.com/kiwanami/emacs-ctable")
19648 (source (origin
19649 (method git-fetch)
19650 (uri (git-reference
19651 (url home-page)
19652 (commit commit)))
19653 (sha256
19654 (base32
19655 "0pg303pnqscrsbx9579hc815angszsgf9vpd2z2f8p4f4ka6a00h"))
19656 (file-name (git-file-name name version))))
19657 (build-system emacs-build-system)
19658 (synopsis "Table component for Emacs Lisp")
19659 (description "This program is a table component for Emacs Lisp. Other
19660 programs can use this table component for the application UI.")
19661 (license license:gpl3+))))
19662
19663 (define-public emacs-leetcode
19664 (let ((commit "8624496af9e105c3e07d88844b37ede87540d604")
19665 (revision "1"))
19666 (package
19667 (name "emacs-leetcode")
19668 (version (git-version "0" "1" commit))
19669 (home-page "https://github.com/ginqi7/leetcode-emacs.git")
19670 (source (origin
19671 (method git-fetch)
19672 (uri (git-reference
19673 (url "https://github.com/ginqi7/leetcode-emacs")
19674 (commit commit)))
19675 (sha256
19676 (base32
19677 "11pp7ydlmwrv7djf9mwk4xzn295xbmdnj5x13bfj5yjpjr89p531"))
19678 (file-name (git-file-name name version))))
19679 (build-system emacs-build-system)
19680 (propagated-inputs
19681 `(("emacs-names" ,emacs-names)
19682 ("emacs-ctable" ,emacs-ctable)))
19683 (synopsis "Solve and submit LeetCode problems from within Emacs")
19684 (description "This package provides an Emacs interface to LeetCode
19685 allowing users to log in and solve problems of their choice using Emacs.")
19686 (license license:unlicense))))
19687
19688 (define-public emacs-epc
19689 (let ((commit "e1bfa5ca163273859336e3cc89b4b6460f7f8cda"))
19690 (package
19691 (name "emacs-epc")
19692 (version (git-version "0.1.1" "1" commit))
19693 (home-page "https://github.com/kiwanami/emacs-epc")
19694 (source (origin
19695 (method git-fetch)
19696 (uri (git-reference
19697 (url home-page)
19698 (commit commit)))
19699 (sha256
19700 (base32
19701 "15nkrjgi64f829isfd6xrhl4zw8jirr8pkas7nisrbk1av868hx0"))
19702 (file-name (git-file-name name version))))
19703 (build-system emacs-build-system)
19704 (propagated-inputs
19705 `(("emacs-deferred" ,emacs-deferred)
19706 ("emacs-ctable" ,emacs-ctable)))
19707 (synopsis "RPC stack for Emacs Lisp")
19708 (description "This program is an asynchronous RPC stack for Emacs.
19709 Using this RPC stack, Emacs can communicate with the peer process
19710 smoothly. Because the protocol employs S-expression encoding and consists of
19711 asynchronous communications, the RPC response is fairly good.")
19712 (license license:gpl3+))))
19713
19714 (define-public emacs-edbi
19715 (let ((commit "6f50aaf4bde75255221f2292c7a4ad3fa9d918c0"))
19716 (package
19717 (name "emacs-edbi")
19718 (version (git-version "0.1.3" "1" commit))
19719 (home-page "https://github.com/kiwanami/emacs-edbi")
19720 (source (origin
19721 (method git-fetch)
19722 (uri (git-reference
19723 (url home-page)
19724 (commit commit)))
19725 (sha256
19726 (base32
19727 "0x0igyvdcm4863n7zndvcv6wgzwgn7324cbfjja6xd7r0k936zdy"))
19728 (file-name (git-file-name name version))))
19729 (build-system emacs-build-system)
19730 (inputs
19731 `(("perl" ,perl)
19732 ("perl-rpc-epc-service" ,perl-rpc-epc-service)
19733 ("perl-dbi" ,perl-dbi)
19734 ;; TODO: Adding support for perl-dbd-mysql and others would
19735 ;; dramatically increase the closure size. Make several packages?
19736 ("perl-dbd-sqlite" ,perl-dbd-sqlite)))
19737 (propagated-inputs
19738 `(("emacs-e2wm" ,emacs-e2wm)
19739 ("emacs-epc" ,emacs-epc)))
19740 (arguments
19741 `(#:include '("\\.el$" "\\.pl$")
19742 #:phases
19743 (modify-phases %standard-phases
19744 (add-after 'install 'patch-path
19745 (lambda* (#:key inputs outputs #:allow-other-keys)
19746 (let ((perl (assoc-ref inputs "perl"))
19747 (dir (string-append (assoc-ref outputs "out")
19748 "/share/emacs/site-lisp")))
19749 (substitute* (string-append dir "/edbi.el")
19750 (("\"perl\"") (string-append "\"" perl "/bin/perl\"")))
19751 (chmod (string-append dir "/edbi-bridge.pl") #o555)
19752 (wrap-program (string-append dir "/edbi-bridge.pl")
19753 `("PERL5LIB" ":" prefix (,(getenv "PERL5LIB"))))
19754 #t))))))
19755 (synopsis "Database Interface for Emacs Lisp")
19756 (description "This program connects the database server through Perl's
19757 DBI, and provides DB-accessing API and the simple management UI.")
19758 (license license:gpl3+))))
19759
19760 (define-public emacs-edbi-sqlite
19761 (let ((commit "52cb9ca1af7691b592f2cfd2f007847e7a4ccd5f"))
19762 (package
19763 (name "emacs-edbi-sqlite")
19764 (version (git-version "0.1.1" "1" commit))
19765 (home-page "https://github.com/proofit404/edbi-sqlite")
19766 (source (origin
19767 (method git-fetch)
19768 (uri (git-reference
19769 (url home-page)
19770 (commit commit)))
19771 (sha256
19772 (base32
19773 "1vll81386fx90lq5sy4rlxcik6mvw7zx5cc51f0yaca9bkcckp51"))
19774 (file-name (git-file-name name version))))
19775 (build-system emacs-build-system)
19776 (propagated-inputs
19777 `(("emacs-edbi" ,emacs-edbi)))
19778 (synopsis "Open SQLite files in Emacs")
19779 (description "This package is a convenience wrapper for @command{edbi}
19780 to open SQLite databases.")
19781 (license license:gpl3+))))
19782
19783 (define-public emacs-nix-mode
19784 (package
19785 (name "emacs-nix-mode")
19786 (version "1.4.4")
19787 (source
19788 (origin
19789 (method git-fetch)
19790 (uri (git-reference
19791 (url "https://github.com/NixOS/nix-mode")
19792 (commit (string-append "v" version))))
19793 (file-name (git-file-name name version))
19794 (sha256
19795 (base32 "19f36kl00pxm2a18hn4cdsdvxlfsdx1pnnm6s6zxd8nw6y8ynvn0"))))
19796 (build-system emacs-build-system)
19797 (inputs
19798 `(("emacs-company" ,emacs-company)
19799 ("emacs-json-mode" ,emacs-json-mode)
19800 ("emacs-mmm-mode" ,emacs-mmm-mode)))
19801 (home-page "https://github.com/NixOS/nix-mode")
19802 (synopsis "Emacs major mode for editing Nix expressions")
19803 (description "@code{nixos-mode} provides an Emacs major mode for editing
19804 Nix expressions. It supports syntax highlighting, indenting and refilling of
19805 comments.")
19806 (license license:lgpl2.1+)))
19807
19808 (define-public emacs-libmpdel
19809 (package
19810 (name "emacs-libmpdel")
19811 (version "1.1.2")
19812 (source (origin
19813 (method git-fetch)
19814 (uri (git-reference
19815 (url "https://gitea.petton.fr/mpdel/libmpdel.git")
19816 (commit (string-append "v" version))))
19817 (file-name (git-file-name name version))
19818 (sha256
19819 (base32
19820 "0dnjndpv6bmz5blfs75ynmbm32g23l4slg5p3941b1i94a08qzpy"))))
19821 (build-system emacs-build-system)
19822 (home-page "https://gitea.petton.fr/mpdel/libmpdel")
19823 (synopsis "Emacs library to communicate with Music Player Daemon (MPD)")
19824 (description
19825 "An Emacs library client to communicate with Music Player Daemon (MPD), a
19826 flexible, powerful, server-side application for playing music.")
19827 (license license:gpl3+)))
19828
19829 (define-public emacs-mpdel
19830 (package
19831 (name "emacs-mpdel")
19832 (version "1.0.0")
19833 (source
19834 (origin
19835 (method git-fetch)
19836 (uri (git-reference
19837 (url "https://gitea.petton.fr/mpdel/mpdel.git")
19838 (commit (string-append "v" version))))
19839 (file-name (git-file-name name version))
19840 (sha256
19841 (base32
19842 "0pyyvbzskr44dxbmlp3y0r6s459fd51cvwjmnjaqxfxflr5v891g"))))
19843 (build-system emacs-build-system)
19844 (inputs
19845 `(("emacs-libmpdel" ,emacs-libmpdel)))
19846 (home-page "https://gitea.petton.fr/mpdel/mpdel")
19847 (synopsis "Emacs user interface for Music Player Daemon (MPD)")
19848 (description
19849 "MPDel provides an Emacs user interface to control playback (play, pause,
19850 next, volume) and display and control the current playlist as well as your
19851 stored playlists.")
19852 (license license:gpl3+)))
19853
19854 (define-public emacs-vterm
19855 (let ((version "0")
19856 (revision "3")
19857 (commit "14e4afdfc160b2e625c3e483d169786ac00cb4fe"))
19858 (package
19859 (name "emacs-vterm")
19860 (version (git-version version revision commit))
19861 (source (origin
19862 (method git-fetch)
19863 (uri (git-reference
19864 (url "https://github.com/akermu/emacs-libvterm")
19865 (commit commit)))
19866 (file-name (git-file-name name version))
19867 (sha256
19868 (base32
19869 "0wl613rxw493i3397n34qwqnd5fkyqrnn1fx3y2040xhvjl9rx70"))))
19870 (build-system emacs-build-system)
19871 (arguments
19872 `(#:modules ((guix build emacs-build-system)
19873 ((guix build cmake-build-system) #:prefix cmake:)
19874 (guix build emacs-utils)
19875 (guix build utils))
19876 #:imported-modules (,@%emacs-build-system-modules
19877 (guix build cmake-build-system))
19878 #:phases
19879 (modify-phases %standard-phases
19880 (add-before 'add-source-to-load-path 'substitute-vterm-module-path
19881 (lambda* (#:key outputs #:allow-other-keys)
19882 (chmod "vterm.el" #o644)
19883 (emacs-substitute-sexps "vterm.el"
19884 ("(require 'vterm-module nil t)"
19885 `(module-load
19886 ,(string-append (assoc-ref outputs "out")
19887 "/lib/vterm-module.so"))))
19888 #t))
19889 (add-after 'build 'configure
19890 ;; Run cmake.
19891 (lambda* (#:key outputs #:allow-other-keys)
19892 ((assoc-ref cmake:%standard-phases 'configure)
19893 #:outputs outputs
19894 #:out-of-source? #f
19895 #:configure-flags '("-DUSE_SYSTEM_LIBVTERM=ON"))
19896 #t))
19897 (add-after 'configure 'make
19898 ;; Run make.
19899 (lambda* (#:key (make-flags '()) outputs #:allow-other-keys)
19900 ;; Compile the shared object file.
19901 (apply invoke "make" "all" make-flags)
19902 ;; Move the file into /lib.
19903 (install-file
19904 "vterm-module.so"
19905 (string-append (assoc-ref outputs "out") "/lib"))
19906 #t)))
19907 #:tests? #f))
19908 (native-inputs
19909 `(("cmake" ,cmake-minimal)
19910 ("libtool" ,libtool)
19911 ("libvterm" ,libvterm)))
19912 (home-page "https://github.com/akermu/emacs-libvterm")
19913 (synopsis "Emacs libvterm integration")
19914 (description "This package implements a bridge to @code{libvterm} to
19915 display a terminal in an Emacs buffer.")
19916 (license license:gpl3+))))
19917
19918 (define-public emacs-simple-mpc
19919 ;; There have been no releases.
19920 (let ((commit "bee8520e81292b4c7353e45b193f9a13b482f5b2")
19921 (revision "1"))
19922 (package
19923 (name "emacs-simple-mpc")
19924 (version (git-version "0" revision commit))
19925 (source
19926 (origin
19927 (method git-fetch)
19928 (uri (git-reference
19929 (url "https://github.com/jorenvo/simple-mpc")
19930 (commit commit)))
19931 (file-name (git-file-name name version))
19932 (sha256
19933 (base32
19934 "1ja06pv007cmzjjgka95jlg31k7d29jrih1yxyblsxv85s9sg21q"))))
19935 (build-system emacs-build-system)
19936 (propagated-inputs `(("emacs-s" ,emacs-s)))
19937 (home-page "https://github.com/jorenvo/simple-mpc")
19938 (synopsis "Simple Emacs frontend to mpc")
19939 (description "This package provides an Emacs major mode which acts as a
19940 front end to mpc, a client for the @dfn{Music Player Daemon} (MPD).")
19941 (license license:gpl3+))))
19942
19943 (define-public emacs-mkmcc-gnuplot-mode
19944 (package
19945 (name "emacs-mkmcc-gnuplot-mode")
19946 (version "1.2.0")
19947 (source
19948 (origin
19949 (method git-fetch)
19950 (uri (git-reference
19951 (url "https://github.com/mkmcc/gnuplot-mode")
19952 (commit "601f6392986f0cba332c87678d31ae0d0a496ce7")))
19953 (file-name (git-file-name name version))
19954 (sha256
19955 (base32
19956 "14f0yh1rjqc3337j4sbqzfb7pjim2c8a7wk1a73xkrdkmjn82vgb"))))
19957 (build-system emacs-build-system)
19958 (home-page "https://mkmcc.github.io/software/gnuplot-mode.html")
19959 (synopsis "Minimal emacs major mode for editing gnuplot scripts")
19960 (description "@code{emacs-mkmcc-gnuplot-mode} is a minimal emacs major
19961 mode for editing gnuplot scripts. It provides syntax highlighting,
19962 indentation and a command to plot the file.")
19963 (license license:gpl3+)))
19964
19965 (define-public emacs-cmake-font-lock
19966 (let ((commit "e0ceaaae19c13b66f781512e3295bfc6707b56f4")
19967 (revision "1"))
19968 (package
19969 (name "emacs-cmake-font-lock")
19970 (version (git-version "0.1.5" revision commit))
19971 (source (origin
19972 (method git-fetch)
19973 (uri (git-reference
19974 (url "https://github.com/Lindydancer/cmake-font-lock")
19975 (commit commit)))
19976 (file-name (git-file-name name version))
19977 (sha256
19978 (base32
19979 "03gsyn95dlmsn15bl353bphi3qy7ccn5bss3f7n97kf38bllh0yf"))))
19980 (build-system emacs-build-system)
19981 (native-inputs
19982 `(("emacs-faceup" ,emacs-faceup)))
19983 (arguments
19984 `(#:include (cons "^admin\\/" %default-include)))
19985 (home-page "https://github.com/Lindydancer/cmake-font-lock")
19986 (synopsis "Advanced type-aware syntax-highlighting for CMake")
19987 (description "This package highlights function arguments in CMake
19988 according to their use.")
19989 (license license:gpl3+))))
19990
19991 (define-public emacs-dtrt-indent
19992 (package
19993 (name "emacs-dtrt-indent")
19994 (version "1.2")
19995 (source (origin
19996 (method git-fetch)
19997 (uri (git-reference
19998 (url "https://github.com/jscheid/dtrt-indent")
19999 (commit version)))
20000 (file-name (git-file-name name version))
20001 (sha256
20002 (base32
20003 "0p5v5xwr0s59hv3s0f85byafphc85qv76g41crad9fhnxzab9rly"))))
20004 (build-system emacs-build-system)
20005 (home-page "https://github.com/jscheid/dtrt-indent")
20006 (synopsis "Minor mode that guesses the indentation offset")
20007 (description "This package provides a minor mode that guesses the
20008 indentation offset originally used for creating source code files and
20009 transparently adjusts the corresponding settings in Emacs, making it more
20010 convenient to edit foreign files.")
20011 (license license:gpl2+)))
20012
20013 (define-public emacs-repo
20014 (package
20015 (name "emacs-repo")
20016 (version "0.1.3")
20017 (source (origin
20018 (method git-fetch)
20019 (uri (git-reference
20020 (url "https://github.com/canatella/repo-el")
20021 (commit version)))
20022 (file-name (git-file-name name version))
20023 (sha256
20024 (base32
20025 "0rbvcvm7bfr6ncji7cllfxyyr6x7n9fx863byp243phsj3n93adz"))))
20026 (build-system emacs-build-system)
20027 (native-inputs
20028 `(("emacs-el-mock" ,emacs-el-mock)
20029 ("ert-runner" ,emacs-ert-runner)))
20030 (propagated-inputs
20031 `(("emacs-f" ,emacs-f)
20032 ("magit" ,emacs-magit)))
20033 (home-page "https://github.com/canatella/repo-el")
20034 (synopsis "Emacs interface for the Google Repo tool")
20035 (description "This package provides integration of the Google Repo tool
20036 with emacs. It displays the output of the @code{repo status} command in a
20037 buffer and launches Magit from the status buffer for the project at point.")
20038 (license license:gpl3+)))
20039
20040 (define-public emacs-alect-themes
20041 (package
20042 (name "emacs-alect-themes")
20043 (version "0.9")
20044 (source (origin
20045 (method git-fetch)
20046 (uri (git-reference
20047 (url "https://github.com/alezost/alect-themes")
20048 (commit (string-append "v" version))))
20049 (file-name (git-file-name name version))
20050 (sha256
20051 (base32
20052 "0nffxpdm0sa7bynwi0rmlwpc4qmvbda5ankhzz7fmk4ap9fkjxv9"))))
20053 (build-system emacs-build-system)
20054 (home-page "https://github.com/alezost/alect-themes")
20055 (synopsis "Low contrast, light, dark and black color theme for Emacs")
20056 (description "@code{emacs-alect-themes} provides configurable light, dark
20057 and black color themes for Emacs. The themes are intended to be used with
20058 GUI.")
20059 (license license:gpl3+)))
20060
20061 (define-public emacs-google-c-style
20062 (let ((commit "6271f3f473ceb3a7fef99388a3040903b1a145f1")
20063 (revision "0"))
20064 (package
20065 (name "emacs-google-c-style")
20066 (version (git-version "0.1" revision commit))
20067 (source (origin
20068 (method git-fetch)
20069 (uri (git-reference
20070 (url "https://github.com/google/styleguide")
20071 (commit commit)))
20072 (file-name (git-file-name name version))
20073 (sha256
20074 (base32
20075 "1jghyyasdl15c4gaqaxmdn43am63k6bykn5ab83f1ahv9zi1krxk"))))
20076 (build-system emacs-build-system)
20077 (home-page "https://github.com/google/styleguide")
20078 (synopsis "Emacs settings file for Google C/C++ style")
20079 (description "@code{emacs-google-c-style} provides an Emacs settings
20080 file for Google C and C++ style.")
20081 (license license:gpl1+))))
20082
20083 (define-public emacs-redshank
20084 (let ((commit "f98e68f532e622bcd464292ca4a9cf5fbea14ebb")
20085 (revision "1"))
20086 (package
20087 (name "emacs-redshank")
20088 (version (git-version "0.1" revision commit))
20089 (source (origin
20090 (method git-fetch)
20091 (uri (git-reference
20092 (url "http://www.foldr.org/~michaelw/projects/redshank.git")
20093 (commit commit)))
20094 (file-name (git-file-name name version))
20095 (sha256
20096 (base32
20097 "1jdkgvd5xy9hl5q611jwah2n05abjp7qcy9sj4k1z11x0ii62b6p"))))
20098 (build-system emacs-build-system)
20099 (propagated-inputs
20100 `(("emacs-paredit" ,emacs-paredit)))
20101 (home-page "http://www.foldr.org/~michaelw/emacs/redshank/")
20102 (synopsis "Common Lisp Editing Extensions (for Emacs)")
20103 (description "Redshank is a collection of code-wrangling Emacs macros
20104 mostly geared towards Common Lisp, but some are useful for other Lisp
20105 dialects, too. Redshank's code transformations aim to be expression-based (as
20106 opposed to character-based).")
20107 (license license:gpl1+))))
20108
20109 (define-public emacs-disk-usage
20110 (package
20111 (name "emacs-disk-usage")
20112 (version "1.3.3")
20113 (source
20114 (origin
20115 (method git-fetch)
20116 (uri (git-reference
20117 (url "https://gitlab.com/Ambrevar/emacs-disk-usage.git")
20118 (commit version)))
20119 (file-name (git-file-name name version))
20120 (sha256
20121 (base32
20122 "0hv2gsd8k5fbjgckgiyisq4rn1i7y4rchbjy8kmixjv6mx563bll"))))
20123 (build-system emacs-build-system)
20124 (home-page "https://gitlab.com/Ambrevar/emacs-disk-usage")
20125 (synopsis "Sort and browse disk usage listings with Emacs")
20126 (description "Disk Usage is a file system analyzer: it offers a tabulated
20127 view of file listings sorted by size. Directory sizes are computed
20128 recursively. The results are cached for speed.")
20129 (license license:gpl3+)))
20130
20131 (define-public emacs-orgit
20132 (package
20133 (name "emacs-orgit")
20134 (version "1.5.3")
20135 (home-page "https://github.com/magit/orgit")
20136 (source (origin
20137 (method git-fetch)
20138 (uri (git-reference
20139 (url home-page)
20140 (commit (string-append "v" version))))
20141 (file-name (git-file-name name version))
20142 (sha256
20143 (base32
20144 "1ywavzki510rslsgfm0cnn3mlh644p61ha2nfb715xhkg7cd3j9g"))))
20145 (build-system emacs-build-system)
20146 (propagated-inputs
20147 `(("emacs-dash" ,emacs-dash)
20148 ("emacs-magit" ,emacs-magit)))
20149 (synopsis "Support for Org links to Magit buffers")
20150 (description "This package defines several Org link types, which can be
20151 used to link to certain Magit buffers. Use the command
20152 @command{org-store-link} while such a buffer is current to store a link.
20153 Later you can insert it into an Org buffer using the command
20154 @code{org-insert-link}.")
20155 (license license:gpl3+)))
20156
20157 (define-public emacs-amx
20158 (package
20159 (name "emacs-amx")
20160 (version "3.3")
20161 (source
20162 (origin
20163 (method git-fetch)
20164 (uri (git-reference
20165 (url "https://github.com/DarwinAwardWinner/amx")
20166 (commit (string-append "v" version))))
20167 (file-name (git-file-name name version))
20168 (sha256
20169 (base32 "0ikjzs119g57cwh2v3jmy63lggqc0ib99q5gsl93slkk4y2ihavw"))))
20170 (build-system emacs-build-system)
20171 (propagated-inputs
20172 `(("emacs-s" ,emacs-s)))
20173 (home-page "https://github.com/DarwinAwardWinner/amx")
20174 (synopsis "Alternative M-x interface for Emacs")
20175 (description "Amx is an alternative interface for M-x in Emacs. It
20176 provides several enhancements over the ordinary
20177 @code{execute-extended-command}, such as prioritizing your most-used commands
20178 in the completion list and showing keyboard shortcuts, and it supports several
20179 completion systems for selecting commands, such as Ido and Ivy.")
20180 (license license:gpl3+)))
20181
20182 (define-public emacs-lorem-ipsum
20183 (let ((commit "4b39f6fed455d67f635b3837cf5668bf74d0f6cd"))
20184 (package
20185 (name "emacs-lorem-ipsum")
20186 (version (git-version "0.2" "1" commit))
20187 (home-page "https://github.com/jschaf/emacs-lorem-ipsum/")
20188 (source (origin
20189 (method git-fetch)
20190 (uri (git-reference
20191 (url home-page)
20192 (commit commit)))
20193 (file-name (git-file-name name version))
20194 (sha256
20195 (base32
20196 "0a3b18p3vdjci89prsgdzjnfxsl8p67vjhf8ai4qdng7zvh50lir"))))
20197 (build-system emacs-build-system)
20198 (synopsis "Insert dummy pseudo Latin text in Emacs")
20199 (description "This package provides convenience functions to insert
20200 dummy Latin text into a buffer. This can be useful if you need to produce
20201 paragraphs or pages of text for testing purposes.")
20202 (license license:gpl3+))))
20203
20204 (define-public emacs-lisp-extra-font-lock
20205 (let ((commit "4605eccbe1a7fcbd3cacf5b71249435413b4db4f"))
20206 (package
20207 (name "emacs-lisp-extra-font-lock")
20208 (version (git-version "0.0.6" "1" commit))
20209 (home-page "https://github.com/Lindydancer/lisp-extra-font-lock")
20210 (source (origin
20211 (method git-fetch)
20212 (uri (git-reference
20213 (url home-page)
20214 (commit commit)))
20215 (file-name (git-file-name name version))
20216 (sha256
20217 (base32
20218 "152vcp3mdlv33jf5va4rinl1d0k960gnfhbrqqrafazgx9j3ya8w"))))
20219 (build-system emacs-build-system)
20220 (synopsis "Highlight bound variables and quoted expressions in Emacs")
20221 (description "This package highlight the location where local variables
20222 is created (bound, for example, by let) as well as quoted and backquoted
20223 constant expressions.")
20224 (license license:gpl3+))))
20225
20226 (define-public emacs-docker-tramp
20227 (package
20228 (name "emacs-docker-tramp")
20229 (version "0.1")
20230 (source
20231 (origin
20232 (method git-fetch)
20233 (uri (git-reference
20234 (url "https://github.com/emacs-pe/docker-tramp.el")
20235 (commit (string-append "v" version))))
20236 (file-name (git-file-name name version))
20237 (sha256
20238 (base32
20239 "0lxvzmfg52fhxrhbvp92zwp7cv4i1rlxnkyyzgngj3sjm7y60yvg"))))
20240 (build-system emacs-build-system)
20241 (home-page "https://github.com/emacs-pe/docker-tramp.el")
20242 (synopsis "TRAMP integration for docker containers")
20243 (description
20244 "This package provides a TRAMP method for Docker containers.")
20245 (license license:gpl3+)))
20246
20247 (define-public emacs-docker
20248 (package
20249 (name "emacs-docker")
20250 (version "1.3.0")
20251 (source (origin
20252 (method git-fetch)
20253 (uri (git-reference
20254 (url "https://github.com/Silex/docker.el")
20255 (commit version)))
20256 (file-name (git-file-name name version))
20257 (sha256
20258 (base32
20259 "1g8r1faqp0z0vqp9qrl8m84pa0v2ddvc91klphdkfmldwv7rfipw"))))
20260 (inputs
20261 `(("emacs-undercover" ,emacs-undercover)))
20262 (propagated-inputs
20263 `(("emacs-dash" ,emacs-dash)
20264 ("emacs-docker-tramp" ,emacs-docker-tramp)
20265 ("emacs-magit-popup" ,emacs-magit-popup)
20266 ("emacs-s" ,emacs-s)
20267 ("emacs-tablist" ,emacs-tablist)
20268 ("emacs-json-mode" ,emacs-json-mode)))
20269 (arguments
20270 `(#:phases
20271 (modify-phases %standard-phases
20272 (delete 'check)))) ;no tests
20273 (build-system emacs-build-system)
20274 (home-page "https://github.com/Silex/docker.el")
20275 (synopsis "Manage docker from Emacs")
20276 (description "This package provides an Emacs interface for Docker.")
20277 (license license:gpl3+)))
20278
20279 (define-public emacs-dockerfile-mode
20280 ;; Latest upstream release is too old.
20281 (let ((commit "ed73e82dcc636dad00d1a8c3b32a49136d25ee60"))
20282 (package
20283 (name "emacs-dockerfile-mode")
20284 (version (git-version "1.2" "2" commit))
20285 (source
20286 (origin
20287 (method git-fetch)
20288 (uri (git-reference
20289 (url "https://github.com/spotify/dockerfile-mode")
20290 (commit commit)))
20291 (file-name (git-file-name name version))
20292 (sha256
20293 (base32
20294 "0lri2rnx4lr23vqfphkpq39cd4xfgzkvz1xsz7ccdvl4qj0k7fdl"))))
20295 (build-system emacs-build-system)
20296 (propagated-inputs
20297 `(("emacs-s" ,emacs-s)))
20298 (home-page "https://github.com/spotify/dockerfile-mode")
20299 (synopsis "Major mode for editing Dockerfile")
20300 (description
20301 "This package provides a major mode @code{dockerfile-mode} for use with
20302 the standard @code{Dockerfile} file format.")
20303 (license license:asl2.0))))
20304
20305 (define-public emacs-lsp-mode
20306 (package
20307 (name "emacs-lsp-mode")
20308 (version "7.0.1")
20309 (source
20310 (origin
20311 (method git-fetch)
20312 (uri (git-reference
20313 (url "https://github.com/emacs-lsp/lsp-mode")
20314 (commit version)))
20315 (file-name (git-file-name name version))
20316 (sha256
20317 (base32 "1z8zm7qr21hvhl6rnbznv2l9drh1pp5y4zkjrx5ac4x77b8i4aaz"))))
20318 (build-system emacs-build-system)
20319 (propagated-inputs
20320 `(("emacs-dash" ,emacs-dash)
20321 ("emacs-f" ,emacs-f)
20322 ("emacs-ht" ,emacs-ht)
20323 ("emacs-hydra" ,emacs-hydra)
20324 ("emacs-markdown-mode" ,emacs-markdown-mode)
20325 ("emacs-spinner" ,emacs-spinner)))
20326 (home-page "https://emacs-lsp.github.io/lsp-mode/")
20327 (synopsis "Emacs client and library for the Language Server Protocol")
20328 (description
20329 "LSP mode is a client and library implementation for the Language Server
20330 Protocol. This mode creates an IDE-like experience by providing optional
20331 integration with other popular Emacs packages like Company, Flycheck, and
20332 Projectile.")
20333 (license license:gpl3+)))
20334
20335 (define-public emacs-pfuture
20336 (let ((commit "368254ee30692c709400db413c347e18e76a8a55"))
20337 (package
20338 (name "emacs-pfuture")
20339 (version (git-version "1.6" "1" commit))
20340 (source (origin
20341 (method git-fetch)
20342 (uri (git-reference
20343 (url "https://github.com/Alexander-Miller/pfuture")
20344 (commit commit)))
20345 (file-name (git-file-name name version))
20346 (sha256
20347 (base32
20348 "096raqpjx84njws85r7pqq1wi9w9bjwkr0ga1mbbhlna1mfn3mg4"))))
20349 (build-system emacs-build-system)
20350 (home-page
20351 "https://github.com/Alexander-Miller/pfuture")
20352 (synopsis "Simple wrapper around asynchronous processes for Emacs")
20353 (description "This package provides a simple wrapper around asynchronous
20354 processes for Emacs")
20355 (license license:gpl3+))))
20356
20357 (define-public emacs-treemacs
20358 (package
20359 (name "emacs-treemacs")
20360 (version "2.8")
20361 (source (origin
20362 (method git-fetch)
20363 (uri (git-reference
20364 (url "https://github.com/Alexander-Miller/treemacs")
20365 (commit version)))
20366 (file-name (git-file-name name version))
20367 (sha256
20368 (base32
20369 "0m083g3pg0n4ymi1w0jx34awr7cqbm4r561adij9kklblxsz7sc2"))))
20370 (build-system emacs-build-system)
20371 (propagated-inputs
20372 `(("emacs-dash" ,emacs-dash)
20373 ("emacs-s" ,emacs-s)
20374 ("emacs-f" ,emacs-f)
20375 ("emacs-ace-window" ,emacs-ace-window)
20376 ("emacs-pfuture" ,emacs-pfuture)
20377 ("emacs-hydra" ,emacs-hydra)
20378 ("emacs-ht" ,emacs-ht)))
20379 (native-inputs
20380 `(("emacs-buttercup" ,emacs-buttercup)
20381 ("emacs-el-mock" ,emacs-el-mock)))
20382 (inputs
20383 `(("python" ,python)))
20384 (arguments
20385 `(#:tests? #t ;TODO: Investigate ‘treemacs--parse-collapsed-dirs’ test failure.
20386 #:phases
20387 (modify-phases %standard-phases
20388 (add-after 'unpack 'fix-makefile
20389 (lambda _
20390 (substitute* "Makefile"
20391 (("@\\$\\(CASK\\) exec ") "")
20392 ;; Guix does not need to prepare dependencies before testing.
20393 (("test: prepare") "test:"))
20394 #t))
20395 (add-after 'fix-makefile 'chdir-elisp
20396 ;; Elisp directory is not in root of the source.
20397 (lambda _
20398 (chdir "src/elisp")))
20399 (replace 'check
20400 (lambda _
20401 (with-directory-excursion "../.." ;treemacs root
20402 (chmod "test/test-treemacs.el" #o644)
20403 (emacs-substitute-sexps "test/test-treemacs.el"
20404 ("(describe \"treemacs--parse-collapsed-dirs\""
20405 ""))
20406 (invoke "make" "test"))))
20407 (add-before 'install 'patch-paths
20408 (lambda* (#:key inputs outputs #:allow-other-keys)
20409 (with-directory-excursion "../.." ;treemacs root
20410 (chmod "src/elisp/treemacs-core-utils.el" #o644)
20411 (emacs-substitute-variables "src/elisp/treemacs-core-utils.el"
20412 ("treemacs-dir"
20413 (string-append (assoc-ref outputs "out") "/")))
20414 (chmod "src/elisp/treemacs-icons.el" #o644)
20415 (substitute* "src/elisp/treemacs-icons.el"
20416 (("icons/default") "share/emacs-treemacs/images"))
20417 (chmod "src/elisp/treemacs-customization.el" #o644)
20418 (emacs-substitute-variables "src/elisp/treemacs-customization.el"
20419 ("treemacs-python-executable"
20420 (string-append (assoc-ref inputs "python") "/bin/python3")))
20421 (chmod "src/elisp/treemacs-async.el" #o644)
20422 (substitute* "src/elisp/treemacs-async.el"
20423 (("src/scripts") (string-append "share/" ,name "/scripts"))))
20424 #t))
20425 (add-after 'install 'install-data
20426 (lambda* (#:key outputs #:allow-other-keys)
20427 (let ((out (assoc-ref outputs "out")))
20428 (with-directory-excursion "../.." ;treemacs root
20429 (copy-recursively "icons/default"
20430 (string-append out "/share/" ,name "/images"))
20431 (copy-recursively
20432 "src/scripts"
20433 (string-append out "/share/" ,name "/scripts"))
20434 #t)))))))
20435 (home-page "https://github.com/Alexander-Miller/treemacs")
20436 (synopsis "Emacs tree style file explorer")
20437 (description "Powerful and flexible file tree project explorer.")
20438 (license license:gpl3+)))
20439
20440 (define-public emacs-treemacs-extra
20441 (package
20442 (inherit emacs-treemacs)
20443 (name "emacs-treemacs-extra")
20444 (propagated-inputs
20445 `(,@(package-propagated-inputs emacs-treemacs)
20446 ("emacs-evil" ,emacs-evil)
20447 ("emacs-magit" ,emacs-magit)
20448 ("emacs-projectile" ,emacs-projectile)
20449 ("emacs-persp-mode" ,emacs-persp-mode)))
20450 (arguments
20451 (substitute-keyword-arguments
20452 (package-arguments emacs-treemacs)
20453 ((#:phases phases)
20454 `(modify-phases ,phases
20455 (add-after 'chdir-elisp 'copy-extra
20456 (lambda _
20457 (copy-recursively "../extra" ".")))))))))
20458
20459 (define-public emacs-libyaml
20460 ;; Upstream made no release so far.
20461 (let ((version "0")
20462 (revision "1")
20463 (commit "703e0d448c7ee24e25b513a3c65980c80e166805"))
20464 (package
20465 (name "emacs-libyaml")
20466 (version (git-version version revision commit))
20467 (source
20468 (origin
20469 (method git-fetch)
20470 (uri (git-reference
20471 (url "https://github.com/syohex/emacs-libyaml")
20472 (commit commit)))
20473 (file-name (git-file-name name version))
20474 (sha256
20475 (base32 "08l7pm9v50ykd3fkbm0bh2kcd57cadbc5i9r6rj51vd32w3pl2yl"))))
20476 (build-system emacs-build-system)
20477 (arguments
20478 `(#:tests? #f ;no test
20479 #:modules ((guix build emacs-build-system)
20480 (guix build emacs-utils)
20481 (guix build utils))
20482 #:imported-modules (,@%emacs-build-system-modules
20483 (guix build gnu-build-system))
20484 #:phases
20485 (modify-phases %standard-phases
20486 (add-before 'add-source-to-load-path 'substitute-libyaml-core-path
20487 (lambda* (#:key outputs #:allow-other-keys)
20488 (chmod "libyaml.el" #o644)
20489 (substitute* "libyaml.el"
20490 (("^\\(require 'libyaml-core\\)")
20491 (string-append "(module-load \"" (assoc-ref outputs "out")
20492 "/lib/libyaml-core.so\")")))
20493 #t))
20494 (add-after 'check 'make
20495 ;; Run make.
20496 (lambda* (#:key (make-flags '()) outputs #:allow-other-keys)
20497 ;; Compile the shared object file.
20498 (apply invoke "make" "all" "CPPFLAGS=" make-flags)
20499 ;; Move the file into /lib.
20500 (install-file "libyaml-core.so"
20501 (string-append (assoc-ref outputs "out") "/lib"))
20502 #t)))))
20503 (native-inputs `(("libyaml" ,libyaml)))
20504 (home-page "https://github.com/syohex/emacs-libyaml")
20505 (synopsis "Libyaml bindings for Emacs")
20506 (description
20507 "This package implements bindings for LibYAML to be able to parse YAML
20508 files in Elisp.")
20509 (license license:gpl3+))))
20510
20511 (define-public emacs-lsp-java
20512 (package
20513 (name "emacs-lsp-java")
20514 (version "2.2")
20515 (source (origin
20516 (method git-fetch)
20517 (uri (git-reference
20518 (url "https://github.com/emacs-lsp/lsp-java")
20519 (commit version)))
20520 (file-name (git-file-name name version))
20521 (sha256
20522 (base32
20523 "0hcnvbyaqyypgby1bfj4zbrbq97amk8hfx0sj4w73rl46yf4jk3j"))))
20524 (build-system emacs-build-system)
20525 (propagated-inputs
20526 `(("emacs-lsp-mode" ,emacs-lsp-mode)
20527 ("emacs-markdown-mode" ,emacs-markdown-mode)
20528 ("emacs-dash" ,emacs-dash)
20529 ("emacs-f" ,emacs-f)
20530 ("emacs-ht" ,emacs-ht)
20531 ("emacs-request" ,emacs-request)
20532 ("emacs-treemacs" ,emacs-treemacs)))
20533 (home-page "https://github.com/emacs-lsp/lsp-java/")
20534 (synopsis "Java support for lsp-mode")
20535 (description "Emacs Java IDE using Eclipse JDT Language Server.")
20536 (license license:gpl3+)))
20537
20538 (define-public emacs-lsp-ui
20539 (package
20540 (name "emacs-lsp-ui")
20541 (version "7.0.1")
20542 (source (origin
20543 (method git-fetch)
20544 (uri (git-reference
20545 (url "https://github.com/emacs-lsp/lsp-ui")
20546 (commit version)))
20547 (file-name (git-file-name name version))
20548 (sha256
20549 (base32
20550 "09dmhhxmfjnzdc5kygwsjf8nwqlnq9rbgrca679s2wy93miqj7vc"))))
20551 (build-system emacs-build-system)
20552 (propagated-inputs
20553 `(("emacs-dash" ,emacs-dash)
20554 ("emacs-lsp-mode" ,emacs-lsp-mode)
20555 ("emacs-markdown-mode" ,emacs-markdown-mode)
20556 ("emacs-flycheck" ,emacs-flycheck)))
20557 (home-page "https://github.com/emacs-lsp/lsp-ui")
20558 (synopsis "User interface extensions for @code{lsp-mode}")
20559 (description
20560 "@code{LSP-ui} contains several enhancements and integrations for
20561 @code{lsp-mode}, such as visual flychecking, displaying references in-line,
20562 and code peeking.")
20563 (license license:gpl3+)))
20564
20565 (define-public emacs-lsp-lua-emmy
20566 (let ((commit "ab53fb2a8b8942804eb75bab5624fd19f1d360bf"))
20567 (package
20568 (name "emacs-lsp-lua-emmy")
20569 (version (git-version "0.1.0" "1" commit))
20570 (source (origin
20571 (method git-fetch)
20572 (uri (git-reference
20573 (url "https://github.com/phenix3443/lsp-lua-emmy")
20574 (commit commit)))
20575 (file-name (git-file-name name version))
20576 (sha256
20577 (base32
20578 "0rbizis73n1w5ig07fj1han74chbc1zpbp5bn37rj0gz608aqka8"))))
20579 (build-system emacs-build-system)
20580 (propagated-inputs
20581 `(("emacs-lsp-mode" ,emacs-lsp-mode)))
20582 (home-page "https://github.com/phenix3443/lsp-lua-emmy/")
20583 (synopsis "Lua support in @code{lsp-mode} client for Emacs")
20584 (description "This package provides a Lua language support in
20585 @code{lsp-mode} client for Emacs.")
20586 (license license:gpl3+))))
20587
20588 (define-public emacs-lsp-ivy
20589 (let ((commit "caf1e1d7e22ed0b5fe18dd508d1a6f83dd163288")
20590 (revision "2"))
20591 (package
20592 (name "emacs-lsp-ivy")
20593 (version (git-version "0.1" revision commit))
20594 (source (origin
20595 (method git-fetch)
20596 (uri (git-reference
20597 (url "https://github.com/emacs-lsp/lsp-ivy")
20598 (commit commit)))
20599 (file-name (git-file-name name version))
20600 (sha256
20601 (base32
20602 "084ds4qhzhivfnicy3h7z4mblxgcqx8pfnkbjr9qjrfng7cisy4z"))))
20603 (build-system emacs-build-system)
20604 (propagated-inputs
20605 `(("emacs-ivy" ,emacs-ivy)
20606 ("emacs-lsp-mode" ,emacs-lsp-mode)
20607 ("emacs-dash" ,emacs-dash)))
20608 (home-page "https://github.com/emacs-lsp/lsp-ivy")
20609 (synopsis "Provide LSP-enhanced completion for symbols")
20610 (description
20611 "This package enhances @code{ivy} with completion for symbols from
20612 workspaces with a LSP-compliant server running.")
20613 (license license:gpl3+))))
20614
20615 (define-public emacs-helm-lsp
20616 (let ((commit "3a58ca4cfd94b9ab1e15e819d3b16ef568e8889b")
20617 (revision "1"))
20618 (package
20619 (name "emacs-helm-lsp")
20620 (version (git-version "0.1" revision commit))
20621 (source (origin
20622 (method git-fetch)
20623 (uri (git-reference
20624 (url "https://github.com/emacs-lsp/helm-lsp")
20625 (commit commit)))
20626 (file-name (git-file-name name version))
20627 (sha256
20628 (base32
20629 "0wh5zai3s17ss2q8wcdd6d87hv1h3nbyrxxs4js9cas8m6y2ssjv"))))
20630 (build-system emacs-build-system)
20631 (propagated-inputs
20632 `(("emacs-helm" ,emacs-helm)
20633 ("emacs-lsp-mode" ,emacs-lsp-mode)
20634 ("emacs-dash" ,emacs-dash)))
20635 (home-page "https://github.com/emacs-lsp/helm-lsp")
20636 (synopsis "Provide LSP-enhanced completion for symbols")
20637 (description
20638 "This package enhances @code{helm} with completion for symbols from
20639 workspaces with a LSP-compliant server running.")
20640 (license license:gpl3+))))
20641
20642 (define-public emacs-helm-notmuch
20643 (package
20644 (name "emacs-helm-notmuch")
20645 (version "1.2")
20646 (home-page "https://github.com/emacs-helm/helm-notmuch/")
20647 (source (origin
20648 (method git-fetch)
20649 (uri (git-reference
20650 (url home-page)
20651 (commit version)))
20652 (file-name (git-file-name name version))
20653 (sha256
20654 (base32
20655 "1k038dbdpaa411gl4071x19fklhnizhr346plxw23lsnxir9dhqc"))))
20656 (build-system emacs-build-system)
20657 (propagated-inputs
20658 `(("emacs-helm" ,emacs-helm)
20659 ("notmuch" ,notmuch)))
20660 (synopsis "Search emails with Emacs Notmuch and Helm")
20661 (description
20662 "This package can be used to search emails in Emacs, searching result
20663 displays as you type thanks to Helm, though @command{notmuch-search} does the
20664 real search.")
20665 (license license:gpl3+)))
20666
20667 (define-public emacs-elmacro
20668 (let ((commit "89b9b0feabafd01fee48111d67131c4c9b5fed9a"))
20669 (package
20670 (name "emacs-elmacro")
20671 (version (git-version "1.1.0" "1" commit))
20672 (home-page "https://github.com/Silex/elmacro")
20673 (source (origin
20674 (method git-fetch)
20675 (uri (git-reference
20676 (url home-page)
20677 (commit commit)))
20678 (file-name (git-file-name name version))
20679 (sha256
20680 (base32
20681 "06wkzafh6vbcjf0m3sl253mgcq32p8cdv7vsfmyx51baa36938ha"))))
20682 (build-system emacs-build-system)
20683 (propagated-inputs
20684 `(("emacs-s" ,emacs-s)
20685 ("emacs-dash" ,emacs-dash)))
20686 (synopsis "Convert keyboard macros to Emacs Lisp")
20687 (description
20688 "This package displays keyboard macros or latest interactive commands
20689 as Emacs Lisp.")
20690 (license license:gpl3+))))
20691
20692 (define-public emacs-transient
20693 (let ((revision "1")
20694 (commit "a6e4cced303b3febd59412b24a97eaf1e855e6d7"))
20695 (package
20696 (name "emacs-transient")
20697 (version (git-version "0.2.0" revision commit))
20698 (source (origin
20699 (method git-fetch)
20700 (uri (git-reference
20701 (url "https://github.com/magit/transient")
20702 (commit commit)))
20703 (file-name (git-file-name name version))
20704 (sha256
20705 (base32
20706 "01xsw9sxr50valc2q590ngy3ra2ll01p39l9cbzvqqz6mxyymxmd"))))
20707 (build-system emacs-build-system)
20708 (arguments
20709 `(#:tests? #f ;no test suite
20710 #:phases
20711 (modify-phases %standard-phases
20712 (add-after 'unpack 'build-info-manual
20713 (lambda _
20714 (invoke "make" "info")
20715 ;; Move the info file to lisp so that it gets installed by the
20716 ;; emacs-build-system.
20717 (rename-file "docs/transient.info" "lisp/transient.info")
20718 #t))
20719 (add-after 'build-info-manual 'enter-lisp-directory
20720 (lambda _
20721 (chdir "lisp")
20722 #t)))))
20723 (native-inputs
20724 `(("texinfo" ,texinfo)))
20725 (propagated-inputs
20726 `(("dash" ,emacs-dash)))
20727 (home-page "https://magit.vc/manual/transient")
20728 (synopsis "Transient commands in Emacs")
20729 (description "Taking inspiration from prefix keys and prefix arguments
20730 in Emacs, Transient implements a similar abstraction involving a prefix
20731 command, infix arguments and suffix commands. We could call this abstraction
20732 a \"transient command\", but because it always involves at least two
20733 commands (a prefix and a suffix) we prefer to call it just a \"transient\".")
20734 (license license:gpl3+))))
20735
20736 (define-public emacs-forge
20737 (let ((commit "09bf8adc9c9afb492632e612f51f39e1cc15fca0"))
20738 (package
20739 (name "emacs-forge")
20740 (version (git-version "0.1.0" "4" commit))
20741 (source
20742 (origin
20743 (method git-fetch)
20744 (uri (git-reference
20745 (url "https://github.com/magit/forge")
20746 (commit commit)))
20747 (file-name (git-file-name name version))
20748 (sha256
20749 (base32
20750 "148h1rvmfmxyrfy2q5l0vzblr7lpsyw1si30hfwhzsj8fvj21qcr"))))
20751 (build-system emacs-build-system)
20752 (native-inputs
20753 `(("texinfo" ,texinfo)))
20754 (propagated-inputs
20755 `(("emacs-closql" ,emacs-closql)
20756 ("emacs-dash" ,emacs-dash)
20757 ("emacs-emacsql-sqlite" ,emacs-emacsql)
20758 ("emacs-ghub" ,emacs-ghub)
20759 ("emacs-let-alist" ,emacs-let-alist)
20760 ("emacs-magit" ,emacs-magit)
20761 ("emacs-markdown-mode" ,emacs-markdown-mode)
20762 ("emacs-transient" ,emacs-transient)))
20763 (arguments
20764 `(#:tests? #f ;no tests
20765 #:phases
20766 (modify-phases %standard-phases
20767 (add-after 'unpack 'build-info-manual
20768 (lambda _
20769 (invoke "make" "info")
20770 ;; Move the info file to lisp so that it gets installed by the
20771 ;; emacs-build-system.
20772 (rename-file "docs/forge.info" "lisp/forge.info")))
20773 (add-after 'build-info-manual 'chdir-lisp
20774 (lambda _
20775 (chdir "lisp")
20776 #t)))))
20777 (home-page "https://github.com/magit/forge/")
20778 (synopsis "Access Git forges from Magit")
20779 (description "Work with Git forges, such as Github and Gitlab, from the
20780 comfort of Magit and the rest of Emacs.")
20781 (license license:gpl3+))))
20782
20783 (define-public emacs-matcha
20784 (let ((commit "c7df5cf5cdac9ae369e241342389ccda0205eab9"))
20785 (package
20786 (name "emacs-matcha")
20787 (version (git-version "0.0.1" "1" commit)) ;no upstream release
20788 (source (origin
20789 (method git-fetch)
20790 (uri (git-reference
20791 (url "https://github.com/jojojames/matcha")
20792 (commit commit)))
20793 (file-name (git-file-name name version))
20794 (sha256
20795 (base32
20796 "1lfnh1glg6al677m7ci0x8g5wjdhjxlfl3nv1f1ppsw4dpnwsj9b"))))
20797 (propagated-inputs
20798 `(("emacs-hydra" ,emacs-hydra)
20799 ("emacs-transient" ,emacs-transient)))
20800 (build-system emacs-build-system)
20801 (home-page "https://github.com/jojojames/matcha/")
20802 (synopsis "Collection of hydras with a generic interface to launch them")
20803 (description "Matcha provides a collection of transients for various
20804 packages with a consistent way to use them.")
20805 (license license:gpl3+))))
20806
20807 (define-public emacs-undo-propose-el
20808 (let ((commit "f80baee566807d733fbacbab08a897bcd62579c3")
20809 (revision "3"))
20810 (package
20811 (name "emacs-undo-propose-el")
20812 (version (git-version "3.0.0" revision commit))
20813 (source
20814 (origin
20815 (method git-fetch)
20816 (uri (git-reference
20817 (url "https://github.com/jackkamm/undo-propose-el")
20818 (commit commit)))
20819 (file-name (git-file-name name version))
20820 (sha256
20821 (base32
20822 "00rqz63bhh66q78l646q3w16gydygj8h4d8np0dpbifgzciak90b"))))
20823 (build-system emacs-build-system)
20824 (arguments
20825 `(#:tests? #t
20826 #:test-command '("make" "test")))
20827 (home-page "https://github.com/jackkamm/undo-propose-el")
20828 (synopsis "Simple and safe navigation of @code{undo} history")
20829 (description "This package permits navigation of @code{undo} history in a
20830 temporary buffer, which is read-only save for @code{undo} commands, and
20831 subsequent committal of a chain of @code{undo} commands as a single edit in
20832 the @code{undo} history.")
20833 (license license:gpl3+))))
20834
20835 (define-public emacs-elisp-docstring-mode
20836 (let ((commit "f512e509dd690f65133e55563ebbfd2dede5034f")
20837 (version "0.0.1")
20838 (revision "1"))
20839 (package
20840 (name "emacs-elisp-docstring-mode")
20841 (version (git-version version revision commit))
20842 (source
20843 (origin
20844 (method git-fetch)
20845 (uri (git-reference
20846 (url "https://github.com/Fuco1/elisp-docstring-mode")
20847 (commit commit)))
20848 (file-name (git-file-name name version))
20849 (sha256
20850 (base32
20851 "0al8m75p359h4n82rf0dsl22qfdg9cwwywn5pn7x6gb96c7qrqaa"))))
20852 (build-system emacs-build-system)
20853 (home-page "https://github.com/Fuco1/elisp-docstring-mode")
20854 (synopsis "Major mode for editing Emacs Lisp docstrings")
20855 (description "This package provides font lock and automatic escaping and
20856 unescaping of quotes.")
20857 (license license:gpl3+))))
20858
20859 (define-public emacs-vimrc-mode
20860 (let ((commit "13bc150a870d5d4a95f1111e4740e2b22813c30e")
20861 (version "0.3.1")
20862 (revision "1"))
20863 (package
20864 (name "emacs-vimrc-mode")
20865 (version (git-version version revision commit))
20866 (source
20867 (origin
20868 (method git-fetch)
20869 (uri (git-reference
20870 (url "https://github.com/mcandre/vimrc-mode")
20871 (commit commit)))
20872 (file-name (git-file-name name version))
20873 (sha256
20874 (base32
20875 "0026dqs3hwygk2k2xfra90w5sfnxrfj7l69jz7sq5glavbf340pk"))))
20876 (build-system emacs-build-system)
20877 (home-page "https://github.com/mcandre/vimrc-mode")
20878 (synopsis "Major mode for Vimscript")
20879 (description "This package provides font lock and @code{beginning-} and
20880 @code{end-of-defun} functions for Vimscript files.")
20881 (license license:gpl3+))))
20882
20883 (define-public emacs-flycheck-elm
20884 (let ((revision "0")
20885 (commit "1b60050efd4729bfba548f3e5adbcb58436667cb"))
20886 (package
20887 (name "emacs-flycheck-elm")
20888 (version (git-version "0" revision commit))
20889 (source
20890 (origin
20891 (method git-fetch)
20892 (uri
20893 (git-reference
20894 (url "https://github.com/bsermons/flycheck-elm")
20895 (commit commit)))
20896 (file-name (git-file-name name version))
20897 (sha256
20898 (base32 "1kjms9d2c98ffd1qxs879qhg0n4jzic0r5kni9y4gz3v09ww8zms"))))
20899 (build-system emacs-build-system)
20900 (propagated-inputs
20901 `(("emacs-flycheck" ,emacs-flycheck)
20902 ("emacs-let-alist" ,emacs-let-alist)))
20903 (home-page "https://github.com/bsermons/flycheck-elm")
20904 (synopsis "Flycheck support for the Elm language")
20905 (description "Flycheck Elm adds Flycheck support for Elm language.")
20906 (license license:gpl3+))))
20907
20908 (define-public emacs-flycheck-haskell
20909 (let ((commit "32ddff87165a7d3a35e7318bee997b5b4bd41278")
20910 (revision "2"))
20911 (package
20912 (name "emacs-flycheck-haskell")
20913 (version (git-version "0.8" revision commit))
20914 (source
20915 (origin
20916 (method git-fetch)
20917 (uri (git-reference
20918 (url "https://github.com/flycheck/flycheck-haskell")
20919 (commit commit)))
20920 (file-name (git-file-name name version))
20921 (sha256
20922 (base32
20923 "10pgsbagq6qj4mshq5sypv0q0khck92b30sc793b4g1pfpsxvgjn"))))
20924 (build-system emacs-build-system)
20925 (propagated-inputs
20926 `(("emacs-dash" ,emacs-dash)
20927 ("emacs-flycheck" ,emacs-flycheck)
20928 ("emacs-haskell-mode" ,emacs-haskell-mode)
20929 ("emacs-let-alist" ,emacs-let-alist)))
20930 (arguments
20931 `(#:include '("\\.el$" "\\.hs$")))
20932 (home-page "https://github.com/flycheck/flycheck-haskell")
20933 (synopsis "Flycheck for Haskell")
20934 (description "This package configures syntax-checking for Haskell
20935 buffers.")
20936 (license license:gpl3+))))
20937
20938 (define-public emacs-js2-refactor-el
20939 (let ((commit "d4c40b5fc86d3edd7c6a7d83ac86483ee1cb7a28")
20940 (revision "2"))
20941 (package
20942 (name "emacs-js2-refactor-el")
20943 (version (git-version "0.9.0" revision commit))
20944 (source
20945 (origin
20946 (method git-fetch)
20947 (uri (git-reference
20948 (url "https://github.com/magnars/js2-refactor.el")
20949 (commit commit)))
20950 (file-name (git-file-name name version))
20951 (sha256
20952 (base32
20953 "08b25y3raz0p98zxk9xdd8nj9shqd6mzrqhbq1gg4cwsmi7h7ly1"))))
20954 (build-system emacs-build-system)
20955 (propagated-inputs
20956 `(("emacs-dash" ,emacs-dash)
20957 ("emacs-s" ,emacs-s)
20958 ("emacs-js2-mode" ,emacs-js2-mode)
20959 ("emacs-yasnippet" ,emacs-yasnippet)
20960 ("emacs-multiple-cursors" ,emacs-multiple-cursors)))
20961 (native-inputs
20962 `(("emacs-buttercup" ,emacs-buttercup)
20963 ("emacs-espuds" ,emacs-espuds)))
20964 (home-page "https://github.com/magnars/js2-refactor.el")
20965 (synopsis "JavaScript refactoring in Emacs")
20966 (description "This package provides various refactoring functions for
20967 JavaScript.")
20968 (license license:gpl3+))))
20969
20970 (define-public emacs-prettier
20971 (let ((commit "e9b73e81d3e1642aec682195f127a42dfb0b5774")
20972 (version "0.1.0")
20973 (revision "1"))
20974 (package
20975 (name "emacs-prettier")
20976 (version (git-version version revision commit))
20977 (source
20978 (origin
20979 (method git-fetch)
20980 (uri (git-reference
20981 (url "https://github.com/prettier/prettier-emacs")
20982 (commit commit)))
20983 (file-name (git-file-name name version))
20984 (sha256
20985 (base32
20986 "0hj4fv3fgc60i6jrsx4a81s5c9fsxxafhhs3q2q1dypsscjci9ph"))))
20987 (build-system emacs-build-system)
20988 (home-page "https://github.com/prettier/prettier-emacs")
20989 (synopsis "Automatic formatting of JavaScript code")
20990 (description "This package integrates Prettier with Emacs, and
20991 provides a minor mode that autoformats the buffer upon saving.")
20992 (license license:expat))))
20993
20994 (define-public emacs-fish-mode
20995 (package
20996 (name "emacs-fish-mode")
20997 (version "0.1.4")
20998 (source
20999 (origin
21000 (method git-fetch)
21001 (uri (git-reference
21002 (url "https://github.com/wwwjfy/emacs-fish")
21003 (commit version)))
21004 (file-name (git-file-name name version))
21005 (sha256
21006 (base32
21007 "0a74ghmjjrxfdhk4mvq6lar4w6l6lc4iilabs99smqr2fn5rsslq"))))
21008 (build-system emacs-build-system)
21009 (home-page "https://github.com/wwwjfy/emacs-fish")
21010 (synopsis "Major mode for Fish shell scripts")
21011 (description "This package provides syntax highlighting and indentation
21012 functions for Fish shell scripts.")
21013 (license license:gpl3+)))
21014
21015 (define-public emacs-eshell-up
21016 (let ((commit "9c100bae5c3020e8d9307e4332d3b64e7dc28519")
21017 (version "0.0.3")
21018 (revision "12"))
21019 (package
21020 (name "emacs-eshell-up")
21021 (version (git-version version revision commit))
21022 (source
21023 (origin
21024 (method git-fetch)
21025 (uri (git-reference
21026 (url "https://github.com/peterwvj/eshell-up")
21027 (commit commit)))
21028 (file-name (git-file-name name version))
21029 (sha256
21030 (base32
21031 "00zdbcncjabgj5mp47l1chymx5na18v2g4kj730dgmj3rnl3iz2q"))))
21032 (build-system emacs-build-system)
21033 (home-page "https://github.com/peterwvj/eshell-up")
21034 (synopsis "Quickly go to a parent directory in @code{Eshell}")
21035 (description "This package provides quick navigation to a specific
21036 parent directory using @code{Eshell}.")
21037 (license license:gpl3+))))
21038
21039 (define-public emacs-tco-el
21040 (let ((commit "482db5313f090b17ed22ccd856f0e141dc75afe6")
21041 (revision "1"))
21042 (package
21043 (name "emacs-tco-el")
21044 (version (git-version "0.3" revision commit))
21045 (source
21046 (origin
21047 (method git-fetch)
21048 (uri (git-reference
21049 (url "https://github.com/Wilfred/tco.el")
21050 (commit commit)))
21051 (file-name (git-file-name name version))
21052 (sha256
21053 (base32
21054 "1z7xkbrqznk6ni687qqknp8labcyhl8y6576hjfri89fn21385y9"))))
21055 (build-system emacs-build-system)
21056 (propagated-inputs
21057 `(("emacs-dash" ,emacs-dash)))
21058 (native-inputs
21059 `(("emacs-ert-runner" ,emacs-ert-runner)
21060 ("emacs-undercover" ,emacs-undercover)))
21061 (arguments
21062 `(#:tests? #t
21063 #:test-command '("ert-runner")))
21064 (home-page "https://github.com/Wilfred/tco.el")
21065 (synopsis "Tail-call optimization for Emacs Lisp")
21066 (description "This package provides tail-call optimization for Emacs
21067 Lisp functions that call themselves in tail position.")
21068 (license license:gpl3+))))
21069
21070 (define-public emacs-equake
21071 (let ((commit "7eddc025ee61b83029363e22219af228b8c20681")
21072 (revision "2"))
21073 (package
21074 (name "emacs-equake")
21075 (version (git-version "0.85" revision commit))
21076 (source
21077 (origin
21078 (method git-fetch)
21079 (uri (git-reference
21080 (url "https://gitlab.com/emacsomancer/equake/")
21081 (commit commit)))
21082 (file-name (git-file-name name version))
21083 (sha256
21084 (base32
21085 "1c55pbqak3d02sw6z1139baxzy401b90g0gxzcc3j6sgplz6sc6w"))))
21086 (build-system emacs-build-system)
21087 (propagated-inputs
21088 `(("emacs-dash" ,emacs-dash)
21089 ("emacs-tco-el" ,emacs-tco-el)))
21090 (home-page "https://gitlab.com/emacsomancer/equake/")
21091 (synopsis "Drop-down console for @code{Eshell} and terminal emulators")
21092 (description "This package provides a Quake-style drop-down console
21093 compatible with Emacs' shell modes.")
21094 (license license:gpl3+))))
21095
21096 (define-public emacs-vdiff
21097 (let ((commit "09e15fc932bfd2febe1d4a65780a532394562b07")
21098 (revision "1"))
21099 (package
21100 (name "emacs-vdiff")
21101 (version (git-version "0.2.3" revision commit))
21102 (source
21103 (origin
21104 (method git-fetch)
21105 (uri (git-reference
21106 (url "https://github.com/justbur/emacs-vdiff")
21107 (commit commit)))
21108 (file-name (git-file-name name version))
21109 (sha256
21110 (base32
21111 "1gvqi5l4zs872nn4pmj603aza09d81qad2rgijzv268lif8z34db"))))
21112 (build-system emacs-build-system)
21113 (propagated-inputs
21114 `(("emacs-hydra" ,emacs-hydra)))
21115 (arguments
21116 `(#:tests? #t
21117 #:test-command '("emacs" "-Q" "-batch" "-L" "."
21118 "-l" "vdiff-test.el"
21119 "-f" "ert-run-tests-batch-and-exit")))
21120 (home-page "https://github.com/justbur/emacs-vdiff/")
21121 (synopsis "Frontend for diffing based on vimdiff")
21122 (description "This package permits comparisons of two or three buffers
21123 based on diff output.")
21124 (license license:gpl3+))))
21125
21126 (define-public emacs-vdiff-magit
21127 ;; Need to use a more recent commit than the latest release version because
21128 ;; of Magit and Transient
21129 (let ((commit "b100d126c69e5c26a61ae05aa1778bcc4302b597")
21130 (version "0.3.2")
21131 (revision "8"))
21132 (package
21133 (name "emacs-vdiff-magit")
21134 (version (git-version version revision commit))
21135 (source
21136 (origin
21137 (method git-fetch)
21138 (uri (git-reference
21139 (url "https://github.com/justbur/emacs-vdiff-magit/")
21140 (commit commit)))
21141 (file-name (git-file-name name version))
21142 (sha256
21143 (base32
21144 "16cjmrzflf2i1w01973sl944xrfanakba8sb4dpwi79d92xp03xy"))))
21145 (build-system emacs-build-system)
21146 (propagated-inputs
21147 `(("emacs-vdiff" ,emacs-vdiff)
21148 ("emacs-magit" ,emacs-magit)
21149 ("emacs-transient" ,emacs-transient)))
21150 (home-page "https://github.com/justbur/emacs-vdiff-magit/")
21151 (synopsis "Frontend for diffing based on vimdiff")
21152 (description "This package permits comparisons of two or three buffers
21153 based on diff output.")
21154 (license license:gpl3+))))
21155
21156 (define-public emacs-all-the-icons-dired
21157 (let ((commit "980b7747d6c4a7992a1ec56afad908956db0a519")
21158 (version "1.0")
21159 (revision "1"))
21160 (package
21161 (name "emacs-all-the-icons-dired")
21162 (version (git-version version revision commit))
21163 (source
21164 (origin
21165 (method git-fetch)
21166 (uri (git-reference
21167 (url "https://github.com/jtbm37/all-the-icons-dired/")
21168 (commit commit)))
21169 (file-name (git-file-name name version))
21170 (sha256
21171 (base32
21172 "1pvbgyxfj4j205nj1r02045f1y4wgavdsk7f45hxkkhms1rj8jyy"))))
21173 (build-system emacs-build-system)
21174 (propagated-inputs
21175 `(("emacs-all-the-icons" ,emacs-all-the-icons)))
21176 (home-page "https://github.com/jtbm37/all-the-icons-dired/")
21177 (synopsis "Show icons for each file in @code{dired-mode}")
21178 (description "This package allows icons from @file{all-the-icons.el} to
21179 be used in @code{dired-mode}.")
21180 (license license:gpl3+))))
21181
21182 (define-public emacs-exwm-edit
21183 (let ((commit "e1291e311840f1049106fe98cec032a1c75efd2b")
21184 (version "0.0.1")
21185 (revision "3"))
21186 (package
21187 (name "emacs-exwm-edit")
21188 (version (git-version version revision commit))
21189 (source
21190 (origin
21191 (method git-fetch)
21192 (uri (git-reference
21193 (url "https://github.com/agzam/exwm-edit/")
21194 (commit commit)))
21195 (file-name (git-file-name name version))
21196 (sha256
21197 (base32
21198 "031cb8fvv5n30djr9lpl6vz3rl15zykfvjlgkjc8l33a3l5mw8j0"))))
21199 (build-system emacs-build-system)
21200 (propagated-inputs
21201 `(("emacs-exwm" ,emacs-exwm)))
21202 (home-page "https://github.com/agzam/exwm-edit/")
21203 (synopsis "Open temp buffers for editing text from EXWM buffers")
21204 (description "This package facilitates editing text from EXWM buffers by
21205 generating a temp buffer in which any useful Emacs utilities and modes can be
21206 invoked.")
21207 (license license:gpl3+))))
21208
21209 (define-public emacs-ert-async
21210 (package
21211 (name "emacs-ert-async")
21212 (version "0.1.2")
21213 (source
21214 (origin
21215 (method git-fetch)
21216 (uri (git-reference
21217 (url "https://github.com/rejeep/ert-async.el")
21218 (commit (string-append "v" version))))
21219 (file-name (git-file-name name version))
21220 (sha256
21221 (base32
21222 "0hn9i405nfhjd1h9vnwj43nxbbz00khrwkjq0acfyxjaz1shfac9"))))
21223 (build-system emacs-build-system)
21224 (home-page "https://github.com/rejeep/ert-async.el")
21225 (synopsis "Async support for ERT")
21226 (description "This package allows ERT to work with asynchronous tests.")
21227 (license license:gpl3+)))
21228
21229 (define-public emacs-prodigy-el
21230 (let ((commit "0a12eec1f001a4eef16b2c0c524f02f2647a4ff1")
21231 (revision "2"))
21232 (package
21233 (name "emacs-prodigy-el")
21234 (version (git-version "0.7.0" revision commit))
21235 (source
21236 (origin
21237 (method git-fetch)
21238 (uri (git-reference
21239 (url "https://github.com/rejeep/prodigy.el")
21240 (commit commit)))
21241 (file-name (git-file-name name version))
21242 (sha256
21243 (base32
21244 "02kysq57kqzg0zkhaf302ada9cp9spgp71z8vbdq4c7dl6x75h4g"))))
21245 (build-system emacs-build-system)
21246 (propagated-inputs
21247 `(("emacs-dash" ,emacs-dash)
21248 ("emacs-s" ,emacs-s)
21249 ("emacs-f" ,emacs-f)))
21250 (native-inputs
21251 `(("emacs-el-mock" ,emacs-el-mock)
21252 ("emacs-ert-async" ,emacs-ert-async)))
21253 (home-page "https://github.com/rejeep/prodigy.el")
21254 (synopsis "Manage external services from within Emacs")
21255 (description "This package provides a GUI for defining and monitoring services.")
21256 (license license:gpl3+))))
21257
21258 (define-public emacs-web-server
21259 (package
21260 (name "emacs-web-server")
21261 (version "0.1.2")
21262 (source
21263 (origin
21264 (method url-fetch)
21265 (uri (string-append "https://elpa.gnu.org/packages/"
21266 "web-server-" version ".tar"))
21267 (sha256
21268 (base32 "10lcsl4dg2yr9zjd99gq9jz150wvvh6r5y9pd88l8y9vz16f2lim"))))
21269 (build-system emacs-build-system)
21270 (home-page "https://github.com/eschulte/emacs-web-server/")
21271 (synopsis "Web server with handlers in Emacs Lisp")
21272 (description "This package supports HTTP GET and POST requests with
21273 url-encoded parameters, as well as web sockets.")
21274 (license license:gpl3+)))
21275
21276 (define-public emacs-markdown-preview-mode
21277 (package
21278 (name "emacs-markdown-preview-mode")
21279 (version "0.9.2")
21280 (source
21281 (origin
21282 (method git-fetch)
21283 (uri (git-reference
21284 (url "https://github.com/ancane/markdown-preview-mode")
21285 (commit (string-append "v" version))))
21286 (file-name (git-file-name name version))
21287 (sha256
21288 (base32
21289 "1d1id99gagymvzdfa1mwqh8y3szm8ii47rpijkfi1qnifjg5jaq9"))))
21290 (build-system emacs-build-system)
21291 (propagated-inputs
21292 `(("emacs-markdown-mode" ,emacs-markdown-mode)
21293 ("emacs-websocket" ,emacs-websocket)
21294 ("emacs-web-server" ,emacs-web-server)))
21295 (arguments '(#:include '("\\.el$" "\\.html$")))
21296 (home-page "https://github.com/ancane/markdown-preview-mode")
21297 (synopsis "Preview Markdown files")
21298 (description "This package provides a minor mode for preview of Markdown
21299 files, and sends rendered Markdown to a web browser.")
21300 (license license:gpl3+)))
21301
21302 (define-public emacs-dotenv-mode
21303 (package
21304 (name "emacs-dotenv-mode")
21305 (version "0.2.4")
21306 (source
21307 (origin
21308 (method git-fetch)
21309 (uri (git-reference
21310 (url "https://github.com/preetpalS/emacs-dotenv-mode")
21311 (commit (string-append "v" version))))
21312 (file-name (git-file-name name version))
21313 (sha256
21314 (base32
21315 "1fplkhxnsgdrg10iqsmw162zny2idz4vvv35spsb9j0hsk8imclc"))))
21316 (build-system emacs-build-system)
21317 (home-page "https://github.com/preetpalS/emacs-dotenv-mode")
21318 (synopsis "Major mode for @file{.env} files")
21319 (description "This package provides syntax highlighting for @file{.env}
21320 files.")
21321 (license license:gpl3+)))
21322
21323 (define-public emacs-add-node-modules-path
21324 (let ((commit "f31e69ccb681f882aebb806ce6e9478e3ac39708")
21325 (version "1.2.0")
21326 (revision "10"))
21327 (package
21328 (name "emacs-add-node-modules-path")
21329 (version (git-version version revision commit))
21330 (source
21331 (origin
21332 (method git-fetch)
21333 (uri (git-reference
21334 (url "https://github.com/codesuki/add-node-modules-path")
21335 (commit commit)))
21336 (file-name (git-file-name name version))
21337 (sha256
21338 (base32
21339 "0p106bqmvdr8by5iv02bshm339qbrjcch2d15mrm4h3nav03v306"))))
21340 (build-system emacs-build-system)
21341 (home-page "https://github.com/codesuki/add-node-modules-path")
21342 (synopsis "Add @file{node_modules} to the buffer-local @file{exec-path}")
21343 (description "This package searches the parent directories of the
21344 current file for the project's @file{node_modules/.bin/} directory, allowing
21345 Emacs to find project-specific installations of packages.")
21346 (license license:expat))))
21347
21348 (define-public emacs-flow-minor-mode
21349 (let ((commit "d1b32a7dd0d33c6a00a106da5f4b2323602cbd3e")
21350 (version "0.3")
21351 (revision "4"))
21352 (package
21353 (name "emacs-flow-minor-mode")
21354 (version (git-version version revision commit))
21355 (source
21356 (origin
21357 (method git-fetch)
21358 (uri (git-reference
21359 (url "https://github.com/an-sh/flow-minor-mode")
21360 (commit commit)))
21361 (file-name (git-file-name name version))
21362 (sha256
21363 (base32
21364 "169r4ib9qg9q6fm3p0p23qs1qx4pa9pg1qvyq4ysr85i7kwygppl"))))
21365 (build-system emacs-build-system)
21366 (home-page "https://github.com/an-sh/flow-minor-mode")
21367 (synopsis "Minor mode for JavaScript Flow files")
21368 (description "This package integrates Flow with Emacs, allowing for
21369 definition-jumping and type-checking on demand.")
21370 (license license:bsd-3))))
21371
21372 (define-public emacs-rjsx-mode
21373 (let ((commit "0e7fa6b4facdec4f85a7a8865bdf59dfd57217b5")
21374 (revision "2"))
21375 (package
21376 (name "emacs-rjsx-mode")
21377 (version (git-version "0.4" revision commit))
21378 (source
21379 (origin
21380 (method git-fetch)
21381 (uri (git-reference
21382 (url "https://github.com/felipeochoa/rjsx-mode")
21383 (commit commit)))
21384 (file-name (git-file-name name version))
21385 (sha256
21386 (base32
21387 "0s0871sx3ch09kgvbcp9na4zdrfrda62xjq8m9knbq5vnj8q8qpi"))))
21388 (build-system emacs-build-system)
21389 (propagated-inputs
21390 `(("emacs-js2-mode" ,emacs-js2-mode)))
21391 (arguments
21392 `(#:tests? #t
21393 #:test-command '("make" "test")))
21394 (home-page "https://github.com/felipeochoa/rjsx-mode")
21395 (synopsis "Major mode for JSX files")
21396 (description "This package extends the parser of @code{js2-mode} to
21397 support JSX syntax.")
21398 (license license:expat))))
21399
21400 (define-public emacs-origami-el
21401 (let ((commit "1f38085c8f9af7842765ed63f7d6dfe4dab59366")
21402 (version "1.0")
21403 (revision "1"))
21404 (package
21405 (name "emacs-origami-el")
21406 (version (git-version version revision commit))
21407 (source
21408 (origin
21409 (method git-fetch)
21410 (uri (git-reference
21411 (url "https://github.com/gregsexton/origami.el")
21412 (commit commit)))
21413 (file-name (git-file-name name version))
21414 (sha256
21415 (base32
21416 "0ha1qsz2p36pqa0sa2sp83lspbgx5lr7930qxnwd585liajzdd9x"))))
21417 (build-system emacs-build-system)
21418 (propagated-inputs
21419 `(("emacs-dash" ,emacs-dash)
21420 ("emacs-s" ,emacs-s)))
21421 (home-page "https://github.com/gregsexton/origami.el")
21422 (synopsis "Flexible text-folding")
21423 (description "This package provides a minor mode for collapsing and
21424 expanding regions of text without modifying the actual contents.")
21425 (license license:expat))))
21426
21427 (define-public emacs-peep-dired
21428 (let ((commit "c88a9a3050197840edfe145f11e0bb9488de32f4")
21429 (version "0")
21430 (revision "1"))
21431 (package
21432 (name "emacs-peep-dired")
21433 (version (git-version version revision commit))
21434 (source
21435 (origin
21436 (method git-fetch)
21437 (uri (git-reference
21438 (url "https://github.com/asok/peep-dired")
21439 (commit commit)))
21440 (file-name (git-file-name name version))
21441 (sha256
21442 (base32
21443 "1wy5qpnfri1gha2cnl6q20qar8dbl2mimpb43bnhmm2g3wgjyad6"))))
21444 (build-system emacs-build-system)
21445 (home-page "https://github.com/asok/peep-dired")
21446 (synopsis "Preview files in another window")
21447 (description "This package provides a minor mode that allows files to be
21448 previewed by scrolling up and down within a @code{dired} buffer.")
21449 (license license:gpl3+))))
21450
21451 (define-public emacs-counsel-etags
21452 (package
21453 (name "emacs-counsel-etags")
21454 (version "1.9.11")
21455 (source
21456 (origin
21457 (method git-fetch)
21458 (uri (git-reference
21459 (url "https://github.com/redguardtoo/counsel-etags")
21460 (commit version)))
21461 (file-name (git-file-name name version))
21462 (sha256
21463 (base32 "0h0br41vkrx9l7bqr55bafqd715drxxwm41qif6iffhgdpvf69ym"))))
21464 (build-system emacs-build-system)
21465 (propagated-inputs
21466 `(("emacs-counsel" ,emacs-counsel)))
21467 (arguments
21468 `(#:tests? #t
21469 #:test-command '("make" "test")))
21470 (home-page "https://github.com/redguardtoo/counsel-etags")
21471 (synopsis "Fast @code{Ctags}/@code{Etags} solution with @code{ivy-mode}")
21472 (description "This package uses @code{ivy-mode} to facilitate navigating
21473 and searching through @code{Ctags} files.")
21474 (license license:gpl3+)))
21475
21476 (define-public emacs-ivy-clipmenu
21477 (let ((commit "d2071f2c5043a05d610cd1952e84176ca78c31dc"))
21478 (package
21479 (name "emacs-ivy-clipmenu")
21480 (version (git-version "0.0.1" "1" commit))
21481 (source (origin
21482 (method git-fetch)
21483 (uri (git-reference
21484 (url "https://github.com/wpcarro/ivy-clipmenu.el")
21485 (commit commit)))
21486 (file-name (git-file-name name version))
21487 (sha256
21488 (base32
21489 "0npd8glzk5z4n7y9mzbsbzi0cf3by19fqcki052jr3dga363lds7"))))
21490 (propagated-inputs
21491 `(("emacs-f" ,emacs-f)
21492 ("emacs-ivy" ,emacs-ivy)))
21493 (build-system emacs-build-system)
21494 (home-page "https://github.com/wpcarro/ivy-clipmenu.el")
21495 (synopsis "Ivy integration with clipmenu")
21496 (description "Ivy integration with the clipboard manager, clipmenu.")
21497 (license license:expat))))
21498
21499 (define-public emacs-org-download
21500 (let ((commit "10c9d7c8eed928c88a896310c882e3af4d8d0f61")
21501 (revision "2"))
21502 (package
21503 (name "emacs-org-download")
21504 (version (git-version "0.1.0" revision commit))
21505 (source (origin
21506 (method git-fetch)
21507 (uri (git-reference
21508 (url "https://github.com/abo-abo/org-download")
21509 (commit commit)))
21510 (sha256
21511 (base32
21512 "0i8wlx1i7y1vn5lqwjifvymvszg28a07vwqcm4jslf1v2ajs1lsl"))
21513 (file-name (git-file-name name version))))
21514 (build-system emacs-build-system)
21515 (propagated-inputs
21516 `(("emacs-org" ,emacs-org)
21517 ("emacs-async" ,emacs-async)))
21518 (home-page "https://github.com/abo-abo/org-download")
21519 (synopsis "Facilitate moving images")
21520 (description "This package provides utilities for managing image files
21521 copied into @code{org-mode} buffers.")
21522 (license license:gpl3+))))
21523
21524 (define-public emacs-dash-docs
21525 (let ((commit "111fd9b97001f1ad887b45e5308a14ddd68ce70a")
21526 (revision "1"))
21527 (package
21528 (name "emacs-dash-docs")
21529 (version (git-version "1.4.0" revision commit))
21530 (source
21531 (origin
21532 (method git-fetch)
21533 (uri (git-reference
21534 (url "https://github.com/dash-docs-el/dash-docs")
21535 (commit commit)))
21536 (file-name (git-file-name name version))
21537 (sha256
21538 (base32
21539 "0sckb7z0ylflva212bns7iq9mfnffgjghi0qspsbfwra35zb9xng"))))
21540 (build-system emacs-build-system)
21541 (propagated-inputs
21542 `(("emacs-async" ,emacs-async)))
21543 (native-inputs
21544 `(("emacs-undercover" ,emacs-undercover)
21545 ("emacs-ert-runner" ,emacs-ert-runner)))
21546 (arguments
21547 `(#:tests? #t
21548 #:test-command '("ert-runner")
21549 #:phases
21550 ;; this test requires network access, so remove it
21551 (modify-phases %standard-phases
21552 (add-before 'check 'make-tests-writable
21553 (lambda _
21554 (make-file-writable "test/dash-docs-test.el")
21555 #t))
21556 (add-before 'check 'delete-test
21557 (lambda _
21558 (emacs-batch-edit-file "test/dash-docs-test.el"
21559 `(progn (progn
21560 (goto-char (point-min))
21561 (re-search-forward "ert-deftest dash-docs-official-docsets-test")
21562 (beginning-of-line)
21563 (kill-sexp))
21564 (basic-save-buffer)))
21565 #t)))))
21566 (home-page "https://github.com/dash-docs-el/dash-docs")
21567 (synopsis "Offline documentation browser for APIs using Dash docsets")
21568 (description "This package exposes functionality to work with Dash docsets.")
21569 (license license:gpl3+))))
21570
21571 (define-public emacs-helm-dash
21572 (let ((commit "7f853bd34da666f0e9a883011c80f451b06f6c59")
21573 (revision "2"))
21574 (package
21575 (name "emacs-helm-dash")
21576 (version (git-version "1.3.0" revision commit))
21577 (source
21578 (origin
21579 (method git-fetch)
21580 (uri (git-reference
21581 (url "https://github.com/areina/helm-dash")
21582 (commit commit)))
21583 (file-name (git-file-name name version))
21584 (sha256
21585 (base32
21586 "0r192vzry1212ihabg9pgw9xar8zdgnbgy0vsgvfm8s5wj6ny7jp"))))
21587 (build-system emacs-build-system)
21588 (propagated-inputs
21589 `(("emacs-helm" ,emacs-helm)
21590 ("emacs-dash-docs" ,emacs-dash-docs)))
21591 (home-page "https://github.com/areina/helm-dash")
21592 (synopsis "Offline documentation browser for APIs using Dash docsets")
21593 (description "This package uses Helm to install and navigate through
21594 Dash docsets.")
21595 (license license:gpl3+))))
21596
21597 (define-public emacs-counsel-dash
21598 (let ((commit "370d5f6f14b5294d0eb717f7b2a6a8e93df1ed24")
21599 (revision "4"))
21600 (package
21601 (name "emacs-counsel-dash")
21602 (version (git-version "0.1.3" revision commit))
21603 (source
21604 (origin
21605 (method git-fetch)
21606 (uri (git-reference
21607 (url "https://github.com/dash-docs-el/counsel-dash")
21608 (commit commit)))
21609 (file-name (git-file-name name version))
21610 (sha256
21611 (base32 "1fn38vbz46ijarjvhgw7iy7dj9s2a2miy95fyy9f8b5sj8nrdfvz"))))
21612 (build-system emacs-build-system)
21613 (propagated-inputs
21614 `(("emacs-counsel" ,emacs-counsel)
21615 ("emacs-dash-docs" ,emacs-dash-docs)))
21616 (home-page "https://github.com/dash-docs-el/counsel-dash")
21617 (synopsis "Offline documentation browser for APIs using Dash docsets")
21618 (description "This package uses @code{ivy-mode} to install and navigate
21619 through Dash docsets.")
21620 (license license:expat))))
21621
21622 (define-public emacs-calibredb
21623 (package
21624 (name "emacs-calibredb")
21625 (version "2.6.0")
21626 (source
21627 (origin
21628 (method git-fetch)
21629 (uri (git-reference
21630 (url "https://github.com/chenyanming/calibredb.el")
21631 (commit version)))
21632 (file-name (git-file-name name version))
21633 (sha256
21634 (base32 "132afbbh4km2cbll46i6bpksvin0ncgfy782g4nkfjmwjaqh3d5l"))))
21635 (build-system emacs-build-system)
21636 (propagated-inputs
21637 `(("emacs-dash" ,emacs-dash)
21638 ("emacs-s" ,emacs-s)
21639 ("emacs-transient" ,emacs-transient)))
21640 (home-page "https://github.com/chenyanming/calibredb.el")
21641 (synopsis "Yet another calibre client for Emacs")
21642 (description "This package integrates calibre into Emacs.
21643 @enumerate
21644 @item Powerful ebook dashboard.
21645 @item Manage ebooks, actually not only ebooks!
21646 @item Manage Ebook libraries.
21647 @item Another bookmarks solution, by setting the tags and comments.
21648 @item Quick search, filter, make actions on items with ivy and helm.
21649 @item Org-ref support.
21650 @end enumerate")
21651 (license license:gpl3)))
21652
21653 (define-public emacs-el-patch
21654 (package
21655 (name "emacs-el-patch")
21656 (version "2.2.3")
21657 (source
21658 (origin
21659 (method git-fetch)
21660 (uri (git-reference
21661 (url "https://github.com/raxod502/el-patch")
21662 (commit version)))
21663 (file-name (git-file-name name version))
21664 (sha256
21665 (base32
21666 "18djslz177q6q33y82zmg2v6n9236a76kiqfvxdk4vbqzjbq82f7"))))
21667 (build-system emacs-build-system)
21668 (home-page "https://github.com/raxod502/el-patch")
21669 (synopsis "Future-proof your Emacs customizations")
21670 (description "This package allows for an alternate definition of an Elisp
21671 function to be specified and for any differences from the original definition
21672 to be examined using Ediff.")
21673 (license license:expat)))
21674
21675 (define-public emacs-info-plus
21676 (let ((commit "4a6b93c170169594e1e8ea60cd799a1a88a969da")
21677 (revision "2"))
21678 (package
21679 (name "emacs-info-plus")
21680 (version (git-version "0" revision commit))
21681 (source
21682 (origin
21683 (method git-fetch)
21684 (uri (git-reference
21685 (url "https://github.com/emacsmirror/info-plus")
21686 (commit commit)))
21687 (file-name (git-file-name name version))
21688 (sha256
21689 (base32
21690 "1xzmx7m1qbl3b1x6yq1db1a108xqaa64ljfv1hdw763zmy4kc6m0"))))
21691 (build-system emacs-build-system)
21692 (home-page "https://github.com/emacsmirror/info-plus")
21693 (synopsis "Extensions to @file{info.el}")
21694 (description "This package extends Emacs' @file{info.el} by allowing
21695 outline-enabled table of contents, additional metadata association for Info
21696 nodes, and more.")
21697 (license license:gpl2+))))
21698
21699 (define-public emacs-eval-sexp-fu-el
21700 (package
21701 (name "emacs-eval-sexp-fu-el")
21702 (version "0.5.0")
21703 (source
21704 (origin
21705 (method git-fetch)
21706 (uri (git-reference
21707 (url "https://github.com/hchbaw/eval-sexp-fu.el")
21708 (commit (string-append "v" version))))
21709 (file-name (git-file-name name version))
21710 (sha256
21711 (base32
21712 "01mpnpgmlnfbi2yw9dxz5iw72mw3lk223bj172i4fnx3xdrrxbij"))))
21713 (build-system emacs-build-system)
21714 (home-page "https://github.com/hchbaw/eval-sexp-fu.el")
21715 (synopsis "Enhancements for evaluating s-expressions")
21716 (description "This package provides provides variants of
21717 @code{eval-last-sexp} that work on the containing list or s-expression, as
21718 well as an option for visually flashing evaluated s-expressions.")
21719 (license license:gpl3+)))
21720
21721 (define-public emacs-counsel-tramp
21722 (package
21723 (name "emacs-counsel-tramp")
21724 (version "0.7.5")
21725 (source
21726 (origin
21727 (method git-fetch)
21728 (uri (git-reference
21729 (url "https://github.com/masasam/emacs-counsel-tramp")
21730 (commit version)))
21731 (file-name (git-file-name name version))
21732 (sha256
21733 (base32 "18qlwyjqxap2qfbz14ma6yqp4p3v4q2y8idc355s4szjdd2as2lr"))))
21734 (build-system emacs-build-system)
21735 (propagated-inputs
21736 `(("emacs-counsel" ,emacs-counsel)))
21737 (home-page "https://github.com/masasam/emacs-counsel-tramp")
21738 (synopsis "Ivy interface for TRAMP")
21739 (description
21740 "This package allows @code{ivy-mode} to display and filter SSH servers.")
21741 (license license:gpl3+)))
21742
21743 (define-public emacs-tramp
21744 (package
21745 (name "emacs-tramp")
21746 (version "2.4.4.2")
21747 (source
21748 (origin
21749 (method url-fetch)
21750 (uri (string-append "https://elpa.gnu.org/packages/"
21751 "tramp-" version ".tar"))
21752 (sha256
21753 (base32 "16c8x5d803hjql0z88lidyx3zrhxlpjphdpzn3ppzz3wrsxsv8rf"))))
21754 (build-system emacs-build-system)
21755 (arguments
21756 `(#:emacs ,emacs ;need D-Bus
21757 #:phases
21758 (modify-phases %standard-phases
21759 ;; All but one "/bin/" directory refer to remote
21760 ;; environments, which may not be Guix. Do not patch them
21761 ;; blindly. However, local encoding shell has to be patched.
21762 (replace 'patch-el-files
21763 (lambda* (#:key inputs #:allow-other-keys)
21764 (let ((sh (assoc-ref inputs "bash"))
21765 (file "tramp.el"))
21766 (emacs-substitute-variables file
21767 ("tramp-encoding-shell" (string-append sh "/bin/sh"))))
21768 #t)))))
21769 (inputs
21770 `(("bash" ,bash)))
21771 (home-page "https://savannah.gnu.org/projects/tramp")
21772 (synopsis "Remote file editing package for Emacs")
21773 (description
21774 "Tramp stands for ``Transparent Remote (file) Access, Multiple
21775 Protocol''. This package provides remote file editing, using
21776 a combination of @command{rsh} and @command{rcp} or other work-alike
21777 programs, such as @command{ssh} and @command{scp}.")
21778 (license license:gpl3+)))
21779
21780 (define-public emacs-tramp-auto-auth
21781 (let ((commit "f15a12dfab651aff60f4a9d70f868030a12344ac"))
21782 (package
21783 (name "emacs-tramp-auto-auth")
21784 (version (git-version "20191027" "1" commit))
21785 (source
21786 (origin
21787 (method git-fetch)
21788 (uri (git-reference
21789 (url "https://github.com/oitofelix/tramp-auto-auth")
21790 (commit commit)))
21791 (file-name (git-file-name name version))
21792 (sha256
21793 (base32
21794 "09nkjgwppjfgv04q0gv468qihgx4y3p39lpwbd6vbh3wgbccas9k"))))
21795 (build-system emacs-build-system)
21796 (home-page "https://github.com/oitofelix/tramp-auto-auth")
21797 (synopsis "TRAMP automatic authentication library")
21798 (description "This package provides @code{tramp-auto-auth-mode} Emacs
21799 global minor mode whose purpose is to automatically feed TRAMP sub-processes
21800 with passwords for paths matching regexps.")
21801 (license license:gpl3+))))
21802
21803 (define-public emacs-eacl
21804 (package
21805 (name "emacs-eacl")
21806 (version "2.0.1")
21807 (source
21808 (origin
21809 (method git-fetch)
21810 (uri (git-reference
21811 (url "https://github.com/redguardtoo/eacl")
21812 (commit version)))
21813 (file-name (git-file-name name version))
21814 (sha256
21815 (base32
21816 "0ksn11sm3g1ja5lpjz3hrzzw8b480mfcb3q589m52qjgvvn5iyfv"))))
21817 (build-system emacs-build-system)
21818 (propagated-inputs
21819 `(("emacs-ivy" ,emacs-ivy)))
21820 (home-page "https://github.com/redguardtoo/eacl")
21821 (synopsis "Auto-complete lines by using @code{grep} on a project")
21822 (description "This package provides auto-completion commands for single
21823 and multiple lines of code in a project.")
21824 (license license:gpl3+)))
21825
21826 (define-public emacs-semantic-refactor
21827 ;; The last release, 0.5, was made on 2015-07-26 and there have been 47
21828 ;; commits since then.
21829 (let ((commit "6f2c97d17fb70f4ca2112f5a2b99a8ec162004f5"))
21830 (package
21831 (name "emacs-semantic-refactor")
21832 (version (git-version "0.5" "1" commit))
21833 (source
21834 (origin
21835 (method git-fetch)
21836 (uri (git-reference
21837 (url "https://github.com/tuhdo/semantic-refactor")
21838 (commit commit)))
21839 (file-name (git-file-name name version))
21840 (sha256
21841 (base32
21842 "1lyz3zjkx2csh0xdy1zpx8s32qp1p3sig57mwi9xhgpqjyf0axmb"))))
21843 (build-system emacs-build-system)
21844 (home-page "https://github.com/tuhdo/semantic-refactor")
21845 (synopsis "Refactoring tool for C/C++ and Lisp dialects")
21846 (description "This package provides a refactoring tool based on the
21847 Emacs Semantic parser framework. For C and C++ it supports operations such as:
21848
21849 @enumerate
21850 @item Generating class implementations
21851 @item Generating function prototypes
21852 @item Converting functions to function pointers
21853 @item Moving semantic units
21854 @item etc...
21855 @end enumerate
21856
21857 For Lisp dialects like Clojure, ELisp, and Scheme, it supports operations such
21858 as:
21859
21860 @enumerate
21861 @item Formatting the whole buffer
21862 @item Converting sexpressions to one or multiple lines
21863 @item etc...
21864 @end enumerate\n")
21865 (license license:gpl3+))))
21866
21867 (define-public emacs-nhexl-mode
21868 (package
21869 (name "emacs-nhexl-mode")
21870 (version "1.5")
21871 (source
21872 (origin
21873 (method url-fetch)
21874 (uri (string-append "https://elpa.gnu.org/packages/"
21875 "nhexl-mode-" version ".el"))
21876 (sha256
21877 (base32 "0qvxfg7sv4iqyjxzaim6b4v9k5hav36qd4vkf9jwzw6p5fri8w8d"))))
21878 (build-system emacs-build-system)
21879 (home-page "https://elpa.gnu.org/packages/nhexl-mode.html")
21880 (synopsis "Minor mode to edit files via hex-dump format")
21881 (description
21882 "This package implements NHexl mode, a minor mode for editing files
21883 in hex dump format. The mode command is called @command{nhexl-mode}.
21884
21885 This minor mode implements similar functionality to @command{hexl-mode},
21886 but using a different implementation technique, which makes it
21887 usable as a \"plain\" minor mode. It works on any buffer, and does
21888 not mess with the undo log or with the major mode.
21889
21890 It also comes with:
21891
21892 @itemize
21893 @item @command{nhexl-nibble-edit-mode}: a \"nibble editor\" minor mode, where
21894 the cursor pretends to advance by nibbles (4-bit) and the self-insertion keys
21895 (which only work for hex-digits) will only modify the nibble under point.
21896 @item @command{nhexl-overwrite-only-mode}: a minor mode to try and avoid
21897 moving text. In this minor mode, not only self-inserting keys overwrite
21898 existing text, but commands like `yank' and @command{kill-region} as well.
21899 @item It overrides @code{C-u} to use hexadecimal, so you can do @code{C-u a 4
21900 C-f} to advance by #xa4 characters.
21901 @end itemize")
21902 (license license:gpl3+)))
21903
21904 (define-public emacs-helm-wikipedia
21905 (let ((commit "126f044e0a0e1432e0791c33ce2a41875d704a9b"))
21906 (package
21907 (name "emacs-helm-wikipedia")
21908 (version (git-version "0.0.0" "1" commit))
21909 (home-page "https://github.com/emacs-helm/helm-wikipedia/")
21910 (source
21911 (origin
21912 (method git-fetch)
21913 (uri (git-reference
21914 (url home-page)
21915 (commit commit)))
21916 (file-name (git-file-name name version))
21917 (sha256
21918 (base32
21919 "148a5xsnbsiddhf9cl7yxdk41lrv38h0pip91kcflw9d7l0dp7pr"))))
21920 (build-system emacs-build-system)
21921 (inputs
21922 `(("helm" ,emacs-helm)))
21923 (synopsis "Search suggestions and article extracts from Wikipedia for Emacs")
21924 (description
21925 "This package provides an Emacs Helm interface for search suggestions
21926 and article extracts for Wikipedia.")
21927 (license license:gpl3+))))
21928
21929 (define-public emacs-webfeeder
21930 (package
21931 (name "emacs-webfeeder")
21932 (version "1.0.0")
21933 (source
21934 (origin
21935 (method url-fetch)
21936 (uri (string-append
21937 "https://elpa.gnu.org/packages/webfeeder-"
21938 version
21939 ".tar"))
21940 (sha256
21941 (base32
21942 "06y5vxw9m6pmbrzb8v2i3w9dnhgqxz06vyx1knmgi9cczlrj4a64"))))
21943 (build-system emacs-build-system)
21944 (home-page "https://gitlab.com/Ambrevar/emacs-webfeeder")
21945 (synopsis "Build RSS and Atom webfeeds from HTML files")
21946 (description
21947 "Webfeeder is an Emacs library to generate RSS and Atom feeds from HTML
21948 files. The various elements of the HTML input are parsed with customizable
21949 functions (e.g. @code{webfeeder-title-function}).")
21950 (license license:gpl3+)))
21951
21952 (define-public emacs-evil-numbers
21953 (let ((commit "6ea1c8c3a9b37bed63d48f1128e9a4910e68187e"))
21954 (package
21955 (name "emacs-evil-numbers")
21956 (version (git-version "0.4" "1" commit))
21957 (source (origin
21958 (method git-fetch)
21959 (uri (git-reference
21960 (url "https://github.com/dieggsy/evil-numbers")
21961 (commit commit)))
21962 (file-name (git-file-name name version))
21963 (sha256
21964 (base32
21965 "1aq95hj8x13py0pwsnc6wvd8cc5yv5qin8ym9js42y5966vwj4np"))))
21966 (build-system emacs-build-system)
21967 (home-page "https://github.com/dieggsy/evil-numbers")
21968 (synopsis "Increment and decrement numbers in Emacs")
21969 (description "This package increments and decrements binary, octal,
21970 decimal and hex literals. It works like C-a/C-x in Vim, i.e. searches for
21971 number up to EOL and then increments or decrements and keeps zero padding up
21972 (unlike in Vim). When a region is active, as in Evil's visual mode, all the
21973 numbers within that region will be incremented/decremented (unlike in Vim).
21974
21975 It is a fork of https://github.com/cofi/evil-numbers, which is unmaintained.")
21976 (license license:gpl3+))))
21977
21978 (define-public emacs-rotate-text
21979 (package
21980 (name "emacs-rotate-text")
21981 (version "0.1")
21982 (source (origin
21983 (method git-fetch)
21984 (uri (git-reference
21985 (url "https://github.com/nschum/rotate-text.el")
21986 (commit version)))
21987 (file-name (git-file-name name version))
21988 (sha256
21989 (base32
21990 "1cgxv4aibkvv6lnssynn0438a615fz3zq8hg9sb0lhfgsr99pxln"))))
21991 (build-system emacs-build-system)
21992 (home-page "https://nschum.de/src/emacs/rotate-text/")
21993 (synopsis "Cycle through words, symbols and patterns in Emacs")
21994 (description "@code{rotate-text} allows you rotate to commonly
21995 interchanged text with a single keystroke. For example, you can toggle
21996 between \"frame-width\" and \"frame-height\", between \"public\",
21997 \"protected\" and \"private\" and between \"variable1\", \"variable2\" through
21998 \"variableN\".")
21999 (license license:gpl2+)))
22000
22001 (define-public emacs-ediprolog
22002 (package
22003 (name "emacs-ediprolog")
22004 (version "2.1")
22005 (source
22006 (origin
22007 (method url-fetch)
22008 (uri (string-append
22009 "https://elpa.gnu.org/packages/ediprolog-"
22010 version
22011 ".el"))
22012 (sha256
22013 (base32 "1piimsmzpirw8plrpy79xbpnvynzzhcxi31g6lg6is8gridiv3md"))))
22014 (build-system emacs-build-system)
22015 (home-page "https://elpa.gnu.org/packages/ediprolog.html")
22016 (synopsis "Emacs Does Interactive Prolog")
22017 (description "This package provides a major mode that let the user
22018 interact with SWI-Prolog in all buffers. For instance, one can consult Prolog
22019 programs and evaluate embedded queries. This mode is focused on the command
22020 @code{ediprolog-dwim} (Do What I Mean) which is supposed to, depending on the
22021 context, carry out the appropriate action.")
22022 (license license:gpl3+)))
22023
22024 (define-public emacs-evil-cleverparens
22025 (let ((commit "8c45879d49bfa6d4e414b6c1df700a4a51cbb869")
22026 (revision "1"))
22027 (package
22028 (name "emacs-evil-cleverparens")
22029 (version (git-version "2017-07-17" revision commit))
22030 (source (origin
22031 (method git-fetch)
22032 (uri (git-reference
22033 (url "https://github.com/luxbock/evil-cleverparens")
22034 (commit commit)))
22035 (sha256 (base32 "0lhnybpnk4n2yhlcnj9zxn0vi5hpjfaqfhvyfy7ckzz74g8v7iyw"))
22036 (file-name (git-file-name name version))))
22037 (build-system emacs-build-system)
22038 (propagated-inputs
22039 `(("emacs-evil" ,emacs-evil)
22040 ("emacs-paredit" ,emacs-paredit)
22041 ("emacs-smartparens" ,emacs-smartparens)))
22042 (home-page "https://github.com/luxbock/evil-cleverparens")
22043 (synopsis "Emacs modal editing optimized for editing Lisp")
22044 (description "@code{evil-cleverparens} remaps Evil keybindings to allow
22045 modal editing with screwing up the structure of Lisp code. Alternatives for
22046 verb commands which would are normally destructive (such as deletion) are
22047 provided. Those alternative commands are and bound by default to their
22048 corresponding Evil keys.")
22049 (license license:expat))))
22050
22051 (define-public emacs-evil-traces
22052 (let ((commit "1931e3ea2c64b4aec393a9c25063c330deff55e3")
22053 (revision "2"))
22054 (package
22055 (name "emacs-evil-traces")
22056 (version (git-version "0.0.1" revision commit))
22057 (source (origin
22058 (method git-fetch)
22059 (uri (git-reference
22060 (url "https://github.com/mamapanda/evil-traces")
22061 (commit commit)))
22062 (file-name (git-file-name name version))
22063 (sha256
22064 (base32
22065 "12p9lfxscs182vbd4dy0m5gacs3d4kyprbz5yndpwvl8g2qsqplz"))))
22066 (build-system emacs-build-system)
22067 (propagated-inputs
22068 `(("emacs-evil" ,emacs-evil)))
22069 (arguments
22070 `(#:phases
22071 (modify-phases %standard-phases
22072 (add-after 'unpack 'set-shell
22073 ;; Setting the SHELL environment variable is required for the tests
22074 ;; to find sh.
22075 (lambda _
22076 (setenv "SHELL" (which "sh"))
22077 #t)))
22078 #:tests? #t
22079 #:test-command '("make" "test")))
22080 (home-page "https://github.com/mamapanda/evil-traces")
22081 (synopsis "Visual hints for @code{evil-ex}")
22082 (description "This package adds visual hints to certain @code{ex}
22083 commands in @code{evil-mode}.")
22084 (license license:gpl3+))))
22085
22086 (define-public emacs-evil-tmux-navigator
22087 (package
22088 (name "emacs-evil-tmux-navigator")
22089 (version "0.1.5")
22090 (source
22091 (origin
22092 (method git-fetch)
22093 (uri
22094 (git-reference
22095 (url "https://github.com/keith/evil-tmux-navigator")
22096 (commit version)))
22097 (file-name (git-file-name name version))
22098 (sha256
22099 (base32
22100 "1na44rbc03sr5b4z9pvnps6n4nmrqcz58nywix9825l74a419ijx"))))
22101 (propagated-inputs
22102 `(("emacs-evil" ,emacs-evil)))
22103 (build-system emacs-build-system)
22104 (home-page "https://github.com/keith/evil-tmux-navigator")
22105 (synopsis
22106 "Navigate seamlessly between emacs windows and tmux panes")
22107 (description
22108 "This package lets you use C-h, C-j, C-k and C-l to navigate between
22109 Emacs windows and tmux panes.")
22110 (license license:expat)))
22111
22112 (define-public emacs-xclip
22113 (package
22114 (name "emacs-xclip")
22115 (version "1.10")
22116 (source
22117 (origin
22118 (method url-fetch)
22119 (uri (string-append "https://elpa.gnu.org/packages/"
22120 "xclip-" version ".el"))
22121 (sha256
22122 (base32 "0i3i9kwfg8qmhcmqhhnrb1kljgwkccv63s9q1mjwqfjldyfh8j8i"))))
22123 (build-system emacs-build-system)
22124 (home-page "http://elpa.gnu.org/packages/xclip.html")
22125 (synopsis "Copy and paste GUI clipboard from Emacs in text terminal")
22126 (description
22127 "This package allows Emacs to copy to and paste from the GUI clipboard
22128 when running in text terminal.
22129
22130 It can use external command-line tools for that, e.g., @command{xclip} or
22131 @command{xsel}, which you may need to install in order for the package to
22132 work.")
22133 (license license:gpl3+)))
22134
22135 (define-public emacs-xterm-color
22136 (package
22137 (name "emacs-xterm-color")
22138 (version "1.9")
22139 (source (origin
22140 (method git-fetch)
22141 (uri (git-reference
22142 (url "https://github.com/atomontage/xterm-color")
22143 (commit version)))
22144 (file-name (git-file-name name version))
22145 (sha256
22146 (base32
22147 "0i9ivc5xhl5y5v0l18kbhfg8s2abb9zaimyx951b8bc0f5as68xm"))))
22148 (build-system emacs-build-system)
22149 (home-page "https://github.com/atomontage/xterm-color")
22150 (synopsis "ANSI & xterm-256 color text property translator for Emacs")
22151 (description "@code{xterm-color.el} is an ANSI control sequence to
22152 text-property translator.")
22153 (license license:bsd-2)))
22154
22155 (define-public emacs-org-noter
22156 (package
22157 (name "emacs-org-noter")
22158 (version "1.4.1")
22159 (source
22160 (origin
22161 (method git-fetch)
22162 (uri (git-reference
22163 (url "https://github.com/weirdNox/org-noter")
22164 (commit version)))
22165 (file-name (git-file-name name version))
22166 (sha256
22167 (base32
22168 "1vwfpdi7hfkxx4vi0cwg7rvqby3i0mymzdkyzrqzv30dazmcjpag"))))
22169 (build-system emacs-build-system)
22170 (propagated-inputs `(("emacs-org" ,emacs-org)))
22171 (home-page "https://github.com/weirdNox/org-noter")
22172 (synopsis "Synchronized, Org-mode, document annotator")
22173 (description
22174 "This package lets you create notes that are kept in sync when you
22175 scroll through the document, but that are external to it---the notes
22176 themselves live in an Org-mode file. As such, this leverages the power of
22177 Org-mode (the notes may have outlines, latex fragments, babel, etc...) while
22178 acting like notes that are made @emph{in} the document.")
22179 (license license:gpl3+)))
22180
22181 (define-public emacs-org-redmine
22182 (let ((commit "e77d013bc3784947c46a5c53f03cd7d3c68552fc"))
22183 (package
22184 (name "emacs-org-redmine")
22185 (version (git-version "0.1" "1" commit))
22186 (source (origin
22187 (method git-fetch)
22188 (uri (git-reference
22189 (url "https://github.com/gongo/org-redmine")
22190 (commit commit)))
22191 (file-name (git-file-name name version))
22192 (sha256
22193 (base32
22194 "06miv3mf2a39vkf6mmm5ssc47inqh7dq82khsyc03anz4d4lj822"))))
22195 (build-system emacs-build-system)
22196 (home-page "https://github.com/gongo/org-redmine/")
22197 (synopsis "Redmine tools using Emacs")
22198 (description "This program provides an Emacs client for Redmine.")
22199 (license license:gpl3+))))
22200
22201 (define-public emacs-multi-term
22202 ;; No upstream release. Extract version from main file.
22203 (let ((commit "017c77c550115936860e2ea71b88e585371475d5")
22204 (revision "0"))
22205 (package
22206 (name "emacs-multi-term")
22207 (version (git-version "1.5" revision commit))
22208 (source
22209 (origin
22210 (method git-fetch)
22211 (uri (git-reference
22212 (url "https://github.com/manateelazycat/multi-term")
22213 (commit commit)))
22214 (file-name (git-file-name name version))
22215 (sha256
22216 (base32 "043dqd8i8h6hbcg11rzprxin2yq5lb902zlrb7mxah44vyp8wrdi"))))
22217 (build-system emacs-build-system)
22218 (inputs
22219 `(("zsh" ,zsh)))
22220 (home-page "https://github.com/manateelazycat/multi-term")
22221 (synopsis "Manage multiple terminal buffers in Emacs")
22222 (description
22223 "This package enhances @code{term.el} with the following features:
22224
22225 @enumerate
22226 @item Functions to switch between multiple terminal buffers
22227 @item List of keys to be intercepted by @code{emacs-multi-term} instead of by
22228 the underlying terminal
22229 @item Kills the unused buffer left after exiting the terminal
22230 @item Kills the running sub-processes along with the terminal when killing the
22231 it forcibly
22232 @item Dedicated window for debugging program.
22233 @end enumerate")
22234 (license license:gpl3+))))
22235
22236 (define-public emacs-elpher
22237 (package
22238 (name "emacs-elpher")
22239 (version "2.10.2")
22240 (source
22241 (origin
22242 (method git-fetch)
22243 (uri (git-reference
22244 (url "git://thelambdalab.xyz/elpher.git")
22245 (commit (string-append "v" version))))
22246 (file-name (git-file-name name version))
22247 (sha256
22248 (base32 "0xqiisirpvw4ka9417pq4r73x937wl3qbf8cpn2i03akm8d58smd"))))
22249 (build-system emacs-build-system)
22250 (native-inputs
22251 `(("texinfo" ,texinfo)))
22252 (arguments
22253 `(#:phases
22254 (modify-phases %standard-phases
22255 (add-before 'install 'build-doc
22256 (lambda _
22257 (invoke "makeinfo" "elpher.texi"))))))
22258 (home-page "gopher://thelambdalab.xyz/1/projects/elpher/")
22259 (synopsis "Gopher client for Emacs")
22260 (description "Elpher is a full-featured gopher client for Emacs. Its
22261 features include intuitive keyboard and mouse-driven browsing, out-of-the-box
22262 compatibility with evil-mode, clickable web and gopher links in plain text,
22263 caching of visited sites, pleasant and configurable visualization of Gopher
22264 directories, direct visualisation of image files, jumping directly to links by
22265 name (with autocompletion), a simple bookmark management system and
22266 connections using TLS encryption.")
22267 (license license:gpl3+)))
22268
22269 (define-public emacs-zerodark-theme
22270 (package
22271 (name "emacs-zerodark-theme")
22272 (version "4.6")
22273 (source
22274 (origin
22275 (method git-fetch)
22276 (uri (git-reference
22277 (url "https://github.com/NicolasPetton/zerodark-theme")
22278 (commit version)))
22279 (file-name (git-file-name name version))
22280 (sha256
22281 (base32
22282 "0pfyd1iqs7l2ngwgvj9n0r9k1px7yl16h8n502xdyf0pprxcs4p6"))))
22283 (build-system emacs-build-system)
22284 (propagated-inputs
22285 `(("emacs-flycheck" ,emacs-flycheck)
22286 ("emacs-all-the-icons" ,emacs-all-the-icons)))
22287 (home-page
22288 "https://gitlab.petton.fr/nico/zerodark-theme")
22289 (synopsis
22290 "Dark, medium contrast theme for Emacs")
22291 (description
22292 "Zerodark is a dark theme inspired from One Dark and Niflheim.
22293 An optional mode-line format can be enabled with @code{zerodark-setup-modeline-format}.")
22294 (license license:gpl3+)))
22295
22296 (define-public emacs-gnus-alias
22297 (package
22298 (name "emacs-gnus-alias")
22299 (version "20150316")
22300 (source (origin
22301 (method git-fetch)
22302 (uri (git-reference
22303 (url "https://github.com/hexmode/gnus-alias")
22304 (commit "9447d3ccb4c0e75d0468899cccff7aa249657bac")))
22305 (file-name (git-file-name name version))
22306 (sha256
22307 (base32
22308 "1i278npayv3kfxxd1ypi9n83q5l402sbc1zkm11pf8g006ifqsp4"))))
22309 (build-system emacs-build-system)
22310 (home-page "https://melpa.org/#/gnus-alias")
22311 (synopsis "Alternative to @code{gnus-posting-styles}")
22312 (description "This Emacs add-on provides a simple mechanism to switch
22313 Identities when using a @code{message-mode} or a @code{message-mode} derived
22314 mode. Identities can include @code{From} and @code{Organisation} headers,
22315 extra headers, body and signature. Other features include:
22316
22317 @itemize
22318 @item Switch Identities in a message buffer.
22319 @item Access original message to help determine Identity of the followup/reply
22320 message.
22321 @item Act on a forwarded message as if it were a message being replied to.
22322 @item Start a new message with a given Identity pre-selected.
22323 @end itemize")
22324 (license license:gpl2+)))
22325
22326 (define-public emacs-ox-epub
22327 (package
22328 (name "emacs-ox-epub")
22329 (version "0.3")
22330 (source (origin
22331 (method git-fetch)
22332 (uri (git-reference
22333 (url "https://github.com/ofosos/ox-epub")
22334 (commit (string-append "v" version))))
22335 (file-name (git-file-name name version))
22336 (sha256
22337 (base32
22338 "057sqmvm8hwkhcg3yd4i8zz2xlqsqrpyiklyiw750s3i5mxdn0k7"))))
22339 (build-system emacs-build-system)
22340 (home-page "https://github.com/ofosos/ox-epub")
22341 (synopsis "Export org mode projects to EPUB")
22342 (description "@code{ox-epub} extends the (X)HTML exporter to generate
22343 @code{.epub} files directly from OrgMode. This will export EPUB version 2,
22344 which should give broad compatibility. It should also be relatiely easy to
22345 convert the resulting @code{.epub} to a @code{.mobi} file. Needs a working
22346 zip utility (default is @code{zip}).")
22347 (license license:gpl3+)))
22348
22349 (define-public emacs-ox-hugo
22350 (package
22351 (name "emacs-ox-hugo")
22352 (version "0.8")
22353 (source
22354 (origin
22355 (method git-fetch)
22356 (uri (git-reference
22357 (url "https://github.com/kaushalmodi/ox-hugo")
22358 (commit (string-append "v" version))))
22359 (file-name (git-file-name name version))
22360 (sha256
22361 (base32
22362 "11h464cyc28ld0b0zridgm4drydc1qjxbm1y24zrwlkyqqjk6yr7"))))
22363 (build-system emacs-build-system)
22364 (home-page "https://ox-hugo.scripter.co")
22365 (synopsis "Hugo markdown back-end for Org export engine")
22366 (description
22367 "Ox-hugo is an Org exporter backend that exports Org to Hugo-compatible
22368 Markdown, Blackfriday, and also generates the front-matter in TOML or YAML
22369 format.")
22370 (license license:gpl3+)))
22371
22372 (define-public emacs-ox-pandoc
22373 (package
22374 (name "emacs-ox-pandoc")
22375 (version "20180510")
22376 (source (origin
22377 (method git-fetch)
22378 (uri (git-reference
22379 (url "https://github.com/kawabata/ox-pandoc")
22380 (commit "aa37dc7e94213d4ebedb85c384c1ba35007da18e")))
22381 (file-name (git-file-name name version))
22382 (sha256
22383 (base32
22384 "0iibxplgdp34bpq1yll2gmqjd8d8lnqn4mqjvx6cdf0y438yr4jz"))))
22385 (build-system emacs-build-system)
22386 (inputs
22387 `(("pandoc" ,pandoc)))
22388 (propagated-inputs
22389 `(("emacs-dash" ,emacs-dash)
22390 ("emacs-ht" ,emacs-ht)))
22391 (home-page "https://github.com/kawabata/ox-pandoc")
22392 (synopsis "Org exporter for Pandoc")
22393 (description "@code{ox-pandoc} is an exporter for converting Org-mode
22394 files to numerous other formats via Pandoc.")
22395 (license license:gpl3+)))
22396
22397 (define-public emacs-wc-mode
22398 (package
22399 (name "emacs-wc-mode")
22400 (version "1.3")
22401 (source (origin
22402 (method git-fetch)
22403 (uri (git-reference
22404 (url "https://github.com/bnbeckwith/wc-mode")
22405 (commit (string-append "v" version))))
22406 (file-name (git-file-name name version))
22407 (sha256
22408 (base32
22409 "0pjlxv46zzqdq6q131jb306vqlg4sfqls1x8vag7mmfw462hafqp"))))
22410 (build-system emacs-build-system)
22411 (home-page "https://github.com/bnbeckwith/wc-mode")
22412 (synopsis "Running word count with goals (minor mode)")
22413 (description "@code{wc-mode} is a minor mode, providing a ‘wc’ function
22414 for Emacs buffers as well as a modeline addition with live word, line and
22415 character counts. Additionally, a user can set specific goals for adding or
22416 deleting words. These goals were partly inspired by 750words.com where the
22417 goal of the site is to encourage writing by setting a goal of 750 words at a
22418 time.")
22419 (license license:gpl3+)))
22420
22421 (define-public emacs-mastodon
22422 (package
22423 (name "emacs-mastodon")
22424 (version "0.9.0")
22425 (source (origin
22426 (method git-fetch)
22427 (uri (git-reference
22428 (url "https://github.com/jdenen/mastodon.el")
22429 (commit version)))
22430 (file-name (git-file-name name version))
22431 (sha256
22432 (base32
22433 "0hwax6y9dghqwsbnb6f1bnc7gh8xsh5cvcnayk2sn49x8b0zi5h1"))))
22434 (build-system emacs-build-system)
22435 (arguments
22436 `(#:phases
22437 (modify-phases %standard-phases
22438 ;; Move the source files to the top level, which is included in
22439 ;; the EMACSLOADPATH.
22440 (add-after 'unpack 'move-source-files
22441 (lambda _
22442 (let ((el-files (find-files "./lisp" ".*\\.el$")))
22443 (for-each (lambda (f)
22444 (rename-file f (basename f)))
22445 el-files))
22446 #t)))))
22447 (home-page "https://github.com/jdenen/mastodon.el")
22448 (synopsis "Emacs client for Mastodon")
22449 (description "@code{mastodon.el} is an Emacs client for Mastodon, the
22450 federated microblogging social network.")
22451 (license license:gpl3+)))
22452
22453 (define-public emacs-ebdb
22454 (package
22455 (name "emacs-ebdb")
22456 (version "0.6.19")
22457 (source
22458 (origin
22459 (method url-fetch)
22460 (uri (string-append "https://elpa.gnu.org/packages/"
22461 "ebdb-" version ".tar"))
22462 (sha256
22463 (base32 "0ch5vzhxa8h5v75lg3blsmrln497lr3ylivx6w28aiyb6cv5016l"))))
22464 (build-system emacs-build-system)
22465 (home-page "https://github.com/girzel/ebdb")
22466 (synopsis "EIEIO port of BBDB, Emacs's contact-management package")
22467 (description
22468 "EBDB is a contact management/addressbook package for Emacs. It's
22469 a re-write of the Insidious Big Brother Database (BBDB) using Emacs
22470 Lisp's (relatively new) EIEIO object oriented libraries.")
22471 (license license:gpl3+)))
22472
22473 (define-public emacs-refactor
22474 (package
22475 (name "emacs-refactor")
22476 (version "0.4")
22477 (source (origin
22478 (method git-fetch)
22479 (uri (git-reference
22480 (url "https://github.com/Wilfred/emacs-refactor")
22481 (commit version)))
22482 (file-name (git-file-name name version))
22483 (sha256
22484 (base32
22485 "1yky7vlv91501xb43xk19rr8mxlvrsxhawsc98jivf64nad5dqay"))))
22486 (build-system emacs-build-system)
22487 (propagated-inputs
22488 `(("emacs-dash" ,emacs-dash)
22489 ("emacs-s" ,emacs-s)
22490 ("emacs-popup" ,emacs-popup)
22491 ("emacs-list-utils" ,emacs-list-utils)
22492 ("emacs-iedit" ,emacs-iedit)))
22493 (home-page "https://github.com/Wilfred/emacs-refactor/")
22494 (synopsis "Language-specific refactoring in Emacs")
22495 (description "Emacs Refactor (EMR) is a framework for providing
22496 language-specific refactoring in Emacs. It includes refactoring commands for
22497 a variety of languages, including elisp itself.")
22498 (license license:gpl3+)))
22499
22500 (define-public emacs-flyspell-correct
22501 (package
22502 (name "emacs-flyspell-correct")
22503 (version "0.5")
22504 (source
22505 (origin
22506 (method git-fetch)
22507 (uri (git-reference
22508 (url "https://github.com/d12frosted/flyspell-correct")
22509 (commit (string-append "v" version))))
22510 (file-name (git-file-name name version))
22511 (sha256
22512 (base32
22513 "1r9hmz7sihhy7npv6nxp04sy57glzmfax5d67mwn96fdnc0yhlnd"))))
22514 (build-system emacs-build-system)
22515 (propagated-inputs
22516 `(("emacs-helm" ,emacs-helm)
22517 ("emacs-ivy" ,emacs-ivy)
22518 ("emacs-popup" ,emacs-popup)))
22519 (home-page
22520 "https://github.com/d12frosted/flyspell-correct")
22521 (synopsis
22522 "Correcting words with flyspell via custom interfaces")
22523 (description
22524 "This package provides functionality for correcting words via custom
22525 interfaces. Several interfaces are supported beside the classic ido: popup,
22526 helm and ivy.")
22527 (license license:gpl3+)))
22528
22529 (define-public emacs-org-emms
22530 (let ((commit "07a8917f3d628c32e5de1dbd118ac08203772533")
22531 (revision "1"))
22532 (package
22533 (name "emacs-org-emms")
22534 (version
22535 (git-version "0.1" revision commit))
22536 (source
22537 (origin
22538 (method git-fetch)
22539 (uri (git-reference
22540 (url "https://gitlab.com/jagrg/org-emms.git")
22541 (commit commit)))
22542 (file-name (git-file-name name commit))
22543 (sha256
22544 (base32
22545 "1sqsm5sv311xfdk4f4rsnvprdf2v2vm7l1b3vqi7pc0g8adlnw1d"))))
22546 (build-system emacs-build-system)
22547 (propagated-inputs
22548 `(("emms" ,emacs-emms)
22549 ("emacs-org" ,emacs-org)))
22550 (home-page "https://gitlab.com/jagrg/org-emms")
22551 (synopsis "Play multimedia files from org-mode")
22552 (description
22553 "This package provides a new org link type for playing back multimedia
22554 files from org-mode using EMMS, The Emacs Multimedia System. If the link
22555 contains a track position, playback will start at the specified position.")
22556 (license license:gpl3+))))
22557
22558 (define-public emacs-org-jira
22559 (package
22560 (name "emacs-org-jira")
22561 (version "4.3.1")
22562 (source
22563 (origin
22564 (method git-fetch)
22565 (uri (git-reference
22566 (url "https://github.com/ahungry/org-jira")
22567 (commit version)))
22568 (file-name (git-file-name name version))
22569 (sha256
22570 (base32
22571 "1l80r2a9zzbfk2c78i40h0ww79vm9v4j6xi2h5i4w9kqh10rs6h2"))))
22572 (build-system emacs-build-system)
22573 (propagated-inputs
22574 `(("emacs-request" ,emacs-request)
22575 ("emacs-s" ,emacs-s)
22576 ("emacs-dash" ,emacs-dash)
22577 ("emacs-org" ,emacs-org)))
22578 (home-page "https://github.com/ahungry/org-jira")
22579 (synopsis "Syncing between Jira and Org-mode")
22580 (description
22581 "This package provides an extension to org-mode for syncing issues with
22582 JIRA issue servers.")
22583 (license license:gpl3+)))
22584
22585 (define-public emacs-systemd-mode
22586 (package
22587 (name "emacs-systemd-mode")
22588 (version "1.6")
22589 (source (origin
22590 (method git-fetch)
22591 (uri (git-reference
22592 (url "https://github.com/holomorph/systemd-mode")
22593 (commit (string-append "v" version))))
22594 (file-name (git-file-name name version))
22595 (sha256
22596 (base32
22597 "0ylgnvpfindg4cxccbqy02ic7p0i9rygf1w16dm1filwhbqvjplq"))))
22598 (build-system emacs-build-system)
22599 (arguments '(#:include '("\\.el$" "\\.txt$")))
22600 (home-page "https://github.com/holomorph/systemd-mode")
22601 (synopsis
22602 "Major mode for editing systemd units")
22603 (description
22604 "Major mode for editing systemd units in GNU Emacs.")
22605 (license license:gpl3+)))
22606
22607 (define-public emacs-ssh-config-mode
22608 (let ((commit "4c1dfa57d452cb5654453bf186c8ff63e1e71b56")
22609 (revision "1"))
22610 (package
22611 (name "emacs-ssh-config-mode")
22612 (version (git-version "8.0" revision commit))
22613 (source
22614 (origin
22615 (method git-fetch)
22616 (uri
22617 (git-reference
22618 (url "https://github.com/jhgorrell/ssh-config-mode-el")
22619 (commit commit)))
22620 (file-name (git-file-name name commit))
22621 (sha256
22622 (base32
22623 "0crglfdazzckizbwzmgl2rn6j85avfzkr1q7ijxd17rp2anvr9bd"))))
22624 (build-system emacs-build-system)
22625 (arguments '(#:include '("\\.el$" "\\.txt$")))
22626 (home-page
22627 "https://github.com/jhgorrell/ssh-config-mode-el")
22628 (synopsis
22629 "Mode for fontification of ~/.ssh/config")
22630 (description
22631 "This package fontifies the ssh config keywords and creates
22632 keybindings for skipping from host section to host section.")
22633 (license license:gpl3+))))
22634
22635 (define-public emacs-ssh-agency
22636 (package
22637 (name "emacs-ssh-agency")
22638 (version "0.4")
22639 (source (origin
22640 (method git-fetch)
22641 (uri (git-reference
22642 (url "https://github.com/magit/ssh-agency")
22643 (commit version)))
22644 (file-name (git-file-name name version))
22645 (sha256
22646 (base32
22647 "0895n7bss4wdydic1gflr03f2cwdyqywl16gvb599lpn288jhwvz"))))
22648 (build-system emacs-build-system)
22649 (propagated-inputs
22650 `(("dash" ,emacs-dash)))
22651 (home-page "https://github.com/magit/ssh-agency")
22652 (synopsis "Manage @code{ssh-agent} from Emacs")
22653 (description
22654 "This package provides functions to startup @code{ssh-agent}, set the
22655 needed environment variables in Emacs, and prompt for passphrases from within
22656 Emacs so that pushes and pulls from @code{magit} will not require entering any
22657 passphrase.
22658
22659 It can also be useful on Unix-like platforms to delay having to enter your
22660 passphrase until the first time you push to a remote.")
22661 (license license:gpl3+)))
22662
22663 (define-public emacs-tao-theme
22664 (let ((commit "c5107fbe7e752f4e58c2d2147ff18a1ebb12937c")
22665 (revision "0"))
22666 (package
22667 (name "emacs-tao-theme")
22668 (version (git-version "0" revision commit))
22669 (source
22670 (origin
22671 (method git-fetch)
22672 (uri (git-reference
22673 (url "https://github.com/11111000000/tao-theme-emacs")
22674 (commit commit)))
22675 (file-name (git-file-name name version))
22676 (sha256
22677 (base32
22678 "07vvlglmkj87hpxz79s3bl2cjn71vain57fdxs7j9vlr5jkchxwn"))))
22679 (build-system emacs-build-system)
22680 (home-page "https://github.com/11111000000/tao-theme-emacs")
22681 (synopsis "Parameterized uncolored color themes for Emacs")
22682 (description
22683 "This package provides two parameterized uncolored color themes for
22684 Emacs: @code{tao-yin} and @code{tao-yang}. The default
22685 @code{tao-theme-scale-fn} is @code{tao-theme-golden-scale}.
22686
22687 You can customize: @code{tao-theme-scale-fn}, that returns 16 2-digit numbers;
22688 @code{tao-theme-scale-filter-fn}, for edge filter; and
22689 @code{tao-theme-use-height}.")
22690 (license license:gpl3+))))
22691
22692 (define-public emacs-almost-mono-themes
22693 (let ((commit "c3a85c1a665530a5d830665969725cdba8eceb75")
22694 (revision "0"))
22695 (package
22696 (name "emacs-almost-mono-themes")
22697 (version (git-version "0" revision commit))
22698 (source
22699 (origin
22700 (method git-fetch)
22701 (uri (git-reference
22702 (url "https://github.com/cryon/almost-mono-themes")
22703 (commit commit)))
22704 (file-name (git-file-name name version))
22705 (sha256
22706 (base32
22707 "034k32xkr5ma415hlkbl35z0jxc4sa1inf87hg3y6lrlfl83fyjh"))))
22708 (build-system emacs-build-system)
22709 (home-page "https://github.com/cryon/almost-mono-themes")
22710 (synopsis "Almost monochromatic themes for emacs in a few variants")
22711 (description
22712 "This package provides a collection of almost monochrome Emacs themes:
22713 @code{almost-mono-black} and @code{almost-mono-white}.")
22714 (license license:gpl3+))))
22715
22716 (define-public emacs-quasi-monochrome
22717 (let ((commit "68060dbbc0bbfe4924387392874186c5a29bb434")
22718 (revision "0"))
22719 (package
22720 (name "emacs-quasi-monochrome")
22721 (version (git-version "1.2" revision commit))
22722 (source
22723 (origin
22724 (method git-fetch)
22725 (uri (git-reference
22726 (url "https://github.com/lbolla/emacs-quasi-monochrome")
22727 (commit commit)))
22728 (file-name (git-file-name name version))
22729 (sha256
22730 (base32
22731 "0zp2xr0bjfqrpb0bqczzick1vvbjmipjavrdi70kw6a9caynvq22"))))
22732 (build-system emacs-build-system)
22733 (home-page "https://github.com/lbolla/emacs-quasi-monochrome")
22734 (synopsis "Dark color theme for Emacs")
22735 (description
22736 "This package provides a dark color theme with a black background, high
22737 contrast and few colors.")
22738 (license license:gpl3+))))
22739
22740 (define-public emacs-doom-themes
22741 (let ((commit "e803fc4ac8cf7118e2d1544d8241b848b5e79e9f")
22742 (revision "5")
22743 (version "2.1.6"))
22744 (package
22745 (name "emacs-doom-themes")
22746 (version (git-version version revision commit))
22747 (source (origin
22748 (method git-fetch)
22749 (uri (git-reference
22750 (url "https://github.com/hlissner/emacs-doom-themes")
22751 (commit commit)))
22752 (file-name (git-file-name name version))
22753 (sha256
22754 (base32 "128hdmf0jkzr12fv2r6z349qiwba6q97hsb6b1n2qlhi0v5v3mfh"))))
22755 (build-system emacs-build-system)
22756 (native-inputs
22757 `(("emacs-ert-runner" ,emacs-ert-runner)))
22758 (arguments
22759 `(#:tests? #t
22760 #:test-command '("ert-runner")
22761 #:modules ((guix build emacs-build-system)
22762 (guix build utils)
22763 (guix build emacs-utils)
22764 (srfi srfi-1))
22765 #:phases
22766 (modify-phases %standard-phases
22767 (add-after 'unpack 'move-themes
22768 (lambda _
22769 ;; Move the source files to the top level, which is in the
22770 ;; EMACSLOADPATH.
22771 (for-each (lambda (f)
22772 (rename-file f (basename f)))
22773 (find-files "./themes" ".*\\.el$"))
22774 #t)))))
22775 (synopsis "Wide collection of color themes for Emacs")
22776 (description "Emacs-doom-themes contains numerous popular color themes for
22777 Emacs that integrate with major modes like Org-mode.")
22778 (home-page "https://github.com/hlissner/emacs-doom-themes")
22779 (license license:expat))))
22780
22781 (define-public emacs-modus-operandi-theme
22782 (package
22783 (name "emacs-modus-operandi-theme")
22784 (version "0.12.0")
22785 (source
22786 (origin
22787 (method url-fetch)
22788 (uri (string-append "https://elpa.gnu.org/packages/"
22789 "modus-operandi-theme-" version ".el"))
22790 (sha256
22791 (base32 "1mllyysn701qfnglxs7n2f6mrzrz55v9hcwspvafc6fl2blr393y"))))
22792 (build-system emacs-build-system)
22793 (home-page "https://gitlab.com/protesilaos/modus-themes")
22794 (synopsis "Accessible light theme (WCAG AAA)")
22795 (description
22796 "Modus operandi is the light version of the Modus accessible themes for
22797 GNU Emacs. The contrast ratio between foreground and background values should
22798 always be greater than 7:1, which conforms with the WCAG AAA accessibility
22799 standard. This is the highest standard of its kind.")
22800 (license license:gpl3+)))
22801
22802 (define-public emacs-modus-vivendi-theme
22803 (package
22804 (name "emacs-modus-vivendi-theme")
22805 (version "0.12.0")
22806 (source
22807 (origin
22808 (method url-fetch)
22809 (uri (string-append "https://elpa.gnu.org/packages/"
22810 "modus-vivendi-theme-" version ".el"))
22811 (sha256
22812 (base32 "01f6z5xjnmki1k9m83jwva42lxidb31pdpwm4wpxjzxqmb96picn"))))
22813 (build-system emacs-build-system)
22814 (home-page "https://gitlab.com/protesilaos/modus-themes")
22815 (synopsis "Accessible dark theme (WCAG AAA)")
22816 (description
22817 "Modus vivendi is the dark version of the Modus accessible themes for GNU
22818 Emacs. The contrast ratio between foreground and background values should
22819 always be greater than 7:1, which conforms with the WCAG AAA accessibility
22820 standard. This is the highest standard of its kind.")
22821 (license license:gpl3+)))
22822
22823 (define-public emacs-modus-themes
22824 (deprecated-package "emacs-modus-themes" emacs-modus-operandi-theme))
22825
22826 (define-public emacs-punpun-theme
22827 (let ((commit "2f78125609277b2478abdebd8f9d5ee10a823b65")
22828 (revision "0"))
22829 (package
22830 (name "emacs-punpun-theme")
22831 (version (git-version "0" revision commit))
22832 (source
22833 (origin
22834 (method git-fetch)
22835 (uri (git-reference
22836 (url "https://github.com/wasamasa/punpun-theme")
22837 (commit commit)))
22838 (file-name (git-file-name name version))
22839 (sha256
22840 (base32
22841 "1sgxrj3igzq86h3whfymxf4qzv9kpvcrlhbvjmnp7fwrplys0n7d"))))
22842 (build-system emacs-build-system)
22843 (home-page "https://github.com/wasamasa/punpun-theme")
22844 (synopsis "Bleak Emacs theme")
22845 (description
22846 "A bleak theme. Uses shades of gray and the occasional splash of
22847 color. Designed for 256-color terminals. Comes in light and dark!")
22848 (license license:gpl3+))))
22849
22850 (define-public emacs-spacemacs-theme
22851 (let ((commit "f79c40fb241e204539fde97200abae91e828e585")
22852 (revision "1"))
22853 (package
22854 (name "emacs-spacemacs-theme")
22855 (version (git-version "0" revision commit)) ;no release yet
22856 (source
22857 (origin
22858 (method git-fetch)
22859 (uri (git-reference
22860 (url "https://github.com/nashamri/spacemacs-theme")
22861 (commit commit)))
22862 (file-name (git-file-name name version))
22863 (sha256
22864 (base32 "1l2kkiyrskkpx8f901v0wrzaah1wjg15zdyv88spj3mh3hwd3b6n"))))
22865 (build-system emacs-build-system)
22866 (home-page "https://github.com/nashamri/spacemacs-theme")
22867 (synopsis
22868 "Light and dark theme for spacemacs that supports GUI and terminal")
22869 (description
22870 "Spacemacs theme is an Emacs color theme that started as
22871 a theme for Spacemacs. The theme comes with dark and light variants
22872 and it should work well with 256 color terminals.")
22873 (license license:gpl3+))))
22874
22875 (define-public emacs-elixir-mode
22876 (package
22877 (name "emacs-elixir-mode")
22878 (version "2.3.1")
22879 (source
22880 (origin
22881 (method git-fetch)
22882 (uri (git-reference
22883 (url "https://github.com/elixir-editors/emacs-elixir")
22884 (commit (string-append "v" version))))
22885 (file-name (git-file-name name version))
22886 (sha256
22887 (base32 "06bi68x49v6f7flpz279mm4jpg31ll3s274givm3pvr8slcxs6xg"))))
22888 (build-system emacs-build-system)
22889 (propagated-inputs
22890 `(("emacs-pkg-info" ,emacs-pkg-info)))
22891 (home-page
22892 "https://github.com/elixir-editors/emacs-elixir")
22893 (synopsis "Major mode for editing Elixir files")
22894 (description
22895 "Elixir-Mode provides font-locking, indentation and navigation support
22896 for the Elixir programming language.")
22897 (license license:gpl3+)))
22898
22899 (define-public emacs-dimmer
22900 (package
22901 (name "emacs-dimmer")
22902 (version "0.4.2")
22903 (source
22904 (origin
22905 (method git-fetch)
22906 (uri (git-reference
22907 (url "https://github.com/gonewest818/dimmer.el")
22908 (commit version)))
22909 (file-name (git-file-name name version))
22910 (sha256
22911 (base32
22912 "0dw0qh5hm1x76s5cqxvylvmjgy0jwy11xm258g6kmx6w1k6r1d2l"))))
22913 (build-system emacs-build-system)
22914 (home-page "https://github.com/gonewest818/dimmer.el")
22915 (synopsis "Visually highlights the selected buffer in Emacs")
22916 (description "Dimmer provides a minor mode that indicates which buffer is
22917 currently active by dimming the faces in the other buffers. It does this
22918 nondestructively, and computes the dimmed faces dynamically such that your
22919 overall color scheme is shown in a muted form without requiring you to define
22920 what is a \"dim\" version of every face.")
22921 (license license:gpl3+)))
22922
22923 (define-public emacs-minibuffer-line
22924 (package
22925 (name "emacs-minibuffer-line")
22926 (version "0.1")
22927 (source
22928 (origin
22929 (method url-fetch)
22930 (uri (string-append
22931 "https://elpa.gnu.org/packages/minibuffer-line-"
22932 version
22933 ".el"))
22934 (sha256
22935 (base32 "1ny4iirp26na5118wfgxlv6fxlrdclzdbd9m0lkrv51w0qw7spil"))))
22936 (build-system emacs-build-system)
22937 (home-page "https://elpa.gnu.org/packages/minibuffer-line.html")
22938 (synopsis "Display status info in the minibuffer window")
22939 (description
22940 "This package lets you display various status information in the
22941 minibuffer window instead of the mode-line. Of course, this is only displayed
22942 when the minibuffer window is not already used for other things (e.g. a
22943 minibuffer or an each area message).
22944
22945 The contents and aspect is controlled by the @code{minibuffer-line-format}
22946 variable and the @code{minibuffer-line} face.")
22947 (license license:gpl3+)))
22948
22949 (define-public emacs-eshell-prompt-extras
22950 (package
22951 (name "emacs-eshell-prompt-extras")
22952 (version "1.0")
22953 (home-page "https://github.com/zwild/eshell-prompt-extras")
22954 (source
22955 (origin
22956 (method git-fetch)
22957 (uri (git-reference
22958 (url home-page)
22959 (commit version)))
22960 (file-name (git-file-name name version))
22961 (sha256
22962 (base32
22963 "0gb07mns23dgqqr6qfy7d6ndizy15sqgbgfaig6k5xbjnwi02v9g"))))
22964 (build-system emacs-build-system)
22965 (synopsis "Display extra information and color for your Eshell prompt")
22966 (description "This library displays various customizable elements for
22967 @code{eshell} prompts: remote user, remote host, python virtual environment
22968 info, git branch, git dirty info and git unpushed number. Multiple themes are
22969 available.")
22970 (license license:gpl3+)))
22971
22972 (define-public emacs-eshell-did-you-mean
22973 (package
22974 (name "emacs-eshell-did-you-mean")
22975 (version "0.1")
22976 (home-page "https://github.com/xuchunyang/eshell-did-you-mean")
22977 (source
22978 (origin
22979 (method git-fetch)
22980 (uri (git-reference
22981 (url home-page)
22982 (commit (string-append "v" version))))
22983 (file-name (git-file-name name version))
22984 (sha256
22985 (base32
22986 "0v0wshck5n4hspcv1zk1g2nm6xiigcjp16lx0dc8wzkl6ymljvbg"))))
22987 (build-system emacs-build-system)
22988 (synopsis "Display suggestions on 'command not found' in Eshell")
22989 (description "This library adds a list of 'Did you mean...' suggestions
22990 when the command was not found in Eshell. The suggestions are found after the
22991 commands that bear resemblance to the input command.")
22992 (license license:gpl3+)))
22993
22994 (define-public emacs-unfill
22995 (package
22996 (name "emacs-unfill")
22997 (version "0.2")
22998 (home-page "https://github.com/purcell/unfill")
22999 (source
23000 (origin
23001 (method git-fetch)
23002 (uri (git-reference
23003 (url home-page)
23004 (commit version)))
23005 (file-name (git-file-name name version))
23006 (sha256
23007 (base32 "0wyradin5igp25nsd3n22i2ppxhmy49ac1iq1w2715v8pfmiydnc"))))
23008 (build-system emacs-build-system)
23009 (synopsis "Inverse of Emacs' @code{fill-paragraph} and @code{fill-region}")
23010 (description
23011 "The functions in this package provide the inverse of Emacs'
23012 @code{fill-paragraph} and @code{fill-region}.")
23013 (license license:gpl3+)))
23014
23015 (define-public emacs-windower
23016 (package
23017 (name "emacs-windower")
23018 (version "0.0.1")
23019 (home-page "https://gitlab.com/ambrevar/emacs-windower")
23020 (source
23021 (origin
23022 (method git-fetch)
23023 (uri (git-reference
23024 (url home-page)
23025 (commit version)))
23026 (file-name (git-file-name name version))
23027 (sha256
23028 (base32 "0h24gb1ip0czfasxm8wwcc3v19g7mznzw2sxkmmfb5iis59p7dfy"))))
23029 (build-system emacs-build-system)
23030 (synopsis "Helper functions for window manipulation in Emacs")
23031 (description
23032 "This package provides helper functions for window manipulation in Emacs,
23033 such as:
23034
23035 @itemize
23036 @item switch to last buffer,
23037 @item toggle single window display,
23038 @item toggle between horizontal and vertical splits,
23039 @item move borders more naturally,
23040 @item swap windows à-la @code{windmove}.
23041 @end itemize")
23042 (license license:gpl3+)))
23043
23044 (define-public emacs-flycheck-cpplint
23045 (let ((commit "1d8a090861572258ab704915263feeb3a436c3d2")
23046 (revision "1"))
23047 (package
23048 (name "emacs-flycheck-cpplint")
23049 (version (git-version "0.1" revision commit))
23050 (source
23051 (origin
23052 (method git-fetch)
23053 (uri (git-reference
23054 (url "https://github.com/flycheck/flycheck-google-cpplint")
23055 (commit commit)))
23056 (file-name (git-file-name name version))
23057 (sha256
23058 (base32 "0l6sg83f6z8x2alnblpv03rj442sbnkkkcbf8i0agjmx3713a5yx"))))
23059 (build-system emacs-build-system)
23060 (arguments
23061 `(#:phases
23062 (modify-phases %standard-phases
23063 (add-after 'unpack 'set-cpplint-path
23064 (lambda _
23065 (substitute* "flycheck-google-cpplint.el"
23066 (("\"cpplint.py\"")
23067 (string-append "\"" (which "cpplint") "\"")))
23068 #t)))))
23069 (inputs
23070 `(("cpplint" ,cpplint)))
23071 (propagated-inputs
23072 `(("flycheck-mode" ,emacs-flycheck)))
23073 (synopsis "Google C++ checker for Flycheck")
23074 (description "This package provides a interface for @code{cpplint} over
23075 Flycheck plugin. @code{cpplint} is a static code checker for C++, following
23076 Google guidelines.")
23077 (home-page "https://github.com/flycheck/flycheck-google-cpplint")
23078 (license license:gpl3+))))
23079
23080 (define-public emacs-helm-fish-completion
23081 (package
23082 (name "emacs-helm-fish-completion")
23083 (version "0.6")
23084 (home-page "https://github.com/emacs-helm/helm-fish-completion")
23085 (source
23086 (origin
23087 (method git-fetch)
23088 (uri (git-reference
23089 (url home-page)
23090 (commit version)))
23091 (file-name (git-file-name name version))
23092 (sha256
23093 (base32 "1j2vfngq3512naaayv9kx0d1q2zg1xgs69l8afc7swg72h0l0imw"))))
23094 (build-system emacs-build-system)
23095 (propagated-inputs
23096 `(("helm" ,emacs-helm)
23097 ("fish-completion" ,emacs-fish-completion)))
23098 (synopsis "Helm interface for Emacs fish-completion")
23099 (description "Helm Fish Completion is a Helm interface for Emacs
23100 fish-completion. It can be used in both Eshell and M-x shell.")
23101 (license license:gpl3+)))
23102
23103 (define-public emacs-telega
23104 ;; This package has versions newer than indicated on MELPA.
23105 ;; Get the current version from `telega-version` in telega.el.
23106 ;; or by running M-x telega-version.
23107 (let ((commit "e53996777570a5bed84d21f6c8defd4f51c8e255")
23108 (revision "0")
23109 (version "0.6.28"))
23110 (package
23111 (name "emacs-telega")
23112 (version (git-version version revision commit))
23113 (source
23114 (origin
23115 (method git-fetch)
23116 (uri (git-reference
23117 (url "https://github.com/zevlg/telega.el")
23118 (commit commit)))
23119 (sha256
23120 (base32
23121 "058x6svgy33lyqjqq0l3byv8bysqig9jmh3kx8shaqr0ypfrjhi3"))
23122 (patches (search-patches
23123 "emacs-telega-patch-server-functions.patch"
23124 "emacs-telega-test-env.patch"))
23125 (file-name (git-file-name name version))))
23126 (build-system gnu-build-system)
23127 (arguments
23128 `(#:modules ((guix build gnu-build-system)
23129 ((guix build emacs-build-system) #:prefix emacs:)
23130 (guix build utils)
23131 (guix build emacs-utils))
23132 #:imported-modules (,@%gnu-build-system-modules
23133 (guix build emacs-build-system)
23134 (guix build emacs-utils))
23135 #:test-target "test"
23136 ;; TODO: Currently tgVOIP is not functional, thus we have disabled it
23137 ;; temporarily.
23138 ;; #:make-flags (list "WITH_VOIP=t")
23139 #:phases
23140 (modify-phases %standard-phases
23141 (add-after 'unpack 'prefix-patch
23142 (lambda _
23143 (substitute* "server/Makefile"
23144 (("CC=cc")
23145 "CC=gcc")
23146 (("INSTALL_PREFIX=\\$\\(HOME\\)/.telega")
23147 (string-append "INSTALL_PREFIX=" (assoc-ref %outputs "out")
23148 "/bin"))
23149 ;; Manually invoke `run_tests.py` after install phase.
23150 (("python3 run_tests.py")
23151 ""))
23152 #t))
23153 (add-after 'check 'telega-paths-patch
23154 (lambda* (#:key inputs #:allow-other-keys)
23155 ;; Hard-code paths to `ffplay` and `ffmpeg`.
23156 (let ((ffplay-bin (string-append (assoc-ref inputs "ffmpeg")
23157 "/bin/ffplay"))
23158 (ffmpeg-bin (string-append (assoc-ref inputs "ffmpeg")
23159 "/bin/ffmpeg")))
23160 (substitute* "telega-ffplay.el"
23161 (("\\(executable-find \"ffplay\"\\)")
23162 (string-append
23163 "(and (file-executable-p \"" ffplay-bin "\")"
23164 "\"" ffplay-bin "\")"))
23165 (("\\(executable-find \"ffmpeg\"\\)")
23166 (string-append
23167 "(and (file-executable-p \"" ffmpeg-bin "\")"
23168 "\"" ffmpeg-bin "\")"))))
23169 ;; Modify telega-util to reflect unique dir name in
23170 ;; `telega-install-data' phase.
23171 (substitute* "telega-util.el"
23172 (("\\(concat \"etc/\" filename\\) telega--lib-directory")
23173 "(concat \"telega-data/\" filename)
23174 (locate-dominating-file telega--lib-directory
23175 \"telega-data\")"))
23176 ;; Modify telega.el to reflect unique dir name in
23177 ;; `telega-install-contrib' phase.
23178 (substitute* "telega.el"
23179 (("\\(push \\(expand-file-name \"contrib\" telega--lib-directory\\) load-path\\)")
23180 "(push (expand-file-name \"telega-contrib\"
23181 (locate-dominating-file telega--lib-directory
23182 \"telega-contrib\")) load-path)"))
23183 #t))
23184 ;; The server test suite has a hardcoded path.
23185 ;; Reset this behavior to use the proper path.
23186 (add-after 'unpack 'server-suite-patch
23187 (lambda _
23188 (substitute* "server/run_tests.py"
23189 (("~/.telega/telega-server")
23190 (string-append (assoc-ref %outputs "out")
23191 "/bin/telega-server")))
23192 #t))
23193 (add-after 'install 'run-server-suite
23194 (lambda _
23195 (invoke "python3" "server/run_tests.py")
23196 #t))
23197 (delete 'configure)
23198 ;; Build emacs-side using `emacs-build-system'
23199 (add-after 'compress-documentation 'emacs-add-source-to-load-path
23200 (assoc-ref emacs:%standard-phases 'add-source-to-load-path))
23201 ;; Manually invoke bytecompilation for the contrib
23202 ;; subdirectory.
23203 (add-after 'emacs-add-source-to-load-path 'emacs-bytecomp-contrib
23204 (lambda _
23205 (substitute* "Makefile"
23206 (("byte-recompile-directory \".\"")
23207 "byte-recompile-directory \"contrib\""))
23208 (invoke "make" "compile")
23209 #t))
23210 (add-after 'emacs-bytecomp-contrib 'emacs-install
23211 (assoc-ref emacs:%standard-phases 'install))
23212 ;; This step installs subdir /etc, which contains images, sounds and
23213 ;; various other data, next to the site-lisp dir.
23214 (add-after 'emacs-install 'telega-install-data
23215 (lambda* (#:key outputs #:allow-other-keys)
23216 (copy-recursively
23217 "etc"
23218 (string-append (assoc-ref outputs "out")
23219 "/share/emacs/telega-data/"))
23220 #t))
23221 (add-after 'emacs-install 'telega-install-contrib
23222 (lambda* (#:key outputs #:allow-other-keys)
23223 (copy-recursively
23224 "contrib"
23225 (string-append (assoc-ref outputs "out")
23226 "/share/emacs/telega-contrib"))
23227 #t))
23228 (add-after 'telega-install-contrib 'emacs-build
23229 (assoc-ref emacs:%standard-phases 'build))
23230 (add-after 'telega-install-contrib 'emacs-make-autoloads
23231 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
23232 (inputs
23233 `(("ffmpeg" ,ffmpeg))) ; mp4/gif support.
23234 (propagated-inputs
23235 `(("emacs-visual-fill-column" ,emacs-visual-fill-column)
23236 ("emacs-company" ,emacs-company)
23237 ("emacs-rainbow-identifiers"
23238 ,emacs-rainbow-identifiers)
23239 ("libwebp" ,libwebp))) ; sticker support.
23240 (native-inputs
23241 `(("tdlib" ,tdlib)
23242 ;; Use Emacs with wide ints on 32-bit architectures.
23243 ("emacs" ,(match (%current-system)
23244 ((or "i686-linux" "armhf-linux")
23245 emacs-wide-int)
23246 (_
23247 emacs)))
23248 ("python" ,python)))
23249 (synopsis "GNU Emacs client for the Telegram messenger")
23250 (description
23251 "Telega is a full-featured, unofficial GNU Emacs-based client for the
23252 Telegram messaging platform.")
23253 (home-page "https://github.com/zevlg/telega.el")
23254 (license license:gpl3+))))
23255
23256 (define-public emacs-doom-modeline
23257 (package
23258 (name "emacs-doom-modeline")
23259 (version "3.0.0")
23260 (source (origin
23261 (method git-fetch)
23262 (uri (git-reference
23263 (url "https://github.com/seagle0128/doom-modeline")
23264 (commit (string-append "v" version))))
23265 (sha256
23266 (base32
23267 "08m75rl5i812pa87zcsjvb4mm3jjhpwzgx9mf2m7sxj807airz5d"))
23268 (file-name (git-file-name name version))))
23269 (build-system emacs-build-system)
23270 (arguments
23271 `(#:test-command '("ert-runner")))
23272 (native-inputs `(("emacs-ert-runner" ,emacs-ert-runner)))
23273 (propagated-inputs
23274 `(("emacs-all-the-icons" ,emacs-all-the-icons)
23275 ("emacs-dash" ,emacs-dash)
23276 ("emacs-shrink-path" ,emacs-shrink-path)))
23277 (synopsis "Fancy and fast mode-line inspired by minimalism design")
23278 (description "Doom modeline is a complete modeline for GNU Emacs inspired
23279 by the Doom theme collection. This modeline features support for mode-specific
23280 icon support, git integration, and several other utilities.")
23281 (home-page "https://github.com/seagle0128/doom-modeline/")
23282 (license license:gpl3+)))
23283
23284 (define-public emacs-mood-line
23285 (package
23286 (name "emacs-mood-line")
23287 (version "1.2.4")
23288 (source
23289 (origin
23290 (method git-fetch)
23291 (uri (git-reference
23292 (url "https://gitlab.com/jessieh/mood-line")
23293 (commit version)))
23294 (file-name (git-file-name name version))
23295 (sha256
23296 (base32 "0fh9j9fkgl433nykfzjnzap5labi4sdndfk1nv4f904ij69pmvxb"))))
23297 (build-system emacs-build-system)
23298 (home-page "https://gitlab.com/jessieh/mood-line")
23299 (synopsis "Minimal mode-line for Emacs")
23300 (description
23301 "Mood-line is a minimal Emacs mode-line configuration that aims to
23302 replicate some of the features of the Doom modeline package.")
23303 (license license:gpl2+)))
23304
23305 (define-public emacs-frames-only-mode
23306 (package
23307 (name "emacs-frames-only-mode")
23308 (version "1.0.0")
23309 (source
23310 (origin
23311 (method git-fetch)
23312 (uri (git-reference
23313 (url "https://github.com/davidshepherd7/frames-only-mode")
23314 (commit version)))
23315 (file-name (git-file-name name version))
23316 (sha256
23317 (base32 "0y0sdjixaxvywrlp2sw51wnczhk51q1svl5aghbk9rkxpwv9ys9v"))))
23318 (build-system emacs-build-system)
23319 (propagated-inputs
23320 `(("emacs-dash" ,emacs-dash)
23321 ("emacs-s" ,emacs-s)))
23322 (home-page "https://github.com/davidshepherd7/frames-only-mode")
23323 (synopsis "Use frames instead of Emacs windows")
23324 (description
23325 "This is an Emacs global minor mode to use Emacs frames instead of Emacs'
23326 internal windowing system. This combines particularly well with tiling window
23327 managers such as XMonad.")
23328 (license license:gpl3+)))
23329
23330 (define-public emacs-shrink-path
23331 (package
23332 (name "emacs-shrink-path")
23333 (version "0.3.1")
23334 (source
23335 (origin
23336 (method git-fetch)
23337 (uri (git-reference
23338 (url "https://gitlab.com/bennya/shrink-path.el.git")
23339 (commit (string-append "v" version))))
23340 (sha256
23341 (base32
23342 "0kx0c4syd7k6ff9j463bib32pz4wq0rzjlg6b0yqnymlzfr1mbki"))
23343 (file-name (git-file-name name version))))
23344 (build-system emacs-build-system)
23345 (propagated-inputs
23346 `(("emacs-s" ,emacs-s)
23347 ("emacs-dash" ,emacs-dash)
23348 ("emacs-f" ,emacs-f)))
23349 (home-page "https://gitlab.com/bennya/shrink-path.el")
23350 (synopsis "Fish-style path truncation in emacs-lisp")
23351 (description "This package provides utility functions that allow for
23352 Fish-style truncated directories in eshell and various modelines.")
23353 (license license:gpl3+)))
23354
23355 (define-public emacs-org-present
23356 (let ((commit "d13acd70eff6a1608bc991920232146a0de76b21"))
23357 (package
23358 (name "emacs-org-present")
23359 (version "0.0.1")
23360 (source
23361 (origin
23362 (method git-fetch)
23363 (uri (git-reference
23364 (url "https://github.com/rlister/org-present")
23365 (commit commit)))
23366 (file-name (git-file-name name version))
23367 (sha256
23368 (base32
23369 "0jz8xiny3rv9ql0p623byz32pip1b82j2c2nyfz2wd114kiabb6q"))))
23370 (build-system emacs-build-system)
23371 (synopsis "Ultra-minimalist presentation minor-mode for Emacs org-mode")
23372 (description "Org-present is an extremely minimalist presentation tool
23373 for Emacs org-mode. Simply layout your presentation with each slide under a
23374 top-level header, start the minor mode with @code{org-present}, and page through
23375 each slide with left/right keys.")
23376 (home-page "https://github.com/rlister/org-present")
23377 (license license:gpl2))))
23378
23379 (define-public emacs-fullframe
23380 (package
23381 (name "emacs-fullframe")
23382 (version "0.5.0")
23383 (source
23384 (origin
23385 (method git-fetch)
23386 (uri (git-reference
23387 (url "https://github.com/tomterl/fullframe")
23388 (commit version)))
23389 (sha256
23390 (base32
23391 "0m43qnhp6ibsskpjkxc86p3lrjsjc0ndqml3lbd65s79x4x7i3fi"))
23392 (file-name (git-file-name name version))))
23393 (build-system emacs-build-system)
23394 (home-page "https://github.com/tomterl/fullframe")
23395 (synopsis "Generalized automatic execution in a single frame")
23396 (description "This library provides helpers for single-window-per-frame
23397 execution of buffer-exposing commands.")
23398 (license license:gpl3+)))
23399
23400 (define-public emacs-eshell-toggle
23401 (let ((commit "ddfbe0a693497c4d4bc5494a19970ba4f6ab9033")
23402 (revision "1"))
23403 (package
23404 (name "emacs-eshell-toggle")
23405 (version (git-version "0.10.0" revision commit))
23406 (source
23407 (origin
23408 (method git-fetch)
23409 (uri (git-reference
23410 (url "https://github.com/4DA/eshell-toggle")
23411 (commit commit)))
23412 (sha256
23413 (base32
23414 "0xqrp8pwbmfxjdqipgpw5nw633mvhjjjm3k3j9sh9xdpmw05hhws"))
23415 (file-name (git-file-name name version))))
23416 (build-system emacs-build-system)
23417 (propagated-inputs
23418 `(("emacs-dash" ,emacs-dash)))
23419 (home-page "https://github.com/4DA/eshell-toggle")
23420 (synopsis "Show and hide an @code{eshell} instance")
23421 (description "This package toggles an @code{eshell} instance for the
23422 current buffer.")
23423 (license license:gpl3+))))
23424
23425 (define-public emacs-repl-toggle
23426 (package
23427 (name "emacs-repl-toggle")
23428 (version "0.6.1")
23429 (source
23430 (origin
23431 (method git-fetch)
23432 (uri (git-reference
23433 (url "https://github.com/tomterl/repl-toggle")
23434 (commit version)))
23435 (sha256
23436 (base32
23437 "12h3xxja3isnhvrqx7m2g7a5d8h68cc85pbqyhiipfxyafyl1yxd"))
23438 (file-name (git-file-name name version))))
23439 (build-system emacs-build-system)
23440 (propagated-inputs
23441 `(("emacs-fullframe" ,emacs-fullframe)))
23442 (home-page "https://github.com/tomterl/repl-toggle")
23443 (synopsis "Switch to and from current major mode's REPL")
23444 (description "This package provides a function to switch to and from a
23445 REPL appropriate to the current major mode.")
23446 (license license:gpl3+)))
23447
23448 (define-public emacs-rime
23449 (package
23450 (name "emacs-rime")
23451 (version "1.0.3")
23452 (source
23453 (origin
23454 (method git-fetch)
23455 (uri (git-reference
23456 (url "https://github.com/DogLooksGood/emacs-rime")
23457 (commit (string-append "v" version))))
23458 (file-name (git-file-name name version))
23459 (sha256
23460 (base32 "08rzkiqwcl8j3i2yyibll5lcsj8720plzm9zfdgmxgkw7vhcyix5"))))
23461 (build-system emacs-build-system)
23462 (arguments
23463 '(#:phases
23464 (modify-phases %standard-phases
23465 (add-after 'unpack 'patch-rime-data-path
23466 (lambda* (#:key inputs #:allow-other-keys)
23467 (make-file-writable "rime.el")
23468 (emacs-substitute-variables "rime.el"
23469 ("rime-share-data-dir"
23470 (string-append (assoc-ref inputs "rime-data")
23471 "/share/rime-data")))
23472 #t))
23473 (add-before 'install 'build-emacs-module
23474 (lambda _
23475 (invoke "make" "lib")))
23476 (add-after 'install 'install-emacs-module
23477 (lambda* (#:key outputs #:allow-other-keys)
23478 (install-file "librime-emacs.so"
23479 (string-append (assoc-ref outputs "out")
23480 "/share/emacs/site-lisp"))
23481 #t)))))
23482 (inputs
23483 `(("librime" ,librime)
23484 ("rime-data" ,rime-data)))
23485 (propagated-inputs
23486 `(("emacs-dash" ,emacs-dash)
23487 ("emacs-popup" ,emacs-popup)
23488 ("emacs-posframe" ,emacs-posframe)))
23489 (home-page "https://github.com/DogLooksGood/emacs-rime")
23490 (synopsis "Rime input method in Emacs")
23491 (description
23492 "Rime is an Emacs input method built upon Rime input method engine.")
23493 (license license:gpl3+)))
23494
23495 (define-public emacs-blackout
23496 (let ((commit "4bac44671fca4c98d96aa94c79946bf4d4baf0ee")
23497 (revision "1"))
23498 (package
23499 (name "emacs-blackout")
23500 (version (git-version "1.0" revision commit))
23501 (source
23502 (origin
23503 (method git-fetch)
23504 (uri (git-reference
23505 (url "https://github.com/raxod502/blackout")
23506 (commit commit)))
23507 (sha256
23508 (base32
23509 "1wnh0nwy6r3a18sy9sqmrwv04vnmaflxy4g7mq8jiyyjijri7l1b"))
23510 (file-name (git-file-name name version))))
23511 (build-system emacs-build-system)
23512 (home-page "https://github.com/raxod502/blackout")
23513 (synopsis "Clean up mode lighters")
23514 (description "This package provides a function for hiding and customizing
23515 display of major and minor modes in the mode line.")
23516 (license license:gpl3+))))
23517
23518 (define-public emacs-ivy-omni-org
23519 (let ((commit "5460a9fc061a4a5ae8372dc8df966ced94abab58")
23520 (revision "1"))
23521 (package
23522 (name "emacs-ivy-omni-org")
23523 (version (git-version "0.2.1" revision commit))
23524 (source
23525 (origin
23526 (method git-fetch)
23527 (uri (git-reference
23528 (url "https://github.com/akirak/ivy-omni-org")
23529 (commit commit)))
23530 (file-name (git-file-name name version))
23531 (sha256
23532 (base32
23533 "1np1f51hc3phkl5w02a9a79gl38ra2d535i784fn4pqaasvm0rq8"))))
23534 (build-system emacs-build-system)
23535 (propagated-inputs
23536 `(("emacs-ivy" ,emacs-ivy)
23537 ("emacs-dash" ,emacs-dash)))
23538 (synopsis "Browse anything in Org mode")
23539 (description "This package allows Org items to be accessed via the Ivy
23540 interface.")
23541 (home-page "https://github.com/akirak/ivy-omni-org")
23542 (license license:gpl3+))))
23543
23544 (define-public emacs-ivy-posframe
23545 (package
23546 (name "emacs-ivy-posframe")
23547 (version "0.5.1")
23548 (source
23549 (origin
23550 (method url-fetch)
23551 (uri (string-append "https://elpa.gnu.org/packages/"
23552 "ivy-posframe-" version ".el"))
23553 (sha256
23554 (base32 "1yi5avbgk143xs82yqiia7yhh6jjjm22lpmwaq0ysw5mdpazjxfa"))))
23555 (build-system emacs-build-system)
23556 (propagated-inputs
23557 `(("emacs-ivy" ,emacs-ivy)
23558 ("emacs-posframe" ,emacs-posframe)))
23559 (home-page "https://github.com/tumashu/ivy-posframe")
23560 (synopsis "Pop a posframe (a child frame) to show Ivy candidates")
23561 (description
23562 "This package provides an Emacs Ivy extension, which let Ivy use
23563 posframe to show its candidate menu.")
23564 (license license:gpl3+)))
23565
23566 (define-public emacs-shackle
23567 (let ((commit "7ccbe513852a1d1700b698547efca14b8940319d")
23568 (revision "1"))
23569 (package
23570 (name "emacs-shackle")
23571 (version (git-version "1.0.3" revision commit))
23572 (source
23573 (origin
23574 (method git-fetch)
23575 (uri (git-reference
23576 (url "https://github.com/wasamasa/shackle")
23577 (commit commit)))
23578 (file-name (git-file-name name version))
23579 (sha256
23580 (base32
23581 "0agsp8ia4irr540r898ifhjqp28n1zsq1pilv1kc272spn3qhvp9"))))
23582 (build-system emacs-build-system)
23583 (synopsis "Enforce rules for popups")
23584 (description "This package provides a global minor mode in which users
23585 can specify how popup-displaying functions occupy the screen.")
23586 (home-page "https://github.com/wasamasa/shackle")
23587 (license license:gpl3+))))
23588
23589 (define-public emacs-helm-lacarte
23590 (let ((commit "40a6c449720be521435b6b1da7911af3a0b9dca0")
23591 (revision "1"))
23592 (package
23593 (name "emacs-helm-lacarte")
23594 (version (git-version "0" revision commit))
23595 (source
23596 (origin
23597 (method git-fetch)
23598 (uri (git-reference
23599 (url "https://github.com/emacs-helm/helm-lacarte")
23600 (commit commit)))
23601 (file-name (git-file-name name version))
23602 (sha256
23603 (base32
23604 "0dkfd3lap2v7b4nckzv8v7hczmzwzhbl75haqkra107ln91ldbwc"))))
23605 (build-system emacs-build-system)
23606 (propagated-inputs
23607 `(("emacs-helm" ,emacs-helm)
23608 ("emacs-lacarte" ,emacs-lacarte)))
23609 (synopsis "Helm interface to @code{lacarte.el}")
23610 (description "This package provides a Helm interface to
23611 @code{lacarte.el}, a package that displays mode-specific commands as menu
23612 items.")
23613 (home-page "https://github.com/emacs-helm/helm-lacarte")
23614 (license license:gpl3+))))
23615
23616 (define-public emacs-esh-help
23617 (let ((commit "417673ed18a983930a66a6692dbfb288a995cb80")
23618 (revision "1"))
23619 (package
23620 (name "emacs-esh-help")
23621 (version (git-version "1.0.1" revision commit))
23622 (source
23623 (origin
23624 (method git-fetch)
23625 (uri (git-reference
23626 (url "https://github.com/tom-tan/esh-help")
23627 (commit commit)))
23628 (file-name (git-file-name name version))
23629 (sha256
23630 (base32
23631 "0x7d51a6ljl014zy7mi27vzcqqbcwg9z4drq29fr2ajk82mqhlgd"))))
23632 (build-system emacs-build-system)
23633 (propagated-inputs
23634 `(("emacs-dash" ,emacs-dash)))
23635 (synopsis "Help functions for Eshell")
23636 (description "This package provides a @code{run-help} function inspired
23637 by @code{zsh} as well as @code{eldoc} support.")
23638 (home-page "https://github.com/tom-tan/esh-help")
23639 (license license:gpl3+))))
23640
23641 (define-public emacs-isearch-dabbrev
23642 (let ((commit "1efe7abba4923015cbc2462395deaec5446a9cc8")
23643 (revision "1"))
23644 (package
23645 (name "emacs-isearch-dabbrev")
23646 (version (git-version "0.1" revision commit))
23647 (source
23648 (origin
23649 (method git-fetch)
23650 (uri (git-reference
23651 (url "https://github.com/Dewdrops/isearch-dabbrev")
23652 (commit commit)))
23653 (file-name (git-file-name name version))
23654 (sha256
23655 (base32
23656 "17d0816awadvsw1qc7r0p6ira75jmgxaj9hsk9ypayxsaf6ynyrb"))))
23657 (build-system emacs-build-system)
23658 (synopsis "Use @code{dabbrev} within @code{isearch}")
23659 (description "This package allows @code{dabbrev-expand} to be used
23660 within @code{isearch-mode}.")
23661 (home-page "https://github.com/Dewdrops/isearch-dabbrev")
23662 (license license:gpl3+))))
23663
23664 (define-public emacs-helm-linux-disks
23665 (let ((commit "2cdc8116a08534289eb0dc76461d0f93a0bdf231")
23666 (revision "1"))
23667 (package
23668 (name "emacs-helm-linux-disks")
23669 (version (git-version "0.1" revision commit))
23670 (source
23671 (origin
23672 (method git-fetch)
23673 (uri (git-reference
23674 (url "https://github.com/Akirak/helm-linux-disks")
23675 (commit commit)))
23676 (file-name (git-file-name name version))
23677 (sha256
23678 (base32
23679 "1limw82zd8jz3mhh9rqlmhj4cjhfgybs9argfjid1an3vpyhc85i"))))
23680 (build-system emacs-build-system)
23681 (propagated-inputs
23682 `(("emacs-helm" ,emacs-helm)))
23683 (synopsis "Mount/unmount volumes in Linux via Helm")
23684 (description "This package provides a Helm interface to run operations
23685 on removable volumes in Linux.")
23686 (home-page "https://github.com/Akirak/helm-linux-disks")
23687 (license license:gpl3+))))
23688
23689 (define-public emacs-psession
23690 (let ((commit "3e97267c92b164584e06a6c70ee7491714c7c12c")
23691 (revision "1"))
23692 (package
23693 (name "emacs-psession")
23694 (version (git-version "1.5" revision commit))
23695 (source
23696 (origin
23697 (method git-fetch)
23698 (uri (git-reference
23699 (url "https://github.com/thierryvolpiatto/psession")
23700 (commit commit)))
23701 (file-name (git-file-name name version))
23702 (sha256
23703 (base32
23704 "15frl618393bc891d0yi3mdxzvbq790a86vfvp3dyd5riz4ddg95"))))
23705 (build-system emacs-build-system)
23706 (propagated-inputs
23707 `(("emacs-async" ,emacs-async)))
23708 (synopsis "Persistent save of @code{elisp} objects.")
23709 (description "This package provides minor modes for saving Emacs session
23710 data, including buffers, window configuration, variables, and more.")
23711 (home-page "https://github.com/thierryvolpiatto/psession")
23712 (license license:gpl3+))))
23713
23714 (define-public emacs-parseedn
23715 (package
23716 (name "emacs-parseedn")
23717 (version "0.1.0")
23718 (source
23719 (origin
23720 (method git-fetch)
23721 (uri (git-reference
23722 (url "https://github.com/clojure-emacs/parseedn")
23723 (commit (string-append "v" version))))
23724 (file-name (git-file-name name version))
23725 (sha256
23726 (base32
23727 "11wi3hwcgmy54p6ivpijqm7v0hj6j75a19qk5z779bqfrp79b4pc"))))
23728 (build-system emacs-build-system)
23729 (propagated-inputs
23730 `(("emacs-a" ,emacs-a)
23731 ("emacs-parseclj" ,emacs-parseclj)))
23732 (home-page "https://cider.mx")
23733 (synopsis "EDN parser for Emacs Lisp")
23734 (description
23735 "An Emacs Lisp library for parsing EDN (Clojure) data.
23736 It uses parseclj's shift-reduce parser internally.")
23737 (license license:gpl3+)))
23738
23739 (define-public emacs-parseclj
23740 (package
23741 (name "emacs-parseclj")
23742 (version "0.1.0")
23743 (source
23744 (origin
23745 (method git-fetch)
23746 (uri (git-reference
23747 (url "https://github.com/clojure-emacs/parseclj")
23748 (commit (string-append "v" version))))
23749 (file-name (git-file-name name version))
23750 (sha256
23751 (base32
23752 "03bm5dm4hmkqimv4wqxjjh5814pxysmm7z54bv2rf7zwv1x7dggr"))))
23753 (build-system emacs-build-system)
23754 (propagated-inputs `(("emacs-a" ,emacs-a)))
23755 (home-page "https://cider.mx")
23756 (synopsis "Clojure parser for Emacs Lisp")
23757 (description
23758 "An Emacs Lisp library for parsing Clojure code and EDN data.
23759 It supports several input and output formats, all powered by the
23760 same shift-reduce parser function.")
23761 (license license:gpl3+)))
23762
23763 (define-public emacs-hide-mode-line
23764 (package
23765 (name "emacs-hide-mode-line")
23766 (version "1.0.2")
23767 (source (origin
23768 (method git-fetch)
23769 (uri (git-reference
23770 (url "https://github.com/hlissner/emacs-hide-mode-line")
23771 (commit (string-append "v" version))))
23772 (file-name (git-file-name name version))
23773 (sha256
23774 (base32
23775 "0dfzjgxfkcw4wisbyldsm1km18pfp9j8xgadn6qnsz11l55bpgyp"))))
23776 (build-system emacs-build-system)
23777 (synopsis "Emacs plugin that hides the mode-line")
23778 (description "A minor mode that hides the mode-line in your current
23779 buffer. It can be used to toggle an alternative mode-line, toggle its visibility,
23780 or simply disable the mode-line in buffers where it is not very useful.")
23781 (home-page "https://github.com/hlissner/emacs-hide-mode-line")
23782 (license license:expat)))
23783
23784 (define-public emacs-helm-cider
23785 ;; No new release since March 2018.
23786 (let ((commit "9363cc537f06233345aa3af5cd46aa5681ad607b"))
23787 (package
23788 (name "emacs-helm-cider")
23789 (version (git-version "0.4.0" "1" commit))
23790 (home-page "https://github.com/clojure-emacs/helm-cider")
23791 (source (origin
23792 (method git-fetch)
23793 (uri (git-reference
23794 (url home-page)
23795 (commit commit)))
23796 (file-name (git-file-name name version))
23797 (sha256
23798 (base32
23799 "0vfn4smqba1vsshz48ggkj8gs94la0sxb1sq4shrb41qj2x3dci7"))))
23800 (build-system emacs-build-system)
23801 (propagated-inputs
23802 `(("emacs-helm" ,emacs-helm)
23803 ("emacs-cider" ,emacs-cider)))
23804 (synopsis "Helm interface to Clojure's CIDER")
23805 (description "Helm-CIDER adds Helm interfaces to
23806 @command{cider-apropos}, @command{cider-apropos-documentation},
23807 @command{cider-browse-ns} (namespaces).
23808
23809 It also provides original Helm commands: @command{helm-cider-spec},
23810 @command{helm-cider-spec-ns}, @command{helm-cider-repl-history},
23811 @command{helm-cider-cheatsheet}.")
23812 (license license:gpl3+))))
23813
23814 (define-public emacs-edn
23815 ;; No release since February 2016
23816 (let ((commit "be9e32d1b49e35247b263b0243df7cfdc8d413ab"))
23817 (package
23818 (name "emacs-edn")
23819 (version (git-version "1.1.2" "1" commit))
23820 (home-page "https://github.com/expez/edn.el")
23821 (source (origin
23822 (method git-fetch)
23823 (uri (git-reference
23824 (url home-page)
23825 (commit commit)))
23826 (file-name (git-file-name name version))
23827 (sha256
23828 (base32
23829 "1xp2hjhn52k6l1g6ypva6dsklpawni7gvjafbz6404f9dyxflh7l"))))
23830 (build-system emacs-build-system)
23831 (propagated-inputs
23832 `(("emacs-peg" ,emacs-peg)))
23833 (synopsis "Read and write EDN from Elisp")
23834 (description "This is an Emacs Lisp library for reading and writing the
23835 data format @code{edn}. See @url{https://github.com/edn-format/edn}.")
23836 (license license:gpl3+))))
23837
23838 (define-public emacs-helm-clojuredocs
23839 (let ((commit "5a7f0f2cb401be0b09e73262a1c18265ab9a3cea"))
23840 (package
23841 (name "emacs-helm-clojuredocs")
23842 (version (git-version "0.3" "1" commit))
23843 (home-page "https://github.com/mbuczko/helm-clojuredocs")
23844 (source (origin
23845 (method git-fetch)
23846 (uri (git-reference
23847 (url home-page)
23848 (commit commit)))
23849 (file-name (git-file-name name version))
23850 (sha256
23851 (base32
23852 "015b8zxh91ljhqvn6z43gy08di54xcw9skw0i7frj3d7gk984qhl"))))
23853 (build-system emacs-build-system)
23854 (propagated-inputs
23855 `(("emacs-helm" ,emacs-helm)
23856 ("emacs-edn" ,emacs-edn)))
23857 (synopsis "Search help on clojuredocs.org with Helm")
23858 (description "This package provides a Helm interface to lookup Clojure
23859 documentation on @url{https://clojuredocs.org} with Helm.
23860
23861 Two function are exposed:
23862 @itemize
23863 @item @command{helm-clojuredocs}: opens a Helm session with no initial
23864 pattern. Searching starts with minimal 3 characters entered.
23865 @item @command{helm-clojuredocs-at-point}: opens a Helm session with initial
23866 pattern guessed from thing under current cursor position.
23867 @end itemize\n")
23868 (license license:gpl3+))))
23869
23870 (define-public emacs-helm-selector
23871 (package
23872 (name "emacs-helm-selector")
23873 (version "0.3")
23874 (home-page "https://github.com/emacs-helm/helm-selector")
23875 (source
23876 (origin
23877 (method git-fetch)
23878 (uri (git-reference
23879 (url home-page)
23880 (commit version)))
23881 (file-name (git-file-name name version))
23882 (sha256
23883 (base32
23884 "134rxm4zicn565k3q5q15iiqcvcyiq6lsvmsqr53ifjjbq8pd9y6"))))
23885 (build-system emacs-build-system)
23886 (propagated-inputs
23887 `(("emacs-helm" ,emacs-helm)))
23888 (synopsis "Convenient related-buffer selection for Emacs Helm")
23889 (description "Helm Selector is a collection of Helm helper functions for
23890 convenient buffer selection.
23891
23892 It is especially helpful to create Helm sessions to navigate buffers of a
23893 given mode in a “do what I mean” fashion:
23894
23895 If current buffer is not of mode X, switch to last buffer of mode X. If
23896 current buffer is of mode X, show a Helm session of all buffers in mode X. In
23897 the Helm session, it’s also possible to input an arbitrary name which will be
23898 used for the creation of a new buffer of mode X.")
23899 (license license:gpl3+)))
23900
23901 (define-public emacs-helm-wordnut
23902 (let ((commit "9681a9535a839cd5d042c302945ae595852fe7bf"))
23903 (package
23904 (name "emacs-helm-wordnut")
23905 (version (git-version "0.1" "1" commit))
23906 (home-page "https://github.com/emacs-helm/helm-wordnut")
23907 (source
23908 (origin
23909 (method git-fetch)
23910 (uri (git-reference
23911 (url home-page)
23912 (commit commit)))
23913 (file-name (git-file-name name version))
23914 (sha256
23915 (base32
23916 "0msj7nbsb363pxamxi7n2z08cp5jizkpjbwia8f5a161wjglrihs"))))
23917 (build-system emacs-build-system)
23918 (inputs
23919 `(("wordnet" ,wordnet)))
23920 (propagated-inputs
23921 `(("emacs-helm" ,emacs-helm)))
23922 (arguments
23923 `(#:phases
23924 (modify-phases %standard-phases
23925 (add-after 'unpack 'configure
23926 (lambda* (#:key inputs #:allow-other-keys)
23927 (let ((wn (assoc-ref inputs "wordnet")))
23928 ;; .el is read-only in git.
23929 (chmod "helm-wordnut.el" #o644)
23930 ;; Specify the absolute file names of the various
23931 ;; programs so that everything works out-of-the-box.
23932 (emacs-substitute-variables "helm-wordnut.el"
23933 ("helm-wordnut-prog" (string-append wn "/bin/wn"))
23934 ("helm-wordnut-wordnet-location"
23935 (string-append wn "/dict")))))))))
23936 (synopsis "Emacs Helm interface for Wordnet")
23937 (description "This package is merely a combination of two other Emacs
23938 packages: @code{helm-wordnet} and @code{wordnut}. It features word completion
23939 with Helm and displays a buffer of all the different result types available to
23940 Wordnet.")
23941 (license license:gpl3+))))
23942
23943 (define-public emacs-metal-mercury-mode
23944 (let ((commit "99e2d8fb7177cae3bfa2dec2910fc28216d5f5a8")
23945 (revision "1")
23946 (version "0.0.0"))
23947 (package
23948 (name "emacs-metal-mercury-mode")
23949 (version (git-version version revision commit))
23950 (source
23951 (origin
23952 (method git-fetch)
23953 (uri (git-reference
23954 (url "https://github.com/ahungry/metal-mercury-mode")
23955 (commit commit)))
23956 (sha256
23957 (base32
23958 "0iil5k3rgifz2vqwsy12rbv5rzyvidq4sgwazsb2hzys8xynmfn5"))
23959 (file-name (git-file-name name version))))
23960 (build-system emacs-build-system)
23961 (propagated-inputs
23962 `(("emacs-dash" ,emacs-dash)))
23963 (synopsis "Major mode for editing Mercury files")
23964 (description
23965 "Major mode for editing Mercury files. This is a rewrite of the original
23966 mercury-mode provided by Emacs as a wrapper around prolog-mode.")
23967 (home-page "https://github.com/ahungry/metal-mercury-mode")
23968 (license license:gpl3+))))
23969
23970 (define-public emacs-boxquote
23971 ;; The following commit is 2.1 release with a switch to GPL3+ license.
23972 (let ((commit "7e47e0e2853bc1215739b2e28f260e9eed93b2c5")
23973 (revision "0"))
23974 (package
23975 (name "emacs-boxquote")
23976 (version (git-version "2.1" revision commit))
23977 (source
23978 (origin
23979 (method git-fetch)
23980 (uri (git-reference
23981 (url "https://github.com/davep/boxquote.el")
23982 (commit commit)))
23983 (file-name (git-file-name name version))
23984 (sha256
23985 (base32 "1aqhg24gajvllbqxb0zxrnx6sddas37k2ldfinqyszd856sjhsg3"))))
23986 (build-system emacs-build-system)
23987 (home-page "https://github.com/davep/boxquote.el")
23988 (synopsis "Quote text with different kinds of boxes")
23989 (description "@code{boxquote} provides a set of functions for using
23990 a text quoting style that partially boxes in the left hand side of an area of
23991 text, such a marking style might be used to show externally included text or
23992 example code.")
23993 (license license:gpl3+))))
23994
23995 (define-public emacs-buffer-move
23996 (package
23997 (name "emacs-buffer-move")
23998 (version "0.6.2")
23999 (source
24000 (origin
24001 (method git-fetch)
24002 (uri (git-reference
24003 (url "https://github.com/lukhas/buffer-move")
24004 (commit version)))
24005 (file-name (git-file-name name version))
24006 (sha256
24007 (base32 "0xdks4jfqyhkh34y48iq3gz8swp0f526kwnaai5mhgvazvs4za8c"))))
24008 (build-system emacs-build-system)
24009 (home-page "https://github.com/lukhas/buffer-move")
24010 (synopsis "Functions for moving Emacs' buffers around")
24011 (description
24012 "This package define functions for swapping buffers between windows
24013 contained in the same frame. An alternate behavior is to have the current
24014 window switch to the previous buffer instead of swapping with the other
24015 window.")
24016 (license license:gpl3+)))
24017
24018 (define-public emacs-company-ebdb
24019 (package
24020 (name "emacs-company-ebdb")
24021 (version "1.1")
24022 (source
24023 (origin
24024 (method url-fetch)
24025 (uri (string-append "https://elpa.gnu.org/packages/"
24026 "company-ebdb-" version ".el"))
24027 (sha256
24028 (base32 "146qpiigz12zp1823ggxfrx090g0mxs7gz1ba7sa0iq6ibgzwwm9"))))
24029 (build-system emacs-build-system)
24030 (propagated-inputs
24031 `(("emacs-company" ,emacs-company)))
24032 (home-page "https://elpa.gnu.org/packages/company-ebdb.html")
24033 (synopsis "Company completion backend for EBDB in Message mode")
24034 (description "@code{company-ebdb} provides Company mode integration for
24035 EBDB. It is copied more or less intact from @code{company-bbdb}, originally
24036 by Jan Tatarik.")
24037 (license license:gpl3+)))
24038
24039 (define-public emacs-mwim
24040 ;; Use the latest commit not in a release version as of yet, since it
24041 ;; contains a bug fix for the cases where `comment-start-skip' is nil.
24042 (let ((commit "b4f3edb4c0fb8f8b71cecbf8095c2c25a8ffbf85")
24043 (revision "0"))
24044 (package
24045 (name "emacs-mwim")
24046 (version (git-version "0.4" revision commit))
24047 (source
24048 (origin
24049 (method git-fetch)
24050 (uri (git-reference
24051 (url "https://github.com/alezost/mwim.el")
24052 (commit commit)))
24053 (file-name (git-file-name name version))
24054 (sha256
24055 (base32 "0l3k611gp9g2x2vfmh92wnhnda81dslpwwpb8mxmzk308man77ya"))))
24056 (build-system emacs-build-system)
24057 (home-page "https://github.com/alezost/mwim.el")
24058 (synopsis "Move to the beginning/end of line, code or comment")
24059 (description "@code{mwim} provides several commands to switch between
24060 various line positions, like moving to the beginning/end of code, line, or
24061 comment.")
24062 (license license:gpl3+))))
24063
24064 (define-public emacs-delight
24065 (package
24066 (name "emacs-delight")
24067 (version "1.7")
24068 (source
24069 (origin
24070 (method url-fetch)
24071 (uri (string-append "https://elpa.gnu.org/packages/"
24072 "delight-" version ".el"))
24073 (sha256
24074 (base32 "0pihsghrf9xnd1kqlq48qmjcmp5ra95wwwgrb3l8m1wagmmc0bi1"))))
24075 (build-system emacs-build-system)
24076 (home-page "https://elpa.gnu.org/packages/delight.html")
24077 (synopsis "Dimmer switch for your mode-line lighter text")
24078 (description "@code{delight} enables customizing or hiding the
24079 mode-line text (lighter) of major and minor modes.")
24080 (license license:gpl3+)))
24081
24082 (define-public emacs-unkillable-scratch
24083 ;; Use the latest (unreleased) commit as of now, since it contains a handy
24084 ;; `unkillable-scratch-do-not-reset-scratch-buffer' customization to not
24085 ;; repopulate the scratch buffer with `initial-scratch-message'.
24086 (let ((commit "b24c2a760529833f230c14cb02ff6e7ec92288ab")
24087 (revision "0"))
24088 (package
24089 (name "emacs-unkillable-scratch")
24090 (version (git-version "1.0.0" revision commit))
24091 (source
24092 (origin
24093 (method git-fetch)
24094 (uri (git-reference
24095 (url "https://github.com/EricCrosson/unkillable-scratch")
24096 (commit commit)))
24097 (file-name (git-file-name name version))
24098 (sha256
24099 (base32 "13wjbcxr3km4s96yhpavgs5acs5pvqv3ih1p84diqb3x3i6wd4pa"))))
24100 (build-system emacs-build-system)
24101 (home-page "https://github.com/EricCrosson/unkillable-scratch")
24102 (synopsis "Prevents the *scratch* buffer from being killed")
24103 (description "@code{unkillable-scratch} helps prevent killing buffers
24104 matching a given regexp.")
24105 (license license:gpl2+))))
24106
24107 (define-public emacs-switch-buffer-functions
24108 (package
24109 (name "emacs-switch-buffer-functions")
24110 (version "0.0.1")
24111 (source
24112 (origin
24113 (method git-fetch)
24114 (uri (git-reference
24115 (url "https://github.com/10sr/switch-buffer-functions-el")
24116 (commit (string-append "v" version))))
24117 (file-name (git-file-name name version))
24118 (sha256
24119 (base32 "0pq53b8wrjbrxd5hnrcdi0z7mffp4bax55hn90k9ca3j76lhbn1k"))))
24120 (build-system emacs-build-system)
24121 (home-page "https://github.com/10sr/switch-buffer-functions-el")
24122 (synopsis "Hooks run when switching current buffer")
24123 (description "This package provides a hook variable
24124 @code{switch-buffer-functions}. The hooks will be run when the current buffer
24125 is changed after an interactive command, i.e., when @code{post-command-hook}
24126 hooks are run. The hooked functions will be called with both the previous and
24127 the current buffer.")
24128 (license license:unlicense)))
24129
24130 (define-public emacs-erc-scrolltoplace
24131 (package
24132 (name "emacs-erc-scrolltoplace")
24133 (version "0.1.0")
24134 (source
24135 (origin
24136 (method git-fetch)
24137 (uri (git-reference
24138 (url "https://gitlab.com/jgkamat/erc-scrolltoplace.git")
24139 (commit version)))
24140 (file-name (git-file-name name version))
24141 (sha256
24142 (base32 "11zpqwh1mlfifbgnvhc63bvnhg340jgxssm3m43hr1sxsyb52lh6"))))
24143 (build-system emacs-build-system)
24144 (propagated-inputs
24145 `(("emacs-switch-buffer-functions" ,emacs-switch-buffer-functions)))
24146 (home-page "https://gitlab.com/jgkamat/erc-scrolltoplace")
24147 (synopsis "ERC module to replace scrolltobottom while using keep-place")
24148 (description "@code{erc-scrolltoplace} is an ERC module to try
24149 to emulate @code{scrolltobottom} while @code{keep-place} is enabled.")
24150 (license license:gpl3+)))
24151
24152 (define-public emacs-dmenu
24153 ;; Use the latest commit, as there are no tagged releases.
24154 (let ((commit "e8cc9b27c79d3ecc252267c082ab8e9c82eab264")
24155 (revision "0"))
24156 (package
24157 (name "emacs-dmenu")
24158 (version (git-version "0.1" revision commit))
24159 (source
24160 (origin
24161 (method git-fetch)
24162 (uri (git-reference
24163 (url "https://github.com/lujun9972/el-dmenu")
24164 (commit commit)))
24165 (file-name (git-file-name name version))
24166 (sha256
24167 (base32 "098ncygms1r33zhjlq4fj2p4jc91v5whqrm3fazzdk7sd6dilf25"))))
24168 (build-system emacs-build-system)
24169 (home-page "https://github.com/lujun9972/el-dmenu")
24170 (synopsis "Simulate the @command{dmenu} command line program")
24171 (description "This package provides a @command{dmenu} command for
24172 launching other commands/applications from within Emacs, similar to the
24173 @command{dmenu} program. This is especially useful when using EXWM.")
24174 (license license:gpl3+))))
24175
24176 (define-public emacs-no-littering
24177 (package
24178 (name "emacs-no-littering")
24179 (version "1.0.3")
24180 (source
24181 (origin
24182 (method git-fetch)
24183 (uri (git-reference
24184 (url "https://github.com/emacscollective/no-littering")
24185 (commit (string-append "v" version))))
24186 (file-name (git-file-name name version))
24187 (sha256
24188 (base32 "17is06l0w6glppabv2kaclrnqi3dqb6p6alpslpg7lrjd8vd45ir"))))
24189 (build-system emacs-build-system)
24190 (home-page "https://github.com/emacscollective/no-littering")
24191 (synopsis "Help keep ~/.emacs.d/ clean")
24192 (description "The default paths used to store configuration files and
24193 persistent data are not consistent across Emacs packages, be them built-in or
24194 third-party ones. @code{no-littering} sets out to help clean
24195 @file{~/.emacs.d/} by putting configuration files and persistent data files in
24196 two user-defined directories, as well as using more descriptive names for
24197 files and subdirectories when appropriate.")
24198 (license license:gpl3+)))
24199
24200 (define-public emacs-meson-mode
24201 (package
24202 (name "emacs-meson-mode")
24203 (version "0.3")
24204 (source
24205 (origin
24206 (method git-fetch)
24207 (uri (git-reference
24208 (url "https://github.com/wentasah/meson-mode")
24209 (commit (string-append "v" version))))
24210 (file-name (git-file-name name version))
24211 (sha256
24212 (base32 "0hlqvq3j4f6g16nj3bm2wbkncn8hv8c8iqd0sch3w80wwqnr622y"))))
24213 (build-system emacs-build-system)
24214 (home-page "https://github.com/wentasah/meson-mode")
24215 (synopsis "Major mode for Meson build system files")
24216 (description
24217 "This is an Emacs major mode for Meson build system files. Syntax
24218 highlighting works reliably. Indentation works too, but there are probably
24219 cases where it breaks.")
24220 (license license:gpl3+)))
24221
24222 (define-public emacs-message-x
24223 ;; Use the latest commit, as there are no tagged releases.
24224 (let ((commit "5524de7bbfdd8749c110f48de5afb024d9f83133")
24225 (revision "0"))
24226 (package
24227 (name "emacs-message-x")
24228 (version (git-version "1.23" revision commit))
24229 (source
24230 (origin
24231 (method git-fetch)
24232 (uri (git-reference
24233 (url "https://github.com/emacsmirror/message-x")
24234 (commit commit)))
24235 (file-name (git-file-name name version))
24236 (sha256
24237 (base32 "0qy1xf11j357lsnbb829hnbg7fq1cii4cx54fwf0wgjh1bv2abvj"))))
24238 (build-system emacs-build-system)
24239 (home-page "https://www.emacswiki.org/emacs/message-x.el")
24240 (synopsis "Customizable completion in message headers")
24241 (description "@code{message-x} assigns a context-sensitive function to
24242 the TAB key in Message mode. When on a header line, it performs completion
24243 based on which header we are in (for example, newsgroup name completion makes
24244 sense on the @samp{Newsgroups} header, whereas mail alias expansion makes
24245 sense in the @samp{To} and @samp{Cc} headers). When in the message body, this
24246 executes a different function (default: @code{indent-relative}).")
24247 (license license:gpl2+))))
24248
24249 (define-public emacs-glsl-mode
24250 ;; No tag, version grabbed from source .el file.
24251 (let ((commit "b07112016436d9634cd4ef747f9af6b01366d136")
24252 (revision "0"))
24253 (package
24254 (name "emacs-glsl-mode")
24255 (version (git-version "2.4" revision commit))
24256 (source
24257 (origin
24258 (method git-fetch)
24259 (uri (git-reference
24260 (url "https://github.com/jimhourihan/glsl-mode")
24261 (commit commit)))
24262 (file-name (git-file-name name version))
24263 (sha256
24264 (base32 "0bav9ipfm0vy26n74ngsmjzc7fsyqz6xmriadzx55s44h8p5dn1s"))))
24265 (build-system emacs-build-system)
24266 (home-page "https://github.com/jimhourihan/glsl-mode")
24267 (synopsis "Major mode for Open GLSL shader files")
24268 (description
24269 "This package provides a major mode for editing OpenGLSL grammar files,
24270 usually files ending with @file{.vert}, @file{.frag}, @file{.glsl} or
24271 @file{.geom}. It is based on C mode plus some features and pre-specified
24272 fontifications.")
24273 (license license:gpl3+))))
24274
24275 (define-public emacs-gnus-harvest
24276 (let ((commit "feda071a87b799bd5d23cacde3ee71f0b166e75d")
24277 (revision "0"))
24278 (package
24279 (name "emacs-gnus-harvest")
24280 (version (git-version "1.0" revision commit))
24281 (source
24282 (origin
24283 (method git-fetch)
24284 (uri (git-reference
24285 (url "https://github.com/jwiegley/gnus-harvest")
24286 (commit commit)))
24287 (file-name (git-file-name name version))
24288 (sha256
24289 (base32 "08zb7vc3v3wdxkzgi902vlc5ybfvm8fxrvm5drnwfsjj9873pbcb"))))
24290 (build-system emacs-build-system)
24291 (inputs
24292 `(("sqlite" ,sqlite)))
24293 (arguments
24294 `(#:phases
24295 (modify-phases %standard-phases
24296 (add-before 'build 'patch-exec-paths
24297 (lambda* (#:key inputs #:allow-other-keys)
24298 (let ((sqlite (assoc-ref inputs "sqlite"))
24299 (file "gnus-harvest.el"))
24300 (make-file-writable file)
24301 (emacs-substitute-variables file
24302 ("gnus-harvest-sqlite-program"
24303 (string-append sqlite "/bin/sqlite3"))))
24304 #t)))))
24305 (home-page "https://github.com/jwiegley/gnus-harvest")
24306 (synopsis
24307 "Harvest email addresses from read/written Gnus articles")
24308 (description "@code{gnus-harvest} notices email address in every message
24309 or post you read or write, and collects them in a SQLite database, which can
24310 be easily and quickly queried to determine the completion list. It optionally
24311 uses BBDB and Message-X.")
24312 (license license:gpl3+))))
24313
24314 (define-public emacs-auto-dictionary-mode
24315 (package
24316 (name "emacs-auto-dictionary-mode")
24317 (version "1.1")
24318 (source
24319 (origin
24320 (method git-fetch)
24321 (uri (git-reference
24322 (url "https://github.com/nschum/auto-dictionary-mode")
24323 (commit version)))
24324 (file-name (git-file-name name version))
24325 (sha256
24326 (base32 "191294k92qp8gmfypf0q8j8qrym96aqikzvyb9p03wqvbr3r1dsk"))))
24327 (build-system emacs-build-system)
24328 (home-page "http://nschum.de/src/emacs/auto-dictionary/")
24329 (synopsis "Automatic dictionary switcher for Emacs spell checking")
24330 (description "@code{auto-dictionary} is a minor mode that hooks into
24331 Flyspell's on-the-fly spell checking and extends these checks to also detect
24332 language. Auto-dictionary then sets @code{ispell-dictionary} to use the
24333 detected language.")
24334 (license license:gpl2+)))
24335
24336 (define-public emacs-persist
24337 (package
24338 (name "emacs-persist")
24339 (version "0.4")
24340 (source
24341 (origin
24342 (method url-fetch)
24343 (uri (string-append "https://elpa.gnu.org/packages/"
24344 "persist-" version ".tar"))
24345 (sha256
24346 (base32 "0gpxy41qawzss2526j9a7lys60vqma1lvamn4bfabwza7gfhac0q"))))
24347 (build-system emacs-build-system)
24348 (home-page "http://elpa.gnu.org/packages/persist.html")
24349 (synopsis "Persist variables between Emacs sessions")
24350 (description
24351 "This package provides variables which persist across sessions.
24352 Values are stored in a directory in @code{user-emacs-directory}, using
24353 one file per value. This makes it easy to delete or remove unused
24354 variables.")
24355 (license license:gpl3+)))
24356
24357 (define-public emacs-company-emoji
24358 (package
24359 (name "emacs-company-emoji")
24360 (version "2.5.2")
24361 (source
24362 (origin
24363 (method git-fetch)
24364 (uri (git-reference
24365 (url "https://github.com/dunn/company-emoji/")
24366 (commit version)))
24367 (file-name (git-file-name name version))
24368 (sha256
24369 (base32 "0r9zcbm3nb3zw5cwrkl098v5b49jbga5404bj7j55g6k4rwkjar2"))))
24370 (build-system emacs-build-system)
24371 (propagated-inputs
24372 `(("emacs-company" ,emacs-company)))
24373 (home-page "https://github.com/dunn/company-emoji/")
24374 (synopsis "Company completion back-end for emoji")
24375 (description
24376 "This library is a Company back-end providing auto-completion for
24377 emoji.")
24378 (license license:gpl3+)))
24379
24380 (define-public emacs-exiftool
24381 (package
24382 (name "emacs-exiftool")
24383 (version "0.3.2")
24384 (source
24385 (origin
24386 (method git-fetch)
24387 (uri (git-reference
24388 (url "https://git.systemreboot.net/exiftool.el/")
24389 (commit (string-append "v" version))))
24390 (file-name (git-file-name name version))
24391 (sha256
24392 (base32
24393 "0bv58is66cz21yhc0qqkp1z4nk13zfi2l7i6pjbhyi0g1n88qqyv"))))
24394 (build-system emacs-build-system)
24395 (arguments
24396 `(#:tests? #t
24397 #:test-command '("make" "-C" "tests")
24398 #:phases
24399 (modify-phases %standard-phases
24400 (add-after 'unpack 'configure
24401 (lambda* (#:key inputs #:allow-other-keys)
24402 (make-file-writable "exiftool.el")
24403 (emacs-substitute-variables "exiftool.el"
24404 ("exiftool-executable"
24405 (string-append (assoc-ref inputs "perl-image-exiftool")
24406 "/bin/exiftool")))
24407 #t)))))
24408 (inputs
24409 `(("perl-image-exiftool" ,perl-image-exiftool)))
24410 (home-page "https://git.systemreboot.net/exiftool.el/about/")
24411 (synopsis "Elisp wrapper around ExifTool")
24412 (description "@code{emacs-exiftool} is an Elisp wrapper around ExifTool.
24413 ExifTool supports reading and writing metadata in various formats including
24414 EXIF, XMP and IPTC.")
24415 (license license:gpl3+)))
24416
24417 (define-public emacs-password-generator
24418 (package
24419 (name "emacs-password-generator")
24420 (version "1.01")
24421 (home-page "https://github.com/zargener/emacs-password-genarator")
24422 (source
24423 (origin
24424 (method git-fetch)
24425 (uri (git-reference
24426 (url home-page)
24427 (commit "904cdb591a04305ba882ce19e1d117f5fa60f7d3")))
24428 (file-name (git-file-name name version))
24429 (sha256
24430 (base32
24431 "1qgvn79qz1h8ykm5i1qv2fja4v2y0g2i0n5sf7byhnqhqlwn63nv"))))
24432 (build-system emacs-build-system)
24433 (synopsis "Generate passwords inside Emacs")
24434 (description "@code{emacs-password-generator} provides simple functions to
24435 generate random passwords and insert them into the current buffer. It also
24436 supports generation of phonetic and numeric passwords.")
24437 (license license:artistic2.0)))
24438
24439 (define-public emacs-csv
24440 (package
24441 (name "emacs-csv")
24442 (version "2.1")
24443 (home-page "https://gitlab.com/u11/csv.el")
24444 (source
24445 (origin
24446 (method git-fetch)
24447 (uri (git-reference
24448 (url home-page)
24449 (commit (string-append "V" version))))
24450 (file-name (git-file-name name version))
24451 (sha256
24452 (base32
24453 "1vmazjrfcsa9aa9aw8bq5sazdhqvhxyj837dyw5lmh8gk7z0xdaa"))))
24454 (build-system emacs-build-system)
24455 (synopsis "Elisp functions for reading and parsing CSV files")
24456 (description
24457 "@code{csv.el} provides functions for reading and parsing @acronym{CSV,
24458 Comma-Separated Values} files. It follows the format as defined in RFC 4180
24459 @emph{Common Format and MIME Type for CSV
24460 Files} (@url{http://tools.ietf.org/html/rfc4180}).")
24461 (license license:gpl3+)))
24462
24463 (define-public emacs-org-journal
24464 (package
24465 (name "emacs-org-journal")
24466 (version "2.1.1")
24467 (source
24468 (origin
24469 (method git-fetch)
24470 (uri (git-reference
24471 (url "https://github.com/bastibe/org-journal")
24472 (commit version)))
24473 (file-name (git-file-name name version))
24474 (sha256
24475 (base32 "1p9i6v3bwi1ab576vc9qg1ki91197d6nkkg857s52zsan1zlkzzw"))))
24476 (build-system emacs-build-system)
24477 (home-page "https://github.com/bastibe/org-journal")
24478 (synopsis "Simple Org mode journaling mode")
24479 (description
24480 "Org Journal is a set of functions to maintain a simple personal diary /
24481 journal using in Emacs, adapted from
24482 @url{https://www.emacswiki.org/emacs/PersonalDiary}. Convenient bindings
24483 allow the creation of journal records in the current daily, weekly, monthly or
24484 yearly file and search within all records or specified time intervals. All
24485 records can be browsed and searched from the Emacs Calendar for convenience.
24486 All entries in a specified TODO state will be carried over to the next day.")
24487 (license license:bsd-3)))
24488
24489 (define-public emacs-org-static-blog
24490 (package
24491 (name "emacs-org-static-blog")
24492 (version "1.3.0")
24493 (source
24494 (origin
24495 (method git-fetch)
24496 (uri (git-reference
24497 (url "https://github.com/bastibe/org-static-blog")
24498 (commit version)))
24499 (file-name (git-file-name name version))
24500 (sha256
24501 (base32 "15iy3z8rglaqbx1fz14inh18ksgjsmq30b8hyv3lgjvcc9ssaiw0"))))
24502 (build-system emacs-build-system)
24503 (home-page "https://github.com/bastibe/org-static-blog")
24504 (synopsis
24505 "Simple Org mode based static blog generator")
24506 (description
24507 "@code{emacs-org-static-blog} is one more static blog generator, it
24508 focuses on being simple. All files are simple Org files in a directory. The
24509 only requirement is that every Org file must have a @samp{title} and
24510 a @samp{date} keywords, and optionally, a @samp{filetags} keyword.")
24511 (license license:bsd-3)))
24512
24513 (define-public emacs-ddskk
24514 ;; XXX: Upstream adds code names to their release tags, so version and code
24515 ;; name below need to be updated together.
24516 (let ((version "16.3")
24517 (code-name "Kutomatsunai"))
24518 (package
24519 (name "emacs-ddskk")
24520 (version version)
24521 (source
24522 (origin
24523 (method git-fetch)
24524 (uri (git-reference
24525 (url "https://github.com/skk-dev/ddskk")
24526 (commit (string-append "ddskk-" version "_" code-name))))
24527 (file-name (git-file-name name version))
24528 (sha256
24529 (base32 "0ln4x8f35z5y3kf9m718g223bn3lzcmw40jfjg2j5yi24ydf1wm9"))))
24530 (build-system gnu-build-system)
24531 (arguments
24532 `(#:modules ((guix build gnu-build-system)
24533 (guix build utils)
24534 (guix build emacs-utils))
24535 #:imported-modules (,@%gnu-build-system-modules
24536 (guix build emacs-utils))
24537 #:test-target "test"
24538 #:phases
24539 (modify-phases %standard-phases
24540 (replace 'configure
24541 (lambda* (#:key outputs #:allow-other-keys)
24542 (make-file-writable "SKK-MK")
24543 (emacs-substitute-variables "SKK-MK"
24544 ("PREFIX" (assoc-ref outputs "out"))
24545 ("LISPDIR" '(expand-file-name "/share/emacs/site-lisp" PREFIX))
24546 ("SKK_PREFIX" "")
24547 ("SKK_INFODIR" '(expand-file-name "info" PREFIX)))
24548 (for-each make-file-writable (find-files "./doc"))
24549 #t)))))
24550 (native-inputs
24551 `(("emacs-minimal" ,emacs-minimal)))
24552 (home-page "https://github.com/skk-dev/ddskk")
24553 (synopsis "Simple Kana to Kanji conversion program")
24554 (description
24555 "Daredevil SKK is a version of @acronym{SKK, Simple Kana to Kanji
24556 conversion program}, a Japanese input method on Emacs.")
24557 (license license:gpl2+))))
24558
24559 (define-public emacs-objed
24560 (package
24561 (name "emacs-objed")
24562 (version "0.8.3")
24563 (source
24564 (origin
24565 (method url-fetch)
24566 (uri (string-append
24567 "https://elpa.gnu.org/packages/objed-" version ".tar"))
24568 (sha256
24569 (base32
24570 "1s38d6bvggdk5p45ww1jb4gxifzgjwgw1m6ar920nlg0j4fgbcvr"))))
24571 (build-system emacs-build-system)
24572 (home-page "https://github.com/clemera/objed")
24573 (synopsis "Navigate and edit text objects")
24574 (description
24575 "@code{emacs-objed} allows navigating and editing text objects. It
24576 enables modal editing and composition of commands, too. It combines ideas of
24577 other Editors like Vim or Kakoune and tries to align them with regular Emacs
24578 conventions.")
24579 (license license:gpl3+)))
24580
24581 (define-public emacs-haskell-snippets
24582 ;; The commit below is 5 commits ahead of release, and includes a build fix.
24583 (let ((commit "07b0f460b946fd1be26c29652cb0468b47782f3a"))
24584 (package
24585 (name "emacs-haskell-snippets")
24586 (version (git-version "0.1.0" "0" commit))
24587 (source
24588 (origin
24589 (method git-fetch)
24590 (uri
24591 (git-reference
24592 (url "https://github.com/haskell/haskell-snippets")
24593 (commit commit)))
24594 (file-name (git-file-name name version))
24595 (sha256
24596 (base32 "0a7y3awi9hcyahggf0ghsdwvsmrhr9yq634wy9lkqjzrm2hqj0ci"))))
24597 (build-system emacs-build-system)
24598 (arguments
24599 `(#:phases
24600 (modify-phases %standard-phases
24601 (add-after 'install 'install-snippets
24602 (lambda* (#:key outputs #:allow-other-keys)
24603 (let* ((out (assoc-ref outputs "out"))
24604 (snippets
24605 (string-append
24606 out "/share/emacs/site-lisp/snippets/haskell-mode")))
24607 (mkdir-p snippets)
24608 (copy-recursively "snippets/haskell-mode" snippets)
24609 #t))))))
24610 (propagated-inputs
24611 `(("emacs-yasnippet" ,emacs-yasnippet)))
24612 (home-page "https://github.com/haskell/haskell-snippets")
24613 (synopsis "Official collection of YASnippet Haskell snippets for Emacs")
24614 (description "Haskell-Snippets is a collection of YASnippet Haskell
24615 snippets for Emacs.")
24616 (license license:expat))))
24617
24618 (define-public emacs-org-roam
24619 (package
24620 (name "emacs-org-roam")
24621 (version "1.2.1")
24622 (source
24623 (origin
24624 (method git-fetch)
24625 (uri (git-reference
24626 (url "https://github.com/org-roam/org-roam")
24627 (commit (string-append "v" version))))
24628 (file-name (git-file-name name version))
24629 (sha256
24630 (base32 "10s7mcyshgj6yva4k1j086xm61k9zck3r586f1maar5b2z6hwvsa"))))
24631 (build-system emacs-build-system)
24632 (propagated-inputs
24633 `(("emacs-company" ,emacs-company)
24634 ("emacs-dash" ,emacs-dash)
24635 ("emacs-emacsql-sqlite3" ,emacs-emacsql-sqlite3)
24636 ("emacs-f" ,emacs-f)
24637 ("emacs-org-ref" ,emacs-org-ref)
24638 ("emacs-s" ,emacs-s)))
24639 (home-page "https://github.com/org-roam/org-roam/")
24640 (synopsis "Non-hierarchical note-taking with Org mode")
24641 (description "Emacs Org Roam is a solution for taking non-hierarchical
24642 notes with Org mode. Notes are captured without hierarchy and are connected
24643 by tags. Notes can be found and created quickly. Org Roam should also work
24644 as a plug-and-play solution for anyone already using Org mode for their
24645 personal wiki.")
24646 (license license:gpl3+)))
24647
24648 (define-public emacs-org-generate
24649 (package
24650 (name "emacs-org-generate")
24651 (version "1.0.0")
24652 (source (origin
24653 (method git-fetch)
24654 (uri (git-reference
24655 (url "https://github.com/conao3/org-generate.el.git")
24656 (commit (string-append "v" version))))
24657 (file-name (git-file-name name version))
24658 (sha256
24659 (base32
24660 "0z2frp5mn3lp2xskwanw2rncrwa50x3aphy87vfxmhx4fqlqrzy8"))))
24661 (inputs
24662 `(("emacs-cort" ,emacs-cort))) ;tests suite
24663 (propagated-inputs
24664 `(("emacs-mustache" ,emacs-mustache)))
24665 (arguments
24666 `(#:tests? #t
24667 #:test-command '("emacs" "--batch" "--quick"
24668 "--directory=." "--load=org-generate-tests.el"
24669 "--funcall=cort-test-run")))
24670 (build-system emacs-build-system)
24671 (home-page "https://github.com/conao3/org-generate.el")
24672 (synopsis "Generate template files and folders from Org document")
24673 (description "This package allows to generate files and folders from Emacs
24674 org-mode templates.")
24675 (license license:gpl3+)))
24676
24677 (define-public emacs-uml-mode
24678 ;; Package has no release. Version is extracted from "Version:" keyword in
24679 ;; main file.
24680 (let ((commit "4c37ac1c4424b2313cd8f16ba48a98a4cc214200")
24681 (revision "1"))
24682 (package
24683 (name "emacs-uml-mode")
24684 (version (git-version "0.0.4" revision commit))
24685 (source
24686 (origin
24687 (method git-fetch)
24688 (uri (git-reference
24689 (url "https://github.com/ianxm/emacs-uml")
24690 (commit commit)))
24691 (file-name (git-file-name name version))
24692 (sha256
24693 (base32 "145i4srnfvd1vyibri2a1l6p9mbjvkkwlrpi41134pbarqffcnka"))))
24694 (build-system emacs-build-system)
24695 (home-page "https://github.com/ianxm/emacs-uml")
24696 (synopsis "Minor mode for editing ASCII UML sequence diagrams")
24697 (description "Emacs UML mode is a minor mode that makes it easy to build
24698 ASCII UML sequence diagrams in Emacs, which can be embedded in source code,
24699 comments or emails.")
24700 (license license:gpl3+))))
24701
24702 (define-public emacs-trashed
24703 (package
24704 (name "emacs-trashed")
24705 (version "1.9.0")
24706 (source
24707 (origin
24708 (method git-fetch)
24709 (uri (git-reference
24710 (url "https://github.com/shingo256/trashed/")
24711 (commit version)))
24712 (file-name (git-file-name name version))
24713 (sha256
24714 (base32 "13grdi12iwlw4fiphdfmvclfpbr6ajlgfbfyi7v41z8k3rxz4ypz"))))
24715 (build-system emacs-build-system)
24716 (home-page "https://github.com/shingo256/trashed/")
24717 (synopsis "View and edit system trash can in Emacs")
24718 (description "Open, view, browse, restore or permanently delete trashed
24719 files or directories in trash can with Dired-like look and feel. The trash
24720 can has to be compliant with freedesktop.org. In Emacs, you can trash files by
24721 deleting them with @code{(setq delete-by-moving-to-trash t)}. This package
24722 provides a simple but convenient user interface to manage those trashed
24723 files.")
24724 (license license:gpl3+)))
24725
24726 (define-public emacs-plantuml-mode
24727 (package
24728 (name "emacs-plantuml-mode")
24729 (version "1.4.1")
24730 (source
24731 (origin
24732 (method git-fetch)
24733 (uri (git-reference
24734 (url "https://github.com/skuro/plantuml-mode")
24735 (commit (string-append "v" version))))
24736 (file-name (git-file-name name version))
24737 (sha256
24738 (base32 "0yp41d2dmf3sx7qnl5x0zdjcr9y71b2wwc9m0q31v22xqn938ipc"))))
24739 (arguments
24740 '(#:phases
24741 (modify-phases %standard-phases
24742 (add-after 'unpack 'use-local-plantuml
24743 (lambda* (#:key inputs #:allow-other-keys)
24744 (let ((plantuml (assoc-ref inputs "plantuml"))
24745 (file "plantuml-mode.el"))
24746 (chmod file #o644)
24747 (emacs-substitute-variables file
24748 ("plantuml-jar-path"
24749 (string-append plantuml "/share/java/plantuml.jar"))
24750 ("plantuml-executable-path"
24751 (string-append plantuml "/bin/plantuml"))
24752 ("plantuml-server-url" 'nil)
24753 ("plantuml-default-exec-mode" ''executable))
24754 (emacs-batch-edit-file file
24755 `(progn (progn
24756 (goto-char (point-min))
24757 (re-search-forward "(defun plantuml-download-jar")
24758 (beginning-of-line)
24759 (kill-sexp))
24760 (basic-save-buffer)))
24761 #t))))))
24762 (inputs
24763 `(("plantuml" ,plantuml)))
24764 (propagated-inputs
24765 `(("emacs-dash" ,emacs-dash)))
24766 (build-system emacs-build-system)
24767 (home-page "https://github.com/skuro/plantuml-mode")
24768 (synopsis "Major mode for editing PlantUML sources")
24769 (description "This package provides a major mode for editing PlantUML
24770 sources. It features syntax highlighting, autocompletion, preview of buffer
24771 or region and use of locally installed binaries.")
24772 (license license:gpl3+)))
24773
24774 (define-public emacs-shell-pop
24775 (let ((commit "4b4394037940a890a313d715d203d9ead2d156a6")
24776 (revision "0"))
24777 (package
24778 (name "emacs-shell-pop")
24779 (version (git-version "0.64" revision commit))
24780 (source
24781 (origin
24782 (method git-fetch)
24783 (uri (git-reference
24784 (url "https://github.com/kyagi/shell-pop-el")
24785 (commit commit)))
24786 (file-name (git-file-name name version))
24787 (sha256
24788 (base32 "0s77n6b9iw1x3dv91ybkpgy3zvqd12si7zw3lg0m2b6j1akrawsg"))))
24789 (build-system emacs-build-system)
24790 (home-page "https://github.com/kyagi/shell-pop-el")
24791 (synopsis "Utility which helps with pop up shell buffer")
24792 (description
24793 "This Emacs utility helps you pop up and pop out shell buffer window
24794 easily. Four pre-set options are: @samp{shell}, @samp{terminal},
24795 @samp{ansi-term}, and @samp{eshell}. You can also set your custom shell if
24796 you use some other configuration.")
24797 (license license:gpl3+))))
24798
24799 (define-public emacs-extmap
24800 (package
24801 (name "emacs-extmap")
24802 (version "1.1.1")
24803 (source
24804 (origin
24805 (method git-fetch)
24806 (uri (git-reference
24807 (url "https://github.com/doublep/extmap")
24808 (commit version)))
24809 (file-name (git-file-name name version))
24810 (sha256
24811 (base32
24812 "09kia3mr4si8kn46kyiza9nl669b22vmgc70ng3mqz742lph5siw"))))
24813 (build-system emacs-build-system)
24814 (home-page "https://github.com/doublep/extmap")
24815 (synopsis "Externally-stored constant mapping for Emacs Lisp")
24816 (description "A very simple package that lets you build a
24817 read-only, constant database that maps Emacs Lisp symbols to
24818 arbitrary Emacs Lisp objects.")
24819 (license license:gpl3+)))
24820
24821 (define-public emacs-csound-mode
24822 (package
24823 (name "emacs-csound-mode")
24824 (version "0.2.1")
24825 (source
24826 (origin
24827 (method git-fetch)
24828 (uri (git-reference
24829 (url "https://github.com/hlolli/csound-mode")
24830 (commit version)))
24831 (file-name (git-file-name name version))
24832 (sha256
24833 (base32
24834 "1c88ak0jaj51fwiqniqxd7xyk23wjl9m57znzm8j267ld8g12znp"))))
24835 (build-system emacs-build-system)
24836 (arguments
24837 `(#:phases
24838 (modify-phases %standard-phases
24839 (add-after 'unpack 'disable-breaking-compilation
24840 (lambda _
24841 (for-each (lambda (file)
24842 (chmod file #o600) ; needed to write changes.
24843 (emacs-batch-disable-compilation file))
24844 '("csound-font-lock.el"))
24845 #t)))))
24846 (inputs
24847 `(("emacs-highlight" ,emacs-highlight)
24848 ("emacs-multi" ,emacs-multi)
24849 ("emacs-shut-up" ,emacs-shut-up)))
24850 (home-page "https://github.com/hlolli/csound-mode")
24851 (synopsis "Emacs major mode for coding in CSound")
24852 (description "Provides both a basic major mode for editing
24853 CSound files, as well as a REPL for fast feedback when composing
24854 and sound-designing.")
24855 (license license:gpl3+)))
24856
24857 (define-public emacs-multi
24858 (package
24859 (name "emacs-multi")
24860 (version "2.0.1")
24861 (source
24862 (origin
24863 (method git-fetch)
24864 (uri (git-reference
24865 (url "https://github.com/kurisuwhyte/emacs-multi")
24866 (commit (string-append "v" version))))
24867 (file-name (git-file-name name version))
24868 (sha256
24869 (base32
24870 "11zabs7qpdhri6n90ck7pgwcbz46d813nyl73h5m1i8jvz1wzx7v"))))
24871 (build-system emacs-build-system)
24872 (home-page "https://github.com/kurisuwhyte/emacs-multi")
24873 (synopsis "Clojure-style multi-methods for Emacs Lisp")
24874 (description "Provides Emacs Lisp with a form of polymorphism
24875 by way of predicate dispatching. Methods consist of a dispatch
24876 function, and a series of branches. The dispatch function is
24877 applied to the arguments, and the result value is checked against
24878 the expectations of each branch to define which one to invoke.")
24879 (license license:expat)))
24880
24881 (define-public emacs-highlight
24882 (let ((commit "9258a2b8362d737115cbd87618f947eadb140411")
24883 (revision "1"))
24884 (package
24885 (name "emacs-highlight")
24886 (version "0.0.0")
24887 (source
24888 (origin
24889 (method git-fetch)
24890 (uri (git-reference
24891 (url "https://github.com/emacsmirror/highlight/")
24892 (commit commit)))
24893 (file-name (git-file-name name commit))
24894 (sha256
24895 (base32
24896 "0pbqzgbfkm8smi23j94hirxh2r1yc0ipyjbbv1y906br6bx5c1a8"))))
24897 (build-system emacs-build-system)
24898 (home-page "https://github.com/emacsmirror/highlight")
24899 (synopsis "Highlighting commands for GNU Emacs")
24900 (description "This library adds the possibility for ad-hoc
24901 applying highlighting to any face in GNU Emacs. The functionality
24902 of this library depends on overlays, which by default are not
24903 picked up when copy-pasting text from buffer to buffer.")
24904 (license license:gpl2+))))
24905
24906 (define-public emacs-org-webring
24907 (package
24908 (name "emacs-org-webring")
24909 (version "1.9")
24910 (source
24911 (origin
24912 (method git-fetch)
24913 (uri (git-reference
24914 (url "https://git.sr.ht/~brettgilio/org-webring")
24915 (commit version)))
24916 (file-name (git-file-name name version))
24917 (sha256
24918 (base32
24919 "09lm2h5d6xcdwilbmi6xs4qz33d0442m9iys9k36q9vhhakl7w4x"))))
24920 (build-system emacs-build-system)
24921 (arguments
24922 `(#:phases
24923 (modify-phases %standard-phases
24924 (add-after 'install 'install-assets
24925 (lambda* (#:key outputs #:allow-other-keys)
24926 (let* ((out (assoc-ref outputs "out"))
24927 (assets
24928 (string-append out "/share/emacs/org-webring-assets")))
24929 (mkdir-p assets)
24930 (copy-recursively "assets" assets)
24931 #t))))))
24932 (propagated-inputs
24933 `(("emacs-xmlgen" ,emacs-xmlgen)))
24934 (home-page "https://sr.ht/~brettgilio/org-webring")
24935 (synopsis "Generate webrings for Org-based sites / blogs")
24936 (description "Org-webring is an alternative implementation of a
24937 feed-based webring, taking inspiration from openring by Drew DeVault.
24938 Intended to integrate with Org-based websites and blogs (either
24939 directly, or indirectly, as in ox-hugo), it will fetch a given list of
24940 web feed files and correctly parse and format the elements to be
24941 displayed for sharing.")
24942 (license license:gpl3+)))
24943
24944 (define-public emacs-scpaste
24945 (let ((commit "cd4fa0aafecd839736e0b6cba68b4fc4d7045472")
24946 (revision "0"))
24947 (package
24948 (name "emacs-scpaste")
24949 (version "0.6.5")
24950 (source
24951 (origin
24952 (method git-fetch)
24953 (uri (git-reference
24954 (url "https://git.sr.ht/~technomancy/scpaste")
24955 (commit commit)))
24956 (file-name (git-file-name name commit))
24957 (sha256
24958 (base32
24959 "1nvwbwl26z03963g9c82b3ggm39r95z1vp7c9qsa9mjm46dyq27w"))))
24960 (build-system emacs-build-system)
24961 (propagated-inputs
24962 `(("emacs-htmlize" ,emacs-htmlize)))
24963 (home-page "https://git.sr.ht/~technomancy/scpaste")
24964 (synopsis "Emacs-based static HTML pastebin")
24965 (description "This library will place an HTML copy of a
24966 buffer on an active webserver to which the user has SSH access.
24967 It is similar in purpose to services such as Gist or Pastebin,
24968 but is much simpler since it assumes the user has access to a
24969 publicly-accessible HTTP server.")
24970 (license license:gpl3+))))
24971
24972 (define-public emacs-company-reftex
24973 (package
24974 (name "emacs-company-reftex")
24975 (version "0.1.0")
24976 (source
24977 (origin
24978 (method git-fetch)
24979 (uri (git-reference
24980 (url "https://github.com/TheBB/company-reftex")
24981 (commit "275ef708f08d3bf0eb30632148e5c6184eeaacdb")))
24982 (file-name (git-file-name name version))
24983 (sha256
24984 (base32
24985 "118cgw5lsffqdqz95mnkw36mmnsbg9m52r2np4m7v14mjjwr9fby"))))
24986 (build-system emacs-build-system)
24987 (propagated-inputs
24988 `(("emacs-company" ,emacs-company)
24989 ("emacs-s" ,emacs-s)))
24990 (home-page "https://github.com/TheBB/company-reftex")
24991 (synopsis "RefTeX backends for company-mode")
24992 (description "This package provides company-mode backends for completing
24993 label references and citations in LaTeX. It is based on RefTeX, which is
24994 included with Emacs.")
24995 (license license:gpl3+)))
24996
24997 (define-public emacs-html-to-hiccup
24998 ;; Package has no release. Version is extracted from "Version:" keyword in
24999 ;; main file.
25000 (let ((commit "50a52e2b0d13d865187acdf775b8203d5003f2f1")
25001 (revision "0"))
25002 (package
25003 (name "emacs-html-to-hiccup")
25004 (version (git-version "1" revision commit))
25005 (source
25006 (origin
25007 (method git-fetch)
25008 (uri (git-reference
25009 (url "https://github.com/plexus/html-to-hiccup")
25010 (commit commit)))
25011 (file-name (git-file-name name version))
25012 (sha256
25013 (base32 "1qi092mw2n08v6yr0j6hlpx0pnlcnhxjqbsrlw9pn4yin6zk91yp"))))
25014 (build-system emacs-build-system)
25015 (propagated-inputs
25016 `(("dash" ,emacs-dash)
25017 ("s" ,emacs-s)))
25018 (home-page "https://github.com/plexus/html-to-hiccup")
25019 (synopsis "Turn HTML into Hiccup syntax")
25020 (description
25021 "This is an Emacs package that turns HTML into Hiccup syntax
25022 which is a popular notation to use when doing Clojure/ClojureScript
25023 web development.")
25024 ;; There is a conflict between the repository official LICENSE
25025 ;; file and the header of the main elisp file which indicates
25026 ;; that it is licensed under the GPL version 3 or later.
25027 (license (list license:mpl2.0 license:gpl3+)))))
25028
25029 (define-public emacs-iter2
25030 (package
25031 (name "emacs-iter2")
25032 (version "1.0")
25033 (source
25034 (origin
25035 (method git-fetch)
25036 (uri (git-reference
25037 (url "https://github.com/doublep/iter2")
25038 (commit version)))
25039 (file-name (git-file-name name version))
25040 (sha256
25041 (base32 "0gaq3z2v1q4r9mkyq71dzmqakhi0p8g7ph4z0n3a11rvyc3z9ykx"))))
25042 (build-system emacs-build-system)
25043 (home-page "https://github.com/doublep/iter2")
25044 (synopsis "Reimplementation of Elisp generators")
25045 (description "@code{iter2} is a fully compatible reimplementation of
25046 built-in generator package. It provides @code{iter2-defun} and
25047 @code{iter2-lambda} forms that can be used in place of @code{iter-defun} and
25048 @code{iter-lambda}. All other functions and macros (e.g. @code{iter-yield},
25049 @code{iter-next}) are intentionally not duplicated: just use the ones from the
25050 original package.")
25051 (license license:gpl3+)))
25052
25053 (define-public emacs-promise
25054 (package
25055 (name "emacs-promise")
25056 (version "1.1")
25057 (source
25058 (origin
25059 (method git-fetch)
25060 (uri (git-reference
25061 (url "https://github.com/chuntaro/emacs-promise")
25062 (commit version)))
25063 (file-name (git-file-name name version))
25064 (sha256
25065 (base32 "1xb34zdbwjvahfhycjphdkm925kgd22dr298c57hwxza4ljc2hxj"))))
25066 (build-system emacs-build-system)
25067 (home-page "https://github.com/chuntaro/emacs-promise")
25068 (synopsis "Promises/A+ for Emacs")
25069 (description "This is a simple implementation of Promises/A+.
25070
25071 This implementation ports the following Promises/A+ features
25072 faithfully. See @url{https://github.com/then/promise}.
25073
25074 @itemize
25075 @item The same API as the JavaScript version of Promise can be used.
25076 @item It has all the @code{then}, @code{catch}, @code{resolve}, @code{reject},
25077 @code{all}, @code{race}, etc.
25078 @item It supports \"thenable\".
25079 @item It supports \"Inheritance of Promise\".
25080 @item It supports \"rejection-tracking\".
25081 @end itemize\n")
25082 (license license:gpl3+)))
25083
25084 (define-public emacs-async-await
25085 (package
25086 (name "emacs-async-await")
25087 (version "1.1")
25088 (source
25089 (origin
25090 (method git-fetch)
25091 (uri (git-reference
25092 (url "https://github.com/chuntaro/emacs-async-await")
25093 (commit version)))
25094 (file-name (git-file-name name version))
25095 (sha256
25096 (base32 "0aav9qdswnw7ynqlzn0sm34as5fj2d85syxgg8zjabzp6646ay29"))))
25097 (build-system emacs-build-system)
25098 (propagated-inputs
25099 `(("promise" ,emacs-promise)
25100 ("iter2" ,emacs-iter2)))
25101 (home-page "https://github.com/chuntaro/emacs-async-await")
25102 (synopsis "Async/Await for Emacs")
25103 (description "This is a simple implementation of Async/Await inspired by
25104 the TypeScript implementation.")
25105 (license license:gpl3+)))
25106
25107 (define-public emacs-rocket-chat
25108 ;; No release.
25109 (let ((commit "96fe27a8678de5ae4061f635108a7192eee13f98"))
25110 (package
25111 (name "emacs-rocket-chat")
25112 (version (git-version "0.0.0" "1" commit))
25113 (source
25114 (origin
25115 (method git-fetch)
25116 (uri (git-reference
25117 (url "https://github.com/4hiziri/rocket-chat")
25118 (commit commit)))
25119 (file-name (git-file-name name version))
25120 (sha256
25121 (base32 "02a4j0yy7330kfr3rd3k2agdj01ii6989nki598anbamq6xvj5ql"))))
25122 (build-system emacs-build-system)
25123 (propagated-inputs
25124 `(("async-await" ,emacs-async-await)
25125 ("request" ,emacs-request)))
25126 (home-page "https://github.com/4hiziri/rocket-chat")
25127 (synopsis "Emacs Rocket.chat client")
25128 (description "This package provides an Emacs client for the Rocket.chat
25129 service.")
25130 (license license:expat))))