gnu: emacs-telega: Remove comment about libtgvoip linkage.
[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 Jan Nieuwenhuizen <janneke@gnu.org>
29 ;;; Copyright © 2017, 2018, 2019, 2020 Oleg Pykhalov <go.wigust@gmail.com>
30 ;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com>
31 ;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com>
32 ;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
33 ;;; Copyright © 2017 Mike Gerwitz <mtg@gnu.org>
34 ;;; Copyright © 2017, 2018, 2019, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
35 ;;; Copyright © 2018 Sohom Bhattacharjee <soham.bhattacharjee15@gmail.com>
36 ;;; Copyright © 2018, 2019 Mathieu Lirzin <mthl@gnu.org>
37 ;;; Copyright © 2018, 2019, 2020 Pierre Neidhardt <mail@ambrevar.xyz>
38 ;;; Copyright © 2018, 2019 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
39 ;;; Copyright © 2018, 2019 Jack Hill <jackhill@jackhill.us>
40 ;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
41 ;;; Copyright © 2018 Alex Branham <alex.branham@gmail.com>
42 ;;; Copyright © 2018 Thorsten Wilms <t_w_@freenet.de>
43 ;;; Copyright © 2018, 2019, 2020 Pierre Langlois <pierre.langlois@gmx.com>
44 ;;; Copyright © 2018, 2019, 2020 Brett Gilio <brettg@gnu.org>
45 ;;; Copyright © 2019, 2020 Dimakakos Dimos <bendersteed@teknik.io>
46 ;;; Copyright © 2019, 2020 Brian Leung <bkleung89@gmail.com>
47 ;;; Copyright © 2019 mikadoZero <mikadozero@yandex.com>
48 ;;; Copyright © 2019 Gabriel Hondet <gabrielhondet@gmail.com>
49 ;;; Copyright © 2019, 2020 Joseph LaFreniere <joseph@lafreniere.xyz>
50 ;;; Copyright © 2019 Amar Singh <nly@disroot.org>
51 ;;; Copyright © 2019 Baptiste Strazzulla <bstrazzull@hotmail.fr>
52 ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
53 ;;; Copyright © 2019 Jens Mølgaard <jens@zete.tk>
54 ;;; Copyright © 2019, 2020 Amin Bandali <bandali@gnu.org>
55 ;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org>
56 ;;; Copyright © 2019 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
57 ;;; Copyright © 2019 Stephen Webber <montokapro@gmail.com>
58 ;;; Copyright © 2019 Leo Prikler <leo.prikler@student.tugraz.at>
59 ;;; Copyright © 2019 David Wilson <david@daviwil.com>
60 ;;; Copyright © 2020 Paul Garlick <pgarlick@tourbillion-technology.com>
61 ;;; Copyright © 2020 Robert Smith <robertsmith@posteo.net>
62 ;;; Copyright © 2020 Evan Straw <evan.straw99@gmail.com>
63 ;;; Copyright © 2020 Masaya Tojo <masaya@tojo.tokyo>
64 ;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net>
65 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
66 ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
67 ;;; Copyright © 2020 6033fe7de85d <6033fe7de85d@airmail.cc>
68 ;;; Copyright © 2020 John Soo <jsoo1@asu.edu>
69 ;;; Copyright © 2020 Jérémy Korwin-Zmijowski <jeremy@korwin-zmijowski.fr>
70 ;;; Copyright © 2020 Alberto Eleuterio Flores Guerrero <barbanegra+guix@posteo.mx>
71 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
72 ;;; Copyright © 2020 pinoaffe <pinoaffe@airmail.cc>
73 ;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
74 ;;; Copyright © 2020 Ryan Desfosses <rdes@protonmail.com>
75 ;;; Copyright © 2020 Marcin Karpezo <sirmacik@wioo.waw.pl>
76 ;;; Copyright © 2020 Fredrik Salomonsson <plattfot@gmail.com>
77 ;;; Copyright © 2020 Ryan Desfosses <rdes@protonmail.com>
78 ;;; Copyright © 2020 Eric Bavier <bavier@posteo.net>
79 ;;; Copyright © 2020 Morgan Smith <Morgan.J.Smith@outlook.com>
80 ;;; Copyright © 2020 Peng Mei Yu <i@pengmeiyu.com>
81 ;;;
82 ;;; This file is part of GNU Guix.
83 ;;;
84 ;;; GNU Guix is free software; you can redistribute it and/or modify it
85 ;;; under the terms of the GNU General Public License as published by
86 ;;; the Free Software Foundation; either version 3 of the License, or (at
87 ;;; your option) any later version.
88 ;;;
89 ;;; GNU Guix is distributed in the hope that it will be useful, but
90 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
91 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
92 ;;; GNU General Public License for more details.
93 ;;;
94 ;;; You should have received a copy of the GNU General Public License
95 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
96
97 (define-module (gnu packages emacs-xyz)
98 #:use-module ((guix licenses) #:prefix license:)
99 #:use-module (guix packages)
100 #:use-module (guix cvs-download)
101 #:use-module (guix download)
102 #:use-module (guix bzr-download)
103 #:use-module (guix git-download)
104 #:use-module (guix hg-download)
105 #:use-module (guix build-system gnu)
106 #:use-module (guix build-system cmake)
107 #:use-module (guix build-system emacs)
108 #:use-module (guix build-system glib-or-gtk)
109 #:use-module (guix build-system perl)
110 #:use-module (guix build-system trivial)
111 #:use-module (gnu packages)
112 #:use-module (gnu packages admin)
113 #:use-module (gnu packages audio)
114 #:use-module (gnu packages bash)
115 #:use-module (gnu packages cmake)
116 #:use-module (gnu packages code)
117 #:use-module (gnu packages cpp)
118 #:use-module (gnu packages curl)
119 #:use-module (gnu packages databases)
120 #:use-module (gnu packages dictionaries)
121 #:use-module (gnu packages emacs)
122 #:use-module (gnu packages guile)
123 #:use-module (gnu packages gtk)
124 #:use-module (gnu packages gnome)
125 #:use-module (gnu packages haskell-apps)
126 #:use-module (gnu packages ibus)
127 #:use-module (gnu packages ncurses)
128 #:use-module (gnu packages python)
129 #:use-module (gnu packages python-xyz)
130 #:use-module (gnu packages telephony)
131 #:use-module (gnu packages terminals)
132 #:use-module (gnu packages tex)
133 #:use-module (gnu packages texinfo)
134 #:use-module (gnu packages tcl)
135 #:use-module (gnu packages tls)
136 #:use-module (gnu packages pkg-config)
137 #:use-module (gnu packages xorg)
138 #:use-module (gnu packages lesstif)
139 #:use-module (gnu packages llvm)
140 #:use-module (gnu packages image)
141 #:use-module (gnu packages linux)
142 #:use-module (gnu packages libevent)
143 #:use-module (gnu packages lua)
144 #:use-module (gnu packages music)
145 #:use-module (gnu packages version-control)
146 #:use-module (gnu packages imagemagick)
147 #:use-module (gnu packages w3m)
148 #:use-module (gnu packages web)
149 #:use-module (gnu packages wget)
150 #:use-module (gnu packages autotools)
151 #:use-module (gnu packages base)
152 #:use-module (gnu packages compression)
153 #:use-module (gnu packages node)
154 #:use-module (gnu packages xml)
155 #:use-module (gnu packages glib)
156 #:use-module (gnu packages acl)
157 #:use-module (gnu packages mail)
158 #:use-module (gnu packages messaging)
159 #:use-module (gnu packages package-management)
160 #:use-module (gnu packages perl)
161 #:use-module (gnu packages pdf)
162 #:use-module (gnu packages ruby)
163 #:use-module (gnu packages rust-apps)
164 #:use-module (gnu packages scheme)
165 #:use-module (gnu packages speech)
166 #:use-module (gnu packages xiph)
167 #:use-module (gnu packages mp3)
168 #:use-module (gnu packages gettext)
169 #:use-module (gnu packages fribidi)
170 #:use-module (gnu packages gd)
171 #:use-module (gnu packages fontutils)
172 #:use-module (gnu packages password-utils)
173 #:use-module (gnu packages pulseaudio)
174 #:use-module (gnu packages sphinx)
175 #:use-module (gnu packages xdisorg)
176 #:use-module (gnu packages shells)
177 #:use-module (gnu packages sqlite)
178 #:use-module (gnu packages gnupg)
179 #:use-module (gnu packages video)
180 #:use-module (gnu packages haskell-xyz)
181 #:use-module (gnu packages wordnet)
182 #:use-module (gnu packages photo)
183 #:use-module (gnu packages uml)
184 #:use-module (gnu packages finance)
185 #:use-module (guix utils)
186 #:use-module (srfi srfi-1)
187 #:use-module (ice-9 match))
188
189 ;;;
190 ;;; Emacs hacking.
191 ;;;
192
193 (define-public emacs-geiser
194 (package
195 (name "emacs-geiser")
196 (version "0.11.2")
197 (source (origin
198 (method git-fetch)
199 (uri (git-reference
200 (url "https://gitlab.com/jaor/geiser/")
201 (commit version)))
202 (file-name (git-file-name name version))
203 (sha256
204 (base32
205 "1khi1bghsjx6cs5acizmlbw9z19s4qycnji9krdbn42cbpv0rysv"))))
206 (build-system gnu-build-system)
207 (arguments
208 '(#:phases
209 (modify-phases %standard-phases
210 (add-after 'install 'post-install
211 (lambda* (#:key outputs #:allow-other-keys)
212 (symlink "geiser-install.el"
213 (string-append (assoc-ref outputs "out")
214 "/share/emacs/site-lisp/"
215 "geiser-autoloads.el"))
216 #t)))))
217 (inputs `(("guile" ,guile-2.2)))
218 (native-inputs
219 `(("emacs" ,emacs-minimal)
220 ("autoconf" ,autoconf)
221 ("automake" ,automake)
222 ("texinfo" ,texinfo)))
223 (home-page "https://nongnu.org/geiser/")
224 (synopsis "Collection of Emacs modes for Guile and Racket hacking")
225 (description
226 "Geiser is a collection of Emacs major and minor modes that conspire with
227 one or more Scheme implementations to keep the Lisp Machine Spirit alive. The
228 continuously running Scheme interpreter takes the center of the stage in
229 Geiser. A bundle of Elisp shims orchestrates the dialog between the Scheme
230 implementation, Emacs and, ultimately, the schemer, giving them access to live
231 metadata.")
232 (license license:bsd-3)))
233
234 (define-public emacs-ac-geiser
235 (let ((commit "93818c936ee7e2f1ba1b315578bde363a7d43d05")
236 (revision "0"))
237 (package
238 (name "emacs-ac-geiser")
239 (version (git-version "0.1" revision commit))
240 (source
241 (origin
242 (uri (git-reference
243 (url "https://github.com/xiaohanyu/ac-geiser")
244 (commit commit)))
245 (method git-fetch)
246 (sha256
247 (base32 "00n2qa26yilaj837n1yp6lbqa4gf30nkkbvanl7m9ih7k48ssqmw"))
248 (file-name (git-file-name name version))))
249 (build-system emacs-build-system)
250 (propagated-inputs
251 `(("geiser" ,emacs-geiser)
252 ("auto-complete" ,emacs-auto-complete)))
253 (synopsis "Auto-complete backend for geiser")
254 (description
255 "This package provides an auto-complete source for Scheme projects
256 using geiser.")
257 (license license:bsd-3)
258 (home-page "https://github.com/xiaohanyu/ac-geiser"))))
259
260 (define-public emacs-hyperbole
261 (package
262 (name "emacs-hyperbole")
263 (version "7.1.2")
264 (source
265 (origin
266 (method url-fetch)
267 (uri (string-append "https://elpa.gnu.org/packages/"
268 "hyperbole-" version ".tar"))
269 (sha256
270 (base32 "1bspmqnbniwr9385wh823dsr5fgch5qnlkf45s4vi0nvg8jdccp1"))
271 (patches
272 (search-patches "emacs-hyperbole-toggle-messaging.patch"))))
273 (build-system emacs-build-system)
274 (arguments
275 `(#:include '("DEMO"
276 "DEMO-ROLO.otl"
277 "HY-ABOUT"
278 "\\.el$"
279 "\\.info$"
280 "\\.kotl$")
281 #:phases
282 (modify-phases %standard-phases
283 ;; Fix build issues about missing "domainname" and "hpmap:dir-user"
284 ;; parent dir.
285 (add-after 'unpack 'fix-build
286 (lambda* (#:key inputs #:allow-other-keys)
287 (substitute* "hypb.el"
288 (("/bin/domainname")
289 (string-append (assoc-ref inputs "inetutils")
290 "/bin/dnsdomainname")))
291 (substitute* "hyperbole.el"
292 (("\\(hyperb:check-dir-user\\)") ""))
293 #t)))))
294 (inputs
295 `(("inetutils" ,inetutils)))
296 (home-page "https://www.gnu.org/software/hyperbole/")
297 (synopsis "The Everyday Hypertextual Information Manager")
298 (description
299 "GNU Hyperbole, or just Hyperbole, is an easy-to-use, yet powerful and
300 programmable hypertextual information management system implemented as a GNU
301 Emacs package. It offers rapid views and interlinking of all kinds of textual
302 information, utilizing Emacs for editing. It can dramatically increase your
303 productivity and greatly reduce the number of keyboard/mouse keys you'll need
304 to work efficiently. Hyperbole lets you:
305
306 @itemize
307 @item Quickly create hyperlink buttons either from the keyboard or by dragging
308 between a source and destination window with a mouse button depressed. Later,
309 activate buttons by pressing/clicking on them or by giving the name of the
310 button.
311 @item Activate many kinds of \"implicit buttons\" recognized by context within
312 text buffers, e.g. URLs, grep output lines, and git commits. A single key or
313 mouse button automatically does the right thing in dozens of contexts; just
314 press and go.
315 @item Build outlines with multi-level numbered outline nodes, e.g. 1.4.8.6,
316 that all renumber automatically as any node or tree is moved in the outline.
317 Each node also has a permanent hyperlink anchor that you can reference from
318 any other node.
319 @item Manage all your contacts quickly with hierarchical categories and embed
320 hyperlinks within each entry. Or create an archive of documents with
321 hierarchical entries and use the same search mechanism to quickly find any
322 matching entry.
323 @item Use single keys to easily manage your Emacs windows or frames and
324 quickly retrieve saved window and frame configurations.
325 @item Search for things in your current buffers, in a directory tree or across
326 major web search engines with the touch of a few keys.
327 @end itemize
328
329 The common thread in all these features is making retrieval, management and
330 display of information fast and easy. That is Hyperbole's purpose.")
331 (license license:gpl3+)))
332
333 (define-public emacs-paredit
334 (package
335 (name "emacs-paredit")
336 (version "24")
337 (source (origin
338 (method url-fetch)
339 (uri (string-append "http://mumble.net/~campbell/emacs/paredit-"
340 version ".el"))
341 (sha256
342 (base32
343 "0pp3n8q6kc70blqsaw0zlzp6bc327dpgdrjr0cnh7hqg1lras7ka"))))
344 (build-system emacs-build-system)
345 (home-page "http://mumble.net/~campbell/emacs/paredit/")
346 (synopsis "Emacs minor mode for editing parentheses")
347 (description
348 "ParEdit (paredit.el) is a minor mode for performing structured editing
349 of S-expression data. The typical example of this would be Lisp or Scheme
350 source code.
351
352 ParEdit helps **keep parentheses balanced** and adds many keys for moving
353 S-expressions and moving around in S-expressions. Its behavior can be jarring
354 for those who may want transient periods of unbalanced parentheses, such as
355 when typing parentheses directly or commenting out code line by line.")
356 (license license:gpl3+)))
357
358 (define-public git-modes
359 (package
360 (name "emacs-git-modes")
361 (version "1.2.8")
362 (source (origin
363 (method git-fetch)
364 (uri (git-reference
365 (url "https://github.com/magit/git-modes")
366 (commit version)))
367 (file-name (git-file-name name version))
368 (sha256
369 (base32
370 "08hy7rbfazs6grkpk54i82bz0i0c74zcjk96cip8970h6jn3mj72"))))
371 (build-system emacs-build-system)
372 (home-page "https://github.com/magit/git-modes")
373 (synopsis "Emacs major modes for Git configuration files")
374 (description
375 "This package provides Emacs major modes for editing various Git
376 configuration files, such as .gitattributes, .gitignore, and .git/config.")
377 (license license:gpl3+)))
378
379 (define-public emacs-with-editor
380 (package
381 (name "emacs-with-editor")
382 (version "2.9.2")
383 (source
384 (origin
385 (method git-fetch)
386 (uri (git-reference
387 (url "https://github.com/magit/with-editor")
388 (commit (string-append "v" version))))
389 (file-name (git-file-name name version))
390 (sha256
391 (base32 "1m8bm8q5zakfjdkd0662gbkvzmcrlkxy1856xns2nfiflrkpw88b"))))
392 (build-system emacs-build-system)
393 (propagated-inputs
394 `(("emacs-dash" ,emacs-dash)))
395 (home-page "https://github.com/magit/with-editor")
396 (synopsis "Emacs library for using Emacsclient as EDITOR")
397 (description
398 "This package provides an Emacs library to use the Emacsclient as
399 @code{$EDITOR} of child processes, making sure they know how to call home.
400 For remote processes a substitute is provided, which communicates with Emacs
401 on stdout instead of using a socket as the Emacsclient does.")
402 (license license:gpl3+)))
403
404 (define-public emacs-libgit
405 (let ((commit "0ef8b13aef011a98b7da756e4f1ce3bb18e4d55a")
406 (revision "1"))
407 (package
408 (name "emacs-libgit")
409 (version (git-version "20200515" revision commit))
410 (source (origin
411 (method git-fetch)
412 (uri (git-reference
413 (url "https://github.com/magit/libegit2")
414 (commit commit)))
415 (file-name (git-file-name name version))
416 (sha256
417 (base32
418 "0pnjr3bg6y6354dfjjxfj0g51swzgl1fncpprah75x4k94rd369f"))
419 (patches (search-patches
420 ;; Submitted for inclusion upstream (see:
421 ;; https://github.com/magit/libegit2/pull/96).
422 "emacs-libgit-use-system-libgit2.patch"))))
423 ;; Use the cmake-build-system as it provides support for cross builds.
424 (build-system cmake-build-system)
425 (arguments
426 `(#:configure-flags '("-DUSE_SYSTEM_LIBGIT2=x")
427 ;; Add the emacs-build-system byte compilation and install phases.
428 #:imported-modules (,@%cmake-build-system-modules
429 (guix build emacs-build-system)
430 (guix build emacs-utils))
431 #:modules ((guix build cmake-build-system)
432 ((guix build emacs-build-system) #:prefix emacs:)
433 (guix build emacs-utils)
434 (guix build utils))
435 #:phases
436 (modify-phases %standard-phases
437 (add-after 'unpack 'set-libgit--module-file
438 (lambda* (#:key outputs #:allow-other-keys)
439 (let ((out (assoc-ref outputs "out")))
440 (make-file-writable "libgit.el")
441 (emacs-substitute-variables "libgit.el"
442 ("libgit--module-file"
443 (string-append out "/share/emacs/site-lisp/libegit2.so")))
444 #t)))
445 (add-before 'install 'prepare-for-install
446 (lambda _
447 (let ((s (string-append "../" ,name "-" ,version "-checkout")))
448 (copy-file "libegit2.so" (string-append s "/libegit2.so"))
449 (chdir s)
450 #t)))
451 (replace 'install
452 (lambda* (#:key outputs #:allow-other-keys)
453 (let ((install (assoc-ref emacs:%standard-phases 'install)))
454 (install #:outputs outputs
455 #:include (cons "\\.so$"
456 emacs:%default-include)))))
457 (add-after 'install 'make-autoloads
458 (assoc-ref emacs:%standard-phases 'make-autoloads))
459 (add-after 'make-autoloads 'enable-autoloads-compilation
460 (assoc-ref emacs:%standard-phases 'enable-autoloads-compilation))
461 (add-after 'enable-autoloads-compilation 'patch-el-files
462 (assoc-ref emacs:%standard-phases 'patch-el-files))
463 (add-after 'patch-el-files 'emacs-build
464 (assoc-ref emacs:%standard-phases 'build))
465 (add-after 'emacs-build 'validate-compiled-autoloads
466 (assoc-ref emacs:%standard-phases 'validate-compiled-autoloads)))))
467 (native-inputs
468 `(("pkg-config" ,pkg-config)
469 ("emacs" ,emacs-no-x)
470 ("git" ,git-minimal)))
471 (inputs
472 `(("libgit2" ,libgit2)))
473 (home-page "https://github.com/magit/libegit2")
474 (synopsis "Emacs bindings for libgit2")
475 (description "This is an experimental module written in C providing
476 libgit2 bindings for Emacs, intended to boost the performance of Magit.")
477 ;; The LICENSE file says GPL v2+, but libgit.el says GPL v3+.
478 (license license:gpl3+))))
479
480 (define-public emacs-magit
481 ;; There hasn't been an official release since 2018-11-16.
482 (let ((commit "7f486d47fe7042edba8d9a855a4c2c301a30bc6b")
483 (revision "6"))
484 (package
485 (name "emacs-magit")
486 (version (git-version "2.90.1" revision commit))
487 (source
488 (origin
489 (method git-fetch)
490 (uri (git-reference
491 (url "https://github.com/magit/magit")
492 (commit commit)))
493 (file-name (git-file-name name version))
494 (sha256
495 (base32 "05kyc5y5wa1p3h8j7mbgvfc4zcj998zi26lnnmksj9wnvahzxfms"))))
496 (build-system emacs-build-system)
497 (arguments
498 `(#:emacs ,emacs-no-x ;module support is required
499 #:tests? #t
500 #:test-command '("make" "test")
501 #:phases
502 (modify-phases %standard-phases
503 (add-after 'unpack 'build-info-manual
504 (lambda _
505 (invoke "make" "info")
506 ;; Copy info files to the lisp directory, which acts as
507 ;; the root of the project for the emacs-build-system.
508 (for-each (lambda (f)
509 (install-file f "lisp"))
510 (find-files "Documentation" "\\.info$"))
511 (chdir "lisp")
512 #t))
513 (add-after 'build-info-manual 'set-magit-version
514 (lambda _
515 (make-file-writable "magit.el")
516 (emacs-substitute-variables "magit.el"
517 ("magit-version" ,version))
518 #t))
519 (add-after 'set-magit-version 'patch-exec-paths
520 (lambda* (#:key inputs #:allow-other-keys)
521 (let ((perl (assoc-ref inputs "perl")))
522 (make-file-writable "magit-sequence.el")
523 (emacs-substitute-variables "magit-sequence.el"
524 ("magit-perl-executable" (string-append perl "/bin/perl")))
525 #t)))
526 (add-before 'check 'configure-git
527 (lambda _
528 ;; Otherwise some tests fail with error "unable to auto-detect
529 ;; email address".
530 (setenv "HOME" (getcwd))
531 (invoke "git" "config" "--global" "user.name" "toto")
532 (invoke "git" "config" "--global" "user.email"
533 "toto@toto.com")))
534 (add-after 'configure-git 'disable-tramp-test
535 (lambda _
536 ;; There is an issue causing TRAMP to fail in the build
537 ;; environment. Setting the tramp-remote-shell parameter of
538 ;; the sudo-method to the file name of the shell didn't help.
539 (chdir "..")
540 (substitute* "t/magit-tests.el"
541 (("^\\(ert-deftest magit-toplevel:tramp.*" all)
542 (string-append all " (skip-unless nil)")))
543 #t))
544 (add-before 'install 'enter-lisp-directory
545 (lambda _
546 (chdir "lisp")
547 #t)))))
548 (native-inputs
549 `(("texinfo" ,texinfo)))
550 (inputs
551 `(("git" ,git)
552 ("perl" ,perl)))
553 (propagated-inputs
554 `(("emacs-dash" ,emacs-dash)
555 ("emacs-libgit" ,emacs-libgit)
556 ("emacs-transient" ,emacs-transient)
557 ("emacs-with-editor" ,emacs-with-editor)))
558 (home-page "https://magit.vc/")
559 (synopsis "Emacs interface for the Git version control system")
560 (description
561 "With Magit, you can inspect and modify your Git repositories
562 with Emacs. You can review and commit the changes you have made to
563 the tracked files, for example, and you can browse the history of past
564 changes. There is support for cherry picking, reverting, merging,
565 rebasing, and other common Git operations.")
566 (license license:gpl3+))))
567
568 (define-public emacs-magit-svn
569 (let ((commit "9e33ceee32f665db59909e1c00a667ccdd04178f"))
570 (package
571 (name "emacs-magit-svn")
572 (version (git-version "2.2.1" "2" commit))
573 (source (origin
574 (method git-fetch)
575 (uri (git-reference
576 (url "https://github.com/magit/magit-svn")
577 (commit commit)))
578 (file-name (git-file-name name version))
579 (sha256
580 (base32
581 "1mlqz8dh6jy5rv72lgkxv253dgh73fmbaidskicypapvbl3lr6xy"))))
582 (build-system emacs-build-system)
583 (propagated-inputs `(("dash" ,emacs-dash)
584 ("with-editor" ,emacs-with-editor)
585 ("magit" ,emacs-magit)
586 ("transient" ,emacs-transient)))
587 (home-page "https://github.com/magit/magit-svn")
588 (synopsis "Git-SVN extension to Magit")
589 (description
590 "This package is an extension to Magit, the Git Emacs mode, providing
591 support for Git-SVN.")
592 (license license:gpl3+))))
593
594 (define-public emacs-magit-popup
595 (package
596 (name "emacs-magit-popup")
597 (version "2.13.3")
598 (source
599 (origin
600 (method git-fetch)
601 (uri (git-reference
602 (url "https://github.com/magit/magit-popup")
603 (commit (string-append "v" version))))
604 (file-name (git-file-name name version))
605 (sha256
606 (base32 "0znp6gx6vpcsybg774ab06mdgxb7sfk3gki1yp2qhkanav13i6q1"))))
607 (build-system emacs-build-system)
608 (arguments
609 `(#:phases
610 (modify-phases %standard-phases
611 (add-before 'install 'make-info
612 (lambda _
613 (invoke "make" "info"))))))
614 (native-inputs
615 `(("texinfo" ,texinfo)))
616 (propagated-inputs
617 `(("emacs-dash" ,emacs-dash)))
618 (home-page "https://github.com/magit/magit-popup")
619 (synopsis "Define prefix-infix-suffix command combos")
620 (description
621 "This library implements a generic interface for toggling switches and
622 setting options and then invoking an Emacs command which does something with
623 these arguments. The prototypical use is for the command to call an external
624 process, passing on the arguments as command line arguments.")
625 (license license:gpl3+)))
626
627 (define-public emacs-magit-annex
628 (let ((commit "ef5dce6267e9118a5eca82a22bcad0b67826c23a")
629 (revision "1"))
630 (package
631 (name "emacs-magit-annex")
632 (version (git-version "1.7.1" revision commit))
633 (source (origin
634 (method git-fetch)
635 (uri (git-reference
636 (url "https://github.com/magit/magit-annex")
637 (commit commit)))
638 (file-name (git-file-name name version))
639 (sha256
640 (base32
641 "0vzkydgl889cq173zjl89g2vrddb9abc4a8gljiz3b4a7n5b1nrd"))))
642 (build-system emacs-build-system)
643 (propagated-inputs
644 `(("magit" ,emacs-magit)
645 ("transient" ,emacs-transient)))
646 (home-page "https://github.com/magit/magit-annex/")
647 (synopsis "Git-annex support for Magit")
648 (description
649 "Magit-annex adds a few git-annex operations to the Magit interface.")
650 (license license:gpl3+))))
651
652 (define-public emacs-minions
653 (package
654 (name "emacs-minions")
655 (version "0.3.2")
656 (source (origin
657 (method git-fetch)
658 (uri (git-reference
659 (url "https://github.com/tarsius/minions")
660 (commit (string-append "v" version))))
661 (file-name (git-file-name name version))
662 (sha256
663 (base32
664 "16rplpbfy3dnvqqgavk9jb1f1ihr5875zlixd4zxb1pqxs3jkgw3"))))
665 (build-system emacs-build-system)
666 (propagated-inputs
667 `(("emacs-dash" ,emacs-dash)))
668 (home-page "https://github.com/tarsius/minions")
669 (synopsis "Minor-mode menu for the mode line")
670 (description
671 "This package implements a menu that lists enabled minor-modes, as well
672 as commonly but not currently enabled minor-modes. It can be used to toggle
673 local and global minor-modes, to access mode-specific menus, and to get help
674 about modes.
675
676 This menu is intended as a replacement for the incomplete yet wide list of
677 enabled minor-modes that is displayed in the mode line by default. To use the
678 menu like this, enable Minions mode.
679
680 Alternatively the menu can be bound globally, for example:
681 @code{(global-set-key [S-down-mouse-3] 'minions-minor-modes-menu)}.")
682 (license license:gpl3+)))
683
684 (define-public emacs-treepy
685 (package
686 (name "emacs-treepy")
687 (version "0.1.1")
688 (source (origin
689 (method git-fetch)
690 (uri (git-reference
691 (url "https://github.com/volrath/treepy.el")
692 (commit version)))
693 (file-name (git-file-name name version))
694 (sha256
695 (base32
696 "04zwm6gx9pxfvgfkizx6pvb1ql8pqxjyzqp8flz0432x0gq5nlxk"))))
697 (build-system emacs-build-system)
698 (home-page
699 "https://github.com/volrath/treepy.el")
700 (synopsis "Tree traversal tools")
701 (description
702 "Generic tools for recursive and iterative tree traversal based on
703 clojure.walk and clojure.zip respectively.")
704 (license license:gpl3+)))
705
706 (define-public emacs-graphql
707 (package
708 (name "emacs-graphql")
709 (version "0.1.1")
710 (source (origin
711 (modules '((guix build utils)))
712 ;; Remove examples file with references to external packages as
713 ;; they do not exist at compilation time.
714 (snippet
715 '(begin (delete-file "examples.el")
716 #t))
717 (method git-fetch)
718 (uri (git-reference
719 (url "https://github.com/vermiculus/graphql.el")
720 (commit version)))
721 (file-name (git-file-name name version))
722 (sha256
723 (base32
724 "0sp0skc1rnhi39szfbq1i99pdgd3bhn4c15cff05iqhjy2d4hniw"))))
725 (build-system emacs-build-system)
726 (home-page
727 "https://github.com/vermiculus/graphql.el")
728 (synopsis "GraphQL utilities")
729 (description
730 "GraphQL.el provides a generally-applicable domain-specific language for
731 creating and executing GraphQL queries against your favorite web services.
732 GraphQL is a data query language and runtime designed and used to request and
733 deliver data to mobile and web apps.")
734 (license license:gpl3+)))
735
736 (define-public emacs-ghub
737 (package
738 (name "emacs-ghub")
739 (version "3.3.0")
740 (source
741 (origin
742 (method git-fetch)
743 (uri (git-reference
744 (url "https://github.com/magit/ghub")
745 (commit (string-append "v" version))))
746 (file-name (git-file-name name version))
747 (sha256
748 (base32 "1229g0d9f4ywwjndx32x4z5jdr0kzyi44hjxmy0sifwfmg9nn251"))))
749 (build-system emacs-build-system)
750 (arguments
751 `(#:phases
752 (modify-phases %standard-phases
753 (add-before 'install 'make-info
754 (lambda _
755 (invoke "make" "info"))))))
756 (native-inputs
757 `(("texinfo" ,texinfo)))
758 (propagated-inputs
759 `(("dash" ,emacs-dash)
760 ("emacs-let-alist" ,emacs-let-alist)
761 ("treepy" ,emacs-treepy)))
762 (home-page "https://github.com/magit/ghub")
763 (synopsis "Emacs client libraries for the APIs of various Git forges")
764 (description
765 "Ghub provides basic support for using the APIs of various Git forges from
766 Emacs packages. It supports the REST APIs of Github, Github GraphQL, Gitlab,
767 Gitea, Gogs and Bitbucket. It abstracts access to API resources using only a
768 handful of functions that are not resource-specific.")
769 (license license:gpl3+)))
770
771 (define-public emacs-typit
772 ;; Last release is from 2017.
773 (let ((commit "231cb7df43253b84323520b8ed70f128d37003af")
774 (revision "1"))
775 (package
776 (name "emacs-typit")
777 (version (git-version "0.2.1" revision commit))
778 (source
779 (origin
780 (method git-fetch)
781 (uri (git-reference
782 (url "https://github.com/mrkkrp/typit")
783 (commit commit)))
784 (file-name (git-file-name name version))
785 (sha256
786 (base32 "1savrxs7xl92ifyxpxkkzv2didr7lb405h0dwz1bs1wldr5fb53f"))))
787 (build-system emacs-build-system)
788 (arguments
789 `(#:phases
790 (modify-phases %standard-phases
791 (add-after 'install 'install-dictionaries
792 (lambda* (#:key outputs #:allow-other-keys)
793 (let* ((out (assoc-ref outputs "out"))
794 (site-lisp
795 (string-append
796 out "/share/emacs/site-lisp/dict")))
797 (mkdir-p site-lisp)
798 (copy-recursively "dict" site-lisp)
799 #t))))))
800 (propagated-inputs
801 `(("emacs-f" ,emacs-f)
802 ("emacs-mmt" ,emacs-mmt)))
803 (home-page "https://github.com/mrkkrp/typit")
804 (synopsis "Typing game for Emacs with two difficulties")
805 (description "Emacs Typit is a typing game for Emacs. Words that are
806 picked randomly from the most frequent words in language you're practicing,
807 until time is up.")
808 (license license:gpl3+))))
809
810 (define-public emacs-scribble-mode
811 (let ((commit "217945d54de5e4bb207033f2116baa28f5c5ecf2")
812 (revision "2"))
813 (package
814 (name "emacs-scribble-mode")
815 (version (git-version "0.1" revision commit))
816 (source (origin
817 (method git-fetch)
818 (uri (git-reference
819 (url "https://github.com/emacs-pe/scribble-mode")
820 (commit commit)))
821 (file-name (git-file-name name version))
822 (sha256
823 (base32
824 "1s5ccw1a5ack01wd94ywfcrar9j98agchwdh30q7iyxr0d2z4sii"))))
825 (build-system emacs-build-system)
826 (home-page "https://github.com/emacs-pe/scribble-mode")
827 (synopsis "Emacs mode for editing the Scribble documentation syntax.")
828 (description
829 "This package provides basic syntax highlighting and editing support
830 for editing Racket's Scribble documentation syntax in Emacs.")
831 (license license:gpl3+))))
832
833 (define-public emacs-shroud
834 (package
835 (name "emacs-shroud")
836 (version "1.105")
837 (source
838 (origin
839 (method git-fetch)
840 (uri (git-reference
841 (url "https://git.savannah.gnu.org/git/emacs-shroud.git")
842 (commit version)))
843 (file-name (git-file-name name version))
844 (sha256
845 (base32 "0q2pb3w8s833fjhkzicciw2php4lsnismad1dnwgp2lcway757ra"))))
846 (build-system gnu-build-system)
847 (native-inputs
848 `(("autoconf" ,autoconf)
849 ("automake" ,automake)
850 ("texinfo" ,texinfo)
851 ("perl" ,perl)
852 ("emacs-minimal" ,emacs-minimal)))
853 (propagated-inputs
854 `(("emacs-bui" ,emacs-bui)
855 ("emacs-dash" ,emacs-dash)
856 ("emacs-f" ,emacs-f)
857 ("emacs-s" ,emacs-s)
858 ("gnupg" ,gnupg)
859 ("shroud" ,shroud)))
860 (home-page "https://www.nongnu.org/emacs-shroud")
861 (synopsis "Emacs interface to the Shroud password manager")
862 (description
863 "This package provides an Emacs interface to the Shroud password manager,
864 using the Buffers User Interface library. You can view, copy, and edit secrets
865 from within Emacs.")
866 (license license:gpl3+)))
867
868 (define-public emacs-unpackaged-el
869 (let ((commit "746801a677ada6cd6fa076e423aa0953779f3fad")
870 (revision "3"))
871 (package
872 (name "emacs-unpackaged-el")
873 (version (git-version "0" revision commit))
874 (source
875 (origin
876 (method git-fetch)
877 (uri (git-reference
878 (url "https://github.com/alphapapa/unpackaged.el")
879 (commit commit)))
880 (file-name (git-file-name name version))
881 (sha256
882 (base32
883 "0jvb2ci0h0lj368qhbff3pzkxj3nhlligpbkjzi525k9rkjgm7l8"))))
884 (build-system emacs-build-system)
885 (propagated-inputs
886 `(("emacs-dash" ,emacs-dash)
887 ("emacs-org" ,emacs-org)
888 ("emacs-s" ,emacs-s)
889 ("emacs-hydra" ,emacs-hydra)
890 ("emacs-use-package" ,emacs-use-package)))
891 (arguments
892 `(#:phases
893 (modify-phases %standard-phases
894 (add-after 'unpack 'require-hydra
895 (lambda _
896 (substitute* "unpackaged.el"
897 ((";;; Code:") ";;; Code:\n(require 'hydra)"))
898 #t)))))
899 (home-page "https://github.com/alphapapa/unpackaged.el")
900 (synopsis "Useful snippets of Emacs Lisp code")
901 (description "This package provides Emacs Lisp utilities for a variety
902 of tasks, including version control, task management, and regex-based
903 replacement.")
904 (license license:gpl3+))))
905
906 (define-public emacs-haskell-mode
907 (package
908 (name "emacs-haskell-mode")
909 (version "17.1")
910 (source
911 (origin
912 (method git-fetch)
913 (uri (git-reference
914 (url "https://github.com/haskell/haskell-mode")
915 (commit (string-append "v" version))))
916 (file-name (git-file-name name version))
917 (sha256
918 (base32 "0izcasi2v02zh08c863h43m8mmsldzy8pck43cllrfn0zf24v2qn"))))
919 (propagated-inputs
920 `(("emacs-dash" ,emacs-dash)))
921 (native-inputs
922 `(("emacs" ,emacs-minimal)
923 ("emacs-el-search" ,emacs-el-search)
924 ("emacs-stream" ,emacs-stream)
925 ("texinfo" ,texinfo)))
926 (build-system gnu-build-system)
927 (arguments
928 `(#:make-flags (list (string-append "EMACS="
929 (assoc-ref %build-inputs "emacs")
930 "/bin/emacs"))
931 #:modules ((ice-9 match)
932 (srfi srfi-26)
933 ,@%gnu-build-system-modules)
934 #:phases
935 (modify-phases %standard-phases
936 (delete 'configure)
937 (add-before 'build 'pre-build
938 (lambda* (#:key inputs #:allow-other-keys)
939 (define (el-dir store-dir)
940 (match (find-files store-dir "\\.el$")
941 ((f1 f2 ...) (dirname f1))
942 (_ "")))
943
944 (let ((sh (string-append (assoc-ref inputs "bash") "/bin/sh")))
945 (define emacs-prefix? (cut string-prefix? "emacs-" <>))
946
947 (setenv "SHELL" "sh")
948 (setenv "EMACSLOADPATH"
949 (string-concatenate
950 (map (match-lambda
951 (((? emacs-prefix? name) . dir)
952 (string-append (el-dir dir) ":"))
953 (_ ""))
954 inputs)))
955 (substitute* (find-files "." "\\.el") (("/bin/sh") sh))
956 #t)))
957 (add-before 'check 'delete-failing-tests
958 ;; XXX: these tests require GHC executable, which would be a big
959 ;; native input.
960 (lambda _
961 (with-directory-excursion "tests"
962 (for-each delete-file
963 '("haskell-customize-tests.el"
964 "inferior-haskell-tests.el")))
965 #t))
966 (replace 'install
967 (lambda* (#:key outputs #:allow-other-keys)
968 (let* ((out (assoc-ref outputs "out"))
969 (el-dir (string-append out "/share/emacs/site-lisp"))
970 (doc (string-append
971 out "/share/doc/haskell-mode-" ,version))
972 (info (string-append out "/share/info")))
973 (define (copy-to-dir dir files)
974 (for-each (lambda (f)
975 (install-file f dir))
976 files))
977
978 (with-directory-excursion "doc"
979 (invoke "makeinfo" "haskell-mode.texi")
980 (install-file "haskell-mode.info" info))
981 (copy-to-dir doc '("CONTRIBUTING.md" "NEWS" "README.md"))
982 (copy-to-dir el-dir (find-files "." "\\.elc?"))
983 #t))))))
984 (home-page "https://github.com/haskell/haskell-mode")
985 (synopsis "Haskell mode for Emacs")
986 (description
987 "This is an Emacs mode for editing, debugging and developing Haskell
988 programs.")
989 (license license:gpl3+)))
990
991 (define-public emacs-dante
992 (let ((commit "38b589417294c7ea44bf65b73b8046d950f9531b")
993 (revision "1"))
994 (package
995 (name "emacs-dante")
996 (version (git-version "1.6" revision commit))
997 (source (origin
998 (method git-fetch)
999 (uri (git-reference
1000 (url "https://github.com/jyp/dante")
1001 (commit commit)))
1002 (sha256
1003 (base32
1004 "1mnmn635552zlwd4zr68jbvdjipl6gi4mi6wiyck28fsmq8kw96h"))
1005 (file-name (git-file-name name version))))
1006 (build-system emacs-build-system)
1007 (propagated-inputs
1008 `(("emacs-dash" ,emacs-dash)
1009 ("emacs-f" ,emacs-f)
1010 ("emacs-flycheck" ,emacs-flycheck)
1011 ("emacs-haskell-mode" ,emacs-haskell-mode)
1012 ("emacs-s" ,emacs-s)
1013 ("emacs-company" ,emacs-company)
1014 ("emacs-lcr" ,emacs-lcr)))
1015 (home-page "https://github.com/jyp/dante")
1016 (synopsis "Minor mode for interactive Haskell")
1017 (description
1018 "This package provides a minor mode for Haskell development that
1019 supports type hints, definition-jumping, completion, and more.")
1020 (license license:gpl3+))))
1021
1022 (define-public emacs-flycheck
1023 ;; Last release version was more than 500 commits ago.
1024 (let ((commit "9bcf6b665e15db94870bebc81dc8248c3eec20d3")
1025 (revision "2"))
1026 (package
1027 (name "emacs-flycheck")
1028 (version (git-version "31" revision commit))
1029 (source
1030 (origin
1031 (method git-fetch)
1032 (uri (git-reference
1033 (url "https://github.com/flycheck/flycheck/")
1034 (commit commit)))
1035 (sha256
1036 (base32 "015ixss5bjr7gvhj8mkw5x2x1hy6fvvsjarr2xpv0gskkkngs7pg"))
1037 (file-name (git-file-name name version))))
1038 (build-system emacs-build-system)
1039 (propagated-inputs
1040 `(("emacs-dash" ,emacs-dash)))
1041 (native-inputs
1042 `(("emacs-shut-up" ,emacs-shut-up)))
1043 (arguments
1044 `(#:phases
1045 (modify-phases %standard-phases
1046 (add-after 'unpack 'change-flycheck-version
1047 (lambda _
1048 (substitute* "flycheck.el"
1049 (("\\(pkg-info-version-info 'flycheck\\)")
1050 (string-append "\"" ,version "\"")))
1051 #t)))
1052 ;; TODO: many failing tests
1053 #:tests? #f
1054 #:test-command '("emacs" "-Q" "--batch" "-L" "."
1055 "--load" "test/flycheck-test"
1056 "--load" "test/run.el"
1057 "-f" "flycheck-run-tests-main")))
1058 (home-page "https://www.flycheck.org")
1059 (synopsis "On-the-fly syntax checking")
1060 (description
1061 "This package provides on-the-fly syntax checking for GNU Emacs. It is a
1062 replacement for the older Flymake extension which is part of GNU Emacs, with
1063 many improvements and additional features.
1064
1065 Flycheck provides fully-automatic, fail-safe, on-the-fly background syntax
1066 checking for over 30 programming and markup languages with more than 70
1067 different tools. It highlights errors and warnings inline in the buffer, and
1068 provides an optional IDE-like error list.")
1069 (license license:gpl3+)))) ;+GFDLv1.3+ for the manual
1070
1071 (define-public emacs-flymake-shellcheck
1072 ;; No tag, version grabbed from source .el file.
1073 (let ((commit "78956f0e5bb9c4d35989657a55929e8e3f5691e6")
1074 (revision "0"))
1075 (package
1076 (name "emacs-flymake-shellcheck")
1077 (version (git-version "0.1" revision commit))
1078 (source
1079 (origin
1080 (method git-fetch)
1081 (uri (git-reference
1082 (url "https://github.com/federicotdn/flymake-shellcheck")
1083 (commit commit)))
1084 (file-name (git-file-name name version))
1085 (sha256
1086 (base32 "068mx5p4drwgppy4ry1rfq6qi79w6d82b4rnpl2jm37grsg94lix"))))
1087 (build-system emacs-build-system)
1088 (home-page "https://github.com/federicotdn/flymake-shellcheck")
1089 (synopsis "Flymake backend for Bash/Sh powered by ShellCheck")
1090 (description
1091 "This package provides a backend for Flymake to use the
1092 tool ShellCheck for static analyzing @command{bash} and @command{sh}
1093 scripts.")
1094 (license license:gpl3+))))
1095
1096 (define-public emacs-a
1097 (package
1098 (name "emacs-a")
1099 (version "0.1.1")
1100 (source (origin
1101 (method git-fetch)
1102 (uri (git-reference
1103 (url "https://github.com/plexus/a.el")
1104 (commit (string-append "v" version))))
1105 (file-name (git-file-name name version))
1106 (sha256
1107 (base32
1108 "00v9w6qg3bkwdhypq0ssf0phdh0f4bcq59c20lngd6vhk0204dqi"))))
1109 (build-system emacs-build-system)
1110 (home-page "https://github.com/plexus/a.el/")
1111 (synopsis
1112 "Emacs library for dealing with association lists and hash tables")
1113 (description "@code{emacs-a} provides Emacs Lisp functions for dealing
1114 with associative structures in a uniform and functional way. These functions
1115 can take association lists, hash tables, and in some cases vectors (where the
1116 index is considered the key).")
1117 (license license:gpl3+)))
1118
1119 (define-public emacs-ace-jump-mode
1120 (package
1121 (name "emacs-ace-jump-mode")
1122 (version "2.0")
1123 (home-page "https://github.com/winterTTr/ace-jump-mode")
1124 (source (origin
1125 (method git-fetch)
1126 (uri (git-reference
1127 (url home-page)
1128 (commit (string-append "v" version))))
1129 (sha256
1130 (base32
1131 "1bwvzh056ls2v7y26a0s4j5mj582dmds04lx4x6iqihs04ss74bb"))
1132 (file-name (git-file-name name version))))
1133 (build-system emacs-build-system)
1134 (synopsis "Cursor location minor mode for fast navigation")
1135 (description "Ace-jump-mode is a fast/direct cursor location minor
1136 mode. It creates an N-Branch search tree internally and marks all
1137 the possible position with predefined keys in within the whole Emacs
1138 view. This allows you to move to the character, word, or line almost
1139 directly.")
1140 (license license:gpl3+)))
1141
1142 (define-public emacs-anaphora
1143 (package
1144 (name "emacs-anaphora")
1145 (version "1.0.4")
1146 (source
1147 (origin
1148 (method git-fetch)
1149 (uri (git-reference
1150 (url "https://github.com/rolandwalker/anaphora")
1151 (commit (string-append "v" version))))
1152 (file-name (git-file-name name version))
1153 (sha256
1154 (base32
1155 "11fgiy029sqz7nvdm7dcal95lacryz9zql0x5h05z48nrrcl4bib"))))
1156 (build-system emacs-build-system)
1157 (home-page "https://github.com/rolandwalker/anaphora/")
1158 (synopsis "Anaphoric expressions for Emacs Lisp")
1159 (description "@code{emacs-anaphora} implements anaphoric expressions for
1160 Emacs Lisp.
1161
1162 Anaphoric expressions implicitly create one or more temporary variables which
1163 can be referred to during the expression. This technique can improve clarity
1164 in certain cases. It also enables recursion for anonymous functions.")
1165 (license license:public-domain)))
1166
1167 (define-public emacs-xr
1168 (package
1169 (name "emacs-xr")
1170 (version "1.19")
1171 (source
1172 (origin
1173 (method url-fetch)
1174 (uri (string-append "https://elpa.gnu.org/packages/xr-" version ".tar"))
1175 (sha256
1176 (base32 "1aa3iqh0r635jw8k89zh8y4am9d4hfrqpk9mrdh2b51invjn8llq"))))
1177 (build-system emacs-build-system)
1178 (home-page "https://elpa.gnu.org/packages/xr.html")
1179 (synopsis "Convert string regexp to rx notation")
1180 (description
1181 "This is an inverse companion to the @code{rx} package for translating
1182 regexps in string form to the @code{rx} notation. Its chief uses are:
1183
1184 @itemize
1185 @item Migrating existing code to @code{rx} form, for better readability and
1186 maintainability
1187 @item Understanding complex regexp strings and finding errors in them
1188 @end itemize
1189
1190 In addition to Emacs regexps, this package can also parse and troubleshoot
1191 skip set strings, which are arguments to @code{skip-chars-forward} and
1192 @code{skip-chars-backward}.")
1193 (license license:gpl3+)))
1194
1195 (define-public emacs-ample-regexps
1196 (let ((commit "153969ce547afe410b8986f01c9ed4087c9cd20b")
1197 (revision "2"))
1198 (package
1199 (name "emacs-ample-regexps")
1200 (version (git-version "0.1" revision commit))
1201 (source
1202 (origin
1203 (method git-fetch)
1204 (uri (git-reference
1205 (url "https://github.com/immerrr/ample-regexps.el")
1206 (commit commit)))
1207 (file-name (git-file-name name version))
1208 (sha256
1209 (base32
1210 "0dkp7bcd7h2ds40wyszy11nmh7c2jxrwy04ayz7pbxh53ir7s2k0"))))
1211 (build-system emacs-build-system)
1212 (native-inputs
1213 `(("ert-runner" ,emacs-ert-runner)))
1214 (arguments
1215 `(#:tests? #t
1216 #:test-command '("ert-runner" "-l" "ample-regexps")))
1217 (home-page "https://github.com/immerrr/ample-regexps.el")
1218 (synopsis "Compose and reuse Emacs regexps")
1219 (description
1220 "This package allows common parts of regexps to be easily picked out
1221 and reused.")
1222 (license license:gpl3+))))
1223
1224 (define-public emacs-ample-theme
1225 (let ((commit "536966adf882446165a1f756830028faa792c7a9")
1226 (revision "1"))
1227 (package
1228 (name "emacs-ample-theme")
1229 (version (git-version "0.0.0" revision commit))
1230 (source (origin
1231 (method git-fetch)
1232 (uri (git-reference
1233 (url "https://github.com/jordonbiondo/ample-theme")
1234 (commit commit)))
1235 (file-name (git-file-name name version))
1236 (sha256
1237 (base32
1238 "07bpv8dag40qjnm5000pgzpazj4whfxf93x2vprz26sg3mjfx0nf"))))
1239 (build-system emacs-build-system)
1240 (home-page "https://github.com/jordonbiondo/ample-theme")
1241 (synopsis "Theme for Emacs providing dark, light, and flat versions")
1242 (description "Ample themes is a collection of three themes sharing a
1243 similar pallet with a light, dark and flat versions with a focus on being easy
1244 on the eyes during night and day. They only support GUI and 256 colour
1245 terminals.")
1246 (license license:gpl3+))))
1247
1248 (define-public emacs-reformatter
1249 (package
1250 (name "emacs-reformatter")
1251 (version "0.4")
1252 (source
1253 (origin
1254 (method git-fetch)
1255 (uri (git-reference
1256 (url "https://github.com/purcell/reformatter.el")
1257 (commit version)))
1258 (file-name (git-file-name name version))
1259 (sha256
1260 (base32
1261 "0hhy6x1bkwlhdlarsgm06g3am4yh02yqv8qs34szpzgy53x84qah"))))
1262 (build-system emacs-build-system)
1263 (home-page "https://github.com/purcell/reformatter.el")
1264 (synopsis "Define commands which run reformatters on the current buffer")
1265 (description
1266 "This library lets elisp authors easily define an idiomatic command to
1267 reformat the current buffer using a command-line program, together with an
1268 optional minor mode which can apply this command automatically on save.")
1269 (license license:gpl3+)))
1270
1271 (define-public emacs-relint
1272 (package
1273 (name "emacs-relint")
1274 (version "1.18")
1275 (source
1276 (origin
1277 (method url-fetch)
1278 (uri (string-append "https://elpa.gnu.org/packages/"
1279 "relint-" version ".tar"))
1280 (sha256
1281 (base32 "0zfislsksrkn6qs0w26yaff5xr7xqy2x235dcdpz8s2v35b6dhci"))))
1282 (build-system emacs-build-system)
1283 (propagated-inputs `(("emacs-xr" ,emacs-xr)))
1284 (home-page "https://github.com/mattiase/relint")
1285 (synopsis "Elisp regexp mistake finder")
1286 (description
1287 "Relint (regular expression lint) scans Elisp files for mistakes in
1288 regexps, including deprecated syntax and bad practice. It also checks the
1289 regexp-like arguments to @code{skip-chars-forward} and
1290 @code{skip-chars-backward}.")
1291 (license license:gpl3+)))
1292
1293 (define-public emacs-bug-hunter
1294 (let ((commit "b88d981afa9154b236c5a3a83b50d5889d46c6a7")
1295 (revision "1"))
1296 (package
1297 (name "emacs-bug-hunter")
1298 (version (git-version "1.3.1" revision commit))
1299 (source
1300 (origin
1301 (method git-fetch)
1302 (uri (git-reference
1303 (url "https://github.com/Malabarba/elisp-bug-hunter")
1304 (commit commit)))
1305 (file-name (git-file-name name commit))
1306 (sha256
1307 (base32
1308 "134fj493sdn93pyyac8rpz1fzahzmayvphsrmqp3wvgysmfqm38l"))))
1309 (build-system emacs-build-system)
1310 (propagated-inputs
1311 `(("emacs-seq" ,emacs-seq)))
1312 (home-page "https://github.com/Malabarba/elisp-bug-hunter")
1313 (synopsis "Hunt down errors by bisecting elisp files")
1314 (description
1315 "The Bug Hunter is an Emacs library that finds the source of an error
1316 or unexpected behavior inside an elisp configuration file (typically
1317 @file{init.el} or @file{.emacs}).")
1318 (license license:gpl3+))))
1319
1320 \f
1321 ;;;
1322 ;;; Web browsing.
1323 ;;;
1324
1325 (define-public emacs-w3m
1326 ;; Emacs-w3m follows a "rolling release" model.
1327 (package
1328 (name "emacs-w3m")
1329 (version "2018-11-11")
1330 (source (origin
1331 (method cvs-fetch)
1332 (uri (cvs-reference
1333 (root-directory
1334 ":pserver:anonymous@cvs.namazu.org:/storage/cvsroot")
1335 (module "emacs-w3m")
1336 (revision version)))
1337 (file-name (string-append name "-" version "-checkout"))
1338 (sha256
1339 (base32
1340 "0nvahdbjs12zg7zsk4gql02mvnv56cf1rwj2f5p42lwp3xvswiwp"))))
1341 (build-system gnu-build-system)
1342 (native-inputs `(("autoconf" ,autoconf)
1343 ("texinfo" ,texinfo)
1344 ("emacs" ,emacs-minimal)))
1345 (inputs `(("w3m" ,w3m)
1346 ("imagemagick" ,imagemagick)))
1347 (arguments
1348 `(#:modules ((guix build gnu-build-system)
1349 (guix build utils)
1350 (guix build emacs-utils))
1351 #:imported-modules (,@%gnu-build-system-modules
1352 (guix build emacs-utils))
1353 #:configure-flags
1354 (let ((out (assoc-ref %outputs "out")))
1355 (list (string-append "--with-lispdir="
1356 out "/share/emacs/site-lisp")
1357 (string-append "--with-icondir="
1358 out "/share/images/emacs-w3m")
1359 ;; Leave .el files uncompressed, otherwise GC can't
1360 ;; identify run-time dependencies. See
1361 ;; <http://lists.gnu.org/archive/html/guix-devel/2015-12/msg00208.html>
1362 "--without-compress-install"))
1363 #:tests? #f ; no check target
1364 #:phases
1365 (modify-phases %standard-phases
1366 (add-after 'unpack 'autoconf
1367 (lambda _
1368 (invoke "autoconf")))
1369 (add-before 'configure 'support-emacs!
1370 (lambda _
1371 ;; For some reason 'AC_PATH_EMACS' thinks that 'Emacs 26' is
1372 ;; unsupported.
1373 (substitute* "configure"
1374 (("EMACS_FLAVOR=unsupported")
1375 "EMACS_FLAVOR=emacs"))
1376 #t))
1377 (add-before 'build 'patch-exec-paths
1378 (lambda* (#:key inputs outputs #:allow-other-keys)
1379 (let ((out (assoc-ref outputs "out"))
1380 (w3m (assoc-ref inputs "w3m"))
1381 (imagemagick (assoc-ref inputs "imagemagick"))
1382 (coreutils (assoc-ref inputs "coreutils")))
1383 (make-file-writable "w3m.el")
1384 (emacs-substitute-variables "w3m.el"
1385 ("w3m-command" (string-append w3m "/bin/w3m"))
1386 ("w3m-touch-command"
1387 (string-append coreutils "/bin/touch"))
1388 ("w3m-icon-directory"
1389 (string-append out "/share/images/emacs-w3m")))
1390 (make-file-writable "w3m-image.el")
1391 (emacs-substitute-variables "w3m-image.el"
1392 ("w3m-imagick-convert-program"
1393 (string-append imagemagick "/bin/convert"))
1394 ("w3m-imagick-identify-program"
1395 (string-append imagemagick "/bin/identify")))
1396 #t)))
1397 (replace 'install
1398 (lambda* (#:key outputs #:allow-other-keys)
1399 (invoke "make" "install" "install-icons")
1400 (with-directory-excursion
1401 (string-append (assoc-ref outputs "out")
1402 "/share/emacs/site-lisp")
1403 (for-each delete-file '("ChangeLog" "ChangeLog.1"))
1404 (symlink "w3m-load.el" "w3m-autoloads.el")
1405 #t))))))
1406 (home-page "http://emacs-w3m.namazu.org/")
1407 (synopsis "Simple Web browser for Emacs based on w3m")
1408 (description
1409 "Emacs-w3m is an emacs interface for the w3m web browser.")
1410 (license license:gpl2+)))
1411
1412 (define-public emacs-wget
1413 (package
1414 (name "emacs-wget")
1415 (version "0.5.0")
1416 (source (origin
1417 (method url-fetch)
1418 (uri (string-append "mirror://debian/pool/main/w/wget-el/wget-el_"
1419 version ".orig.tar.gz"))
1420 (sha256
1421 (base32 "10byvyv9dk0ib55gfqm7bcpxmx2qbih1jd03gmihrppr2mn52nff"))))
1422 (build-system gnu-build-system)
1423 (inputs `(("wget" ,wget)))
1424 (native-inputs `(("emacs" ,emacs-minimal)))
1425 (arguments
1426 `(#:modules ((guix build gnu-build-system)
1427 (guix build utils)
1428 (guix build emacs-utils))
1429 #:imported-modules (,@%gnu-build-system-modules
1430 (guix build emacs-utils))
1431 #:tests? #f ; no check target
1432 #:phases
1433 (modify-phases %standard-phases
1434 (replace 'configure
1435 (lambda* (#:key outputs #:allow-other-keys)
1436 (substitute* "Makefile"
1437 (("/usr/local") (assoc-ref outputs "out"))
1438 (("/site-lisp/emacs-wget") "/site-lisp"))
1439 #t))
1440 (add-before 'build 'patch-exec-paths
1441 (lambda* (#:key inputs outputs #:allow-other-keys)
1442 (let ((wget (assoc-ref inputs "wget")))
1443 (emacs-substitute-variables "wget.el"
1444 ("wget-command" (string-append wget "/bin/wget"))))
1445 #t))
1446 (add-after 'install 'post-install
1447 (lambda* (#:key outputs #:allow-other-keys)
1448 (emacs-generate-autoloads
1449 "wget" (string-append (assoc-ref outputs "out")
1450 "/share/emacs/site-lisp/"))
1451 #t)))))
1452 (home-page "https://www.emacswiki.org/emacs/EmacsWget")
1453 (synopsis "Simple file downloader for Emacs based on wget")
1454 (description
1455 "Emacs-wget is an emacs interface for the wget file downloader.")
1456 (license license:gpl2+)))
1457
1458 (define-public emacs-eww-lnum
1459 (package
1460 (name "emacs-eww-lnum")
1461 (version "1.1")
1462 (source (origin
1463 (method git-fetch)
1464 (uri (git-reference
1465 (url "https://github.com/m00natic/eww-lnum")
1466 (commit version)))
1467 (file-name (git-file-name name version))
1468 (sha256
1469 (base32
1470 "0gs6bi3s2sszc6v2b26929azmn5513kvyin99n4d0ark1jdbjmv2"))))
1471 (build-system emacs-build-system)
1472 (home-page "https://github.com/m00natic/eww-lnum")
1473 (synopsis "Conkeror-like functionality for Eww")
1474 (description "This is extension to the Emacs browser Eww that adds
1475 Conkeror-like functionality. In short, currently visible links, forms,
1476 buttons are temporarily assigned numbers with which the former can be
1477 immediately activated. Also filtering can be applied so selection can be
1478 incrementally confined in Isearch manner.")
1479 (license license:gpl3+)))
1480
1481
1482 \f
1483 ;;;
1484 ;;; Multimedia.
1485 ;;;
1486
1487 (define-public emacs-emms
1488 (package
1489 (name "emacs-emms")
1490 (version "5.42")
1491 (source
1492 (origin
1493 (method url-fetch)
1494 (uri (string-append "https://elpa.gnu.org/packages/"
1495 "emms-" version ".tar"))
1496 (sha256
1497 (base32 "1khx1fvllrs6w9kxk12mp1hj309c90mc7lkq1vvlqlr7vd6zmnpj"))))
1498 (build-system emacs-build-system)
1499 (arguments
1500 `(#:phases
1501 (modify-phases %standard-phases
1502 (add-after 'unpack 'set-external-programs
1503 ;; Specify the absolute file names of the various programs
1504 ;; so that everything works out-of-the-box.
1505 (lambda* (#:key inputs outputs #:allow-other-keys)
1506 (let ((out (assoc-ref outputs "out"))
1507 (flac (assoc-ref inputs "flac"))
1508 (vorbis (assoc-ref inputs "vorbis-tools"))
1509 (alsa (assoc-ref inputs "alsa-utils"))
1510 (mpg321 (assoc-ref inputs "mpg321"))
1511 (mp3info (assoc-ref inputs "mp3info"))
1512 (mutagen (assoc-ref inputs "mutagen"))
1513 (opus (assoc-ref inputs "opus-tools")))
1514 (emacs-substitute-variables "emms-player-mpg321-remote.el"
1515 ("emms-player-mpg321-remote-command"
1516 (string-append mpg321 "/bin/mpg321")))
1517 (substitute* "emms-player-simple.el"
1518 (("\"ogg123\"")
1519 (string-append "\"" vorbis "/bin/ogg123\"")))
1520 (substitute* "emms-player-simple.el"
1521 (("\"mpg321\"")
1522 (string-append "\"" mpg321 "/bin/mpg321\"")))
1523 (emacs-substitute-variables "emms-info-ogginfo.el"
1524 ("emms-info-ogginfo-program-name"
1525 (string-append vorbis "/bin/ogginfo")))
1526 (emacs-substitute-variables "emms-info-opusinfo.el"
1527 ("emms-info-opusinfo-program-name"
1528 (string-append opus "/bin/opusinfo")))
1529 (emacs-substitute-variables "emms-info-libtag.el"
1530 ("emms-info-libtag-program-name"
1531 (string-append out "/bin/emms-print-metadata")))
1532 (emacs-substitute-variables "emms-info-mp3info.el"
1533 ("emms-info-mp3info-program-name"
1534 (string-append mp3info "/bin/mp3info")))
1535 (emacs-substitute-variables "emms-info-metaflac.el"
1536 ("emms-info-metaflac-program-name"
1537 (string-append flac "/bin/metaflac")))
1538 (emacs-substitute-variables "emms-source-file.el"
1539 ("emms-source-file-gnu-find" (which "find")))
1540 (substitute* "emms-volume-amixer.el"
1541 (("\"amixer\"")
1542 (string-append "\"" alsa "/bin/amixer\"")))
1543 (substitute* "emms-tag-editor.el"
1544 (("\"mid3v2\"")
1545 (string-append "\"" mutagen "/bin/mid3v2\"")))
1546 #t))))))
1547 (inputs
1548 `(("alsa-utils" ,alsa-utils)
1549 ("flac" ,flac) ;for metaflac
1550 ("vorbis-tools" ,vorbis-tools)
1551 ("mpg321" ,mpg321)
1552 ("taglib" ,taglib)
1553 ("mp3info" ,mp3info)
1554 ("mutagen" ,python-mutagen)
1555 ("opus-tools" ,opus-tools)))
1556 (home-page "https://www.gnu.org/software/emms/")
1557 (synopsis "The Emacs Multimedia System")
1558 (description
1559 "EMMS is the Emacs Multimedia System. It is a small front-end which
1560 can control one of the supported external players. Thus, it supports
1561 whatever formats are supported by your music player. It also
1562 supports tagging and playlist management, all behind a clean and
1563 light user interface.")
1564 (license license:gpl3+)))
1565
1566 (define-public emacs-emms-mode-line-cycle
1567 (package
1568 (name "emacs-emms-mode-line-cycle")
1569 (version "0.2.5")
1570 (source
1571 (origin
1572 (method git-fetch)
1573 (uri (git-reference
1574 (url "https://github.com/momomo5717/emms-mode-line-cycle")
1575 (commit version)))
1576 (file-name (git-file-name name version))
1577 (sha256
1578 (base32
1579 "0q80f0plch6k4lhs8c9qm3mfycfbp3kn5sjrk9zxgxwnn901y9mp"))))
1580 (build-system emacs-build-system)
1581 (propagated-inputs
1582 `(("emms" ,emacs-emms)))
1583 (home-page "https://github.com/momomo5717/emms-mode-line-cycle")
1584 (synopsis "Display the EMMS mode line as a ticker")
1585 (description
1586 "This is a minor mode for updating the EMMS mode-line string cyclically
1587 within a specified width. It is useful for displaying long track titles.")
1588 (license license:gpl3+)))
1589
1590 \f
1591 ;;;
1592 ;;; Miscellaneous.
1593 ;;;
1594
1595 (define-public emacs-ace-link
1596 (package
1597 (name "emacs-ace-link")
1598 (version "0.5.0")
1599 (source
1600 (origin
1601 (method git-fetch)
1602 (uri (git-reference
1603 (url "https://github.com/abo-abo/ace-link")
1604 (commit version)))
1605 (file-name (git-file-name name version))
1606 (sha256
1607 (base32
1608 "147dz79vg4ym5wg3d544bw2khdb2j3hr73rw4qfm64wf0q2dj0vk"))))
1609 (build-system emacs-build-system)
1610 (propagated-inputs
1611 `(("emacs-avy" ,emacs-avy)))
1612 (home-page "https://github.com/abo-abo/ace-link")
1613 (synopsis "Quickly follow links in Emacs")
1614 (description
1615 "Currently, to jump to a link in a @code{Info-mode}, @code{help-mode},
1616 @code{woman-mode}, @code{org-mode}, @code{eww-mode}, @code{compilation-mode},
1617 @code{goto-address-mode} buffer, you can tab through the links to select the
1618 one you want. This is an O(N) operation, where the N is the amount of links.
1619 This package turns this into an O(1) operation. It does so by assigning a
1620 letter to each link using avy.")
1621 (license license:gpl3+)))
1622
1623 (define-public emacs-auto-sudoedit
1624 (package
1625 (name "emacs-auto-sudoedit")
1626 (version "1.0.0")
1627 (source
1628 (origin
1629 (method git-fetch)
1630 (uri (git-reference
1631 (url "https://github.com/ncaq/auto-sudoedit")
1632 (commit (string-append "v" version))))
1633 (file-name (git-file-name name version))
1634 (sha256
1635 (base32 "10p0hc95j382km8655pqld9wxg10j1f36czzppkdd6a55cxarv9f"))))
1636 (propagated-inputs
1637 `(("emacs-f" ,emacs-f)))
1638 (build-system emacs-build-system)
1639 (home-page "https://github.com/ncaq/auto-sudoedit")
1640 (synopsis "Automatically re-open read-only files with sudo")
1641 (description
1642 "This package automatically reopens a file or directory with
1643 @command{sudo} if it cannot write to it.")
1644 (license license:expat)))
1645
1646 (define-public emacs-bbdb
1647 (package
1648 (name "emacs-bbdb")
1649 (version "3.2")
1650 (source
1651 (origin
1652 (method url-fetch)
1653 (uri (string-append "https://elpa.gnu.org/packages/"
1654 "bbdb-" version ".tar"))
1655 (sha256
1656 (base32 "1p56dg0mja2b2figy7yhdx714zd5j6njzn0k07zjka3jc06izvjx"))))
1657 (build-system emacs-build-system)
1658 (arguments
1659 ;; XXX: The following file cannot be byte-compiled, because et requires
1660 ;; `vm-autoloads', from the VM package, with is neither in Emacs nor
1661 ;; packaged in Guix. So, don't bother for now.
1662 `(#:exclude '("bbdb-vm\\.el")))
1663 (home-page "http://elpa.gnu.org/packages/bbdb.html")
1664 (synopsis "Contact management utility for Emacs")
1665 (description
1666 "BBDB is the Insidious Big Brother Database for GNU Emacs. It provides
1667 an address book for email and snail mail addresses, phone numbers and the
1668 like. It can be linked with various Emacs mail clients (Message and Mail
1669 mode, Rmail, Gnus, MH-E, and VM). BBDB is fully customizable.")
1670 (license license:gpl3+)))
1671
1672 (define-public emacs-bluetooth
1673 (package
1674 (name "emacs-bluetooth")
1675 (version "0.1.2")
1676 (source
1677 (origin
1678 (method url-fetch)
1679 (uri (string-append "https://elpa.gnu.org/packages/"
1680 "bluetooth-" version ".el"))
1681 (sha256
1682 (base32 "1vp2vpyq0ybjni35ics1mg1kiwgvc7x12dlmvygy78sqp52sfkcv"))))
1683 (build-system emacs-build-system)
1684 (inputs
1685 `(("bluez" ,bluez)))
1686 (propagated-inputs
1687 `(("emacs-dash" ,emacs-dash)))
1688 (home-page "https://gitlab.com/rstocker/emacs-bluetooth")
1689 (synopsis "Manage Bluetooth devices using Emacs")
1690 (description
1691 "This package implements basic Bluetooth management functionality, such
1692 as connecting and disconnecting devices, setting properties and aliases,
1693 putting the adapter in discovery mode and controlling its power supply. It
1694 also includes a pairing agent.")
1695 (license license:gpl3+)))
1696
1697 (define-public emacs-aggressive-indent
1698 (package
1699 (name "emacs-aggressive-indent")
1700 (version "1.8.3")
1701 (source (origin
1702 (method url-fetch)
1703 (uri (string-append "https://elpa.gnu.org/packages/"
1704 "aggressive-indent-" version ".el"))
1705 (sha256
1706 (base32
1707 "0jnzccl50x0wapprgwxinp99pwwa6j43q6msn4gv437j7swy8wnj"))))
1708 (build-system emacs-build-system)
1709 (home-page "https://elpa.gnu.org/packages/aggressive-indent.html")
1710 (synopsis "Minor mode to aggressively keep your code always indented")
1711 (description
1712 "@code{aggressive-indent-mode} is a minor mode that keeps your code
1713 always indented. It reindents after every change, making it more reliable
1714 than @code{electric-indent-mode}.")
1715 (license license:gpl2+)))
1716
1717 (define-public emacs-ctrlf
1718 (package
1719 (name "emacs-ctrlf")
1720 (version "1.1")
1721 (source
1722 (origin
1723 (method git-fetch)
1724 (uri (git-reference
1725 (url "https://github.com/raxod502/ctrlf")
1726 (commit (string-append "v" version))))
1727 (file-name (git-file-name name version))
1728 (sha256
1729 (base32 "1ffcjf0ff0748gqipkklz6jmcj4f3blgzdcax93ql9ws8bmvlsdc"))))
1730 (build-system emacs-build-system)
1731 (home-page "https://github.com/raxod502/ctrlf/")
1732 (synopsis "Single-buffer text search in Emacs")
1733 (description "CTRLF (pronounced @emph{control F}) is an intuitive and
1734 efficient solution for single-buffer text search in Emacs, replacing packages
1735 such as Isearch, Swiper, and helm-swoop. It takes inspiration from the
1736 widely-adopted and battle-tested @samp{Ctrl+F} interfaces in programs such as
1737 web browsers, but follows the flow and keybindings of Isearch.")
1738 (license license:expat)))
1739
1740 (define-public emacs-dhall-mode
1741 ;; There is no proper release. The base version is extracted from the
1742 ;; "Version" keyword in the main file.
1743 (let ((revision "1")
1744 (commit "484bcf8f78f1183ef45c3b04a362bb73690c6b9b"))
1745 (package
1746 (name "emacs-dhall-mode")
1747 (version (git-version "0.1.3" revision commit))
1748 (source
1749 (origin
1750 (method git-fetch)
1751 (uri
1752 (git-reference
1753 (url "https://github.com/psibi/dhall-mode")
1754 (commit commit)))
1755 (file-name (git-file-name name version))
1756 (sha256
1757 (base32 "1wggg8jlzg9rph4jhxp6yiri178rnasbv38838i973kjgqjxrl76"))))
1758 (build-system emacs-build-system)
1759 (propagated-inputs
1760 `(("emacs-reformatter" ,emacs-reformatter)))
1761 (home-page "https://github.com/psibi/dhall-mode")
1762 (synopsis "Major mode for working with Dhall configuration language")
1763 (description
1764 "Dhall-mode provides an Emacs Major mode for working with the Dhall
1765 configuration language. It features:
1766
1767 @itemize
1768 @item Syntax highlighting
1769 @item Multiline support for String
1770 @item Basic indentation, commenting
1771 @item Automatic formatting on save using dhall-format.
1772 @item Error highlighting.
1773 @end itemize")
1774 (license license:gpl3+))))
1775
1776 (define-public emacs-link-hint
1777 ;; Last release was in 2015.
1778 (let ((commit "d74a483652486260c052941fedeadddb1ea71f88")
1779 (revision "1"))
1780 (package
1781 (name "emacs-link-hint")
1782 (version (git-version "0.1" revision commit))
1783 (source
1784 (origin
1785 (method git-fetch)
1786 (uri (git-reference
1787 (url "https://github.com/noctuid/link-hint.el")
1788 (commit commit)))
1789 (file-name (git-file-name name version))
1790 (sha256
1791 (base32
1792 "0dghxd165fbds6czy9bfwpid3i4irgp3q08n9mg57sfifi0cmij0"))))
1793 (build-system emacs-build-system)
1794 (propagated-inputs
1795 `(("emacs-avy" ,emacs-avy)))
1796 (home-page "https://github.com/noctuid/link-hint.el")
1797 (synopsis "Vimperator-style link-hinting in Emacs")
1798 (description "This package provides commands for visiting and acting on
1799 links.")
1800 (license license:gpl3+))))
1801
1802 (define-public emacs-ag
1803 (package
1804 (name "emacs-ag")
1805 (version "0.48")
1806 (source (origin
1807 (method git-fetch)
1808 (uri (git-reference
1809 (url "https://github.com/Wilfred/ag.el")
1810 (commit version)))
1811 (file-name (git-file-name name version))
1812 (sha256
1813 (base32
1814 "1p918y24vcn2pdliaymd210xp9fvhd4a1srqbv2lfiqrh59yjidx"))))
1815 (build-system emacs-build-system)
1816 (arguments
1817 `(#:phases
1818 (modify-phases %standard-phases
1819 (add-before 'install 'make-info
1820 (lambda _
1821 (with-directory-excursion "docs"
1822 (invoke "make" "info"))))
1823 (add-after 'install 'install-info
1824 (lambda* (#:key outputs #:allow-other-keys)
1825 (let* ((out (assoc-ref outputs "out"))
1826 (info (string-append out "/share/info")))
1827 (install-file "docs/_build/texinfo/agel.info" info)
1828 #t))))))
1829 (native-inputs
1830 `(("python-sphinx" ,python-sphinx)
1831 ("texinfo" ,texinfo)))
1832 (propagated-inputs
1833 `(("dash" ,emacs-dash)
1834 ("s" ,emacs-s)
1835 ;; We need to use 'ag' as the executable on remote systems.
1836 ("the-silver-searcher" ,the-silver-searcher)))
1837 (home-page "https://github.com/Wilfred/ag.el")
1838 (synopsis "Front-end for ag (the-silver-searcher) for Emacs")
1839 (description "This package provides the ability to use the silver
1840 searcher, a code searching tool, sometimes abbreviated to @code{ag}. Features
1841 include version control system awareness, use of Perl compatible regular
1842 expressions, editing the search results directly and searching file names
1843 rather than the contents of files.")
1844 (license license:gpl3+)))
1845
1846 (define-public emacs-async
1847 (package
1848 (name "emacs-async")
1849 (home-page "https://github.com/jwiegley/emacs-async")
1850 (version "1.9.4")
1851 (source (origin
1852 (method git-fetch)
1853 (uri (git-reference
1854 (url home-page)
1855 (commit (string-append "v" version))))
1856 (file-name (git-file-name name version))
1857 (sha256
1858 (base32
1859 "0hhpyxb3d531jb2f3wvzx25183f0anm8nxv6mh0p825q2gkm6ly7"))))
1860 (build-system emacs-build-system)
1861 (synopsis "Asynchronous processing in Emacs")
1862 (description
1863 "This package provides the ability to call asynchronous functions and
1864 processes. For example, it can be used to run dired commands (for copying,
1865 moving, etc.) asynchronously using @code{dired-async-mode}. Also it is used
1866 as a library for other Emacs packages.")
1867 (license license:gpl3+)))
1868
1869 (define-public emacs-auctex
1870 (package
1871 (name "emacs-auctex")
1872 (version "12.2.4")
1873 (source
1874 (origin
1875 (method url-fetch)
1876 (uri (string-append "https://elpa.gnu.org/packages/"
1877 "auctex-" version ".tar"))
1878 (sha256
1879 (base32 "1yz2h692mr35zgqwlxdq8rzv8n0jixhpaqmbiki00hlysm4zh9py"))))
1880 (build-system emacs-build-system)
1881 ;; We use 'emacs' because AUCTeX requires dbus at compile time
1882 ;; ('emacs-minimal' does not provide dbus).
1883 (arguments
1884 `(#:emacs ,emacs
1885 #:include '("\\.el$" "^images/" "^latex/" "\\.info$")
1886 #:exclude '("^tests/" "^latex/README")
1887 #:phases
1888 (modify-phases %standard-phases
1889 (add-after 'install 'install-doc
1890 (lambda* (#:key outputs #:allow-other-keys)
1891 (let* ((out (assoc-ref outputs "out"))
1892 (etc-dir (string-append out "/share/" ,name "/"
1893 ,version "/etc")))
1894 (with-directory-excursion "doc"
1895 (setenv "HOME" (getenv "TMPDIR")) ; for mktextfm
1896 (invoke "pdftex" "tex-ref")
1897 (install-file "tex-ref.pdf"
1898 (string-append etc-dir "/refcards")))
1899 #t))))))
1900 (native-inputs
1901 `(("perl" ,perl)))
1902 (inputs
1903 `(("texlive" ,(texlive-union (list texlive-amsfonts)))))
1904 (home-page "https://www.gnu.org/software/auctex/")
1905 (synopsis "Integrated environment for TeX")
1906 (description
1907 "AUCTeX is a comprehensive customizable integrated environment for
1908 writing input files for TeX, LaTeX, ConTeXt, Texinfo, and docTeX using Emacs
1909 or XEmacs.")
1910 (license license:gpl3+)))
1911
1912 (define-public emacs-autothemer
1913 (package
1914 (name "emacs-autothemer")
1915 (version "0.2.2")
1916 (source
1917 (origin
1918 (method git-fetch)
1919 (uri (git-reference
1920 (url "https://github.com/sebastiansturm/autothemer")
1921 (commit version)))
1922 (file-name (git-file-name name version))
1923 (sha256
1924 (base32
1925 "0cd2pqh6k32sjidkcd8682y4l6mx52xw4a05f38kk8nsrk28m74k"))))
1926 (build-system emacs-build-system)
1927 (propagated-inputs
1928 `(("emacs-dash" ,emacs-dash)))
1929 (home-page "https://github.com/sebastiansturm/autothemer")
1930 (synopsis "Conveniently create Emacs themes")
1931 (description
1932 "Autothemer provides a thin layer on top of @code{deftheme} and
1933 @code{custom-theme-set-faces} that creates a new custom color theme, based on
1934 a set of simplified face specifications and a user-supplied color palette")
1935 (license license:gpl3+)))
1936
1937 (define-public emacs-howm
1938 (package
1939 (name "emacs-howm")
1940 (version "1.4.6")
1941 (source
1942 (origin
1943 (method url-fetch)
1944 (uri (string-append "https://howm.sourceforge.jp/a/"
1945 "howm-" version ".tar.gz"))
1946 (sha256
1947 (base32 "17ihch1zbk08ih7gc232jlmbw7hax8ldb9glxp8d75k4asa98qh5"))))
1948 (build-system gnu-build-system)
1949 (native-inputs
1950 `(("emacs" ,emacs-minimal)))
1951 (arguments
1952 `(#:configure-flags
1953 (list (string-append "--with-howmdir=" %output
1954 "/share/emacs/site-lisp/"))
1955 #:modules ((guix build gnu-build-system)
1956 ((guix build emacs-build-system) #:prefix emacs:)
1957 (guix build utils))
1958 #:imported-modules (,@%gnu-build-system-modules
1959 (guix build emacs-build-system)
1960 (guix build emacs-utils))
1961 #:phases
1962 (modify-phases %standard-phases
1963 (add-after 'install 'make-autoloads
1964 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
1965 (home-page "https://howm.osdn.jp/")
1966 (synopsis "Note-taking tool for Emacs")
1967 (description "Howm is a note-taking tool for Emacs. Like
1968 code@{emacs-wiki.el}, it facilitates using hyperlinks and doing full-text
1969 searches. Unlike code@{emacs-wiki.el}, it can be combined with any format.")
1970 (license license:gpl1+)))
1971
1972 (define-public emacs-bm
1973 (package
1974 (name "emacs-bm")
1975 (version "201905")
1976 (source
1977 (origin
1978 (method git-fetch)
1979 (uri (git-reference
1980 (url "https://github.com/joodland/bm")
1981 (commit version)))
1982 (file-name (git-file-name name version))
1983 (sha256
1984 (base32 "180b3rc13asrmsdh7v405d54jkrininvaj52xhp71vw91ng51dkn"))))
1985 (build-system emacs-build-system)
1986 (home-page "https://github.com/joodland/bm")
1987 (synopsis "Visual bookmarks for Emacs")
1988 (description "This package provides visible, buffer local bookmarks and
1989 the ability to jump forward and backward to the next bookmark.")
1990 (license license:gpl2+)))
1991
1992 (define-public emacs-calfw
1993 (package
1994 (name "emacs-calfw")
1995 (version "1.6")
1996 (source
1997 (origin
1998 (method git-fetch)
1999 (uri (git-reference
2000 (url "https://github.com/kiwanami/emacs-calfw")
2001 (commit (string-append "v" version))))
2002 (file-name (git-file-name name version))
2003 (sha256
2004 (base32
2005 "0r42cagvmvvib76kd15nd9ix55ys6i549vxnls4z16s864695zpa"))))
2006 (build-system emacs-build-system)
2007 (propagated-inputs
2008 `(("emacs-howm" ,emacs-howm)))
2009 (home-page "https://github.com/kiwanami/emacs-calfw/")
2010 (synopsis "Calendar framework for Emacs")
2011 (description
2012 "This package displays a calendar view with various schedule data in the
2013 Emacs buffer.")
2014 (license license:gpl3+)))
2015
2016 (define-public emacs-caps-lock
2017 (package
2018 (name "emacs-caps-lock")
2019 (version "1.0")
2020 (source
2021 (origin
2022 (method url-fetch)
2023 (uri (string-append "https://elpa.gnu.org/packages/"
2024 "caps-lock-" version ".el"))
2025 (sha256
2026 (base32 "1i4hwam81p4dr0bk8257fkiz4xmv6knkjxj7a00fa35kgx5blpva"))))
2027 (build-system emacs-build-system)
2028 (home-page "http://elpa.gnu.org/packages/caps-lock.html")
2029 (synopsis "Caps Lock as a minor mode")
2030 (description
2031 "This package provides a minor mode to emulate the behavior of a Caps
2032 Lock key.")
2033 (license license:gpl3+)))
2034
2035 (define-public emacs-chronometrist
2036 (package
2037 (name "emacs-chronometrist")
2038 (version "0.5.3")
2039 (source
2040 (origin
2041 (method git-fetch)
2042 (uri (git-reference
2043 (url "https://github.com/contrapunctus-1/chronometrist.git")
2044 (commit (string-append "v" version))))
2045 (file-name (git-file-name name version))
2046 (sha256
2047 (base32 "0jz35972m372kx9x8mgf42zhzdw2w9wv2ri52chfb2fin4bh1biy"))))
2048 (build-system emacs-build-system)
2049 (arguments
2050 `(#:phases
2051 (modify-phases %standard-phases
2052 (add-after 'unpack 'chdir-elisp
2053 ;; Elisp directory is not in root of the source.
2054 (lambda _
2055 (chdir "elisp")
2056 #t))
2057 (add-after 'install 'install-doc
2058 ;; Documentation consists of several Markdown files.
2059 (lambda* (#:key outputs #:allow-other-keys)
2060 (let* ((out (assoc-ref outputs "out"))
2061 (doc (string-append out
2062 "/share/doc/emacs-chronometrist-"
2063 ,version)))
2064 (with-directory-excursion "../doc"
2065 (for-each (lambda (f) (install-file f doc))
2066 (cons* "../UNLICENSE"
2067 "../WTFPL"
2068 (find-files "." "\\.md$")))))
2069 #t)))))
2070 (propagated-inputs
2071 `(("emacs-dash" ,emacs-dash)
2072 ("emacs-s" ,emacs-s)
2073 ("emacs-ts" ,emacs-ts)))
2074 (home-page "https://github.com/contrapunctus-1/chronometrist")
2075 (synopsis "Time tracker for Emacs")
2076 (description "Chronometrist is a time tracker in Emacs, largely modelled
2077 after the Android application, @emph{A Time Tracker}.
2078
2079 Its features are:
2080 @itemize
2081 @item Simple and efficient to use,
2082 @item Displays useful information about your time usage,
2083 @item Support for both mouse and keyboard,
2084 @item Human errors in tracking are easily fixed by editing a plain text file,
2085 @item Hooks to let you perform arbitrary actions when starting/stopping tasks.
2086 @end itemize")
2087 ;; Software is dual-licensed.
2088 (license (list license:unlicense license:wtfpl2))))
2089
2090 (define-public emacs-direnv
2091 (package
2092 (name "emacs-direnv")
2093 (version "2.0.0")
2094 (source
2095 (origin
2096 (method git-fetch)
2097 (uri (git-reference
2098 (url "https://github.com/wbolster/emacs-direnv")
2099 (commit version)))
2100 (file-name (git-file-name name version))
2101 (sha256
2102 (base32
2103 "005ibyzsx1fdyrl5iyhqpb1bg83mphzahq7zvw58x00syyqi2z49"))))
2104 (build-system emacs-build-system)
2105 (propagated-inputs
2106 `(("dash" ,emacs-dash)
2107 ("with-editor" ,emacs-with-editor)))
2108 (home-page "https://github.com/wbolster/emacs-direnv")
2109 (synopsis "Direnv integration for Emacs")
2110 (description
2111 "This package provides support for invoking direnv to get the environment
2112 for the current file and updating the environment within Emacs to match.
2113
2114 Direnv can be invoked manually, and a global minor mode is included that will
2115 update the environment when the active buffer changes.
2116
2117 Using emacs-direnv means that programs started from Emacs will use the
2118 environment set through Direnv.")
2119 (license license:gpl3+)))
2120
2121 (define-public emacs-elf-mode
2122 (package
2123 (name "emacs-elf-mode")
2124 (version "0.1.0")
2125 (source
2126 (origin
2127 (method git-fetch)
2128 (uri
2129 (git-reference
2130 (url "https://github.com/abo-abo/elf-mode")
2131 (commit version)))
2132 (file-name (git-file-name name version))
2133 (sha256
2134 (base32 "0cbvjbk2893ag1iy8ggixpirfiyhssm7fii96hb9jqdz874cdl0k"))))
2135 (build-system emacs-build-system)
2136 (home-page "https://github.com/abo-abo/elf-mode")
2137 (synopsis "Show symbol list when opening a binary file in Emacs")
2138 (description "This Emacs package provides a command showing the symbols
2139 that the binary uses instead of the actual binary contents.")
2140 (license license:gpl3+)))
2141
2142 (define-public emacs-form-feed
2143 (package
2144 (name "emacs-form-feed")
2145 (version "0.2.2")
2146 (source
2147 (origin
2148 (method git-fetch)
2149 (uri (git-reference
2150 (url "https://github.com/wasamasa/form-feed")
2151 (commit version)))
2152 (file-name (git-file-name name version))
2153 (sha256
2154 (base32 "171jna631b2iqcimfsik9c66gii8nc0zdb58m077w00rn7rcxbh2"))))
2155 (build-system emacs-build-system)
2156 (home-page "https://github.com/wasamasa/form-feed")
2157 (synopsis "Display ^L glyphs as horizontal lines")
2158 (description
2159 "This package provides a minor mode @code{form-feed-mode} to display page
2160 delimiters which usually appear as ^L glyphs on a single line as horizontal
2161 lines spanning the entire window. The minor mode is suitable for inclusion
2162 into mode hooks and is intended to be used that way.")
2163 (license license:gpl3+)))
2164
2165 (define-public emacs-ggtags
2166 (package
2167 (name "emacs-ggtags")
2168 (version "0.8.13")
2169 (source
2170 (origin
2171 (method url-fetch)
2172 (uri (string-append "https://elpa.gnu.org/packages/ggtags-"
2173 version ".el"))
2174 (sha256
2175 (base32
2176 "1qa7lcrcmf76sf6dy8sxbg4adq7rg59fm0n5848w3qxgsr0h45fg"))))
2177 (build-system emacs-build-system)
2178 (inputs
2179 `(("global" ,global)))
2180 (arguments
2181 `(#:phases
2182 (modify-phases %standard-phases
2183 (add-after 'unpack 'configure
2184 (lambda* (#:key inputs #:allow-other-keys)
2185 (chmod "ggtags.el" #o644)
2186 (emacs-substitute-variables "ggtags.el"
2187 ("ggtags-executable-directory"
2188 (string-append (assoc-ref inputs "global") "/bin")))
2189 #t)))))
2190 (home-page "https://github.com/leoliu/ggtags")
2191 (synopsis "Frontend to the GNU Global source code tagging system")
2192 (description "@code{ggtags} provides a frontend to the GNU Global source
2193 code tagging system.
2194
2195 Features:
2196
2197 @itemize
2198 @item Build on @code{compile.el} for asynchronicity and its large feature-set.
2199 @item Automatically update Global's tag files when needed with tuning for
2200 large source trees.
2201 @item Intuitive navigation among multiple matches with mode-line display of
2202 current match, total matches and exit status.
2203 @item Read tag with completion.
2204 @item Show definition at point.
2205 @item Jump to #include files.
2206 @item Support search history and saving a search to register/bookmark.
2207 @item Query replace.
2208 @item Manage Global's environment variables on a per-project basis.
2209 @item Highlight (definition) tag at point.
2210 @item Abbreviated display of file names.
2211 @item Support all Global search backends: @code{grep}, @code{idutils}, etc.
2212 @item Support exuberant ctags @url{http://ctags.sourceforge.net/} and
2213 @code{pygments} backend.
2214 @item Support all Global's output formats: @code{grep}, @code{ctags-x},
2215 @code{cscope} etc.
2216 @item Support projects on remote hosts (e.g. via @code{tramp}).
2217 @item Support eldoc.
2218 @item Search @code{GTAGSLIBPATH} for references and symbols.
2219 @end itemize\n")
2220 (license license:gpl3+)))
2221
2222 (define-public emacs-go-mode
2223 (package
2224 (name "emacs-go-mode")
2225 (version "1.5.0")
2226 (source (origin
2227 (method git-fetch)
2228 (uri (git-reference
2229 (url "https://github.com/dominikh/go-mode.el")
2230 (commit (string-append "v" version))))
2231 (file-name (git-file-name name version))
2232 (sha256
2233 (base32
2234 "1nd2h50yb0493wvf1h7fzplq45rmqn2w7kxpgnlxzhkvq99v8vzf"))))
2235 (build-system emacs-build-system)
2236 (arguments
2237 `(#:phases
2238 (modify-phases %standard-phases
2239 (add-after 'unpack 'make-writable
2240 (lambda _
2241 (for-each make-file-writable (find-files "." "\\.el$"))
2242 #t)))))
2243 (home-page "https://github.com/dominikh/go-mode.el")
2244 (synopsis "Go mode for Emacs")
2245 (description
2246 "This package provides go-mode, an Emacs mode for working with software
2247 written in the Go programming language.")
2248 (license license:bsd-3)))
2249
2250 (define-public emacs-google-maps
2251 (package
2252 (name "emacs-google-maps")
2253 (version "1.0.0")
2254 (source (origin
2255 (method git-fetch)
2256 (uri (git-reference
2257 (url "https://github.com/jd/google-maps.el")
2258 (commit version)))
2259 (file-name (git-file-name name version))
2260 (sha256
2261 (base32
2262 "183igr5lp20zcqi7rc01fk76sfxdhksd74i11v16gdsifdkjimd0"))))
2263 (build-system emacs-build-system)
2264 (home-page "https://github.com/jd/google-maps.el")
2265 (synopsis "Access Google Maps from Emacs")
2266 (description "The @code{google-maps} package displays Google
2267 Maps directly inside Emacs.")
2268 (license license:gpl3+)))
2269
2270 (define-public emacs-graphviz-dot-mode
2271 (package
2272 (name "emacs-graphviz-dot-mode")
2273 (version "0.4.2")
2274 (source
2275 (origin
2276 (method git-fetch)
2277 (uri (git-reference
2278 (url "https://github.com/ppareit/graphviz-dot-mode")
2279 (commit (string-append "v" version))))
2280 (file-name (git-file-name name version))
2281 (sha256
2282 (base32 "1v1p85wk73nfsvv66qf90flgf9dqhmv15z1r7q4zmc4ifklqn08m"))))
2283 (build-system emacs-build-system)
2284 (arguments
2285 `(#:phases
2286 (modify-phases %standard-phases
2287 (add-before 'install 'make-info
2288 (lambda* (#:key inputs #:allow-other-keys)
2289 (with-directory-excursion "texinfo"
2290 (substitute* "Makefile"
2291 (("\\/usr\\/bin\\/gzip")
2292 (string-append (assoc-ref inputs "gzip") "/bin/gzip")))
2293 (invoke "make"
2294 "clean"
2295 "info"
2296 (string-append "TEXINFODIR="
2297 (assoc-ref inputs "texinfo")
2298 "/bin")))))
2299 (add-after 'install 'install-info
2300 (lambda* (#:key outputs #:allow-other-keys)
2301 (let* ((out (assoc-ref outputs "out"))
2302 (info (string-append out "/share/info")))
2303 (install-file "texinfo/graphviz-dot-mode.info.gz" info)
2304 #t))))))
2305 (native-inputs
2306 `(("gzip" ,gzip)
2307 ("texinfo" ,texinfo)))
2308 (propagated-inputs
2309 `(("emacs-company" ,emacs-company)))
2310 (home-page "http://ppareit.github.com/graphviz-dot-mode")
2311 (synopsis "Major mode for editing Graphviz DOT files")
2312 (description
2313 "This Emacs package helps you to create @file{.dot} or @file{.gv} files
2314 using the DOT syntax, and use Graphviz to convert these files to diagrams.")
2315 (license license:gpl2+)))
2316
2317 (define-public emacs-imenu-list
2318 (package
2319 (name "emacs-imenu-list")
2320 (version "0.8")
2321 (source
2322 (origin
2323 (method git-fetch)
2324 (uri
2325 (git-reference
2326 (url "https://github.com/bmag/imenu-list")
2327 (commit (string-append "v" version))))
2328 (file-name (git-file-name name version))
2329 (sha256
2330 (base32 "13xh9bdl3k6ccfq83wjmkpi4269qahv4davki4wq18dr4amrzhlx"))))
2331 (build-system emacs-build-system)
2332 (home-page "https://github.com/bmag/imenu-list")
2333 (synopsis
2334 "Automatically tracks the current buffer's imenu entries")
2335 (description
2336 "This Emacs minor mode creates an automatically updated buffer called
2337 @code{*Ilist*} that is populated with the current buffer's imenu entries.
2338 This buffer is typically shown as a sidebar (Emacs vertically splits the
2339 window).")
2340 (license license:gpl3+)))
2341
2342 (define-public emacs-mmm-mode
2343 (package
2344 (name "emacs-mmm-mode")
2345 (version "0.5.8")
2346 (source
2347 (origin
2348 (method url-fetch)
2349 (uri (string-append "https://elpa.gnu.org/packages/"
2350 "mmm-mode-" version ".tar"))
2351 (sha256
2352 (base32 "05ckf4zapdpvnd3sqpw6kxaa567zh536a36m9qzx3sqyjbyn5fb4"))))
2353 (build-system emacs-build-system)
2354 (home-page "https://github.com/purcell/mmm-mode")
2355 (synopsis "Allow multiple major modes in an Emacs buffer")
2356 (description
2357 "MMM Mode is a minor mode that allows multiple major modes to coexist in
2358 a single buffer.")
2359 (license license:gpl3+)))
2360
2361 (define-public emacs-mmt
2362 (package
2363 (name "emacs-mmt")
2364 (version "0.2.0")
2365 (source
2366 (origin
2367 (method git-fetch)
2368 (uri (git-reference
2369 (url "https://github.com/mrkkrp/mmt")
2370 (commit version)))
2371 (file-name (git-file-name name version))
2372 (sha256
2373 (base32 "13vbfc5597v0gd87qyhn10f93nb477vjpg3jlpphbax9fvkf4gav"))))
2374 (build-system emacs-build-system)
2375 (home-page "https://github.com/mrkkrp/mmt")
2376 (synopsis "Classic tools to write Emacs Lisp macros")
2377 (description "Emacs MMT is a package that contains classic tools for Emacs
2378 Lisp developers who want to write macros with convenience.")
2379 (license license:gpl3+)))
2380
2381 (define-public emacs-tablist
2382 (package
2383 (name "emacs-tablist")
2384 (version "1.0")
2385 (source (origin
2386 (method git-fetch)
2387 (uri (git-reference
2388 (url "https://github.com/politza/tablist")
2389 (commit (string-append "v" version))))
2390 (file-name (git-file-name name version))
2391 (sha256
2392 (base32
2393 "0pzsdg0rm59daw34ppss79cg05z9wnr8nkmdcc48nkd0p69ip2yy"))))
2394 (build-system emacs-build-system)
2395 (home-page "https://github.com/politza/tablist")
2396 (synopsis "Extension for @code{tabulated-list-mode}")
2397 (description "Tablist is the Emacs package that provides several
2398 additional features to @code{tabulated-list-mode}: it adds marks,
2399 filters, new key bindings and faces. It can be enabled by
2400 @code{tablist-mode} or @code{tablist-minor-mode} commands.")
2401 (license license:gpl3+)))
2402
2403 (define-public emacs-djvu
2404 (package
2405 (name "emacs-djvu")
2406 (version "1.1")
2407 (source
2408 (origin
2409 (method url-fetch)
2410 (uri (string-append "https://elpa.gnu.org/packages/"
2411 "djvu-" version ".el"))
2412 (sha256
2413 (base32 "0njgyx09q225hliacsnjk8wallg5i6xkz6bj501pb05nwqfbvfk7"))))
2414 (build-system emacs-build-system)
2415 (home-page "http://elpa.gnu.org/packages/djvu.html")
2416 (synopsis "Edit and view Djvu files via djvused")
2417 (description
2418 "This package is a front end for the command-line program djvused from
2419 DjVuLibre, see @url{http://djvu.sourceforge.net/}. It assumes you have the
2420 programs @command{djvused}, @command{djview}, @command{ddjvu}, and
2421 @command{djvm} installed.")
2422 (license license:gpl3+)))
2423
2424 (define-public emacs-pabbrev
2425 (package
2426 (name "emacs-pabbrev")
2427 (version "4.2.1")
2428 (source
2429 (origin
2430 (method url-fetch)
2431 (uri (string-append "https://elpa.gnu.org/packages/"
2432 "pabbrev-" version ".el"))
2433 (sha256
2434 (base32 "19v5adk61y8fpigw7k6wz6dj79jwr450hnbi7fj0jvb21cvjmfxh"))))
2435 (build-system emacs-build-system)
2436 (home-page "http://elpa.gnu.org/packages/pabbrev.html")
2437 (synopsis "Predictive abbreviation expansion")
2438 (description
2439 "The code provides a abbreviation expansion for Emacs. It is
2440 fairly similar to Dabbrev expansion, which works based on the contents
2441 of the current buffer (or other buffers).
2442
2443 Predictive abbreviation expansion works based on the previously
2444 written text. Unlike dynamic abbreviation, the text is analysed
2445 during idle time, while Emacs is doing nothing else.")
2446 (license license:gpl3+)))
2447
2448 (define-public emacs-pdf-tools
2449 (package
2450 (name "emacs-pdf-tools")
2451 (version "0.90")
2452 (home-page "https://github.com/politza/pdf-tools")
2453 (source (origin
2454 (method git-fetch)
2455 (uri (git-reference (url home-page)
2456 (commit (string-append "v" version))))
2457 (file-name (git-file-name name version))
2458 (sha256
2459 (base32
2460 "0iv2g5kd14zk3r5dzdw7b7hk4b5w7qpbilcqkja46jgxbb6xnpl9"))))
2461 (build-system gnu-build-system)
2462 (arguments
2463 `(#:tests? #f ; there are no tests
2464 #:modules ((guix build gnu-build-system)
2465 ((guix build emacs-build-system) #:prefix emacs:)
2466 (guix build utils)
2467 (guix build emacs-utils))
2468 #:imported-modules (,@%gnu-build-system-modules
2469 (guix build emacs-build-system)
2470 (guix build emacs-utils))
2471 #:phases
2472 (modify-phases %standard-phases
2473 ;; Build server side using 'gnu-build-system'.
2474 (add-after 'unpack 'enter-server-dir
2475 (lambda _ (chdir "server") #t))
2476 (add-after 'enter-server-dir 'autogen
2477 (lambda _
2478 (invoke "bash" "autogen.sh")))
2479
2480 ;; Build emacs side using 'emacs-build-system'.
2481 (add-after 'compress-documentation 'enter-lisp-dir
2482 (lambda _ (chdir "../lisp") #t))
2483 (add-after 'enter-lisp-dir 'emacs-patch-variables
2484 (lambda* (#:key outputs #:allow-other-keys)
2485 (for-each make-file-writable (find-files "."))
2486
2487 ;; Set path to epdfinfo program.
2488 (emacs-substitute-variables "pdf-info.el"
2489 ("pdf-info-epdfinfo-program"
2490 (string-append (assoc-ref outputs "out")
2491 "/bin/epdfinfo")))
2492 ;; Set 'pdf-tools-handle-upgrades' to nil to avoid "auto
2493 ;; upgrading" that pdf-tools tries to perform.
2494 (emacs-substitute-variables "pdf-tools.el"
2495 ("pdf-tools-handle-upgrades" '()))))
2496 (add-after 'emacs-patch-variables 'emacs-add-source-to-load-path
2497 (assoc-ref emacs:%standard-phases 'add-source-to-load-path))
2498 (add-after 'emacs-add-source-to-load-path 'emacs-install
2499 (assoc-ref emacs:%standard-phases 'install))
2500 (add-after 'emacs-install 'emacs-build
2501 (assoc-ref emacs:%standard-phases 'build))
2502 (add-after 'emacs-install 'emacs-make-autoloads
2503 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
2504 (native-inputs `(("autoconf" ,autoconf)
2505 ("automake" ,automake)
2506 ("pkg-config" ,pkg-config)
2507 ("emacs" ,emacs-minimal)))
2508 (inputs `(("poppler" ,poppler)
2509 ("cairo" ,cairo)
2510 ("glib" ,glib)
2511 ("libpng" ,libpng)
2512 ("zlib" ,zlib)))
2513 (propagated-inputs `(("tablist" ,emacs-tablist)))
2514 (synopsis "Emacs support library for PDF files")
2515 (description
2516 "PDF Tools is, among other things, a replacement of DocView for PDF
2517 files. The key difference is that pages are not pre-rendered by
2518 e.g. ghostscript and stored in the file-system, but rather created on-demand
2519 and stored in memory.")
2520 (license license:gpl3+)))
2521
2522 (define-public emacs-dash
2523 (package
2524 (name "emacs-dash")
2525 (version "2.17.0")
2526 (source (origin
2527 (method git-fetch)
2528 (uri (git-reference
2529 (url "https://github.com/magnars/dash.el")
2530 (commit version)))
2531 (file-name (git-file-name name version))
2532 (sha256
2533 (base32
2534 "153f55dqkhs8w2xlf6b88wp5vlkap7h8vjd9wxh4jp2ram5g4l1n"))))
2535 (build-system emacs-build-system)
2536 (arguments
2537 `(#:tests? #t
2538 #:test-command '("./run-tests.sh")))
2539 (home-page "https://github.com/magnars/dash.el")
2540 (synopsis "Modern list library for Emacs")
2541 (description "This package provides a modern list API library for Emacs.")
2542 (license license:gpl3+)))
2543
2544 (define-public emacs-bui
2545 (package
2546 (name "emacs-bui")
2547 (version "1.2.1")
2548 (source (origin
2549 (method git-fetch)
2550 (uri (git-reference
2551 (url "https://notabug.org/alezost/emacs-bui.git")
2552 (commit (string-append "v" version))))
2553 (file-name (git-file-name name version))
2554 (sha256
2555 (base32
2556 "0sszdl4kvqbihdh8d7mybpp0d8yw2p3gyiipjcxz9xhvvmw3ww4x"))))
2557 (build-system emacs-build-system)
2558 (propagated-inputs
2559 `(("dash" ,emacs-dash)))
2560 (home-page "https://notabug.org/alezost/emacs-bui")
2561 (synopsis "Buffer interface library for Emacs")
2562 (description
2563 "BUI (Buffer User Interface) is a library for making @code{list} and
2564 @code{info} interfaces to display an arbitrary data of the same
2565 type, for example: packages, buffers, files, etc.")
2566 (license license:gpl3+)))
2567
2568 (define-public emacs-guix
2569 (let ((commit "df1fc5d8885959fd2bb83a443137d21c6850dd74")
2570 (revision "1"))
2571 (package
2572 (name "emacs-guix")
2573 (version (git-version "0.5.2" revision commit))
2574 (source (origin
2575 (method git-fetch)
2576 (uri (git-reference
2577 (url "https://gitlab.com/emacs-guix/emacs-guix")
2578 (commit commit)))
2579 (file-name (git-file-name name version))
2580 (sha256
2581 (base32
2582 "14rn02ay1b8zl0pg54pkqpyzh948c4qiqlvl35627shx7zw5acqh"))))
2583 (build-system gnu-build-system)
2584 (native-inputs
2585 `(("autoconf" ,autoconf)
2586 ("automake" ,automake)
2587 ("pkg-config" ,pkg-config)
2588 ("texinfo" ,texinfo)
2589 ("emacs" ,emacs-minimal)))
2590 (inputs
2591 `(("guile" ,@(assoc-ref (package-native-inputs guix) "guile"))
2592 ("guix" ,guix)))
2593 (propagated-inputs
2594 `(("geiser" ,emacs-geiser)
2595 ("guile-gcrypt" ,guile-gcrypt)
2596 ("dash" ,emacs-dash)
2597 ("bui" ,emacs-bui)
2598 ("edit-indirect" ,emacs-edit-indirect)
2599 ("magit-popup" ,emacs-magit-popup)))
2600 (home-page "https://emacs-guix.gitlab.io/website/")
2601 (synopsis "Emacs interface for GNU Guix")
2602 (description
2603 "Emacs-Guix provides a visual interface, tools and features for the GNU
2604 Guix package manager. Particularly, it allows you to do various package
2605 management tasks from Emacs. To begin with, run @code{M-x guix-about} or
2606 @code{M-x guix-help} command.")
2607 (license license:gpl3+))))
2608
2609 (define-public emacs-build-farm
2610 (package
2611 (name "emacs-build-farm")
2612 (version "0.2.2")
2613 (source (origin
2614 (method git-fetch)
2615 (uri (git-reference
2616 (url "https://notabug.org/alezost/emacs-build-farm.git")
2617 (commit (string-append "v" version))))
2618 (file-name (git-file-name name version))
2619 (sha256
2620 (base32
2621 "0i0bwbav5861j2y15j9nd5m9rdqg9q97zgcbld8pivr9nyxy63lz"))))
2622 (build-system emacs-build-system)
2623 (propagated-inputs
2624 `(("bui" ,emacs-bui)
2625 ("magit-popup" ,emacs-magit-popup)))
2626 (home-page "https://notabug.org/alezost/emacs-build-farm")
2627 (synopsis "Emacs interface for Hydra and Cuirass build farms")
2628 (description
2629 "This Emacs package provides an interface for Hydra and
2630 Cuirass (build farms used by Nix and Guix). It allows you to look at
2631 various data related to the build farm projects, jobsets, builds and
2632 evaluations. The entry point is @code{M-x build-farm} command.")
2633 (license license:gpl3+)))
2634
2635 (define-public emacs-d-mode
2636 (package
2637 (name "emacs-d-mode")
2638 (version "2.0.10")
2639 (source
2640 (origin
2641 (method git-fetch)
2642 (uri (git-reference
2643 (url "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode")
2644 (commit version)))
2645 (file-name (git-file-name name version))
2646 (sha256
2647 (base32 "0915kb9jcaixgindhj85fmykkhvj31ckp1yg6746fznwdgfrlifv"))))
2648 (build-system emacs-build-system)
2649 (propagated-inputs
2650 `(("emacs-undercover" ,emacs-undercover)))
2651 (home-page "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode")
2652 (synopsis "Emacs major mode for editing D code")
2653 (description "This package provides an Emacs major mode for highlighting
2654 code written in the D programming language. This mode is currently known to
2655 work with Emacs 24 and 25.")
2656 (license license:gpl2+)))
2657
2658 (define-public emacs-extempore-mode
2659 ;; Use the latest commit at time of packaging. There are no releases or tags.
2660 (let ((commit "09518ae6650d7be33a4633a4c0f31b7130d04c6e")
2661 (revision "1"))
2662 (package
2663 (name "emacs-extempore-mode")
2664 (version (git-version "0.0.0" revision commit))
2665 (source
2666 (origin
2667 (method git-fetch)
2668 (uri (git-reference
2669 (url "https://github.com/extemporelang/extempore-emacs-mode")
2670 (commit commit)))
2671 (file-name (git-file-name name version))
2672 (sha256
2673 (base32 "0hfza9lzdsz94gxhmzyp9fwviscv19rmnjgd0q613faayn11sjsp"))))
2674 (build-system emacs-build-system)
2675 (home-page "https://github.com/extemporelang/extempore-emacs-mode")
2676 (synopsis "Emacs major mode for Extempore source files")
2677 (description
2678 "This package provides a major mode for editing Extempore code. It can
2679 create an Extempore REPL, connect the current @code{extempore-mode} buffer to a
2680 running Extempore process, and more.")
2681 (license license:bsd-2))))
2682
2683 (define-public emacs-kakoune
2684 ;; Package has no release. Version is extracted from "Version:" keyword in
2685 ;; main file.
2686 (let ((commit "d73d14e69ea38076af50cc69f846808383ff539d")
2687 (revision "0"))
2688 (package
2689 (name "emacs-kakoune")
2690 (version (git-version "0.1" revision commit))
2691 (source
2692 (origin
2693 (method git-fetch)
2694 (uri (git-reference
2695 (url "https://github.com/jmorag/kakoune.el")
2696 (commit commit)))
2697 (file-name (git-file-name name version))
2698 (sha256
2699 (base32 "0nk6jdy1y5mc3ryd0smiqghrk6iv34d5grc7f7migmshlbq0np92"))))
2700 (build-system emacs-build-system)
2701 (propagated-inputs
2702 `(("emacs-expand-region" ,emacs-expand-region)
2703 ("emacs-multiple-cursors" ,emacs-multiple-cursors)
2704 ("emacs-ryo-modal" ,emacs-ryo-modal)))
2705 (home-page "https://github.com/jmorag/kakoune.el")
2706 (synopsis "Emacs simple simulation, but not emulation, of Kakoune")
2707 (description "This package provides many, but not all of the editing
2708 primitives in the Kakoune editor. Unlike Evil mode for Vim, this is a very
2709 shallow emulation, which seeks to do as little work as possible, leveraging
2710 Emacs native editing commmands and the work of other packages wherever
2711 possible.")
2712 (license license:expat))))
2713
2714 (define-public emacs-keyfreq
2715 (package
2716 (name "emacs-keyfreq")
2717 (version "20160516.716")
2718 (source
2719 (origin
2720 (method url-fetch)
2721 (uri (string-append "http://melpa.org/packages/keyfreq-"
2722 version ".el"))
2723 (sha256
2724 (base32
2725 "008hd7d06qskc3mx0bbdgpgy2pwxr8185fzlyqf9qjg49y74p6g8"))))
2726 (build-system emacs-build-system)
2727 (home-page "https://github.com/dacap/keyfreq")
2728 (synopsis "Track Emacs command frequencies")
2729 (description "@code{emacs-keyfeq} tracks and shows how many times you used
2730 a command.")
2731 (license license:gpl3+)))
2732
2733 (define-public emacs-olivetti
2734 (package
2735 (name "emacs-olivetti")
2736 (version "1.8.1")
2737 (source (origin
2738 (method git-fetch)
2739 (uri (git-reference
2740 (url "https://github.com/rnkn/olivetti")
2741 (commit (string-append "v" version))))
2742 (file-name (git-file-name name version))
2743 (sha256
2744 (base32
2745 "1fbj9s49y5yx5i429awv9rybacfgvhwp7v5h0zw67bpgx4qs44pa"))))
2746 (build-system emacs-build-system)
2747 (home-page "https://github.com/rnkn/olivetti")
2748 (synopsis "Emacs minor mode for a nice writing environment")
2749 (description "This package provides an Emacs minor mode that puts writing
2750 in the center.")
2751 (license license:gpl3+)))
2752
2753 (define-public emacs-undo-tree
2754 (package
2755 (name "emacs-undo-tree")
2756 (version "0.7.4")
2757 (source
2758 (origin
2759 (method url-fetch)
2760 (uri (string-append "https://elpa.gnu.org/packages/"
2761 "undo-tree-" version ".el"))
2762 (sha256
2763 (base32 "018ixl802f076sfyf4gkacpgrdpybin88jd8vq9zgyvc6x2dalfa"))))
2764 (build-system emacs-build-system)
2765 (home-page "http://www.dr-qubit.org/emacs.php")
2766 (synopsis "Treat undo history as a tree")
2767 (description
2768 "Tree-like interface to Emacs undo system, providing
2769 graphical tree presentation of all previous states of buffer that
2770 allows easily move between them.")
2771 (license license:gpl3+)))
2772
2773 (define-public emacs-s
2774 (package
2775 (name "emacs-s")
2776 (version "1.12.0")
2777 (source
2778 (origin
2779 (method git-fetch)
2780 (uri (git-reference
2781 (url "https://github.com/magnars/s.el")
2782 (commit version)))
2783 (file-name (git-file-name name version))
2784 (sha256
2785 (base32 "1g8mqd13llj007al4nlxxx4z2lcsg3wk970mgjn0avwrhjjgdmmv"))))
2786 (build-system emacs-build-system)
2787 (arguments
2788 `(#:tests? #t
2789 #:emacs ,emacs ; FIXME: tests fail with emacs-minimal
2790 #:test-command '("./run-tests.sh")))
2791 (home-page "https://github.com/magnars/s.el")
2792 (synopsis "Emacs string manipulation library")
2793 (description "This package provides an Emacs library for manipulating
2794 strings.")
2795 (license license:gpl3+)))
2796
2797 (define-public emacs-symon
2798 (package
2799 (name "emacs-symon")
2800 (version "20160630")
2801 (source
2802 (origin
2803 (method git-fetch)
2804 (uri (git-reference
2805 (url "https://github.com/zk-phi/symon")
2806 (commit version)))
2807 (file-name (git-file-name name version))
2808 (sha256
2809 (base32 "1q7di9s8k710nx98wnqnbkkhdimrn0jf6z4xkm4c78l6s5idjwlz"))))
2810 (build-system emacs-build-system)
2811 (home-page "https://github.com/zk-phi/symon")
2812 (synopsis "Tiny graphical system monitor")
2813 (description
2814 "Tiny graphical system monitor for the Emacs minibuffer when idle.")
2815 (license license:gpl2+)))
2816
2817 (define-public emacs-sx
2818 (let ((version "20191229")
2819 (revision "0")
2820 (commit "e9d1093c97507a6d7b4f4710ef65200dae725e5f"))
2821 (package
2822 (name "emacs-sx")
2823 (version (git-version version revision commit))
2824 (source
2825 (origin
2826 (method git-fetch)
2827 (uri (git-reference
2828 (url "https://github.com/vermiculus/sx.el")
2829 (commit commit)))
2830 (file-name (git-file-name name version))
2831 (sha256
2832 (base32 "0m90ddwm8j0y6d1ppqhd2gil1107k202blw6mzm5bdambn4nfqkf"))))
2833 (build-system emacs-build-system)
2834 (propagated-inputs
2835 `(("emacs-markdown-mode" ,emacs-markdown-mode)))
2836 (home-page "https://github.com/vermiculus/sx.el")
2837 (synopsis "Emacs StackExchange client")
2838 (description
2839 "Emacs StackExchange client. Ask and answer questions on
2840 Stack Overflow, Super User, and other StackExchange sites.")
2841 (license license:gpl3+))))
2842
2843 (define-public emacs-toml-mode
2844 (let ((version "0.1.3")
2845 (revision "0")
2846 (commit "f6c61817b00f9c4a3cab1bae9c309e0fc45cdd06"))
2847 (package
2848 (name "emacs-toml-mode")
2849 (version (git-version version revision commit))
2850 (source
2851 (origin
2852 (method git-fetch)
2853 (uri (git-reference
2854 (url "https://github.com/dryman/toml-mode.el")
2855 (commit commit)))
2856 (file-name (git-file-name name version))
2857 (sha256
2858 (base32 "05b4ksay85c8y5ncax0qsvnmplwsfiw24z16a58gkarjz938hb57"))))
2859 (build-system emacs-build-system)
2860 (home-page "https://github.com/dryman/toml-mode.el")
2861 (synopsis "Emacs major mode for editing TOML files")
2862 (description
2863 ;; XXX: Ideally we'd use @acronym for "TOML", but Guile's Texinfo
2864 ;; parser does not currently support @comma{}, making it impossible
2865 ;; to use commas in the @acronym arguments.
2866 "This package provides a major mode for editing files in @dfn{TOML}
2867 (Tom's Obvious, Minimal Language) data format.")
2868 (license license:gpl3+))))
2869
2870 (define-public emacs-twittering-mode
2871 (package
2872 (name "emacs-twittering-mode")
2873 (version "3.1.0")
2874 (source
2875 (origin
2876 (method url-fetch)
2877 (uri (string-append "mirror://sourceforge/twmode"
2878 "/twittering-mode-" version
2879 "/twittering-mode-" version ".tar.xz"))
2880 (sha256
2881 (base32 "02imis1gxz90lah0b5n37j2hlsaw5igss11d85vpsm5d1bgw8j28"))))
2882 (build-system emacs-build-system)
2883 (home-page "http://twmode.sourceforge.net")
2884 (synopsis "Emacs major mode for Twitter")
2885 (description
2886 "Twittering mode is an Emacs major mode for Twitter.
2887 You can check timelines, tweet, mark posts as favorites and so on with
2888 Emacs.")
2889 (license license:gpl2+)))
2890
2891 (define-public emacs-f
2892 (package
2893 (name "emacs-f")
2894 (version "0.20.0")
2895 (source (origin
2896 (method git-fetch)
2897 (uri (git-reference
2898 (url "https://github.com/rejeep/f.el")
2899 (commit (string-append "v" version))))
2900 (file-name (git-file-name name version))
2901 (sha256
2902 (base32
2903 "1a47xk3yp1rp17fqg7ldl3d3fb888h0fz3sysqfdz1bfdgs8a9bk"))))
2904 (build-system emacs-build-system)
2905 (propagated-inputs
2906 `(("emacs-s" ,emacs-s)
2907 ("emacs-dash" ,emacs-dash)))
2908 (home-page "https://github.com/rejeep/f.el")
2909 (synopsis "Emacs API for working with files and directories")
2910 (description "This package provides an Emacs library for working with
2911 files and directories.")
2912 (license license:gpl3+)))
2913
2914 (define-public emacs-fountain-mode
2915 (package
2916 (name "emacs-fountain-mode")
2917 (version "3.1.0")
2918 (source
2919 (origin
2920 (method git-fetch)
2921 (uri (git-reference
2922 (url "https://github.com/rnkn/fountain-mode")
2923 (commit (string-append "v" version))))
2924 (file-name (git-file-name name version))
2925 (sha256
2926 (base32 "08giwg0jwk8zzj2i4cm08322qr6znrnv9a49za7c6j47bykpwj6s"))))
2927 (build-system emacs-build-system)
2928 (home-page "https://github.com/rnkn/fountain-mode")
2929 (synopsis "Major mode for screenwriting in Fountain markup")
2930 (description "Fountain Mode is a scriptwriting program for GNU Emacs
2931 using the Fountain plain text markup format.")
2932 (license license:gpl3+)))
2933
2934 (define-public emacs-fringe-helper
2935 (let ((commit "ef4a9c023bae18ec1ddd7265f1f2d6d2e775efdd")
2936 (revision "1"))
2937 (package
2938 (name "emacs-fringe-helper")
2939 (version (git-version "1.0.1" revision commit))
2940 (source
2941 (origin
2942 (method git-fetch)
2943 (uri (git-reference
2944 (url "https://github.com/nschum/fringe-helper.el")
2945 (commit commit)))
2946 (file-name (git-file-name name version))
2947 (sha256
2948 (base32 "0ra9rc53l1gvkqank8apasl3r7wz2yfjrcvmfk3wpxhh24ppxv9d"))))
2949 (build-system emacs-build-system)
2950 (arguments
2951 `(#:tests? #t
2952 #:test-command '("emacs" "--batch"
2953 "-l" "tests.el"
2954 "-f" "ert-run-tests-batch-and-exit")))
2955 (home-page "https://github.com/nschum/fringe-helper.el")
2956 (synopsis "Helper functions for fringe bitmaps")
2957 (description
2958 "This package allows fringe bitmaps to be defined with a visual string
2959 representation.")
2960 (license license:gpl2+))))
2961
2962 (define-public emacs-git-gutter
2963 (package
2964 (name "emacs-git-gutter")
2965 (version "0.90")
2966 (source
2967 (origin
2968 (method git-fetch)
2969 (uri (git-reference
2970 (url "https://github.com/syohex/emacs-git-gutter")
2971 (commit version)))
2972 (file-name (git-file-name name version))
2973 (sha256
2974 (base32 "1abagq0psip7cgsqbfjv72qy60ywsny0ibsfcn74ldj6a9v17mz5"))))
2975 (build-system emacs-build-system)
2976 (home-page "https://github.com/syohex/emacs-git-gutter")
2977 (synopsis "See and manage hunks of text in a version control system")
2978 (description
2979 "This package is an Emacs minor mode for displaying and interacting with
2980 hunks of text managed in a version control system. Added modified and deleted
2981 areas can be indicated with symbols on the edge of the buffer, and commands
2982 can be used to move between and perform actions on these hunks.
2983
2984 Git, Mercurial, Subversion and Bazaar are supported, and many parts of the
2985 display and behaviour is easily customisable.")
2986 (license license:gpl3+)))
2987
2988 (define-public emacs-git-gutter-fringe
2989 (let ((commit "16226caab44174301f1659f7bf8cc67a76153445")
2990 (revision "1"))
2991 (package
2992 (name "emacs-git-gutter-fringe")
2993 (version (git-version "0.23" revision commit))
2994 (source
2995 (origin
2996 (method git-fetch)
2997 (uri (git-reference
2998 (url "https://github.com/syohex/git-gutter-fringe")
2999 (commit commit)))
3000 (file-name (git-file-name name version))
3001 (sha256
3002 (base32 "1y77gjl0yznamdj0f55d418zb75k22izisjg7ikvrfsl2yfqf3pm"))))
3003 (build-system emacs-build-system)
3004 (propagated-inputs
3005 `(("emacs-git-gutter" ,emacs-git-gutter)
3006 ("emacs-fringe-helper" ,emacs-fringe-helper)))
3007 (home-page "https://github.com/syohex/git-gutter-fringe")
3008 (synopsis "See and manage hunks of text in a version control system")
3009 (description
3010 "This package extends @code{git-gutter} to use the fringe area of a
3011 window.")
3012 (license license:gpl3+))))
3013
3014 (define-public emacs-git-link
3015 (package
3016 (name "emacs-git-link")
3017 (version "0.7.5")
3018 (source
3019 (origin
3020 (method git-fetch)
3021 (uri (git-reference
3022 (url "https://github.com/sshaw/git-link")
3023 (commit (string-append "v" version))))
3024 (file-name (git-file-name name version))
3025 (sha256
3026 (base32 "04xa6lp8wkjb6zs096bf4sz124grcjj15xv1h009bmn2j95rggj6"))))
3027 (build-system emacs-build-system)
3028 (arguments
3029 `(#:tests? #t
3030 #:test-command '("make" "test")))
3031 (home-page "https://github.com/sshaw/git-link")
3032 (synopsis "Create links for files and commits in GitHub/GitLab/etc. repos")
3033 (description
3034 "@code{git-link} returns the URL for the current buffer's file location
3035 at the current line number or active region. @code{git-link-commit} returns
3036 the URL for a commit. URLs are added to the kill ring.")
3037 (license license:gpl3+)))
3038
3039 (define-public emacs-apheleia
3040 (package
3041 (name "emacs-apheleia")
3042 (version "1.0")
3043 (source
3044 (origin
3045 (method git-fetch)
3046 (uri (git-reference
3047 (url "https://github.com/raxod502/apheleia")
3048 (commit (string-append "v" version))))
3049 (file-name (git-file-name name version))
3050 (sha256
3051 (base32 "04pls7zahy4jfkikv6fvd9vfpm4glhyanmmkx79hgi9pwdv966rf"))))
3052 (build-system emacs-build-system)
3053 (home-page "https://github.com/raxod502/apheleia")
3054 (synopsis "Reformat buffer stably")
3055 (description
3056 "This package allows for a buffer to be reformatted without moving point,
3057 so that running a formatting tool like @code{Prettier} or @code{Black} upon
3058 saving won't move point back to the beginning of the buffer.")
3059 (license license:gpl3+)))
3060
3061 (define-public emacs-git-timemachine
3062 (package
3063 (name "emacs-git-timemachine")
3064 (version "4.11")
3065 (source
3066 (origin
3067 (method git-fetch)
3068 (uri (git-reference
3069 (url "https://gitlab.com/pidu/git-timemachine.git")
3070 (commit version)))
3071 (file-name (git-file-name name version))
3072 (sha256
3073 (base32
3074 "1pz4l1xnq6s67w5yq9107vm8dg7rqf8n9dmbn90jys97c722g70n"))))
3075 (build-system emacs-build-system)
3076 (propagated-inputs
3077 `(("emacs-transient" ,emacs-transient)))
3078 (home-page "https://gitlab.com/pidu/git-timemachine")
3079 (synopsis "Step through historic versions of Git-controlled files")
3080 (description "This package enables you to step through historic versions
3081 of files under Git version control from within Emacs.")
3082 (license license:gpl3+)))
3083
3084 (define-public emacs-minitest
3085 (let ((commit "1aadb7865c1dc69c201cecee275751ecec33a182")
3086 (revision "1"))
3087 (package
3088 (name "emacs-minitest")
3089 (version (git-version "0.8.0" revision commit))
3090 (source (origin
3091 (method git-fetch)
3092 (uri (git-reference
3093 (url "https://github.com/arthurnn/minitest-emacs")
3094 (commit commit)))
3095 (file-name (git-file-name name commit))
3096 (sha256
3097 (base32
3098 "1l18zqpdzbnqj2qawq8hj7z7pl8hr8z9d8ihy8jaiqma915hmhj1"))))
3099 (build-system emacs-build-system)
3100 (arguments
3101 '(#:include (cons "^snippets\\/minitest-mode\\/" %default-include)
3102 #:exclude (delete "^[^/]*tests?\\.el$" %default-exclude)))
3103 (propagated-inputs
3104 `(("emacs-dash" ,emacs-dash)
3105 ("emacs-f" ,emacs-f)))
3106 (home-page "https://github.com/arthurnn/minitest-emacs")
3107 (synopsis "Emacs minitest mode")
3108 (description
3109 "The minitest mode provides commands to run the tests for the current
3110 file or line, as well as rerunning the previous tests, or all the tests for a
3111 project.
3112
3113 This package also includes relevant snippets for yasnippet.")
3114 (license license:expat))))
3115
3116 (define-public emacs-el-mock
3117 (package
3118 (name "emacs-el-mock")
3119 (version "1.25.1")
3120 (source
3121 (origin
3122 (method git-fetch)
3123 (uri (git-reference
3124 (url "https://github.com/rejeep/el-mock.el")
3125 (commit (string-append "v" version))))
3126 (file-name (git-file-name name version))
3127 (sha256
3128 (base32 "13mv1rhgkwiww2wh5w926jz7idppp492wir1vdl245c5x50dh4f7"))))
3129 (build-system emacs-build-system)
3130 (home-page "https://github.com/rejeep/el-mock.el")
3131 (synopsis "Tiny mock and stub framework in Emacs Lisp")
3132 (description
3133 "Emacs Lisp Mock is a library for mocking and stubbing using readable
3134 syntax. Most commonly Emacs Lisp Mock is used in conjunction with Emacs Lisp
3135 Expectations, but it can be used in other contexts.")
3136 (license license:gpl3+)))
3137
3138 (define-public emacs-espuds
3139 (package
3140 (name "emacs-espuds")
3141 (version "0.3.3")
3142 (source
3143 (origin
3144 (method git-fetch)
3145 (uri (git-reference
3146 (url "https://github.com/ecukes/espuds")
3147 (commit (string-append "v" version))))
3148 (file-name (git-file-name name version))
3149 (sha256
3150 (base32 "16r4j27j9yfdiy841w9q5ykkc6n3wrm7hvfacagb32mydk821ijg"))))
3151 (build-system emacs-build-system)
3152 (propagated-inputs
3153 `(("emacs-s" ,emacs-s)
3154 ("emacs-dash" ,emacs-dash)
3155 ("emacs-f" ,emacs-f)))
3156 (home-page "https://github.com/ecukes/espuds")
3157 (synopsis "Common step definitions for Ecukes")
3158 (description "Espuds is a collection of the most commonly used step
3159 definitions for testing with the Ecukes framework.")
3160 (license license:gpl3+)))
3161
3162 (define-public emacs-spark
3163 (let ((version "20160503") ; no proper tag, use date of commit
3164 (commit "0bf148c3ede3b31d56fd75f347cdd0b0eae60025")
3165 (revision "1"))
3166 (package
3167 (name "emacs-spark")
3168 (version (git-version version revision commit))
3169 (source
3170 (origin
3171 (method git-fetch)
3172 (uri (git-reference
3173 (url "https://github.com/alvinfrancis/spark")
3174 (commit commit)))
3175 (file-name (git-file-name name version))
3176 (sha256
3177 (base32
3178 "1ykqr86j17mi95s08d9fp02d7ych1331b04dcqxzxnmpkhwngyj1"))))
3179 (build-system emacs-build-system)
3180 (home-page "https://github.com/alvinfrancis/spark")
3181 (synopsis "Sparkline generation library for Emacs Lisp")
3182 (description "@code{emacs-spark} is a sparkline generation library for
3183 Emacs Lisp. It generates a sparkline string given a list of numbers. It is a
3184 port of @code{cl-spark} to Emacs Lisp.")
3185 (license license:expat))))
3186
3187 (define-public emacs-es-mode
3188 (package
3189 (name "emacs-es-mode")
3190 (version "4.3.0")
3191 (source
3192 (origin
3193 (method git-fetch)
3194 (uri (git-reference
3195 (url "https://github.com/dakrone/es-mode")
3196 (commit version)))
3197 (file-name (git-file-name name version))
3198 (sha256
3199 (base32 "1qhfnd5anp5qrmravv7ks5ix763xnki2f5jwcyj70qyxwr0l60cg"))))
3200 (build-system emacs-build-system)
3201 (propagated-inputs
3202 ;; The version of org in Emacs 24.5 is not sufficient, and causes tables
3203 ;; to be rendered incorrectly
3204 `(("emacs-dash" ,emacs-dash)
3205 ("emacs-org" ,emacs-org)
3206 ("emacs-spark" ,emacs-spark)))
3207 (home-page "https://github.com/dakrone/es-mode")
3208 (synopsis "Major mode for editing Elasticsearch queries")
3209 (description "@code{es-mode} includes highlighting, completion and
3210 indentation support for Elasticsearch queries. Also supported are
3211 @code{es-mode} blocks in @code{org-mode}, for which the results of queries can
3212 be processed through @code{jq}, or in the case of aggregations, can be
3213 rendered in to a table. In addition, there is an @code{es-command-center}
3214 mode, which displays information about Elasticsearch clusters.")
3215 (license license:gpl3+)))
3216
3217 (define-public emacs-expand-region
3218 (package
3219 (name "emacs-expand-region")
3220 (version "0.11.0")
3221 (source
3222 (origin
3223 (method git-fetch)
3224 (uri (git-reference
3225 (url "https://github.com/magnars/expand-region.el")
3226 (commit version)))
3227 (file-name (git-file-name name version))
3228 (sha256
3229 (base32 "0h40dhc3kn8fq86xnwi5lz7ql8my8737y7wkqr897p15y90swr35"))))
3230 (build-system emacs-build-system)
3231 (home-page "https://github.com/magnars/expand-region.el")
3232 (synopsis "Increase selected region by semantic units")
3233 (description
3234 "Expand region increases the selected region by semantic units. Just
3235 keep pressing the key until it selects what you want. There's also
3236 @code{er/contract-region} if you expand too far.")
3237 (license license:gpl3+)))
3238
3239 (define-public emacs-fill-column-indicator
3240 (package
3241 (name "emacs-fill-column-indicator")
3242 (version "1.90")
3243 (source
3244 (origin
3245 (method git-fetch)
3246 (uri (git-reference
3247 (url "https://github.com/alpaker/Fill-Column-Indicator")
3248 (commit version)))
3249 (file-name (git-file-name name version))
3250 (sha256
3251 (base32 "0snjznxdwwfdgccdcvrnk467416r244r2r5qcm2sga8l0ha9gw9z"))))
3252 (build-system emacs-build-system)
3253 (home-page "https://www.emacswiki.org/emacs/FillColumnIndicator")
3254 (synopsis "Graphically indicate the fill column")
3255 (description
3256 "Fill-column-indicator graphically indicates the location of the fill
3257 column by drawing a thin line down the length of the editing window.")
3258 (license license:gpl3+)))
3259
3260 (define-public emacs-grep-a-lot
3261 (package
3262 (name "emacs-grep-a-lot")
3263 (version "1.0.7")
3264 (source
3265 (origin
3266 (method git-fetch)
3267 (uri (git-reference
3268 (url "https://github.com/ZungBang/emacs-grep-a-lot")
3269 (commit "9f9f645b9e308a0d887b66864ff97d0fca1ba4ad")))
3270 (file-name (git-file-name name version))
3271 (sha256
3272 (base32 "1f8262mrlinzgnn4m49hbj1hm3c1mvzza24py4b37sasn49546lw"))))
3273 (build-system emacs-build-system)
3274 (home-page "https://github.com/ZungBang/emacs-grep-a-lot")
3275 (synopsis "Enables multiple grep buffers in Emacs")
3276 (description
3277 "This Emacs package allows managing multiple grep buffers.")
3278 (license license:gpl3+)))
3279
3280 (define-public emacs-fd
3281 (package
3282 (name "emacs-fd")
3283 (version "0.1.0")
3284 (source (origin
3285 (method git-fetch)
3286 (uri (git-reference
3287 (url "https://github.com/yqrashawn/fd-dired")
3288 (commit version)))
3289 (file-name (git-file-name name version))
3290 (sha256
3291 (base32
3292 "1fas0fpvym2lyzybwm44gly9jz6a2fpp72yxnwfbqqjkfgk9910y"))))
3293 (build-system emacs-build-system)
3294 (home-page "https://github.com/yqrashawn/fd-dired")
3295 (synopsis "Dired-mode interface for fd result")
3296 (description "This package provides a dired-mode interface for fd's
3297 result.")
3298 (license license:gpl3+)))
3299
3300 (define-public emacs-rg
3301 (package
3302 (name "emacs-rg")
3303 (version "1.8.1")
3304 (source
3305 (origin
3306 (method git-fetch)
3307 (uri (git-reference
3308 (url "https://github.com/dajva/rg.el")
3309 (commit version)))
3310 (file-name (git-file-name name version))
3311 (sha256
3312 (base32 "0k7x5z7mh9flwih35cqy8chs54rack3nswdcpw5wcpgv6xim227y"))))
3313 (build-system emacs-build-system)
3314 (arguments
3315 '(#:phases
3316 (modify-phases %standard-phases
3317 (add-after 'unpack 'hardcode-rg-path
3318 ;; Hardcode the path to ripgrep.
3319 (lambda _
3320 (let ((file "rg.el"))
3321 (chmod file #o644)
3322 (emacs-substitute-sexps file
3323 ("(defcustom rg-executable" (which "rg")))))))))
3324 (propagated-inputs
3325 `(("emacs-s" ,emacs-s)
3326 ("emacs-wgrep" ,emacs-wgrep)))
3327 (inputs
3328 `(("ripgrep" ,ripgrep)))
3329 (home-page "https://rgel.readthedocs.io/en/latest/")
3330 (synopsis "Search tool based on @code{ripgrep}")
3331 (description
3332 "@code{rg} is an Emacs search package based on the @code{ripgrep} command
3333 line tool. It allows one to interactively search based on the editing context
3334 then refine or modify the search results.")
3335 (license license:gpl3+)))
3336
3337 (define-public emacs-inf-ruby
3338 (package
3339 (name "emacs-inf-ruby")
3340 (version "2.5.2")
3341 (source
3342 (origin
3343 (method git-fetch)
3344 (uri (git-reference
3345 (url "https://github.com/nonsequitur/inf-ruby")
3346 (commit version)))
3347 (file-name (git-file-name name version))
3348 (sha256
3349 (base32 "0a1hhvfbl6mq8rjsi77fg9fh5a91hi5scjrg9rjqc5ffbql67y0v"))))
3350 (build-system emacs-build-system)
3351 (home-page "https://github.com/nonsequitur/inf-ruby")
3352 (synopsis "Provides a REPL buffer connected to a Ruby subprocess in Emacs")
3353 (description
3354 "@code{inf-ruby} provides a Read Eval Print Loop (REPL) buffer, allowing
3355 for easy interaction with a ruby subprocess. Features include support for
3356 detecting specific uses of Ruby, e.g. when using rails, and using a
3357 appropriate console.")
3358 (license license:gpl3+)))
3359
3360 (define-public emacs-znc
3361 (package
3362 (name "emacs-znc")
3363 (version "0.0.2")
3364 (source
3365 (origin
3366 (method url-fetch)
3367 (uri (string-append "https://marmalade-repo.org/packages/znc-"
3368 version ".el"))
3369 (sha256
3370 (base32
3371 "1d8lqvybgyazin5z0g1c4l3rg1vzrrvf0saqs53jr1zcdg0lianh"))))
3372 (build-system emacs-build-system)
3373 (home-page "https://github.com/sshirokov/ZNC.el")
3374 (synopsis "Make ERC and ZNC get along better")
3375 (description
3376 "This is a thin wrapper around @code{erc} that enables one to use the ZNC
3377 IRC bouncer with ERC.")
3378 (license license:expat)))
3379
3380 (define-public emacs-erc-status-sidebar
3381 (let ((commit "ea4189a1dbfe60117359c36e681ad7c389e2968c")
3382 (revision "1"))
3383 (package
3384 (name "emacs-erc-status-sidebar")
3385 (version (git-version "0.1" revision commit))
3386 (source
3387 (origin
3388 (method git-fetch)
3389 (uri (git-reference
3390 (url "https://github.com/drewbarbs/erc-status-sidebar")
3391 (commit commit)))
3392 (file-name (git-file-name name version))
3393 (sha256
3394 (base32 "1hwlhzgx03z8891sblz56zdp8zj0izh72kxykgcnz5rrkyc3vfi3"))))
3395 (build-system emacs-build-system)
3396 (propagated-inputs `(("emacs-seq" ,emacs-seq)))
3397 (home-page "https://github.com/drewbarbs/erc-status-sidebar")
3398 (synopsis "Hexchat-like activity overview for ERC channels")
3399 (description
3400 "This package provides a Hexchat-like status bar for joined channels in
3401 ERC, an Emacs client for IRC (Internet Relay Chat). It relies on the
3402 @code{erc-track} module, and displays all the same information
3403 @code{erc-track} does in the mode line, but in an alternative format.")
3404 (license license:expat))))
3405
3406 (define-public emacs-shut-up
3407 (package
3408 (name "emacs-shut-up")
3409 (version "0.3.2")
3410 (source
3411 (origin
3412 (method git-fetch)
3413 (uri (git-reference
3414 (url "https://github.com/cask/shut-up")
3415 (commit (string-append "v" version))))
3416 (file-name (git-file-name name version))
3417 (sha256
3418 (base32 "103yvfgkj78i4bnv1fwk76izsa8h4wyj3vwj1vq7xggj607hkxzq"))))
3419 (build-system emacs-build-system)
3420 (home-page "https://github.com/cask/shut-up")
3421 (synopsis "Silence Emacs")
3422 (description "This package silences most output of Emacs when running an
3423 Emacs shell script.")
3424 (license license:expat)))
3425
3426 (define-public emacs-undercover
3427 (package
3428 (name "emacs-undercover")
3429 (version "0.6.1")
3430 (source
3431 (origin
3432 (method git-fetch)
3433 (uri (git-reference
3434 (url "https://github.com/sviridov/undercover.el")
3435 (commit version)))
3436 (file-name (git-file-name name version))
3437 (sha256
3438 (base32 "080bmfwyfi8663y8x594770hqz7mff7zvj2v03qdfwbhdr9w9y29"))))
3439 (build-system emacs-build-system)
3440 (propagated-inputs
3441 `(("emacs-dash" ,emacs-dash)
3442 ("emacs-shut-up" ,emacs-shut-up)))
3443 (home-page "https://github.com/sviridov/undercover.el")
3444 (synopsis "Test coverage library for Emacs Lisp")
3445 (description
3446 "Undercover is a test coverage library for software written in Emacs
3447 Lisp.")
3448 (license license:expat)))
3449
3450 (define-public emacs-paren-face
3451 (package
3452 (name "emacs-paren-face")
3453 (version "1.0.6")
3454 (source
3455 (origin
3456 (method git-fetch)
3457 (uri (git-reference
3458 (url "https://github.com/tarsius/paren-face")
3459 (commit version)))
3460 (file-name (git-file-name name version))
3461 (sha256
3462 (base32 "17bdcxah216z928387yx6z9lmp4jsi461n8fwiqaibn2qy5fagas"))))
3463 (build-system emacs-build-system)
3464 (home-page "https://github.com/tarsius/paren-face")
3465 (synopsis "Face for parentheses in Lisp modes")
3466 (description
3467 "This library defines a face named @code{parenthesis} used just for
3468 parentheses. The intended purpose of this face is to make parentheses less
3469 visible in Lisp code by dimming them. Lispers probably don't need to be
3470 constantly made aware of the existence of the parentheses. Dimming them might
3471 be even more useful for people new to Lisp who have not yet learned to
3472 subconsciously blend out the parentheses.")
3473 (license license:gpl3+)))
3474
3475 (define-public emacs-page-break-lines
3476 (package
3477 (name "emacs-page-break-lines")
3478 (version "0.11")
3479 (source
3480 (origin
3481 (method git-fetch)
3482 (uri (git-reference
3483 (url "https://github.com/purcell/page-break-lines")
3484 (commit version)))
3485 (file-name (git-file-name name version))
3486 (sha256
3487 (base32 "1wp974716ih2cz9kdmdz7xwjy1qnnfzdzlfr9kchknagw8d9nn12"))))
3488 (build-system emacs-build-system)
3489 (home-page "https://github.com/purcell/page-break-lines")
3490 (synopsis "Display page breaks as tidy horizontal lines")
3491 (description
3492 "This library provides a global mode which displays form feed characters
3493 as horizontal rules.")
3494 (license license:gpl3+)))
3495
3496 (define-public emacs-simple-httpd
3497 (package
3498 (name "emacs-simple-httpd")
3499 (version "1.5.1")
3500 (source
3501 (origin
3502 (method git-fetch)
3503 (uri (git-reference
3504 (url "https://github.com/skeeto/emacs-web-server")
3505 (commit version)))
3506 (file-name (git-file-name name version))
3507 (sha256
3508 (base32 "0dpn92rg813c4pq7a1vzj3znyxzp2lmvxqz6pzcqi0l2xn5r3wvb"))))
3509 (build-system emacs-build-system)
3510 (home-page "https://github.com/skeeto/emacs-web-server")
3511 (synopsis "HTTP server in pure Emacs Lisp")
3512 (description
3513 "This package provides a simple HTTP server written in Emacs Lisp to
3514 serve files and directory listings.")
3515 (license license:unlicense)))
3516
3517 (define-public emacs-skewer-mode
3518 (package
3519 (name "emacs-skewer-mode")
3520 (version "1.8.0")
3521 (source
3522 (origin
3523 (method git-fetch)
3524 (uri (git-reference
3525 (url "https://github.com/skeeto/skewer-mode")
3526 (commit version)))
3527 (file-name (git-file-name name version))
3528 (sha256
3529 (base32 "1ha7jl7776pk1bki5zj2q0jy66450mn8xr3aqjc0m9kj3gc9qxgw"))))
3530 (build-system emacs-build-system)
3531 (propagated-inputs
3532 `(("emacs-simple-httpd" ,emacs-simple-httpd)
3533 ("emacs-js2-mode" ,emacs-js2-mode)))
3534 (arguments '(#:include '("\\.el$" "\\.js$" "\\.html$")))
3535 (home-page "https://github.com/skeeto/skewer-mode")
3536 (synopsis "Live web development in Emacs")
3537 (description
3538 "Skewer-mode provides live interaction with JavaScript, CSS, and HTML in
3539 a web browser. Expressions are sent on-the-fly from an editing buffer to be
3540 evaluated in the browser, just like Emacs does with an inferior Lisp process
3541 in Lisp modes.")
3542 (license license:unlicense)))
3543
3544 (define-public emacs-litable
3545 (let ((commit "b0278f3f8dcff424bfbdfdefb545b1fbff33206f"))
3546 (package
3547 (name "emacs-litable")
3548 (version (git-version "0.1" "0" commit))
3549 (source (origin
3550 (method git-fetch)
3551 (uri (git-reference
3552 (url "https://github.com/Fuco1/litable")
3553 (commit commit)))
3554 (file-name (git-file-name name version))
3555 (sha256
3556 (base32
3557 "0bny40hv9a024n01clxns351cs4j4ifhgcc7m4743xncqf612p7g"))))
3558 (build-system emacs-build-system)
3559 (propagated-inputs
3560 `(("emacs-dash" ,emacs-dash)))
3561 (home-page "https://github.com/Fuco1/litable/")
3562 (synopsis "Dynamic evaluation replacement with Emacs")
3563 (description "This package provides dynamic evaluation in Emacs.")
3564 (license license:gpl3+))))
3565
3566 (define-public emacs-literate-calc-mode
3567 (let ((commit "e855bd718fa7d0d70b8f43264e10664369dd3a37")
3568 (revision "0"))
3569 (package
3570 (name "emacs-literate-calc-mode")
3571 (version (git-version "0.1" revision commit))
3572 (source
3573 (origin
3574 (method git-fetch)
3575 (uri (git-reference
3576 (url "https://github.com/sulami/literate-calc-mode.el")
3577 (commit commit)))
3578 (file-name (git-file-name name version))
3579 (sha256
3580 (base32 "0mk4cig8g8ibz97mvyan79fkypyanh7r0h7h20ibafq09nb0mw01"))))
3581 (build-system emacs-build-system)
3582 (propagated-inputs
3583 `(("emacs-s" ,emacs-s)))
3584 (home-page "https://github.com/sulami/literate-calc-mode.el")
3585 (synopsis "Literate programming for Emacs Calc")
3586 (description
3587 "This library provides literate programming for Calc. There is both
3588 a major and a minor mode. The major mode does some basic syntax highlighting,
3589 while the minor mode only evaluates all Calc statements while typing. In
3590 particular, the minor mode works quite well with Org or Markdown modes, or
3591 other markup language major modes.")
3592 (license license:gpl3+))))
3593
3594 (define-public emacs-string-inflection
3595 (package
3596 (name "emacs-string-inflection")
3597 (version "1.0.6")
3598 (source (origin
3599 (method git-fetch)
3600 (uri (git-reference
3601 (url "https://github.com/akicho8/string-inflection")
3602 (commit "a150e7bdda60b7824d3a936750ce23f73b0e4edd")))
3603 (file-name (git-file-name name version))
3604 (sha256
3605 (base32
3606 "1k0sm552iawi49v4zis6dbb81d1rzgky9v0dpv7nj31gnb7bmy7k"))))
3607 (build-system emacs-build-system)
3608 (native-inputs
3609 `(("ert-runner" ,emacs-ert-runner)))
3610 (arguments
3611 `(#:tests? #t
3612 #:test-command '("ert-runner")))
3613 (home-page "https://github.com/akicho8/string-inflection")
3614 (synopsis "Convert symbol names between different naming conventions")
3615 (description
3616 "This Emacs package provides convenient methods for manipulating the
3617 naming style of a symbol. It supports different naming conventions such as:
3618
3619 @enumerate
3620 @item camel case
3621 @item Pascal case
3622 @item all upper case
3623 @item lower case separated by underscore
3624 @item etc...
3625 @end enumerate\n")
3626 (license license:gpl2+)))
3627
3628 (define-public emacs-stripe-buffer
3629 (package
3630 (name "emacs-stripe-buffer")
3631 (version "0.2.5")
3632 (source
3633 (origin
3634 (method git-fetch)
3635 (uri (git-reference
3636 (url "https://github.com/sabof/stripe-buffer")
3637 (commit version)))
3638 (file-name (git-file-name name version))
3639 (sha256
3640 (base32 "035ym1c1vzg6hjsnd258z4dkrfc11lj4c0y4gpgybhk54dq3w9dk"))))
3641 (build-system emacs-build-system)
3642 (home-page "https://github.com/sabof/stripe-buffer/")
3643 (synopsis "Add stripes to list buffers")
3644 (description
3645 "This Emacs package adds faces to add stripes to list buffers and org
3646 tables.")
3647 (license license:gpl2+)))
3648
3649 (define-public emacs-org-beautify-theme
3650 ;; Latest release (0.4) is not tagged, use commit hash.
3651 (let ((commit "df6a1114fda313e1689363e196c8284fbe2a2738")
3652 (revision "0"))
3653 (package
3654 (name "emacs-org-beautify-theme")
3655 (version "0.4")
3656 (source
3657 (origin
3658 (method git-fetch)
3659 (uri (git-reference
3660 (url "https://github.com/jonnay/org-beautify-theme")
3661 (commit commit)))
3662 (file-name (git-file-name name version))
3663 (sha256
3664 (base32 "1lkz7736swimad12khwbbqc4gxjydgr1k45p4mx03s25pv1w920y"))))
3665 (build-system emacs-build-system)
3666 (home-page "https://github.com/jonnay/org-beautify-theme")
3667 (synopsis "Theme to make Org mode look more beautiful")
3668 (description
3669 "The theme adds padding between headings, increases the size of titles,
3670 strike through completed TODO headings, changes Org blocks, changes Org check
3671 boxes, and more.")
3672 (license license:gpl3+))))
3673
3674 (define-public emacs-org-rich-yank
3675 (package
3676 (name "emacs-org-rich-yank")
3677 (version "0.2.1")
3678 (source
3679 (origin
3680 (method git-fetch)
3681 (uri (git-reference
3682 (url "https://github.com/unhammer/org-rich-yank")
3683 (commit (string-append "v" version))))
3684 (file-name (git-file-name name version))
3685 (sha256
3686 (base32 "0gxb0fnh5gxjmld0hnk5hli0cvdd8gjd27m30bk2b80kwldxlq1z"))))
3687 (build-system emacs-build-system)
3688 (home-page "https://github.com/unhammer/org-rich-yank")
3689 (synopsis "Automatically surround source code pasted into Org with
3690 @code{#+BEGIN_SRC} blocks")
3691 (description
3692 "This package provides a utility function for Org buffers that makes a
3693 @code{_SRC} block with the appropriate language annotation for code that has
3694 been copied from an Emacs major mode.")
3695 (license license:gpl2+)))
3696
3697 (define-public emacs-ob-erlang
3698 (let ((revision "1")
3699 (commit "f1a8c665b8f7d0ab32267a9961de8eed872e6333"))
3700 (package
3701 (name "emacs-ob-erlang")
3702 (version (git-version "20180827" revision commit))
3703 (source (origin
3704 (method git-fetch)
3705 (uri (git-reference
3706 (url "https://github.com/xfwduke/ob-erlang")
3707 (commit commit)))
3708 (file-name (git-file-name name version))
3709 (sha256
3710 (base32
3711 "0b5zajqiy6955yvlqwy92prrqy89lqchsv4ss2ylws3p4s14rhij"))))
3712 (build-system emacs-build-system)
3713 (home-page "https://github.com/xfwduke/ob-erlang/")
3714 (synopsis "Org-babel support for Erlang")
3715 (description "This package adds support for working with Erlang code
3716 blocks with @code{org-babel} in @code{org-mode}.")
3717 (license license:gpl3+))))
3718
3719 (define-public emacs-ob-restclient
3720 (let ((commit "53376667eeddb1388fd6c6976f3222e7c8adcd46"))
3721 (package
3722 (name "emacs-ob-restclient")
3723 (version (git-version "0.02" "1" commit))
3724 (source
3725 (origin
3726 (method git-fetch)
3727 (uri (git-reference
3728 (url "https://github.com/alf/ob-restclient.el")
3729 (commit commit)))
3730 (file-name (git-file-name name version))
3731 (sha256
3732 (base32 "1djg53cp7y83gic2v71y6r5z76kwrbkp0r69hl25rs99dx6p89dy"))))
3733 (propagated-inputs
3734 `(("emacs-restclient" ,emacs-restclient)))
3735 (build-system emacs-build-system)
3736 (home-page "https://github.com/alf/ob-restclient.el")
3737 (synopsis "Org-babel functionality for @code{restclient-mode}")
3738 (description
3739 "This package integrates @code{restclient-mode} with Org.")
3740 (license license:gpl3+))))
3741
3742 (define-public emacs-org-now
3743 (let ((commit "8f6b277a73f1c66e58ccb4b7f40d406851befc91"))
3744 (package
3745 (name "emacs-org-now")
3746 (version (git-version "0.1-pre" "1" commit))
3747 (source
3748 (origin
3749 (method git-fetch)
3750 (uri (git-reference
3751 (url "https://github.com/alphapapa/org-now")
3752 (commit commit)))
3753 (file-name (git-file-name name version))
3754 (sha256
3755 (base32 "117zzkryznznk6h4i1jqzdn888nl019xrgxm2gza0lndx8dxsg2c"))))
3756 (propagated-inputs
3757 `(("emacs-dash" ,emacs-dash)))
3758 (build-system emacs-build-system)
3759 (home-page "https://github.com/alphapapa/org-now")
3760 (synopsis "Show current Org tasks in a sidebar")
3761 (description
3762 "This package provides commands to show Org headings in a sidebar
3763 window while working on them. After defining one heading as the \"now\"
3764 heading, other headings can be refiled to it with one command, and back to
3765 their original location with another.")
3766 (license license:gpl3+))))
3767
3768 (define-public emacs-rich-minority
3769 (package
3770 (name "emacs-rich-minority")
3771 (version "1.0.3")
3772 (source
3773 (origin
3774 (method git-fetch)
3775 (uri (git-reference
3776 (url "https://github.com/Malabarba/rich-minority")
3777 (commit version)))
3778 (file-name (git-file-name name version))
3779 (sha256
3780 (base32
3781 "1kn7c9qr9ykj68iqffzzmjsr6aazwac8cxb7j960sjb282rq0yyj"))))
3782 (build-system emacs-build-system)
3783 (home-page "https://github.com/Malabarba/rich-minority")
3784 (synopsis "Clean-up and beautify the list of minor modes")
3785 (description
3786 "This Emacs package hides and/or highlights minor modes in the
3787 mode-line.")
3788 (license license:gpl2+)))
3789
3790 (define-public emacs-robe
3791 (package
3792 (name "emacs-robe")
3793 (version "0.8.2")
3794 (source
3795 (origin
3796 (method git-fetch)
3797 (uri (git-reference
3798 (url "https://github.com/dgutov/robe")
3799 (commit version)))
3800 (file-name (git-file-name name version))
3801 (sha256
3802 (base32 "0qw18wi54yg971n4wnjqkd8lqj5lbs9ra8bvmngif2bzhqlfdsbn"))))
3803 (build-system emacs-build-system)
3804 (arguments
3805 '(#:include (cons "^lib\\/" %default-include)))
3806 (propagated-inputs
3807 `(("emacs-inf-ruby" ,emacs-inf-ruby)))
3808 (home-page "https://github.com/dgutov/robe")
3809 (synopsis "Ruby code assistance tool for Emacs")
3810 (description
3811 "Robe can provide information on loaded classes and modules in Ruby code,
3812 as well as where methods are defined. This allows the user to jump to method
3813 definitions, modules and classes, display method documentation and provide
3814 method and constant name completion.")
3815 (license license:gpl3+)))
3816
3817 (define-public emacs-robot-mode
3818 (let ((commit "32846e7e80ae3471b7c07f9709dcaa4f9b9ed4a0")
3819 (revision "1"))
3820 (package
3821 (name "emacs-robot-mode")
3822 (version (git-version "0.0.0" revision commit))
3823 (source (origin
3824 (method git-fetch)
3825 (uri (git-reference
3826 ;; A better maintained fork of robot-mode.
3827 (url "https://github.com/jvalkeejarvi/robot-mode")
3828 (commit commit)))
3829 (file-name (git-file-name name version))
3830 (sha256
3831 (base32
3832 "1i8wf7m0gml8zvvmlgppjzv78b432686p1qdbzgclc7qfcvzag0d"))))
3833 (build-system emacs-build-system)
3834 (propagated-inputs `(("emacs-s" ,emacs-s)))
3835 (home-page "https://github.com/jvalkeejarvi/robot-mode")
3836 (synopsis "Emacs mode for Robot Framework")
3837 (description "This major mode facilitates editing Robot Framework source
3838 files with features such as syntax highlighting, comments, finding keywords,
3839 completing keywords and smart indentation.")
3840 (license license:gpl3+))))
3841
3842 (define-public emacs-rspec
3843 (let ((commit "66ea7cc9699d6edc6115daa024818adbd85efc20")
3844 (revision "1"))
3845 (package
3846 (name "emacs-rspec")
3847 (version (git-version "1.11" revision commit))
3848 (source
3849 (origin
3850 (method git-fetch)
3851 (uri (git-reference
3852 (url "https://github.com/pezra/rspec-mode")
3853 (commit commit)))
3854 (file-name (git-file-name name version))
3855 (sha256
3856 (base32 "0b11s8r0pi7ah54km4yg4fqff8wkk409d25qnlwm1l94pdwjd1c8"))))
3857 (build-system emacs-build-system)
3858 (arguments
3859 `(#:include (cons "^snippets\\/rspec-mode\\/" %default-include)
3860 #:tests? #t
3861 #:test-command '("make" "test")))
3862 (home-page "https://github.com/pezra/rspec-mode")
3863 (synopsis "Provides a rspec mode for working with RSpec")
3864 (description
3865 "The Emacs RSpec mode provides keybindings for Ruby source files, e.g. to
3866 verify the spec associated with the current buffer, or entire project, as well
3867 as moving between the spec files, and corresponding code files.
3868
3869 Also included are keybindings for spec files and Dired buffers, as well as
3870 snippets for yasnippet.")
3871 (license license:gpl3+))))
3872
3873 (define-public emacs-smart-mode-line
3874 (package
3875 (name "emacs-smart-mode-line")
3876 (version "2.13")
3877 (source
3878 (origin
3879 (method git-fetch)
3880 (uri (git-reference
3881 (url "https://github.com/Malabarba/smart-mode-line")
3882 (commit version)))
3883 (file-name (git-file-name name version))
3884 (sha256
3885 (base32 "164b697xm1rwcggv37dymhf3npbyh2bs59z8b6m5x35lb4c3lf8b"))))
3886 (build-system emacs-build-system)
3887 (propagated-inputs
3888 `(("emacs-rich-minority" ,emacs-rich-minority)))
3889 (home-page "https://github.com/Malabarba/smart-mode-line")
3890 (synopsis "Color-coded smart mode-line")
3891 (description
3892 "Smart Mode Line is a mode-line theme for Emacs. It aims to be easy to
3893 read from small to large monitors by using colors, a prefix feature, and smart
3894 truncation.")
3895 (license license:gpl2+)))
3896
3897 (define-public emacs-sr-speedbar
3898 (let ((commit "77a83fb50f763a465c021eca7343243f465b4a47")
3899 (revision "0"))
3900 (package
3901 (name "emacs-sr-speedbar")
3902 (version (git-version "20161025" revision commit))
3903 (source
3904 (origin
3905 (method git-fetch)
3906 (uri (git-reference
3907 (url "https://github.com/emacsorphanage/sr-speedbar")
3908 (commit commit)))
3909 (file-name (git-file-name name version))
3910 (sha256
3911 (base32
3912 "0sd12555hk7z721y00kv3crdybvcn1i08wmd148z5imayzibj153"))))
3913 (build-system emacs-build-system)
3914 (home-page "https://www.emacswiki.org/emacs/SrSpeedbar")
3915 (synopsis "Same frame Emacs @code{speedbar}")
3916 (description
3917 "This Emacs package allows you to show @code{M-x speedbar} in the
3918 same frame (in an extra window). You can customize the initial width of
3919 the speedbar window.")
3920 (license license:gpl3+))))
3921
3922 (define-public emacs-shell-switcher
3923 (package
3924 (name "emacs-shell-switcher")
3925 (version "1.0.1")
3926 (source
3927 (origin
3928 (method git-fetch)
3929 (uri (git-reference
3930 (url "https://github.com/DamienCassou/shell-switcher")
3931 (commit (string-append "v" version))))
3932 (file-name (git-file-name name version))
3933 (sha256
3934 (base32 "0ia7sdip4hl27avckv3qpqgm3k4ynvp3xxq1cy53bqfzzx0gcria"))))
3935 (build-system emacs-build-system)
3936 (home-page "https://github.com/DamienCassou/shell-switcher")
3937 (synopsis "Provide fast switching between shell buffers")
3938 (description
3939 "This package provides commands to quickly switch between shell buffers.")
3940 (license license:gpl3+)))
3941
3942 (define-public emacs-shx
3943 (package
3944 (name "emacs-shx")
3945 (version "1.4.0")
3946 (source (origin
3947 (method git-fetch)
3948 (uri (git-reference
3949 (url "https://github.com/riscy/shx-for-emacs")
3950 (commit (string-append "v" version))))
3951 (file-name (git-file-name name version))
3952 (sha256
3953 (base32 "0p9b621rgy34r1hl9xfzxh4xpx9gpsr3n330ypfxhlr0s5754j73"))))
3954 (build-system emacs-build-system)
3955 (arguments
3956 `(#:phases
3957 (modify-phases %standard-phases
3958 ;; A docstring provides examples of mapping hosts to programs in /bin.
3959 ;; These examples are valid as-is.
3960 (delete 'patch-el-files))
3961 #:tests? #t
3962 #:test-command
3963 '("emacs" "--batch" "--quiet"
3964 "--script" "test/script.el")))
3965 (home-page "https://github.com/riscy/shx-for-emacs")
3966 (synopsis "Extras for the comint-mode shell")
3967 (description
3968 "This package extends @code{comint-mode}: it parses markup in the output
3969 stream, enabling plots and graphics to be embedded, and adds command-line
3970 functions which plug into Emacs (e.g. use @code{:e <filename>} to edit a
3971 file).")
3972 (license license:gpl3+)))
3973
3974 (define-public emacs-names
3975 (let ((commit "d8baba5360e5253938a25d3e005455b6d2d86971")
3976 (version "20151201.0")
3977 (revision "8"))
3978 (package
3979 (name "emacs-names")
3980 (version (git-version version revision commit))
3981 (source
3982 (origin
3983 (method git-fetch)
3984 (uri (git-reference
3985 (url "https://github.com/Malabarba/names")
3986 (commit commit)))
3987 (file-name (git-file-name name version))
3988 (sha256
3989 (base32
3990 "11wyha2q8y7bzqq3jrzix8n97ywvsibvddrahqcps1a1yqk4hzfz"))))
3991 (build-system emacs-build-system)
3992 (home-page "https://github.com/Malabarba/names/")
3993 (synopsis "Namespace implementation for Emacs Lisp")
3994 (description
3995 "This package provides a macro that writes your namespaces for you.")
3996 (license license:gpl3+))))
3997
3998 (define-public emacs-evil-leader
3999 (package
4000 (name "emacs-evil-leader")
4001 (version "0.4.3")
4002 (source
4003 (origin
4004 (method git-fetch)
4005 (uri
4006 (git-reference
4007 (url "https://github.com/cofi/evil-leader")
4008 (commit version)))
4009 (file-name (git-file-name name version))
4010 (sha256
4011 (base32 "1k2zinchs0jjllp8zkpggckyy63dkyi5yig3p46vh4w45jdzysk5"))))
4012 (inputs
4013 `(("emacs-evil" ,emacs-evil)))
4014 (build-system emacs-build-system)
4015 (home-page "https://github.com/cofi/evil-leader")
4016 (synopsis "Implement <leader> feature from Vim")
4017 (description
4018 "Evil Leader provides the @code{<leader>} feature from Vim that provides
4019 an easy way to bind keys under a configurable prefix key.")
4020 (license license:gpl3+)))
4021
4022 (define-public emacs-evil-textobj-syntax
4023 (let ((commit "2d9ba8c75c754b409aea7469f46a5cfa52a872f3")
4024 (version "0")
4025 (revision "1"))
4026 (package
4027 (name "emacs-evil-textobj-syntax")
4028 (version (git-version version revision commit))
4029 (source
4030 (origin
4031 (method git-fetch)
4032 (uri (git-reference
4033 (url "https://github.com/laishulu/evil-textobj-syntax/")
4034 (commit commit)))
4035 (file-name (git-file-name name version))
4036 (sha256
4037 (base32
4038 "031p5i3274dazp7rz6m5y38shfgszm1clmkcf58qfqlvy978ammc"))))
4039 (build-system emacs-build-system)
4040 (propagated-inputs `(("emacs-evil" ,emacs-evil)
4041 ("emacs-names" ,emacs-names)))
4042 (home-page "https://github.com/laishulu/evil-textobj-syntax/")
4043 (synopsis "Text objects based on syntax highlighting")
4044 (description
4045 "This package provides text objects for @code{evil-mode} with
4046 boundaries defined by syntax highlighting.")
4047 (license license:gpl3+))))
4048
4049 (define-public emacs-flycheck-flow
4050 (let ((commit "9e8e52cfc98af6a23fd906f9cb5d5d470d8cf82d")
4051 (version "1.1")
4052 (revision "1"))
4053 (package
4054 (name "emacs-flycheck-flow")
4055 (version (git-version version revision commit))
4056 (source
4057 (origin
4058 (method git-fetch)
4059 (uri (git-reference
4060 (url "https://github.com/lbolla/emacs-flycheck-flow")
4061 (commit commit)))
4062 (file-name (git-file-name name version))
4063 (sha256
4064 (base32
4065 "14qldlisbmxzammr500gyha2hiv2xgyzfc6mysqii06kbcqn1ik1"))))
4066 (build-system emacs-build-system)
4067 (propagated-inputs
4068 `(("emacs-flycheck" ,emacs-flycheck)))
4069 (home-page "https://github.com/lbolla/emacs-flycheck-flow")
4070 (synopsis "Flow support for @code{flycheck-mode}")
4071 (description
4072 "This package allows @code{flycheck-mode} to provide syntax-checking
4073 for Flow files.")
4074 (license license:gpl3+))))
4075
4076 (define-public emacs-flycheck-grammalecte
4077 (package
4078 (name "emacs-flycheck-grammalecte")
4079 (version "1.2")
4080 (source
4081 (origin
4082 (method url-fetch)
4083 (uri (string-append "https://git.deparis.io/"
4084 "flycheck-grammalecte/snapshot/"
4085 "flycheck-grammalecte-" version ".tar.xz"))
4086 (sha256
4087 (base32 "1mzmzyik843r4j0ibpwqrxmb0g4xmirrf3lxr010bddkmmxf749a"))))
4088 (build-system emacs-build-system)
4089 (arguments
4090 `(#:include '("\\.(el|py)$")
4091 #:exclude '("^test-profile.el$")
4092 #:emacs ,emacs ;need libxml support
4093 #:phases
4094 (modify-phases %standard-phases
4095 (add-after 'unpack 'specify-python-location
4096 ;; Hard-code python3 executable location in the library.
4097 (lambda* (#:key inputs #:allow-other-keys)
4098 (let ((python3 (string-append (assoc-ref inputs "python")
4099 "/bin/python3")))
4100 (substitute* "flycheck-grammalecte.el"
4101 (("\"python3") (string-append "\"" python3)))
4102 (substitute* '("conjugueur.py" "flycheck-grammalecte.py")
4103 (("/usr/bin/env python3?") python3))
4104 #t)))
4105 (add-before 'build 'link-to-grammalecte
4106 ;; XXX: The Python part of the package requires grammalecte, but
4107 ;; the library is not specified in PYTHONPATH, since we're not
4108 ;; using Python build system. As a workaround, we symlink
4109 ;; grammalecte libraries here.
4110 (lambda* (#:key inputs outputs #:allow-other-keys)
4111 (let* ((out (assoc-ref outputs "out"))
4112 (grammalecte (assoc-ref inputs "grammalecte"))
4113 (version ,(version-major+minor (package-version python))))
4114 (with-directory-excursion
4115 (string-append out "/share/emacs/site-lisp")
4116 (symlink (string-append grammalecte "/lib/"
4117 "python" version "/site-packages/"
4118 "grammalecte")
4119 "grammalecte"))
4120 #t))))))
4121 (inputs
4122 `(("grammalecte" ,grammalecte)
4123 ("python" ,python)))
4124 (propagated-inputs
4125 `(("emacs-flycheck" ,emacs-flycheck)))
4126 (home-page "https://git.deparis.io/flycheck-grammalecte/")
4127 (synopsis "Integrate Grammalecte with Flycheck")
4128 (description
4129 "Integrate the French grammar and typography checker Grammalecte with
4130 Flycheck to automatically look for mistakes in your writings. It also
4131 provides an easy way to find synonyms and antonyms for a given word (to avoid
4132 repetitions for example).")
4133 (license license:gpl3+)))
4134
4135 (define-public emacs-flycheck-guile
4136 (package
4137 (name "emacs-flycheck-guile")
4138 (version "0.2")
4139 (source
4140 (origin
4141 (method git-fetch)
4142 (uri
4143 (git-reference
4144 (url "https://github.com/flatwhatson/flycheck-guile")
4145 (commit version)))
4146 (file-name (git-file-name name version))
4147 (sha256
4148 (base32 "0cs5r0ik6a3bl1k3imjl0r8y1i69kx9x9m9cgxj470qk34brwyj5"))))
4149 (propagated-inputs
4150 `(("emacs-flycheck" ,emacs-flycheck)
4151 ("emacs-geiser" ,emacs-geiser)))
4152 (build-system emacs-build-system)
4153 (home-page "https://github.com/flatwhatson/flycheck-guile")
4154 (synopsis "GNU Guile support for Flycheck")
4155 (description
4156 "This package provides a Flycheck checker for GNU Guile using @code{guild
4157 compile}.")
4158 (license license:gpl3+)))
4159
4160 (define-public emacs-flycheck-ledger
4161 (package
4162 (name "emacs-flycheck-ledger")
4163 (version "0.5")
4164 (source
4165 (origin
4166 (method git-fetch)
4167 (uri (git-reference
4168 (url "https://github.com/purcell/flycheck-ledger.git")
4169 (commit version)))
4170 (file-name (git-file-name name version))
4171 (sha256
4172 (base32 "1djrj3is0dzrl2703bw7bclf33dp4xqmy144q7xj5pvpb9v3kf50"))))
4173 (inputs `(("ledger" ,ledger)))
4174 (arguments
4175 `(#:phases
4176 (modify-phases %standard-phases
4177 (add-after 'unpack 'configure
4178 (lambda* (#:key inputs outputs #:allow-other-keys)
4179 (let ((ledger (assoc-ref inputs "ledger")))
4180 ;; Specify the absolute executable location of ledger.
4181 (substitute* "flycheck-ledger.el"
4182 (("\"ledger\"") (string-append "\"" ledger "\""))))
4183 #t)))))
4184 (propagated-inputs
4185 `(("emacs-flycheck" ,emacs-flycheck)))
4186 (build-system emacs-build-system)
4187 (home-page "https://github.com/purcell/flycheck-ledger")
4188 (synopsis "Ledger support for Flycheck")
4189 (description
4190 "This Flycheck checker uses the output of @code{ledger balance} on the
4191 current file to find errors such as unbalanced transactions and syntax
4192 errors.")
4193 (license license:gpl3+)))
4194
4195 (define-public emacs-flycheck-rust
4196 (package
4197 (name "emacs-flycheck-rust")
4198 (version "1.1")
4199 (source
4200 (origin
4201 (method git-fetch)
4202 (uri
4203 (git-reference
4204 (url "https://github.com/flycheck/flycheck-rust")
4205 (commit version)))
4206 (file-name (git-file-name name version))
4207 (sha256
4208 (base32 "1fh6j5w2387nh2fwwjphkhq17cgj5m2q5k0fhidvgc2w65lzbr1r"))))
4209 (propagated-inputs
4210 `(("emacs-dash" ,emacs-dash)
4211 ("emacs-flycheck" ,emacs-flycheck)
4212 ("emacs-let-alist" ,emacs-let-alist)))
4213 (build-system emacs-build-system)
4214 (home-page "https://github.com/flycheck/flycheck-rust")
4215 (synopsis "Rust/Cargo support for Flycheck")
4216 (description
4217 "This Flycheck extension configures Flycheck automatically for
4218 the current Cargo project.")
4219 (license license:gpl3+)))
4220
4221 (define-public emacs-elisp-demos
4222 (package
4223 (name "emacs-elisp-demos")
4224 (version "2020.02.19")
4225 (source
4226 (origin
4227 (method git-fetch)
4228 (uri (git-reference
4229 (url "https://github.com/xuchunyang/elisp-demos")
4230 (commit version)))
4231 (file-name (git-file-name name version))
4232 (sha256
4233 (base32
4234 "0mckgaz92v3y2vlkggx9kd51fd1mahylw39c42l51dyv8wscm7sc"))))
4235 (build-system emacs-build-system)
4236 (arguments
4237 `(#:include '("\\.el$" "\\.org$")
4238 #:tests? #t
4239 #:test-command '("make" "test")))
4240 (home-page "https://github.com/xuchunyang/elisp-demos/")
4241 (synopsis "Enhance @code{*Help*} buffers with additional examples")
4242 (description
4243 "This package injects example uses of Elisp functions into their
4244 respective @code{*Help*} buffers.")
4245 (license license:gpl3+)))
4246
4247 (define-public emacs-docker-compose-mode
4248 (package
4249 (name "emacs-docker-compose-mode")
4250 (version "1.1.0")
4251 (source
4252 (origin
4253 (method git-fetch)
4254 (uri (git-reference
4255 (url "https://github.com/meqif/docker-compose-mode")
4256 (commit version)))
4257 (file-name (git-file-name name version))
4258 (sha256
4259 (base32
4260 "1fbcxwfvm33xcdj3cs26d9i1zyrryyjjkv7sc3mfxd45nq8d3ivj"))))
4261 (build-system emacs-build-system)
4262 (propagated-inputs
4263 `(("emacs-dash" ,emacs-dash)
4264 ("emacs-f" ,emacs-f)))
4265 (home-page "https://github.com/meqif/docker-compose-mode/")
4266 (synopsis "Major mode for editing @file{docker-compose} files")
4267 (description
4268 "This is a major mode for @file{docker-compose} files that provides
4269 completion of relevant keywords.")
4270 (license license:expat)))
4271
4272 (define-public emacs-dvc
4273 (let ((revision "591") ;no tags or official releases
4274 (guix-revision "1"))
4275 (package
4276 (name "emacs-dvc")
4277 (version (string-append "0.0.0-" guix-revision "." revision))
4278 (source
4279 (origin
4280 (method bzr-fetch)
4281 (uri (bzr-reference
4282 (url "lp:dvc")
4283 (revision revision)))
4284 (sha256
4285 (base32
4286 "03pqn493w70wcpgaxvqnfgynxghw114l9pyiv3r414d84vzhan6h"))
4287 (file-name (string-append name "-" version "-checkout"))))
4288 (build-system gnu-build-system)
4289 (arguments
4290 `(#:configure-flags
4291 (list (string-append "--with-lispdir=" (assoc-ref %outputs "out")
4292 "/share/emacs/site-lisp/"))
4293 #:tests? #f ;no test suite
4294 #:phases
4295 (modify-phases %standard-phases
4296 (add-before 'build 'set-home
4297 ;; Something in dvc-bookmarks.el attempts to write config files in
4298 ;; $HOME during the autoload generation.
4299 (lambda _ (setenv "HOME" (getenv "TMPDIR")) #t))
4300 (add-before 'build 'fix-texinfo
4301 ;; See https://bugs.launchpad.net/dvc/+bug/1264383.
4302 (lambda _
4303 (substitute* "texinfo/dvc-intro.texinfo"
4304 (("@itemx update ``to''")
4305 "@item update ``to''")
4306 (("@itemx brief")
4307 "@item brief")
4308 (("@itemx full")
4309 "@item full")
4310 (("@itemx drop")
4311 "@item drop")
4312 (("@itemx left file")
4313 "@item left file"))
4314 #t)))))
4315 (native-inputs
4316 `(("autoconf" ,autoconf)
4317 ("automake" ,automake) ;for aclocal
4318 ("emacs" ,emacs-minimal)
4319 ("texinfo" ,texinfo)))
4320 (home-page "http://xsteve.at/prg/emacs_dvc/index.html")
4321 (synopsis "Emacs front-end for various distributed version control systems.")
4322 (description "DVC is a legacy Emacs front-end for a number of
4323 distributed version control systems. It currently supports GNU Arch, GNU
4324 Bazaar, git, Mercurial, and Monotone. It also provides some integration with
4325 Gnus, e.g., for applying patches received by email.")
4326 (license license:gpl2+))))
4327
4328 (define-public emacs-sudo-edit
4329 (let ((commit "cc3d478937b1accd38742bfceba92af02ee9357d")
4330 (revision "6"))
4331 (package
4332 (name "emacs-sudo-edit")
4333 (version (git-version "0.1.0" revision commit))
4334 (source
4335 (origin
4336 (method git-fetch)
4337 (uri (git-reference
4338 (url "https://github.com/nflath/sudo-edit")
4339 (commit commit)))
4340 (file-name (git-file-name name version))
4341 (sha256
4342 (base32
4343 "1qv58x5j5a3v1s2ylhck1ykbfclq0mbi0gsvaql3nyv8cxazqlwl"))))
4344 (build-system emacs-build-system)
4345 (native-inputs
4346 `(("emacs-undercover" ,emacs-undercover)))
4347 (arguments
4348 `(#:phases
4349 (modify-phases %standard-phases
4350 (add-before 'check 'fix-makefile
4351 (lambda _
4352 (substitute* "Makefile"
4353 (("\\$\\(CASK\\) exec ") ""))
4354 #t)))
4355 #:tests? #t
4356 #:test-command '("make" "test")))
4357 (home-page "https://github.com/nflath/sudo-edit/")
4358 (synopsis "Open files as another user")
4359 (description
4360 "This package allows editing files as another user, including the root
4361 user.")
4362 (license license:gpl3+))))
4363
4364 (define-public emacs-miniedit
4365 (package
4366 (name "emacs-miniedit")
4367 (version "2.0")
4368 (source
4369 (origin
4370 (method git-fetch)
4371 (uri (git-reference
4372 (url "https://github.com/emacsmirror/miniedit")
4373 (commit version)))
4374 (file-name (git-file-name name version))
4375 (sha256
4376 (base32
4377 "1850z96gly0jnr50472idqz1drzqarr0n23bbasslrc501xkg0bq"))))
4378 (build-system emacs-build-system)
4379 (home-page "https://github.com/emacsmirror/miniedit/")
4380 (synopsis "Enhanced editing for minibuffer fields")
4381 (description
4382 "This package provides a function that can be called from the
4383 minibuffer to enable editing the minibuffer input in another buffer with
4384 @code{text-mode} enabled.")
4385 (license license:gpl2+)))
4386
4387 (define-public emacs-ob-ipython
4388 (package
4389 (name "emacs-ob-ipython")
4390 (version "20180224")
4391 (source (origin
4392 (method git-fetch)
4393 (uri (git-reference
4394 (commit "7147455230841744fb5b95dcbe03320313a77124")
4395 (url "https://github.com/gregsexton/ob-ipython")))
4396 (file-name (git-file-name name version))
4397 (sha256
4398 (base32
4399 "1a10fc2jk37ni5sjjvf87s5nyaz2a6h2mlj5dxh4dhv5sd3bb85p"))))
4400 (build-system emacs-build-system)
4401 (propagated-inputs
4402 `(("emacs-f" ,emacs-f)))
4403 (home-page "http://www.gregsexton.org")
4404 (synopsis "Org-Babel functions for IPython evaluation")
4405 (description "This package adds support to Org-Babel for evaluating Python
4406 source code using IPython.")
4407 (license license:gpl3+)))
4408
4409 (define-public emacs-debbugs
4410 (package
4411 (name "emacs-debbugs")
4412 (version "0.25")
4413 (source
4414 (origin
4415 (method url-fetch)
4416 (uri (string-append "https://elpa.gnu.org/packages/debbugs-"
4417 version ".tar"))
4418 (sha256
4419 (base32 "0h0pxav170yzfpjf4vb8simiw67x9dkcjx9m4ghdk6wia25y8jni"))))
4420 (build-system emacs-build-system)
4421 (arguments '(#:include '("\\.el$" "\\.wsdl$" "\\.info$")))
4422 (propagated-inputs
4423 `(("emacs-async" ,emacs-async)))
4424 (home-page "https://elpa.gnu.org/packages/debbugs.html")
4425 (synopsis "Access the Debbugs bug tracker in Emacs")
4426 (description
4427 "This package lets you access the @uref{http://bugs.gnu.org,GNU Bug
4428 Tracker} from within Emacs.
4429
4430 For instance, it defines the command @code{M-x debbugs-gnu} for listing bugs,
4431 and the command @code{M-x debbugs-gnu-search} for bug searching. If you
4432 prefer the listing of bugs as TODO items of @code{org-mode}, you could use
4433 @code{M-x debbugs-org} and related commands.
4434
4435 A minor mode @code{debbugs-browse-mode} let you browse URLs to the GNU Bug
4436 Tracker as well as bug identifiers prepared for @code{bug-reference-mode}.")
4437 (license license:gpl3+)))
4438
4439 (define-public emacs-ert-expectations
4440 (package
4441 (name "emacs-ert-expectations")
4442 (version "0.2")
4443 (source
4444 (origin
4445 (method url-fetch)
4446 (uri "https://www.emacswiki.org/emacs/download/ert-expectations.el")
4447 (sha256
4448 (base32
4449 "0cwy3ilsid90abzzjb7ha2blq9kmv3gfp3icwwfcz6qczgirq6g7"))))
4450 (build-system emacs-build-system)
4451 (home-page "https://www.emacswiki.org/emacs/ert-expectations.el")
4452 (synopsis "Simple unit test framework for Emacs Lisp")
4453 (description "@code{emacs-ert-expectations} is a simple unit test
4454 framework for Emacs Lisp to be used with @code{ert}.")
4455 (license license:gpl3+)))
4456
4457 (define-public emacs-deferred
4458 (package
4459 (name "emacs-deferred")
4460 (version "0.5.1")
4461 (home-page "https://github.com/kiwanami/emacs-deferred")
4462 (source (origin
4463 (method git-fetch)
4464 (uri (git-reference
4465 (url home-page)
4466 (commit (string-append "v" version))))
4467 (file-name (git-file-name name version))
4468 (sha256
4469 (base32
4470 "0xy9zb6wwkgwhcxdnslqk52bq3z24chgk6prqi4ks0qcf2bwyh5h"))))
4471 (build-system emacs-build-system)
4472 (arguments
4473 `(#:phases
4474 (modify-phases %standard-phases
4475 (add-after 'unpack 'set-shell
4476 ;; Setting the SHELL environment variable is required for the tests
4477 ;; to find sh.
4478 (lambda _
4479 (setenv "SHELL" (which "sh"))
4480 #t))
4481 (add-before 'check 'fix-makefile
4482 (lambda _
4483 (substitute* "Makefile"
4484 (("\\$\\(CASK\\) exec ") ""))
4485 #t)))
4486 #:tests? #t
4487 #:test-command '("make" "test")))
4488 (native-inputs
4489 `(("emacs-ert-expectations" ,emacs-ert-expectations)
4490 ("emacs-undercover" ,emacs-undercover)
4491 ("ert-runner" ,emacs-ert-runner)))
4492 (synopsis "Simple asynchronous functions for Emacs Lisp")
4493 (description
4494 "The @code{deferred.el} library provides support for asynchronous tasks.
4495 The API is almost the same as that of
4496 @uref{https://github.com/cho45/jsdeferred, JSDeferred}, a JavaScript library
4497 for asynchronous tasks.")
4498 (license license:gpl3+)))
4499
4500 (define-public emacs-butler
4501 (package
4502 (name "emacs-butler")
4503 (version "0.2.4")
4504 (home-page "https://github.com/AshtonKem/Butler")
4505 (source (origin
4506 (method git-fetch)
4507 (uri (git-reference
4508 (url home-page)
4509 (commit version)))
4510 (file-name (git-file-name name version))
4511 (sha256
4512 (base32
4513 "1pii9dw4skq7nr4na6qxqasl36av8cwjp71bf1fgppqpcd9z8skj"))))
4514 (build-system emacs-build-system)
4515 (propagated-inputs
4516 `(("emacs-deferred" ,emacs-deferred)))
4517 (synopsis "Emacs client for Jenkins")
4518 (description
4519 "Butler provides an interface to connect to Jenkins continuous
4520 integration servers. Users can specify a list of server in the
4521 @code{butler-server-list} variable and then use @code{M-x butler-status} to
4522 view the build status of those servers' build jobs, and possibly to trigger
4523 build jobs.")
4524 (license license:gpl3+)))
4525
4526 (define-public emacs-company
4527 (package
4528 (name "emacs-company")
4529 (version "0.9.13")
4530 (source
4531 (origin
4532 (method url-fetch)
4533 (uri (string-append "https://elpa.gnu.org/packages/"
4534 "company-" version ".tar"))
4535 (sha256
4536 (base32 "1c9x9wlzzsn7vrsm57l2l44nqx455saa6wrm853szzg09qn8dlnw"))))
4537 (build-system emacs-build-system)
4538 (home-page "https://company-mode.github.io/")
4539 (synopsis "Modular text completion framework")
4540 (description
4541 "Company is a modular completion mechanism. Modules for retrieving
4542 completion candidates are called back-ends, modules for displaying them are
4543 front-ends. Company comes with many back-ends, e.g., @code{company-elisp}.
4544 These are distributed in separate files and can be used individually.")
4545 (license license:gpl3+)))
4546
4547 (define-public emacs-company-posframe
4548 (let ((version "0.1.0")
4549 (revision "1")
4550 (commit "67d899502384fb9ab2870aba0af41523dea7b64f"))
4551 (package
4552 (name "emacs-company-posframe")
4553 (version (git-version version revision commit))
4554 (source (origin
4555 (method git-fetch)
4556 (uri (git-reference
4557 (url "https://github.com/tumashu/company-posframe")
4558 (commit commit)))
4559 (file-name (git-file-name name version))
4560 (sha256
4561 (base32
4562 "051smlvz1siwglsd9k9l0m20mygrx4niflmyshha0064287aysxr"))))
4563 (build-system emacs-build-system)
4564 (propagated-inputs
4565 `(("emacs-company" ,emacs-company)
4566 ("emacs-posframe" ,emacs-posframe)))
4567 (home-page "https://github.com/tumashu/company-posframe")
4568 (synopsis "Use a posframe for @code{emacs-company}'s candidate menu")
4569 (description
4570 "Allows @code{emacs-company} to use child frames for its candidate menus.
4571
4572 @code{emacs-company-posframe} is fast enough for daily use and supports CJK
4573 languages.")
4574 (license license:gpl3+))))
4575
4576 (define-public emacs-irony-mode
4577 (package
4578 (name "emacs-irony-mode")
4579 (version "1.4.0")
4580 (home-page "https://github.com/Sarcasm/irony-mode")
4581 (source (origin
4582 (method git-fetch)
4583 (uri (git-reference
4584 (url (string-append home-page ".git"))
4585 (commit (string-append "v" version))))
4586 (file-name (git-file-name name version))
4587 (sha256
4588 (base32
4589 "0n2nfcq58md1p2xdhq1smh8v7lsyj0ci7ma5xyd6bkg5rvhsh10i"))))
4590 (build-system emacs-build-system)
4591 (inputs `(("server" ,emacs-irony-mode-server)))
4592 (arguments `(#:phases
4593 (modify-phases %standard-phases
4594 (add-after 'unpack 'configure
4595 (lambda* (#:key inputs #:allow-other-keys)
4596 (chmod "irony.el" #o644)
4597 (emacs-substitute-variables "irony.el"
4598 ("irony-server-install-prefix"
4599 (assoc-ref inputs "server")))
4600 #t)))))
4601 (synopsis "C/C++/ObjC Code completion and syntax checks for Emacs")
4602 (description "Irony-mode provides Clang-assisted syntax checking and
4603 completion for C, C++, and ObjC in GNU Emacs. Using @code{libclang} it can
4604 provide syntax checking and autocompletion on compiler level which is very
4605 resistant against false positives. It also integrates well with other
4606 packages like @code{eldoc-mode} and especially @code{company-mode} as
4607 described on the homepage.")
4608 (license license:gpl3+)))
4609
4610 (define-public emacs-irony-mode-server
4611 (package (inherit emacs-irony-mode)
4612 (name "emacs-irony-mode-server")
4613 (inputs
4614 `(("clang" ,clang)))
4615 (arguments
4616 `(#:phases
4617 (modify-phases %standard-phases
4618 (replace 'configure
4619 (lambda* (#:key outputs #:allow-other-keys)
4620 (let ((out (assoc-ref outputs "out")))
4621 (invoke "cmake"
4622 "server"
4623 (string-append "-DCMAKE_INSTALL_PREFIX=" out)) #t))))))
4624 (build-system cmake-build-system)
4625 (synopsis "Server for the Emacs @dfn{irony mode}")))
4626
4627 (define-public emacs-company-irony
4628 (package
4629 (name "emacs-company-irony")
4630 (version "1.1.0")
4631 (source (origin
4632 (method git-fetch)
4633 (uri (git-reference
4634 (url "https://github.com/Sarcasm/company-irony")
4635 (commit (string-append "v" version))))
4636 (sha256 (base32
4637 "1qgyam2vyjw90kpxns5cd6bq3qiqjhzpwrlvmi18vyb69qcgqd8a"))
4638 (file-name (git-file-name name version))))
4639 (build-system emacs-build-system)
4640 (inputs
4641 `(("emacs-irony-mode" ,emacs-irony-mode)
4642 ("emacs-company" ,emacs-company)))
4643 (synopsis "C++ completion backend for Company using irony-mode")
4644 (description "This backend for company-mode allows for C++ code completion
4645 with irony-mode using clang-tooling.")
4646 (home-page "https://github.com/Sarcasm/company-irony")
4647 (license license:gpl3+)))
4648
4649 (define-public emacs-flycheck-irony
4650 (package
4651 (name "emacs-flycheck-irony")
4652 (version "0.1.0")
4653 (source (origin
4654 (method git-fetch)
4655 (uri (git-reference
4656 (url "https://github.com/Sarcasm/flycheck-irony")
4657 (commit (string-append "v" version))))
4658 (file-name (git-file-name name version))
4659 (sha256
4660 (base32 "0qa5a8wzvzxwqql92ibc9s43k8sj3vwn7skz9hfr8av0skkhx996"))))
4661 (build-system emacs-build-system)
4662 (inputs
4663 `(("irony-mode" ,emacs-irony-mode)
4664 ("flycheck-mode" ,emacs-flycheck)
4665 ("emacs-company" ,emacs-company)))
4666 (synopsis "Live syntax checking frontend for Flycheck using irony-mode")
4667 (description "This package provides a frontend for Flycheck that lets
4668 irony-mode do the syntax checking.")
4669 (home-page "https://github.com/Sarcasm/flycheck-irony")
4670 (license license:gpl3+)))
4671
4672 (define-public emacs-irony-eldoc
4673 (package
4674 (name "emacs-irony-eldoc")
4675 (version (package-version emacs-irony-mode))
4676 (source
4677 (origin
4678 (method git-fetch)
4679 (uri (git-reference
4680 (url "https://github.com/ikirill/irony-eldoc")
4681 (commit "0df5831eaae264a25422b061eb2792aadde8b3f2")))
4682 (file-name (git-file-name name version))
4683 (sha256
4684 (base32 "1l5qpr66v1l12fb50yh73grb2rr85xxmbj19mm33b5rdrq2bqmmd"))))
4685 (build-system emacs-build-system)
4686 (inputs
4687 `(("irony-mode" ,emacs-irony-mode)))
4688 (synopsis "Eldoc integration for irony-mode")
4689 (description "Irony-eldoc is an eldoc extension that shows documentation
4690 for the current function or variable in the minibuffer.")
4691 (home-page "https://github.com/ikirill/irony-eldoc")
4692 (license license:gpl3+)))
4693
4694 (define-public emacs-company-quickhelp
4695 ;; XXX: release version 2.3.0 is on an unmaintained branch for some reason,
4696 ;; so we use the latest 2.2.0 commit instead
4697 (let ((commit "479676cade80a9f03802ca3d956591820ed5c537")
4698 (revision "1"))
4699 (package
4700 (name "emacs-company-quickhelp")
4701 (version (git-version "2.2.0" revision commit))
4702 (source
4703 (origin
4704 (method git-fetch)
4705 (uri (git-reference
4706 (url "https://github.com/expez/company-quickhelp")
4707 (commit commit)))
4708 (file-name (git-file-name name version))
4709 (sha256
4710 (base32 "0hbqpnaf4hnin3nmdzmfj3v22kk9a97b6zssqs96ns36d9h52xcp"))))
4711 (build-system emacs-build-system)
4712 (propagated-inputs
4713 `(("emacs-pos-tip" ,emacs-pos-tip)
4714 ("emacs-company" ,emacs-company)))
4715 (home-page "https://github.com/expez/company-quickhelp")
4716 (synopsis "Popup documentation for completion candidates")
4717 (description "@code{company-quickhelp} shows documentation for the
4718 completion candidate when using the Company text completion framework.")
4719 (license license:gpl3+))))
4720
4721 (define-public emacs-math-symbol-lists
4722 (let ((commit "dc7531cff0c845d5470a50c24d5d7309b2ced7eb")
4723 (revision "1"))
4724 (package
4725 (name "emacs-math-symbol-lists")
4726 (version (git-version "1.2.1" revision commit))
4727 (source
4728 (origin
4729 (method git-fetch)
4730 (uri (git-reference
4731 (url "https://github.com/vspinu/math-symbol-lists")
4732 (commit commit)))
4733 (file-name (git-file-name name version))
4734 (sha256
4735 (base32 "094m21i9rns6m59cmhxcivxxafbg52w8f8na4y3v47aq67zmhhqm"))))
4736 (build-system emacs-build-system)
4737 (home-page "https://github.com/vspinu/math-symbol-lists")
4738 (synopsis "Lists of Unicode math symbols and @code{LaTeX} commands")
4739 (description "This is a storage package used by completion engines like
4740 @code{company-math}.")
4741 (license license:gpl3+))))
4742
4743 (define-public emacs-company-coq
4744 (package
4745 (name "emacs-company-coq")
4746 (version "1.0.1")
4747 (source
4748 (origin
4749 (method git-fetch)
4750 (uri
4751 (git-reference
4752 (url "https://github.com/cpitclaudel/company-coq")
4753 (commit version)))
4754 (file-name (git-file-name name version))
4755 (sha256
4756 (base32 "0dxi4h8xqq5647k7h89s4pi8nwyj3brlhsckrv3p3b1g4dr6mk3b"))))
4757 (inputs
4758 `(("emacs-company" ,emacs-company)
4759 ("emacs-company-math" ,emacs-company-math)
4760 ("emacs-dash" ,emacs-dash)
4761 ("emacs-yasnippet" ,emacs-yasnippet)))
4762 (build-system emacs-build-system)
4763 (home-page "https://github.com/cpitclaudel/company-coq")
4764 (synopsis "Emacs extensions for Proof General's Coq mode")
4765 (description "This package includes a collection of Company mode backends
4766 for Proof-General's Coq mode, and many useful extensions to Proof-General. It
4767 features:
4768
4769 @itemize
4770 @item Prettification of operators, types, and subscripts,
4771 @item Auto-completion,
4772 @item Insertion of cases,
4773 @item Fully explicit intros,
4774 @item Outlines, code folding, and jumping to definition,
4775 @item Help with errors,
4776 @item and more.
4777 @end itemize")
4778 (license license:gpl3+)))
4779
4780 (define-public emacs-company-math
4781 (let ((commit "600e49449644f6835f9dc3501bc58461999e8ab9")
4782 (revision "1"))
4783 (package
4784 (name "emacs-company-math")
4785 (version (git-version "1.3" revision commit))
4786 (source
4787 (origin
4788 (method git-fetch)
4789 (uri (git-reference
4790 (url "https://github.com/vspinu/company-math")
4791 (commit commit)))
4792 (file-name (git-file-name name version))
4793 (sha256
4794 (base32
4795 "1ps2lpkzn8mjbpcbvvy1qz3xbgrh6951x8y9bsd1fm32drdph9lh"))))
4796 (build-system emacs-build-system)
4797 (propagated-inputs
4798 `(("emacs-math-symbol-lists" ,emacs-math-symbol-lists)
4799 ("emacs-company" ,emacs-company)))
4800 (home-page "https://github.com/vspinu/company-math")
4801 (synopsis "Completion backends for Unicode math symbols and @code{LaTeX} tags")
4802 (description "This package provides a backend for use with
4803 @code{company-mode} allowing for completion of common math symbols.")
4804 (license license:gpl3+))))
4805
4806 (define-public emacs-compdef
4807 (let ((commit "67104a38763cc819644f711248b170a43bce151b")
4808 (revision "2"))
4809 (package
4810 (name "emacs-compdef")
4811 (version (git-version "0.2" revision commit))
4812 (source
4813 (origin
4814 (method git-fetch)
4815 (uri (git-reference
4816 (url "https://gitlab.com/jjzmajic/compdef.git")
4817 (commit commit)))
4818 (file-name (git-file-name name version))
4819 (sha256
4820 (base32 "1f6y6cr67gps9jp5hd20xszfd3k26v70g6z4g5db6wdkvlnc2wkg"))))
4821 (build-system emacs-build-system)
4822 (home-page "https://gitlab.com/jjzmajic/compdef")
4823 (synopsis "Set local completion backends")
4824 (description "This package provides a function to cleanly set local
4825 completion backends according to mode, and integrates with
4826 @code{use-package}.")
4827 (license license:gpl3+))))
4828
4829 (define-public emacs-icomplete-vertical
4830 (package
4831 (name "emacs-icomplete-vertical")
4832 (version "0.1")
4833 (source
4834 (origin
4835 (method git-fetch)
4836 (uri (git-reference
4837 (url "https://github.com/oantolin/icomplete-vertical")
4838 (commit version)))
4839 (file-name (git-file-name name version))
4840 (sha256
4841 (base32
4842 "1bqnlvv1gvrjriazvzd3bq98r8ii6fqax0zznhvkl1ij5pf55a90"))))
4843 (build-system emacs-build-system)
4844 (home-page "https://github.com/oantolin/icomplete-vertical")
4845 (synopsis "Display icomplete candidates vertically")
4846 (description
4847 "This package defines a global minor mode to display Icomplete
4848 completion candidates vertically.")
4849 (license license:gpl3+)))
4850
4851 (define-public emacs-handle
4852 (let ((commit "51c050bc1c6e5caf0eb47ecd985daea1db7241ab")
4853 (revision "2"))
4854 (package
4855 (name "emacs-handle")
4856 (version (git-version "0.1" revision commit))
4857 (source
4858 (origin
4859 (method git-fetch)
4860 (uri (git-reference
4861 (url "https://gitlab.com/jjzmajic/handle.git")
4862 (commit commit)))
4863 (file-name (git-file-name name version))
4864 (sha256
4865 (base32 "14f15qzfmwdslml4rv37zb5d1lsjf0jibriz636hb7q7knx1n4sg"))))
4866 (build-system emacs-build-system)
4867 (propagated-inputs
4868 `(("emacs-parent-mode" ,emacs-parent-mode)))
4869 (home-page "https://gitlab.com/jjzmajic/handle")
4870 (synopsis "Handle generic functions across related major modes")
4871 (description "This package provides generic functions that specialize on
4872 major modes and intended purpose rather than on arguments. Different
4873 callables for tasks like expression evaluation, definition-jumping, and more
4874 can now be grouped accordingly and tried in sequence until one of them
4875 succeeds.")
4876 (license license:gpl3+))))
4877
4878 (define-public emacs-nswbuff
4879 (let ((commit "362da7f3687e2eb5bb11667347de85f4a9d002bc")
4880 (revision "1"))
4881 (package
4882 (name "emacs-nswbuff")
4883 (version (git-version "1.0" revision commit))
4884 (source
4885 (origin
4886 (method git-fetch)
4887 (uri (git-reference
4888 (url "https://github.com/joostkremers/nswbuff")
4889 (commit commit)))
4890 (file-name (git-file-name name version))
4891 (sha256
4892 (base32 "0l2xfz8z5qd4hz3kv6zn7h6qq3narkilri8a071y1n8j31jps4ma"))))
4893 (build-system emacs-build-system)
4894 (home-page "https://github.com/joostkremers/nswbuff")
4895 (synopsis "Quickly switch between buffers")
4896 (description "This package allows for navigating between buffers within
4897 a customizable list.")
4898 (license license:gpl3+))))
4899
4900 (define-public emacs-phi-search
4901 (let ((commit "9a089b8271cb1cff9640848850298c9ec855286c")
4902 (revision "1"))
4903 (package
4904 (name "emacs-phi-search")
4905 (version (git-version "20160630" revision commit))
4906 (source
4907 (origin
4908 (method git-fetch)
4909 (uri (git-reference
4910 (url "https://github.com/zk-phi/phi-search")
4911 (commit commit)))
4912 (file-name (git-file-name name version))
4913 (sha256
4914 (base32 "1gr5plcbrfdc4pglfj905s89hf8x0kc083h30wcnd81bnw9jwz1x"))))
4915 (build-system emacs-build-system)
4916 (home-page "https://github.com/zk-phi/phi-search")
4917 (synopsis "Interactive search compatible with @code{multiple-cursors}")
4918 (description "This package can be used with @code{multiple-cursors} to
4919 provide an incremental search that moves all fake cursors in sync.")
4920 (license license:gpl2+))))
4921
4922 (define-public emacs-phi-search-mc
4923 (let ((commit "7aa671910f766437089aec26c3aa7814222d1356")
4924 (revision "1"))
4925 (package
4926 (name "emacs-phi-search-mc")
4927 (version (git-version "2.2.1" revision commit))
4928 (source
4929 (origin
4930 (method git-fetch)
4931 (uri (git-reference
4932 (url "https://github.com/knu/phi-search-mc.el")
4933 (commit commit)))
4934 (file-name (git-file-name name version))
4935 (sha256
4936 (base32 "0wr86ad0yl52im6b9z0b9pzmhcn39qg5m9878yfv1nbxliw40lcd"))))
4937 (build-system emacs-build-system)
4938 (propagated-inputs
4939 `(("emacs-phi-search" ,emacs-phi-search)
4940 ("emacs-multiple-cursors" ,emacs-multiple-cursors)))
4941 (home-page "https://github.com/knu/phi-search-mc.el")
4942 (synopsis "Extend @code{phi-search} with additional
4943 @code{multiple-cursors} functionality")
4944 (description "This package provides further integration between
4945 @code{multiple-cursors} and @code{phi-search}, a package that allows for
4946 interactive searches to move multiple fake cursors.")
4947 (license license:bsd-2))))
4948
4949 (define-public emacs-multiple-cursors
4950 (package
4951 (name "emacs-multiple-cursors")
4952 (version "1.4.0")
4953 (source
4954 (origin
4955 (method git-fetch)
4956 (uri (git-reference
4957 (url "https://github.com/magnars/multiple-cursors.el")
4958 (commit version)))
4959 (file-name (git-file-name name version))
4960 (sha256
4961 (base32 "1ijgvzv5r44xqvz751fd5drbvrspapw6xwv47582w255j363r6ss"))))
4962 (build-system emacs-build-system)
4963 (home-page "https://github.com/magnars/multiple-cursors.el")
4964 (synopsis "Multiple cursors for Emacs")
4965 (description
4966 "This package adds support to Emacs for editing text with multiple
4967 simultaneous cursors.")
4968 (license license:gpl3+)))
4969
4970 (define-public emacs-mc-extras
4971 (let ((commit "053abc52181b8718559d7361a587bbb795faf164")
4972 (revision "1"))
4973 (package
4974 (name "emacs-mc-extras")
4975 (version (git-version "1.2.4" revision commit))
4976 (source
4977 (origin
4978 (method git-fetch)
4979 (uri (git-reference
4980 (url "https://github.com/knu/mc-extras.el")
4981 (commit commit)))
4982 (file-name (git-file-name name version))
4983 (sha256
4984 (base32 "16y48qrd20m20vypvys5jp4v4gc1qrqlkm75s1pk1r68i9zrw481"))))
4985 (build-system emacs-build-system)
4986 (propagated-inputs
4987 `(("emacs-multiple-cursors" ,emacs-multiple-cursors)))
4988 (home-page "https://github.com/knu/mc-extras.el")
4989 (synopsis "Extra functions for manipulating multiple cursors")
4990 (description
4991 "This package provides additional functions for
4992 @code{multiple-cursors}, including functions for marking s-expressions,
4993 comparing characters, removing cursors, and more.")
4994 (license license:bsd-2))))
4995
4996 (define-public emacs-typo
4997 (package
4998 (name "emacs-typo")
4999 (version "1.1")
5000 (home-page "https://github.com/jorgenschaefer/typoel")
5001 (source (origin
5002 (method git-fetch)
5003 (uri (git-reference
5004 (url home-page)
5005 (commit (string-append "v" version))))
5006 (file-name (git-file-name name version))
5007 (sha256
5008 (base32
5009 "1jhd4grch5iz12gyxwfbsgh4dmz5hj4bg4gnvphccg8dsnni05k2"))))
5010 (build-system emacs-build-system)
5011 (synopsis "Minor mode for typographic editing")
5012 (description
5013 "This package provides two Emacs modes, @code{typo-mode} and
5014 @code{typo-global-mode}. These modes automatically insert Unicode characters
5015 for quotation marks, dashes, and ellipses. For example, typing @kbd{\"}
5016 automatically inserts a Unicode opening or closing quotation mark, depending
5017 on context.")
5018 (license license:gpl3+)))
5019
5020 (define-public emacs-company-lsp
5021 (package
5022 (name "emacs-company-lsp")
5023 (version "2.1.0")
5024 (source (origin
5025 (method git-fetch)
5026 (uri (git-reference
5027 (url "https://github.com/tigersoldier/company-lsp")
5028 (commit version)))
5029 (file-name (git-file-name name version))
5030 (sha256
5031 (base32
5032 "1hy1x2w0yp5brm7714d1hziz3rpkywb5jp3yj78ibmi9ifny9vri"))))
5033 (build-system emacs-build-system)
5034 (propagated-inputs
5035 `(("emacs-dash" ,emacs-dash)
5036 ("emacs-lsp-mode" ,emacs-lsp-mode)
5037 ("emacs-company" ,emacs-company)
5038 ("emacs-s" ,emacs-s)
5039 ("emacs-dash" ,emacs-dash)))
5040 (native-inputs
5041 `(("emacs-buttercup" ,emacs-buttercup)))
5042 (arguments
5043 `(#:tests? #t
5044 #:test-command '("buttercup" "-L" ".")))
5045 (home-page "https://github.com/tigersoldier/company-lsp")
5046 (synopsis "Completion for @code{lsp-mode}")
5047 (description
5048 "This package provides completion features that are not possible with
5049 @code{lsp-mode} and @code{company-capf} alone, including support for trigger
5050 characters and asynchronous fetching of completion candidates.")
5051 (license license:gpl3+)))
5052
5053 (define-public emacs-scala-mode
5054 (package
5055 (name "emacs-scala-mode")
5056 (version "1.1.0")
5057 (source
5058 (origin
5059 (method git-fetch)
5060 (uri (git-reference
5061 (url "https://github.com/hvesalai/emacs-scala-mode")
5062 (commit (string-append "v" version))))
5063 (file-name (git-file-name name version))
5064 (sha256
5065 (base32 "1072lsin7dxadc0xyhy42wd0cw549axbbd4dy95wfmfcc1xbzjwv"))))
5066 (build-system emacs-build-system)
5067 (home-page "https://github.com/hvesalai/emacs-scala-mode")
5068 (synopsis "Emacs major mode for Scala")
5069 (description
5070 "This package provides basic Emacs support for the Scala language,
5071 including: local indenting of code, comments and multi-line strings, motion
5072 commands and highlighting.")
5073 ;; There are no copyright headers in the source code. The LICENSE file
5074 ;; indicates GPL3.
5075 (license license:gpl3)))
5076
5077 (define-public emacs-scheme-complete
5078 (let ((commit "9b5cf224bf2a5994bc6d5b152ff487517f1a9bb5"))
5079 (package
5080 (name "emacs-scheme-complete")
5081 (version (string-append "20151223." (string-take commit 8)))
5082 (source
5083 (origin
5084 (method git-fetch)
5085 (uri (git-reference
5086 (url "https://github.com/ashinn/scheme-complete")
5087 (commit commit)))
5088 (file-name (git-file-name name version))
5089 (sha256
5090 (base32
5091 "141wn9l0m33w0g3dqmx8nxbfdny1r5xbr6ak61rsz21bk0qafs7x"))
5092 (patches
5093 (search-patches "emacs-scheme-complete-scheme-r5rs-info.patch"))))
5094 (build-system emacs-build-system)
5095 (home-page "https://github.com/ashinn/scheme-complete")
5096 (synopsis "Smart tab completion for Scheme in Emacs")
5097 (description
5098 "This file provides a single function, @code{scheme-smart-complete},
5099 which you can use for intelligent, context-sensitive completion for any Scheme
5100 implementation in Emacs. To use it just load this file and bind that function
5101 to a key in your preferred mode.")
5102 (license license:public-domain))))
5103
5104 (define-public emacs-scel
5105 (let ((version "20170629")
5106 (revision "1")
5107 (commit "aeea3ad4be9306d14c3a734a4ff54fee10ac135b"))
5108 (package
5109 (name "emacs-scel")
5110 (version (git-version version revision commit))
5111 (source
5112 (origin
5113 (method git-fetch)
5114 (uri (git-reference
5115 (url "https://github.com/supercollider/scel")
5116 (commit commit)))
5117 (file-name (git-file-name name version))
5118 (sha256
5119 (base32
5120 "0jvmzs1lsjyndqshhii2y4mnr3wghai26i3p75453zrpxpg0zvvw"))))
5121 (build-system emacs-build-system)
5122 (arguments
5123 `(#:modules ((guix build emacs-build-system)
5124 ((guix build cmake-build-system) #:prefix cmake:)
5125 (guix build utils))
5126 #:imported-modules (,@%emacs-build-system-modules
5127 (guix build cmake-build-system))
5128 #:phases
5129 (modify-phases %standard-phases
5130 (add-after 'unpack 'configure
5131 (lambda* (#:key outputs #:allow-other-keys)
5132 (substitute* "el/CMakeLists.txt"
5133 (("share/emacs/site-lisp/SuperCollider")
5134 (string-append
5135 "share/emacs/site-lisp")))
5136 ((assoc-ref cmake:%standard-phases 'configure)
5137 #:outputs outputs
5138 #:configure-flags '("-DSC_EL_BYTECOMPILE=OFF"))))
5139 (add-after 'add-source-to-load-path 'add-el-dir-to-emacs-load-path
5140 (lambda _
5141 (setenv "EMACSLOADPATH"
5142 (string-append (getcwd) "/el:" (getenv "EMACSLOADPATH")))
5143 #t))
5144 (replace 'install (assoc-ref cmake:%standard-phases 'install)))))
5145 (inputs
5146 `(("supercollider" ,supercollider)))
5147 (native-inputs
5148 `(("cmake" ,cmake-minimal)))
5149 (home-page "https://github.com/supercollider/scel")
5150 (synopsis "SuperCollider Emacs interface")
5151 (description "@code{emacs-scel} is an Emacs interface to SuperCollider.
5152 SuperCollider is a platform for audio synthesis and algorithmic composition.")
5153 (license license:gpl2+))))
5154
5155 (define-public emacs-company-auctex
5156 (let ((commit "48c42c58ce2f0e693301b0cb2d085055410c1b25")
5157 (revision "1"))
5158 (package
5159 (name "emacs-company-auctex")
5160 (version (git-version "0" revision commit))
5161 (source (origin
5162 (method git-fetch)
5163 (uri (git-reference
5164 (url "https://github.com/alexeyr/company-auctex")
5165 (commit commit)))
5166 (file-name (git-file-name name version))
5167 (sha256
5168 (base32
5169 "10qn7frn5wcmrlci3v6iliqzj7r9dls87h9zp3xkgrgn4bqprfp8"))))
5170 (build-system emacs-build-system)
5171 (propagated-inputs
5172 `(("emacs-yasnippet" ,emacs-yasnippet)
5173 ("emacs-auctex" ,emacs-auctex)
5174 ("emacs-company" ,emacs-company)))
5175 (home-page "https://github.com/alexeyr/company-auctex/")
5176 (synopsis "Completion for @code{AUCTeX}")
5177 (description
5178 "This package provides a group of backends permitting auto-completion
5179 for @code{AUCTeX}.")
5180 (license license:gpl3+))))
5181
5182 (define-public emacs-mit-scheme-doc
5183 (package
5184 (name "emacs-mit-scheme-doc")
5185 (version "20140203")
5186 (source
5187 (origin
5188 (modules '((guix build utils)))
5189 (snippet
5190 ;; keep only file of interest
5191 '(begin
5192 (for-each delete-file '("dot-emacs.el" "Makefile"))
5193 (install-file "6.945-config/mit-scheme-doc.el" ".")
5194 (delete-file-recursively "6.945-config")
5195 #t))
5196 (file-name (string-append name "-" version ".tar.bz2"))
5197 (method url-fetch)
5198 (uri (string-append "http://groups.csail.mit.edu/mac/users/gjs/"
5199 "6.945/dont-panic/emacs-basic-config.tar.bz2"))
5200 (sha256
5201 (base32
5202 "0dqidg2bd66pawqfarvwca93w5gqf9mikn1k2a2rmd9ymfjpziq1"))))
5203 (build-system emacs-build-system)
5204 (inputs `(("mit-scheme" ,mit-scheme)))
5205 (arguments
5206 `(#:phases
5207 (modify-phases %standard-phases
5208 (add-after 'unpack 'configure-doc
5209 (lambda* (#:key inputs #:allow-other-keys)
5210 (let* ((mit-scheme-dir (assoc-ref inputs "mit-scheme"))
5211 (doc-dir (string-append mit-scheme-dir "/share/doc/"
5212 "mit-scheme-"
5213 ,(package-version mit-scheme))))
5214 (substitute* "mit-scheme-doc.el"
5215 (("http://www\\.gnu\\.org/software/mit-scheme/documentation/mit-scheme-ref/")
5216 (string-append "file:" doc-dir "/mit-scheme-ref/")))))))))
5217 (home-page "https://groups.csail.mit.edu/mac/users/gjs/6.945/dont-panic/")
5218 (synopsis "MIT-Scheme documentation lookup for Emacs")
5219 (description
5220 "This package provides a set of Emacs functions to search definitions of
5221 identifiers in the MIT-Scheme documentation.")
5222 (license license:gpl2+)))
5223
5224 (define-public emacs-constants
5225 (package
5226 (name "emacs-constants")
5227 (version "2.6")
5228 (home-page "https://staff.fnwi.uva.nl/c.dominik/Tools/constants")
5229 (source
5230 (origin
5231 (method git-fetch)
5232 (uri (git-reference
5233 (url "https://github.com/fedeinthemix/emacs-constants")
5234 (commit (string-append "v" version))))
5235 (file-name (git-file-name name version))
5236 (sha256
5237 (base32 "0f5sh6b45a8p9kancjp9jk44ws8ww6x50a0i6zgyyvr7dbvii1a0"))))
5238 (build-system emacs-build-system)
5239 (synopsis "Enter definition of constants into an Emacs buffer")
5240 (description
5241 "This package provides functions for inserting the definition of natural
5242 constants and units into an Emacs buffer.")
5243 (license license:gpl2+)))
5244
5245 (define-public emacs-tagedit
5246 (package
5247 (name "emacs-tagedit")
5248 (version "1.4.0")
5249 (source
5250 (origin
5251 (method git-fetch)
5252 (uri (git-reference
5253 (url "https://github.com/magnars/tagedit")
5254 (commit version)))
5255 (file-name (git-file-name name version))
5256 (sha256
5257 (base32 "0kq40g46s8kgiafrhdq99h79rz9h5fvgz59k7ralmf86bl4sdmdb"))))
5258 (build-system emacs-build-system)
5259 (propagated-inputs
5260 `(("emacs-s" ,emacs-s)
5261 ("emacs-dash" ,emacs-dash)))
5262 (home-page "https://github.com/magnars/tagedit")
5263 (synopsis "Some paredit-like features for html-mode")
5264 (description
5265 "This package provides a collection of paredit-like functions for editing
5266 in @code{html-mode}.")
5267 (license license:gpl3+)))
5268
5269 (define-public emacs-slime
5270 (package
5271 (name "emacs-slime")
5272 (version "2.25")
5273 (source
5274 (origin
5275 (method git-fetch)
5276 (uri (git-reference
5277 (url "https://github.com/slime/slime")
5278 (commit (string-append "v" version))))
5279 (file-name (git-file-name name version))
5280 (sha256
5281 (base32 "0rz54943cbs9lvpc8hnyw5ka60f3bi8x4xykk8pq0lpmv1zbij1x"))))
5282 (build-system emacs-build-system)
5283 (native-inputs
5284 `(("texinfo" ,texinfo)))
5285 (arguments
5286 `(#:include '("\\.el$" "\\.lisp$" "\\.asd$" "contrib")
5287 #:exclude '("^slime-tests.el" "^contrib/test/"
5288 "^contrib/Makefile$" "^contrib/README.md$")
5289 #:phases
5290 (modify-phases %standard-phases
5291 (add-after 'unpack 'make-git-checkout-writable
5292 (lambda _
5293 (for-each make-file-writable (find-files "."))
5294 #t))
5295 (add-before 'install 'configure
5296 (lambda* _
5297 (emacs-substitute-variables "slime.el"
5298 ("inferior-lisp-program" "sbcl"))
5299 #t))
5300 (add-before 'install 'install-doc
5301 (lambda* (#:key outputs #:allow-other-keys)
5302 (let* ((out (assoc-ref outputs "out"))
5303 (info-dir (string-append out "/share/info"))
5304 (doc-dir (string-append out "/share/doc/"
5305 ,name "-" ,version))
5306 (doc-files '("doc/slime-refcard.pdf"
5307 "README.md" "NEWS" "PROBLEMS"
5308 "CONTRIBUTING.md")))
5309 (with-directory-excursion "doc"
5310 (substitute* "Makefile"
5311 (("infodir=/usr/local/info")
5312 (string-append "infodir=" info-dir)))
5313 (invoke "make" "html/index.html")
5314 (invoke "make" "slime.info")
5315 (install-file "slime.info" info-dir)
5316 (copy-recursively "html" (string-append doc-dir "/html")))
5317 (for-each (lambda (f)
5318 (install-file f doc-dir)
5319 (delete-file f))
5320 doc-files)
5321 (delete-file-recursively "doc")
5322 #t))))))
5323 (home-page "https://github.com/slime/slime")
5324 (synopsis "Superior Lisp Interaction Mode for Emacs")
5325 (description
5326 "SLIME extends Emacs with support for interactive programming in
5327 Common Lisp. The features are centered around @command{slime-mode},
5328 an Emacs minor mode that complements the standard @command{lisp-mode}.
5329 While lisp-mode supports editing Lisp source files, @command{slime-mode}
5330 adds support for interacting with a running Common Lisp process
5331 for compilation, debugging, documentation lookup, and so on.")
5332 (license (list license:gpl2+ license:public-domain))))
5333
5334 (define-public emacs-popup
5335 (package
5336 (name "emacs-popup")
5337 (version "0.5.8")
5338 (source
5339 (origin
5340 (method git-fetch)
5341 (uri (git-reference
5342 (url "https://github.com/auto-complete/popup-el")
5343 (commit (string-append "v" version))))
5344 (file-name (git-file-name name version))
5345 (sha256
5346 (base32 "0qrsz4z9q2bfq9xv4n94mvyslm232v2ql9r1fjycx7rnmpqggiwl"))))
5347 (build-system emacs-build-system)
5348 (home-page "https://github.com/auto-complete/popup-el")
5349 (synopsis "Visual Popup User Interface for Emacs")
5350 (description
5351 "Popup.el is a visual popup user interface library for Emacs.
5352 This provides a basic API and common UI widgets such as popup tooltips
5353 and popup menus.")
5354 (license license:gpl3+)))
5355
5356 (define-public emacs-python-environment
5357 (package
5358 (name "emacs-python-environment")
5359 (version "0.0.2")
5360 (source
5361 (origin
5362 (method git-fetch)
5363 (uri (git-reference
5364 (url "https://github.com/tkf/emacs-python-environment/")
5365 (commit version)))
5366 (file-name (git-file-name name version))
5367 (sha256
5368 (base32 "0q6bib9nr6xiq6npzbngyfcjk87yyvwzq1zirr3z1h5wadm34lsk"))))
5369 (build-system emacs-build-system)
5370 (propagated-inputs
5371 `(("emacs-deferred" ,emacs-deferred)))
5372 (home-page "https://github.com/tkf/emacs-python-environment")
5373 (synopsis "Provides a @code{virtualenv} API in Emacs Lisp")
5374 (description
5375 "This package permits automated installation of tools written in Python.")
5376 (license license:gpl3+)))
5377
5378 (define-public emacs-jedi
5379 (package
5380 (name "emacs-jedi")
5381 (version "0.2.8")
5382 (source (origin
5383 (method git-fetch)
5384 (uri (git-reference
5385 (url "https://github.com/tkf/emacs-jedi/")
5386 (commit (string-append "v" version))))
5387 (file-name (git-file-name name version))
5388 (sha256
5389 (base32
5390 "1bckxppfzd5gwn0aw4h86igb7igal9axqncq7j8zmflg7zppncf1"))))
5391 (build-system emacs-build-system)
5392 (native-inputs
5393 `(("emacs-mocker" ,emacs-mocker)))
5394 (propagated-inputs
5395 `(("emacs-auto-complete" ,emacs-auto-complete)
5396 ("emacs-python-environment" ,emacs-python-environment)
5397 ("emacs-epc" ,emacs-epc)))
5398 (home-page "https://github.com/tkf/emacs-jedi")
5399 (synopsis "Provides Python completion in Emacs")
5400 (description
5401 "This package provides completion in Python buffers and also helps find
5402 the locations of docstrings, arguments, and functions.")
5403 (license license:gpl3+)))
5404
5405 (define-public emacs-company-jedi
5406 (package
5407 (name "emacs-company-jedi")
5408 (version "0.04")
5409 (source (origin
5410 (method git-fetch)
5411 (uri (git-reference
5412 (url "https://github.com/syohex/emacs-company-jedi")
5413 (commit version)))
5414 (file-name (git-file-name name version))
5415 (sha256
5416 (base32
5417 "1ihqapp4dv92794rsgyq0rmhwika60cmradqd4bn9b72ss6plxs1"))))
5418 (build-system emacs-build-system)
5419 (propagated-inputs
5420 `(("emacs-jedi" ,emacs-jedi)
5421 ("emacs-company" ,emacs-company)))
5422 (home-page "https://github.com/syohex/emacs-company-jedi")
5423 (synopsis "Provides Python completion in @code{company-mode}")
5424 (description
5425 "This package provides a Company backend for Python.")
5426 (license license:gpl3+)))
5427
5428 (define-public emacs-puppet-mode
5429 (let ((commit "b3ed5057166a4f49dfa9be638523a348b55a2fd2")
5430 (revision "1"))
5431 (package
5432 (name "emacs-puppet-mode")
5433 ;; The last release, 0.3 was several years ago, and there have been many
5434 ;; commits since
5435 (version (git-version "0.3" revision commit))
5436 (source
5437 (origin
5438 (method url-fetch)
5439 (uri (string-append
5440 "https://raw.githubusercontent.com/voxpupuli/puppet-mode/"
5441 commit "/puppet-mode.el"))
5442 (sha256
5443 (base32
5444 "1indycxawsl0p2aqqg754f6735q3cmah9vd886rpn0ncc3ipi1xm"))))
5445 (build-system emacs-build-system)
5446 (home-page "https://github.com/voxpupuli/puppet-mode")
5447 (synopsis "Emacs major mode for the Puppet configuration language")
5448 (description
5449 "This package provides support for the Puppet configuration language,
5450 including syntax highlighting, indentation of expressions and statements,
5451 linting of manifests and integration with Puppet Debugger.")
5452 ;; Also incorporates work covered by the Apache License, Version 2.0
5453 (license license:gpl3+))))
5454
5455 (define-public emacs-god-mode
5456 (package
5457 (name "emacs-god-mode")
5458 (version "2.17.0")
5459 (source
5460 (origin
5461 (method git-fetch)
5462 (uri (git-reference
5463 (url "https://github.com/chrisdone/god-mode")
5464 (commit version)))
5465 (file-name (git-file-name name version))
5466 (sha256
5467 (base32
5468 "1d2nrj35fzhnycchi0b7m5mbk5fyq7bgpbkkvc5xzqafclrsnapi"))))
5469 (build-system emacs-build-system)
5470 (home-page "https://github.com/chrisdone/god-mode")
5471 (synopsis "Minor mode for entering commands without modifier keys")
5472 (description
5473 "This package provides a global minor mode for entering Emacs commands
5474 without modifier keys. It's similar to Vim's separation of commands and
5475 insertion mode. When enabled all keys are implicitly prefixed with
5476 @samp{C-} (among other helpful shortcuts).")
5477 (license license:gpl3+)))
5478
5479 (define-public emacs-jinja2-mode
5480 (package
5481 (name "emacs-jinja2-mode")
5482 (version "0.2")
5483 (source
5484 (origin
5485 (method git-fetch)
5486 (uri (git-reference
5487 (url "https://github.com/paradoxxxzero/jinja2-mode")
5488 (commit (string-append "v" version))))
5489 (file-name (git-file-name name version))
5490 (sha256
5491 (base32 "0l26wcy496k6xk7q5sf905xir0p73ziy6c44is77854lv3y0z381"))))
5492 (build-system emacs-build-system)
5493 (home-page "https://github.com/paradoxxxzero/jinja2-mode")
5494 (synopsis "Major mode for jinja2")
5495 (description
5496 "Emacs major mode for jinja2 with: syntax highlighting,
5497 sgml/html integration, and indentation (working with sgml).")
5498 (license license:gpl3+)))
5499
5500 (define-public emacs-company-cabal
5501 ;; The latest version is 0.3.0, but no release has been provided after 0.2.1.
5502 (let ((commit "62112a7259e24bd6c08885629a185afe512b7d3d")
5503 (revision "1"))
5504 (package
5505 (name "emacs-company-cabal")
5506 (version (git-version "0.3.0" revision commit))
5507 (source (origin
5508 (method git-fetch)
5509 (uri (git-reference
5510 (url "https://github.com/iquiw/company-cabal/")
5511 (commit commit)))
5512 (file-name (git-file-name name version))
5513 (sha256
5514 (base32
5515 "1gf45xwjzdm8i4q6c6khk4dbg1mmp2r0awz2sjr4dcr2dbd1n7mg"))))
5516 (build-system emacs-build-system)
5517 (propagated-inputs
5518 `(("emacs-company" ,emacs-company)))
5519 (arguments
5520 `(#:include (cons "^tools\\/" %default-include)))
5521 (home-page "https://github.com/iquiw/company-cabal/")
5522 (synopsis "Company completion for Haskell Cabal files")
5523 (description
5524 "This package allows for completion of field names, section names,
5525 field values, and more within @code{haskell-cabal-mode}.")
5526 (license license:gpl3+))))
5527
5528 (define-public emacs-rfcview
5529 (package
5530 (name "emacs-rfcview")
5531 (version "0.13")
5532 (home-page "http://www.loveshack.ukfsn.org/emacs")
5533 (source (origin
5534 (method url-fetch)
5535 (uri "http://www.loveshack.ukfsn.org/emacs/rfcview.el")
5536 (sha256
5537 (base32
5538 "0ympj5rxig383zl2jf0pzdsa80nnq0dpvjiriq0ivfi98fj7kxbz"))))
5539 (build-system emacs-build-system)
5540 (synopsis "Prettify Request for Comments (RFC) documents")
5541 (description "The Internet Engineering Task Force (IETF) and the Internet
5542 Society (ISOC) publish various Internet-related protocols and specifications
5543 as \"Request for Comments\" (RFC) documents and Internet Standard (STD)
5544 documents. RFCs and STDs are published in a simple text form. This package
5545 provides an Emacs major mode, rfcview-mode, which makes it more pleasant to
5546 read these documents in Emacs. It prettifies the text and adds
5547 hyperlinks/menus for easier navigation. It also provides functions for
5548 browsing the index of RFC documents and fetching them from remote servers or
5549 local directories.")
5550 (license license:gpl3+)))
5551
5552 (define-public emacs-ffap-rfc-space
5553 (package
5554 (name "emacs-ffap-rfc-space")
5555 (version "12")
5556 (home-page "https://user42.tuxfamily.org/ffap-rfc-space/index.html")
5557 (source (origin
5558 (method url-fetch)
5559 (uri "http://download.tuxfamily.org/user42/ffap-rfc-space.el")
5560 (sha256
5561 (base32
5562 "1iv61dv57a73mdps7rn6zmgz7nqh14v0ninidyrasy45b1nv6gck"))))
5563 (build-system emacs-build-system)
5564 (synopsis "Make ffap recognize an RFC with a space before its number")
5565 (description "The Internet Engineering Task Force (IETF) and the
5566 Internet Society (ISOC) publish various Internet-related protocols and
5567 specifications as \"Request for Comments\" (RFC) documents. The
5568 built-in Emacs module \"ffap\" (Find File at Point) has the ability to
5569 recognize names at point which look like \"RFC1234\" and \"RFC-1234\"
5570 and load the appropriate RFC from a remote server. However, it fails
5571 to recognize a name like \"RFC 1234\". This package enhances ffap so
5572 that it correctly finds RFCs even when a space appears before the
5573 number.")
5574 (license license:gpl3+)))
5575
5576 (define-public emacs-feature-mode
5577 (let ((version "20190801")
5578 (revision "1")
5579 (commit "11ae1671629bfedaa553c7b819676d64eb320992"))
5580 (package
5581 (name "emacs-feature-mode")
5582 (version (git-version version revision commit))
5583 (source (origin
5584 (method git-fetch)
5585 (uri (git-reference
5586 (url "https://github.com/michaelklishin/cucumber.el")
5587 (commit commit)))
5588 (file-name (git-file-name name version))
5589 (sha256
5590 (base32
5591 "0yd4gkxz9xcbgibfgr8apsid3f83nmg5jgqk5nql0linj5gymc28"))))
5592 (build-system emacs-build-system)
5593 (arguments
5594 `(#:include (cons* "^features\\/" "snippets\\/" "^support\\/"
5595 %default-include)))
5596 (home-page "https://github.com/michaelklishin/cucumber.el/")
5597 (synopsis "Emacs mode for editing Gherkin plain text user stories")
5598 (description "Major mode for editing Gherkin (popularized by the
5599 Cucumber tool) user stories. Also known by the name @code{cucumber.el}.")
5600 (license license:gpl2+))))
5601
5602 (define-public emacs-org-bullets
5603 (package
5604 (name "emacs-org-bullets")
5605 (version "0.2.4")
5606 (source
5607 (origin
5608 (method git-fetch)
5609 (uri (git-reference
5610 (url "https://github.com/sabof/org-bullets")
5611 (commit version)))
5612 (file-name (git-file-name name version))
5613 (sha256
5614 (base32 "10nr4sjffnqbllv6gmak6pviyynrb7pi5nvrq331h5alm3xcpq0w"))))
5615 (build-system emacs-build-system)
5616 (home-page "https://github.com/sabof/org-bullets")
5617 (synopsis "Show bullets in org-mode as UTF-8 characters")
5618 (description
5619 "This package provides an Emacs minor mode causing bullets in
5620 @code{org-mode} to be rendered as UTF-8 characters.")
5621 (license license:gpl3+)))
5622
5623 (define-public emacs-org-drill
5624 (package
5625 (name "emacs-org-drill")
5626 (version "2.7.0")
5627 (source
5628 (origin
5629 (method git-fetch)
5630 (uri (git-reference
5631 (url "https://gitlab.com/phillord/org-drill")
5632 (commit version)))
5633 (file-name (git-file-name name version))
5634 (sha256
5635 (base32 "13y302lyscdqrba1sfx60yf5ji2xi7fbsvjsjbw7hiz63kg6rccy"))))
5636 (build-system emacs-build-system)
5637 (propagated-inputs
5638 `(("emacs-org" ,emacs-org)
5639 ("emacs-persist" ,emacs-persist)))
5640 (home-page "https://gitlab.com/phillord/org-drill")
5641 (synopsis "Flash card memorization system using Org mode")
5642 (description
5643 "This package uses spaced repetition algorithms to conduct interactive
5644 drill sessions to aid in memorization. In these sessions you are shown flash
5645 cards created in Org mode.")
5646 (license license:gpl3+)))
5647
5648 (define-public emacs-org-superstar
5649 (package
5650 (name "emacs-org-superstar")
5651 (version "1.2.1")
5652 (source
5653 (origin
5654 (method git-fetch)
5655 (uri (git-reference
5656 (url "https://github.com/integral-dw/org-superstar-mode")
5657 (commit (string-append "v" version))))
5658 (file-name (git-file-name name version))
5659 (sha256
5660 (base32 "14w06v76xi4f6hpq6xzicrjjv0b802g5zc9as4mpimfy5gx2xpm0"))))
5661 (build-system emacs-build-system)
5662 (propagated-inputs
5663 `(("emacs-org" ,emacs-org)))
5664 (home-page "https://github.com/integral-dw/org-superstar-mode")
5665 (synopsis "Prettify headings and plain lists in Org mode")
5666 (description "This package prettifies headings and plain lists in
5667 Org mode. It is a direct descendant of @code{org-bullets}, with most
5668 of the code base completely rewritten.
5669
5670 Currently, this package prettifies Org heading lines by:
5671 @itemize
5672 @item replacing trailing bullets by UTF-8 bullets,
5673 @item hiding leading stars, customizing their look or removing them from vision,
5674 @item applying a custom face to the header bullet,
5675 @item applying a custom face to the leading bullets,
5676 @item using double-bullets for inline tasks,
5677 @item (optional) using special bullets for TODO keywords.
5678 @end itemize
5679
5680 It also prettifies Org plain list bullets by:
5681 @itemize
5682 @item replacing each bullet type (*, + and -) with UTF-8 bullets,
5683 @item applying a custom face to item bullets.
5684 @end itemize
5685
5686 Features degrade gracefully when viewed from terminal.")
5687 (license license:gpl3+)))
5688
5689 (define-public emacs-org-pomodoro
5690 ;; Last release version was from 2016.
5691 (let ((commit "aa07c11318f91219336197e62c47bc7a3d090479")
5692 (revision "1"))
5693 (package
5694 (name "emacs-org-pomodoro")
5695 (version (git-version "2.1.0" revision commit))
5696 (source
5697 (origin
5698 (method git-fetch)
5699 (uri (git-reference
5700 (url "https://github.com/marcinkoziej/org-pomodoro")
5701 (commit commit)))
5702 (file-name (git-file-name name version))
5703 (sha256
5704 (base32 "0nbprh2nhnmb7ngp9ndr6zr37ashcsvpi5slv7a37x1dl7j6w1k4"))))
5705 (build-system emacs-build-system)
5706 (propagated-inputs
5707 `(("emacs-alert" ,emacs-alert)))
5708 (arguments
5709 `(#:include (cons "^resources\\/" %default-include)
5710 #:tests? #t
5711 #:test-command '("emacs" "--batch"
5712 "-l" "org-pomodoro-tests.el"
5713 "-f" "ert-run-tests-batch-and-exit")
5714 #:phases
5715 (modify-phases %standard-phases
5716 (add-before 'check 'make-tests-writable
5717 (lambda _
5718 (make-file-writable "org-pomodoro-tests.el")
5719 #t))
5720 (add-before 'check 'add-require
5721 (lambda _
5722 (emacs-batch-edit-file "org-pomodoro-tests.el"
5723 `(progn (progn (goto-char (point-min))
5724 (re-search-forward
5725 "ert-deftest")
5726 (beginning-of-line)
5727 (forward-line -1)
5728 (insert "(require 'org-pomodoro)"))
5729 (basic-save-buffer)))
5730 #t)))))
5731 (home-page "https://github.com/marcinkoziej/org-pomodoro")
5732 (synopsis "Pomodoro technique for org-mode")
5733 (description "@code{emacs-org-pomodoro} adds very basic support for
5734 Pomodoro technique in Emacs org-mode.
5735
5736 Run @code{M-x org-pomodoro} for the task at point or select one of the
5737 last tasks that you clocked time for. Each clocked-in pomodoro starts
5738 a timer of 25 minutes and after each pomodoro a break timer of 5
5739 minutes is started automatically. Every 4 breaks a long break is
5740 started with 20 minutes. All values are customizable.")
5741 (license license:gpl3+))))
5742
5743 (define-public emacs-org-sidebar
5744 (package
5745 (name "emacs-org-sidebar")
5746 (version "0.2")
5747 (source
5748 (origin
5749 (method git-fetch)
5750 (uri (git-reference
5751 (url "https://github.com/alphapapa/org-sidebar")
5752 (commit version)))
5753 (file-name (git-file-name name version))
5754 (sha256
5755 (base32 "106h06vjfbqfj761vbxwymd6612ds8c6fk053yzgbrqzm3hn2c03"))))
5756 (build-system emacs-build-system)
5757 (propagated-inputs
5758 `(("emacs-dash" ,emacs-dash)
5759 ("emacs-org-super-agenda" ,emacs-org-super-agenda)
5760 ("emacs-org" ,emacs-org)
5761 ("emacs-org-ql" ,emacs-org-ql)
5762 ("emacs-s" ,emacs-s)))
5763 (home-page "https://github.com/alphapapa/org-sidebar")
5764 (synopsis "Helpful sidebar for Org buffers")
5765 (description "This package provides a sidebar for Org buffers. At the
5766 top is a chronological list of scheduled and deadlined tasks in the current
5767 buffer (similar to the Org agenda ,but without all its features), and below
5768 that is a list of all other non-done to-do items. If the buffer is narrowed,
5769 the sidebar only shows items in the narrowed portion; this allows seeing an
5770 overview of tasks in a subtree.")
5771 (license license:gpl3+)))
5772
5773 (define-public emacs-org-trello
5774 (package
5775 (name "emacs-org-trello")
5776 (version "0.8.1")
5777 (source
5778 (origin
5779 (method git-fetch)
5780 (uri (git-reference
5781 (url "https://github.com/org-trello/org-trello")
5782 (commit version)))
5783 (file-name (git-file-name name version))
5784 (sha256
5785 (base32
5786 "02gx3kv4mkij69ln8x8wf9n28x17pbb4kv85v78d3lxph7ykqimc"))))
5787 (build-system emacs-build-system)
5788 (propagated-inputs
5789 `(("emacs-dash" ,emacs-dash)
5790 ("emacs-deferred" ,emacs-deferred)
5791 ("emacs-f" ,emacs-f)
5792 ("emacs-helm" ,emacs-helm)
5793 ("emacs-request" ,emacs-request)
5794 ("emacs-s" ,emacs-s)))
5795 (home-page "https://org-trello.github.io")
5796 (synopsis "Emacs minor mode for interacting with Trello")
5797 (description "This package provides an Emacs minor mode to extend
5798 @code{org-mode} with Trello abilities. Trello is an online project
5799 organizer.")
5800 (license license:gpl3+)))
5801
5802 (define-public emacs-org-tanglesync
5803 (let ((commit "d99181f173b4e55b4e835d99fcd415e62beb047f")
5804 (revision "2"))
5805 (package
5806 (name "emacs-org-tanglesync")
5807 (version (git-version "0.6" revision commit))
5808 (source
5809 (origin
5810 (method git-fetch)
5811 (uri (git-reference
5812 (url "https://github.com/mtekman/org-tanglesync.el")
5813 (commit commit)))
5814 (file-name (git-file-name name version))
5815 (sha256
5816 (base32 "0x94gy1bgfd1f3p9w2bfrqj11bwy9ql0cpi1gw6srpj7kykx0lml"))))
5817 (build-system emacs-build-system)
5818 (propagated-inputs
5819 `(("emacs-org" ,emacs-org)))
5820 (home-page "https://github.com/mtekman/org-tanglesync.el")
5821 (synopsis "Sync Org source blocks with tangled external files")
5822 (description "This package automatically pulls changes from source code
5823 to their corresponding tangled blocks.")
5824 (license license:gpl3+))))
5825
5826 (define-public emacs-company-flow
5827 (let ((commit "76ef585c70d2a3206c2eadf24ba61e59124c3a16")
5828 (revision "1"))
5829 (package
5830 (name "emacs-company-flow")
5831 (version (git-version "0.1.0" revision commit))
5832 (source (origin
5833 (method git-fetch)
5834 (uri (git-reference
5835 (url "https://github.com/aaronjensen/company-flow/")
5836 (commit commit)))
5837 (file-name (git-file-name name version))
5838 (sha256
5839 (base32
5840 "0zs9cblnbkxa0dxw4lyllmybqizxcdx96gv8jlhx20nrjpi78piw"))))
5841 (build-system emacs-build-system)
5842 (propagated-inputs
5843 `(("emacs-company" ,emacs-company)
5844 ("emacs-dash" ,emacs-dash)))
5845 (home-page "https://github.com/aaronjensen/company-flow/")
5846 (synopsis "Flow backend for @code{company-mode}")
5847 (description
5848 "This package provides completion for JavaScript files utilizing Flow.")
5849 (license license:gpl3+))))
5850
5851 (define-public emacs-habitica
5852 (let ((commit "c45c602ddf9d6cbb0e3baf5cb3e1b7ef90f2759d")
5853 (revision "1"))
5854 (package
5855 (name "emacs-habitica")
5856 (version (git-version "1.0" revision commit))
5857 (source
5858 (origin
5859 (method git-fetch)
5860 (uri (git-reference
5861 (url "https://github.com/abrochard/emacs-habitica")
5862 (commit commit)))
5863 (file-name (git-file-name name version))
5864 (sha256
5865 (base32
5866 "0wgnzn3z98bl28jgqi7xklw9fwx2wwgihj3mq0jb8ah4vn70d0j3"))))
5867 (build-system emacs-build-system)
5868 (home-page "https://github.com/abrochard/emacs-habitica")
5869 (synopsis "Emacs interface for Habitica")
5870 (description "Emacs extension for @uref{https://habitica.com/, Habitica},
5871 a RPG style habit tracker and todo list.")
5872 (license license:gpl3+))))
5873
5874 (define-public emacs-atom-one-dark-theme
5875 (let ((commit "1f1185bf667a38d3d0d180ce85fd4c131818aae2")
5876 (revision "0"))
5877 (package
5878 (name "emacs-atom-one-dark-theme")
5879 (version (git-version "0.4.0" revision commit))
5880 (source (origin
5881 (method git-fetch)
5882 (uri (git-reference
5883 (url "https://github.com/jonathanchu/atom-one-dark-theme")
5884 (commit commit)))
5885 (sha256
5886 (base32
5887 "1alma16hg3mfjly8a9s3mrswkjjx4lrpdnf43869hn2ibkn7zx9z"))
5888 (file-name (git-file-name name version))))
5889 (build-system emacs-build-system)
5890 (home-page "https://github.com/jonathanchu/atom-one-dark-theme")
5891 (synopsis "Atom One Dark color theme for Emacs")
5892 (description "An Emacs port of the Atom One Dark theme from Atom.io.")
5893 (license license:gpl3+))))
5894
5895 (define-public emacs-zenburn-theme
5896 (package
5897 (name "emacs-zenburn-theme")
5898 (version "2.6")
5899 (source
5900 (origin
5901 (method git-fetch)
5902 (uri (git-reference
5903 (url "https://github.com/bbatsov/zenburn-emacs")
5904 (commit (string-append "v" version))))
5905 (file-name (git-file-name name version))
5906 (sha256
5907 (base32 "1n87r5hs7h5r8dgfid66skpzcypl9hssr9m3npp916g6jfsi782f"))))
5908 (build-system emacs-build-system)
5909 (home-page "https://github.com/bbatsov/zenburn-emacs")
5910 (synopsis "Low contrast color theme for Emacs")
5911 (description
5912 "Zenburn theme is a port of the popular Vim Zenburn theme for Emacs.
5913 It is built on top of the custom theme support in Emacs 24 or later.")
5914 (license license:gpl3+)))
5915
5916 (define-public emacs-moe-theme-el
5917 (let ((commit "6e086d855d6bb446bbd1090742815589a81a915f")
5918 (version "1.0")
5919 (revision "1"))
5920 (package
5921 (name "emacs-moe-theme-el")
5922 (version (git-version version revision commit))
5923 (source
5924 (origin
5925 (method git-fetch)
5926 (uri (git-reference
5927 (url "https://github.com/kuanyui/moe-theme.el")
5928 (commit commit)))
5929 (file-name (git-file-name name version))
5930 (sha256
5931 (base32 "0xj4wfd7h4jqnr193pizm9frf6lmwjr0dsdv2l9mqh9k691z1dnc"))))
5932 (build-system emacs-build-system)
5933 (home-page "https://github.com/kuanyui/moe-theme.el")
5934 (synopsis "Anime-inspired color themes")
5935 (description
5936 "This package provides vibrant color schemes with light and dark
5937 variants.")
5938 (license license:gpl3+))))
5939
5940 (define-public emacs-solarized-theme
5941 (package
5942 (name "emacs-solarized-theme")
5943 (version "1.3.1")
5944 (source
5945 (origin
5946 (method git-fetch)
5947 (uri (git-reference
5948 (url "https://github.com/bbatsov/solarized-emacs/")
5949 (commit (string-append "v" version))))
5950 (file-name (git-file-name name version))
5951 (sha256
5952 (base32 "15ql8xcixgm7mbs7rsbybwszanqibq057j5b5ds89a31dw7zxf1g"))))
5953 (build-system emacs-build-system)
5954 (propagated-inputs
5955 `(("emacs-dash" ,emacs-dash)))
5956 (home-page "https://github.com/bbatsov/solarized-emacs")
5957 (synopsis "Port of the Solarized theme for Emacs")
5958 (description
5959 "Solarized for Emacs is a port of the Solarized theme for Vim. This
5960 package provides a light and a dark variant.")
5961 (license license:gpl3+)))
5962
5963 (define-public emacs-poet-theme
5964 (let ((commit "d84f7b259cc9b6ff8d442cf4c38bd6c7065ff8f4")
5965 (revision "0"))
5966 (package
5967 (name "emacs-poet-theme")
5968 (version (git-version "0" revision commit))
5969 (source
5970 (origin
5971 (method git-fetch)
5972 (uri (git-reference
5973 (url "https://github.com/kunalb/poet")
5974 (commit commit)))
5975 (file-name (git-file-name name version))
5976 (sha256
5977 (base32
5978 "0a84jdaj619mb59a46dmkk2sfs42rylqk9ryl1drgs8d3lia79mz"))))
5979 (build-system emacs-build-system)
5980 (home-page "https://github.com/kunalb/poet/")
5981 (synopsis "Emacs theme for prose")
5982 (description
5983 "Emacs has very good support for multiple fonts in a single file. Poet
5984 uses this support to make it much more convenient to write prose within Emacs,
5985 with particular attention paid to @code{org-mode} and @code{markdown-mode}.
5986 Code blocks, tables, etc are formatted in monospace text with the appropriate
5987 backgrounds.")
5988 (license license:expat))))
5989
5990 (define-public emacs-ahungry-theme
5991 (package
5992 (name "emacs-ahungry-theme")
5993 (version "1.10.0")
5994 (source
5995 (origin (method url-fetch)
5996 (uri (string-append "https://elpa.gnu.org/packages/ahungry-theme-"
5997 version ".tar"))
5998 (sha256
5999 (base32
6000 "14q5yw56n82qph09bk7wmj5b1snhh9w0nk5s1l7yn9ldg71xq6pm"))))
6001 (build-system emacs-build-system)
6002 (home-page "https://github.com/ahungry/color-theme-ahungry")
6003 (synopsis "Ahungry color theme for Emacs")
6004 (description "Ahungry theme for Emacs provides bright and bold colors.
6005 If you load it from a terminal, you will be able to make use of the
6006 transparent background. If you load it from a GUI, it will default to a
6007 dark background.")
6008 (license license:gpl3+)))
6009
6010 (define-public emacs-gruvbox-theme
6011 (package
6012 (name "emacs-gruvbox-theme")
6013 (version "1.28.0")
6014 (source (origin
6015 (method git-fetch)
6016 (uri (git-reference
6017 (url "https://github.com/greduan/emacs-theme-gruvbox")
6018 (commit version)))
6019 (file-name (git-file-name name version))
6020 (sha256
6021 (base32
6022 "00qq92gp1g55pzm97rh7k0dgxy44pxziridl8kqm4rbpi31r7k9p"))))
6023 (build-system emacs-build-system)
6024 (propagated-inputs
6025 `(("emacs-autothemer" ,emacs-autothemer)))
6026 (home-page "https://github.com/greduan/emacs-theme-gruvbox")
6027 (synopsis "Gruvbox is a retro groove color scheme ported from Vim")
6028 (description
6029 "Gruvbox is heavily inspired by badwolf, jellybeans and solarized.
6030
6031 Designed as a bright theme with pastel 'retro groove' colors and light/dark
6032 mode switching in the way of solarized. The main focus when developing gruvbox
6033 is to keep colors easily distinguishable, contrast enough and still pleasant
6034 for the eyes.")
6035 (license license:expat))) ; MIT license
6036
6037 (define-public emacs-spacegray-theme
6038 (let ((commit "9826265c2bceb2ebc1c5e16a45021da0253ace97")
6039 (revision "0"))
6040 (package
6041 (name "emacs-spacegray-theme")
6042 (version (git-version "0" revision commit))
6043 (source (origin
6044 (method git-fetch)
6045 (uri (git-reference
6046 (url "https://github.com/bruce/emacs-spacegray-theme")
6047 (commit commit)))
6048 (file-name (git-file-name name version))
6049 (sha256
6050 (base32
6051 "0aplwmm17ypbns5blc4rf5rr6dasj0zp5ibykpfl43fh4bd8z89n"))))
6052 (build-system emacs-build-system)
6053 (home-page "https://github.com/bruce/emacs-spacegray-theme")
6054 (synopsis "Port of Sublime Text's Spacegray theme for Emacs")
6055 (description
6056 "@code{spacegray-theme} is an Emacs port of the Spacegray theme from
6057 Sublime Text. It features a dark blue/gray background and soft blue, green,
6058 orange and red as accent colors.")
6059 (license license:expat)))) ; MIT license
6060
6061 (define-public emacs-2048-game
6062 (package
6063 (name "emacs-2048-game")
6064 (version "20151026.1233")
6065 (source
6066 (origin
6067 (method url-fetch)
6068 (uri (string-append "https://melpa.org/packages/2048-game-"
6069 version ".el"))
6070 (sha256
6071 (base32
6072 "0gy2pvz79whpavp4jmz8h9krzn7brmvv3diixi1d4w51pcdvaldd"))))
6073 (build-system emacs-build-system)
6074 (home-page "https://hg.sr.ht/~zck/game-2048")
6075 (synopsis "Implementation of the game 2048 in Emacs Lisp")
6076 (description
6077 "This program is an implementation of 2048 for Emacs.
6078 The goal of this game is to create a tile with value 2048. The size of the
6079 board and goal value can be customized.")
6080 (license license:gpl3+)))
6081
6082 (define-public emacs-chess
6083 (package
6084 (name "emacs-chess")
6085 (version "2.0.4")
6086 (source
6087 (origin
6088 (method url-fetch)
6089 (uri (string-append "https://elpa.gnu.org/packages/"
6090 "chess-" version ".tar"))
6091 (sha256
6092 (base32 "1sq1bjmp513vldfh7hc2bbfc54665abqiz0kqgqq3gijckaxn5js"))))
6093 (build-system emacs-build-system)
6094 (arguments
6095 `(#:phases
6096 (modify-phases %standard-phases
6097 (add-after 'install 'install-pieces
6098 (lambda* (#:key outputs #:allow-other-keys)
6099 (let* ((out (assoc-ref outputs "out"))
6100 (pieces
6101 (string-append out "/share/emacs/site-lisp/pieces")))
6102 (mkdir-p pieces)
6103 (copy-recursively "pieces" pieces)
6104 #t))))))
6105 (home-page "https://elpa.gnu.org/packages/chess.html")
6106 (synopsis "Play chess in GNU Emacs")
6107 (description
6108 "Chess is an Emacs Lisp library and several clients on top of the
6109 underlying library functionality for performing various activities related to
6110 the game of chess.")
6111 (license license:gpl3+)))
6112
6113 (define-public emacs-4clojure
6114 ;; There is no release. Base version is extracted from Version keyword in
6115 ;; the main file.
6116 (let ((commit "4eccf8c7d4341a36c269451838114b27836699f9")
6117 (revision "1"))
6118 (package
6119 (name "emacs-4clojure")
6120 (version (git-version "0.2.1" revision commit))
6121 (source
6122 (origin
6123 (method git-fetch)
6124 (uri (git-reference
6125 (url "https://github.com/emacsorphanage/4clojure")
6126 (commit commit)))
6127 (file-name (git-file-name name version))
6128 (sha256
6129 (base32 "19x653lzc1dxil4ix257hciidbdmbhaxhs6qhlkwi9ygjrlrgvnk"))))
6130 (build-system emacs-build-system)
6131 (propagated-inputs
6132 `(("emacs-request" ,emacs-request)))
6133 (home-page "https://github.com/emacsorphanage/4clojure/")
6134 (synopsis "Open and evaluate 4clojure questions in Emacs")
6135 (description "Emacs 4clojure interacts with
6136 @url{http://www.4clojure.com, 4clojure} problems. You can open a specific
6137 question and move to the next or previous one. You can also verify your
6138 answers.")
6139 (license license:gpl3+))))
6140
6141 (define-public emacs-base16-theme
6142 (package
6143 (name "emacs-base16-theme")
6144 (version "2.2")
6145 (source
6146 (origin
6147 (method git-fetch)
6148 (uri (git-reference
6149 (url "https://github.com/belak/base16-emacs")
6150 (commit version)))
6151 (file-name (git-file-name name version))
6152 (sha256
6153 (base32 "01w89g413s1da6rf94y1xnhw79cjy2bqb01yfjs58cy492cm0vr6"))))
6154 (build-system emacs-build-system)
6155 (home-page "https://github.com/belak/base16-emacs")
6156 (synopsis "Base16 color themes for Emacs")
6157 (description
6158 "Base16 provides carefully chosen syntax highlighting and a default set
6159 of sixteen colors suitable for a wide range of applications. Base16 is not a
6160 single theme but a set of guidelines with numerous implementations.")
6161 (license license:expat)))
6162
6163 (define-public emacs-solaire-mode
6164 (package
6165 (name "emacs-solaire-mode")
6166 (version "1.0.9")
6167 (source
6168 (origin
6169 (method git-fetch)
6170 (uri (git-reference
6171 (url "https://github.com/hlissner/emacs-solaire-mode")
6172 (commit (string-append "v" version))))
6173 (file-name (git-file-name name version))
6174 (sha256
6175 (base32 "011m4r7s6i9lgjymh7jgq5jwwrpz4vmpvp3c8d4ix96v5hi04kzg"))))
6176 (build-system emacs-build-system)
6177 (home-page "https://github.com/hlissner/emacs-solaire-mode")
6178 (synopsis "Change background of file-visiting buffers in Emacs")
6179 (description
6180 "@code{solaire-mode} is inspired by editors which visually distinguish
6181 code-editing windows from sidebars, popups, terminals, ecetera. It changes the
6182 background of file-visiting buffers (and certain aspects of the UI) to make
6183 them easier to distinguish from other, less important buffers.")
6184 (license license:expat)))
6185
6186 (define-public emacs-prescient
6187 (package
6188 (name "emacs-prescient")
6189 (version "5.0")
6190 (source
6191 (origin
6192 (method git-fetch)
6193 (uri (git-reference
6194 (url "https://github.com/raxod502/prescient.el")
6195 (commit (string-append "v" version))))
6196 (file-name (git-file-name name version))
6197 (sha256
6198 (base32 "001q4l730bhw4d508jxlpzh1z459qzpg6rbncp12jrfm5yidksix"))))
6199 (build-system emacs-build-system)
6200 (propagated-inputs
6201 `(("emacs-company" ,emacs-company)
6202 ("emacs-ivy" ,emacs-ivy)
6203 ("emacs-selectrum" ,emacs-selectrum)))
6204 (home-page "https://github.com/raxod502/prescient.el/")
6205 (synopsis "Emacs library for sorting and filtering candidates")
6206 (description
6207 "Prescient is a library for sorting and filtering, as well as extensions
6208 for Ivy and Company that make use of the library.")
6209 (license license:expat)))
6210
6211 (define-public emacs-selectrum
6212 (package
6213 (name "emacs-selectrum")
6214 (version "2.0")
6215 (source
6216 (origin
6217 (method git-fetch)
6218 (uri (git-reference
6219 (url "https://github.com/raxod502/selectrum")
6220 (commit (string-append "v" version))))
6221 (file-name (git-file-name name version))
6222 (sha256
6223 (base32 "08wm4ybidn8g7sy5a009lnsm0f1p7a3jfzpzxnzylvnyrmyhi3y4"))))
6224 (build-system emacs-build-system)
6225 (home-page "https://github.com/raxod502/selectrum/")
6226 (synopsis "Incremental narrowing in Emacs")
6227 (description "Selectrum is a solution for incremental narrowing in
6228 Emacs, replacing Helm, Ivy, and IDO. Its design philosophy is based
6229 on choosing the right abstractions and prioritizing consistency and
6230 predictability over special-cased improvements for particular cases.
6231 As such, Selectrum follows existing Emacs conventions where they exist
6232 and are reasonable, and it declines to implement features which have
6233 marginal benefit compared to the additional complexity of a new
6234 interface.")
6235 (license license:expat)))
6236
6237 (define-public emacs-smartparens
6238 (package
6239 (name "emacs-smartparens")
6240 (version "1.11.0")
6241 (source
6242 (origin
6243 (method git-fetch)
6244 (uri (git-reference
6245 (url "https://github.com/Fuco1/smartparens")
6246 (commit version)))
6247 (file-name (git-file-name name version))
6248 (sha256
6249 (base32 "0zij2f2rjjym98w68jkp10n1ckpfprlkk217c3fg16hz5nq4vnm6"))))
6250 (build-system emacs-build-system)
6251 (propagated-inputs
6252 `(("emacs-dash" ,emacs-dash)
6253 ("emacs-markdown-mode" ,emacs-markdown-mode)))
6254 (home-page "https://github.com/Fuco1/smartparens")
6255 (synopsis "Paredit-like insertion, wrapping and navigation with user
6256 defined pairs")
6257 (description
6258 "Smartparens is a minor mode for Emacs that deals with parens pairs
6259 and tries to be smart about it. It started as a unification effort to
6260 combine functionality of several existing packages in a single,
6261 compatible and extensible way to deal with parentheses, delimiters, tags
6262 and the like. Some of these packages include autopair, textmate,
6263 wrap-region, electric-pair-mode, paredit and others. With the basic
6264 features found in other packages it also brings many improvements as
6265 well as completely new features.")
6266 (license license:gpl3+)))
6267
6268 (define-public emacs-highlight-symbol
6269 ;; We prefer a more recent commit that provides an option to squelch
6270 ;; echo-area alerts that can drown out useful information like eldoc
6271 ;; messages.
6272 (let ((commit "7a789c779648c55b16e43278e51be5898c121b3a")
6273 (version "1.3")
6274 (revision "1"))
6275 (package
6276 (name "emacs-highlight-symbol")
6277 (version (git-version version revision commit))
6278 (source
6279 (origin
6280 (method git-fetch)
6281 (uri (git-reference
6282 (url "https://github.com/nschum/highlight-symbol.el")
6283 (commit commit)))
6284 (file-name (git-file-name name version))
6285 (sha256
6286 (base32 "19cgyk0sh8nsmf3jbi92i8qsdx4l4yilfq5jj9zfdbj9p5gvwx96"))))
6287 (build-system emacs-build-system)
6288 (home-page "https://nschum.de/src/emacs/highlight-symbol/")
6289 (synopsis "Automatic and manual symbol highlighting for Emacs")
6290 (description
6291 "Use @code{highlight-symbol} to toggle highlighting of the symbol at
6292 point throughout the current buffer. Use @code{highlight-symbol-mode} to keep
6293 the symbol at point highlighted.
6294
6295 The functions @code{highlight-symbol-next}, @code{highlight-symbol-prev},
6296 @code{highlight-symbol-next-in-defun} and
6297 @code{highlight-symbol-prev-in-defun} allow for cycling through the locations
6298 of any symbol at point. Use @code{highlight-symbol-nav-mode} to enable key
6299 bindings @code{M-p} and @code{M-p} for navigation. When
6300 @code{highlight-symbol-on-navigation-p} is set, highlighting is triggered
6301 regardless of @code{highlight-symbol-idle-delay}.
6302
6303 @code{highlight-symbol-query-replace} can be used to replace the symbol. ")
6304 (license license:gpl2+))))
6305
6306 (define-public emacs-symbol-overlay
6307 (let ((commit "e40a7c407f24158c45eaa5f54ed41f5e416a51dc")
6308 (revision "1"))
6309 (package
6310 (name "emacs-symbol-overlay")
6311 (version (git-version "4.1" revision commit))
6312 (source
6313 (origin
6314 (method git-fetch)
6315 (uri (git-reference
6316 (url "https://github.com/wolray/symbol-overlay")
6317 (commit commit)))
6318 (file-name (git-file-name name version))
6319 (sha256
6320 (base32 "0ibz3392d3jw1l8006h9kf8s7bg6vl7jc92bmqc031a433009ic7"))))
6321 (build-system emacs-build-system)
6322 (home-page "https://github.com/wolray/symbol-overlay")
6323 (synopsis "Highlight symbols and perform various search operations on them")
6324 (description
6325 "This package provides functions for highlighting and navigating
6326 between symbols.")
6327 (license license:gpl3+))))
6328
6329 (define-public emacs-hl-todo
6330 (package
6331 (name "emacs-hl-todo")
6332 (version "3.1.2")
6333 (source (origin
6334 (method git-fetch)
6335 (uri (git-reference
6336 (url "https://github.com/tarsius/hl-todo")
6337 (commit (string-append "v" version))))
6338 (file-name (git-file-name name version))
6339 (sha256
6340 (base32
6341 "1i5mdmkbrxqx75grwl01pywbgl8pasr00mq6fidspp0aligsbg6w"))))
6342 (build-system emacs-build-system)
6343 (home-page "https://github.com/tarsius/hl-todo")
6344 (synopsis "Emacs mode to highlight TODO and similar keywords")
6345 (description
6346 "This package provides an Emacs mode to highlight TODO and similar
6347 keywords in comments and strings. This package also provides commands for
6348 moving to the next or previous keyword and to invoke @code{occur} with a
6349 regexp that matches all known keywords.")
6350 (license license:gpl3+)))
6351
6352 (define-public emacs-perspective
6353 (package
6354 (name "emacs-perspective")
6355 (version "2.9")
6356 (source
6357 (origin
6358 (method git-fetch)
6359 (uri (git-reference
6360 (url "https://github.com/nex3/perspective-el")
6361 (commit version)))
6362 (file-name (git-file-name name version))
6363 (sha256
6364 (base32
6365 "1hmbczw3b7k2xdqcy5p3xnf2781gjw6bqqcwc5r9myg6b8p3pr7m"))))
6366 (build-system emacs-build-system)
6367 (home-page "https://github.com/nex3/perspective-el")
6368 (synopsis "Switch between named \"perspectives\"")
6369 (description
6370 "This package provides tagged workspaces in Emacs, similar to workspaces in
6371 windows managers such as Awesome and XMonad. @code{perspective.el} provides
6372 multiple workspaces (or \"perspectives\") for each Emacs frame. Each
6373 perspective is composed of a window configuration and a set of buffers.
6374 Switching to a perspective activates its window configuration, and when in a
6375 perspective only its buffers are available by default.")
6376 ;; This package is released under the same license as Emacs (GPLv3+) or
6377 ;; the Expat license.
6378 (license license:gpl3+)))
6379
6380 (define-public emacs-persp-mode
6381 (package
6382 (name "emacs-persp-mode")
6383 (version "2.9.8")
6384 (source
6385 (origin
6386 (method git-fetch)
6387 (uri (git-reference
6388 (url "https://github.com/Bad-ptr/persp-mode.el")
6389 (commit (string-append "v" version))))
6390 (file-name (git-file-name name version))
6391 (sha256
6392 (base32
6393 "0b4y7a6j70s9lvr37riyy9k5kh3yvmx0m6nd9c0c8572ji4ij65g"))))
6394 (build-system emacs-build-system)
6395 (home-page "https://github.com/Bad-ptr/persp-mode.el")
6396 (synopsis "Switch between named \"perspectives\" shared among frames")
6397 (description
6398 "This package extends @code{perspective.el} to enable perspectives that
6399 can be saved to and restored from a file.")
6400 (license license:gpl2+)))
6401
6402 (define-public emacs-test-simple
6403 (package
6404 (name "emacs-test-simple")
6405 (version "1.3.0")
6406 (source
6407 (origin
6408 (method url-fetch)
6409 (uri (string-append "https://elpa.gnu.org/packages/test-simple-"
6410 version ".el"))
6411 (sha256
6412 (base32
6413 "1yd61jc9ds95a5n09052kwc5gasy57g4lxr0jsff040brlyi9czz"))))
6414 (build-system emacs-build-system)
6415 (home-page "https://github.com/rocky/emacs-test-simple")
6416 (synopsis "Simple unit test framework for Emacs Lisp")
6417 (description
6418 "Test Simple is a simple unit test framework for Emacs Lisp. It
6419 alleviates the need for context macros, enclosing specifications or required
6420 test tags. It supports both interactive and non-interactive use.")
6421 (license license:gpl3+)))
6422
6423 (define-public emacs-load-relative
6424 (package
6425 (name "emacs-load-relative")
6426 (version "1.3.1")
6427 (source
6428 (origin
6429 (method url-fetch)
6430 (uri (string-append "https://elpa.gnu.org/packages/load-relative-"
6431 version ".el"))
6432 (sha256
6433 (base32 "1m37scr82lqqy954fchjxrmdh4lngrl4d1yzxhp3yfjhsydizhrj"))))
6434 (build-system emacs-build-system)
6435 (home-page "https://github.com/rocky/emacs-load-relative")
6436 (synopsis "Emacs Lisp relative file loading related functions")
6437 (description
6438 "Provides functions which facilitate writing multi-file Emacs packages
6439 and running from the source tree without having to \"install\" code or fiddle
6440 with @{load-path}.
6441
6442 The main function, @code{load-relative}, loads an Emacs Lisp file relative to
6443 another (presumably currently running) Emacs Lisp file.")
6444 (license license:gpl3+)))
6445
6446 (define-public emacs-loc-changes
6447 (package
6448 (name "emacs-loc-changes")
6449 (version "1.2")
6450 (source
6451 (origin
6452 (method url-fetch)
6453 (uri (string-append "https://elpa.gnu.org/packages/loc-changes-"
6454 version ".el"))
6455 (sha256
6456 (base32
6457 "1x8fn8vqasayf1rb8a6nma9n6nbvkx60krmiahyb05vl5rrsw6r3"))))
6458 (build-system emacs-build-system)
6459 (home-page "https://github.com/rocky/emacs-loc-changes")
6460 (synopsis "Keeps track of positions even after buffer changes")
6461 (description
6462 "This Emacs package provides a mean to track important buffer positions
6463 after buffer changes.")
6464 (license license:gpl3+)))
6465
6466 (define-public emacs-realgud
6467 (package
6468 (name "emacs-realgud")
6469 (version "1.5.1")
6470 (source
6471 (origin
6472 (method git-fetch)
6473 (uri (git-reference
6474 (url "https://github.com/realgud/realgud/")
6475 (commit version)))
6476 (sha256
6477 (base32
6478 "1d3s23jk0i34wpyxfajydgyyvsxnpbqrfl0mgydsq7zw2c75ylnq"))
6479 (file-name (git-file-name name version))))
6480 (build-system emacs-build-system)
6481 (arguments
6482 `(#:tests? #t
6483 #:phases
6484 (modify-phases %standard-phases
6485 (add-after 'unpack 'fix-realgud:run-process-void-error
6486 ;; See: https://github.com/realgud/realgud/issues/269.
6487 (lambda _
6488 (substitute* '("realgud/debugger/gdb/gdb.el"
6489 "realgud/debugger/gub/gub.el")
6490 (("^\\(require 'load-relative\\).*" anchor)
6491 (string-append anchor
6492 "(require-relative-list \
6493 '(\"../../common/run\") \"realgud:\")\n")))
6494 #t))
6495 (add-after 'unpack 'fix-autogen-script
6496 (lambda _
6497 (substitute* "autogen.sh"
6498 (("./configure") "sh configure"))
6499 #t))
6500 (add-after 'fix-autogen-script 'autogen
6501 (lambda _
6502 (setenv "CONFIG_SHELL" "sh")
6503 (invoke "sh" "autogen.sh")))
6504 (add-after 'fix-autogen-script 'set-home
6505 (lambda _
6506 (setenv "HOME" (getenv "TMPDIR"))
6507 #t))
6508 (add-before 'patch-el-files 'remove-realgud-pkg.el
6509 (lambda _
6510 ;; FIXME: `patch-el-files' crashes on this file with error:
6511 ;; unable to locate "bashdb".
6512 (delete-file "./test/test-regexp-bashdb.el")
6513 #t)))
6514 #:include (cons* ".*\\.el$" %default-include)))
6515 (native-inputs
6516 `(("autoconf" ,autoconf)
6517 ("automake" ,automake)
6518 ("emacs-test-simple" ,emacs-test-simple)))
6519 (propagated-inputs
6520 `(("emacs-load-relative" ,emacs-load-relative)
6521 ("emacs-loc-changes" ,emacs-loc-changes)))
6522 (home-page "https://github.com/realgud/realgud/")
6523 (synopsis
6524 "Modular front-end for interacting with external debuggers")
6525 (description
6526 "RealGUD is a modular, extensible GNU Emacs front-end for interacting
6527 with external debuggers. It integrates various debuggers such as gdb, pdb,
6528 ipdb, jdb, lldb, bashdb, zshdb, etc. and allows to visually step code in the
6529 sources. Unlike GUD, it also supports running multiple debug sessions in
6530 parallel.")
6531 (license license:gpl3+)))
6532
6533 (define-public emacs-request
6534 (package
6535 (name "emacs-request")
6536 (version "0.3.2")
6537 (source (origin
6538 (method git-fetch)
6539 (uri (git-reference
6540 (url "https://github.com/tkf/emacs-request")
6541 (commit (string-append "v" version))))
6542 (file-name (git-file-name name version))
6543 (sha256
6544 (base32
6545 "1djywhvvb6kwdj0nd3axjvb7k2g06dzkc6hsf29w9rsk96vr8ryl"))))
6546 (build-system emacs-build-system)
6547 (arguments
6548 `(#:tests? #f)) ; requires network access.
6549 (propagated-inputs
6550 `(("emacs-deferred" ,emacs-deferred)))
6551 (home-page "https://github.com/tkf/emacs-request")
6552 (synopsis "Package for speaking HTTP in Emacs Lisp")
6553 (description "This package provides a HTTP request library with multiple
6554 backends. It supports url.el which is shipped with Emacs and the curl command
6555 line program.")
6556 (license license:gpl3+)))
6557
6558 (define-public emacs-rudel
6559 (package
6560 (name "emacs-rudel")
6561 (version "0.3.1")
6562 (source
6563 (origin
6564 (method url-fetch)
6565 (uri (string-append "https://elpa.gnu.org/packages/rudel-"
6566 version ".tar"))
6567 (sha256
6568 (base32
6569 "0glqa68g509p0s2vcc0i8kzlddnc9brd9jqhnm5rzxz4i050cvnz"))))
6570 (build-system emacs-build-system)
6571 (home-page "http://rudel.sourceforge.net/")
6572 (synopsis "Collaborative editing framework")
6573 (description
6574 "Rudel is a collaborative editing environment for GNU Emacs. Its purpose
6575 is to share buffers with other users in order to edit the contents of those
6576 buffers collaboratively. Rudel supports multiple backends to enable
6577 communication with other collaborative editors using different protocols,
6578 though currently Obby (for use with the Gobby editor) is the only
6579 fully-functional one.")
6580 (license license:gpl3+)))
6581
6582 (define-public emacs-hydra
6583 (package
6584 (name "emacs-hydra")
6585 (version "0.15.0")
6586 (source
6587 (origin
6588 (method git-fetch)
6589 (uri (git-reference
6590 (url "https://github.com/abo-abo/hydra")
6591 (commit version)))
6592 (file-name (git-file-name name version))
6593 (sha256
6594 (base32
6595 "0fapvhmhgc9kppf3bvkgry0cd7gyilg7sfvlscfrfjxpx4xvwsfy"))))
6596 (build-system emacs-build-system)
6597 (arguments
6598 `(#:tests? #t
6599 #:test-command '("make" "test")))
6600 (home-page "https://github.com/abo-abo/hydra")
6601 (synopsis "Make Emacs bindings that stick around")
6602 (description
6603 "This package can be used to tie related commands into a family of short
6604 bindings with a common prefix---a Hydra. Once you summon the Hydra (through
6605 the prefixed binding), all the heads can be called in succession with only a
6606 short extension. Any binding that isn't the Hydra's head vanquishes the
6607 Hydra. Note that the final binding, besides vanquishing the Hydra, will still
6608 serve its original purpose, calling the command assigned to it. This makes
6609 the Hydra very seamless; it's like a minor mode that disables itself
6610 automatically.")
6611 (license license:gpl3+)))
6612
6613 (define-public emacs-interleave
6614 (package
6615 (name "emacs-interleave")
6616 (version "1.4.0")
6617 (source
6618 (origin
6619 (method git-fetch)
6620 (uri
6621 (git-reference
6622 (url "https://github.com/rudolfochrist/interleave")
6623 (commit (string-append "interleave-" version))))
6624 (file-name (git-file-name name version))
6625 (sha256
6626 (base32 "0l5b681mrpk12lx5c16m7kc13p29z6zismwg1llsjg7cdmrmsrcb"))))
6627 (build-system emacs-build-system)
6628 (home-page "https://github.com/rudolfochrist/interleave")
6629 (synopsis "Emacs minor mode to interleave notes and text books")
6630 (description
6631 "Interleave is a minor mode that presents a document viewer side
6632 by side to an Org buffer with your notes relevant to the current page.")
6633 (license license:gpl3+)))
6634
6635 (define-public emacs-ivy
6636 (package
6637 (name "emacs-ivy")
6638 (version "0.13.1")
6639 (source
6640 (origin
6641 (method url-fetch)
6642 (uri (string-append "https://elpa.gnu.org/packages/ivy-" version ".tar"))
6643 (sha256
6644 (base32 "0n0ixhdykbdpis4krkqq6zncbby28p34742q96n0l91w0p19slcx"))))
6645 (build-system emacs-build-system)
6646 (propagated-inputs
6647 `(("emacs-hydra" ,emacs-hydra)))
6648 (home-page "https://github.com/abo-abo/swiper")
6649 (synopsis "Incremental vertical completion for Emacs")
6650 (description
6651 "This package provides @code{ivy-read} as an alternative to
6652 @code{completing-read} and similar functions. No attempt is made to determine
6653 the best candidate. Instead, the user can navigate candidates with
6654 @code{ivy-next-line} and @code{ivy-previous-line}. The matching is done by
6655 splitting the input text by spaces and re-building it into a regular
6656 expression.")
6657 (license license:gpl3+)))
6658
6659 (define-public emacs-counsel
6660 (package
6661 (name "emacs-counsel")
6662 (version "0.13.1")
6663 (source
6664 (origin
6665 (method url-fetch)
6666 (uri (string-append "https://elpa.gnu.org/packages/"
6667 "counsel-" version ".el"))
6668 (sha256
6669 (base32 "1y3hr3j5bh5mbyh1cqzxx04181qpvj4xyv1gym2gxcjd30nfllli"))))
6670 (build-system emacs-build-system)
6671 (propagated-inputs
6672 `(("emacs-swiper" ,emacs-swiper)))
6673 (home-page "https://github.com/abo-abo/swiper")
6674 (synopsis "Various completion functions using Ivy")
6675 (description
6676 "Just call one of the interactive functions in a file to complete the
6677 corresponding thing using Ivy.
6678
6679 The following completions are currently available:
6680 @itemize
6681 @item Symbol completion for Elisp, Common Lisp, Python, Clojure, C, C++.
6682 @item Describe functions for Elisp: function, variable, library, command,
6683 @item bindings, theme.
6684 @item Navigation functions: imenu, ace-line, semantic, outline.
6685 @item Git utilities: git-files, git-grep, git-log, git-stash, git-checkout.
6686 @item Grep utilities: grep, ag, pt, recoll, ack, rg.
6687 @item System utilities: process list, rhythmbox, linux-app.
6688 @item Many more.
6689 @end itemize")
6690 (license license:gpl3+)))
6691
6692 (define-public emacs-swiper
6693 (package
6694 (name "emacs-swiper")
6695 (version "0.13.1")
6696 (source
6697 (origin
6698 (method url-fetch)
6699 (uri (string-append "https://elpa.gnu.org/packages/"
6700 "swiper-" version ".el"))
6701 (sha256
6702 (base32 "06ild7kck0x5ry8bf0al24nh04q01q3jhj6jjl4xz8n2s6jnn70y"))))
6703 (build-system emacs-build-system)
6704 (propagated-inputs
6705 `(("emacs-ivy" ,emacs-ivy)))
6706 (home-page "https://github.com/abo-abo/swiper")
6707 (synopsis "Isearch with an overview")
6708 (description
6709 "This package gives an overview of the current regex search candidates.
6710 The search regex can be split into groups with a space. Each group is
6711 highlighted with a different face.
6712
6713 It can double as a quick `regex-builder', although only single lines will be
6714 matched.")
6715 (license license:gpl3+)))
6716
6717 (define-public emacs-ivy-xref
6718 (let ((commit "1a35fc0f070388701b05b0a455cbe262e924d547")
6719 (revision "1"))
6720 (package
6721 (name "emacs-ivy-xref")
6722 (version (git-version "0.1" revision commit))
6723 (source
6724 (origin
6725 (method git-fetch)
6726 (uri (git-reference
6727 (url "https://github.com/alexmurray/ivy-xref")
6728 (commit commit)))
6729 (file-name (git-file-name name version))
6730 (sha256
6731 (base32
6732 "0d71nm9d9ajp5i6dnl8h1hw9jqp8gd1ajgninb1h13i80rplzl9k"))))
6733 (build-system emacs-build-system)
6734 (propagated-inputs
6735 `(("emacs-ivy" ,emacs-ivy)))
6736 (home-page "https://github.com/alexmurray/ivy-xref")
6737 (synopsis "Ivy interface for @code{xref}")
6738 (description "This package provides an Ivy interface for selecting from
6739 @code{xref} results.")
6740 (license license:gpl3))))
6741
6742 (define-public emacs-ivy-pass
6743 (let ((commit "5b523de1151f2109fdd6a8114d0af12eef83d3c5")
6744 (revision "1"))
6745 (package
6746 (name "emacs-ivy-pass")
6747 (version (git-version "0.1" revision commit))
6748 (source
6749 (origin
6750 (method git-fetch)
6751 (uri (git-reference
6752 (url "https://github.com/ecraven/ivy-pass")
6753 (commit commit)))
6754 (file-name (git-file-name name version))
6755 (sha256
6756 (base32
6757 "18crb4zh2pjf0cmv3b913m9vfng27girjwfqc3mk7vqd1r5a49yk"))))
6758 (build-system emacs-build-system)
6759 (propagated-inputs
6760 `(("emacs-ivy" ,emacs-ivy)
6761 ("emacs-password-store" ,emacs-password-store)
6762 ("password-store" ,password-store)))
6763 (home-page "https://github.com/ecraven/ivy-pass")
6764 (synopsis "Ivy interface for password store (pass)")
6765 (description "This package provides an Ivy interface for working with
6766 the password store @code{pass}.")
6767 (license license:gpl3))))
6768
6769 (define-public emacs-ivy-yasnippet
6770 (let ((commit "32580b4fd23ebf9ca7dde96704f7d53df6e253cd")
6771 (revision "2"))
6772 (package
6773 (name "emacs-ivy-yasnippet")
6774 (version (git-version "0.1" revision commit))
6775 (source
6776 (origin
6777 (method git-fetch)
6778 (uri (git-reference
6779 (url "https://github.com/mkcms/ivy-yasnippet")
6780 (commit commit)))
6781 (file-name (git-file-name name version))
6782 (sha256
6783 (base32
6784 "1wfg6mmd5gl1qgvayyzpxlkh9s7jgn20y8l1vh1zbj1czvv51xp8"))))
6785 (build-system emacs-build-system)
6786 (propagated-inputs
6787 `(("emacs-ivy" ,emacs-ivy)
6788 ("emacs-yasnippet" ,emacs-yasnippet)
6789 ("emacs-dash" ,emacs-dash)))
6790 (home-page "https://github.com/mkcms/ivy-yasnippet")
6791 (synopsis "Preview @code{yasnippets} with @code{ivy}")
6792 (description "This package allows you to select @code{yasnippet}
6793 snippets using @code{ivy} completion. When current selection changes in the
6794 minibuffer, the snippet contents are temporarily expanded in the buffer. To
6795 use it, call @code{M-x ivy-yasnippet} (but make sure you have enabled
6796 @code{yas-minor-mode} first).")
6797 (license license:gpl3+))))
6798
6799 (define-public emacs-ivy-rich
6800 ;; The latest release version has a small mistake that has since been fixed,
6801 ;; so we use a more recent commit.
6802 (let ((commit "7a667b135983a1f3ad33d6db8514638e2a3bdfb3")
6803 (revision "2"))
6804 (package
6805 (name "emacs-ivy-rich")
6806 (version (git-version "0.1.4" revision commit))
6807 (source
6808 (origin
6809 (method git-fetch)
6810 (uri (git-reference
6811 (url "https://github.com/Yevgnen/ivy-rich")
6812 (commit commit)))
6813 (file-name (git-file-name name version))
6814 (sha256
6815 (base32 "1v5j6pak2j1wjw19y7rx9rhxif0bj2h47xyl2knfcl6fi4qiqm9y"))))
6816 (build-system emacs-build-system)
6817 (propagated-inputs
6818 `(("emacs-ivy" ,emacs-ivy)))
6819 (home-page "https://github.com/Yevgnen/ivy-rich")
6820 (synopsis "More friendly interface for @code{ivy}")
6821 (description
6822 "This package extends @code{ivy} by showing more information in the
6823 minibuffer for each candidate. It adds columns showing buffer modes, file
6824 sizes, docstrings, etc. If @code{emacs-all-the-icons} is installed, it can
6825 show icons as well.")
6826 (license license:gpl3+))))
6827
6828 (define-public emacs-avy
6829 (package
6830 (name "emacs-avy")
6831 (version "0.5.0")
6832 (source
6833 (origin
6834 (method git-fetch)
6835 (uri (git-reference
6836 (url "https://github.com/abo-abo/avy")
6837 (commit version)))
6838 (file-name (git-file-name name version))
6839 (sha256
6840 (base32 "09qdni1s74i5pv8741szl5g4ynj8fxn0x65qmwa9rmfkbimnc0fs"))))
6841 (build-system emacs-build-system)
6842 (arguments
6843 `(#:tests? #t
6844 #:test-command '("make" "test")))
6845 (home-page "https://github.com/abo-abo/avy")
6846 (synopsis "Tree-based completion for Emacs")
6847 (description
6848 "This package provides a generic completion method based on building a
6849 balanced decision tree with each candidate being a leaf. To traverse the tree
6850 from the root to a desired leaf, typically a sequence of @code{read-key} can
6851 be used.
6852
6853 In order for @code{read-key} to make sense, the tree needs to be visualized
6854 appropriately, with a character at each branch node. So this completion
6855 method works only for things that you can see on your screen, all at once,
6856 such as the positions of characters, words, line beginnings, links, or
6857 windows.")
6858 (license license:gpl3+)))
6859
6860 (define-public emacs-ace-window
6861 (package
6862 (name "emacs-ace-window")
6863 (version "0.10.0")
6864 (source
6865 (origin
6866 (method git-fetch)
6867 (uri (git-reference
6868 (url "https://github.com/abo-abo/ace-window")
6869 (commit version)))
6870 (file-name (git-file-name name version))
6871 (sha256
6872 (base32
6873 "0f3r40d5yxp2pm2j0nn86s29nqj8py0jxjbj50v4ci3hsd92d8jl"))))
6874 (build-system emacs-build-system)
6875 (propagated-inputs
6876 `(("emacs-avy" ,emacs-avy)))
6877 (home-page "https://github.com/abo-abo/ace-window")
6878 (synopsis "Quickly switch windows in Emacs")
6879 (description
6880 "@code{ace-window} is meant to replace @code{other-window}.
6881 In fact, when there are only two windows present, @code{other-window} is
6882 called. If there are more, each window will have its first character
6883 highlighted. Pressing that character will switch to that window.")
6884 (license license:gpl3+)))
6885
6886 (define-public emacs-iedit
6887 ;; Last release version was in 2016.
6888 (let ((commit "e2c100cdd67b7d82835d281ac2cd1bf4f374bc8f")
6889 (revision "1"))
6890 (package
6891 (name "emacs-iedit")
6892 (version (git-version "0.9.9.9" revision commit))
6893 (source
6894 (origin
6895 (method git-fetch)
6896 (uri (git-reference
6897 (url "https://github.com/victorhge/iedit")
6898 (commit commit)))
6899 (file-name (git-file-name name version))
6900 (sha256
6901 (base32 "0wr3w2id95wx2rma8n1ifjrv9rx37ly26ijc5zi58id0yrip3hnc"))))
6902 (build-system emacs-build-system)
6903 (home-page "https://www.emacswiki.org/emacs/Iedit")
6904 (synopsis "Edit multiple regions in the same way simultaneously")
6905 (description
6906 "This package is an Emacs minor mode and allows you to edit one
6907 occurrence of some text in a buffer (possibly narrowed) or region, and
6908 simultaneously have other occurrences edited in the same way.
6909
6910 You can also use Iedit mode as a quick way to temporarily show only the buffer
6911 lines that match the current text being edited. This gives you the effect of
6912 a temporary @code{keep-lines} or @code{occur}.")
6913 (license license:gpl3+))))
6914
6915 (define-public emacs-zoutline
6916 (package
6917 (name "emacs-zoutline")
6918 (version "0.2.0")
6919 (source
6920 (origin
6921 (method git-fetch)
6922 (uri (git-reference
6923 (url "https://github.com/abo-abo/zoutline")
6924 (commit version)))
6925 (sha256
6926 (base32
6927 "1w0zh6vs7klgivq5r030a82mcfg1zwic4x3fimyiqyg5n8p67hyx"))
6928 (file-name (git-file-name name version))))
6929 (build-system emacs-build-system)
6930 (home-page "https://github.com/abo-abo/zoutline")
6931 (synopsis "Simple outline library")
6932 (description
6933 "This library provides helpers for outlines. Outlines allow users to
6934 navigate code in a tree-like fashion.")
6935 (license license:gpl3+)))
6936
6937 (define-public emacs-lispy
6938 (package
6939 (name "emacs-lispy")
6940 (version "0.27.0")
6941 (home-page "https://github.com/abo-abo/lispy")
6942 (source (origin
6943 (method git-fetch)
6944 (uri (git-reference
6945 (url "https://github.com/abo-abo/lispy")
6946 (commit version)))
6947 (sha256
6948 (base32
6949 "1cm7f4pyl73f3vhkb7ah6bbbrj2sa7n0p31g09k7dy4zgx04bgw6"))
6950 (file-name (git-file-name name version))))
6951 (build-system emacs-build-system)
6952 (propagated-inputs
6953 `(("emacs-ace-window" ,emacs-ace-window)
6954 ("emacs-hydra" ,emacs-hydra)
6955 ("emacs-iedit" ,emacs-iedit)
6956 ("emacs-swiper" ,emacs-swiper)
6957 ("emacs-zoutline" ,emacs-zoutline)))
6958 (native-inputs
6959 `(("emacs-clojure-mode" ,emacs-clojure-mode)
6960 ("emacs-undercover" ,emacs-undercover)))
6961 (arguments
6962 `(#:include (cons* "^lispy-clojure\\.clj$"
6963 "^lispy-python\\.py$"
6964 %default-include)
6965 #:phases
6966 ;; XXX: one failing test involving python evaluation
6967 (modify-phases %standard-phases
6968 (add-before 'check 'make-test-writable
6969 (lambda _
6970 (make-file-writable "lispy-test.el")
6971 #t))
6972 (add-before 'check 'remove-python-eval-test
6973 (lambda _
6974 (emacs-batch-edit-file "lispy-test.el"
6975 `(progn
6976 (progn
6977 (goto-char (point-min))
6978 (re-search-forward
6979 "ert-deftest lispy-eval-python-str")
6980 (beginning-of-line)
6981 (kill-sexp))
6982 (basic-save-buffer)))
6983 #t)))
6984 #:tests? #t
6985 #:test-command '("make" "test")))
6986 (synopsis "Modal S-expression editing")
6987 (description
6988 "Due to the structure of Lisp syntax it's very rare for the programmer
6989 to want to insert characters right before \"(\" or right after \")\". Thus
6990 unprefixed printable characters can be used to call commands when the point is
6991 at one of these special locations. Lispy provides unprefixed keybindings for
6992 S-expression editing when point is at the beginning or end of an
6993 S-expression.")
6994 (license license:gpl3+)))
6995
6996 (define-public emacs-lispyville
6997 (let ((commit "1bf38088c981f5ab4ef2e2684952ab6af96378db")
6998 (revision "2"))
6999 (package
7000 (name "emacs-lispyville")
7001 (version (git-version "0.1" revision commit))
7002 (home-page "https://github.com/noctuid/lispyville")
7003 (source (origin
7004 (method git-fetch)
7005 (uri (git-reference (url home-page) (commit commit)))
7006 (sha256
7007 (base32
7008 "07z8qqvaxf963kwn7l2gk47989zb7r3d8ybqjs2cg6hzmzb77wbw"))
7009 (file-name (git-file-name name version))))
7010 (propagated-inputs
7011 `(("emacs-evil" ,emacs-evil)
7012 ("emacs-lispy" ,emacs-lispy)))
7013 (build-system emacs-build-system)
7014 (synopsis "Minor mode for integrating Evil with lispy")
7015 (description
7016 "LispyVille's main purpose is to provide a Lisp editing environment
7017 suited towards Evil users. It can serve as a minimal layer on top of lispy
7018 for better integration with Evil, but it does not require the use of lispy’s
7019 keybinding style. The provided commands allow for editing Lisp in normal
7020 state and will work even without lispy being enabled.")
7021 (license license:gpl3+))))
7022
7023 (define-public emacs-lpy
7024 (let ((commit "43b401fe15f0f0d01edb189378b9498121e9f766")
7025 (revision "3"))
7026 (package
7027 (name "emacs-lpy")
7028 (version (git-version "0.1.0" revision commit))
7029 (source
7030 (origin
7031 (method git-fetch)
7032 (uri (git-reference
7033 (url "https://github.com/abo-abo/lpy")
7034 (commit commit)))
7035 (sha256
7036 (base32
7037 "0xj1r7cn1rivaxhvawvmgx9fg3xilpfw4lkf2x2aqplr4s85ijas"))
7038 (file-name (git-file-name name version))))
7039 (propagated-inputs
7040 `(("emacs-zoutline" ,emacs-zoutline)
7041 ("emacs-lispy" ,emacs-lispy)))
7042 (build-system emacs-build-system)
7043 (home-page "https://github.com/abo-abo/lpy")
7044 (synopsis "Modal editing for Python")
7045 (description
7046 "This package provides a minor mode for Python that binds useful
7047 commands to unprefixed keys, such as @code{j} or @code{e}, under certain
7048 circumstances, and leaves the keys untouched outside of those situations,
7049 allowing unprefixed keys to insert their respective characters as expected.")
7050 (license license:gpl3+))))
7051
7052 (define-public emacs-clojure-mode
7053 (package
7054 (name "emacs-clojure-mode")
7055 (version "5.11.0")
7056 (source
7057 (origin
7058 (method git-fetch)
7059 (uri (git-reference
7060 (url "https://github.com/clojure-emacs/clojure-mode")
7061 (commit version)))
7062 (file-name (git-file-name name version))
7063 (sha256
7064 (base32 "1x1yszp6waa778ki6sw66w1pzcz389wd01gkcldfxxnd7z89ad5d"))))
7065 (build-system emacs-build-system)
7066 (native-inputs
7067 `(("emacs-buttercup" ,emacs-buttercup)
7068 ("emacs-dash" ,emacs-dash)
7069 ("emacs-s" ,emacs-s)))
7070 (arguments
7071 `(#:tests? #t
7072 #:test-command '("buttercup")))
7073 (home-page "https://github.com/clojure-emacs/clojure-mode")
7074 (synopsis "Major mode for Clojure code")
7075 (description
7076 "This Emacs package provides font-lock, indentation, navigation and basic
7077 refactoring for the @uref{http://clojure.org, Clojure programming language}.
7078 It is recommended to use @code{clojure-mode} with Paredit or Smartparens.")
7079 (license license:gpl3+)))
7080
7081 (define-public emacs-epl
7082 (package
7083 (name "emacs-epl")
7084 (version "0.8")
7085 (source
7086 (origin
7087 (method git-fetch)
7088 (uri (git-reference
7089 (url "https://github.com/cask/epl")
7090 (commit version)))
7091 (file-name (git-file-name name version))
7092 (sha256
7093 (base32 "0sjxd5y5hxhrbgfkpwx6m724r3841b53hgc61a0g5zwispw5pmrr"))))
7094 (build-system emacs-build-system)
7095 (home-page "https://github.com/cask/epl")
7096 (synopsis "Emacs Package Library")
7097 (description
7098 "A package management library for Emacs, based on @code{package.el}.
7099
7100 The purpose of this library is to wrap all the quirks and hassle of
7101 @code{package.el} into a sane API.")
7102 (license license:gpl3+)))
7103
7104 (define-public emacs-counsel-notmuch
7105 ;; Upstream provides no release. Extract version for main file.
7106 (let ((commit "a4a1562935e4180c42524c51609d1283e9be0688")
7107 (revision "0"))
7108 (package
7109 (name "emacs-counsel-notmuch")
7110 (version (git-version "1.0" revision commit))
7111 (source
7112 (origin
7113 (method git-fetch)
7114 (uri (git-reference
7115 (url "https://github.com/fuxialexander/counsel-notmuch.git")
7116 (commit commit)))
7117 (file-name (git-file-name name version))
7118 (sha256
7119 (base32 "01k1321d961kc2i660a5595bqk0d85f16snsxngsn5si6y83kqr7"))))
7120 (build-system emacs-build-system)
7121 (arguments
7122 `(#:phases
7123 (modify-phases %standard-phases
7124 (add-after 'unpack 'locate-notmuch
7125 (lambda* (#:key inputs #:allow-other-keys)
7126 (make-file-writable "counsel-notmuch.el")
7127 (emacs-substitute-variables "counsel-notmuch.el"
7128 ("counsel-notmuch-path"
7129 (string-append (assoc-ref inputs "notmuch")
7130 "/bin/notmuch")))
7131 #t)))))
7132 (inputs
7133 `(("emacs-counsel" ,emacs-counsel)
7134 ("notmuch" ,notmuch)
7135 ("emacs-s" ,emacs-s)))
7136 (home-page "https://github.com/fuxialexander/counsel-notmuch")
7137 (synopsis "Search emails in Notmuch asynchronously with Ivy")
7138 (description
7139 "This package can be used to search emails in Notmuch
7140 asynchronously, with Counsel and Ivy. Simply call
7141 @code{counsel-notmuch} and input your Notmuch query.")
7142 (license license:gpl3+))))
7143
7144 (define-public emacs-counsel-projectile
7145 (package
7146 (name "emacs-counsel-projectile")
7147 (version "0.3.0")
7148 (source (origin
7149 (method git-fetch)
7150 (uri (git-reference
7151 (url "https://github.com/ericdanan/counsel-projectile")
7152 (commit version)))
7153 (file-name (git-file-name name version))
7154 (sha256
7155 (base32
7156 "1inc4ndl0ysfwvxk4avbgpj4qi9rc93da6476a5c81xmwpsv8wmq"))))
7157 (build-system emacs-build-system)
7158 (propagated-inputs
7159 `(("emacs-counsel" ,emacs-counsel)
7160 ("emacs-projectile" ,emacs-projectile)))
7161 (home-page "https://github.com/ericdanan/counsel-projectile")
7162 (synopsis "Enhance Projectile with Ivy")
7163 (description
7164 "This package uses Ivy to provide additional actions for Projectile
7165 commands and replacements for existing functions.")
7166 (license license:gpl3+)))
7167
7168 (define-public emacs-qml-mode
7169 (package
7170 (name "emacs-qml-mode")
7171 (version "0.4")
7172 (source (origin
7173 (method git-fetch)
7174 (uri (git-reference
7175 (url "https://github.com/coldnew/qml-mode")
7176 (commit version)))
7177 (file-name (git-file-name name version))
7178 (sha256
7179 (base32
7180 "1sncsvzjfgmhp4m8w5jd4y51k24n2jfpgvrkd64wlhhzbj3wb947"))))
7181 (build-system emacs-build-system)
7182 (home-page "https://github.com/coldnew/qml-mode/")
7183 (synopsis "Qt Modeling Language (QML) mode for Emacs")
7184 (description "This package provides the @code{qml-mode} major Emacs mode
7185 for editing source files written in the Qt Modeling Language (QML) user
7186 interface markup language. It provides syntax highlighting and basic
7187 navigation commands. @code{qml-mode} is derived from code{js-mode}, the Emacs
7188 builtin JavaScript mode.")
7189 (license license:gpl2+)))
7190
7191 (define-public emacs-queue
7192 (package
7193 (name "emacs-queue")
7194 (version "0.2")
7195 (source (origin
7196 (method url-fetch)
7197 (uri (string-append "https://elpa.gnu.org/packages/queue-"
7198 version ".el"))
7199 (sha256
7200 (base32
7201 "0cx2848sqnnkkr4zisvqadzxngjyhmb36mh0q3if7q19yjjhmrkb"))))
7202 (build-system emacs-build-system)
7203 (home-page "http://www.dr-qubit.org/tags/computing-code-emacs.html")
7204 (synopsis "Queue data structure for Emacs")
7205 (description
7206 "This Emacs library provides queue data structure. These queues can be
7207 used both as a first-in last-out (FILO) and as a first-in first-out (FIFO)
7208 stack, i.e. elements can be added to the front or back of the queue, and can
7209 be removed from the front. This type of data structure is sometimes called an
7210 \"output-restricted deque\".")
7211 (license license:gpl3+)))
7212
7213 (define-public emacs-pkg-info
7214 (package
7215 (name "emacs-pkg-info")
7216 (version "0.6")
7217 (source
7218 (origin
7219 (method git-fetch)
7220 (uri (git-reference
7221 (url "https://github.com/lunaryorn/pkg-info.el")
7222 (commit version)))
7223 (file-name (git-file-name name version))
7224 (sha256
7225 (base32 "0nk12dcppdyhav6m6yf7abpywyd7amxd4237zsfd32w4zxsx39k1"))))
7226 (build-system emacs-build-system)
7227 (propagated-inputs `(("emacs-epl" ,emacs-epl)))
7228 (home-page "https://github.com/lunaryorn/pkg-info.el")
7229 (synopsis "Information about Emacs packages")
7230 (description
7231 "This library extracts information from the installed Emacs packages.")
7232 (license license:gpl3+)))
7233
7234 (define-public emacs-spinner
7235 (package
7236 (name "emacs-spinner")
7237 (version "1.7.3")
7238 (source (origin
7239 (method url-fetch)
7240 (uri (string-append "https://elpa.gnu.org/packages/spinner-"
7241 version ".el"))
7242 (sha256
7243 (base32
7244 "19kp1mmndbmw11sgvv2ggfjl4pyf5zrsbh3871f0965pw9z8vahd"))))
7245 (build-system emacs-build-system)
7246 (home-page "https://github.com/Malabarba/spinner.el")
7247 (synopsis "Emacs mode-line spinner for operations in progress")
7248 (description
7249 "This Emacs package adds spinners and progress-bars to the mode-line for
7250 ongoing operations.")
7251 (license license:gpl3+)))
7252
7253 (define-public emacs-sparql-mode
7254 (package
7255 (name "emacs-sparql-mode")
7256 (version "2.0.1")
7257 (source
7258 (origin
7259 (method git-fetch)
7260 (uri (git-reference
7261 (url "https://github.com/ljos/sparql-mode")
7262 (commit (string-append "v" version))))
7263 (file-name (git-file-name name version))
7264 (sha256
7265 (base32 "0ywhqk6n5k0l85zjwbnrivnvxjzqipqrggv06lify6yv18qmyl6s"))))
7266 (build-system emacs-build-system)
7267 (home-page "https://github.com/ljos/sparql-mode")
7268 (synopsis "SPARQL mode for Emacs")
7269 (description "This package provides a major mode for Emacs that provides
7270 syntax highlighting for SPARQL. It also provides a way to execute queries
7271 against a SPARQL HTTP endpoint, such as is provided by Fuseki. It is also
7272 possible to query other endpoints like DBPedia.")
7273 (license license:gpl3+)))
7274
7275 (define-public emacs-better-defaults
7276 (package
7277 (name "emacs-better-defaults")
7278 (version "0.1.3")
7279 (source
7280 (origin
7281 (method git-fetch)
7282 (uri (git-reference
7283 (url "https://github.com/technomancy/better-defaults")
7284 (commit version)))
7285 (file-name (git-file-name name version))
7286 (sha256
7287 (base32
7288 "1rxznx2l0cdpiz8mad8s6q17m1fngpgb1cki7ch6yh18r3qz8ysr"))))
7289 (build-system emacs-build-system)
7290 (home-page "https://github.com/technomancy/better-defaults")
7291 (synopsis "Better defaults for Emacs")
7292 (description
7293 "Better defaults attempts to address the most obvious deficiencies of the
7294 Emacs default configuration in uncontroversial ways that nearly everyone can
7295 agree upon.")
7296 (license license:gpl3+)))
7297
7298 (define-public emacs-undohist-el
7299 (let ((commit "d2239a5f736724ceb9e3b6bcaa86f4064805cda0")
7300 (revision "1"))
7301 (package
7302 (name "emacs-undohist-el")
7303 (version (git-version "0" revision commit))
7304 (source
7305 (origin
7306 (method git-fetch)
7307 (uri (git-reference
7308 (url "https://github.com/m2ym/undohist-el")
7309 (commit commit)))
7310 (file-name (git-file-name name version))
7311 (sha256
7312 (base32
7313 "1c0daw246ky7b1x5b8h55x79pl1pjqk1k348l487bdd8zdj4w9wx"))
7314 (patches
7315 (search-patches "emacs-undohist-ignored.patch"))))
7316 (build-system emacs-build-system)
7317 (home-page "https://github.com/m2ym/undohist-el")
7318 (synopsis "Save undo history between sessions")
7319 (description "This package allows persistent use of undo history for
7320 individual file buffers.")
7321 (license license:gpl3+))))
7322
7323 (define-public emacs-eprime
7324 (let ((commit "17a481af26496be91c07139a9bfc05cfe722506f"))
7325 (package
7326 (name "emacs-eprime")
7327 (version (string-append "20140513-" (string-take commit 7)))
7328 (source (origin
7329 (method url-fetch)
7330 (uri (string-append "https://raw.githubusercontent.com"
7331 "/AndrewHynes/eprime-mode/"
7332 commit "/eprime-mode.el"))
7333 (file-name (string-append "eprime-" version ".el"))
7334 (sha256
7335 (base32
7336 "0v68lggkyq7kbcr9zyi573m2g2x251xy3jadlaw8kx02l8krwq8d"))))
7337 (build-system emacs-build-system)
7338 (home-page "https://github.com/AndrewHynes/eprime-mode")
7339 (synopsis "E-prime checking mode for Emacs")
7340 (description "This package provides an E-prime checking mode for Emacs
7341 that highlights non-conforming text. The subset of the English language called
7342 E-Prime forbids the use of the \"to be\" form to strengthen your writing.")
7343 (license license:gpl3+))))
7344
7345 (define-public emacs-julia-mode
7346 ;; XXX: Upstream version remained stuck at 0.3. See
7347 ;; <https://github.com/JuliaEditorSupport/julia-emacs/issues/46>.
7348 (let ((commit "115d4dc8a07445301772da8376b232fa8c7168f4")
7349 (revision "1"))
7350 (package
7351 (name "emacs-julia-mode")
7352 (version (string-append "0.3-" revision "." (string-take commit 8)))
7353 (source
7354 (origin
7355 (method git-fetch)
7356 (uri (git-reference
7357 (url "https://github.com/JuliaEditorSupport/julia-emacs")
7358 (commit commit)))
7359 (file-name (git-file-name name version))
7360 (sha256
7361 (base32
7362 "1is4dcv6blslpzbjcg8l2jpxi8xj96q4cm0nxjxsyswpm8bw8ki0"))))
7363 (build-system emacs-build-system)
7364 (arguments
7365 `(#:tests? #t
7366 #:test-command '("emacs" "--batch"
7367 "-l" "julia-mode-tests.el"
7368 "-f" "ert-run-tests-batch-and-exit")))
7369 (home-page "https://github.com/JuliaEditorSupport/julia-emacs")
7370 (synopsis "Major mode for Julia")
7371 (description "This Emacs package provides a mode for the Julia
7372 programming language.")
7373 (license license:expat))))
7374
7375 (define-public emacs-smex
7376 (package
7377 (name "emacs-smex")
7378 (version "3.0")
7379 (source (origin
7380 (method url-fetch)
7381 (uri (string-append "https://raw.githubusercontent.com"
7382 "/nonsequitur/smex/" version "/smex.el"))
7383 (file-name (string-append "smex-" version ".el"))
7384 (sha256
7385 (base32
7386 "0ar310zx9k5y4i1vl2rawvi712xj9gx77160860jbs691p77cxqp"))))
7387 (build-system emacs-build-system)
7388 (home-page "https://github.com/nonsequitur/smex/")
7389 (synopsis "M-x interface with Ido-style fuzzy matching")
7390 (description
7391 "Smex is a M-x enhancement for Emacs. Built on top of Ido, it provides a
7392 convenient interface to your recently and most frequently used commands. And
7393 to all the other commands, too.")
7394 (license license:gpl3+)))
7395
7396 (define-public emacs-js2-mode
7397 (package
7398 (name "emacs-js2-mode")
7399 (version "20190219")
7400 (source
7401 (origin
7402 (method git-fetch)
7403 (uri (git-reference
7404 (url "https://github.com/mooz/js2-mode")
7405 (commit version)))
7406 (file-name (git-file-name name version))
7407 (sha256
7408 (base32 "0766bbr4piia9vfr4ivd2gwi8dxah654adv6h28ylz4q8xmfzm1b"))))
7409 (build-system emacs-build-system)
7410 (arguments
7411 `(#:tests? #t
7412 #:test-command '("make" "test")))
7413 (home-page "https://github.com/mooz/js2-mode/")
7414 (synopsis "Improved JavaScript editing mode for Emacs")
7415 (description
7416 "Js2-mode provides a JavaScript major mode for Emacs that is more
7417 advanced than the built-in javascript-mode. Features include accurate syntax
7418 highlighting using a recursive-descent parser, on-the-fly reporting of syntax
7419 errors and strict-mode warnings, smart line-wrapping within comments and
7420 strings, and code folding.")
7421 (license license:gpl3+)))
7422
7423 (define-public emacs-nodejs-repl
7424 (package
7425 (name "emacs-nodejs-repl")
7426 (version "0.2.2")
7427 (source (origin
7428 (method git-fetch)
7429 (uri (git-reference
7430 (url "https://github.com/abicky/nodejs-repl.el")
7431 (commit version)))
7432 (file-name (git-file-name name version))
7433 (sha256
7434 (base32
7435 "1kkj888k9x5n0i7xkia177gzsa84my3g8n0n7v65281cc4f1yhk5"))))
7436 (build-system emacs-build-system)
7437 (inputs
7438 `(("node" ,node)))
7439 (native-inputs
7440 `(("emacs-ert-expectations" ,emacs-ert-expectations)))
7441 (arguments
7442 `(#:phases
7443 (modify-phases %standard-phases
7444 (add-after 'unpack 'set-shell
7445 ;; Setting the SHELL environment variable is required for the tests
7446 ;; to find sh.
7447 (lambda _
7448 (setenv "SHELL" (which "sh"))
7449 #t))
7450 (add-after 'unpack 'configure
7451 (lambda* (#:key inputs outputs #:allow-other-keys)
7452 (let ((node (assoc-ref inputs "node")))
7453 ;; Specify the absolute file names of the various
7454 ;; programs so that everything works out-of-the-box.
7455 (make-file-writable "nodejs-repl.el")
7456 (emacs-substitute-variables
7457 "nodejs-repl.el"
7458 ("nodejs-repl-command"
7459 (string-append node "/bin/node")))))))
7460 #:tests? #t
7461 #:test-command '("emacs" "-Q" "--batch"
7462 "-L" "."
7463 "-l" "test/test.el"
7464 "-f" "ert-run-tests-batch-and-exit")))
7465 (home-page "https://github.com/abicky/nodejs-repl.el")
7466 (synopsis "Node.js REPL inside Emacs")
7467 (description
7468 "This program is derived from comint-mode and provides the following
7469 features:
7470
7471 @itemize
7472 @item TAB completion same as Node.js REPL
7473 @item file name completion in string
7474 @item incremental history search
7475 @end itemize")
7476 (license license:gpl3+)))
7477
7478 (define-public emacs-typescript-mode
7479 (package
7480 (name "emacs-typescript-mode")
7481 (version "0.3")
7482 (source (origin
7483 (method git-fetch)
7484 (uri (git-reference
7485 (url "https://github.com/ananthakumaran/typescript.el")
7486 (commit (string-append "v" version))))
7487 (file-name (git-file-name name version))
7488 (sha256
7489 (base32
7490 "002f1xfhq43fjaqliwrgxspryfahpa82va5dw3p8kwil2xwvc6mh"))))
7491 (build-system emacs-build-system)
7492 (home-page "https://github.com/ananthakumaran/typescript.el")
7493 (synopsis "Emacs major mode for editing Typescript code")
7494 (description
7495 "This is based on Karl Landstrom's barebones @code{typescript-mode}.
7496 This is much more robust and works with @code{cc-mode}'s comment
7497 filling (mostly). The modifications to the original @code{javascript.el} mode
7498 mainly consisted in replacing \"javascript\" with \"typescript\"
7499
7500 The main features of this Typescript mode are syntactic highlighting (enabled
7501 with @code{font-lock-mode} or @code{global-font-lock-mode}), automatic
7502 indentation and filling of comments and C preprocessor fontification.")
7503 (license license:gpl3+)))
7504
7505 (define-public emacs-tide
7506 (package
7507 (name "emacs-tide")
7508 (version "3.2.3")
7509 (source (origin
7510 (method git-fetch)
7511 (uri (git-reference
7512 (url "https://github.com/ananthakumaran/tide")
7513 (commit (string-append "v" version))))
7514 (file-name (git-file-name name version))
7515 (sha256
7516 (base32
7517 "19kjq4kr2j853p5qp1s79zxmrfprli82lsnphbrlp9vbnib28xyd"))))
7518 (build-system emacs-build-system)
7519 (propagated-inputs
7520 `(("emacs-dash" ,emacs-dash)
7521 ("emacs-s" ,emacs-s)
7522 ("emacs-flycheck" ,emacs-flycheck)
7523 ("emacs-typescript-mode" ,emacs-typescript-mode)))
7524 (home-page "https://github.com/ananthakumaran/tide")
7525 (synopsis "Typescript IDE for Emacs")
7526 (description
7527 "Tide is an Interactive Development Environment (IDE) for Emacs which
7528 provides the following features:
7529
7530 @itemize
7531 @item ElDoc
7532 @item Auto complete
7533 @item Flycheck
7534 @item Jump to definition, Jump to type definition
7535 @item Find occurrences
7536 @item Rename symbol
7537 @item Imenu
7538 @item Compile On Save
7539 @item Highlight Identifiers
7540 @item Code Fixes
7541 @item Code Refactor
7542 @item Organize Imports
7543 @end itemize")
7544 (license license:gpl3+)))
7545
7546 (define-public emacs-markdown-mode
7547 (package
7548 (name "emacs-markdown-mode")
7549 (version "2.4")
7550 (source
7551 (origin
7552 (method git-fetch)
7553 (uri (git-reference
7554 (url "https://github.com/jrblevin/markdown-mode")
7555 (commit (string-append "v" version))))
7556 (file-name (git-file-name name version))
7557 (sha256
7558 (base32 "0g0ja4h651yfabm3k6gbw4y8w7wibc9283fyfzb33kjj38ivl5d7"))))
7559 (build-system emacs-build-system)
7560 (home-page "https://jblevins.org/projects/markdown-mode/")
7561 (synopsis "Emacs Major mode for Markdown files")
7562 (description
7563 "Markdown-mode is a major mode for editing Markdown-formatted text files
7564 in Emacs.")
7565 (license license:gpl3+)))
7566
7567 (define-public emacs-evil-markdown
7568 (let ((commit "685d7fbb81bc02fa32779d2a127b99a0c8c7436b")
7569 (revision "2"))
7570 (package
7571 (name "emacs-evil-markdown")
7572 (version (git-version "0.0.2" revision commit))
7573 (source
7574 (origin
7575 (method git-fetch)
7576 (uri (git-reference
7577 (url "https://github.com/Somelauw/evil-markdown")
7578 (commit commit)))
7579 (file-name (git-file-name name version))
7580 (sha256
7581 (base32 "1z1sjn6dcqv8mmkh6nfcwhnql2z6xr9yx3hs77bfxj79pf3c466p"))))
7582 (build-system emacs-build-system)
7583 (propagated-inputs
7584 `(("emacs-evil" ,emacs-evil)
7585 ("emacs-markdown-mode" ,emacs-markdown-mode)))
7586 (home-page "https://github.com/Somelauw/evil-markdown/")
7587 (synopsis "Evil keybindings for @code{markdown-mode}")
7588 (description
7589 "This package provides custom text objects and bindings for
7590 @code{markdown-mode}.")
7591 (license license:gpl3+))))
7592
7593 (define-public emacs-edit-indirect
7594 (package
7595 (name "emacs-edit-indirect")
7596 (version "0.1.5")
7597 (source
7598 (origin
7599 (method git-fetch)
7600 (uri (git-reference
7601 (url "https://github.com/Fanael/edit-indirect")
7602 (commit version)))
7603 (file-name (git-file-name name version))
7604 (sha256
7605 (base32
7606 "0by1x53pji39fjrj5bd446kz831nv0vdgw2jqasbym4pc1p2947r"))))
7607 (build-system emacs-build-system)
7608 (home-page "https://github.com/Fanael/edit-indirect")
7609 (synopsis "Edit regions in separate buffers")
7610 (description "This package allows you to edit regions in separate buffers,
7611 like @code{org-edit-src-code} but for arbitrary regions.")
7612 (license license:gpl3+)))
7613
7614 (define-public emacs-projectile
7615 (package
7616 (name "emacs-projectile")
7617 (version "2.2.0")
7618 (source (origin
7619 (method url-fetch)
7620 (uri (string-append "https://raw.githubusercontent.com/bbatsov"
7621 "/projectile/v" version "/projectile.el"))
7622 (file-name (string-append "projectile-" version ".el"))
7623 (sha256
7624 (base32
7625 "1d983siysg98bjbb2r99qbrpvpf6dn85si8gyak4z05m67s8sn6v"))))
7626 (build-system emacs-build-system)
7627 (propagated-inputs
7628 `(("emacs-dash" ,emacs-dash)
7629 ("emacs-pkg-info" ,emacs-pkg-info)))
7630 (home-page "https://github.com/bbatsov/projectile")
7631 (synopsis "Manage and navigate projects in Emacs easily")
7632 (description
7633 "This library provides easy project management and navigation. The
7634 concept of a project is pretty basic - just a folder containing special file.
7635 Currently git, mercurial and bazaar repos are considered projects by default.
7636 If you want to mark a folder manually as a project just create an empty
7637 .projectile file in it.")
7638 (license license:gpl3+)))
7639
7640 (define-public emacs-skeletor
7641 (let ((commit "47c5b761aee8452716c97a69949ac2f675affe13")
7642 (revision "1"))
7643 (package
7644 (name "emacs-skeletor")
7645 (version (git-version "1.6.1" revision commit))
7646 (source (origin
7647 (method git-fetch)
7648 (uri (git-reference
7649 (url "https://github.com/chrisbarrett/skeletor.el")
7650 (commit commit)))
7651 (file-name (git-file-name name version))
7652 (sha256
7653 (base32
7654 "12bdgykfh4mwsqdazxjdvha62h3q3v33159ypy91f6x59y01fi0n"))))
7655 (build-system emacs-build-system)
7656 (propagated-inputs
7657 `(("emacs-s" ,emacs-s)
7658 ("emacs-f" ,emacs-f)
7659 ("emacs-dash" ,emacs-dash)
7660 ("emacs-let-alist" ,emacs-let-alist)))
7661 (native-inputs
7662 `(("emacs-ert-runner" ,emacs-ert-runner)))
7663 (arguments
7664 `(#:include (cons "^project-skeletons\\/" %default-include)
7665 ;; XXX: one failing test involving initializing a git repo
7666 #:phases
7667 (modify-phases %standard-phases
7668 (add-before 'check 'make-test-writable
7669 (lambda _
7670 (make-file-writable "test/skeletor-test.el")
7671 #t))
7672 (add-before 'check 'remove-git-test
7673 (lambda _
7674 (emacs-batch-edit-file "test/skeletor-test.el"
7675 `(progn
7676 (progn
7677 (goto-char (point-min))
7678 (re-search-forward
7679 "ert-deftest initialises-git-repo")
7680 (beginning-of-line)
7681 (kill-sexp))
7682 (basic-save-buffer)))
7683 #t)))
7684 #:tests? #t
7685 #:test-command '("ert-runner")))
7686 (home-page "https://github.com/chrisbarrett/skeletor.el")
7687 (synopsis "Project skeletons for Emacs")
7688 (description "This package provides project templates and automates the
7689 mundane parts of setting up a new project, such as version control, licenses,
7690 and tooling.")
7691 (license license:gpl3+))))
7692
7693 (define-public emacs-elfeed
7694 (package
7695 (name "emacs-elfeed")
7696 (version "3.3.0")
7697 (source
7698 (origin
7699 (method git-fetch)
7700 (uri (git-reference
7701 (url "https://github.com/skeeto/elfeed")
7702 (commit version)))
7703 (file-name (git-file-name name version))
7704 (sha256
7705 (base32 "0j8a94val4ml7g1vcjgzk1w89h55sxfdrwnncmz6qbh1y2xsz8c5"))))
7706 (build-system emacs-build-system)
7707 (arguments
7708 `(#:tests? #t
7709 #:test-command '("make" "test")))
7710 (home-page "https://github.com/skeeto/elfeed")
7711 (synopsis "Atom/RSS feed reader for Emacs")
7712 (description
7713 "Elfeed is an extensible web feed reader for Emacs, supporting both Atom
7714 and RSS, with a user interface inspired by notmuch.")
7715 (license license:gpl3+)))
7716
7717 (define-public emacs-elfeed-org
7718 (let ((commit "77b6bbf222487809813de260447d31c4c59902c9"))
7719 (package
7720 (name "emacs-elfeed-org")
7721 (version (git-version "0.1" "1" commit))
7722 (source
7723 (origin
7724 (method git-fetch)
7725 (uri (git-reference
7726 (url "https://github.com/remyhonig/elfeed-org")
7727 (commit commit)))
7728 (file-name (git-file-name name version))
7729 (sha256
7730 (base32 "0a2ibka82xq1dhy2z7rd2y9zhcj8rna8357881yz49wf55ccgm53"))))
7731 (build-system emacs-build-system)
7732 (propagated-inputs
7733 `(("emacs-elfeed" ,emacs-elfeed)
7734 ("emacs-org" ,emacs-org)
7735 ("emacs-dash" ,emacs-dash)
7736 ("emacs-s" ,emacs-s)))
7737 (native-inputs
7738 `(("ert-runner" ,emacs-ert-runner)
7739 ("emacs-xtest" ,emacs-xtest)))
7740 (arguments
7741 `(#:tests? #t
7742 #:test-command '("ert-runner" "-L" "org-mode/lisp")
7743 #:phases
7744 (modify-phases %standard-phases
7745 (add-before 'check 'chmod
7746 (lambda _
7747 (chmod "test/fixture-mark-feed-ignore.org" #o644)
7748 #t)))))
7749 (home-page "https://github.com/remyhonig/elfeed-org")
7750 (synopsis "Configure Elfeed with an Org-mode file")
7751 (description
7752 "@code{elfeed-org} lets you manage your Elfeed subscriptions
7753 in Org-mode. Maintaining tags for all RSS feeds is cumbersome using
7754 the regular flat list, where there is no hierarchy and tag names are
7755 duplicated a lot. Org-mode makes the book keeping of tags and feeds
7756 much easier.")
7757 (license license:gpl3+))))
7758
7759 (define-public emacs-el-x
7760 (package
7761 (name "emacs-el-x")
7762 (version "0.3.1")
7763 (source (origin
7764 (method git-fetch)
7765 (uri (git-reference
7766 (url "https://github.com/sigma/el-x")
7767 (commit (string-append "v" version))))
7768 (file-name (git-file-name name version))
7769 (sha256
7770 (base32
7771 "1i6j44ssxm1xdg0mf91nh1lnprwsaxsx8vsrf720nan7mfr283h5"))))
7772 (build-system emacs-build-system)
7773 (arguments
7774 `(#:phases
7775 (modify-phases %standard-phases
7776 ;; Move the source files to the top level, which is included in
7777 ;; the EMACSLOADPATH.
7778 (add-after 'unpack 'move-source-files
7779 (lambda _
7780 (let ((el-files (find-files "./lisp" ".*\\.el$")))
7781 (for-each (lambda (f)
7782 (rename-file f (basename f)))
7783 el-files))
7784 #t)))))
7785 (home-page "https://github.com/sigma/el-x")
7786 (synopsis "Emacs Lisp extensions")
7787 (description "command@{emacs-el-x} defines the @code{dflet} macro to
7788 provide the historic behavior of @code{flet}, as well as
7789 @code{declare-function} stub for older Emacs.")
7790 (license license:gpl2+)))
7791
7792 (define-public emacs-mocker
7793 (package
7794 (name "emacs-mocker")
7795 (version "0.3.1")
7796 (source (origin
7797 (method git-fetch)
7798 (uri (git-reference
7799 (url "https://github.com/sigma/mocker.el")
7800 (commit (string-append "v" version))))
7801 (file-name (git-file-name name version))
7802 (sha256
7803 (base32
7804 "1lav7am41v63xgavq8pr88y828jmd1cxd4prjq7jlbxm6nvrwxh2"))))
7805 (build-system emacs-build-system)
7806 (arguments
7807 `(#:tests? #t
7808 #:test-command '("ert-runner")))
7809 (native-inputs
7810 `(("ert-runner" ,emacs-ert-runner)))
7811 (propagated-inputs
7812 `(("emacs-el-x" ,emacs-el-x)))
7813 (home-page "https://github.com/sigma/mocker.el")
7814 (synopsis "Mocking framework for Emacs Lisp")
7815 (description "Mocker.el is a framework for writing tests in Emacs Lisp.
7816 It uses regular Lisp rather than a domain specific language (DSL), which
7817 maximizes flexibility (at the expense of conciseness).")
7818 (license license:gpl2+)))
7819
7820 (define-public emacs-find-file-in-project
7821 (package
7822 (name "emacs-find-file-in-project")
7823 (version "5.7.7")
7824 (source (origin
7825 (method git-fetch)
7826 (uri (git-reference
7827 (url "https://github.com/technomancy/find-file-in-project")
7828 (commit version)))
7829 (file-name (git-file-name name version))
7830 (sha256
7831 (base32
7832 "1skjbh7m0cck2rwmgzrrds51gipqf1jqghyfx15drc1n6kwivx3h"))))
7833 (build-system emacs-build-system)
7834 (arguments
7835 `(#:tests? #t
7836 #:test-command '("ert-runner" "tests")))
7837 (native-inputs
7838 `(("ert-runner" ,emacs-ert-runner)))
7839 (home-page "https://github.com/technomancy/find-file-in-project")
7840 (synopsis "File/directory finder for Emacs")
7841 (description "@code{find-file-in-project} finds files or
7842 directories quickly in the current project. The project root is detected
7843 automatically when Git, Subversion or Mercurial are used. It also provides
7844 functions to assist in reviewing changes on files.")
7845 (license license:gpl3+)))
7846
7847 (define-public emacs-pyvenv
7848 (package
7849 (name "emacs-pyvenv")
7850 (version "1.21")
7851 (source (origin
7852 (method git-fetch)
7853 (uri (git-reference
7854 (url "https://github.com/jorgenschaefer/pyvenv")
7855 (commit (string-append "v" version))))
7856 (file-name (git-file-name name version))
7857 (sha256
7858 (base32
7859 "055sgk8zf4wb5nqsf3qasf5gg861zlb1831733f1qcrd2ij5gzxx"))))
7860 (build-system emacs-build-system)
7861 (arguments
7862 `(#:phases
7863 (modify-phases %standard-phases
7864 ;; This phase incorrectly attempts to substitute "activate" and fails
7865 ;; doing so.
7866 (delete 'patch-el-files))
7867 #:tests? #t
7868 #:test-command '("ert-runner")))
7869 (native-inputs
7870 `(("ert-runner" ,emacs-ert-runner)
7871 ("emacs-mocker" ,emacs-mocker)))
7872 (home-page "https://github.com/jorgenschaefer/pyvenv")
7873 (synopsis "Python virtual environment interface for Emacs")
7874 (description "pyvenv.el is a minor mode to support using Python virtual
7875 environments (virtualenv) inside Emacs.")
7876 (license license:gpl3+)))
7877
7878 (define-public emacs-highlight-indent-guides
7879 (let ((version "0.8.5") ; from package metadata
7880 (revision "0")
7881 (commit "c2c9de4d01edfb89609c91d4d7f1d81312015a2c"))
7882 (package
7883 (name "emacs-highlight-indent-guides")
7884 (version (git-version version revision commit))
7885 (source
7886 (origin
7887 (method git-fetch)
7888 (uri (git-reference
7889 (url "https://github.com/DarthFennec/highlight-indent-guides")
7890 (commit commit)))
7891 (file-name (git-file-name name version))
7892 (sha256
7893 (base32 "10chvqnmdmkx6i9sigqframr85ziyafiz44glwhvhjajfkv42ad2"))))
7894 (build-system emacs-build-system)
7895 (home-page
7896 "https://github.com/DarthFennec/highlight-indent-guides")
7897 (synopsis "Minor mode to highlight indentation")
7898 (description
7899 "This package provides a minor mode to highlight indentation levels via
7900 font-lock. Indent widths are dynamically discovered, which means this
7901 correctly highlights in any mode, regardless of indent width, even in
7902 languages with non-uniform indentation such as Haskell. This mode works
7903 properly around hard tabs and mixed indentation and behaves well in large
7904 buffers.")
7905 (license license:expat))))
7906
7907 (define-public emacs-highlight-indentation
7908 ;; Last release version is from 2015.
7909 (let ((commit "d03803f2c06749c430443a3d24e039cbafc9c58f")
7910 (revision "1"))
7911 (package
7912 (name "emacs-highlight-indentation")
7913 (version (git-version "0.7.0" revision commit))
7914 (source
7915 (origin
7916 (method git-fetch)
7917 (uri (git-reference
7918 (url "https://github.com/antonj/Highlight-Indentation-for-Emacs")
7919 (commit commit)))
7920 (file-name (git-file-name name version))
7921 (sha256
7922 (base32
7923 "1jq0gf4kcx9hvrw40rnw5c2qynjpjw1vsjbi2i4lqjbsnfnxn4wz"))))
7924 (build-system emacs-build-system)
7925 (home-page "https://github.com/antonj/Highlight-Indentation-for-Emacs/")
7926 (synopsis "Highlighting indentation for Emacs")
7927 (description "This package provides two minor modes to highlight
7928 indentation guides in Emacs:
7929
7930 @enumerate
7931 @item @code{highlight-indentation-mode}, which displays guidelines
7932 indentation (space indentation only).
7933 @item @code{highlight-indentation-current-column-mode}, which displays
7934 guidelines for the current-point indentation (space indentation only).
7935 @end enumerate")
7936 (license license:gpl2+))))
7937
7938 (define-public emacs-elpy
7939 (package
7940 (name "emacs-elpy")
7941 (version "1.34.0")
7942 (source (origin
7943 (method git-fetch)
7944 (uri (git-reference
7945 (url "https://github.com/jorgenschaefer/elpy")
7946 (commit version)))
7947 (file-name (git-file-name name version))
7948 (sha256
7949 (base32
7950 "1x1z298axbh4xalssnq9nkf2z1sdgmx839vb01xz18kr9lfavx1x"))))
7951 (build-system emacs-build-system)
7952 (arguments
7953 `(#:include (cons* "^elpy/[^/]+\\.py$" "^snippets\\/" %default-include)
7954 #:phases
7955 (modify-phases %standard-phases
7956 ;; The following tests fail when building with Emacs 27 (see:
7957 ;; https://github.com/jorgenschaefer/elpy/issues/1812).
7958 (add-after 'unpack 'disable-problematic-tests
7959 (lambda _
7960 (substitute* "test/elpy-company-backend-test.el"
7961 (("elpy-company-backend-should-add-shell-candidates.*" all)
7962 (string-append all " (skip-unless nil)\n")))
7963 (substitute* "test/elpy-folding-fold-comments-test.el"
7964 (("elpy-fold-at-point-should-fold-and-unfold-comments.*" all)
7965 (string-append all " (skip-unless nil)\n")))
7966 #t))
7967 ;; The default environment of the RPC uses Virtualenv to install
7968 ;; Python dependencies from PyPI. We don't want/need this in Guix.
7969 (add-before 'check 'do-not-use-virtualenv
7970 (lambda _
7971 (setenv "ELPY_TEST_DONT_USE_VIRTUALENV" "1")
7972 (substitute* "elpy-rpc.el"
7973 (("defcustom elpy-rpc-virtualenv-path 'default")
7974 "defcustom elpy-rpc-virtualenv-path 'system"))
7975 #t))
7976 (add-before 'check 'build-doc
7977 (lambda _
7978 (with-directory-excursion "docs"
7979 (invoke "make" "info" "man"))
7980 ;; Move .info file at the root so that it can installed by the
7981 ;; 'move-doc phase.
7982 (rename-file "docs/_build/texinfo/Elpy.info" "Elpy.info")
7983 #t))
7984 (add-after 'build-doc 'install-manpage
7985 (lambda* (#:key outputs #:allow-other-keys)
7986 (let* ((out (assoc-ref outputs "out"))
7987 (man1 (string-append out "/share/man/man1")))
7988 (mkdir-p man1)
7989 (copy-file "docs/_build/man/elpy.1"
7990 (string-append man1 "/elpy.1")))
7991 #t)))
7992 #:tests? #t
7993 #:test-command '("ert-runner")))
7994 (propagated-inputs
7995 `(("emacs-company" ,emacs-company)
7996 ("emacs-find-file-in-project" ,emacs-find-file-in-project)
7997 ("emacs-highlight-indentation" ,emacs-highlight-indentation)
7998 ("emacs-yasnippet" ,emacs-yasnippet)
7999 ("pyvenv" ,emacs-pyvenv)
8000 ("s" ,emacs-s)
8001 ;; The following are recommended Python dependencies that make Elpy
8002 ;; much more useful. Installing these avoids Elpy prompting to install them
8003 ;; from PyPI using pip.
8004 ("python-autopep8" ,python-autopep8)
8005 ("python-black" ,python-black)
8006 ("python-flake8" ,python-flake8)
8007 ("python-jedi" ,python-jedi)
8008 ("python-rope" ,python-rope)
8009 ("python-yapf" ,python-yapf)))
8010 (native-inputs
8011 `(("ert-runner" ,emacs-ert-runner)
8012 ("emacs-f" ,emacs-f)
8013 ("python" ,python-wrapper)
8014 ;; For documentation.
8015 ("python-sphinx" ,python-sphinx)
8016 ("texinfo" ,texinfo)))
8017 (home-page "https://github.com/jorgenschaefer/elpy")
8018 (synopsis "Python development environment for Emacs")
8019 (description "Elpy brings powerful Python editing to Emacs. It combines
8020 and configures a number of other packages written in Emacs Lisp as well as
8021 Python, together offering features such as navigation, documentation,
8022 completion, interactive development and more.")
8023 (license license:gpl3+)))
8024
8025 (define-public emacs-rainbow-delimiters
8026 (package
8027 (name "emacs-rainbow-delimiters")
8028 (version "2.1.4")
8029 (source (origin
8030 (method git-fetch)
8031 (uri (git-reference
8032 (url "https://github.com/Fanael/rainbow-delimiters")
8033 (commit version)))
8034 (file-name (git-file-name name version))
8035 (sha256
8036 (base32
8037 "1zr2669savnmkc68hiqsq9wccm6bs1j6jbmlac1xqh6nq7xgq36g"))))
8038 (build-system emacs-build-system)
8039 (home-page "https://github.com/Fanael/rainbow-delimiters")
8040 (arguments
8041 `(#:tests? #t
8042 #:test-command '("emacs" "-Q" "-batch"
8043 "-l" "rainbow-delimiters-test.el"
8044 "-f" "ert-run-tests-batch-and-exit")))
8045 (synopsis "Highlight brackets according to their depth")
8046 (description
8047 "Rainbow-delimiters is a \"rainbow parentheses\"-like mode for Emacs which
8048 highlights parentheses, brackets, and braces according to their depth. Each
8049 successive level is highlighted in a different color, making it easy to spot
8050 matching delimiters, orient yourself in the code, and tell which statements
8051 are at a given level.")
8052 (license license:gpl3+)))
8053
8054 (define-public emacs-rainbow-identifiers
8055 (package
8056 (name "emacs-rainbow-identifiers")
8057 (version "0.2.2")
8058 (source (origin
8059 (method url-fetch)
8060 (uri (string-append "https://raw.githubusercontent.com/Fanael"
8061 "/rainbow-identifiers/" version
8062 "/rainbow-identifiers.el"))
8063 (file-name (string-append "rainbow-identifiers-" version ".el"))
8064 (sha256
8065 (base32
8066 "0325abxj47k0g1i8nqrq70w2wr6060ckhhf92krv1s072b3jzm31"))))
8067 (build-system emacs-build-system)
8068 (home-page "https://github.com/Fanael/rainbow-identifiers")
8069 (synopsis "Highlight identifiers in source code")
8070 (description
8071 "Rainbow identifiers mode is an Emacs minor mode providing highlighting of
8072 identifiers based on their names. Each identifier gets a color based on a hash
8073 of its name.")
8074 (license license:bsd-2)))
8075
8076 (define-public emacs-rainbow-mode
8077 (package
8078 (name "emacs-rainbow-mode")
8079 (version "1.0.5")
8080 (source
8081 (origin
8082 (method url-fetch)
8083 (uri (string-append "https://elpa.gnu.org/packages/"
8084 "rainbow-mode-" version ".el"))
8085 (sha256
8086 (base32 "159fps843k5pap9k04a7ll1k3gw6d9c6w08lq4bbc3lqg78aa2l9"))))
8087 (build-system emacs-build-system)
8088 (home-page "https://elpa.gnu.org/packages/rainbow-mode.html")
8089 (synopsis "Colorize color names in buffers")
8090 (description
8091 "This minor mode sets background color to strings that match color
8092 names, e.g., @samp{#0000ff} is displayed in white with a blue background.")
8093 (license license:gpl3+)))
8094
8095 (define-public emacs-ryo-modal
8096 ;; Package has no release. Version is extracted from "Version:" keyword in
8097 ;; main file.
8098 (let ((commit "3a54312eea7023a86ca3f8eb3c03c872554bff2f")
8099 (revision "0"))
8100 (package
8101 (name "emacs-ryo-modal")
8102 (version (git-version "0.4" revision commit))
8103 (source
8104 (origin
8105 (method git-fetch)
8106 (uri (git-reference
8107 (url "https://github.com/Kungsgeten/ryo-modal")
8108 (commit commit)))
8109 (file-name (git-file-name name version))
8110 (sha256
8111 (base32 "1cyvp3bi6yhckbdnq98xvghmhdzghya5y9wd7hxjawibs75rza95"))))
8112 (build-system emacs-build-system)
8113 (home-page "https://github.com/Kungsgeten/ryo-modal")
8114 (synopsis "Emacs minor mode for defining modal editing environments")
8115 (description "RYO modal provides a convenient way of defining modal
8116 keybindings in Emacs, and does not come with any predefined bindings.")
8117 (license license:expat))))
8118
8119 (define-public emacs-visual-fill-column
8120 (package
8121 (name "emacs-visual-fill-column")
8122 (version "1.11")
8123 (source (origin
8124 (method url-fetch)
8125 (uri (string-append "https://codeload.github.com/joostkremers/"
8126 "visual-fill-column/tar.gz/" version))
8127 (file-name (string-append name "-" version ".tar.gz"))
8128 (sha256
8129 (base32
8130 "13jnviakp607zcms7f8ams56mr8wffnq1pghlc6fvqs39663pgwh"))))
8131 (build-system emacs-build-system)
8132 (home-page "https://github.com/joostkremers/visual-fill-column")
8133 (synopsis "Fill-column for visual-line-mode")
8134 (description
8135 "@code{visual-fill-column-mode} is a small Emacs minor mode that mimics
8136 the effect of @code{fill-column} in @code{visual-line-mode}. Instead of
8137 wrapping lines at the window edge, which is the standard behaviour of
8138 @code{visual-line-mode}, it wraps lines at @code{fill-column}. If
8139 @code{fill-column} is too large for the window, the text is wrapped at the
8140 window edge.")
8141 (license license:gpl3+)))
8142
8143 (define-public emacs-writeroom
8144 (package
8145 (name "emacs-writeroom")
8146 (version "3.10")
8147 (source
8148 (origin
8149 (method git-fetch)
8150 (uri (git-reference
8151 (url "https://github.com/joostkremers/writeroom-mode")
8152 (commit version)))
8153 (file-name (git-file-name name version))
8154 (sha256
8155 (base32
8156 "0la4q2dm123l4rdfh0ry03b99ihvh324y7iw12az909198bcx335"))))
8157 (build-system emacs-build-system)
8158 (propagated-inputs
8159 `(("emacs-visual-fill-column" ,emacs-visual-fill-column)))
8160 (home-page "https://github.com/joostkremers/writeroom-mode")
8161 (synopsis "Distraction-free writing for Emacs")
8162 (description
8163 "This package defines a minor mode for distraction-free writing. Some of
8164 the default effects include entering fullscreen, deleting other windows of the
8165 current frame, disabling the mode line, and adding margins to the buffer that
8166 restrict the text width to 80 characters.")
8167 (license license:bsd-3)))
8168
8169 (define-public emacs-ido-completing-read+
8170 (package
8171 (name "emacs-ido-completing-read+")
8172 (version "3.12")
8173 (source (origin
8174 (method url-fetch)
8175 (uri (string-append "https://raw.githubusercontent.com"
8176 "/DarwinAwardWinner/ido-ubiquitous/v"
8177 version "/ido-completing-read+.el"))
8178 (file-name (string-append "ido-completing-read+-" version ".el"))
8179 (sha256
8180 (base32
8181 "1cyalb0p7nfsm4n6n9q6rjmvn6adqc0fq8ybnlj3n41n289dkfjf"))))
8182 (build-system emacs-build-system)
8183 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
8184 (synopsis "Replacement for completing-read using ido")
8185 (description
8186 "The ido-completing-read+ function is a wrapper for ido-completing-read.
8187 Importantly, it detects edge cases that ordinary ido cannot handle and either
8188 adjusts them so ido can handle them, or else simply falls back to the standard
8189 Emacs completion function instead.")
8190 (license license:gpl3+)))
8191
8192 (define-public emacs-ido-ubiquitous
8193 (package
8194 (name "emacs-ido-ubiquitous")
8195 (version "3.12")
8196 (source (origin
8197 (method url-fetch)
8198 (uri (string-append "https://raw.githubusercontent.com"
8199 "/DarwinAwardWinner/ido-ubiquitous/v"
8200 version "/ido-ubiquitous.el"))
8201 (file-name (string-append "ido-ubiquitous-" version ".el"))
8202 (sha256
8203 (base32
8204 "197ypji0fb6jsdcq40rpnknwlh3imas6s6jbsvkfm0pz9988c3q2"))))
8205 (build-system emacs-build-system)
8206 (propagated-inputs
8207 `(("emacs-ido-completing-read+" ,emacs-ido-completing-read+)))
8208 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
8209 (synopsis "Use ido (nearly) everywhere")
8210 (description
8211 "Ido-ubiquitous enables ido-style completion for almost every function
8212 that uses the standard completion function completing-read.")
8213 (license license:gpl3+)))
8214
8215 (define-public emacs-yaml-mode
8216 (package
8217 (name "emacs-yaml-mode")
8218 (version "0.0.14")
8219 (source (origin
8220 (method git-fetch)
8221 (uri (git-reference
8222 (url "https://github.com/yoshiki/yaml-mode")
8223 (commit version)))
8224 (file-name (git-file-name name version))
8225 (sha256
8226 (base32
8227 "18g064ardqi1f3xz7j6rs1x9fvv9sn0iq9vgid8c6qvxq7gwj00r"))))
8228 (build-system emacs-build-system)
8229 (home-page "https://github.com/yoshiki/yaml-mode")
8230 (synopsis "Major mode for editing YAML files")
8231 (description
8232 "Yaml-mode is an Emacs major mode for editing files in the YAML data
8233 serialization format. It was initially developed by Yoshiki Kurihara and many
8234 features were added by Marshall Vandegrift. As YAML and Python share the fact
8235 that indentation determines structure, this mode provides indentation and
8236 indentation command behavior very similar to that of python-mode.")
8237 (license license:gpl3+)))
8238
8239 (define-public emacs-gitlab-ci-mode
8240 (package
8241 (name "emacs-gitlab-ci-mode")
8242 (version "20190425.11.10")
8243 (source (origin
8244 (method git-fetch)
8245 (uri (git-reference
8246 (url "https://gitlab.com/joewreschnig/gitlab-ci-mode.git")
8247 (commit (string-append "v" version))))
8248 (file-name (git-file-name name version))
8249 (sha256
8250 (base32
8251 "1jkp9mnbiccqnha9zs646znqyqvy5jjb81kah7ghbkzdqqk2avm0"))))
8252 (build-system emacs-build-system)
8253 (propagated-inputs
8254 `(("emacs-yaml-mode" ,emacs-yaml-mode)))
8255 (home-page "https://gitlab.com/joewreschnig/gitlab-ci-mode/")
8256 (synopsis "Emacs mode for editing GitLab CI files")
8257 (description
8258 "@code{gitlab-ci-mode} is an Emacs major mode for editing GitLab CI
8259 files. It provides syntax highlighting and completion for keywords and
8260 special variables. An interface to GitLab’s CI file linter is also provided
8261 via @code{gitlab-ci-lint}.")
8262 (license license:gpl3+)))
8263
8264 (define-public emacs-gitlab-snip-helm
8265 (package
8266 (name "emacs-gitlab-snip-helm")
8267 (version "0.0.2")
8268 (source (origin
8269 (method git-fetch)
8270 (uri (git-reference
8271 (url "https://gitlab.com/sasanidas/gitlab-snip-helm.git")
8272 (commit version)))
8273 (file-name (git-file-name name version))
8274 (sha256
8275 (base32
8276 "1c5js19zyb1z61hapvbfcl5jhrjqij46cxldgqij6al0scw44dga"))))
8277 (build-system emacs-build-system)
8278 (propagated-inputs
8279 `(("emacs-dash" ,emacs-dash)
8280 ("emacs-helm" ,emacs-helm)))
8281 (home-page "https://gitlab.com/sasanidas/gitlab-snip-helm/")
8282 (synopsis "GitLab snippet API interaction for Emacs")
8283 (description "This package provides GitLab snippet API interaction for
8284 Emacs.")
8285 (license license:gpl3+)))
8286
8287 (define-public emacs-web-mode
8288 (package
8289 (name "emacs-web-mode")
8290 (version "17")
8291 (source
8292 (origin
8293 (method git-fetch)
8294 (uri (git-reference
8295 (url "https://github.com/fxbois/web-mode")
8296 (commit (string-append "v" version))))
8297 (file-name (git-file-name name version))
8298 (sha256
8299 (base32 "0jr5a1nzp8nbdng0k2fcaymiiv9ngrbknbrqaswgqn3akvx793jk"))))
8300 (build-system emacs-build-system)
8301 (synopsis "Major mode for editing web templates")
8302 (description "Web mode is an Emacs major mode for editing web templates
8303 aka HTML files embedding parts (CSS/JavaScript) and blocks (pre rendered by
8304 client/server side engines). Web mode is compatible with many template
8305 engines: PHP, JSP, ASP, Django, Twig, Jinja, Mustache, ERB, FreeMarker,
8306 Velocity, Cheetah, Smarty, CTemplate, Mustache, Blade, ErlyDTL, Go Template,
8307 Dust.js, React/JSX, Angularjs, ejs, etc.")
8308 (home-page "http://web-mode.org/")
8309 (license license:gpl3+)))
8310
8311 (define-public emacs-wgrep
8312 (package
8313 (name "emacs-wgrep")
8314 (version "2.3.2")
8315 (source (origin
8316 (method git-fetch)
8317 (uri (git-reference
8318 (url "https://github.com/mhayashi1120/Emacs-wgrep")
8319 (commit version)))
8320 (file-name (git-file-name name version))
8321 (sha256
8322 (base32
8323 "00cwqzb94jlq4mwgv8z7r3mn0a6mhq95z6j189kacq9g4473zh8d"))))
8324 (build-system emacs-build-system)
8325 (home-page "https://github.com/mhayashi1120/Emacs-wgrep")
8326 (synopsis "Edit a grep buffer and apply those changes to the files")
8327 (description
8328 "Emacs wgrep allows you to edit a grep buffer and apply those changes
8329 to the file buffer. Several backends are supported beside the classic grep:
8330 ack, ag, helm and pt.")
8331 (license license:gpl3+)))
8332
8333 (define-public emacs-helm
8334 (package
8335 (name "emacs-helm")
8336 (version "3.6.4")
8337 (source
8338 (origin
8339 (method git-fetch)
8340 (uri (git-reference
8341 (url "https://github.com/emacs-helm/helm")
8342 (commit (string-append "v" version))))
8343 (file-name (git-file-name name version))
8344 (sha256
8345 (base32 "0cl5awhq5py872qx9s30sfgfpfwjivwbsi18mgar8lj6lvs4s8zz"))))
8346 (build-system emacs-build-system)
8347 (propagated-inputs
8348 `(("emacs-async" ,emacs-async)
8349 ("emacs-popup" ,emacs-popup)))
8350 (home-page "https://emacs-helm.github.io/helm/")
8351 (synopsis "Incremental completion and selection narrowing
8352 framework for Emacs")
8353 (description "Helm is incremental completion and selection narrowing
8354 framework for Emacs. It will help steer you in the right direction when
8355 you're looking for stuff in Emacs (like buffers, files, etc). Helm is a fork
8356 of @code{anything.el} originally written by Tamas Patrovic and can be
8357 considered to be its successor. Helm sets out to clean up the legacy code in
8358 @code{anything.el} and provide a cleaner, leaner and more modular tool, that's
8359 not tied in the trap of backward compatibility.")
8360 (license license:gpl3+)))
8361
8362 (define-public emacs-helm-org
8363 (let ((commit "8457e1e46227bf87726e05c42cec5a4b51c2ef7b")
8364 (revision "3"))
8365 (package
8366 (name "emacs-helm-org")
8367 (version (git-version "1.0" revision commit))
8368 (source
8369 (origin
8370 (method git-fetch)
8371 (uri (git-reference
8372 (url "https://github.com/emacs-helm/helm-org")
8373 (commit commit)))
8374 (file-name (git-file-name name version))
8375 (sha256
8376 (base32 "0kcjhwwi492n9m2w894hvdavfvhj45zygy7bwvx103wvpay5h6h6"))))
8377 (build-system emacs-build-system)
8378 (propagated-inputs
8379 `(("emacs-helm" ,emacs-helm)))
8380 (home-page "https://github.com/emacs-helm/helm-org")
8381 (synopsis "Helm interface to the Silver Searcher")
8382 (description
8383 "This package provides a frontend for grepping tools like ag and ack,
8384 as well as features for editing search results.")
8385 (license license:gpl3+))))
8386
8387 (define-public emacs-helm-swoop
8388 (package
8389 (name "emacs-helm-swoop")
8390 (version "3.0.0")
8391 (source
8392 (origin
8393 (method git-fetch)
8394 (uri (git-reference
8395 (url "https://github.com/emacsorphanage/helm-swoop")
8396 (commit version)))
8397 (file-name (git-file-name name version))
8398 (sha256
8399 (base32 "1qjay0fvryxa8n1ws6r1by512p2fylb2nj7ycm1497fcalb0d706"))))
8400 (build-system emacs-build-system)
8401 (propagated-inputs
8402 `(("emacs-helm" ,emacs-helm)))
8403 (home-page "https://github.com/emacsorphanage/helm-swoop")
8404 (synopsis "Filter and jump to lines in an Emacs buffer using Helm")
8405 (description
8406 "This package builds on the Helm interface to provide several commands
8407 for search-based navigation of buffers.")
8408 (license license:gpl2+)))
8409
8410 (define-public emacs-helm-ag
8411 (package
8412 (name "emacs-helm-ag")
8413 (version "0.62")
8414 (source
8415 (origin
8416 (method git-fetch)
8417 (uri (git-reference
8418 (url "https://github.com/syohex/emacs-helm-ag")
8419 (commit version)))
8420 (file-name (git-file-name name version))
8421 (sha256
8422 (base32 "0xgbpp8xqdiyvfs64x0q909g77ml28z3irw2lnasvpsg0dfdm2zy"))))
8423 (build-system emacs-build-system)
8424 (propagated-inputs
8425 `(("emacs-helm" ,emacs-helm)))
8426 (home-page "https://github.com/syohex/emacs-helm-ag")
8427 (synopsis "Helm interface to the Silver Searcher")
8428 (description
8429 "This package provides a frontend for grepping tools like ag and ack,
8430 as well as features for editing search results.")
8431 (license license:gpl3+)))
8432
8433 (define-public emacs-helm-projectile
8434 (package
8435 (name "emacs-helm-projectile")
8436 (version "1.0.0")
8437 (source
8438 (origin
8439 (method git-fetch)
8440 (uri (git-reference
8441 (url "https://github.com/bbatsov/helm-projectile")
8442 (commit (string-append "v" version))))
8443 (file-name (git-file-name name version))
8444 (sha256
8445 (base32 "05gpg90gg03yalmv9fw1y9k21i2l617iipvs0p9n80aln8nrzs8g"))))
8446 (build-system emacs-build-system)
8447 (propagated-inputs
8448 `(("emacs-helm" ,emacs-helm)
8449 ("emacs-projectile" ,emacs-projectile)))
8450 (home-page "https://github.com/bbatsov/helm-projectile")
8451 (synopsis "Helm integration for Projectile")
8452 (description
8453 "This Emacs library provides a Helm interface for Projectile.")
8454 (license license:gpl3+)))
8455
8456 (define-public emacs-taskrunner
8457 (let ((commit "3afd4a546d42339543d3d4e51b175fc3e82b3358")
8458 (revision "1"))
8459 (package
8460 (name "emacs-taskrunner")
8461 (version (git-version "0.6" revision commit))
8462 (source
8463 (origin
8464 (method git-fetch)
8465 (uri (git-reference
8466 (url "https://github.com/emacs-taskrunner/emacs-taskrunner")
8467 (commit commit)))
8468 (file-name (git-file-name name version))
8469 (sha256
8470 (base32
8471 "1lkdvmjn3alhqxq2i64sdr977sbw3g0b2670d9bwyzi67qh0jxrv"))))
8472 (build-system emacs-build-system)
8473 (propagated-inputs
8474 `(("emacs-async" ,emacs-async)
8475 ("emacs-projectile" ,emacs-projectile)))
8476 (home-page "https://github.com/emacs-taskrunner/emacs-taskrunner")
8477 (synopsis "Retrieve tasks from various build systems and task-runners")
8478 (description "This package parses Makefiles and build-system files for
8479 multiple project types.")
8480 (license license:gpl3+))))
8481
8482 (define-public emacs-ivy-taskrunner
8483 (let ((commit "75d8d67cfe3c29663fe0f5508a887adf40ed5162")
8484 (revision "1"))
8485 (package
8486 (name "emacs-ivy-taskrunner")
8487 (version (git-version "0.9" revision commit))
8488 (source
8489 (origin
8490 (method git-fetch)
8491 (uri (git-reference
8492 (url "https://github.com/emacs-taskrunner/ivy-taskrunner")
8493 (commit commit)))
8494 (file-name (git-file-name name version))
8495 (sha256
8496 (base32
8497 "1wf4s4k0ap21f7g5w6128an8nsvbja7f5n889vcml5b6gjz058db"))))
8498 (build-system emacs-build-system)
8499 (propagated-inputs
8500 `(("emacs-ivy" ,emacs-ivy)
8501 ("emacs-taskrunner" ,emacs-taskrunner)
8502 ("emacs-projectile" ,emacs-projectile)))
8503 (home-page "https://github.com/emacs-taskrunner/ivy-taskrunner")
8504 (synopsis "Retrieve build-system tasks using Ivy")
8505 (description "This package provides an Ivy interface for selecting
8506 Makefile targets.")
8507 (license license:gpl3+))))
8508
8509 (define-public emacs-helm-taskrunner
8510 (let ((commit "1910dac19cbc7bd4fd08b0faf9affd455339fbea")
8511 (revision "1"))
8512 (package
8513 (name "emacs-helm-taskrunner")
8514 (version (git-version "0.9" revision commit))
8515 (source
8516 (origin
8517 (method git-fetch)
8518 (uri (git-reference
8519 (url "https://github.com/emacs-taskrunner/helm-taskrunner")
8520 (commit commit)))
8521 (file-name (git-file-name name version))
8522 (sha256
8523 (base32
8524 "182lmr858fx6rdhp1fy7kv8dvrhzcnxzwfck1q22s6xs8x85d5q7"))))
8525 (build-system emacs-build-system)
8526 (propagated-inputs
8527 `(("emacs-helm" ,emacs-helm)
8528 ("emacs-taskrunner" ,emacs-taskrunner)
8529 ("emacs-projectile" ,emacs-projectile)))
8530 (home-page "https://github.com/emacs-taskrunner/helm-taskrunner")
8531 (synopsis "Retrieve build-system tasks using Helm")
8532 (description "This package provides a Helm interface for selecting
8533 Makefile targets.")
8534 (license license:gpl3+))))
8535
8536 (define-public emacs-helm-make
8537 (let ((commit "feae8df22bc4b20705ea08ac9adfc2b43bb348d0")
8538 (revision "1"))
8539 (package
8540 (name "emacs-helm-make")
8541 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
8542 (source
8543 (origin
8544 (method git-fetch)
8545 (uri (git-reference
8546 (url "https://github.com/abo-abo/helm-make")
8547 (commit commit)))
8548 (file-name (git-file-name name version))
8549 (sha256
8550 (base32
8551 "1y2v77mmd1bfkkz51cnk1l0dg3lvvxc39wlamnm7wjns66dbvlam"))))
8552 (build-system emacs-build-system)
8553 (propagated-inputs
8554 `(("emacs-helm" ,emacs-helm)
8555 ("emacs-projectile" ,emacs-projectile)))
8556 (home-page "https://github.com/abo-abo/helm-make")
8557 (synopsis "Select a Makefile target with helm")
8558 (description "@code{helm-make} or @code{helm-make-projectile} will give
8559 you a @code{helm} selection of directory Makefile's targets. Selecting a
8560 target will call @code{compile} on it.")
8561 (license license:gpl3+))))
8562
8563 (define-public emacs-cider
8564 (package
8565 (name "emacs-cider")
8566 (version "0.26.0")
8567 (source
8568 (origin
8569 (method git-fetch)
8570 (uri (git-reference
8571 (url "https://github.com/clojure-emacs/cider")
8572 (commit (string-append "v" version))))
8573 (file-name (git-file-name name version))
8574 (sha256
8575 (base32 "1qwizvmm9ln75ph1jg2rfqv3hd9p4zaz8kp2i6yr3vq99c3a00i7"))))
8576 (build-system emacs-build-system)
8577 (arguments
8578 '(#:exclude ;don't exclude 'cider-test.el'
8579 '("^\\.dir-locals\\.el$" "^test/")))
8580 (propagated-inputs
8581 `(("emacs-clojure-mode" ,emacs-clojure-mode)
8582 ("emacs-parseedn" ,emacs-parseedn)
8583 ("emacs-pkg-info" ,emacs-pkg-info)
8584 ("emacs-queue" ,emacs-queue)
8585 ("emacs-sesman" ,emacs-sesman)
8586 ("emacs-spinner" ,emacs-spinner)))
8587 (home-page "https://cider.mx/")
8588 (synopsis "Clojure development environment for Emacs")
8589 (description
8590 "CIDER (Clojure Interactive Development Environment that Rocks) aims to
8591 provide an interactive development experience similar to the one you'd get
8592 when programming in Emacs Lisp, Common Lisp (with SLIME or Sly), Scheme (with
8593 Geiser) and Smalltalk.
8594
8595 CIDER is the successor to the now deprecated combination of using SLIME +
8596 swank-clojure for Clojure development.
8597
8598 There are plenty of differences between CIDER and SLIME, but the core ideas
8599 are pretty much the same (and SLIME served as the principle inspiration for
8600 CIDER).")
8601 (license license:gpl3+)))
8602
8603 ;; There hasn't been a tag or release since 2016, so we take the latest
8604 ;; commit.
8605 (define-public emacs-sly
8606 (let ((commit "6a2f543cb21f14104c2253af5a1427b884a987ae")
8607 ;; Update together with sbcl-slynk-boot0.
8608 (revision "5"))
8609 (package
8610 (name "emacs-sly")
8611 (version (git-version "1.0.0" revision commit))
8612 (source
8613 (origin
8614 (method git-fetch)
8615 (uri (git-reference
8616 (url "https://github.com/joaotavora/sly")
8617 (commit commit)))
8618 (file-name (git-file-name name version))
8619 (sha256
8620 (base32
8621 "0wbpg9p9yg2hd62l15pvy50fk3hndq5zzyqlyyf04g368s895144"))))
8622 (build-system emacs-build-system)
8623 (native-inputs
8624 `(("texinfo" ,texinfo)))
8625 (arguments
8626 `(#:include (cons* "^contrib\\/" "^lib\\/" "^slynk\\/" %default-include)
8627 #:phases
8628 ;; The package provides autoloads.
8629 (modify-phases %standard-phases
8630 (delete 'make-autoloads)
8631 (add-before 'install 'install-doc
8632 (lambda* (#:key outputs #:allow-other-keys)
8633 (let* ((out (assoc-ref outputs "out"))
8634 (info-dir (string-append out "/share/info"))
8635 (doc-dir (string-append out "/share/doc/"
8636 ,name "-" ,version))
8637 (doc-files '(;; "doc/sly-refcard.pdf" ; See sly-refcard.pdf below.
8638 "README.md" "NEWS.md" "PROBLEMS.md"
8639 "CONTRIBUTING.md")))
8640 (with-directory-excursion "doc"
8641 (substitute* "Makefile"
8642 (("infodir=/usr/local/info")
8643 (string-append "infodir=" info-dir))
8644 ;; Don't rebuild contributors.texi since we are not in
8645 ;; the git repo.
8646 (("contributors.texi: Makefile texinfo-tabulate.awk")
8647 "contributors.texi:"))
8648 (invoke "make" "html/index.html")
8649 (invoke "make" "sly.info")
8650 ;; TODO: We need minimal texlive with "preprint" package
8651 ;; (for fullpage.sty). (invoke "make" "sly-refcard.pdf")
8652 (install-file "sly.info" info-dir)
8653 (copy-recursively "html" (string-append doc-dir "/html")))
8654 (for-each (lambda (f)
8655 (install-file f doc-dir)
8656 (delete-file f))
8657 doc-files)
8658 (delete-file-recursively "doc")
8659 #t))))))
8660 (home-page "https://github.com/joaotavora/sly")
8661 (synopsis "Sylvester the Cat's Common Lisp IDE")
8662 (description
8663 "SLY is Sylvester the Cat's Common Lisp IDE. SLY is a fork of SLIME, and
8664 contains the following improvements over it:
8665
8666 @enumerate
8667 @item Completely redesigned REPL based on Emacs's own full-featured
8668 @code{comint.el}.
8669 @item Live code annotations via a new @code{sly-stickers} contrib.
8670 @item Consistent interactive button interface. Everything can be copied to
8671 the REPL.
8672 @item Multiple inspectors with independent history.
8673 @item Regexp-capable @code{M-x sly-apropos}.
8674 @item Contribs are first class SLY citizens and enabled by default.
8675 @item Use ASDF to loads contribs on demand.
8676 @end enumerate
8677
8678 SLY tracks SLIME's bugfixes and all its familiar features (debugger, inspector,
8679 xref, etc...) are still available, but with better integration.")
8680 (license license:gpl3+))))
8681
8682 (define-public emacs-sly-quicklisp
8683 (let ((commit "01ebe3976a244309f2e277c09206831135a0b66c")
8684 (revision "1"))
8685 (package
8686 (name "emacs-sly-quicklisp")
8687 (version (git-version "0.0.0" revision commit))
8688 (home-page "https://github.com/joaotavora/sly-quicklisp")
8689 (source
8690 (origin
8691 (method git-fetch)
8692 (uri (git-reference
8693 (url home-page)
8694 (commit commit)))
8695 (file-name (git-file-name name version))
8696 (sha256
8697 (base32
8698 "1vfqmvayf35g6y3ljsm3rlzv5jm50qikhh4lv2zkkswj6gkkb1cv"))))
8699 (build-system emacs-build-system)
8700 (propagated-inputs
8701 `(("emacs-sly" ,emacs-sly)))
8702 (arguments
8703 `(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
8704 #:phases
8705 ;; The package provides autoloads.
8706 (modify-phases %standard-phases
8707 (delete 'make-autoloads)
8708 (delete 'enable-autoloads-compilation))))
8709 (synopsis "Quicklisp support for SLY")
8710 (description
8711 "@command{sly-quicklisp} is an external contrib for SLY that provides a
8712 sly-quickload command that prompts the user for a package to install. ")
8713 (license license:gpl3+))))
8714
8715 (define-public emacs-sly-asdf
8716 (let ((commit "32ce14994e8faee9321605cec36d156b02996c46")
8717 (revision "4"))
8718 (package
8719 (name "emacs-sly-asdf")
8720 (version (git-version "0.1.0" revision commit))
8721 (home-page "https://github.com/mmgeorge/sly-asdf")
8722 (source
8723 (origin
8724 (method git-fetch)
8725 (uri (git-reference
8726 (url home-page)
8727 (commit commit)))
8728 (file-name (git-file-name name version))
8729 (sha256
8730 (base32
8731 "09x8l37wwqw74xc2frwzbfdb1if8rb3szg5akdk3v2qhik4sm3dd"))))
8732 (build-system emacs-build-system)
8733 (propagated-inputs
8734 `(("emacs-sly" ,emacs-sly)
8735 ("emacs-popup" ,emacs-popup)))
8736 (arguments
8737 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)))
8738 (synopsis "ASDF contrib for SLY")
8739 (description
8740 "@command{sly-asdf} is an external contrib for SLY that provides
8741 additional support for working with ASDF projects.")
8742 (license license:gpl3+))))
8743
8744 (define-public emacs-sly-named-readtables
8745 (let ((commit "a5a42674ccffa97ccd5e4e9742beaf3ea719931f")
8746 (revision "1"))
8747 (package
8748 (name "emacs-sly-named-readtables")
8749 (version (git-version "0.1" revision commit))
8750 (home-page "https://github.com/joaotavora/sly-named-readtables")
8751 (source
8752 (origin
8753 (method git-fetch)
8754 (uri (git-reference
8755 (url home-page)
8756 (commit commit)))
8757 (file-name (git-file-name name version))
8758 (sha256
8759 (base32
8760 "16asd119rzqrlclps2q6yrkis8jy5an5xgzzqvb7jdyq39zxg54q"))))
8761 (build-system emacs-build-system)
8762 (propagated-inputs
8763 `(("emacs-sly" ,emacs-sly)))
8764 (arguments
8765 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
8766 #:phases (modify-phases %standard-phases
8767 ;; Byte compilation of the autoload file fails.
8768 (delete 'enable-autoloads-compilation))))
8769 (synopsis "Named-readtables support for SLY")
8770 (description
8771 "@command{sly-named-readtables} is an external contrib for SLY that
8772 enables different readtables to be active in different parts of the same
8773 file.")
8774 (license license:gpl3+))))
8775
8776 (define-public emacs-sly-macrostep
8777 (let ((commit "be2d24545092d164be1a91031d8881afd29c9ec0")
8778 (revision "1"))
8779 (package
8780 (name "emacs-sly-macrostep")
8781 (version (git-version "0.1" revision commit))
8782 (home-page "https://github.com/joaotavora/sly-macrostep")
8783 (source
8784 (origin
8785 (method git-fetch)
8786 (uri (git-reference
8787 (url home-page)
8788 (commit commit)))
8789 (file-name (git-file-name name version))
8790 (sha256
8791 (base32
8792 "0v8m3zkccpqd2l8m9340y672l2mm3mrry8422nva5kfvpcwdayqb"))))
8793 (build-system emacs-build-system)
8794 (propagated-inputs
8795 `(("emacs-sly" ,emacs-sly)
8796 ("emacs-macrostep" ,emacs-macrostep)))
8797 (arguments
8798 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
8799 #:phases
8800 ;; The package provides autoloads.
8801 (modify-phases %standard-phases
8802 (delete 'make-autoloads)
8803 (delete 'enable-autoloads-compilation))))
8804 (synopsis "Expand Common Lisp macros inside source files with SLY")
8805 (description
8806 "@command{sly-macrostep} is a SLY contrib for expanding CL macros right
8807 inside the source file.")
8808 (license license:gpl3+))))
8809
8810 (define-public emacs-sly-package-inferred
8811 (let ((commit "800e71e2be631422277e2ec77e6d6f6ea20e95ef")
8812 (revision "1"))
8813 (package
8814 (name "emacs-sly-package-inferred")
8815 (version (git-version "0.1" revision commit))
8816 (home-page "https://github.com/40ants/sly-package-inferred")
8817 (source
8818 (origin
8819 (method git-fetch)
8820 (uri (git-reference
8821 (url home-page)
8822 (commit commit)))
8823 (file-name (git-file-name name version))
8824 (sha256
8825 (base32
8826 "1216idyp034nkqddhw4p53jkhhdxa6xnjjmsvijpf4rxqnfqvapg"))))
8827 (build-system emacs-build-system)
8828 (propagated-inputs
8829 `(("emacs-sly" ,emacs-sly)))
8830 (arguments
8831 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
8832 #:phases
8833 ;; The package provides autoloads.
8834 (modify-phases %standard-phases
8835 (delete 'make-autoloads))))
8836 (synopsis "Improved package inferred systems support for SLY")
8837 (description
8838 "@command{sly-package-inferred} is an external contrib for SLY that
8839 replaces its completion with a function which is better suited for systems
8840 using package inferred style.")
8841 (license license:gpl3+))))
8842
8843 (define-public emacs-lua-mode
8844 (let ((commit "35b6e4c20b8b4eaf783ccc8e613d0dd06dbd165c")
8845 (revision "0"))
8846 (package
8847 (name "emacs-lua-mode")
8848 (version (git-version "20200508" revision commit))
8849 (home-page "https://github.com/immerrr/lua-mode/")
8850 (source (origin
8851 (method git-fetch)
8852 (uri (git-reference
8853 (url home-page)
8854 (commit commit)))
8855 (file-name (git-file-name name version))
8856 (sha256
8857 (base32
8858 "1hai6rqjm5py0bp57nhggmj9qigwdj3a46ngacpnjc1qmy9kkgfk"))))
8859 (build-system emacs-build-system)
8860 (arguments
8861 `(#:tests? #t
8862 #:test-command '("buttercup" "-l" "lua-mode.el")))
8863 (native-inputs
8864 `(("emacs-buttercup" ,emacs-buttercup)
8865 ("lua" ,lua)))
8866 (synopsis "Major mode for lua")
8867 (description
8868 "This Emacs package provides a mode for @uref{https://www.lua.org/,
8869 Lua programming language}.")
8870 (license license:gpl2+))))
8871
8872 (define-public emacs-ebuild-mode
8873 (package
8874 (name "emacs-ebuild-mode")
8875 (version "1.51")
8876 (source
8877 (origin
8878 (method url-fetch)
8879 (uri (string-append
8880 "https://dev.gentoo.org/~ulm/emacs/"
8881 "ebuild-mode-" version ".tar.xz"))
8882 (file-name (string-append name "-" version ".tar.xz"))
8883 (sha256
8884 (base32 "0sfmd6ns2qdmybcynlvc4fqzkbkzmm54rn87wyirdcqnpy0x03i2"))))
8885 (build-system emacs-build-system)
8886 (arguments
8887 '(#:phases
8888 (modify-phases %standard-phases
8889 (add-after 'install 'install-doc
8890 (lambda* (#:key outputs #:allow-other-keys)
8891 (invoke "make" "ebuild-mode.info")
8892 (install-file "ebuild-mode.info"
8893 (string-append (assoc-ref outputs "out")
8894 "/share/info"))
8895 #t)))))
8896 (native-inputs
8897 `(("texinfo" ,texinfo)))
8898 (home-page "https://devmanual.gentoo.org")
8899 (synopsis "Major modes for Gentoo package files")
8900 (description
8901 "This Emacs package provides modes for ebuild, eclass, eblit, GLEP42
8902 news items, openrc and runscripts.")
8903 (license license:gpl2+)))
8904
8905 (define-public emacs-evil
8906 (package
8907 (name "emacs-evil")
8908 (version "1.14.0")
8909 (source
8910 (origin
8911 (method git-fetch)
8912 (uri (git-reference
8913 (url "https://github.com/emacs-evil/evil")
8914 (commit version)))
8915 (file-name (git-file-name name version))
8916 (sha256
8917 (base32
8918 "17xrn3s6a4afmls8fw8nnxa1jq9dmj2qqrxa2vngh50hxpz8840p"))))
8919 (arguments
8920 `(#:phases
8921 (modify-phases %standard-phases
8922 (add-before 'check 'fix-test-helpers
8923 (lambda _
8924 (substitute* "evil-test-helpers.el"
8925 (("\\(undo-tree-mode 1\\)") ""))
8926 #t)))))
8927 (build-system emacs-build-system)
8928 (home-page "https://github.com/emacs-evil/evil")
8929 (synopsis "Extensible Vi layer for Emacs")
8930 (description
8931 "Evil is an extensible vi layer for Emacs. It emulates the
8932 main features of Vim, and provides facilities for writing custom
8933 extensions.")
8934 (license license:gpl3+)))
8935
8936 (define-public emacs-evil-collection
8937 (let ((commit "c68aed6a9694836602ada224160bc5b4c0a37919")
8938 (revision "15"))
8939 (package
8940 (name "emacs-evil-collection")
8941 (version (git-version "0.0.3" revision commit))
8942 (source (origin
8943 (method git-fetch)
8944 (uri (git-reference
8945 (url "https://github.com/emacs-evil/evil-collection")
8946 (commit commit)))
8947 (file-name (git-file-name name version))
8948 (sha256
8949 (base32
8950 "1xhrzl0vy540a572f9fnh5a039bpqsrkv0kh6bqw0rki70w7x0xx"))))
8951 (build-system emacs-build-system)
8952 (propagated-inputs
8953 `(("emacs-evil" ,emacs-evil)
8954 ("emacs-annalist" ,emacs-annalist)))
8955 (arguments
8956 `(#:include (cons* "^modes\\/" %default-include)))
8957 (home-page "https://github.com/emacs-evil/evil-collection")
8958 (synopsis "Collection of Evil bindings for many major and minor modes")
8959 (description "This is a collection of Evil bindings for the parts of
8960 Emacs that Evil does not cover properly by default, such as @code{help-mode},
8961 @code{M-x calendar}, Eshell and more.")
8962 (license license:gpl3+))))
8963
8964 (define-public emacs-goto-chg
8965 (let ((commit "1829a13026c597e358f716d2c7793202458120b5")
8966 (version "1.7.3")
8967 (revision "1"))
8968 (package
8969 (name "emacs-goto-chg")
8970 (version (git-version version revision commit))
8971 (source
8972 (origin
8973 (method git-fetch)
8974 (uri (git-reference
8975 (url "https://github.com/emacs-evil/goto-chg")
8976 (commit commit)))
8977 (file-name (git-file-name name version))
8978 (sha256
8979 (base32
8980 "1y603maw9xwdj3qiarmf1bp13461f9f5ackzicsbynl0i9la3qki"))))
8981 (build-system emacs-build-system)
8982 (propagated-inputs
8983 `(("emacs-undo-tree" ,emacs-undo-tree)))
8984 (home-page "https://github.com/emacs-evil/goto-chg")
8985 (synopsis "Go to the last change in the Emacs buffer")
8986 (description
8987 "This package provides @code{M-x goto-last-change} command that goes to
8988 the point of the most recent edit in the current Emacs buffer. When repeated,
8989 go to the second most recent edit, etc. Negative argument, @kbd{C-u -}, is
8990 used for reverse direction.")
8991 (license license:gpl2+))))
8992
8993 (define-public emacs-janpath-evil-numbers
8994 (let ((commit "d988041c1fe6e941dc8d591390750b237f71f524")
8995 (version "0.5")
8996 (revision "1"))
8997 (package
8998 (name "emacs-janpath-evil-numbers")
8999 (version (git-version version revision commit))
9000 (source
9001 (origin
9002 (method git-fetch)
9003 (uri (git-reference
9004 (url "https://github.com/janpath/evil-numbers")
9005 (commit commit)))
9006 (file-name (git-file-name name version))
9007 (sha256
9008 (base32
9009 "16zixhxxcb83m82f2cfiardfn99j3w41v6vh1qk6j9pplrlfw70v"))))
9010 (build-system emacs-build-system)
9011 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9012 (home-page "https://github.com/janpath/evil-numbers")
9013 (synopsis "Increment and decrement numeric literals")
9014 (description
9015 "This package provides functionality to search for a number up to the
9016 end of a line and increment or decrement it.")
9017 (license license:gpl3+))))
9018
9019 (define-public emacs-evil-owl
9020 (let ((commit "24c5f43df375194386344e69bc720ea3986c9510")
9021 (revision "3"))
9022 (package
9023 (name "emacs-evil-owl")
9024 (version (git-version "0.0.1" revision commit))
9025 (source
9026 (origin
9027 (method git-fetch)
9028 (uri (git-reference
9029 (url "https://github.com/mamapanda/evil-owl")
9030 (commit commit)))
9031 (file-name (git-file-name name version))
9032 (sha256
9033 (base32
9034 "0bqzch14whlmrcasakah3psrzswvkzd7mmi8hx5s64kfp29wbdhi"))))
9035 (build-system emacs-build-system)
9036 (propagated-inputs
9037 `(("emacs-evil" ,emacs-evil)))
9038 (arguments
9039 `(#:tests? #t
9040 #:test-command '("make" "test")))
9041 (home-page "https://github.com/mamapanda/evil-owl")
9042 (synopsis "Preview candidates when using Evil registers and marks")
9043 (description
9044 "This package supplements Evil's register- and mark-based commands with
9045 a popup window for previewing candidates.")
9046 (license license:gpl3+))))
9047
9048 (define-public emacs-evil-args
9049 (let ((commit "758ad5ae54ad34202064fec192c88151c08cb387")
9050 (revision "1"))
9051 (package
9052 (name "emacs-evil-args")
9053 (version (git-version "1.0" revision commit))
9054 (source
9055 (origin
9056 (method git-fetch)
9057 (uri (git-reference
9058 (url "https://github.com/wcsmith/evil-args")
9059 (commit commit)))
9060 (file-name (git-file-name name version))
9061 (sha256
9062 (base32
9063 "0k35glgsirc3cph8v5hhjrqfh4ndwh8a28qbr03y3jl8s453xcj7"))))
9064 (build-system emacs-build-system)
9065 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9066 (home-page "https://github.com/wcsmith/evil-args")
9067 (synopsis "Motions and text objects for delimited arguments in Evil")
9068 (description
9069 "This package provides motions and text objects for delimited
9070 arguments, such as arguments separated by commas and semicolons.")
9071 (license license:expat))))
9072
9073 (define-public emacs-evil-escape
9074 (package
9075 (name "emacs-evil-escape")
9076 (version "3.14")
9077 (source
9078 (origin
9079 (method git-fetch)
9080 (uri
9081 (git-reference
9082 (url "https://github.com/syl20bnr/evil-escape")
9083 (commit (string-append "v" version))))
9084 (file-name (git-file-name name version))
9085 (sha256
9086 (base32 "0s8lmmm25qabicwaj9jybpbd8mkc62yl7jnhk1lpablydjkv3w2i"))))
9087 (propagated-inputs
9088 `(("emacs-evil" ,emacs-evil)))
9089 (build-system emacs-build-system)
9090 (home-page "https://github.com/syl20bnr/evil-escape")
9091 (synopsis "Escape from insert state and everything else in Emacs")
9092 (description
9093 "Evil escape provides a customizable key sequence to escape from insert
9094 state and everything else in Emacs.")
9095 (license license:gpl3+)))
9096
9097 (define-public emacs-evil-exchange
9098 (let ((commit "47691537815150715e64e6f6ec79be7746c96120")
9099 (version "0.41")
9100 (revision "1"))
9101 (package
9102 (name "emacs-evil-exchange")
9103 (version (git-version version revision commit))
9104 (source
9105 (origin
9106 (method git-fetch)
9107 (uri (git-reference
9108 (url "https://github.com/Dewdrops/evil-exchange")
9109 (commit commit)))
9110 (file-name (git-file-name name version))
9111 (sha256
9112 (base32
9113 "0bjpn4yqig17ddym6wqq5fm1b294q74hzcbj9a6gs97fqiwf88xa"))))
9114 (build-system emacs-build-system)
9115 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9116 (native-inputs `(("emacs-ert-runner" ,emacs-ert-runner)))
9117 (arguments
9118 `(#:phases
9119 (modify-phases %standard-phases
9120 (add-before 'check 'fix-makefile
9121 (lambda _
9122 (substitute* "Makefile"
9123 (("cask exec ") ""))
9124 #t)))
9125 #:tests? #t
9126 #:test-command '("make" "test")))
9127 (home-page "https://github.com/Dewdrops/evil-exchange")
9128 (synopsis "Exchange text easily within Evil")
9129 (description
9130 "This package, a port of @code{vim-exchange}, provides an Evil operator
9131 for exchanging text.")
9132 (license license:gpl3+))))
9133
9134 (define-public emacs-evil-replace-with-register
9135 (let ((commit "91cc7bf21a94703c441cc9212214075b226b7f67")
9136 (version "0.1")
9137 (revision "1"))
9138 (package
9139 (name "emacs-evil-replace-with-register")
9140 (version (git-version version revision commit))
9141 (source
9142 (origin
9143 (method git-fetch)
9144 (uri (git-reference
9145 (url "https://github.com/Dewdrops/evil-ReplaceWithRegister")
9146 (commit commit)))
9147 (file-name (git-file-name name version))
9148 (sha256
9149 (base32
9150 "14rpn76qrf287s3y2agmddcxi27r226i53ixjvd694ss039g0r11"))))
9151 (build-system emacs-build-system)
9152 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9153 (home-page "https://github.com/Dewdrops/evil-ReplaceWithRegister")
9154 (synopsis "Quickly replace text with the contents of a register")
9155 (description
9156 "This package provides an Evil operator for replacing text with the
9157 contents of a register.")
9158 (license license:gpl3+))))
9159
9160 (define-public emacs-evil-indent-plus
9161 (let ((commit "0c7501e6efed661242c3a20e0a6c79a6455c2c40")
9162 (version "1.0.0")
9163 (revision "1"))
9164 (package
9165 (name "emacs-evil-indent-plus")
9166 (version (git-version version revision commit))
9167 (source
9168 (origin
9169 (method git-fetch)
9170 (uri (git-reference
9171 (url "https://github.com/TheBB/evil-indent-plus")
9172 (commit commit)))
9173 (file-name (git-file-name name version))
9174 (sha256
9175 (base32
9176 "1g6r1ydscwjvmhh1zg4q3nap4avk8lb9msdqrh7dff6pla0r2qs6"))))
9177 (build-system emacs-build-system)
9178 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9179 (home-page "https://github.com/TheBB/evil-indent-plus")
9180 (synopsis "Text objects based on indentation")
9181 (description
9182 "This package adds new text objects for @code{evil-mode} based on
9183 blocks having the same or higher indentation, including or excluding
9184 surrounding lines.")
9185 (license license:gpl2+))))
9186
9187 (define-public emacs-evil-text-object-python
9188 (let ((commit "9a064fe6475429145cbcc3b270fcc963b67adb15")
9189 (version "1.0.1")
9190 (revision "1"))
9191 (package
9192 (name "emacs-evil-text-object-python")
9193 (version (git-version version revision commit))
9194 (source
9195 (origin
9196 (method git-fetch)
9197 (uri (git-reference
9198 (url "https://github.com/wbolster/evil-text-object-python")
9199 (commit commit)))
9200 (file-name (git-file-name name version))
9201 (sha256
9202 (base32
9203 "074zpm6mmr1wfl6d5xdf8jk1fs4ccpbzf4ahhkwga9g71xiplszv"))))
9204 (build-system emacs-build-system)
9205 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9206 (home-page "https://github.com/wbolster/evil-text-object-python")
9207 (synopsis "Text objects for Python")
9208 (description
9209 "This package provides @code{evil-mode} text objects for Python.")
9210 (license license:gpl3+))))
9211
9212 (define-public emacs-evil-lion
9213 (let ((commit "6b03593f5dd6e7c9ca02207f9a73615cf94c93ab")
9214 (revision "1"))
9215 (package
9216 (name "emacs-evil-lion")
9217 (version (git-version "0.0.2" revision commit))
9218 (source
9219 (origin
9220 (method git-fetch)
9221 (uri (git-reference
9222 (url "https://github.com/edkolev/evil-lion")
9223 (commit commit)))
9224 (file-name (git-file-name name version))
9225 (sha256
9226 (base32
9227 "1a162hynp0jcsn50c1w5a02mrw9w3q05c7lkqzqd25px3d0p772q"))))
9228 (build-system emacs-build-system)
9229 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9230 (arguments
9231 `(#:tests? #t
9232 #:test-command '("make" "test")))
9233 (home-page "https://github.com/edkolev/evil-lion")
9234 (synopsis "Align operator for @code{evil-mode}")
9235 (description
9236 "This package, a port of @code{vim-lion}, provides an operator for
9237 aligning text objects based on separators.")
9238 (license license:gpl3+))))
9239
9240 (define-public emacs-evil-expat
9241 (let ((commit "f4fcd0aa3edc359adb5c986b5dd9188d220d84e2")
9242 (revision "1"))
9243 (package
9244 (name "emacs-evil-expat")
9245 (version (git-version "0.0.1" revision commit))
9246 (source
9247 (origin
9248 (method git-fetch)
9249 (uri (git-reference
9250 (url "https://github.com/edkolev/evil-expat")
9251 (commit commit)))
9252 (file-name (git-file-name name version))
9253 (sha256
9254 (base32
9255 "0872ix682hkdz0k8pn6sb54rqkx00rz5fxpd5j2snx406yagpaxz"))))
9256 (build-system emacs-build-system)
9257 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9258 (arguments
9259 `(#:tests? #t
9260 #:test-command '("make" "test")))
9261 (home-page "https://github.com/edkolev/evil-expat")
9262 (synopsis "Extra @code{ex} commands for @code{evil-mode}")
9263 (description
9264 "This package provides additional commands for the @code{ex} command
9265 line, including functions for version control with Git and for copying and
9266 pasting into and from @code{tmux} paste buffers.")
9267 (license license:gpl3+))))
9268
9269 (define-public emacs-evil-nerd-commenter
9270 (package
9271 (name "emacs-evil-nerd-commenter")
9272 (version "3.3.8")
9273 (source
9274 (origin
9275 (method git-fetch)
9276 (uri (git-reference
9277 (url "https://github.com/redguardtoo/evil-nerd-commenter")
9278 (commit version)))
9279 (file-name (git-file-name name version))
9280 (sha256
9281 (base32
9282 "0qd5a89mzvdyhd8lm13iwp220vzpd6dajwx54frlc5bzsxdmg6vc"))))
9283 (build-system emacs-build-system)
9284 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9285 (arguments
9286 `(#:tests? #t
9287 #:test-command '("make" "test")))
9288 (home-page "https://github.com/redguardtoo/evil-nerd-commenter")
9289 (synopsis "Comment and uncomment lines efficiently")
9290 (description
9291 "This package provides text objects and operators for comments within
9292 @code{evil-mode}.")
9293 (license license:gpl3+)))
9294
9295 (define-public emacs-evil-visual-replace
9296 (package
9297 (name "emacs-evil-visual-replace")
9298 (version "0.0.5")
9299 (source
9300 (origin
9301 (method git-fetch)
9302 (uri (git-reference
9303 (url "https://github.com/troyp/evil-visual-replace")
9304 (commit version)))
9305 (file-name (git-file-name name version))
9306 (sha256
9307 (base32
9308 "1gfyrq7xfzmzh3x8k5f08n027dlbwi0pkkxf9c39fkxp4jngibsz"))))
9309 (build-system emacs-build-system)
9310 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9311 (home-page "https://github.com/troyp/evil-visual-replace")
9312 (synopsis "Replacement commands for @code{evil-mode} visual blocks")
9313 (description
9314 "This package provides versions of @code{query-replace} and
9315 @code{replace-regexp} that work for @code{evil-mode} visual blocks.")
9316 (license license:gpl2+)))
9317
9318 (define-public emacs-evil-visualstar
9319 (let ((commit "06c053d8f7381f91c53311b1234872ca96ced752")
9320 (version "0.0.2")
9321 (revision "1"))
9322 (package
9323 (name "emacs-evil-visualstar")
9324 (version (git-version version revision commit))
9325 (source
9326 (origin
9327 (method git-fetch)
9328 (uri (git-reference
9329 (url "https://github.com/bling/evil-visualstar")
9330 (commit commit)))
9331 (file-name (git-file-name name version))
9332 (sha256
9333 (base32
9334 "0mkbzw12fav945icibc2293m5haxqr3hzkyli2cf4ssk6yvn0x4c"))))
9335 (build-system emacs-build-system)
9336 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9337 (home-page "https://github.com/bling/evil-visualstar")
9338 (synopsis "Instantly search using the visual selection")
9339 (description
9340 "This package provides @code{evil-mode} functions for using selected text
9341 to search.")
9342 (license license:gpl3+))))
9343
9344 (define-public emacs-monky
9345 (package
9346 (name "emacs-monky")
9347 (version "0.1")
9348 (source (origin
9349 (method git-fetch)
9350 (uri (git-reference
9351 (url "https://github.com/ananthakumaran/monky")
9352 (commit version)))
9353 (file-name (git-file-name name version))
9354 (sha256
9355 (base32
9356 "1fgn7al4zwz2k5wb5dy3byqg9lsrjk9fra341mxh5ma2pfwxjgps"))))
9357 (build-system emacs-build-system)
9358 (home-page "https://ananthakumaran.in/monky/index.html")
9359 (arguments
9360 `(#:tests? #t
9361 #:test-command '("emacs" "--batch"
9362 "-l" "test/monky-unit-test.el"
9363 "-f" "ert-run-tests-batch-and-exit")))
9364 (synopsis "Interactive interface for the Mercurial version control system")
9365 (description
9366 "Monky provides an Emacs interface for Mercurial (Hg). Using Monky, you
9367 can selectively commit files, view the diffs, and other things.")
9368 (license license:gpl3+)))
9369
9370 (define-public emacs-monroe
9371 (package
9372 (name "emacs-monroe")
9373 (version "0.3.1")
9374 (source
9375 (origin
9376 (method git-fetch)
9377 (uri (git-reference
9378 (url "https://github.com/sanel/monroe")
9379 (commit version)))
9380 (file-name (git-file-name name version))
9381 (sha256
9382 (base32 "101lfrykdbv37spkbw7zihhx26bc1lhjyxbanrcp9880bxj04jiy"))))
9383 (build-system emacs-build-system)
9384 (home-page "https://github.com/sanel/monroe")
9385 (synopsis "Clojure nREPL client for Emacs")
9386 (description
9387 "Monroe is a nREPL client for Emacs, focused on simplicity and easy
9388 distribution, primarily targeting Clojure users")
9389 (license license:gpl3+)))
9390
9391 (define-public emacs-orgalist
9392 (package
9393 (name "emacs-orgalist")
9394 (version "1.12")
9395 (source
9396 (origin
9397 (method url-fetch)
9398 (uri (string-append "https://elpa.gnu.org/packages/"
9399 "orgalist-" version ".el"))
9400 (sha256
9401 (base32 "1hwm7j0hbv2pg9w885ky1c9qga3grcfq8v216jv2ivkw8xzavysd"))))
9402 (build-system emacs-build-system)
9403 (home-page "https://elpa.gnu.org/packages/orgalist.html")
9404 (synopsis "Manage Org-like lists in non-Org buffers")
9405 (description "Orgalist writes and manages Org mode's plain lists in
9406 non-Org buffers. More specifically, it supports the syntax of Org mode for
9407 numbered, unnumbered, description items, checkboxes, and counter cookies.
9408
9409 The library also implements radio lists, i.e., lists written in Org syntax
9410 later translated into the host format, e.g., LaTeX or HTML.")
9411 (license license:gpl3+)))
9412
9413 (define-public emacs-writegood-mode
9414 (package
9415 (name "emacs-writegood-mode")
9416 (version "2.0.2")
9417 (home-page "https://github.com/bnbeckwith/writegood-mode")
9418 (source (origin
9419 (method git-fetch)
9420 (uri (git-reference
9421 (url home-page)
9422 (commit (string-append "v" version))))
9423 (sha256
9424 (base32
9425 "1nnjn1r669hvvzfycllwap4w04m8rfsk4nzcg8057m1f263kj31b"))
9426 (file-name (string-append name "-checkout"))))
9427 (build-system emacs-build-system)
9428 (synopsis "Polish up poor writing on the fly")
9429 (description
9430 "This minor mode tries to find and highlight problems with your writing
9431 in English as you type. It primarily detects \"weasel words\" and abuse of
9432 passive voice.")
9433 (license license:gpl3+)))
9434
9435 (define-public emacs-neotree
9436 (package
9437 (name "emacs-neotree")
9438 (version "0.5.2")
9439 (home-page "https://github.com/jaypei/emacs-neotree")
9440 (source (origin
9441 (method git-fetch)
9442 (uri (git-reference
9443 (url home-page)
9444 (commit version)))
9445 (sha256
9446 (base32
9447 "0hx72fq10772bbyqrj7mhhp02k26cccjxdadiqm1ykainhfmn1x0"))
9448 (file-name (git-file-name name version))))
9449 (build-system emacs-build-system)
9450 (synopsis "Folder tree view for Emacs")
9451 (description "This Emacs package provides a folder tree view.")
9452 (license license:gpl3+)))
9453
9454 (define-public emacs-org
9455 (package
9456 (name "emacs-org")
9457 ;; emacs-org-contrib inherits from this package. Please update it as
9458 ;; well.
9459 (version "9.3.6")
9460 (source
9461 (origin
9462 (method url-fetch)
9463 (uri (string-append "https://elpa.gnu.org/packages/org-" version ".tar"))
9464 (sha256
9465 (base32 "0jwpgfzjvf1hd3mx582pw86hysdryaqzp69hk6azi9kmq4bzk87d"))))
9466 (build-system emacs-build-system)
9467 (arguments
9468 `(#:phases
9469 (modify-phases %standard-phases
9470 (add-after 'install 'install-documentation
9471 (lambda* (#:key outputs #:allow-other-keys)
9472 (let* ((share (string-append (assoc-ref outputs "out") "/share"))
9473 (info-dir (string-append share "/info"))
9474 (doc-dir (string-append share "/doc/" ,name "-" ,version)))
9475 (install-file "org" info-dir)
9476 (install-file "orgcard.pdf" doc-dir))
9477 #t)))))
9478 (home-page "https://orgmode.org/")
9479 (synopsis "Outline-based notes management and organizer")
9480 (description "Org is an Emacs mode for keeping notes, maintaining TODO
9481 lists, and project planning with a fast and effective lightweight markup
9482 language. It also is an authoring system with unique support for literate
9483 programming and reproducible research.")
9484 (license license:gpl3+)))
9485
9486 (define-public emacs-org-contrib
9487 (package
9488 (inherit emacs-org)
9489 (name "emacs-org-contrib")
9490 (version "20200213")
9491 (source
9492 (origin
9493 (method url-fetch)
9494 (uri (string-append "https://orgmode.org/elpa/"
9495 "org-plus-contrib-" version ".tar"))
9496 (sha256
9497 (base32 "0g6rrrwplrifz4ip0jg638m4kvpvdg03hwnyghd813w0lm935mh5"))))
9498 (arguments
9499 `(#:modules ((guix build emacs-build-system)
9500 (guix build utils)
9501 (guix build emacs-utils)
9502 (ice-9 ftw)
9503 (srfi srfi-1))
9504 #:phases
9505 (modify-phases %standard-phases
9506 (add-after 'install 'delete-org-files
9507 (lambda* (#:key inputs outputs #:allow-other-keys)
9508 (let* ((out (assoc-ref outputs "out"))
9509 (org (assoc-ref inputs "org"))
9510 (contrib-files
9511 (map basename (find-files out)))
9512 (org+contrib-files
9513 (map basename (find-files org)))
9514 (duplicates (lset-intersection string=?
9515 contrib-files
9516 org+contrib-files)))
9517 (with-directory-excursion
9518 (string-append out "/share/emacs/site-lisp")
9519 (for-each delete-file duplicates))
9520 #t))))))
9521 (propagated-inputs
9522 `(("arduino-mode" ,emacs-arduino-mode)
9523 ("cider" ,emacs-cider)
9524 ("org" ,emacs-org)
9525 ("scel" ,emacs-scel)))
9526 (synopsis "Contributed packages to Org mode")
9527 (description "Org is an Emacs mode for keeping notes, maintaining TODO
9528 lists, and project planning with a fast and effective plain-text system.
9529
9530 This package is equivalent to org-plus-contrib, but only includes additional
9531 files that you would find in @file{contrib/} from the git repository.")))
9532
9533 (define-public emacs-flx
9534 (package
9535 (name "emacs-flx")
9536 (version "0.6.1")
9537 (source
9538 (origin
9539 (method git-fetch)
9540 (uri (git-reference
9541 (url "https://github.com/lewang/flx")
9542 (commit (string-append "v" version))))
9543 (sha256
9544 (base32
9545 "0sjybrcnb2sl33swy3q664vqrparajcl0m455gciiih2j87hwadc"))
9546 (file-name (git-file-name name version))))
9547 (build-system emacs-build-system)
9548 (home-page "https://github.com/lewang/flx")
9549 (synopsis "Fuzzy matching for Emacs")
9550 (description
9551 "Flx provides fuzzy matching for emacs a la sublime text.
9552 The sorting algorithm is a balance between word beginnings (abbreviation)
9553 and contiguous matches (substring). The longer the substring match,
9554 the higher it scores. This maps well to how we think about matching.
9555 Flx has support for ido (interactively do things) through flx-ido.")
9556 (license license:gpl3+)))
9557
9558 (define-public emacs-cyberpunk-theme
9559 (package
9560 (name "emacs-cyberpunk-theme")
9561 (version "1.22")
9562 (source
9563 (origin
9564 (method git-fetch)
9565 (uri (git-reference
9566 (url "https://github.com/n3mo/cyberpunk-theme.el/")
9567 (commit version)))
9568 (sha256
9569 (base32
9570 "06nff38pcy5rgz13svkajsg0jjk73qy4a8m7p9f76yxcywxlgxlc"))
9571 (file-name (git-file-name name version))))
9572 (build-system emacs-build-system)
9573 (home-page "https://github.com/n3mo/cyberpunk-theme.el")
9574 (synopsis "Cyberpunk theme for Emacs built-in color theme support")
9575 (description
9576 "Cyberpunk color theme for the Emacs 24+ built-in color theme support
9577 known loosely as deftheme. Many mode-specific customizations are included.")
9578 (license license:gpl3+)))
9579
9580 (define-public emacs-danneskjold-theme
9581 (let* ((commit "8733d2fe8743e8a01826ea6d4430ef376c727e57")
9582 (revision "1"))
9583 (package
9584 (name "emacs-danneskjold-theme")
9585 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
9586 (home-page "https://github.com/rails-to-cosmos/danneskjold-theme")
9587 (source
9588 (origin
9589 (method git-fetch)
9590 (uri (git-reference
9591 (url home-page)
9592 (commit commit)))
9593 (file-name (git-file-name name version))
9594 (sha256
9595 (base32
9596 "0s6rbsb0y8i8m5b9xm4gw1p1cxsxdqnqxqqb638pygz9f76mbir1"))))
9597 (build-system emacs-build-system)
9598 (arguments
9599 `(#:phases
9600 (modify-phases %standard-phases
9601 (add-after 'unpack 'delete-screenshots
9602 (lambda _
9603 (delete-file-recursively "screenshots") #t)))))
9604 (synopsis "High-contrast Emacs theme")
9605 (description
9606 "@code{danneskjold-theme} is a high-contrast theme for Emacs.")
9607 (license license:gpl3+))))
9608
9609 (define-public emacs-dream-theme
9610 (let* ((commit "107a11d74365046f28a1802a2bdb5e69e4a7488b")
9611 (revision "1"))
9612 (package
9613 (name "emacs-dream-theme")
9614 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
9615 (source
9616 (origin
9617 (method git-fetch)
9618 (uri (git-reference
9619 (url "https://github.com/djcb/dream-theme")
9620 (commit commit)))
9621 (file-name (git-file-name name version))
9622 (sha256
9623 (base32
9624 "0za18nfkq4xqm35k6006vsixcbmvmxqgma4iw5sw37h8vmcsdylk"))))
9625 (build-system emacs-build-system)
9626 (home-page "https://github.com/djcb/dream-theme")
9627 (synopsis "High-contrast Emacs theme")
9628 (description
9629 "@code{dream-theme} is a dark, clean theme for Emacs. It is inspired
9630 by zenburn, sinburn and similar themes, but slowly diverging from them.")
9631 (license license:gpl3+))))
9632
9633 (define-public emacs-dracula-theme
9634 (package
9635 (name "emacs-dracula-theme")
9636 (version "1.7.0")
9637 (source
9638 (origin
9639 (method git-fetch)
9640 (uri (git-reference
9641 (url "https://github.com/dracula/emacs")
9642 (commit (string-append "v" version))))
9643 (file-name (git-file-name name version))
9644 (sha256
9645 (base32 "15y2djc5jljlvls1x9kp50m1kp0dcksmyixafsyimj66xpq9ngh0"))))
9646 (build-system emacs-build-system)
9647 (home-page "https://draculatheme.com/")
9648 (synopsis "Dark theme for Emacs")
9649 (description
9650 "Dracula is a dark color theme for many editors, shells and more. This
9651 package provides the Emacs theme.")
9652 (license license:expat)))
9653
9654 (define-public emacs-auto-complete
9655 (package
9656 (name "emacs-auto-complete")
9657 (version "1.5.1")
9658 (source
9659 (origin
9660 (method git-fetch)
9661 (uri (git-reference
9662 (url "https://github.com/auto-complete/auto-complete")
9663 (commit (string-append "v" version))))
9664 (sha256
9665 (base32
9666 "04i9b11iksg6acn885wl3qgi5xpsm3yszlqmd2x21yhprndlz7gb"))
9667 (file-name (git-file-name name version))))
9668 (build-system emacs-build-system)
9669 (propagated-inputs
9670 `(("emacs-popup" ,emacs-popup)))
9671 (home-page "https://github.com/auto-complete/auto-complete")
9672 (synopsis "Intelligent auto-completion extension for Emacs")
9673 (description
9674 "Auto-Complete is an intelligent auto-completion extension for Emacs.
9675 It extends the standard Emacs completion interface and provides an environment
9676 that allows users to concentrate more on their own work. Its features are:
9677 a visual interface, reduce overhead of completion by using statistic method,
9678 extensibility.")
9679 (license license:gpl3+)))
9680
9681 (define-public emacs-nginx-mode
9682 (package
9683 (name "emacs-nginx-mode")
9684 (version "1.1.9")
9685 (source
9686 (origin
9687 (method git-fetch)
9688 (uri (git-reference
9689 (url "https://github.com/ajc/nginx-mode")
9690 (commit (string-append "v" version))))
9691 (file-name (git-file-name name version))
9692 (sha256
9693 (base32 "17dh5pr3gh6adrbqx588gimxbb2fr7iv2qrxv6r48w2727l344xs"))))
9694 (build-system emacs-build-system)
9695 (home-page "https://github.com/ajc/nginx-mode")
9696 (synopsis "Emacs major mode for editing nginx config files")
9697 (description "This package provides an Emacs major mode for
9698 editing nginx config files.")
9699 (license license:gpl2+)))
9700
9701 (define-public emacs-stream
9702 (package
9703 (name "emacs-stream")
9704 (version "2.2.5")
9705 (source
9706 (origin
9707 (method url-fetch)
9708 (uri (string-append "https://elpa.gnu.org/packages/"
9709 "stream-" version ".tar"))
9710 (file-name (git-file-name name version))
9711 (sha256
9712 (base32 "00c3n4gyxzv7vczqms0d62kl8zsmjfyxa92mwxn2snyx857a9jfw"))))
9713 (build-system emacs-build-system)
9714 (home-page "http://elpa.gnu.org/packages/stream.html")
9715 (synopsis "Implementation of streams for Emacs")
9716 (description "This library provides an implementation of streams for Emacs.
9717 Streams are implemented as delayed evaluation of cons cells.")
9718 (license license:gpl3+)))
9719
9720 (define-public emacs-cl-print
9721 (let ((commit "1a70c553dfb04352afb5b8696fe0cef8acc8f991")
9722 (revision "1"))
9723 (package
9724 (name "emacs-cl-print")
9725 (version (git-version "1.0" revision commit))
9726 (source
9727 (origin
9728 (method git-fetch)
9729 (uri (git-reference
9730 (url "https://github.com/emacsmirror/cl-print")
9731 (commit commit)))
9732 (file-name (git-file-name name version))
9733 (sha256
9734 (base32 "164zbnsi5mssvcpy0158fm7fw5cmd1r5nkpn29fmd2b2scy3gm79"))))
9735 (build-system emacs-build-system)
9736 (home-page "https://github.com/emacsmirror/cl-print")
9737 (synopsis "CL-style generic printing")
9738 (description "This package provides a generic function,
9739 @code{cl-print-object}, to which the programmer can add any method they
9740 please.")
9741 (license license:gpl3+))))
9742
9743 (define-public emacs-el-search
9744 (let ((commit "07bed84dd8ae9e4c6c648834224b1d33fdbd51e0")
9745 (revision "2"))
9746 (package
9747 (name "emacs-el-search")
9748 (version (git-version "1.12.6.1" revision commit))
9749 (source
9750 (origin
9751 (method git-fetch)
9752 (uri (git-reference
9753 (url "https://github.com/emacsmirror/el-search")
9754 (commit commit)))
9755 (file-name (git-file-name name version))
9756 (sha256
9757 (base32 "10w1ldgijdhfsrazp0y3bm76jv5wvdn94k1yp0pmc2m1896b58ak"))))
9758 (build-system emacs-build-system)
9759 (inputs
9760 `(("emacs-stream" ,emacs-stream)
9761 ("emacs-cl-print" ,emacs-cl-print)))
9762 (home-page "https://github.com/emacsmirror/el-search")
9763 (synopsis "Expression based interactive search for emacs-lisp-mode")
9764 (description "This package provides expression based interactive search
9765 procedures for emacs-lisp-mode.")
9766 (license license:gpl3+))))
9767
9768 (define-public emacs-ht
9769 (package
9770 (name "emacs-ht")
9771 (version "2.2")
9772 (source
9773 (origin
9774 (method git-fetch)
9775 (uri (git-reference
9776 (url "https://github.com/Wilfred/ht.el")
9777 (commit version)))
9778 (file-name (git-file-name name version))
9779 (sha256
9780 (base32 "1p3qa7g0wa0wbviv2f8bda39cjys3naayk5xjm3nxxmqsyy8papx"))))
9781 (build-system emacs-build-system)
9782 (propagated-inputs `(("emacs-dash" ,emacs-dash)))
9783 (native-inputs
9784 `(("emacs-ert-runner" ,emacs-ert-runner)))
9785 (arguments
9786 `(#:tests? #t
9787 #:test-command '("ert-runner")))
9788 (home-page "https://github.com/Wilfred/ht.el")
9789 (synopsis "Hash table library for Emacs")
9790 (description
9791 "This package simplifies the use of hash tables in elisp. It also
9792 provides functions to convert hash tables from and to alists and plists.")
9793 (license license:gpl3+)))
9794
9795 (define-public emacs-log4e
9796 (package
9797 (name "emacs-log4e")
9798 (version "0.3.0")
9799 (source
9800 (origin
9801 (method git-fetch)
9802 (uri (git-reference
9803 (url "https://github.com/aki2o/log4e")
9804 (commit (string-append "v" version))))
9805 (file-name (git-file-name name version))
9806 (sha256
9807 (base32 "1l28n7a0v2zkknc70i1wn6qb5i21dkhfizzk8wcj28v44cgzk022"))))
9808 (build-system emacs-build-system)
9809 (arguments
9810 `(#:phases
9811 (modify-phases %standard-phases
9812 (add-after 'unpack 'remove-tests
9813 ;; Guile builder complains about null characters in some
9814 ;; strings of test files. Remove "test" directory (it is not
9815 ;; needed anyway).
9816 (lambda _
9817 (delete-file-recursively "test"))))))
9818 (home-page "https://github.com/aki2o/log4e")
9819 (synopsis "Logging framework for elisp")
9820 (description
9821 "This package provides a logging framework for elisp. It allows
9822 you to deal with multiple log levels.")
9823 (license license:gpl3+)))
9824
9825 (define-public emacs-gntp
9826 (package
9827 (name "emacs-gntp")
9828 (version "0.1")
9829 (source
9830 (origin
9831 (method git-fetch)
9832 (uri (git-reference
9833 (url "https://github.com/tekai/gntp.el")
9834 (commit (string-append "v" version))))
9835 (file-name (git-file-name name version))
9836 (sha256
9837 (base32 "1nvyjjjydrimpxy4cpg90si7sr8lmldbhlcm2mx8npklp9pn5y3a"))))
9838 (build-system emacs-build-system)
9839 (home-page "https://github.com/tekai/gntp.el")
9840 (synopsis "Growl Notification Protocol for Emacs")
9841 (description
9842 "This package implements the Growl Notification Protocol GNTP
9843 described at @uref{http://www.growlforwindows.com/gfw/help/gntp.aspx}.
9844 It is incomplete as it only lets you send but not receive
9845 notifications.")
9846 (license license:bsd-3)))
9847
9848 (define-public emacs-alert
9849 (package
9850 (name "emacs-alert")
9851 (version "1.3")
9852 (source
9853 (origin
9854 (method git-fetch)
9855 (uri (git-reference
9856 (url "https://github.com/jwiegley/alert")
9857 (commit (string-append "v" version))))
9858 (file-name (git-file-name name version))
9859 (sha256
9860 (base32 "0lc0p5cl4hfrzw1z2ghb11k1lvljn5m08jw5fmgwgxv667kwh49r"))))
9861 (build-system emacs-build-system)
9862 (propagated-inputs
9863 `(("emacs-gntp" ,emacs-gntp)
9864 ("emacs-log4e" ,emacs-log4e)))
9865 (home-page "https://github.com/jwiegley/alert")
9866 (synopsis "Growl-style notification system for Emacs")
9867 (description
9868 "Alert is a Growl-workalike for Emacs which uses a common notification
9869 interface and multiple, selectable \"styles\", whose use is fully
9870 customizable by the user.")
9871 (license license:gpl2+)))
9872
9873 (define-public emacs-zones
9874 (package
9875 (name "emacs-zones")
9876 (version "2019.7.13")
9877 (source
9878 (origin
9879 (method url-fetch)
9880 (uri (string-append "https://elpa.gnu.org/packages/"
9881 "zones-" version ".el"))
9882 (sha256
9883 (base32 "0qp1ba2pkqx9d35g7z8hf8qs2k455krf2a92l4rka3ipsbnmq5k1"))))
9884 (build-system emacs-build-system)
9885 (home-page "https://www.emacswiki.org/emacs/Zones")
9886 (synopsis "Define and act on multiple zones of buffer text")
9887 (description
9888 "Library @file{zones.el} lets you easily define and subsequently act on
9889 multiple zones of buffer text. You can think of this as enlarging the notion
9890 of region. In effect, it can remove the requirement of target text being
9891 a contiguous sequence of characters. A set of buffer zones is, in effect,
9892 a (typically) noncontiguous set of text.")
9893 (license license:gpl3+)))
9894
9895 (define-public emacs-mu4e-alert
9896 (package
9897 (name "emacs-mu4e-alert")
9898 (version "1.0")
9899 (source
9900 (origin
9901 (method git-fetch)
9902 (uri (git-reference
9903 (url "https://github.com/iqbalansari/mu4e-alert")
9904 (commit (string-append "v" version))))
9905 (file-name (git-file-name name version))
9906 (sha256
9907 (base32 "1nvsfbfsma59ilf7c3vjngnmx3aapwvvvaafdy5szm5r6lkicqvg"))))
9908 (build-system emacs-build-system)
9909 (propagated-inputs
9910 `(("emacs-alert" ,emacs-alert)
9911 ("emacs-s" ,emacs-s)
9912 ("emacs-ht" ,emacs-ht)
9913 ("mu" ,mu)))
9914 (home-page "https://github.com/iqbalansari/mu4e-alert")
9915 (synopsis "Desktop notification for mu4e")
9916 (description
9917 "This package provides desktop notifications for mu4e.
9918 Additionally it can display the number of unread emails in the
9919 mode-line.")
9920 (license license:gpl3+)))
9921
9922 (define-public emacs-mu4e-jump-to-list
9923 (let ((commit "358bba003543b49ffa266e503e54aebd0ebe614b")
9924 (revision "1"))
9925 (package
9926 (name "emacs-mu4e-jump-to-list")
9927 (version (git-version "1.0" revision commit))
9928 (source
9929 (origin
9930 (method git-fetch)
9931 (uri (git-reference
9932 (url "https://gitlab.com/wavexx/mu4e-jump-to-list.el.git")
9933 (commit commit)))
9934 (file-name (git-file-name name version))
9935 (sha256
9936 (base32
9937 "00y9nap61q1z2cdql4k9g7fgi2gdgd9iy5s5lzrd9a4agbx6r7sv"))))
9938 (build-system emacs-build-system)
9939 (propagated-inputs
9940 `(("mu" ,mu)))
9941 (home-page "https://gitlab.com/wavexx/mu4e-jump-to-list.el")
9942 (synopsis "Select and view mailing lists in mu4e")
9943 (description
9944 "@code{mu4e-jump-to-list} allows you to select and view mailing lists
9945 automatically using existing List-ID headers in your mu database. Just press
9946 \"l\" in the headers view and any mailing list you've subscribed to will be
9947 automatically discovered and presented in recency order.")
9948 (license license:gpl3+))))
9949
9950 (define-public emacs-mu4e-patch
9951 (let ((commit "522da46c1653b1cacc79cde91d6534da7ae9517d")
9952 (revision "1"))
9953 (package
9954 (name "emacs-mu4e-patch")
9955 (version (git-version "0.1.0" revision commit))
9956 (source (origin
9957 (method git-fetch)
9958 (uri (git-reference
9959 (url "https://github.com/seanfarley/mu4e-patch")
9960 (commit commit)))
9961 (file-name (git-file-name name version))
9962 (sha256
9963 (base32
9964 "10lzf3b70pk6rzdrgx0ww0gc94v0ydh9zj1gbsa20xw27ds7hmfn"))))
9965 (build-system emacs-build-system)
9966 (propagated-inputs
9967 `(("mu" ,mu)))
9968 (home-page "https://github.com/seanfarley/mu4e-patch")
9969 (synopsis "Colorize patch-like emails in mu4e")
9970 (description
9971 "Extension for mu4e to colorize patch-like emails with diff-mode.
9972 This is based on Frank Terbeck's @code{gnus-article-treat-patch.el} but has
9973 been adapted to work with mu4e.")
9974 (license license:gpl3+))))
9975
9976 (define-public emacs-pretty-mode
9977 (package
9978 (name "emacs-pretty-mode")
9979 (version "2.0.3")
9980 (source
9981 (origin
9982 (method git-fetch)
9983 (uri (git-reference
9984 (url "https://github.com/akatov/pretty-mode/")
9985 (commit version)))
9986 (file-name (git-file-name name version))
9987 (sha256
9988 (base32
9989 "013fig9i4fyx16krp2vfv953p3rwdzr38zs6i50af4pqz4vrcfvh"))))
9990 (build-system emacs-build-system)
9991 (home-page "https://github.com/akatov/pretty-mode")
9992 (synopsis "Redisplay parts of the buffer as Unicode symbols")
9993 (description
9994 "Emacs minor mode for redisplaying parts of the buffer as pretty symbols.")
9995 (license license:gpl3+)))
9996
9997 (define-public emacs-yasnippet
9998 (package
9999 (name "emacs-yasnippet")
10000 (version "0.14.0")
10001 (source
10002 (origin
10003 (method git-fetch)
10004 (uri (git-reference
10005 (url "https://github.com/joaotavora/yasnippet")
10006 (commit version)))
10007 (file-name (git-file-name name version))
10008 (sha256
10009 (base32 "0via9dzw8m5lzymg1h78xkwjssh39zr3g6ccyamlf1rjzjsyxknv"))))
10010 (build-system emacs-build-system)
10011 (arguments
10012 `(#:tests? #t
10013 #:test-command '("emacs" "--batch"
10014 "-l" "yasnippet-tests.el"
10015 "-f" "ert-run-tests-batch-and-exit")
10016 #:phases
10017 (modify-phases %standard-phases
10018 ;; Set HOME, otherwise test-rebindings fails.
10019 (add-before 'check 'set-home
10020 (lambda _
10021 (setenv "HOME" (getcwd))
10022 #t)))))
10023 (home-page "https://github.com/joaotavora/yasnippet")
10024 (synopsis "Yet another snippet extension for Emacs")
10025 (description "YASnippet is a template system for Emacs. It allows you to
10026 type an abbreviation and automatically expand it into function templates.")
10027 (license license:gpl3+)))
10028
10029 (define-public emacs-yasnippet-snippets
10030 (package
10031 (name "emacs-yasnippet-snippets")
10032 (version "0.23")
10033 (source
10034 (origin
10035 (method git-fetch)
10036 (uri (git-reference
10037 (url "https://github.com/AndreaCrotti/yasnippet-snippets")
10038 (commit version)))
10039 (file-name (git-file-name name version))
10040 (sha256
10041 (base32 "18pcnjnqvcky6i49p38vy3ms5xiisn27vy47pc3vsgr3r2n87mqb"))))
10042 (build-system trivial-build-system)
10043 (arguments
10044 `(#:modules ((guix build utils))
10045 #:builder
10046 (begin
10047 (use-modules (guix build utils))
10048 (let* ((source (assoc-ref %build-inputs "source"))
10049 (out (assoc-ref %outputs "out"))
10050 (snippet-dir
10051 (string-append out "/share/emacs/yasnippet-snippets/")))
10052 (with-directory-excursion source
10053 (mkdir-p snippet-dir)
10054 (copy-recursively "snippets" snippet-dir)))
10055 #t)))
10056 (home-page "https://github.com/AndreaCrotti/yasnippet-snippets")
10057 (synopsis "Collection of YASnippet snippets for many languages")
10058 (description
10059 "Provides Andrea Crotti's collection of YASnippet snippets. After installation,
10060 the snippets will be in \"~/.guix-profile/share/emacs/yasnippet-snippets/\".
10061 To make YASnippet aware of these snippets, add the above directory to
10062 @code{yas-snippet-dirs}.")
10063 (license license:gpl3+)))
10064
10065 (define-public emacs-helm-c-yasnippet
10066 (let ((commit "65ca732b510bfc31636708aebcfe4d2d845b59b0")
10067 (revision "1"))
10068 (package
10069 (name "emacs-helm-c-yasnippet")
10070 (version (string-append "0.6.7" "-" revision "."
10071 (string-take commit 7)))
10072 (source (origin
10073 (method git-fetch)
10074 (uri (git-reference
10075 (url "https://github.com/emacs-jp/helm-c-yasnippet")
10076 (commit commit)))
10077 (file-name (git-file-name name version))
10078 (sha256
10079 (base32
10080 "1cbafjqlzxbg19xfdqsinsh7afq58gkf44rsg1qxfgm8g6zhr7f8"))))
10081 (build-system emacs-build-system)
10082 (propagated-inputs
10083 `(("emacs-helm" ,emacs-helm)
10084 ("emacs-yasnippet" ,emacs-yasnippet)))
10085 (home-page "https://github.com/emacs-jp/helm-c-yasnippet")
10086 (synopsis "Helm integration for Yasnippet")
10087 (description "This Emacs library provides Helm interface for
10088 Yasnippet.")
10089 (license license:gpl2+))))
10090
10091 (define-public emacs-helm-system-packages
10092 ;; There won't be a new release after 1.10.1 until
10093 ;; https://github.com/emacs-helm/helm-system-packages/issues/25 is fixed,
10094 ;; and latest commits fix import issues with Guix.
10095 (let ((commit "6572340f41611ef1991e9612d34d59130957ee4a"))
10096 (package
10097 (name "emacs-helm-system-packages")
10098 (version (git-version "1.10.1" "1" commit))
10099 (source (origin
10100 (method git-fetch)
10101 (uri (git-reference
10102 (url "https://github.com/emacs-helm/helm-system-packages")
10103 (commit commit)))
10104 (file-name (git-file-name name version))
10105 (sha256
10106 (base32
10107 "0mcz6vkpk12vsyd37xv1rbg4v442sxc3lj8yxskqg294xbdaclz4"))))
10108 (build-system emacs-build-system)
10109 (inputs
10110 `(("recutils" ,recutils)))
10111 (propagated-inputs
10112 `(("emacs-helm" ,emacs-helm)))
10113 (arguments
10114 `(#:phases
10115 (modify-phases %standard-phases
10116 (add-after 'unpack 'configure
10117 (lambda* (#:key inputs outputs #:allow-other-keys)
10118 (let ((recutils (assoc-ref inputs "recutils")))
10119 ;; Specify the absolute file names of the various
10120 ;; programs so that everything works out-of-the-box.
10121 (substitute* "helm-system-packages-guix.el"
10122 (("recsel") (string-append recutils "/bin/recsel")))))))))
10123 (home-page "https://github.com/emacs-helm/helm-system-packages")
10124 (synopsis "Helm System Packages is an interface to your package manager")
10125 (description "List all available packages in Helm (with installed
10126 packages displayed in their own respective face). Fuzzy-search, mark and
10127 execute the desired action over any selections of packages: Install,
10128 uninstall, display packages details (in Org Mode) or insert details at point,
10129 find files owned by packages... And much more, including performing all the
10130 above over the network.")
10131 (license license:gpl3+))))
10132
10133 (define-public emacs-helm-org-rifle
10134 (package
10135 (name "emacs-helm-org-rifle")
10136 (version "1.7.0")
10137 (source
10138 (origin
10139 (method git-fetch)
10140 (uri (git-reference
10141 (url "https://github.com/alphapapa/helm-org-rifle")
10142 (commit version)))
10143 (file-name (git-file-name name version))
10144 (sha256
10145 (base32
10146 "058zvh7cdall7dl3xay9ibcjvs13fbqp8fli3lz980pinmsds3r2"))))
10147 (build-system emacs-build-system)
10148 (propagated-inputs
10149 `(("emacs-dash" ,emacs-dash)
10150 ("emacs-f" ,emacs-f)
10151 ("emacs-helm" ,emacs-helm)
10152 ("emacs-org" ,emacs-org)
10153 ("emacs-s" ,emacs-s)))
10154 (home-page "https://github.com/alphapapa/helm-org-rifle")
10155 (synopsis "Rifle through Org files")
10156 (description "This package searches both headings and contents of entries
10157 in Org buffers and displays matching entries.")
10158 (license license:gpl3+)))
10159
10160 (define-public emacs-dired-git-info
10161 ;; Upstream has no proper release. The base version is extracted from the
10162 ;; "Version" keyword in the main file.
10163 (let ((commit "91d57e3a4c5104c66a3abc18e281ee55e8979176")
10164 (revision "0"))
10165 (package
10166 (name "emacs-dired-git-info")
10167 (version (git-version "0.3.1" revision commit))
10168 (source
10169 (origin
10170 (method git-fetch)
10171 (uri
10172 (git-reference
10173 (url "https://github.com/clemera/dired-git-info")
10174 (commit commit)))
10175 (file-name (git-file-name name version))
10176 (sha256
10177 (base32 "1dr4iv95s4barxxj56znqkl9z0lg5jw731jmjr01s6vn8ar69gik"))))
10178 (build-system emacs-build-system)
10179 (home-page "https://github.com/clemera/dired-git-info/")
10180 (synopsis "Show git info in Emacs Dired")
10181 (description "This Emacs package provides a minor mode which shows git
10182 information inside the Dired buffer.")
10183 (license license:gpl3+))))
10184
10185 (define-public emacs-dired-toggle-sudo
10186 (let ((commit "13bbe52c54893f5aa3e56228450ffdd0c9e1d169")
10187 (revision "0"))
10188 (package
10189 (name "emacs-dired-toggle-sudo")
10190 (version (git-version "1.0" revision commit))
10191 (source
10192 (origin
10193 (method git-fetch)
10194 (uri (git-reference
10195 (url "https://github.com/renard/dired-toggle-sudo")
10196 (commit commit)))
10197 (file-name (git-file-name name version))
10198 (sha256
10199 (base32
10200 "1fw1pb1z6krqd1pfxxhr6rrfr9ckkcb0zsjzbjk0i2i1q5cg6car"))))
10201 (build-system emacs-build-system)
10202 (home-page "https://github.com/renard/dired-toggle-sudo")
10203 (synopsis "Browse directory with @code{sudo} privileges")
10204 (description "This package allows for the use of @code{dired} with
10205 @code{sudo} privileges.")
10206 (license license:wtfpl2))))
10207
10208 (define-public emacs-diredfl
10209 (package
10210 (name "emacs-diredfl")
10211 (version "0.4")
10212 (source
10213 (origin
10214 (method git-fetch)
10215 (uri
10216 (git-reference
10217 (url "https://github.com/purcell/diredfl")
10218 (commit version)))
10219 (file-name (git-file-name name version))
10220 (sha256
10221 (base32 "1zb2lz7rp58zqvpniqcsmqabi7nqg2d8bfd0hgmq68bn2hd25b5z"))))
10222 (build-system emacs-build-system)
10223 (home-page "https://github.com/purcell/diredfl/")
10224 (synopsis "Extra Emacs font lock rules for a more colourful Dired")
10225 (description "This library enables additional font locking in Dired mode.
10226 This is adapted from the extra font lock rules provided by Drew Adams' Dired+
10227 package.")
10228 (license license:gpl3+)))
10229
10230 (define-public emacs-memoize
10231 (package
10232 (name "emacs-memoize")
10233 (version "1.1")
10234 (source
10235 (origin
10236 (method git-fetch)
10237 (uri (git-reference
10238 (url "https://github.com/skeeto/emacs-memoize")
10239 (commit version)))
10240 (file-name (git-file-name name version))
10241 (sha256
10242 (base32 "04qgnlg4x6va7x364dhj1wbjmz8p5iq2vk36mn9198k2vxmijwzk"))))
10243 (build-system emacs-build-system)
10244 (arguments
10245 `(#:tests? #t
10246 #:test-command '("emacs" "--batch"
10247 "-l" "memoize-test.el"
10248 "-f" "ert-run-tests-batch-and-exit")))
10249 (home-page "https://github.com/skeeto/emacs-memoize")
10250 (synopsis "Emacs lisp memoization library")
10251 (description "@code{emacs-memoize} is an Emacs library for
10252 memoizing functions.")
10253 (license license:unlicense)))
10254
10255 (define-public emacs-linum-relative
10256 (package
10257 (name "emacs-linum-relative")
10258 (version "0.6")
10259 (source
10260 (origin
10261 (method git-fetch)
10262 (uri (git-reference
10263 (url "https://github.com/coldnew/linum-relative")
10264 (commit version)))
10265 (file-name (git-file-name name version))
10266 (sha256
10267 (base32 "0b3n1gk2w1p72x0zfdz9l70winq2fnjpjrgq0awxx730xk7ypp5n"))))
10268 (build-system emacs-build-system)
10269 (home-page "https://github.com/coldnew/linum-relative")
10270 (synopsis "Relative line numbering for Emacs")
10271 (description "@code{emacs-linum-relative} displays the relative line
10272 number on the left margin in Emacs.")
10273 (license license:gpl2+)))
10274
10275 (define-public emacs-idle-highlight
10276 (package
10277 (name "emacs-idle-highlight")
10278 (version "1.1.3")
10279 (source
10280 (origin
10281 (method git-fetch)
10282 (uri (git-reference
10283 (url "https://github.com/nonsequitur/idle-highlight-mode")
10284 (commit version)))
10285 (file-name (git-file-name name version))
10286 (sha256
10287 (base32 "0x4w1ksrw7dicl84zpf4d4scg672dyan9g95jkn6zvri0lr8xciv"))))
10288 (build-system emacs-build-system)
10289 (home-page "https://www.emacswiki.org/emacs/IdleHighlight")
10290 (synopsis "Highlights all occurrences of the word the point is on")
10291 (description
10292 "This Emacs package provides @code{idle-highlight-mode} that sets
10293 an idle timer to highlight all occurrences in the buffer of the word under
10294 the point.")
10295 (license license:gpl3+)))
10296
10297 (define-public emacs-ox-twbs
10298 (package
10299 (name "emacs-ox-twbs")
10300 (version "1.1.1")
10301 (source
10302 (origin
10303 (method git-fetch)
10304 (uri (git-reference
10305 (url "https://github.com/marsmining/ox-twbs")
10306 (commit (string-append "v" version))))
10307 (file-name (git-file-name name version))
10308 (sha256
10309 (base32 "0kd45p8y7ykadmai4jn1x1pgpafyqggwb1ccbjzalxw4k9wmd45f"))))
10310 (build-system emacs-build-system)
10311 (home-page "https://github.com/marsmining/ox-twbs")
10312 (synopsis "Export org-mode docs as HTML compatible with Twitter Bootstrap")
10313 (description
10314 "This Emacs package outputs your org-mode docs with a simple, clean and
10315 modern look. It implements a new HTML back-end for exporting org-mode docs as
10316 HTML compatible with Twitter Bootstrap. By default, HTML is exported with
10317 jQuery and Bootstrap resources included via osscdn.")
10318 (license license:gpl3+)))
10319
10320 (define-public emacs-highlight-sexp
10321 (package
10322 (name "emacs-highlight-sexp")
10323 (version "1.0")
10324 (source
10325 (origin
10326 (method git-fetch)
10327 (uri (git-reference
10328 (url "https://github.com/daimrod/highlight-sexp")
10329 (commit (string-append "v" version))))
10330 (file-name (git-file-name name version))
10331 (sha256
10332 (base32 "12cyk2q5g6p4ac2hykw1cag7dp1prjjnck5f7nalwwaklmy62y79"))))
10333 (build-system emacs-build-system)
10334 (home-page "https://github.com/daimrod/highlight-sexp")
10335 (synopsis "Minor mode that highlights the s-exp at the current position")
10336 (description
10337 "This Emacs package highlights the s-exp at the current position.")
10338 (license license:gpl3+)))
10339
10340 (define-public emacs-highlight-stages
10341 (let ((commit "29cbc5b78261916da042ddb107420083da49b271")
10342 (revision "1"))
10343 (package
10344 (name "emacs-highlight-stages")
10345 (version (string-append "1.1.0" "-" revision "." (string-take commit 7)))
10346 (source
10347 (origin
10348 (method git-fetch)
10349 (uri (git-reference
10350 (url "https://github.com/zk-phi/highlight-stages")
10351 (commit commit)))
10352 (file-name (git-file-name name version))
10353 (sha256
10354 (base32
10355 "0r6nbcrr0dqpgm8dir8ahzjy7rw4nrac48byamzrq96r7ajlxlv0"))
10356 (patches
10357 (search-patches "emacs-highlight-stages-add-gexp.patch"))))
10358 (build-system emacs-build-system)
10359 (home-page "https://github.com/wigust/highlight-stages")
10360 (synopsis "Minor mode that highlights (quasi-quoted) expressions")
10361 (description "@code{highlight-stages} provides an Emacs minor mode that
10362 highlights quasi-quoted expressions.")
10363 (license license:gpl3+))))
10364
10365 (define-public emacspeak
10366 (package
10367 (name "emacspeak")
10368 (version "52.0")
10369 (source
10370 (origin
10371 (method url-fetch)
10372 (uri (string-append
10373 "https://github.com/tvraman/emacspeak/releases/download/"
10374 version "/emacspeak-" version ".tar.bz2"))
10375 (sha256
10376 (base32 "0x5b0s38r5ih2lk7f5hasi9arrgxlmmq5jaddadbxi8in2gw2jzl"))))
10377 (build-system gnu-build-system)
10378 (arguments
10379 '(#:make-flags (list (string-append "prefix="
10380 (assoc-ref %outputs "out")))
10381 #:phases
10382 (modify-phases %standard-phases
10383 (add-after 'unpack 'delete-broken-symlink
10384 (lambda _
10385 (delete-file "lisp/sudoku.el")
10386 #t))
10387 (replace 'configure
10388 (lambda _
10389 (setenv "SHELL" (which "sh"))
10390 ;; Configure Emacspeak according to etc/install.org.
10391 (invoke "make" "config")))
10392 (add-after 'build 'build-espeak
10393 (lambda _
10394 (invoke "make" "espeak")))
10395 (replace 'install
10396 (lambda* (#:key inputs outputs #:allow-other-keys)
10397 (let* ((out (assoc-ref outputs "out"))
10398 (bin (string-append out "/bin"))
10399 (lisp (string-append out "/share/emacs/site-lisp/emacspeak"))
10400 (info (string-append out "/share/info"))
10401 (emacs (string-append (assoc-ref inputs "emacs")
10402 "/bin/emacs")))
10403 ;; According to etc/install.org, the Emacspeak directory should
10404 ;; be copied to its installation destination.
10405 (for-each
10406 (lambda (file)
10407 (copy-recursively file (string-append lisp "/" file)))
10408 '("etc" "info" "js" "lisp" "media" "servers" "sounds"
10409 "stumpwm" "xsl"))
10410 ;; Make sure emacspeak is loaded from the correct directory.
10411 (substitute* "run"
10412 (("\\./lisp/emacspeak-setup.el")
10413 (string-append lisp "/lisp/emacspeak-setup.el")))
10414 ;; Install the convenient startup script.
10415 (mkdir-p bin)
10416 (copy-file "run" (string-append bin "/emacspeak")))
10417 #t))
10418 (add-after 'install 'wrap-program
10419 (lambda* (#:key inputs outputs #:allow-other-keys)
10420 (let* ((out (assoc-ref outputs "out"))
10421 (emacspeak (string-append out "/bin/emacspeak"))
10422 (espeak (string-append (assoc-ref inputs "espeak")
10423 "/bin/espeak")))
10424 ;; The environment variable DTK_PROGRAM tells emacspeak what
10425 ;; program to use for speech.
10426 (wrap-program emacspeak
10427 `("DTK_PROGRAM" ":" prefix (,espeak)))
10428 #t))))
10429 #:tests? #f)) ; no check target
10430 (inputs
10431 `(("emacs" ,emacs)
10432 ("espeak" ,espeak-ng)
10433 ("perl" ,perl)
10434 ("tcl" ,tcl)
10435 ("tclx" ,tclx)))
10436 (home-page "http://emacspeak.sourceforge.net")
10437 (synopsis "Audio desktop interface for Emacs")
10438 (description
10439 "Emacspeak is a speech interface that allows visually impaired users to
10440 interact independently and efficiently with the computer. Audio
10441 formatting---a technique pioneered by AsTeR---and full support for W3C's Aural
10442 CSS (ACSS) allows Emacspeak to produce rich aural presentations of electronic
10443 information. By seamlessly blending all aspects of the Internet such as
10444 Web-surfing and messaging, Emacspeak speech-enables local and remote
10445 information via a consistent and well-integrated user interface.")
10446 (license license:gpl2+)))
10447
10448 (define-public emacs-adaptive-wrap
10449 (package
10450 (name "emacs-adaptive-wrap")
10451 (version "0.7")
10452 (source
10453 (origin
10454 (method url-fetch)
10455 (uri (string-append "https://elpa.gnu.org/packages/"
10456 "adaptive-wrap-" version ".el"))
10457 (sha256
10458 (base32 "10fb8gzvkbnrgzv28n1rczs03dvapr7rvi0kd73j6yf1zg2iz6qp"))))
10459 (build-system emacs-build-system)
10460 (home-page "https://elpa.gnu.org/packages/adaptive-wrap.html")
10461 (synopsis "Smart line-wrapping with wrap-prefix")
10462 (description
10463 "This Emacs package provides the @code{adaptive-wrap-prefix-mode}
10464 minor mode which sets the wrap-prefix property on the fly so that
10465 single-long-line paragraphs get word-wrapped in a way similar to what
10466 you'd get with @kbd{M-q} using @code{adaptive-fill-mode}, but without
10467 actually changing the buffer's text.")
10468 (license license:gpl3+)))
10469
10470 (define-public emacs-diff-hl
10471 (package
10472 (name "emacs-diff-hl")
10473 (version "1.8.7")
10474 (source
10475 (origin
10476 (method git-fetch)
10477 (uri (git-reference
10478 (url "https://github.com/dgutov/diff-hl")
10479 (commit version)))
10480 (file-name (git-file-name name version))
10481 (sha256
10482 (base32 "0i7x6qgr3nydcwhw72sbc8z9x9dfhgkf0dqj9nakvx36vn1bblbq"))))
10483 (build-system emacs-build-system)
10484 (home-page "https://github.com/dgutov/diff-hl")
10485 (synopsis
10486 "Highlight uncommitted changes using VC")
10487 (description
10488 "@code{diff-hl-mode} highlights uncommitted changes on the side of the
10489 window (using the fringe, by default), allows you to jump between
10490 the hunks and revert them selectively.")
10491 (license license:gpl3+)))
10492
10493 (define-public emacs-diminish
10494 (package
10495 (name "emacs-diminish")
10496 (version "0.45")
10497 (source
10498 (origin
10499 (method git-fetch)
10500 (uri (git-reference
10501 (url "https://github.com/myrjola/diminish.el")
10502 (commit (string-append "v" version))))
10503 (file-name (git-file-name name version))
10504 (sha256
10505 (base32 "0qpgfgp8hrzz4vdifxq8h25n0a0jlzgf7aa1fpy6r0080v5rqbb6"))))
10506 (build-system emacs-build-system)
10507 (home-page "https://github.com/myrjola/diminish.el")
10508 (synopsis "Diminish minor modes with no modeline display")
10509 (description "@code{emacs-diminish} implements hiding or
10510 abbreviation of the mode line displays (lighters) of minor modes.")
10511 (license license:gpl2+)))
10512
10513 (define-public emacs-use-package
10514 (package
10515 (name "emacs-use-package")
10516 (version "2.4")
10517 (source (origin
10518 (method git-fetch)
10519 (uri (git-reference
10520 (url "https://github.com/jwiegley/use-package")
10521 (commit version)))
10522 (file-name (git-file-name name version))
10523 (sha256
10524 (base32
10525 "1b7mjjh0d6fmkkd9vyj64vca27xqhga0nvyrrcqxpqjn62zq046y"))))
10526 (build-system emacs-build-system)
10527 (native-inputs
10528 `(("texinfo" ,texinfo)))
10529 (propagated-inputs
10530 `(("emacs-diminish" ,emacs-diminish)))
10531 (arguments
10532 `(#:tests? #t
10533 #:test-command '("emacs" "--batch"
10534 "-l" "use-package-tests.el"
10535 "-f" "ert-run-tests-batch-and-exit")
10536 #:phases
10537 (modify-phases %standard-phases
10538 (add-before 'install 'install-manual
10539 (lambda* (#:key outputs #:allow-other-keys)
10540 (let* ((out (assoc-ref outputs "out"))
10541 (info-dir (string-append out "/share/info")))
10542 (mkdir-p info-dir)
10543 (install-file "use-package.info" info-dir)
10544 #t)))
10545 (add-before 'install-manual 'build-manual
10546 (lambda _
10547 (invoke "makeinfo" "use-package.texi")
10548 #t)))))
10549 (home-page "https://github.com/jwiegley/use-package")
10550 (synopsis "Declaration for simplifying your .emacs")
10551 (description "The use-package macro allows you to isolate package
10552 configuration in your @file{.emacs} file in a way that is both
10553 performance-oriented and tidy.")
10554 (license license:gpl2+)))
10555
10556 (define-public emacs-leaf
10557 (package
10558 (name "emacs-leaf")
10559 (version "4.2.5")
10560 (source
10561 (origin
10562 (method url-fetch)
10563 (uri (string-append "https://elpa.gnu.org/packages/"
10564 "leaf-" version ".tar"))
10565 (sha256
10566 (base32 "0y78mp4c2gcwp7dc87wlx3r4hfmap14vvx8gkjc9nkf99qavpnkw"))))
10567 (build-system emacs-build-system)
10568 (home-page "https://github.com/conao3/leaf.el")
10569 (synopsis "Simplify your init.el configuration, extended use-package")
10570 (description
10571 "This package provides macros that allows you to declaratively configure
10572 settings typical of an Elisp package with various keywords. The syntax is
10573 similar, but not identical to use-package -- overall, leaf aims at a cleaner
10574 and more predictable implementation.")
10575 (license license:agpl3+)))
10576
10577 (define-public emacs-strace-mode
10578 (let* ((commit "6a69b4b06db6797af56f33eda5cb28af94e59f11")
10579 (revision "1"))
10580 (package
10581 (name "emacs-strace-mode")
10582 (version (string-append "0.0.2-" revision "." (string-take commit 7)))
10583 (source (origin
10584 (method git-fetch)
10585 (uri (git-reference
10586 (url "https://github.com/pkmoore/strace-mode")
10587 (commit commit)))
10588 (file-name (git-file-name name version))
10589 (sha256
10590 (base32
10591 "1lbk2kzdznf2bkfazizfbimaxxzfzv00lrz1ran9dc2zqbc0bj9f"))))
10592 (build-system emacs-build-system)
10593 (home-page "https://github.com/pkmoore/strace-mode")
10594 (synopsis "Emacs major mode to highlight strace outputs")
10595 (description "@code{emacs-strace-mode} provides an Emacs major mode
10596 highlighting strace outputs.")
10597 (license license:gpl3+))))
10598
10599 (define-public emacs-default-encrypt
10600 (package
10601 (name "emacs-default-encrypt")
10602 (version "4.4")
10603 (source
10604 (origin
10605 (method url-fetch)
10606 (uri (string-append
10607 "https://informationelle-selbstbestimmung-im-internet.de"
10608 "/emacs/jl-encrypt" version "/jl-encrypt.el"))
10609 (file-name (string-append "jl-encrypt-" version ".el"))
10610 (sha256
10611 (base32
10612 "0w9ggz075j1zwg7d0rv9k8238g600p7czfnnsnawswi7yps2xk78"))))
10613 (build-system emacs-build-system)
10614 (home-page
10615 "https://informationelle-selbstbestimmung-im-internet.de/Emacs.html")
10616 (synopsis "Automatically encrypt or sign Gnus messages in Emacs")
10617 (description
10618 "DefaultEncrypt is designed to be used with Gnus in Emacs. It
10619 automatically encrypts messages that you send (e.g., email) when public keys
10620 for all recipients are available, and it protects you from accidentally
10621 sending un-encrypted messages. It can also be configured to automatically
10622 sign messages that you send. For details and instructions on how to use
10623 DefaultEncrypt, please refer to the home page or read the comments in the
10624 source file, @file{jl-encrypt.el}.")
10625 (license license:gpl3+)))
10626
10627 (define-public emacs-extend-smime
10628 (package
10629 (name "emacs-extend-smime")
10630 (version "3.3")
10631 (source
10632 (origin
10633 (method url-fetch)
10634 (uri (string-append
10635 "https://informationelle-selbstbestimmung-im-internet.de"
10636 "/emacs/jl-smime" version "/jl-smime.el"))
10637 (file-name (string-append "jl-smime-" version ".el"))
10638 (sha256
10639 (base32
10640 "1iv8s2wjmv3v5qfwlcy9hvvrmxxvp3f8m1krlr789q7bbh35jynh"))))
10641 (build-system emacs-build-system)
10642 (home-page
10643 "https://informationelle-selbstbestimmung-im-internet.de/Emacs.html")
10644 (synopsis "Improved S/MIME support for Gnus in Emacs")
10645 (propagated-inputs
10646 `(("emacs-default-encrypt" ,emacs-default-encrypt)))
10647 (description
10648 ;; TRANSLATORS: ExtendSMIME, DefaultEncrypt, and emacs-default-encrypt
10649 ;; should not be translated. The name "emacs-default-encrypt" refers to
10650 ;; the Guix package that provides DefaultEncrypt.
10651 "ExtendSMIME is designed to be used with Gnus in Emacs. It enhances
10652 DefaultEncrypt (emacs-default-encrypt) to support S/MIME (Secure/Multipurpose
10653 Internet Mail Extensions) via LDAP (Lightweight Directory Access Protocol).
10654 Before a message (e.g., email) is sent, ExtendSMIME searches for missing
10655 certificates via LDAP and imports them into @code{gpgsm}. When certificates
10656 for all recipients are available, DefaultEncrypt automatically encrypts the
10657 message. For details and instructions on how to use ExtendSMIME, please refer
10658 to the home page or read the comments in the source file,
10659 @file{jl-smime.el}.")
10660 (license license:gpl3+)))
10661
10662 (define-public emacs-htmlize
10663 (package
10664 (name "emacs-htmlize")
10665 (version "1.55")
10666 (source
10667 (origin
10668 (method git-fetch)
10669 (uri (git-reference
10670 (url "https://github.com/hniksic/emacs-htmlize")
10671 (commit (string-append "release/" version))))
10672 (file-name (git-file-name name version))
10673 (sha256
10674 (base32 "0gi3xshscpa53qrj8yplfsqahcilc2ybcc2p7gnh5nbnf2n1n97x"))))
10675 (build-system emacs-build-system)
10676 (home-page "https://github.com/hniksic/emacs-htmlize")
10677 (synopsis "Convert buffer text and decorations to HTML")
10678 (description "@code{emacs-htmlize} converts the buffer text and
10679 the associated decorations to HTML. Output to CSS, inline CSS and
10680 fonts is supported.")
10681 (license license:gpl2+)))
10682
10683 (define-public emacs-xmlgen
10684 (package
10685 (name "emacs-xmlgen")
10686 (version "0.5")
10687 (source
10688 (origin
10689 (method git-fetch)
10690 (uri (git-reference
10691 (url "https://github.com/philjackson/xmlgen")
10692 (commit version)))
10693 (file-name (git-file-name name version))
10694 (sha256
10695 (base32 "096i29v0badx0a6339h9ckdz78zj59gbjdp7vj7vhkq9d830392s"))))
10696 (build-system emacs-build-system)
10697 (arguments
10698 `(#:tests? #t
10699 #:test-command '("emacs" "--batch"
10700 "-l" "xmlgen-test.el"
10701 "-f" "ert-run-tests-batch-and-exit")))
10702 (home-page "https://github.com/philjackson/xmlgen")
10703 (synopsis "S-expression to XML domain specific language (DSL) in
10704 Emacs Lisp")
10705 (description "@code{emacs-xmlgen} provides S-expression to XML
10706 conversion for Emacs Lisp.")
10707 (license license:gpl2+)))
10708
10709 (define-public emacs-cdlatex
10710 (package
10711 (name "emacs-cdlatex")
10712 (version "4.7")
10713 (source
10714 (origin
10715 (method git-fetch)
10716 (uri (git-reference
10717 (url "https://github.com/cdominik/cdlatex")
10718 (commit version)))
10719 (file-name (git-file-name name version))
10720 (sha256
10721 (base32 "1jj9vmhc4s3ych08bjm1c2xwi81z1p20rj7bvxrgvb5aga2ghi9d"))))
10722 (build-system emacs-build-system)
10723 (propagated-inputs
10724 `(("emacs-auctex" ,emacs-auctex)))
10725 (home-page "https://github.com/cdominik/cdlatex")
10726 (synopsis "Fast Emacs input methods for LaTeX environments and
10727 math")
10728 (description "CDLaTeX is an Emacs minor mode supporting fast
10729 insertion of environment templates and math in LaTeX. Similar
10730 commands are also offered as part of the AUCTeX package, but it is not
10731 the same - CDLaTeX focuses on speediness for inserting LaTeX
10732 constructs.")
10733 (license license:gpl3+)))
10734
10735 (define-public emacs-cnfonts
10736 (package
10737 (name "emacs-cnfonts")
10738 (version "0.9.1")
10739 (source
10740 (origin
10741 (method git-fetch)
10742 (uri (git-reference
10743 (url "https://github.com/tumashu/cnfonts")
10744 (commit (string-append "v" version))))
10745 (file-name (git-file-name name version))
10746 (sha256
10747 (base32 "11d44lf0m0kbzq1mvyqkl4aprys0xqaarp08nij57xnynin1rynx"))))
10748 (build-system emacs-build-system)
10749 (home-page "https://github.com/tumashu/cnfonts")
10750 (synopsis "Emacs Chinese fonts setup tool")
10751 (description "cnfonts is a Chinese fonts setup tool, allowing for easy
10752 configuration of Chinese fonts.")
10753 (license license:gpl2+)))
10754
10755 (define-public emacs-php-mode
10756 (package
10757 (name "emacs-php-mode")
10758 (version "1.23.0")
10759 (source
10760 (origin
10761 (method git-fetch)
10762 (uri (git-reference
10763 (url "https://github.com/ejmr/php-mode")
10764 (commit (string-append "v" version))))
10765 (file-name (git-file-name name version))
10766 (sha256
10767 (base32 "0wnkcxg6djy4jvxhshiy1iw6b5cf79pjwjhfd1a060cavhfm4v5c"))))
10768 (build-system emacs-build-system)
10769 (home-page "https://github.com/ejmr/php-mode")
10770 (synopsis "Major mode for editing PHP code")
10771 (description
10772 "PHP mode is a major mode for editing PHP source code. It's an extension
10773 of C mode; thus it inherits all C mode's navigation functionality. But it
10774 colors according to the PHP grammar and indents according to the PEAR coding
10775 guidelines. It also includes a couple handy IDE-type features such as
10776 documentation search and a source and class browser.")
10777 (license license:gpl3+)))
10778
10779 (define-public emacs-pos-tip
10780 (package
10781 (name "emacs-pos-tip")
10782 (version "0.4.6")
10783 (source
10784 (origin
10785 (method git-fetch)
10786 (uri (git-reference
10787 (url "https://github.com/pitkali/pos-tip")
10788 (commit version)))
10789 (file-name (git-file-name name version))
10790 (sha256
10791 (base32 "0w8bnspnk871qndp18hs0wk4x9x31xr9rwbvf5dc8mcbnj29ch33"))))
10792 (build-system emacs-build-system)
10793 ;; The following functions and variables needed by emacs-pos-tip are
10794 ;; not included in emacs-minimal:
10795 ;; x-display-pixel-width, x-display-pixel-height, x-show-tip
10796 (arguments `(#:emacs ,emacs))
10797 (home-page "https://github.com/pitkali/pos-tip")
10798 (synopsis "Show tooltip at point")
10799 (description "The standard library tooltip.el provides a function for
10800 displaying a tooltip at the mouse position. However, locating a tooltip at an
10801 arbitrary buffer position in a window is not easy. Pos-tip provides such a
10802 function to be used by other frontend programs.")
10803 (license license:gpl2+)))
10804
10805 (define-public emacs-pyim-basedict
10806 (package
10807 (name "emacs-pyim-basedict")
10808 (version "0.3.1")
10809 (source
10810 (origin
10811 (method git-fetch)
10812 (uri (git-reference
10813 (url "https://github.com/tumashu/pyim-basedict")
10814 (commit (string-append "v" version))))
10815 (file-name (git-file-name name version))
10816 (sha256
10817 (base32 "0576r8ap9gp91ycjf1d47pn13kxp0f9fysn09zlq44hr0s1y2y5d"))))
10818 (build-system emacs-build-system)
10819 (home-page "https://github.com/tumashu/pyim-basedict")
10820 (synopsis "Input method dictionary of pyim")
10821 (description "Pyim-basedict is the default pinyin input method dictionary,
10822 containing words from the rime project.")
10823 (license license:gpl2+)))
10824
10825 (define-public emacs-pyim
10826 (package
10827 (name "emacs-pyim")
10828 (version "1.8")
10829 (source
10830 (origin
10831 (method git-fetch)
10832 (uri (git-reference
10833 (url "https://github.com/tumashu/pyim")
10834 (commit (string-append "v" version))))
10835 (file-name (git-file-name name version))
10836 (sha256
10837 (base32
10838 "16rma4cv7xgky0g3x4an27v30jdi6i1sqw43cl99zhkqvp43l3f9"))))
10839 (build-system emacs-build-system)
10840 (propagated-inputs
10841 `(("emacs-async" ,emacs-async)
10842 ("emacs-pyim-basedict" ,emacs-pyim-basedict)
10843 ("emacs-popup" ,emacs-popup)
10844 ("emacs-posframe" ,emacs-posframe)))
10845 (home-page "https://github.com/tumashu/pyim")
10846 (synopsis "Chinese input method")
10847 (description "Chinese input method which supports quanpin, shuangpin, wubi
10848 and cangjie.")
10849 (license license:gpl2+)))
10850
10851 (define-public emacs-posframe
10852 (package
10853 (name "emacs-posframe")
10854 (version "0.7.0")
10855 (source
10856 (origin
10857 (method url-fetch)
10858 (uri (string-append "https://elpa.gnu.org/packages/"
10859 "posframe-" version ".el"))
10860 (sha256
10861 (base32 "1kwl83jb5k1hnx0s2qw972v0gjqbbvk4sdcdb1qbdxsyw36sylc9"))))
10862 (build-system emacs-build-system)
10863 ;; emacs-minimal does not include the function font-info.
10864 (arguments
10865 `(#:emacs ,emacs))
10866 (home-page "https://github.com/tumashu/posframe")
10867 (synopsis "Pop a posframe (a child frame) at point")
10868 (description "@code{emacs-posframe} can pop a posframe at point. A
10869 posframe is a child frame displayed within its root window's buffer.
10870 @code{emacs-posframe} is fast and works well with CJK languages.")
10871 (license license:gpl3+)))
10872
10873 (define-public emacs-el2org
10874 (package
10875 (name "emacs-el2org")
10876 (version "0.6.0")
10877 (source
10878 (origin
10879 (method git-fetch)
10880 (uri (git-reference
10881 (url "https://github.com/tumashu/el2org")
10882 (commit (string-append "v" version))))
10883 (file-name (git-file-name name version))
10884 (sha256
10885 (base32 "0mzddqny6wpg1fv99xrvlv7rxmaifvmy5bvj4in4pldhm4cx4q1b"))))
10886 (build-system emacs-build-system)
10887 (home-page "https://github.com/tumashu/el2org")
10888 (synopsis "Convert Emacs-lisp file to org file")
10889 (description "El2org is a simple tool, which can convert Emacs-lisp file
10890 to org file, you can use this tool to write orgify commentary.")
10891 (license license:gpl2+)))
10892
10893 (define-public emacs-mustache
10894 (package
10895 (name "emacs-mustache")
10896 (version "0.23")
10897 (source
10898 (origin
10899 (method git-fetch)
10900 (uri (git-reference
10901 (url "https://github.com/Wilfred/mustache.el")
10902 (commit version)))
10903 (file-name (git-file-name name version))
10904 (sha256
10905 (base32 "1n2ymd92qpvsby6ms0l3kjhdzzc47rri2aiscc6bs07hm4mjpr9q"))))
10906 (build-system emacs-build-system)
10907 (propagated-inputs
10908 `(("emacs-dash" ,emacs-dash)
10909 ("emacs-ht" ,emacs-ht)
10910 ("emacs-s" ,emacs-s)))
10911 (home-page "https://github.com/Wilfred/mustache.el")
10912 (synopsis "Mustache templating library for Emacs")
10913 (description "Mustache templating library for Emacs, mustache is
10914 a simple web template system, which is described as a logic-less system
10915 because it lacks any explicit control flow statements, both looping and
10916 conditional evaluation can be achieved using section tags processing lists
10917 and lambdas.")
10918 (license license:gpl3+)))
10919
10920 (define-public emacs-org2web
10921 (package
10922 (name "emacs-org2web")
10923 (version "0.9.1")
10924 (source
10925 (origin
10926 (method git-fetch)
10927 (uri (git-reference
10928 (url "https://github.com/tumashu/org2web")
10929 (commit (string-append "v" version))))
10930 (file-name (git-file-name name version))
10931 (sha256
10932 (base32 "0wsvfn409a2ivbich8b8zqza78sprirg4bl7igx536ydqclmi0n7"))))
10933 (build-system emacs-build-system)
10934 (propagated-inputs
10935 `(("emacs-dash" ,emacs-dash)
10936 ("emacs-el2org" ,emacs-el2org)
10937 ("emacs-ht" ,emacs-ht)
10938 ("emacs-mustache" ,emacs-mustache)
10939 ("emacs-simple-httpd" ,emacs-simple-httpd)))
10940 (home-page "https://github.com/tumashu/org2web")
10941 (synopsis "Static site generator based on org-mode ")
10942 (description "Org2web is a static site generator based on org-mode,
10943 which code derived from Kelvin H's org-page.")
10944 (license license:gpl2+)))
10945
10946 (define-public emacs-xelb
10947 (package
10948 (name "emacs-xelb")
10949 (version "0.18")
10950 (source (origin
10951 (method url-fetch)
10952 (uri (string-append "https://elpa.gnu.org/packages/xelb-"
10953 version ".tar"))
10954 (sha256
10955 (base32
10956 "1fp5mzl63sh0h3ws4l5p4qgvi7ny8a3fj6k4dhqa98xgw2bx03v7"))))
10957 (build-system emacs-build-system)
10958 ;; The following functions and variables needed by emacs-xelb are
10959 ;; not included in emacs-minimal:
10960 ;; x-display-screens, x-keysym-table, x-alt-keysym, x-meta-keysym
10961 ;; x-hyper-keysym, x-super-keysym, libxml-parse-xml-region
10962 ;; x-display-pixel-width, x-display-pixel-height
10963 (arguments
10964 `(#:emacs ,emacs
10965 #:phases
10966 (modify-phases %standard-phases
10967 (add-after 'unpack 'regenerate-el-files
10968 (lambda* (#:key inputs #:allow-other-keys)
10969 (invoke "make"
10970 (string-append "PROTO_PATH="
10971 (assoc-ref inputs "xcb-proto")
10972 "/share/xcb")
10973 (string-append "EMACS_BIN="
10974 (assoc-ref inputs "emacs")
10975 "/bin/emacs -Q")))))))
10976 (native-inputs `(("xcb-proto" ,xcb-proto)))
10977 (home-page "https://github.com/ch11ng/xelb")
10978 (synopsis "X protocol Emacs Lisp binding")
10979 (description "@code{emacs-xelb} is a pure Emacs Lisp implementation of the
10980 X11 protocol based on the XML description files from the XCB project. It
10981 features an object-oriented API and permits a certain degree of concurrency.
10982 It should enable you to implement low-level X11 applications.")
10983 (license license:gpl3+)))
10984
10985 (define-public emacs-exwm
10986 (package
10987 (name "emacs-exwm")
10988 (version "0.24")
10989 (synopsis "Emacs X window manager")
10990 (source
10991 (origin
10992 (method url-fetch)
10993 (uri (string-append "https://elpa.gnu.org/packages/"
10994 "exwm-" version ".tar"))
10995 (sha256
10996 (base32 "0lj1a3cmbpf4h6x8k6x8cdm1qb51ca6filydnvi5zcda8zpl060s"))
10997 (patches
10998 ;; Patch fixing fullscreen view. Applied upstream as
10999 ;; edb930005b0ba83051ca8a59b493e9a3c8ef580a. It can be removed in
11000 ;; next release.
11001 (search-patches "emacs-exwm-fix-fullscreen-states.patch"))))
11002 (build-system emacs-build-system)
11003 (propagated-inputs
11004 `(("emacs-xelb" ,emacs-xelb)))
11005 (inputs
11006 `(("xhost" ,xhost)
11007 ("dbus" ,dbus)))
11008 ;; The following functions and variables needed by emacs-exwm are
11009 ;; not included in emacs-minimal:
11010 ;; scroll-bar-mode, fringe-mode
11011 ;; x-display-pixel-width, x-display-pixel-height
11012 (arguments
11013 `(#:emacs ,emacs
11014 #:phases
11015 (modify-phases %standard-phases
11016 (add-after 'build 'install-xsession
11017 (lambda* (#:key inputs outputs #:allow-other-keys)
11018 (let* ((out (assoc-ref outputs "out"))
11019 (xsessions (string-append out "/share/xsessions"))
11020 (bin (string-append out "/bin"))
11021 (exwm-executable (string-append bin "/exwm")))
11022 ;; Add a .desktop file to xsessions
11023 (mkdir-p xsessions)
11024 (mkdir-p bin)
11025 (make-desktop-entry-file
11026 (string-append xsessions "/exwm.desktop")
11027 #:name ,name
11028 #:comment ,synopsis
11029 #:exec exwm-executable
11030 #:try-exec exwm-executable)
11031 ;; Add a shell wrapper to bin
11032 (with-output-to-file exwm-executable
11033 (lambda _
11034 (format #t "#!~a ~@
11035 ~a +SI:localuser:$USER ~@
11036 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
11037 (string-append (assoc-ref inputs "bash") "/bin/sh")
11038 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
11039 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
11040 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
11041 '(cond
11042 ((file-exists-p "~/.exwm")
11043 (load-file "~/.exwm"))
11044 ((not (featurep 'exwm))
11045 (require 'exwm)
11046 (require 'exwm-config)
11047 (exwm-config-default)
11048 (message (concat "exwm configuration not found. "
11049 "Falling back to default configuration...")))))))
11050 (chmod exwm-executable #o555)
11051 #t))))))
11052 (home-page "https://github.com/ch11ng/exwm")
11053 (description
11054 "EXWM is a full-featured tiling X window manager for Emacs built on top
11055 of XELB.")
11056 (license license:gpl3+)))
11057
11058 (define-public emacs-switch-window
11059 (package
11060 (name "emacs-switch-window")
11061 (version "1.6.2")
11062 (source
11063 (origin
11064 (method git-fetch)
11065 (uri (git-reference
11066 (url "https://github.com/dimitri/switch-window")
11067 (commit (string-append "v" version))))
11068 (file-name (git-file-name name version))
11069 (sha256
11070 (base32
11071 "0rci96asgamr6qp6nkyr5vwrnslswjxcjd96yccy4aivh0g66yfg"))))
11072 (build-system emacs-build-system)
11073 (home-page "https://github.com/dimitri/switch-window")
11074 (synopsis "Emacs window switch tool")
11075 (description "Switch-window is an emacs window switch tool, which
11076 offer a visual way to choose a window to switch to, delete, split or
11077 other operations.")
11078 (license license:wtfpl2)))
11079
11080 (define-public emacs-exwm-x
11081 (package
11082 (name "emacs-exwm-x")
11083 (version "1.9.0")
11084 (synopsis "Derivative window manager based on EXWM")
11085 (source
11086 (origin
11087 (method git-fetch)
11088 (uri (git-reference
11089 (url "https://github.com/tumashu/exwm-x")
11090 (commit (string-append "v" version))))
11091 (file-name (git-file-name name version))
11092 (sha256
11093 (base32
11094 "03l3dl7s1qys1kkh40rm1sfx7axy1b8sf5f6nyksj9ps6d30p5i4"))))
11095 (build-system emacs-build-system)
11096 (propagated-inputs
11097 `(("emacs-counsel" ,emacs-counsel)
11098 ("emacs-exwm" ,emacs-exwm)
11099 ("emacs-switch-window" ,emacs-switch-window)
11100 ("emacs-use-package" ,emacs-use-package)))
11101 (inputs
11102 `(("xhost" ,xhost)
11103 ("dbus" ,dbus)))
11104 ;; Need emacs instead of emacs-minimal,
11105 ;; for emacs's bin path will be inserted into bin/exwm-x file.
11106 (arguments
11107 `(#:emacs ,emacs
11108 #:phases
11109 (modify-phases %standard-phases
11110 (add-after 'build 'install-xsession
11111 (lambda* (#:key inputs outputs #:allow-other-keys)
11112 (let* ((out (assoc-ref outputs "out"))
11113 (xsessions (string-append out "/share/xsessions"))
11114 (bin (string-append out "/bin"))
11115 (exwm-executable (string-append bin "/exwm-x")))
11116 ;; Add a .desktop file to xsessions
11117 (mkdir-p xsessions)
11118 (mkdir-p bin)
11119 (with-output-to-file
11120 (string-append xsessions "/exwm-x.desktop")
11121 (lambda _
11122 (format #t "[Desktop Entry]~@
11123 Name=~a~@
11124 Comment=~a~@
11125 Exec=~a~@
11126 TryExec=~@*~a~@
11127 Type=Application~%" ,name ,synopsis exwm-executable)))
11128 ;; Add a shell wrapper to bin
11129 (with-output-to-file exwm-executable
11130 (lambda _
11131 (format #t "#!~a ~@
11132 ~a +SI:localuser:$USER ~@
11133 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
11134 (string-append (assoc-ref inputs "bash") "/bin/sh")
11135 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
11136 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
11137 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
11138 '(require 'exwmx-loader))))
11139 (chmod exwm-executable #o555)
11140 #t))))))
11141 (home-page "https://github.com/tumashu/exwm-x")
11142 (description "EXWM-X is a derivative window manager based on EXWM, with focus
11143 on mouse-control.")
11144 (license license:gpl3+)))
11145
11146 (define-public emacs-gnugo
11147 (package
11148 (name "emacs-gnugo")
11149 (version "3.1.0")
11150 (source
11151 (origin
11152 (method url-fetch)
11153 (uri (string-append "https://elpa.gnu.org/packages/gnugo-"
11154 version ".tar"))
11155 (sha256
11156 (base32
11157 "0xpjvs250gg71qwapdsb1hlc61gs0gpkjds01srf784fvyxx2gf1"))))
11158 (build-system emacs-build-system)
11159 (arguments
11160 `(#:phases (modify-phases %standard-phases
11161 (add-after 'unpack 'configure-default-gnugo-xpms-variable
11162 (lambda _
11163 (substitute* "gnugo.el"
11164 (("defvar gnugo-xpms nil")
11165 "defvar gnugo-xpms #'gnugo-imgen-create-xpms"))
11166 #t)))))
11167 (propagated-inputs
11168 `(("emacs-ascii-art-to-unicode" ,emacs-ascii-art-to-unicode)
11169 ("emacs-xpm" ,emacs-xpm)))
11170 (home-page "https://elpa.gnu.org/packages/gnugo.html")
11171 (synopsis "Emacs major mode for playing GNU Go")
11172 (description "This package provides an Emacs based interface for GNU Go.
11173 It has a graphical mode where the board and stones are drawn using XPM images
11174 and supports the use of a mouse.")
11175 (license license:gpl3+)))
11176
11177 (define-public emacs-gnuplot
11178 (package
11179 (name "emacs-gnuplot")
11180 (version "0.7.0")
11181 (source
11182 (origin
11183 (method git-fetch)
11184 (uri (git-reference
11185 (url "https://github.com/bruceravel/gnuplot-mode")
11186 (commit version)))
11187 (file-name (git-file-name name version))
11188 (sha256
11189 (base32 "0bwri3cvm2vr27kyqkrddm28fs08axnd4nm9amfgp54xp20bn4yn"))))
11190 (build-system gnu-build-system)
11191 (native-inputs `(("emacs" ,emacs-minimal)))
11192 (arguments
11193 (let ((elisp-dir "/share/emacs/site-lisp"))
11194 `(#:modules ((guix build gnu-build-system)
11195 (guix build utils)
11196 (guix build emacs-utils))
11197 #:imported-modules (,@%gnu-build-system-modules
11198 (guix build emacs-utils))
11199 #:configure-flags
11200 (list (string-append "EMACS=" (assoc-ref %build-inputs "emacs")
11201 "/bin/emacs")
11202 (string-append "--with-lispdir=" %output ,elisp-dir))
11203 #:phases
11204 (modify-phases %standard-phases
11205 (add-after 'install 'generate-autoloads
11206 (lambda* (#:key outputs #:allow-other-keys)
11207 (emacs-generate-autoloads
11208 "gnuplot"
11209 (string-append (assoc-ref outputs "out") ,elisp-dir))
11210 #t))))))
11211 (home-page "https://github.com/bruceravel/gnuplot-mode")
11212 (synopsis "Emacs major mode for interacting with gnuplot")
11213 (description "@code{emacs-gnuplot} is an emacs major mode for interacting
11214 with gnuplot.")
11215 (license license:gpl2+)))
11216
11217 (define-public emacs-transpose-frame
11218 (package
11219 (name "emacs-transpose-frame")
11220 (version "0.1.0")
11221 (source
11222 (origin
11223 (method url-fetch)
11224 (uri "https://www.emacswiki.org/emacs/download/transpose-frame.el")
11225 (file-name (string-append "transpose-frame-" version ".el"))
11226 (sha256
11227 (base32
11228 "1f67yksgw9s6j0033hmqzaxx2a93jm11sd5ys7cc3li5gfh680m4"))))
11229 (build-system emacs-build-system)
11230 (home-page "https://www.emacswiki.org/emacs/TransposeFrame")
11231 (synopsis "Transpose window arrangement in current frame")
11232 (description "@code{emacs-transpose-frame} provides some interactive
11233 functions which allows users to transpose windows arrangement in currently
11234 selected frame.")
11235 (license license:bsd-2)))
11236
11237 (define-public emacs-key-chord
11238 (package
11239 (name "emacs-key-chord")
11240 (version "0.6")
11241 (source
11242 (origin
11243 (method url-fetch)
11244 (uri "https://www.emacswiki.org/emacs/download/key-chord.el")
11245 (file-name (string-append "key-chord-" version ".el"))
11246 (sha256
11247 (base32
11248 "03m44pqggfrd53nh9dvpdjgm0rvca34qxmd30hr33hzprzjambxg"))))
11249 (build-system emacs-build-system)
11250 (home-page "https://www.emacswiki.org/emacs/key-chord.el")
11251 (synopsis "Map pairs of simultaneously pressed keys to Emacs commands")
11252 (description "@code{emacs-key-chord} provides @code{key-chord-mode}, a
11253 mode for binding key chords to commands. A key chord is defined as two keys
11254 pressed simultaneously or a single key quickly pressed twice.")
11255 (license license:gpl2+)))
11256
11257 (define-public emacs-evil-surround
11258 (package
11259 (name "emacs-evil-surround")
11260 (version "1.1.0")
11261 (source
11262 (origin
11263 (method git-fetch)
11264 (uri (git-reference
11265 (url "https://github.com/emacs-evil/evil-surround")
11266 (commit version)))
11267 (file-name (git-file-name name version))
11268 (sha256
11269 (base32 "15v2spg5rhddr97pxjfvxj36sh7knp753a9qpw8v5zjnp65kf2kn"))))
11270 (build-system emacs-build-system)
11271 (propagated-inputs
11272 `(("emacs-evil" ,emacs-evil)))
11273 (arguments
11274 `(#:tests? #t
11275 #:test-command '("make" "test")))
11276 (home-page "https://github.com/emacs-evil/evil-surround")
11277 (synopsis "Easily modify surrounding parentheses and quotes")
11278 (description "@code{emacs-evil-surround} allows easy deletion, change and
11279 addition of surrounding pairs, such as parentheses and quotes, in evil mode.")
11280 (license license:gpl3+)))
11281
11282 (define-public emacs-evil-commentary
11283 (package
11284 (name "emacs-evil-commentary")
11285 (version "2.1.1")
11286 (source
11287 (origin
11288 (method git-fetch)
11289 (uri (git-reference
11290 (url "https://github.com/linktohack/evil-commentary")
11291 (commit (string-append "v" version))))
11292 (file-name (git-file-name name version))
11293 (sha256
11294 (base32 "0zjs9zyqfygnpxapvf0ymmiid40i06cxbhjzd81zw33nafgkf6r4"))))
11295 (build-system emacs-build-system)
11296 (propagated-inputs
11297 `(("emacs-evil" ,emacs-evil)))
11298 (home-page "https://github.com/linktohack/evil-commentary")
11299 (synopsis "Comment out code in evil mode")
11300 (description "@code{emacs-evil-commentary} adds keybindings to easily
11301 comment out lines of code in evil mode. It provides @code{gcc} to comment out
11302 lines, and @code{gc} to comment out the target of a motion.")
11303 (license license:gpl3+)))
11304
11305 ;; Tests for emacs-ansi have a circular dependency with ert-runner, and
11306 ;; therefore cannot be run
11307 (define-public emacs-ansi
11308 (let ((commit "a41d5cc719297515d85bb5256980cd1204a71b88")
11309 (revision "1"))
11310 (package
11311 (name "emacs-ansi")
11312 (version (git-version "0.4.1" revision commit))
11313 (source
11314 (origin
11315 (method git-fetch)
11316 (uri (git-reference
11317 (url "https://github.com/rejeep/ansi.el")
11318 (commit commit)))
11319 (file-name (git-file-name name version))
11320 (sha256
11321 (base32 "051v8dmji90chwbsyqsqry7h35mksal2j6rgw1kpmjsni86d79y1"))))
11322 (build-system emacs-build-system)
11323 (propagated-inputs
11324 `(("emacs-dash" ,emacs-dash)
11325 ("emacs-s" ,emacs-s)))
11326 (home-page "https://github.com/rejeep/ansi.el")
11327 (synopsis "Convert strings to ANSI")
11328 (description "@code{emacs-ansi} defines functions that turns simple
11329 strings to ANSI strings. Turning a string into an ANSI string can be to add
11330 color to a text, add color in the background of a text or adding a style, such
11331 as bold, underscore or italic.")
11332 (license license:gpl3+))))
11333
11334 ;; Tests for emacs-commander have a circular dependency with ert-runner, and
11335 ;; therefore cannot be run
11336 (define-public emacs-commander
11337 (package
11338 (name "emacs-commander")
11339 (version "0.7.0")
11340 (source
11341 (origin
11342 (method git-fetch)
11343 (uri (git-reference
11344 (url "https://github.com/rejeep/commander.el")
11345 (commit (string-append "v" version))))
11346 (file-name (git-file-name name version))
11347 (sha256
11348 (base32 "1j6hhyzww7wfwk6bllbb5mk4hw4qs8hsgfbfdifsam9c6i4spm45"))))
11349 (build-system emacs-build-system)
11350 (propagated-inputs
11351 `(("emacs-dash" ,emacs-dash)
11352 ("emacs-f" ,emacs-f)
11353 ("emacs-s" ,emacs-s)))
11354 (home-page "https://github.com/rejeep/commander.el")
11355 (synopsis "Emacs command line parser")
11356 (description "@code{emacs-commander} provides command line parsing for
11357 Emacs.")
11358 (license license:gpl3+)))
11359
11360 (define-public emacs-eglot
11361 (package
11362 (name "emacs-eglot")
11363 (version "1.6")
11364 (source
11365 (origin
11366 (method url-fetch)
11367 (uri (string-append "https://elpa.gnu.org/packages/"
11368 "eglot-" version ".tar"))
11369 (sha256
11370 (base32 "15hd6sx7qrpvlvhwwkcgdiki8pswwf4mm7hkm0xvznskfcp44spx"))))
11371 (build-system emacs-build-system)
11372 (propagated-inputs
11373 `(("emacs-jsonrpc" ,emacs-jsonrpc)))
11374 (home-page "https://github.com/joaotavora/eglot")
11375 (synopsis "Client for Language Server Protocol (LSP) servers")
11376 (description
11377 "Emacs Polyglot, or Eglot, is an Emacs @acronym{Language Server Protocol,
11378 LSP} client that stays out of the way. It guesses the LSP program to start
11379 for the current file, using the major mode as a hint. It prompts you to enter
11380 one if it fails.")
11381 (license license:gpl3+)))
11382
11383 ;; Tests for ert-runner have a circular dependency with ecukes, and therefore
11384 ;; cannot be run
11385 (define-public emacs-ert-runner
11386 (package
11387 (name "emacs-ert-runner")
11388 (version "0.8.0")
11389 (source
11390 (origin
11391 (method git-fetch)
11392 (uri (git-reference
11393 (url "https://github.com/rejeep/ert-runner.el")
11394 (commit (string-append "v" version))))
11395 (file-name (git-file-name name version))
11396 (sha256
11397 (base32
11398 "08gygn9fjank5gpi4v6ynrkn0jbknxbwsn7md4p9ndygdbmnkf98"))))
11399 (build-system emacs-build-system)
11400 (inputs
11401 `(("emacs-ansi" ,emacs-ansi)
11402 ("emacs-commander" ,emacs-commander)
11403 ("emacs-dash" ,emacs-dash)
11404 ("emacs-f" ,emacs-f)
11405 ("emacs-s" ,emacs-s)
11406 ("emacs-shut-up" ,emacs-shut-up)))
11407 (arguments
11408 `(#:phases
11409 (modify-phases %standard-phases
11410 (add-after 'install 'install-executable
11411 (lambda* (#:key inputs outputs #:allow-other-keys)
11412 (let ((out (assoc-ref outputs "out"))
11413 (source-directory (string-append
11414 (getenv "TMPDIR") "/source")))
11415 (substitute* "bin/ert-runner"
11416 (("ERT_RUNNER=\"\\$\\(dirname \\$\\(dirname \\$0\\)\\)")
11417 (string-append "ERT_RUNNER=\"" out
11418 "/share/emacs/site-lisp")))
11419 (install-file "bin/ert-runner" (string-append out "/bin"))
11420 (wrap-program (string-append out "/bin/ert-runner")
11421 (list "EMACSLOADPATH" ":" 'prefix
11422 ;; Do not capture the transient source directory in
11423 ;; the wrapper.
11424 (delete source-directory
11425 (string-split (getenv "EMACSLOADPATH") #\:))))
11426 #t))))
11427 #:include (cons* "^reporters/.*\\.el$" %default-include)))
11428 (home-page "https://github.com/rejeep/ert-runner.el")
11429 (synopsis "Opinionated Ert testing workflow")
11430 (description "@code{ert-runner} is a tool for Emacs projects tested
11431 using ERT. It assumes a certain test structure setup and can therefore make
11432 running tests easier.")
11433 (license license:gpl3+)))
11434
11435 (define-public emacs-xtest
11436 (package
11437 (name "emacs-xtest")
11438 (version "1.1.0")
11439 (source (origin
11440 (method git-fetch)
11441 (uri (git-reference
11442 (url "https://github.com/promethial/xtest")
11443 (commit (string-append "v" version))))
11444 (file-name (git-file-name name version))
11445 (sha256
11446 (base32
11447 "1wqx6hlqcmqiljydih5fx89dw06g8w728pyn4iqsap8jwgjngb09"))))
11448 (arguments
11449 `(#:exclude '()))
11450 (build-system emacs-build-system)
11451 (home-page "https://github.com/promethial/xtest/")
11452 (synopsis "Simple testing with Emacs")
11453 (description "This package provides a simple testing library for Emacs.")
11454 (license license:gpl3+)))
11455
11456 (define-public emacs-disable-mouse
11457 (package
11458 (name "emacs-disable-mouse")
11459 (version "0.2")
11460 (source
11461 (origin
11462 (method git-fetch)
11463 (uri (git-reference
11464 (url "https://github.com/purcell/disable-mouse")
11465 (commit version)))
11466 (file-name (git-file-name name version))
11467 (sha256
11468 (base32 "1v1y5hf6k6ng7xsvgb27nh740d14m6l4krr0paccda8zgm4mw357"))))
11469 (build-system emacs-build-system)
11470 (home-page "https://github.com/purcell/disable-mouse")
11471 (synopsis "Disable mouse commands globally")
11472 (description
11473 "Provides @code{disable-mouse-mode} and @code{global-disable-mouse-mode},
11474 pair of minor modes which suppress all mouse events by intercepting them and
11475 running a customisable handler command (@code{ignore} by default). ")
11476 (license license:gpl3+)))
11477
11478 (define-public emacs-json-reformat
11479 (package
11480 (name "emacs-json-reformat")
11481 (version "0.0.6")
11482 (source
11483 (origin
11484 (method git-fetch)
11485 (uri (git-reference
11486 (url "https://github.com/gongo/json-reformat")
11487 (commit version)))
11488 (file-name (git-file-name name version))
11489 (sha256
11490 (base32 "0qp4n2k6s69jj4gwwimkpadjv245y54wk3bxb1x96f034gkp81vs"))
11491 (patches (search-patches "emacs-json-reformat-fix-tests.patch"))))
11492 (build-system emacs-build-system)
11493 (propagated-inputs
11494 `(("emacs-undercover" ,emacs-undercover)))
11495 (native-inputs
11496 `(("emacs-dash" ,emacs-dash)
11497 ("emacs-shut-up" ,emacs-shut-up)
11498 ("ert-runner" ,emacs-ert-runner)))
11499 (arguments
11500 `(#:tests? #t
11501 #:test-command '("ert-runner")
11502 #:phases
11503 (modify-phases %standard-phases
11504 (add-before 'check 'make-tests-writable
11505 (lambda _
11506 (for-each make-file-writable (find-files "test"))
11507 #t))
11508 (add-before 'check 'delete-json-objects-order-test
11509 (lambda _
11510 (emacs-batch-edit-file "test/json-reformat-test.el"
11511 `(progn (progn (goto-char (point-min))
11512 (re-search-forward
11513 "ert-deftest json-reformat-test:json-reformat-region")
11514 (beginning-of-line)
11515 (kill-sexp))
11516 (basic-save-buffer)))
11517 #t)))))
11518 (home-page "https://github.com/gongo/json-reformat")
11519 (synopsis "Reformatting tool for JSON")
11520 (description "@code{json-reformat} provides a reformatting tool for
11521 @url{http://json.org/, JSON}.")
11522 (license license:gpl3+)))
11523
11524 (define-public emacs-json-snatcher
11525 (package
11526 (name "emacs-json-snatcher")
11527 (version "1.0.0")
11528 (source
11529 (origin
11530 (method git-fetch)
11531 (uri (git-reference
11532 (url "https://github.com/Sterlingg/json-snatcher")
11533 (commit version)))
11534 (file-name (git-file-name name version))
11535 (sha256
11536 (base32 "05zsgnk7grgw9jzwl80h5sxfpifxlr37b4mkbvx7mjq4z14xc2jw"))))
11537 (build-system emacs-build-system)
11538 (home-page "https://github.com/sterlingg/json-snatcher")
11539 (synopsis "Grabs the path to JSON values in a JSON file")
11540 (description "@code{emacs-json-snatcher} grabs the path to JSON values in
11541 a @url{http://json.org/, JSON} file.")
11542 (license license:gpl3+)))
11543
11544 (define-public emacs-json-mode
11545 (package
11546 (name "emacs-json-mode")
11547 (version "1.7.0")
11548 (source
11549 (origin
11550 (method git-fetch)
11551 (uri (git-reference
11552 (url "https://github.com/joshwnj/json-mode")
11553 (commit (string-append "v" version))))
11554 (file-name (git-file-name name version))
11555 (sha256
11556 (base32 "0i79lqzdg59vkqwjd3q092xxn9vhxspb1vn4pkis0vfvn46g01jy"))))
11557 (build-system emacs-build-system)
11558 (propagated-inputs
11559 `(("emacs-json-reformat" ,emacs-json-reformat)
11560 ("emacs-json-snatcher" ,emacs-json-snatcher)))
11561 (home-page "https://github.com/joshwnj/json-mode")
11562 (synopsis "Major mode for editing JSON files")
11563 (description "@code{json-mode} extends the builtin js-mode syntax
11564 highlighting.")
11565 (license license:gpl3+)))
11566
11567 (define-public emacs-jsonrpc
11568 (package
11569 (name "emacs-jsonrpc")
11570 (version "1.0.12")
11571 (source
11572 (origin
11573 (method url-fetch)
11574 (uri (string-append "https://elpa.gnu.org/packages/"
11575 "jsonrpc-" version ".el"))
11576 (sha256
11577 (base32 "0cqp05awikbrn88ifld3vwnv6cxgmr83wlnsvxw8bqb96djz70ad"))))
11578 (build-system emacs-build-system)
11579 (home-page "http://elpa.gnu.org/packages/jsonrpc.html")
11580 (synopsis "JSON-RPC library")
11581 (description
11582 "This library implements the JSONRPC 2.0 specification as
11583 described in @url{http://www.jsonrpc.org/}. As the name suggests,
11584 JSONRPC is a generic Remote Procedure Call protocol designed around
11585 JSON objects.")
11586 (license license:gpl3+)))
11587
11588 (define-public emacs-restclient
11589 (let ((commit "422ee8d8b077dffe65706a0f027ed700b84746bc")
11590 (version "0")
11591 (revision "2")) ;Guix package revision,
11592 ;upstream doesn't have official releases
11593 (package
11594 (name "emacs-restclient")
11595 (version (git-version version revision commit))
11596 (source (origin
11597 (method git-fetch)
11598 (uri (git-reference
11599 (url "https://github.com/pashky/restclient.el")
11600 (commit commit)))
11601 (sha256
11602 (base32
11603 "067nin7vxkdpffxa0q61ybv7szihhvpdinivmci9qkbb86rs9kkz"))
11604 (file-name (git-file-name name version))))
11605 (build-system emacs-build-system)
11606 (propagated-inputs
11607 `(("emacs-helm" ,emacs-helm)))
11608 (home-page "https://github.com/pashky/restclient.el")
11609 (synopsis "Explore and test HTTP REST webservices")
11610 (description
11611 "This tool allows for testing and exploration of HTTP REST Web services
11612 from within Emacs. Restclient runs queries from a plan-text query sheet,
11613 displays results pretty-printed in XML or JSON with @code{restclient-mode}")
11614 (license license:public-domain))))
11615
11616 (define-public emacs-whitespace-cleanup-mode
11617 (let ((commit "72427144b054b0238a86e1348c45d986b8830d9d")
11618 (revision "1"))
11619 (package
11620 (name "emacs-whitespace-cleanup-mode")
11621 (version (git-version "0.10" revision commit))
11622 (source (origin
11623 (method git-fetch)
11624 (uri (git-reference
11625 (url "https://github.com/purcell/whitespace-cleanup-mode")
11626 (commit commit)))
11627 (sha256
11628 (base32
11629 "1zlk534jbwrsabcg3kqlzk4h4hwya60lh6q2n1v4yn4rpf5ghsag"))
11630 (file-name (git-file-name name version))))
11631 (build-system emacs-build-system)
11632 (home-page "https://github.com/purcell/whitespace-cleanup-mode")
11633 (synopsis "Intelligently call @code{whitespace-cleanup} on save")
11634 (description
11635 "This package provides a minor mode that calls
11636 @code{whitespace-cleanup} before saving the current buffer only if the
11637 whitespace in the buffer was initially clean.")
11638 (license license:gpl3+))))
11639
11640 (define-public emacs-eimp
11641 (let ((version "1.4.0")
11642 (commit "2e7536fe6d8f7faf1bad7a8ae37faba0162c3b4f")
11643 (revision "1"))
11644 (package
11645 (name "emacs-eimp")
11646 (version (git-version version revision commit))
11647 (source
11648 (origin
11649 (method git-fetch)
11650 (uri (git-reference
11651 (url "https://github.com/nicferrier/eimp")
11652 (commit commit)))
11653 (file-name (git-file-name name version))
11654 (sha256
11655 (base32
11656 "154d57yafxbcf39r89n5j43c86rp2fki3lw3gwy7ww2g6qkclcra"))))
11657 (build-system emacs-build-system)
11658 (arguments
11659 `(#:phases
11660 (modify-phases %standard-phases
11661 (add-after 'unpack 'configure
11662 (lambda* (#:key inputs #:allow-other-keys)
11663 (let ((imagemagick (assoc-ref inputs "imagemagick")))
11664 ;; eimp.el is read-only in git.
11665 (chmod "eimp.el" #o644)
11666 (emacs-substitute-variables "eimp.el"
11667 ("eimp-mogrify-program"
11668 (string-append imagemagick "/bin/mogrify"))))
11669 #t)))))
11670 (inputs
11671 `(("imagemagick" ,imagemagick)))
11672 (home-page "https://github.com/nicferrier/eimp")
11673 (synopsis "Interactive image manipulation utility for Emacs")
11674 (description "@code{emacs-eimp} allows interactive image manipulation
11675 from within Emacs. It uses the code@{mogrify} utility from ImageMagick to do
11676 the actual transformations.")
11677 (license license:gpl2+))))
11678
11679 (define-public emacs-dired-hacks
11680 (let ((commit "886befe113fae397407c804f72c45613d1d43535")
11681 (revision "2"))
11682 (package
11683 (name "emacs-dired-hacks")
11684 (version (git-version "0.0.1" revision commit))
11685 (source (origin
11686 (method git-fetch)
11687 (uri (git-reference
11688 (url "https://github.com/Fuco1/dired-hacks")
11689 (commit commit)))
11690 (file-name (git-file-name name version))
11691 (sha256
11692 (base32
11693 "1cvibg90ggyrivpjmcfprpi2fx7dpa68f8kzg08s88gw5ib75djl"))))
11694 (build-system emacs-build-system)
11695 (propagated-inputs
11696 `(("emacs-dash" ,emacs-dash)
11697 ("emacs-eimp" ,emacs-eimp)
11698 ("emacs-f" ,emacs-f)
11699 ("emacs-s" ,emacs-s)))
11700 (home-page "https://github.com/Fuco1/dired-hacks")
11701 (synopsis
11702 "Collection of useful dired additions")
11703 (description
11704 "This package provides the following collection of Emacs dired mode
11705 additions:
11706
11707 @itemize
11708 @item dired-avfs
11709 @item dired-columns
11710 @item dired-filter
11711 @item dired-hacks-utils
11712 @item dired-images
11713 @item dired-list
11714 @item dired-narrow
11715 @item dired-open
11716 @item dired-rainbow
11717 @item dired-ranger
11718 @item dired-subtree
11719 @item dired-tagsistant
11720 @end itemize\n")
11721 (license license:gpl3+))))
11722
11723 (define-public emacs-dired-sidebar
11724 (let ((commit "21ccb6723bea69f2e2ca25998268d8a039f904cc")
11725 (revision "1"))
11726 (package
11727 (name "emacs-dired-sidebar")
11728 (home-page "https://github.com/jojojames/dired-sidebar")
11729 (version (git-version "0.1.0" revision commit))
11730 (source (origin
11731 (method git-fetch)
11732 (uri (git-reference (url home-page) (commit commit)))
11733 (file-name (git-file-name name version))
11734 (sha256
11735 (base32
11736 "0mck4qk6srbbf8xnn2sg11j822z4ybxvgavvy402d5sli515i8ca"))))
11737 (build-system emacs-build-system)
11738 (propagated-inputs
11739 `(("emacs-dired-subtree" ,emacs-dired-hacks)))
11740 (synopsis "Sidebar for Emacs using Dired")
11741 (description
11742 "This package provides a sidebar for Emacs similar to @code{NeoTree}
11743 or @code{treemacs}, but leveraging @code{Dired} to do the job of display.")
11744 (license license:gpl3+))))
11745
11746 (define-public emacs-which-key
11747 (package
11748 (name "emacs-which-key")
11749 (version "3.4.0")
11750 (source
11751 (origin
11752 (method git-fetch)
11753 (uri (git-reference
11754 (url "https://github.com/justbur/emacs-which-key")
11755 (commit (string-append "v" version))))
11756 (file-name (git-file-name name version))
11757 (sha256
11758 (base32 "1ahgb7dqdc75farkl0fg0a6hvx2067gdvjq99cd3z2dz56km0p05"))))
11759 (build-system emacs-build-system)
11760 (arguments
11761 `(#:tests? #t
11762 #:test-command '("emacs" "--batch"
11763 "-l" "which-key-tests.el"
11764 "-f" "ert-run-tests-batch-and-exit")))
11765 (home-page "https://github.com/justbur/emacs-which-key")
11766 (synopsis "Display available key bindings in popup")
11767 (description
11768 "@code{emacs-which-key} is a minor mode for Emacs that displays the key
11769 bindings following your currently entered incomplete command (a prefix) in a
11770 popup. For example, after enabling the minor mode if you enter C-x and wait
11771 for the default of 1 second, the minibuffer will expand with all of the
11772 available key bindings that follow C-x (or as many as space allows given your
11773 settings).")
11774 (license license:gpl3+)))
11775
11776 (define-public emacs-hercules
11777 (package
11778 (name "emacs-hercules")
11779 (version "0.2.1")
11780 (source
11781 (origin
11782 (method git-fetch)
11783 (uri (git-reference
11784 (url "https://gitlab.com/jjzmajic/hercules.el.git")
11785 (commit (string-append "v" version))))
11786 (file-name (git-file-name name version))
11787 (sha256
11788 (base32
11789 "19939pf5d6p2facmfhpyghx0vipb5k6ry3bmkmjfkj1zp132zfqf"))))
11790 (build-system emacs-build-system)
11791 (propagated-inputs
11792 `(("emacs-which-key" ,emacs-which-key)))
11793 (home-page "https://gitlab.com/jjzmajic/hercules.el")
11794 (synopsis "Call a chain of related commands without repeated prefix keys")
11795 (description
11796 "This package provides sticky-key-like functionality to obviate the
11797 need for repeated prefix-key sequences, and can reuse existing keymaps. The
11798 list of commands is displayed in a handy popup.")
11799 (license license:gpl3+)))
11800
11801 (define-public emacs-ws-butler
11802 (package
11803 (name "emacs-ws-butler")
11804 (version "0.6")
11805 (source (origin
11806 (method git-fetch)
11807 (uri (git-reference
11808 (url "https://github.com/lewang/ws-butler")
11809 (commit "323b651dd70ee40a25accc940b8f80c3a3185205")))
11810 (file-name (git-file-name name version))
11811 (sha256
11812 (base32
11813 "1a4b0lsmwq84qfx51c5xy4fryhb1ysld4fhgw2vr37izf53379sb"))))
11814 (build-system emacs-build-system)
11815 (native-inputs
11816 `(("ert-runner" ,emacs-ert-runner)))
11817 (arguments
11818 `(#:tests? #t
11819 #:test-command '("ert-runner" "tests")))
11820 (home-page "https://github.com/lewang/ws-butler")
11821 (synopsis "Trim spaces from end of lines")
11822 (description
11823 "This Emacs package automatically and unobtrusively trims whitespace
11824 characters from end of lines.")
11825 (license license:gpl3+)))
11826
11827 (define-public emacs-openwith
11828 (let ((changeset "aeb78782ec87680ea9f082a3f20a3675b3770cf9")
11829 (revision "0"))
11830 (package
11831 (name "emacs-openwith")
11832 (home-page "https://bitbucket.org/jpkotta/openwith")
11833 (version (git-version "0.0.1" revision changeset))
11834 (source (origin
11835 (method hg-fetch)
11836 (uri (hg-reference (url home-page) (changeset changeset)))
11837 (file-name (git-file-name name version))
11838 (sha256
11839 (base32
11840 "1wl6gnxsyhaad4cl9bxjc0qbc5jzvlwbwjbajs0n1s6qr07d6r01"))))
11841 (build-system emacs-build-system)
11842 (synopsis "Open external applications for files with Emacs")
11843 (description
11844 "This package enables you to associate file name patterns with external
11845 applications that are automatically invoked when you use commands like
11846 @code{find-file}. For example, you can have it open @code{png} files with
11847 @code{feh} and @code{mp4} files with @code{mpv}. This is especially useful
11848 when browsing files with Dired.")
11849 (license license:gpl2+))))
11850
11851 (define-public emacs-org-edit-latex
11852 (package
11853 (name "emacs-org-edit-latex")
11854 (version "0.8.0")
11855 (source
11856 (origin
11857 (method git-fetch)
11858 (uri (git-reference
11859 (url "https://github.com/et2010/org-edit-latex")
11860 (commit (string-append "v" version))))
11861 (file-name (git-file-name name version))
11862 (sha256
11863 (base32 "0zcllyhx9n9vcr5w87h0hfz25v52lvh5fi717cb7mf3jh89zh842"))))
11864 (build-system emacs-build-system)
11865 (propagated-inputs
11866 `(("emacs-auctex" ,emacs-auctex)
11867 ;; The version of org in Emacs 25.2 is not sufficient, because the
11868 ;; `org-latex-make-preamble' function is required.
11869 ("emacs-org" ,emacs-org)))
11870 (home-page "https://github.com/et2010/org-edit-latex")
11871 (synopsis "Edit a latex fragment just like editing a src block")
11872 (description "@code{emacs-org-edit-latex} is an extension for org-mode.
11873 It lets you edit a latex fragment in a dedicated buffer just like editing a
11874 src block.")
11875 (license license:gpl3+)))
11876
11877 (define-public emacs-emamux
11878 (package
11879 (name "emacs-emamux")
11880 (version "0.14")
11881 (source
11882 (origin
11883 (method git-fetch)
11884 (uri (git-reference
11885 (url "https://github.com/syohex/emacs-emamux")
11886 (commit version)))
11887 (file-name (git-file-name name version))
11888 (sha256
11889 (base32 "19y69qw79miim9cz5ji54gwspjkcp9g2c1xr5s7jj2fiabnxax6b"))))
11890 (build-system emacs-build-system)
11891 (home-page "https://github.com/syohex/emacs-emamux")
11892 (synopsis "Manipulate Tmux from Emacs")
11893 (description
11894 "@code{emacs-emamux} lets Emacs interact with the @code{tmux} terminal
11895 multiplexer.")
11896 (license license:gpl3+)))
11897
11898 (define-public emacs-rpm-spec-mode
11899 (package
11900 (name "emacs-rpm-spec-mode")
11901 (version "0.16")
11902 (source
11903 (origin
11904 (method url-fetch)
11905 ;; URI has the Fedora release number instead of the version
11906 ;; number. This will have to updated manually every new release.
11907 (uri (string-append
11908 "https://src.fedoraproject.org/cgit/rpms"
11909 "/emacs-rpm-spec-mode.git/snapshot"
11910 "/emacs-rpm-spec-mode-f26.tar.gz"))
11911 (sha256
11912 (base32
11913 "17dz80lhjrc89fj17pysl8slahzrqdkxgcjdk55zls6jizkr6kz3"))))
11914 (build-system emacs-build-system)
11915 (home-page "http://pkgs.fedoraproject.org/cgit/rpms/emacs-rpm-spec-mode.git")
11916 (synopsis "Emacs major mode for editing RPM spec files")
11917 (description "@code{emacs-rpm-spec-mode} provides an Emacs major mode for
11918 editing RPM spec files.")
11919 (license license:gpl2+)))
11920
11921 (define-public emacs-lcr
11922 (package
11923 (name "emacs-lcr")
11924 (version "1.1")
11925 (source
11926 (origin
11927 (method git-fetch)
11928 (uri (git-reference
11929 (url "https://github.com/jyp/lcr")
11930 (commit version)))
11931 (file-name (git-file-name name version))
11932 (sha256
11933 (base32 "0mc55icihxqpf8b05990q1lc2nj2792wcgyr73xsiqx0963sjaj8"))))
11934 (build-system emacs-build-system)
11935 (propagated-inputs
11936 `(("emacs-dash" ,emacs-dash)))
11937 (home-page "https://github.com/jyp/lcr")
11938 (synopsis "Lightweight coroutines in Emacs Lisp")
11939 (description "This package provides macros that can translate code into
11940 equivalent continuation-passing code, as well as miscellaneous utility
11941 functions written in continuation-passing style.")
11942 (license license:gpl3+)))
11943
11944 (define-public emacs-attrap
11945 (let ((commit "18cd1f7832870a36c404e872fa83a271fe8e688d")
11946 (revision "2"))
11947 (package
11948 (name "emacs-attrap")
11949 (version (git-version "1.0" revision commit))
11950 (source (origin
11951 (method git-fetch)
11952 (uri (git-reference
11953 (url "https://github.com/jyp/attrap")
11954 (commit commit)))
11955 (sha256
11956 (base32
11957 "078391949h0fgmshin8f79a1a595m06ig577rkgjqgngcp0d61l9"))
11958 (file-name (git-file-name name version))))
11959 (build-system emacs-build-system)
11960 (propagated-inputs
11961 `(("emacs-dash" ,emacs-dash)
11962 ("emacs-f" ,emacs-f)
11963 ("emacs-flycheck" ,emacs-flycheck)
11964 ("emacs-s" ,emacs-s)))
11965 (home-page "https://github.com/jyp/attrap")
11966 (synopsis "Fix coding error at point")
11967 (description "This package provides a command to fix the Flycheck error
11968 at point.")
11969 (license license:gpl3+))))
11970
11971 (define-public emacs-git-messenger
11972 (package
11973 (name "emacs-git-messenger")
11974 (version "0.18")
11975 (source
11976 (origin
11977 (method git-fetch)
11978 (uri (git-reference
11979 (url "https://github.com/syohex/emacs-git-messenger")
11980 (commit version)))
11981 (file-name (git-file-name name version))
11982 (sha256
11983 (base32 "04fnby2nblk8l70gv09asxkmnn53fh1pdfs77ix44npp99fyw8ix"))))
11984 (build-system emacs-build-system)
11985 (propagated-inputs
11986 `(("emacs-popup" ,emacs-popup)))
11987 (arguments
11988 `(#:tests? #t
11989 #:test-command '("emacs" "--batch" "-l" "test/test.el"
11990 "-f" "ert-run-tests-batch-and-exit")))
11991 (home-page "https://github.com/syohex/emacs-git-messenger")
11992 (synopsis "Popup commit message at current line")
11993 (description "@code{emacs-git-messenger} provides
11994 @code{git-messenger:popup-message}, a function that when called, will popup
11995 the last git commit message for the current line. This uses git-blame
11996 internally.")
11997 (license license:gpl3+)))
11998
11999 (define-public emacs-gitpatch
12000 (package
12001 (name "emacs-gitpatch")
12002 (version "0.5.1")
12003 (source
12004 (origin
12005 (method git-fetch)
12006 (uri (git-reference
12007 (url "https://github.com/tumashu/gitpatch")
12008 (commit (string-append "v" version))))
12009 (file-name (git-file-name name version))
12010 (sha256
12011 (base32 "1drf4fvmak7brf16axkh4nfz8pg44i7pjhfjz3dbkycbpp8y5vig"))))
12012 (build-system emacs-build-system)
12013 (home-page "https://github.com/tumashu/gitpatch")
12014 (synopsis "Mail git patch from Emacs")
12015 (description "@code{emacs-gitpatch} lets users easily send git patches,
12016 created by @code{git format-patch}, from @code{magit}, @code{dired} and
12017 @code{ibuffer} buffers.")
12018 (license license:gpl3+)))
12019
12020 (define-public emacs-erc-hl-nicks
12021 (package
12022 (name "emacs-erc-hl-nicks")
12023 (version "1.3.4")
12024 (source
12025 (origin
12026 (method git-fetch)
12027 (uri (git-reference
12028 (url "https://github.com/leathekd/erc-hl-nicks")
12029 (commit version)))
12030 (file-name (git-file-name name version))
12031 (sha256
12032 (base32 "0k57scxa8rm859fqsm8srhps7rlq06jzazhjbwnadzrh8i5fyvra"))))
12033 (build-system emacs-build-system)
12034 (synopsis "Nickname highlighting for Emacs ERC")
12035 (description "@code{erc-hl-nicks} highlights nicknames in ERC, an IRC
12036 client for Emacs. The main features are:
12037 @itemize
12038 @item Auto-colorizes nicknames without having to specify colors
12039 @item Ignores certain characters that IRC clients add to nicknames to avoid
12040 duplicates (nickname, nickname’, nickname\", etc.)
12041 @item Attempts to produce colors with a sufficient amount of contrast between
12042 the nick color and the background color
12043 @end itemize\n")
12044 (home-page "https://github.com/leathekd/erc-hl-nicks")
12045 (license license:gpl3+)))
12046
12047 (define-public emacs-engine-mode
12048 (package
12049 (name "emacs-engine-mode")
12050 (version "2.1.1")
12051 (source
12052 (origin
12053 (method git-fetch)
12054 (uri (git-reference
12055 (url "https://github.com/hrs/engine-mode")
12056 (commit (string-append "v" version))))
12057 (file-name (git-file-name name version))
12058 (sha256
12059 (base32 "1xka8i4cdvp5r2v2mkli1zz17x1sdsnmszbhqav2rf94v656d91i"))))
12060 (build-system emacs-build-system)
12061 (synopsis "Minor mode for defining and querying search engines")
12062 (description "@code{engine-mode} is a global minor mode for Emacs. It
12063 enables you to easily define search engines, bind them to keybindings, and
12064 query them from the comfort of your editor.")
12065 (home-page "https://github.com/hrs/engine-mode")
12066 (license license:gpl3+)))
12067
12068 (define-public emacs-prop-menu
12069 (package
12070 (name "emacs-prop-menu")
12071 (version "0.1.2")
12072 (source
12073 (origin
12074 (method git-fetch)
12075 (uri (git-reference
12076 (url "https://github.com/david-christiansen/prop-menu-el")
12077 (commit version)))
12078 (file-name (git-file-name name version))
12079 (sha256
12080 (base32
12081 "18ap2liz5r5a8ja2zz9182fnfm47jnsbyblpq859zks356k37iwc"))))
12082 (build-system emacs-build-system)
12083 (home-page
12084 "https://github.com/david-christiansen/prop-menu-el")
12085 (synopsis
12086 "Create and display a context menu based on text and overlay properties")
12087 (description
12088 "This is a library for computing context menus based on text
12089 properties and overlays. The intended use is to have tools that
12090 annotate source code and others that use these annotations, without
12091 requiring a direct coupling between them, but maintaining
12092 discoverability.
12093
12094 Major modes that wish to use this library should first define an
12095 appropriate value for @code{prop-menu-item-functions}. Then, they should
12096 bind @code{prop-menu-by-completing-read} to an appropriate
12097 key. Optionally, a mouse pop-up can be added by binding
12098 @code{prop-menu-show-menu} to a mouse event.")
12099 (license license:gpl3+)))
12100
12101 (define-public emacs-idris-mode
12102 (let ((commit "b77eadd8ac2048d5c882b4464bd9673e45dd6a59")
12103 (revision "0"))
12104 (package
12105 (name "emacs-idris-mode")
12106 (version (git-version "1.0" revision commit))
12107 (source
12108 (origin
12109 (method git-fetch)
12110 (uri (git-reference
12111 (url "https://github.com/idris-hackers/idris-mode")
12112 (commit commit)))
12113 (file-name (git-file-name name commit))
12114 (sha256
12115 (base32
12116 "1v8av6jza1j00ln75zjwaca0vmmv0fhhhi94p84rlfzgzykyb9g1"))))
12117 (build-system emacs-build-system)
12118 (propagated-inputs
12119 `(("emacs-prop-menu" ,emacs-prop-menu)))
12120 (home-page
12121 "https://github.com/idris-hackers/idris-mode")
12122 (synopsis "Major mode for editing Idris code")
12123 (description
12124 "This is an Emacs mode for editing Idris code. It is compatible with
12125 the latest versions of Idris 1.")
12126 (license license:gpl3+))))
12127
12128 (define-public emacs-browse-at-remote
12129 (package
12130 (name "emacs-browse-at-remote")
12131 (version "0.10.0")
12132 (source
12133 (origin
12134 (method git-fetch)
12135 (uri (git-reference
12136 (url "https://github.com/rmuslimov/browse-at-remote")
12137 (commit version)))
12138 (file-name (git-file-name name version))
12139 (sha256
12140 (base32 "0vhia7xmszcb3lxrb8wh93a3knjfzj48h8nhj4fh8zj1pjz6args"))))
12141 (build-system emacs-build-system)
12142 (propagated-inputs
12143 `(("emacs-f" ,emacs-f)
12144 ("emacs-s" ,emacs-s)))
12145 (native-inputs
12146 `(("ert-runner" ,emacs-ert-runner)))
12147 (arguments
12148 `(#:tests? #t
12149 #:test-command '("ert-runner")))
12150 (home-page "https://github.com/rmuslimov/browse-at-remote")
12151 (synopsis "Open github/gitlab/bitbucket/stash page from Emacs")
12152 (description
12153 "This Emacs package allows you to open a target page on
12154 github/gitlab (or bitbucket) by calling @code{browse-at-remote} command.
12155 It supports dired buffers and opens them in tree mode at destination.")
12156 (license license:gpl3+)))
12157
12158 (define-public emacs-tiny
12159 (let ((commit "fd8a6b0b0c564d8242259e20e557ee6041f40908")
12160 (revision "1"))
12161 (package
12162 (name "emacs-tiny")
12163 (version (git-version "0.2.1" revision commit))
12164 (source
12165 (origin
12166 (method git-fetch)
12167 (uri (git-reference
12168 (url "https://github.com/abo-abo/tiny")
12169 (commit commit)))
12170 (file-name (git-file-name name version))
12171 (sha256
12172 (base32
12173 "1498j392ap2mk4zmsm2id16pfgvj78r428da9vw7hdrzzibai2cx"))))
12174 (build-system emacs-build-system)
12175 (arguments
12176 `(#:tests? #t
12177 #:test-command '("make" "test")))
12178 (home-page "https://github.com/abo-abo/tiny")
12179 (synopsis "Quickly generate linear ranges in Emacs")
12180 (description
12181 "The main command of the @code{tiny} extension for Emacs is @code{tiny-expand}.
12182 It is meant to quickly generate linear ranges, e.g. 5, 6, 7, 8. Some elisp
12183 proficiency is an advantage, since you can transform your numeric range with
12184 an elisp expression.")
12185 (license license:gpl3+))))
12186
12187 (define-public emacs-emojify
12188 (package
12189 (name "emacs-emojify")
12190 (version "1.2")
12191 (source
12192 (origin
12193 (method git-fetch)
12194 (uri (git-reference
12195 (url "https://github.com/iqbalansari/emacs-emojify")
12196 (commit (string-append "v" version))))
12197 (file-name (git-file-name name version))
12198 (sha256
12199 (base32
12200 "1fqnj5x7ivjkm5y927dqqnm85q5hzczlb0hrfpjalrhasa6ijsrm"))))
12201 (build-system emacs-build-system)
12202 (arguments
12203 `(#:include (cons "^data/" %default-include)))
12204 (propagated-inputs
12205 `(("emacs-ht" ,emacs-ht)))
12206 (home-page "https://github.com/iqbalansari/emacs-emojify")
12207 (synopsis "Display emojis in Emacs")
12208 (description "This package displays emojis in Emacs similar to how Github,
12209 Slack, and other websites do. It can display plain ASCII like @code{:)} as
12210 well as Github-style emojis like @code{:smile:}. It provides a minor mode
12211 @code{emojify-mode} to enable the display of emojis in a buffer.")
12212 (license license:gpl3+)))
12213
12214 (define-public emacs-make-it-so
12215 (let ((commit "b73dfb640588123c9eece230ad72b37604f5c126")
12216 (revision "2"))
12217 (package
12218 (name "emacs-make-it-so")
12219 (version (git-version "0.1.0" revision commit))
12220 (source
12221 (origin
12222 (method git-fetch)
12223 (uri (git-reference
12224 (url "https://github.com/abo-abo/make-it-so")
12225 (commit commit)))
12226 (file-name (git-file-name name version))
12227 (sha256
12228 (base32
12229 "0p6xhyinzzkrwzbpxqfm8hlii0ikvmmylya240bwsa77w0g1k6xq"))))
12230 (build-system emacs-build-system)
12231 (arguments
12232 `(#:include (cons "^recipes/" %default-include)))
12233 (propagated-inputs
12234 `(("emacs-ivy" ,emacs-ivy)))
12235 (home-page "https://github.com/abo-abo/make-it-so")
12236 (synopsis "Transform files with Makefile recipes")
12237 (description "This package provides an interface for selecting from
12238 different conversion recipes, often including tools like @code{ffmpeg} or
12239 @code{convert}. The conversion command need only be written once, and
12240 subsequent invocations can be readily customized. Several recipes are
12241 included by default, and more can be readily added.")
12242 (license license:gpl3+))))
12243
12244 (define-public emacs-unidecode
12245 (let ((commit "5502ada9287b4012eabb879f12f5b0a9df52c5b7")
12246 (revision "1"))
12247 (package
12248 (name "emacs-unidecode")
12249 (version (git-version "0.2" revision commit))
12250 (source
12251 (origin
12252 (method git-fetch)
12253 (uri (git-reference
12254 (url "https://github.com/sindikat/unidecode")
12255 (commit commit)))
12256 (file-name (git-file-name name version))
12257 (sha256
12258 (base32
12259 "03x3nakbhmakwm977mwrf8jifvjnfwzpjv6wrwpizbqjnkgfchmn"))))
12260 (build-system emacs-build-system)
12261 (arguments
12262 `(#:include (cons* "^tools/" "^data/" %default-include)
12263 #:tests? #t
12264 #:test-command '("emacs" "--batch"
12265 "-l" "unidecode-test.el"
12266 "-f" "ert-run-tests-batch-and-exit")
12267 #:phases
12268 (modify-phases %standard-phases
12269 (add-before 'check 'make-tests-writable
12270 (lambda _
12271 (make-file-writable "unidecode-test.el")
12272 #t))
12273 (add-before 'check 'add-require
12274 (lambda _
12275 (emacs-batch-edit-file "unidecode-test.el"
12276 `(progn (progn (goto-char (point-min))
12277 (re-search-forward
12278 "ert-deftest")
12279 (forward-line -1)
12280 (insert "(require 'unidecode)"))
12281 (basic-save-buffer)))
12282 #t)))))
12283 (home-page "https://github.com/sindikat/unidecode")
12284 (synopsis "Transliterate Unicode text to ASCII")
12285 (description "This package provides functions for converting Unicode to ASCII.")
12286 (license license:gpl2+))))
12287
12288 (define-public emacs-pubmed
12289 (package
12290 (name "emacs-pubmed")
12291 (version "0.2.1")
12292 (source
12293 (origin
12294 (method git-fetch)
12295 (uri (git-reference
12296 (url "https://gitlab.com/fvdbeek/emacs-pubmed.git")
12297 (commit (string-append "v" version))))
12298 (file-name (git-file-name name version))
12299 (sha256
12300 (base32
12301 "15bwjxc7g43m5pi8z17anaqqkvi209r7kk1chmf175477gvrv7c0"))))
12302 (build-system emacs-build-system)
12303 (propagated-inputs
12304 `(("emacs-deferred" ,emacs-deferred)
12305 ("emacs-esxml" ,emacs-esxml)
12306 ("emacs-s" ,emacs-s)
12307 ("emacs-unidecode" ,emacs-unidecode)))
12308 (home-page "https://gitlab.com/fvdbeek/emacs-pubmed")
12309 (synopsis "Interface to PubMed")
12310 (description "This package provides an Emacs interface to the PubMed
12311 database of references on life sciences.")
12312 (license license:gpl3+)))
12313
12314 (define-public emacs-websocket
12315 (package
12316 (name "emacs-websocket")
12317 (version "1.12")
12318 (source
12319 (origin
12320 (method url-fetch)
12321 (uri (string-append "https://elpa.gnu.org/packages/"
12322 "websocket-" version ".tar"))
12323 (sha256
12324 (base32 "0ap4z80c6pzpb69wrx0hsvwzignxmd2b9xy974by9gf5xm2wpa8w"))))
12325 (build-system emacs-build-system)
12326 (home-page "https://elpa.gnu.org/packages/websocket.html")
12327 (synopsis "Emacs WebSocket client and server")
12328 (description
12329 "This is an Elisp library for WebSocket clients to talk to WebSocket
12330 servers, and for WebSocket servers to accept connections from WebSocket
12331 clients. This library is designed to be used by other library writers, to
12332 write applications that use WebSockets, and is not useful by itself.")
12333 (license license:gpl3+)))
12334
12335 (define-public emacs-oauth2
12336 (package
12337 (name "emacs-oauth2")
12338 (version "0.13")
12339 (source
12340 (origin
12341 (method url-fetch)
12342 (uri (string-append "https://elpa.gnu.org/packages/"
12343 "oauth2-" version ".el"))
12344 (sha256
12345 (base32 "0y5nbdwxz2hfr09xgsqgyv60vgx0rsaisibcpkz00klvgg26w33r"))))
12346 (build-system emacs-build-system)
12347 (home-page "https://elpa.gnu.org/packages/oauth2.html")
12348 (synopsis "OAuth 2.0 authorization protocol implementation")
12349 (description
12350 "This package provides an Elisp implementation of the OAuth 2.0 draft.
12351 The main entry point is @code{oauth2-auth-and-store} which will return a token
12352 structure. This token structure can be then used with
12353 @code{oauth2-url-retrieve-synchronously} or @code{oauth2-url-retrieve} to
12354 retrieve any data that need OAuth authentication to be accessed. If the token
12355 needs to be refreshed, the code handles it automatically and stores the new
12356 value of the access token.")
12357 (license license:gpl3+)))
12358
12359 (define-public emacs-circe
12360 (package
12361 (name "emacs-circe")
12362 (version "2.11")
12363 (source
12364 (origin
12365 (method git-fetch)
12366 (uri (git-reference
12367 (url "https://github.com/jorgenschaefer/circe")
12368 (commit (string-append "v" version))))
12369 (file-name (git-file-name name version))
12370 (sha256
12371 (base32 "0cr9flk310yn2jgvj4hbqw9nj5wlfi0fazdkqafzidgz6iq150wd"))))
12372 (build-system emacs-build-system)
12373 (arguments
12374 `(#:tests? #t
12375 #:test-command '("buttercup" "-L" ".")
12376 #:phases
12377 (modify-phases %standard-phases
12378 ;; The HOME environment variable should be set to an existing
12379 ;; directory for the tests to succeed.
12380 (add-before 'check 'set-home
12381 (lambda _
12382 (setenv "HOME" "/tmp")
12383 #t)))))
12384 (native-inputs
12385 `(("emacs-buttercup" ,emacs-buttercup)))
12386 ;; In order to securely connect to an IRC server using TLS, Circe requires
12387 ;; the GnuTLS binary.
12388 (propagated-inputs
12389 `(("gnutls" ,gnutls)))
12390 (home-page "https://github.com/jorgenschaefer/circe")
12391 (synopsis "Client for IRC in Emacs")
12392 (description "Circe is a Client for IRC in Emacs. It integrates well with
12393 the rest of the editor, using standard Emacs key bindings and indicating
12394 activity in channels in the status bar so it stays out of your way unless you
12395 want to use it.")
12396 (license license:gpl3+)))
12397
12398 (define-public emacs-tracking
12399 (package
12400 (inherit emacs-circe)
12401 (name "emacs-tracking")
12402 (arguments
12403 ;; "tracking.el" is a library extracted from Circe package. It requires
12404 ;; "shorten.el".
12405 `(#:include '("^shorten.el$" "^tracking.el$")
12406 ,@(package-arguments emacs-circe)))
12407 (home-page "https://github.com/jorgenschaefer/circe/wiki/Tracking")
12408 (synopsis "Buffer tracking library")
12409 (description "@code{tracking.el} provides a way for different modes to
12410 notify the user that a buffer needs attention. The user then can cycle
12411 through them using @key{C-c C-SPC}.")
12412 (license license:gpl3+)))
12413
12414 (define-public emacs-slack
12415 (let ((commit "a6d9f49bc6161f12c594d25254e77eedf4a67666")
12416 (revision "8"))
12417 (package
12418 (name "emacs-slack")
12419 (version (git-version "0.0.2" revision commit))
12420 (source (origin
12421 (method git-fetch)
12422 (uri (git-reference
12423 (url "https://github.com/yuya373/emacs-slack")
12424 (commit commit)))
12425 (file-name (git-file-name name commit))
12426 (sha256
12427 (base32
12428 "0crjjankqi4bqjk5pdz4r2ixf56n1nnq8ab1gz3sbl3v6as6262w"))))
12429 (build-system emacs-build-system)
12430 (arguments
12431 `(#:phases
12432 (modify-phases %standard-phases
12433 ;; HOME needs to exist for source compilation.
12434 (add-before 'build 'set-HOME
12435 (lambda _ (setenv "HOME" "/tmp") #t)))))
12436 (propagated-inputs
12437 `(("emacs-alert" ,emacs-alert)
12438 ("emacs-emojify" ,emacs-emojify)
12439 ("emacs-helm" ,emacs-helm)
12440 ("emacs-request" ,emacs-request)
12441 ("emacs-websocket" ,emacs-websocket)
12442 ("emacs-oauth2" ,emacs-oauth2)
12443 ("emacs-circe" ,emacs-circe)))
12444 (home-page "https://github.com/yuya373/emacs-slack")
12445 (synopsis "Slack client for Emacs")
12446 (description "This package provides an Emacs client for the Slack
12447 messaging service.")
12448 (license license:gpl3+))))
12449
12450 (define-public emacs-bash-completion
12451 (package
12452 (name "emacs-bash-completion")
12453 (version "2.1.0")
12454 (source
12455 (origin
12456 (method git-fetch)
12457 (uri (git-reference
12458 (url "https://github.com/szermatt/emacs-bash-completion")
12459 (commit version)))
12460 (file-name (git-file-name name version))
12461 (sha256
12462 (base32 "1a1wxcqzh0javjmxwi3lng5i99xiylm8lm04kv4q1lh9bli6vmv0"))))
12463 (inputs `(("bash" ,bash)))
12464 (build-system emacs-build-system)
12465 (arguments
12466 `(#:phases
12467 (modify-phases %standard-phases
12468 (add-after 'unpack 'make-git-checkout-writable
12469 (λ _
12470 (for-each make-file-writable (find-files "."))
12471 #t))
12472 (add-before 'install 'configure
12473 (lambda* (#:key inputs #:allow-other-keys)
12474 (let ((bash (assoc-ref inputs "bash")))
12475 (emacs-substitute-variables "bash-completion.el"
12476 ("bash-completion-prog" (string-append bash "/bin/bash"))))
12477 #t)))))
12478 (home-page "https://github.com/szermatt/emacs-bash-completion")
12479 (synopsis "Bash completion for the shell buffer")
12480 (description
12481 "@code{bash-completion} defines dynamic completion hooks for shell-mode
12482 and shell-command prompts that are based on Bash completion.")
12483 (license license:gpl2+)))
12484
12485 (define-public emacs-easy-kill
12486 (package
12487 (name "emacs-easy-kill")
12488 (version "0.9.3")
12489 (source (origin
12490 (method url-fetch)
12491 (uri (string-append "https://elpa.gnu.org/packages/easy-kill-"
12492 version ".tar"))
12493 (sha256
12494 (base32
12495 "17nw0mglmg877axwg1d0gs03yc0p04lzmd3pl0nsnqbh3303fnqb"))))
12496 (build-system emacs-build-system)
12497 (home-page "https://github.com/leoliu/easy-kill")
12498 (synopsis "Kill and mark things easily in Emacs")
12499 (description
12500 "This package provides commands @code{easy-kill} and @code{easy-mark} to
12501 let users kill or mark things easily.")
12502 (license license:gpl3+)))
12503
12504 (define-public emacs-csv-mode
12505 (package
12506 (name "emacs-csv-mode")
12507 (version "1.12")
12508 (source
12509 (origin
12510 (method url-fetch)
12511 (uri (string-append "https://elpa.gnu.org/packages/"
12512 "csv-mode-" version ".tar"))
12513 (sha256
12514 (base32 "0bya12smlrzwv4cbcmch4kg1fazp4k0ndrh1z17ix9p8c14d0v1j"))))
12515 (build-system emacs-build-system)
12516 (home-page "https://elpa.gnu.org/packages/csv-mode.html")
12517 (synopsis "Major mode for editing comma/char separated values")
12518 (description
12519 "This Emacs package implements CSV mode, a major mode for editing records
12520 in a generalized CSV (character-separated values) format.")
12521 (license license:gpl3+)))
12522
12523 (define-public emacs-transmission
12524 (package
12525 (name "emacs-transmission")
12526 (version "0.12.1")
12527 (source
12528 (origin
12529 (method git-fetch)
12530 (uri (git-reference
12531 (url "https://github.com/holomorph/transmission")
12532 (commit version)))
12533 (file-name (git-file-name name version))
12534 (sha256
12535 (base32 "0kvg2gawsgy440x1fsl2c4pkxwp3zirq9rzixanklk0ryijhd3ry"))))
12536 (build-system emacs-build-system)
12537 (home-page "https://github.com/holomorph/transmission")
12538 (synopsis "Emacs interface to a Transmission session")
12539 (description "This package provides an Emacs interface to interact with a
12540 running session of the Transmission Bittorrent client.
12541
12542 Features:
12543
12544 @itemize
12545 @item List, add, start/stop, verify, remove torrents.
12546 @item Set speed limits, ratio limits, bandwidth priorities, trackers.
12547 @item Navigate to the corresponding file list, torrent info, peer info
12548 contexts.
12549 @item Toggle downloading and set priorities for individual files.
12550 @end itemize\n")
12551 (license license:gpl3+)))
12552
12553 (define-public emacs-polymode
12554 (package
12555 (name "emacs-polymode")
12556 (version "0.2")
12557 (source (origin
12558 (method git-fetch)
12559 (uri (git-reference
12560 (url "https://github.com/polymode/polymode")
12561 (commit (string-append "v" version))))
12562 (file-name (git-file-name name version))
12563 (sha256
12564 (base32
12565 "04v0gnzfsjb50bgly6kvpryx8cyzwjaq2llw4qv9ijw1l6ixmq3b"))))
12566 (build-system emacs-build-system)
12567 (home-page "https://github.com/polymode/polymode")
12568 (synopsis "Framework for multiple Emacs modes based on indirect buffers")
12569 (description
12570 "Polymode is an Emacs package that offers generic support for multiple
12571 major modes inside a single Emacs buffer. It is lightweight, object oriented
12572 and highly extensible. Creating a new polymode typically takes only a few
12573 lines of code. Polymode also provides extensible facilities for external
12574 literate programming tools for exporting, weaving and tangling.")
12575 (license license:gpl3+)))
12576
12577 (define-public emacs-polymode-ansible
12578 (let ((commit "b26094d029e25dc797b94254f797e7807a57e4c8"))
12579 (package
12580 (name "emacs-polymode-ansible")
12581 ;; No upstream version release yet.
12582 (version (git-version "0.1" "1" commit))
12583 (source
12584 (origin
12585 (method git-fetch)
12586 (uri (git-reference
12587 (url "https://gitlab.com/mavit/poly-ansible")
12588 (commit commit)))
12589 (file-name (git-file-name name version))
12590 (sha256
12591 (base32
12592 "055shddqibib3hx2ykwdz910nrqws40cd407mq946l2bf6v87gj6"))))
12593 (build-system emacs-build-system)
12594 (propagated-inputs
12595 `(("emacs-ansible-doc" ,emacs-ansible-doc)
12596 ("emacs-jinja2-mode" ,emacs-jinja2-mode)
12597 ("emacs-polymode" ,emacs-polymode)
12598 ("emacs-yaml-mode" ,emacs-yaml-mode)))
12599 (properties '((upstream-name . "poly-ansible")))
12600 (home-page "https://gitlab.com/mavit/poly-ansible/")
12601 (synopsis "Polymode for Ansible - Jinja2 in YAML")
12602 (description
12603 "Edit YAML files for Ansible containing embedded Jinja2 templating.")
12604 (license license:gpl3+))))
12605
12606 (define-public emacs-polymode-org
12607 (package
12608 (name "emacs-polymode-org")
12609 (version "0.2")
12610 (source
12611 (origin
12612 (method git-fetch)
12613 (uri (git-reference
12614 (url "https://github.com/polymode/poly-org")
12615 (commit (string-append "v" version))))
12616 (file-name (git-file-name name version))
12617 (sha256
12618 (base32
12619 "04x6apjad4kg30456z1j4ipp64yjgkcaim6hqr6bb0rmrianqhck"))))
12620 (build-system emacs-build-system)
12621 (propagated-inputs
12622 `(("emacs-polymode" ,emacs-polymode)))
12623 (properties '((upstream-name . "poly-org")))
12624 (home-page "https://github.com/polymode/poly-org")
12625 (synopsis "Polymode definitions for Org mode buffers")
12626 (description
12627 "Provides definitions for @code{emacs-polymode} to support
12628 @code{emacs-org} buffers. Edit source blocks in an Org mode buffer using the
12629 native modes of the blocks' languages while remaining inside the primary Org
12630 buffer.")
12631 (license license:gpl3+)))
12632
12633 (define-public eless
12634 (package
12635 (name "eless")
12636 (version "0.3")
12637 (source
12638 (origin
12639 (method git-fetch)
12640 (uri (git-reference
12641 (url "https://github.com/kaushalmodi/eless")
12642 (commit (string-append "v" version))))
12643 (file-name (git-file-name name version))
12644 (sha256
12645 (base32 "0jr7vhh4vw69llhi0fh9ljscljkszkj0acdxl04da5hvqv6pnqbb"))))
12646 (build-system trivial-build-system)
12647 (inputs
12648 `(("bash" ,bash)))
12649 (arguments
12650 `(#:modules ((guix build utils))
12651 #:builder
12652 (begin
12653 (use-modules (guix build utils))
12654 (copy-recursively (assoc-ref %build-inputs "source") "source")
12655 (chdir "source")
12656 (substitute* "eless" (("/usr/bin/env bash")
12657 (string-append (assoc-ref %build-inputs "bash")
12658 "/bin/bash")))
12659 (install-file "eless" (string-append %output "/bin"))
12660 (install-file "doc/eless.info" (string-append %output "/share/info"))
12661 #t)))
12662 (home-page "https://github.com/kaushalmodi/eless")
12663 (synopsis "Use Emacs as a paginator")
12664 (description "@code{eless} provides a combination of Bash script
12665 and a minimal Emacs view-mode.
12666
12667 Feautures:
12668
12669 @itemize
12670 @item Independent of a user’s Emacs config.
12671 @item Customizable via the @code{(locate-user-emacs-file \"elesscfg\")} config.
12672 @item Not require an Emacs server to be already running.
12673 @item Syntax highlighting.
12674 @item Org-mode file rendering.
12675 @item @code{man} page viewer.
12676 @item Info viewer.
12677 @item Dired, wdired, (batch edit symbolic links).
12678 @item Colored diffs, git diff, git log, ls with auto ANSI detection.
12679 @item Filter log files lines matching a regexp.
12680 @item Auto-revert log files similar to @code{tail -f}.
12681 @item Quickly change frame and font sizes.
12682 @end itemize\n")
12683 (license license:expat)))
12684
12685 (define-public emacs-evil-matchit
12686 (package
12687 (name "emacs-evil-matchit")
12688 (version "2.3.4")
12689 (source
12690 (origin
12691 (method git-fetch)
12692 (uri (git-reference
12693 (url "https://github.com/redguardtoo/evil-matchit")
12694 (commit version)))
12695 (file-name (git-file-name name version))
12696 (sha256
12697 (base32 "1nflkmx08n3ya5vaipy1xg19hnqcp6f7ddsx9xjh5gl6ix2iz0az"))))
12698 (build-system emacs-build-system)
12699 (propagated-inputs
12700 `(("emacs-evil" ,emacs-evil)))
12701 (home-page "https://github.com/redguardtoo/evil-matchit")
12702 (synopsis "Vim matchit ported into Emacs")
12703 (description
12704 "@code{evil-matchit} is a minor mode for jumping between matching tags in
12705 evil mode using @kbd{%}. It is a port of @code{matchit} for Vim.")
12706 (license license:gpl3+)))
12707
12708 (define-public emacs-evil-smartparens
12709 (package
12710 (name "emacs-evil-smartparens")
12711 (version "0.4.0")
12712 (source
12713 (origin
12714 (method git-fetch)
12715 (uri (git-reference
12716 (url "https://github.com/expez/evil-smartparens")
12717 (commit version)))
12718 (file-name (git-file-name name version))
12719 (sha256
12720 (base32 "1di4qz5fbrlwbg16c2j0m7y8zqfxw027qd7zqmc3rwk9znbhg7wl"))))
12721 (build-system emacs-build-system)
12722 (propagated-inputs
12723 `(("emacs-evil" ,emacs-evil)
12724 ("emacs-smartparens" ,emacs-smartparens)))
12725 (home-page "https://github.com/expez/evil-smartparens")
12726 (synopsis "Emacs Evil integration for Smartparens")
12727 (description "@code{emacs-evil-smartparens} is an Emacs minor mode which
12728 makes Evil play nice with Smartparens. Evil is an Emacs minor mode that
12729 emulates Vim features and provides Vim-like key bindings.")
12730 (license license:gpl3+)))
12731
12732 (define-public emacs-evil-quickscope
12733 (package
12734 (name "emacs-evil-quickscope")
12735 (version "0.1.4")
12736 (source
12737 (origin
12738 (method git-fetch)
12739 (uri (git-reference
12740 (url "https://github.com/blorbx/evil-quickscope")
12741 (commit (string-append "v" version))))
12742 (file-name (git-file-name name version))
12743 (sha256
12744 (base32 "1ja9ggj70wf0nmma4xnc1zdzg2crq9h1cv3cj7cgwjmllflgkfq7"))))
12745 (build-system emacs-build-system)
12746 (propagated-inputs
12747 `(("emacs-evil" ,emacs-evil)))
12748 (arguments
12749 `(#:tests? #t
12750 #:test-command '("emacs" "--batch"
12751 "-l" "evil-quickscope-tests.el"
12752 "-f" "ert-run-tests-batch-and-exit")))
12753 (home-page "https://github.com/blorbx/evil-quickscope")
12754 (synopsis "Target highlighting for emacs evil-mode f,F,t and T commands")
12755 (description "@code{emacs-evil-quickscope} highlights targets for Evil
12756 mode’s f,F,t,T keys, allowing for quick navigation within a line. It is a
12757 port of quick-scope for Vim. Evil is an Emacs minor mode that emulates Vim
12758 features and provides Vim-like key bindings.")
12759 (license license:gpl3+)))
12760
12761 (define-public emacs-bongo
12762 (package
12763 (name "emacs-bongo")
12764 (version "1.1")
12765 (source
12766 (origin
12767 (method git-fetch)
12768 (uri (git-reference
12769 (url "https://github.com/dbrock/bongo")
12770 (commit version)))
12771 (file-name (git-file-name name version))
12772 (sha256
12773 (base32 "1nszph9mn98flyhn1jq3y6mdh6jymjkvj5ng36ql016dj92apvhv"))))
12774 (build-system emacs-build-system)
12775 (home-page "https://github.com/dbrock/bongo")
12776 (synopsis "Media player for Emacs")
12777 (description
12778 "This package provides a flexible media player for Emacs. @code{Bongo}
12779 supports multiple backends such as @code{vlc}, @code{mpg123},
12780 @code{ogg123}, @code{speexdec}, @code{timidity}, @code{mikmod} and
12781 @code{afplay}.")
12782 (license license:gpl2+)))
12783
12784 (define-public emacs-groovy-modes
12785 (package
12786 (name "emacs-groovy-modes")
12787 (version "2.0")
12788 (source (origin
12789 (method git-fetch)
12790 (uri (git-reference
12791 (url "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes")
12792 (commit version)))
12793 (file-name (git-file-name name version))
12794 (sha256
12795 (base32
12796 "0c1d4cbnlny8gpcd20zr1wxx6ggf28jgh7sgd5r1skpsvjpbfqx2"))))
12797 (build-system emacs-build-system)
12798 (propagated-inputs
12799 `(("emacs-s" ,emacs-s)))
12800 (home-page "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes")
12801 (synopsis "Groovy related modes for Emacs")
12802 (description
12803 "This package provides @code{groovy-mode} for syntax highlighting in
12804 Groovy source files, REPL integration with run-groovy and Grails project
12805 navigation with the grails mode.")
12806 (license license:gpl3+)))
12807
12808 (define-public emacs-jenkinsfile-mode
12809 (let ((commit "00d259ff9b870d234540e00e1d7c83cccdb063b8")
12810 (revision "1"))
12811 (package
12812 (name "emacs-jenkinsfile-mode")
12813 (version (git-version "0.0.1" revision commit))
12814 (source (origin
12815 (method git-fetch)
12816 (uri (git-reference
12817 (url "https://github.com/john2x/jenkinsfile-mode")
12818 (commit commit)))
12819 (file-name (git-file-name name version))
12820 (sha256
12821 (base32
12822 "0srf6xdjnrd4v4ks9pal7i48wmkcl4q5ry7d0yzfx1c9pz2qg9zx"))))
12823 (propagated-inputs
12824 `(("emacs-groovy-modes" ,emacs-groovy-modes)))
12825 (build-system emacs-build-system)
12826 (home-page "https://github.com/john2x/jenkinsfile-mode/")
12827 (synopsis "Emacs major-mode for editing Jenkinsfile")
12828 (description "This package provides a @code{jenkinsfile-mode} derived
12829 from @code{groovy-mode} for editing Jenkins declarative pipeline files.")
12830 (license license:gpl3+))))
12831
12832 (define-public emacs-org-tree-slide
12833 (let ((commit "036a36eec1cf712d3db155572aed325daa372eb5")
12834 (revision "2"))
12835 (package
12836 (name "emacs-org-tree-slide")
12837 (version (git-version "2.8.4" revision commit))
12838 (source (origin
12839 (method git-fetch)
12840 (uri (git-reference
12841 (url "https://github.com/takaxp/org-tree-slide")
12842 (commit commit)))
12843 (sha256
12844 (base32
12845 "1r8ncx25xmxicgciyv5przp68y8qgy40fm10ba55awvql4xcm0yk"))
12846 (file-name (git-file-name name version))))
12847 (build-system emacs-build-system)
12848 (home-page "https://github.com/takaxp/org-tree-slide")
12849 (synopsis "Presentation tool for org-mode")
12850 (description
12851 "Org-tree-slide provides a slideshow mode to view org-mode files. Use
12852 @code{org-tree-slide-mode} to enter the slideshow mode, and then @kbd{C->} and
12853 @kbd{C-<} to jump to the next and previous slide.")
12854 (license license:gpl3+))))
12855
12856 (define-public emacs-scratch-el
12857 (let ((commit "2cdf2b841ce7a0987093f65b0cc431947549f897")
12858 (revision "1"))
12859 (package
12860 (name "emacs-scratch-el")
12861 (version (git-version "1.2" revision commit))
12862 (source (origin
12863 (method git-fetch)
12864 (uri (git-reference
12865 (url "https://github.com/ieure/scratch-el")
12866 (commit commit)))
12867 (file-name (git-file-name name version))
12868 (sha256
12869 (base32
12870 "0wscsndynjmnliajqaz28r1ww81j8wh84zwaaswx51abhwgl0idf"))))
12871 (build-system emacs-build-system)
12872 (native-inputs
12873 `(("texinfo" ,texinfo)))
12874 (arguments
12875 '(#:phases
12876 (modify-phases %standard-phases
12877 (add-after 'install 'install-doc
12878 (lambda* (#:key outputs #:allow-other-keys)
12879 (unless (invoke "makeinfo" "scratch.texi")
12880 (error "makeinfo failed"))
12881 (install-file "scratch.info"
12882 (string-append (assoc-ref outputs "out")
12883 "/share/info"))
12884 #t)))))
12885 (home-page "https://github.com/ieure/scratch-el/")
12886 (synopsis "Create scratch buffers with the same mode as current buffer")
12887 (description "Scratch is an extension to Emacs that enables one to create
12888 scratch buffers that are in the same mode as the current buffer. This is
12889 notably useful when working on code in some language; you may grab code into a
12890 scratch buffer, and, by virtue of this extension, do so using the Emacs
12891 formatting rules for that language.")
12892 (license license:bsd-2))))
12893
12894 (define-public emacs-kv
12895 (package
12896 (name "emacs-kv")
12897 (version "0.0.19")
12898 (source
12899 (origin
12900 (method git-fetch)
12901 (uri (git-reference
12902 (url "https://github.com/nicferrier/emacs-kv")
12903 (commit "721148475bce38a70e0b678ba8aa923652e8900e")))
12904 (file-name (git-file-name name version))
12905 (sha256
12906 (base32
12907 "0r0lz2s6gvy04fwnafai668jsf4546h4k6zd6isx5wpk0n33pj5m"))))
12908 (build-system emacs-build-system)
12909 (arguments
12910 `(#:tests? #t
12911 #:test-command '("emacs" "--batch" "-l" "kv-tests.el"
12912 "-f" "ert-run-tests-batch-and-exit")))
12913 (home-page "https://github.com/nicferrier/emacs-kv")
12914 (synopsis "Key/Value data structures library for Emacs Lisp")
12915 (description "@code{emacs-kv} is a collection of tools for dealing with
12916 key/value data structures such as plists, alists and hash-tables in Emacs
12917 Lisp.")
12918 (license license:gpl3+)))
12919
12920 (define-public emacs-esxml
12921 (package
12922 (name "emacs-esxml")
12923 (version "0.3.4")
12924 (source (origin
12925 (method git-fetch)
12926 (uri (git-reference
12927 (url "https://github.com/tali713/esxml")
12928 (commit version)))
12929 (file-name (git-file-name name version))
12930 (sha256
12931 (base32
12932 "00vv8a75wdklygdyr4km9mc2ismxak69c45jmcny41xl44rp9x8m"))))
12933 (build-system emacs-build-system)
12934 (arguments
12935 `(#:phases
12936 (modify-phases %standard-phases
12937 (add-after 'unpack 'fix-sources
12938 (lambda _
12939 ;; See: https://github.com/tali713/esxml/pull/28.
12940 (substitute* "css-lite.el"
12941 ((";;; main interface")
12942 (string-append ";;; main interface\n"
12943 "(require 'cl-lib)"))
12944 (("mapcan")
12945 "cl-mapcan")
12946 (("',\\(cl-mapcan #'process-css-rule rules\\)")
12947 "(cl-mapcan #'process-css-rule ',rules)"))
12948 (substitute* "esxml-form.el"
12949 ((",esxml-form-field-defn")
12950 "#'esxml-form-field-defn"))
12951 ;; See: https://github.com/tali713/esxml/issues/25
12952 (delete-file "esxpath.el")
12953 #t)))))
12954 (propagated-inputs
12955 `(("emacs-kv" ,emacs-kv)))
12956 (home-page "https://github.com/tali713/esxml/")
12957 (synopsis "SXML for EmacsLisp")
12958 (description "This is XML/XHTML done with S-Expressions in EmacsLisp.
12959 Simply, this is the easiest way to write HTML or XML in Lisp. This library
12960 uses the native form of XML representation as used by many libraries already
12961 included within Emacs. See @code{esxml-to-xml} for a concise description of
12962 the format.")
12963 (license license:gpl3+)))
12964
12965 (define-public emacs-nov-el
12966 (package
12967 (name "emacs-nov-el")
12968 (version "0.3.1")
12969 (source
12970 (origin
12971 (method git-fetch)
12972 (uri (git-reference
12973 (url "https://depp.brause.cc/nov.el.git")
12974 (commit version)))
12975 (file-name (git-file-name name version))
12976 (sha256
12977 (base32 "13r7lvyyyv62m57m4s4xjs4qz2ckhqk6ib514px7qzc7mdzcz9i9"))))
12978 (build-system emacs-build-system)
12979 (arguments
12980 `(#:phases
12981 (modify-phases %standard-phases
12982 (add-after 'unpack 'embed-path-to-unzip
12983 (lambda _
12984 (substitute* "nov.el"
12985 (("\\(executable-find \"unzip\"\\)")
12986 (string-append "\"" (which "unzip") "\"")))
12987 #t)))))
12988 (propagated-inputs
12989 `(("emacs-dash" ,emacs-dash)
12990 ("emacs-esxml" ,emacs-esxml)))
12991 (inputs
12992 `(("unzip" ,unzip)))
12993 (home-page "https://depp.brause.cc/nov.el/")
12994 (synopsis "Major mode for reading EPUBs in Emacs")
12995 (description "@code{nov.el} provides a major mode for reading EPUB
12996 documents.
12997
12998 Features:
12999
13000 @itemize
13001 @item Basic navigation (jump to TOC, previous/next chapter)
13002 @item Remembering and restoring the last read position
13003 @item Jump to next chapter when scrolling beyond end
13004 @item Renders EPUB2 (@code{.ncx}) and EPUB3 (@code{<nav>}) TOCs
13005 @item Hyperlinks to internal and external targets
13006 @item Supports textual and image documents
13007 @item View source of document files
13008 @item Metadata display
13009 @item Image rescaling
13010 @end itemize
13011 ")
13012 (license license:gpl3+)))
13013
13014 (define-public epipe
13015 (package
13016 (name "epipe")
13017 (version "0.1.0")
13018 (source
13019 (origin
13020 (method git-fetch)
13021 (uri (git-reference
13022 (url "https://github.com/cute-jumper/epipe")
13023 (commit version)))
13024 (file-name (git-file-name name version))
13025 (sha256
13026 (base32 "0lkisi1s7sn12nx8zh58qmsxwnk1rjwryj18wcbr148xqz3swg57"))))
13027 (build-system trivial-build-system)
13028 (inputs
13029 `(("bash" ,bash)
13030 ("perl" ,perl)))
13031 (arguments
13032 `(#:modules
13033 ((guix build utils))
13034 #:builder
13035 (begin
13036 (use-modules (guix build utils))
13037 ;; Extract source.
13038 (copy-recursively (assoc-ref %build-inputs "source") "source")
13039 (chdir "source")
13040 ;; Patch shebangs.
13041 (substitute* "epipe"
13042 (("/usr/bin/env bash")
13043 (string-append (assoc-ref %build-inputs "bash") "/bin/bash")))
13044 (patch-shebang "epipe.pl"
13045 (list (string-append (assoc-ref %build-inputs "perl")
13046 "/bin")))
13047 ;; Install.
13048 (for-each (lambda (file)
13049 (install-file file (string-append %output "/bin")))
13050 '("epipe" "epipe.pl"))
13051 #t)))
13052 (home-page "https://github.com/cute-jumper/epipe")
13053 (synopsis "Pipe to the @code{emacsclient}")
13054 (description "@code{epipe} provides an utility to use your editor in
13055 the pipeline, featuring the support for running @code{emacsclient}.")
13056 (license license:gpl3+)))
13057
13058 (define-public emacs-hcl-mode
13059 (package
13060 (name "emacs-hcl-mode")
13061 (version "0.03")
13062 (source
13063 (origin
13064 (method git-fetch)
13065 (uri (git-reference
13066 (url "https://github.com/syohex/emacs-hcl-mode")
13067 (commit version)))
13068 (file-name (git-file-name name version))
13069 (sha256
13070 (base32 "0jqrgq15jz6pvx38pnwkizzfiih0d3nxqphyrc92nqpcyimg8b6g"))))
13071 (build-system emacs-build-system)
13072 (home-page "https://github.com/syohex/emacs-hcl-mode")
13073 (synopsis "Major mode for the Hashicorp Configuration Language")
13074 (description
13075 "@code{emacs-hcl-mode} provides an Emacs major mode for working with
13076 @acronym{HCL, Hashicorp Configuration Language}. It provides syntax
13077 highlighting and indentation support.")
13078 (license license:gpl3+)))
13079
13080 (define-public emacs-terraform-mode
13081 (package
13082 (name "emacs-terraform-mode")
13083 (version "0.06")
13084 (source
13085 (origin
13086 (method git-fetch)
13087 (uri (git-reference
13088 (url "https://github.com/syohex/emacs-terraform-mode")
13089 (commit version)))
13090 (file-name (git-file-name name version))
13091 (sha256
13092 (base32 "05hn8kskx9lcgn7bzgam99c629zlryir2pickwrqndacjrqpdykx"))))
13093 (build-system emacs-build-system)
13094 (propagated-inputs
13095 `(("emacs-hcl-mode" ,emacs-hcl-mode)))
13096 (home-page "https://github.com/syohex/emacs-terraform-mode")
13097 (synopsis "Major mode for Terraform")
13098 (description
13099 "@code{emacs-terraform-mode} provides a major mode for working with
13100 @uref{https://www.terraform.io/, Terraform} configuration files. Most of the
13101 functionality is inherited from @code{hcl-mode}.")
13102 (license license:gpl3+)))
13103
13104 (define-public emacs-exec-path-from-shell
13105 (package
13106 (name "emacs-exec-path-from-shell")
13107 (version "1.12")
13108 (source
13109 (origin
13110 (method git-fetch)
13111 (uri (git-reference
13112 (url "https://github.com/purcell/exec-path-from-shell")
13113 (commit version)))
13114 (file-name (git-file-name name version))
13115 (sha256
13116 (base32
13117 "1ga8bpxngd3ph2hdiik92c612ki71qxw818i6rgx6f6a5r0sbf3p"))))
13118 (build-system emacs-build-system)
13119 (home-page "https://github.com/purcell/exec-path-from-shell")
13120 (synopsis "Get environment variables such as @var{PATH} from the shell")
13121 (description
13122 "This library allows the user to set Emacs @var{exec-path} and @var{PATH}
13123 from the shell @var{PATH}, so that @code{shell-command}, @code{compile} and
13124 the like work as expected on systems on which Emacs is not guaranteed to
13125 inherit a login shell's environment variables. It also allows other
13126 environment variables to be retrieved from the shell, so that Emacs will see
13127 the same values you get in a terminal.")
13128 (license license:gpl3+)))
13129
13130 (define-public emacs-frog-menu
13131 (package
13132 (name "emacs-frog-menu")
13133 (version "0.2.11")
13134 (source
13135 (origin
13136 (method url-fetch)
13137 (uri (string-append "https://elpa.gnu.org/packages/"
13138 "frog-menu-" version ".el"))
13139 (sha256
13140 (base32 "06iw11z61fd0g4w3562k3smcmzaq3nivvvc6gzm8y8k5pcrqzdff"))))
13141 (build-system emacs-build-system)
13142 (propagated-inputs
13143 `(("emacs-avy" ,emacs-avy)
13144 ("emacs-posframe" ,emacs-posframe)))
13145 (home-page "https://github.com/clemera/frog-menu")
13146 (synopsis "Quickly pick items from ad hoc menus")
13147 (description
13148 "This package provides a popup offering a preview of a list of candidates
13149 on which user-defined dispatch actions can act.")
13150 (license license:gpl3+)))
13151
13152 (define-public emacs-frog-jump-buffer
13153 (let ((commit "2d7b342785ae27d45f5d252272df6eb773c78e20")
13154 (revision "1"))
13155 (package
13156 (name "emacs-frog-jump-buffer")
13157 (version (git-version "0.1.4" revision commit))
13158 (source
13159 (origin
13160 (method git-fetch)
13161 (uri (git-reference
13162 (url "https://github.com/waymondo/frog-jump-buffer")
13163 (commit commit)))
13164 (file-name (git-file-name name version))
13165 (sha256
13166 (base32
13167 "1z00by8hiss1r2lwmzrl8pnz6jykia2849dqqm4l3z5rf6lwvc0f"))))
13168 (build-system emacs-build-system)
13169 (propagated-inputs
13170 `(("emacs-dash" ,emacs-dash)
13171 ("emacs-frog-menu" ,emacs-frog-menu)
13172 ("emacs-avy" ,emacs-avy)))
13173 (home-page "https://github.com/waymondo/frog-jump-buffer")
13174 (synopsis "Jump to any Emacs buffer with minimal keystrokes")
13175 (description
13176 "This package provides a preview window of buffers that can be switched
13177 to with quicklink-style selections.")
13178 (license license:gpl3+))))
13179
13180 (define-public emacs-deft
13181 (package
13182 (name "emacs-deft")
13183 (version "0.8")
13184 (source
13185 (origin
13186 (method git-fetch)
13187 (uri (git-reference
13188 (url "https://github.com/jrblevin/deft")
13189 (commit (string-append "v" version))))
13190 (file-name (git-file-name name version))
13191 (sha256
13192 (base32
13193 "0z7cilgiz6krvl5h2z72hkch43qxmypb0k6p5vxn5lx1p6v0mrf2"))))
13194 (build-system emacs-build-system)
13195 (home-page "https://jblevins.org/projects/deft/")
13196 (synopsis "Quickly browse, filter, and edit plain text notes")
13197 (description
13198 "Deft is an Emacs mode for quickly browsing, filtering, and editing
13199 directories of plain text notes, inspired by Notational Velocity.")
13200 (license license:bsd-3)))
13201
13202 (define-public emacs-anzu
13203 (package
13204 (name "emacs-anzu")
13205 (version "0.62")
13206 (source
13207 (origin
13208 (method git-fetch)
13209 (uri (git-reference
13210 (url "https://github.com/syohex/emacs-anzu")
13211 (commit version)))
13212 (file-name (git-file-name name version))
13213 (sha256
13214 (base32 "1lzvc0ihcbplir4hqfyxfqpsd78arz15gk92kmq4f8ggbkl37fan"))))
13215 (build-system emacs-build-system)
13216 (home-page "https://github.com/syohex/emacs-anzu")
13217 (synopsis "Show number of matches in mode-line while searching")
13218 (description
13219 "Anzu provides a minor mode which displays \"current match/total
13220 matches\" in the mode line in various search modes. This is an Emacs port of
13221 Anzu.zim.")
13222 (license license:gpl3+)))
13223
13224 (define-public emacs-ascii-art-to-unicode
13225 (package
13226 (name "emacs-ascii-art-to-unicode")
13227 (version "1.12")
13228 (source
13229 (origin
13230 (method url-fetch)
13231 (uri (string-append "https://elpa.gnu.org/packages/ascii-art-to-unicode-"
13232 version ".el"))
13233 (sha256
13234 (base32
13235 "1w9h2lyriafxj71r79774gh822cz8mry3gdfzyj6ym6v9mvqypna"))))
13236 (build-system emacs-build-system)
13237 (home-page "https://elpa.gnu.org/packages/ascii-art-to-unicode.html")
13238 (synopsis "ASCII to Unicode art converter for Emacs")
13239 (description "This Emacs package provides the commands @command{aa2u} and
13240 @command{aa2u-rectangle}. Both of these commands can be used to convert
13241 simple ASCII art line drawings to Unicode; the former works on the active
13242 region of the buffer, while the latter works on rectangular selections.")
13243 (license license:gpl3+)))
13244
13245 (define-public emacs-emmet-mode
13246 (let ((commit "1acb821e0142136344ccf40c1e5fb664d7db2e70")
13247 (revision "1"))
13248 (package
13249 (name "emacs-emmet-mode")
13250 (version (git-version "1.0.8" revision commit))
13251 (source (origin
13252 (method git-fetch)
13253 (uri (git-reference
13254 (url "https://github.com/smihica/emmet-mode")
13255 (commit commit)))
13256 (file-name (git-file-name name version))
13257 (sha256
13258 (base32
13259 "1p25h191bm0h5b3w5apg7wks51k7pb7h4dlww4jbl9ri4d33fzcl"))))
13260 (build-system emacs-build-system)
13261 (home-page "https://github.com/smihica/emmet-mode")
13262 (synopsis "Unofficial Emmet's support for Emacs")
13263 (description
13264 "Unfold CSS-selector-like expressions to markup. It is intended to be
13265 used with SGML-like languages: XML, HTML, XHTML, XSL, etc.")
13266 (license license:gpl3+))))
13267
13268 (define-public emacs-ergoemacs-mode
13269 (let ((commit "3ce23bba3cb50562693860f87f3528c471d603ba")
13270 (revision "1"))
13271 (package
13272 (name "emacs-ergoemacs-mode")
13273 (version (git-version "5.16.10.12" revision commit))
13274 (source
13275 (origin
13276 (method git-fetch)
13277 (uri (git-reference
13278 (url "https://github.com/ergoemacs/ergoemacs-mode")
13279 (commit commit)))
13280 (file-name (git-file-name name version))
13281 (sha256
13282 (base32
13283 "1s3b9bridl78hh1mxmdk9nqlmqhibbaxk0a1cixmsf23s06w8w6l"))))
13284 (build-system emacs-build-system)
13285 (propagated-inputs
13286 `(("emacs-undo-tree" ,emacs-undo-tree)))
13287 (home-page "https://ergoemacs.github.io/")
13288 (synopsis "Emacs mode based on common modern interface and ergonomics")
13289 (description
13290 "This package provides an efficient Emacs keybinding set based on
13291 statistics of command frequency, and supports common shortcuts for open,
13292 close, copy, cut, paste, undo, redo.")
13293 (license license:gpl3+))))
13294
13295 (define-public emacs-password-store
13296 (package
13297 (name "emacs-password-store")
13298 (version "1.7.3")
13299 (source (origin
13300 (method url-fetch)
13301 (uri
13302 (string-append "https://git.zx2c4.com/password-store/snapshot/"
13303 "password-store-" version ".tar.xz"))
13304 (sha256
13305 (base32
13306 "1x53k5dn3cdmvy8m4fqdld4hji5n676ksl0ql4armkmsds26av1b"))))
13307 (build-system emacs-build-system)
13308 (arguments
13309 `(#:phases
13310 (modify-phases %standard-phases
13311 (add-after 'unpack 'extract-el-file
13312 (lambda _
13313 (copy-file "contrib/emacs/password-store.el" "password-store.el")
13314 (delete-file-recursively "contrib")
13315 (delete-file-recursively "man")
13316 (delete-file-recursively "src")
13317 (delete-file-recursively "tests"))))))
13318 (propagated-inputs
13319 `(("emacs-f" ,emacs-f)
13320 ("emacs-s" ,emacs-s)
13321 ("emacs-with-editor" ,emacs-with-editor)
13322 ("password-store" ,password-store)))
13323 (home-page "https://git.zx2c4.com/password-store/tree/contrib/emacs")
13324 (synopsis "Password store (pass) support for Emacs")
13325 (description
13326 "This package provides functions for working with pass (\"the
13327 standard Unix password manager\").")
13328 (license license:gpl2+)))
13329
13330 (define-public emacs-auth-source-pass
13331 (let ((commit "847a1f54ed48856b4dfaaa184583ef2c84173edf")
13332 (revision "2"))
13333 (package
13334 (name "emacs-auth-source-pass")
13335 (version (git-version "5.0.0" revision commit))
13336 (source
13337 (origin
13338 (method git-fetch)
13339 (uri (git-reference
13340 (url "https://github.com/DamienCassou/auth-password-store")
13341 (commit commit)))
13342 (file-name (git-file-name name version))
13343 (sha256
13344 (base32 "0g48z5w6n3c54zqfpx65dfyl9jqbl15idvbb1hhw2pd9f9r8fykk"))))
13345 (build-system emacs-build-system)
13346 (arguments
13347 `(#:tests? #t
13348 #:test-command '("emacs" "--batch"
13349 "-L" "."
13350 "-l" "test/auth-source-pass-tests.el"
13351 "-f" "ert-run-tests-batch-and-exit")))
13352 (home-page "https://github.com/DamienCassou/auth-password-store")
13353 (synopsis "Integrate @code{auth-source} with @code{password-store}")
13354 (description "This package helps Emacs integrate with the Unix
13355 @code{password-store} application.")
13356 (license license:gpl3+))))
13357
13358 (define-public emacs-pass
13359 (package
13360 (name "emacs-pass")
13361 (version "2.0")
13362 (source
13363 (origin
13364 (method git-fetch)
13365 (uri (git-reference
13366 (url "https://github.com/NicolasPetton/pass")
13367 (commit version)))
13368 (file-name (git-file-name name version))
13369 (sha256
13370 (base32 "0jc8j421mlflspg24jvrqc2n3y5n3cpk3hjy560il8g36xi1049p"))))
13371 (build-system emacs-build-system)
13372 (propagated-inputs
13373 `(("emacs-password-store" ,emacs-password-store)
13374 ("emacs-f" ,emacs-f)))
13375 (home-page "https://github.com/NicolasPetton/pass")
13376 (synopsis "Major mode for @file{password-store.el}")
13377 (description "This is a major mode for managing password-store (pass)
13378 keychains. The keychain entries are displayed in a directory-like structure
13379 and can be consulted and modified.")
13380 (license license:gpl3+)))
13381
13382 (define-public emacs-psc-ide
13383 ;; There is no proper release. The base version is extracted from the
13384 ;; "Version" keyword in the main file.
13385 (let ((commit "7fc2b841be25f5bc5e1eb7d0634436181c38b3fe")
13386 (revision "1"))
13387 (package
13388 (name "emacs-psc-ide")
13389 (version (git-version "0.1.0" revision commit))
13390 (source
13391 (origin
13392 (method git-fetch)
13393 (uri
13394 (git-reference
13395 (url "https://github.com/purescript-emacs/psc-ide-emacs")
13396 (commit commit)))
13397 (file-name (git-file-name name version))
13398 (sha256
13399 (base32 "0r0fymyai30jimm34z1cmav4wgij8ci6s1d9y7qigygfbbfrdsmj"))))
13400 (build-system emacs-build-system)
13401 (propagated-inputs
13402 `(("emacs-company" ,emacs-company)
13403 ("emacs-dash" ,emacs-dash)
13404 ("emacs-flycheck" ,emacs-flycheck)
13405 ("emacs-let-alist" ,emacs-let-alist)
13406 ("emacs-s" ,emacs-s)
13407 ("emacs-seq" ,emacs-seq)))
13408 (home-page "https://github.com/purescript-emacs/psc-ide-emacs")
13409 (synopsis "Emacs integration for PureScript's psc-ide tool")
13410 (description
13411 "This package provices Emacs integration for @code{psc-ide}, an IDE
13412 protocol for PureScript programming language. It features:
13413
13414 @itemize
13415 @item Completions
13416 @item Type at point
13417 @item Go to definition
13418 @item Automatic imports
13419 @item Case split
13420 @item Build system integration, and
13421 @item Flycheck support
13422 @end itemize")
13423 (license license:gpl3+))))
13424
13425 (define-public emacs-evil-anzu
13426 (package
13427 (name "emacs-evil-anzu")
13428 (version "0.03")
13429 (source
13430 (origin
13431 (method git-fetch)
13432 (uri (git-reference
13433 (url "https://github.com/syohex/emacs-evil-anzu")
13434 (commit version)))
13435 (file-name (git-file-name name version))
13436 (sha256
13437 (base32 "0lw7fg4gqwj30r0l6k2ni36sxqkf65zf0d0z3rxnpwbxlf8dlkrr"))))
13438 (build-system emacs-build-system)
13439 (propagated-inputs
13440 `(("emacs-evil" ,emacs-evil)
13441 ("emacs-anzu" ,emacs-anzu)))
13442 (home-page "https://github.com/syohex/emacs-evil-anzu")
13443 (synopsis "Anzu for evil-mode")
13444 (description "@code{anzu} provides a minor mode that displays the current
13445 match and total match information in the mode-line in various search modes.")
13446 (license license:gpl3+)))
13447
13448 (define-public emacs-pg
13449 (let ((commit "4f6516ec3946d95dcef49abb6703cc89ecb5183d"))
13450 (package
13451 (name "emacs-pg")
13452 (version (git-version "0.1" "1" commit))
13453 (source (origin
13454 (method git-fetch)
13455 (uri (git-reference (url "https://github.com/cbbrowne/pg.el")
13456 (commit commit)))
13457 (file-name (git-file-name name version))
13458 (sha256
13459 (base32
13460 "1zh7v4nnpzvbi8yj1ynlqlawk5bmlxi6s80b5f2y7hkdqb5q26k0"))))
13461 (build-system emacs-build-system)
13462 (home-page "https://github.com/cbbrowne/pg.el")
13463 (synopsis "Emacs Lisp interface for PostgreSQL")
13464 (description
13465 "This package provides an Emacs Lisp interface for PostgreSQL.")
13466 (license license:gpl3+))))
13467
13468 (define-public emacs-cl-generic
13469 (package
13470 (name "emacs-cl-generic")
13471 (version "0.3")
13472 (source
13473 (origin
13474 (method url-fetch)
13475 (uri (string-append "https://elpa.gnu.org/packages/cl-generic-"
13476 version ".el"))
13477 (sha256
13478 (base32
13479 "0vb338bhjpsnrf60qgxny4z5rjrnifahnrv9axd4shay89d894zq"))))
13480 (build-system emacs-build-system)
13481 ;; Byte compilation of the autoload file fails.
13482 (arguments
13483 `(#:phases (modify-phases %standard-phases
13484 (delete 'enable-autoloads-compilation))))
13485 (home-page "https://elpa.gnu.org/packages/seq.html")
13486 (synopsis
13487 "Forward @code{cl-generic} compatibility for Emacs before version 25")
13488 (description "This package provides a subset of the features of the
13489 @code{cl-generic} package introduced in Emacs-25, for use on previous
13490 @code{emacsen}.")
13491 (license license:gpl3+)))
13492
13493 (define-public emacs-finalize
13494 (package
13495 (name "emacs-finalize")
13496 (version "2.0.0")
13497 (source
13498 (origin
13499 (method git-fetch)
13500 (uri (git-reference
13501 (url "https://github.com/skeeto/elisp-finalize")
13502 (commit version)))
13503 (file-name (git-file-name name version))
13504 (sha256
13505 (base32 "1gvlm4i62af5jscwz0jccc8ra0grprxpg2rlq91d5nn8dn5lpy79"))))
13506 (build-system emacs-build-system)
13507 (propagated-inputs
13508 `(("emacs-cl-generic" ,emacs-cl-generic)))
13509 (home-page "https://github.com/skeeto/elisp-finalize")
13510 (synopsis "Finalizers for Emacs Lisp")
13511 (description
13512 "This package runs a callback (a finalizer)
13513 after its registered lisp object has been garbage collected. This allows
13514 extra resources, such as buffers and processes, to be cleaned up after the
13515 object has been freed.")
13516 (license license:unlicense)))
13517
13518 (define-public emacs-emacsql
13519 (package
13520 (name "emacs-emacsql")
13521 (version "3.0.0")
13522 (source (origin
13523 (method git-fetch)
13524 (uri (git-reference
13525 (url "https://github.com/skeeto/emacsql")
13526 (commit (string-append version))))
13527 (file-name (git-file-name name version))
13528 (sha256
13529 (base32
13530 "1c84gxr1majqj4b59wgdy3lzm3ap66w9qsrnkx8hdbk9895ak81g"))))
13531 (build-system emacs-build-system)
13532 (arguments
13533 `(#:modules ((guix build emacs-build-system)
13534 (guix build utils)
13535 (guix build emacs-utils)
13536 (srfi srfi-26))
13537 #:phases
13538 (modify-phases %standard-phases
13539 (delete 'build) ;‘build-emacsql-sqlite’ compiles ‘*.el’ files.
13540 (add-before 'install 'patch-elisp-shell-shebangs
13541 (lambda _
13542 (substitute* (find-files "." "\\.el")
13543 (("/bin/sh") (which "sh")))
13544 #t))
13545 (add-after 'patch-elisp-shell-shebangs 'setenv-shell
13546 (lambda _
13547 (setenv "SHELL" "sh")))
13548 (add-after 'setenv-shell 'build-emacsql-sqlite
13549 (lambda _
13550 (invoke "make" "binary" "CC=gcc")))
13551 (add-after 'build-emacsql-sqlite 'install-emacsql-sqlite
13552 ;; This build phase installs emacs-emacsql binary.
13553 (lambda* (#:key outputs #:allow-other-keys)
13554 (install-file "sqlite/emacsql-sqlite"
13555 (string-append (assoc-ref outputs "out")
13556 "/bin"))
13557 #t))
13558 (add-after 'install-emacsql-sqlite 'patch-emacsql-sqlite.el
13559 ;; This build phase removes interactive prompts
13560 ;; and makes sure Emacs look for binaries in the right places.
13561 (lambda* (#:key outputs #:allow-other-keys)
13562 (let ((file "emacsql-sqlite.el"))
13563 (chmod file #o644)
13564 (emacs-substitute-sexps file
13565 ;; Make sure Emacs looks for ‘GCC’ binary in the right place.
13566 ("(executable-find" (which "gcc"))
13567 ;; Make sure Emacs looks for ‘emacsql-sqlite’ binary
13568 ;; in the right place.
13569 ("(defvar emacsql-sqlite-executable"
13570 (string-append (assoc-ref outputs "out")
13571 "/bin/emacsql-sqlite"))))))
13572 (replace 'install
13573 (lambda* (#:key outputs #:allow-other-keys)
13574 (let* ((out (assoc-ref outputs "out")))
13575 (install-file "sqlite/emacsql-sqlite"
13576 (string-append out "/bin"))
13577 (for-each (cut install-file <>
13578 (string-append out "/share/emacs/site-lisp"))
13579 (find-files "." "\\.elc*$")))
13580 #t)))))
13581 (inputs
13582 `(("emacs-minimal" ,emacs-minimal)
13583 ("mariadb" ,mariadb "lib")
13584 ("mariadb-dev" ,mariadb "dev")
13585 ("postgresql" ,postgresql)))
13586 (propagated-inputs
13587 `(("emacs-finalize" ,emacs-finalize)
13588 ("emacs-pg" ,emacs-pg)))
13589 (home-page "https://github.com/skeeto/emacsql")
13590 (synopsis "Emacs high-level SQL database front-end")
13591 (description "Any readable Lisp value can be stored as a value in EmacSQL,
13592 including numbers, strings, symbols, lists, vectors, and closures. EmacSQL
13593 has no concept of @code{TEXT} values; it's all just Lisp objects. The Lisp
13594 object @code{nil} corresponds 1:1 with @code{NULL} in the database.")
13595 (license license:gpl3+)))
13596
13597 (define-public emacs-emacsql-sqlite3
13598 (package
13599 (name "emacs-emacsql-sqlite3")
13600 (version "1.0.1")
13601 (source (origin
13602 (method git-fetch)
13603 (uri (git-reference
13604 (url "https://github.com/cireu/emacsql-sqlite3")
13605 (commit version)))
13606 (file-name (git-file-name name version))
13607 (sha256
13608 (base32
13609 "1yy9y27rckm776jnl2rh1fz3bh09690xwzq7102vlw7xkb9s7jhj"))))
13610 (build-system emacs-build-system)
13611 (native-inputs
13612 `(("ert-runner" ,emacs-ert-runner)))
13613 (inputs
13614 `(("sqlite" ,sqlite)))
13615 (propagated-inputs
13616 `(("emacs-emacsql" ,emacs-emacsql)))
13617 (arguments
13618 `(#:tests? #t
13619 #:test-command '("emacs" "-Q" "--batch" "-L" "."
13620 "--load" "emacsql-sqlite3-test.el"
13621 "-f" "ert-run-tests-batch-and-exit")
13622 #:phases
13623 (modify-phases %standard-phases
13624 (add-after 'unpack 'embed-path-to-sqlite3
13625 (lambda _
13626 (substitute* "emacsql-sqlite3.el"
13627 (("\\(executable-find \"sqlite3\"\\)")
13628 (string-append "\"" (which "sqlite3") "\"")))
13629 #t)))))
13630 (home-page "https://github.com/cireu/emacsql-sqlite3")
13631 (synopsis "EmacSQL backend for SQLite")
13632 (description "This is yet another EmacSQL backend for SQLite which uses
13633 official @command{sqlite3} executable to access SQL database.")
13634 (license license:gpl3+)))
13635
13636 (define-public emacs-closql
13637 ;; Take a commit newer than 1.0.0 release because of Emacs upgrade to 26.3.
13638 (let ((commit "70b98dbae53611d10a461d9b4a6f71086910dcef"))
13639 (package
13640 (name "emacs-closql")
13641 (version (git-version "1.0.0" "1" commit))
13642 (source
13643 (origin
13644 (method git-fetch)
13645 (uri (git-reference
13646 (url "https://github.com/emacscollective/closql")
13647 (commit commit)))
13648 (file-name (git-file-name name version))
13649 (sha256
13650 (base32
13651 "1wvhrihg663f61yzc7f0vha2abjdnlwbk0gjcwakdfk1bhwf5ikh"))))
13652 (build-system emacs-build-system)
13653 (propagated-inputs
13654 `(("emacs-emacsql" ,emacs-emacsql)))
13655 (home-page "https://github.com/emacscollective/closql")
13656 (synopsis "Store EIEIO objects using EmacSQL")
13657 (description
13658 "This package stores uniform EIEIO objects in an EmacSQL
13659 database. SQLite is used as backend. This library imposes some restrictions
13660 on what kind of objects can be stored; it isn't intended to store arbitrary
13661 objects. All objects have to share a common superclass and subclasses cannot
13662 add any additional instance slots.")
13663 (license license:gpl3))))
13664
13665 (define-public emacs-epkg
13666 ;; The release version is to old for the current database scheme.
13667 (let ((commit "432312b9583ed7b88ad9644fd1bf2183765a892e"))
13668 (package
13669 (name "emacs-epkg")
13670 (version (git-version "3.0.0" "1" commit))
13671 (source
13672 (origin
13673 (method git-fetch)
13674 (uri (git-reference
13675 (url "https://github.com/emacscollective/epkg")
13676 (commit commit)))
13677 (file-name (git-file-name name version))
13678 (sha256
13679 (base32
13680 "0d882kahn7a0vri7a9r15lvmfx1zn2hsga6jfcc6jv0hqbswlb2k"))))
13681 (build-system emacs-build-system)
13682 (propagated-inputs
13683 `(("emacs-closql" ,emacs-closql)
13684 ("emacs-dash" ,emacs-dash)))
13685 (home-page "https://emacsmirror.net")
13686 (synopsis "Browse the Emacsmirror package database")
13687 (description "This package provides access to a local copy of the
13688 Emacsmirror package database. It provides low-level functions for querying
13689 the database and a @file{package.el} user interface for browsing the database.
13690 Epkg itself is not a package manager.
13691
13692 Getting a local copy:
13693
13694 @example
13695 git clone https://github.com/emacsmirror/epkgs.git ~/.emacs.d/epkgs
13696 cd ~/.emacs.d/epkgs
13697 git submodule init
13698 git config --global url.https://github.com/.insteadOf git@@github.com:
13699 git submodule update
13700 @end example
13701
13702 Some submodule may be missing. In this case Git will prompt for a GitHub user
13703 name and password. To skip it press a @key{Return} key.
13704
13705 You could get a Epkg package list by invoking @code{epkg-list-packages} in
13706 Emacs.")
13707 (license license:gpl3+))))
13708
13709 (define-public emacs-elisp-slime-nav
13710 (package
13711 (name "emacs-elisp-slime-nav")
13712 (version "0.9")
13713 (source
13714 (origin
13715 (method git-fetch)
13716 (uri (git-reference
13717 (url "https://github.com/purcell/elisp-slime-nav")
13718 (commit version)))
13719 (file-name (git-file-name name version))
13720 (sha256
13721 (base32 "11vyy0bvzbs1h1kggikrvhd658j7c730w0pdp6qkm60rigvfi1ih"))))
13722 (build-system emacs-build-system)
13723 (home-page "https://github.com/purcell/elisp-slime-nav")
13724 (synopsis "Make @code{M-.} and @code{M-,} work for elisp like they do in SLIME")
13725 (description
13726 "This package provides SLIME's convenient @code{M-.}and @code{M-,} navigation
13727 in @code{emacs-lisp-mode}, together with an elisp equivalent of
13728 @code{slime-describe-symbol}.")
13729 (license license:gpl3+)))
13730
13731 (define-public emacs-dedicated
13732 (package
13733 (name "emacs-dedicated")
13734 (version "1.0.0")
13735 (source
13736 (origin
13737 (method git-fetch)
13738 (uri (git-reference
13739 (url "https://github.com/emacsorphanage/dedicated")
13740 (commit version)))
13741 (file-name (git-file-name name version))
13742 (sha256
13743 (base32 "0pba9s0h37sxyqh733vi6k5raa4cs7aradipf3826inw36jcw414"))))
13744 (build-system emacs-build-system)
13745 (home-page "https://github.com/emacsorphanage/dedicated")
13746 (synopsis "Emacs minor mode for toggling a windows's \"dedicated\" flag")
13747 (description
13748 "This simple Emacs minor mode allows you to toggle a window's
13749 \"dedicated\" flag. When a window is \"dedicated\", Emacs will not select
13750 files into that window. This can be quite handy since many commands will use
13751 another window to show results (compilation mode, starting info, and so on).
13752 A dedicated window won't be used for such a purpose. For details, please read
13753 the source file.")
13754 (license license:gpl2+)))
13755
13756 (define-public emacs-nnreddit
13757 (let ((commit "9843f99d01fd8f1eea2fc685965a7c7f4eeb187a")
13758 (revision "1"))
13759 (package
13760 (name "emacs-nnreddit")
13761 (version (string-append "0.0.1-" revision "."
13762 (string-take commit 7)))
13763 (source (origin
13764 (method git-fetch)
13765 (uri (git-reference
13766 (url "https://github.com/paul-issartel/nnreddit")
13767 (commit commit)))
13768 (file-name (git-file-name name version))
13769 (sha256
13770 (base32
13771 "0j4h3bnga640250jdq8bwyja49r41ssrsjd6lba4gzzllqk02nbn"))))
13772 (build-system emacs-build-system)
13773 (home-page "https://github.com/paul-issartel/nnreddit")
13774 (synopsis "Reddit backend for the Gnus newsreader")
13775 (description "@url{https://www.reddit.com} backend for the Gnus
13776 newsreader.")
13777 (license license:gpl3+))))
13778
13779 (define-public emacs-makey
13780 (package
13781 (name "emacs-makey")
13782 (version "0.3")
13783 (source
13784 (origin
13785 (method git-fetch)
13786 (uri (git-reference
13787 (url "https://github.com/mickeynp/makey")
13788 (commit version)))
13789 (file-name (git-file-name name version))
13790 (sha256
13791 (base32 "1rr7vpm3xxzcaam3m8xni3ajy8ycyljix07n2jzczayri9sd8csy"))))
13792 (build-system emacs-build-system)
13793 (home-page "https://github.com/mickeynp/makey")
13794 (synopsis "Emacs interactive command-line mode")
13795 (description
13796 "This package provides an Emacs interactive command-line mode.")
13797 (license license:gpl3+)))
13798
13799 (define-public emacs-outorg
13800 (let ((commit "78b0695121fb974bc4e971eb4ef7f8afd6d89d64"))
13801 (package
13802 (name "emacs-outorg")
13803 (version (git-version "2.0" "1" commit))
13804 (source
13805 (origin
13806 (method git-fetch)
13807 (uri (git-reference
13808 (url "https://github.com/alphapapa/outorg")
13809 (commit commit)))
13810 (file-name (git-file-name name version))
13811 (sha256
13812 (base32
13813 "03aclh4m3f7rb821gr9pwvnqkkl91px3qxdcarpf3ypa1x4fxvlj"))))
13814 (build-system emacs-build-system)
13815 (home-page "https://github.com/alphapapa/outorg")
13816 (synopsis "Org-style comment editing")
13817 (description "Outorg is for editing comment-sections of source-code
13818 files in temporary Org-mode buffers. It turns conventional
13819 literate-programming upside-down in that the default mode is the
13820 programming-mode, and special action has to be taken to switch to the
13821 text-mode (i.e. Org-mode).")
13822 (license license:gpl3+))))
13823
13824 (define-public emacs-outshine
13825 (package
13826 (name "emacs-outshine")
13827 (version "3.0.1")
13828 (source (origin
13829 (method git-fetch)
13830 (uri (git-reference
13831 (url "https://github.com/alphapapa/outshine")
13832 (commit (string-append "v" version))))
13833 (file-name (git-file-name name version))
13834 (sha256
13835 (base32
13836 "1lh9f5dgdbwfyzxk6nsg1xwdjs8gc6p9mbyyhp6f8fnk3h0y88cg"))))
13837 (build-system emacs-build-system)
13838 (propagated-inputs
13839 `(("emacs-outorg" ,emacs-outorg)))
13840 (home-page "https://github.com/alphapapa/outshine")
13841 (synopsis "Emacs outline with outshine")
13842 (description "Outshine attempts to bring the look and feel of
13843 @code{org-mode} to an Emacs outside of the Org major-mode. It is an extension
13844 of @code{outline-minor-mode} (@code{org-mode} itself derives from
13845 outline-mode), so there is no such thing like an outshine mode, only
13846 @code{outline-minor-mode} with outshine extensions loaded.")
13847 (license license:gpl3+)))
13848
13849 (define-public emacs-frecency
13850 (let ((commit "31ef9ff4af1a4fed3dcc24ea74037feea8795c87")
13851 (version "0.1-pre")
13852 (revision "1"))
13853 (package
13854 (name "emacs-frecency")
13855 (version (git-version version revision commit))
13856 (source (origin
13857 (method git-fetch)
13858 (uri (git-reference
13859 (url "https://github.com/alphapapa/frecency.el")
13860 (commit commit)))
13861 (sha256
13862 (base32
13863 "051aihjdg3x22svaxhwylpi8i6s2x9j8syvsj1jgilgjjdy15l6j"))
13864 (file-name (git-file-name name version))))
13865 (build-system emacs-build-system)
13866 (propagated-inputs
13867 `(("emacs-a" ,emacs-a)
13868 ("emacs-dash" ,emacs-dash)))
13869 (home-page "https://github.com/alphapapa/frecency.el")
13870 (synopsis "Sort items by frequency and recency of access")
13871 (description "This package provides a way of sorting items via
13872 a heuristic based on frequency and recency.")
13873 (license license:gpl3+))))
13874
13875 (define-public emacs-org-recent-headings
13876 (package
13877 (name "emacs-org-recent-headings")
13878 (version "0.1")
13879 (source (origin
13880 (method git-fetch)
13881 (uri (git-reference
13882 (url "https://github.com/alphapapa/org-recent-headings")
13883 (commit version)))
13884 (file-name (git-file-name name version))
13885 (sha256
13886 (base32
13887 "0gsrzmg3mssh9s28yjm9m866fnhm1pcligssz1q6brga6dm6f2yy"))))
13888 (build-system emacs-build-system)
13889 (propagated-inputs
13890 `(("emacs-org" ,emacs-org)
13891 ("emacs-dash" ,emacs-dash)
13892 ("emacs-frecency" ,emacs-frecency)))
13893 (home-page "https://github.com/alphapapa/org-recent-headings")
13894 (synopsis "Navigate to recently used Org headings and lists")
13895 (description "This package maintains a list of recently used Org headings,
13896 as well as functions for navigating between these headings.")
13897 (license license:gpl3+)))
13898
13899 (define-public emacs-org-super-agenda
13900 ;; emacs-org-sidebar depends on a newer commit than the latest release version.
13901 (let ((commit "a87ca11fbbe72ab6c1c4c3b55ae9e1e93ebfb8ba")
13902 (revision "3"))
13903 (package
13904 (name "emacs-org-super-agenda")
13905 (version (git-version "1.1.1" revision commit))
13906 (source (origin
13907 (method git-fetch)
13908 (uri (git-reference
13909 (url "https://github.com/alphapapa/org-super-agenda")
13910 (commit commit)))
13911 (file-name (git-file-name name version))
13912 (sha256
13913 (base32
13914 "08b7babdaqblb6jff57an4kbcxk6fkhf668620fipfjgbsnqv3ff"))))
13915 (build-system emacs-build-system)
13916 (propagated-inputs
13917 `(("emacs-org" ,emacs-org)
13918 ("emacs-dash" ,emacs-dash)
13919 ("emacs-ts" ,emacs-ts)
13920 ("emacs-ht" ,emacs-ht)
13921 ("emacs-s" ,emacs-s)))
13922 (home-page "https://github.com/alphapapa/org-super-agenda")
13923 (synopsis "Supercharged Org agenda")
13924 (description "This package allows items in the Org agenda to be grouped
13925 into sections while preserving the structure imposed by any timestamps.")
13926 (license license:gpl3+))))
13927
13928 (define-public emacs-org-make-toc
13929 (package
13930 (name "emacs-org-make-toc")
13931 (version "0.5")
13932 (source (origin
13933 (method git-fetch)
13934 (uri (git-reference
13935 (url "https://github.com/alphapapa/org-make-toc")
13936 (commit version)))
13937 (file-name (git-file-name name version))
13938 (sha256
13939 (base32
13940 "180ji6nnj6qj0rs1rdp1zlcrfsqf7ikb44ym8icbp5d6al2s4hnr"))))
13941 (build-system emacs-build-system)
13942 (propagated-inputs
13943 `(("emacs-org" ,emacs-org)
13944 ("emacs-dash" ,emacs-dash)
13945 ("emacs-s" ,emacs-s)))
13946 (home-page "https://github.com/alphapapa/org-make-toc")
13947 (synopsis "Maintain a table of contents for an Org file")
13948 (description "This package facilitates the creation and maintenance of
13949 tables of contents.")
13950 (license license:gpl3+)))
13951
13952 (define-public emacs-ts
13953 (package
13954 (name "emacs-ts")
13955 (version "0.2")
13956 (source
13957 (origin
13958 (method git-fetch)
13959 (uri (git-reference
13960 (url "https://github.com/alphapapa/ts.el")
13961 (commit version)))
13962 (sha256
13963 (base32 "0hmzc1ppnkkr0lfq5fhzqr6icv6iqz824a6bnns7zr466hhqp3qb"))
13964 (file-name (git-file-name name version))))
13965 (build-system emacs-build-system)
13966 (propagated-inputs
13967 `(("emacs-s" ,emacs-s)
13968 ("emacs-dash" ,emacs-dash)))
13969 (arguments
13970 ;; XXX: Three tests are failing because of a timezone-related issue
13971 ;; with how they're written. On my machine, all the failing test
13972 ;; results are 18000 seconds (5 hours) off.
13973
13974 ;; The ts-parse-org function accepts a string without any timezone
13975 ;; info, not assumed to be in Unix time, and converts it to a so-called
13976 ;; ts struct. The ts-unix function (accessor) accepts a ts struct,
13977 ;; then seems to assume the struct's corresponding time is in terms of
13978 ;; the user's current time zone, before returning a Unix time in
13979 ;; seconds.
13980
13981 ;; The failing tests all have similar problems, but nothing else about
13982 ;; the library seems particularly off.
13983
13984 `(#:tests? #t
13985 #:test-command '("emacs" "--batch"
13986 "-l" "test/test.el"
13987 "-f" "ert-run-tests-batch-and-exit")
13988 #:phases
13989 (modify-phases %standard-phases
13990 (add-before 'check 'make-tests-writable
13991 (lambda _
13992 (make-file-writable "test/test.el")
13993 #t))
13994 (add-before 'check 'delete-failing-tests
13995 (lambda _
13996 (emacs-batch-edit-file "test/test.el"
13997 `(progn (progn
13998 (goto-char (point-min))
13999 (dolist (test-regexp
14000 '("ert-deftest ts-format"
14001 "ert-deftest ts-parse-org\\_>"
14002 "ert-deftest ts-parse-org-element"
14003 "ert-deftest ts-update"))
14004 (re-search-forward test-regexp)
14005 (beginning-of-line)
14006 (kill-sexp)))
14007 (basic-save-buffer)))
14008 #t)))))
14009 (home-page "https://github.com/alphapapa/ts.el")
14010 (synopsis "Timestamp and date/time library")
14011 (description "This package facilitates manipulating dates, times, and
14012 timestamps by providing a @code{ts} struct.")
14013 (license license:gpl3+)))
14014
14015 (define-public emacs-peg
14016 (package
14017 (name "emacs-peg")
14018 (version "0.6")
14019 (source (origin
14020 (method git-fetch)
14021 (uri (git-reference
14022 (url "https://github.com/emacsmirror/peg")
14023 (commit version)))
14024 (sha256
14025 (base32
14026 "0kjz7ch4bn0m4v9zgqyqcrsasnqc5c5drv2hp22j7rnbb7ny0q3n"))
14027 (file-name (git-file-name name version))))
14028 (build-system emacs-build-system)
14029 (home-page "https://github.com/emacsmirror/peg/")
14030 (synopsis "Parsing Expression Grammars in Elisp")
14031 (description "This package provides a macro that parses the current buffer
14032 according to a parsing expression grammar.")
14033 (license license:gpl3+)))
14034
14035 (define-public emacs-org-ql
14036 (package
14037 (name "emacs-org-ql")
14038 (version "0.3.2")
14039 (source (origin
14040 (method git-fetch)
14041 (uri (git-reference
14042 (url "https://github.com/alphapapa/org-ql")
14043 (commit version)))
14044 (sha256
14045 (base32
14046 "11bhpi2l28vp8mm9nx18jljbqdnh9vxpv9kp1dn9lpsgivcdbc34"))
14047 (file-name (git-file-name name version))))
14048 (build-system emacs-build-system)
14049 (propagated-inputs
14050 `(("emacs-s" ,emacs-s)
14051 ("emacs-f" ,emacs-f)
14052 ("emacs-ov" ,emacs-ov)
14053 ("emacs-peg" ,emacs-peg)
14054 ("emacs-org-super-agenda" ,emacs-org-super-agenda)
14055 ("emacs-ts" ,emacs-ts)
14056 ("emacs-org" ,emacs-org)
14057 ("emacs-helm" ,emacs-helm)
14058 ("emacs-helm-org" ,emacs-helm-org)
14059 ("emacs-dash" ,emacs-dash)))
14060 (native-inputs
14061 `(("emacs-buttercup" ,emacs-buttercup)))
14062 (arguments
14063 `(#:phases
14064 (modify-phases %standard-phases
14065 (add-after 'unpack 'require-helm
14066 (lambda _
14067 (substitute* "helm-org-ql.el"
14068 (("^;;;; Requirements")
14069 ";;;; Requirements\n(require 'helm)\n(require 'helm-org)"))
14070 #t)))
14071 #:tests? #t
14072 #:test-command '("buttercup" "-L" ".")))
14073 (home-page "https://github.com/alphapapa/org-ql/")
14074 (synopsis "Query language for Org buffers")
14075 (description "This package provides a Lispy query language for Org
14076 files, allowing for actions to be performed based on search criteria.")
14077 (license license:gpl3+)))
14078
14079 (define-public emacs-org-auto-expand
14080 (let ((commit "4938d5f6460e2f8f051ba9ac000b291bfa43ef62")
14081 (revision "1"))
14082 (package
14083 (name "emacs-org-auto-expand")
14084 (version (git-version "0.1" revision commit))
14085 (source (origin
14086 (method git-fetch)
14087 (uri (git-reference
14088 (url "https://github.com/alphapapa/org-auto-expand")
14089 (commit commit)))
14090 (file-name (git-file-name name version))
14091 (sha256
14092 (base32
14093 "1my0c6xmkh37lwi6l472lz9d86lf20h6xcllzlxm1lxa24rhva6v"))))
14094 (build-system emacs-build-system)
14095 (propagated-inputs
14096 `(("emacs-org" ,emacs-org)
14097 ("emacs-dash" ,emacs-dash)))
14098 (home-page "https://github.com/alphapapa/org-auto-expand")
14099 (synopsis "Automatically expand certain Org headings")
14100 (description "This package allows a customizable set of headings in Org
14101 files to be expanded upon opening them.")
14102 (license license:gpl3+))))
14103
14104 (define-public emacs-parsebib
14105 (package
14106 (name "emacs-parsebib")
14107 (version "2.3.3")
14108 (source
14109 (origin
14110 (method git-fetch)
14111 (uri (git-reference
14112 (url "https://github.com/joostkremers/parsebib")
14113 (commit version)))
14114 (file-name (git-file-name name version))
14115 (sha256
14116 (base32 "0mpgyy9qfb5x4fvlmb274hgayjbwf0bgk65dxyx31zikjwpcd56p"))))
14117 (build-system emacs-build-system)
14118 (home-page "https://github.com/joostkremers/parsebib")
14119 (synopsis "Library for parsing @file{.bib} files")
14120 (description
14121 "This package provides an Emacs library for parsing @file{.bib} files.")
14122 (license license:gpl3+)))
14123
14124 (define-public emacs-ebib
14125 (package
14126 (name "emacs-ebib")
14127 (version "2.22.1")
14128 (source
14129 (origin
14130 (method git-fetch)
14131 (uri (git-reference
14132 (url "https://github.com/joostkremers/ebib")
14133 (commit version)))
14134 (file-name (git-file-name name version))
14135 (sha256
14136 (base32 "0spiz5r2y4pdpyc4d3f9w228giq0j9rm8f5h5akzn5rwiq9pfkwz"))))
14137 (build-system emacs-build-system)
14138 (propagated-inputs
14139 `(("emacs-parsebib" ,emacs-parsebib)))
14140 (home-page "https://joostkremers.github.io/ebib/")
14141 (synopsis "BibTeX database manager for Emacs")
14142 (description
14143 "Ebib is a BibTeX database manager that runs in GNU Emacs.
14144 With Ebib you can create, sort and manage your @file{.bib} database files, all
14145 within Emacs. It supports searching, multi-line field values and
14146 @samp{@@String} and @samp{@@Preamble} definitions. Ebib integrates
14147 with (La)TeX mode, Org mode and other Emacs editing modes.")
14148 ;; The Ebib source files are released under a BSD license with
14149 ;; the exception of org-ebib.el, which is released under the GNU
14150 ;; GPL.
14151 (license (list license:bsd-3
14152 license:gpl3+))))
14153
14154 (define-public emacs-biblio
14155 (package
14156 (name "emacs-biblio")
14157 (version "0.2")
14158 (source
14159 (origin
14160 (method git-fetch)
14161 (uri (git-reference
14162 (url "https://github.com/cpitclaudel/biblio.el")
14163 (commit version)))
14164 (file-name (git-file-name name version))
14165 (sha256
14166 (base32 "1gxjind6r235az59dr8liv03d8994mqb8a7m28j3c12q7p70aziz"))))
14167 (build-system emacs-build-system)
14168 (propagated-inputs
14169 `(("emacs-seq" ,emacs-seq)
14170 ("emacs-dash" ,emacs-dash)
14171 ("emacs-let-alist" ,emacs-let-alist)))
14172 (home-page "https://github.com/cpitclaudel/biblio.el")
14173 (synopsis "Browse and import bibliographic references")
14174 (description "This package provides an extensible Emacs package for
14175 browsing and fetching references.
14176
14177 @file{biblio.el} makes it easy to browse and gather bibliographic references
14178 and publications from various sources, by keywords or by DOI. References are
14179 automatically fetched from well-curated sources, and formatted as BibTeX.")
14180 (license license:gpl3+)))
14181
14182 (define-public emacs-helm-bibtex
14183 (let ((commit "d4471232be26793fbf56c0ac3690b5f537c378b9")
14184 (revision "2"))
14185 (package
14186 (name "emacs-helm-bibtex")
14187 (version (string-append "2.0.0" "-" revision "."
14188 (string-take commit 7)))
14189 (source
14190 (origin
14191 (method git-fetch)
14192 (uri (git-reference
14193 (url "https://github.com/tmalsburg/helm-bibtex")
14194 (commit commit)))
14195 (file-name (git-file-name name version))
14196 (sha256
14197 (base32
14198 "1bkzhic6qckb267025il1r3xcpz99kisphxiafni1pxvf9jafr0j"))))
14199 (build-system emacs-build-system)
14200 (propagated-inputs
14201 `(("emacs-helm" ,emacs-helm)
14202 ("emacs-parsebib" ,emacs-parsebib)
14203 ("emacs-s" ,emacs-s)
14204 ("emacs-dash" ,emacs-dash)
14205 ("emacs-f" ,emacs-f)
14206 ("emacs-biblio" ,emacs-biblio)
14207 ("emacs-ivy" ,emacs-ivy)))
14208 (home-page "https://github.com/tmalsburg/helm-bibtex")
14209 (synopsis "Bibliography manager based on Helm")
14210 (description "This package provides bibliography manager for Emacs,
14211 based on Helm and the bibtex-completion backend.
14212
14213 Key features:
14214
14215 @itemize
14216 @item Quick access to your bibliography from within Emacs
14217 @item Powerful search capabilities
14218 @item Provides instant search results as you type
14219 @item Tightly integrated with LaTeX authoring, emails, Org mode, etc.
14220 @item Open the PDFs, URLs, or DOIs associated with an entry
14221 @item Insert LaTeX cite commands, Ebib links, or Pandoc citations,
14222 BibTeX entries, or plain text references at point, attach PDFs to emails
14223 @item Support for note taking
14224 @item Quick access to online bibliographic databases such as Pubmed,
14225 arXiv, Google Scholar, Library of Congress, etc.
14226 @item Imports BibTeX entries from CrossRef and other sources.
14227 @end itemize\n")
14228 (license license:gpl3+))))
14229
14230 (define-public emacs-ewmctrl
14231 (let ((commit "3d0217c4d6cdb5c308b6cb4293574f470d4faacf"))
14232 (package
14233 (name "emacs-ewmctrl")
14234 (version (git-version "0.0.1" "1" commit))
14235 (source
14236 (origin
14237 (method git-fetch)
14238 (uri (git-reference
14239 (url "https://github.com/flexibeast/ewmctrl")
14240 (commit commit)))
14241 (file-name (git-file-name name version))
14242 (sha256
14243 (base32
14244 "0ilwvx0qryv3v6xf0gxqwnfm6pf96gxap8h9g3f6z6lk9ff4n1wi"))))
14245 (build-system emacs-build-system)
14246 (arguments
14247 '(#:phases
14248 (modify-phases %standard-phases
14249 (add-after 'unpack 'patch-ewmctrl
14250 ;; This build phase makes sure ‘ewmctrl’ looks
14251 ;; for ‘wmctrl’ in the right place.
14252 (lambda _
14253 (let ((file "ewmctrl.el"))
14254 (chmod file #o644)
14255 (emacs-substitute-sexps file
14256 ("(defcustom ewmctrl-wmctrl-path" (which "wmctrl")))))))))
14257 (inputs
14258 `(("wmctrl" ,wmctrl)))
14259 (home-page "https://github.com/flexibeast/ewmctrl")
14260 (synopsis "Emacs interface to @code{wmctrl}")
14261 (description "@code{ewmctrl} provides an Emacs interface to
14262 @code{wmctrl} command-line window-management program.")
14263 (license license:gpl3+))))
14264
14265 (define-public emacs-erc-image
14266 (let ((commit "82fb3871f02e24b1e880770b9a3d187aab43d0f0")
14267 (revision "3"))
14268 (package
14269 (name "emacs-erc-image")
14270 (version (git-version "0" revision commit))
14271 (source
14272 (origin
14273 (method git-fetch)
14274 (uri (git-reference
14275 (url "https://github.com/kidd/erc-image.el")
14276 (commit commit)))
14277 (file-name (git-file-name name version))
14278 (sha256
14279 (base32
14280 "1q8mkf612fb4fjp8h4kbr107wn083iqfdgv8f80pcmil8y33dw9i"))))
14281 (build-system emacs-build-system)
14282 (arguments
14283 `(#:phases (modify-phases %standard-phases
14284 ;; The package autoloader fails to provide
14285 ;; the image module when handled by Guix.
14286 ;; Disable this phase, and let the package
14287 ;; handle the `eval-after-load' procedure.
14288 (delete 'make-autoloads))))
14289 (home-page "https://github.com/kidd/erc-image.el")
14290 (synopsis "Show inlined images (png/jpg/gif/svg) in ERC buffers")
14291 (description "This plugin subscribes to hooks @code{erc-insert-modify-hook}
14292 and @code{erc-send-modify-hook} to download and show images.")
14293 (license license:gpl3+))))
14294
14295 (define-public emacs-helm-gtags
14296 (package
14297 (name "emacs-helm-gtags")
14298 (version "1.5.7")
14299 (source
14300 (origin
14301 (method git-fetch)
14302 (uri (git-reference
14303 (url "https://github.com/syohex/emacs-helm-gtags")
14304 (commit version)))
14305 (file-name (git-file-name name version))
14306 (sha256
14307 (base32 "1kc1jzk10nfd2v20g8dwnb6a944afrwdwnkzl06w4ba8k4yim7gi"))))
14308 (build-system emacs-build-system)
14309 (propagated-inputs
14310 `(("emacs-helm" ,emacs-helm)))
14311 (home-page "https://github.com/syohex/emacs-helm-gtags")
14312 (synopsis "Emacs Helm interface to GNU Global")
14313 (description
14314 "@code{emacs-helm-gtags} provides a Emacs Helm interface to GNU Global.")
14315 (license license:gpl3+)))
14316
14317 (define-public emacs-list-utils
14318 (package
14319 (name "emacs-list-utils")
14320 (version "0.4.4")
14321 (source
14322 (origin
14323 (method git-fetch)
14324 (uri (git-reference
14325 (url "https://github.com/rolandwalker/list-utils")
14326 (commit (string-append "v" version))))
14327 (file-name (git-file-name name version))
14328 (sha256
14329 (base32 "0ql159v7sxs33yh2l080kchrj52vk34knz50cvqi3ykpb7djg3sz"))))
14330 (build-system emacs-build-system)
14331 (home-page "https://github.com/rolandwalker/list-utils")
14332 (synopsis "List-manipulation utility functions")
14333 (description "This package provides a list manipulation library for Emacs.")
14334 (license license:gpl3+)))
14335
14336 (define-public emacs-move-text
14337 (package
14338 (name "emacs-move-text")
14339 (version "2.0.8")
14340 (source
14341 (origin
14342 (method git-fetch)
14343 (uri (git-reference
14344 (url "https://github.com/emacsfodder/move-text")
14345 (commit version)))
14346 (file-name (git-file-name name version))
14347 (sha256
14348 (base32 "06jxk5g23822gfmwrxhc34zand3dr8p2wjh1zs3j61ibz6n0nmz1"))))
14349 (build-system emacs-build-system)
14350 (home-page "https://github.com/emacsfodder/move-text")
14351 (synopsis "Move current line or region with M-up or M-down")
14352 (description "This package provide functions to move the current line
14353 using @kbd{M-up} or @kbd{M-down} if a region is marked, it will move the
14354 region instead.")
14355 (license license:gpl3+)))
14356
14357 (define-public emacs-validate
14358 (package
14359 (name "emacs-validate")
14360 (version "1.0.5")
14361 (source (origin
14362 (method git-fetch)
14363 (uri (git-reference
14364 (url "https://github.com/Malabarba/validate.el")
14365 (commit version)))
14366 (file-name (git-file-name name version))
14367 (sha256
14368 (base32
14369 "1l12ibx6cw4mgicgjpw71fb4fr4sd0k54lvbpq7ngc29br3j6i4v"))))
14370 (build-system emacs-build-system)
14371 (home-page "https://github.com/Malabarba/validate.el")
14372 (synopsis "Emacs library for scheme validation")
14373 (description "This Emacs library provides two functions that perform
14374 schema validation.")
14375 (license license:gpl3+)))
14376
14377 (define-public emacs-rainbow-blocks
14378 (let ((commit "dd435d7bb34ff6f162a5f315df308b90b7e9f842"))
14379 (package
14380 (name "emacs-rainbow-blocks")
14381 (version (git-version "1.0.0" "1" commit))
14382 (source (origin
14383 (method git-fetch)
14384 (uri (git-reference
14385 (url "https://github.com/istib/rainbow-blocks")
14386 (commit commit)))
14387 (file-name (git-file-name name version))
14388 (sha256
14389 (base32
14390 "06yfb3i7wzvqrhkb61zib9xvpb5i00s4frizkzff66im05k0n795"))))
14391 (build-system emacs-build-system)
14392 (home-page "https://github.com/istib/rainbow-blocks")
14393 (synopsis "Highlight sexp blocks")
14394 (description "Rainbow-blocks is an Emacs mode that highlights blocks
14395 made of parentheses, brackets, and braces according to their depth. Each
14396 successive level is highlighted in a different color. This makes it easy to
14397 orient yourself in the code, and tell which statements are at a given level.")
14398 (license license:gpl3+))))
14399
14400 (define-public emacs-hierarchy
14401 (package
14402 (name "emacs-hierarchy")
14403 (version "0.7.0")
14404 (source
14405 (origin
14406 (method git-fetch)
14407 (uri (git-reference
14408 (url "https://github.com/DamienCassou/hierarchy")
14409 (commit (string-append "v" version))))
14410 (file-name (git-file-name name version))
14411 (sha256
14412 (base32 "1kykbb1sil5cycfa5aj8dhsxc5yrx1641i2np5kwdjid6ahdlz5r"))))
14413 (build-system emacs-build-system)
14414 (native-inputs
14415 `(("emacs-buttercup" ,emacs-buttercup)))
14416 (arguments
14417 `(#:tests? #t
14418 #:test-command '("buttercup" "-L" ".")))
14419 (home-page "https://github.com/DamienCassou/hierarchy")
14420 (synopsis "Library to create and display hierarchy structures")
14421 (description "This package provides an Emacs library to create, query,
14422 navigate and display hierarchy structures.")
14423 (license license:gpl3+)))
14424
14425 (define-public emacs-tree-mode
14426 (let ((commit "b06078826d5875d74b0e7b7ac47b0d0917610534")
14427 (revision "1"))
14428 (package
14429 (name "emacs-tree-mode")
14430 (version (string-append "0.0.1" "-" revision "."
14431 (string-take commit 7)))
14432 (source
14433 (origin
14434 (method git-fetch)
14435 (uri (git-reference
14436 (url "https://github.com/emacsorphanage/tree-mode")
14437 (commit commit)))
14438 (file-name (git-file-name name version))
14439 (sha256
14440 (base32
14441 "13bbdhdmqg4x9yghanhr8fsbsxbnypzxdxgicz31sjjm675kpnix"))))
14442 (build-system emacs-build-system)
14443 (home-page "https://github.com/emacsorphanage/tree-mode")
14444 (synopsis "Emacs mode to manage tree widgets")
14445 (description
14446 "This package provides an Emacs library to manage tree widgets.")
14447 (license license:gpl3+))))
14448
14449 (define-public emacs-md4rd
14450 (package
14451 (name "emacs-md4rd")
14452 (version "0.3.1")
14453 (source (origin
14454 (method git-fetch)
14455 (uri (git-reference
14456 (url "https://github.com/ahungry/md4rd")
14457 (commit version)))
14458 (file-name (git-file-name name version))
14459 (sha256
14460 (base32
14461 "1n6g6k4adzkkn1g7z4j27s35xy12c1fg2r08gv345ddr3wplq4ri"))))
14462 (propagated-inputs
14463 `(("emacs-hierarchy" ,emacs-hierarchy)
14464 ("emacs-request" ,emacs-request)
14465 ("emacs-dash" ,emacs-dash)
14466 ("emacs-s" ,emacs-s)
14467 ("emacs-tree-mode" ,emacs-tree-mode)))
14468 (build-system emacs-build-system)
14469 (home-page "https://github.com/ahungry/md4rd")
14470 (synopsis "Emacs Mode for Reddit")
14471 (description
14472 "This package allows reading Reddit from within Emacs interactively.")
14473 (license license:gpl3+)))
14474
14475 (define-public emacs-pulseaudio-control
14476 (let ((commit "7e1a87068379075a5e9ce36c64c686c03d20d379")
14477 (revision "3"))
14478 (package
14479 (name "emacs-pulseaudio-control")
14480 (version (git-version "0.0.1" revision commit))
14481 (source
14482 (origin
14483 (method git-fetch)
14484 (uri (git-reference
14485 (url "https://github.com/flexibeast/pulseaudio-control")
14486 (commit commit)))
14487 (file-name (git-file-name name version))
14488 (sha256
14489 (base32
14490 "0wcaqyh15x56255rrj350089z15pnwixa2vf0ly6dv0hjmzmh3mr"))))
14491 (build-system emacs-build-system)
14492 (arguments
14493 '(#:phases (modify-phases %standard-phases
14494 (add-after 'unpack 'patch-file-name
14495 (lambda* (#:key inputs #:allow-other-keys)
14496 (let ((pulseaudio (assoc-ref inputs "pulseaudio")))
14497 (chmod "pulseaudio-control.el" #o600)
14498 (emacs-substitute-variables "pulseaudio-control.el"
14499 ("pulseaudio-control-pactl-path"
14500 (string-append pulseaudio "/bin/pactl")))
14501 #t))))))
14502 (inputs `(("pulseaudio" ,pulseaudio)))
14503 (home-page "https://github.com/flexibeast/pulseaudio-control")
14504 (synopsis "Control @code{pulseaudio} from Emacs")
14505 (description
14506 "This package allows controlling @code{pulseaudio} from Emacs.")
14507 (license license:gpl3+))))
14508
14509 (define-public emacs-datetime
14510 (package
14511 (name "emacs-datetime")
14512 (version "0.6.6")
14513 (source
14514 (origin
14515 (method git-fetch)
14516 (uri (git-reference
14517 (url "https://github.com/doublep/datetime")
14518 (commit version)))
14519 (file-name (git-file-name name version))
14520 (sha256
14521 (base32
14522 "0a3q667pybpmsjkbgf6287jwgpnx8brp5314wb8zbczw6ncygnbi"))))
14523 (build-system emacs-build-system)
14524 (inputs
14525 `(("emacs-extmap" ,emacs-extmap)))
14526 (home-page "https://github.com/doublep/datetime/")
14527 (synopsis "Library to work with dates in Emacs")
14528 (description "Parsing, formatting, matching and recoding
14529 timestamps and date-time format strings library for Emacs.")
14530 (license license:gpl3+)))
14531
14532 (define-public emacs-org-mind-map
14533 (let ((commit "9d6e262bedd94daf9de269f4d56de277275677cb")
14534 (revision "1"))
14535 (package
14536 (name "emacs-org-mind-map")
14537 (version (string-append "0.0.1" "-" revision "."
14538 (string-take commit 7)))
14539 (source
14540 (origin
14541 (method git-fetch)
14542 (uri (git-reference
14543 (url "https://github.com/theodorewiles/org-mind-map")
14544 (commit commit)))
14545 (file-name (git-file-name name version))
14546 (sha256
14547 (base32
14548 "0jgkkgq7g64zckrmjib0hvz0qy3ynz5vz13qbmlpf096l3bb65wn"))))
14549 (propagated-inputs
14550 `(("emacs-dash" ,emacs-dash)))
14551 (build-system emacs-build-system)
14552 (home-page "https://github.com/theodorewiles/org-mind-map")
14553 (synopsis "Create Graphviz directed graphs from Org files")
14554 (description
14555 "This package creates Graphviz directed graphs from Org files.")
14556 (license license:gpl3+))))
14557
14558 (define-public emacs-npm-mode
14559 (package
14560 (name "emacs-npm-mode")
14561 (version "0.6.0")
14562 (source
14563 (origin
14564 (method git-fetch)
14565 (uri (git-reference
14566 (url "https://github.com/mojochao/npm-mode")
14567 (commit version)))
14568 (file-name (git-file-name name version))
14569 (sha256
14570 (base32 "1mh6nbffciw4yhv049kdhh796ysj1x21ndm3fwymhskb3dy0w1ss"))))
14571 (build-system emacs-build-system)
14572 (home-page "https://github.com/mojochao/npm-mode")
14573 (synopsis "Minor mode for working with @code{npm} projects")
14574 (description
14575 "@code{npm-mode} provides a minor mode to work with @code{npm} projects.")
14576 (license license:gpl3+)))
14577
14578 (define-public emacs-seq
14579 (package
14580 (name "emacs-seq")
14581 (version "2.20")
14582 (source
14583 (origin
14584 (method url-fetch)
14585 (uri (string-append "https://elpa.gnu.org/packages/seq-" version ".tar"))
14586 (sha256
14587 (base32
14588 "0vrpx6nnyjb0gsypknzagimlhvcvi5y1rcdkpxyqr42415zr8d0n"))))
14589 (build-system emacs-build-system)
14590 (home-page "https://elpa.gnu.org/packages/seq.html")
14591 (synopsis "Sequence manipulation functions")
14592 (description "Sequence-manipulation functions that complement basic
14593 functions provided by @file{subr.el}.")
14594 (license license:gpl3+)))
14595
14596 (define-public emacs-itail
14597 (let ((commit "6e43c20da03be3b9c6ece93b7dc3495975ec1888")
14598 (revision "1"))
14599 (package
14600 (name "emacs-itail")
14601 (version (string-append "0.0.1" "-" revision "."
14602 (string-take commit 7)))
14603 (source
14604 (origin
14605 (method git-fetch)
14606 (uri (git-reference
14607 (url "https://github.com/re5et/itail")
14608 (commit commit)))
14609 (file-name (git-file-name name version))
14610 (sha256
14611 (base32
14612 "044nzxh1hq41faxw3lix0wy78vfz304pjcaa5a11dqfz7q3gx5cv"))))
14613 (build-system emacs-build-system)
14614 (home-page "https://github.com/re5et/itail")
14615 (synopsis "Interactive @code{tail} Emacs mode")
14616 (description "@code{itail} provides interactive @code{tail} mode
14617 that allows you to filter the tail with unix pipes and highlight the
14618 contents of the tailed file. Works locally or on remote files using
14619 tramp.")
14620 (license license:gpl3+))))
14621
14622 (define-public emacs-loop
14623 (package
14624 (name "emacs-loop")
14625 (version "1.3")
14626 (source
14627 (origin
14628 (method git-fetch)
14629 (uri (git-reference
14630 (url "https://github.com/Wilfred/loop.el")
14631 (commit version)))
14632 (file-name (git-file-name name version))
14633 (sha256
14634 (base32 "1gs95xnmnn8aa4794k7h8mw1sz1nfdh9v0caqj6yvnsdnwy74n5x"))))
14635 (build-system emacs-build-system)
14636 (native-inputs
14637 `(("emacs-ert-runner" ,emacs-ert-runner)
14638 ("emacs-undercover" ,emacs-undercover)))
14639 (arguments
14640 `(#:tests? #t
14641 #:test-command '("ert-runner")))
14642 (home-page "https://github.com/Wilfred/loop.el")
14643 (synopsis "Imperative loop structures for Emacs")
14644 (description "Loop structures familiar to users of other languages. This
14645 library adds a selection of popular loop structures as well as break and
14646 continue.")
14647 (license license:gpl3+)))
14648
14649 (define-public emacs-elisp-refs
14650 (package
14651 (name "emacs-elisp-refs")
14652 (version "1.3")
14653 (source
14654 (origin
14655 (method git-fetch)
14656 (uri (git-reference
14657 (url "https://github.com/Wilfred/elisp-refs")
14658 (commit version)))
14659 (file-name (git-file-name name version))
14660 (sha256
14661 (base32 "0w7k91xf69zc0zkjrw8h8sjdjf9xq9qs5zhvajhd718lzf93564b"))))
14662 (build-system emacs-build-system)
14663 (propagated-inputs
14664 `(("emacs-dash" ,emacs-dash)
14665 ("emacs-f" ,emacs-f)
14666 ("emacs-list-utils" ,emacs-list-utils)
14667 ("emacs-loop" ,emacs-loop)
14668 ("emacs-s" ,emacs-s)
14669 ("emacs-shut-up" ,emacs-shut-up)))
14670 (native-inputs
14671 `(("emacs-ert-runner" ,emacs-ert-runner)
14672 ("emacs-undercover" ,emacs-undercover)))
14673 (arguments
14674 `(#:tests? #t
14675 #:test-command '("ert-runner")))
14676 (home-page "https://github.com/Wilfred/elisp-refs")
14677 (synopsis "Find callers of elisp functions or macros")
14678 (description "Find references to functions, macros or variables. Unlike a
14679 dumb text search, @code{elisp-refs} actually parses the code, so it's never
14680 confused by comments or @code{foo-bar} matching @code{foo}.")
14681 (license license:gpl3+)))
14682
14683 (define-public emacs-crux
14684 (let ((commit "308f17d914e2cd79cbc809de66d02b03ceb82859")
14685 (revision "2"))
14686 (package
14687 (name "emacs-crux")
14688 (version (git-version "0.3.0" revision commit))
14689 (source
14690 (origin
14691 (method git-fetch)
14692 (uri (git-reference
14693 (url "https://github.com/bbatsov/crux")
14694 (commit commit)))
14695 (file-name (git-file-name name version))
14696 (sha256
14697 (base32
14698 "0rf84finwlvmy0xpgyljjvnrijlmkzjyw9rh97svgxp9c1rzfk0x"))))
14699 (build-system emacs-build-system)
14700 (home-page "https://github.com/bbatsov/crux")
14701 (synopsis "Collection of useful functions for Emacs")
14702 (description
14703 "@code{crux} provides a collection of useful functions for Emacs.")
14704 (license license:gpl3+))))
14705
14706 (define-public emacs-edit-server
14707 (package
14708 (name "emacs-edit-server")
14709 (version "1.15")
14710 (source
14711 (origin
14712 (method git-fetch)
14713 (uri (git-reference
14714 (url "https://github.com/stsquad/emacs_chrome")
14715 (commit (string-append "v" version))))
14716 (file-name (git-file-name name version))
14717 (sha256
14718 (base32 "0xxby3ghs38i1l7kag12rnzlzcg9297pm8k6kqq3aqzsg9d2950y"))))
14719 (build-system emacs-build-system)
14720 (arguments
14721 `(#:phases
14722 (modify-phases %standard-phases
14723 (add-after 'unpack 'chdir-elisp
14724 ;; Elisp directory is not in root of the source.
14725 (lambda _
14726 (chdir "servers"))))))
14727 (home-page "https://github.com/stsquad/emacs_chrome")
14728 (synopsis "Server that responds to edit requests from Chromium")
14729 (description
14730 "This package provides an edit server to respond to requests from Emacs.")
14731 (license license:gpl3+)))
14732
14733 (define-public emacs-m-buffer-el
14734 (package
14735 (name "emacs-m-buffer-el")
14736 (version "0.15")
14737 (source
14738 (origin
14739 (method git-fetch)
14740 (uri (git-reference
14741 (url "https://github.com/phillord/m-buffer-el")
14742 (commit (string-append "v" version))))
14743 (file-name (git-file-name name version))
14744 (sha256
14745 (base32
14746 "1sx76i59razwccvn6x7rx5a124bfyjw9fcbxf4gj7nsg33qiq809"))))
14747 (arguments
14748 `(#:phases
14749 (modify-phases %standard-phases
14750 (add-before 'install 'check
14751 (lambda* (#:key inputs #:allow-other-keys)
14752 (invoke "emacs" "--batch" "-L" "."
14753 "-l" "test/m-buffer-test.el"
14754 "-l" "test/m-buffer-at-test.el"
14755 "-f" "ert-run-tests-batch-and-exit"))))))
14756 (build-system emacs-build-system)
14757 (home-page "https://github.com/phillord/m-buffer-el")
14758 (synopsis "List oriented buffer operations for Emacs")
14759 (description "@code{m-buffer} provides a set of list-orientated functions
14760 for operating over the contents of Emacs buffers.")
14761 (license license:gpl3+)))
14762
14763 (define-public emacs-let-alist
14764 (package
14765 (name "emacs-let-alist")
14766 (version "1.0.6")
14767 (source
14768 (origin
14769 (method url-fetch)
14770 (uri (string-append
14771 "https://elpa.gnu.org/packages/let-alist-" version ".el"))
14772 (sha256
14773 (base32 "0szj7vnjzz4zci5fvz7xqgcpi4pzdyyf4qi2s8xar2hi7v3yaawr"))))
14774 (build-system emacs-build-system)
14775 (home-page "https://elpa.gnu.org/packages/let-alist.html")
14776 (synopsis "Easily let-bind values of an assoc-list by their names")
14777 (description "This package offers a single macro, @code{let-alist}. This
14778 macro takes a first argument (whose value must be an alist) and a body.")
14779 (license license:gpl3+)))
14780
14781 (define-public emacs-esup
14782 (let ((commit "a589005a9a888537deef94d6fe38a9b8790c97c7")
14783 (revision "1"))
14784 (package
14785 (name "emacs-esup")
14786 (version (string-append "0.6" "-" revision "."
14787 (string-take commit 7)))
14788 (source
14789 (origin
14790 (method git-fetch)
14791 (uri (git-reference
14792 (url "https://github.com/jschaf/esup")
14793 (commit commit)))
14794 (file-name (git-file-name name version))
14795 (sha256
14796 (base32
14797 "04lxmd0h7mfjjl0qghrycgff0vcv950j1wqv0dbkr61jxp64n5fv"))))
14798 ;; TODO: Add tests
14799 (build-system emacs-build-system)
14800 (home-page "https://github.com/jschaf/esup")
14801 (synopsis "Emacs start up profiler")
14802 (description "Benchmark Emacs Startup time without ever leaving
14803 your Emacs.")
14804 (license license:gpl2+))))
14805
14806 (define-public emacs-restart-emacs
14807 (let ((commit "9aa90d3df9e08bc420e1c9845ee3ff568e911bd9")
14808 (revision "1"))
14809 (package
14810 (name "emacs-restart-emacs")
14811 (version (git-version "0.1.1" revision commit))
14812 (source
14813 (origin
14814 (method git-fetch)
14815 (uri (git-reference
14816 (url "https://github.com/iqbalansari/restart-emacs")
14817 (commit commit)))
14818 (file-name (git-file-name name version))
14819 (sha256
14820 (base32 "02x1a85k7r95z8091zgjiaj9nf0zvx1jy4xvl3hr12qbnrx1wfav"))))
14821 (build-system emacs-build-system)
14822 (home-page "https://github.com/iqbalansari/restart-emacs")
14823 (synopsis "Restart Emacs from within Emacs")
14824 (description "This package provides a simple command to restart Emacs from
14825 within Emacs.")
14826 (license license:gpl3+))))
14827
14828 (define-public emacs-sourcemap
14829 (package
14830 (name "emacs-sourcemap")
14831 (version "0.03")
14832 (source
14833 (origin
14834 (method git-fetch)
14835 (uri (git-reference
14836 (url "https://github.com/syohex/emacs-sourcemap")
14837 (commit version)))
14838 (file-name (git-file-name name version))
14839 (sha256
14840 (base32 "115g2mfpbfywp8xnag4gsb50klfvplqfh928a5mabb5s8v4a3582"))))
14841 (build-system emacs-build-system)
14842 (home-page "https://github.com/syohex/emacs-sourcemap")
14843 (synopsis "Sourcemap parser")
14844 (description "Sourcemap parser")
14845 (license license:gpl3+)))
14846
14847 (define-public emacs-macrostep
14848 (let ((commit "424e3734a1ee526a1bd7b5c3cd1d3ef19d184267"))
14849 (package
14850 (name "emacs-macrostep")
14851 (version (git-version "0.9" "1" commit))
14852 (source (origin
14853 (method git-fetch)
14854 (uri (git-reference
14855 (url "https://github.com/joddie/macrostep")
14856 (commit commit)))
14857 (file-name (git-file-name name version))
14858 (sha256
14859 (base32
14860 "1fm40mxdn289cyzgw992223dgrjmwxn4q8svyyxfaxjrpb38jhjz"))))
14861 (build-system emacs-build-system)
14862 (arguments
14863 '(#:phases
14864 (modify-phases %standard-phases
14865 (add-before 'check 'remove-test
14866 ;; Fails because of requirement ‘/bin/sh’.
14867 (lambda _
14868 (let ((file "macrostep-test.el"))
14869 (chmod file #o644)
14870 (emacs-batch-edit-file file
14871 `(progn (progn (goto-char (point-min))
14872 (re-search-forward
14873 "(ert-deftest macrostep-expand-c-macros")
14874 (beginning-of-line)
14875 (kill-sexp))
14876 (basic-save-buffer))))))
14877 (add-before 'install 'check
14878 (lambda _
14879 (invoke "emacs" "--batch" "-L" "."
14880 "-l" "macrostep-test.el"
14881 "-f" "ert-run-tests-batch-and-exit"))))))
14882 (home-page "https://github.com/joddie/macrostep")
14883 (synopsis "Interactive macro-expander for Emacs")
14884 (description "@code{macrostep} is an Emacs minor mode for interactively
14885 stepping through the expansion of macros in Emacs Lisp source code. It lets
14886 you see exactly what happens at each step of the expansion process by
14887 pretty-printing the expanded forms inline in the source buffer, which is
14888 temporarily read-only while macro expansions are visible. You can expand and
14889 collapse macro forms one step at a time, and evaluate or instrument the
14890 expansions for debugging with Edebug as normal (but see “Bugs and known
14891 limitations”, below). Single-stepping through the expansion is particularly
14892 useful for debugging macros that expand into another macro form. These can be
14893 difficult to debug with Emacs’ built-in macroexpand, which continues expansion
14894 until the top-level form is no longer a macro call.")
14895 (license license:gpl3+))))
14896
14897 (define-public emacs-parent-mode
14898 (package
14899 (name "emacs-parent-mode")
14900 (version "2.3")
14901 (source
14902 (origin
14903 (method git-fetch)
14904 (uri (git-reference
14905 (url "https://github.com/Fanael/parent-mode")
14906 (commit version)))
14907 (file-name (git-file-name name version))
14908 (sha256
14909 (base32 "0i5bc7lyyrx6swqlrp9l5x72yzwi53qn6ldrfs99gh08b3yvsnni"))))
14910 (build-system emacs-build-system)
14911 (home-page "https://github.com/Fanael/parent-mode")
14912 (synopsis "Get major mode's parent modes")
14913 (description "Get major mode's parent modes")
14914 (license license:gpl3+)))
14915
14916 (define-public emacs-lacarte
14917 (package
14918 (name "emacs-lacarte")
14919 (version "0.1")
14920 (source (origin
14921 (method url-fetch)
14922 (uri "https://www.emacswiki.org/emacs/download/lacarte.el")
14923 (sha256
14924 (base32
14925 "1sbmk37ljq5j7dsw5c37sbxvlfgdqswh7bi4dknyjzfxlq50f4am"))))
14926 (build-system emacs-build-system)
14927 (home-page "https://www.emacswiki.org/emacs/lacarte.el")
14928 (synopsis "Execute menu items as commands, with completion")
14929 (description "Execute menu items as commands, with completion.")
14930 (license license:gpl3)))
14931
14932 (define-public emacs-isearch-prop
14933 (let ((commit "4a2765f835dd115d472142da05215c4c748809f4")
14934 (revision "2"))
14935 (package
14936 (name "emacs-isearch-prop")
14937 (version (git-version "0" revision commit))
14938 (source
14939 (origin
14940 (method git-fetch)
14941 (uri (git-reference
14942 (url "https://github.com/emacsmirror/isearch-prop")
14943 (commit commit)))
14944 (file-name (git-file-name name version))
14945 (sha256
14946 (base32
14947 "06gdk5m84q6pxwng8rjxny1zkll8f3m2x6lw4xyib2dvg7iaslh3"))))
14948 (build-system emacs-build-system)
14949 (home-page "https://www.emacswiki.org/emacs/isearch-prop.el")
14950 (synopsis "Extensions to @code{isearch.el}")
14951 (description "The Emacs library @code{isearch-prop.el} lets you search within
14952 contexts. You can limit incremental search to a set of zones of
14953 buffer text, search contexts that in effect constitute a multi-region.
14954 These zones can be defined in various ways, including some ways
14955 provided specially by this library.")
14956 (license license:gpl3+))))
14957
14958 (define-public emacs-company-lua
14959 (let ((commit "29f6819de4d691e5fd0b62893a9f4fbc1c6fcb52")
14960 (revision "2"))
14961 (package
14962 (name "emacs-company-lua")
14963 (version (git-version "0.1" "2" commit))
14964 (source
14965 (origin
14966 (method git-fetch)
14967 (uri (git-reference
14968 (url "https://github.com/ptrv/company-lua")
14969 (commit commit)))
14970 (file-name (git-file-name name version))
14971 (sha256
14972 (base32
14973 "0ny2dcc7c585p7v3j6q0rpkbj1qmf2ismy8a5020jpr585xvz0hh"))))
14974 (build-system emacs-build-system)
14975 (propagated-inputs
14976 `(("emacs-company" ,emacs-company)
14977 ("emacs-s" ,emacs-s)
14978 ("emacs-f" ,emacs-f)
14979 ("emacs-lua-mode" ,emacs-lua-mode)))
14980 (arguments
14981 `(#:include (cons* "^lua\\/" %default-include)))
14982 (home-page "https://github.com/ptrv/company-lua")
14983 (synopsis "Company backend for Lua")
14984 (description
14985 "This package provides Company backend for Lua programming language.")
14986 (license license:gpl3+))))
14987
14988 (define-public emacs-beginend
14989 (package
14990 (name "emacs-beginend")
14991 (version "2.1.0")
14992 (source
14993 (origin
14994 (method git-fetch)
14995 (uri (git-reference
14996 (url "https://github.com/DamienCassou/beginend")
14997 (commit (string-append "v" version))))
14998 (file-name (git-file-name name version))
14999 (sha256
15000 (base32 "1ic5z3qb5sc3mjrjdlg0rqm2l59a43gwnakagns4cilln2a3xdg8"))))
15001 ;; TODO: Run tests.
15002 (build-system emacs-build-system)
15003 (inputs
15004 `(("emacs-undercover" ,emacs-undercover))) ; For tests.
15005 (home-page "https://github.com/DamienCassou/beginend")
15006 (synopsis "Redefine @code{M-<} and @code{M->} for Emacs modes")
15007 (description "@code{beginend} redefines @code{M-<} and @code{M->}
15008 keybindings for Emacs modes so that point moves to meaningful
15009 locations. Redefined keys are still accessible by pressing the same
15010 key again.")
15011 (license license:gpl3+)))
15012
15013 (define-public emacs-mbsync
15014 (let ((commit "b62491c0e0d89eb9c66261a16d7ac81231c9c453")
15015 (revision "4"))
15016 (package
15017 (name "emacs-mbsync")
15018 (version (git-version "0.1.2" revision commit))
15019 (source
15020 (origin
15021 (method git-fetch)
15022 (uri (git-reference
15023 (url "https://github.com/dimitri/mbsync-el")
15024 (commit commit)))
15025 (file-name (git-file-name name version))
15026 (sha256
15027 (base32
15028 "1zlih37mkqjn2czl12zn7lgxxljvrwhqqpbksj9c91zn0f0rm3mz"))))
15029 (build-system emacs-build-system)
15030 (home-page "https://github.com/dimitri/mbsync-el")
15031 (synopsis "Interface to mbsync for Emacs")
15032 (description "This package calls @code{mbsync} from
15033 within Emacs.")
15034 (license license:gpl3+))))
15035
15036 (define-public emacs-ibuffer-projectile
15037 (let ((commit "76496214144687cee0b5139be2e61b1e400cac87")
15038 (revision "2"))
15039 (package
15040 (name "emacs-ibuffer-projectile")
15041 (version (git-version "0.2" revision commit))
15042 (source
15043 (origin
15044 (method git-fetch)
15045 (uri (git-reference
15046 (url "https://github.com/purcell/ibuffer-projectile")
15047 (commit commit)))
15048 (file-name (git-file-name name version))
15049 (sha256
15050 (base32
15051 "0vv9xwb1qd5x8zhqmmsn1nrpd11cql9hxb7483nsdhcfwl4apqav"))))
15052 (build-system emacs-build-system)
15053 (propagated-inputs
15054 `(("emacs-projectile" ,emacs-projectile)))
15055 (home-page "https://github.com/purcell/ibuffer-projectile")
15056 (synopsis "Group ibuffer's list by projectile root")
15057 (description "Adds functionality to Emacs @code{ibuffer} for
15058 grouping buffers by their projectile root directory.")
15059 (license license:gpl3+))))
15060
15061 (define-public emacs-elm-mode
15062 (package
15063 (name "emacs-elm-mode")
15064 (version "0.21.0")
15065 (source
15066 (origin
15067 (method git-fetch)
15068 (uri
15069 (git-reference
15070 (url "https://github.com/jcollard/elm-mode")
15071 (commit (string-append "v" version))))
15072 (file-name (git-file-name name version))
15073 (sha256
15074 (base32 "0iwk4fmw8hq3ry4ky1zc7lgl4cpbnrjyk74c2xzddfspi3ks41fd"))))
15075 (propagated-inputs
15076 `(("emacs-dash" ,emacs-dash)
15077 ("emacs-f" ,emacs-f)
15078 ("emacs-reformatter" ,emacs-reformatter)
15079 ("emacs-s" ,emacs-s)))
15080 (build-system emacs-build-system)
15081 (home-page "https://github.com/jcollard/elm-mode")
15082 (synopsis "Emacs major mode for editing Elm source code")
15083 (description
15084 "This package provides a major mode for editing Elm source code, and
15085 working with common core and third-party Elm tools. Its features are:
15086
15087 @itemize
15088 @item Syntax highlighting
15089 @item Intelligent indentation
15090 @item Integration with elm-make
15091 @item Integration with elm-repl
15092 @item Integration with elm-reactor
15093 @item Integration with elm-package
15094 @item Integration with elm-oracle
15095 @item Integration with elm-format
15096 @item Integration with elm-test
15097 @end itemize")
15098 (license license:gpl3+)))
15099
15100 (define-public emacs-helm-mode-manager
15101 (package
15102 (name "emacs-helm-mode-manager")
15103 (version "1.0.0")
15104 (source
15105 (origin
15106 (method git-fetch)
15107 (uri (git-reference
15108 (url "https://github.com/istib/helm-mode-manager")
15109 (commit version)))
15110 (file-name (git-file-name name version))
15111 (sha256
15112 (base32
15113 "1srx5f0s9x7zan7ayqd6scxfhcvr3nkd4yzs96hphd87rb18apzk"))))
15114 (build-system emacs-build-system)
15115 (propagated-inputs
15116 `(("emacs-helm" ,emacs-helm)))
15117 (home-page "https://github.com/istib/helm-mode-manager/")
15118 (synopsis "Switch and toggle Emacs major and minor modes using Helm")
15119 (description "This package provides a Helm interface for toggling Emacs
15120 major or minor mode.
15121
15122 @itemize
15123 @item @code{helm-switch-major-mode} list of all major modes
15124 @item @code{helm-enable-minor-mode} list of all inactive minor modes
15125 @item @code{helm-disable-minor-mode} list of all ACTIVE minor modes
15126 @end itemize\n
15127
15128 Hitting @code{RET} enables the mode, @code{C-z} shows the mode
15129 documentation.")
15130 (license license:gpl3+)))
15131
15132 (define-public emacs-hy-mode
15133 (package
15134 (name "emacs-hy-mode")
15135 (version "1.0.4")
15136 (source
15137 (origin
15138 (method git-fetch)
15139 (uri (git-reference
15140 (url "https://github.com/hylang/hy-mode")
15141 (commit (string-append "v" version))))
15142 (file-name (git-file-name name version))
15143 (sha256
15144 (base32 "0gihxlmfminadaqdr8d2zccd7wwygl3m0gfzxsk5izi7f8hl4w7f"))))
15145 (build-system emacs-build-system)
15146 (propagated-inputs
15147 `(("emacs-dash" ,emacs-dash)
15148 ("emacs-s" ,emacs-s)))
15149 (home-page "https://github.com/hylang/hy-mode")
15150 (synopsis "Major mode for Hylang")
15151 (description "This package provides a major mode for Hylang.")
15152 (license license:gpl3+)))
15153
15154 (define-public emacs-web-beautify
15155 (package
15156 (name "emacs-web-beautify")
15157 (version "0.3.2")
15158 (source
15159 (origin
15160 (method git-fetch)
15161 (uri (git-reference
15162 (url "https://github.com/yasuyk/web-beautify")
15163 (commit version)))
15164 (file-name (git-file-name name version))
15165 (sha256
15166 (base32 "0vms7zz3ym53wf1zdrkbf2ky2xjr1v134ngsd0jr8azyi8siw84d"))))
15167 (build-system emacs-build-system)
15168 (home-page "https://github.com/yasuyk/web-beautify")
15169 (synopsis "Format HTML, CSS and JavaScript, JSON")
15170 (description "This package provides an Emacs functions to format HTML,
15171 CSS, JavaScript, JSON.")
15172 (license license:gpl3+)))
15173
15174 (define-public emacs-helm-shell-history
15175 (let ((commit "110d3c35c52fe4b89b29e79ea4c8626bce7266a1"))
15176 (package
15177 (name "emacs-helm-shell-history")
15178 (version (git-version "0.1" "1" commit))
15179 (source
15180 (origin
15181 (method git-fetch)
15182 (uri (git-reference
15183 (url "https://github.com/yuutayamada/helm-shell-history")
15184 (commit commit)))
15185 (file-name (git-file-name name version))
15186 (sha256
15187 (base32
15188 "18fkjcz69g4dyaxhf9j8svr5x6dhsdnglddwisis8hdn504scpfj"))))
15189 (build-system emacs-build-system)
15190 (arguments
15191 '(#:phases
15192 (modify-phases %standard-phases
15193 (add-before 'check 'patch-helm-shell-history-file
15194 (lambda _
15195 (let ((file "helm-shell-history.el"))
15196 (chmod file #o644)
15197 (emacs-substitute-sexps file
15198 ("(defvar helm-shell-history-file"
15199 `(expand-file-name "~/.bash_history"))))
15200 #t)))))
15201 (propagated-inputs
15202 `(("emacs-helm" ,emacs-helm)))
15203 (home-page "https://github.com/yuutayamada/helm-shell-history")
15204 (synopsis "Find shell history with Emacs Helm")
15205 (description "This package provides an Emacs Helm interface to search
15206 throw a shell history.")
15207 (license license:gpl3+))))
15208
15209 (define-public emacs-discover-my-major
15210 (package
15211 (name "emacs-discover-my-major")
15212 (version "1.0")
15213 (source
15214 (origin
15215 (method git-fetch)
15216 (uri (git-reference
15217 (url "https://framagit.org/steckerhalter/discover-my-major.git/")
15218 (commit version)))
15219 (file-name (git-file-name name version))
15220 (sha256
15221 (base32
15222 "1wlqyl03hhnflbyay3qlvdzqzvv5rbybcjpfddggda7ias9h0pr4"))))
15223 (build-system emacs-build-system)
15224 (propagated-inputs
15225 `(("emacs-makey" ,emacs-makey)))
15226 (home-page "https://framagit.org/steckerhalter/discover-my-major/")
15227 (synopsis "Discover key bindings for the current Emacs major mode")
15228 (description "This package discovers key bindings and
15229 their meaning for the current Emacs major-mode.")
15230 (license license:gpl3+)))
15231
15232 (define-public emacs-org-ref
15233 ;; No release since June 2017.
15234 (let ((commit "5bb9be2232db72b04754d7e4c02a3976ad422f6f")
15235 (revision "2"))
15236 (package
15237 (name "emacs-org-ref")
15238 (version (git-version "1.1.1" revision commit))
15239 (source
15240 (origin
15241 (method git-fetch)
15242 (uri (git-reference
15243 (url "https://github.com/jkitchin/org-ref")
15244 (commit commit)))
15245 (file-name (git-file-name name version))
15246 (sha256
15247 (base32 "15gcvbfj19kyv4nxa632b261dwhb26m99plq230qhv9ssfwfgxbx"))))
15248 (build-system emacs-build-system)
15249 (propagated-inputs
15250 `(("emacs-dash" ,emacs-dash)
15251 ("emacs-f" ,emacs-f)
15252 ("emacs-helm" ,emacs-helm)
15253 ("emacs-helm-bibtex" ,emacs-helm-bibtex)
15254 ("emacs-htmlize" ,emacs-htmlize)
15255 ("emacs-hydra" ,emacs-hydra)
15256 ("emacs-ivy" ,emacs-ivy)
15257 ("emacs-key-chord" ,emacs-key-chord)
15258 ("emacs-pdf-tools" ,emacs-pdf-tools)
15259 ("emacs-s" ,emacs-s)))
15260 (home-page "https://github.com/jkitchin/org-ref")
15261 (synopsis "Citations, cross-references and bibliographies in Org mode")
15262 (description
15263 "Org Ref is an Emacs library that provides rich support for citations,
15264 labels and cross-references in Org mode.
15265
15266 The basic idea of Org Ref is that it defines a convenient interface to insert
15267 citations from a reference database (e.g., from BibTeX files), and a set of
15268 functional Org links for citations, cross-references and labels that export
15269 properly to LaTeX, and that provide clickable functionality to the user. Org
15270 Ref interfaces with Helm BibTeX to facilitate citation entry, and it can also
15271 use RefTeX.
15272
15273 It also provides a fairly large number of utilities for finding bad citations,
15274 extracting BibTeX entries from citations in an Org file, and functions to
15275 create and modify BibTeX entries from a variety of sources, most notably from
15276 a DOI.
15277
15278 Org Ref is especially suitable for Org documents destined for LaTeX export and
15279 scientific publication. Org Ref is also useful for research documents and
15280 notes.")
15281 (license license:gpl3+))))
15282
15283 (define-public emacs-org-reveal
15284 (let ((commit "84039bb499290926511b04749882ecb5eda45a0c"))
15285 (package
15286 (name "emacs-org-reveal")
15287 (version (git-version "20200607" "1" commit))
15288 (source (origin
15289 (method git-fetch)
15290 (uri (git-reference
15291 (url "https://github.com/yjwen/org-reveal")
15292 (commit commit)))
15293 (file-name (git-file-name name version))
15294 (sha256
15295 (base32
15296 "1fx3xmnkpfljrdmy0dsyq79k93ky57gcqm1ad9qbzykk7qjvmmi8"))))
15297 (build-system emacs-build-system)
15298 (home-page "https://github.com/yjwen/org-reveal")
15299 (synopsis "Org and Reveal.js powered HTML presentation tool")
15300 (description "Org-Reveal is a @command{org-mode} extension that allows
15301 to create beautiful presentations (slides) with 3D effects from simple but
15302 powerful Org contents.")
15303 (license license:gpl3+))))
15304
15305 (define-public emacs-org-re-reveal
15306 (package
15307 (name "emacs-org-re-reveal")
15308 (version "3.0.2")
15309 (source (origin
15310 (method git-fetch)
15311 (uri (git-reference
15312 (url "https://gitlab.com/oer/org-re-reveal")
15313 (commit version)))
15314 (file-name (git-file-name name version))
15315 (sha256
15316 (base32
15317 "1jjawkqrhbm787jkzfnwz1ixjphm5mgrhdi3qhzl0jzbjib5a4bf"))))
15318 (build-system emacs-build-system)
15319 (propagated-inputs
15320 `(("emacs-htmlize" ,emacs-htmlize)
15321 ("emacs-org" ,emacs-org)))
15322 (home-page "https://gitlab.com/oer/org-re-reveal")
15323 (synopsis "Build HTML presentations with reveal.js from Org source files")
15324 (description "This project started as fork of org-reveal. It provides an
15325 export back-end for HTML presentations with reveal.js from Org mode source
15326 files.")
15327 (license license:gpl3+)))
15328
15329 (define-public emacs-add-hooks
15330 (package
15331 (name "emacs-add-hooks")
15332 (version "3.1.1")
15333 (source
15334 (origin
15335 (method git-fetch)
15336 (uri (git-reference
15337 (url "https://github.com/nickmccurdy/add-hooks")
15338 (commit version)))
15339 (file-name (git-file-name name version))
15340 (sha256
15341 (base32 "1jv9fpcsm572zg0j1mbpbfkqgdlqapy89xhhj19pswkhjns1y2wl"))))
15342 (build-system emacs-build-system)
15343 (home-page "https://github.com/nickmccurdy/add-hooks/")
15344 (synopsis "Emacs function for setting multiple hooks")
15345 (description "This package provides a @code{add-hooks} function tidies up
15346 duplicate hook and function names further into a single declarative call.")
15347 (license license:gpl3+)))
15348
15349 (define-public emacs-fancy-narrow
15350 (package
15351 (name "emacs-fancy-narrow")
15352 (version "0.9.5")
15353 (source
15354 (origin
15355 (method git-fetch)
15356 (uri (git-reference
15357 (url "https://github.com/Malabarba/fancy-narrow")
15358 (commit version)))
15359 (file-name (git-file-name name version))
15360 (sha256
15361 (base32 "0vcr1gnqawvc1yclqs23jvxm6bqix8kpflf1c7znb0wzxmz9kx7y"))))
15362 (build-system emacs-build-system)
15363 (home-page "https://github.com/Malabarba/fancy-narrow/releases")
15364 (synopsis "Imitate @code{narrow-to-region} with more eye candy")
15365 (description
15366 "Unlike @code{narrow-to-region}, which completely hides text outside
15367 the narrowed region, this package simply de-emphasizes the text, makes it
15368 read-only, and makes it unreachable. This leads to a much more natural
15369 feeling where the region stays static (instead of being brutally moved to a
15370 blank slate) and is clearly highlighted with respect to the rest of the
15371 buffer.")
15372 (license license:gpl2+)))
15373
15374 (define-public emacs-know-your-http-well
15375 (package
15376 (name "emacs-know-your-http-well")
15377 (version "0.5.0")
15378 (source
15379 (origin
15380 (method git-fetch)
15381 (uri (git-reference
15382 (url "https://github.com/for-GET/know-your-http-well")
15383 (commit (string-append "v" version))))
15384 (file-name (git-file-name name version))
15385 (sha256
15386 (base32 "1lppggnii2r9fvlhh33gbdrwb50za8lnalavlq9s86ngndn4n94k"))))
15387 (arguments
15388 `(#:phases
15389 (modify-phases %standard-phases
15390 (add-after 'unpack 'install-json-files
15391 (lambda* (#:key outputs #:allow-other-keys)
15392 (for-each (lambda (directory)
15393 (copy-recursively directory
15394 (string-append
15395 (assoc-ref outputs "out")
15396 directory)))
15397 '("js" "json"))))
15398 (add-after 'unpack 'chdir-elisp
15399 ;; Elisp directory is not in root of the source.
15400 (lambda _
15401 (chdir "emacs"))))))
15402 (build-system emacs-build-system)
15403 (home-page "https://github.com/for-GET/know-your-http-well")
15404 (synopsis "Meaning of HTTP headers codes")
15405 (description "Meaning of HTTP headers codes.")
15406 (license license:gpl3+)))
15407
15408 (define-public emacs-navi-mode
15409 (let ((commit "c1d38e8237f4e14af020a0b7d4f118ea198ab674"))
15410 (package
15411 (name "emacs-navi-mode")
15412 (version (git-version "2.0" "1" commit))
15413 (source
15414 (origin
15415 (method git-fetch)
15416 (uri (git-reference
15417 (url "https://github.com/alphapapa/navi")
15418 (commit commit)))
15419 (file-name (git-file-name name version))
15420 (sha256
15421 (base32
15422 "0jj5spk14hgb7zb1cd2n8whcw4k1kd5zb6llwj96v178yaws7l8k"))))
15423 (build-system emacs-build-system)
15424 (propagated-inputs
15425 `(("emacs-outshine" ,emacs-outshine)
15426 ("emacs-outorg" ,emacs-outorg)))
15427 (home-page "https://github.com/alphapapa/navi")
15428 (synopsis "Emacs major-mode for easy buffer-navigation")
15429 (description
15430 "This package provides an Emacs major-mode for easy buffer-navigation")
15431 (license license:gpl3+))))
15432
15433 (define-public emacs-download-region
15434 (let ((commit "eb9e557529a73b4cfc8281c70dd0d95db333fffa")
15435 (revision "1"))
15436 (package
15437 (name "emacs-download-region")
15438 (version (string-append "0.0.1" "-" revision "."
15439 (string-take commit 7)))
15440 (source
15441 (origin
15442 (method git-fetch)
15443 (uri (git-reference
15444 (url "https://github.com/zk-phi/download-region")
15445 (commit commit)))
15446 (file-name (git-file-name name version))
15447 (sha256
15448 (base32
15449 "0v52djg39b6k2snizd9x0qc009ws5y0ywqsfwhqgcbs5ymzh7dsc"))))
15450 (build-system emacs-build-system)
15451 (home-page "https://github.com/zk-phi/download-region")
15452 (synopsis "In buffer download manager for Emacs")
15453 (description "@code{download-region} provides in buffer
15454 downloading manager for Emacs.")
15455 (license license:gpl3+))))
15456
15457 (define-public emacs-helpful
15458 (package
15459 (name "emacs-helpful")
15460 (version "0.17")
15461 (source
15462 (origin
15463 (method git-fetch)
15464 (uri (git-reference
15465 (url "https://github.com/Wilfred/helpful")
15466 (commit version)))
15467 (file-name (git-file-name name version))
15468 (sha256
15469 (base32 "0v2y0x9pwi08y2mgjjiw5brfb5haa7pbmy4540glw904ffxxcblj"))))
15470 (build-system emacs-build-system)
15471 (propagated-inputs
15472 `(("emacs-elisp-refs" ,emacs-elisp-refs)
15473 ("emacs-dash" ,emacs-dash)
15474 ("emacs-s" ,emacs-s)
15475 ("emacs-f" ,emacs-f)
15476 ("emacs-shut-up" ,emacs-shut-up)))
15477 (native-inputs
15478 `(("emacs-ert-runner" ,emacs-ert-runner)
15479 ("emacs-undercover" ,emacs-undercover)))
15480 (arguments
15481 `(#:tests? #t
15482 #:test-command '("ert-runner")))
15483 (home-page "https://github.com/Wilfred/helpful")
15484 (synopsis "More contextual information in Emacs help")
15485 (description "@code{helpful} is an alternative to the built-in Emacs help
15486 that provides much more contextual information.
15487
15488 @itemize
15489 @item Show the source code for interactively defined functions (unlike the
15490 built-in Help).
15491 @item Fall back to the raw sexp if no source is available.
15492 @item Show where a function is being called.
15493 @item Docstrings will Highlight the summary (the first sentence), include
15494 cross-references, hide superfluous puncuation.
15495 @item Show you the properties that have been applied to the current
15496 symbol. This provides visibility of features like edebug or byte-code
15497 optimisation.
15498 @item Provide a separate @code{helpful-command} function to view interactive
15499 functions.
15500 @item Display any keybindings that apply to interactive functions.
15501 @item Trace, disassemble functions from inside Helpful. This is discoverable
15502 and doesn't require memorisation of commands.
15503 @end itemize\n")
15504 (license license:gpl3+)))
15505
15506 (define-public emacs-logview
15507 (package
15508 (name "emacs-logview")
15509 (version "0.9")
15510 (source
15511 (origin
15512 (method git-fetch)
15513 (uri (git-reference
15514 (url "https://github.com/doublep/logview")
15515 (commit version)))
15516 (file-name (git-file-name name version))
15517 (sha256
15518 (base32 "1qhzs75pxnaksbhczmpdcy2zmrqavlzkzss7ik5nv2wf9vs0sn02"))))
15519 (propagated-inputs
15520 `(("emacs-datetime" ,emacs-datetime)))
15521 (build-system emacs-build-system)
15522 (home-page "https://github.com/doublep/logview/")
15523 (synopsis "Emacs mode for viewing log files")
15524 (description "@code{logview} provides an Emacs mode to view log files.")
15525 (license license:gpl3+)))
15526
15527 (define-public emacs-suggest
15528 (package
15529 (name "emacs-suggest")
15530 (version "0.7")
15531 (home-page "https://github.com/Wilfred/suggest.el")
15532 (source
15533 (origin
15534 (method git-fetch)
15535 (uri (git-reference
15536 (url home-page)
15537 (commit version)))
15538 (file-name (git-file-name name version))
15539 (sha256
15540 (base32
15541 "01v8plska5d3g19sb1m4ph1i3ayprfzk8mi6mpabjy6zad397xjl"))))
15542 (build-system emacs-build-system)
15543 (propagated-inputs
15544 `(("emacs-loop" ,emacs-loop)
15545 ("emacs-dash" ,emacs-dash)
15546 ("emacs-s" ,emacs-s)
15547 ("emacs-f" ,emacs-f)
15548 ("emacs-spinner" ,emacs-spinner)
15549 ("emacs-shut-up" ,emacs-shut-up)))
15550 (native-inputs
15551 `(("emacs-ert-runner" ,emacs-ert-runner)
15552 ("emacs-undercover" ,emacs-undercover)))
15553 (arguments
15554 `(#:tests? #t
15555 #:test-command '("ert-runner")))
15556 (synopsis "Suggest Elisp functions that give the output requested")
15557 (description "Suggest.el will find functions that give the output
15558 requested. It's a great way of exploring list, string and arithmetic
15559 functions.")
15560 (license license:gpl3+)))
15561
15562 (define-public emacs-benchmark-init
15563 (package
15564 (name "emacs-benchmark-init")
15565 (version "1.0")
15566 (source
15567 (origin
15568 (method git-fetch)
15569 (uri (git-reference
15570 (url "https://github.com/dholm/benchmark-init-el")
15571 (commit version)))
15572 (file-name (git-file-name name version))
15573 (sha256
15574 (base32 "1kyn1izm5sbqbp9whnhk9dn3yc7zy8bz5san5w3ivi3rpx15fh94"))))
15575 (build-system emacs-build-system)
15576 (home-page "https://github.com/dholm/benchmark-init-el")
15577 (synopsis "Benchmark Emacs @code{require} and @code{load} calls")
15578 (description "@code{benchmark-init} provides a way to keep track of where
15579 time is being spent during Emacs startup in order to optimize startup time.")
15580 (license license:gpl3+)))
15581
15582 (define-public emacs-magit-gerrit
15583 (let ((version "0.3")
15584 (revision "1")
15585 (commit "ece6f369694aca17f3ac166ed2801b432acfe20d"))
15586 (package
15587 (name "emacs-magit-gerrit")
15588 (version (git-version version revision commit))
15589 (source (origin
15590 (method git-fetch)
15591 (uri (git-reference
15592 (url "https://github.com/terranpro/magit-gerrit")
15593 (commit commit)))
15594 (file-name (git-file-name name version))
15595 (sha256
15596 (base32
15597 "0mms0gxv9a3ns8lk5k2wjibm3088y1cmpr3axjdh6ppv7r5wdvii"))))
15598 (build-system emacs-build-system)
15599 (propagated-inputs
15600 `(("emacs-magit" ,emacs-magit)))
15601 (home-page "https://github.com/terranpro/magit-gerrit")
15602 (synopsis "Magit extension for Gerrit")
15603 (description "This Magit extension provides integration with Gerrit,
15604 which makes it possible to conduct Gerrit code reviews directly from within
15605 Emacs.")
15606 (license license:gpl3+))))
15607
15608 (define-public emacs-magit-org-todos-el
15609 (let ((commit "df206287737b9671f2e36ae7b1474ebbe9940d2a"))
15610 (package
15611 (name "emacs-magit-org-todos-el")
15612 (version (git-version "0.1.1" "1" commit))
15613 (source
15614 (origin
15615 (method git-fetch)
15616 (uri (git-reference
15617 (url "https://github.com/danielma/magit-org-todos.el")
15618 (commit commit)))
15619 (file-name (git-file-name name version))
15620 (sha256
15621 (base32
15622 "0kdp7k7jnnrkhsg0xh1c3h7iz0vgi120gf5xwl1hxy61avivnxrn"))))
15623 (propagated-inputs
15624 `(("magit" ,emacs-magit)))
15625 (build-system emacs-build-system)
15626 (home-page "https://github.com/danielma/magit-org-todos.el")
15627 (synopsis "Get todo.org into Emacs Magit status")
15628 (description "This package allows you to get @file{todo.org} into your
15629 magit status.
15630
15631 If you have a @file{todo.org} file with @code{TODO} items in the root of your
15632 repository, @code{magit-org-todos} will create a section in your Magit status
15633 buffer with each of your todos.")
15634 (license license:gpl3+))))
15635
15636 (define-public emacs-vcsh
15637 (package
15638 (name "emacs-vcsh")
15639 (version "0.4.4")
15640 (source
15641 (origin
15642 (method git-fetch)
15643 (uri (git-reference
15644 (url "https://gitlab.com/stepnem/vcsh-el.git")
15645 (commit version)))
15646 (file-name (git-file-name name version))
15647 (sha256
15648 (base32 "183pffdiqb7qqmjq31wxl3fpv8qswqgg99gb716rddiyk15ysri7"))))
15649 (build-system emacs-build-system)
15650 (home-page "https://gitlab.com/stepnem/vcsh-el")
15651 (synopsis "Emacs VCSH integration")
15652 (description
15653 "This library provides basic ``enter'' functionality and a few
15654 convenience commands to initialize a @acronym{VCSH, Version Control System for
15655 $HOME} repository and add files to it. It can be used in conjunction with
15656 Magit.")
15657 (license license:public-domain)))
15658
15659 (define-public emacs-f3
15660 (package
15661 (name "emacs-f3")
15662 (version "0.1")
15663 (source
15664 (origin
15665 (method git-fetch)
15666 (uri (git-reference
15667 (url "https://github.com/cosmicexplorer/f3")
15668 (commit version)))
15669 (file-name (git-file-name name version))
15670 (sha256
15671 (base32 "1qg48zbjdjqimw4516ymrsilz41zkib9321q0caf9474s9xyp2bi"))))
15672 (build-system emacs-build-system)
15673 (propagated-inputs
15674 `(("emacs-helm" ,emacs-helm)))
15675 (home-page "https://github.com/cosmicexplorer/f3")
15676 (synopsis "Fantastic File Finder for Emacs")
15677 (description
15678 "The Fantastic File Finder for Emacs. Find files fast, using helm.")
15679 (license license:gpl3+)))
15680
15681 (define-public emacs-lice-el
15682 (let ((commit "4339929927c62bd636f89bb39ea999d18d269250"))
15683 (package
15684 (name "emacs-lice-el")
15685 (version (git-version "0.2" "1" commit))
15686 (source (origin
15687 (method git-fetch)
15688 (uri (git-reference
15689 (url "https://github.com/buzztaiki/lice-el")
15690 (commit commit)))
15691 (file-name (git-file-name name version))
15692 (sha256
15693 (base32
15694 "0879z761b7gajkhq176ps745xpdrivch349crransv8fnsc759yb"))))
15695 (build-system emacs-build-system)
15696 (home-page "https://github.com/buzztaiki/lice-el")
15697 (synopsis "License and header template for Emacs")
15698 (description "@code{lice.el} provides following features:
15699
15700 @itemize
15701 @item License template management.
15702 @item File header insertion.
15703 @end itemize\n")
15704 (license license:gpl3+))))
15705
15706 (define-public emacs-academic-phrases
15707 (let ((commit "0823ed8c24b26c32f909b896a469833ec4d7b656"))
15708 (package
15709 (name "emacs-academic-phrases")
15710 (version (git-version "0.1" "1" commit))
15711 (source
15712 (origin
15713 (method git-fetch)
15714 (uri (git-reference
15715 (url "https://github.com/nashamri/academic-phrases")
15716 (commit commit)))
15717 (file-name (git-file-name name version))
15718 (sha256
15719 (base32
15720 "0qfzsq8jh05w4zkr0cvq3i1hdn97bq344vcqjg46sib26x3wpz6r"))))
15721 (build-system emacs-build-system)
15722 (propagated-inputs
15723 `(("emacs-dash" ,emacs-dash)
15724 ("emacs-s" ,emacs-s)
15725 ("emacs-ht" ,emacs-ht)))
15726 (home-page "https://github.com/nashamri/academic-phrases")
15727 (synopsis "Bypass that mental block when writing your papers")
15728 (description
15729 "When writing your academic paper, you might get stuck trying to find
15730 the right phrase that captures your intention. This package tries to
15731 alleviate that problem by presenting you with a list of phrases organized by
15732 the topic or by the paper section that you are writing. This package has
15733 around 600 phrases so far.
15734
15735 Using this package is easy, just call @code{academic-phrases} to get a list of
15736 phrases organized by topic, or call @code{academic-phrases-by-section} to
15737 browse the phrases by the paper section and fill-in the blanks if required.")
15738 (license license:gpl3+))))
15739
15740 (define-public emacs-auto-yasnippet
15741 (let ((commit "624b0d9711222073a2a3f2186e2605eb99fc83c9")
15742 (revision "2"))
15743 (package
15744 (name "emacs-auto-yasnippet")
15745 (version (git-version "0.3.0" revision commit))
15746 (source (origin
15747 (method git-fetch)
15748 (uri (git-reference
15749 (url "https://github.com/abo-abo/auto-yasnippet")
15750 (commit commit)))
15751 (file-name (git-file-name name version))
15752 (sha256
15753 (base32
15754 "15g8wi067f345xhpi0c12w0h04p4f4lpccwmdjdfj8hzfl4gyxy9"))))
15755 (build-system emacs-build-system)
15756 (arguments
15757 '(#:tests? #t
15758 #:test-command '("make" "test")))
15759 (propagated-inputs
15760 `(("emacs-yasnippet" ,emacs-yasnippet)))
15761 (home-page "https://github.com/abo-abo/auto-yasnippet/")
15762 (synopsis "Quickly create disposable yasnippets")
15763 (description "This package provides a hybrid of keyboard macros and
15764 yasnippet. You create the snippet on the go, usually to be used just in the
15765 one place. It's fast, because you're not leaving the current buffer, and all
15766 you do is enter the code you'd enter anyway, just placing ~ where you'd like
15767 yasnippet fields and mirrors to be.")
15768 (license license:gpl3+))))
15769
15770 (define-public emacs-highlight-numbers
15771 (package
15772 (name "emacs-highlight-numbers")
15773 (version "0.2.3")
15774 (source
15775 (origin
15776 (method git-fetch)
15777 (uri (git-reference
15778 (url "https://github.com/Fanael/highlight-numbers")
15779 (commit version)))
15780 (file-name (git-file-name name version))
15781 (sha256
15782 (base32 "1r07mpyr7rhd7bkg778hx6vbhb4n9ixgzkpszhgks7ri6ia38pj8"))))
15783 (build-system emacs-build-system)
15784 (propagated-inputs
15785 `(("emacs-parent-mode" ,emacs-parent-mode)))
15786 (home-page "https://github.com/Fanael/highlight-numbers")
15787 (synopsis "Highlight numbers in source code")
15788 (description "@code{highlight-numbers-mode} provides a minor mode for
15789 syntax highlighting of numeric literals in source code.
15790
15791 It s customizable: it's easy to add or redefine what exactly consitutes a
15792 \"number\" in given major mode. See @code{highlight-numbers-modelist}.")
15793 (license license:gpl3+)))
15794
15795 (define-public emacs-darkroom
15796 (package
15797 (name "emacs-darkroom")
15798 (version "0.3")
15799 (source
15800 (origin
15801 (method url-fetch)
15802 (uri (string-append "https://elpa.gnu.org/packages/"
15803 "darkroom-" version ".el"))
15804 (sha256
15805 (base32 "0l1xg5kqmjw22k78qnsln0ifx2dx74xxqj0qp8xxcpqvzzx0xh86"))))
15806 (build-system emacs-build-system)
15807 (home-page "https://elpa.gnu.org/packages/darkroom.html")
15808 (synopsis "Remove visual distractions and focus on writing")
15809 (description "@code{darkroom-mode} makes visual distractions disappear.
15810 The mode-line is temporarily elided, text is enlarged and margins are adjusted
15811 so that it's centered on the window.
15812
15813 @code{darkroom-tentative-mode} is similar, but it doesn't immediately turn-on
15814 @code{darkroom-mode}, unless the current buffer lives in the sole window of
15815 the Emacs frame (i.e. all other windows are deleted). Whenever the frame is
15816 split to display more windows and more buffers, the buffer exits
15817 @code{darkroom-mode}. Whenever they are deleted, the buffer re-enters
15818 @code{darkroom-mode}.")
15819 (license license:gpl3+)))
15820
15821 (define-public emacs-rsw-elisp
15822 (package
15823 (name "emacs-rsw-elisp")
15824 (version "1.0.5")
15825 (source (origin
15826 (method git-fetch)
15827 (uri (git-reference
15828 (url "https://github.com/rswgnu/rsw-elisp")
15829 (commit version)))
15830 (file-name (git-file-name name version))
15831 (sha256
15832 (base32
15833 "0dfq8myg0r91900bk1s70amsmm4mjk2qsg12v5pk7lla5d2vnyaf"))))
15834 (build-system emacs-build-system)
15835 (home-page "https://github.com/rswgnu/rsw-elisp")
15836 (synopsis "Improved expressions that interactively evaluate Emacs Lisp")
15837 (description "This package improves and replaces the GNU Emacs commands
15838 that interactively evaluate Emacs Lisp expressions. The new commands replace
15839 standard key bindings and are all prefixed with @code{rsw-elisp-}. They work
15840 the same way as the old commands when called non-interactively; only the
15841 interactive behavior should be different.")
15842 (license license:gpl3+)))
15843
15844 (define-public emacs-default-text-scale
15845 (let ((commit "968e985e219235f3e744d6d967e592acbaf6e0a8")
15846 (revision "1"))
15847 (package
15848 (name "emacs-default-text-scale")
15849 (version (string-append "0.1" "-" revision "."
15850 (string-take commit 7)))
15851 (source (origin
15852 (method git-fetch)
15853 (uri (git-reference
15854 (url "https://github.com/purcell/default-text-scale")
15855 (commit commit)))
15856 (file-name (git-file-name name version))
15857 (sha256
15858 (base32
15859 "0zds01c3q5yny6ab1fxfkzzgn1kgl3q23lxxap905f4qd70v922h"))))
15860 (build-system emacs-build-system)
15861 (home-page "https://github.com/purcell/default-text-scale")
15862 (synopsis "Adjust the font size in all Emacs frames")
15863 (description "This package provides commands for increasing or
15864 decreasing the default font size in all GUI Emacs frames.")
15865 (license license:gpl3+))))
15866
15867 (define-public emacs-mixed-pitch
15868 (package
15869 (name "emacs-mixed-pitch")
15870 (version "1.0.1")
15871 (source
15872 (origin
15873 (method git-fetch)
15874 (uri (git-reference
15875 (url "https://gitlab.com/jabranham/mixed-pitch.git")
15876 (commit version)))
15877 (file-name (git-file-name name version))
15878 (sha256
15879 (base32 "1458sy5b6bis1i0k23jdqk6hfqg0ghk637r3ajql2g19ym48rf58"))))
15880 (build-system emacs-build-system)
15881 (home-page "https://gitlab.com/jabranham/mixed-pitch")
15882 (synopsis "Mix variable- and fixed-pitch fonts in the same Emacs buffer")
15883 (description
15884 "@code{mixed-pitch-mode} is a minor mode that enables mixing
15885 variable-pitch and fixed-pitch fonts in the same buffer. The list
15886 @code{mixed-pitch-fixed-pitch-faces} defines the faces that are kept
15887 fixed-pitch,everything else becomes variable-pitch.")
15888 (license license:gpl3+)))
15889
15890 (define-public emacs-visual-regexp
15891 (package
15892 (name "emacs-visual-regexp")
15893 (version "1.1.1")
15894 (source
15895 (origin
15896 (method git-fetch)
15897 (uri (git-reference
15898 (url "https://github.com/benma/visual-regexp.el")
15899 (commit (string-append "v" version))))
15900 (file-name (git-file-name name version))
15901 (sha256
15902 (base32 "12zpmzwyp85dzsjpxd3279kpfi9yz3jwc1k9fnb3xv3pjiil5svg"))))
15903 (build-system emacs-build-system)
15904 (home-page "https://github.com/benma/visual-regexp.el/")
15905 (synopsis "Regexp command with interactive visual feedback")
15906 (description "This package provides an Emacs regexp command with
15907 interactive visual feedback.")
15908 (license license:gpl3+)))
15909
15910 (define-public emacs-faceup
15911 (let ((commit "6c92dad56a133e14e7b27831e1bcf9b3a71ff154")
15912 (revision "1"))
15913 (package
15914 (name "emacs-faceup")
15915 (version (string-append "0.0.1" "-" revision "."
15916 (string-take commit 7)))
15917 (source
15918 (origin
15919 (method git-fetch)
15920 (uri (git-reference
15921 (url "https://github.com/Lindydancer/faceup")
15922 (commit commit)))
15923 (file-name (git-file-name name version))
15924 (sha256
15925 (base32
15926 "1yzmy7flrhrh0i10bdszx8idx6r8h6czm4vm4q0z6fp5fw94zwrx"))))
15927 (build-system emacs-build-system)
15928 (home-page "https://github.com/Lindydancer/faceup")
15929 (synopsis "Markup language for faces and font-lock regression testing")
15930 (description "Emacs is capable of highlighting buffers based on
15931 language-specific @code{font-lock} rules. This package makes it possible to
15932 perform regression test for packages that provide font-lock rules.")
15933 (license license:gpl3+))))
15934
15935 (define-public emacs-racket-mode
15936 (let ((commit "5eb31a284c8db5102bc71b1e2c6ce3a095ae085b")
15937 (revision "6"))
15938 (package
15939 (name "emacs-racket-mode")
15940 (version (git-version "0.0.2" revision commit))
15941 (source
15942 (origin
15943 (method git-fetch)
15944 (uri (git-reference
15945 (url "https://github.com/greghendershott/racket-mode")
15946 (commit commit)))
15947 (file-name (git-file-name name version))
15948 (sha256
15949 (base32
15950 "081h6rd0gv88m0wvnmghi242kl39x1sz34qr4cq9vz04iwvnmgrm"))))
15951 (build-system emacs-build-system)
15952 (arguments
15953 `(#:include '("\\.el$" "\\.rkt$")))
15954 (propagated-inputs
15955 `(("emacs-faceup" ,emacs-faceup)
15956 ("emacs-pos-tip" ,emacs-pos-tip)
15957 ("emacs-s" ,emacs-s)))
15958 (home-page "https://www.racket-mode.com/")
15959 (synopsis "Major mode for the Racket language")
15960 (description "@code{racket-mode} provides:
15961
15962 @itemize
15963 @item Focus on Racket (not various Schemes).
15964 @item Follow DrRacket concepts where applicable.
15965 @item Thorough font-lock and indent.
15966 @end itemize\n")
15967 (license license:gpl3+))))
15968
15969 (define-public emacs-grep-context
15970 (let ((commit "5a4e3efdf775755c1bbefcfe4b461c1166d81d7d")
15971 (revision "1"))
15972 (package
15973 (name "emacs-grep-context")
15974 (version (git-version "0.1.0" revision commit))
15975 (source
15976 (origin
15977 (method git-fetch)
15978 (uri (git-reference
15979 (url "https://github.com/mkcms/grep-context")
15980 (commit commit)))
15981 (file-name (git-file-name name version))
15982 (sha256
15983 (base32
15984 "00q7l4a3c0ay6g5ff9bfa2qgkiswsyh4s6pqnpg0zpzhvv5710f5"))))
15985 (build-system emacs-build-system)
15986 (propagated-inputs
15987 `(("emacs-dash" ,emacs-dash)))
15988 (home-page "https://github.com/mkcms/grep-context")
15989 (synopsis "Increase context in compilation and grep buffers")
15990 (description
15991 "This package provides an Emacs package for more context in
15992 compilation/grep buffers. Works with @code{wgrep}, @code{ack}, @code{ag},
15993 @code{ivy}.")
15994 (license license:gpl3+))))
15995
15996 (define-public emacs-helm-firefox
15997 (let ((commit "0ad34b7b5abc485a86cae6920c14de861cbeb085")
15998 (revision "1"))
15999 (package
16000 (name "emacs-helm-firefox")
16001 (version (string-append "0.0.1" "-" revision "."
16002 (string-take commit 7)))
16003 (source
16004 (origin
16005 (method git-fetch)
16006 (uri (git-reference
16007 (url "https://github.com/emacs-helm/helm-firefox")
16008 (commit commit)))
16009 (file-name (git-file-name name version))
16010 (sha256
16011 (base32
16012 "08mjsi2f9s29fkk35cj1rrparjnkm836qmbfdwdz7y51f9varjbs"))))
16013 (propagated-inputs
16014 `(("emacs-helm" ,emacs-helm)))
16015 (build-system emacs-build-system)
16016 (home-page "https://github.com/emacs-helm/helm-firefox")
16017 (synopsis "Display firefox bookmarks with Emacs Helm interface")
16018 (description "Display firefox bookmarks with Emacs Helm interface")
16019 (license license:gpl3+))))
16020
16021 (define-public emacs-interactive-align
16022 (package
16023 (name "emacs-interactive-align")
16024 (version "0.4.2")
16025 (source
16026 (origin
16027 (method git-fetch)
16028 (uri (git-reference
16029 (url "https://github.com/mkcms/interactive-align")
16030 (commit (string-append "v" version))))
16031 (file-name (git-file-name name version))
16032 (sha256
16033 (base32
16034 "0bh03w91i622hbar5dcq631ndxx1y8kd3h655pgw1g0lqkv1mlnc"))))
16035 (build-system emacs-build-system)
16036 (home-page "https://github.com/mkcms/interactive-align/")
16037 (synopsis "Interactive align-regexp command in Emacs")
16038 (description "Interactive align-regexp command in Emacs")
16039 (license license:gpl3+)))
16040
16041 (define-public emacs-shift-number
16042 (package
16043 (name "emacs-shift-number")
16044 (version "0.1")
16045 (source
16046 (origin
16047 (method git-fetch)
16048 (uri (git-reference
16049 (url "https://github.com/alezost/shift-number.el")
16050 (commit (string-append "v" version))))
16051 (file-name (git-file-name name version))
16052 (sha256
16053 (base32
16054 "0zlwmzsxkv4mkggylxfx2fkrwgz7dz3zbg2gkn2rxcpy2k2gla64"))))
16055 (build-system emacs-build-system)
16056 (home-page "https://github.com/alezost/shift-number.el")
16057 (synopsis "Increase or decrease the number at point")
16058 (description "@code{emacs-shift-number} provides commands
16059 @code{shift-number-up} to increase and @code{shift-number-down} to
16060 decrease the number at point.")
16061 (license license:gpl3+)))
16062
16063 (define-public emacs-highlight-defined
16064 (package
16065 (name "emacs-highlight-defined")
16066 (version "0.1.5")
16067 (source
16068 (origin
16069 (method git-fetch)
16070 (uri (git-reference
16071 (url "https://github.com/Fanael/highlight-defined")
16072 (commit version)))
16073 (file-name (git-file-name name version))
16074 (sha256
16075 (base32 "08czwa165rnd5z0dwwdddn7zi5w63sdk31l47bj0598kbly01n7r"))))
16076 (build-system emacs-build-system)
16077 (home-page "https://github.com/Fanael/highlight-defined")
16078 (synopsis "Syntax highlighting of known Elisp symbols")
16079 (description "Minor mode providing syntax highlighting of known Emacs Lisp
16080 symbols. Currently the code distinguishes Lisp functions, built-in functions,
16081 macros, faces and variables. To enable call @code{highlight-defined-mode}. ")
16082 (license license:gpl3+)))
16083
16084 (define-public emacs-parinfer-mode
16085 (package
16086 (name "emacs-parinfer-mode")
16087 (version "0.4.10")
16088 (source
16089 (origin
16090 (method git-fetch)
16091 (uri (git-reference
16092 (url "https://github.com/DogLooksGood/parinfer-mode")
16093 (commit (string-append "v" version))))
16094 (file-name (git-file-name name version))
16095 (sha256
16096 (base32 "0v97ncb0w1slb0x8861l3yr1kqz6fgw1fwl1z9lz6hh8p2ih34sk"))))
16097 (propagated-inputs
16098 `(("emacs-dash" ,emacs-dash)
16099 ("emacs-rainbow-delimiters" ,emacs-rainbow-delimiters)
16100 ("emacs-company" ,emacs-company)))
16101 (build-system emacs-build-system)
16102 (home-page "https://github.com/DogLooksGood/parinfer-mode/")
16103 (synopsis "Lisp structure editing mode")
16104 (description "@code{parinfer-mode} is a proof-of-concept editor
16105 mode for Lisp programming languages. It will infer some changes to
16106 keep Parens and Indentation inline with one another.")
16107 (license license:gpl3+)))
16108
16109 (define-public emacs-helm-eww
16110 (package
16111 (name "emacs-helm-eww")
16112 (version "1.2")
16113 (source (origin
16114 (method git-fetch)
16115 (uri (git-reference
16116 (url "https://github.com/emacs-helm/helm-eww")
16117 (commit version)))
16118 (file-name (git-file-name name version))
16119 (sha256
16120 (base32
16121 "0hpq1h0p69c9k6hkd2mjpprx213sc5475q7pr2zpmwrjdzgcv70z"))))
16122 (propagated-inputs
16123 `(("emacs-helm" ,emacs-helm)))
16124 (build-system emacs-build-system)
16125 (home-page "https://github.com/emacs-helm/helm-eww/")
16126 (synopsis "Helm interface to EWW")
16127 (description "This package provides a Helm interface for EWW buffers,
16128 bookmarks and history.")
16129 (license license:gpl3+)))
16130
16131 (define-public emacs-stumpwm-mode
16132 (let ((commit "920f8fc1488f7953f205e1dda4c2ecbbbda56d6")
16133 (revision "3"))
16134 (package
16135 (name "emacs-stumpwm-mode")
16136 (version (git-version "0.0.1" revision commit))
16137 (source (origin
16138 (method git-fetch)
16139 (uri (git-reference
16140 (url "https://github.com/stumpwm/stumpwm-contrib")
16141 (commit commit)))
16142 (file-name (git-file-name name version))
16143 (sha256
16144 (base32
16145 "0giac390bq95ag41xkxqp8jjrhfx1wpgglz7jg5rkm0wjhcwmyml"))))
16146 (build-system emacs-build-system)
16147 (arguments
16148 `(#:phases
16149 (modify-phases %standard-phases
16150 (add-after 'unpack 'chdir-elisp
16151 ;; Elisp directory is not in root of the source.
16152 (lambda _
16153 (chdir "util/swm-emacs"))))))
16154 (home-page "https://github.com/stumpwm/stumpwm-contrib")
16155 (synopsis "Emacs minor-mode for Stumpwm")
16156 (description "Emacs minor-mode for Stumpwm")
16157 (license license:gpl3+))))
16158
16159 (define-public emacs-irfc
16160 (package
16161 (name "emacs-irfc")
16162 (version "20130824.507-1")
16163 (source
16164 (origin
16165 (method url-fetch)
16166 (uri "https://www.emacswiki.org/emacs/download/irfc.el")
16167 (file-name (string-append "irfc-" version ".el"))
16168 (sha256
16169 (base32
16170 "0rbfrza56kvspvgrwg0b5bj30d0qncqdsmfxn3y5caq4ifcj77hv"))))
16171 (build-system emacs-build-system)
16172 (home-page "https://www.emacswiki.org/emacs/download/irfc.el")
16173 (synopsis "Interface for IETF RFC document")
16174 (description
16175 "This package provides an Emacs interface for IETF RFC document.")
16176 (license license:gpl3+)))
16177
16178 (define-public emacs-ido-vertical-mode
16179 (package
16180 (name "emacs-ido-vertical-mode")
16181 (version "0.1.6")
16182 (source
16183 (origin
16184 (method git-fetch)
16185 (uri (git-reference
16186 (url "https://github.com/creichert/ido-vertical-mode.el")
16187 (commit (string-append "v" version))))
16188 (file-name (git-file-name name version))
16189 (sha256
16190 (base32 "1lv82q639xjnmvby56nwqn23ijh6f163bk675s33dkingm8csj8k"))))
16191 (build-system emacs-build-system)
16192 (home-page "https://github.com/creichert/ido-vertical-mode.el")
16193 (synopsis "Makes ido-mode display vertically")
16194 (description "Makes ido-mode display prospects vertically.")
16195 (license license:gpl3+)))
16196
16197 (define-public emacs-wordgen
16198 (package
16199 (name "emacs-wordgen")
16200 (version "0.1.4")
16201 (source
16202 (origin
16203 (method git-fetch)
16204 (uri (git-reference
16205 (url "https://github.com/Fanael/wordgen.el")
16206 (commit version)))
16207 (file-name (git-file-name name version))
16208 (sha256
16209 (base32 "06vbc9ycz1nbjwjkg99y3lj6jwb6lnwnmkqf09yr00jjrrfhfash"))))
16210 (build-system emacs-build-system)
16211 (home-page "https://github.com/Fanael/wordgen.el")
16212 (synopsis "Random word generator")
16213 (description "This package provides functions to generate random words
16214 using user-provided rules.")
16215 (license license:gpl3+)))
16216
16217 (define-public emacs-on-screen
16218 (package
16219 (name "emacs-on-screen")
16220 (version "1.3.3")
16221 (source
16222 (origin
16223 (method url-fetch)
16224 (uri (string-append
16225 "https://elpa.gnu.org/packages/on-screen-" version ".el"))
16226 (file-name (string-append name "-" version ".el"))
16227 (sha256
16228 (base32 "0ga4hw23ki583li2z2hr7l6hk1nc2kdg4afndg06cm9jn158wza7"))))
16229 (build-system emacs-build-system)
16230 (home-page "https://github.com/michael-heerdegen/on-screen.el")
16231 (synopsis "Guide your eyes while scrolling")
16232 (description
16233 "Scrolling can be distracting because your eyes may lose
16234 orientation. This library implements a minor mode that highlights
16235 the previously visible buffer part after each scroll.")
16236 (license license:gpl3+)))
16237
16238 (define-public emacs-highlight-escape-sequences
16239 ;; No release upstream. Extract version from main file.
16240 (let ((commit "08d846a7aa748209d65fecead2b6a766c3e5cb41")
16241 (revision "0"))
16242 (package
16243 (name "emacs-highlight-escape-sequences")
16244 (version (git-version "0.4" revision commit))
16245 (source
16246 (origin
16247 (method git-fetch)
16248 (uri (git-reference
16249 (url "https://github.com/dgutov/highlight-escape-sequences")
16250 (commit commit)))
16251 (file-name (git-file-name name version))
16252 (sha256
16253 (base32 "05mc3w1f8ykf80914a1yddw6j8cmh0h57llm07xh89s53821v2is"))))
16254 (build-system emacs-build-system)
16255 (home-page "https://github.com/dgutov/highlight-escape-sequences")
16256 (synopsis "Highlight escape sequences in Emacs")
16257 (description "@code{highlight-escape-sequences} provides an
16258 Emacs minor mode to escape sequences in code.")
16259 (license license:gpl3+))))
16260
16261 (define-public emacs-dashboard
16262 (package
16263 (name "emacs-dashboard")
16264 (version "1.6.0")
16265 (source
16266 (origin
16267 (method git-fetch)
16268 (uri (git-reference
16269 (url "https://github.com/rakanalh/emacs-dashboard")
16270 (commit version)))
16271 (file-name (git-file-name name version))
16272 (sha256
16273 (base32 "1g6g8vad1kdmv1zxp95a8sn70idl26isqjb3xk1r95pqnx1cn591"))))
16274 (build-system emacs-build-system)
16275 (propagated-inputs
16276 `(("emacs-page-break-lines" ,emacs-page-break-lines)))
16277 (arguments
16278 '(#:include '("\\.el$" "\\.txt$" "\\.png$")
16279 #:phases
16280 (modify-phases %standard-phases
16281 (add-after 'unpack 'patch-dashboard-widgets
16282 ;; This phase fixes compilation error.
16283 (lambda _
16284 (chmod "dashboard-widgets.el" #o666)
16285 (emacs-substitute-variables "dashboard-widgets.el"
16286 ("dashboard-init-info"
16287 '(format "Loaded in %s" (emacs-init-time))))
16288 #t)))))
16289 (home-page "https://github.com/rakanalh/emacs-dashboard")
16290 (synopsis "Startup screen extracted from Spacemacs")
16291 (description "This package provides an extensible Emacs dashboard, with
16292 sections for bookmarks, projectil projects, org-agenda and more. ")
16293 (license license:gpl3+)))
16294
16295 (define-public emacs-slime-company
16296 (package
16297 (name "emacs-slime-company")
16298 (version "1.1")
16299 (source
16300 (origin
16301 (method git-fetch)
16302 (uri (git-reference
16303 (url "https://github.com/anwyn/slime-company")
16304 (commit (string-append "v" version))))
16305 (file-name (git-file-name name version))
16306 (sha256
16307 (base32 "1hl1hqkc1pxga9k2k8k15d7dip7sfsmwf4wm4sh346m6nj606q8g"))))
16308 (build-system emacs-build-system)
16309 (propagated-inputs
16310 `(("emacs-slime" ,emacs-slime)
16311 ("emacs-company" ,emacs-company)))
16312 (home-page "https://company-mode.github.io")
16313 (synopsis "SLIME completion backend for @code{company-mode}")
16314 (description
16315 "This is a backend implementation for the completion package
16316 @code{company-mode} which supports the normal and the fuzzy completion
16317 modes of SLIME.")
16318 (license license:gpl3+)))
16319
16320 (define-public emacs-sml-mode
16321 (package
16322 (name "emacs-sml-mode")
16323 (version "6.10")
16324 (source
16325 (origin
16326 (method url-fetch)
16327 (uri (string-append "https://elpa.gnu.org/packages/sml-mode-"
16328 version ".el"))
16329 (sha256
16330 (base32 "01yf0s474r9xhj6nbs14ljn9ccxb5yy758i17c8nmgmqvm8fx7sb"))))
16331 (build-system emacs-build-system)
16332 (home-page "https://elpa.gnu.org/packages/sml-mode.html")
16333 (synopsis "Major mode for editing (Standard) ML")
16334 (description "SML-MODE is a major Emacs mode for editing Standard ML.
16335 It provides syntax highlighting and automatic indentation and
16336 comes with sml-proc which allows interaction with an inferior SML
16337 interactive loop.")
16338 (license license:gpl3+)))
16339
16340 (define-public emacs-eros
16341 (let ((commit "dd8910279226259e100dab798b073a52f9b4233a")
16342 (revision "2"))
16343 (package
16344 (name "emacs-eros")
16345 (version (git-version "0.0.1" revision commit))
16346 (source
16347 (origin
16348 (method git-fetch)
16349 (uri (git-reference
16350 (url "https://github.com/xiongtx/eros")
16351 (commit commit)))
16352 (file-name (git-file-name name version))
16353 (sha256
16354 (base32
16355 "08chj3a0lw4ygi2sv7wj0i6ihfbi8jhylr8p92inif8b88r6wg3k"))))
16356 (build-system emacs-build-system)
16357 (home-page "https://github.com/xiongtx/eros")
16358 (synopsis "Evaluation result overlays")
16359 (description "@code{eros} provides evaluation result overlays.")
16360 (license license:gpl3+))))
16361
16362 (define-public emacs-stickyfunc-enhance
16363 (let ((commit "13bdba51fcd83ccbc3267959d23afc94d458dcb0")
16364 (revision "1"))
16365 (package
16366 (name "emacs-stickyfunc-enhance")
16367 (version "0.1")
16368 (source
16369 (origin
16370 (method git-fetch)
16371 (uri (git-reference
16372 (url "https://github.com/tuhdo/semantic-stickyfunc-enhance")
16373 (commit commit)))
16374 (file-name (git-file-name name version))
16375 (sha256
16376 (base32
16377 "16dxjsr5nj20blww4xpd4jzgjprzzh1nwvb810ggdmp9paf4iy0g"))))
16378 (build-system emacs-build-system)
16379 (home-page "https://github.com/tuhdo/semantic-stickyfunc-enhance")
16380 (synopsis "Enhancement to stock @code{semantic-stickyfunc-mode}")
16381 (description
16382 "@code{semantic-stickyfunc-mode} shows the function point is currently
16383 in at the first line of the current buffer. This is useful when you have a
16384 very long function that spreads more than a screen, and you don't have to
16385 scroll up to read the function name and then scroll down to original position.")
16386 (license license:gpl3+))))
16387
16388 (define-public emacs-git-auto-commit-mode
16389 (package
16390 (name "emacs-git-auto-commit-mode")
16391 (version "4.5.0")
16392 (source
16393 (origin
16394 (method git-fetch)
16395 (uri (git-reference
16396 (url "https://github.com/ryuslash/git-auto-commit-mode")
16397 (commit version)))
16398 (file-name (git-file-name name version))
16399 (sha256
16400 (base32 "1w3v9pmlmdxl4pglsb6j0igp13lbzg5bhbr1rv2vll93m6zxmyma"))))
16401 (build-system emacs-build-system)
16402 (home-page "https://github.com/ryuslash/git-auto-commit-mode")
16403 (synopsis "Emacs Minor mode to automatically commit and push")
16404 (description "@code{git-auto-commit-mode} is an Emacs minor mode that
16405 tries to commit changes to a file after every save.
16406
16407 When @code{gac-automatically-push-p} is non-nil, it also tries to push to
16408 the current upstream.")
16409 (license license:gpl3+)))
16410
16411 (define-public emacs-scroll-on-drag
16412 (let ((commit "888abd04c34753b1fc4b2fe541bc004ebec5c996")
16413 (revision "1"))
16414 (package
16415 (name "emacs-scroll-on-drag")
16416 (version (git-version "0.1" revision commit))
16417 (source
16418 (origin
16419 (method git-fetch)
16420 (uri (git-reference
16421 (url "https://gitlab.com/ideasman42/emacs-scroll-on-drag.git")
16422 (commit commit)))
16423 (file-name (git-file-name name version))
16424 (sha256
16425 (base32
16426 "1si4hdqa3jw1inbyh3wb3i5i9grbms1nwky3vyk9zg7iznwm8a9p"))))
16427 (build-system emacs-build-system)
16428 (home-page "https://gitlab.com/ideasman42/emacs-scroll-on-drag")
16429 (synopsis "Interactive scrolling")
16430 (description "This package permits scrolling at increasing speeds based
16431 on drag distance.")
16432 (license license:gpl3+))))
16433
16434 (define-public emacs-company-restclient
16435 (package
16436 (name "emacs-company-restclient")
16437 (version "0.3.0")
16438 (source
16439 (origin
16440 (method git-fetch)
16441 (uri (git-reference
16442 (url "https://github.com/iquiw/company-restclient")
16443 (commit (string-append "v" version))))
16444 (file-name (git-file-name name version))
16445 (sha256
16446 (base32 "0yp0hlrgcr6yy1xkjvfckys2k24x9xg7y6336ma61bdwn5lpv0x0"))))
16447 (build-system emacs-build-system)
16448 (propagated-inputs
16449 `(("emacs-company" ,emacs-company)
16450 ("emacs-know-your-http-well" ,emacs-know-your-http-well)
16451 ("emacs-restclient" ,emacs-restclient)))
16452 (home-page "https://github.com/iquiw/company-restclient")
16453 (synopsis "Company-mode completion back-end for restclient-mode")
16454 (description "@code{company-mode} back-end for
16455 @code{restclient-mode}.
16456
16457 It provides auto-completion for HTTP methods and headers in
16458 @code{restclient-mode}. Completion source is given by
16459 @code{know-your-http-well}.")
16460 (license license:gpl3+)))
16461
16462 (define-public emacs-noflet
16463 (let ((version "20170629")
16464 (revision "1")
16465 (commit "7ae84dc3257637af7334101456dafe1759c6b68a"))
16466 (package
16467 (name "emacs-noflet")
16468 (version (git-version version revision commit))
16469 (source
16470 (origin
16471 (method git-fetch)
16472 (uri (git-reference
16473 (url "https://github.com/nicferrier/emacs-noflet")
16474 (commit commit)))
16475 (file-name (git-file-name name version))
16476 (sha256
16477 (base32
16478 "0g70gnmfi8n24jzfci9nrj0n9bn1qig7b8f9f325rin8h7x32ypf"))))
16479 (build-system emacs-build-system)
16480 (arguments
16481 `(#:phases
16482 (modify-phases %standard-phases
16483 (add-after 'unpack 'require-dash
16484 ;; noflet.el uses -map from dash, but (require 'dash) is
16485 ;; missing. So, add it.
16486 (lambda _
16487 (substitute* "noflet.el"
16488 ((";;; Code:") ";;; Code:\n(require 'dash)"))
16489 #t)))))
16490 (propagated-inputs
16491 `(("emacs-dash" ,emacs-dash)))
16492 (home-page "https://github.com/nicferrier/emacs-noflet")
16493 (synopsis "Locally override functions")
16494 (description "@code{emacs-noflet} lets you locally override functions,
16495 in the manner of @command{flet}, but with access to the original function
16496 through the symbol: @command{this-fn}.")
16497 (license license:gpl3+))))
16498
16499 (define-public emacs-dumb-jump
16500 (package
16501 (name "emacs-dumb-jump")
16502 (version "0.5.3")
16503 (source
16504 (origin
16505 (method git-fetch)
16506 (uri (git-reference
16507 (url "https://github.com/jacktasia/dumb-jump")
16508 (commit (string-append "v" version))))
16509 (file-name (git-file-name name version))
16510 (sha256
16511 (base32 "1njf60264snhxrd36m4z687lqfkis0p9mmrr7cf1c8l0lfdvawxi"))))
16512 (build-system emacs-build-system)
16513 (arguments
16514 `(#:tests? #f ; FIXME: Tests freeze when run.
16515 #:test-command '("ert-runner")
16516 #:phases
16517 (modify-phases %standard-phases
16518 (add-after 'unpack 'set-shell
16519 (lambda _
16520 ;; Setting the SHELL environment variable is required for the
16521 ;; tests to find sh.
16522 (setenv "SHELL" (which "sh"))
16523 #t)))))
16524 (native-inputs
16525 `(("emacs-el-mock" ,emacs-el-mock)
16526 ("emacs-noflet" ,emacs-noflet)
16527 ("emacs-undercover" ,emacs-undercover)
16528 ("ert-runner" ,emacs-ert-runner)))
16529 (propagated-inputs
16530 `(("emacs-f" ,emacs-f)
16531 ("emacs-popup" ,emacs-popup)))
16532 (home-page "https://github.com/jacktasia/dumb-jump")
16533 (synopsis "Jump to definition for multiple languages without configuration")
16534 (description "Dumb Jump is an Emacs \"jump to definition\" package with
16535 support for multiple programming languages that favors \"just working\" over
16536 speed or accuracy. This means minimal --- and ideally zero --- configuration
16537 with absolutely no stored indexes (tags) or persistent background processes.
16538 Dumb Jump performs best with The Silver Searcher @command{ag} or ripgrep
16539 @command{rg} installed.")
16540 (license license:gpl3+)))
16541
16542 (define-public emacs-dts-mode
16543 (let ((commit "9ee0854446dcc6c53d2b8d2941051768dba50344")
16544 (revision "1"))
16545 (package
16546 (name "emacs-dts-mode")
16547 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
16548 (source
16549 (origin
16550 (method git-fetch)
16551 (uri (git-reference
16552 (url "https://github.com/bgamari/dts-mode")
16553 (commit commit)))
16554 (file-name (git-file-name name version))
16555 (sha256
16556 (base32
16557 "1k8lljdbc90nd29xrhdrsscxavzdq532wq2mg7ljc94krj7538b1"))))
16558 (build-system emacs-build-system)
16559 (home-page "https://github.com/bgamari/dts-mode.git")
16560 (synopsis "Emacs minor mode for editing device tree files")
16561 (description
16562 "This package provides an Emacs minor mode for highlighting
16563 device tree files.")
16564 (license license:gpl3+))))
16565
16566 (define-public emacs-daemons
16567 (package
16568 (name "emacs-daemons")
16569 (version "2.0.0")
16570 (source
16571 (origin
16572 (method git-fetch)
16573 (uri (git-reference
16574 (url "https://github.com/cbowdon/daemons.el")
16575 (commit version)))
16576 (file-name (git-file-name name version))
16577 (sha256
16578 (base32
16579 "00bkzfaw3bqykcks610vk9wlpa2z360xn32bpsrycacwfv29j7g4"))))
16580 (build-system emacs-build-system)
16581 (home-page "https://github.com/cbowdon/daemons.el")
16582 (synopsis "Emacs UI for managing init system services")
16583 (description
16584 "This is an Emacs mode to give you a UI for managing init system
16585 daemons (services) for those getting tired of typing out @code{sudo service
16586 my_thing reload} all the time. It offers a consistent UI over different init
16587 systems.")
16588 (license license:gpl3+)))
16589
16590 (define-public emacs-isearch+
16591 (let ((commit "7c251b91a67bf914066e23e269ba52fda5b45f5f")
16592 (revision "2"))
16593 (package
16594 (name "emacs-isearch+")
16595 (version (git-version "0" revision commit))
16596 (source
16597 (origin
16598 (method git-fetch)
16599 (uri (git-reference
16600 (url "https://github.com/emacsmirror/isearch-plus")
16601 (commit commit)))
16602 (file-name (git-file-name name version))
16603 (sha256
16604 (base32
16605 "1w2799714jcdycjlxgs8lpmmz6dmzvcvqy8xwxhvmgpb60g4f2yr"))))
16606 (build-system emacs-build-system)
16607 (home-page "https://www.emacswiki.org/emacs/isearch+.el")
16608 (synopsis "Extensions to @code{isearch.el}")
16609 (description "This package extends @code{isearch} with advice, dynamic
16610 filters, highlighting of regexp group levels, and more.")
16611 (license license:gpl2+))))
16612
16613 (define-public emacs-eshell-bookmark
16614 (package
16615 (name "emacs-eshell-bookmark")
16616 (version "2.0.0")
16617 (source
16618 (origin
16619 (method git-fetch)
16620 (uri (git-reference
16621 (url "https://github.com/Fuco1/eshell-bookmark")
16622 (commit version)))
16623 (file-name (git-file-name name version))
16624 (sha256
16625 (base32
16626 "14dmsnixf9vqdhsixw693sml0fn80zcf0b37z049fb40cmppqxdw"))))
16627 (build-system emacs-build-system)
16628 (home-page "https://github.com/Fuco1/eshell-bookmark")
16629 (synopsis "Provide @file{bookmark.el} integration for @code{eshell}")
16630 (description
16631 "This package allows for bookmarking @code{eshell} buffers. Upon
16632 visiting the bookmark, a new @code{eshell} session will be opened in the
16633 appropriate directory if no @code{eshell} session is active.")
16634 (license license:gpl3+)))
16635
16636 (define-public emacs-eshell-z
16637 (package
16638 (name "emacs-eshell-z")
16639 (version "0.4")
16640 (source
16641 (origin
16642 (method git-fetch)
16643 (uri (git-reference
16644 (url "https://github.com/xuchunyang/eshell-z")
16645 (commit (string-append "v" version))))
16646 (file-name (git-file-name name version))
16647 (sha256
16648 (base32
16649 "13dwaq8q23rwmrkpy3gvf7aswrkk6b9ak5221xl7n0bld4wdhq3j"))))
16650 (build-system emacs-build-system)
16651 (home-page "https://github.com/xuchunyang/eshell-z")
16652 (synopsis "Quick navigation to frequently visited directories")
16653 (description
16654 "This package is a port of @code{z}, and keeps track of visited directories
16655 and commands invoked within them in order to enable navigation via input of
16656 matching regexps.")
16657 (license license:gpl3+)))
16658
16659 (define-public emacs-esh-autosuggest
16660 (package
16661 (name "emacs-esh-autosuggest")
16662 (version "2.0.0")
16663 (source
16664 (origin
16665 (method git-fetch)
16666 (uri (git-reference
16667 (url "https://github.com/dieggsy/esh-autosuggest")
16668 (commit version)))
16669 (file-name (git-file-name name version))
16670 (sha256
16671 (base32
16672 "116pdjgpjy9b0psm5kzwkwy7dq8vn0p6dy75dl1zsy2xrjf1iqdw"))))
16673 (build-system emacs-build-system)
16674 (propagated-inputs `(("emacs-company" ,emacs-company)))
16675 (home-page "https://github.com/dieggsy/esh-autosuggest")
16676 (synopsis "Fish-like autosuggestions in Eshell")
16677 (description
16678 "This package assumes you use something other than company for eshell
16679 completion (e.g. @code{eshell-pcomplete}, @code{completion-at-point},
16680 @code{helm-esh-pcomplete}). @code{company-mode} is used solely as a mechanism
16681 for history autosuggestions.
16682
16683 Unless you're using @code{use-package}'s hook keyword, you can enable the
16684 autosuggestions with:
16685 @code{(add-hook 'eshell-mode-hook #'esh-autosuggest-mode)}")
16686 (license license:gpl3+)))
16687
16688 (define-public emacs-desktop-environment
16689 (package
16690 (name "emacs-desktop-environment")
16691 (version "0.3.0")
16692 (source
16693 (origin
16694 (method git-fetch)
16695 (uri (git-reference
16696 (url "https://gitlab.petton.fr/DamienCassou/desktop-environment")
16697 (commit (string-append "v" version))))
16698 (file-name (git-file-name name version))
16699 (sha256
16700 (base32
16701 "195n99xvxyh4cfxjpfa1h1maalqrxf7nyi0bh3lqa1z6z5bdb6x2"))))
16702 (build-system emacs-build-system)
16703 (home-page "https://gitlab.petton.fr/DamienCassou/desktop-environment")
16704 (synopsis "Control your GNU/Linux desktop environment from Emacs")
16705 (description
16706 "This package helps you control your GNU/Linux desktop from Emacs.
16707 With @code{desktop-environment}, you can control the brightness and volume as
16708 well as take screenshots and lock your screen. The package depends on the
16709 availability of shell commands to do the hard work for us. These commands can
16710 be changed by customizing the appropriate variables.")
16711 (license license:gpl3+)))
16712
16713 (define-public emacs-org-caldav
16714 (let ((commit "a563500c9884f38ce08793e2964f8274adde163d"))
16715 (package
16716 (name "emacs-org-caldav")
16717 (version (git-version "0.0.0" "1" commit))
16718 (source
16719 (origin
16720 (method git-fetch)
16721 (uri (git-reference
16722 (url "https://github.com/dengste/org-caldav")
16723 (commit commit)))
16724 (file-name (git-file-name name version))
16725 (sha256
16726 (base32
16727 "18qi1iv5dc0gsvkv9ifal3cjpm568nlb907v8a53cnm4439x1l0l"))))
16728 (build-system emacs-build-system)
16729 (arguments
16730 ;; Tests require to have two specific calendars on a test server.
16731 `(#:exclude '("^org-caldav-testsuite\\.el")))
16732 (propagated-inputs
16733 `(("emacs-org" ,emacs-org)))
16734 (home-page "https://github.com/dengste/org-caldav")
16735 (synopsis "Sync Org files with external calendars via the CalDAV protocol")
16736 (description "Synchronize between events in Org files and a CalDAV
16737 calendar.")
16738 (license license:gpl3+))))
16739
16740 (define-public emacs-zotxt
16741 (package
16742 (name "emacs-zotxt")
16743 (version "20180518")
16744 (source
16745 (origin
16746 (method git-fetch)
16747 (uri (git-reference
16748 (url "https://github.com/egh/zotxt-emacs")
16749 (commit "23a4a9f74a658222027d53a9a83cd4bcc583ca8b")))
16750 (file-name (git-file-name name version))
16751 (sha256
16752 (base32 "09fq3w9yk9kn6bz7y9kgpiw612dvj3yzsdk734js6zgb0p8lfd2c"))))
16753 (build-system emacs-build-system)
16754 (propagated-inputs
16755 `(("emacs-deferred" ,emacs-deferred)
16756 ("emacs-request" ,emacs-request)))
16757 (home-page "https://github.com/egh/zotxt-emacs")
16758 (synopsis "Integrate Emacs with Zotero")
16759 (description "This package provides two integration features between Emacs
16760 and the Zotero research assistant: Insertion of links to Zotero items into an
16761 Org-mode file, and citations of Zotero items in Pandoc Markdown files.")
16762 (license license:gpl3+)))
16763
16764 (define-public emacs-evil-magit
16765 (let ((commit "253c644807013fe92429acdef418748794b8f254")
16766 (revision "4"))
16767 (package
16768 (name "emacs-evil-magit")
16769 (version (git-version "0.4.2" revision commit))
16770 (source
16771 (origin
16772 (method git-fetch)
16773 (uri (git-reference
16774 (url "https://github.com/emacs-evil/evil-magit")
16775 (commit commit)))
16776 (file-name (git-file-name name version))
16777 (sha256
16778 (base32
16779 "08mh7phxsdb9w4dfs0pmr4l4fdzzr2rm88z2s8karfi5j5ik2ag5"))))
16780 (build-system emacs-build-system)
16781 (propagated-inputs
16782 `(("emacs-evil" ,emacs-evil)
16783 ("magit" ,emacs-magit)))
16784 (arguments
16785 `(#:tests? #t
16786 #:test-command '("emacs" "-Q" "-batch"
16787 "-L" "."
16788 "-l" "evil-magit-tests"
16789 "-f" "ert-run-tests-batch-and-exit")))
16790 (home-page
16791 "https://github.com/emacs-evil/evil-magit")
16792 (synopsis "Evil-based key bindings for Magit")
16793 (description
16794 "This Emacs library configures Magit and Evil to play well with each other.
16795 For some background see @url{https://github.com/magit/evil-magit/issues/1}.
16796 See the README at @url{https://github.com/justbur/evil-magit} for a table
16797 describing the key binding changes.")
16798 (license license:gpl3+))))
16799
16800 (define-public emacs-evil-multiedit
16801 (package
16802 (name "emacs-evil-multiedit")
16803 (version "1.3.9")
16804 (source
16805 (origin
16806 (method git-fetch)
16807 (uri (git-reference
16808 (url "https://github.com/hlissner/evil-multiedit")
16809 (commit (string-append "v" version))))
16810 (file-name (git-file-name name version))
16811 (sha256
16812 (base32
16813 "19h3kqylqzbjv4297wkzzxdmn9yxbg6z4ga4ssrqri90xs7m3rw3"))))
16814 (build-system emacs-build-system)
16815 (propagated-inputs
16816 `(("emacs-evil" ,emacs-evil)
16817 ("emacs-iedit" ,emacs-iedit)))
16818 (native-inputs
16819 `(("emacs-ert-runner" ,emacs-ert-runner)))
16820 (arguments
16821 `(#:phases
16822 (modify-phases %standard-phases
16823 (add-before 'check 'fix-makefile
16824 (lambda _
16825 (substitute* "Makefile"
16826 (("@cask exec ") ""))
16827 #t)))
16828 #:tests? #t
16829 #:test-command '("make" "test")))
16830 (home-page
16831 "https://github.com/hlissner/evil-multiedit")
16832 (synopsis "Multiple cursors for Evil mode")
16833 (description
16834 "This plugin was an answer to the lack of proper multiple cursor support
16835 in Emacs+Evil. It allows you to select and edit matches interactively,
16836 integrating @code{iedit-mode} into Evil mode with an attempt at sensible
16837 defaults.")
16838 (license license:gpl3+)))
16839
16840 (define-public emacs-evil-mc
16841 (let ((commit "1cabb869fe70cef49f7dc06f015c3ade1a969c8c")
16842 (revision "2"))
16843 (package
16844 (name "emacs-evil-mc")
16845 (version (git-version "0.0.3" revision commit))
16846 (source
16847 (origin
16848 (method git-fetch)
16849 (uri (git-reference
16850 (url "https://github.com/gabesoft/evil-mc")
16851 (commit commit)))
16852 (file-name (git-file-name name version))
16853 (sha256
16854 (base32 "0p83p90faq1p02lmsfs7zrnky3cyzgy8z4m83a81r9kakjzhkrnb"))))
16855 (build-system emacs-build-system)
16856 (propagated-inputs
16857 `(("emacs-evil" ,emacs-evil)))
16858 (native-inputs
16859 `(("emacs-espuds" ,emacs-espuds)))
16860 (home-page "https://github.com/gabesoft/evil-mc")
16861 (synopsis "Interactive search compatible with @code{multiple-cursors}")
16862 (description "This package can be used with @code{multiple-cursors} to
16863 provide an incremental search that moves all fake cursors in sync.")
16864 (license license:expat))))
16865
16866 (define-public emacs-evil-org
16867 (let ((commit "9d4be14118bf27094a30dbff349b815f098aacbf"))
16868 (package
16869 (name "emacs-evil-org")
16870 (version (git-version "1.0.2" "1" commit))
16871 (source
16872 (origin
16873 (method git-fetch)
16874 (uri (git-reference
16875 (url "https://github.com/Somelauw/evil-org-mode")
16876 (commit commit)))
16877 (file-name (git-file-name name version))
16878 (sha256
16879 (base32
16880 "1fxxfkinb0gq4p5b686r7z4jrkv98zfgh5z889zkjacncv8ibswn"))))
16881 (build-system emacs-build-system)
16882 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
16883 (home-page
16884 "https://github.com/Somelauw/evil-org-mode")
16885 (synopsis "Evil keybindings for Org mode")
16886 (description
16887 "This package adds supplemental Evil mode key-bindings to Emacs
16888 Org-mode. It features:
16889 @itemize
16890 @item normal, visual and insert mode bindings;
16891 @item key bindings organised in key themes;
16892 @item operators like > and < to work on headings;
16893 @item text objects;
16894 @item table support;
16895 @item calendar (date selection) support;
16896 @item agenda support.
16897 @end itemize\n")
16898 (license license:gpl3+))))
16899
16900 (define-public emacs-debpaste
16901 (package
16902 (name "emacs-debpaste")
16903 (version "0.1.5")
16904 (home-page "https://github.com/alezost/debpaste.el")
16905 (source
16906 (origin
16907 (method git-fetch)
16908 (uri (git-reference (url home-page)
16909 (commit (string-append "v" version))))
16910 (file-name (git-file-name name version))
16911 (sha256
16912 (base32
16913 "1wi70r56pd5z0x4dp4m58p9asq03j74kdm4fi9vai83vsl2z9amq"))))
16914 (build-system emacs-build-system)
16915 (propagated-inputs
16916 `(("emacs-xml-rpc" ,emacs-xml-rpc)))
16917 (synopsis "Manipulate pastes from the Debian Pastezone")
16918 (description "Debpaste is an Emacs interface for the Debian Pastezone,
16919 allowing you to receive, post, and delete pastes. It communicates with the
16920 server using XML-RPC.")
16921 (license license:gpl3+)))
16922
16923 (define-public emacs-xml-rpc
16924 (let ((commit "8f624f8b964e9145acb504e4457c9510e87dd93c")
16925 (revision "1"))
16926 (package
16927 (name "emacs-xml-rpc")
16928 (version (git-version "1.6.12" revision commit))
16929 (source
16930 (origin
16931 (method git-fetch)
16932 (uri (git-reference
16933 (url "https://github.com/hexmode/xml-rpc-el")
16934 (commit commit)))
16935 (file-name (git-file-name name version))
16936 (sha256
16937 (base32
16938 "0xa54z52rsfl3n0xgmbycj4zazp8ksgdwcq56swzs6wp72zlalmj"))))
16939 (build-system emacs-build-system)
16940 (home-page "https://github.com/hexmode/xml-rpc-el")
16941 (synopsis "XML-RPC client for Emacs")
16942 (description "This package provides an XML-RPC client for Emacs capable
16943 of both synchronous and asynchronous method calls using the @code{url}
16944 package's async retrieval functionality. @file{xml-rpc.el} represents XML-RPC
16945 datatypes as Lisp values, automatically converting to and from the XML
16946 datastructures as needed, both for method parameters and return values, making
16947 using XML-RPC methods fairly transparent to the Lisp code.")
16948 (license license:gpl3+))))
16949
16950 (define-public emacs-xpm
16951 (package
16952 (name "emacs-xpm")
16953 (version "1.0.4")
16954 (source
16955 (origin
16956 (method url-fetch)
16957 (uri (string-append "https://elpa.gnu.org/packages/xpm-"
16958 version ".tar"))
16959 (sha256
16960 (base32
16961 "075miyashh9cm3b0gk6ngld3rm8bfgnh4qxnhxmmvjgzf6a64grh"))))
16962 (build-system emacs-build-system)
16963 (home-page "https://elpa.gnu.org/packages/xpm.html")
16964 (synopsis "XPM image editing mode for Emacs")
16965 (description "This Emacs package makes editing XPM images easy (and maybe
16966 fun). Editing is done directly on the (textual) image format, for maximal
16967 cohesion with the Emacs Way.")
16968 (license license:gpl3+)))
16969
16970 (define-public emacs-fish-completion
16971 (package
16972 (name "emacs-fish-completion")
16973 (version "1.2")
16974 (source
16975 (origin
16976 (method git-fetch)
16977 (uri (git-reference
16978 (url "https://gitlab.com/Ambrevar/emacs-fish-completion.git")
16979 (commit version)))
16980 (file-name (git-file-name name version))
16981 (sha256
16982 (base32
16983 "17lqip1i1rrsvxzz4bx9rqf1fvwd3hriwg3sj6qxmfc8pylnp37q"))))
16984 (build-system emacs-build-system)
16985 (inputs `(("fish" ,fish)))
16986 (arguments
16987 `(#:phases
16988 (modify-phases %standard-phases
16989 (add-after 'unpack 'configure
16990 (lambda* (#:key inputs outputs #:allow-other-keys)
16991 (let ((fish (assoc-ref inputs "fish")))
16992 ;; Specify the absolute file names of the various
16993 ;; programs so that everything works out-of-the-box.
16994 (make-file-writable "fish-completion.el")
16995 (emacs-substitute-variables
16996 "fish-completion.el"
16997 ("fish-completion-command"
16998 (string-append fish "/bin/fish")))))))))
16999 (home-page
17000 "https://gitlab.com/Ambrevar/emacs-fish-completion")
17001 (synopsis "Fish completion for Emacs pcomplete")
17002 (description
17003 "This package provides completion for the Fish shell to pcomplete (used
17004 by shell and Eshell). You can set it up globally with:
17005
17006 @example
17007 (when (and (executable-find \"fish\")
17008 (require 'fish-completion nil t))
17009 (global-fish-completion-mode))
17010 @end example
17011
17012 Alternatively, you can call the @code{fish-completion-mode} manually or in
17013 shell/Eshell mode hook.
17014
17015 The package @code{emacs-bash-completion} is an optional dependency: if available,
17016 @code{fish-completion-complete} can be configured to fall back on bash to further
17017 try completing. See @code{fish-completion-fallback-on-bash-p}.")
17018 (license license:gpl3+)))
17019
17020 (define-public emacs-gif-screencast
17021 (package
17022 (name "emacs-gif-screencast")
17023 (version "1.1")
17024 (source
17025 (origin
17026 (method git-fetch)
17027 (uri (git-reference
17028 (url "https://gitlab.com/Ambrevar/emacs-gif-screencast.git")
17029 (commit version)))
17030 (file-name (git-file-name name version))
17031 (sha256
17032 (base32
17033 "1g1by8lvf8c9vzm4wwsi5kp285kaj0ahsl54048ympin4pi0njw9"))))
17034 (build-system emacs-build-system)
17035 (inputs
17036 `(("scrot" ,scrot)
17037 ("imagemagick" ,imagemagick)
17038 ("gifsicle" ,gifsicle)))
17039 (arguments
17040 `(#:phases
17041 (modify-phases %standard-phases
17042 (add-after 'unpack 'configure
17043 (lambda* (#:key inputs outputs #:allow-other-keys)
17044 (let ((scrot (assoc-ref inputs "scrot"))
17045 (imagemagick (assoc-ref inputs "imagemagick"))
17046 (gifsicle (assoc-ref inputs "gifsicle")))
17047 (make-file-writable "gif-screencast.el")
17048 ;; Specify the absolute file names of the various
17049 ;; programs so that everything works out-of-the-box.
17050 (emacs-substitute-variables
17051 "gif-screencast.el"
17052 ("gif-screencast-program"
17053 (string-append scrot "/bin/scrot"))
17054 ("gif-screencast-convert-program"
17055 (string-append imagemagick "/bin/convert"))
17056 ("gif-screencast-cropping-program"
17057 (string-append imagemagick "/bin/mogrify"))
17058 ("gif-screencast-optimize-program"
17059 (string-append gifsicle "/bin/gifsicle")))))))))
17060 (home-page
17061 "https://gitlab.com/Ambrevar/emacs-gif-screencast")
17062 (synopsis "One-frame-per-action GIF recording")
17063 (description
17064 "Call @code{gif-screencast} to start a recording.
17065 A screenshot is taken for every user action. Call
17066 @code{gif-screencast-stop} (<f9> by default) to finish recording and create
17067 the GIF result.")
17068 (license license:gpl3+)))
17069
17070 (define-public emacs-google-translate
17071 (package
17072 (name "emacs-google-translate")
17073 (version "0.12.0")
17074 (source
17075 (origin
17076 (method git-fetch)
17077 (uri (git-reference
17078 (url "https://github.com/atykhonov/google-translate/")
17079 (commit (string-append "v" version))))
17080 (file-name (git-file-name name version))
17081 (sha256
17082 (base32
17083 "0rwpij2bm8d4jq2w5snkp88mfryplw8166dsrjm407n2p6xr48zx"))))
17084 (build-system emacs-build-system)
17085 (home-page "https://github.com/atykhonov/google-translate")
17086 (synopsis "Emacs interface to Google Translate")
17087 (description
17088 "This package provides an Emacs interface to the Google Translate
17089 on-line service.")
17090 (license license:gpl3+)))
17091
17092 (define-public emacs-helm-company
17093 (package
17094 (name "emacs-helm-company")
17095 (version "0.2.5")
17096 (source
17097 (origin
17098 (method git-fetch)
17099 (uri (git-reference
17100 (url "https://github.com/Sodel-the-Vociferous/helm-company")
17101 (commit (string-append "v" version))))
17102 (file-name (git-file-name name version))
17103 (sha256
17104 (base32
17105 "1ci37w6ahnqrfpb284gjvxmimlf61sdxb9k192yy9q983cksv2hx"))))
17106 (build-system emacs-build-system)
17107 (propagated-inputs
17108 `(("emacs-helm" ,emacs-helm)
17109 ("emacs-company" ,emacs-company)))
17110 (native-inputs
17111 `(("emacs-ert-runner" ,emacs-ert-runner)))
17112 (arguments
17113 `(#:tests? #t
17114 #:test-command '("ert-runner")))
17115 (home-page "https://github.com/Sodel-the-Vociferous/helm-company")
17116 (synopsis "Helm interface for company-mode")
17117 (description
17118 "This is a Helm interface to company-mode, a text completion
17119 framework.")
17120 (license license:gpl3+)))
17121
17122 (define-public emacs-helm-descbinds
17123 (let ((commit "033be73f21778633813264ce1634a6e1ad873d8e"))
17124 (package
17125 (name "emacs-helm-descbinds")
17126 (version (git-version "1.13" "1" commit))
17127 (source
17128 (origin
17129 (method git-fetch)
17130 (uri (git-reference
17131 (url "https://github.com/emacs-helm/helm-descbinds")
17132 (commit commit)))
17133 (file-name (git-file-name name version))
17134 (sha256
17135 (base32
17136 "1n89p56qwa243w1c85i5awnaf7piwjsvfi7nmnsrwm33hix5dknk"))))
17137 (build-system emacs-build-system)
17138 (propagated-inputs `(("emacs-helm" ,emacs-helm)))
17139 (home-page "https://github.com/emacs-helm/helm-descbinds")
17140 (synopsis "Convenient @code{describe-bindings} with Helm")
17141 (description
17142 "This package is a replacement of @code{describe-bindings} for Helm.
17143 @code{describe-bindings} is replaced with @code{helm-descbinds}. As usual,
17144 type @code{C-h b}, or any incomplete key sequence plus @code{C-h}, to run
17145 @code{helm-descbinds}. The bindings are presented in a similar way as
17146 @code{describe-bindings} does, but you can use completion to find the command
17147 you searched for and execute it, or view its documentation.")
17148 (license license:gpl3+))))
17149
17150 (define-public emacs-helm-emms
17151 (let ((commit "37e5aa029abfa5a5c48636314de8157142944fa2"))
17152 (package
17153 (name "emacs-helm-emms")
17154 (version (git-version "1.3" "3" commit))
17155 (source
17156 (origin
17157 (method git-fetch)
17158 (uri (git-reference
17159 (url "https://github.com/emacs-helm/helm-emms")
17160 (commit commit)))
17161 (file-name (git-file-name name version))
17162 (sha256
17163 (base32
17164 "0r1ai6xhzayyik30w2sx9n62bxxwm12vfmjspv0daqif9az8y3vg"))))
17165 (build-system emacs-build-system)
17166 (propagated-inputs
17167 `(("emacs-helm" ,emacs-helm)
17168 ("emacs-emms" ,emacs-emms)))
17169 (home-page
17170 "https://github.com/emacs-helm/helm-emms")
17171 (synopsis "Emms for Helm")
17172 (description "Helm interface for Emms to browse all tracks and all folders
17173 from @code{emms-source-file-default-directory}.")
17174 (license license:gpl3+))))
17175
17176 (define-public emacs-helm-exwm
17177 (package
17178 (name "emacs-helm-exwm")
17179 (version "0.0.2")
17180 (source
17181 (origin
17182 (method git-fetch)
17183 (uri (git-reference
17184 (url "https://github.com/emacs-helm/helm-exwm")
17185 (commit version)))
17186 (file-name (git-file-name name version))
17187 (sha256
17188 (base32 "0g4k01ps14bp2az8v6dcag9llg045k2b4kdis81xx4lvw76znr9v"))))
17189 (build-system emacs-build-system)
17190 (propagated-inputs
17191 `(("emacs-helm" ,emacs-helm)
17192 ("emacs-exwm" ,emacs-exwm)))
17193 (home-page
17194 "https://github.com/emacs-helm/helm-exwm")
17195 (synopsis "Helm for EXWM buffers")
17196 (description
17197 "@code{helm-exwm} runs a Helm session over the list of EXWM buffers.
17198 @code{helm-exwm-switch} is a convenience X application launcher using Helm to
17199 switch between the various windows of one or several specific applications.
17200 See @code{helm-exwm-switch-browser} for an example.")
17201 (license license:gpl3+)))
17202
17203 (define-public emacs-helm-flycheck
17204 (let ((commit "3cf7d3bb194acacc6395f88360588013d92675d6"))
17205 (package
17206 (name "emacs-helm-flycheck")
17207 (version (git-version "0.4" "1" commit))
17208 (source
17209 (origin
17210 (method git-fetch)
17211 (uri (git-reference
17212 (url "https://github.com/yasuyk/helm-flycheck")
17213 (commit commit)))
17214 (file-name (git-file-name name version))
17215 (sha256
17216 (base32
17217 "1a2yfxhz04klwhcandqvfzysxp6b7bxyxx1xk1x3kds5hif5fkl4"))))
17218 (build-system emacs-build-system)
17219 (propagated-inputs
17220 `(("emacs-dash" ,emacs-dash)
17221 ("emacs-flycheck" ,emacs-flycheck)
17222 ("emacs-helm" ,emacs-helm)))
17223 (home-page "https://github.com/yasuyk/helm-flycheck")
17224 (synopsis "Show Flycheck errors with Helm")
17225 (description
17226 "This integrates Flycheck with Helm.")
17227 (license license:gpl3+))))
17228
17229 (define-public emacs-helm-ls-git
17230 (let ((commit "76654c776a7f6e2e5290645e748aac2a746f7daa"))
17231 (package
17232 (name "emacs-helm-ls-git")
17233 (version (git-version "1.9.1" "1" commit))
17234 (source
17235 (origin
17236 (method git-fetch)
17237 (uri (git-reference
17238 (url "https://github.com/emacs-helm/helm-ls-git")
17239 (commit commit)))
17240 (file-name (git-file-name name version))
17241 (sha256
17242 (base32
17243 "0vsq1n3xl3ghy5zik2scm7jrs501n4kybdqd6yw6j0cv4jxdqbr0"))))
17244 (build-system emacs-build-system)
17245 (propagated-inputs `(("emacs-helm" ,emacs-helm)))
17246 (home-page "https://github.com/emacs-helm/helm-ls-git")
17247 (synopsis "Helm interface for listing the files in a Git repository")
17248 (description
17249 "This package provides a Helm interface for Git files.
17250 @itemize
17251 @item Display the open buffers in project.
17252 @item Display a status source showing state of project (modified files etc.).
17253 @item Display a list of all files in project under git control.
17254 @item Quickly look at diffs of modified files.
17255 @item Allow switching to @code{git status} with your preferred frontend
17256 (vc-dir, Magit,etc.).
17257 @item Full integration of git-grep, also allow usage of @code{helm-grep} (you
17258 can use ack-grep instead of grep).
17259 @item Integrate usage of gid from id-utils.
17260 @item Full integration with @code{helm-find-files}, allow you to browse
17261 projects unrelated to current-buffer.
17262 @item In addition, all actions of type files and buffers are provided.
17263 @end itemize\n")
17264 (license license:gpl3+))))
17265
17266 (define-public emacs-helm-mu
17267 (let ((commit "77e6fea24e01481418738421dbcfe28ef1bd63cf"))
17268 (package
17269 (name "emacs-helm-mu")
17270 (version (git-version "20180513" "1" commit))
17271 (source
17272 (origin
17273 (method git-fetch)
17274 (uri (git-reference
17275 (url "https://github.com/emacs-helm/helm-mu")
17276 (commit commit)))
17277 (file-name (git-file-name name version))
17278 (sha256
17279 (base32 "1lh0ahxdc5b2z18m9p30gwg8sbg33sjwkjr38p7h5xsm5fm7i0fz"))))
17280 (build-system emacs-build-system)
17281 (propagated-inputs
17282 `(("emacs-helm" ,emacs-helm)
17283 ("mu" ,mu)))
17284 (home-page
17285 "https://github.com/emacs-helm/helm-mu")
17286 (synopsis
17287 "Helm sources for searching emails and contacts")
17288 (description
17289 "Helm sources for searching emails and contacts using @code{mu} and
17290 @code{mu4e}. Mu is an indexer for maildirs and mu4e is a mutt-like MUA for
17291 Emacs build on top of mu. Mu is highly efficient making it possible to get
17292 instant results even for huge maildirs. It also provides search operators,
17293 e.g: @code{from:Peter to:Anne flag:attach search term}.")
17294 (license license:gpl3+))))
17295
17296 (define-public emacs-helm-pass
17297 (package
17298 (name "emacs-helm-pass")
17299 (version "0.3")
17300 (source
17301 (origin
17302 (method git-fetch)
17303 (uri (git-reference
17304 (url "https://github.com/emacs-helm/helm-pass")
17305 (commit version)))
17306 (file-name (git-file-name name version))
17307 (sha256
17308 (base32
17309 "0vglaknmir3yv4iwibwn8r40ran8d04gcyp99hx73ldmf3zqpnxv"))))
17310 (build-system emacs-build-system)
17311 (propagated-inputs
17312 `(("emacs-helm" ,emacs-helm)
17313 ("emacs-password-store" ,emacs-password-store)))
17314 (home-page "https://github.com/emacs-helm/helm-pass")
17315 (synopsis "Helm interface to pass, the standard Unix password manager")
17316 (description
17317 "Users of @code{helm-pass} may also be interested in functionality
17318 provided by other Emacs packages dealing with pass:
17319 @itemize
17320 @item @code{emacs-password-store}, which @code{helm-pass} relies on.
17321 @item @code{emacs-pass}, a major mode for @code{pass}.
17322 @item @code{auth-source-pass.el}: integration of Emacs' auth-source with
17323 @code{pass}, included in Emacs 26+).
17324 @end itemize\n")
17325 (license license:gpl3+)))
17326
17327 (define-public emacs-image+
17328 (let ((commit "6834d0c09bb4df9ecc0d7a559bd7827fed48fffc"))
17329 (package
17330 (name "emacs-image+")
17331 (version (git-version "0.6.2" "1" commit))
17332 (source
17333 (origin
17334 (method git-fetch)
17335 (uri (git-reference
17336 (url "https://github.com/mhayashi1120/Emacs-imagex")
17337 (commit commit)))
17338 (file-name (git-file-name name version))
17339 (sha256
17340 (base32
17341 "0v66wk9nh0raih4jhrzmmyi5lbysjnmbv791vm2230ffi2hmwxnd"))))
17342 (build-system emacs-build-system)
17343 (inputs `(("imagemagick" ,imagemagick)))
17344 (arguments
17345 `(#:phases
17346 (modify-phases %standard-phases
17347 (add-after 'unpack 'configure
17348 (lambda* (#:key inputs outputs #:allow-other-keys)
17349 (let ((imagemagick (assoc-ref inputs "imagemagick")))
17350 ;; Specify the absolute file names of the various
17351 ;; programs so that everything works out-of-the-box.
17352 (chmod "image+.el" #o666)
17353 (emacs-substitute-variables
17354 "image+.el"
17355 ("imagex-convert-command"
17356 (string-append imagemagick "/bin/convert"))
17357 ("imagex-identify-command"
17358 (string-append imagemagick "/bin/identify")))))))))
17359 (home-page "https://github.com/mhayashi1120/Emacs-imagex")
17360 (synopsis "Image manipulation extensions for Emacs")
17361 (description
17362 "Image+ provides keybindings allowing you to zoom in or zoom out of an
17363 image, rotate it, save modified images, and more.")
17364 (license license:gpl3+))))
17365
17366 (define-public emacs-package-lint
17367 (let ((commit "69bb89d00ba212b734c676ad056aa793c450b288"))
17368 (package
17369 (name "emacs-package-lint")
17370 (version (git-version "0.5" "1" commit))
17371 (source
17372 (origin
17373 (method git-fetch)
17374 (uri (git-reference
17375 (url "https://github.com/purcell/package-lint")
17376 (commit commit)))
17377 (file-name (git-file-name name version))
17378 (sha256
17379 (base32
17380 "1hfricsgmy3x9snnd2p4xq6vnnv94qdsxxnxp07b3hqc9bhw31rq"))))
17381 (build-system emacs-build-system)
17382 (home-page "https://github.com/purcell/package-lint")
17383 (synopsis "Linting library for elisp package authors")
17384 (description
17385 "This provides a list of issues with the Emacs package metadata of a file,
17386 e.g. the package dependencies it requires. See function
17387 @code{package-lint-buffer}. Checks will currently be enabled only if a
17388 \"Package-Requires:\" or \"Package-Version:\" header is present in the
17389 file.")
17390 (license license:gpl3+))))
17391
17392 (define-public emacs-picpocket
17393 (let ((version "40")
17394 (commit "6fd88b8711c4370662c0f9c462170187d092a046"))
17395 (package
17396 (name "emacs-picpocket")
17397 (version version)
17398 (source
17399 (origin
17400 (method git-fetch)
17401 (uri (git-reference
17402 (url "https://github.com/johanclaesson/picpocket")
17403 (commit commit)))
17404 (file-name (git-file-name name version))
17405 (sha256
17406 (base32 "1mdzzxf7xm7zwrpnqqxa27d1cr31pd72d7ilbwljv13qp177a3yw"))))
17407 (build-system emacs-build-system)
17408 (arguments ; needed for running tests
17409 `(#:tests? #t
17410 #:emacs ,emacs
17411 #:test-command '("emacs" "--batch"
17412 "-l" "picpocket-test.el"
17413 "-f" "ert-run-tests-batch-and-exit")))
17414 (home-page "https://github.com/johanclaesson/picpocket")
17415 (synopsis "Image viewer for Emacs")
17416 (description
17417 "Picpocket is an image viewer for GNU Emacs. It has commands for:
17418
17419 @itemize
17420 @item File operations on the picture files (delete, move, copy, hardlink).
17421 @item Scale and rotate the picture.
17422 @item Associate pictures with tags which are saved to disk.
17423 @item Filter pictures according to tags.
17424 @item Customizing keystrokes for quick tagging and file operations.
17425 @item Undo and browse history of undoable commands.
17426 @end itemize")
17427 (license license:gpl3+))))
17428
17429 (define-public emacs-mu4e-conversation
17430 (let ((commit "98110bb9c300fc9866dee8e0023355f9f79c9b96")
17431 (revision "5"))
17432 (package
17433 (name "emacs-mu4e-conversation")
17434 (version (git-version "0.0.1" revision commit))
17435 (source
17436 (origin
17437 (method git-fetch)
17438 (uri (git-reference
17439 (url "https://gitlab.com/Ambrevar/mu4e-conversation.git")
17440 (commit commit)))
17441 (file-name (git-file-name name version))
17442 (sha256
17443 (base32
17444 "080s96jkcw2p288sp1vgds91rgl693iz6hi2dv56p2ih0nnivwlg"))))
17445 (build-system emacs-build-system)
17446 (propagated-inputs
17447 `(("mu" ,mu)))
17448 (home-page
17449 "https://gitlab.com/Ambrevar/mu4e-conversation")
17450 (synopsis
17451 "Show a complete thread in a single buffer")
17452 (description
17453 "This package offers an alternate view to mu4e's e-mail display. It
17454 shows all e-mails of a thread in a single view, where each correspondent has
17455 their own face. Threads can be displayed linearly (in which case e-mails are
17456 displayed in chronological order) or as an Org document where the node tree
17457 maps the thread tree.")
17458 (license license:gpl3+))))
17459
17460 (define-public emacs-pinentry
17461 (let ((commit "dcc9ba03252ee5d39e03bba31b420e0708c3ba0c")
17462 (revision "1"))
17463 (package
17464 (name "emacs-pinentry")
17465 (version (git-version "0.1" revision commit))
17466 (source
17467 (origin
17468 (method url-fetch)
17469 (uri (string-append
17470 "http://git.savannah.gnu.org/cgit/emacs/elpa.git/plain"
17471 "/packages/pinentry/pinentry.el?id=" commit))
17472 (file-name (string-append "pinentry.el"))
17473 (sha256
17474 (base32
17475 "1lf30q6r8nz5cjzclbb9bbymsk2y75nskvb55hnjdv93gr3j0sik"))))
17476 (build-system emacs-build-system)
17477 (propagated-inputs
17478 `(("gnupg" ,gnupg)))
17479 (home-page "https://elpa.gnu.org/packages/pinentry.html")
17480 (synopsis "GnuPG Pinentry server implementation")
17481 (description
17482 "This package allows GnuPG passphrase to be prompted through the
17483 minibuffer instead of graphical dialog.
17484
17485 To use, add @code{allow-emacs-pinentry} to @code{~/.gnupg/gpg-agent.conf},
17486 reload the configuration with @code{gpgconf --reload gpg-agent}, and start the
17487 server with @code{M-x pinentry-start}.")
17488 (license license:gpl3+))))
17489
17490 (define-public emacs-so-long
17491 (let ((commit "cfae473b1bf65f78ddb015159e667ec0103d881c")
17492 (revision "2"))
17493 (package
17494 (name "emacs-so-long")
17495 (version (git-version "1.0" revision commit))
17496 (source
17497 (origin
17498 (method git-fetch)
17499 (uri (git-reference
17500 (url "https://git.savannah.gnu.org/git/so-long.git")
17501 (commit commit)))
17502 (file-name (git-file-name name version))
17503 (sha256
17504 (base32
17505 "0g943n5cl9lz5s7hszg6yvp10xd1xvd8mfgxyg0yckmp8fqkswin"))))
17506 (build-system emacs-build-system)
17507 (home-page "https://www.emacswiki.org/emacs/SoLong")
17508 (synopsis "Improve performance in files with long lines")
17509 (description "This package improves the performance of Emacs when
17510 viewing files with long lines.")
17511 (license license:gpl3+))))
17512
17513 (define-public emacs-github-review
17514 (let ((commit "a13a3b4f1b6114a32af843971a145ab880f51232")
17515 (revision "2"))
17516 (package
17517 (name "emacs-github-review")
17518 (version (git-version "0.1" revision commit))
17519 (source
17520 (origin
17521 (method git-fetch)
17522 (uri (git-reference
17523 (url "https://github.com/charignon/github-review")
17524 (commit commit)))
17525 (file-name (git-file-name name version))
17526 (sha256
17527 (base32
17528 "0injfpxzgfhmqalba845j5l5cdcxxqz43knhxwinf36g52nfabl0"))))
17529 (build-system emacs-build-system)
17530 (inputs
17531 `(("emacs-dash" ,emacs-dash)
17532 ("emacs-s" ,emacs-s)
17533 ("emacs-ghub" ,emacs-ghub)))
17534 (native-inputs
17535 `(("emacs-buttercup" ,emacs-buttercup)
17536 ("emacs-undercover" ,emacs-undercover)))
17537 (arguments
17538 `(#:tests? #t
17539 #:test-command '("buttercup" "-L" "test/github-review-test.el")))
17540 (home-page "https://github.com/charignon/github-review")
17541 (synopsis "Review GitHub pull requests within Emacs")
17542 (description "This package provides commands to pull in, comment on, and
17543 accept and reject GitHub pull requests.")
17544 (license license:gpl3+))))
17545
17546 (define-public emacs-deadgrep
17547 (let ((commit "7e50e71c6ff4e17dded43e0836dae4e5ec020fcf")
17548 (revision "1"))
17549 (package
17550 (name "emacs-deadgrep")
17551 (version (git-version "0.10" revision commit))
17552 (source
17553 (origin
17554 (method git-fetch)
17555 (uri (git-reference
17556 (url "https://github.com/Wilfred/deadgrep")
17557 (commit commit)))
17558 (file-name (git-file-name name version))
17559 (sha256
17560 (base32
17561 "1vjhrq02l8gvdn2haygzq7277hnhjchs9xrfpcnh76gqip200gx4"))))
17562 (build-system emacs-build-system)
17563 (propagated-inputs
17564 `(("emacs-dash" ,emacs-dash)
17565 ("emacs-s" ,emacs-s)
17566 ("emacs-spinner" ,emacs-spinner)))
17567 (home-page "https://github.com/Wilfred/deadgrep")
17568 (synopsis "Frontend for @code{ripgrep}")
17569 (description "This package provides an Emacs interface for performing
17570 searches with @code{ripgrep}.")
17571 (license license:gpl3+))))
17572
17573 (define-public emacs-focus
17574 (let ((commit "ab42b8779929beeb7878c7fb3d3ccd80d9327c7f")
17575 (version "0.1.1")
17576 (revision "1"))
17577 (package
17578 (name "emacs-focus")
17579 (version (git-version version revision commit))
17580 (source
17581 (origin
17582 (method git-fetch)
17583 (uri (git-reference
17584 (url "https://github.com/larstvei/Focus")
17585 (commit commit)))
17586 (file-name (git-file-name name version))
17587 (sha256
17588 (base32
17589 "079v1syid7h2vr2ya6hs6hl0pgj60qdsw60mqw4cj2zllmkrkwj4"))))
17590 (build-system emacs-build-system)
17591 (home-page "https://github.com/larstvei/Focus")
17592 (synopsis "Minor mode for focusing in on relevant text")
17593 (description "This package provides a minor mode that dims the color of
17594 text in neighboring sections.")
17595 (license license:gpl3+))))
17596
17597 (define-public emacs-pandoc-mode
17598 (package
17599 (name "emacs-pandoc-mode")
17600 (version "2.27.2")
17601 (source
17602 (origin
17603 (method git-fetch)
17604 (uri (git-reference
17605 (url "https://github.com/joostkremers/pandoc-mode")
17606 (commit version)))
17607 (file-name (git-file-name name version))
17608 (sha256
17609 (base32
17610 "04bqc7mhgkfks3nsvimd3rrriv4nqbksmv5ahlbbd03aqa2b0vrv"))))
17611 (build-system emacs-build-system)
17612 (propagated-inputs
17613 `(("emacs-dash" ,emacs-dash)
17614 ("emacs-hydra" ,emacs-hydra)))
17615 (home-page "https://github.com/joostkremers/pandoc-mode")
17616 (synopsis "Minor mode for interacting with Pandoc")
17617 (description "This package provides a Hydra menu for interacting with the
17618 Pandoc, the document-conversion tool.")
17619 (license license:bsd-3)))
17620
17621 (define-public emacs-hlint-refactor-mode
17622 (let ((commit "c4307f86aad6d02e32e9b30cb6edc115584c791c")
17623 (revision "1"))
17624 (package
17625 (name "emacs-hlint-refactor-mode")
17626 (version (git-version "0.0.1" revision commit))
17627 (source
17628 (origin
17629 (method git-fetch)
17630 (uri (git-reference
17631 (url "https://github.com/mpickering/hlint-refactor-mode")
17632 (commit commit)))
17633 (file-name (git-file-name name version))
17634 (sha256
17635 (base32
17636 "1c71w9s34n0i7mm4njchxn6s3ri1y6mh3akgbg4nq41d42h8iap3"))))
17637 (build-system emacs-build-system)
17638 (propagated-inputs
17639 `(("apply-refact" ,apply-refact)
17640 ("hlint" ,hlint)))
17641 (home-page "https://github.com/mpickering/hlint-refactor-mode")
17642 (synopsis "Emacs bindings for @code{hlint}'s @code{--refactor} option")
17643 (description "This package applies refactoring suggestions from
17644 @code{hlint}.")
17645 (license license:expat))))
17646
17647 (define-public emacs-ccls
17648 (let ((commit "aab3e31fd716daf59f9794e62d473357263e8cc0")
17649 (revision "4"))
17650 (package
17651 (name "emacs-ccls")
17652 (version (git-version "0.1" revision commit))
17653 (source
17654 (origin
17655 (method git-fetch)
17656 (uri (git-reference
17657 (url "https://github.com/MaskRay/emacs-ccls")
17658 (commit commit)))
17659 (file-name (git-file-name name version))
17660 (sha256
17661 (base32
17662 "1ykgw21ypyhwlyflppjcgqrj1xw4d9rld4z65qvwhk3f12cv113j"))))
17663 (build-system emacs-build-system)
17664 (propagated-inputs
17665 `(("ccls" ,ccls)
17666 ("emacs-dash" ,emacs-dash)
17667 ("emacs-projectile" ,emacs-projectile)
17668 ("emacs-lsp-mode" ,emacs-lsp-mode)))
17669 (home-page "https://github.com/MaskRay/emacs-ccls")
17670 (synopsis "Emacs support for the @code{ccls} language server")
17671 (description "This package extends @code{lsp-mode} to work with @code{C}
17672 and @code{C++} files through the @code{ccls} language server.")
17673 (license license:expat))))
17674
17675 (define-public emacs-org-brain
17676 (package
17677 (name "emacs-org-brain")
17678 (version "0.5")
17679 (source
17680 (origin
17681 (method git-fetch)
17682 (uri (git-reference
17683 (url "https://github.com/Kungsgeten/org-brain")
17684 (commit "3faf9303af3f2356e3444e69c22dc6c5774047d1")))
17685 (file-name (git-file-name name version))
17686 (sha256
17687 (base32
17688 "1ad681zk6kckw2zbk0r4iaj4bw8cfqrbd1s3gdwgdjlzq81q9mmj"))))
17689 (build-system emacs-build-system)
17690 (home-page "https://github.com/Kungsgeten/org-brain")
17691 (synopsis "Org-mode wiki and concept-mapping for Emacs")
17692 (description "@code{emacs-org-brain} implements a variant of concept
17693 mapping in Emacs, using @code{org-mode}. An org-brain is a network of
17694 org-mode entries, where each entry is a file or a headline, and you can get a
17695 visual overview of the relationships between the entries: parents, children,
17696 siblings and friends. This visual overview can also be used to browse your
17697 entries. You can think of entries as nodes in a mind map, or pages in a
17698 wiki.")
17699 (license license:expat)))
17700
17701 (define-public emacs-recent-addresses
17702 (let ((commit "afbbfdc43b81e620acf827ca20d297e0c517b6eb")
17703 (revision "1"))
17704 (package
17705 (name "emacs-recent-addresses")
17706 (home-page "https://nschum.de/src/emacs/recent-addresses/")
17707 (version (git-version "0.1" revision commit))
17708 (source (origin
17709 (method git-fetch)
17710 (uri (git-reference
17711 ;; Note: Use a branch that works with Helm. Submitted
17712 ;; at <https://github.com/nschum/recent-addresses.el/pull/1>.
17713 (url "https://github.com/civodul/recent-addresses.el")
17714 (commit commit)))
17715 (sha256
17716 (base32
17717 "0ajrq0galjmdyjdjyxazykjyax3gh6hvfk4s7l657pi11g0q5zax"))
17718 (file-name (git-file-name name version))))
17719 (build-system emacs-build-system)
17720 (synopsis "Record recently-used email addressed and auto-complete them")
17721 (description
17722 "@code{recent-addresses} is an Emacs package that allows you to quickly
17723 look up previously used email addresses. It can be used alongside the Gnus
17724 email client.")
17725 (license license:gpl2+))))
17726
17727 (define-public emacs-fold-dwim
17728 (let ((commit "c46f4bb2ce91b4e307136320e72c28dd50b6cd8b")
17729 (revision "0"))
17730 (package
17731 (name "emacs-fold-dwim")
17732 (version (git-version "1.2" revision commit))
17733 (home-page "https://github.com/emacsattic/fold-dwim")
17734 (source (origin
17735 (method git-fetch)
17736 (uri (git-reference (url home-page) (commit commit)))
17737 (sha256
17738 (base32
17739 "1yz1wis31asw6xa5maliyd1ck2q02xnnh7dc6swgj9cb4wi7k6i1"))
17740 (file-name (git-file-name name version))))
17741 (build-system emacs-build-system)
17742 (synopsis "Unified user interface for Emacs folding modes")
17743 (description
17744 "DWIM stands for \"do what I mean\", as in the idea that one keystroke
17745 can do different things depending on the context. In this package, it means
17746 that, if the cursor is in a currently hidden folded construction, we want to
17747 show it; if it's not, we want to hide whatever fold the cursor is in.")
17748 (license license:gpl2+))))
17749
17750 (define-public emacs-markup-faces
17751 (package
17752 (name "emacs-markup-faces")
17753 (version "1.0.0")
17754 (source
17755 (origin
17756 (method url-fetch)
17757 (uri (string-append "https://stable.melpa.org/packages/markup-faces-"
17758 version ".el"))
17759 (sha256
17760 (base32
17761 "124dxbaa25fwxnpwsygpz7pw6da6dnnw7y2lic3jf8rgz7lw4v32"))))
17762 (build-system emacs-build-system)
17763 (home-page "https://github.com/sensorflo/markup-faces")
17764 (synopsis "Collection of Emacs faces for markup language modes")
17765 (description "emacs-markup-faces is like font-lock-faces, but tailored for
17766 markup languages instead programming languages. The sub group markup-faces-text
17767 is also intended for 'text viewing modes' such as info or (wo)man. This gives a
17768 common look and feel, or let's say theme, across different markup language modes
17769 and 'text viewing modes' respectively.")
17770 (license license:gpl3+)))
17771
17772 (define-public emacs-adoc-mode
17773 (package
17774 (name "emacs-adoc-mode")
17775 (version "0.6.6")
17776 (source
17777 (origin
17778 (method git-fetch)
17779 (uri (git-reference
17780 (url "https://github.com/sensorflo/adoc-mode")
17781 (commit (string-append "V" version))))
17782 (file-name (git-file-name name version))
17783 (sha256
17784 (base32
17785 "0kp2aafjhqxz3mjr9hkkss85r4n51chws5a2qj1xzb63dh36liwm"))))
17786 (build-system emacs-build-system)
17787 (arguments
17788 `(#:phases
17789 (modify-phases %standard-phases
17790 ;; See: https://github.com/sensorflo/adoc-mode/issues/39.
17791 (add-after 'unpack 'disable-failing-tests
17792 (lambda _
17793 (let-syntax
17794 ((disable-tests
17795 (syntax-rules ()
17796 ((_ file ())
17797 (syntax-error "test names list must not be empty"))
17798 ((_ file (test-name ...))
17799 (substitute* file
17800 (((string-append "^\\(ert-deftest " test-name ".*") all)
17801 (string-append all "(skip-unless nil)\n")) ...)))))
17802 (disable-tests "adoc-mode-test.el"
17803 ("adoctest-test-tempo-delimited-blocks"
17804 "adoctest-test-tempo-macros"
17805 "adoctest-test-tempo-paragraphs"
17806 "adoctest-test-tempo-passthroug-macros"
17807 "adoctest-test-tempo-quotes")))
17808 #t)))
17809 #:tests? #t
17810 #:test-command '("emacs" "-Q" "-batch"
17811 "-l" "adoc-mode-test.el"
17812 "-f" "ert-run-tests-batch-and-exit")))
17813 (propagated-inputs
17814 `(("emacs-markup-faces" ,emacs-markup-faces)))
17815 (home-page "https://github.com/sensorflo/adoc-mode/wiki")
17816 (synopsis "AsciiDoc mode for Emacs")
17817 (description "This package provides an Emacs major mode for editing AsciiDoc
17818 files. It focuses on highlighting the document to improve readability.")
17819 (license license:gpl2+)))
17820
17821 (define-public emacs-racer
17822 (package
17823 (name "emacs-racer")
17824 (version "1.2")
17825 (source
17826 (origin
17827 (method git-fetch)
17828 (uri
17829 (git-reference
17830 (url "https://github.com/racer-rust/emacs-racer")
17831 (commit version)))
17832 (file-name (git-file-name name version))
17833 (sha256
17834 (base32 "0xj5iki10cg8j8vvqjlw6lfx97k3agwirhchcjnzbnkry48x9qi6"))))
17835 (arguments
17836 `(#:tests? #t
17837 #:test-command '("make" "test")
17838 #:phases
17839 (modify-phases %standard-phases
17840 (add-before 'check 'fix-makefile
17841 (lambda _
17842 (substitute* "Makefile"
17843 (("\\$\\{CASK\\} exec ") ""))
17844 #t)))))
17845 (native-inputs
17846 `(("emacs-ert-runner" ,emacs-ert-runner)
17847 ("emacs-undercover" ,emacs-undercover)))
17848 (propagated-inputs
17849 `(("emacs-dash" ,emacs-dash)
17850 ("emacs-f" ,emacs-f)
17851 ("emacs-pos-tip" ,emacs-pos-tip)
17852 ("emacs-rust-mode" ,emacs-rust-mode)
17853 ("emacs-s" ,emacs-s)))
17854 (build-system emacs-build-system)
17855 (home-page "https://github.com/racer-rust/emacs-racer")
17856 (synopsis "Racer support for Emacs")
17857 (description
17858 "This is the official Emacs package for Racer. It supports code
17859 completion of variables, functions and modules. It can also jump to
17860 definition of functions and types, and show a help buffer based on the
17861 docstring of the thing at point.")
17862 (license license:expat)))
17863
17864 (define-public emacs-rust-mode
17865 (package
17866 (name "emacs-rust-mode")
17867 (version "0.4.0")
17868 (source (origin
17869 (method git-fetch)
17870 (uri (git-reference
17871 (url "https://github.com/rust-lang/rust-mode")
17872 (commit version)))
17873 (file-name (git-file-name name version))
17874 (sha256
17875 (base32
17876 "0bcrklyicxh032rrp585rl5mxd26nb61dp6r5bl935rlcmxzsczh"))))
17877 (build-system emacs-build-system)
17878 (arguments
17879 `(#:phases
17880 (modify-phases %standard-phases
17881 (replace 'check
17882 (lambda _
17883 (invoke "sh" "run_rust_emacs_tests.sh"))))))
17884 (home-page "https://github.com/rust-lang/rust-mode")
17885 (synopsis "Major Emacs mode for editing Rust source code")
17886 (description "This package provides a major Emacs mode for editing Rust
17887 source code.")
17888 (license (list license:expat
17889 license:asl2.0))))
17890
17891 (define-public emacs-ztree
17892 (let ((commit "c54425a094353ec40a8179f9eab3596f76c6cf94"))
17893 (package
17894 (name "emacs-ztree")
17895 (version (git-version "1.0.5" "1" commit))
17896 (source
17897 (origin
17898 (method git-fetch)
17899 (uri (git-reference
17900 (url "https://github.com/fourier/ztree")
17901 (commit commit)))
17902 (file-name (git-file-name name version))
17903 (sha256
17904 (base32
17905 "0j8fpxds8m1zi04nrs8vv21091abvh4n8ab76f1sgdxnp4l5cfb0"))))
17906 (build-system emacs-build-system)
17907 (home-page "https://github.com/fourier/ztree")
17908 (synopsis "Directory tree comparison mode for Emacs")
17909 (description "Ztree is a project dedicated to implementation of several
17910 text-tree applications inside GNU Emacs. It consists of 2 subprojects:
17911 @command{ztree-diff} and @command{ztree-dir} (the basis of
17912 @command{ztree-diff}).")
17913 (license license:gpl3))))
17914
17915 (define-public emacs-helm-org-contacts
17916 (let ((commit "e7f11615802df55bb8b679450b5a5ef82a9081f9"))
17917 (package
17918 (name "emacs-helm-org-contacts")
17919 (version (git-version "20200310" "1" commit))
17920 (source
17921 (origin
17922 (method git-fetch)
17923 (uri (git-reference
17924 (url "https://github.com/tmalsburg/helm-org-contacts")
17925 (commit commit)))
17926 (file-name (git-file-name name version))
17927 (sha256
17928 (base32
17929 "06a1gbrq3qcfsn0kyv4i24x1xxfrrwqa3kgfj4xa4va88q2vqyb5"))))
17930 (build-system emacs-build-system)
17931 (propagated-inputs
17932 `(("emacs-dash" ,emacs-dash)
17933 ("emacs-helm" ,emacs-helm)
17934 ("emacs-s" ,emacs-s)))
17935 (home-page "https://github.com/tmalsburg/helm-org-contacts")
17936 (synopsis "Helm source for org-contacts")
17937 (description "This Helm source can be used to search contacts stored in
17938 org-contacts format. There are actions for inserting postal addresses, email
17939 addresses, and phone numbers in the buffer where @command{helm-org-contacts}
17940 was called.")
17941 (license license:gpl3))))
17942
17943 (define-public emacs-dired-du
17944 (package
17945 (name "emacs-dired-du")
17946 (version "0.5.2")
17947 (source
17948 (origin
17949 (method url-fetch)
17950 (uri (string-append
17951 "https://elpa.gnu.org/packages/dired-du-" version ".tar"))
17952 (sha256
17953 (base32 "0vhph7vcicsiq28b10h3b4dvnhckcy4gccpdgsad5j7pwa5k26m1"))))
17954 (build-system emacs-build-system)
17955 (home-page "https://elpa.gnu.org/packages/dired-du.html")
17956 (synopsis "Dired with recursive directory sizes")
17957 (description
17958 "Display the recursive size of directories in Dired.
17959 This file defines a minor mode @command{dired-du-mode} to show the recursive
17960 size of directories in Dired buffers. If @command{du} program is available,
17961 then the directory sizes are obtained with it. Otherwise, the directory sizes
17962 are obtained with Lisp. The former is faster and provide a more precise
17963 value. For directories where the user doesn't have read permission, the
17964 recursive size is not obtained. Once this mode is enabled, every new Dired
17965 buffer displays recursive dir sizes.")
17966 (license license:gpl3+)))
17967
17968 (define-public emacs-dired-rsync
17969 (package
17970 (name "emacs-dired-rsync")
17971 (version "0.4")
17972 (source (origin
17973 (method git-fetch)
17974 (uri (git-reference
17975 (url "https://github.com/stsquad/dired-rsync")
17976 (commit version)))
17977 (file-name (git-file-name name version))
17978 (sha256
17979 (base32
17980 "0jzbn0izxqgz719gb6fpr60zbcb6w1ama13ngpvrig82nlhs37fv"))))
17981 (build-system emacs-build-system)
17982 (propagated-inputs
17983 `(("emacs-s" ,emacs-s)
17984 ("emacs-dash" ,emacs-dash)))
17985 (home-page "https://github.com/stsquad/dired-rsync/")
17986 (synopsis "Support for rsync from Emacs dired buffers")
17987 (description "This package adds a single command @code{dired-rsync} which
17988 allows the user to copy marked files in a dired buffer via @code{rsync}. This
17989 is useful, especially for large files, because the copy happens in the
17990 background and doesn’t lock up Emacs. It is also more efficient than using
17991 tramps own encoding methods for moving data between systems.")
17992 (license license:gpl3+)))
17993
17994 (define-public emacs-pcre2el
17995 ;; Last release is very old so we get the latest commit.
17996 (let ((commit "0b5b2a2c173aab3fd14aac6cf5e90ad3bf58fa7d"))
17997 (package
17998 (name "emacs-pcre2el")
17999 (version (git-version "1.8" "1" commit))
18000 (source
18001 (origin
18002 (method git-fetch)
18003 (uri (git-reference
18004 (url "https://github.com/joddie/pcre2el")
18005 (commit commit)))
18006 (file-name (git-file-name name version))
18007 (sha256
18008 (base32
18009 "14br6ad138qx1z822wqssswqiihxiynz1k69p6mcdisr2q8yyi1z"))))
18010 (build-system emacs-build-system)
18011 (home-page "https://github.com/joddie/pcre2el")
18012 (synopsis "Convert between PCRE, Emacs and rx regexp syntax")
18013 (description "@code{pcre2el} or @code{rxt} (RegeXp Translator or RegeXp
18014 Tools) is a utility for working with regular expressions in Emacs, based on a
18015 recursive-descent parser for regexp syntax. In addition to converting (a
18016 subset of) PCRE syntax into its Emacs equivalent, it can do the following:
18017
18018 @itemize
18019 @item convert Emacs syntax to PCRE
18020 @item convert either syntax to @code{rx}, an S-expression based regexp syntax
18021 @item untangle complex regexps by showing the parse tree in @code{rx} form and
18022 highlighting the corresponding chunks of code
18023 @item show the complete list of strings (productions) matching a regexp,
18024 provided the list is finite
18025 @item provide live font-locking of regexp syntax (so far only for Elisp
18026 buffers – other modes on the TODO list).
18027 @end itemize\n")
18028 (license license:gpl3))))
18029
18030 (define-public emacs-magit-todos
18031 (package
18032 (name "emacs-magit-todos")
18033 (version "1.4.1")
18034 (source
18035 (origin
18036 (method git-fetch)
18037 (uri (git-reference
18038 (url "https://github.com/alphapapa/magit-todos")
18039 (commit version)))
18040 (file-name (git-file-name name version))
18041 (sha256
18042 (base32
18043 "1rcl6j53yabxqk3jzgaxvm3wqq7rayf1hdib2v2fapw5b0layym6"))))
18044 (build-system emacs-build-system)
18045 (propagated-inputs
18046 `(("emacs-async" ,emacs-async)
18047 ("emacs-dash" ,emacs-dash)
18048 ("emacs-f" ,emacs-f)
18049 ("emacs-hl-todo" ,emacs-hl-todo)
18050 ("magit" ,emacs-magit)
18051 ("emacs-pcre2el" ,emacs-pcre2el)
18052 ("emacs-s" ,emacs-s)))
18053 (home-page "https://github.com/alphapapa/magit-todos")
18054 (synopsis "Show source files' TODOs (and FIXMEs, etc) in Magit status buffer")
18055 (description "This package displays keyword entries from source code
18056 comments and Org files in the Magit status buffer. Activating an item jumps
18057 to it in its file. By default, it uses keywords from @code{hl-todo}, minus a
18058 few (like NOTE).")
18059 (license license:gpl3)))
18060
18061 (define-public emacs-git-annex
18062 ;; Unreleased version has a fontification fix.
18063 (let ((commit "1324d3f23c534fe79391a2c256bb8803054e383b")
18064 (revision "2"))
18065 (package
18066 (name "emacs-git-annex")
18067 (version (git-version "1.1" revision commit))
18068 (source
18069 (origin
18070 (method git-fetch)
18071 (uri (git-reference
18072 (url "https://github.com/jwiegley/git-annex-el")
18073 (commit commit)))
18074 (file-name (git-file-name name version))
18075 (sha256
18076 (base32
18077 "1lfky2nsrlndlbvk6vwbswnvbvkz1sxgg0n3r5q6xykdkjym0lrh"))))
18078 (build-system emacs-build-system)
18079 (home-page "https://github.com/jwiegley/git-annex-el")
18080 (synopsis "Emacs integration for git-annex")
18081 (description "Enhances Dired and buffers visiting annex files with
18082 git-annex functionality. In Dired, the names of annex files are shortened by
18083 hiding the symbolic links and fontified based on whether content is present.
18084 Commands for performing some common operations (e.g., unlocking and adding
18085 files) are provided.")
18086 (license license:gpl2+))))
18087
18088 (define-public emacs-hackernews
18089 (let ((commit "2362d7b00e59da7caddc8c0adc24dccb42fddef9")
18090 (revision "2"))
18091 (package
18092 (name "emacs-hackernews")
18093 (version (git-version "0.5.0" revision commit))
18094 (source
18095 (origin
18096 (method git-fetch)
18097 (uri (git-reference
18098 (url "https://github.com/clarete/hackernews.el")
18099 (commit commit)))
18100 (file-name (git-file-name name version))
18101 (sha256
18102 (base32
18103 "1hcc5b173yzcvvd2ls3jxrmsw2w9bi21m9hcpcirkn0nh93ywadv"))))
18104 (build-system emacs-build-system)
18105 (home-page "https://github.com/clarete/hackernews.el")
18106 (synopsis "Hacker News client for Emacs")
18107 (description "The @command{hackernews} package is able to fetch stories
18108 from six different Hacker News feeds, namely top, new, best, ask, show and job
18109 stories. The default feed is top stories, which corresponds to the Hacker
18110 News homepage.")
18111 (license license:gpl3))))
18112
18113 (define-public emacs-youtube-dl
18114 (let ((commit "af877b5bc4f01c04fccfa7d47a2c328926f20ef4")
18115 (revision "2"))
18116 (package
18117 (name "emacs-youtube-dl")
18118 (version (git-version "1.0" "2" commit))
18119 (source
18120 (origin
18121 (method git-fetch)
18122 (uri (git-reference
18123 (url "https://github.com/skeeto/youtube-dl-emacs/")
18124 (commit commit)))
18125 (file-name (git-file-name name version))
18126 (sha256
18127 (base32
18128 "0zkl9jkjbx0lmp9ylv4rqg1zwqibk053s4rp7s1h0i18nzk7vn8j"))))
18129 (build-system emacs-build-system)
18130 (inputs
18131 `(("youtube-dl" ,youtube-dl)))
18132 (arguments
18133 `(#:phases
18134 (modify-phases %standard-phases
18135 (add-after 'unpack 'configure
18136 (lambda* (#:key inputs #:allow-other-keys)
18137 (let ((youtube-dl (assoc-ref inputs "youtube-dl")))
18138 ;; .el is read-only in git.
18139 (chmod "youtube-dl.el" #o644)
18140 ;; Specify the absolute file names of the various
18141 ;; programs so that everything works out-of-the-box.
18142 (emacs-substitute-variables
18143 "youtube-dl.el"
18144 ("youtube-dl-program"
18145 (string-append youtube-dl "/bin/youtube-dl")))))))))
18146 (home-page "https://github.com/skeeto/youtube-dl-emacs/")
18147 (synopsis "Emacs youtube-dl download manager")
18148 (description "This package manages a video download queue for
18149 @command{youtube-dl}, which serves as the back end. It manages a single
18150 @command{youtube-dl} subprocess, downloading one video at a time. New videos
18151 can be queued at any time.")
18152 (license license:unlicense))))
18153
18154 (define-public emacs-org-web-tools
18155 (package
18156 (name "emacs-org-web-tools")
18157 (version "1.0")
18158 (source
18159 (origin
18160 (method git-fetch)
18161 (uri (git-reference
18162 (url "https://github.com/alphapapa/org-web-tools")
18163 (commit version)))
18164 (file-name (git-file-name name version))
18165 (sha256
18166 (base32
18167 "0kak9h5ny00d39gnwspv53nadnag01brw2fq9zk5wpfc91h9bjng"))))
18168 (build-system emacs-build-system)
18169 (propagated-inputs
18170 `(("emacs-dash" ,emacs-dash)
18171 ("emacs-esxml" ,emacs-esxml)
18172 ("emacs-s" ,emacs-s)))
18173 (inputs
18174 `(("pandoc" ,ghc-pandoc)))
18175 (arguments
18176 `(#:phases
18177 (modify-phases %standard-phases
18178 (add-after 'unpack 'patch-exec-paths
18179 (lambda* (#:key inputs #:allow-other-keys)
18180 (let ((pandoc (assoc-ref inputs "pandoc")))
18181 (substitute* "org-web-tools.el"
18182 (("\"pandoc\"") (string-append "\"" pandoc "/bin/pandoc\"")))
18183 #t))))))
18184 (home-page "https://github.com/alphapapa/org-web-tools")
18185 (synopsis "Display/Process web page as Org-mode content")
18186 (description "This package contains library functions and commands useful
18187 for retrieving web page content and processing it into Org-mode content.
18188
18189 For example, you can copy a URL to the clipboard or kill-ring, then run a
18190 command that downloads the page, isolates the “readable” content with
18191 @command{eww-readable}, converts it to Org-mode content with Pandoc, and
18192 displays it in an Org-mode buffer. Another command does all of that but
18193 inserts it as an Org entry instead of displaying it in a new buffer.")
18194 (license license:gpl3+)))
18195
18196 (define-public emacs-blimp
18197 (let ((commit "e420763d6d18b5d1be552cdbc47f91418343db03"))
18198 (package
18199 (name "emacs-blimp")
18200 (version (git-version "0.0.0" "1" commit))
18201 (source
18202 (origin
18203 (method git-fetch)
18204 (uri (git-reference
18205 (url "https://github.com/walseb/blimp")
18206 (commit commit)))
18207 (file-name (git-file-name name version))
18208 (sha256
18209 (base32
18210 "09wmhpym516b81dfq8smdmysh1fn610dzlyvyl2rkx8600f0fizd"))))
18211 (build-system emacs-build-system)
18212 (propagated-inputs
18213 `(("emacs-eimp" ,emacs-eimp)))
18214 (home-page "https://github.com/walseb/blimp")
18215 (synopsis "Emacs wrapper around all Imagemagick commands")
18216 (description "Blimp (Bustling Image Manipulation Package) is a complete
18217 wrapper around all Imagemagick commands with descriptions, autocompletion (for
18218 some commands) and hints displayed in prompt using @command{eimp.el} to
18219 execute its commands and resize images.")
18220 (license license:gpl3+))))
18221
18222 (define-public emacs-synosaurus
18223 (let ((commit "8bf95b935976ec0a1964cf175ed57cc5f6f93bdb"))
18224 (package
18225 (name "emacs-synosaurus")
18226 (version (git-version "0.1.0" "1" commit))
18227 (source
18228 (origin
18229 (method git-fetch)
18230 (uri (git-reference
18231 (url "https://github.com/hpdeifel/synosaurus")
18232 (commit commit)))
18233 (file-name (git-file-name name version))
18234 (sha256
18235 (base32
18236 "15by9jccab6kyplxa6k0glzaivxkqdigl33gl2qi2cvy6f2q7gva"))))
18237 (build-system emacs-build-system)
18238 (propagated-inputs
18239 `(("wordnet" ,wordnet)))
18240 (arguments
18241 `(#:phases
18242 (modify-phases %standard-phases
18243 (add-after 'unpack 'configure
18244 (lambda* (#:key inputs outputs #:allow-other-keys)
18245 (let ((wn (assoc-ref inputs "wordnet")))
18246 ;; .el is read-only in git.
18247 (chmod "synosaurus-wordnet.el" #o644)
18248 ;; Specify the absolute file names of the various
18249 ;; programs so that everything works out-of-the-box.
18250 (emacs-substitute-variables
18251 "synosaurus-wordnet.el"
18252 ("wordnet-command"
18253 (string-append wn "/bin/wn")))))))))
18254 (home-page "https://github.com/hpdeifel/synosaurus")
18255 (synopsis "Extensible thesaurus mode for Emacs")
18256 (description "Synosaurus is a thesaurus fontend for Emacs with pluggable
18257 backends, including the @command{wordnet} offline backend.")
18258 (license license:gpl3+))))
18259
18260 (define-public emacs-editorconfig
18261 (package
18262 (name "emacs-editorconfig")
18263 (version "0.8.1")
18264 (source
18265 (origin
18266 (method git-fetch)
18267 (uri (git-reference
18268 (url "https://github.com/editorconfig/editorconfig-emacs")
18269 (commit (string-append "v" version))))
18270 (file-name (git-file-name name version))
18271 (sha256
18272 (base32
18273 "1djlhkap7zddknzvjsjz0agpfsms1ih05zcpg1bikid2vs4gddyr"))))
18274 (build-system emacs-build-system)
18275 (home-page "https://github.com/editorconfig/editorconfig-emacs")
18276 (synopsis "Define and maintain consistent coding styles between different
18277 editors and IDEs")
18278 (description "The EditorConfig project consists of a file format for
18279 defining coding styles and a collection of text editor plugins that enable
18280 editors to read the file format and adhere to defined styles. EditorConfig
18281 files are easily readable and they work nicely with version control systems.")
18282 (license license:gpl3+)))
18283
18284 (define-public emacs-all-the-icons
18285 (package
18286 (name "emacs-all-the-icons")
18287 (version "4.0.1")
18288 (source
18289 (origin
18290 (method git-fetch)
18291 (uri (git-reference
18292 (url "https://github.com/domtronn/all-the-icons.el")
18293 (commit version)))
18294 (file-name (git-file-name name version))
18295 (sha256
18296 (base32 "0yh7gnv9xfqn8q4rzaa6wpyn9575vyfxy7d3afly2mqsb367fgm5"))))
18297 (build-system emacs-build-system)
18298 (arguments
18299 `(#:include '("\\.el$" "^data/" "^fonts/")
18300 ;; Compiling "test/" fails with "Symbol’s value as variable is void:
18301 ;; all-the-icons--root-code". Ignoring tests.
18302 #:exclude '("^test/")
18303 #:tests? #f))
18304 (propagated-inputs
18305 `(("f" ,emacs-f)
18306 ("memoize" ,emacs-memoize)))
18307 (home-page "https://github.com/domtronn/all-the-icons.el")
18308 (synopsis "Collect icon fonts and propertize them within Emacs")
18309 (description
18310 "All-the-icons is a utility package to collect various icon fonts and
18311 propertize them within Emacs. Icon fonts allow you to propertize and format
18312 icons the same way you would normal text. This enables things such as better
18313 scaling of and anti aliasing of the icons.")
18314 ;; Package is released under Expat license. Elisp files are licensed
18315 ;; under GPL3+. Fonts come with various licenses: Expat for
18316 ;; "all-the-icons.ttf" and "file-icons.ttf", Apache License 2.0 for
18317 ;; "material-design-icons.ttf", and SIL OFL 1.1 for "fontawesome.ttf",
18318 ;; "ocitcons.ttf" and "weathericons.ttf".
18319 (license
18320 (list license:expat license:gpl3+ license:silofl1.1 license:asl2.0))))
18321
18322 (define-public emacs-wttrin
18323 (let ((commit "df5427ce2a5ad4dab652dbb1c4a1834d7ddc2abc")
18324 (revision "1"))
18325 (package
18326 (name "emacs-wttrin")
18327 (version (git-version "0.2.0" revision commit))
18328 (source (origin
18329 (method git-fetch)
18330 (uri (git-reference
18331 (url "https://github.com/bcbcarl/emacs-wttrin")
18332 (commit commit)))
18333 (file-name (git-file-name name version))
18334 (sha256
18335 (base32
18336 "1ai655f10iayb4vw0ass2j3x83f4vsv90326mnywkzfl3sxd432z"))))
18337 (build-system emacs-build-system)
18338 (propagated-inputs
18339 `(("emacs-xterm-color" ,emacs-xterm-color)))
18340 (home-page "https://github.com/bcbcarl/emacs-wttrin")
18341 (synopsis "Frontend for weather web service @url{wttr.in}")
18342 (description "This package provides local weather information from
18343 @url{wttr.in}.")
18344 (license license:expat))))
18345
18346 (define-public emacs-browse-kill-ring
18347 (let ((commit "1ef72cc6accd94cd7032c02b1b2c78ae7f1d1965")
18348 (revision "0"))
18349 (package
18350 (name "emacs-browse-kill-ring")
18351 (version (git-version "2.0.0" revision commit))
18352 (source
18353 (origin
18354 (method git-fetch)
18355 (uri (git-reference
18356 (url "https://github.com/browse-kill-ring/browse-kill-ring")
18357 (commit commit)))
18358 (file-name (git-file-name name version))
18359 (sha256
18360 (base32
18361 "0mil32g7hcw376jibs5hdyv00xbaql3m4a27rwqaafg0x59avxdj"))))
18362 (build-system emacs-build-system)
18363 (home-page "https://github.com/browse-kill-ring/browse-kill-ring")
18364 (synopsis "Interactively insert items from kill-ring")
18365 (description
18366 "Did you ever feel that @code{C-y M-y M-y M-y ...} is not a great way
18367 of trying to find that piece of text you know you killed a while back? Then
18368 @code{browse-kill-ring.el} is for you.")
18369 (license license:gpl2+))))
18370
18371 (define-public emacs-powerline
18372 (package
18373 (name "emacs-powerline")
18374 (version "2.4")
18375 (source
18376 (origin
18377 (method git-fetch)
18378 (uri (git-reference
18379 (url "https://github.com/milkypostman/powerline")
18380 (commit version)))
18381 (file-name (git-file-name name version))
18382 (sha256
18383 (base32
18384 "1hp3xp18943n0rlggz55150020ivw8gvi1vyxkr4z8xhpwq4gaar"))))
18385 (build-system emacs-build-system)
18386 (home-page "https://github.com/milkypostman/powerline/")
18387 (synopsis "Mode-line plugin for Emacs")
18388 (description "Powerline is a utility plugin which allows you to create
18389 a better-looking, more functional Emacs mode-line. A collection of predefined
18390 themes comes with the package.")
18391 (license license:gpl3+)))
18392
18393 (define-public emacs-spaceline
18394 (package
18395 (name "emacs-spaceline")
18396 (version "2.0.1")
18397 (source
18398 (origin
18399 (method git-fetch)
18400 (uri (git-reference
18401 (url "https://github.com/TheBB/spaceline")
18402 (commit (string-append "v" version))))
18403 (file-name (git-file-name name version))
18404 (sha256
18405 (base32
18406 "1q8r95zfrh0vxna5ml2pq9b9f66clfqcl4d2qy2aizkvzyxg6skl"))))
18407 (build-system emacs-build-system)
18408 (propagated-inputs
18409 `(("dash" ,emacs-dash)
18410 ("powerline" ,emacs-powerline)
18411 ("s" ,emacs-s)))
18412 (home-page "https://github.com/TheBB/spaceline")
18413 (synopsis "Powerline theme from Spacemacs")
18414 (description "Spaceline provides Spacemacs' mode-line theme.
18415 This package provides features for three kinds of users.
18416
18417 @itemize
18418 @item You just want to use the Spacemacs mode-line theme and forget about it.
18419 @item You want to use something similar to the Spacemacs mode-line theme, but
18420 with a handful of easy tweaks.
18421 @item You want an easy-to-use library for building your own mode-line from
18422 scratch, and you think the Spacemacs theme looks good.
18423 @end itemize")
18424 (license license:gpl3+)))
18425
18426 (define-public emacs-spaceline-next
18427 (let ((commit "1b26af2c1a701481ac5d90928fe0200e389756c3")
18428 (last-release-version "2.0.1")
18429 (revision "0"))
18430 (package
18431 (inherit emacs-spaceline)
18432 (name "emacs-spaceline-next")
18433 (version (git-version last-release-version revision commit))
18434 (source
18435 (origin
18436 (method git-fetch)
18437 (uri (git-reference
18438 (url "https://github.com/TheBB/spaceline.git")
18439 (commit commit)))
18440 (sha256
18441 (base32 "11lwckqcgzsahrkkm5wk1ph4kc7d4yz05r7251g8c9f0q6vdj9dp"))
18442 (file-name (git-file-name name version)))))))
18443
18444 (define-public emacs-column-marker
18445 (package
18446 (name "emacs-column-marker")
18447 (version "9")
18448 (source
18449 (origin
18450 (method url-fetch)
18451 (uri "https://www.emacswiki.org/emacs/download/column-marker.el")
18452 (sha256 (base32 "05bv198zhqw5hqq6cr11mhz02dpca74hhp1ycwq369m0yb2naxy9"))))
18453 (build-system emacs-build-system)
18454 (home-page "https://www.emacswiki.org/emacs/ColumnMarker")
18455 (synopsis "Emacs mode for highlighting columns")
18456 (description
18457 "With @code{column-marker.el} you can highlight any number of text columns.
18458 Three such highlight column markers are provided by default. This is
18459 especially useful for languages like COBOL or Fortran where certain columns
18460 have special meaning. It is also handy for aligning text across long vertical
18461 distances. Multi-column characters, such as @kbd{TAB} are treated
18462 correctly.")
18463 (license license:gpl2+)))
18464
18465 (define-public emacs-slime-repl-ansi-color
18466 (let ((commit "ad03263f5d4de473bc173b64a6fc3dc1106393d7"))
18467 (package
18468 (name "emacs-slime-repl-ansi-color")
18469 (version (git-version "0.0.0" "1" commit))
18470 (source (origin
18471 (method git-fetch)
18472 (uri (git-reference
18473 (url "https://github.com/deadtrickster/slime-repl-ansi-color")
18474 (commit commit)))
18475 (file-name (git-file-name name version))
18476 (sha256
18477 (base32
18478 "0bpg7gxz310x7bnlg324c507sxc5gxwwz6h64h6kdq141r73vbi4"))))
18479 (build-system emacs-build-system)
18480 (home-page "https://github.com/deadtrickster/slime-repl-ansi-color")
18481 (synopsis "Color ANSI codes in the REPL of SLIME")
18482 (description "Color ANSI codes in the REPL of SLIME")
18483 (license license:gpl2+))))
18484
18485 (define-public emacs-helm-slime
18486 (package
18487 (name "emacs-helm-slime")
18488 (version "0.4.0")
18489 (source (origin
18490 (method git-fetch)
18491 (uri (git-reference
18492 (url "https://github.com/emacs-helm/helm-slime")
18493 (commit version)))
18494 (file-name (git-file-name name version))
18495 (sha256
18496 (base32
18497 "0mrpjhpijdrq353fnfvdj9l9xfsz390qlcvifcair9732ma7i8l0"))))
18498 (build-system emacs-build-system)
18499 (propagated-inputs
18500 `(("emacs-helm" ,emacs-helm)
18501 ("emacs-slime" ,emacs-slime)))
18502 (home-page "https://github.com/emacs-helm/helm-slime")
18503 (synopsis "Helm for SLIME, the Superior Lisp Interaction Mode for Emacs")
18504 (description "Helm-SLIME defines a few new commands:
18505
18506 @itemize
18507 @item helm-slime-complete: Select a symbol from the SLIME completion systems.
18508 @item helm-slime-list-connections: Yet another slime-list-connections with Helm.
18509 @item: helm-slime-apropos: Yet another slime-apropos with Helm.
18510 @item helm-slime-repl-history: Select an input from the SLIME REPL history and insert it.
18511 @end itemize\n")
18512 (license license:gpl3+)))
18513
18514 (define-public emacs-helm-sly
18515 (package
18516 (name "emacs-helm-sly")
18517 (version "0.4.1")
18518 (source (origin
18519 (method git-fetch)
18520 (uri (git-reference
18521 (url "https://github.com/emacs-helm/helm-sly")
18522 (commit version)))
18523 (file-name (git-file-name name version))
18524 (sha256
18525 (base32
18526 "0b2dx9nzh5233lkix3lz81c9cv626lk2hjpcjiikwvyp6y0q92ys"))))
18527 (build-system emacs-build-system)
18528 (propagated-inputs
18529 `(("emacs-helm" ,emacs-helm)
18530 ("emacs-sly" ,emacs-sly)))
18531 (home-page "https://github.com/emacs-helm/helm-sly")
18532 (synopsis "Helm for SLY, a Common Lisp interaction mode for Emacs")
18533 (description "Helm-SLY defines a few new commands:
18534
18535 @itemize
18536 @item helm-sly-list-connections: Yet another Lisp connection list with Helm.
18537 @item: helm-sly-apropos: Yet another @command{apropos} with Helm.
18538 @item helm-sly-mini: Like @command{helm-sly-list-connections}, but include an
18539 extra source of Lisp-related buffers, like the events buffer or the scratch
18540 buffer.
18541 @end itemize\n")
18542 (license license:gpl3+)))
18543
18544 (define-public emacs-gtk-look
18545 (package
18546 (name "emacs-gtk-look")
18547 (version "29")
18548 (source (origin
18549 (method url-fetch)
18550 (uri "https://download.tuxfamily.org/user42/gtk-look.el")
18551 (sha256
18552 (base32
18553 "14p2nwrd51cr1v06fxbjjn6jdrkf9d6vcxhmscm0kl677s25ypsp"))))
18554 (build-system emacs-build-system)
18555 (arguments
18556 `(#:phases
18557 (modify-phases %standard-phases
18558 (add-after 'unpack 'configure
18559 (lambda _
18560 ;; File is read-only.
18561 (chmod "gtk-look.el" #o644)
18562 (emacs-substitute-variables "gtk-look.el"
18563 ("gtk-lookup-devhelp-indices"
18564 '(list (expand-file-name "~/.guix-profile/share/gtk-doc/html/*/*.devhelp*"))))
18565 #t)))))
18566 (home-page "http://user42.tuxfamily.org/gtk-look/index.html")
18567 (synopsis "Find and display HTML documentation for GTK, GNOME and Glib")
18568 (description "@command{gtk-look} finds and displays HTML documentation for
18569 GTK, GNOME and Glib functions and variables in Emacs, similar to what
18570 info-lookup-symbol does for info files (C-h S). The documentation is expected
18571 to be devhelp indexes with HTML files. The location of the indexes can be
18572 customized. In addition to C code development @command{gtk-look} is good for
18573
18574 @itemize
18575 @item @command{perl-gtk2}, recognising class funcs like
18576 @command{Gtk2::Label->new} and bare method names like @command{set_text}.
18577 @item @command{guile-gnome}, recognising methods like @command{set-text} and
18578 classes like @command{<gtk-window>}.
18579 @end itemize\n")
18580 (license license:gpl3+)))
18581
18582 (define-public emacs-ov
18583 (package
18584 (name "emacs-ov")
18585 (version "1.0.6")
18586 (source (origin
18587 (method git-fetch)
18588 (uri (git-reference
18589 (url "https://github.com/ShingoFukuyama/ov.el")
18590 (commit version)))
18591 (file-name (git-file-name name version))
18592 (sha256
18593 (base32
18594 "0qxk2rf84j86syxi8xknsq252irwg7sz396v3bb4wqz4prpj0kzc"))))
18595 (build-system emacs-build-system)
18596 (home-page "https://github.com/ShingoFukuyama/ov.el")
18597 (synopsis "Overlay library for Emacs Lisp")
18598 (description "@code{ov.el} provides a simple way to manipulate overlays in
18599 Emacs.")
18600 (license license:gpl3+)))
18601
18602 (define-public emacs-matrix-client
18603 (let ((commit "a0623667b07a4bf60980c97b078e9faed97ace79"))
18604 (package
18605 (name "emacs-matrix-client")
18606 (version (git-version "0.0.0" "4" commit))
18607 (source (origin
18608 (method git-fetch)
18609 (uri (git-reference
18610 (url "https://github.com/jgkamat/matrix-client-el")
18611 (commit commit)))
18612 (file-name (git-file-name name version))
18613 (sha256
18614 (base32
18615 "1zya8id3y9wzjaj7nplq7br6nhm3lsskv0fkn1xr1y77fzcfgcdb"))))
18616 (build-system emacs-build-system)
18617 (arguments
18618 `(#:phases
18619 (modify-phases %standard-phases
18620 (add-after 'unpack 'add-missing-require
18621 ;; Fix a filter error at runtime due to a missing require.
18622 ;; Reported upstream:
18623 ;; <https://github.com/alphapapa/matrix-client.el/issues/76>
18624 (lambda _
18625 (substitute* "matrix-client-room.el"
18626 (("\\(require 'dash-functional\\)" all)
18627 (string-append all "\n" "(require 'anaphora)")))
18628 #t)))))
18629 (propagated-inputs
18630 `(("a" ,emacs-a)
18631 ("anaphora" ,emacs-anaphora)
18632 ("dash" ,emacs-dash)
18633 ("esxml" ,emacs-esxml)
18634 ("f" ,emacs-f)
18635 ("frame-purpose" ,emacs-frame-purpose)
18636 ("ht" ,emacs-ht)
18637 ("ov" ,emacs-ov)
18638 ("rainbow-identifiers" ,emacs-rainbow-identifiers)
18639 ("request" ,emacs-request)
18640 ("s" ,emacs-s)
18641 ("tracking" ,emacs-tracking)))
18642 (home-page "https://github.com/jgkamat/matrix-client-el")
18643 (synopsis "Matrix client for Emacs")
18644 (description "@code{matrix-client} is a simple chat UI to Matrix.org
18645 rooms. It also provides an API which allows Emacs to seamlessly create
18646 RPC channels with users and other software.")
18647 (license license:gpl3+))))
18648
18649 (define-public emacs-sesman
18650 (package
18651 (name "emacs-sesman")
18652 (version "0.3.4")
18653 (source
18654 (origin
18655 (method git-fetch)
18656 (uri (git-reference
18657 (url "https://github.com/vspinu/sesman")
18658 (commit (string-append "v" version))))
18659 (file-name (git-file-name name version))
18660 (sha256
18661 (base32
18662 "0z5jb4vpbjsi63w3wjy6d2lgz33qdfvrgfb3bszv4hcf6a96y7fc"))))
18663 (build-system emacs-build-system)
18664 (arguments
18665 `(#:phases
18666 (modify-phases %standard-phases
18667 (add-after 'unpack 'set-shell
18668 ;; Setting the SHELL environment variable is required for the tests
18669 ;; to find sh.
18670 (lambda _
18671 (setenv "SHELL" (which "sh"))
18672 #t)))
18673 #:tests? #t
18674 #:test-command '("make" "test")))
18675 (home-page "https://github.com/vspinu/sesman")
18676 (synopsis "Session manager for Emacs based IDEs")
18677 (description "Sesman provides facilities for session management and
18678 interactive session association with the current contexts (project, directory,
18679 buffers). While sesman can be used to manage arbitrary sessions, it primary
18680 targets the Emacs based IDEs (CIDER, ESS, Geiser, Robe, SLIME etc.)")
18681 (license license:gpl3+)))
18682
18683 (define-public emacs-buttercup
18684 (package
18685 (name "emacs-buttercup")
18686 (version "1.16")
18687 (source
18688 (origin
18689 (method git-fetch)
18690 (uri (git-reference
18691 (url "https://github.com/jorgenschaefer/emacs-buttercup")
18692 (commit (string-append "v" version))))
18693 (file-name (git-file-name name version))
18694 (sha256
18695 (base32
18696 "0dckgcyzsav6ld78bcyrrygy1cz1jvqgav6vy8f6klpmk3r8xrl1"))))
18697 (build-system emacs-build-system)
18698 (arguments
18699 `(#:tests? #t
18700 #:test-command '("make" "test")
18701 #:phases
18702 (modify-phases %standard-phases
18703 (add-after 'install 'install-bin
18704 (lambda* (#:key outputs #:allow-other-keys)
18705 (install-file "bin/buttercup"
18706 (string-append (assoc-ref outputs "out") "/bin"))
18707 #t)))))
18708 (home-page "https://github.com/jorgenschaefer/emacs-buttercup")
18709 (synopsis "Behavior driven emacs lisp testing framework")
18710 (description "Buttercup is a behavior-driven development framework for
18711 testing Emacs Lisp code. It groups related tests so they can share
18712 common set-up and tear-down code, and allows the programmer to \"spy\" on
18713 functions to ensure they are called with the right arguments during testing.")
18714 (license license:gpl3+)))
18715
18716 (define-public emacs-cort
18717 ;; Choosing a recent commit to fix some bugs.
18718 ;; https://github.com/conao3/cort.el/issues/106
18719 (let ((commit "495c3972b92b57a0cb5dd65ce5de9d3c6b8b6509")
18720 (revision "1"))
18721 (package
18722 (name "emacs-cort")
18723 (version (git-version "3.0.5" revision commit))
18724 (source (origin
18725 (method git-fetch)
18726 (uri (git-reference
18727 (url "https://github.com/conao3/cort.el")
18728 (commit commit)))
18729 (file-name (git-file-name name version))
18730 (sha256
18731 (base32
18732 "0f4irq1arh9c7lf9a5bla25am0jy5r6lj8ayb8k9k7lrirzhyk99"))))
18733 (build-system emacs-build-system)
18734 (propagated-inputs
18735 `(("emacs-ansi" ,emacs-ansi)))
18736 (arguments
18737 `(#:tests? #t
18738 #:test-command '("emacs" "--batch" "--quick"
18739 "--directory=." "--load=cort-tests.el"
18740 "--funcall=cort-test-run")))
18741 (home-page "https://github.com/conao3/cort.el")
18742 (synopsis "Unit test framework for the Emacs Lisp")
18743 (description "@code{cort} is a lightweight Emacs Lisp unit test library.")
18744 (license license:gpl3+))))
18745
18746 (define-public emacs-wordnut
18747 (let ((commit "feac531404041855312c1a046bde7ea18c674915")
18748 (revision "0"))
18749 (package
18750 (name "emacs-wordnut")
18751 (version (git-version "0.1" revision commit))
18752 (home-page "https://github.com/gromnitsky/wordnut")
18753 (source (origin
18754 (method git-fetch)
18755 (uri (git-reference (url home-page) (commit commit)))
18756 (sha256
18757 (base32
18758 "1jl0b6g64a9w0q7bfvwha67vgws5xd15b7mkfyb5gkz3pymqhfxn"))
18759 (patches
18760 (search-patches "emacs-wordnut-require-adaptive-wrap.patch"))
18761 (file-name (git-file-name name version))))
18762 (build-system emacs-build-system)
18763 (propagated-inputs
18764 `(("wordnet" ,wordnet)
18765 ("emacs-adaptive-wrap" ,emacs-adaptive-wrap)))
18766 (synopsis "Major mode for WordNet")
18767 (description "This Emacs package provides an interface for
18768 @code{wordnet}. Features include completion, if the query is not found
18769 too ambiguous and navigation in the result buffer.")
18770 (license license:gpl3+))))
18771
18772 (define-public emacs-frame-purpose
18773 (package
18774 (name "emacs-frame-purpose")
18775 (version "1.0")
18776 (source (origin
18777 (method git-fetch)
18778 (uri (git-reference
18779 (url "https://github.com/alphapapa/frame-purpose.el")
18780 (commit version)))
18781 (sha256
18782 (base32
18783 "0jq2aam1yvccw887ighd1wm2xkvk5bv53ffiz3crcl16a255aj4q"))
18784 (file-name (git-file-name name version))))
18785 (build-system emacs-build-system)
18786 (inputs
18787 `(("dash" ,emacs-dash)))
18788 (synopsis "Purpose-specific frames for Emacs")
18789 (description "@code{frame-purpose} makes it easy to open purpose-specific
18790 frames that only show certain buffers, e.g. by buffers’ major mode, their
18791 filename or directory, etc, with custom frame/X-window titles, icons, and
18792 other frame parameters.")
18793 (home-page "https://github.com/alphapapa/frame-purpose.el")
18794 (license license:gpl3+)))
18795
18796 (define-public emacs-arduino-mode
18797 (let ((commit "23ae47c9f28f559e70b790b471f20310e163a39b")
18798 (revision "1")) ;no release yet
18799 (package
18800 (name "emacs-arduino-mode")
18801 (version (git-version "0" revision commit))
18802 (source (origin
18803 (method git-fetch)
18804 (uri (git-reference
18805 (url "https://github.com/stardiviner/arduino-mode")
18806 (commit commit)))
18807 (sha256
18808 (base32
18809 "08vnbz9gpah1l93fzfd87aawrhcnh2v1kyfxgsn88pdwg8awz8rx"))
18810 (file-name (git-file-name name version))))
18811 (build-system emacs-build-system)
18812 (inputs
18813 `(("spinner" ,emacs-spinner)
18814 ("flycheck" ,emacs-flycheck)))
18815 (arguments
18816 `(#:phases
18817 (modify-phases %standard-phases
18818 ;; Emacs complains that "defmethod" and "defgeneric" are obsolete
18819 ;; macros when compiling. Substitute them with the recommended
18820 ;; macros "cl-defmethod" and "cl-defgeneric", respectively.
18821 (add-after 'unpack 'fix-obsolete
18822 (lambda _
18823 (substitute* "ede-arduino.el"
18824 (("defmethod") "cl-defmethod")
18825 (("defgeneric") "cl-defgeneric"))
18826 #t)))))
18827 (synopsis "Emacs major mode for editing Arduino sketches")
18828 (description "Emacs major mode for editing Arduino sketches.")
18829 (home-page "https://github.com/stardiviner/arduino-mode")
18830 (license license:gpl3+))))
18831
18832 (define-public emacs-annalist
18833 (let ((commit "e0601539c9ac0171a684ea3ff6266d215d1d08e6")
18834 (revision "1"))
18835 (package
18836 (name "emacs-annalist")
18837 (version (git-version "1.0.0" revision commit))
18838 (source (origin
18839 (method git-fetch)
18840 (uri (git-reference
18841 (url "https://github.com/noctuid/annalist.el")
18842 (commit commit)))
18843 (sha256
18844 (base32
18845 "10bmimdzpi6cql4sb2hbgdvrza83xbac50bi9qng4z662pfnlaam"))
18846 (file-name (git-file-name name version))))
18847 (build-system emacs-build-system)
18848 (native-inputs
18849 `(("emacs-buttercup" ,emacs-buttercup)
18850 ("emacs-lispy" ,emacs-lispy)
18851 ("emacs-evil" ,emacs-evil)))
18852 (arguments
18853 `(#:phases
18854 (modify-phases %standard-phases
18855 (add-before 'check 'fix-makefile
18856 (lambda _
18857 (substitute* "Makefile"
18858 (("cask exec ") ""))
18859 #t)))
18860 #:tests? #t
18861 #:test-command '("make" "test")))
18862 (home-page "https://github.com/noctuid/annalist.el")
18863 (synopsis "Record and display information with Org headings and tables")
18864 (description "This package allows for keybindings, settings, hooks, and
18865 advice to be recorded and displayed.")
18866 (license license:gpl3+))))
18867
18868 (define-public emacs-general
18869 (let ((commit "a0b17d207badf462311b2eef7c065b884462cb7c")
18870 (revision "4"))
18871 (package
18872 (name "emacs-general")
18873 (version (git-version "0" revision commit))
18874 (source
18875 (origin
18876 (method git-fetch)
18877 (uri (git-reference
18878 (url "https://github.com/noctuid/general.el")
18879 (commit commit)))
18880 (sha256
18881 (base32 "0wn5rk3gkimdklip392mnjrmkymgrb7q9skifi03cbpjam1anzvv"))
18882 (file-name (git-file-name name version))))
18883 (build-system emacs-build-system)
18884 (native-inputs
18885 `(("emacs-buttercup" ,emacs-buttercup)
18886 ("emacs-evil" ,emacs-evil)
18887 ("emacs-which-key" ,emacs-which-key)
18888 ("emacs-use-package" ,emacs-use-package)))
18889 (arguments
18890 `(#:tests? #t
18891 #:test-command '("buttercup" "-L" "test/test-general.el")))
18892 (home-page "https://github.com/noctuid/general.el")
18893 (synopsis "More convenient key definitions in emacs")
18894 (description "@code{general.el} provides a more convenient method for
18895 binding keys in emacs (for both evil and non-evil users). Like
18896 @code{use-package}, which provides a convenient, unified interface for
18897 managing packages, @code{general.el} is intended to provide a convenient,
18898 unified interface for key definitions. While this package does implement some
18899 completely new functionality (such as the ability to make vim-style
18900 keybindings under non-prefix keys with an optional timeout), its primary
18901 purpose is to build on existing functionality to make key definition more
18902 clear and concise. @code{general-define-key} is user-extensible and supports
18903 defining multiple keys in multiple keymaps at once, implicitly wrapping key
18904 strings with (@code{kbd ...}), using named prefix key sequences (like the
18905 leader key in vim), and much more.")
18906 (license license:gpl3+))))
18907
18908 (define-public emacs-tldr
18909 (let ((commit "7203d1be3dcbf12131846ffe06601933fa874d74"))
18910 (package
18911 (name "emacs-tldr")
18912 (version (git-version "0" "1" commit))
18913 (home-page "https://github.com/kuanyui/tldr.el")
18914 (source (origin
18915 (method git-fetch)
18916 (uri (git-reference
18917 (url (string-append home-page ".git"))
18918 (commit commit)))
18919 (sha256
18920 (base32
18921 "1bw6la463l2yfm7rp76ga4makfy4kpxgwi7ni5gxk31w11g26ryk"))
18922 (file-name (git-file-name name version))))
18923 (build-system emacs-build-system)
18924 (propagated-inputs
18925 `(("emacs-request" ,emacs-request)))
18926 (synopsis "Simplified and community-driven man pages for Emacs")
18927 (description "@code{emacs-tldr} allows the user to access tldr pages
18928 from within emacs. The @code{tldr} pages are a community effort to simplify
18929 the man pages with practical examples.")
18930 (license license:wtfpl2))))
18931
18932 (define-public emacs-window-layout
18933 (package
18934 (name "emacs-window-layout")
18935 (version "1.4")
18936 (home-page "https://github.com/kiwanami/emacs-window-layout")
18937 (source (origin
18938 (method git-fetch)
18939 (uri (git-reference
18940 (url home-page)
18941 (commit (string-append "v" version))))
18942 (sha256
18943 (base32
18944 "0wgqi8r844lbx52fn6az8c1n8m681rp6dkfzd54wmdk1ka7zmvv6"))
18945 (file-name (git-file-name name version))))
18946 (build-system emacs-build-system)
18947 (synopsis "Simple window layout management framework for emacs")
18948 (description "A window-layout management library that can split a frame
18949 or a window into some windows according to a layout recipe.")
18950 (license license:gpl3+)))
18951
18952 (define-public emacs-e2wm
18953 (package
18954 (name "emacs-e2wm")
18955 (version "1.4")
18956 (home-page "https://github.com/kiwanami/emacs-window-manager")
18957 (source (origin
18958 (method git-fetch)
18959 (uri (git-reference
18960 (url home-page)
18961 (commit (string-append "v" version))))
18962 (sha256
18963 (base32
18964 "12midsrx07pdrsr1qbl2rpi7xyhxqx08bkz7n7gf8vsmqkpfp56s"))
18965 (file-name (git-file-name name version))))
18966 (build-system emacs-build-system)
18967 (propagated-inputs
18968 `(("emacs-window-layout" ,emacs-window-layout)))
18969 (synopsis "Equilibrium Emacs Window Manager")
18970 (description "E2WM is a window manager for Emacs. It enables to
18971 customize the place of pop-up window, how the windows are split, how the
18972 buffers are located in the windows, keybinds to manipulate windows and
18973 buffers, etc. It also has plug-ins to help your Emacs life.")
18974 (license license:gpl3+)))
18975
18976 (define-public emacs-ctable
18977 (let ((commit "b8830d1ca95abb100a81bc32011bd17d5ecba000"))
18978 (package
18979 (name "emacs-ctable")
18980 (version (git-version "0.1.2" "1" commit))
18981 (home-page "https://github.com/kiwanami/emacs-ctable")
18982 (source (origin
18983 (method git-fetch)
18984 (uri (git-reference
18985 (url home-page)
18986 (commit commit)))
18987 (sha256
18988 (base32
18989 "0pg303pnqscrsbx9579hc815angszsgf9vpd2z2f8p4f4ka6a00h"))
18990 (file-name (git-file-name name version))))
18991 (build-system emacs-build-system)
18992 (synopsis "Table component for Emacs Lisp")
18993 (description "This program is a table component for Emacs Lisp. Other
18994 programs can use this table component for the application UI.")
18995 (license license:gpl3+))))
18996
18997 (define-public emacs-leetcode
18998 (let ((commit "8624496af9e105c3e07d88844b37ede87540d604")
18999 (revision "1"))
19000 (package
19001 (name "emacs-leetcode")
19002 (version (git-version "0" "1" commit))
19003 (home-page "https://github.com/ginqi7/leetcode-emacs.git")
19004 (source (origin
19005 (method git-fetch)
19006 (uri (git-reference
19007 (url "https://github.com/ginqi7/leetcode-emacs")
19008 (commit commit)))
19009 (sha256
19010 (base32
19011 "11pp7ydlmwrv7djf9mwk4xzn295xbmdnj5x13bfj5yjpjr89p531"))
19012 (file-name (git-file-name name version))))
19013 (build-system emacs-build-system)
19014 (propagated-inputs
19015 `(("emacs-names" ,emacs-names)
19016 ("emacs-ctable" ,emacs-ctable)))
19017 (synopsis "Solve and submit LeetCode problems from within Emacs")
19018 (description "This package provides an Emacs interface to LeetCode
19019 allowing users to log in and solve problems of their choice using Emacs.")
19020 (license license:unlicense))))
19021
19022 (define-public emacs-epc
19023 (let ((commit "e1bfa5ca163273859336e3cc89b4b6460f7f8cda"))
19024 (package
19025 (name "emacs-epc")
19026 (version (git-version "0.1.1" "1" commit))
19027 (home-page "https://github.com/kiwanami/emacs-epc")
19028 (source (origin
19029 (method git-fetch)
19030 (uri (git-reference
19031 (url home-page)
19032 (commit commit)))
19033 (sha256
19034 (base32
19035 "15nkrjgi64f829isfd6xrhl4zw8jirr8pkas7nisrbk1av868hx0"))
19036 (file-name (git-file-name name version))))
19037 (build-system emacs-build-system)
19038 (propagated-inputs
19039 `(("emacs-deferred" ,emacs-deferred)
19040 ("emacs-ctable" ,emacs-ctable)))
19041 (synopsis "RPC stack for Emacs Lisp")
19042 (description "This program is an asynchronous RPC stack for Emacs.
19043 Using this RPC stack, Emacs can communicate with the peer process
19044 smoothly. Because the protocol employs S-expression encoding and consists of
19045 asynchronous communications, the RPC response is fairly good.")
19046 (license license:gpl3+))))
19047
19048 (define-public emacs-edbi
19049 (let ((commit "6f50aaf4bde75255221f2292c7a4ad3fa9d918c0"))
19050 (package
19051 (name "emacs-edbi")
19052 (version (git-version "0.1.3" "1" commit))
19053 (home-page "https://github.com/kiwanami/emacs-edbi")
19054 (source (origin
19055 (method git-fetch)
19056 (uri (git-reference
19057 (url home-page)
19058 (commit commit)))
19059 (sha256
19060 (base32
19061 "0x0igyvdcm4863n7zndvcv6wgzwgn7324cbfjja6xd7r0k936zdy"))
19062 (file-name (git-file-name name version))))
19063 (build-system emacs-build-system)
19064 (inputs
19065 `(("perl" ,perl)
19066 ("perl-rpc-epc-service" ,perl-rpc-epc-service)
19067 ("perl-dbi" ,perl-dbi)
19068 ;; TODO: Adding support for perl-dbd-mysql and others would
19069 ;; dramatically increase the closure size. Make several packages?
19070 ("perl-dbd-sqlite" ,perl-dbd-sqlite)))
19071 (propagated-inputs
19072 `(("emacs-e2wm" ,emacs-e2wm)
19073 ("emacs-epc" ,emacs-epc)))
19074 (arguments
19075 `(#:include '("\\.el$" "\\.pl$")
19076 #:phases
19077 (modify-phases %standard-phases
19078 (add-after 'install 'patch-path
19079 (lambda* (#:key inputs outputs #:allow-other-keys)
19080 (let ((perl (assoc-ref inputs "perl"))
19081 (dir (string-append (assoc-ref outputs "out")
19082 "/share/emacs/site-lisp")))
19083 (substitute* (string-append dir "/edbi.el")
19084 (("\"perl\"") (string-append "\"" perl "/bin/perl\"")))
19085 (chmod (string-append dir "/edbi-bridge.pl") #o555)
19086 (wrap-program (string-append dir "/edbi-bridge.pl")
19087 `("PERL5LIB" ":" prefix (,(getenv "PERL5LIB"))))
19088 #t))))))
19089 (synopsis "Database Interface for Emacs Lisp")
19090 (description "This program connects the database server through Perl's
19091 DBI, and provides DB-accessing API and the simple management UI.")
19092 (license license:gpl3+))))
19093
19094 (define-public emacs-edbi-sqlite
19095 (let ((commit "52cb9ca1af7691b592f2cfd2f007847e7a4ccd5f"))
19096 (package
19097 (name "emacs-edbi-sqlite")
19098 (version (git-version "0.1.1" "1" commit))
19099 (home-page "https://github.com/proofit404/edbi-sqlite")
19100 (source (origin
19101 (method git-fetch)
19102 (uri (git-reference
19103 (url home-page)
19104 (commit commit)))
19105 (sha256
19106 (base32
19107 "1vll81386fx90lq5sy4rlxcik6mvw7zx5cc51f0yaca9bkcckp51"))
19108 (file-name (git-file-name name version))))
19109 (build-system emacs-build-system)
19110 (propagated-inputs
19111 `(("emacs-edbi" ,emacs-edbi)))
19112 (synopsis "Open SQLite files in Emacs")
19113 (description "This package is a convenience wrapper for @command{edbi}
19114 to open SQLite databases.")
19115 (license license:gpl3+))))
19116
19117 (define-public emacs-nix-mode
19118 (package
19119 (name "emacs-nix-mode")
19120 (version "1.4.1")
19121 (source
19122 (origin
19123 (method git-fetch)
19124 (uri (git-reference
19125 (url "https://github.com/NixOS/nix-mode")
19126 (commit (string-append "v" version))))
19127 (file-name (git-file-name name version))
19128 (sha256
19129 (base32 "04xpgg9nba5m1bl7ci5l456whcb8nfhsbvgxyx89bp0zqgr005q7"))))
19130 (build-system emacs-build-system)
19131 (inputs
19132 `(("emacs-company" ,emacs-company)
19133 ("emacs-json-mode" ,emacs-json-mode)
19134 ("emacs-mmm-mode" ,emacs-mmm-mode)))
19135 (home-page "https://github.com/NixOS/nix-mode")
19136 (synopsis "Emacs major mode for editing Nix expressions")
19137 (description "@code{nixos-mode} provides an Emacs major mode for editing
19138 Nix expressions. It supports syntax highlighting, indenting and refilling of
19139 comments.")
19140 (license license:lgpl2.1+)))
19141
19142 (define-public emacs-libmpdel
19143 (package
19144 (name "emacs-libmpdel")
19145 (version "1.1.2")
19146 (source (origin
19147 (method git-fetch)
19148 (uri (git-reference
19149 (url "https://gitea.petton.fr/mpdel/libmpdel.git")
19150 (commit (string-append "v" version))))
19151 (file-name (git-file-name name version))
19152 (sha256
19153 (base32
19154 "0dnjndpv6bmz5blfs75ynmbm32g23l4slg5p3941b1i94a08qzpy"))))
19155 (build-system emacs-build-system)
19156 (home-page "https://gitea.petton.fr/mpdel/libmpdel")
19157 (synopsis "Emacs library to communicate with Music Player Daemon (MPD)")
19158 (description
19159 "An Emacs library client to communicate with Music Player Daemon (MPD), a
19160 flexible, powerful, server-side application for playing music.")
19161 (license license:gpl3+)))
19162
19163 (define-public emacs-mpdel
19164 (package
19165 (name "emacs-mpdel")
19166 (version "1.0.0")
19167 (source
19168 (origin
19169 (method git-fetch)
19170 (uri (git-reference
19171 (url "https://gitea.petton.fr/mpdel/mpdel.git")
19172 (commit (string-append "v" version))))
19173 (file-name (git-file-name name version))
19174 (sha256
19175 (base32
19176 "0pyyvbzskr44dxbmlp3y0r6s459fd51cvwjmnjaqxfxflr5v891g"))))
19177 (build-system emacs-build-system)
19178 (inputs
19179 `(("emacs-libmpdel" ,emacs-libmpdel)))
19180 (home-page "https://gitea.petton.fr/mpdel/mpdel")
19181 (synopsis "Emacs user interface for Music Player Daemon (MPD)")
19182 (description
19183 "MPDel provides an Emacs user interface to control playback (play, pause,
19184 next, volume) and display and control the current playlist as well as your
19185 stored playlists.")
19186 (license license:gpl3+)))
19187
19188 (define-public emacs-vterm
19189 (let ((version "0")
19190 (revision "1")
19191 (commit "e63bd65eece7c5de3a534b7e2fdbe58256ec2da0"))
19192 (package
19193 (name "emacs-vterm")
19194 (version (git-version version revision commit))
19195 (source (origin
19196 (method git-fetch)
19197 (uri (git-reference
19198 (url "https://github.com/akermu/emacs-libvterm")
19199 (commit commit)))
19200 (file-name (git-file-name name version))
19201 (sha256
19202 (base32
19203 "0iq857w54qmazxh23fipz85fb9i6dav3f63g0ghpmi6mybfp6i5v"))))
19204 (build-system emacs-build-system)
19205 (arguments
19206 `(#:modules ((guix build emacs-build-system)
19207 ((guix build cmake-build-system) #:prefix cmake:)
19208 (guix build emacs-utils)
19209 (guix build utils))
19210 #:imported-modules (,@%emacs-build-system-modules
19211 (guix build cmake-build-system))
19212 #:phases
19213 (modify-phases %standard-phases
19214 (add-before 'add-source-to-load-path 'substitute-vterm-module-path
19215 (lambda* (#:key outputs #:allow-other-keys)
19216 (chmod "vterm.el" #o644)
19217 (emacs-substitute-sexps "vterm.el"
19218 ("(require 'vterm-module nil t)"
19219 `(module-load
19220 ,(string-append (assoc-ref outputs "out")
19221 "/lib/vterm-module.so"))))
19222 #t))
19223 (add-after 'build 'configure
19224 ;; Run cmake.
19225 (lambda* (#:key outputs #:allow-other-keys)
19226 ((assoc-ref cmake:%standard-phases 'configure)
19227 #:outputs outputs
19228 #:out-of-source? #f
19229 #:configure-flags '("-DUSE_SYSTEM_LIBVTERM=ON"))
19230 #t))
19231 (add-after 'configure 'make
19232 ;; Run make.
19233 (lambda* (#:key (make-flags '()) outputs #:allow-other-keys)
19234 ;; Compile the shared object file.
19235 (apply invoke "make" "all" make-flags)
19236 ;; Move the file into /lib.
19237 (install-file
19238 "vterm-module.so"
19239 (string-append (assoc-ref outputs "out") "/lib"))
19240 #t)))
19241 #:tests? #f))
19242 (native-inputs
19243 `(("cmake" ,cmake-minimal)
19244 ("libtool" ,libtool)
19245 ("libvterm" ,libvterm)))
19246 (home-page "https://github.com/akermu/emacs-libvterm")
19247 (synopsis "Emacs libvterm integration")
19248 (description "This package implements a bridge to @code{libvterm} to
19249 display a terminal in an Emacs buffer.")
19250 (license license:gpl3+))))
19251
19252 (define-public emacs-simple-mpc
19253 ;; There have been no releases.
19254 (let ((commit "bee8520e81292b4c7353e45b193f9a13b482f5b2")
19255 (revision "1"))
19256 (package
19257 (name "emacs-simple-mpc")
19258 (version (git-version "0" revision commit))
19259 (source
19260 (origin
19261 (method git-fetch)
19262 (uri (git-reference
19263 (url "https://github.com/jorenvo/simple-mpc")
19264 (commit commit)))
19265 (file-name (git-file-name name version))
19266 (sha256
19267 (base32
19268 "1ja06pv007cmzjjgka95jlg31k7d29jrih1yxyblsxv85s9sg21q"))))
19269 (build-system emacs-build-system)
19270 (propagated-inputs `(("emacs-s" ,emacs-s)))
19271 (home-page "https://github.com/jorenvo/simple-mpc")
19272 (synopsis "Simple Emacs frontend to mpc")
19273 (description "This package provides an Emacs major mode which acts as a
19274 front end to mpc, a client for the @dfn{Music Player Daemon} (MPD).")
19275 (license license:gpl3+))))
19276
19277 (define-public emacs-mkmcc-gnuplot-mode
19278 (package
19279 (name "emacs-mkmcc-gnuplot-mode")
19280 (version "1.2.0")
19281 (source
19282 (origin
19283 (method git-fetch)
19284 (uri (git-reference
19285 (url "https://github.com/mkmcc/gnuplot-mode")
19286 (commit "601f6392986f0cba332c87678d31ae0d0a496ce7")))
19287 (file-name (git-file-name name version))
19288 (sha256
19289 (base32
19290 "14f0yh1rjqc3337j4sbqzfb7pjim2c8a7wk1a73xkrdkmjn82vgb"))))
19291 (build-system emacs-build-system)
19292 (home-page "https://mkmcc.github.io/software/gnuplot-mode.html")
19293 (synopsis "Minimal emacs major mode for editing gnuplot scripts")
19294 (description "@code{emacs-mkmcc-gnuplot-mode} is a minimal emacs major
19295 mode for editing gnuplot scripts. It provides syntax highlighting,
19296 indentation and a command to plot the file.")
19297 (license license:gpl3+)))
19298
19299 (define-public emacs-cmake-font-lock
19300 (let ((commit "e0ceaaae19c13b66f781512e3295bfc6707b56f4")
19301 (revision "1"))
19302 (package
19303 (name "emacs-cmake-font-lock")
19304 (version (git-version "0.1.5" revision commit))
19305 (source (origin
19306 (method git-fetch)
19307 (uri (git-reference
19308 (url "https://github.com/Lindydancer/cmake-font-lock")
19309 (commit commit)))
19310 (file-name (git-file-name name version))
19311 (sha256
19312 (base32
19313 "03gsyn95dlmsn15bl353bphi3qy7ccn5bss3f7n97kf38bllh0yf"))))
19314 (build-system emacs-build-system)
19315 (native-inputs
19316 `(("emacs-faceup" ,emacs-faceup)))
19317 (arguments
19318 `(#:include (cons "^admin\\/" %default-include)))
19319 (home-page "https://github.com/Lindydancer/cmake-font-lock")
19320 (synopsis "Advanced type-aware syntax-highlighting for CMake")
19321 (description "This package highlights function arguments in CMake
19322 according to their use.")
19323 (license license:gpl3+))))
19324
19325 (define-public emacs-dtrt-indent
19326 (package
19327 (name "emacs-dtrt-indent")
19328 (version "0.8")
19329 (source (origin
19330 (method git-fetch)
19331 (uri (git-reference
19332 (url "https://github.com/jscheid/dtrt-indent")
19333 (commit version)))
19334 (file-name (git-file-name name version))
19335 (sha256
19336 (base32
19337 "0pgf0pvqd8k4yzhdn2df9lp0y8hmlm2ccrh07jivwlccs95pcz7z"))))
19338 (build-system emacs-build-system)
19339 (home-page "https://github.com/jscheid/dtrt-indent")
19340 (synopsis "Minor mode that guesses the indentation offset")
19341 (description "This package provides a minor mode that guesses the
19342 indentation offset originally used for creating source code files and
19343 transparently adjusts the corresponding settings in Emacs, making it more
19344 convenient to edit foreign files.")
19345 (license license:gpl2+)))
19346
19347 (define-public emacs-repo
19348 (package
19349 (name "emacs-repo")
19350 (version "0.1.3")
19351 (source (origin
19352 (method git-fetch)
19353 (uri (git-reference
19354 (url "https://github.com/canatella/repo-el")
19355 (commit version)))
19356 (file-name (git-file-name name version))
19357 (sha256
19358 (base32
19359 "0rbvcvm7bfr6ncji7cllfxyyr6x7n9fx863byp243phsj3n93adz"))))
19360 (build-system emacs-build-system)
19361 (native-inputs
19362 `(("emacs-el-mock" ,emacs-el-mock)
19363 ("ert-runner" ,emacs-ert-runner)))
19364 (propagated-inputs
19365 `(("emacs-f" ,emacs-f)
19366 ("magit" ,emacs-magit)))
19367 (home-page "https://github.com/canatella/repo-el")
19368 (synopsis "Emacs interface for the Google Repo tool")
19369 (description "This package provides integration of the Google Repo tool
19370 with emacs. It displays the output of the @code{repo status} command in a
19371 buffer and launches Magit from the status buffer for the project at point.")
19372 (license license:gpl3+)))
19373
19374 (define-public emacs-alect-themes
19375 (package
19376 (name "emacs-alect-themes")
19377 (version "0.9")
19378 (source (origin
19379 (method git-fetch)
19380 (uri (git-reference
19381 (url "https://github.com/alezost/alect-themes")
19382 (commit (string-append "v" version))))
19383 (file-name (git-file-name name version))
19384 (sha256
19385 (base32
19386 "0nffxpdm0sa7bynwi0rmlwpc4qmvbda5ankhzz7fmk4ap9fkjxv9"))))
19387 (build-system emacs-build-system)
19388 (home-page "https://github.com/alezost/alect-themes")
19389 (synopsis "Low contrast, light, dark and black color theme for Emacs")
19390 (description "@code{emacs-alect-themes} provides configurable light, dark
19391 and black color themes for Emacs. The themes are intended to be used with
19392 GUI.")
19393 (license license:gpl3+)))
19394
19395 (define-public emacs-google-c-style
19396 (let ((commit "6271f3f473ceb3a7fef99388a3040903b1a145f1")
19397 (revision "0"))
19398 (package
19399 (name "emacs-google-c-style")
19400 (version (git-version "0.1" revision commit))
19401 (source (origin
19402 (method git-fetch)
19403 (uri (git-reference
19404 (url "https://github.com/google/styleguide")
19405 (commit commit)))
19406 (file-name (git-file-name name version))
19407 (sha256
19408 (base32
19409 "1jghyyasdl15c4gaqaxmdn43am63k6bykn5ab83f1ahv9zi1krxk"))))
19410 (build-system emacs-build-system)
19411 (home-page "https://github.com/google/styleguide")
19412 (synopsis "Emacs settings file for Google C/C++ style")
19413 (description "@code{emacs-google-c-style} provides an Emacs settings
19414 file for Google C and C++ style.")
19415 (license license:gpl1+))))
19416
19417 (define-public emacs-redshank
19418 (let ((commit "f98e68f532e622bcd464292ca4a9cf5fbea14ebb")
19419 (revision "1"))
19420 (package
19421 (name "emacs-redshank")
19422 (version (git-version "0.1" revision commit))
19423 (source (origin
19424 (method git-fetch)
19425 (uri (git-reference
19426 (url "http://www.foldr.org/~michaelw/projects/redshank.git")
19427 (commit commit)))
19428 (file-name (git-file-name name version))
19429 (sha256
19430 (base32
19431 "1jdkgvd5xy9hl5q611jwah2n05abjp7qcy9sj4k1z11x0ii62b6p"))))
19432 (build-system emacs-build-system)
19433 (propagated-inputs
19434 `(("emacs-paredit" ,emacs-paredit)))
19435 (home-page "http://www.foldr.org/~michaelw/emacs/redshank/")
19436 (synopsis "Common Lisp Editing Extensions (for Emacs)")
19437 (description "Redshank is a collection of code-wrangling Emacs macros
19438 mostly geared towards Common Lisp, but some are useful for other Lisp
19439 dialects, too. Redshank's code transformations aim to be expression-based (as
19440 opposed to character-based).")
19441 (license license:gpl1+))))
19442
19443 (define-public emacs-disk-usage
19444 (package
19445 (name "emacs-disk-usage")
19446 (version "1.3.3")
19447 (source
19448 (origin
19449 (method git-fetch)
19450 (uri (git-reference
19451 (url "https://gitlab.com/Ambrevar/emacs-disk-usage.git")
19452 (commit version)))
19453 (file-name (git-file-name name version))
19454 (sha256
19455 (base32
19456 "0hv2gsd8k5fbjgckgiyisq4rn1i7y4rchbjy8kmixjv6mx563bll"))))
19457 (build-system emacs-build-system)
19458 (home-page "https://gitlab.com/Ambrevar/emacs-disk-usage")
19459 (synopsis "Sort and browse disk usage listings with Emacs")
19460 (description "Disk Usage is a file system analyzer: it offers a tabulated
19461 view of file listings sorted by size. Directory sizes are computed
19462 recursively. The results are cached for speed.")
19463 (license license:gpl3+)))
19464
19465 (define-public emacs-orgit
19466 (package
19467 (name "emacs-orgit")
19468 (version "1.5.3")
19469 (home-page "https://github.com/magit/orgit")
19470 (source (origin
19471 (method git-fetch)
19472 (uri (git-reference
19473 (url home-page)
19474 (commit (string-append "v" version))))
19475 (file-name (git-file-name name version))
19476 (sha256
19477 (base32
19478 "1ywavzki510rslsgfm0cnn3mlh644p61ha2nfb715xhkg7cd3j9g"))))
19479 (build-system emacs-build-system)
19480 (propagated-inputs
19481 `(("emacs-dash" ,emacs-dash)
19482 ("emacs-magit" ,emacs-magit)))
19483 (synopsis "Support for Org links to Magit buffers")
19484 (description "This package defines several Org link types, which can be
19485 used to link to certain Magit buffers. Use the command
19486 @command{org-store-link} while such a buffer is current to store a link.
19487 Later you can insert it into an Org buffer using the command
19488 @code{org-insert-link}.")
19489 (license license:gpl3+)))
19490
19491 (define-public emacs-amx
19492 (package
19493 (name "emacs-amx")
19494 (version "3.3")
19495 (source
19496 (origin
19497 (method git-fetch)
19498 (uri (git-reference
19499 (url "https://github.com/DarwinAwardWinner/amx")
19500 (commit (string-append "v" version))))
19501 (file-name (git-file-name name version))
19502 (sha256
19503 (base32 "0ikjzs119g57cwh2v3jmy63lggqc0ib99q5gsl93slkk4y2ihavw"))))
19504 (build-system emacs-build-system)
19505 (propagated-inputs
19506 `(("emacs-s" ,emacs-s)))
19507 (home-page "https://github.com/DarwinAwardWinner/amx")
19508 (synopsis "Alternative M-x interface for Emacs")
19509 (description "Amx is an alternative interface for M-x in Emacs. It
19510 provides several enhancements over the ordinary
19511 @code{execute-extended-command}, such as prioritizing your most-used commands
19512 in the completion list and showing keyboard shortcuts, and it supports several
19513 completion systems for selecting commands, such as Ido and Ivy.")
19514 (license license:gpl3+)))
19515
19516 (define-public emacs-lorem-ipsum
19517 (let ((commit "4b39f6fed455d67f635b3837cf5668bf74d0f6cd"))
19518 (package
19519 (name "emacs-lorem-ipsum")
19520 (version (git-version "0.2" "1" commit))
19521 (home-page "https://github.com/jschaf/emacs-lorem-ipsum/")
19522 (source (origin
19523 (method git-fetch)
19524 (uri (git-reference
19525 (url home-page)
19526 (commit commit)))
19527 (file-name (git-file-name name version))
19528 (sha256
19529 (base32
19530 "0a3b18p3vdjci89prsgdzjnfxsl8p67vjhf8ai4qdng7zvh50lir"))))
19531 (build-system emacs-build-system)
19532 (synopsis "Insert dummy pseudo Latin text in Emacs")
19533 (description "This package provides convenience functions to insert
19534 dummy Latin text into a buffer. This can be useful if you need to produce
19535 paragraphs or pages of text for testing purposes.")
19536 (license license:gpl3+))))
19537
19538 (define-public emacs-lisp-extra-font-lock
19539 (let ((commit "4605eccbe1a7fcbd3cacf5b71249435413b4db4f"))
19540 (package
19541 (name "emacs-lisp-extra-font-lock")
19542 (version (git-version "0.0.6" "1" commit))
19543 (home-page "https://github.com/Lindydancer/lisp-extra-font-lock")
19544 (source (origin
19545 (method git-fetch)
19546 (uri (git-reference
19547 (url home-page)
19548 (commit commit)))
19549 (file-name (git-file-name name version))
19550 (sha256
19551 (base32
19552 "152vcp3mdlv33jf5va4rinl1d0k960gnfhbrqqrafazgx9j3ya8w"))))
19553 (build-system emacs-build-system)
19554 (synopsis "Highlight bound variables and quoted expressions in Emacs")
19555 (description "This package highlight the location where local variables
19556 is created (bound, for example, by let) as well as quoted and backquoted
19557 constant expressions.")
19558 (license license:gpl3+))))
19559
19560 (define-public emacs-docker-tramp
19561 (package
19562 (name "emacs-docker-tramp")
19563 (version "0.1")
19564 (source
19565 (origin
19566 (method git-fetch)
19567 (uri (git-reference
19568 (url "https://github.com/emacs-pe/docker-tramp.el")
19569 (commit (string-append "v" version))))
19570 (file-name (git-file-name name version))
19571 (sha256
19572 (base32
19573 "0lxvzmfg52fhxrhbvp92zwp7cv4i1rlxnkyyzgngj3sjm7y60yvg"))))
19574 (build-system emacs-build-system)
19575 (home-page "https://github.com/emacs-pe/docker-tramp.el")
19576 (synopsis "TRAMP integration for docker containers")
19577 (description
19578 "This package provides a TRAMP method for Docker containers.")
19579 (license license:gpl3+)))
19580
19581 (define-public emacs-docker
19582 (package
19583 (name "emacs-docker")
19584 (version "1.3.0")
19585 (source (origin
19586 (method git-fetch)
19587 (uri (git-reference
19588 (url "https://github.com/Silex/docker.el")
19589 (commit version)))
19590 (file-name (git-file-name name version))
19591 (sha256
19592 (base32
19593 "1g8r1faqp0z0vqp9qrl8m84pa0v2ddvc91klphdkfmldwv7rfipw"))))
19594 (inputs
19595 `(("emacs-undercover" ,emacs-undercover)))
19596 (propagated-inputs
19597 `(("emacs-dash" ,emacs-dash)
19598 ("emacs-docker-tramp" ,emacs-docker-tramp)
19599 ("emacs-magit-popup" ,emacs-magit-popup)
19600 ("emacs-s" ,emacs-s)
19601 ("emacs-tablist" ,emacs-tablist)
19602 ("emacs-json-mode" ,emacs-json-mode)))
19603 (arguments
19604 `(#:phases
19605 (modify-phases %standard-phases
19606 (delete 'check)))) ;no tests
19607 (build-system emacs-build-system)
19608 (home-page "https://github.com/Silex/docker.el")
19609 (synopsis "Manage docker from Emacs")
19610 (description "This package provides an Emacs interface for Docker.")
19611 (license license:gpl3+)))
19612
19613 (define-public emacs-dockerfile-mode
19614 ;; Latest upstream release is too old.
19615 (let ((commit "ed73e82dcc636dad00d1a8c3b32a49136d25ee60"))
19616 (package
19617 (name "emacs-dockerfile-mode")
19618 (version (git-version "1.2" "2" commit))
19619 (source
19620 (origin
19621 (method git-fetch)
19622 (uri (git-reference
19623 (url "https://github.com/spotify/dockerfile-mode")
19624 (commit commit)))
19625 (file-name (git-file-name name version))
19626 (sha256
19627 (base32
19628 "0lri2rnx4lr23vqfphkpq39cd4xfgzkvz1xsz7ccdvl4qj0k7fdl"))))
19629 (build-system emacs-build-system)
19630 (propagated-inputs
19631 `(("emacs-s" ,emacs-s)))
19632 (home-page "https://github.com/spotify/dockerfile-mode")
19633 (synopsis "Major mode for editing Dockerfile")
19634 (description
19635 "This package provides a major mode @code{dockerfile-mode} for use with
19636 the standard @code{Dockerfile} file format.")
19637 (license license:asl2.0))))
19638
19639 (define-public emacs-lsp-mode
19640 (package
19641 (name "emacs-lsp-mode")
19642 (version "7.0")
19643 (source
19644 (origin
19645 (method git-fetch)
19646 (uri (git-reference
19647 (url "https://github.com/emacs-lsp/lsp-mode")
19648 (commit version)))
19649 (file-name (git-file-name name version))
19650 (sha256
19651 (base32 "1kw32dcm73i0kg1fncp6vwgar3dwva7dh3gkg5cr45gavn6rq34i"))))
19652 (build-system emacs-build-system)
19653 (propagated-inputs
19654 `(("emacs-dash" ,emacs-dash)
19655 ("emacs-f" ,emacs-f)
19656 ("emacs-ht" ,emacs-ht)
19657 ("emacs-hydra" ,emacs-hydra)
19658 ("emacs-markdown-mode" ,emacs-markdown-mode)
19659 ("emacs-spinner" ,emacs-spinner)))
19660 (home-page "https://emacs-lsp.github.io/lsp-mode/")
19661 (synopsis "Emacs client and library for the Language Server Protocol")
19662 (description
19663 "LSP mode is a client and library implementation for the Language Server
19664 Protocol. This mode creates an IDE-like experience by providing optional
19665 integration with other popular Emacs packages like Company, Flycheck, and
19666 Projectile.")
19667 (license license:gpl3+)))
19668
19669 (define-public emacs-pfuture
19670 (let ((commit "368254ee30692c709400db413c347e18e76a8a55"))
19671 (package
19672 (name "emacs-pfuture")
19673 (version (git-version "1.6" "1" commit))
19674 (source (origin
19675 (method git-fetch)
19676 (uri (git-reference
19677 (url "https://github.com/Alexander-Miller/pfuture")
19678 (commit commit)))
19679 (file-name (git-file-name name version))
19680 (sha256
19681 (base32
19682 "096raqpjx84njws85r7pqq1wi9w9bjwkr0ga1mbbhlna1mfn3mg4"))))
19683 (build-system emacs-build-system)
19684 (home-page
19685 "https://github.com/Alexander-Miller/pfuture")
19686 (synopsis "Simple wrapper around asynchronous processes for Emacs")
19687 (description "This package provides a simple wrapper around asynchronous
19688 processes for Emacs")
19689 (license license:gpl3+))))
19690
19691 (define-public emacs-treemacs
19692 (package
19693 (name "emacs-treemacs")
19694 (version "2.8")
19695 (source (origin
19696 (method git-fetch)
19697 (uri (git-reference
19698 (url "https://github.com/Alexander-Miller/treemacs")
19699 (commit version)))
19700 (file-name (git-file-name name version))
19701 (sha256
19702 (base32
19703 "0m083g3pg0n4ymi1w0jx34awr7cqbm4r561adij9kklblxsz7sc2"))))
19704 (build-system emacs-build-system)
19705 (propagated-inputs
19706 `(("emacs-dash" ,emacs-dash)
19707 ("emacs-s" ,emacs-s)
19708 ("emacs-f" ,emacs-f)
19709 ("emacs-ace-window" ,emacs-ace-window)
19710 ("emacs-pfuture" ,emacs-pfuture)
19711 ("emacs-hydra" ,emacs-hydra)
19712 ("emacs-ht" ,emacs-ht)))
19713 (native-inputs
19714 `(("emacs-buttercup" ,emacs-buttercup)
19715 ("emacs-el-mock" ,emacs-el-mock)))
19716 (inputs
19717 `(("python" ,python)))
19718 (arguments
19719 `(#:tests? #t ;TODO: Investigate ‘treemacs--parse-collapsed-dirs’ test failure.
19720 #:phases
19721 (modify-phases %standard-phases
19722 (add-after 'unpack 'fix-makefile
19723 (lambda _
19724 (substitute* "Makefile"
19725 (("@\\$\\(CASK\\) exec ") "")
19726 ;; Guix does not need to prepare dependencies before testing.
19727 (("test: prepare") "test:"))
19728 #t))
19729 (add-after 'fix-makefile 'chdir-elisp
19730 ;; Elisp directory is not in root of the source.
19731 (lambda _
19732 (chdir "src/elisp")))
19733 (replace 'check
19734 (lambda _
19735 (with-directory-excursion "../.." ;treemacs root
19736 (chmod "test/test-treemacs.el" #o644)
19737 (emacs-substitute-sexps "test/test-treemacs.el"
19738 ("(describe \"treemacs--parse-collapsed-dirs\""
19739 ""))
19740 (invoke "make" "test"))))
19741 (add-before 'install 'patch-paths
19742 (lambda* (#:key inputs outputs #:allow-other-keys)
19743 (with-directory-excursion "../.." ;treemacs root
19744 (chmod "src/elisp/treemacs-core-utils.el" #o644)
19745 (emacs-substitute-variables "src/elisp/treemacs-core-utils.el"
19746 ("treemacs-dir"
19747 (string-append (assoc-ref outputs "out") "/")))
19748 (chmod "src/elisp/treemacs-icons.el" #o644)
19749 (substitute* "src/elisp/treemacs-icons.el"
19750 (("icons/default") "share/emacs-treemacs/images"))
19751 (chmod "src/elisp/treemacs-customization.el" #o644)
19752 (emacs-substitute-variables "src/elisp/treemacs-customization.el"
19753 ("treemacs-python-executable"
19754 (string-append (assoc-ref inputs "python") "/bin/python3")))
19755 (chmod "src/elisp/treemacs-async.el" #o644)
19756 (substitute* "src/elisp/treemacs-async.el"
19757 (("src/scripts") (string-append "share/" ,name "/scripts"))))
19758 #t))
19759 (add-after 'install 'install-data
19760 (lambda* (#:key outputs #:allow-other-keys)
19761 (let ((out (assoc-ref outputs "out")))
19762 (with-directory-excursion "../.." ;treemacs root
19763 (copy-recursively "icons/default"
19764 (string-append out "/share/" ,name "/images"))
19765 (copy-recursively
19766 "src/scripts"
19767 (string-append out "/share/" ,name "/scripts"))
19768 #t)))))))
19769 (home-page "https://github.com/Alexander-Miller/treemacs")
19770 (synopsis "Emacs tree style file explorer")
19771 (description "Powerful and flexible file tree project explorer.")
19772 (license license:gpl3+)))
19773
19774 (define-public emacs-treemacs-extra
19775 (package
19776 (inherit emacs-treemacs)
19777 (name "emacs-treemacs-extra")
19778 (propagated-inputs
19779 `(,@(package-propagated-inputs emacs-treemacs)
19780 ("emacs-evil" ,emacs-evil)
19781 ("emacs-magit" ,emacs-magit)
19782 ("emacs-projectile" ,emacs-projectile)
19783 ("emacs-persp-mode" ,emacs-persp-mode)))
19784 (arguments
19785 (substitute-keyword-arguments
19786 (package-arguments emacs-treemacs)
19787 ((#:phases phases)
19788 `(modify-phases ,phases
19789 (add-after 'chdir-elisp 'copy-extra
19790 (lambda _
19791 (copy-recursively "../extra" ".")))))))))
19792
19793 (define-public emacs-libyaml
19794 ;; Upstream made no release so far.
19795 (let ((version "0")
19796 (revision "1")
19797 (commit "703e0d448c7ee24e25b513a3c65980c80e166805"))
19798 (package
19799 (name "emacs-libyaml")
19800 (version (git-version version revision commit))
19801 (source
19802 (origin
19803 (method git-fetch)
19804 (uri (git-reference
19805 (url "https://github.com/syohex/emacs-libyaml")
19806 (commit commit)))
19807 (file-name (git-file-name name version))
19808 (sha256
19809 (base32 "08l7pm9v50ykd3fkbm0bh2kcd57cadbc5i9r6rj51vd32w3pl2yl"))))
19810 (build-system emacs-build-system)
19811 (arguments
19812 `(#:tests? #f ;no test
19813 #:modules ((guix build emacs-build-system)
19814 (guix build emacs-utils)
19815 (guix build utils))
19816 #:imported-modules (,@%emacs-build-system-modules
19817 (guix build gnu-build-system))
19818 #:phases
19819 (modify-phases %standard-phases
19820 (add-before 'add-source-to-load-path 'substitute-libyaml-core-path
19821 (lambda* (#:key outputs #:allow-other-keys)
19822 (chmod "libyaml.el" #o644)
19823 (substitute* "libyaml.el"
19824 (("^\\(require 'libyaml-core\\)")
19825 (string-append "(module-load \"" (assoc-ref outputs "out")
19826 "/lib/libyaml-core.so\")")))
19827 #t))
19828 (add-after 'check 'make
19829 ;; Run make.
19830 (lambda* (#:key (make-flags '()) outputs #:allow-other-keys)
19831 ;; Compile the shared object file.
19832 (apply invoke "make" "all" "CPPFLAGS=" make-flags)
19833 ;; Move the file into /lib.
19834 (install-file "libyaml-core.so"
19835 (string-append (assoc-ref outputs "out") "/lib"))
19836 #t)))))
19837 (native-inputs `(("libyaml" ,libyaml)))
19838 (home-page "https://github.com/syohex/emacs-libyaml")
19839 (synopsis "Libyaml bindings for Emacs")
19840 (description
19841 "This package implements bindings for LibYAML to be able to parse YAML
19842 files in Elisp.")
19843 (license license:gpl3+))))
19844
19845 (define-public emacs-lsp-java
19846 (package
19847 (name "emacs-lsp-java")
19848 (version "2.2")
19849 (source (origin
19850 (method git-fetch)
19851 (uri (git-reference
19852 (url "https://github.com/emacs-lsp/lsp-java")
19853 (commit version)))
19854 (file-name (git-file-name name version))
19855 (sha256
19856 (base32
19857 "0hcnvbyaqyypgby1bfj4zbrbq97amk8hfx0sj4w73rl46yf4jk3j"))))
19858 (build-system emacs-build-system)
19859 (propagated-inputs
19860 `(("emacs-lsp-mode" ,emacs-lsp-mode)
19861 ("emacs-markdown-mode" ,emacs-markdown-mode)
19862 ("emacs-dash" ,emacs-dash)
19863 ("emacs-f" ,emacs-f)
19864 ("emacs-ht" ,emacs-ht)
19865 ("emacs-request" ,emacs-request)
19866 ("emacs-treemacs" ,emacs-treemacs)))
19867 (home-page "https://github.com/emacs-lsp/lsp-java/")
19868 (synopsis "Java support for lsp-mode")
19869 (description "Emacs Java IDE using Eclipse JDT Language Server.")
19870 (license license:gpl3+)))
19871
19872 (define-public emacs-lsp-ui
19873 (package
19874 (name "emacs-lsp-ui")
19875 (version "7.0")
19876 (source (origin
19877 (method git-fetch)
19878 (uri (git-reference
19879 (url "https://github.com/emacs-lsp/lsp-ui")
19880 (commit version)))
19881 (file-name (git-file-name name version))
19882 (sha256
19883 (base32
19884 "1v5xl2sfnpzrfi22bcb7zp25pv8s5kxgiqamxlbkd72pwch0skma"))))
19885 (build-system emacs-build-system)
19886 (propagated-inputs
19887 `(("emacs-dash" ,emacs-dash)
19888 ("emacs-lsp-mode" ,emacs-lsp-mode)
19889 ("emacs-markdown-mode" ,emacs-markdown-mode)
19890 ("emacs-flycheck" ,emacs-flycheck)))
19891 (home-page "https://github.com/emacs-lsp/lsp-ui")
19892 (synopsis "User interface extensions for @code{lsp-mode}")
19893 (description
19894 "@code{LSP-ui} contains several enhancements and integrations for
19895 @code{lsp-mode}, such as visual flychecking, displaying references in-line,
19896 and code peeking.")
19897 (license license:gpl3+)))
19898
19899 (define-public emacs-lsp-lua-emmy
19900 (let ((commit "ab53fb2a8b8942804eb75bab5624fd19f1d360bf"))
19901 (package
19902 (name "emacs-lsp-lua-emmy")
19903 (version (git-version "0.1.0" "1" commit))
19904 (source (origin
19905 (method git-fetch)
19906 (uri (git-reference
19907 (url "https://github.com/phenix3443/lsp-lua-emmy")
19908 (commit commit)))
19909 (file-name (git-file-name name version))
19910 (sha256
19911 (base32
19912 "0rbizis73n1w5ig07fj1han74chbc1zpbp5bn37rj0gz608aqka8"))))
19913 (build-system emacs-build-system)
19914 (propagated-inputs
19915 `(("emacs-lsp-mode" ,emacs-lsp-mode)))
19916 (home-page "https://github.com/phenix3443/lsp-lua-emmy/")
19917 (synopsis "Lua support in @code{lsp-mode} client for Emacs")
19918 (description "This package provides a Lua language support in
19919 @code{lsp-mode} client for Emacs.")
19920 (license license:gpl3+))))
19921
19922 (define-public emacs-lsp-ivy
19923 (let ((commit "caf1e1d7e22ed0b5fe18dd508d1a6f83dd163288")
19924 (revision "2"))
19925 (package
19926 (name "emacs-lsp-ivy")
19927 (version (git-version "0.1" revision commit))
19928 (source (origin
19929 (method git-fetch)
19930 (uri (git-reference
19931 (url "https://github.com/emacs-lsp/lsp-ivy")
19932 (commit commit)))
19933 (file-name (git-file-name name version))
19934 (sha256
19935 (base32
19936 "084ds4qhzhivfnicy3h7z4mblxgcqx8pfnkbjr9qjrfng7cisy4z"))))
19937 (build-system emacs-build-system)
19938 (propagated-inputs
19939 `(("emacs-ivy" ,emacs-ivy)
19940 ("emacs-lsp-mode" ,emacs-lsp-mode)
19941 ("emacs-dash" ,emacs-dash)))
19942 (home-page "https://github.com/emacs-lsp/lsp-ivy")
19943 (synopsis "Provide LSP-enhanced completion for symbols")
19944 (description
19945 "This package enhances @code{ivy} with completion for symbols from
19946 workspaces with a LSP-compliant server running.")
19947 (license license:gpl3+))))
19948
19949 (define-public emacs-helm-lsp
19950 (let ((commit "3a58ca4cfd94b9ab1e15e819d3b16ef568e8889b")
19951 (revision "1"))
19952 (package
19953 (name "emacs-helm-lsp")
19954 (version (git-version "0.1" revision commit))
19955 (source (origin
19956 (method git-fetch)
19957 (uri (git-reference
19958 (url "https://github.com/emacs-lsp/helm-lsp")
19959 (commit commit)))
19960 (file-name (git-file-name name version))
19961 (sha256
19962 (base32
19963 "0wh5zai3s17ss2q8wcdd6d87hv1h3nbyrxxs4js9cas8m6y2ssjv"))))
19964 (build-system emacs-build-system)
19965 (propagated-inputs
19966 `(("emacs-helm" ,emacs-helm)
19967 ("emacs-lsp-mode" ,emacs-lsp-mode)
19968 ("emacs-dash" ,emacs-dash)))
19969 (home-page "https://github.com/emacs-lsp/helm-lsp")
19970 (synopsis "Provide LSP-enhanced completion for symbols")
19971 (description
19972 "This package enhances @code{helm} with completion for symbols from
19973 workspaces with a LSP-compliant server running.")
19974 (license license:gpl3+))))
19975
19976 (define-public emacs-helm-notmuch
19977 (package
19978 (name "emacs-helm-notmuch")
19979 (version "1.2")
19980 (home-page "https://github.com/emacs-helm/helm-notmuch/")
19981 (source (origin
19982 (method git-fetch)
19983 (uri (git-reference
19984 (url home-page)
19985 (commit version)))
19986 (file-name (git-file-name name version))
19987 (sha256
19988 (base32
19989 "1k038dbdpaa411gl4071x19fklhnizhr346plxw23lsnxir9dhqc"))))
19990 (build-system emacs-build-system)
19991 (propagated-inputs
19992 `(("emacs-helm" ,emacs-helm)
19993 ("notmuch" ,notmuch)))
19994 (synopsis "Search emails with Emacs Notmuch and Helm")
19995 (description
19996 "This package can be used to search emails in Emacs, searching result
19997 displays as you type thanks to Helm, though @command{notmuch-search} does the
19998 real search.")
19999 (license license:gpl3+)))
20000
20001 (define-public emacs-elmacro
20002 (let ((commit "89b9b0feabafd01fee48111d67131c4c9b5fed9a"))
20003 (package
20004 (name "emacs-elmacro")
20005 (version (git-version "1.1.0" "1" commit))
20006 (home-page "https://github.com/Silex/elmacro")
20007 (source (origin
20008 (method git-fetch)
20009 (uri (git-reference
20010 (url home-page)
20011 (commit commit)))
20012 (file-name (git-file-name name version))
20013 (sha256
20014 (base32
20015 "06wkzafh6vbcjf0m3sl253mgcq32p8cdv7vsfmyx51baa36938ha"))))
20016 (build-system emacs-build-system)
20017 (propagated-inputs
20018 `(("emacs-s" ,emacs-s)
20019 ("emacs-dash" ,emacs-dash)))
20020 (synopsis "Convert keyboard macros to Emacs Lisp")
20021 (description
20022 "This package displays keyboard macros or latest interactive commands
20023 as Emacs Lisp.")
20024 (license license:gpl3+))))
20025
20026 (define-public emacs-transient
20027 (let ((revision "1")
20028 (commit "a6e4cced303b3febd59412b24a97eaf1e855e6d7"))
20029 (package
20030 (name "emacs-transient")
20031 (version (git-version "0.2.0" revision commit))
20032 (source (origin
20033 (method git-fetch)
20034 (uri (git-reference
20035 (url "https://github.com/magit/transient")
20036 (commit commit)))
20037 (file-name (git-file-name name version))
20038 (sha256
20039 (base32
20040 "01xsw9sxr50valc2q590ngy3ra2ll01p39l9cbzvqqz6mxyymxmd"))))
20041 (build-system emacs-build-system)
20042 (arguments
20043 `(#:tests? #f ;no test suite
20044 #:phases
20045 (modify-phases %standard-phases
20046 (add-after 'unpack 'build-info-manual
20047 (lambda _
20048 (invoke "make" "info")
20049 ;; Move the info file to lisp so that it gets installed by the
20050 ;; emacs-build-system.
20051 (rename-file "docs/transient.info" "lisp/transient.info")
20052 #t))
20053 (add-after 'build-info-manual 'enter-lisp-directory
20054 (lambda _
20055 (chdir "lisp")
20056 #t)))))
20057 (native-inputs
20058 `(("texinfo" ,texinfo)))
20059 (propagated-inputs
20060 `(("dash" ,emacs-dash)))
20061 (home-page "https://magit.vc/manual/transient")
20062 (synopsis "Transient commands in Emacs")
20063 (description "Taking inspiration from prefix keys and prefix arguments
20064 in Emacs, Transient implements a similar abstraction involving a prefix
20065 command, infix arguments and suffix commands. We could call this abstraction
20066 a \"transient command\", but because it always involves at least two
20067 commands (a prefix and a suffix) we prefer to call it just a \"transient\".")
20068 (license license:gpl3+))))
20069
20070 (define-public emacs-forge
20071 (let ((commit "09bf8adc9c9afb492632e612f51f39e1cc15fca0"))
20072 (package
20073 (name "emacs-forge")
20074 (version (git-version "0.1.0" "4" commit))
20075 (source
20076 (origin
20077 (method git-fetch)
20078 (uri (git-reference
20079 (url "https://github.com/magit/forge")
20080 (commit commit)))
20081 (file-name (git-file-name name version))
20082 (sha256
20083 (base32
20084 "148h1rvmfmxyrfy2q5l0vzblr7lpsyw1si30hfwhzsj8fvj21qcr"))))
20085 (build-system emacs-build-system)
20086 (native-inputs
20087 `(("texinfo" ,texinfo)))
20088 (propagated-inputs
20089 `(("emacs-closql" ,emacs-closql)
20090 ("emacs-dash" ,emacs-dash)
20091 ("emacs-emacsql-sqlite" ,emacs-emacsql)
20092 ("emacs-ghub" ,emacs-ghub)
20093 ("emacs-let-alist" ,emacs-let-alist)
20094 ("emacs-magit" ,emacs-magit)
20095 ("emacs-markdown-mode" ,emacs-markdown-mode)
20096 ("emacs-transient" ,emacs-transient)))
20097 (arguments
20098 `(#:tests? #f ;no tests
20099 #:phases
20100 (modify-phases %standard-phases
20101 (add-after 'unpack 'build-info-manual
20102 (lambda _
20103 (invoke "make" "info")
20104 ;; Move the info file to lisp so that it gets installed by the
20105 ;; emacs-build-system.
20106 (rename-file "docs/forge.info" "lisp/forge.info")))
20107 (add-after 'build-info-manual 'chdir-lisp
20108 (lambda _
20109 (chdir "lisp")
20110 #t)))))
20111 (home-page "https://github.com/magit/forge/")
20112 (synopsis "Access Git forges from Magit")
20113 (description "Work with Git forges, such as Github and Gitlab, from the
20114 comfort of Magit and the rest of Emacs.")
20115 (license license:gpl3+))))
20116
20117 (define-public emacs-matcha
20118 (let ((commit "c7df5cf5cdac9ae369e241342389ccda0205eab9"))
20119 (package
20120 (name "emacs-matcha")
20121 (version (git-version "0.0.1" "1" commit)) ;no upstream release
20122 (source (origin
20123 (method git-fetch)
20124 (uri (git-reference
20125 (url "https://github.com/jojojames/matcha")
20126 (commit commit)))
20127 (file-name (git-file-name name version))
20128 (sha256
20129 (base32
20130 "1lfnh1glg6al677m7ci0x8g5wjdhjxlfl3nv1f1ppsw4dpnwsj9b"))))
20131 (propagated-inputs
20132 `(("emacs-hydra" ,emacs-hydra)
20133 ("emacs-transient" ,emacs-transient)))
20134 (build-system emacs-build-system)
20135 (home-page "https://github.com/jojojames/matcha/")
20136 (synopsis "Collection of hydras with a generic interface to launch them")
20137 (description "Matcha provides a collection of transients for various
20138 packages with a consistent way to use them.")
20139 (license license:gpl3+))))
20140
20141 (define-public emacs-undo-propose-el
20142 (let ((commit "f80baee566807d733fbacbab08a897bcd62579c3")
20143 (revision "3"))
20144 (package
20145 (name "emacs-undo-propose-el")
20146 (version (git-version "3.0.0" revision commit))
20147 (source
20148 (origin
20149 (method git-fetch)
20150 (uri (git-reference
20151 (url "https://github.com/jackkamm/undo-propose-el")
20152 (commit commit)))
20153 (file-name (git-file-name name version))
20154 (sha256
20155 (base32
20156 "00rqz63bhh66q78l646q3w16gydygj8h4d8np0dpbifgzciak90b"))))
20157 (build-system emacs-build-system)
20158 (arguments
20159 `(#:tests? #t
20160 #:test-command '("make" "test")))
20161 (home-page "https://github.com/jackkamm/undo-propose-el")
20162 (synopsis "Simple and safe navigation of @code{undo} history")
20163 (description "This package permits navigation of @code{undo} history in a
20164 temporary buffer, which is read-only save for @code{undo} commands, and
20165 subsequent committal of a chain of @code{undo} commands as a single edit in
20166 the @code{undo} history.")
20167 (license license:gpl3+))))
20168
20169 (define-public emacs-elisp-docstring-mode
20170 (let ((commit "f512e509dd690f65133e55563ebbfd2dede5034f")
20171 (version "0.0.1")
20172 (revision "1"))
20173 (package
20174 (name "emacs-elisp-docstring-mode")
20175 (version (git-version version revision commit))
20176 (source
20177 (origin
20178 (method git-fetch)
20179 (uri (git-reference
20180 (url "https://github.com/Fuco1/elisp-docstring-mode")
20181 (commit commit)))
20182 (file-name (git-file-name name version))
20183 (sha256
20184 (base32
20185 "0al8m75p359h4n82rf0dsl22qfdg9cwwywn5pn7x6gb96c7qrqaa"))))
20186 (build-system emacs-build-system)
20187 (home-page "https://github.com/Fuco1/elisp-docstring-mode")
20188 (synopsis "Major mode for editing Emacs Lisp docstrings")
20189 (description "This package provides font lock and automatic escaping and
20190 unescaping of quotes.")
20191 (license license:gpl3+))))
20192
20193 (define-public emacs-vimrc-mode
20194 (let ((commit "13bc150a870d5d4a95f1111e4740e2b22813c30e")
20195 (version "0.3.1")
20196 (revision "1"))
20197 (package
20198 (name "emacs-vimrc-mode")
20199 (version (git-version version revision commit))
20200 (source
20201 (origin
20202 (method git-fetch)
20203 (uri (git-reference
20204 (url "https://github.com/mcandre/vimrc-mode")
20205 (commit commit)))
20206 (file-name (git-file-name name version))
20207 (sha256
20208 (base32
20209 "0026dqs3hwygk2k2xfra90w5sfnxrfj7l69jz7sq5glavbf340pk"))))
20210 (build-system emacs-build-system)
20211 (home-page "https://github.com/mcandre/vimrc-mode")
20212 (synopsis "Major mode for Vimscript")
20213 (description "This package provides font lock and @code{beginning-} and
20214 @code{end-of-defun} functions for Vimscript files.")
20215 (license license:gpl3+))))
20216
20217 (define-public emacs-flycheck-elm
20218 (let ((revision "0")
20219 (commit "1b60050efd4729bfba548f3e5adbcb58436667cb"))
20220 (package
20221 (name "emacs-flycheck-elm")
20222 (version (git-version "0" revision commit))
20223 (source
20224 (origin
20225 (method git-fetch)
20226 (uri
20227 (git-reference
20228 (url "https://github.com/bsermons/flycheck-elm")
20229 (commit commit)))
20230 (file-name (git-file-name name version))
20231 (sha256
20232 (base32 "1kjms9d2c98ffd1qxs879qhg0n4jzic0r5kni9y4gz3v09ww8zms"))))
20233 (build-system emacs-build-system)
20234 (propagated-inputs
20235 `(("emacs-flycheck" ,emacs-flycheck)
20236 ("emacs-let-alist" ,emacs-let-alist)))
20237 (home-page "https://github.com/bsermons/flycheck-elm")
20238 (synopsis "Flycheck support for the Elm language")
20239 (description "Flycheck Elm adds Flycheck support for Elm language.")
20240 (license license:gpl3+))))
20241
20242 (define-public emacs-flycheck-haskell
20243 (let ((commit "32ddff87165a7d3a35e7318bee997b5b4bd41278")
20244 (revision "2"))
20245 (package
20246 (name "emacs-flycheck-haskell")
20247 (version (git-version "0.8" revision commit))
20248 (source
20249 (origin
20250 (method git-fetch)
20251 (uri (git-reference
20252 (url "https://github.com/flycheck/flycheck-haskell")
20253 (commit commit)))
20254 (file-name (git-file-name name version))
20255 (sha256
20256 (base32
20257 "10pgsbagq6qj4mshq5sypv0q0khck92b30sc793b4g1pfpsxvgjn"))))
20258 (build-system emacs-build-system)
20259 (propagated-inputs
20260 `(("emacs-dash" ,emacs-dash)
20261 ("emacs-seq" ,emacs-seq)
20262 ("emacs-flycheck" ,emacs-flycheck)
20263 ("emacs-haskell-mode" ,emacs-haskell-mode)
20264 ("emacs-let-alist" ,emacs-let-alist)))
20265 (arguments
20266 `(#:include '("\\.el$" "\\.hs$")))
20267 (home-page "https://github.com/flycheck/flycheck-haskell")
20268 (synopsis "Flycheck for Haskell")
20269 (description "This package configures syntax-checking for Haskell
20270 buffers.")
20271 (license license:gpl3+))))
20272
20273 (define-public emacs-js2-refactor-el
20274 (let ((commit "d4c40b5fc86d3edd7c6a7d83ac86483ee1cb7a28")
20275 (revision "2"))
20276 (package
20277 (name "emacs-js2-refactor-el")
20278 (version (git-version "0.9.0" revision commit))
20279 (source
20280 (origin
20281 (method git-fetch)
20282 (uri (git-reference
20283 (url "https://github.com/magnars/js2-refactor.el")
20284 (commit commit)))
20285 (file-name (git-file-name name version))
20286 (sha256
20287 (base32
20288 "08b25y3raz0p98zxk9xdd8nj9shqd6mzrqhbq1gg4cwsmi7h7ly1"))))
20289 (build-system emacs-build-system)
20290 (propagated-inputs
20291 `(("emacs-dash" ,emacs-dash)
20292 ("emacs-s" ,emacs-s)
20293 ("emacs-js2-mode" ,emacs-js2-mode)
20294 ("emacs-yasnippet" ,emacs-yasnippet)
20295 ("emacs-multiple-cursors" ,emacs-multiple-cursors)))
20296 (native-inputs
20297 `(("emacs-buttercup" ,emacs-buttercup)
20298 ("emacs-espuds" ,emacs-espuds)))
20299 (home-page "https://github.com/magnars/js2-refactor.el")
20300 (synopsis "JavaScript refactoring in Emacs")
20301 (description "This package provides various refactoring functions for
20302 JavaScript.")
20303 (license license:gpl3+))))
20304
20305 (define-public emacs-prettier
20306 (let ((commit "e9b73e81d3e1642aec682195f127a42dfb0b5774")
20307 (version "0.1.0")
20308 (revision "1"))
20309 (package
20310 (name "emacs-prettier")
20311 (version (git-version version revision commit))
20312 (source
20313 (origin
20314 (method git-fetch)
20315 (uri (git-reference
20316 (url "https://github.com/prettier/prettier-emacs")
20317 (commit commit)))
20318 (file-name (git-file-name name version))
20319 (sha256
20320 (base32
20321 "0hj4fv3fgc60i6jrsx4a81s5c9fsxxafhhs3q2q1dypsscjci9ph"))))
20322 (build-system emacs-build-system)
20323 (home-page "https://github.com/prettier/prettier-emacs")
20324 (synopsis "Automatic formatting of JavaScript code")
20325 (description "This package integrates Prettier with Emacs, and
20326 provides a minor mode that autoformats the buffer upon saving.")
20327 (license license:expat))))
20328
20329 (define-public emacs-fish-mode
20330 (package
20331 (name "emacs-fish-mode")
20332 (version "0.1.4")
20333 (source
20334 (origin
20335 (method git-fetch)
20336 (uri (git-reference
20337 (url "https://github.com/wwwjfy/emacs-fish")
20338 (commit version)))
20339 (file-name (git-file-name name version))
20340 (sha256
20341 (base32
20342 "0a74ghmjjrxfdhk4mvq6lar4w6l6lc4iilabs99smqr2fn5rsslq"))))
20343 (build-system emacs-build-system)
20344 (home-page "https://github.com/wwwjfy/emacs-fish")
20345 (synopsis "Major mode for Fish shell scripts")
20346 (description "This package provides syntax highlighting and indentation
20347 functions for Fish shell scripts.")
20348 (license license:gpl3+)))
20349
20350 (define-public emacs-eshell-up
20351 (let ((commit "9c100bae5c3020e8d9307e4332d3b64e7dc28519")
20352 (version "0.0.3")
20353 (revision "12"))
20354 (package
20355 (name "emacs-eshell-up")
20356 (version (git-version version revision commit))
20357 (source
20358 (origin
20359 (method git-fetch)
20360 (uri (git-reference
20361 (url "https://github.com/peterwvj/eshell-up")
20362 (commit commit)))
20363 (file-name (git-file-name name version))
20364 (sha256
20365 (base32
20366 "00zdbcncjabgj5mp47l1chymx5na18v2g4kj730dgmj3rnl3iz2q"))))
20367 (build-system emacs-build-system)
20368 (home-page "https://github.com/peterwvj/eshell-up")
20369 (synopsis "Quickly go to a parent directory in @code{Eshell}")
20370 (description "This package provides quick navigation to a specific
20371 parent directory using @code{Eshell}.")
20372 (license license:gpl3+))))
20373
20374 (define-public emacs-tco-el
20375 (let ((commit "482db5313f090b17ed22ccd856f0e141dc75afe6")
20376 (revision "1"))
20377 (package
20378 (name "emacs-tco-el")
20379 (version (git-version "0.3" revision commit))
20380 (source
20381 (origin
20382 (method git-fetch)
20383 (uri (git-reference
20384 (url "https://github.com/Wilfred/tco.el")
20385 (commit commit)))
20386 (file-name (git-file-name name version))
20387 (sha256
20388 (base32
20389 "1z7xkbrqznk6ni687qqknp8labcyhl8y6576hjfri89fn21385y9"))))
20390 (build-system emacs-build-system)
20391 (propagated-inputs
20392 `(("emacs-dash" ,emacs-dash)))
20393 (native-inputs
20394 `(("emacs-ert-runner" ,emacs-ert-runner)
20395 ("emacs-undercover" ,emacs-undercover)))
20396 (arguments
20397 `(#:tests? #t
20398 #:test-command '("ert-runner")))
20399 (home-page "https://github.com/Wilfred/tco.el")
20400 (synopsis "Tail-call optimization for Emacs Lisp")
20401 (description "This package provides tail-call optimization for Emacs
20402 Lisp functions that call themselves in tail position.")
20403 (license license:gpl3+))))
20404
20405 (define-public emacs-equake
20406 (let ((commit "7eddc025ee61b83029363e22219af228b8c20681")
20407 (revision "2"))
20408 (package
20409 (name "emacs-equake")
20410 (version (git-version "0.85" revision commit))
20411 (source
20412 (origin
20413 (method git-fetch)
20414 (uri (git-reference
20415 (url "https://gitlab.com/emacsomancer/equake/")
20416 (commit commit)))
20417 (file-name (git-file-name name version))
20418 (sha256
20419 (base32
20420 "1c55pbqak3d02sw6z1139baxzy401b90g0gxzcc3j6sgplz6sc6w"))))
20421 (build-system emacs-build-system)
20422 (propagated-inputs
20423 `(("emacs-dash" ,emacs-dash)
20424 ("emacs-tco-el" ,emacs-tco-el)))
20425 (home-page "https://gitlab.com/emacsomancer/equake/")
20426 (synopsis "Drop-down console for @code{Eshell} and terminal emulators")
20427 (description "This package provides a Quake-style drop-down console
20428 compatible with Emacs' shell modes.")
20429 (license license:gpl3+))))
20430
20431 (define-public emacs-vdiff
20432 (let ((commit "09e15fc932bfd2febe1d4a65780a532394562b07")
20433 (revision "1"))
20434 (package
20435 (name "emacs-vdiff")
20436 (version (git-version "0.2.3" revision commit))
20437 (source
20438 (origin
20439 (method git-fetch)
20440 (uri (git-reference
20441 (url "https://github.com/justbur/emacs-vdiff")
20442 (commit commit)))
20443 (file-name (git-file-name name version))
20444 (sha256
20445 (base32
20446 "1gvqi5l4zs872nn4pmj603aza09d81qad2rgijzv268lif8z34db"))))
20447 (build-system emacs-build-system)
20448 (propagated-inputs
20449 `(("emacs-hydra" ,emacs-hydra)))
20450 (arguments
20451 `(#:tests? #t
20452 #:test-command '("emacs" "-Q" "-batch" "-L" "."
20453 "-l" "vdiff-test.el"
20454 "-f" "ert-run-tests-batch-and-exit")))
20455 (home-page "https://github.com/justbur/emacs-vdiff/")
20456 (synopsis "Frontend for diffing based on vimdiff")
20457 (description "This package permits comparisons of two or three buffers
20458 based on diff output.")
20459 (license license:gpl3+))))
20460
20461 (define-public emacs-vdiff-magit
20462 ;; Need to use a more recent commit than the latest release version because
20463 ;; of Magit and Transient
20464 (let ((commit "b100d126c69e5c26a61ae05aa1778bcc4302b597")
20465 (version "0.3.2")
20466 (revision "8"))
20467 (package
20468 (name "emacs-vdiff-magit")
20469 (version (git-version version revision commit))
20470 (source
20471 (origin
20472 (method git-fetch)
20473 (uri (git-reference
20474 (url "https://github.com/justbur/emacs-vdiff-magit/")
20475 (commit commit)))
20476 (file-name (git-file-name name version))
20477 (sha256
20478 (base32
20479 "16cjmrzflf2i1w01973sl944xrfanakba8sb4dpwi79d92xp03xy"))))
20480 (build-system emacs-build-system)
20481 (propagated-inputs
20482 `(("emacs-vdiff" ,emacs-vdiff)
20483 ("emacs-magit" ,emacs-magit)
20484 ("emacs-transient" ,emacs-transient)))
20485 (home-page "https://github.com/justbur/emacs-vdiff-magit/")
20486 (synopsis "Frontend for diffing based on vimdiff")
20487 (description "This package permits comparisons of two or three buffers
20488 based on diff output.")
20489 (license license:gpl3+))))
20490
20491 (define-public emacs-all-the-icons-dired
20492 (let ((commit "980b7747d6c4a7992a1ec56afad908956db0a519")
20493 (version "1.0")
20494 (revision "1"))
20495 (package
20496 (name "emacs-all-the-icons-dired")
20497 (version (git-version version revision commit))
20498 (source
20499 (origin
20500 (method git-fetch)
20501 (uri (git-reference
20502 (url "https://github.com/jtbm37/all-the-icons-dired/")
20503 (commit commit)))
20504 (file-name (git-file-name name version))
20505 (sha256
20506 (base32
20507 "1pvbgyxfj4j205nj1r02045f1y4wgavdsk7f45hxkkhms1rj8jyy"))))
20508 (build-system emacs-build-system)
20509 (propagated-inputs
20510 `(("emacs-all-the-icons" ,emacs-all-the-icons)))
20511 (home-page "https://github.com/jtbm37/all-the-icons-dired/")
20512 (synopsis "Show icons for each file in @code{dired-mode}")
20513 (description "This package allows icons from @file{all-the-icons.el} to
20514 be used in @code{dired-mode}.")
20515 (license license:gpl3+))))
20516
20517 (define-public emacs-exwm-edit
20518 (let ((commit "e1291e311840f1049106fe98cec032a1c75efd2b")
20519 (version "0.0.1")
20520 (revision "3"))
20521 (package
20522 (name "emacs-exwm-edit")
20523 (version (git-version version revision commit))
20524 (source
20525 (origin
20526 (method git-fetch)
20527 (uri (git-reference
20528 (url "https://github.com/agzam/exwm-edit/")
20529 (commit commit)))
20530 (file-name (git-file-name name version))
20531 (sha256
20532 (base32
20533 "031cb8fvv5n30djr9lpl6vz3rl15zykfvjlgkjc8l33a3l5mw8j0"))))
20534 (build-system emacs-build-system)
20535 (propagated-inputs
20536 `(("emacs-exwm" ,emacs-exwm)))
20537 (home-page "https://github.com/agzam/exwm-edit/")
20538 (synopsis "Open temp buffers for editing text from EXWM buffers")
20539 (description "This package facilitates editing text from EXWM buffers by
20540 generating a temp buffer in which any useful Emacs utilities and modes can be
20541 invoked.")
20542 (license license:gpl3+))))
20543
20544 (define-public emacs-ert-async
20545 (package
20546 (name "emacs-ert-async")
20547 (version "0.1.2")
20548 (source
20549 (origin
20550 (method git-fetch)
20551 (uri (git-reference
20552 (url "https://github.com/rejeep/ert-async.el")
20553 (commit (string-append "v" version))))
20554 (file-name (git-file-name name version))
20555 (sha256
20556 (base32
20557 "0hn9i405nfhjd1h9vnwj43nxbbz00khrwkjq0acfyxjaz1shfac9"))))
20558 (build-system emacs-build-system)
20559 (home-page "https://github.com/rejeep/ert-async.el")
20560 (synopsis "Async support for ERT")
20561 (description "This package allows ERT to work with asynchronous tests.")
20562 (license license:gpl3+)))
20563
20564 (define-public emacs-prodigy-el
20565 (let ((commit "0a12eec1f001a4eef16b2c0c524f02f2647a4ff1")
20566 (revision "2"))
20567 (package
20568 (name "emacs-prodigy-el")
20569 (version (git-version "0.7.0" revision commit))
20570 (source
20571 (origin
20572 (method git-fetch)
20573 (uri (git-reference
20574 (url "https://github.com/rejeep/prodigy.el")
20575 (commit commit)))
20576 (file-name (git-file-name name version))
20577 (sha256
20578 (base32
20579 "02kysq57kqzg0zkhaf302ada9cp9spgp71z8vbdq4c7dl6x75h4g"))))
20580 (build-system emacs-build-system)
20581 (propagated-inputs
20582 `(("emacs-dash" ,emacs-dash)
20583 ("emacs-s" ,emacs-s)
20584 ("emacs-f" ,emacs-f)))
20585 (native-inputs
20586 `(("emacs-el-mock" ,emacs-el-mock)
20587 ("emacs-ert-async" ,emacs-ert-async)))
20588 (home-page "https://github.com/rejeep/prodigy.el")
20589 (synopsis "Manage external services from within Emacs")
20590 (description "This package provides a GUI for defining and monitoring services.")
20591 (license license:gpl3+))))
20592
20593 (define-public emacs-web-server
20594 (package
20595 (name "emacs-web-server")
20596 (version "0.1.2")
20597 (source
20598 (origin
20599 (method url-fetch)
20600 (uri (string-append "https://elpa.gnu.org/packages/"
20601 "web-server-" version ".tar"))
20602 (sha256
20603 (base32 "10lcsl4dg2yr9zjd99gq9jz150wvvh6r5y9pd88l8y9vz16f2lim"))))
20604 (build-system emacs-build-system)
20605 (home-page "https://github.com/eschulte/emacs-web-server/")
20606 (synopsis "Web server with handlers in Emacs Lisp")
20607 (description "This package supports HTTP GET and POST requests with
20608 url-encoded parameters, as well as web sockets.")
20609 (license license:gpl3+)))
20610
20611 (define-public emacs-markdown-preview-mode
20612 (package
20613 (name "emacs-markdown-preview-mode")
20614 (version "0.9.2")
20615 (source
20616 (origin
20617 (method git-fetch)
20618 (uri (git-reference
20619 (url "https://github.com/ancane/markdown-preview-mode")
20620 (commit (string-append "v" version))))
20621 (file-name (git-file-name name version))
20622 (sha256
20623 (base32
20624 "1d1id99gagymvzdfa1mwqh8y3szm8ii47rpijkfi1qnifjg5jaq9"))))
20625 (build-system emacs-build-system)
20626 (propagated-inputs
20627 `(("emacs-markdown-mode" ,emacs-markdown-mode)
20628 ("emacs-websocket" ,emacs-websocket)
20629 ("emacs-web-server" ,emacs-web-server)))
20630 (arguments '(#:include '("\\.el$" "\\.html$")))
20631 (home-page "https://github.com/ancane/markdown-preview-mode")
20632 (synopsis "Preview Markdown files")
20633 (description "This package provides a minor mode for preview of Markdown
20634 files, and sends rendered Markdown to a web browser.")
20635 (license license:gpl3+)))
20636
20637 (define-public emacs-dotenv-mode
20638 (package
20639 (name "emacs-dotenv-mode")
20640 (version "0.2.4")
20641 (source
20642 (origin
20643 (method git-fetch)
20644 (uri (git-reference
20645 (url "https://github.com/preetpalS/emacs-dotenv-mode")
20646 (commit (string-append "v" version))))
20647 (file-name (git-file-name name version))
20648 (sha256
20649 (base32
20650 "1fplkhxnsgdrg10iqsmw162zny2idz4vvv35spsb9j0hsk8imclc"))))
20651 (build-system emacs-build-system)
20652 (home-page "https://github.com/preetpalS/emacs-dotenv-mode")
20653 (synopsis "Major mode for @file{.env} files")
20654 (description "This package provides syntax highlighting for @file{.env}
20655 files.")
20656 (license license:gpl3+)))
20657
20658 (define-public emacs-add-node-modules-path
20659 (let ((commit "f31e69ccb681f882aebb806ce6e9478e3ac39708")
20660 (version "1.2.0")
20661 (revision "10"))
20662 (package
20663 (name "emacs-add-node-modules-path")
20664 (version (git-version version revision commit))
20665 (source
20666 (origin
20667 (method git-fetch)
20668 (uri (git-reference
20669 (url "https://github.com/codesuki/add-node-modules-path")
20670 (commit commit)))
20671 (file-name (git-file-name name version))
20672 (sha256
20673 (base32
20674 "0p106bqmvdr8by5iv02bshm339qbrjcch2d15mrm4h3nav03v306"))))
20675 (build-system emacs-build-system)
20676 (home-page "https://github.com/codesuki/add-node-modules-path")
20677 (synopsis "Add @file{node_modules} to the buffer-local @file{exec-path}")
20678 (description "This package searches the parent directories of the
20679 current file for the project's @file{node_modules/.bin/} directory, allowing
20680 Emacs to find project-specific installations of packages.")
20681 (license license:expat))))
20682
20683 (define-public emacs-flow-minor-mode
20684 (let ((commit "d1b32a7dd0d33c6a00a106da5f4b2323602cbd3e")
20685 (version "0.3")
20686 (revision "4"))
20687 (package
20688 (name "emacs-flow-minor-mode")
20689 (version (git-version version revision commit))
20690 (source
20691 (origin
20692 (method git-fetch)
20693 (uri (git-reference
20694 (url "https://github.com/an-sh/flow-minor-mode")
20695 (commit commit)))
20696 (file-name (git-file-name name version))
20697 (sha256
20698 (base32
20699 "169r4ib9qg9q6fm3p0p23qs1qx4pa9pg1qvyq4ysr85i7kwygppl"))))
20700 (build-system emacs-build-system)
20701 (home-page "https://github.com/an-sh/flow-minor-mode")
20702 (synopsis "Minor mode for JavaScript Flow files")
20703 (description "This package integrates Flow with Emacs, allowing for
20704 definition-jumping and type-checking on demand.")
20705 (license license:bsd-3))))
20706
20707 (define-public emacs-rjsx-mode
20708 (let ((commit "0e7fa6b4facdec4f85a7a8865bdf59dfd57217b5")
20709 (revision "2"))
20710 (package
20711 (name "emacs-rjsx-mode")
20712 (version (git-version "0.4" revision commit))
20713 (source
20714 (origin
20715 (method git-fetch)
20716 (uri (git-reference
20717 (url "https://github.com/felipeochoa/rjsx-mode")
20718 (commit commit)))
20719 (file-name (git-file-name name version))
20720 (sha256
20721 (base32
20722 "0s0871sx3ch09kgvbcp9na4zdrfrda62xjq8m9knbq5vnj8q8qpi"))))
20723 (build-system emacs-build-system)
20724 (propagated-inputs
20725 `(("emacs-js2-mode" ,emacs-js2-mode)))
20726 (arguments
20727 `(#:tests? #t
20728 #:test-command '("make" "test")))
20729 (home-page "https://github.com/felipeochoa/rjsx-mode")
20730 (synopsis "Major mode for JSX files")
20731 (description "This package extends the parser of @code{js2-mode} to
20732 support JSX syntax.")
20733 (license license:expat))))
20734
20735 (define-public emacs-origami-el
20736 (let ((commit "1f38085c8f9af7842765ed63f7d6dfe4dab59366")
20737 (version "1.0")
20738 (revision "1"))
20739 (package
20740 (name "emacs-origami-el")
20741 (version (git-version version revision commit))
20742 (source
20743 (origin
20744 (method git-fetch)
20745 (uri (git-reference
20746 (url "https://github.com/gregsexton/origami.el")
20747 (commit commit)))
20748 (file-name (git-file-name name version))
20749 (sha256
20750 (base32
20751 "0ha1qsz2p36pqa0sa2sp83lspbgx5lr7930qxnwd585liajzdd9x"))))
20752 (build-system emacs-build-system)
20753 (propagated-inputs
20754 `(("emacs-dash" ,emacs-dash)
20755 ("emacs-s" ,emacs-s)))
20756 (home-page "https://github.com/gregsexton/origami.el")
20757 (synopsis "Flexible text-folding")
20758 (description "This package provides a minor mode for collapsing and
20759 expanding regions of text without modifying the actual contents.")
20760 (license license:expat))))
20761
20762 (define-public emacs-peep-dired
20763 (let ((commit "c88a9a3050197840edfe145f11e0bb9488de32f4")
20764 (version "0")
20765 (revision "1"))
20766 (package
20767 (name "emacs-peep-dired")
20768 (version (git-version version revision commit))
20769 (source
20770 (origin
20771 (method git-fetch)
20772 (uri (git-reference
20773 (url "https://github.com/asok/peep-dired")
20774 (commit commit)))
20775 (file-name (git-file-name name version))
20776 (sha256
20777 (base32
20778 "1wy5qpnfri1gha2cnl6q20qar8dbl2mimpb43bnhmm2g3wgjyad6"))))
20779 (build-system emacs-build-system)
20780 (home-page "https://github.com/asok/peep-dired")
20781 (synopsis "Preview files in another window")
20782 (description "This package provides a minor mode that allows files to be
20783 previewed by scrolling up and down within a @code{dired} buffer.")
20784 (license license:gpl3+))))
20785
20786 (define-public emacs-counsel-etags
20787 (package
20788 (name "emacs-counsel-etags")
20789 (version "1.9.11")
20790 (source
20791 (origin
20792 (method git-fetch)
20793 (uri (git-reference
20794 (url "https://github.com/redguardtoo/counsel-etags")
20795 (commit version)))
20796 (file-name (git-file-name name version))
20797 (sha256
20798 (base32 "0h0br41vkrx9l7bqr55bafqd715drxxwm41qif6iffhgdpvf69ym"))))
20799 (build-system emacs-build-system)
20800 (propagated-inputs
20801 `(("emacs-counsel" ,emacs-counsel)))
20802 (arguments
20803 `(#:tests? #t
20804 #:test-command '("make" "test")))
20805 (home-page "https://github.com/redguardtoo/counsel-etags")
20806 (synopsis "Fast @code{Ctags}/@code{Etags} solution with @code{ivy-mode}")
20807 (description "This package uses @code{ivy-mode} to facilitate navigating
20808 and searching through @code{Ctags} files.")
20809 (license license:gpl3+)))
20810
20811 (define-public emacs-ivy-clipmenu
20812 (let ((commit "d2071f2c5043a05d610cd1952e84176ca78c31dc"))
20813 (package
20814 (name "emacs-ivy-clipmenu")
20815 (version (git-version "0.0.1" "1" commit))
20816 (source (origin
20817 (method git-fetch)
20818 (uri (git-reference
20819 (url "https://github.com/wpcarro/ivy-clipmenu.el")
20820 (commit commit)))
20821 (file-name (git-file-name name version))
20822 (sha256
20823 (base32
20824 "0npd8glzk5z4n7y9mzbsbzi0cf3by19fqcki052jr3dga363lds7"))))
20825 (propagated-inputs
20826 `(("emacs-f" ,emacs-f)
20827 ("emacs-ivy" ,emacs-ivy)))
20828 (build-system emacs-build-system)
20829 (home-page "https://github.com/wpcarro/ivy-clipmenu.el")
20830 (synopsis "Ivy integration with clipmenu")
20831 (description "Ivy integration with the clipboard manager, clipmenu.")
20832 (license license:expat))))
20833
20834 (define-public emacs-org-download
20835 (let ((commit "10c9d7c8eed928c88a896310c882e3af4d8d0f61")
20836 (revision "2"))
20837 (package
20838 (name "emacs-org-download")
20839 (version (git-version "0.1.0" revision commit))
20840 (source (origin
20841 (method git-fetch)
20842 (uri (git-reference
20843 (url "https://github.com/abo-abo/org-download")
20844 (commit commit)))
20845 (sha256
20846 (base32
20847 "0i8wlx1i7y1vn5lqwjifvymvszg28a07vwqcm4jslf1v2ajs1lsl"))
20848 (file-name (git-file-name name version))))
20849 (build-system emacs-build-system)
20850 (propagated-inputs
20851 `(("emacs-org" ,emacs-org)
20852 ("emacs-async" ,emacs-async)))
20853 (home-page "https://github.com/abo-abo/org-download")
20854 (synopsis "Facilitate moving images")
20855 (description "This package provides utilities for managing image files
20856 copied into @code{org-mode} buffers.")
20857 (license license:gpl3+))))
20858
20859 (define-public emacs-dash-docs
20860 (let ((commit "111fd9b97001f1ad887b45e5308a14ddd68ce70a")
20861 (revision "1"))
20862 (package
20863 (name "emacs-dash-docs")
20864 (version (git-version "1.4.0" revision commit))
20865 (source
20866 (origin
20867 (method git-fetch)
20868 (uri (git-reference
20869 (url "https://github.com/dash-docs-el/dash-docs")
20870 (commit commit)))
20871 (file-name (git-file-name name version))
20872 (sha256
20873 (base32
20874 "0sckb7z0ylflva212bns7iq9mfnffgjghi0qspsbfwra35zb9xng"))))
20875 (build-system emacs-build-system)
20876 (propagated-inputs
20877 `(("emacs-async" ,emacs-async)))
20878 (native-inputs
20879 `(("emacs-undercover" ,emacs-undercover)
20880 ("emacs-ert-runner" ,emacs-ert-runner)))
20881 (arguments
20882 `(#:tests? #t
20883 #:test-command '("ert-runner")
20884 #:phases
20885 ;; this test requires network access, so remove it
20886 (modify-phases %standard-phases
20887 (add-before 'check 'make-tests-writable
20888 (lambda _
20889 (make-file-writable "test/dash-docs-test.el")
20890 #t))
20891 (add-before 'check 'delete-test
20892 (lambda _
20893 (emacs-batch-edit-file "test/dash-docs-test.el"
20894 `(progn (progn
20895 (goto-char (point-min))
20896 (re-search-forward "ert-deftest dash-docs-official-docsets-test")
20897 (beginning-of-line)
20898 (kill-sexp))
20899 (basic-save-buffer)))
20900 #t)))))
20901 (home-page "https://github.com/dash-docs-el/dash-docs")
20902 (synopsis "Offline documentation browser for APIs using Dash docsets")
20903 (description "This package exposes functionality to work with Dash docsets.")
20904 (license license:gpl3+))))
20905
20906 (define-public emacs-helm-dash
20907 (let ((commit "7f853bd34da666f0e9a883011c80f451b06f6c59")
20908 (revision "2"))
20909 (package
20910 (name "emacs-helm-dash")
20911 (version (git-version "1.3.0" revision commit))
20912 (source
20913 (origin
20914 (method git-fetch)
20915 (uri (git-reference
20916 (url "https://github.com/areina/helm-dash")
20917 (commit commit)))
20918 (file-name (git-file-name name version))
20919 (sha256
20920 (base32
20921 "0r192vzry1212ihabg9pgw9xar8zdgnbgy0vsgvfm8s5wj6ny7jp"))))
20922 (build-system emacs-build-system)
20923 (propagated-inputs
20924 `(("emacs-helm" ,emacs-helm)
20925 ("emacs-dash-docs" ,emacs-dash-docs)))
20926 (home-page "https://github.com/areina/helm-dash")
20927 (synopsis "Offline documentation browser for APIs using Dash docsets")
20928 (description "This package uses Helm to install and navigate through
20929 Dash docsets.")
20930 (license license:gpl3+))))
20931
20932 (define-public emacs-counsel-dash
20933 (let ((commit "370d5f6f14b5294d0eb717f7b2a6a8e93df1ed24")
20934 (revision "4"))
20935 (package
20936 (name "emacs-counsel-dash")
20937 (version (git-version "0.1.3" revision commit))
20938 (source
20939 (origin
20940 (method git-fetch)
20941 (uri (git-reference
20942 (url "https://github.com/dash-docs-el/counsel-dash")
20943 (commit commit)))
20944 (file-name (git-file-name name version))
20945 (sha256
20946 (base32 "1fn38vbz46ijarjvhgw7iy7dj9s2a2miy95fyy9f8b5sj8nrdfvz"))))
20947 (build-system emacs-build-system)
20948 (propagated-inputs
20949 `(("emacs-counsel" ,emacs-counsel)
20950 ("emacs-dash-docs" ,emacs-dash-docs)))
20951 (home-page "https://github.com/dash-docs-el/counsel-dash")
20952 (synopsis "Offline documentation browser for APIs using Dash docsets")
20953 (description "This package uses @code{ivy-mode} to install and navigate
20954 through Dash docsets.")
20955 (license license:expat))))
20956
20957 (define-public emacs-calibredb
20958 (package
20959 (name "emacs-calibredb")
20960 (version "2.4.0")
20961 (source
20962 (origin
20963 (method git-fetch)
20964 (uri (git-reference
20965 (url "https://github.com/chenyanming/calibredb.el")
20966 (commit version)))
20967 (file-name (git-file-name name version))
20968 (sha256
20969 (base32 "0c6y3n51djajhfj4k6g0r58brls0fhyw6d7c6h4zi5jl1hw64vj6"))))
20970 (build-system emacs-build-system)
20971 (propagated-inputs
20972 `(("emacs-dash" ,emacs-dash)
20973 ("emacs-org" ,emacs-org)
20974 ("emacs-s" ,emacs-s)
20975 ("emacs-transient" ,emacs-transient)))
20976 (home-page "https://github.com/chenyanming/calibredb.el")
20977 (synopsis "Yet another calibre client for Emacs")
20978 (description "This package integrates calibre into Emacs.
20979 @enumerate
20980 @item Powerful ebook dashboard.
20981 @item Manage ebooks, actually not only ebooks!
20982 @item Manage Ebook libraries.
20983 @item Another bookmarks solution, by setting the tags and comments.
20984 @item Quick search, filter, make actions on items with ivy and helm.
20985 @item Org-ref support.
20986 @end enumerate")
20987 (license license:gpl3)))
20988
20989 (define-public emacs-el-patch
20990 (package
20991 (name "emacs-el-patch")
20992 (version "2.2.3")
20993 (source
20994 (origin
20995 (method git-fetch)
20996 (uri (git-reference
20997 (url "https://github.com/raxod502/el-patch")
20998 (commit version)))
20999 (file-name (git-file-name name version))
21000 (sha256
21001 (base32
21002 "18djslz177q6q33y82zmg2v6n9236a76kiqfvxdk4vbqzjbq82f7"))))
21003 (build-system emacs-build-system)
21004 (home-page "https://github.com/raxod502/el-patch")
21005 (synopsis "Future-proof your Emacs customizations")
21006 (description "This package allows for an alternate definition of an Elisp
21007 function to be specified and for any differences from the original definition
21008 to be examined using Ediff.")
21009 (license license:expat)))
21010
21011 (define-public emacs-info-plus
21012 (let ((commit "4a6b93c170169594e1e8ea60cd799a1a88a969da")
21013 (revision "2"))
21014 (package
21015 (name "emacs-info-plus")
21016 (version (git-version "0" revision commit))
21017 (source
21018 (origin
21019 (method git-fetch)
21020 (uri (git-reference
21021 (url "https://github.com/emacsmirror/info-plus")
21022 (commit commit)))
21023 (file-name (git-file-name name version))
21024 (sha256
21025 (base32
21026 "1xzmx7m1qbl3b1x6yq1db1a108xqaa64ljfv1hdw763zmy4kc6m0"))))
21027 (build-system emacs-build-system)
21028 (home-page "https://github.com/emacsmirror/info-plus")
21029 (synopsis "Extensions to @file{info.el}")
21030 (description "This package extends Emacs' @file{info.el} by allowing
21031 outline-enabled table of contents, additional metadata association for Info
21032 nodes, and more.")
21033 (license license:gpl2+))))
21034
21035 (define-public emacs-eval-sexp-fu-el
21036 (package
21037 (name "emacs-eval-sexp-fu-el")
21038 (version "0.5.0")
21039 (source
21040 (origin
21041 (method git-fetch)
21042 (uri (git-reference
21043 (url "https://github.com/hchbaw/eval-sexp-fu.el")
21044 (commit (string-append "v" version))))
21045 (file-name (git-file-name name version))
21046 (sha256
21047 (base32
21048 "01mpnpgmlnfbi2yw9dxz5iw72mw3lk223bj172i4fnx3xdrrxbij"))))
21049 (build-system emacs-build-system)
21050 (home-page "https://github.com/hchbaw/eval-sexp-fu.el")
21051 (synopsis "Enhancements for evaluating s-expressions")
21052 (description "This package provides provides variants of
21053 @code{eval-last-sexp} that work on the containing list or s-expression, as
21054 well as an option for visually flashing evaluated s-expressions.")
21055 (license license:gpl3+)))
21056
21057 (define-public emacs-counsel-tramp
21058 (package
21059 (name "emacs-counsel-tramp")
21060 (version "0.7.5")
21061 (source
21062 (origin
21063 (method git-fetch)
21064 (uri (git-reference
21065 (url "https://github.com/masasam/emacs-counsel-tramp")
21066 (commit version)))
21067 (file-name (git-file-name name version))
21068 (sha256
21069 (base32 "18qlwyjqxap2qfbz14ma6yqp4p3v4q2y8idc355s4szjdd2as2lr"))))
21070 (build-system emacs-build-system)
21071 (propagated-inputs
21072 `(("emacs-counsel" ,emacs-counsel)))
21073 (home-page "https://github.com/masasam/emacs-counsel-tramp")
21074 (synopsis "Ivy interface for TRAMP")
21075 (description
21076 "This package allows @code{ivy-mode} to display and filter SSH servers.")
21077 (license license:gpl3+)))
21078
21079 (define-public emacs-tramp
21080 (package
21081 (name "emacs-tramp")
21082 (version "2.4.4.1")
21083 (source
21084 (origin
21085 (method url-fetch)
21086 (uri (string-append "https://elpa.gnu.org/packages/"
21087 "tramp-" version ".tar"))
21088 (sha256
21089 (base32 "0jayd75yscaqvg6y0m6g2mgbjswyj5gqdij2az9g0j18vm5vbqy3"))))
21090 (build-system emacs-build-system)
21091 (arguments
21092 `(#:emacs ,emacs ;need D-Bus
21093 #:phases
21094 (modify-phases %standard-phases
21095 ;; All but one "/bin/" directory refer to remote
21096 ;; environments, which may not be Guix. Do not patch them
21097 ;; blindly. However, local encoding shell has to be patched.
21098 (replace 'patch-el-files
21099 (lambda* (#:key inputs #:allow-other-keys)
21100 (let ((sh (assoc-ref inputs "bash"))
21101 (file "tramp.el"))
21102 (emacs-substitute-variables file
21103 ("tramp-encoding-shell" (string-append sh "/bin/sh"))))
21104 #t)))))
21105 (inputs
21106 `(("bash" ,bash)))
21107 (home-page "https://savannah.gnu.org/projects/tramp")
21108 (synopsis "Remote file editing package for Emacs")
21109 (description
21110 "Tramp stands for ``Transparent Remote (file) Access, Multiple
21111 Protocol''. This package provides remote file editing, using
21112 a combination of @command{rsh} and @command{rcp} or other work-alike
21113 programs, such as @command{ssh} and @command{scp}.")
21114 (license license:gpl3+)))
21115
21116 (define-public emacs-tramp-auto-auth
21117 (let ((commit "f15a12dfab651aff60f4a9d70f868030a12344ac"))
21118 (package
21119 (name "emacs-tramp-auto-auth")
21120 (version (git-version "20191027" "1" commit))
21121 (source
21122 (origin
21123 (method git-fetch)
21124 (uri (git-reference
21125 (url "https://github.com/oitofelix/tramp-auto-auth")
21126 (commit commit)))
21127 (file-name (git-file-name name version))
21128 (sha256
21129 (base32
21130 "09nkjgwppjfgv04q0gv468qihgx4y3p39lpwbd6vbh3wgbccas9k"))))
21131 (build-system emacs-build-system)
21132 (home-page "https://github.com/oitofelix/tramp-auto-auth")
21133 (synopsis "TRAMP automatic authentication library")
21134 (description "This package provides @code{tramp-auto-auth-mode} Emacs
21135 global minor mode whose purpose is to automatically feed TRAMP sub-processes
21136 with passwords for paths matching regexps.")
21137 (license license:gpl3+))))
21138
21139 (define-public emacs-eacl
21140 (package
21141 (name "emacs-eacl")
21142 (version "2.0.1")
21143 (source
21144 (origin
21145 (method git-fetch)
21146 (uri (git-reference
21147 (url "https://github.com/redguardtoo/eacl")
21148 (commit version)))
21149 (file-name (git-file-name name version))
21150 (sha256
21151 (base32
21152 "0ksn11sm3g1ja5lpjz3hrzzw8b480mfcb3q589m52qjgvvn5iyfv"))))
21153 (build-system emacs-build-system)
21154 (propagated-inputs
21155 `(("emacs-ivy" ,emacs-ivy)))
21156 (home-page "https://github.com/redguardtoo/eacl")
21157 (synopsis "Auto-complete lines by using @code{grep} on a project")
21158 (description "This package provides auto-completion commands for single
21159 and multiple lines of code in a project.")
21160 (license license:gpl3+)))
21161
21162 (define-public emacs-semantic-refactor
21163 ;; The last release, 0.5, was made on 2015-07-26 and there have been 47
21164 ;; commits since then.
21165 (let ((commit "6f2c97d17fb70f4ca2112f5a2b99a8ec162004f5"))
21166 (package
21167 (name "emacs-semantic-refactor")
21168 (version (git-version "0.5" "1" commit))
21169 (source
21170 (origin
21171 (method git-fetch)
21172 (uri (git-reference
21173 (url "https://github.com/tuhdo/semantic-refactor")
21174 (commit commit)))
21175 (file-name (git-file-name name version))
21176 (sha256
21177 (base32
21178 "1lyz3zjkx2csh0xdy1zpx8s32qp1p3sig57mwi9xhgpqjyf0axmb"))))
21179 (build-system emacs-build-system)
21180 (home-page "https://github.com/tuhdo/semantic-refactor")
21181 (synopsis "Refactoring tool for C/C++ and Lisp dialects")
21182 (description "This package provides a refactoring tool based on the
21183 Emacs Semantic parser framework. For C and C++ it supports operations such as:
21184
21185 @enumerate
21186 @item Generating class implementations
21187 @item Generating function prototypes
21188 @item Converting functions to function pointers
21189 @item Moving semantic units
21190 @item etc...
21191 @end enumerate
21192
21193 For Lisp dialects like Clojure, ELisp, and Scheme, it supports operations such
21194 as:
21195
21196 @enumerate
21197 @item Formatting the whole buffer
21198 @item Converting sexpressions to one or multiple lines
21199 @item etc...
21200 @end enumerate\n")
21201 (license license:gpl3+))))
21202
21203 (define-public emacs-nhexl-mode
21204 (package
21205 (name "emacs-nhexl-mode")
21206 (version "1.5")
21207 (source
21208 (origin
21209 (method url-fetch)
21210 (uri (string-append "https://elpa.gnu.org/packages/"
21211 "nhexl-mode-" version ".el"))
21212 (sha256
21213 (base32 "0qvxfg7sv4iqyjxzaim6b4v9k5hav36qd4vkf9jwzw6p5fri8w8d"))))
21214 (build-system emacs-build-system)
21215 (home-page "https://elpa.gnu.org/packages/nhexl-mode.html")
21216 (synopsis "Minor mode to edit files via hex-dump format")
21217 (description
21218 "This package implements NHexl mode, a minor mode for editing files
21219 in hex dump format. The mode command is called @command{nhexl-mode}.
21220
21221 This minor mode implements similar functionality to @command{hexl-mode},
21222 but using a different implementation technique, which makes it
21223 usable as a \"plain\" minor mode. It works on any buffer, and does
21224 not mess with the undo log or with the major mode.
21225
21226 It also comes with:
21227
21228 @itemize
21229 @item @command{nhexl-nibble-edit-mode}: a \"nibble editor\" minor mode, where
21230 the cursor pretends to advance by nibbles (4-bit) and the self-insertion keys
21231 (which only work for hex-digits) will only modify the nibble under point.
21232 @item @command{nhexl-overwrite-only-mode}: a minor mode to try and avoid
21233 moving text. In this minor mode, not only self-inserting keys overwrite
21234 existing text, but commands like `yank' and @command{kill-region} as well.
21235 @item It overrides @code{C-u} to use hexadecimal, so you can do @code{C-u a 4
21236 C-f} to advance by #xa4 characters.
21237 @end itemize")
21238 (license license:gpl3+)))
21239
21240 (define-public emacs-helm-wikipedia
21241 (let ((commit "126f044e0a0e1432e0791c33ce2a41875d704a9b"))
21242 (package
21243 (name "emacs-helm-wikipedia")
21244 (version (git-version "0.0.0" "1" commit))
21245 (home-page "https://github.com/emacs-helm/helm-wikipedia/")
21246 (source
21247 (origin
21248 (method git-fetch)
21249 (uri (git-reference
21250 (url home-page)
21251 (commit commit)))
21252 (file-name (git-file-name name version))
21253 (sha256
21254 (base32
21255 "148a5xsnbsiddhf9cl7yxdk41lrv38h0pip91kcflw9d7l0dp7pr"))))
21256 (build-system emacs-build-system)
21257 (inputs
21258 `(("helm" ,emacs-helm)))
21259 (synopsis "Search suggestions and article extracts from Wikipedia for Emacs")
21260 (description
21261 "This package provides an Emacs Helm interface for search suggestions
21262 and article extracts for Wikipedia.")
21263 (license license:gpl3+))))
21264
21265 (define-public emacs-webfeeder
21266 (package
21267 (name "emacs-webfeeder")
21268 (version "1.0.0")
21269 (source
21270 (origin
21271 (method url-fetch)
21272 (uri (string-append
21273 "https://elpa.gnu.org/packages/webfeeder-"
21274 version
21275 ".tar"))
21276 (sha256
21277 (base32
21278 "06y5vxw9m6pmbrzb8v2i3w9dnhgqxz06vyx1knmgi9cczlrj4a64"))))
21279 (build-system emacs-build-system)
21280 (home-page "https://gitlab.com/Ambrevar/emacs-webfeeder")
21281 (synopsis "Build RSS and Atom webfeeds from HTML files")
21282 (description
21283 "Webfeeder is an Emacs library to generate RSS and Atom feeds from HTML
21284 files. The various elements of the HTML input are parsed with customizable
21285 functions (e.g. @code{webfeeder-title-function}).")
21286 (license license:gpl3+)))
21287
21288 (define-public emacs-evil-numbers
21289 (let ((commit "6ea1c8c3a9b37bed63d48f1128e9a4910e68187e"))
21290 (package
21291 (name "emacs-evil-numbers")
21292 (version (git-version "0.4" "1" commit))
21293 (source (origin
21294 (method git-fetch)
21295 (uri (git-reference
21296 (url "https://github.com/dieggsy/evil-numbers")
21297 (commit commit)))
21298 (file-name (git-file-name name version))
21299 (sha256
21300 (base32
21301 "1aq95hj8x13py0pwsnc6wvd8cc5yv5qin8ym9js42y5966vwj4np"))))
21302 (build-system emacs-build-system)
21303 (home-page "https://github.com/dieggsy/evil-numbers")
21304 (synopsis "Increment and decrement numbers in Emacs")
21305 (description "This package increments and decrements binary, octal,
21306 decimal and hex literals. It works like C-a/C-x in Vim, i.e. searches for
21307 number up to EOL and then increments or decrements and keeps zero padding up
21308 (unlike in Vim). When a region is active, as in Evil's visual mode, all the
21309 numbers within that region will be incremented/decremented (unlike in Vim).
21310
21311 It is a fork of https://github.com/cofi/evil-numbers, which is unmaintained.")
21312 (license license:gpl3+))))
21313
21314 (define-public emacs-rotate-text
21315 (package
21316 (name "emacs-rotate-text")
21317 (version "0.1")
21318 (source (origin
21319 (method git-fetch)
21320 (uri (git-reference
21321 (url "https://github.com/nschum/rotate-text.el")
21322 (commit version)))
21323 (file-name (git-file-name name version))
21324 (sha256
21325 (base32
21326 "1cgxv4aibkvv6lnssynn0438a615fz3zq8hg9sb0lhfgsr99pxln"))))
21327 (build-system emacs-build-system)
21328 (home-page "https://nschum.de/src/emacs/rotate-text/")
21329 (synopsis "Cycle through words, symbols and patterns in Emacs")
21330 (description "@code{rotate-text} allows you rotate to commonly
21331 interchanged text with a single keystroke. For example, you can toggle
21332 between \"frame-width\" and \"frame-height\", between \"public\",
21333 \"protected\" and \"private\" and between \"variable1\", \"variable2\" through
21334 \"variableN\".")
21335 (license license:gpl2+)))
21336
21337 (define-public emacs-ediprolog
21338 (package
21339 (name "emacs-ediprolog")
21340 (version "1.2")
21341 (source
21342 (origin
21343 (method url-fetch)
21344 (uri (string-append
21345 "https://elpa.gnu.org/packages/ediprolog-"
21346 version
21347 ".el"))
21348 (sha256
21349 (base32
21350 "039ffvp7c810mjyargmgw1i87g0z8qs8qicq826sd9aiz9hprfaz"))))
21351 (build-system emacs-build-system)
21352 (home-page "https://elpa.gnu.org/packages/ediprolog.html")
21353 (synopsis "Emacs Does Interactive Prolog")
21354 (description "This package provides a major mode that let the user
21355 interact with SWI-Prolog in all buffers. For instance, one can consult Prolog
21356 programs and evaluate embedded queries. This mode is focused on the command
21357 @code{ediprolog-dwim} (Do What I Mean) which is supposed to, depending on the
21358 context, carry out the appropriate action.")
21359 (license license:gpl3+)))
21360
21361 (define-public emacs-evil-cleverparens
21362 (let ((commit "8c45879d49bfa6d4e414b6c1df700a4a51cbb869")
21363 (revision "1"))
21364 (package
21365 (name "emacs-evil-cleverparens")
21366 (version (git-version "2017-07-17" revision commit))
21367 (source (origin
21368 (method git-fetch)
21369 (uri (git-reference
21370 (url "https://github.com/luxbock/evil-cleverparens")
21371 (commit commit)))
21372 (sha256 (base32 "0lhnybpnk4n2yhlcnj9zxn0vi5hpjfaqfhvyfy7ckzz74g8v7iyw"))
21373 (file-name (git-file-name name version))))
21374 (build-system emacs-build-system)
21375 (propagated-inputs
21376 `(("emacs-evil" ,emacs-evil)
21377 ("emacs-paredit" ,emacs-paredit)
21378 ("emacs-smartparens" ,emacs-smartparens)))
21379 (home-page "https://github.com/luxbock/evil-cleverparens")
21380 (synopsis "Emacs modal editing optimized for editing Lisp")
21381 (description "@code{evil-cleverparens} remaps Evil keybindings to allow
21382 modal editing with screwing up the structure of Lisp code. Alternatives for
21383 verb commands which would are normally destructive (such as deletion) are
21384 provided. Those alternative commands are and bound by default to their
21385 corresponding Evil keys.")
21386 (license license:expat))))
21387
21388 (define-public emacs-evil-traces
21389 (let ((commit "1931e3ea2c64b4aec393a9c25063c330deff55e3")
21390 (revision "2"))
21391 (package
21392 (name "emacs-evil-traces")
21393 (version (git-version "0.0.1" revision commit))
21394 (source (origin
21395 (method git-fetch)
21396 (uri (git-reference
21397 (url "https://github.com/mamapanda/evil-traces")
21398 (commit commit)))
21399 (file-name (git-file-name name version))
21400 (sha256
21401 (base32
21402 "12p9lfxscs182vbd4dy0m5gacs3d4kyprbz5yndpwvl8g2qsqplz"))))
21403 (build-system emacs-build-system)
21404 (propagated-inputs
21405 `(("emacs-evil" ,emacs-evil)))
21406 (arguments
21407 `(#:phases
21408 (modify-phases %standard-phases
21409 (add-after 'unpack 'set-shell
21410 ;; Setting the SHELL environment variable is required for the tests
21411 ;; to find sh.
21412 (lambda _
21413 (setenv "SHELL" (which "sh"))
21414 #t)))
21415 #:tests? #t
21416 #:test-command '("make" "test")))
21417 (home-page "https://github.com/mamapanda/evil-traces")
21418 (synopsis "Visual hints for @code{evil-ex}")
21419 (description "This package adds visual hints to certain @code{ex}
21420 commands in @code{evil-mode}.")
21421 (license license:gpl3+))))
21422
21423 (define-public emacs-evil-tmux-navigator
21424 (package
21425 (name "emacs-evil-tmux-navigator")
21426 (version "0.1.5")
21427 (source
21428 (origin
21429 (method git-fetch)
21430 (uri
21431 (git-reference
21432 (url "https://github.com/keith/evil-tmux-navigator")
21433 (commit version)))
21434 (file-name (git-file-name name version))
21435 (sha256
21436 (base32
21437 "1na44rbc03sr5b4z9pvnps6n4nmrqcz58nywix9825l74a419ijx"))))
21438 (propagated-inputs
21439 `(("emacs-evil" ,emacs-evil)))
21440 (build-system emacs-build-system)
21441 (home-page "https://github.com/keith/evil-tmux-navigator")
21442 (synopsis
21443 "Navigate seamlessly between emacs windows and tmux panes")
21444 (description
21445 "This package lets you use C-h, C-j, C-k and C-l to navigate between
21446 Emacs windows and tmux panes.")
21447 (license license:expat)))
21448
21449 (define-public emacs-xclip
21450 (package
21451 (name "emacs-xclip")
21452 (version "1.10")
21453 (source
21454 (origin
21455 (method url-fetch)
21456 (uri (string-append "https://elpa.gnu.org/packages/"
21457 "xclip-" version ".el"))
21458 (sha256
21459 (base32 "0i3i9kwfg8qmhcmqhhnrb1kljgwkccv63s9q1mjwqfjldyfh8j8i"))))
21460 (build-system emacs-build-system)
21461 (home-page "http://elpa.gnu.org/packages/xclip.html")
21462 (synopsis "Copy and paste GUI clipboard from Emacs in text terminal")
21463 (description
21464 "This package allows Emacs to copy to and paste from the GUI clipboard
21465 when running in text terminal.
21466
21467 It can use external command-line tools for that, e.g., @command{xclip} or
21468 @command{xsel}, which you may need to install in order for the package to
21469 work.")
21470 (license license:gpl3+)))
21471
21472 (define-public emacs-xterm-color
21473 (package
21474 (name "emacs-xterm-color")
21475 (version "1.9")
21476 (source (origin
21477 (method git-fetch)
21478 (uri (git-reference
21479 (url "https://github.com/atomontage/xterm-color")
21480 (commit version)))
21481 (file-name (git-file-name name version))
21482 (sha256
21483 (base32
21484 "0i9ivc5xhl5y5v0l18kbhfg8s2abb9zaimyx951b8bc0f5as68xm"))))
21485 (build-system emacs-build-system)
21486 (home-page "https://github.com/atomontage/xterm-color")
21487 (synopsis "ANSI & xterm-256 color text property translator for Emacs")
21488 (description "@code{xterm-color.el} is an ANSI control sequence to
21489 text-property translator.")
21490 (license license:bsd-2)))
21491
21492 (define-public emacs-org-noter
21493 (package
21494 (name "emacs-org-noter")
21495 (version "1.4.1")
21496 (source
21497 (origin
21498 (method git-fetch)
21499 (uri (git-reference
21500 (url "https://github.com/weirdNox/org-noter")
21501 (commit version)))
21502 (file-name (git-file-name name version))
21503 (sha256
21504 (base32
21505 "1vwfpdi7hfkxx4vi0cwg7rvqby3i0mymzdkyzrqzv30dazmcjpag"))))
21506 (build-system emacs-build-system)
21507 (propagated-inputs `(("emacs-org" ,emacs-org)))
21508 (home-page "https://github.com/weirdNox/org-noter")
21509 (synopsis "Synchronized, Org-mode, document annotator")
21510 (description
21511 "This package lets you create notes that are kept in sync when you
21512 scroll through the document, but that are external to it---the notes
21513 themselves live in an Org-mode file. As such, this leverages the power of
21514 Org-mode (the notes may have outlines, latex fragments, babel, etc...) while
21515 acting like notes that are made @emph{in} the document.")
21516 (license license:gpl3+)))
21517
21518 (define-public emacs-org-redmine
21519 (let ((commit "e77d013bc3784947c46a5c53f03cd7d3c68552fc"))
21520 (package
21521 (name "emacs-org-redmine")
21522 (version (git-version "0.1" "1" commit))
21523 (source (origin
21524 (method git-fetch)
21525 (uri (git-reference
21526 (url "https://github.com/gongo/org-redmine")
21527 (commit commit)))
21528 (file-name (git-file-name name version))
21529 (sha256
21530 (base32
21531 "06miv3mf2a39vkf6mmm5ssc47inqh7dq82khsyc03anz4d4lj822"))))
21532 (build-system emacs-build-system)
21533 (home-page "https://github.com/gongo/org-redmine/")
21534 (synopsis "Redmine tools using Emacs")
21535 (description "This program provides an Emacs client for Redmine.")
21536 (license license:gpl3+))))
21537
21538 (define-public emacs-multi-term
21539 ;; No upstream release. Extract version from main file.
21540 (let ((commit "017c77c550115936860e2ea71b88e585371475d5")
21541 (revision "0"))
21542 (package
21543 (name "emacs-multi-term")
21544 (version (git-version "1.5" revision commit))
21545 (source
21546 (origin
21547 (method git-fetch)
21548 (uri (git-reference
21549 (url "https://github.com/manateelazycat/multi-term")
21550 (commit commit)))
21551 (file-name (git-file-name name version))
21552 (sha256
21553 (base32 "043dqd8i8h6hbcg11rzprxin2yq5lb902zlrb7mxah44vyp8wrdi"))))
21554 (build-system emacs-build-system)
21555 (inputs
21556 `(("zsh" ,zsh)))
21557 (home-page "https://github.com/manateelazycat/multi-term")
21558 (synopsis "Manage multiple terminal buffers in Emacs")
21559 (description
21560 "This package enhances @code{term.el} with the following features:
21561
21562 @enumerate
21563 @item Functions to switch between multiple terminal buffers
21564 @item List of keys to be intercepted by @code{emacs-multi-term} instead of by
21565 the underlying terminal
21566 @item Kills the unused buffer left after exiting the terminal
21567 @item Kills the running sub-processes along with the terminal when killing the
21568 it forcibly
21569 @item Dedicated window for debugging program.
21570 @end enumerate")
21571 (license license:gpl3+))))
21572
21573 (define-public emacs-elpher
21574 (package
21575 (name "emacs-elpher")
21576 (version "2.9.1")
21577 (source
21578 (origin
21579 (method git-fetch)
21580 (uri (git-reference
21581 (url "git://thelambdalab.xyz/elpher.git")
21582 (commit (string-append "v" version))))
21583 (file-name (git-file-name name version))
21584 (sha256
21585 (base32 "0vyqmv7dycmad1726yb6yizd21x3kkz5cj33mca11r8nh38f1qzp"))))
21586 (build-system emacs-build-system)
21587 (native-inputs
21588 `(("texinfo" ,texinfo)))
21589 (arguments
21590 `(#:phases
21591 (modify-phases %standard-phases
21592 (add-before 'install 'build-doc
21593 (lambda _
21594 (invoke "makeinfo" "elpher.texi"))))))
21595 (home-page "gopher://thelambdalab.xyz/1/projects/elpher/")
21596 (synopsis "Gopher client for Emacs")
21597 (description "Elpher is a full-featured gopher client for Emacs. Its
21598 features include intuitive keyboard and mouse-driven browsing, out-of-the-box
21599 compatibility with evil-mode, clickable web and gopher links in plain text,
21600 caching of visited sites, pleasant and configurable visualization of Gopher
21601 directories, direct visualisation of image files, jumping directly to links by
21602 name (with autocompletion), a simple bookmark management system and
21603 connections using TLS encryption.")
21604 (license license:gpl3+)))
21605
21606 (define-public emacs-zerodark-theme
21607 (package
21608 (name "emacs-zerodark-theme")
21609 (version "4.6")
21610 (source
21611 (origin
21612 (method git-fetch)
21613 (uri (git-reference
21614 (url "https://github.com/NicolasPetton/zerodark-theme")
21615 (commit version)))
21616 (file-name (git-file-name name version))
21617 (sha256
21618 (base32
21619 "0pfyd1iqs7l2ngwgvj9n0r9k1px7yl16h8n502xdyf0pprxcs4p6"))))
21620 (build-system emacs-build-system)
21621 (propagated-inputs
21622 `(("emacs-flycheck" ,emacs-flycheck)
21623 ("emacs-all-the-icons" ,emacs-all-the-icons)))
21624 (home-page
21625 "https://gitlab.petton.fr/nico/zerodark-theme")
21626 (synopsis
21627 "Dark, medium contrast theme for Emacs")
21628 (description
21629 "Zerodark is a dark theme inspired from One Dark and Niflheim.
21630 An optional mode-line format can be enabled with @code{zerodark-setup-modeline-format}.")
21631 (license license:gpl3+)))
21632
21633 (define-public emacs-gnus-alias
21634 (package
21635 (name "emacs-gnus-alias")
21636 (version "20150316")
21637 (source (origin
21638 (method git-fetch)
21639 (uri (git-reference
21640 (url "https://github.com/hexmode/gnus-alias")
21641 (commit "9447d3ccb4c0e75d0468899cccff7aa249657bac")))
21642 (file-name (git-file-name name version))
21643 (sha256
21644 (base32
21645 "1i278npayv3kfxxd1ypi9n83q5l402sbc1zkm11pf8g006ifqsp4"))))
21646 (build-system emacs-build-system)
21647 (home-page "https://melpa.org/#/gnus-alias")
21648 (synopsis "Alternative to @code{gnus-posting-styles}")
21649 (description "This Emacs add-on provides a simple mechanism to switch
21650 Identities when using a @code{message-mode} or a @code{message-mode} derived
21651 mode. Identities can include @code{From} and @code{Organisation} headers,
21652 extra headers, body and signature. Other features include:
21653
21654 @itemize
21655 @item Switch Identities in a message buffer.
21656 @item Access original message to help determine Identity of the followup/reply
21657 message.
21658 @item Act on a forwarded message as if it were a message being replied to.
21659 @item Start a new message with a given Identity pre-selected.
21660 @end itemize")
21661 (license license:gpl2+)))
21662
21663 (define-public emacs-ox-epub
21664 (package
21665 (name "emacs-ox-epub")
21666 (version "0.3")
21667 (source (origin
21668 (method git-fetch)
21669 (uri (git-reference
21670 (url "https://github.com/ofosos/ox-epub")
21671 (commit (string-append "v" version))))
21672 (file-name (git-file-name name version))
21673 (sha256
21674 (base32
21675 "057sqmvm8hwkhcg3yd4i8zz2xlqsqrpyiklyiw750s3i5mxdn0k7"))))
21676 (build-system emacs-build-system)
21677 (home-page "https://github.com/ofosos/ox-epub")
21678 (synopsis "Export org mode projects to EPUB")
21679 (description "@code{ox-epub} extends the (X)HTML exporter to generate
21680 @code{.epub} files directly from OrgMode. This will export EPUB version 2,
21681 which should give broad compatibility. It should also be relatiely easy to
21682 convert the resulting @code{.epub} to a @code{.mobi} file. Needs a working
21683 zip utility (default is @code{zip}).")
21684 (license license:gpl3+)))
21685
21686 (define-public emacs-ox-hugo
21687 (package
21688 (name "emacs-ox-hugo")
21689 (version "0.8")
21690 (source
21691 (origin
21692 (method git-fetch)
21693 (uri (git-reference
21694 (url "https://github.com/kaushalmodi/ox-hugo")
21695 (commit (string-append "v" version))))
21696 (file-name (git-file-name name version))
21697 (sha256
21698 (base32
21699 "11h464cyc28ld0b0zridgm4drydc1qjxbm1y24zrwlkyqqjk6yr7"))))
21700 (build-system emacs-build-system)
21701 (home-page "https://ox-hugo.scripter.co")
21702 (synopsis "Hugo markdown back-end for Org export engine")
21703 (description
21704 "Ox-hugo is an Org exporter backend that exports Org to Hugo-compatible
21705 Markdown, Blackfriday, and also generates the front-matter in TOML or YAML
21706 format.")
21707 (license license:gpl3+)))
21708
21709 (define-public emacs-ox-pandoc
21710 (package
21711 (name "emacs-ox-pandoc")
21712 (version "20180510")
21713 (source (origin
21714 (method git-fetch)
21715 (uri (git-reference
21716 (url "https://github.com/kawabata/ox-pandoc")
21717 (commit "aa37dc7e94213d4ebedb85c384c1ba35007da18e")))
21718 (file-name (git-file-name name version))
21719 (sha256
21720 (base32
21721 "0iibxplgdp34bpq1yll2gmqjd8d8lnqn4mqjvx6cdf0y438yr4jz"))))
21722 (build-system emacs-build-system)
21723 (inputs
21724 `(("pandoc" ,ghc-pandoc)))
21725 (propagated-inputs
21726 `(("emacs-dash" ,emacs-dash)
21727 ("emacs-ht" ,emacs-ht)))
21728 (home-page "https://github.com/kawabata/ox-pandoc")
21729 (synopsis "Org exporter for Pandoc")
21730 (description "@code{ox-pandoc} is an exporter for converting Org-mode
21731 files to numerous other formats via Pandoc.")
21732 (license license:gpl3+)))
21733
21734 (define-public emacs-wc-mode
21735 (package
21736 (name "emacs-wc-mode")
21737 (version "1.3")
21738 (source (origin
21739 (method git-fetch)
21740 (uri (git-reference
21741 (url "https://github.com/bnbeckwith/wc-mode")
21742 (commit (string-append "v" version))))
21743 (file-name (git-file-name name version))
21744 (sha256
21745 (base32
21746 "0pjlxv46zzqdq6q131jb306vqlg4sfqls1x8vag7mmfw462hafqp"))))
21747 (build-system emacs-build-system)
21748 (home-page "https://github.com/bnbeckwith/wc-mode")
21749 (synopsis "Running word count with goals (minor mode)")
21750 (description "@code{wc-mode} is a minor mode, providing a ‘wc’ function
21751 for Emacs buffers as well as a modeline addition with live word, line and
21752 character counts. Additionally, a user can set specific goals for adding or
21753 deleting words. These goals were partly inspired by 750words.com where the
21754 goal of the site is to encourage writing by setting a goal of 750 words at a
21755 time.")
21756 (license license:gpl3+)))
21757
21758 (define-public emacs-mastodon
21759 (package
21760 (name "emacs-mastodon")
21761 (version "0.9.0")
21762 (source (origin
21763 (method git-fetch)
21764 (uri (git-reference
21765 (url "https://github.com/jdenen/mastodon.el")
21766 (commit version)))
21767 (file-name (git-file-name name version))
21768 (sha256
21769 (base32
21770 "0hwax6y9dghqwsbnb6f1bnc7gh8xsh5cvcnayk2sn49x8b0zi5h1"))))
21771 (build-system emacs-build-system)
21772 (arguments
21773 `(#:phases
21774 (modify-phases %standard-phases
21775 ;; Move the source files to the top level, which is included in
21776 ;; the EMACSLOADPATH.
21777 (add-after 'unpack 'move-source-files
21778 (lambda _
21779 (let ((el-files (find-files "./lisp" ".*\\.el$")))
21780 (for-each (lambda (f)
21781 (rename-file f (basename f)))
21782 el-files))
21783 #t)))))
21784 (home-page "https://github.com/jdenen/mastodon.el")
21785 (synopsis "Emacs client for Mastodon")
21786 (description "@code{mastodon.el} is an Emacs client for Mastodon, the
21787 federated microblogging social network.")
21788 (license license:gpl3+)))
21789
21790 (define-public emacs-ebdb
21791 (package
21792 (name "emacs-ebdb")
21793 (version "0.6.18")
21794 (source
21795 (origin
21796 (method url-fetch)
21797 (uri (string-append "https://elpa.gnu.org/packages/"
21798 "ebdb-" version ".tar"))
21799 (sha256
21800 (base32 "0znbv3c7wdgak1f1zb051vg4r29fksqh53k1j77jfmqcvwkpz2mw"))))
21801 (build-system emacs-build-system)
21802 (home-page "https://github.com/girzel/ebdb")
21803 (synopsis "EIEIO port of BBDB, Emacs's contact-management package")
21804 (description
21805 "EBDB is a contact management/addressbook package for Emacs. It's
21806 a re-write of the Insidious Big Brother Database (BBDB) using Emacs
21807 Lisp's (relatively new) EIEIO object oriented libraries.")
21808 (license license:gpl3+)))
21809
21810 (define-public emacs-refactor
21811 (package
21812 (name "emacs-refactor")
21813 (version "0.4")
21814 (source (origin
21815 (method git-fetch)
21816 (uri (git-reference
21817 (url "https://github.com/Wilfred/emacs-refactor")
21818 (commit version)))
21819 (file-name (git-file-name name version))
21820 (sha256
21821 (base32
21822 "1yky7vlv91501xb43xk19rr8mxlvrsxhawsc98jivf64nad5dqay"))))
21823 (build-system emacs-build-system)
21824 (propagated-inputs
21825 `(("emacs-dash" ,emacs-dash)
21826 ("emacs-s" ,emacs-s)
21827 ("emacs-popup" ,emacs-popup)
21828 ("emacs-list-utils" ,emacs-list-utils)
21829 ("emacs-iedit" ,emacs-iedit)))
21830 (home-page "https://github.com/Wilfred/emacs-refactor/")
21831 (synopsis "Language-specific refactoring in Emacs")
21832 (description "Emacs Refactor (EMR) is a framework for providing
21833 language-specific refactoring in Emacs. It includes refactoring commands for
21834 a variety of languages, including elisp itself.")
21835 (license license:gpl3+)))
21836
21837 (define-public emacs-flyspell-correct
21838 (package
21839 (name "emacs-flyspell-correct")
21840 (version "0.5")
21841 (source
21842 (origin
21843 (method git-fetch)
21844 (uri (git-reference
21845 (url "https://github.com/d12frosted/flyspell-correct")
21846 (commit (string-append "v" version))))
21847 (file-name (git-file-name name version))
21848 (sha256
21849 (base32
21850 "1r9hmz7sihhy7npv6nxp04sy57glzmfax5d67mwn96fdnc0yhlnd"))))
21851 (build-system emacs-build-system)
21852 (propagated-inputs
21853 `(("emacs-helm" ,emacs-helm)
21854 ("emacs-ivy" ,emacs-ivy)
21855 ("emacs-popup" ,emacs-popup)))
21856 (home-page
21857 "https://github.com/d12frosted/flyspell-correct")
21858 (synopsis
21859 "Correcting words with flyspell via custom interfaces")
21860 (description
21861 "This package provides functionality for correcting words via custom
21862 interfaces. Several interfaces are supported beside the classic ido: popup,
21863 helm and ivy.")
21864 (license license:gpl3+)))
21865
21866 (define-public emacs-org-emms
21867 (let ((commit "07a8917f3d628c32e5de1dbd118ac08203772533")
21868 (revision "1"))
21869 (package
21870 (name "emacs-org-emms")
21871 (version
21872 (git-version "0.1" revision commit))
21873 (source
21874 (origin
21875 (method git-fetch)
21876 (uri (git-reference
21877 (url "https://gitlab.com/jagrg/org-emms.git")
21878 (commit commit)))
21879 (file-name (git-file-name name commit))
21880 (sha256
21881 (base32
21882 "1sqsm5sv311xfdk4f4rsnvprdf2v2vm7l1b3vqi7pc0g8adlnw1d"))))
21883 (build-system emacs-build-system)
21884 (propagated-inputs
21885 `(("emms" ,emacs-emms)
21886 ("emacs-org" ,emacs-org)))
21887 (home-page "https://gitlab.com/jagrg/org-emms")
21888 (synopsis "Play multimedia files from org-mode")
21889 (description
21890 "This package provides a new org link type for playing back multimedia
21891 files from org-mode using EMMS, The Emacs Multimedia System. If the link
21892 contains a track position, playback will start at the specified position.")
21893 (license license:gpl3+))))
21894
21895 (define-public emacs-org-jira
21896 (package
21897 (name "emacs-org-jira")
21898 (version "4.3.1")
21899 (source
21900 (origin
21901 (method git-fetch)
21902 (uri (git-reference
21903 (url "https://github.com/ahungry/org-jira")
21904 (commit version)))
21905 (file-name (git-file-name name version))
21906 (sha256
21907 (base32
21908 "1l80r2a9zzbfk2c78i40h0ww79vm9v4j6xi2h5i4w9kqh10rs6h2"))))
21909 (build-system emacs-build-system)
21910 (propagated-inputs
21911 `(("emacs-request" ,emacs-request)
21912 ("emacs-s" ,emacs-s)
21913 ("emacs-dash" ,emacs-dash)
21914 ("emacs-org" ,emacs-org)))
21915 (home-page "https://github.com/ahungry/org-jira")
21916 (synopsis "Syncing between Jira and Org-mode")
21917 (description
21918 "This package provides an extension to org-mode for syncing issues with
21919 JIRA issue servers.")
21920 (license license:gpl3+)))
21921
21922 (define-public emacs-systemd-mode
21923 (package
21924 (name "emacs-systemd-mode")
21925 (version "1.6")
21926 (source (origin
21927 (method git-fetch)
21928 (uri (git-reference
21929 (url "https://github.com/holomorph/systemd-mode")
21930 (commit (string-append "v" version))))
21931 (file-name (git-file-name name version))
21932 (sha256
21933 (base32
21934 "0ylgnvpfindg4cxccbqy02ic7p0i9rygf1w16dm1filwhbqvjplq"))))
21935 (build-system emacs-build-system)
21936 (arguments '(#:include '("\\.el$" "\\.txt$")))
21937 (home-page "https://github.com/holomorph/systemd-mode")
21938 (synopsis
21939 "Major mode for editing systemd units")
21940 (description
21941 "Major mode for editing systemd units in GNU Emacs.")
21942 (license license:gpl3+)))
21943
21944 (define-public emacs-ssh-config-mode
21945 (let ((commit "4c1dfa57d452cb5654453bf186c8ff63e1e71b56")
21946 (revision "1"))
21947 (package
21948 (name "emacs-ssh-config-mode")
21949 (version (git-version "8.0" revision commit))
21950 (source
21951 (origin
21952 (method git-fetch)
21953 (uri
21954 (git-reference
21955 (url "https://github.com/jhgorrell/ssh-config-mode-el")
21956 (commit commit)))
21957 (file-name (git-file-name name commit))
21958 (sha256
21959 (base32
21960 "0crglfdazzckizbwzmgl2rn6j85avfzkr1q7ijxd17rp2anvr9bd"))))
21961 (build-system emacs-build-system)
21962 (arguments '(#:include '("\\.el$" "\\.txt$")))
21963 (home-page
21964 "https://github.com/jhgorrell/ssh-config-mode-el")
21965 (synopsis
21966 "Mode for fontification of ~/.ssh/config")
21967 (description
21968 "This package fontifies the ssh config keywords and creates
21969 keybindings for skipping from host section to host section.")
21970 (license license:gpl3+))))
21971
21972 (define-public emacs-ssh-agency
21973 (package
21974 (name "emacs-ssh-agency")
21975 (version "0.4")
21976 (source (origin
21977 (method git-fetch)
21978 (uri (git-reference
21979 (url "https://github.com/magit/ssh-agency")
21980 (commit version)))
21981 (file-name (git-file-name name version))
21982 (sha256
21983 (base32
21984 "0895n7bss4wdydic1gflr03f2cwdyqywl16gvb599lpn288jhwvz"))))
21985 (build-system emacs-build-system)
21986 (propagated-inputs
21987 `(("dash" ,emacs-dash)))
21988 (home-page "https://github.com/magit/ssh-agency")
21989 (synopsis "Manage @code{ssh-agent} from Emacs")
21990 (description
21991 "This package provides functions to startup @code{ssh-agent}, set the
21992 needed environment variables in Emacs, and prompt for passphrases from within
21993 Emacs so that pushes and pulls from @code{magit} will not require entering any
21994 passphrase.
21995
21996 It can also be useful on Unix-like platforms to delay having to enter your
21997 passphrase until the first time you push to a remote.")
21998 (license license:gpl3+)))
21999
22000 (define-public emacs-tao-theme
22001 (let ((commit "c5107fbe7e752f4e58c2d2147ff18a1ebb12937c")
22002 (revision "0"))
22003 (package
22004 (name "emacs-tao-theme")
22005 (version (git-version "0" revision commit))
22006 (source
22007 (origin
22008 (method git-fetch)
22009 (uri (git-reference
22010 (url "https://github.com/11111000000/tao-theme-emacs")
22011 (commit commit)))
22012 (file-name (git-file-name name version))
22013 (sha256
22014 (base32
22015 "07vvlglmkj87hpxz79s3bl2cjn71vain57fdxs7j9vlr5jkchxwn"))))
22016 (build-system emacs-build-system)
22017 (home-page "https://github.com/11111000000/tao-theme-emacs")
22018 (synopsis "Parameterized uncolored color themes for Emacs")
22019 (description
22020 "This package provides two parameterized uncolored color themes for
22021 Emacs: @code{tao-yin} and @code{tao-yang}. The default
22022 @code{tao-theme-scale-fn} is @code{tao-theme-golden-scale}.
22023
22024 You can customize: @code{tao-theme-scale-fn}, that returns 16 2-digit numbers;
22025 @code{tao-theme-scale-filter-fn}, for edge filter; and
22026 @code{tao-theme-use-height}.")
22027 (license license:gpl3+))))
22028
22029 (define-public emacs-almost-mono-themes
22030 (let ((commit "c3a85c1a665530a5d830665969725cdba8eceb75")
22031 (revision "0"))
22032 (package
22033 (name "emacs-almost-mono-themes")
22034 (version (git-version "0" revision commit))
22035 (source
22036 (origin
22037 (method git-fetch)
22038 (uri (git-reference
22039 (url "https://github.com/cryon/almost-mono-themes")
22040 (commit commit)))
22041 (file-name (git-file-name name version))
22042 (sha256
22043 (base32
22044 "034k32xkr5ma415hlkbl35z0jxc4sa1inf87hg3y6lrlfl83fyjh"))))
22045 (build-system emacs-build-system)
22046 (home-page "https://github.com/cryon/almost-mono-themes")
22047 (synopsis "Almost monochromatic themes for emacs in a few variants")
22048 (description
22049 "This package provides a collection of almost monochrome Emacs themes:
22050 @code{almost-mono-black} and @code{almost-mono-white}.")
22051 (license license:gpl3+))))
22052
22053 (define-public emacs-quasi-monochrome
22054 (let ((commit "68060dbbc0bbfe4924387392874186c5a29bb434")
22055 (revision "0"))
22056 (package
22057 (name "emacs-quasi-monochrome")
22058 (version (git-version "1.2" revision commit))
22059 (source
22060 (origin
22061 (method git-fetch)
22062 (uri (git-reference
22063 (url "https://github.com/lbolla/emacs-quasi-monochrome")
22064 (commit commit)))
22065 (file-name (git-file-name name version))
22066 (sha256
22067 (base32
22068 "0zp2xr0bjfqrpb0bqczzick1vvbjmipjavrdi70kw6a9caynvq22"))))
22069 (build-system emacs-build-system)
22070 (home-page "https://github.com/lbolla/emacs-quasi-monochrome")
22071 (synopsis "Dark color theme for Emacs")
22072 (description
22073 "This package provides a dark color theme with a black background, high
22074 contrast and few colors.")
22075 (license license:gpl3+))))
22076
22077 (define-public emacs-doom-themes
22078 (let ((commit "54039c5171e3f8c9cef1f82122549b66cd8c8f7b")
22079 (revision "4")
22080 (version "2.1.6"))
22081 (package
22082 (name "emacs-doom-themes")
22083 (version (git-version version revision commit))
22084 (source (origin
22085 (method git-fetch)
22086 (uri (git-reference
22087 (url "https://github.com/hlissner/emacs-doom-themes")
22088 (commit commit)))
22089 (file-name (git-file-name name version))
22090 (sha256
22091 (base32 "1iwdjq4q2gkhi6jwas3ywgmdz5dg14sfb3fzhqd7wih6j3i2l3cr"))))
22092 (build-system emacs-build-system)
22093 (native-inputs
22094 `(("emacs-ert-runner" ,emacs-ert-runner)))
22095 (arguments
22096 `(#:tests? #t
22097 #:test-command '("ert-runner")
22098 #:modules ((guix build emacs-build-system)
22099 (guix build utils)
22100 (guix build emacs-utils)
22101 (srfi srfi-1))
22102 #:phases
22103 (modify-phases %standard-phases
22104 (add-after 'unpack 'move-themes
22105 (lambda _
22106 ;; Move the source files to the top level, which is in the
22107 ;; EMACSLOADPATH.
22108 (for-each (lambda (f)
22109 (rename-file f (basename f)))
22110 (find-files "./themes" ".*\\.el$"))
22111 #t))
22112 ;; There is a byte-code overflow issue in the latest checkout
22113 ;; which affects byte-compilation for several (read `most') theme
22114 ;; files. In order to cope with this issue, we disable
22115 ;; byte-compilation until this issue is resolved.
22116 ;; <https://github.com/hlissner/emacs-doom-themes/issues/314>
22117 ;;
22118 ;; NOTE: Byte-comp has been disabled in/after commit 9cd6872.
22119 ;; However our method of selective disabling is preferential to
22120 ;; just widely disabling byte-compilation.
22121 (add-after 'move-themes 'disable-breaking-compilation
22122 (lambda _
22123 (for-each (lambda (file)
22124 (chmod file #o600) ; needed to write changes.
22125 (emacs-batch-disable-compilation file))
22126 (cons "doom-themes-ext-neotree.el"
22127 ;; NOTE: When updating this package, determine
22128 ;; whether changed theme files can byte-compile.
22129 ;; If they can successfully byte-compile, add them
22130 ;; to this list of exceptions.
22131 (lset-difference string-contains
22132 (find-files "." ".*-theme.el")
22133 '("material"
22134 "snazzy"
22135 "tomorrow-day"))))
22136 #t)))))
22137 (synopsis "Wide collection of color themes for Emacs")
22138 (description "Emacs-doom-themes contains numerous popular color themes for
22139 Emacs that integrate with major modes like Org-mode.")
22140 (home-page "https://github.com/hlissner/emacs-doom-themes")
22141 (license license:expat))))
22142
22143 (define-public emacs-modus-operandi-theme
22144 (package
22145 (name "emacs-modus-operandi-theme")
22146 (version "0.11.0")
22147 (source
22148 (origin
22149 (method url-fetch)
22150 (uri (string-append "https://elpa.gnu.org/packages/"
22151 "modus-operandi-theme-" version ".el"))
22152 (sha256
22153 (base32 "11sq105vpp8rmyayfb7h8gz099kfdr7nb8n4pg81iby4fllj1kgd"))))
22154 (build-system emacs-build-system)
22155 (home-page "https://gitlab.com/protesilaos/modus-themes")
22156 (synopsis "Accessible light theme (WCAG AAA)")
22157 (description
22158 "Modus operandi is the light version of the Modus accessible themes for
22159 GNU Emacs. The contrast ratio between foreground and background values should
22160 always be greater than 7:1, which conforms with the WCAG AAA accessibility
22161 standard. This is the highest standard of its kind.")
22162 (license license:gpl3+)))
22163
22164 (define-public emacs-modus-vivendi-theme
22165 (package
22166 (name "emacs-modus-vivendi-theme")
22167 (version "0.11.0")
22168 (source
22169 (origin
22170 (method url-fetch)
22171 (uri (string-append "https://elpa.gnu.org/packages/"
22172 "modus-vivendi-theme-" version ".el"))
22173 (sha256
22174 (base32 "14ky9cxg9cpvhgg24ra0xla2dapqjlf948470q7v0m402x1r2iif"))))
22175 (build-system emacs-build-system)
22176 (home-page "https://gitlab.com/protesilaos/modus-themes")
22177 (synopsis "Accessible dark theme (WCAG AAA)")
22178 (description
22179 "Modus vivendi is the dark version of the Modus accessible themes for GNU
22180 Emacs. The contrast ratio between foreground and background values should
22181 always be greater than 7:1, which conforms with the WCAG AAA accessibility
22182 standard. This is the highest standard of its kind.")
22183 (license license:gpl3+)))
22184
22185 (define-public emacs-modus-themes
22186 (deprecated-package "emacs-modus-themes" emacs-modus-operandi-theme))
22187
22188 (define-public emacs-punpun-theme
22189 (let ((commit "2f78125609277b2478abdebd8f9d5ee10a823b65")
22190 (revision "0"))
22191 (package
22192 (name "emacs-punpun-theme")
22193 (version (git-version "0" revision commit))
22194 (source
22195 (origin
22196 (method git-fetch)
22197 (uri (git-reference
22198 (url "https://github.com/wasamasa/punpun-theme")
22199 (commit commit)))
22200 (file-name (git-file-name name version))
22201 (sha256
22202 (base32
22203 "1sgxrj3igzq86h3whfymxf4qzv9kpvcrlhbvjmnp7fwrplys0n7d"))))
22204 (build-system emacs-build-system)
22205 (home-page "https://github.com/wasamasa/punpun-theme")
22206 (synopsis "Bleak Emacs theme")
22207 (description
22208 "A bleak theme. Uses shades of gray and the occasional splash of
22209 color. Designed for 256-color terminals. Comes in light and dark!")
22210 (license license:gpl3+))))
22211
22212 (define-public emacs-spacemacs-theme
22213 (let ((commit "f79c40fb241e204539fde97200abae91e828e585")
22214 (revision "1"))
22215 (package
22216 (name "emacs-spacemacs-theme")
22217 (version (git-version "0" revision commit)) ;no release yet
22218 (source
22219 (origin
22220 (method git-fetch)
22221 (uri (git-reference
22222 (url "https://github.com/nashamri/spacemacs-theme")
22223 (commit commit)))
22224 (file-name (git-file-name name version))
22225 (sha256
22226 (base32 "1l2kkiyrskkpx8f901v0wrzaah1wjg15zdyv88spj3mh3hwd3b6n"))))
22227 (build-system emacs-build-system)
22228 (home-page "https://github.com/nashamri/spacemacs-theme")
22229 (synopsis
22230 "Light and dark theme for spacemacs that supports GUI and terminal")
22231 (description
22232 "Spacemacs theme is an Emacs color theme that started as
22233 a theme for Spacemacs. The theme comes with dark and light variants
22234 and it should work well with 256 color terminals.")
22235 (license license:gpl3+))))
22236
22237 (define-public emacs-elixir-mode
22238 (package
22239 (name "emacs-elixir-mode")
22240 (version "2.3.1")
22241 (source
22242 (origin
22243 (method git-fetch)
22244 (uri (git-reference
22245 (url "https://github.com/elixir-editors/emacs-elixir")
22246 (commit (string-append "v" version))))
22247 (file-name (git-file-name name version))
22248 (sha256
22249 (base32 "06bi68x49v6f7flpz279mm4jpg31ll3s274givm3pvr8slcxs6xg"))))
22250 (build-system emacs-build-system)
22251 (propagated-inputs
22252 `(("emacs-pkg-info" ,emacs-pkg-info)))
22253 (home-page
22254 "https://github.com/elixir-editors/emacs-elixir")
22255 (synopsis "Major mode for editing Elixir files")
22256 (description
22257 "Elixir-Mode provides font-locking, indentation and navigation support
22258 for the Elixir programming language.")
22259 (license license:gpl3+)))
22260
22261 (define-public emacs-dimmer
22262 (package
22263 (name "emacs-dimmer")
22264 (version "0.4.2")
22265 (source
22266 (origin
22267 (method git-fetch)
22268 (uri (git-reference
22269 (url "https://github.com/gonewest818/dimmer.el")
22270 (commit version)))
22271 (file-name (git-file-name name version))
22272 (sha256
22273 (base32
22274 "0dw0qh5hm1x76s5cqxvylvmjgy0jwy11xm258g6kmx6w1k6r1d2l"))))
22275 (build-system emacs-build-system)
22276 (home-page "https://github.com/gonewest818/dimmer.el")
22277 (synopsis "Visually highlights the selected buffer in Emacs")
22278 (description "Dimmer provides a minor mode that indicates which buffer is
22279 currently active by dimming the faces in the other buffers. It does this
22280 nondestructively, and computes the dimmed faces dynamically such that your
22281 overall color scheme is shown in a muted form without requiring you to define
22282 what is a \"dim\" version of every face.")
22283 (license license:gpl3+)))
22284
22285 (define-public emacs-minibuffer-line
22286 (package
22287 (name "emacs-minibuffer-line")
22288 (version "0.1")
22289 (source
22290 (origin
22291 (method url-fetch)
22292 (uri (string-append
22293 "https://elpa.gnu.org/packages/minibuffer-line-"
22294 version
22295 ".el"))
22296 (sha256
22297 (base32 "1ny4iirp26na5118wfgxlv6fxlrdclzdbd9m0lkrv51w0qw7spil"))))
22298 (build-system emacs-build-system)
22299 (home-page "https://elpa.gnu.org/packages/minibuffer-line.html")
22300 (synopsis "Display status info in the minibuffer window")
22301 (description
22302 "This package lets you display various status information in the
22303 minibuffer window instead of the mode-line. Of course, this is only displayed
22304 when the minibuffer window is not already used for other things (e.g. a
22305 minibuffer or an each area message).
22306
22307 The contents and aspect is controlled by the @code{minibuffer-line-format}
22308 variable and the @code{minibuffer-line} face.")
22309 (license license:gpl3+)))
22310
22311 (define-public emacs-eshell-prompt-extras
22312 (package
22313 (name "emacs-eshell-prompt-extras")
22314 (version "1.0")
22315 (home-page "https://github.com/zwild/eshell-prompt-extras")
22316 (source
22317 (origin
22318 (method git-fetch)
22319 (uri (git-reference
22320 (url home-page)
22321 (commit version)))
22322 (file-name (git-file-name name version))
22323 (sha256
22324 (base32
22325 "0gb07mns23dgqqr6qfy7d6ndizy15sqgbgfaig6k5xbjnwi02v9g"))))
22326 (build-system emacs-build-system)
22327 (synopsis "Display extra information and color for your Eshell prompt")
22328 (description "This library displays various customizable elements for
22329 @code{eshell} prompts: remote user, remote host, python virtual environment
22330 info, git branch, git dirty info and git unpushed number. Multiple themes are
22331 available.")
22332 (license license:gpl3+)))
22333
22334 (define-public emacs-eshell-did-you-mean
22335 (package
22336 (name "emacs-eshell-did-you-mean")
22337 (version "0.1")
22338 (home-page "https://github.com/xuchunyang/eshell-did-you-mean")
22339 (source
22340 (origin
22341 (method git-fetch)
22342 (uri (git-reference
22343 (url home-page)
22344 (commit (string-append "v" version))))
22345 (file-name (git-file-name name version))
22346 (sha256
22347 (base32
22348 "0v0wshck5n4hspcv1zk1g2nm6xiigcjp16lx0dc8wzkl6ymljvbg"))))
22349 (build-system emacs-build-system)
22350 (synopsis "Display suggestions on 'command not found' in Eshell")
22351 (description "This library adds a list of 'Did you mean...' suggestions
22352 when the command was not found in Eshell. The suggestions are found after the
22353 commands that bear resemblance to the input command.")
22354 (license license:gpl3+)))
22355
22356 (define-public emacs-unfill
22357 (package
22358 (name "emacs-unfill")
22359 (version "0.2")
22360 (home-page "https://github.com/purcell/unfill")
22361 (source
22362 (origin
22363 (method git-fetch)
22364 (uri (git-reference
22365 (url home-page)
22366 (commit version)))
22367 (file-name (git-file-name name version))
22368 (sha256
22369 (base32 "0wyradin5igp25nsd3n22i2ppxhmy49ac1iq1w2715v8pfmiydnc"))))
22370 (build-system emacs-build-system)
22371 (synopsis "Inverse of Emacs' @code{fill-paragraph} and @code{fill-region}")
22372 (description
22373 "The functions in this package provide the inverse of Emacs'
22374 @code{fill-paragraph} and @code{fill-region}.")
22375 (license license:gpl3+)))
22376
22377 (define-public emacs-windower
22378 (package
22379 (name "emacs-windower")
22380 (version "0.0.1")
22381 (home-page "https://gitlab.com/ambrevar/emacs-windower")
22382 (source
22383 (origin
22384 (method git-fetch)
22385 (uri (git-reference
22386 (url home-page)
22387 (commit version)))
22388 (file-name (git-file-name name version))
22389 (sha256
22390 (base32 "0h24gb1ip0czfasxm8wwcc3v19g7mznzw2sxkmmfb5iis59p7dfy"))))
22391 (build-system emacs-build-system)
22392 (synopsis "Helper functions for window manipulation in Emacs")
22393 (description
22394 "This package provides helper functions for window manipulation in Emacs,
22395 such as:
22396
22397 @itemize
22398 @item switch to last buffer,
22399 @item toggle single window display,
22400 @item toggle between horizontal and vertical splits,
22401 @item move borders more naturally,
22402 @item swap windows à-la @code{windmove}.
22403 @end itemize")
22404 (license license:gpl3+)))
22405
22406 (define-public emacs-flycheck-cpplint
22407 (let ((commit "1d8a090861572258ab704915263feeb3a436c3d2")
22408 (revision "1"))
22409 (package
22410 (name "emacs-flycheck-cpplint")
22411 (version (git-version "0.1" revision commit))
22412 (source
22413 (origin
22414 (method git-fetch)
22415 (uri (git-reference
22416 (url "https://github.com/flycheck/flycheck-google-cpplint")
22417 (commit commit)))
22418 (file-name (git-file-name name version))
22419 (sha256
22420 (base32 "0l6sg83f6z8x2alnblpv03rj442sbnkkkcbf8i0agjmx3713a5yx"))))
22421 (build-system emacs-build-system)
22422 (arguments
22423 `(#:phases
22424 (modify-phases %standard-phases
22425 (add-after 'unpack 'set-cpplint-path
22426 (lambda _
22427 (substitute* "flycheck-google-cpplint.el"
22428 (("\"cpplint.py\"")
22429 (string-append "\"" (which "cpplint") "\"")))
22430 #t)))))
22431 (inputs
22432 `(("cpplint" ,cpplint)))
22433 (propagated-inputs
22434 `(("flycheck-mode" ,emacs-flycheck)))
22435 (synopsis "Google C++ checker for Flycheck")
22436 (description "This package provides a interface for @code{cpplint} over
22437 Flycheck plugin. @code{cpplint} is a static code checker for C++, following
22438 Google guidelines.")
22439 (home-page "https://github.com/flycheck/flycheck-google-cpplint")
22440 (license license:gpl3+))))
22441
22442 (define-public emacs-helm-fish-completion
22443 (package
22444 (name "emacs-helm-fish-completion")
22445 (version "0.5")
22446 (home-page "https://github.com/emacs-helm/helm-fish-completion")
22447 (source
22448 (origin
22449 (method git-fetch)
22450 (uri (git-reference
22451 (url home-page)
22452 (commit version)))
22453 (file-name (git-file-name name version))
22454 (sha256
22455 (base32 "0hpsm39kx8vpz2zmarjrkvy1capkk5lwpsmdg2xnklsck6xsn922"))))
22456 (build-system emacs-build-system)
22457 (propagated-inputs
22458 `(("helm" ,emacs-helm)
22459 ("fish-completion" ,emacs-fish-completion)))
22460 (synopsis "Helm interface for Emacs fish-completion")
22461 (description "Helm Fish Completion is a Helm interface for Emacs
22462 fish-completion. It can be used in both Eshell and M-x shell.")
22463 (license license:gpl3+)))
22464
22465 (define-public emacs-telega
22466 ;; This package has versions newer than indicated on MELPA.
22467 ;; Get the current version from `telega-version` in telega.el.
22468 ;; or by running M-x telega-version.
22469 (let ((commit "e53996777570a5bed84d21f6c8defd4f51c8e255")
22470 (revision "0")
22471 (version "0.6.28"))
22472 (package
22473 (name "emacs-telega")
22474 (version (git-version version revision commit))
22475 (source
22476 (origin
22477 (method git-fetch)
22478 (uri (git-reference
22479 (url "https://github.com/zevlg/telega.el")
22480 (commit commit)))
22481 (sha256
22482 (base32
22483 "058x6svgy33lyqjqq0l3byv8bysqig9jmh3kx8shaqr0ypfrjhi3"))
22484 (patches (search-patches
22485 "emacs-telega-patch-server-functions.patch"
22486 "emacs-telega-test-env.patch"))
22487 (file-name (git-file-name name version))))
22488 (build-system gnu-build-system)
22489 (arguments
22490 `(#:modules ((guix build gnu-build-system)
22491 ((guix build emacs-build-system) #:prefix emacs:)
22492 (guix build utils)
22493 (guix build emacs-utils))
22494 #:imported-modules (,@%gnu-build-system-modules
22495 (guix build emacs-build-system)
22496 (guix build emacs-utils))
22497 #:test-target "test"
22498 ;; TODO: Currently tgVOIP is not functional, thus we have disabled it
22499 ;; temporarily.
22500 ;; #:make-flags (list "WITH_VOIP=t")
22501 #:phases
22502 (modify-phases %standard-phases
22503 (add-after 'unpack 'prefix-patch
22504 (lambda _
22505 (substitute* "server/Makefile"
22506 (("CC=cc")
22507 "CC=gcc")
22508 (("INSTALL_PREFIX=\\$\\(HOME\\)/.telega")
22509 (string-append "INSTALL_PREFIX=" (assoc-ref %outputs "out")
22510 "/bin"))
22511 ;; Manually invoke `run_tests.py` after install phase.
22512 (("python3 run_tests.py")
22513 ""))
22514 #t))
22515 (add-after 'check 'telega-paths-patch
22516 (lambda* (#:key inputs #:allow-other-keys)
22517 ;; Hard-code paths to `ffplay` and `ffmpeg`.
22518 (let ((ffplay-bin (string-append (assoc-ref inputs "ffmpeg")
22519 "/bin/ffplay"))
22520 (ffmpeg-bin (string-append (assoc-ref inputs "ffmpeg")
22521 "/bin/ffmpeg")))
22522 (substitute* "telega-ffplay.el"
22523 (("\\(executable-find \"ffplay\"\\)")
22524 (string-append
22525 "(and (file-executable-p \"" ffplay-bin "\")"
22526 "\"" ffplay-bin "\")"))
22527 (("\\(executable-find \"ffmpeg\"\\)")
22528 (string-append
22529 "(and (file-executable-p \"" ffmpeg-bin "\")"
22530 "\"" ffmpeg-bin "\")"))))
22531 ;; Modify telega-util to reflect unique dir name in
22532 ;; `telega-install-data' phase.
22533 (substitute* "telega-util.el"
22534 (("\\(concat \"etc/\" filename\\) telega--lib-directory")
22535 "(concat \"telega-data/\" filename)
22536 (locate-dominating-file telega--lib-directory
22537 \"telega-data\")"))
22538 ;; Modify telega.el to reflect unique dir name in
22539 ;; `telega-install-contrib' phase.
22540 (substitute* "telega.el"
22541 (("\\(push \\(expand-file-name \"contrib\" telega--lib-directory\\) load-path\\)")
22542 "(push (expand-file-name \"telega-contrib\"
22543 (locate-dominating-file telega--lib-directory
22544 \"telega-contrib\")) load-path)"))
22545 #t))
22546 ;; The server test suite has a hardcoded path.
22547 ;; Reset this behavior to use the proper path.
22548 (add-after 'unpack 'server-suite-patch
22549 (lambda _
22550 (substitute* "server/run_tests.py"
22551 (("~/.telega/telega-server")
22552 (string-append (assoc-ref %outputs "out")
22553 "/bin/telega-server")))
22554 #t))
22555 (add-after 'install 'run-server-suite
22556 (lambda _
22557 (invoke "python3" "server/run_tests.py")
22558 #t))
22559 (delete 'configure)
22560 ;; Build emacs-side using `emacs-build-system'
22561 (add-after 'compress-documentation 'emacs-add-source-to-load-path
22562 (assoc-ref emacs:%standard-phases 'add-source-to-load-path))
22563 ;; Manually invoke bytecompilation for the contrib
22564 ;; subdirectory.
22565 (add-after 'emacs-add-source-to-load-path 'emacs-bytecomp-contrib
22566 (lambda _
22567 (substitute* "Makefile"
22568 (("byte-recompile-directory \".\"")
22569 "byte-recompile-directory \"contrib\""))
22570 (invoke "make" "compile")
22571 #t))
22572 (add-after 'emacs-bytecomp-contrib 'emacs-install
22573 (assoc-ref emacs:%standard-phases 'install))
22574 ;; This step installs subdir /etc, which contains images, sounds and
22575 ;; various other data, next to the site-lisp dir.
22576 (add-after 'emacs-install 'telega-install-data
22577 (lambda* (#:key outputs #:allow-other-keys)
22578 (copy-recursively
22579 "etc"
22580 (string-append (assoc-ref outputs "out")
22581 "/share/emacs/telega-data/"))
22582 #t))
22583 (add-after 'emacs-install 'telega-install-contrib
22584 (lambda* (#:key outputs #:allow-other-keys)
22585 (copy-recursively
22586 "contrib"
22587 (string-append (assoc-ref outputs "out")
22588 "/share/emacs/telega-contrib"))
22589 #t))
22590 (add-after 'telega-install-contrib 'emacs-build
22591 (assoc-ref emacs:%standard-phases 'build))
22592 (add-after 'telega-install-contrib 'emacs-make-autoloads
22593 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
22594 (inputs
22595 `(("ffmpeg" ,ffmpeg))) ; mp4/gif support.
22596 (propagated-inputs
22597 `(("emacs-visual-fill-column" ,emacs-visual-fill-column)
22598 ("emacs-company" ,emacs-company)
22599 ("emacs-rainbow-identifiers"
22600 ,emacs-rainbow-identifiers)
22601 ("libwebp" ,libwebp))) ; sticker support.
22602 (native-inputs
22603 `(("tdlib" ,tdlib)
22604 ;; Use Emacs with wide ints on 32-bit architectures.
22605 ("emacs" ,(match (%current-system)
22606 ((or "i686-linux" "armhf-linux")
22607 emacs-wide-int)
22608 (_
22609 emacs)))
22610 ("python" ,python)))
22611 (synopsis "GNU Emacs client for the Telegram messenger")
22612 (description
22613 "Telega is a full-featured, unofficial GNU Emacs-based client for the
22614 Telegram messaging platform.")
22615 (home-page "https://github.com/zevlg/telega.el")
22616 (license license:gpl3+))))
22617
22618 (define-public emacs-doom-modeline
22619 (package
22620 (name "emacs-doom-modeline")
22621 (version "2.8.2")
22622 (source (origin
22623 (method git-fetch)
22624 (uri (git-reference
22625 (url "https://github.com/seagle0128/doom-modeline")
22626 (commit (string-append "v" version))))
22627 (sha256
22628 (base32
22629 "11srz1mr821axggs2jcmdhihxx09a2dniqv3n039wbdfaimfaidz"))
22630 (file-name (git-file-name name version))))
22631 (build-system emacs-build-system)
22632 (arguments
22633 `(#:test-command '("ert-runner")))
22634 (native-inputs `(("emacs-ert-runner" ,emacs-ert-runner)))
22635 (propagated-inputs
22636 `(("emacs-all-the-icons" ,emacs-all-the-icons)
22637 ("emacs-shrink-path" ,emacs-shrink-path)))
22638 (synopsis "Fancy and fast mode-line inspired by minimalism design")
22639 (description "Doom modeline is a complete modeline for GNU Emacs inspired
22640 by the Doom theme collection. This modeline features support for mode-specific
22641 icon support, git integration, and several other utilities.")
22642 (home-page "https://github.com/seagle0128/doom-modeline/")
22643 (license license:gpl3+)))
22644
22645 (define-public emacs-shrink-path
22646 (package
22647 (name "emacs-shrink-path")
22648 (version "0.3.1")
22649 (source
22650 (origin
22651 (method git-fetch)
22652 (uri (git-reference
22653 (url "https://gitlab.com/bennya/shrink-path.el.git")
22654 (commit (string-append "v" version))))
22655 (sha256
22656 (base32
22657 "0kx0c4syd7k6ff9j463bib32pz4wq0rzjlg6b0yqnymlzfr1mbki"))
22658 (file-name (git-file-name name version))))
22659 (build-system emacs-build-system)
22660 (propagated-inputs
22661 `(("emacs-s" ,emacs-s)
22662 ("emacs-dash" ,emacs-dash)
22663 ("emacs-f" ,emacs-f)))
22664 (home-page "https://gitlab.com/bennya/shrink-path.el")
22665 (synopsis "Fish-style path truncation in emacs-lisp")
22666 (description "This package provides utility functions that allow for
22667 Fish-style truncated directories in eshell and various modelines.")
22668 (license license:gpl3+)))
22669
22670 (define-public emacs-org-present
22671 (let ((commit "d13acd70eff6a1608bc991920232146a0de76b21"))
22672 (package
22673 (name "emacs-org-present")
22674 (version "0.0.1")
22675 (source
22676 (origin
22677 (method git-fetch)
22678 (uri (git-reference
22679 (url "https://github.com/rlister/org-present")
22680 (commit commit)))
22681 (file-name (git-file-name name version))
22682 (sha256
22683 (base32
22684 "0jz8xiny3rv9ql0p623byz32pip1b82j2c2nyfz2wd114kiabb6q"))))
22685 (build-system emacs-build-system)
22686 (synopsis "Ultra-minimalist presentation minor-mode for Emacs org-mode")
22687 (description "Org-present is an extremely minimalist presentation tool
22688 for Emacs org-mode. Simply layout your presentation with each slide under a
22689 top-level header, start the minor mode with @code{org-present}, and page through
22690 each slide with left/right keys.")
22691 (home-page "https://github.com/rlister/org-present")
22692 (license license:gpl2))))
22693
22694 (define-public emacs-fullframe
22695 (package
22696 (name "emacs-fullframe")
22697 (version "0.5.0")
22698 (source
22699 (origin
22700 (method git-fetch)
22701 (uri (git-reference
22702 (url "https://github.com/tomterl/fullframe")
22703 (commit version)))
22704 (sha256
22705 (base32
22706 "0m43qnhp6ibsskpjkxc86p3lrjsjc0ndqml3lbd65s79x4x7i3fi"))
22707 (file-name (git-file-name name version))))
22708 (build-system emacs-build-system)
22709 (home-page "https://github.com/tomterl/fullframe")
22710 (synopsis "Generalized automatic execution in a single frame")
22711 (description "This library provides helpers for single-window-per-frame
22712 execution of buffer-exposing commands.")
22713 (license license:gpl3+)))
22714
22715 (define-public emacs-eshell-toggle
22716 (let ((commit "ddfbe0a693497c4d4bc5494a19970ba4f6ab9033")
22717 (revision "1"))
22718 (package
22719 (name "emacs-eshell-toggle")
22720 (version (git-version "0.10.0" revision commit))
22721 (source
22722 (origin
22723 (method git-fetch)
22724 (uri (git-reference
22725 (url "https://github.com/4DA/eshell-toggle")
22726 (commit commit)))
22727 (sha256
22728 (base32
22729 "0xqrp8pwbmfxjdqipgpw5nw633mvhjjjm3k3j9sh9xdpmw05hhws"))
22730 (file-name (git-file-name name version))))
22731 (build-system emacs-build-system)
22732 (propagated-inputs
22733 `(("emacs-dash" ,emacs-dash)))
22734 (home-page "https://github.com/4DA/eshell-toggle")
22735 (synopsis "Show and hide an @code{eshell} instance")
22736 (description "This package toggles an @code{eshell} instance for the
22737 current buffer.")
22738 (license license:gpl3+))))
22739
22740 (define-public emacs-repl-toggle
22741 (package
22742 (name "emacs-repl-toggle")
22743 (version "0.6.1")
22744 (source
22745 (origin
22746 (method git-fetch)
22747 (uri (git-reference
22748 (url "https://github.com/tomterl/repl-toggle")
22749 (commit version)))
22750 (sha256
22751 (base32
22752 "12h3xxja3isnhvrqx7m2g7a5d8h68cc85pbqyhiipfxyafyl1yxd"))
22753 (file-name (git-file-name name version))))
22754 (build-system emacs-build-system)
22755 (propagated-inputs
22756 `(("emacs-fullframe" ,emacs-fullframe)))
22757 (home-page "https://github.com/tomterl/repl-toggle")
22758 (synopsis "Switch to and from current major mode's REPL")
22759 (description "This package provides a function to switch to and from a
22760 REPL appropriate to the current major mode.")
22761 (license license:gpl3+)))
22762
22763 (define-public emacs-rime
22764 (package
22765 (name "emacs-rime")
22766 (version "1.0.3")
22767 (source
22768 (origin
22769 (method git-fetch)
22770 (uri (git-reference
22771 (url "https://github.com/DogLooksGood/emacs-rime")
22772 (commit (string-append "v" version))))
22773 (file-name (git-file-name name version))
22774 (sha256
22775 (base32 "08rzkiqwcl8j3i2yyibll5lcsj8720plzm9zfdgmxgkw7vhcyix5"))))
22776 (build-system emacs-build-system)
22777 (arguments
22778 '(#:phases
22779 (modify-phases %standard-phases
22780 (add-after 'unpack 'patch-rime-data-path
22781 (lambda* (#:key inputs #:allow-other-keys)
22782 (make-file-writable "rime.el")
22783 (emacs-substitute-variables "rime.el"
22784 ("rime-share-data-dir"
22785 (string-append (assoc-ref inputs "rime-data")
22786 "/share/rime-data")))
22787 #t))
22788 (add-before 'install 'build-emacs-module
22789 (lambda _
22790 (invoke "make" "lib")))
22791 (add-after 'install 'install-emacs-module
22792 (lambda* (#:key outputs #:allow-other-keys)
22793 (install-file "librime-emacs.so"
22794 (string-append (assoc-ref outputs "out")
22795 "/share/emacs/site-lisp"))
22796 #t)))))
22797 (inputs
22798 `(("librime" ,librime)
22799 ("rime-data" ,rime-data)))
22800 (propagated-inputs
22801 `(("emacs-dash" ,emacs-dash)
22802 ("emacs-popup" ,emacs-popup)
22803 ("emacs-posframe" ,emacs-posframe)))
22804 (home-page "https://github.com/DogLooksGood/emacs-rime")
22805 (synopsis "Rime input method in Emacs")
22806 (description
22807 "Rime is an Emacs input method built upon Rime input method engine.")
22808 (license license:gpl3+)))
22809
22810 (define-public emacs-blackout
22811 (let ((commit "4bac44671fca4c98d96aa94c79946bf4d4baf0ee")
22812 (revision "1"))
22813 (package
22814 (name "emacs-blackout")
22815 (version (git-version "1.0" revision commit))
22816 (source
22817 (origin
22818 (method git-fetch)
22819 (uri (git-reference
22820 (url "https://github.com/raxod502/blackout")
22821 (commit commit)))
22822 (sha256
22823 (base32
22824 "1wnh0nwy6r3a18sy9sqmrwv04vnmaflxy4g7mq8jiyyjijri7l1b"))
22825 (file-name (git-file-name name version))))
22826 (build-system emacs-build-system)
22827 (home-page "https://github.com/raxod502/blackout")
22828 (synopsis "Clean up mode lighters")
22829 (description "This package provides a function for hiding and customizing
22830 display of major and minor modes in the mode line.")
22831 (license license:gpl3+))))
22832
22833 (define-public emacs-ivy-omni-org
22834 (let ((commit "5460a9fc061a4a5ae8372dc8df966ced94abab58")
22835 (revision "1"))
22836 (package
22837 (name "emacs-ivy-omni-org")
22838 (version (git-version "0.2.1" revision commit))
22839 (source
22840 (origin
22841 (method git-fetch)
22842 (uri (git-reference
22843 (url "https://github.com/akirak/ivy-omni-org")
22844 (commit commit)))
22845 (file-name (git-file-name name version))
22846 (sha256
22847 (base32
22848 "1np1f51hc3phkl5w02a9a79gl38ra2d535i784fn4pqaasvm0rq8"))))
22849 (build-system emacs-build-system)
22850 (propagated-inputs
22851 `(("emacs-ivy" ,emacs-ivy)
22852 ("emacs-dash" ,emacs-dash)))
22853 (synopsis "Browse anything in Org mode")
22854 (description "This package allows Org items to be accessed via the Ivy
22855 interface.")
22856 (home-page "https://github.com/akirak/ivy-omni-org")
22857 (license license:gpl3+))))
22858
22859 (define-public emacs-ivy-posframe
22860 (let ((commit "ae9bafe94fe6b77b6fe45766ae6172646f6a5d50"))
22861 (package
22862 (name "emacs-ivy-posframe")
22863 (version (git-version "0.1.0" "1" commit))
22864 (source
22865 (origin
22866 (method git-fetch)
22867 (uri (git-reference
22868 (url "https://github.com/tumashu/ivy-posframe")
22869 (commit commit)))
22870 (file-name (git-file-name name version))
22871 (sha256
22872 (base32
22873 "1j6yns5d7lh2v1nfcznrirl7qicdli9csciqvfgj4gkh72a97pw1"))))
22874 (build-system emacs-build-system)
22875 (propagated-inputs
22876 `(("emacs-posframe" ,emacs-posframe)
22877 ("emacs-ivy" ,emacs-ivy)))
22878 (home-page "https://github.com/tumashu/ivy-posframe")
22879 (synopsis "Pop a posframe (a child frame) to show Ivy candidates")
22880 (description
22881 "This package provides an Emacs Ivy extension, which let Ivy use
22882 posframe to show its candidate menu.")
22883 (license license:gpl3+))))
22884
22885 (define-public emacs-shackle
22886 (let ((commit "7ccbe513852a1d1700b698547efca14b8940319d")
22887 (revision "1"))
22888 (package
22889 (name "emacs-shackle")
22890 (version (git-version "1.0.3" revision commit))
22891 (source
22892 (origin
22893 (method git-fetch)
22894 (uri (git-reference
22895 (url "https://github.com/wasamasa/shackle")
22896 (commit commit)))
22897 (file-name (git-file-name name version))
22898 (sha256
22899 (base32
22900 "0agsp8ia4irr540r898ifhjqp28n1zsq1pilv1kc272spn3qhvp9"))))
22901 (build-system emacs-build-system)
22902 (synopsis "Enforce rules for popups")
22903 (description "This package provides a global minor mode in which users
22904 can specify how popup-displaying functions occupy the screen.")
22905 (home-page "https://github.com/wasamasa/shackle")
22906 (license license:gpl3+))))
22907
22908 (define-public emacs-helm-lacarte
22909 (let ((commit "40a6c449720be521435b6b1da7911af3a0b9dca0")
22910 (revision "1"))
22911 (package
22912 (name "emacs-helm-lacarte")
22913 (version (git-version "0" revision commit))
22914 (source
22915 (origin
22916 (method git-fetch)
22917 (uri (git-reference
22918 (url "https://github.com/emacs-helm/helm-lacarte")
22919 (commit commit)))
22920 (file-name (git-file-name name version))
22921 (sha256
22922 (base32
22923 "0dkfd3lap2v7b4nckzv8v7hczmzwzhbl75haqkra107ln91ldbwc"))))
22924 (build-system emacs-build-system)
22925 (propagated-inputs
22926 `(("emacs-helm" ,emacs-helm)
22927 ("emacs-lacarte" ,emacs-lacarte)))
22928 (synopsis "Helm interface to @code{lacarte.el}")
22929 (description "This package provides a Helm interface to
22930 @code{lacarte.el}, a package that displays mode-specific commands as menu
22931 items.")
22932 (home-page "https://github.com/emacs-helm/helm-lacarte")
22933 (license license:gpl3+))))
22934
22935 (define-public emacs-esh-help
22936 (let ((commit "417673ed18a983930a66a6692dbfb288a995cb80")
22937 (revision "1"))
22938 (package
22939 (name "emacs-esh-help")
22940 (version (git-version "1.0.1" revision commit))
22941 (source
22942 (origin
22943 (method git-fetch)
22944 (uri (git-reference
22945 (url "https://github.com/tom-tan/esh-help")
22946 (commit commit)))
22947 (file-name (git-file-name name version))
22948 (sha256
22949 (base32
22950 "0x7d51a6ljl014zy7mi27vzcqqbcwg9z4drq29fr2ajk82mqhlgd"))))
22951 (build-system emacs-build-system)
22952 (propagated-inputs
22953 `(("emacs-dash" ,emacs-dash)))
22954 (synopsis "Help functions for Eshell")
22955 (description "This package provides a @code{run-help} function inspired
22956 by @code{zsh} as well as @code{eldoc} support.")
22957 (home-page "https://github.com/tom-tan/esh-help")
22958 (license license:gpl3+))))
22959
22960 (define-public emacs-isearch-dabbrev
22961 (let ((commit "1efe7abba4923015cbc2462395deaec5446a9cc8")
22962 (revision "1"))
22963 (package
22964 (name "emacs-isearch-dabbrev")
22965 (version (git-version "0.1" revision commit))
22966 (source
22967 (origin
22968 (method git-fetch)
22969 (uri (git-reference
22970 (url "https://github.com/Dewdrops/isearch-dabbrev")
22971 (commit commit)))
22972 (file-name (git-file-name name version))
22973 (sha256
22974 (base32
22975 "17d0816awadvsw1qc7r0p6ira75jmgxaj9hsk9ypayxsaf6ynyrb"))))
22976 (build-system emacs-build-system)
22977 (synopsis "Use @code{dabbrev} within @code{isearch}")
22978 (description "This package allows @code{dabbrev-expand} to be used
22979 within @code{isearch-mode}.")
22980 (home-page "https://github.com/Dewdrops/isearch-dabbrev")
22981 (license license:gpl3+))))
22982
22983 (define-public emacs-helm-linux-disks
22984 (let ((commit "2cdc8116a08534289eb0dc76461d0f93a0bdf231")
22985 (revision "1"))
22986 (package
22987 (name "emacs-helm-linux-disks")
22988 (version (git-version "0.1" revision commit))
22989 (source
22990 (origin
22991 (method git-fetch)
22992 (uri (git-reference
22993 (url "https://github.com/Akirak/helm-linux-disks")
22994 (commit commit)))
22995 (file-name (git-file-name name version))
22996 (sha256
22997 (base32
22998 "1limw82zd8jz3mhh9rqlmhj4cjhfgybs9argfjid1an3vpyhc85i"))))
22999 (build-system emacs-build-system)
23000 (propagated-inputs
23001 `(("emacs-helm" ,emacs-helm)))
23002 (synopsis "Mount/unmount volumes in Linux via Helm")
23003 (description "This package provides a Helm interface to run operations
23004 on removable volumes in Linux.")
23005 (home-page "https://github.com/Akirak/helm-linux-disks")
23006 (license license:gpl3+))))
23007
23008 (define-public emacs-psession
23009 (let ((commit "3e97267c92b164584e06a6c70ee7491714c7c12c")
23010 (revision "1"))
23011 (package
23012 (name "emacs-psession")
23013 (version (git-version "1.5" revision commit))
23014 (source
23015 (origin
23016 (method git-fetch)
23017 (uri (git-reference
23018 (url "https://github.com/thierryvolpiatto/psession")
23019 (commit commit)))
23020 (file-name (git-file-name name version))
23021 (sha256
23022 (base32
23023 "15frl618393bc891d0yi3mdxzvbq790a86vfvp3dyd5riz4ddg95"))))
23024 (build-system emacs-build-system)
23025 (propagated-inputs
23026 `(("emacs-async" ,emacs-async)))
23027 (synopsis "Persistent save of @code{elisp} objects.")
23028 (description "This package provides minor modes for saving Emacs session
23029 data, including buffers, window configuration, variables, and more.")
23030 (home-page "https://github.com/thierryvolpiatto/psession")
23031 (license license:gpl3+))))
23032
23033 (define-public emacs-parseedn
23034 (package
23035 (name "emacs-parseedn")
23036 (version "0.1.0")
23037 (source
23038 (origin
23039 (method git-fetch)
23040 (uri (git-reference
23041 (url "https://github.com/clojure-emacs/parseedn")
23042 (commit (string-append "v" version))))
23043 (file-name (git-file-name name version))
23044 (sha256
23045 (base32
23046 "11wi3hwcgmy54p6ivpijqm7v0hj6j75a19qk5z779bqfrp79b4pc"))))
23047 (build-system emacs-build-system)
23048 (propagated-inputs
23049 `(("emacs-a" ,emacs-a)
23050 ("emacs-parseclj" ,emacs-parseclj)))
23051 (home-page "https://cider.mx")
23052 (synopsis "EDN parser for Emacs Lisp")
23053 (description
23054 "An Emacs Lisp library for parsing EDN (Clojure) data.
23055 It uses parseclj's shift-reduce parser internally.")
23056 (license license:gpl3+)))
23057
23058 (define-public emacs-parseclj
23059 (package
23060 (name "emacs-parseclj")
23061 (version "0.1.0")
23062 (source
23063 (origin
23064 (method git-fetch)
23065 (uri (git-reference
23066 (url "https://github.com/clojure-emacs/parseclj")
23067 (commit (string-append "v" version))))
23068 (file-name (git-file-name name version))
23069 (sha256
23070 (base32
23071 "03bm5dm4hmkqimv4wqxjjh5814pxysmm7z54bv2rf7zwv1x7dggr"))))
23072 (build-system emacs-build-system)
23073 (propagated-inputs `(("emacs-a" ,emacs-a)))
23074 (home-page "https://cider.mx")
23075 (synopsis "Clojure parser for Emacs Lisp")
23076 (description
23077 "An Emacs Lisp library for parsing Clojure code and EDN data.
23078 It supports several input and output formats, all powered by the
23079 same shift-reduce parser function.")
23080 (license license:gpl3+)))
23081
23082 (define-public emacs-hide-mode-line
23083 (package
23084 (name "emacs-hide-mode-line")
23085 (version "1.0.2")
23086 (source (origin
23087 (method git-fetch)
23088 (uri (git-reference
23089 (url "https://github.com/hlissner/emacs-hide-mode-line")
23090 (commit (string-append "v" version))))
23091 (file-name (git-file-name name version))
23092 (sha256
23093 (base32
23094 "0dfzjgxfkcw4wisbyldsm1km18pfp9j8xgadn6qnsz11l55bpgyp"))))
23095 (build-system emacs-build-system)
23096 (synopsis "Emacs plugin that hides the mode-line")
23097 (description "A minor mode that hides the mode-line in your current
23098 buffer. It can be used to toggle an alternative mode-line, toggle its visibility,
23099 or simply disable the mode-line in buffers where it is not very useful.")
23100 (home-page "https://github.com/hlissner/emacs-hide-mode-line")
23101 (license license:expat)))
23102
23103 (define-public emacs-helm-cider
23104 ;; No new release since March 2018.
23105 (let ((commit "9363cc537f06233345aa3af5cd46aa5681ad607b"))
23106 (package
23107 (name "emacs-helm-cider")
23108 (version (git-version "0.4.0" "1" commit))
23109 (home-page "https://github.com/clojure-emacs/helm-cider")
23110 (source (origin
23111 (method git-fetch)
23112 (uri (git-reference
23113 (url home-page)
23114 (commit commit)))
23115 (file-name (git-file-name name version))
23116 (sha256
23117 (base32
23118 "0vfn4smqba1vsshz48ggkj8gs94la0sxb1sq4shrb41qj2x3dci7"))))
23119 (build-system emacs-build-system)
23120 (propagated-inputs
23121 `(("emacs-helm" ,emacs-helm)
23122 ("emacs-cider" ,emacs-cider)))
23123 (synopsis "Helm interface to Clojure's CIDER")
23124 (description "Helm-CIDER adds Helm interfaces to
23125 @command{cider-apropos}, @command{cider-apropos-documentation},
23126 @command{cider-browse-ns} (namespaces).
23127
23128 It also provides original Helm commands: @command{helm-cider-spec},
23129 @command{helm-cider-spec-ns}, @command{helm-cider-repl-history},
23130 @command{helm-cider-cheatsheet}.")
23131 (license license:gpl3+))))
23132
23133 (define-public emacs-edn
23134 ;; No release since February 2016
23135 (let ((commit "be9e32d1b49e35247b263b0243df7cfdc8d413ab"))
23136 (package
23137 (name "emacs-edn")
23138 (version (git-version "1.1.2" "1" commit))
23139 (home-page "https://github.com/expez/edn.el")
23140 (source (origin
23141 (method git-fetch)
23142 (uri (git-reference
23143 (url home-page)
23144 (commit commit)))
23145 (file-name (git-file-name name version))
23146 (sha256
23147 (base32
23148 "1xp2hjhn52k6l1g6ypva6dsklpawni7gvjafbz6404f9dyxflh7l"))))
23149 (build-system emacs-build-system)
23150 (propagated-inputs
23151 `(("emacs-peg" ,emacs-peg)))
23152 (synopsis "Read and write EDN from Elisp")
23153 (description "This is an Emacs Lisp library for reading and writing the
23154 data format @code{edn}. See @url{https://github.com/edn-format/edn}.")
23155 (license license:gpl3+))))
23156
23157 (define-public emacs-helm-clojuredocs
23158 (let ((commit "5a7f0f2cb401be0b09e73262a1c18265ab9a3cea"))
23159 (package
23160 (name "emacs-helm-clojuredocs")
23161 (version (git-version "0.3" "1" commit))
23162 (home-page "https://github.com/mbuczko/helm-clojuredocs")
23163 (source (origin
23164 (method git-fetch)
23165 (uri (git-reference
23166 (url home-page)
23167 (commit commit)))
23168 (file-name (git-file-name name version))
23169 (sha256
23170 (base32
23171 "015b8zxh91ljhqvn6z43gy08di54xcw9skw0i7frj3d7gk984qhl"))))
23172 (build-system emacs-build-system)
23173 (propagated-inputs
23174 `(("emacs-helm" ,emacs-helm)
23175 ("emacs-edn" ,emacs-edn)))
23176 (synopsis "Search help on clojuredocs.org with Helm")
23177 (description "This package provides a Helm interface to lookup Clojure
23178 documentation on @url{https://clojuredocs.org} with Helm.
23179
23180 Two function are exposed:
23181 @itemize
23182 @item @command{helm-clojuredocs}: opens a Helm session with no initial
23183 pattern. Searching starts with minimal 3 characters entered.
23184 @item @command{helm-clojuredocs-at-point}: opens a Helm session with initial
23185 pattern guessed from thing under current cursor position.
23186 @end itemize\n")
23187 (license license:gpl3+))))
23188
23189 (define-public emacs-helm-selector
23190 (package
23191 (name "emacs-helm-selector")
23192 (version "0.2")
23193 (home-page "https://github.com/emacs-helm/helm-selector")
23194 (source
23195 (origin
23196 (method git-fetch)
23197 (uri (git-reference
23198 (url home-page)
23199 (commit version)))
23200 (file-name (git-file-name name version))
23201 (sha256
23202 (base32
23203 "1c7xhrq1mivldyq3rglpmfypbz44dcm7zrgyha6x09cfixlyfbcp"))))
23204 (build-system emacs-build-system)
23205 (propagated-inputs
23206 `(("emacs-helm" ,emacs-helm)))
23207 (synopsis "Convenient related-buffer selection for Emacs Helm")
23208 (description "Helm Selector is a collection of Helm helper functions for
23209 convenient buffer selection.
23210
23211 It is especially helpful to create Helm sessions to navigate buffers of a
23212 given mode in a “do what I mean” fashion:
23213
23214 If current buffer is not of mode X, switch to last buffer of mode X. If
23215 current buffer is of mode X, show a Helm session of all buffers in mode X. In
23216 the Helm session, it’s also possible to input an arbitrary name which will be
23217 used for the creation of a new buffer of mode X.")
23218 (license license:gpl3+)))
23219
23220 (define-public emacs-helm-wordnut
23221 (let ((commit "9681a9535a839cd5d042c302945ae595852fe7bf"))
23222 (package
23223 (name "emacs-helm-wordnut")
23224 (version (git-version "0.1" "1" commit))
23225 (home-page "https://github.com/emacs-helm/helm-wordnut")
23226 (source
23227 (origin
23228 (method git-fetch)
23229 (uri (git-reference
23230 (url home-page)
23231 (commit commit)))
23232 (file-name (git-file-name name version))
23233 (sha256
23234 (base32
23235 "0msj7nbsb363pxamxi7n2z08cp5jizkpjbwia8f5a161wjglrihs"))))
23236 (build-system emacs-build-system)
23237 (inputs
23238 `(("wordnet" ,wordnet)))
23239 (propagated-inputs
23240 `(("emacs-helm" ,emacs-helm)))
23241 (arguments
23242 `(#:phases
23243 (modify-phases %standard-phases
23244 (add-after 'unpack 'configure
23245 (lambda* (#:key inputs #:allow-other-keys)
23246 (let ((wn (assoc-ref inputs "wordnet")))
23247 ;; .el is read-only in git.
23248 (chmod "helm-wordnut.el" #o644)
23249 ;; Specify the absolute file names of the various
23250 ;; programs so that everything works out-of-the-box.
23251 (emacs-substitute-variables "helm-wordnut.el"
23252 ("helm-wordnut-prog" (string-append wn "/bin/wn"))
23253 ("helm-wordnut-wordnet-location"
23254 (string-append wn "/dict")))))))))
23255 (synopsis "Emacs Helm interface for Wordnet")
23256 (description "This package is merely a combination of two other Emacs
23257 packages: @code{helm-wordnet} and @code{wordnut}. It features word completion
23258 with Helm and displays a buffer of all the different result types available to
23259 Wordnet.")
23260 (license license:gpl3+))))
23261
23262 (define-public emacs-metal-mercury-mode
23263 (let ((commit "99e2d8fb7177cae3bfa2dec2910fc28216d5f5a8")
23264 (revision "1")
23265 (version "0.0.0"))
23266 (package
23267 (name "emacs-metal-mercury-mode")
23268 (version (git-version version revision commit))
23269 (source
23270 (origin
23271 (method git-fetch)
23272 (uri (git-reference
23273 (url "https://github.com/ahungry/metal-mercury-mode")
23274 (commit commit)))
23275 (sha256
23276 (base32
23277 "0iil5k3rgifz2vqwsy12rbv5rzyvidq4sgwazsb2hzys8xynmfn5"))
23278 (file-name (git-file-name name version))))
23279 (build-system emacs-build-system)
23280 (propagated-inputs
23281 `(("emacs-dash" ,emacs-dash)))
23282 (synopsis "Major mode for editing Mercury files")
23283 (description
23284 "Major mode for editing Mercury files. This is a rewrite of the original
23285 mercury-mode provided by Emacs as a wrapper around prolog-mode.")
23286 (home-page "https://github.com/ahungry/metal-mercury-mode")
23287 (license license:gpl3+))))
23288
23289 (define-public emacs-boxquote
23290 ;; The following commit is 2.1 release with a switch to GPL3+ license.
23291 (let ((commit "7e47e0e2853bc1215739b2e28f260e9eed93b2c5")
23292 (revision "0"))
23293 (package
23294 (name "emacs-boxquote")
23295 (version (git-version "2.1" revision commit))
23296 (source
23297 (origin
23298 (method git-fetch)
23299 (uri (git-reference
23300 (url "https://github.com/davep/boxquote.el")
23301 (commit commit)))
23302 (file-name (git-file-name name version))
23303 (sha256
23304 (base32 "1aqhg24gajvllbqxb0zxrnx6sddas37k2ldfinqyszd856sjhsg3"))))
23305 (build-system emacs-build-system)
23306 (home-page "https://github.com/davep/boxquote.el")
23307 (synopsis "Quote text with different kinds of boxes")
23308 (description "@code{boxquote} provides a set of functions for using
23309 a text quoting style that partially boxes in the left hand side of an area of
23310 text, such a marking style might be used to show externally included text or
23311 example code.")
23312 (license license:gpl3+))))
23313
23314 (define-public emacs-buffer-move
23315 (package
23316 (name "emacs-buffer-move")
23317 (version "0.6.2")
23318 (source
23319 (origin
23320 (method git-fetch)
23321 (uri (git-reference
23322 (url "https://github.com/lukhas/buffer-move")
23323 (commit version)))
23324 (file-name (git-file-name name version))
23325 (sha256
23326 (base32 "0xdks4jfqyhkh34y48iq3gz8swp0f526kwnaai5mhgvazvs4za8c"))))
23327 (build-system emacs-build-system)
23328 (home-page "https://github.com/lukhas/buffer-move")
23329 (synopsis "Functions for moving Emacs' buffers around")
23330 (description
23331 "This package define functions for swapping buffers between windows
23332 contained in the same frame. An alternate behavior is to have the current
23333 window switch to the previous buffer instead of swapping with the other
23334 window.")
23335 (license license:gpl3+)))
23336
23337 (define-public emacs-company-ebdb
23338 (package
23339 (name "emacs-company-ebdb")
23340 (version "1.1")
23341 (source
23342 (origin
23343 (method url-fetch)
23344 (uri (string-append "https://elpa.gnu.org/packages/"
23345 "company-ebdb-" version ".el"))
23346 (sha256
23347 (base32 "146qpiigz12zp1823ggxfrx090g0mxs7gz1ba7sa0iq6ibgzwwm9"))))
23348 (build-system emacs-build-system)
23349 (propagated-inputs
23350 `(("emacs-company" ,emacs-company)))
23351 (home-page "https://elpa.gnu.org/packages/company-ebdb.html")
23352 (synopsis "Company completion backend for EBDB in Message mode")
23353 (description "@code{company-ebdb} provides Company mode integration for
23354 EBDB. It is copied more or less intact from @code{company-bbdb}, originally
23355 by Jan Tatarik.")
23356 (license license:gpl3+)))
23357
23358 (define-public emacs-mwim
23359 ;; Use the latest commit not in a release version as of yet, since it
23360 ;; contains a bug fix for the cases where `comment-start-skip' is nil.
23361 (let ((commit "b4f3edb4c0fb8f8b71cecbf8095c2c25a8ffbf85")
23362 (revision "0"))
23363 (package
23364 (name "emacs-mwim")
23365 (version (git-version "0.4" revision commit))
23366 (source
23367 (origin
23368 (method git-fetch)
23369 (uri (git-reference
23370 (url "https://github.com/alezost/mwim.el")
23371 (commit commit)))
23372 (file-name (git-file-name name version))
23373 (sha256
23374 (base32 "0l3k611gp9g2x2vfmh92wnhnda81dslpwwpb8mxmzk308man77ya"))))
23375 (build-system emacs-build-system)
23376 (home-page "https://github.com/alezost/mwim.el")
23377 (synopsis "Move to the beginning/end of line, code or comment")
23378 (description "@code{mwim} provides several commands to switch between
23379 various line positions, like moving to the beginning/end of code, line, or
23380 comment.")
23381 (license license:gpl3+))))
23382
23383 (define-public emacs-delight
23384 (package
23385 (name "emacs-delight")
23386 (version "1.7")
23387 (source
23388 (origin
23389 (method url-fetch)
23390 (uri (string-append "https://elpa.gnu.org/packages/"
23391 "delight-" version ".el"))
23392 (sha256
23393 (base32 "0pihsghrf9xnd1kqlq48qmjcmp5ra95wwwgrb3l8m1wagmmc0bi1"))))
23394 (build-system emacs-build-system)
23395 (home-page "https://elpa.gnu.org/packages/delight.html")
23396 (synopsis "Dimmer switch for your mode-line lighter text")
23397 (description "@code{delight} enables customizing or hiding the
23398 mode-line text (lighter) of major and minor modes.")
23399 (license license:gpl3+)))
23400
23401 (define-public emacs-unkillable-scratch
23402 ;; Use the latest (unreleased) commit as of now, since it contains a handy
23403 ;; `unkillable-scratch-do-not-reset-scratch-buffer' customization to not
23404 ;; repopulate the scratch buffer with `initial-scratch-message'.
23405 (let ((commit "b24c2a760529833f230c14cb02ff6e7ec92288ab")
23406 (revision "0"))
23407 (package
23408 (name "emacs-unkillable-scratch")
23409 (version (git-version "1.0.0" revision commit))
23410 (source
23411 (origin
23412 (method git-fetch)
23413 (uri (git-reference
23414 (url "https://github.com/EricCrosson/unkillable-scratch")
23415 (commit commit)))
23416 (file-name (git-file-name name version))
23417 (sha256
23418 (base32 "13wjbcxr3km4s96yhpavgs5acs5pvqv3ih1p84diqb3x3i6wd4pa"))))
23419 (build-system emacs-build-system)
23420 (home-page "https://github.com/EricCrosson/unkillable-scratch")
23421 (synopsis "Prevents the *scratch* buffer from being killed")
23422 (description "@code{unkillable-scratch} helps prevent killing buffers
23423 matching a given regexp.")
23424 (license license:gpl2+))))
23425
23426 (define-public emacs-switch-buffer-functions
23427 (package
23428 (name "emacs-switch-buffer-functions")
23429 (version "0.0.1")
23430 (source
23431 (origin
23432 (method git-fetch)
23433 (uri (git-reference
23434 (url "https://github.com/10sr/switch-buffer-functions-el")
23435 (commit (string-append "v" version))))
23436 (file-name (git-file-name name version))
23437 (sha256
23438 (base32 "0pq53b8wrjbrxd5hnrcdi0z7mffp4bax55hn90k9ca3j76lhbn1k"))))
23439 (build-system emacs-build-system)
23440 (home-page "https://github.com/10sr/switch-buffer-functions-el")
23441 (synopsis "Hooks run when switching current buffer")
23442 (description "This package provides a hook variable
23443 @code{switch-buffer-functions}. The hooks will be run when the current buffer
23444 is changed after an interactive command, i.e., when @code{post-command-hook}
23445 hooks are run. The hooked functions will be called with both the previous and
23446 the current buffer.")
23447 (license license:unlicense)))
23448
23449 (define-public emacs-erc-scrolltoplace
23450 (package
23451 (name "emacs-erc-scrolltoplace")
23452 (version "0.1.0")
23453 (source
23454 (origin
23455 (method git-fetch)
23456 (uri (git-reference
23457 (url "https://gitlab.com/jgkamat/erc-scrolltoplace.git")
23458 (commit version)))
23459 (file-name (git-file-name name version))
23460 (sha256
23461 (base32 "11zpqwh1mlfifbgnvhc63bvnhg340jgxssm3m43hr1sxsyb52lh6"))))
23462 (build-system emacs-build-system)
23463 (propagated-inputs
23464 `(("emacs-switch-buffer-functions" ,emacs-switch-buffer-functions)))
23465 (home-page "https://gitlab.com/jgkamat/erc-scrolltoplace")
23466 (synopsis "ERC module to replace scrolltobottom while using keep-place")
23467 (description "@code{erc-scrolltoplace} is an ERC module to try
23468 to emulate @code{scrolltobottom} while @code{keep-place} is enabled.")
23469 (license license:gpl3+)))
23470
23471 (define-public emacs-dmenu
23472 ;; Use the latest commit, as there are no tagged releases.
23473 (let ((commit "e8cc9b27c79d3ecc252267c082ab8e9c82eab264")
23474 (revision "0"))
23475 (package
23476 (name "emacs-dmenu")
23477 (version (git-version "0.1" revision commit))
23478 (source
23479 (origin
23480 (method git-fetch)
23481 (uri (git-reference
23482 (url "https://github.com/lujun9972/el-dmenu")
23483 (commit commit)))
23484 (file-name (git-file-name name version))
23485 (sha256
23486 (base32 "098ncygms1r33zhjlq4fj2p4jc91v5whqrm3fazzdk7sd6dilf25"))))
23487 (build-system emacs-build-system)
23488 (home-page "https://github.com/lujun9972/el-dmenu")
23489 (synopsis "Simulate the @command{dmenu} command line program")
23490 (description "This package provides a @command{dmenu} command for
23491 launching other commands/applications from within Emacs, similar to the
23492 @command{dmenu} program. This is especially useful when using EXWM.")
23493 (license license:gpl3+))))
23494
23495 (define-public emacs-no-littering
23496 (package
23497 (name "emacs-no-littering")
23498 (version "1.0.3")
23499 (source
23500 (origin
23501 (method git-fetch)
23502 (uri (git-reference
23503 (url "https://github.com/emacscollective/no-littering")
23504 (commit (string-append "v" version))))
23505 (file-name (git-file-name name version))
23506 (sha256
23507 (base32 "17is06l0w6glppabv2kaclrnqi3dqb6p6alpslpg7lrjd8vd45ir"))))
23508 (build-system emacs-build-system)
23509 (home-page "https://github.com/emacscollective/no-littering")
23510 (synopsis "Help keep ~/.emacs.d/ clean")
23511 (description "The default paths used to store configuration files and
23512 persistent data are not consistent across Emacs packages, be them built-in or
23513 third-party ones. @code{no-littering} sets out to help clean
23514 @file{~/.emacs.d/} by putting configuration files and persistent data files in
23515 two user-defined directories, as well as using more descriptive names for
23516 files and subdirectories when appropriate.")
23517 (license license:gpl3+)))
23518
23519 (define-public emacs-meson-mode
23520 (package
23521 (name "emacs-meson-mode")
23522 (version "0.2")
23523 (source
23524 (origin
23525 (method git-fetch)
23526 (uri (git-reference
23527 (url "https://github.com/wentasah/meson-mode")
23528 (commit (string-append "v" version))))
23529 (file-name (git-file-name name version))
23530 (sha256
23531 (base32 "1720b3hpfqd989zrgcns51jbjrv4vzl9di9mccl55vkmkbqzfin0"))))
23532 (build-system emacs-build-system)
23533 (home-page "https://github.com/wentasah/meson-mode")
23534 (synopsis "Major mode for Meson build system files")
23535 (description
23536 "This is an Emacs major mode for Meson build system files. Syntax
23537 highlighting works reliably. Indentation works too, but there are probably
23538 cases where it breaks.")
23539 (license license:gpl3+)))
23540
23541 (define-public emacs-message-x
23542 ;; Use the latest commit, as there are no tagged releases.
23543 (let ((commit "5524de7bbfdd8749c110f48de5afb024d9f83133")
23544 (revision "0"))
23545 (package
23546 (name "emacs-message-x")
23547 (version (git-version "1.23" revision commit))
23548 (source
23549 (origin
23550 (method git-fetch)
23551 (uri (git-reference
23552 (url "https://github.com/emacsmirror/message-x")
23553 (commit commit)))
23554 (file-name (git-file-name name version))
23555 (sha256
23556 (base32 "0qy1xf11j357lsnbb829hnbg7fq1cii4cx54fwf0wgjh1bv2abvj"))))
23557 (build-system emacs-build-system)
23558 (home-page "https://www.emacswiki.org/emacs/message-x.el")
23559 (synopsis "Customizable completion in message headers")
23560 (description "@code{message-x} assigns a context-sensitive function to
23561 the TAB key in Message mode. When on a header line, it performs completion
23562 based on which header we are in (for example, newsgroup name completion makes
23563 sense on the @samp{Newsgroups} header, whereas mail alias expansion makes
23564 sense in the @samp{To} and @samp{Cc} headers). When in the message body, this
23565 executes a different function (default: @code{indent-relative}).")
23566 (license license:gpl2+))))
23567
23568 (define-public emacs-glsl-mode
23569 ;; No tag, version grabbed from source .el file.
23570 (let ((commit "b07112016436d9634cd4ef747f9af6b01366d136")
23571 (revision "0"))
23572 (package
23573 (name "emacs-glsl-mode")
23574 (version (git-version "2.4" revision commit))
23575 (source
23576 (origin
23577 (method git-fetch)
23578 (uri (git-reference
23579 (url "https://github.com/jimhourihan/glsl-mode")
23580 (commit commit)))
23581 (file-name (git-file-name name version))
23582 (sha256
23583 (base32 "0bav9ipfm0vy26n74ngsmjzc7fsyqz6xmriadzx55s44h8p5dn1s"))))
23584 (build-system emacs-build-system)
23585 (home-page "https://github.com/jimhourihan/glsl-mode")
23586 (synopsis "Major mode for Open GLSL shader files")
23587 (description
23588 "This package provides a major mode for editing OpenGLSL grammar files,
23589 usually files ending with @file{.vert}, @file{.frag}, @file{.glsl} or
23590 @file{.geom}. It is based on C mode plus some features and pre-specified
23591 fontifications.")
23592 (license license:gpl3+))))
23593
23594 (define-public emacs-gnus-harvest
23595 (let ((commit "feda071a87b799bd5d23cacde3ee71f0b166e75d")
23596 (revision "0"))
23597 (package
23598 (name "emacs-gnus-harvest")
23599 (version (git-version "1.0" revision commit))
23600 (source
23601 (origin
23602 (method git-fetch)
23603 (uri (git-reference
23604 (url "https://github.com/jwiegley/gnus-harvest")
23605 (commit commit)))
23606 (file-name (git-file-name name version))
23607 (sha256
23608 (base32 "08zb7vc3v3wdxkzgi902vlc5ybfvm8fxrvm5drnwfsjj9873pbcb"))))
23609 (build-system emacs-build-system)
23610 (inputs
23611 `(("sqlite" ,sqlite)))
23612 (arguments
23613 `(#:phases
23614 (modify-phases %standard-phases
23615 (add-before 'build 'patch-exec-paths
23616 (lambda* (#:key inputs #:allow-other-keys)
23617 (let ((sqlite (assoc-ref inputs "sqlite"))
23618 (file "gnus-harvest.el"))
23619 (make-file-writable file)
23620 (emacs-substitute-variables file
23621 ("gnus-harvest-sqlite-program"
23622 (string-append sqlite "/bin/sqlite3"))))
23623 #t)))))
23624 (home-page "https://github.com/jwiegley/gnus-harvest")
23625 (synopsis
23626 "Harvest email addresses from read/written Gnus articles")
23627 (description "@code{gnus-harvest} notices email address in every message
23628 or post you read or write, and collects them in a SQLite database, which can
23629 be easily and quickly queried to determine the completion list. It optionally
23630 uses BBDB and Message-X.")
23631 (license license:gpl3+))))
23632
23633 (define-public emacs-auto-dictionary-mode
23634 (package
23635 (name "emacs-auto-dictionary-mode")
23636 (version "1.1")
23637 (source
23638 (origin
23639 (method git-fetch)
23640 (uri (git-reference
23641 (url "https://github.com/nschum/auto-dictionary-mode")
23642 (commit version)))
23643 (file-name (git-file-name name version))
23644 (sha256
23645 (base32 "191294k92qp8gmfypf0q8j8qrym96aqikzvyb9p03wqvbr3r1dsk"))))
23646 (build-system emacs-build-system)
23647 (home-page "http://nschum.de/src/emacs/auto-dictionary/")
23648 (synopsis "Automatic dictionary switcher for Emacs spell checking")
23649 (description "@code{auto-dictionary} is a minor mode that hooks into
23650 Flyspell's on-the-fly spell checking and extends these checks to also detect
23651 language. Auto-dictionary then sets @code{ispell-dictionary} to use the
23652 detected language.")
23653 (license license:gpl2+)))
23654
23655 (define-public emacs-persist
23656 (package
23657 (name "emacs-persist")
23658 (version "0.4")
23659 (source
23660 (origin
23661 (method url-fetch)
23662 (uri (string-append "https://elpa.gnu.org/packages/"
23663 "persist-" version ".tar"))
23664 (sha256
23665 (base32 "0gpxy41qawzss2526j9a7lys60vqma1lvamn4bfabwza7gfhac0q"))))
23666 (build-system emacs-build-system)
23667 (home-page "http://elpa.gnu.org/packages/persist.html")
23668 (synopsis "Persist variables between Emacs sessions")
23669 (description
23670 "This package provides variables which persist across sessions.
23671 Values are stored in a directory in @code{user-emacs-directory}, using
23672 one file per value. This makes it easy to delete or remove unused
23673 variables.")
23674 (license license:gpl3+)))
23675
23676 (define-public emacs-company-emoji
23677 (package
23678 (name "emacs-company-emoji")
23679 (version "2.5.2")
23680 (source
23681 (origin
23682 (method git-fetch)
23683 (uri (git-reference
23684 (url "https://github.com/dunn/company-emoji/")
23685 (commit version)))
23686 (file-name (git-file-name name version))
23687 (sha256
23688 (base32 "0r9zcbm3nb3zw5cwrkl098v5b49jbga5404bj7j55g6k4rwkjar2"))))
23689 (build-system emacs-build-system)
23690 (propagated-inputs
23691 `(("emacs-company" ,emacs-company)))
23692 (home-page "https://github.com/dunn/company-emoji/")
23693 (synopsis "Company completion back-end for emoji")
23694 (description
23695 "This library is a Company back-end providing auto-completion for
23696 emoji.")
23697 (license license:gpl3+)))
23698
23699 (define-public emacs-exiftool
23700 (package
23701 (name "emacs-exiftool")
23702 (version "0.3.2")
23703 (source
23704 (origin
23705 (method git-fetch)
23706 (uri (git-reference
23707 (url "https://git.systemreboot.net/exiftool.el/")
23708 (commit (string-append "v" version))))
23709 (file-name (git-file-name name version))
23710 (sha256
23711 (base32
23712 "0bv58is66cz21yhc0qqkp1z4nk13zfi2l7i6pjbhyi0g1n88qqyv"))))
23713 (build-system emacs-build-system)
23714 (arguments
23715 `(#:tests? #t
23716 #:test-command '("make" "-C" "tests")
23717 #:phases
23718 (modify-phases %standard-phases
23719 (add-after 'unpack 'configure
23720 (lambda* (#:key inputs #:allow-other-keys)
23721 (make-file-writable "exiftool.el")
23722 (emacs-substitute-variables "exiftool.el"
23723 ("exiftool-executable"
23724 (string-append (assoc-ref inputs "perl-image-exiftool")
23725 "/bin/exiftool")))
23726 #t)))))
23727 (inputs
23728 `(("perl-image-exiftool" ,perl-image-exiftool)))
23729 (home-page "https://git.systemreboot.net/exiftool.el/about/")
23730 (synopsis "Elisp wrapper around ExifTool")
23731 (description "@code{emacs-exiftool} is an Elisp wrapper around ExifTool.
23732 ExifTool supports reading and writing metadata in various formats including
23733 EXIF, XMP and IPTC.")
23734 (license license:gpl3+)))
23735
23736 (define-public emacs-password-generator
23737 (package
23738 (name "emacs-password-generator")
23739 (version "1.01")
23740 (home-page "https://github.com/zargener/emacs-password-genarator")
23741 (source
23742 (origin
23743 (method git-fetch)
23744 (uri (git-reference
23745 (url home-page)
23746 (commit "904cdb591a04305ba882ce19e1d117f5fa60f7d3")))
23747 (file-name (git-file-name name version))
23748 (sha256
23749 (base32
23750 "1qgvn79qz1h8ykm5i1qv2fja4v2y0g2i0n5sf7byhnqhqlwn63nv"))))
23751 (build-system emacs-build-system)
23752 (synopsis "Generate passwords inside Emacs")
23753 (description "@code{emacs-password-generator} provides simple functions to
23754 generate random passwords and insert them into the current buffer. It also
23755 supports generation of phonetic and numeric passwords.")
23756 (license license:artistic2.0)))
23757
23758 (define-public emacs-csv
23759 (package
23760 (name "emacs-csv")
23761 (version "2.1")
23762 (home-page "https://gitlab.com/u11/csv.el")
23763 (source
23764 (origin
23765 (method git-fetch)
23766 (uri (git-reference
23767 (url home-page)
23768 (commit (string-append "V" version))))
23769 (file-name (git-file-name name version))
23770 (sha256
23771 (base32
23772 "1vmazjrfcsa9aa9aw8bq5sazdhqvhxyj837dyw5lmh8gk7z0xdaa"))))
23773 (build-system emacs-build-system)
23774 (synopsis "Elisp functions for reading and parsing CSV files")
23775 (description
23776 "@code{csv.el} provides functions for reading and parsing @acronym{CSV,
23777 Comma-Separated Values} files. It follows the format as defined in RFC 4180
23778 @emph{Common Format and MIME Type for CSV
23779 Files} (@url{http://tools.ietf.org/html/rfc4180}).")
23780 (license license:gpl3+)))
23781
23782 (define-public emacs-org-journal
23783 (package
23784 (name "emacs-org-journal")
23785 (version "2.0.0")
23786 (source
23787 (origin
23788 (method git-fetch)
23789 (uri (git-reference
23790 (url "https://github.com/bastibe/org-journal")
23791 (commit version)))
23792 (file-name (git-file-name name version))
23793 (sha256
23794 (base32 "18dqd0jy2x530lk0h4fcn9cld9qh4w7b3vxa60fpiia628vsv1dg"))))
23795 (build-system emacs-build-system)
23796 (home-page "https://github.com/bastibe/org-journal")
23797 (synopsis "Simple Org mode journaling mode")
23798 (description
23799 "Org Journal is a set of functions to maintain a simple personal diary /
23800 journal using in Emacs, adapted from
23801 @url{https://www.emacswiki.org/emacs/PersonalDiary}. Convenient bindings
23802 allow the creation of journal records in the current daily, weekly, monthly or
23803 yearly file and search within all records or specified time intervals. All
23804 records can be browsed and searched from the Emacs Calendar for convenience.
23805 All entries in a specified TODO state will be carried over to the next day.")
23806 (license license:bsd-3)))
23807
23808 (define-public emacs-org-static-blog
23809 (package
23810 (name "emacs-org-static-blog")
23811 (version "1.3.0")
23812 (source
23813 (origin
23814 (method git-fetch)
23815 (uri (git-reference
23816 (url "https://github.com/bastibe/org-static-blog")
23817 (commit version)))
23818 (file-name (git-file-name name version))
23819 (sha256
23820 (base32 "15iy3z8rglaqbx1fz14inh18ksgjsmq30b8hyv3lgjvcc9ssaiw0"))))
23821 (build-system emacs-build-system)
23822 (home-page "https://github.com/bastibe/org-static-blog")
23823 (synopsis
23824 "Simple Org mode based static blog generator")
23825 (description
23826 "@code{emacs-org-static-blog} is one more static blog generator, it
23827 focuses on being simple. All files are simple Org files in a directory. The
23828 only requirement is that every Org file must have a @samp{title} and
23829 a @samp{date} keywords, and optionally, a @samp{filetags} keyword.")
23830 (license license:bsd-3)))
23831
23832 (define-public emacs-ddskk
23833 ;; XXX: Upstream adds code names to their release tags, so version and code
23834 ;; name below need to be updated together.
23835 (let ((version "16.3")
23836 (code-name "Kutomatsunai"))
23837 (package
23838 (name "emacs-ddskk")
23839 (version version)
23840 (source
23841 (origin
23842 (method git-fetch)
23843 (uri (git-reference
23844 (url "https://github.com/skk-dev/ddskk")
23845 (commit (string-append "ddskk-" version "_" code-name))))
23846 (file-name (git-file-name name version))
23847 (sha256
23848 (base32 "0ln4x8f35z5y3kf9m718g223bn3lzcmw40jfjg2j5yi24ydf1wm9"))))
23849 (build-system gnu-build-system)
23850 (arguments
23851 `(#:modules ((guix build gnu-build-system)
23852 (guix build utils)
23853 (guix build emacs-utils))
23854 #:imported-modules (,@%gnu-build-system-modules
23855 (guix build emacs-utils))
23856 #:test-target "test"
23857 #:phases
23858 (modify-phases %standard-phases
23859 (replace 'configure
23860 (lambda* (#:key outputs #:allow-other-keys)
23861 (make-file-writable "SKK-MK")
23862 (emacs-substitute-variables "SKK-MK"
23863 ("PREFIX" (assoc-ref outputs "out"))
23864 ("LISPDIR" '(expand-file-name "/share/emacs/site-lisp" PREFIX))
23865 ("SKK_PREFIX" "")
23866 ("SKK_INFODIR" '(expand-file-name "info" PREFIX)))
23867 (for-each make-file-writable (find-files "./doc"))
23868 #t)))))
23869 (native-inputs
23870 `(("emacs-minimal" ,emacs-minimal)))
23871 (home-page "https://github.com/skk-dev/ddskk")
23872 (synopsis "Simple Kana to Kanji conversion program")
23873 (description
23874 "Daredevil SKK is a version of @acronym{SKK, Simple Kana to Kanji
23875 conversion program}, a Japanese input method on Emacs.")
23876 (license license:gpl2+))))
23877
23878 (define-public emacs-objed
23879 (package
23880 (name "emacs-objed")
23881 (version "0.8.3")
23882 (source
23883 (origin
23884 (method url-fetch)
23885 (uri (string-append
23886 "https://elpa.gnu.org/packages/objed-" version ".tar"))
23887 (sha256
23888 (base32
23889 "1s38d6bvggdk5p45ww1jb4gxifzgjwgw1m6ar920nlg0j4fgbcvr"))))
23890 (build-system emacs-build-system)
23891 (home-page "https://github.com/clemera/objed")
23892 (synopsis "Navigate and edit text objects")
23893 (description
23894 "@code{emacs-objed} allows navigating and editing text objects. It
23895 enables modal editing and composition of commands, too. It combines ideas of
23896 other Editors like Vim or Kakoune and tries to align them with regular Emacs
23897 conventions.")
23898 (license license:gpl3+)))
23899
23900 (define-public emacs-haskell-snippets
23901 ;; The commit below is 5 commits ahead of release, and includes a build fix.
23902 (let ((commit "07b0f460b946fd1be26c29652cb0468b47782f3a"))
23903 (package
23904 (name "emacs-haskell-snippets")
23905 (version (git-version "0.1.0" "0" commit))
23906 (source
23907 (origin
23908 (method git-fetch)
23909 (uri
23910 (git-reference
23911 (url "https://github.com/haskell/haskell-snippets")
23912 (commit commit)))
23913 (file-name (git-file-name name version))
23914 (sha256
23915 (base32 "0a7y3awi9hcyahggf0ghsdwvsmrhr9yq634wy9lkqjzrm2hqj0ci"))))
23916 (build-system emacs-build-system)
23917 (arguments
23918 `(#:phases
23919 (modify-phases %standard-phases
23920 (add-after 'install 'install-snippets
23921 (lambda* (#:key outputs #:allow-other-keys)
23922 (let* ((out (assoc-ref outputs "out"))
23923 (snippets
23924 (string-append
23925 out "/share/emacs/site-lisp/snippets/haskell-mode")))
23926 (mkdir-p snippets)
23927 (copy-recursively "snippets/haskell-mode" snippets)
23928 #t))))))
23929 (propagated-inputs
23930 `(("emacs-yasnippet" ,emacs-yasnippet)))
23931 (home-page "https://github.com/haskell/haskell-snippets")
23932 (synopsis "Official collection of YASnippet Haskell snippets for Emacs")
23933 (description "Haskell-Snippets is a collection of YASnippet Haskell
23934 snippets for Emacs.")
23935 (license license:expat))))
23936
23937 (define-public emacs-org-roam
23938 (package
23939 (name "emacs-org-roam")
23940 (version "1.2.1")
23941 (source
23942 (origin
23943 (method git-fetch)
23944 (uri (git-reference
23945 (url "https://github.com/org-roam/org-roam")
23946 (commit (string-append "v" version))))
23947 (file-name (git-file-name name version))
23948 (sha256
23949 (base32 "10s7mcyshgj6yva4k1j086xm61k9zck3r586f1maar5b2z6hwvsa"))))
23950 (build-system emacs-build-system)
23951 (propagated-inputs
23952 `(("emacs-company" ,emacs-company)
23953 ("emacs-dash" ,emacs-dash)
23954 ("emacs-emacsql-sqlite3" ,emacs-emacsql-sqlite3)
23955 ("emacs-f" ,emacs-f)
23956 ("emacs-org-ref" ,emacs-org-ref)
23957 ("emacs-s" ,emacs-s)))
23958 (home-page "https://github.com/org-roam/org-roam/")
23959 (synopsis "Non-hierarchical note-taking with Org mode")
23960 (description "Emacs Org Roam is a solution for taking non-hierarchical
23961 notes with Org mode. Notes are captured without hierarchy and are connected
23962 by tags. Notes can be found and created quickly. Org Roam should also work
23963 as a plug-and-play solution for anyone already using Org mode for their
23964 personal wiki.")
23965 (license license:gpl3+)))
23966
23967 (define-public emacs-org-generate
23968 (package
23969 (name "emacs-org-generate")
23970 (version "1.0.0")
23971 (source (origin
23972 (method git-fetch)
23973 (uri (git-reference
23974 (url "https://github.com/conao3/org-generate.el.git")
23975 (commit (string-append "v" version))))
23976 (file-name (git-file-name name version))
23977 (sha256
23978 (base32
23979 "0z2frp5mn3lp2xskwanw2rncrwa50x3aphy87vfxmhx4fqlqrzy8"))))
23980 (inputs
23981 `(("emacs-cort" ,emacs-cort))) ;tests suite
23982 (propagated-inputs
23983 `(("emacs-mustache" ,emacs-mustache)))
23984 (arguments
23985 `(#:tests? #t
23986 #:test-command '("emacs" "--batch" "--quick"
23987 "--directory=." "--load=org-generate-tests.el"
23988 "--funcall=cort-test-run")))
23989 (build-system emacs-build-system)
23990 (home-page "https://github.com/conao3/org-generate.el")
23991 (synopsis "Generate template files and folders from Org document")
23992 (description "This package allows to generate files and folders from Emacs
23993 org-mode templates.")
23994 (license license:gpl3+)))
23995
23996 (define-public emacs-uml-mode
23997 ;; Package has no release. Version is extracted from "Version:" keyword in
23998 ;; main file.
23999 (let ((commit "4c37ac1c4424b2313cd8f16ba48a98a4cc214200")
24000 (revision "1"))
24001 (package
24002 (name "emacs-uml-mode")
24003 (version (git-version "0.0.4" revision commit))
24004 (source
24005 (origin
24006 (method git-fetch)
24007 (uri (git-reference
24008 (url "https://github.com/ianxm/emacs-uml")
24009 (commit commit)))
24010 (file-name (git-file-name name version))
24011 (sha256
24012 (base32 "145i4srnfvd1vyibri2a1l6p9mbjvkkwlrpi41134pbarqffcnka"))))
24013 (build-system emacs-build-system)
24014 (home-page "https://github.com/ianxm/emacs-uml")
24015 (synopsis "Minor mode for editing ASCII UML sequence diagrams")
24016 (description "Emacs UML mode is a minor mode that makes it easy to build
24017 ASCII UML sequence diagrams in Emacs, which can be embedded in source code,
24018 comments or emails.")
24019 (license license:gpl3+))))
24020
24021 (define-public emacs-trashed
24022 (package
24023 (name "emacs-trashed")
24024 (version "1.9.0")
24025 (source
24026 (origin
24027 (method git-fetch)
24028 (uri (git-reference
24029 (url "https://github.com/shingo256/trashed/")
24030 (commit version)))
24031 (file-name (git-file-name name version))
24032 (sha256
24033 (base32 "13grdi12iwlw4fiphdfmvclfpbr6ajlgfbfyi7v41z8k3rxz4ypz"))))
24034 (build-system emacs-build-system)
24035 (home-page "https://github.com/shingo256/trashed/")
24036 (synopsis "View and edit system trash can in Emacs")
24037 (description "Open, view, browse, restore or permanently delete trashed
24038 files or directories in trash can with Dired-like look and feel. The trash
24039 can has to be compliant with freedesktop.org. In Emacs, you can trash files by
24040 deleting them with @code{(setq delete-by-moving-to-trash t)}. This package
24041 provides a simple but convenient user interface to manage those trashed
24042 files.")
24043 (license license:gpl3+)))
24044
24045 (define-public emacs-plantuml-mode
24046 (package
24047 (name "emacs-plantuml-mode")
24048 (version "1.4.1")
24049 (source
24050 (origin
24051 (method git-fetch)
24052 (uri (git-reference
24053 (url "https://github.com/skuro/plantuml-mode")
24054 (commit (string-append "v" version))))
24055 (file-name (git-file-name name version))
24056 (sha256
24057 (base32 "0yp41d2dmf3sx7qnl5x0zdjcr9y71b2wwc9m0q31v22xqn938ipc"))))
24058 (arguments
24059 '(#:phases
24060 (modify-phases %standard-phases
24061 (add-after 'unpack 'use-local-plantuml
24062 (lambda* (#:key inputs #:allow-other-keys)
24063 (let ((plantuml (assoc-ref inputs "plantuml"))
24064 (file "plantuml-mode.el"))
24065 (chmod file #o644)
24066 (emacs-substitute-variables file
24067 ("plantuml-jar-path"
24068 (string-append plantuml "/share/java/plantuml.jar"))
24069 ("plantuml-executable-path"
24070 (string-append plantuml "/bin/plantuml"))
24071 ("plantuml-server-url" 'nil)
24072 ("plantuml-default-exec-mode" ''executable))
24073 (emacs-batch-edit-file file
24074 `(progn (progn
24075 (goto-char (point-min))
24076 (re-search-forward "(defun plantuml-download-jar")
24077 (beginning-of-line)
24078 (kill-sexp))
24079 (basic-save-buffer)))
24080 #t))))))
24081 (inputs
24082 `(("plantuml" ,plantuml)))
24083 (propagated-inputs
24084 `(("emacs-dash" ,emacs-dash)))
24085 (build-system emacs-build-system)
24086 (home-page "https://github.com/skuro/plantuml-mode")
24087 (synopsis "Major mode for editing PlantUML sources")
24088 (description "This package provides a major mode for editing PlantUML
24089 sources. It features syntax highlighting, autocompletion, preview of buffer
24090 or region and use of locally installed binaries.")
24091 (license license:gpl3+)))
24092
24093 (define-public emacs-shell-pop
24094 (let ((commit "4b4394037940a890a313d715d203d9ead2d156a6")
24095 (revision "0"))
24096 (package
24097 (name "emacs-shell-pop")
24098 (version (git-version "0.64" revision commit))
24099 (source
24100 (origin
24101 (method git-fetch)
24102 (uri (git-reference
24103 (url "https://github.com/kyagi/shell-pop-el")
24104 (commit commit)))
24105 (file-name (git-file-name name version))
24106 (sha256
24107 (base32 "0s77n6b9iw1x3dv91ybkpgy3zvqd12si7zw3lg0m2b6j1akrawsg"))))
24108 (build-system emacs-build-system)
24109 (home-page "https://github.com/kyagi/shell-pop-el")
24110 (synopsis "Utility which helps with pop up shell buffer")
24111 (description
24112 "This Emacs utility helps you pop up and pop out shell buffer window
24113 easily. Four pre-set options are: @samp{shell}, @samp{terminal},
24114 @samp{ansi-term}, and @samp{eshell}. You can also set your custom shell if
24115 you use some other configuration.")
24116 (license license:gpl3+))))
24117
24118 (define-public emacs-extmap
24119 (package
24120 (name "emacs-extmap")
24121 (version "1.1.1")
24122 (source
24123 (origin
24124 (method git-fetch)
24125 (uri (git-reference
24126 (url "https://github.com/doublep/extmap")
24127 (commit version)))
24128 (file-name (git-file-name name version))
24129 (sha256
24130 (base32
24131 "09kia3mr4si8kn46kyiza9nl669b22vmgc70ng3mqz742lph5siw"))))
24132 (build-system emacs-build-system)
24133 (home-page "https://github.com/doublep/extmap")
24134 (synopsis "Externally-stored constant mapping for Emacs Lisp")
24135 (description "A very simple package that lets you build a
24136 read-only, constant database that maps Emacs Lisp symbols to
24137 arbitrary Emacs Lisp objects.")
24138 (license license:gpl3+)))
24139
24140 (define-public emacs-csound-mode
24141 (package
24142 (name "emacs-csound-mode")
24143 (version "0.2.1")
24144 (source
24145 (origin
24146 (method git-fetch)
24147 (uri (git-reference
24148 (url "https://github.com/hlolli/csound-mode")
24149 (commit version)))
24150 (file-name (git-file-name name version))
24151 (sha256
24152 (base32
24153 "1c88ak0jaj51fwiqniqxd7xyk23wjl9m57znzm8j267ld8g12znp"))))
24154 (build-system emacs-build-system)
24155 (arguments
24156 `(#:phases
24157 (modify-phases %standard-phases
24158 (add-after 'unpack 'disable-breaking-compilation
24159 (lambda _
24160 (for-each (lambda (file)
24161 (chmod file #o600) ; needed to write changes.
24162 (emacs-batch-disable-compilation file))
24163 '("csound-font-lock.el"))
24164 #t)))))
24165 (inputs
24166 `(("emacs-highlight" ,emacs-highlight)
24167 ("emacs-multi" ,emacs-multi)
24168 ("emacs-shut-up" ,emacs-shut-up)))
24169 (home-page "https://github.com/hlolli/csound-mode")
24170 (synopsis "Emacs major mode for coding in CSound")
24171 (description "Provides both a basic major mode for editing
24172 CSound files, as well as a REPL for fast feedback when composing
24173 and sonud-designing.")
24174 (license license:gpl3+)))
24175
24176 (define-public emacs-multi
24177 (package
24178 (name "emacs-multi")
24179 (version "2.0.1")
24180 (source
24181 (origin
24182 (method git-fetch)
24183 (uri (git-reference
24184 (url "https://github.com/kurisuwhyte/emacs-multi")
24185 (commit (string-append "v" version))))
24186 (file-name (git-file-name name version))
24187 (sha256
24188 (base32
24189 "11zabs7qpdhri6n90ck7pgwcbz46d813nyl73h5m1i8jvz1wzx7v"))))
24190 (build-system emacs-build-system)
24191 (home-page "https://github.com/kurisuwhyte/emacs-multi")
24192 (synopsis "Clojure-style multi-methods for Emacs Lisp")
24193 (description "Provides Emacs Lisp with a form of polymorphism
24194 by way of predicate dispatching. Methods consist of a dispatch
24195 function, and a series of branches. The dispatch function is
24196 applied to the arguments, and the result value is checked against
24197 the expectations of each branch to define which one to invoke.")
24198 (license license:expat)))
24199
24200 (define-public emacs-highlight
24201 (let ((commit "9258a2b8362d737115cbd87618f947eadb140411")
24202 (revision "1"))
24203 (package
24204 (name "emacs-highlight")
24205 (version "0.0.0")
24206 (source
24207 (origin
24208 (method git-fetch)
24209 (uri (git-reference
24210 (url "https://github.com/emacsmirror/highlight/")
24211 (commit commit)))
24212 (file-name (git-file-name name commit))
24213 (sha256
24214 (base32
24215 "0pbqzgbfkm8smi23j94hirxh2r1yc0ipyjbbv1y906br6bx5c1a8"))))
24216 (build-system emacs-build-system)
24217 (home-page "https://github.com/emacsmirror/highlight")
24218 (synopsis "Highlighting commands for GNU Emacs")
24219 (description "This library adds the possibility for ad-hoc
24220 applying highlighting to any face in GNU Emacs. The functionality
24221 of this library depends on overlays, which by default are not
24222 picked up when copy-pasting text from buffer to buffer.")
24223 (license license:gpl2+))))