gnu: emacs-transient: All phases return #t.
[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 "cbe91e148cac1ee8e223874dc956ed4cf607f046")
1197 (revision "1"))
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 "1mm4icrwx4mscp7kbbmlc34995r164dhrfczn5ybkyxjzzf76jn1"))))
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 "0")
1744 (commit "ef4d33debe224c6ba37e51a29b9dc8b74f20f1c2"))
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 "1232y2k4l3bsz90pgis78zxmrw7jv09dfaip21yc1w4vpxfyr384"))))
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 (package
2570 (name "emacs-guix")
2571 (version "0.5.2")
2572 (source (origin
2573 (method url-fetch)
2574 (uri (string-append "https://emacs-guix.gitlab.io/website/"
2575 "releases/emacs-guix-" version ".tar.gz"))
2576 (sha256
2577 (base32
2578 "0yz64c0z4ygi2k4af18k4r1ncgys18jb8icywkp2g5pgmpn5l7ps"))
2579 (modules '((guix build utils)))
2580 (snippet
2581 '(begin
2582 ;; Add support for Guile 3.0. Remove for versions > 0.5.2.
2583 (substitute* "configure"
2584 (("\"2\\.2 2\\.0\"")
2585 "\"3.0 2.2 2.0\""))
2586 #t))))
2587 (build-system gnu-build-system)
2588 (native-inputs
2589 `(("pkg-config" ,pkg-config)
2590 ("emacs" ,emacs-minimal)))
2591 (inputs
2592 `(("guile" ,@(assoc-ref (package-native-inputs guix) "guile"))
2593 ("guix" ,guix)))
2594 (propagated-inputs
2595 `(("geiser" ,emacs-geiser)
2596 ("guile-gcrypt" ,guile-gcrypt)
2597 ("dash" ,emacs-dash)
2598 ("bui" ,emacs-bui)
2599 ("edit-indirect" ,emacs-edit-indirect)
2600 ("magit-popup" ,emacs-magit-popup)))
2601 (home-page "https://emacs-guix.gitlab.io/website/")
2602 (synopsis "Emacs interface for GNU Guix")
2603 (description
2604 "Emacs-Guix provides a visual interface, tools and features for the GNU
2605 Guix package manager. Particularly, it allows you to do various package
2606 management tasks from Emacs. To begin with, run @code{M-x guix-about} or
2607 @code{M-x guix-help} command.")
2608 (license license:gpl3+)))
2609
2610 (define-public emacs-build-farm
2611 (package
2612 (name "emacs-build-farm")
2613 (version "0.2.2")
2614 (source (origin
2615 (method git-fetch)
2616 (uri (git-reference
2617 (url "https://notabug.org/alezost/emacs-build-farm.git")
2618 (commit (string-append "v" version))))
2619 (file-name (git-file-name name version))
2620 (sha256
2621 (base32
2622 "0i0bwbav5861j2y15j9nd5m9rdqg9q97zgcbld8pivr9nyxy63lz"))))
2623 (build-system emacs-build-system)
2624 (propagated-inputs
2625 `(("bui" ,emacs-bui)
2626 ("magit-popup" ,emacs-magit-popup)))
2627 (home-page "https://notabug.org/alezost/emacs-build-farm")
2628 (synopsis "Emacs interface for Hydra and Cuirass build farms")
2629 (description
2630 "This Emacs package provides an interface for Hydra and
2631 Cuirass (build farms used by Nix and Guix). It allows you to look at
2632 various data related to the build farm projects, jobsets, builds and
2633 evaluations. The entry point is @code{M-x build-farm} command.")
2634 (license license:gpl3+)))
2635
2636 (define-public emacs-d-mode
2637 (package
2638 (name "emacs-d-mode")
2639 (version "2.0.10")
2640 (source
2641 (origin
2642 (method git-fetch)
2643 (uri (git-reference
2644 (url "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode")
2645 (commit version)))
2646 (file-name (git-file-name name version))
2647 (sha256
2648 (base32 "0915kb9jcaixgindhj85fmykkhvj31ckp1yg6746fznwdgfrlifv"))))
2649 (build-system emacs-build-system)
2650 (propagated-inputs
2651 `(("emacs-undercover" ,emacs-undercover)))
2652 (home-page "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode")
2653 (synopsis "Emacs major mode for editing D code")
2654 (description "This package provides an Emacs major mode for highlighting
2655 code written in the D programming language. This mode is currently known to
2656 work with Emacs 24 and 25.")
2657 (license license:gpl2+)))
2658
2659 (define-public emacs-extempore-mode
2660 ;; Use the latest commit at time of packaging. There are no releases or tags.
2661 (let ((commit "09518ae6650d7be33a4633a4c0f31b7130d04c6e")
2662 (revision "1"))
2663 (package
2664 (name "emacs-extempore-mode")
2665 (version (git-version "0.0.0" revision commit))
2666 (source
2667 (origin
2668 (method git-fetch)
2669 (uri (git-reference
2670 (url "https://github.com/extemporelang/extempore-emacs-mode")
2671 (commit commit)))
2672 (file-name (git-file-name name version))
2673 (sha256
2674 (base32 "0hfza9lzdsz94gxhmzyp9fwviscv19rmnjgd0q613faayn11sjsp"))))
2675 (build-system emacs-build-system)
2676 (home-page "https://github.com/extemporelang/extempore-emacs-mode")
2677 (synopsis "Emacs major mode for Extempore source files")
2678 (description
2679 "This package provides a major mode for editing Extempore code. It can
2680 create an Extempore REPL, connect the current @code{extempore-mode} buffer to a
2681 running Extempore process, and more.")
2682 (license license:bsd-2))))
2683
2684 (define-public emacs-kakoune
2685 ;; Package has no release. Version is extracted from "Version:" keyword in
2686 ;; main file.
2687 (let ((commit "d73d14e69ea38076af50cc69f846808383ff539d")
2688 (revision "0"))
2689 (package
2690 (name "emacs-kakoune")
2691 (version (git-version "0.1" revision commit))
2692 (source
2693 (origin
2694 (method git-fetch)
2695 (uri (git-reference
2696 (url "https://github.com/jmorag/kakoune.el")
2697 (commit commit)))
2698 (file-name (git-file-name name version))
2699 (sha256
2700 (base32 "0nk6jdy1y5mc3ryd0smiqghrk6iv34d5grc7f7migmshlbq0np92"))))
2701 (build-system emacs-build-system)
2702 (propagated-inputs
2703 `(("emacs-expand-region" ,emacs-expand-region)
2704 ("emacs-multiple-cursors" ,emacs-multiple-cursors)
2705 ("emacs-ryo-modal" ,emacs-ryo-modal)))
2706 (home-page "https://github.com/jmorag/kakoune.el")
2707 (synopsis "Emacs simple simulation, but not emulation, of Kakoune")
2708 (description "This package provides many, but not all of the editing
2709 primitives in the Kakoune editor. Unlike Evil mode for Vim, this is a very
2710 shallow emulation, which seeks to do as little work as possible, leveraging
2711 Emacs native editing commmands and the work of other packages wherever
2712 possible.")
2713 (license license:expat))))
2714
2715 (define-public emacs-keyfreq
2716 (package
2717 (name "emacs-keyfreq")
2718 (version "20160516.716")
2719 (source
2720 (origin
2721 (method url-fetch)
2722 (uri (string-append "http://melpa.org/packages/keyfreq-"
2723 version ".el"))
2724 (sha256
2725 (base32
2726 "008hd7d06qskc3mx0bbdgpgy2pwxr8185fzlyqf9qjg49y74p6g8"))))
2727 (build-system emacs-build-system)
2728 (home-page "https://github.com/dacap/keyfreq")
2729 (synopsis "Track Emacs command frequencies")
2730 (description "@code{emacs-keyfeq} tracks and shows how many times you used
2731 a command.")
2732 (license license:gpl3+)))
2733
2734 (define-public emacs-olivetti
2735 (package
2736 (name "emacs-olivetti")
2737 (version "1.8.1")
2738 (source (origin
2739 (method git-fetch)
2740 (uri (git-reference
2741 (url "https://github.com/rnkn/olivetti")
2742 (commit (string-append "v" version))))
2743 (file-name (git-file-name name version))
2744 (sha256
2745 (base32
2746 "1fbj9s49y5yx5i429awv9rybacfgvhwp7v5h0zw67bpgx4qs44pa"))))
2747 (build-system emacs-build-system)
2748 (home-page "https://github.com/rnkn/olivetti")
2749 (synopsis "Emacs minor mode for a nice writing environment")
2750 (description "This package provides an Emacs minor mode that puts writing
2751 in the center.")
2752 (license license:gpl3+)))
2753
2754 (define-public emacs-undo-tree
2755 (package
2756 (name "emacs-undo-tree")
2757 (version "0.7.4")
2758 (source
2759 (origin
2760 (method url-fetch)
2761 (uri (string-append "https://elpa.gnu.org/packages/"
2762 "undo-tree-" version ".el"))
2763 (sha256
2764 (base32 "018ixl802f076sfyf4gkacpgrdpybin88jd8vq9zgyvc6x2dalfa"))))
2765 (build-system emacs-build-system)
2766 (home-page "http://www.dr-qubit.org/emacs.php")
2767 (synopsis "Treat undo history as a tree")
2768 (description
2769 "Tree-like interface to Emacs undo system, providing
2770 graphical tree presentation of all previous states of buffer that
2771 allows easily move between them.")
2772 (license license:gpl3+)))
2773
2774 (define-public emacs-s
2775 (package
2776 (name "emacs-s")
2777 (version "1.12.0")
2778 (source
2779 (origin
2780 (method git-fetch)
2781 (uri (git-reference
2782 (url "https://github.com/magnars/s.el")
2783 (commit version)))
2784 (file-name (git-file-name name version))
2785 (sha256
2786 (base32 "1g8mqd13llj007al4nlxxx4z2lcsg3wk970mgjn0avwrhjjgdmmv"))))
2787 (build-system emacs-build-system)
2788 (arguments
2789 `(#:tests? #t
2790 #:emacs ,emacs ; FIXME: tests fail with emacs-minimal
2791 #:test-command '("./run-tests.sh")))
2792 (home-page "https://github.com/magnars/s.el")
2793 (synopsis "Emacs string manipulation library")
2794 (description "This package provides an Emacs library for manipulating
2795 strings.")
2796 (license license:gpl3+)))
2797
2798 (define-public emacs-symon
2799 (package
2800 (name "emacs-symon")
2801 (version "20160630")
2802 (source
2803 (origin
2804 (method git-fetch)
2805 (uri (git-reference
2806 (url "https://github.com/zk-phi/symon")
2807 (commit version)))
2808 (file-name (git-file-name name version))
2809 (sha256
2810 (base32 "1q7di9s8k710nx98wnqnbkkhdimrn0jf6z4xkm4c78l6s5idjwlz"))))
2811 (build-system emacs-build-system)
2812 (home-page "https://github.com/zk-phi/symon")
2813 (synopsis "Tiny graphical system monitor")
2814 (description
2815 "Tiny graphical system monitor for the Emacs minibuffer when idle.")
2816 (license license:gpl2+)))
2817
2818 (define-public emacs-sx
2819 (let ((version "20191229")
2820 (revision "0")
2821 (commit "e9d1093c97507a6d7b4f4710ef65200dae725e5f"))
2822 (package
2823 (name "emacs-sx")
2824 (version (git-version version revision commit))
2825 (source
2826 (origin
2827 (method git-fetch)
2828 (uri (git-reference
2829 (url "https://github.com/vermiculus/sx.el")
2830 (commit commit)))
2831 (file-name (git-file-name name version))
2832 (sha256
2833 (base32 "0m90ddwm8j0y6d1ppqhd2gil1107k202blw6mzm5bdambn4nfqkf"))))
2834 (build-system emacs-build-system)
2835 (propagated-inputs
2836 `(("emacs-markdown-mode" ,emacs-markdown-mode)))
2837 (home-page "https://github.com/vermiculus/sx.el")
2838 (synopsis "Emacs StackExchange client")
2839 (description
2840 "Emacs StackExchange client. Ask and answer questions on
2841 Stack Overflow, Super User, and other StackExchange sites.")
2842 (license license:gpl3+))))
2843
2844 (define-public emacs-toml-mode
2845 (let ((version "0.1.3")
2846 (revision "0")
2847 (commit "f6c61817b00f9c4a3cab1bae9c309e0fc45cdd06"))
2848 (package
2849 (name "emacs-toml-mode")
2850 (version (git-version version revision commit))
2851 (source
2852 (origin
2853 (method git-fetch)
2854 (uri (git-reference
2855 (url "https://github.com/dryman/toml-mode.el")
2856 (commit commit)))
2857 (file-name (git-file-name name version))
2858 (sha256
2859 (base32 "05b4ksay85c8y5ncax0qsvnmplwsfiw24z16a58gkarjz938hb57"))))
2860 (build-system emacs-build-system)
2861 (home-page "https://github.com/dryman/toml-mode.el")
2862 (synopsis "Emacs major mode for editing TOML files")
2863 (description
2864 ;; XXX: Ideally we'd use @acronym for "TOML", but Guile's Texinfo
2865 ;; parser does not currently support @comma{}, making it impossible
2866 ;; to use commas in the @acronym arguments.
2867 "This package provides a major mode for editing files in @dfn{TOML}
2868 (Tom's Obvious, Minimal Language) data format.")
2869 (license license:gpl3+))))
2870
2871 (define-public emacs-twittering-mode
2872 (package
2873 (name "emacs-twittering-mode")
2874 (version "3.1.0")
2875 (source
2876 (origin
2877 (method url-fetch)
2878 (uri (string-append "mirror://sourceforge/twmode"
2879 "/twittering-mode-" version
2880 "/twittering-mode-" version ".tar.xz"))
2881 (sha256
2882 (base32 "02imis1gxz90lah0b5n37j2hlsaw5igss11d85vpsm5d1bgw8j28"))))
2883 (build-system emacs-build-system)
2884 (home-page "http://twmode.sourceforge.net")
2885 (synopsis "Emacs major mode for Twitter")
2886 (description
2887 "Twittering mode is an Emacs major mode for Twitter.
2888 You can check timelines, tweet, mark posts as favorites and so on with
2889 Emacs.")
2890 (license license:gpl2+)))
2891
2892 (define-public emacs-f
2893 (package
2894 (name "emacs-f")
2895 (version "0.20.0")
2896 (source (origin
2897 (method git-fetch)
2898 (uri (git-reference
2899 (url "https://github.com/rejeep/f.el")
2900 (commit (string-append "v" version))))
2901 (file-name (git-file-name name version))
2902 (sha256
2903 (base32
2904 "1a47xk3yp1rp17fqg7ldl3d3fb888h0fz3sysqfdz1bfdgs8a9bk"))))
2905 (build-system emacs-build-system)
2906 (propagated-inputs
2907 `(("emacs-s" ,emacs-s)
2908 ("emacs-dash" ,emacs-dash)))
2909 (home-page "https://github.com/rejeep/f.el")
2910 (synopsis "Emacs API for working with files and directories")
2911 (description "This package provides an Emacs library for working with
2912 files and directories.")
2913 (license license:gpl3+)))
2914
2915 (define-public emacs-fountain-mode
2916 (package
2917 (name "emacs-fountain-mode")
2918 (version "3.1.0")
2919 (source
2920 (origin
2921 (method git-fetch)
2922 (uri (git-reference
2923 (url "https://github.com/rnkn/fountain-mode")
2924 (commit (string-append "v" version))))
2925 (file-name (git-file-name name version))
2926 (sha256
2927 (base32 "08giwg0jwk8zzj2i4cm08322qr6znrnv9a49za7c6j47bykpwj6s"))))
2928 (build-system emacs-build-system)
2929 (home-page "https://github.com/rnkn/fountain-mode")
2930 (synopsis "Major mode for screenwriting in Fountain markup")
2931 (description "Fountain Mode is a scriptwriting program for GNU Emacs
2932 using the Fountain plain text markup format.")
2933 (license license:gpl3+)))
2934
2935 (define-public emacs-fringe-helper
2936 (let ((commit "ef4a9c023bae18ec1ddd7265f1f2d6d2e775efdd")
2937 (revision "1"))
2938 (package
2939 (name "emacs-fringe-helper")
2940 (version (git-version "1.0.1" revision commit))
2941 (source
2942 (origin
2943 (method git-fetch)
2944 (uri (git-reference
2945 (url "https://github.com/nschum/fringe-helper.el")
2946 (commit commit)))
2947 (file-name (git-file-name name version))
2948 (sha256
2949 (base32 "0ra9rc53l1gvkqank8apasl3r7wz2yfjrcvmfk3wpxhh24ppxv9d"))))
2950 (build-system emacs-build-system)
2951 (arguments
2952 `(#:tests? #t
2953 #:test-command '("emacs" "--batch"
2954 "-l" "tests.el"
2955 "-f" "ert-run-tests-batch-and-exit")))
2956 (home-page "https://github.com/nschum/fringe-helper.el")
2957 (synopsis "Helper functions for fringe bitmaps")
2958 (description
2959 "This package allows fringe bitmaps to be defined with a visual string
2960 representation.")
2961 (license license:gpl2+))))
2962
2963 (define-public emacs-git-gutter
2964 (package
2965 (name "emacs-git-gutter")
2966 (version "0.90")
2967 (source
2968 (origin
2969 (method git-fetch)
2970 (uri (git-reference
2971 (url "https://github.com/syohex/emacs-git-gutter")
2972 (commit version)))
2973 (file-name (git-file-name name version))
2974 (sha256
2975 (base32 "1abagq0psip7cgsqbfjv72qy60ywsny0ibsfcn74ldj6a9v17mz5"))))
2976 (build-system emacs-build-system)
2977 (home-page "https://github.com/syohex/emacs-git-gutter")
2978 (synopsis "See and manage hunks of text in a version control system")
2979 (description
2980 "This package is an Emacs minor mode for displaying and interacting with
2981 hunks of text managed in a version control system. Added modified and deleted
2982 areas can be indicated with symbols on the edge of the buffer, and commands
2983 can be used to move between and perform actions on these hunks.
2984
2985 Git, Mercurial, Subversion and Bazaar are supported, and many parts of the
2986 display and behaviour is easily customisable.")
2987 (license license:gpl3+)))
2988
2989 (define-public emacs-git-gutter-fringe
2990 (let ((commit "16226caab44174301f1659f7bf8cc67a76153445")
2991 (revision "1"))
2992 (package
2993 (name "emacs-git-gutter-fringe")
2994 (version (git-version "0.23" revision commit))
2995 (source
2996 (origin
2997 (method git-fetch)
2998 (uri (git-reference
2999 (url "https://github.com/syohex/git-gutter-fringe")
3000 (commit commit)))
3001 (file-name (git-file-name name version))
3002 (sha256
3003 (base32 "1y77gjl0yznamdj0f55d418zb75k22izisjg7ikvrfsl2yfqf3pm"))))
3004 (build-system emacs-build-system)
3005 (propagated-inputs
3006 `(("emacs-git-gutter" ,emacs-git-gutter)
3007 ("emacs-fringe-helper" ,emacs-fringe-helper)))
3008 (home-page "https://github.com/syohex/git-gutter-fringe")
3009 (synopsis "See and manage hunks of text in a version control system")
3010 (description
3011 "This package extends @code{git-gutter} to use the fringe area of a
3012 window.")
3013 (license license:gpl3+))))
3014
3015 (define-public emacs-git-link
3016 (package
3017 (name "emacs-git-link")
3018 (version "0.7.5")
3019 (source
3020 (origin
3021 (method git-fetch)
3022 (uri (git-reference
3023 (url "https://github.com/sshaw/git-link")
3024 (commit (string-append "v" version))))
3025 (file-name (git-file-name name version))
3026 (sha256
3027 (base32 "04xa6lp8wkjb6zs096bf4sz124grcjj15xv1h009bmn2j95rggj6"))))
3028 (build-system emacs-build-system)
3029 (arguments
3030 `(#:tests? #t
3031 #:test-command '("make" "test")))
3032 (home-page "https://github.com/sshaw/git-link")
3033 (synopsis "Create links for files and commits in GitHub/GitLab/etc. repos")
3034 (description
3035 "@code{git-link} returns the URL for the current buffer's file location
3036 at the current line number or active region. @code{git-link-commit} returns
3037 the URL for a commit. URLs are added to the kill ring.")
3038 (license license:gpl3+)))
3039
3040 (define-public emacs-apheleia
3041 (package
3042 (name "emacs-apheleia")
3043 (version "1.0")
3044 (source
3045 (origin
3046 (method git-fetch)
3047 (uri (git-reference
3048 (url "https://github.com/raxod502/apheleia")
3049 (commit (string-append "v" version))))
3050 (file-name (git-file-name name version))
3051 (sha256
3052 (base32 "04pls7zahy4jfkikv6fvd9vfpm4glhyanmmkx79hgi9pwdv966rf"))))
3053 (build-system emacs-build-system)
3054 (home-page "https://github.com/raxod502/apheleia")
3055 (synopsis "Reformat buffer stably")
3056 (description
3057 "This package allows for a buffer to be reformatted without moving point,
3058 so that running a formatting tool like @code{Prettier} or @code{Black} upon
3059 saving won't move point back to the beginning of the buffer.")
3060 (license license:gpl3+)))
3061
3062 (define-public emacs-git-timemachine
3063 (package
3064 (name "emacs-git-timemachine")
3065 (version "4.11")
3066 (source
3067 (origin
3068 (method git-fetch)
3069 (uri (git-reference
3070 (url "https://gitlab.com/pidu/git-timemachine.git")
3071 (commit version)))
3072 (file-name (git-file-name name version))
3073 (sha256
3074 (base32
3075 "1pz4l1xnq6s67w5yq9107vm8dg7rqf8n9dmbn90jys97c722g70n"))))
3076 (build-system emacs-build-system)
3077 (propagated-inputs
3078 `(("emacs-transient" ,emacs-transient)))
3079 (home-page "https://gitlab.com/pidu/git-timemachine")
3080 (synopsis "Step through historic versions of Git-controlled files")
3081 (description "This package enables you to step through historic versions
3082 of files under Git version control from within Emacs.")
3083 (license license:gpl3+)))
3084
3085 (define-public emacs-minitest
3086 (let ((commit "1aadb7865c1dc69c201cecee275751ecec33a182")
3087 (revision "1"))
3088 (package
3089 (name "emacs-minitest")
3090 (version (git-version "0.8.0" revision commit))
3091 (source (origin
3092 (method git-fetch)
3093 (uri (git-reference
3094 (url "https://github.com/arthurnn/minitest-emacs")
3095 (commit commit)))
3096 (file-name (git-file-name name commit))
3097 (sha256
3098 (base32
3099 "1l18zqpdzbnqj2qawq8hj7z7pl8hr8z9d8ihy8jaiqma915hmhj1"))))
3100 (build-system emacs-build-system)
3101 (arguments
3102 '(#:include (cons "^snippets\\/minitest-mode\\/" %default-include)
3103 #:exclude (delete "^[^/]*tests?\\.el$" %default-exclude)))
3104 (propagated-inputs
3105 `(("emacs-dash" ,emacs-dash)
3106 ("emacs-f" ,emacs-f)))
3107 (home-page "https://github.com/arthurnn/minitest-emacs")
3108 (synopsis "Emacs minitest mode")
3109 (description
3110 "The minitest mode provides commands to run the tests for the current
3111 file or line, as well as rerunning the previous tests, or all the tests for a
3112 project.
3113
3114 This package also includes relevant snippets for yasnippet.")
3115 (license license:expat))))
3116
3117 (define-public emacs-el-mock
3118 (package
3119 (name "emacs-el-mock")
3120 (version "1.25.1")
3121 (source
3122 (origin
3123 (method git-fetch)
3124 (uri (git-reference
3125 (url "https://github.com/rejeep/el-mock.el")
3126 (commit (string-append "v" version))))
3127 (file-name (git-file-name name version))
3128 (sha256
3129 (base32 "13mv1rhgkwiww2wh5w926jz7idppp492wir1vdl245c5x50dh4f7"))))
3130 (build-system emacs-build-system)
3131 (home-page "https://github.com/rejeep/el-mock.el")
3132 (synopsis "Tiny mock and stub framework in Emacs Lisp")
3133 (description
3134 "Emacs Lisp Mock is a library for mocking and stubbing using readable
3135 syntax. Most commonly Emacs Lisp Mock is used in conjunction with Emacs Lisp
3136 Expectations, but it can be used in other contexts.")
3137 (license license:gpl3+)))
3138
3139 (define-public emacs-espuds
3140 (package
3141 (name "emacs-espuds")
3142 (version "0.3.3")
3143 (source
3144 (origin
3145 (method git-fetch)
3146 (uri (git-reference
3147 (url "https://github.com/ecukes/espuds")
3148 (commit (string-append "v" version))))
3149 (file-name (git-file-name name version))
3150 (sha256
3151 (base32 "16r4j27j9yfdiy841w9q5ykkc6n3wrm7hvfacagb32mydk821ijg"))))
3152 (build-system emacs-build-system)
3153 (propagated-inputs
3154 `(("emacs-s" ,emacs-s)
3155 ("emacs-dash" ,emacs-dash)
3156 ("emacs-f" ,emacs-f)))
3157 (home-page "https://github.com/ecukes/espuds")
3158 (synopsis "Common step definitions for Ecukes")
3159 (description "Espuds is a collection of the most commonly used step
3160 definitions for testing with the Ecukes framework.")
3161 (license license:gpl3+)))
3162
3163 (define-public emacs-spark
3164 (let ((version "20160503") ; no proper tag, use date of commit
3165 (commit "0bf148c3ede3b31d56fd75f347cdd0b0eae60025")
3166 (revision "1"))
3167 (package
3168 (name "emacs-spark")
3169 (version (git-version version revision commit))
3170 (source
3171 (origin
3172 (method git-fetch)
3173 (uri (git-reference
3174 (url "https://github.com/alvinfrancis/spark")
3175 (commit commit)))
3176 (file-name (git-file-name name version))
3177 (sha256
3178 (base32
3179 "1ykqr86j17mi95s08d9fp02d7ych1331b04dcqxzxnmpkhwngyj1"))))
3180 (build-system emacs-build-system)
3181 (home-page "https://github.com/alvinfrancis/spark")
3182 (synopsis "Sparkline generation library for Emacs Lisp")
3183 (description "@code{emacs-spark} is a sparkline generation library for
3184 Emacs Lisp. It generates a sparkline string given a list of numbers. It is a
3185 port of @code{cl-spark} to Emacs Lisp.")
3186 (license license:expat))))
3187
3188 (define-public emacs-es-mode
3189 (package
3190 (name "emacs-es-mode")
3191 (version "4.3.0")
3192 (source
3193 (origin
3194 (method git-fetch)
3195 (uri (git-reference
3196 (url "https://github.com/dakrone/es-mode")
3197 (commit version)))
3198 (file-name (git-file-name name version))
3199 (sha256
3200 (base32 "1qhfnd5anp5qrmravv7ks5ix763xnki2f5jwcyj70qyxwr0l60cg"))))
3201 (build-system emacs-build-system)
3202 (propagated-inputs
3203 ;; The version of org in Emacs 24.5 is not sufficient, and causes tables
3204 ;; to be rendered incorrectly
3205 `(("emacs-dash" ,emacs-dash)
3206 ("emacs-org" ,emacs-org)
3207 ("emacs-spark" ,emacs-spark)))
3208 (home-page "https://github.com/dakrone/es-mode")
3209 (synopsis "Major mode for editing Elasticsearch queries")
3210 (description "@code{es-mode} includes highlighting, completion and
3211 indentation support for Elasticsearch queries. Also supported are
3212 @code{es-mode} blocks in @code{org-mode}, for which the results of queries can
3213 be processed through @code{jq}, or in the case of aggregations, can be
3214 rendered in to a table. In addition, there is an @code{es-command-center}
3215 mode, which displays information about Elasticsearch clusters.")
3216 (license license:gpl3+)))
3217
3218 (define-public emacs-expand-region
3219 (package
3220 (name "emacs-expand-region")
3221 (version "0.11.0")
3222 (source
3223 (origin
3224 (method git-fetch)
3225 (uri (git-reference
3226 (url "https://github.com/magnars/expand-region.el")
3227 (commit version)))
3228 (file-name (git-file-name name version))
3229 (sha256
3230 (base32 "0h40dhc3kn8fq86xnwi5lz7ql8my8737y7wkqr897p15y90swr35"))))
3231 (build-system emacs-build-system)
3232 (home-page "https://github.com/magnars/expand-region.el")
3233 (synopsis "Increase selected region by semantic units")
3234 (description
3235 "Expand region increases the selected region by semantic units. Just
3236 keep pressing the key until it selects what you want. There's also
3237 @code{er/contract-region} if you expand too far.")
3238 (license license:gpl3+)))
3239
3240 (define-public emacs-fill-column-indicator
3241 (package
3242 (name "emacs-fill-column-indicator")
3243 (version "1.90")
3244 (source
3245 (origin
3246 (method git-fetch)
3247 (uri (git-reference
3248 (url "https://github.com/alpaker/Fill-Column-Indicator")
3249 (commit version)))
3250 (file-name (git-file-name name version))
3251 (sha256
3252 (base32 "0snjznxdwwfdgccdcvrnk467416r244r2r5qcm2sga8l0ha9gw9z"))))
3253 (build-system emacs-build-system)
3254 (home-page "https://www.emacswiki.org/emacs/FillColumnIndicator")
3255 (synopsis "Graphically indicate the fill column")
3256 (description
3257 "Fill-column-indicator graphically indicates the location of the fill
3258 column by drawing a thin line down the length of the editing window.")
3259 (license license:gpl3+)))
3260
3261 (define-public emacs-grep-a-lot
3262 (package
3263 (name "emacs-grep-a-lot")
3264 (version "1.0.7")
3265 (source
3266 (origin
3267 (method git-fetch)
3268 (uri (git-reference
3269 (url "https://github.com/ZungBang/emacs-grep-a-lot")
3270 (commit "9f9f645b9e308a0d887b66864ff97d0fca1ba4ad")))
3271 (file-name (git-file-name name version))
3272 (sha256
3273 (base32 "1f8262mrlinzgnn4m49hbj1hm3c1mvzza24py4b37sasn49546lw"))))
3274 (build-system emacs-build-system)
3275 (home-page "https://github.com/ZungBang/emacs-grep-a-lot")
3276 (synopsis "Enables multiple grep buffers in Emacs")
3277 (description
3278 "This Emacs package allows managing multiple grep buffers.")
3279 (license license:gpl3+)))
3280
3281 (define-public emacs-fd
3282 (package
3283 (name "emacs-fd")
3284 (version "0.1.0")
3285 (source (origin
3286 (method git-fetch)
3287 (uri (git-reference
3288 (url "https://github.com/yqrashawn/fd-dired")
3289 (commit version)))
3290 (file-name (git-file-name name version))
3291 (sha256
3292 (base32
3293 "1fas0fpvym2lyzybwm44gly9jz6a2fpp72yxnwfbqqjkfgk9910y"))))
3294 (build-system emacs-build-system)
3295 (home-page "https://github.com/yqrashawn/fd-dired")
3296 (synopsis "Dired-mode interface for fd result")
3297 (description "This package provides a dired-mode interface for fd's
3298 result.")
3299 (license license:gpl3+)))
3300
3301 (define-public emacs-rg
3302 (package
3303 (name "emacs-rg")
3304 (version "1.8.1")
3305 (source
3306 (origin
3307 (method git-fetch)
3308 (uri (git-reference
3309 (url "https://github.com/dajva/rg.el")
3310 (commit version)))
3311 (file-name (git-file-name name version))
3312 (sha256
3313 (base32 "0k7x5z7mh9flwih35cqy8chs54rack3nswdcpw5wcpgv6xim227y"))))
3314 (build-system emacs-build-system)
3315 (arguments
3316 '(#:phases
3317 (modify-phases %standard-phases
3318 (add-after 'unpack 'hardcode-rg-path
3319 ;; Hardcode the path to ripgrep.
3320 (lambda _
3321 (let ((file "rg.el"))
3322 (chmod file #o644)
3323 (emacs-substitute-sexps file
3324 ("(defcustom rg-executable" (which "rg")))))))))
3325 (propagated-inputs
3326 `(("emacs-s" ,emacs-s)
3327 ("emacs-wgrep" ,emacs-wgrep)))
3328 (inputs
3329 `(("ripgrep" ,ripgrep)))
3330 (home-page "https://rgel.readthedocs.io/en/latest/")
3331 (synopsis "Search tool based on @code{ripgrep}")
3332 (description
3333 "@code{rg} is an Emacs search package based on the @code{ripgrep} command
3334 line tool. It allows one to interactively search based on the editing context
3335 then refine or modify the search results.")
3336 (license license:gpl3+)))
3337
3338 (define-public emacs-inf-ruby
3339 (package
3340 (name "emacs-inf-ruby")
3341 (version "2.5.2")
3342 (source
3343 (origin
3344 (method git-fetch)
3345 (uri (git-reference
3346 (url "https://github.com/nonsequitur/inf-ruby")
3347 (commit version)))
3348 (file-name (git-file-name name version))
3349 (sha256
3350 (base32 "0a1hhvfbl6mq8rjsi77fg9fh5a91hi5scjrg9rjqc5ffbql67y0v"))))
3351 (build-system emacs-build-system)
3352 (home-page "https://github.com/nonsequitur/inf-ruby")
3353 (synopsis "Provides a REPL buffer connected to a Ruby subprocess in Emacs")
3354 (description
3355 "@code{inf-ruby} provides a Read Eval Print Loop (REPL) buffer, allowing
3356 for easy interaction with a ruby subprocess. Features include support for
3357 detecting specific uses of Ruby, e.g. when using rails, and using a
3358 appropriate console.")
3359 (license license:gpl3+)))
3360
3361 (define-public emacs-znc
3362 (package
3363 (name "emacs-znc")
3364 (version "0.0.2")
3365 (source
3366 (origin
3367 (method url-fetch)
3368 (uri (string-append "https://marmalade-repo.org/packages/znc-"
3369 version ".el"))
3370 (sha256
3371 (base32
3372 "1d8lqvybgyazin5z0g1c4l3rg1vzrrvf0saqs53jr1zcdg0lianh"))))
3373 (build-system emacs-build-system)
3374 (home-page "https://github.com/sshirokov/ZNC.el")
3375 (synopsis "Make ERC and ZNC get along better")
3376 (description
3377 "This is a thin wrapper around @code{erc} that enables one to use the ZNC
3378 IRC bouncer with ERC.")
3379 (license license:expat)))
3380
3381 (define-public emacs-erc-status-sidebar
3382 (let ((commit "ea4189a1dbfe60117359c36e681ad7c389e2968c")
3383 (revision "1"))
3384 (package
3385 (name "emacs-erc-status-sidebar")
3386 (version (git-version "0.1" revision commit))
3387 (source
3388 (origin
3389 (method git-fetch)
3390 (uri (git-reference
3391 (url "https://github.com/drewbarbs/erc-status-sidebar")
3392 (commit commit)))
3393 (file-name (git-file-name name version))
3394 (sha256
3395 (base32 "1hwlhzgx03z8891sblz56zdp8zj0izh72kxykgcnz5rrkyc3vfi3"))))
3396 (build-system emacs-build-system)
3397 (propagated-inputs `(("emacs-seq" ,emacs-seq)))
3398 (home-page "https://github.com/drewbarbs/erc-status-sidebar")
3399 (synopsis "Hexchat-like activity overview for ERC channels")
3400 (description
3401 "This package provides a Hexchat-like status bar for joined channels in
3402 ERC, an Emacs client for IRC (Internet Relay Chat). It relies on the
3403 @code{erc-track} module, and displays all the same information
3404 @code{erc-track} does in the mode line, but in an alternative format.")
3405 (license license:expat))))
3406
3407 (define-public emacs-shut-up
3408 (package
3409 (name "emacs-shut-up")
3410 (version "0.3.2")
3411 (source
3412 (origin
3413 (method git-fetch)
3414 (uri (git-reference
3415 (url "https://github.com/cask/shut-up")
3416 (commit (string-append "v" version))))
3417 (file-name (git-file-name name version))
3418 (sha256
3419 (base32 "103yvfgkj78i4bnv1fwk76izsa8h4wyj3vwj1vq7xggj607hkxzq"))))
3420 (build-system emacs-build-system)
3421 (home-page "https://github.com/cask/shut-up")
3422 (synopsis "Silence Emacs")
3423 (description "This package silences most output of Emacs when running an
3424 Emacs shell script.")
3425 (license license:expat)))
3426
3427 (define-public emacs-undercover
3428 (package
3429 (name "emacs-undercover")
3430 (version "0.6.1")
3431 (source
3432 (origin
3433 (method git-fetch)
3434 (uri (git-reference
3435 (url "https://github.com/sviridov/undercover.el")
3436 (commit version)))
3437 (file-name (git-file-name name version))
3438 (sha256
3439 (base32 "080bmfwyfi8663y8x594770hqz7mff7zvj2v03qdfwbhdr9w9y29"))))
3440 (build-system emacs-build-system)
3441 (propagated-inputs
3442 `(("emacs-dash" ,emacs-dash)
3443 ("emacs-shut-up" ,emacs-shut-up)))
3444 (home-page "https://github.com/sviridov/undercover.el")
3445 (synopsis "Test coverage library for Emacs Lisp")
3446 (description
3447 "Undercover is a test coverage library for software written in Emacs
3448 Lisp.")
3449 (license license:expat)))
3450
3451 (define-public emacs-paren-face
3452 (package
3453 (name "emacs-paren-face")
3454 (version "1.0.6")
3455 (source
3456 (origin
3457 (method git-fetch)
3458 (uri (git-reference
3459 (url "https://github.com/tarsius/paren-face")
3460 (commit version)))
3461 (file-name (git-file-name name version))
3462 (sha256
3463 (base32 "17bdcxah216z928387yx6z9lmp4jsi461n8fwiqaibn2qy5fagas"))))
3464 (build-system emacs-build-system)
3465 (home-page "https://github.com/tarsius/paren-face")
3466 (synopsis "Face for parentheses in Lisp modes")
3467 (description
3468 "This library defines a face named @code{parenthesis} used just for
3469 parentheses. The intended purpose of this face is to make parentheses less
3470 visible in Lisp code by dimming them. Lispers probably don't need to be
3471 constantly made aware of the existence of the parentheses. Dimming them might
3472 be even more useful for people new to Lisp who have not yet learned to
3473 subconsciously blend out the parentheses.")
3474 (license license:gpl3+)))
3475
3476 (define-public emacs-page-break-lines
3477 (package
3478 (name "emacs-page-break-lines")
3479 (version "0.11")
3480 (source
3481 (origin
3482 (method git-fetch)
3483 (uri (git-reference
3484 (url "https://github.com/purcell/page-break-lines")
3485 (commit version)))
3486 (file-name (git-file-name name version))
3487 (sha256
3488 (base32 "1wp974716ih2cz9kdmdz7xwjy1qnnfzdzlfr9kchknagw8d9nn12"))))
3489 (build-system emacs-build-system)
3490 (home-page "https://github.com/purcell/page-break-lines")
3491 (synopsis "Display page breaks as tidy horizontal lines")
3492 (description
3493 "This library provides a global mode which displays form feed characters
3494 as horizontal rules.")
3495 (license license:gpl3+)))
3496
3497 (define-public emacs-simple-httpd
3498 (package
3499 (name "emacs-simple-httpd")
3500 (version "1.5.1")
3501 (source
3502 (origin
3503 (method git-fetch)
3504 (uri (git-reference
3505 (url "https://github.com/skeeto/emacs-web-server")
3506 (commit version)))
3507 (file-name (git-file-name name version))
3508 (sha256
3509 (base32 "0dpn92rg813c4pq7a1vzj3znyxzp2lmvxqz6pzcqi0l2xn5r3wvb"))))
3510 (build-system emacs-build-system)
3511 (home-page "https://github.com/skeeto/emacs-web-server")
3512 (synopsis "HTTP server in pure Emacs Lisp")
3513 (description
3514 "This package provides a simple HTTP server written in Emacs Lisp to
3515 serve files and directory listings.")
3516 (license license:unlicense)))
3517
3518 (define-public emacs-skewer-mode
3519 (package
3520 (name "emacs-skewer-mode")
3521 (version "1.8.0")
3522 (source
3523 (origin
3524 (method git-fetch)
3525 (uri (git-reference
3526 (url "https://github.com/skeeto/skewer-mode")
3527 (commit version)))
3528 (file-name (git-file-name name version))
3529 (sha256
3530 (base32 "1ha7jl7776pk1bki5zj2q0jy66450mn8xr3aqjc0m9kj3gc9qxgw"))))
3531 (build-system emacs-build-system)
3532 (propagated-inputs
3533 `(("emacs-simple-httpd" ,emacs-simple-httpd)
3534 ("emacs-js2-mode" ,emacs-js2-mode)))
3535 (arguments '(#:include '("\\.el$" "\\.js$" "\\.html$")))
3536 (home-page "https://github.com/skeeto/skewer-mode")
3537 (synopsis "Live web development in Emacs")
3538 (description
3539 "Skewer-mode provides live interaction with JavaScript, CSS, and HTML in
3540 a web browser. Expressions are sent on-the-fly from an editing buffer to be
3541 evaluated in the browser, just like Emacs does with an inferior Lisp process
3542 in Lisp modes.")
3543 (license license:unlicense)))
3544
3545 (define-public emacs-litable
3546 (let ((commit "b0278f3f8dcff424bfbdfdefb545b1fbff33206f"))
3547 (package
3548 (name "emacs-litable")
3549 (version (git-version "0.1" "0" commit))
3550 (source (origin
3551 (method git-fetch)
3552 (uri (git-reference
3553 (url "https://github.com/Fuco1/litable")
3554 (commit commit)))
3555 (file-name (git-file-name name version))
3556 (sha256
3557 (base32
3558 "0bny40hv9a024n01clxns351cs4j4ifhgcc7m4743xncqf612p7g"))))
3559 (build-system emacs-build-system)
3560 (propagated-inputs
3561 `(("emacs-dash" ,emacs-dash)))
3562 (home-page "https://github.com/Fuco1/litable/")
3563 (synopsis "Dynamic evaluation replacement with Emacs")
3564 (description "This package provides dynamic evaluation in Emacs.")
3565 (license license:gpl3+))))
3566
3567 (define-public emacs-literate-calc-mode
3568 (let ((commit "e855bd718fa7d0d70b8f43264e10664369dd3a37")
3569 (revision "0"))
3570 (package
3571 (name "emacs-literate-calc-mode")
3572 (version (git-version "0.1" revision commit))
3573 (source
3574 (origin
3575 (method git-fetch)
3576 (uri (git-reference
3577 (url "https://github.com/sulami/literate-calc-mode.el")
3578 (commit commit)))
3579 (file-name (git-file-name name version))
3580 (sha256
3581 (base32 "0mk4cig8g8ibz97mvyan79fkypyanh7r0h7h20ibafq09nb0mw01"))))
3582 (build-system emacs-build-system)
3583 (propagated-inputs
3584 `(("emacs-s" ,emacs-s)))
3585 (home-page "https://github.com/sulami/literate-calc-mode.el")
3586 (synopsis "Literate programming for Emacs Calc")
3587 (description
3588 "This library provides literate programming for Calc. There is both
3589 a major and a minor mode. The major mode does some basic syntax highlighting,
3590 while the minor mode only evaluates all Calc statements while typing. In
3591 particular, the minor mode works quite well with Org or Markdown modes, or
3592 other markup language major modes.")
3593 (license license:gpl3+))))
3594
3595 (define-public emacs-string-inflection
3596 (package
3597 (name "emacs-string-inflection")
3598 (version "1.0.6")
3599 (source (origin
3600 (method git-fetch)
3601 (uri (git-reference
3602 (url "https://github.com/akicho8/string-inflection")
3603 (commit "a150e7bdda60b7824d3a936750ce23f73b0e4edd")))
3604 (file-name (git-file-name name version))
3605 (sha256
3606 (base32
3607 "1k0sm552iawi49v4zis6dbb81d1rzgky9v0dpv7nj31gnb7bmy7k"))))
3608 (build-system emacs-build-system)
3609 (native-inputs
3610 `(("ert-runner" ,emacs-ert-runner)))
3611 (arguments
3612 `(#:tests? #t
3613 #:test-command '("ert-runner")))
3614 (home-page "https://github.com/akicho8/string-inflection")
3615 (synopsis "Convert symbol names between different naming conventions")
3616 (description
3617 "This Emacs package provides convenient methods for manipulating the
3618 naming style of a symbol. It supports different naming conventions such as:
3619
3620 @enumerate
3621 @item camel case
3622 @item Pascal case
3623 @item all upper case
3624 @item lower case separated by underscore
3625 @item etc...
3626 @end enumerate\n")
3627 (license license:gpl2+)))
3628
3629 (define-public emacs-stripe-buffer
3630 (package
3631 (name "emacs-stripe-buffer")
3632 (version "0.2.5")
3633 (source
3634 (origin
3635 (method git-fetch)
3636 (uri (git-reference
3637 (url "https://github.com/sabof/stripe-buffer")
3638 (commit version)))
3639 (file-name (git-file-name name version))
3640 (sha256
3641 (base32 "035ym1c1vzg6hjsnd258z4dkrfc11lj4c0y4gpgybhk54dq3w9dk"))))
3642 (build-system emacs-build-system)
3643 (home-page "https://github.com/sabof/stripe-buffer/")
3644 (synopsis "Add stripes to list buffers")
3645 (description
3646 "This Emacs package adds faces to add stripes to list buffers and org
3647 tables.")
3648 (license license:gpl2+)))
3649
3650 (define-public emacs-org-beautify-theme
3651 ;; Latest release (0.4) is not tagged, use commit hash.
3652 (let ((commit "df6a1114fda313e1689363e196c8284fbe2a2738")
3653 (revision "0"))
3654 (package
3655 (name "emacs-org-beautify-theme")
3656 (version "0.4")
3657 (source
3658 (origin
3659 (method git-fetch)
3660 (uri (git-reference
3661 (url "https://github.com/jonnay/org-beautify-theme")
3662 (commit commit)))
3663 (file-name (git-file-name name version))
3664 (sha256
3665 (base32 "1lkz7736swimad12khwbbqc4gxjydgr1k45p4mx03s25pv1w920y"))))
3666 (build-system emacs-build-system)
3667 (home-page "https://github.com/jonnay/org-beautify-theme")
3668 (synopsis "Theme to make Org mode look more beautiful")
3669 (description
3670 "The theme adds padding between headings, increases the size of titles,
3671 strike through completed TODO headings, changes Org blocks, changes Org check
3672 boxes, and more.")
3673 (license license:gpl3+))))
3674
3675 (define-public emacs-org-rich-yank
3676 (package
3677 (name "emacs-org-rich-yank")
3678 (version "0.2.1")
3679 (source
3680 (origin
3681 (method git-fetch)
3682 (uri (git-reference
3683 (url "https://github.com/unhammer/org-rich-yank")
3684 (commit (string-append "v" version))))
3685 (file-name (git-file-name name version))
3686 (sha256
3687 (base32 "0gxb0fnh5gxjmld0hnk5hli0cvdd8gjd27m30bk2b80kwldxlq1z"))))
3688 (build-system emacs-build-system)
3689 (home-page "https://github.com/unhammer/org-rich-yank")
3690 (synopsis "Automatically surround source code pasted into Org with
3691 @code{#+BEGIN_SRC} blocks")
3692 (description
3693 "This package provides a utility function for Org buffers that makes a
3694 @code{_SRC} block with the appropriate language annotation for code that has
3695 been copied from an Emacs major mode.")
3696 (license license:gpl2+)))
3697
3698 (define-public emacs-ob-erlang
3699 (let ((revision "1")
3700 (commit "f1a8c665b8f7d0ab32267a9961de8eed872e6333"))
3701 (package
3702 (name "emacs-ob-erlang")
3703 (version (git-version "20180827" revision commit))
3704 (source (origin
3705 (method git-fetch)
3706 (uri (git-reference
3707 (url "https://github.com/xfwduke/ob-erlang")
3708 (commit commit)))
3709 (file-name (git-file-name name version))
3710 (sha256
3711 (base32
3712 "0b5zajqiy6955yvlqwy92prrqy89lqchsv4ss2ylws3p4s14rhij"))))
3713 (build-system emacs-build-system)
3714 (home-page "https://github.com/xfwduke/ob-erlang/")
3715 (synopsis "Org-babel support for Erlang")
3716 (description "This package adds support for working with Erlang code
3717 blocks with @code{org-babel} in @code{org-mode}.")
3718 (license license:gpl3+))))
3719
3720 (define-public emacs-ob-restclient
3721 (let ((commit "53376667eeddb1388fd6c6976f3222e7c8adcd46"))
3722 (package
3723 (name "emacs-ob-restclient")
3724 (version (git-version "0.02" "1" commit))
3725 (source
3726 (origin
3727 (method git-fetch)
3728 (uri (git-reference
3729 (url "https://github.com/alf/ob-restclient.el")
3730 (commit commit)))
3731 (file-name (git-file-name name version))
3732 (sha256
3733 (base32 "1djg53cp7y83gic2v71y6r5z76kwrbkp0r69hl25rs99dx6p89dy"))))
3734 (propagated-inputs
3735 `(("emacs-restclient" ,emacs-restclient)))
3736 (build-system emacs-build-system)
3737 (home-page "https://github.com/alf/ob-restclient.el")
3738 (synopsis "Org-babel functionality for @code{restclient-mode}")
3739 (description
3740 "This package integrates @code{restclient-mode} with Org.")
3741 (license license:gpl3+))))
3742
3743 (define-public emacs-org-now
3744 (let ((commit "8f6b277a73f1c66e58ccb4b7f40d406851befc91"))
3745 (package
3746 (name "emacs-org-now")
3747 (version (git-version "0.1-pre" "1" commit))
3748 (source
3749 (origin
3750 (method git-fetch)
3751 (uri (git-reference
3752 (url "https://github.com/alphapapa/org-now")
3753 (commit commit)))
3754 (file-name (git-file-name name version))
3755 (sha256
3756 (base32 "117zzkryznznk6h4i1jqzdn888nl019xrgxm2gza0lndx8dxsg2c"))))
3757 (propagated-inputs
3758 `(("emacs-dash" ,emacs-dash)))
3759 (build-system emacs-build-system)
3760 (home-page "https://github.com/alphapapa/org-now")
3761 (synopsis "Show current Org tasks in a sidebar")
3762 (description
3763 "This package provides commands to show Org headings in a sidebar
3764 window while working on them. After defining one heading as the \"now\"
3765 heading, other headings can be refiled to it with one command, and back to
3766 their original location with another.")
3767 (license license:gpl3+))))
3768
3769 (define-public emacs-rich-minority
3770 (package
3771 (name "emacs-rich-minority")
3772 (version "1.0.3")
3773 (source
3774 (origin
3775 (method git-fetch)
3776 (uri (git-reference
3777 (url "https://github.com/Malabarba/rich-minority")
3778 (commit version)))
3779 (file-name (git-file-name name version))
3780 (sha256
3781 (base32
3782 "1kn7c9qr9ykj68iqffzzmjsr6aazwac8cxb7j960sjb282rq0yyj"))))
3783 (build-system emacs-build-system)
3784 (home-page "https://github.com/Malabarba/rich-minority")
3785 (synopsis "Clean-up and beautify the list of minor modes")
3786 (description
3787 "This Emacs package hides and/or highlights minor modes in the
3788 mode-line.")
3789 (license license:gpl2+)))
3790
3791 (define-public emacs-robe
3792 (package
3793 (name "emacs-robe")
3794 (version "0.8.2")
3795 (source
3796 (origin
3797 (method git-fetch)
3798 (uri (git-reference
3799 (url "https://github.com/dgutov/robe")
3800 (commit version)))
3801 (file-name (git-file-name name version))
3802 (sha256
3803 (base32 "0qw18wi54yg971n4wnjqkd8lqj5lbs9ra8bvmngif2bzhqlfdsbn"))))
3804 (build-system emacs-build-system)
3805 (arguments
3806 '(#:include (cons "^lib\\/" %default-include)))
3807 (propagated-inputs
3808 `(("emacs-inf-ruby" ,emacs-inf-ruby)))
3809 (home-page "https://github.com/dgutov/robe")
3810 (synopsis "Ruby code assistance tool for Emacs")
3811 (description
3812 "Robe can provide information on loaded classes and modules in Ruby code,
3813 as well as where methods are defined. This allows the user to jump to method
3814 definitions, modules and classes, display method documentation and provide
3815 method and constant name completion.")
3816 (license license:gpl3+)))
3817
3818 (define-public emacs-robot-mode
3819 (let ((commit "32846e7e80ae3471b7c07f9709dcaa4f9b9ed4a0")
3820 (revision "1"))
3821 (package
3822 (name "emacs-robot-mode")
3823 (version (git-version "0.0.0" revision commit))
3824 (source (origin
3825 (method git-fetch)
3826 (uri (git-reference
3827 ;; A better maintained fork of robot-mode.
3828 (url "https://github.com/jvalkeejarvi/robot-mode")
3829 (commit commit)))
3830 (file-name (git-file-name name version))
3831 (sha256
3832 (base32
3833 "1i8wf7m0gml8zvvmlgppjzv78b432686p1qdbzgclc7qfcvzag0d"))))
3834 (build-system emacs-build-system)
3835 (propagated-inputs `(("emacs-s" ,emacs-s)))
3836 (home-page "https://github.com/jvalkeejarvi/robot-mode")
3837 (synopsis "Emacs mode for Robot Framework")
3838 (description "This major mode facilitates editing Robot Framework source
3839 files with features such as syntax highlighting, comments, finding keywords,
3840 completing keywords and smart indentation.")
3841 (license license:gpl3+))))
3842
3843 (define-public emacs-rspec
3844 (let ((commit "66ea7cc9699d6edc6115daa024818adbd85efc20")
3845 (revision "1"))
3846 (package
3847 (name "emacs-rspec")
3848 (version (git-version "1.11" revision commit))
3849 (source
3850 (origin
3851 (method git-fetch)
3852 (uri (git-reference
3853 (url "https://github.com/pezra/rspec-mode")
3854 (commit commit)))
3855 (file-name (git-file-name name version))
3856 (sha256
3857 (base32 "0b11s8r0pi7ah54km4yg4fqff8wkk409d25qnlwm1l94pdwjd1c8"))))
3858 (build-system emacs-build-system)
3859 (arguments
3860 `(#:include (cons "^snippets\\/rspec-mode\\/" %default-include)
3861 #:tests? #t
3862 #:test-command '("make" "test")))
3863 (home-page "https://github.com/pezra/rspec-mode")
3864 (synopsis "Provides a rspec mode for working with RSpec")
3865 (description
3866 "The Emacs RSpec mode provides keybindings for Ruby source files, e.g. to
3867 verify the spec associated with the current buffer, or entire project, as well
3868 as moving between the spec files, and corresponding code files.
3869
3870 Also included are keybindings for spec files and Dired buffers, as well as
3871 snippets for yasnippet.")
3872 (license license:gpl3+))))
3873
3874 (define-public emacs-smart-mode-line
3875 (package
3876 (name "emacs-smart-mode-line")
3877 (version "2.13")
3878 (source
3879 (origin
3880 (method git-fetch)
3881 (uri (git-reference
3882 (url "https://github.com/Malabarba/smart-mode-line")
3883 (commit version)))
3884 (file-name (git-file-name name version))
3885 (sha256
3886 (base32 "164b697xm1rwcggv37dymhf3npbyh2bs59z8b6m5x35lb4c3lf8b"))))
3887 (build-system emacs-build-system)
3888 (propagated-inputs
3889 `(("emacs-rich-minority" ,emacs-rich-minority)))
3890 (home-page "https://github.com/Malabarba/smart-mode-line")
3891 (synopsis "Color-coded smart mode-line")
3892 (description
3893 "Smart Mode Line is a mode-line theme for Emacs. It aims to be easy to
3894 read from small to large monitors by using colors, a prefix feature, and smart
3895 truncation.")
3896 (license license:gpl2+)))
3897
3898 (define-public emacs-sr-speedbar
3899 (let ((commit "77a83fb50f763a465c021eca7343243f465b4a47")
3900 (revision "0"))
3901 (package
3902 (name "emacs-sr-speedbar")
3903 (version (git-version "20161025" revision commit))
3904 (source
3905 (origin
3906 (method git-fetch)
3907 (uri (git-reference
3908 (url "https://github.com/emacsorphanage/sr-speedbar")
3909 (commit commit)))
3910 (file-name (git-file-name name version))
3911 (sha256
3912 (base32
3913 "0sd12555hk7z721y00kv3crdybvcn1i08wmd148z5imayzibj153"))))
3914 (build-system emacs-build-system)
3915 (home-page "https://www.emacswiki.org/emacs/SrSpeedbar")
3916 (synopsis "Same frame Emacs @code{speedbar}")
3917 (description
3918 "This Emacs package allows you to show @code{M-x speedbar} in the
3919 same frame (in an extra window). You can customize the initial width of
3920 the speedbar window.")
3921 (license license:gpl3+))))
3922
3923 (define-public emacs-shell-switcher
3924 (package
3925 (name "emacs-shell-switcher")
3926 (version "1.0.1")
3927 (source
3928 (origin
3929 (method git-fetch)
3930 (uri (git-reference
3931 (url "https://github.com/DamienCassou/shell-switcher")
3932 (commit (string-append "v" version))))
3933 (file-name (git-file-name name version))
3934 (sha256
3935 (base32 "0ia7sdip4hl27avckv3qpqgm3k4ynvp3xxq1cy53bqfzzx0gcria"))))
3936 (build-system emacs-build-system)
3937 (home-page "https://github.com/DamienCassou/shell-switcher")
3938 (synopsis "Provide fast switching between shell buffers")
3939 (description
3940 "This package provides commands to quickly switch between shell buffers.")
3941 (license license:gpl3+)))
3942
3943 (define-public emacs-shx
3944 (package
3945 (name "emacs-shx")
3946 (version "1.4.0")
3947 (source (origin
3948 (method git-fetch)
3949 (uri (git-reference
3950 (url "https://github.com/riscy/shx-for-emacs")
3951 (commit (string-append "v" version))))
3952 (file-name (git-file-name name version))
3953 (sha256
3954 (base32 "0p9b621rgy34r1hl9xfzxh4xpx9gpsr3n330ypfxhlr0s5754j73"))))
3955 (build-system emacs-build-system)
3956 (arguments
3957 `(#:phases
3958 (modify-phases %standard-phases
3959 ;; A docstring provides examples of mapping hosts to programs in /bin.
3960 ;; These examples are valid as-is.
3961 (delete 'patch-el-files))
3962 #:tests? #t
3963 #:test-command
3964 '("emacs" "--batch" "--quiet"
3965 "--script" "test/script.el")))
3966 (home-page "https://github.com/riscy/shx-for-emacs")
3967 (synopsis "Extras for the comint-mode shell")
3968 (description
3969 "This package extends @code{comint-mode}: it parses markup in the output
3970 stream, enabling plots and graphics to be embedded, and adds command-line
3971 functions which plug into Emacs (e.g. use @code{:e <filename>} to edit a
3972 file).")
3973 (license license:gpl3+)))
3974
3975 (define-public emacs-names
3976 (let ((commit "d8baba5360e5253938a25d3e005455b6d2d86971")
3977 (version "20151201.0")
3978 (revision "8"))
3979 (package
3980 (name "emacs-names")
3981 (version (git-version version revision commit))
3982 (source
3983 (origin
3984 (method git-fetch)
3985 (uri (git-reference
3986 (url "https://github.com/Malabarba/names")
3987 (commit commit)))
3988 (file-name (git-file-name name version))
3989 (sha256
3990 (base32
3991 "11wyha2q8y7bzqq3jrzix8n97ywvsibvddrahqcps1a1yqk4hzfz"))))
3992 (build-system emacs-build-system)
3993 (home-page "https://github.com/Malabarba/names/")
3994 (synopsis "Namespace implementation for Emacs Lisp")
3995 (description
3996 "This package provides a macro that writes your namespaces for you.")
3997 (license license:gpl3+))))
3998
3999 (define-public emacs-evil-leader
4000 (package
4001 (name "emacs-evil-leader")
4002 (version "0.4.3")
4003 (source
4004 (origin
4005 (method git-fetch)
4006 (uri
4007 (git-reference
4008 (url "https://github.com/cofi/evil-leader")
4009 (commit version)))
4010 (file-name (git-file-name name version))
4011 (sha256
4012 (base32 "1k2zinchs0jjllp8zkpggckyy63dkyi5yig3p46vh4w45jdzysk5"))))
4013 (inputs
4014 `(("emacs-evil" ,emacs-evil)))
4015 (build-system emacs-build-system)
4016 (home-page "https://github.com/cofi/evil-leader")
4017 (synopsis "Implement <leader> feature from Vim")
4018 (description
4019 "Evil Leader provides the @code{<leader>} feature from Vim that provides
4020 an easy way to bind keys under a configurable prefix key.")
4021 (license license:gpl3+)))
4022
4023 (define-public emacs-evil-textobj-syntax
4024 (let ((commit "2d9ba8c75c754b409aea7469f46a5cfa52a872f3")
4025 (version "0")
4026 (revision "1"))
4027 (package
4028 (name "emacs-evil-textobj-syntax")
4029 (version (git-version version revision commit))
4030 (source
4031 (origin
4032 (method git-fetch)
4033 (uri (git-reference
4034 (url "https://github.com/laishulu/evil-textobj-syntax/")
4035 (commit commit)))
4036 (file-name (git-file-name name version))
4037 (sha256
4038 (base32
4039 "031p5i3274dazp7rz6m5y38shfgszm1clmkcf58qfqlvy978ammc"))))
4040 (build-system emacs-build-system)
4041 (propagated-inputs `(("emacs-evil" ,emacs-evil)
4042 ("emacs-names" ,emacs-names)))
4043 (home-page "https://github.com/laishulu/evil-textobj-syntax/")
4044 (synopsis "Text objects based on syntax highlighting")
4045 (description
4046 "This package provides text objects for @code{evil-mode} with
4047 boundaries defined by syntax highlighting.")
4048 (license license:gpl3+))))
4049
4050 (define-public emacs-flycheck-flow
4051 (let ((commit "9e8e52cfc98af6a23fd906f9cb5d5d470d8cf82d")
4052 (version "1.1")
4053 (revision "1"))
4054 (package
4055 (name "emacs-flycheck-flow")
4056 (version (git-version version revision commit))
4057 (source
4058 (origin
4059 (method git-fetch)
4060 (uri (git-reference
4061 (url "https://github.com/lbolla/emacs-flycheck-flow")
4062 (commit commit)))
4063 (file-name (git-file-name name version))
4064 (sha256
4065 (base32
4066 "14qldlisbmxzammr500gyha2hiv2xgyzfc6mysqii06kbcqn1ik1"))))
4067 (build-system emacs-build-system)
4068 (propagated-inputs
4069 `(("emacs-flycheck" ,emacs-flycheck)))
4070 (home-page "https://github.com/lbolla/emacs-flycheck-flow")
4071 (synopsis "Flow support for @code{flycheck-mode}")
4072 (description
4073 "This package allows @code{flycheck-mode} to provide syntax-checking
4074 for Flow files.")
4075 (license license:gpl3+))))
4076
4077 (define-public emacs-flycheck-grammalecte
4078 (package
4079 (name "emacs-flycheck-grammalecte")
4080 (version "1.2")
4081 (source
4082 (origin
4083 (method url-fetch)
4084 (uri (string-append "https://git.deparis.io/"
4085 "flycheck-grammalecte/snapshot/"
4086 "flycheck-grammalecte-" version ".tar.xz"))
4087 (sha256
4088 (base32 "1mzmzyik843r4j0ibpwqrxmb0g4xmirrf3lxr010bddkmmxf749a"))))
4089 (build-system emacs-build-system)
4090 (arguments
4091 `(#:include '("\\.(el|py)$")
4092 #:exclude '("^test-profile.el$")
4093 #:emacs ,emacs ;need libxml support
4094 #:phases
4095 (modify-phases %standard-phases
4096 (add-after 'unpack 'specify-python-location
4097 ;; Hard-code python3 executable location in the library.
4098 (lambda* (#:key inputs #:allow-other-keys)
4099 (let ((python3 (string-append (assoc-ref inputs "python")
4100 "/bin/python3")))
4101 (substitute* "flycheck-grammalecte.el"
4102 (("\"python3") (string-append "\"" python3)))
4103 (substitute* '("conjugueur.py" "flycheck-grammalecte.py")
4104 (("/usr/bin/env python3?") python3))
4105 #t)))
4106 (add-before 'build 'link-to-grammalecte
4107 ;; XXX: The Python part of the package requires grammalecte, but
4108 ;; the library is not specified in PYTHONPATH, since we're not
4109 ;; using Python build system. As a workaround, we symlink
4110 ;; grammalecte libraries here.
4111 (lambda* (#:key inputs outputs #:allow-other-keys)
4112 (let* ((out (assoc-ref outputs "out"))
4113 (grammalecte (assoc-ref inputs "grammalecte"))
4114 (version ,(version-major+minor (package-version python))))
4115 (with-directory-excursion
4116 (string-append out "/share/emacs/site-lisp")
4117 (symlink (string-append grammalecte "/lib/"
4118 "python" version "/site-packages/"
4119 "grammalecte")
4120 "grammalecte"))
4121 #t))))))
4122 (inputs
4123 `(("grammalecte" ,grammalecte)
4124 ("python" ,python)))
4125 (propagated-inputs
4126 `(("emacs-flycheck" ,emacs-flycheck)))
4127 (home-page "https://git.deparis.io/flycheck-grammalecte/")
4128 (synopsis "Integrate Grammalecte with Flycheck")
4129 (description
4130 "Integrate the French grammar and typography checker Grammalecte with
4131 Flycheck to automatically look for mistakes in your writings. It also
4132 provides an easy way to find synonyms and antonyms for a given word (to avoid
4133 repetitions for example).")
4134 (license license:gpl3+)))
4135
4136 (define-public emacs-flycheck-guile
4137 (package
4138 (name "emacs-flycheck-guile")
4139 (version "0.2")
4140 (source
4141 (origin
4142 (method git-fetch)
4143 (uri
4144 (git-reference
4145 (url "https://github.com/flatwhatson/flycheck-guile")
4146 (commit version)))
4147 (file-name (git-file-name name version))
4148 (sha256
4149 (base32 "0cs5r0ik6a3bl1k3imjl0r8y1i69kx9x9m9cgxj470qk34brwyj5"))))
4150 (propagated-inputs
4151 `(("emacs-flycheck" ,emacs-flycheck)
4152 ("emacs-geiser" ,emacs-geiser)))
4153 (build-system emacs-build-system)
4154 (home-page "https://github.com/flatwhatson/flycheck-guile")
4155 (synopsis "GNU Guile support for Flycheck")
4156 (description
4157 "This package provides a Flycheck checker for GNU Guile using @code{guild
4158 compile}.")
4159 (license license:gpl3+)))
4160
4161 (define-public emacs-flycheck-ledger
4162 (package
4163 (name "emacs-flycheck-ledger")
4164 (version "0.5")
4165 (source
4166 (origin
4167 (method git-fetch)
4168 (uri (git-reference
4169 (url "https://github.com/purcell/flycheck-ledger.git")
4170 (commit version)))
4171 (file-name (git-file-name name version))
4172 (sha256
4173 (base32 "1djrj3is0dzrl2703bw7bclf33dp4xqmy144q7xj5pvpb9v3kf50"))))
4174 (inputs `(("ledger" ,ledger)))
4175 (arguments
4176 `(#:phases
4177 (modify-phases %standard-phases
4178 (add-after 'unpack 'configure
4179 (lambda* (#:key inputs outputs #:allow-other-keys)
4180 (let ((ledger (assoc-ref inputs "ledger")))
4181 ;; Specify the absolute executable location of ledger.
4182 (substitute* "flycheck-ledger.el"
4183 (("\"ledger\"") (string-append "\"" ledger "\""))))
4184 #t)))))
4185 (propagated-inputs
4186 `(("emacs-flycheck" ,emacs-flycheck)))
4187 (build-system emacs-build-system)
4188 (home-page "https://github.com/purcell/flycheck-ledger")
4189 (synopsis "Ledger support for Flycheck")
4190 (description
4191 "This Flycheck checker uses the output of @code{ledger balance} on the
4192 current file to find errors such as unbalanced transactions and syntax
4193 errors.")
4194 (license license:gpl3+)))
4195
4196 (define-public emacs-flycheck-rust
4197 (package
4198 (name "emacs-flycheck-rust")
4199 (version "1.1")
4200 (source
4201 (origin
4202 (method git-fetch)
4203 (uri
4204 (git-reference
4205 (url "https://github.com/flycheck/flycheck-rust")
4206 (commit version)))
4207 (file-name (git-file-name name version))
4208 (sha256
4209 (base32 "1fh6j5w2387nh2fwwjphkhq17cgj5m2q5k0fhidvgc2w65lzbr1r"))))
4210 (propagated-inputs
4211 `(("emacs-dash" ,emacs-dash)
4212 ("emacs-flycheck" ,emacs-flycheck)
4213 ("emacs-let-alist" ,emacs-let-alist)))
4214 (build-system emacs-build-system)
4215 (home-page "https://github.com/flycheck/flycheck-rust")
4216 (synopsis "Rust/Cargo support for Flycheck")
4217 (description
4218 "This Flycheck extension configures Flycheck automatically for
4219 the current Cargo project.")
4220 (license license:gpl3+)))
4221
4222 (define-public emacs-elisp-demos
4223 (package
4224 (name "emacs-elisp-demos")
4225 (version "2020.02.19")
4226 (source
4227 (origin
4228 (method git-fetch)
4229 (uri (git-reference
4230 (url "https://github.com/xuchunyang/elisp-demos")
4231 (commit version)))
4232 (file-name (git-file-name name version))
4233 (sha256
4234 (base32
4235 "0mckgaz92v3y2vlkggx9kd51fd1mahylw39c42l51dyv8wscm7sc"))))
4236 (build-system emacs-build-system)
4237 (arguments
4238 `(#:include '("\\.el$" "\\.org$")
4239 #:tests? #t
4240 #:test-command '("make" "test")))
4241 (home-page "https://github.com/xuchunyang/elisp-demos/")
4242 (synopsis "Enhance @code{*Help*} buffers with additional examples")
4243 (description
4244 "This package injects example uses of Elisp functions into their
4245 respective @code{*Help*} buffers.")
4246 (license license:gpl3+)))
4247
4248 (define-public emacs-docker-compose-mode
4249 (package
4250 (name "emacs-docker-compose-mode")
4251 (version "1.1.0")
4252 (source
4253 (origin
4254 (method git-fetch)
4255 (uri (git-reference
4256 (url "https://github.com/meqif/docker-compose-mode")
4257 (commit version)))
4258 (file-name (git-file-name name version))
4259 (sha256
4260 (base32
4261 "1fbcxwfvm33xcdj3cs26d9i1zyrryyjjkv7sc3mfxd45nq8d3ivj"))))
4262 (build-system emacs-build-system)
4263 (propagated-inputs
4264 `(("emacs-dash" ,emacs-dash)
4265 ("emacs-f" ,emacs-f)))
4266 (home-page "https://github.com/meqif/docker-compose-mode/")
4267 (synopsis "Major mode for editing @file{docker-compose} files")
4268 (description
4269 "This is a major mode for @file{docker-compose} files that provides
4270 completion of relevant keywords.")
4271 (license license:expat)))
4272
4273 (define-public emacs-dvc
4274 (let ((revision "591") ;no tags or official releases
4275 (guix-revision "1"))
4276 (package
4277 (name "emacs-dvc")
4278 (version (string-append "0.0.0-" guix-revision "." revision))
4279 (source
4280 (origin
4281 (method bzr-fetch)
4282 (uri (bzr-reference
4283 (url "lp:dvc")
4284 (revision revision)))
4285 (sha256
4286 (base32
4287 "03pqn493w70wcpgaxvqnfgynxghw114l9pyiv3r414d84vzhan6h"))
4288 (file-name (string-append name "-" version "-checkout"))))
4289 (build-system gnu-build-system)
4290 (arguments
4291 `(#:configure-flags
4292 (list (string-append "--with-lispdir=" (assoc-ref %outputs "out")
4293 "/share/emacs/site-lisp/"))
4294 #:tests? #f ;no test suite
4295 #:phases
4296 (modify-phases %standard-phases
4297 (add-before 'build 'set-home
4298 ;; Something in dvc-bookmarks.el attempts to write config files in
4299 ;; $HOME during the autoload generation.
4300 (lambda _ (setenv "HOME" (getenv "TMPDIR")) #t))
4301 (add-before 'build 'fix-texinfo
4302 ;; See https://bugs.launchpad.net/dvc/+bug/1264383.
4303 (lambda _
4304 (substitute* "texinfo/dvc-intro.texinfo"
4305 (("@itemx update ``to''")
4306 "@item update ``to''")
4307 (("@itemx brief")
4308 "@item brief")
4309 (("@itemx full")
4310 "@item full")
4311 (("@itemx drop")
4312 "@item drop")
4313 (("@itemx left file")
4314 "@item left file"))
4315 #t)))))
4316 (native-inputs
4317 `(("autoconf" ,autoconf)
4318 ("automake" ,automake) ;for aclocal
4319 ("emacs" ,emacs-minimal)
4320 ("texinfo" ,texinfo)))
4321 (home-page "http://xsteve.at/prg/emacs_dvc/index.html")
4322 (synopsis "Emacs front-end for various distributed version control systems.")
4323 (description "DVC is a legacy Emacs front-end for a number of
4324 distributed version control systems. It currently supports GNU Arch, GNU
4325 Bazaar, git, Mercurial, and Monotone. It also provides some integration with
4326 Gnus, e.g., for applying patches received by email.")
4327 (license license:gpl2+))))
4328
4329 (define-public emacs-sudo-edit
4330 (let ((commit "cc3d478937b1accd38742bfceba92af02ee9357d")
4331 (revision "6"))
4332 (package
4333 (name "emacs-sudo-edit")
4334 (version (git-version "0.1.0" revision commit))
4335 (source
4336 (origin
4337 (method git-fetch)
4338 (uri (git-reference
4339 (url "https://github.com/nflath/sudo-edit")
4340 (commit commit)))
4341 (file-name (git-file-name name version))
4342 (sha256
4343 (base32
4344 "1qv58x5j5a3v1s2ylhck1ykbfclq0mbi0gsvaql3nyv8cxazqlwl"))))
4345 (build-system emacs-build-system)
4346 (native-inputs
4347 `(("emacs-undercover" ,emacs-undercover)))
4348 (arguments
4349 `(#:phases
4350 (modify-phases %standard-phases
4351 (add-before 'check 'fix-makefile
4352 (lambda _
4353 (substitute* "Makefile"
4354 (("\\$\\(CASK\\) exec ") ""))
4355 #t)))
4356 #:tests? #t
4357 #:test-command '("make" "test")))
4358 (home-page "https://github.com/nflath/sudo-edit/")
4359 (synopsis "Open files as another user")
4360 (description
4361 "This package allows editing files as another user, including the root
4362 user.")
4363 (license license:gpl3+))))
4364
4365 (define-public emacs-miniedit
4366 (package
4367 (name "emacs-miniedit")
4368 (version "2.0")
4369 (source
4370 (origin
4371 (method git-fetch)
4372 (uri (git-reference
4373 (url "https://github.com/emacsmirror/miniedit")
4374 (commit version)))
4375 (file-name (git-file-name name version))
4376 (sha256
4377 (base32
4378 "1850z96gly0jnr50472idqz1drzqarr0n23bbasslrc501xkg0bq"))))
4379 (build-system emacs-build-system)
4380 (home-page "https://github.com/emacsmirror/miniedit/")
4381 (synopsis "Enhanced editing for minibuffer fields")
4382 (description
4383 "This package provides a function that can be called from the
4384 minibuffer to enable editing the minibuffer input in another buffer with
4385 @code{text-mode} enabled.")
4386 (license license:gpl2+)))
4387
4388 (define-public emacs-ob-ipython
4389 (package
4390 (name "emacs-ob-ipython")
4391 (version "20180224")
4392 (source (origin
4393 (method git-fetch)
4394 (uri (git-reference
4395 (commit "7147455230841744fb5b95dcbe03320313a77124")
4396 (url "https://github.com/gregsexton/ob-ipython")))
4397 (file-name (git-file-name name version))
4398 (sha256
4399 (base32
4400 "1a10fc2jk37ni5sjjvf87s5nyaz2a6h2mlj5dxh4dhv5sd3bb85p"))))
4401 (build-system emacs-build-system)
4402 (propagated-inputs
4403 `(("emacs-f" ,emacs-f)))
4404 (home-page "http://www.gregsexton.org")
4405 (synopsis "Org-Babel functions for IPython evaluation")
4406 (description "This package adds support to Org-Babel for evaluating Python
4407 source code using IPython.")
4408 (license license:gpl3+)))
4409
4410 (define-public emacs-debbugs
4411 (package
4412 (name "emacs-debbugs")
4413 (version "0.25")
4414 (source
4415 (origin
4416 (method url-fetch)
4417 (uri (string-append "https://elpa.gnu.org/packages/debbugs-"
4418 version ".tar"))
4419 (sha256
4420 (base32 "0h0pxav170yzfpjf4vb8simiw67x9dkcjx9m4ghdk6wia25y8jni"))))
4421 (build-system emacs-build-system)
4422 (arguments '(#:include '("\\.el$" "\\.wsdl$" "\\.info$")))
4423 (propagated-inputs
4424 `(("emacs-async" ,emacs-async)))
4425 (home-page "https://elpa.gnu.org/packages/debbugs.html")
4426 (synopsis "Access the Debbugs bug tracker in Emacs")
4427 (description
4428 "This package lets you access the @uref{http://bugs.gnu.org,GNU Bug
4429 Tracker} from within Emacs.
4430
4431 For instance, it defines the command @code{M-x debbugs-gnu} for listing bugs,
4432 and the command @code{M-x debbugs-gnu-search} for bug searching. If you
4433 prefer the listing of bugs as TODO items of @code{org-mode}, you could use
4434 @code{M-x debbugs-org} and related commands.
4435
4436 A minor mode @code{debbugs-browse-mode} let you browse URLs to the GNU Bug
4437 Tracker as well as bug identifiers prepared for @code{bug-reference-mode}.")
4438 (license license:gpl3+)))
4439
4440 (define-public emacs-ert-expectations
4441 (package
4442 (name "emacs-ert-expectations")
4443 (version "0.2")
4444 (source
4445 (origin
4446 (method url-fetch)
4447 (uri "https://www.emacswiki.org/emacs/download/ert-expectations.el")
4448 (sha256
4449 (base32
4450 "0cwy3ilsid90abzzjb7ha2blq9kmv3gfp3icwwfcz6qczgirq6g7"))))
4451 (build-system emacs-build-system)
4452 (home-page "https://www.emacswiki.org/emacs/ert-expectations.el")
4453 (synopsis "Simple unit test framework for Emacs Lisp")
4454 (description "@code{emacs-ert-expectations} is a simple unit test
4455 framework for Emacs Lisp to be used with @code{ert}.")
4456 (license license:gpl3+)))
4457
4458 (define-public emacs-deferred
4459 (package
4460 (name "emacs-deferred")
4461 (version "0.5.1")
4462 (home-page "https://github.com/kiwanami/emacs-deferred")
4463 (source (origin
4464 (method git-fetch)
4465 (uri (git-reference
4466 (url home-page)
4467 (commit (string-append "v" version))))
4468 (file-name (git-file-name name version))
4469 (sha256
4470 (base32
4471 "0xy9zb6wwkgwhcxdnslqk52bq3z24chgk6prqi4ks0qcf2bwyh5h"))))
4472 (build-system emacs-build-system)
4473 (arguments
4474 `(#:phases
4475 (modify-phases %standard-phases
4476 (add-after 'unpack 'set-shell
4477 ;; Setting the SHELL environment variable is required for the tests
4478 ;; to find sh.
4479 (lambda _
4480 (setenv "SHELL" (which "sh"))
4481 #t))
4482 (add-before 'check 'fix-makefile
4483 (lambda _
4484 (substitute* "Makefile"
4485 (("\\$\\(CASK\\) exec ") ""))
4486 #t)))
4487 #:tests? #t
4488 #:test-command '("make" "test")))
4489 (native-inputs
4490 `(("emacs-ert-expectations" ,emacs-ert-expectations)
4491 ("emacs-undercover" ,emacs-undercover)
4492 ("ert-runner" ,emacs-ert-runner)))
4493 (synopsis "Simple asynchronous functions for Emacs Lisp")
4494 (description
4495 "The @code{deferred.el} library provides support for asynchronous tasks.
4496 The API is almost the same as that of
4497 @uref{https://github.com/cho45/jsdeferred, JSDeferred}, a JavaScript library
4498 for asynchronous tasks.")
4499 (license license:gpl3+)))
4500
4501 (define-public emacs-butler
4502 (package
4503 (name "emacs-butler")
4504 (version "0.2.4")
4505 (home-page "https://github.com/AshtonKem/Butler")
4506 (source (origin
4507 (method git-fetch)
4508 (uri (git-reference
4509 (url home-page)
4510 (commit version)))
4511 (file-name (git-file-name name version))
4512 (sha256
4513 (base32
4514 "1pii9dw4skq7nr4na6qxqasl36av8cwjp71bf1fgppqpcd9z8skj"))))
4515 (build-system emacs-build-system)
4516 (propagated-inputs
4517 `(("emacs-deferred" ,emacs-deferred)))
4518 (synopsis "Emacs client for Jenkins")
4519 (description
4520 "Butler provides an interface to connect to Jenkins continuous
4521 integration servers. Users can specify a list of server in the
4522 @code{butler-server-list} variable and then use @code{M-x butler-status} to
4523 view the build status of those servers' build jobs, and possibly to trigger
4524 build jobs.")
4525 (license license:gpl3+)))
4526
4527 (define-public emacs-company
4528 (package
4529 (name "emacs-company")
4530 (version "0.9.13")
4531 (source
4532 (origin
4533 (method url-fetch)
4534 (uri (string-append "https://elpa.gnu.org/packages/"
4535 "company-" version ".tar"))
4536 (sha256
4537 (base32 "1c9x9wlzzsn7vrsm57l2l44nqx455saa6wrm853szzg09qn8dlnw"))))
4538 (build-system emacs-build-system)
4539 (home-page "https://company-mode.github.io/")
4540 (synopsis "Modular text completion framework")
4541 (description
4542 "Company is a modular completion mechanism. Modules for retrieving
4543 completion candidates are called back-ends, modules for displaying them are
4544 front-ends. Company comes with many back-ends, e.g., @code{company-elisp}.
4545 These are distributed in separate files and can be used individually.")
4546 (license license:gpl3+)))
4547
4548 (define-public emacs-company-posframe
4549 (let ((version "0.1.0")
4550 (revision "1")
4551 (commit "67d899502384fb9ab2870aba0af41523dea7b64f"))
4552 (package
4553 (name "emacs-company-posframe")
4554 (version (git-version version revision commit))
4555 (source (origin
4556 (method git-fetch)
4557 (uri (git-reference
4558 (url "https://github.com/tumashu/company-posframe")
4559 (commit commit)))
4560 (file-name (git-file-name name version))
4561 (sha256
4562 (base32
4563 "051smlvz1siwglsd9k9l0m20mygrx4niflmyshha0064287aysxr"))))
4564 (build-system emacs-build-system)
4565 (propagated-inputs
4566 `(("emacs-company" ,emacs-company)
4567 ("emacs-posframe" ,emacs-posframe)))
4568 (home-page "https://github.com/tumashu/company-posframe")
4569 (synopsis "Use a posframe for @code{emacs-company}'s candidate menu")
4570 (description
4571 "Allows @code{emacs-company} to use child frames for its candidate menus.
4572
4573 @code{emacs-company-posframe} is fast enough for daily use and supports CJK
4574 languages.")
4575 (license license:gpl3+))))
4576
4577 (define-public emacs-irony-mode
4578 (package
4579 (name "emacs-irony-mode")
4580 (version "1.4.0")
4581 (home-page "https://github.com/Sarcasm/irony-mode")
4582 (source (origin
4583 (method git-fetch)
4584 (uri (git-reference
4585 (url (string-append home-page ".git"))
4586 (commit (string-append "v" version))))
4587 (file-name (git-file-name name version))
4588 (sha256
4589 (base32
4590 "0n2nfcq58md1p2xdhq1smh8v7lsyj0ci7ma5xyd6bkg5rvhsh10i"))))
4591 (build-system emacs-build-system)
4592 (inputs `(("server" ,emacs-irony-mode-server)))
4593 (arguments `(#:phases
4594 (modify-phases %standard-phases
4595 (add-after 'unpack 'configure
4596 (lambda* (#:key inputs #:allow-other-keys)
4597 (chmod "irony.el" #o644)
4598 (emacs-substitute-variables "irony.el"
4599 ("irony-server-install-prefix"
4600 (assoc-ref inputs "server")))
4601 #t)))))
4602 (synopsis "C/C++/ObjC Code completion and syntax checks for Emacs")
4603 (description "Irony-mode provides Clang-assisted syntax checking and
4604 completion for C, C++, and ObjC in GNU Emacs. Using @code{libclang} it can
4605 provide syntax checking and autocompletion on compiler level which is very
4606 resistant against false positives. It also integrates well with other
4607 packages like @code{eldoc-mode} and especially @code{company-mode} as
4608 described on the homepage.")
4609 (license license:gpl3+)))
4610
4611 (define-public emacs-irony-mode-server
4612 (package (inherit emacs-irony-mode)
4613 (name "emacs-irony-mode-server")
4614 (inputs
4615 `(("clang" ,clang)))
4616 (arguments
4617 `(#:phases
4618 (modify-phases %standard-phases
4619 (replace 'configure
4620 (lambda* (#:key outputs #:allow-other-keys)
4621 (let ((out (assoc-ref outputs "out")))
4622 (invoke "cmake"
4623 "server"
4624 (string-append "-DCMAKE_INSTALL_PREFIX=" out)) #t))))))
4625 (build-system cmake-build-system)
4626 (synopsis "Server for the Emacs @dfn{irony mode}")))
4627
4628 (define-public emacs-company-irony
4629 (package
4630 (name "emacs-company-irony")
4631 (version "1.1.0")
4632 (source (origin
4633 (method git-fetch)
4634 (uri (git-reference
4635 (url "https://github.com/Sarcasm/company-irony")
4636 (commit (string-append "v" version))))
4637 (sha256 (base32
4638 "1qgyam2vyjw90kpxns5cd6bq3qiqjhzpwrlvmi18vyb69qcgqd8a"))
4639 (file-name (git-file-name name version))))
4640 (build-system emacs-build-system)
4641 (inputs
4642 `(("emacs-irony-mode" ,emacs-irony-mode)
4643 ("emacs-company" ,emacs-company)))
4644 (synopsis "C++ completion backend for Company using irony-mode")
4645 (description "This backend for company-mode allows for C++ code completion
4646 with irony-mode using clang-tooling.")
4647 (home-page "https://github.com/Sarcasm/company-irony")
4648 (license license:gpl3+)))
4649
4650 (define-public emacs-flycheck-irony
4651 (package
4652 (name "emacs-flycheck-irony")
4653 (version "0.1.0")
4654 (source (origin
4655 (method git-fetch)
4656 (uri (git-reference
4657 (url "https://github.com/Sarcasm/flycheck-irony")
4658 (commit (string-append "v" version))))
4659 (file-name (git-file-name name version))
4660 (sha256
4661 (base32 "0qa5a8wzvzxwqql92ibc9s43k8sj3vwn7skz9hfr8av0skkhx996"))))
4662 (build-system emacs-build-system)
4663 (inputs
4664 `(("irony-mode" ,emacs-irony-mode)
4665 ("flycheck-mode" ,emacs-flycheck)
4666 ("emacs-company" ,emacs-company)))
4667 (synopsis "Live syntax checking frontend for Flycheck using irony-mode")
4668 (description "This package provides a frontend for Flycheck that lets
4669 irony-mode do the syntax checking.")
4670 (home-page "https://github.com/Sarcasm/flycheck-irony")
4671 (license license:gpl3+)))
4672
4673 (define-public emacs-irony-eldoc
4674 (package
4675 (name "emacs-irony-eldoc")
4676 (version (package-version emacs-irony-mode))
4677 (source
4678 (origin
4679 (method git-fetch)
4680 (uri (git-reference
4681 (url "https://github.com/ikirill/irony-eldoc")
4682 (commit "0df5831eaae264a25422b061eb2792aadde8b3f2")))
4683 (file-name (git-file-name name version))
4684 (sha256
4685 (base32 "1l5qpr66v1l12fb50yh73grb2rr85xxmbj19mm33b5rdrq2bqmmd"))))
4686 (build-system emacs-build-system)
4687 (inputs
4688 `(("irony-mode" ,emacs-irony-mode)))
4689 (synopsis "Eldoc integration for irony-mode")
4690 (description "Irony-eldoc is an eldoc extension that shows documentation
4691 for the current function or variable in the minibuffer.")
4692 (home-page "https://github.com/ikirill/irony-eldoc")
4693 (license license:gpl3+)))
4694
4695 (define-public emacs-company-quickhelp
4696 ;; XXX: release version 2.3.0 is on an unmaintained branch for some reason,
4697 ;; so we use the latest 2.2.0 commit instead
4698 (let ((commit "479676cade80a9f03802ca3d956591820ed5c537")
4699 (revision "1"))
4700 (package
4701 (name "emacs-company-quickhelp")
4702 (version (git-version "2.2.0" revision commit))
4703 (source
4704 (origin
4705 (method git-fetch)
4706 (uri (git-reference
4707 (url "https://github.com/expez/company-quickhelp")
4708 (commit commit)))
4709 (file-name (git-file-name name version))
4710 (sha256
4711 (base32 "0hbqpnaf4hnin3nmdzmfj3v22kk9a97b6zssqs96ns36d9h52xcp"))))
4712 (build-system emacs-build-system)
4713 (propagated-inputs
4714 `(("emacs-pos-tip" ,emacs-pos-tip)
4715 ("emacs-company" ,emacs-company)))
4716 (home-page "https://github.com/expez/company-quickhelp")
4717 (synopsis "Popup documentation for completion candidates")
4718 (description "@code{company-quickhelp} shows documentation for the
4719 completion candidate when using the Company text completion framework.")
4720 (license license:gpl3+))))
4721
4722 (define-public emacs-math-symbol-lists
4723 (let ((commit "dc7531cff0c845d5470a50c24d5d7309b2ced7eb")
4724 (revision "1"))
4725 (package
4726 (name "emacs-math-symbol-lists")
4727 (version (git-version "1.2.1" revision commit))
4728 (source
4729 (origin
4730 (method git-fetch)
4731 (uri (git-reference
4732 (url "https://github.com/vspinu/math-symbol-lists")
4733 (commit commit)))
4734 (file-name (git-file-name name version))
4735 (sha256
4736 (base32 "094m21i9rns6m59cmhxcivxxafbg52w8f8na4y3v47aq67zmhhqm"))))
4737 (build-system emacs-build-system)
4738 (home-page "https://github.com/vspinu/math-symbol-lists")
4739 (synopsis "Lists of Unicode math symbols and @code{LaTeX} commands")
4740 (description "This is a storage package used by completion engines like
4741 @code{company-math}.")
4742 (license license:gpl3+))))
4743
4744 (define-public emacs-company-coq
4745 (package
4746 (name "emacs-company-coq")
4747 (version "1.0.1")
4748 (source
4749 (origin
4750 (method git-fetch)
4751 (uri
4752 (git-reference
4753 (url "https://github.com/cpitclaudel/company-coq")
4754 (commit version)))
4755 (file-name (git-file-name name version))
4756 (sha256
4757 (base32 "0dxi4h8xqq5647k7h89s4pi8nwyj3brlhsckrv3p3b1g4dr6mk3b"))))
4758 (inputs
4759 `(("emacs-company" ,emacs-company)
4760 ("emacs-company-math" ,emacs-company-math)
4761 ("emacs-dash" ,emacs-dash)
4762 ("emacs-yasnippet" ,emacs-yasnippet)))
4763 (build-system emacs-build-system)
4764 (home-page "https://github.com/cpitclaudel/company-coq")
4765 (synopsis "Emacs extensions for Proof General's Coq mode")
4766 (description "This package includes a collection of Company mode backends
4767 for Proof-General's Coq mode, and many useful extensions to Proof-General. It
4768 features:
4769
4770 @itemize
4771 @item Prettification of operators, types, and subscripts,
4772 @item Auto-completion,
4773 @item Insertion of cases,
4774 @item Fully explicit intros,
4775 @item Outlines, code folding, and jumping to definition,
4776 @item Help with errors,
4777 @item and more.
4778 @end itemize")
4779 (license license:gpl3+)))
4780
4781 (define-public emacs-company-math
4782 (let ((commit "600e49449644f6835f9dc3501bc58461999e8ab9")
4783 (revision "1"))
4784 (package
4785 (name "emacs-company-math")
4786 (version (git-version "1.3" revision commit))
4787 (source
4788 (origin
4789 (method git-fetch)
4790 (uri (git-reference
4791 (url "https://github.com/vspinu/company-math")
4792 (commit commit)))
4793 (file-name (git-file-name name version))
4794 (sha256
4795 (base32
4796 "1ps2lpkzn8mjbpcbvvy1qz3xbgrh6951x8y9bsd1fm32drdph9lh"))))
4797 (build-system emacs-build-system)
4798 (propagated-inputs
4799 `(("emacs-math-symbol-lists" ,emacs-math-symbol-lists)
4800 ("emacs-company" ,emacs-company)))
4801 (home-page "https://github.com/vspinu/company-math")
4802 (synopsis "Completion backends for Unicode math symbols and @code{LaTeX} tags")
4803 (description "This package provides a backend for use with
4804 @code{company-mode} allowing for completion of common math symbols.")
4805 (license license:gpl3+))))
4806
4807 (define-public emacs-compdef
4808 (let ((commit "67104a38763cc819644f711248b170a43bce151b")
4809 (revision "2"))
4810 (package
4811 (name "emacs-compdef")
4812 (version (git-version "0.2" revision commit))
4813 (source
4814 (origin
4815 (method git-fetch)
4816 (uri (git-reference
4817 (url "https://gitlab.com/jjzmajic/compdef.git")
4818 (commit commit)))
4819 (file-name (git-file-name name version))
4820 (sha256
4821 (base32 "1f6y6cr67gps9jp5hd20xszfd3k26v70g6z4g5db6wdkvlnc2wkg"))))
4822 (build-system emacs-build-system)
4823 (home-page "https://gitlab.com/jjzmajic/compdef")
4824 (synopsis "Set local completion backends")
4825 (description "This package provides a function to cleanly set local
4826 completion backends according to mode, and integrates with
4827 @code{use-package}.")
4828 (license license:gpl3+))))
4829
4830 (define-public emacs-icomplete-vertical
4831 (package
4832 (name "emacs-icomplete-vertical")
4833 (version "0.1")
4834 (source
4835 (origin
4836 (method git-fetch)
4837 (uri (git-reference
4838 (url "https://github.com/oantolin/icomplete-vertical")
4839 (commit version)))
4840 (file-name (git-file-name name version))
4841 (sha256
4842 (base32
4843 "1bqnlvv1gvrjriazvzd3bq98r8ii6fqax0zznhvkl1ij5pf55a90"))))
4844 (build-system emacs-build-system)
4845 (home-page "https://github.com/oantolin/icomplete-vertical")
4846 (synopsis "Display icomplete candidates vertically")
4847 (description
4848 "This package defines a global minor mode to display Icomplete
4849 completion candidates vertically.")
4850 (license license:gpl3+)))
4851
4852 (define-public emacs-handle
4853 (let ((commit "51c050bc1c6e5caf0eb47ecd985daea1db7241ab")
4854 (revision "2"))
4855 (package
4856 (name "emacs-handle")
4857 (version (git-version "0.1" revision commit))
4858 (source
4859 (origin
4860 (method git-fetch)
4861 (uri (git-reference
4862 (url "https://gitlab.com/jjzmajic/handle.git")
4863 (commit commit)))
4864 (file-name (git-file-name name version))
4865 (sha256
4866 (base32 "14f15qzfmwdslml4rv37zb5d1lsjf0jibriz636hb7q7knx1n4sg"))))
4867 (build-system emacs-build-system)
4868 (propagated-inputs
4869 `(("emacs-parent-mode" ,emacs-parent-mode)))
4870 (home-page "https://gitlab.com/jjzmajic/handle")
4871 (synopsis "Handle generic functions across related major modes")
4872 (description "This package provides generic functions that specialize on
4873 major modes and intended purpose rather than on arguments. Different
4874 callables for tasks like expression evaluation, definition-jumping, and more
4875 can now be grouped accordingly and tried in sequence until one of them
4876 succeeds.")
4877 (license license:gpl3+))))
4878
4879 (define-public emacs-nswbuff
4880 (let ((commit "362da7f3687e2eb5bb11667347de85f4a9d002bc")
4881 (revision "1"))
4882 (package
4883 (name "emacs-nswbuff")
4884 (version (git-version "1.0" revision commit))
4885 (source
4886 (origin
4887 (method git-fetch)
4888 (uri (git-reference
4889 (url "https://github.com/joostkremers/nswbuff")
4890 (commit commit)))
4891 (file-name (git-file-name name version))
4892 (sha256
4893 (base32 "0l2xfz8z5qd4hz3kv6zn7h6qq3narkilri8a071y1n8j31jps4ma"))))
4894 (build-system emacs-build-system)
4895 (home-page "https://github.com/joostkremers/nswbuff")
4896 (synopsis "Quickly switch between buffers")
4897 (description "This package allows for navigating between buffers within
4898 a customizable list.")
4899 (license license:gpl3+))))
4900
4901 (define-public emacs-phi-search
4902 (let ((commit "9a089b8271cb1cff9640848850298c9ec855286c")
4903 (revision "1"))
4904 (package
4905 (name "emacs-phi-search")
4906 (version (git-version "20160630" revision commit))
4907 (source
4908 (origin
4909 (method git-fetch)
4910 (uri (git-reference
4911 (url "https://github.com/zk-phi/phi-search")
4912 (commit commit)))
4913 (file-name (git-file-name name version))
4914 (sha256
4915 (base32 "1gr5plcbrfdc4pglfj905s89hf8x0kc083h30wcnd81bnw9jwz1x"))))
4916 (build-system emacs-build-system)
4917 (home-page "https://github.com/zk-phi/phi-search")
4918 (synopsis "Interactive search compatible with @code{multiple-cursors}")
4919 (description "This package can be used with @code{multiple-cursors} to
4920 provide an incremental search that moves all fake cursors in sync.")
4921 (license license:gpl2+))))
4922
4923 (define-public emacs-phi-search-mc
4924 (let ((commit "7aa671910f766437089aec26c3aa7814222d1356")
4925 (revision "1"))
4926 (package
4927 (name "emacs-phi-search-mc")
4928 (version (git-version "2.2.1" revision commit))
4929 (source
4930 (origin
4931 (method git-fetch)
4932 (uri (git-reference
4933 (url "https://github.com/knu/phi-search-mc.el")
4934 (commit commit)))
4935 (file-name (git-file-name name version))
4936 (sha256
4937 (base32 "0wr86ad0yl52im6b9z0b9pzmhcn39qg5m9878yfv1nbxliw40lcd"))))
4938 (build-system emacs-build-system)
4939 (propagated-inputs
4940 `(("emacs-phi-search" ,emacs-phi-search)
4941 ("emacs-multiple-cursors" ,emacs-multiple-cursors)))
4942 (home-page "https://github.com/knu/phi-search-mc.el")
4943 (synopsis "Extend @code{phi-search} with additional
4944 @code{multiple-cursors} functionality")
4945 (description "This package provides further integration between
4946 @code{multiple-cursors} and @code{phi-search}, a package that allows for
4947 interactive searches to move multiple fake cursors.")
4948 (license license:bsd-2))))
4949
4950 (define-public emacs-multiple-cursors
4951 (package
4952 (name "emacs-multiple-cursors")
4953 (version "1.4.0")
4954 (source
4955 (origin
4956 (method git-fetch)
4957 (uri (git-reference
4958 (url "https://github.com/magnars/multiple-cursors.el")
4959 (commit version)))
4960 (file-name (git-file-name name version))
4961 (sha256
4962 (base32 "1ijgvzv5r44xqvz751fd5drbvrspapw6xwv47582w255j363r6ss"))))
4963 (build-system emacs-build-system)
4964 (home-page "https://github.com/magnars/multiple-cursors.el")
4965 (synopsis "Multiple cursors for Emacs")
4966 (description
4967 "This package adds support to Emacs for editing text with multiple
4968 simultaneous cursors.")
4969 (license license:gpl3+)))
4970
4971 (define-public emacs-mc-extras
4972 (let ((commit "053abc52181b8718559d7361a587bbb795faf164")
4973 (revision "1"))
4974 (package
4975 (name "emacs-mc-extras")
4976 (version (git-version "1.2.4" revision commit))
4977 (source
4978 (origin
4979 (method git-fetch)
4980 (uri (git-reference
4981 (url "https://github.com/knu/mc-extras.el")
4982 (commit commit)))
4983 (file-name (git-file-name name version))
4984 (sha256
4985 (base32 "16y48qrd20m20vypvys5jp4v4gc1qrqlkm75s1pk1r68i9zrw481"))))
4986 (build-system emacs-build-system)
4987 (propagated-inputs
4988 `(("emacs-multiple-cursors" ,emacs-multiple-cursors)))
4989 (home-page "https://github.com/knu/mc-extras.el")
4990 (synopsis "Extra functions for manipulating multiple cursors")
4991 (description
4992 "This package provides additional functions for
4993 @code{multiple-cursors}, including functions for marking s-expressions,
4994 comparing characters, removing cursors, and more.")
4995 (license license:bsd-2))))
4996
4997 (define-public emacs-typo
4998 (package
4999 (name "emacs-typo")
5000 (version "1.1")
5001 (home-page "https://github.com/jorgenschaefer/typoel")
5002 (source (origin
5003 (method git-fetch)
5004 (uri (git-reference
5005 (url home-page)
5006 (commit (string-append "v" version))))
5007 (file-name (git-file-name name version))
5008 (sha256
5009 (base32
5010 "1jhd4grch5iz12gyxwfbsgh4dmz5hj4bg4gnvphccg8dsnni05k2"))))
5011 (build-system emacs-build-system)
5012 (synopsis "Minor mode for typographic editing")
5013 (description
5014 "This package provides two Emacs modes, @code{typo-mode} and
5015 @code{typo-global-mode}. These modes automatically insert Unicode characters
5016 for quotation marks, dashes, and ellipses. For example, typing @kbd{\"}
5017 automatically inserts a Unicode opening or closing quotation mark, depending
5018 on context.")
5019 (license license:gpl3+)))
5020
5021 (define-public emacs-company-lsp
5022 (package
5023 (name "emacs-company-lsp")
5024 (version "2.1.0")
5025 (source (origin
5026 (method git-fetch)
5027 (uri (git-reference
5028 (url "https://github.com/tigersoldier/company-lsp")
5029 (commit version)))
5030 (file-name (git-file-name name version))
5031 (sha256
5032 (base32
5033 "1hy1x2w0yp5brm7714d1hziz3rpkywb5jp3yj78ibmi9ifny9vri"))))
5034 (build-system emacs-build-system)
5035 (propagated-inputs
5036 `(("emacs-dash" ,emacs-dash)
5037 ("emacs-lsp-mode" ,emacs-lsp-mode)
5038 ("emacs-company" ,emacs-company)
5039 ("emacs-s" ,emacs-s)
5040 ("emacs-dash" ,emacs-dash)))
5041 (native-inputs
5042 `(("emacs-buttercup" ,emacs-buttercup)))
5043 (arguments
5044 `(#:tests? #t
5045 #:test-command '("buttercup" "-L" ".")))
5046 (home-page "https://github.com/tigersoldier/company-lsp")
5047 (synopsis "Completion for @code{lsp-mode}")
5048 (description
5049 "This package provides completion features that are not possible with
5050 @code{lsp-mode} and @code{company-capf} alone, including support for trigger
5051 characters and asynchronous fetching of completion candidates.")
5052 (license license:gpl3+)))
5053
5054 (define-public emacs-scala-mode
5055 (package
5056 (name "emacs-scala-mode")
5057 (version "1.1.0")
5058 (source
5059 (origin
5060 (method git-fetch)
5061 (uri (git-reference
5062 (url "https://github.com/hvesalai/emacs-scala-mode")
5063 (commit (string-append "v" version))))
5064 (file-name (git-file-name name version))
5065 (sha256
5066 (base32 "1072lsin7dxadc0xyhy42wd0cw549axbbd4dy95wfmfcc1xbzjwv"))))
5067 (build-system emacs-build-system)
5068 (home-page "https://github.com/hvesalai/emacs-scala-mode")
5069 (synopsis "Emacs major mode for Scala")
5070 (description
5071 "This package provides basic Emacs support for the Scala language,
5072 including: local indenting of code, comments and multi-line strings, motion
5073 commands and highlighting.")
5074 ;; There are no copyright headers in the source code. The LICENSE file
5075 ;; indicates GPL3.
5076 (license license:gpl3)))
5077
5078 (define-public emacs-scheme-complete
5079 (let ((commit "9b5cf224bf2a5994bc6d5b152ff487517f1a9bb5"))
5080 (package
5081 (name "emacs-scheme-complete")
5082 (version (string-append "20151223." (string-take commit 8)))
5083 (source
5084 (origin
5085 (method git-fetch)
5086 (uri (git-reference
5087 (url "https://github.com/ashinn/scheme-complete")
5088 (commit commit)))
5089 (file-name (git-file-name name version))
5090 (sha256
5091 (base32
5092 "141wn9l0m33w0g3dqmx8nxbfdny1r5xbr6ak61rsz21bk0qafs7x"))
5093 (patches
5094 (search-patches "emacs-scheme-complete-scheme-r5rs-info.patch"))))
5095 (build-system emacs-build-system)
5096 (home-page "https://github.com/ashinn/scheme-complete")
5097 (synopsis "Smart tab completion for Scheme in Emacs")
5098 (description
5099 "This file provides a single function, @code{scheme-smart-complete},
5100 which you can use for intelligent, context-sensitive completion for any Scheme
5101 implementation in Emacs. To use it just load this file and bind that function
5102 to a key in your preferred mode.")
5103 (license license:public-domain))))
5104
5105 (define-public emacs-scel
5106 (let ((version "20170629")
5107 (revision "1")
5108 (commit "aeea3ad4be9306d14c3a734a4ff54fee10ac135b"))
5109 (package
5110 (name "emacs-scel")
5111 (version (git-version version revision commit))
5112 (source
5113 (origin
5114 (method git-fetch)
5115 (uri (git-reference
5116 (url "https://github.com/supercollider/scel")
5117 (commit commit)))
5118 (file-name (git-file-name name version))
5119 (sha256
5120 (base32
5121 "0jvmzs1lsjyndqshhii2y4mnr3wghai26i3p75453zrpxpg0zvvw"))))
5122 (build-system emacs-build-system)
5123 (arguments
5124 `(#:modules ((guix build emacs-build-system)
5125 ((guix build cmake-build-system) #:prefix cmake:)
5126 (guix build utils))
5127 #:imported-modules (,@%emacs-build-system-modules
5128 (guix build cmake-build-system))
5129 #:phases
5130 (modify-phases %standard-phases
5131 (add-after 'unpack 'configure
5132 (lambda* (#:key outputs #:allow-other-keys)
5133 (substitute* "el/CMakeLists.txt"
5134 (("share/emacs/site-lisp/SuperCollider")
5135 (string-append
5136 "share/emacs/site-lisp")))
5137 ((assoc-ref cmake:%standard-phases 'configure)
5138 #:outputs outputs
5139 #:configure-flags '("-DSC_EL_BYTECOMPILE=OFF"))))
5140 (add-after 'add-source-to-load-path 'add-el-dir-to-emacs-load-path
5141 (lambda _
5142 (setenv "EMACSLOADPATH"
5143 (string-append (getcwd) "/el:" (getenv "EMACSLOADPATH")))
5144 #t))
5145 (replace 'install (assoc-ref cmake:%standard-phases 'install)))))
5146 (inputs
5147 `(("supercollider" ,supercollider)))
5148 (native-inputs
5149 `(("cmake" ,cmake-minimal)))
5150 (home-page "https://github.com/supercollider/scel")
5151 (synopsis "SuperCollider Emacs interface")
5152 (description "@code{emacs-scel} is an Emacs interface to SuperCollider.
5153 SuperCollider is a platform for audio synthesis and algorithmic composition.")
5154 (license license:gpl2+))))
5155
5156 (define-public emacs-company-auctex
5157 (let ((commit "48c42c58ce2f0e693301b0cb2d085055410c1b25")
5158 (revision "1"))
5159 (package
5160 (name "emacs-company-auctex")
5161 (version (git-version "0" revision commit))
5162 (source (origin
5163 (method git-fetch)
5164 (uri (git-reference
5165 (url "https://github.com/alexeyr/company-auctex")
5166 (commit commit)))
5167 (file-name (git-file-name name version))
5168 (sha256
5169 (base32
5170 "10qn7frn5wcmrlci3v6iliqzj7r9dls87h9zp3xkgrgn4bqprfp8"))))
5171 (build-system emacs-build-system)
5172 (propagated-inputs
5173 `(("emacs-yasnippet" ,emacs-yasnippet)
5174 ("emacs-auctex" ,emacs-auctex)
5175 ("emacs-company" ,emacs-company)))
5176 (home-page "https://github.com/alexeyr/company-auctex/")
5177 (synopsis "Completion for @code{AUCTeX}")
5178 (description
5179 "This package provides a group of backends permitting auto-completion
5180 for @code{AUCTeX}.")
5181 (license license:gpl3+))))
5182
5183 (define-public emacs-mit-scheme-doc
5184 (package
5185 (name "emacs-mit-scheme-doc")
5186 (version "20140203")
5187 (source
5188 (origin
5189 (modules '((guix build utils)))
5190 (snippet
5191 ;; keep only file of interest
5192 '(begin
5193 (for-each delete-file '("dot-emacs.el" "Makefile"))
5194 (install-file "6.945-config/mit-scheme-doc.el" ".")
5195 (delete-file-recursively "6.945-config")
5196 #t))
5197 (file-name (string-append name "-" version ".tar.bz2"))
5198 (method url-fetch)
5199 (uri (string-append "http://groups.csail.mit.edu/mac/users/gjs/"
5200 "6.945/dont-panic/emacs-basic-config.tar.bz2"))
5201 (sha256
5202 (base32
5203 "0dqidg2bd66pawqfarvwca93w5gqf9mikn1k2a2rmd9ymfjpziq1"))))
5204 (build-system emacs-build-system)
5205 (inputs `(("mit-scheme" ,mit-scheme)))
5206 (arguments
5207 `(#:phases
5208 (modify-phases %standard-phases
5209 (add-after 'unpack 'configure-doc
5210 (lambda* (#:key inputs #:allow-other-keys)
5211 (let* ((mit-scheme-dir (assoc-ref inputs "mit-scheme"))
5212 (doc-dir (string-append mit-scheme-dir "/share/doc/"
5213 "mit-scheme-"
5214 ,(package-version mit-scheme))))
5215 (substitute* "mit-scheme-doc.el"
5216 (("http://www\\.gnu\\.org/software/mit-scheme/documentation/mit-scheme-ref/")
5217 (string-append "file:" doc-dir "/mit-scheme-ref/")))))))))
5218 (home-page "https://groups.csail.mit.edu/mac/users/gjs/6.945/dont-panic/")
5219 (synopsis "MIT-Scheme documentation lookup for Emacs")
5220 (description
5221 "This package provides a set of Emacs functions to search definitions of
5222 identifiers in the MIT-Scheme documentation.")
5223 (license license:gpl2+)))
5224
5225 (define-public emacs-constants
5226 (package
5227 (name "emacs-constants")
5228 (version "2.6")
5229 (home-page "https://staff.fnwi.uva.nl/c.dominik/Tools/constants")
5230 (source
5231 (origin
5232 (method git-fetch)
5233 (uri (git-reference
5234 (url "https://github.com/fedeinthemix/emacs-constants")
5235 (commit (string-append "v" version))))
5236 (file-name (git-file-name name version))
5237 (sha256
5238 (base32 "0f5sh6b45a8p9kancjp9jk44ws8ww6x50a0i6zgyyvr7dbvii1a0"))))
5239 (build-system emacs-build-system)
5240 (synopsis "Enter definition of constants into an Emacs buffer")
5241 (description
5242 "This package provides functions for inserting the definition of natural
5243 constants and units into an Emacs buffer.")
5244 (license license:gpl2+)))
5245
5246 (define-public emacs-tagedit
5247 (package
5248 (name "emacs-tagedit")
5249 (version "1.4.0")
5250 (source
5251 (origin
5252 (method git-fetch)
5253 (uri (git-reference
5254 (url "https://github.com/magnars/tagedit")
5255 (commit version)))
5256 (file-name (git-file-name name version))
5257 (sha256
5258 (base32 "0kq40g46s8kgiafrhdq99h79rz9h5fvgz59k7ralmf86bl4sdmdb"))))
5259 (build-system emacs-build-system)
5260 (propagated-inputs
5261 `(("emacs-s" ,emacs-s)
5262 ("emacs-dash" ,emacs-dash)))
5263 (home-page "https://github.com/magnars/tagedit")
5264 (synopsis "Some paredit-like features for html-mode")
5265 (description
5266 "This package provides a collection of paredit-like functions for editing
5267 in @code{html-mode}.")
5268 (license license:gpl3+)))
5269
5270 (define-public emacs-slime
5271 (package
5272 (name "emacs-slime")
5273 (version "2.25")
5274 (source
5275 (origin
5276 (method git-fetch)
5277 (uri (git-reference
5278 (url "https://github.com/slime/slime")
5279 (commit (string-append "v" version))))
5280 (file-name (git-file-name name version))
5281 (sha256
5282 (base32 "0rz54943cbs9lvpc8hnyw5ka60f3bi8x4xykk8pq0lpmv1zbij1x"))))
5283 (build-system emacs-build-system)
5284 (native-inputs
5285 `(("texinfo" ,texinfo)))
5286 (arguments
5287 `(#:include '("\\.el$" "\\.lisp$" "\\.asd$" "contrib")
5288 #:exclude '("^slime-tests.el" "^contrib/test/"
5289 "^contrib/Makefile$" "^contrib/README.md$")
5290 #:phases
5291 (modify-phases %standard-phases
5292 (add-after 'unpack 'make-git-checkout-writable
5293 (lambda _
5294 (for-each make-file-writable (find-files "."))
5295 #t))
5296 (add-before 'install 'configure
5297 (lambda* _
5298 (emacs-substitute-variables "slime.el"
5299 ("inferior-lisp-program" "sbcl"))
5300 #t))
5301 (add-before 'install 'install-doc
5302 (lambda* (#:key outputs #:allow-other-keys)
5303 (let* ((out (assoc-ref outputs "out"))
5304 (info-dir (string-append out "/share/info"))
5305 (doc-dir (string-append out "/share/doc/"
5306 ,name "-" ,version))
5307 (doc-files '("doc/slime-refcard.pdf"
5308 "README.md" "NEWS" "PROBLEMS"
5309 "CONTRIBUTING.md")))
5310 (with-directory-excursion "doc"
5311 (substitute* "Makefile"
5312 (("infodir=/usr/local/info")
5313 (string-append "infodir=" info-dir)))
5314 (invoke "make" "html/index.html")
5315 (invoke "make" "slime.info")
5316 (install-file "slime.info" info-dir)
5317 (copy-recursively "html" (string-append doc-dir "/html")))
5318 (for-each (lambda (f)
5319 (install-file f doc-dir)
5320 (delete-file f))
5321 doc-files)
5322 (delete-file-recursively "doc")
5323 #t))))))
5324 (home-page "https://github.com/slime/slime")
5325 (synopsis "Superior Lisp Interaction Mode for Emacs")
5326 (description
5327 "SLIME extends Emacs with support for interactive programming in
5328 Common Lisp. The features are centered around @command{slime-mode},
5329 an Emacs minor mode that complements the standard @command{lisp-mode}.
5330 While lisp-mode supports editing Lisp source files, @command{slime-mode}
5331 adds support for interacting with a running Common Lisp process
5332 for compilation, debugging, documentation lookup, and so on.")
5333 (license (list license:gpl2+ license:public-domain))))
5334
5335 (define-public emacs-popup
5336 (package
5337 (name "emacs-popup")
5338 (version "0.5.8")
5339 (source
5340 (origin
5341 (method git-fetch)
5342 (uri (git-reference
5343 (url "https://github.com/auto-complete/popup-el")
5344 (commit (string-append "v" version))))
5345 (file-name (git-file-name name version))
5346 (sha256
5347 (base32 "0qrsz4z9q2bfq9xv4n94mvyslm232v2ql9r1fjycx7rnmpqggiwl"))))
5348 (build-system emacs-build-system)
5349 (home-page "https://github.com/auto-complete/popup-el")
5350 (synopsis "Visual Popup User Interface for Emacs")
5351 (description
5352 "Popup.el is a visual popup user interface library for Emacs.
5353 This provides a basic API and common UI widgets such as popup tooltips
5354 and popup menus.")
5355 (license license:gpl3+)))
5356
5357 (define-public emacs-python-environment
5358 (package
5359 (name "emacs-python-environment")
5360 (version "0.0.2")
5361 (source
5362 (origin
5363 (method git-fetch)
5364 (uri (git-reference
5365 (url "https://github.com/tkf/emacs-python-environment/")
5366 (commit version)))
5367 (file-name (git-file-name name version))
5368 (sha256
5369 (base32 "0q6bib9nr6xiq6npzbngyfcjk87yyvwzq1zirr3z1h5wadm34lsk"))))
5370 (build-system emacs-build-system)
5371 (propagated-inputs
5372 `(("emacs-deferred" ,emacs-deferred)))
5373 (home-page "https://github.com/tkf/emacs-python-environment")
5374 (synopsis "Provides a @code{virtualenv} API in Emacs Lisp")
5375 (description
5376 "This package permits automated installation of tools written in Python.")
5377 (license license:gpl3+)))
5378
5379 (define-public emacs-jedi
5380 (package
5381 (name "emacs-jedi")
5382 (version "0.2.8")
5383 (source (origin
5384 (method git-fetch)
5385 (uri (git-reference
5386 (url "https://github.com/tkf/emacs-jedi/")
5387 (commit (string-append "v" version))))
5388 (file-name (git-file-name name version))
5389 (sha256
5390 (base32
5391 "1bckxppfzd5gwn0aw4h86igb7igal9axqncq7j8zmflg7zppncf1"))))
5392 (build-system emacs-build-system)
5393 (native-inputs
5394 `(("emacs-mocker" ,emacs-mocker)))
5395 (propagated-inputs
5396 `(("emacs-auto-complete" ,emacs-auto-complete)
5397 ("emacs-python-environment" ,emacs-python-environment)
5398 ("emacs-epc" ,emacs-epc)))
5399 (home-page "https://github.com/tkf/emacs-jedi")
5400 (synopsis "Provides Python completion in Emacs")
5401 (description
5402 "This package provides completion in Python buffers and also helps find
5403 the locations of docstrings, arguments, and functions.")
5404 (license license:gpl3+)))
5405
5406 (define-public emacs-company-jedi
5407 (package
5408 (name "emacs-company-jedi")
5409 (version "0.04")
5410 (source (origin
5411 (method git-fetch)
5412 (uri (git-reference
5413 (url "https://github.com/syohex/emacs-company-jedi")
5414 (commit version)))
5415 (file-name (git-file-name name version))
5416 (sha256
5417 (base32
5418 "1ihqapp4dv92794rsgyq0rmhwika60cmradqd4bn9b72ss6plxs1"))))
5419 (build-system emacs-build-system)
5420 (propagated-inputs
5421 `(("emacs-jedi" ,emacs-jedi)
5422 ("emacs-company" ,emacs-company)))
5423 (home-page "https://github.com/syohex/emacs-company-jedi")
5424 (synopsis "Provides Python completion in @code{company-mode}")
5425 (description
5426 "This package provides a Company backend for Python.")
5427 (license license:gpl3+)))
5428
5429 (define-public emacs-puppet-mode
5430 (let ((commit "b3ed5057166a4f49dfa9be638523a348b55a2fd2")
5431 (revision "1"))
5432 (package
5433 (name "emacs-puppet-mode")
5434 ;; The last release, 0.3 was several years ago, and there have been many
5435 ;; commits since
5436 (version (git-version "0.3" revision commit))
5437 (source
5438 (origin
5439 (method url-fetch)
5440 (uri (string-append
5441 "https://raw.githubusercontent.com/voxpupuli/puppet-mode/"
5442 commit "/puppet-mode.el"))
5443 (sha256
5444 (base32
5445 "1indycxawsl0p2aqqg754f6735q3cmah9vd886rpn0ncc3ipi1xm"))))
5446 (build-system emacs-build-system)
5447 (home-page "https://github.com/voxpupuli/puppet-mode")
5448 (synopsis "Emacs major mode for the Puppet configuration language")
5449 (description
5450 "This package provides support for the Puppet configuration language,
5451 including syntax highlighting, indentation of expressions and statements,
5452 linting of manifests and integration with Puppet Debugger.")
5453 ;; Also incorporates work covered by the Apache License, Version 2.0
5454 (license license:gpl3+))))
5455
5456 (define-public emacs-god-mode
5457 (package
5458 (name "emacs-god-mode")
5459 (version "2.17.0")
5460 (source
5461 (origin
5462 (method git-fetch)
5463 (uri (git-reference
5464 (url "https://github.com/chrisdone/god-mode")
5465 (commit version)))
5466 (file-name (git-file-name name version))
5467 (sha256
5468 (base32
5469 "1d2nrj35fzhnycchi0b7m5mbk5fyq7bgpbkkvc5xzqafclrsnapi"))))
5470 (build-system emacs-build-system)
5471 (home-page "https://github.com/chrisdone/god-mode")
5472 (synopsis "Minor mode for entering commands without modifier keys")
5473 (description
5474 "This package provides a global minor mode for entering Emacs commands
5475 without modifier keys. It's similar to Vim's separation of commands and
5476 insertion mode. When enabled all keys are implicitly prefixed with
5477 @samp{C-} (among other helpful shortcuts).")
5478 (license license:gpl3+)))
5479
5480 (define-public emacs-jinja2-mode
5481 (package
5482 (name "emacs-jinja2-mode")
5483 (version "0.2")
5484 (source
5485 (origin
5486 (method git-fetch)
5487 (uri (git-reference
5488 (url "https://github.com/paradoxxxzero/jinja2-mode")
5489 (commit (string-append "v" version))))
5490 (file-name (git-file-name name version))
5491 (sha256
5492 (base32 "0l26wcy496k6xk7q5sf905xir0p73ziy6c44is77854lv3y0z381"))))
5493 (build-system emacs-build-system)
5494 (home-page "https://github.com/paradoxxxzero/jinja2-mode")
5495 (synopsis "Major mode for jinja2")
5496 (description
5497 "Emacs major mode for jinja2 with: syntax highlighting,
5498 sgml/html integration, and indentation (working with sgml).")
5499 (license license:gpl3+)))
5500
5501 (define-public emacs-company-cabal
5502 ;; The latest version is 0.3.0, but no release has been provided after 0.2.1.
5503 (let ((commit "62112a7259e24bd6c08885629a185afe512b7d3d")
5504 (revision "1"))
5505 (package
5506 (name "emacs-company-cabal")
5507 (version (git-version "0.3.0" revision commit))
5508 (source (origin
5509 (method git-fetch)
5510 (uri (git-reference
5511 (url "https://github.com/iquiw/company-cabal/")
5512 (commit commit)))
5513 (file-name (git-file-name name version))
5514 (sha256
5515 (base32
5516 "1gf45xwjzdm8i4q6c6khk4dbg1mmp2r0awz2sjr4dcr2dbd1n7mg"))))
5517 (build-system emacs-build-system)
5518 (propagated-inputs
5519 `(("emacs-company" ,emacs-company)))
5520 (arguments
5521 `(#:include (cons "^tools\\/" %default-include)))
5522 (home-page "https://github.com/iquiw/company-cabal/")
5523 (synopsis "Company completion for Haskell Cabal files")
5524 (description
5525 "This package allows for completion of field names, section names,
5526 field values, and more within @code{haskell-cabal-mode}.")
5527 (license license:gpl3+))))
5528
5529 (define-public emacs-rfcview
5530 (package
5531 (name "emacs-rfcview")
5532 (version "0.13")
5533 (home-page "http://www.loveshack.ukfsn.org/emacs")
5534 (source (origin
5535 (method url-fetch)
5536 (uri "http://www.loveshack.ukfsn.org/emacs/rfcview.el")
5537 (sha256
5538 (base32
5539 "0ympj5rxig383zl2jf0pzdsa80nnq0dpvjiriq0ivfi98fj7kxbz"))))
5540 (build-system emacs-build-system)
5541 (synopsis "Prettify Request for Comments (RFC) documents")
5542 (description "The Internet Engineering Task Force (IETF) and the Internet
5543 Society (ISOC) publish various Internet-related protocols and specifications
5544 as \"Request for Comments\" (RFC) documents and Internet Standard (STD)
5545 documents. RFCs and STDs are published in a simple text form. This package
5546 provides an Emacs major mode, rfcview-mode, which makes it more pleasant to
5547 read these documents in Emacs. It prettifies the text and adds
5548 hyperlinks/menus for easier navigation. It also provides functions for
5549 browsing the index of RFC documents and fetching them from remote servers or
5550 local directories.")
5551 (license license:gpl3+)))
5552
5553 (define-public emacs-ffap-rfc-space
5554 (package
5555 (name "emacs-ffap-rfc-space")
5556 (version "12")
5557 (home-page "https://user42.tuxfamily.org/ffap-rfc-space/index.html")
5558 (source (origin
5559 (method url-fetch)
5560 (uri "http://download.tuxfamily.org/user42/ffap-rfc-space.el")
5561 (sha256
5562 (base32
5563 "1iv61dv57a73mdps7rn6zmgz7nqh14v0ninidyrasy45b1nv6gck"))))
5564 (build-system emacs-build-system)
5565 (synopsis "Make ffap recognize an RFC with a space before its number")
5566 (description "The Internet Engineering Task Force (IETF) and the
5567 Internet Society (ISOC) publish various Internet-related protocols and
5568 specifications as \"Request for Comments\" (RFC) documents. The
5569 built-in Emacs module \"ffap\" (Find File at Point) has the ability to
5570 recognize names at point which look like \"RFC1234\" and \"RFC-1234\"
5571 and load the appropriate RFC from a remote server. However, it fails
5572 to recognize a name like \"RFC 1234\". This package enhances ffap so
5573 that it correctly finds RFCs even when a space appears before the
5574 number.")
5575 (license license:gpl3+)))
5576
5577 (define-public emacs-feature-mode
5578 (let ((version "20190801")
5579 (revision "1")
5580 (commit "11ae1671629bfedaa553c7b819676d64eb320992"))
5581 (package
5582 (name "emacs-feature-mode")
5583 (version (git-version version revision commit))
5584 (source (origin
5585 (method git-fetch)
5586 (uri (git-reference
5587 (url "https://github.com/michaelklishin/cucumber.el")
5588 (commit commit)))
5589 (file-name (git-file-name name version))
5590 (sha256
5591 (base32
5592 "0yd4gkxz9xcbgibfgr8apsid3f83nmg5jgqk5nql0linj5gymc28"))))
5593 (build-system emacs-build-system)
5594 (arguments
5595 `(#:include (cons* "^features\\/" "snippets\\/" "^support\\/"
5596 %default-include)))
5597 (home-page "https://github.com/michaelklishin/cucumber.el/")
5598 (synopsis "Emacs mode for editing Gherkin plain text user stories")
5599 (description "Major mode for editing Gherkin (popularized by the
5600 Cucumber tool) user stories. Also known by the name @code{cucumber.el}.")
5601 (license license:gpl2+))))
5602
5603 (define-public emacs-org-bullets
5604 (package
5605 (name "emacs-org-bullets")
5606 (version "0.2.4")
5607 (source
5608 (origin
5609 (method git-fetch)
5610 (uri (git-reference
5611 (url "https://github.com/sabof/org-bullets")
5612 (commit version)))
5613 (file-name (git-file-name name version))
5614 (sha256
5615 (base32 "10nr4sjffnqbllv6gmak6pviyynrb7pi5nvrq331h5alm3xcpq0w"))))
5616 (build-system emacs-build-system)
5617 (home-page "https://github.com/sabof/org-bullets")
5618 (synopsis "Show bullets in org-mode as UTF-8 characters")
5619 (description
5620 "This package provides an Emacs minor mode causing bullets in
5621 @code{org-mode} to be rendered as UTF-8 characters.")
5622 (license license:gpl3+)))
5623
5624 (define-public emacs-org-drill
5625 (package
5626 (name "emacs-org-drill")
5627 (version "2.7.0")
5628 (source
5629 (origin
5630 (method git-fetch)
5631 (uri (git-reference
5632 (url "https://gitlab.com/phillord/org-drill")
5633 (commit version)))
5634 (file-name (git-file-name name version))
5635 (sha256
5636 (base32 "13y302lyscdqrba1sfx60yf5ji2xi7fbsvjsjbw7hiz63kg6rccy"))))
5637 (build-system emacs-build-system)
5638 (propagated-inputs
5639 `(("emacs-org" ,emacs-org)
5640 ("emacs-persist" ,emacs-persist)))
5641 (home-page "https://gitlab.com/phillord/org-drill")
5642 (synopsis "Flash card memorization system using Org mode")
5643 (description
5644 "This package uses spaced repetition algorithms to conduct interactive
5645 drill sessions to aid in memorization. In these sessions you are shown flash
5646 cards created in Org mode.")
5647 (license license:gpl3+)))
5648
5649 (define-public emacs-org-superstar
5650 (package
5651 (name "emacs-org-superstar")
5652 (version "1.2.1")
5653 (source
5654 (origin
5655 (method git-fetch)
5656 (uri (git-reference
5657 (url "https://github.com/integral-dw/org-superstar-mode")
5658 (commit (string-append "v" version))))
5659 (file-name (git-file-name name version))
5660 (sha256
5661 (base32 "14w06v76xi4f6hpq6xzicrjjv0b802g5zc9as4mpimfy5gx2xpm0"))))
5662 (build-system emacs-build-system)
5663 (propagated-inputs
5664 `(("emacs-org" ,emacs-org)))
5665 (home-page "https://github.com/integral-dw/org-superstar-mode")
5666 (synopsis "Prettify headings and plain lists in Org mode")
5667 (description "This package prettifies headings and plain lists in
5668 Org mode. It is a direct descendant of @code{org-bullets}, with most
5669 of the code base completely rewritten.
5670
5671 Currently, this package prettifies Org heading lines by:
5672 @itemize
5673 @item replacing trailing bullets by UTF-8 bullets,
5674 @item hiding leading stars, customizing their look or removing them from vision,
5675 @item applying a custom face to the header bullet,
5676 @item applying a custom face to the leading bullets,
5677 @item using double-bullets for inline tasks,
5678 @item (optional) using special bullets for TODO keywords.
5679 @end itemize
5680
5681 It also prettifies Org plain list bullets by:
5682 @itemize
5683 @item replacing each bullet type (*, + and -) with UTF-8 bullets,
5684 @item applying a custom face to item bullets.
5685 @end itemize
5686
5687 Features degrade gracefully when viewed from terminal.")
5688 (license license:gpl3+)))
5689
5690 (define-public emacs-org-pomodoro
5691 ;; Last release version was from 2016.
5692 (let ((commit "aa07c11318f91219336197e62c47bc7a3d090479")
5693 (revision "1"))
5694 (package
5695 (name "emacs-org-pomodoro")
5696 (version (git-version "2.1.0" revision commit))
5697 (source
5698 (origin
5699 (method git-fetch)
5700 (uri (git-reference
5701 (url "https://github.com/marcinkoziej/org-pomodoro")
5702 (commit commit)))
5703 (file-name (git-file-name name version))
5704 (sha256
5705 (base32 "0nbprh2nhnmb7ngp9ndr6zr37ashcsvpi5slv7a37x1dl7j6w1k4"))))
5706 (build-system emacs-build-system)
5707 (propagated-inputs
5708 `(("emacs-alert" ,emacs-alert)))
5709 (arguments
5710 `(#:include (cons "^resources\\/" %default-include)
5711 #:tests? #t
5712 #:test-command '("emacs" "--batch"
5713 "-l" "org-pomodoro-tests.el"
5714 "-f" "ert-run-tests-batch-and-exit")
5715 #:phases
5716 (modify-phases %standard-phases
5717 (add-before 'check 'make-tests-writable
5718 (lambda _
5719 (make-file-writable "org-pomodoro-tests.el")
5720 #t))
5721 (add-before 'check 'add-require
5722 (lambda _
5723 (emacs-batch-edit-file "org-pomodoro-tests.el"
5724 `(progn (progn (goto-char (point-min))
5725 (re-search-forward
5726 "ert-deftest")
5727 (beginning-of-line)
5728 (forward-line -1)
5729 (insert "(require 'org-pomodoro)"))
5730 (basic-save-buffer)))
5731 #t)))))
5732 (home-page "https://github.com/marcinkoziej/org-pomodoro")
5733 (synopsis "Pomodoro technique for org-mode")
5734 (description "@code{emacs-org-pomodoro} adds very basic support for
5735 Pomodoro technique in Emacs org-mode.
5736
5737 Run @code{M-x org-pomodoro} for the task at point or select one of the
5738 last tasks that you clocked time for. Each clocked-in pomodoro starts
5739 a timer of 25 minutes and after each pomodoro a break timer of 5
5740 minutes is started automatically. Every 4 breaks a long break is
5741 started with 20 minutes. All values are customizable.")
5742 (license license:gpl3+))))
5743
5744 (define-public emacs-org-sidebar
5745 (package
5746 (name "emacs-org-sidebar")
5747 (version "0.2")
5748 (source
5749 (origin
5750 (method git-fetch)
5751 (uri (git-reference
5752 (url "https://github.com/alphapapa/org-sidebar")
5753 (commit version)))
5754 (file-name (git-file-name name version))
5755 (sha256
5756 (base32 "106h06vjfbqfj761vbxwymd6612ds8c6fk053yzgbrqzm3hn2c03"))))
5757 (build-system emacs-build-system)
5758 (propagated-inputs
5759 `(("emacs-dash" ,emacs-dash)
5760 ("emacs-org-super-agenda" ,emacs-org-super-agenda)
5761 ("emacs-org" ,emacs-org)
5762 ("emacs-org-ql" ,emacs-org-ql)
5763 ("emacs-s" ,emacs-s)))
5764 (home-page "https://github.com/alphapapa/org-sidebar")
5765 (synopsis "Helpful sidebar for Org buffers")
5766 (description "This package provides a sidebar for Org buffers. At the
5767 top is a chronological list of scheduled and deadlined tasks in the current
5768 buffer (similar to the Org agenda ,but without all its features), and below
5769 that is a list of all other non-done to-do items. If the buffer is narrowed,
5770 the sidebar only shows items in the narrowed portion; this allows seeing an
5771 overview of tasks in a subtree.")
5772 (license license:gpl3+)))
5773
5774 (define-public emacs-org-trello
5775 (package
5776 (name "emacs-org-trello")
5777 (version "0.8.1")
5778 (source
5779 (origin
5780 (method git-fetch)
5781 (uri (git-reference
5782 (url "https://github.com/org-trello/org-trello")
5783 (commit version)))
5784 (file-name (git-file-name name version))
5785 (sha256
5786 (base32
5787 "02gx3kv4mkij69ln8x8wf9n28x17pbb4kv85v78d3lxph7ykqimc"))))
5788 (build-system emacs-build-system)
5789 (propagated-inputs
5790 `(("emacs-dash" ,emacs-dash)
5791 ("emacs-deferred" ,emacs-deferred)
5792 ("emacs-f" ,emacs-f)
5793 ("emacs-helm" ,emacs-helm)
5794 ("emacs-request" ,emacs-request)
5795 ("emacs-s" ,emacs-s)))
5796 (home-page "https://org-trello.github.io")
5797 (synopsis "Emacs minor mode for interacting with Trello")
5798 (description "This package provides an Emacs minor mode to extend
5799 @code{org-mode} with Trello abilities. Trello is an online project
5800 organizer.")
5801 (license license:gpl3+)))
5802
5803 (define-public emacs-org-tanglesync
5804 (let ((commit "d99181f173b4e55b4e835d99fcd415e62beb047f")
5805 (revision "2"))
5806 (package
5807 (name "emacs-org-tanglesync")
5808 (version (git-version "0.6" revision commit))
5809 (source
5810 (origin
5811 (method git-fetch)
5812 (uri (git-reference
5813 (url "https://github.com/mtekman/org-tanglesync.el")
5814 (commit commit)))
5815 (file-name (git-file-name name version))
5816 (sha256
5817 (base32 "0x94gy1bgfd1f3p9w2bfrqj11bwy9ql0cpi1gw6srpj7kykx0lml"))))
5818 (build-system emacs-build-system)
5819 (propagated-inputs
5820 `(("emacs-org" ,emacs-org)))
5821 (home-page "https://github.com/mtekman/org-tanglesync.el")
5822 (synopsis "Sync Org source blocks with tangled external files")
5823 (description "This package automatically pulls changes from source code
5824 to their corresponding tangled blocks.")
5825 (license license:gpl3+))))
5826
5827 (define-public emacs-company-flow
5828 (let ((commit "76ef585c70d2a3206c2eadf24ba61e59124c3a16")
5829 (revision "1"))
5830 (package
5831 (name "emacs-company-flow")
5832 (version (git-version "0.1.0" revision commit))
5833 (source (origin
5834 (method git-fetch)
5835 (uri (git-reference
5836 (url "https://github.com/aaronjensen/company-flow/")
5837 (commit commit)))
5838 (file-name (git-file-name name version))
5839 (sha256
5840 (base32
5841 "0zs9cblnbkxa0dxw4lyllmybqizxcdx96gv8jlhx20nrjpi78piw"))))
5842 (build-system emacs-build-system)
5843 (propagated-inputs
5844 `(("emacs-company" ,emacs-company)
5845 ("emacs-dash" ,emacs-dash)))
5846 (home-page "https://github.com/aaronjensen/company-flow/")
5847 (synopsis "Flow backend for @code{company-mode}")
5848 (description
5849 "This package provides completion for JavaScript files utilizing Flow.")
5850 (license license:gpl3+))))
5851
5852 (define-public emacs-atom-one-dark-theme
5853 (let ((commit "1f1185bf667a38d3d0d180ce85fd4c131818aae2")
5854 (revision "0"))
5855 (package
5856 (name "emacs-atom-one-dark-theme")
5857 (version (git-version "0.4.0" revision commit))
5858 (source (origin
5859 (method git-fetch)
5860 (uri (git-reference
5861 (url "https://github.com/jonathanchu/atom-one-dark-theme")
5862 (commit commit)))
5863 (sha256
5864 (base32
5865 "1alma16hg3mfjly8a9s3mrswkjjx4lrpdnf43869hn2ibkn7zx9z"))
5866 (file-name (git-file-name name version))))
5867 (build-system emacs-build-system)
5868 (home-page "https://github.com/jonathanchu/atom-one-dark-theme")
5869 (synopsis "Atom One Dark color theme for Emacs")
5870 (description "An Emacs port of the Atom One Dark theme from Atom.io.")
5871 (license license:gpl3+))))
5872
5873 (define-public emacs-zenburn-theme
5874 (package
5875 (name "emacs-zenburn-theme")
5876 (version "2.6")
5877 (source
5878 (origin
5879 (method git-fetch)
5880 (uri (git-reference
5881 (url "https://github.com/bbatsov/zenburn-emacs")
5882 (commit (string-append "v" version))))
5883 (file-name (git-file-name name version))
5884 (sha256
5885 (base32 "1n87r5hs7h5r8dgfid66skpzcypl9hssr9m3npp916g6jfsi782f"))))
5886 (build-system emacs-build-system)
5887 (home-page "https://github.com/bbatsov/zenburn-emacs")
5888 (synopsis "Low contrast color theme for Emacs")
5889 (description
5890 "Zenburn theme is a port of the popular Vim Zenburn theme for Emacs.
5891 It is built on top of the custom theme support in Emacs 24 or later.")
5892 (license license:gpl3+)))
5893
5894 (define-public emacs-moe-theme-el
5895 (let ((commit "6e086d855d6bb446bbd1090742815589a81a915f")
5896 (version "1.0")
5897 (revision "1"))
5898 (package
5899 (name "emacs-moe-theme-el")
5900 (version (git-version version revision commit))
5901 (source
5902 (origin
5903 (method git-fetch)
5904 (uri (git-reference
5905 (url "https://github.com/kuanyui/moe-theme.el")
5906 (commit commit)))
5907 (file-name (git-file-name name version))
5908 (sha256
5909 (base32 "0xj4wfd7h4jqnr193pizm9frf6lmwjr0dsdv2l9mqh9k691z1dnc"))))
5910 (build-system emacs-build-system)
5911 (home-page "https://github.com/kuanyui/moe-theme.el")
5912 (synopsis "Anime-inspired color themes")
5913 (description
5914 "This package provides vibrant color schemes with light and dark
5915 variants.")
5916 (license license:gpl3+))))
5917
5918 (define-public emacs-solarized-theme
5919 (package
5920 (name "emacs-solarized-theme")
5921 (version "1.3.1")
5922 (source
5923 (origin
5924 (method git-fetch)
5925 (uri (git-reference
5926 (url "https://github.com/bbatsov/solarized-emacs/")
5927 (commit (string-append "v" version))))
5928 (file-name (git-file-name name version))
5929 (sha256
5930 (base32 "15ql8xcixgm7mbs7rsbybwszanqibq057j5b5ds89a31dw7zxf1g"))))
5931 (build-system emacs-build-system)
5932 (propagated-inputs
5933 `(("emacs-dash" ,emacs-dash)))
5934 (home-page "https://github.com/bbatsov/solarized-emacs")
5935 (synopsis "Port of the Solarized theme for Emacs")
5936 (description
5937 "Solarized for Emacs is a port of the Solarized theme for Vim. This
5938 package provides a light and a dark variant.")
5939 (license license:gpl3+)))
5940
5941 (define-public emacs-poet-theme
5942 (let ((commit "d84f7b259cc9b6ff8d442cf4c38bd6c7065ff8f4")
5943 (revision "0"))
5944 (package
5945 (name "emacs-poet-theme")
5946 (version (git-version "0" revision commit))
5947 (source
5948 (origin
5949 (method git-fetch)
5950 (uri (git-reference
5951 (url "https://github.com/kunalb/poet")
5952 (commit commit)))
5953 (file-name (git-file-name name version))
5954 (sha256
5955 (base32
5956 "0a84jdaj619mb59a46dmkk2sfs42rylqk9ryl1drgs8d3lia79mz"))))
5957 (build-system emacs-build-system)
5958 (home-page "https://github.com/kunalb/poet/")
5959 (synopsis "Emacs theme for prose")
5960 (description
5961 "Emacs has very good support for multiple fonts in a single file. Poet
5962 uses this support to make it much more convenient to write prose within Emacs,
5963 with particular attention paid to @code{org-mode} and @code{markdown-mode}.
5964 Code blocks, tables, etc are formatted in monospace text with the appropriate
5965 backgrounds.")
5966 (license license:expat))))
5967
5968 (define-public emacs-ahungry-theme
5969 (package
5970 (name "emacs-ahungry-theme")
5971 (version "1.10.0")
5972 (source
5973 (origin (method url-fetch)
5974 (uri (string-append "https://elpa.gnu.org/packages/ahungry-theme-"
5975 version ".tar"))
5976 (sha256
5977 (base32
5978 "14q5yw56n82qph09bk7wmj5b1snhh9w0nk5s1l7yn9ldg71xq6pm"))))
5979 (build-system emacs-build-system)
5980 (home-page "https://github.com/ahungry/color-theme-ahungry")
5981 (synopsis "Ahungry color theme for Emacs")
5982 (description "Ahungry theme for Emacs provides bright and bold colors.
5983 If you load it from a terminal, you will be able to make use of the
5984 transparent background. If you load it from a GUI, it will default to a
5985 dark background.")
5986 (license license:gpl3+)))
5987
5988 (define-public emacs-gruvbox-theme
5989 (package
5990 (name "emacs-gruvbox-theme")
5991 (version "1.28.0")
5992 (source (origin
5993 (method git-fetch)
5994 (uri (git-reference
5995 (url "https://github.com/greduan/emacs-theme-gruvbox")
5996 (commit version)))
5997 (file-name (git-file-name name version))
5998 (sha256
5999 (base32
6000 "00qq92gp1g55pzm97rh7k0dgxy44pxziridl8kqm4rbpi31r7k9p"))))
6001 (build-system emacs-build-system)
6002 (propagated-inputs
6003 `(("emacs-autothemer" ,emacs-autothemer)))
6004 (home-page "https://github.com/greduan/emacs-theme-gruvbox")
6005 (synopsis "Gruvbox is a retro groove color scheme ported from Vim")
6006 (description
6007 "Gruvbox is heavily inspired by badwolf, jellybeans and solarized.
6008
6009 Designed as a bright theme with pastel 'retro groove' colors and light/dark
6010 mode switching in the way of solarized. The main focus when developing gruvbox
6011 is to keep colors easily distinguishable, contrast enough and still pleasant
6012 for the eyes.")
6013 (license license:expat))) ; MIT license
6014
6015 (define-public emacs-spacegray-theme
6016 (let ((commit "9826265c2bceb2ebc1c5e16a45021da0253ace97")
6017 (revision "0"))
6018 (package
6019 (name "emacs-spacegray-theme")
6020 (version (git-version "0" revision commit))
6021 (source (origin
6022 (method git-fetch)
6023 (uri (git-reference
6024 (url "https://github.com/bruce/emacs-spacegray-theme")
6025 (commit commit)))
6026 (file-name (git-file-name name version))
6027 (sha256
6028 (base32
6029 "0aplwmm17ypbns5blc4rf5rr6dasj0zp5ibykpfl43fh4bd8z89n"))))
6030 (build-system emacs-build-system)
6031 (home-page "https://github.com/bruce/emacs-spacegray-theme")
6032 (synopsis "Port of Sublime Text's Spacegray theme for Emacs")
6033 (description
6034 "@code{spacegray-theme} is an Emacs port of the Spacegray theme from
6035 Sublime Text. It features a dark blue/gray background and soft blue, green,
6036 orange and red as accent colors.")
6037 (license license:expat)))) ; MIT license
6038
6039 (define-public emacs-2048-game
6040 (package
6041 (name "emacs-2048-game")
6042 (version "20151026.1233")
6043 (source
6044 (origin
6045 (method url-fetch)
6046 (uri (string-append "https://melpa.org/packages/2048-game-"
6047 version ".el"))
6048 (sha256
6049 (base32
6050 "0gy2pvz79whpavp4jmz8h9krzn7brmvv3diixi1d4w51pcdvaldd"))))
6051 (build-system emacs-build-system)
6052 (home-page "https://hg.sr.ht/~zck/game-2048")
6053 (synopsis "Implementation of the game 2048 in Emacs Lisp")
6054 (description
6055 "This program is an implementation of 2048 for Emacs.
6056 The goal of this game is to create a tile with value 2048. The size of the
6057 board and goal value can be customized.")
6058 (license license:gpl3+)))
6059
6060 (define-public emacs-chess
6061 (package
6062 (name "emacs-chess")
6063 (version "2.0.4")
6064 (source
6065 (origin
6066 (method url-fetch)
6067 (uri (string-append "https://elpa.gnu.org/packages/"
6068 "chess-" version ".tar"))
6069 (sha256
6070 (base32 "1sq1bjmp513vldfh7hc2bbfc54665abqiz0kqgqq3gijckaxn5js"))))
6071 (build-system emacs-build-system)
6072 (arguments
6073 `(#:phases
6074 (modify-phases %standard-phases
6075 (add-after 'install 'install-pieces
6076 (lambda* (#:key outputs #:allow-other-keys)
6077 (let* ((out (assoc-ref outputs "out"))
6078 (pieces
6079 (string-append out "/share/emacs/site-lisp/pieces")))
6080 (mkdir-p pieces)
6081 (copy-recursively "pieces" pieces)
6082 #t))))))
6083 (home-page "https://elpa.gnu.org/packages/chess.html")
6084 (synopsis "Play chess in GNU Emacs")
6085 (description
6086 "Chess is an Emacs Lisp library and several clients on top of the
6087 underlying library functionality for performing various activities related to
6088 the game of chess.")
6089 (license license:gpl3+)))
6090
6091 (define-public emacs-4clojure
6092 ;; There is no release. Base version is extracted from Version keyword in
6093 ;; the main file.
6094 (let ((commit "4eccf8c7d4341a36c269451838114b27836699f9")
6095 (revision "1"))
6096 (package
6097 (name "emacs-4clojure")
6098 (version (git-version "0.2.1" revision commit))
6099 (source
6100 (origin
6101 (method git-fetch)
6102 (uri (git-reference
6103 (url "https://github.com/emacsorphanage/4clojure")
6104 (commit commit)))
6105 (file-name (git-file-name name version))
6106 (sha256
6107 (base32 "19x653lzc1dxil4ix257hciidbdmbhaxhs6qhlkwi9ygjrlrgvnk"))))
6108 (build-system emacs-build-system)
6109 (propagated-inputs
6110 `(("emacs-request" ,emacs-request)))
6111 (home-page "https://github.com/emacsorphanage/4clojure/")
6112 (synopsis "Open and evaluate 4clojure questions in Emacs")
6113 (description "Emacs 4clojure interacts with
6114 @url{http://www.4clojure.com, 4clojure} problems. You can open a specific
6115 question and move to the next or previous one. You can also verify your
6116 answers.")
6117 (license license:gpl3+))))
6118
6119 (define-public emacs-base16-theme
6120 (package
6121 (name "emacs-base16-theme")
6122 (version "2.2")
6123 (source
6124 (origin
6125 (method git-fetch)
6126 (uri (git-reference
6127 (url "https://github.com/belak/base16-emacs")
6128 (commit version)))
6129 (file-name (git-file-name name version))
6130 (sha256
6131 (base32 "01w89g413s1da6rf94y1xnhw79cjy2bqb01yfjs58cy492cm0vr6"))))
6132 (build-system emacs-build-system)
6133 (home-page "https://github.com/belak/base16-emacs")
6134 (synopsis "Base16 color themes for Emacs")
6135 (description
6136 "Base16 provides carefully chosen syntax highlighting and a default set
6137 of sixteen colors suitable for a wide range of applications. Base16 is not a
6138 single theme but a set of guidelines with numerous implementations.")
6139 (license license:expat)))
6140
6141 (define-public emacs-solaire-mode
6142 (package
6143 (name "emacs-solaire-mode")
6144 (version "1.0.9")
6145 (source
6146 (origin
6147 (method git-fetch)
6148 (uri (git-reference
6149 (url "https://github.com/hlissner/emacs-solaire-mode")
6150 (commit (string-append "v" version))))
6151 (file-name (git-file-name name version))
6152 (sha256
6153 (base32 "011m4r7s6i9lgjymh7jgq5jwwrpz4vmpvp3c8d4ix96v5hi04kzg"))))
6154 (build-system emacs-build-system)
6155 (home-page "https://github.com/hlissner/emacs-solaire-mode")
6156 (synopsis "Change background of file-visiting buffers in Emacs")
6157 (description
6158 "@code{solaire-mode} is inspired by editors which visually distinguish
6159 code-editing windows from sidebars, popups, terminals, ecetera. It changes the
6160 background of file-visiting buffers (and certain aspects of the UI) to make
6161 them easier to distinguish from other, less important buffers.")
6162 (license license:expat)))
6163
6164 (define-public emacs-prescient
6165 (package
6166 (name "emacs-prescient")
6167 (version "5.0")
6168 (source
6169 (origin
6170 (method git-fetch)
6171 (uri (git-reference
6172 (url "https://github.com/raxod502/prescient.el")
6173 (commit (string-append "v" version))))
6174 (file-name (git-file-name name version))
6175 (sha256
6176 (base32 "001q4l730bhw4d508jxlpzh1z459qzpg6rbncp12jrfm5yidksix"))))
6177 (build-system emacs-build-system)
6178 (propagated-inputs
6179 `(("emacs-company" ,emacs-company)
6180 ("emacs-ivy" ,emacs-ivy)
6181 ("emacs-selectrum" ,emacs-selectrum)))
6182 (home-page "https://github.com/raxod502/prescient.el/")
6183 (synopsis "Emacs library for sorting and filtering candidates")
6184 (description
6185 "Prescient is a library for sorting and filtering, as well as extensions
6186 for Ivy and Company that make use of the library.")
6187 (license license:expat)))
6188
6189 (define-public emacs-selectrum
6190 (package
6191 (name "emacs-selectrum")
6192 (version "2.0")
6193 (source
6194 (origin
6195 (method git-fetch)
6196 (uri (git-reference
6197 (url "https://github.com/raxod502/selectrum")
6198 (commit (string-append "v" version))))
6199 (file-name (git-file-name name version))
6200 (sha256
6201 (base32 "08wm4ybidn8g7sy5a009lnsm0f1p7a3jfzpzxnzylvnyrmyhi3y4"))))
6202 (build-system emacs-build-system)
6203 (home-page "https://github.com/raxod502/selectrum/")
6204 (synopsis "Incremental narrowing in Emacs")
6205 (description "Selectrum is a solution for incremental narrowing in
6206 Emacs, replacing Helm, Ivy, and IDO. Its design philosophy is based
6207 on choosing the right abstractions and prioritizing consistency and
6208 predictability over special-cased improvements for particular cases.
6209 As such, Selectrum follows existing Emacs conventions where they exist
6210 and are reasonable, and it declines to implement features which have
6211 marginal benefit compared to the additional complexity of a new
6212 interface.")
6213 (license license:expat)))
6214
6215 (define-public emacs-smartparens
6216 (package
6217 (name "emacs-smartparens")
6218 (version "1.11.0")
6219 (source
6220 (origin
6221 (method git-fetch)
6222 (uri (git-reference
6223 (url "https://github.com/Fuco1/smartparens")
6224 (commit version)))
6225 (file-name (git-file-name name version))
6226 (sha256
6227 (base32 "0zij2f2rjjym98w68jkp10n1ckpfprlkk217c3fg16hz5nq4vnm6"))))
6228 (build-system emacs-build-system)
6229 (propagated-inputs
6230 `(("emacs-dash" ,emacs-dash)
6231 ("emacs-markdown-mode" ,emacs-markdown-mode)))
6232 (home-page "https://github.com/Fuco1/smartparens")
6233 (synopsis "Paredit-like insertion, wrapping and navigation with user
6234 defined pairs")
6235 (description
6236 "Smartparens is a minor mode for Emacs that deals with parens pairs
6237 and tries to be smart about it. It started as a unification effort to
6238 combine functionality of several existing packages in a single,
6239 compatible and extensible way to deal with parentheses, delimiters, tags
6240 and the like. Some of these packages include autopair, textmate,
6241 wrap-region, electric-pair-mode, paredit and others. With the basic
6242 features found in other packages it also brings many improvements as
6243 well as completely new features.")
6244 (license license:gpl3+)))
6245
6246 (define-public emacs-highlight-symbol
6247 ;; We prefer a more recent commit that provides an option to squelch
6248 ;; echo-area alerts that can drown out useful information like eldoc
6249 ;; messages.
6250 (let ((commit "7a789c779648c55b16e43278e51be5898c121b3a")
6251 (version "1.3")
6252 (revision "1"))
6253 (package
6254 (name "emacs-highlight-symbol")
6255 (version (git-version version revision commit))
6256 (source
6257 (origin
6258 (method git-fetch)
6259 (uri (git-reference
6260 (url "https://github.com/nschum/highlight-symbol.el")
6261 (commit commit)))
6262 (file-name (git-file-name name version))
6263 (sha256
6264 (base32 "19cgyk0sh8nsmf3jbi92i8qsdx4l4yilfq5jj9zfdbj9p5gvwx96"))))
6265 (build-system emacs-build-system)
6266 (home-page "https://nschum.de/src/emacs/highlight-symbol/")
6267 (synopsis "Automatic and manual symbol highlighting for Emacs")
6268 (description
6269 "Use @code{highlight-symbol} to toggle highlighting of the symbol at
6270 point throughout the current buffer. Use @code{highlight-symbol-mode} to keep
6271 the symbol at point highlighted.
6272
6273 The functions @code{highlight-symbol-next}, @code{highlight-symbol-prev},
6274 @code{highlight-symbol-next-in-defun} and
6275 @code{highlight-symbol-prev-in-defun} allow for cycling through the locations
6276 of any symbol at point. Use @code{highlight-symbol-nav-mode} to enable key
6277 bindings @code{M-p} and @code{M-p} for navigation. When
6278 @code{highlight-symbol-on-navigation-p} is set, highlighting is triggered
6279 regardless of @code{highlight-symbol-idle-delay}.
6280
6281 @code{highlight-symbol-query-replace} can be used to replace the symbol. ")
6282 (license license:gpl2+))))
6283
6284 (define-public emacs-symbol-overlay
6285 (let ((commit "e40a7c407f24158c45eaa5f54ed41f5e416a51dc")
6286 (revision "1"))
6287 (package
6288 (name "emacs-symbol-overlay")
6289 (version (git-version "4.1" revision commit))
6290 (source
6291 (origin
6292 (method git-fetch)
6293 (uri (git-reference
6294 (url "https://github.com/wolray/symbol-overlay")
6295 (commit commit)))
6296 (file-name (git-file-name name version))
6297 (sha256
6298 (base32 "0ibz3392d3jw1l8006h9kf8s7bg6vl7jc92bmqc031a433009ic7"))))
6299 (build-system emacs-build-system)
6300 (home-page "https://github.com/wolray/symbol-overlay")
6301 (synopsis "Highlight symbols and perform various search operations on them")
6302 (description
6303 "This package provides functions for highlighting and navigating
6304 between symbols.")
6305 (license license:gpl3+))))
6306
6307 (define-public emacs-hl-todo
6308 (package
6309 (name "emacs-hl-todo")
6310 (version "3.0.0")
6311 (source (origin
6312 (method git-fetch)
6313 (uri (git-reference
6314 (url "https://github.com/tarsius/hl-todo")
6315 (commit (string-append "v" version))))
6316 (file-name (git-file-name name version))
6317 (sha256
6318 (base32
6319 "07xcc04ivpl5sbgb55qz84mz6wa500h0awzw1zq1ba5mfjjq8hls"))))
6320 (build-system emacs-build-system)
6321 (home-page "https://github.com/tarsius/hl-todo")
6322 (synopsis "Emacs mode to highlight TODO and similar keywords")
6323 (description
6324 "This package provides an Emacs mode to highlight TODO and similar
6325 keywords in comments and strings. This package also provides commands for
6326 moving to the next or previous keyword and to invoke @code{occur} with a
6327 regexp that matches all known keywords.")
6328 (license license:gpl3+)))
6329
6330 (define-public emacs-perspective
6331 (package
6332 (name "emacs-perspective")
6333 (version "2.9")
6334 (source
6335 (origin
6336 (method git-fetch)
6337 (uri (git-reference
6338 (url "https://github.com/nex3/perspective-el")
6339 (commit version)))
6340 (file-name (git-file-name name version))
6341 (sha256
6342 (base32
6343 "1hmbczw3b7k2xdqcy5p3xnf2781gjw6bqqcwc5r9myg6b8p3pr7m"))))
6344 (build-system emacs-build-system)
6345 (home-page "https://github.com/nex3/perspective-el")
6346 (synopsis "Switch between named \"perspectives\"")
6347 (description
6348 "This package provides tagged workspaces in Emacs, similar to workspaces in
6349 windows managers such as Awesome and XMonad. @code{perspective.el} provides
6350 multiple workspaces (or \"perspectives\") for each Emacs frame. Each
6351 perspective is composed of a window configuration and a set of buffers.
6352 Switching to a perspective activates its window configuration, and when in a
6353 perspective only its buffers are available by default.")
6354 ;; This package is released under the same license as Emacs (GPLv3+) or
6355 ;; the Expat license.
6356 (license license:gpl3+)))
6357
6358 (define-public emacs-persp-mode
6359 (package
6360 (name "emacs-persp-mode")
6361 (version "2.9.8")
6362 (source
6363 (origin
6364 (method git-fetch)
6365 (uri (git-reference
6366 (url "https://github.com/Bad-ptr/persp-mode.el")
6367 (commit (string-append "v" version))))
6368 (file-name (git-file-name name version))
6369 (sha256
6370 (base32
6371 "0b4y7a6j70s9lvr37riyy9k5kh3yvmx0m6nd9c0c8572ji4ij65g"))))
6372 (build-system emacs-build-system)
6373 (home-page "https://github.com/Bad-ptr/persp-mode.el")
6374 (synopsis "Switch between named \"perspectives\" shared among frames")
6375 (description
6376 "This package extends @code{perspective.el} to enable perspectives that
6377 can be saved to and restored from a file.")
6378 (license license:gpl2+)))
6379
6380 (define-public emacs-test-simple
6381 (package
6382 (name "emacs-test-simple")
6383 (version "1.3.0")
6384 (source
6385 (origin
6386 (method url-fetch)
6387 (uri (string-append "https://elpa.gnu.org/packages/test-simple-"
6388 version ".el"))
6389 (sha256
6390 (base32
6391 "1yd61jc9ds95a5n09052kwc5gasy57g4lxr0jsff040brlyi9czz"))))
6392 (build-system emacs-build-system)
6393 (home-page "https://github.com/rocky/emacs-test-simple")
6394 (synopsis "Simple unit test framework for Emacs Lisp")
6395 (description
6396 "Test Simple is a simple unit test framework for Emacs Lisp. It
6397 alleviates the need for context macros, enclosing specifications or required
6398 test tags. It supports both interactive and non-interactive use.")
6399 (license license:gpl3+)))
6400
6401 (define-public emacs-load-relative
6402 (package
6403 (name "emacs-load-relative")
6404 (version "1.3.1")
6405 (source
6406 (origin
6407 (method url-fetch)
6408 (uri (string-append "https://elpa.gnu.org/packages/load-relative-"
6409 version ".el"))
6410 (sha256
6411 (base32 "1m37scr82lqqy954fchjxrmdh4lngrl4d1yzxhp3yfjhsydizhrj"))))
6412 (build-system emacs-build-system)
6413 (home-page "https://github.com/rocky/emacs-load-relative")
6414 (synopsis "Emacs Lisp relative file loading related functions")
6415 (description
6416 "Provides functions which facilitate writing multi-file Emacs packages
6417 and running from the source tree without having to \"install\" code or fiddle
6418 with @{load-path}.
6419
6420 The main function, @code{load-relative}, loads an Emacs Lisp file relative to
6421 another (presumably currently running) Emacs Lisp file.")
6422 (license license:gpl3+)))
6423
6424 (define-public emacs-loc-changes
6425 (package
6426 (name "emacs-loc-changes")
6427 (version "1.2")
6428 (source
6429 (origin
6430 (method url-fetch)
6431 (uri (string-append "https://elpa.gnu.org/packages/loc-changes-"
6432 version ".el"))
6433 (sha256
6434 (base32
6435 "1x8fn8vqasayf1rb8a6nma9n6nbvkx60krmiahyb05vl5rrsw6r3"))))
6436 (build-system emacs-build-system)
6437 (home-page "https://github.com/rocky/emacs-loc-changes")
6438 (synopsis "Keeps track of positions even after buffer changes")
6439 (description
6440 "This Emacs package provides a mean to track important buffer positions
6441 after buffer changes.")
6442 (license license:gpl3+)))
6443
6444 (define-public emacs-realgud
6445 (package
6446 (name "emacs-realgud")
6447 (version "1.5.1")
6448 (source
6449 (origin
6450 (method git-fetch)
6451 (uri (git-reference
6452 (url "https://github.com/realgud/realgud/")
6453 (commit version)))
6454 (sha256
6455 (base32
6456 "1d3s23jk0i34wpyxfajydgyyvsxnpbqrfl0mgydsq7zw2c75ylnq"))
6457 (file-name (git-file-name name version))))
6458 (build-system emacs-build-system)
6459 (arguments
6460 `(#:tests? #t
6461 #:phases
6462 (modify-phases %standard-phases
6463 (add-after 'unpack 'fix-realgud:run-process-void-error
6464 ;; See: https://github.com/realgud/realgud/issues/269.
6465 (lambda _
6466 (substitute* '("realgud/debugger/gdb/gdb.el"
6467 "realgud/debugger/gub/gub.el")
6468 (("^\\(require 'load-relative\\).*" anchor)
6469 (string-append anchor
6470 "(require-relative-list \
6471 '(\"../../common/run\") \"realgud:\")\n")))
6472 #t))
6473 (add-after 'unpack 'fix-autogen-script
6474 (lambda _
6475 (substitute* "autogen.sh"
6476 (("./configure") "sh configure"))
6477 #t))
6478 (add-after 'fix-autogen-script 'autogen
6479 (lambda _
6480 (setenv "CONFIG_SHELL" "sh")
6481 (invoke "sh" "autogen.sh")))
6482 (add-after 'fix-autogen-script 'set-home
6483 (lambda _
6484 (setenv "HOME" (getenv "TMPDIR"))
6485 #t))
6486 (add-before 'patch-el-files 'remove-realgud-pkg.el
6487 (lambda _
6488 ;; FIXME: `patch-el-files' crashes on this file with error:
6489 ;; unable to locate "bashdb".
6490 (delete-file "./test/test-regexp-bashdb.el")
6491 #t)))
6492 #:include (cons* ".*\\.el$" %default-include)))
6493 (native-inputs
6494 `(("autoconf" ,autoconf)
6495 ("automake" ,automake)
6496 ("emacs-test-simple" ,emacs-test-simple)))
6497 (propagated-inputs
6498 `(("emacs-load-relative" ,emacs-load-relative)
6499 ("emacs-loc-changes" ,emacs-loc-changes)))
6500 (home-page "https://github.com/realgud/realgud/")
6501 (synopsis
6502 "Modular front-end for interacting with external debuggers")
6503 (description
6504 "RealGUD is a modular, extensible GNU Emacs front-end for interacting
6505 with external debuggers. It integrates various debuggers such as gdb, pdb,
6506 ipdb, jdb, lldb, bashdb, zshdb, etc. and allows to visually step code in the
6507 sources. Unlike GUD, it also supports running multiple debug sessions in
6508 parallel.")
6509 (license license:gpl3+)))
6510
6511 (define-public emacs-request
6512 (package
6513 (name "emacs-request")
6514 (version "0.3.2")
6515 (source (origin
6516 (method git-fetch)
6517 (uri (git-reference
6518 (url "https://github.com/tkf/emacs-request")
6519 (commit (string-append "v" version))))
6520 (file-name (git-file-name name version))
6521 (sha256
6522 (base32
6523 "1djywhvvb6kwdj0nd3axjvb7k2g06dzkc6hsf29w9rsk96vr8ryl"))))
6524 (build-system emacs-build-system)
6525 (arguments
6526 `(#:tests? #f)) ; requires network access.
6527 (propagated-inputs
6528 `(("emacs-deferred" ,emacs-deferred)))
6529 (home-page "https://github.com/tkf/emacs-request")
6530 (synopsis "Package for speaking HTTP in Emacs Lisp")
6531 (description "This package provides a HTTP request library with multiple
6532 backends. It supports url.el which is shipped with Emacs and the curl command
6533 line program.")
6534 (license license:gpl3+)))
6535
6536 (define-public emacs-rudel
6537 (package
6538 (name "emacs-rudel")
6539 (version "0.3.1")
6540 (source
6541 (origin
6542 (method url-fetch)
6543 (uri (string-append "https://elpa.gnu.org/packages/rudel-"
6544 version ".tar"))
6545 (sha256
6546 (base32
6547 "0glqa68g509p0s2vcc0i8kzlddnc9brd9jqhnm5rzxz4i050cvnz"))))
6548 (build-system emacs-build-system)
6549 (home-page "http://rudel.sourceforge.net/")
6550 (synopsis "Collaborative editing framework")
6551 (description
6552 "Rudel is a collaborative editing environment for GNU Emacs. Its purpose
6553 is to share buffers with other users in order to edit the contents of those
6554 buffers collaboratively. Rudel supports multiple backends to enable
6555 communication with other collaborative editors using different protocols,
6556 though currently Obby (for use with the Gobby editor) is the only
6557 fully-functional one.")
6558 (license license:gpl3+)))
6559
6560 (define-public emacs-hydra
6561 (package
6562 (name "emacs-hydra")
6563 (version "0.15.0")
6564 (source
6565 (origin
6566 (method git-fetch)
6567 (uri (git-reference
6568 (url "https://github.com/abo-abo/hydra")
6569 (commit version)))
6570 (file-name (git-file-name name version))
6571 (sha256
6572 (base32
6573 "0fapvhmhgc9kppf3bvkgry0cd7gyilg7sfvlscfrfjxpx4xvwsfy"))))
6574 (build-system emacs-build-system)
6575 (arguments
6576 `(#:tests? #t
6577 #:test-command '("make" "test")))
6578 (home-page "https://github.com/abo-abo/hydra")
6579 (synopsis "Make Emacs bindings that stick around")
6580 (description
6581 "This package can be used to tie related commands into a family of short
6582 bindings with a common prefix---a Hydra. Once you summon the Hydra (through
6583 the prefixed binding), all the heads can be called in succession with only a
6584 short extension. Any binding that isn't the Hydra's head vanquishes the
6585 Hydra. Note that the final binding, besides vanquishing the Hydra, will still
6586 serve its original purpose, calling the command assigned to it. This makes
6587 the Hydra very seamless; it's like a minor mode that disables itself
6588 automatically.")
6589 (license license:gpl3+)))
6590
6591 (define-public emacs-interleave
6592 (package
6593 (name "emacs-interleave")
6594 (version "1.4.0")
6595 (source
6596 (origin
6597 (method git-fetch)
6598 (uri
6599 (git-reference
6600 (url "https://github.com/rudolfochrist/interleave")
6601 (commit (string-append "interleave-" version))))
6602 (file-name (git-file-name name version))
6603 (sha256
6604 (base32 "0l5b681mrpk12lx5c16m7kc13p29z6zismwg1llsjg7cdmrmsrcb"))))
6605 (build-system emacs-build-system)
6606 (home-page "https://github.com/rudolfochrist/interleave")
6607 (synopsis "Emacs minor mode to interleave notes and text books")
6608 (description
6609 "Interleave is a minor mode that presents a document viewer side
6610 by side to an Org buffer with your notes relevant to the current page.")
6611 (license license:gpl3+)))
6612
6613 (define-public emacs-ivy
6614 (package
6615 (name "emacs-ivy")
6616 (version "0.13.1")
6617 (source
6618 (origin
6619 (method url-fetch)
6620 (uri (string-append "https://elpa.gnu.org/packages/ivy-" version ".tar"))
6621 (sha256
6622 (base32 "0n0ixhdykbdpis4krkqq6zncbby28p34742q96n0l91w0p19slcx"))))
6623 (build-system emacs-build-system)
6624 (propagated-inputs
6625 `(("emacs-hydra" ,emacs-hydra)))
6626 (home-page "https://github.com/abo-abo/swiper")
6627 (synopsis "Incremental vertical completion for Emacs")
6628 (description
6629 "This package provides @code{ivy-read} as an alternative to
6630 @code{completing-read} and similar functions. No attempt is made to determine
6631 the best candidate. Instead, the user can navigate candidates with
6632 @code{ivy-next-line} and @code{ivy-previous-line}. The matching is done by
6633 splitting the input text by spaces and re-building it into a regular
6634 expression.")
6635 (license license:gpl3+)))
6636
6637 (define-public emacs-counsel
6638 (package
6639 (name "emacs-counsel")
6640 (version "0.13.1")
6641 (source
6642 (origin
6643 (method url-fetch)
6644 (uri (string-append "https://elpa.gnu.org/packages/"
6645 "counsel-" version ".el"))
6646 (sha256
6647 (base32 "1y3hr3j5bh5mbyh1cqzxx04181qpvj4xyv1gym2gxcjd30nfllli"))))
6648 (build-system emacs-build-system)
6649 (propagated-inputs
6650 `(("emacs-swiper" ,emacs-swiper)))
6651 (home-page "https://github.com/abo-abo/swiper")
6652 (synopsis "Various completion functions using Ivy")
6653 (description
6654 "Just call one of the interactive functions in a file to complete the
6655 corresponding thing using Ivy.
6656
6657 The following completions are currently available:
6658 @itemize
6659 @item Symbol completion for Elisp, Common Lisp, Python, Clojure, C, C++.
6660 @item Describe functions for Elisp: function, variable, library, command,
6661 @item bindings, theme.
6662 @item Navigation functions: imenu, ace-line, semantic, outline.
6663 @item Git utilities: git-files, git-grep, git-log, git-stash, git-checkout.
6664 @item Grep utilities: grep, ag, pt, recoll, ack, rg.
6665 @item System utilities: process list, rhythmbox, linux-app.
6666 @item Many more.
6667 @end itemize")
6668 (license license:gpl3+)))
6669
6670 (define-public emacs-swiper
6671 (package
6672 (name "emacs-swiper")
6673 (version "0.13.1")
6674 (source
6675 (origin
6676 (method url-fetch)
6677 (uri (string-append "https://elpa.gnu.org/packages/"
6678 "swiper-" version ".el"))
6679 (sha256
6680 (base32 "06ild7kck0x5ry8bf0al24nh04q01q3jhj6jjl4xz8n2s6jnn70y"))))
6681 (build-system emacs-build-system)
6682 (propagated-inputs
6683 `(("emacs-ivy" ,emacs-ivy)))
6684 (home-page "https://github.com/abo-abo/swiper")
6685 (synopsis "Isearch with an overview")
6686 (description
6687 "This package gives an overview of the current regex search candidates.
6688 The search regex can be split into groups with a space. Each group is
6689 highlighted with a different face.
6690
6691 It can double as a quick `regex-builder', although only single lines will be
6692 matched.")
6693 (license license:gpl3+)))
6694
6695 (define-public emacs-ivy-xref
6696 (let ((commit "1a35fc0f070388701b05b0a455cbe262e924d547")
6697 (revision "1"))
6698 (package
6699 (name "emacs-ivy-xref")
6700 (version (git-version "0.1" revision commit))
6701 (source
6702 (origin
6703 (method git-fetch)
6704 (uri (git-reference
6705 (url "https://github.com/alexmurray/ivy-xref")
6706 (commit commit)))
6707 (file-name (git-file-name name version))
6708 (sha256
6709 (base32
6710 "0d71nm9d9ajp5i6dnl8h1hw9jqp8gd1ajgninb1h13i80rplzl9k"))))
6711 (build-system emacs-build-system)
6712 (propagated-inputs
6713 `(("emacs-ivy" ,emacs-ivy)))
6714 (home-page "https://github.com/alexmurray/ivy-xref")
6715 (synopsis "Ivy interface for @code{xref}")
6716 (description "This package provides an Ivy interface for selecting from
6717 @code{xref} results.")
6718 (license license:gpl3))))
6719
6720 (define-public emacs-ivy-pass
6721 (let ((commit "5b523de1151f2109fdd6a8114d0af12eef83d3c5")
6722 (revision "1"))
6723 (package
6724 (name "emacs-ivy-pass")
6725 (version (git-version "0.1" revision commit))
6726 (source
6727 (origin
6728 (method git-fetch)
6729 (uri (git-reference
6730 (url "https://github.com/ecraven/ivy-pass")
6731 (commit commit)))
6732 (file-name (git-file-name name version))
6733 (sha256
6734 (base32
6735 "18crb4zh2pjf0cmv3b913m9vfng27girjwfqc3mk7vqd1r5a49yk"))))
6736 (build-system emacs-build-system)
6737 (propagated-inputs
6738 `(("emacs-ivy" ,emacs-ivy)
6739 ("emacs-password-store" ,emacs-password-store)
6740 ("password-store" ,password-store)))
6741 (home-page "https://github.com/ecraven/ivy-pass")
6742 (synopsis "Ivy interface for password store (pass)")
6743 (description "This package provides an Ivy interface for working with
6744 the password store @code{pass}.")
6745 (license license:gpl3))))
6746
6747 (define-public emacs-ivy-yasnippet
6748 (let ((commit "32580b4fd23ebf9ca7dde96704f7d53df6e253cd")
6749 (revision "2"))
6750 (package
6751 (name "emacs-ivy-yasnippet")
6752 (version (git-version "0.1" revision commit))
6753 (source
6754 (origin
6755 (method git-fetch)
6756 (uri (git-reference
6757 (url "https://github.com/mkcms/ivy-yasnippet")
6758 (commit commit)))
6759 (file-name (git-file-name name version))
6760 (sha256
6761 (base32
6762 "1wfg6mmd5gl1qgvayyzpxlkh9s7jgn20y8l1vh1zbj1czvv51xp8"))))
6763 (build-system emacs-build-system)
6764 (propagated-inputs
6765 `(("emacs-ivy" ,emacs-ivy)
6766 ("emacs-yasnippet" ,emacs-yasnippet)
6767 ("emacs-dash" ,emacs-dash)))
6768 (home-page "https://github.com/mkcms/ivy-yasnippet")
6769 (synopsis "Preview @code{yasnippets} with @code{ivy}")
6770 (description "This package allows you to select @code{yasnippet}
6771 snippets using @code{ivy} completion. When current selection changes in the
6772 minibuffer, the snippet contents are temporarily expanded in the buffer. To
6773 use it, call @code{M-x ivy-yasnippet} (but make sure you have enabled
6774 @code{yas-minor-mode} first).")
6775 (license license:gpl3+))))
6776
6777 (define-public emacs-ivy-rich
6778 ;; The latest release version has a small mistake that has since been fixed,
6779 ;; so we use a more recent commit.
6780 (let ((commit "7a667b135983a1f3ad33d6db8514638e2a3bdfb3")
6781 (revision "2"))
6782 (package
6783 (name "emacs-ivy-rich")
6784 (version (git-version "0.1.4" revision commit))
6785 (source
6786 (origin
6787 (method git-fetch)
6788 (uri (git-reference
6789 (url "https://github.com/Yevgnen/ivy-rich")
6790 (commit commit)))
6791 (file-name (git-file-name name version))
6792 (sha256
6793 (base32 "1v5j6pak2j1wjw19y7rx9rhxif0bj2h47xyl2knfcl6fi4qiqm9y"))))
6794 (build-system emacs-build-system)
6795 (propagated-inputs
6796 `(("emacs-ivy" ,emacs-ivy)))
6797 (home-page "https://github.com/Yevgnen/ivy-rich")
6798 (synopsis "More friendly interface for @code{ivy}")
6799 (description
6800 "This package extends @code{ivy} by showing more information in the
6801 minibuffer for each candidate. It adds columns showing buffer modes, file
6802 sizes, docstrings, etc. If @code{emacs-all-the-icons} is installed, it can
6803 show icons as well.")
6804 (license license:gpl3+))))
6805
6806 (define-public emacs-avy
6807 (package
6808 (name "emacs-avy")
6809 (version "0.5.0")
6810 (source
6811 (origin
6812 (method git-fetch)
6813 (uri (git-reference
6814 (url "https://github.com/abo-abo/avy")
6815 (commit version)))
6816 (file-name (git-file-name name version))
6817 (sha256
6818 (base32 "09qdni1s74i5pv8741szl5g4ynj8fxn0x65qmwa9rmfkbimnc0fs"))))
6819 (build-system emacs-build-system)
6820 (arguments
6821 `(#:tests? #t
6822 #:test-command '("make" "test")))
6823 (home-page "https://github.com/abo-abo/avy")
6824 (synopsis "Tree-based completion for Emacs")
6825 (description
6826 "This package provides a generic completion method based on building a
6827 balanced decision tree with each candidate being a leaf. To traverse the tree
6828 from the root to a desired leaf, typically a sequence of @code{read-key} can
6829 be used.
6830
6831 In order for @code{read-key} to make sense, the tree needs to be visualized
6832 appropriately, with a character at each branch node. So this completion
6833 method works only for things that you can see on your screen, all at once,
6834 such as the positions of characters, words, line beginnings, links, or
6835 windows.")
6836 (license license:gpl3+)))
6837
6838 (define-public emacs-ace-window
6839 (package
6840 (name "emacs-ace-window")
6841 (version "0.10.0")
6842 (source
6843 (origin
6844 (method git-fetch)
6845 (uri (git-reference
6846 (url "https://github.com/abo-abo/ace-window")
6847 (commit version)))
6848 (file-name (git-file-name name version))
6849 (sha256
6850 (base32
6851 "0f3r40d5yxp2pm2j0nn86s29nqj8py0jxjbj50v4ci3hsd92d8jl"))))
6852 (build-system emacs-build-system)
6853 (propagated-inputs
6854 `(("emacs-avy" ,emacs-avy)))
6855 (home-page "https://github.com/abo-abo/ace-window")
6856 (synopsis "Quickly switch windows in Emacs")
6857 (description
6858 "@code{ace-window} is meant to replace @code{other-window}.
6859 In fact, when there are only two windows present, @code{other-window} is
6860 called. If there are more, each window will have its first character
6861 highlighted. Pressing that character will switch to that window.")
6862 (license license:gpl3+)))
6863
6864 (define-public emacs-iedit
6865 ;; Last release version was in 2016.
6866 (let ((commit "e2c100cdd67b7d82835d281ac2cd1bf4f374bc8f")
6867 (revision "1"))
6868 (package
6869 (name "emacs-iedit")
6870 (version (git-version "0.9.9.9" revision commit))
6871 (source
6872 (origin
6873 (method git-fetch)
6874 (uri (git-reference
6875 (url "https://github.com/victorhge/iedit")
6876 (commit commit)))
6877 (file-name (git-file-name name version))
6878 (sha256
6879 (base32 "0wr3w2id95wx2rma8n1ifjrv9rx37ly26ijc5zi58id0yrip3hnc"))))
6880 (build-system emacs-build-system)
6881 (home-page "https://www.emacswiki.org/emacs/Iedit")
6882 (synopsis "Edit multiple regions in the same way simultaneously")
6883 (description
6884 "This package is an Emacs minor mode and allows you to edit one
6885 occurrence of some text in a buffer (possibly narrowed) or region, and
6886 simultaneously have other occurrences edited in the same way.
6887
6888 You can also use Iedit mode as a quick way to temporarily show only the buffer
6889 lines that match the current text being edited. This gives you the effect of
6890 a temporary @code{keep-lines} or @code{occur}.")
6891 (license license:gpl3+))))
6892
6893 (define-public emacs-zoutline
6894 (package
6895 (name "emacs-zoutline")
6896 (version "0.2.0")
6897 (source
6898 (origin
6899 (method git-fetch)
6900 (uri (git-reference
6901 (url "https://github.com/abo-abo/zoutline")
6902 (commit version)))
6903 (sha256
6904 (base32
6905 "1w0zh6vs7klgivq5r030a82mcfg1zwic4x3fimyiqyg5n8p67hyx"))
6906 (file-name (git-file-name name version))))
6907 (build-system emacs-build-system)
6908 (home-page "https://github.com/abo-abo/zoutline")
6909 (synopsis "Simple outline library")
6910 (description
6911 "This library provides helpers for outlines. Outlines allow users to
6912 navigate code in a tree-like fashion.")
6913 (license license:gpl3+)))
6914
6915 (define-public emacs-lispy
6916 (package
6917 (name "emacs-lispy")
6918 (version "0.27.0")
6919 (home-page "https://github.com/abo-abo/lispy")
6920 (source (origin
6921 (method git-fetch)
6922 (uri (git-reference
6923 (url "https://github.com/abo-abo/lispy")
6924 (commit version)))
6925 (sha256
6926 (base32
6927 "1cm7f4pyl73f3vhkb7ah6bbbrj2sa7n0p31g09k7dy4zgx04bgw6"))
6928 (file-name (git-file-name name version))))
6929 (build-system emacs-build-system)
6930 (propagated-inputs
6931 `(("emacs-ace-window" ,emacs-ace-window)
6932 ("emacs-hydra" ,emacs-hydra)
6933 ("emacs-iedit" ,emacs-iedit)
6934 ("emacs-swiper" ,emacs-swiper)
6935 ("emacs-zoutline" ,emacs-zoutline)))
6936 (native-inputs
6937 `(("emacs-clojure-mode" ,emacs-clojure-mode)
6938 ("emacs-undercover" ,emacs-undercover)))
6939 (arguments
6940 `(#:include (cons* "^lispy-clojure\\.clj$"
6941 "^lispy-python\\.py$"
6942 %default-include)
6943 #:phases
6944 ;; XXX: one failing test involving python evaluation
6945 (modify-phases %standard-phases
6946 (add-before 'check 'make-test-writable
6947 (lambda _
6948 (make-file-writable "lispy-test.el")
6949 #t))
6950 (add-before 'check 'remove-python-eval-test
6951 (lambda _
6952 (emacs-batch-edit-file "lispy-test.el"
6953 `(progn
6954 (progn
6955 (goto-char (point-min))
6956 (re-search-forward
6957 "ert-deftest lispy-eval-python-str")
6958 (beginning-of-line)
6959 (kill-sexp))
6960 (basic-save-buffer)))
6961 #t)))
6962 #:tests? #t
6963 #:test-command '("make" "test")))
6964 (synopsis "Modal S-expression editing")
6965 (description
6966 "Due to the structure of Lisp syntax it's very rare for the programmer
6967 to want to insert characters right before \"(\" or right after \")\". Thus
6968 unprefixed printable characters can be used to call commands when the point is
6969 at one of these special locations. Lispy provides unprefixed keybindings for
6970 S-expression editing when point is at the beginning or end of an
6971 S-expression.")
6972 (license license:gpl3+)))
6973
6974 (define-public emacs-lispyville
6975 (let ((commit "1bf38088c981f5ab4ef2e2684952ab6af96378db")
6976 (revision "2"))
6977 (package
6978 (name "emacs-lispyville")
6979 (version (git-version "0.1" revision commit))
6980 (home-page "https://github.com/noctuid/lispyville")
6981 (source (origin
6982 (method git-fetch)
6983 (uri (git-reference (url home-page) (commit commit)))
6984 (sha256
6985 (base32
6986 "07z8qqvaxf963kwn7l2gk47989zb7r3d8ybqjs2cg6hzmzb77wbw"))
6987 (file-name (git-file-name name version))))
6988 (propagated-inputs
6989 `(("emacs-evil" ,emacs-evil)
6990 ("emacs-lispy" ,emacs-lispy)))
6991 (build-system emacs-build-system)
6992 (synopsis "Minor mode for integrating Evil with lispy")
6993 (description
6994 "LispyVille's main purpose is to provide a Lisp editing environment
6995 suited towards Evil users. It can serve as a minimal layer on top of lispy
6996 for better integration with Evil, but it does not require the use of lispy’s
6997 keybinding style. The provided commands allow for editing Lisp in normal
6998 state and will work even without lispy being enabled.")
6999 (license license:gpl3+))))
7000
7001 (define-public emacs-lpy
7002 (let ((commit "43b401fe15f0f0d01edb189378b9498121e9f766")
7003 (revision "3"))
7004 (package
7005 (name "emacs-lpy")
7006 (version (git-version "0.1.0" revision commit))
7007 (source
7008 (origin
7009 (method git-fetch)
7010 (uri (git-reference
7011 (url "https://github.com/abo-abo/lpy")
7012 (commit commit)))
7013 (sha256
7014 (base32
7015 "0xj1r7cn1rivaxhvawvmgx9fg3xilpfw4lkf2x2aqplr4s85ijas"))
7016 (file-name (git-file-name name version))))
7017 (propagated-inputs
7018 `(("emacs-zoutline" ,emacs-zoutline)
7019 ("emacs-lispy" ,emacs-lispy)))
7020 (build-system emacs-build-system)
7021 (home-page "https://github.com/abo-abo/lpy")
7022 (synopsis "Modal editing for Python")
7023 (description
7024 "This package provides a minor mode for Python that binds useful
7025 commands to unprefixed keys, such as @code{j} or @code{e}, under certain
7026 circumstances, and leaves the keys untouched outside of those situations,
7027 allowing unprefixed keys to insert their respective characters as expected.")
7028 (license license:gpl3+))))
7029
7030 (define-public emacs-clojure-mode
7031 (package
7032 (name "emacs-clojure-mode")
7033 (version "5.11.0")
7034 (source
7035 (origin
7036 (method git-fetch)
7037 (uri (git-reference
7038 (url "https://github.com/clojure-emacs/clojure-mode")
7039 (commit version)))
7040 (file-name (git-file-name name version))
7041 (sha256
7042 (base32 "1x1yszp6waa778ki6sw66w1pzcz389wd01gkcldfxxnd7z89ad5d"))))
7043 (build-system emacs-build-system)
7044 (native-inputs
7045 `(("emacs-buttercup" ,emacs-buttercup)
7046 ("emacs-dash" ,emacs-dash)
7047 ("emacs-s" ,emacs-s)))
7048 (arguments
7049 `(#:tests? #t
7050 #:test-command '("buttercup")))
7051 (home-page "https://github.com/clojure-emacs/clojure-mode")
7052 (synopsis "Major mode for Clojure code")
7053 (description
7054 "This Emacs package provides font-lock, indentation, navigation and basic
7055 refactoring for the @uref{http://clojure.org, Clojure programming language}.
7056 It is recommended to use @code{clojure-mode} with Paredit or Smartparens.")
7057 (license license:gpl3+)))
7058
7059 (define-public emacs-epl
7060 (package
7061 (name "emacs-epl")
7062 (version "0.8")
7063 (source
7064 (origin
7065 (method git-fetch)
7066 (uri (git-reference
7067 (url "https://github.com/cask/epl")
7068 (commit version)))
7069 (file-name (git-file-name name version))
7070 (sha256
7071 (base32 "0sjxd5y5hxhrbgfkpwx6m724r3841b53hgc61a0g5zwispw5pmrr"))))
7072 (build-system emacs-build-system)
7073 (home-page "https://github.com/cask/epl")
7074 (synopsis "Emacs Package Library")
7075 (description
7076 "A package management library for Emacs, based on @code{package.el}.
7077
7078 The purpose of this library is to wrap all the quirks and hassle of
7079 @code{package.el} into a sane API.")
7080 (license license:gpl3+)))
7081
7082 (define-public emacs-counsel-notmuch
7083 ;; Upstream provides no release. Extract version for main file.
7084 (let ((commit "a4a1562935e4180c42524c51609d1283e9be0688")
7085 (revision "0"))
7086 (package
7087 (name "emacs-counsel-notmuch")
7088 (version (git-version "1.0" revision commit))
7089 (source
7090 (origin
7091 (method git-fetch)
7092 (uri (git-reference
7093 (url "https://github.com/fuxialexander/counsel-notmuch.git")
7094 (commit commit)))
7095 (file-name (git-file-name name version))
7096 (sha256
7097 (base32 "01k1321d961kc2i660a5595bqk0d85f16snsxngsn5si6y83kqr7"))))
7098 (build-system emacs-build-system)
7099 (arguments
7100 `(#:phases
7101 (modify-phases %standard-phases
7102 (add-after 'unpack 'locate-notmuch
7103 (lambda* (#:key inputs #:allow-other-keys)
7104 (make-file-writable "counsel-notmuch.el")
7105 (emacs-substitute-variables "counsel-notmuch.el"
7106 ("counsel-notmuch-path"
7107 (string-append (assoc-ref inputs "notmuch")
7108 "/bin/notmuch")))
7109 #t)))))
7110 (inputs
7111 `(("emacs-counsel" ,emacs-counsel)
7112 ("notmuch" ,notmuch)
7113 ("emacs-s" ,emacs-s)))
7114 (home-page "https://github.com/fuxialexander/counsel-notmuch")
7115 (synopsis "Search emails in Notmuch asynchronously with Ivy")
7116 (description
7117 "This package can be used to search emails in Notmuch
7118 asynchronously, with Counsel and Ivy. Simply call
7119 @code{counsel-notmuch} and input your Notmuch query.")
7120 (license license:gpl3+))))
7121
7122 (define-public emacs-counsel-projectile
7123 (package
7124 (name "emacs-counsel-projectile")
7125 (version "0.3.0")
7126 (source (origin
7127 (method git-fetch)
7128 (uri (git-reference
7129 (url "https://github.com/ericdanan/counsel-projectile")
7130 (commit version)))
7131 (file-name (git-file-name name version))
7132 (sha256
7133 (base32
7134 "1inc4ndl0ysfwvxk4avbgpj4qi9rc93da6476a5c81xmwpsv8wmq"))))
7135 (build-system emacs-build-system)
7136 (propagated-inputs
7137 `(("emacs-counsel" ,emacs-counsel)
7138 ("emacs-projectile" ,emacs-projectile)))
7139 (home-page "https://github.com/ericdanan/counsel-projectile")
7140 (synopsis "Enhance Projectile with Ivy")
7141 (description
7142 "This package uses Ivy to provide additional actions for Projectile
7143 commands and replacements for existing functions.")
7144 (license license:gpl3+)))
7145
7146 (define-public emacs-qml-mode
7147 (package
7148 (name "emacs-qml-mode")
7149 (version "0.4")
7150 (source (origin
7151 (method git-fetch)
7152 (uri (git-reference
7153 (url "https://github.com/coldnew/qml-mode")
7154 (commit version)))
7155 (file-name (git-file-name name version))
7156 (sha256
7157 (base32
7158 "1sncsvzjfgmhp4m8w5jd4y51k24n2jfpgvrkd64wlhhzbj3wb947"))))
7159 (build-system emacs-build-system)
7160 (home-page "https://github.com/coldnew/qml-mode/")
7161 (synopsis "Qt Modeling Language (QML) mode for Emacs")
7162 (description "This package provides the @code{qml-mode} major Emacs mode
7163 for editing source files written in the Qt Modeling Language (QML) user
7164 interface markup language. It provides syntax highlighting and basic
7165 navigation commands. @code{qml-mode} is derived from code{js-mode}, the Emacs
7166 builtin JavaScript mode.")
7167 (license license:gpl2+)))
7168
7169 (define-public emacs-queue
7170 (package
7171 (name "emacs-queue")
7172 (version "0.2")
7173 (source (origin
7174 (method url-fetch)
7175 (uri (string-append "https://elpa.gnu.org/packages/queue-"
7176 version ".el"))
7177 (sha256
7178 (base32
7179 "0cx2848sqnnkkr4zisvqadzxngjyhmb36mh0q3if7q19yjjhmrkb"))))
7180 (build-system emacs-build-system)
7181 (home-page "http://www.dr-qubit.org/tags/computing-code-emacs.html")
7182 (synopsis "Queue data structure for Emacs")
7183 (description
7184 "This Emacs library provides queue data structure. These queues can be
7185 used both as a first-in last-out (FILO) and as a first-in first-out (FIFO)
7186 stack, i.e. elements can be added to the front or back of the queue, and can
7187 be removed from the front. This type of data structure is sometimes called an
7188 \"output-restricted deque\".")
7189 (license license:gpl3+)))
7190
7191 (define-public emacs-pkg-info
7192 (package
7193 (name "emacs-pkg-info")
7194 (version "0.6")
7195 (source
7196 (origin
7197 (method git-fetch)
7198 (uri (git-reference
7199 (url "https://github.com/lunaryorn/pkg-info.el")
7200 (commit version)))
7201 (file-name (git-file-name name version))
7202 (sha256
7203 (base32 "0nk12dcppdyhav6m6yf7abpywyd7amxd4237zsfd32w4zxsx39k1"))))
7204 (build-system emacs-build-system)
7205 (propagated-inputs `(("emacs-epl" ,emacs-epl)))
7206 (home-page "https://github.com/lunaryorn/pkg-info.el")
7207 (synopsis "Information about Emacs packages")
7208 (description
7209 "This library extracts information from the installed Emacs packages.")
7210 (license license:gpl3+)))
7211
7212 (define-public emacs-spinner
7213 (package
7214 (name "emacs-spinner")
7215 (version "1.7.3")
7216 (source (origin
7217 (method url-fetch)
7218 (uri (string-append "https://elpa.gnu.org/packages/spinner-"
7219 version ".el"))
7220 (sha256
7221 (base32
7222 "19kp1mmndbmw11sgvv2ggfjl4pyf5zrsbh3871f0965pw9z8vahd"))))
7223 (build-system emacs-build-system)
7224 (home-page "https://github.com/Malabarba/spinner.el")
7225 (synopsis "Emacs mode-line spinner for operations in progress")
7226 (description
7227 "This Emacs package adds spinners and progress-bars to the mode-line for
7228 ongoing operations.")
7229 (license license:gpl3+)))
7230
7231 (define-public emacs-sparql-mode
7232 (package
7233 (name "emacs-sparql-mode")
7234 (version "2.0.1")
7235 (source
7236 (origin
7237 (method git-fetch)
7238 (uri (git-reference
7239 (url "https://github.com/ljos/sparql-mode")
7240 (commit (string-append "v" version))))
7241 (file-name (git-file-name name version))
7242 (sha256
7243 (base32 "0ywhqk6n5k0l85zjwbnrivnvxjzqipqrggv06lify6yv18qmyl6s"))))
7244 (build-system emacs-build-system)
7245 (home-page "https://github.com/ljos/sparql-mode")
7246 (synopsis "SPARQL mode for Emacs")
7247 (description "This package provides a major mode for Emacs that provides
7248 syntax highlighting for SPARQL. It also provides a way to execute queries
7249 against a SPARQL HTTP endpoint, such as is provided by Fuseki. It is also
7250 possible to query other endpoints like DBPedia.")
7251 (license license:gpl3+)))
7252
7253 (define-public emacs-better-defaults
7254 (package
7255 (name "emacs-better-defaults")
7256 (version "0.1.3")
7257 (source
7258 (origin
7259 (method git-fetch)
7260 (uri (git-reference
7261 (url "https://github.com/technomancy/better-defaults")
7262 (commit version)))
7263 (file-name (git-file-name name version))
7264 (sha256
7265 (base32
7266 "1rxznx2l0cdpiz8mad8s6q17m1fngpgb1cki7ch6yh18r3qz8ysr"))))
7267 (build-system emacs-build-system)
7268 (home-page "https://github.com/technomancy/better-defaults")
7269 (synopsis "Better defaults for Emacs")
7270 (description
7271 "Better defaults attempts to address the most obvious deficiencies of the
7272 Emacs default configuration in uncontroversial ways that nearly everyone can
7273 agree upon.")
7274 (license license:gpl3+)))
7275
7276 (define-public emacs-undohist-el
7277 (let ((commit "d2239a5f736724ceb9e3b6bcaa86f4064805cda0")
7278 (revision "1"))
7279 (package
7280 (name "emacs-undohist-el")
7281 (version (git-version "0" revision commit))
7282 (source
7283 (origin
7284 (method git-fetch)
7285 (uri (git-reference
7286 (url "https://github.com/m2ym/undohist-el")
7287 (commit commit)))
7288 (file-name (git-file-name name version))
7289 (sha256
7290 (base32
7291 "1c0daw246ky7b1x5b8h55x79pl1pjqk1k348l487bdd8zdj4w9wx"))
7292 (patches
7293 (search-patches "emacs-undohist-ignored.patch"))))
7294 (build-system emacs-build-system)
7295 (home-page "https://github.com/m2ym/undohist-el")
7296 (synopsis "Save undo history between sessions")
7297 (description "This package allows persistent use of undo history for
7298 individual file buffers.")
7299 (license license:gpl3+))))
7300
7301 (define-public emacs-eprime
7302 (let ((commit "17a481af26496be91c07139a9bfc05cfe722506f"))
7303 (package
7304 (name "emacs-eprime")
7305 (version (string-append "20140513-" (string-take commit 7)))
7306 (source (origin
7307 (method url-fetch)
7308 (uri (string-append "https://raw.githubusercontent.com"
7309 "/AndrewHynes/eprime-mode/"
7310 commit "/eprime-mode.el"))
7311 (file-name (string-append "eprime-" version ".el"))
7312 (sha256
7313 (base32
7314 "0v68lggkyq7kbcr9zyi573m2g2x251xy3jadlaw8kx02l8krwq8d"))))
7315 (build-system emacs-build-system)
7316 (home-page "https://github.com/AndrewHynes/eprime-mode")
7317 (synopsis "E-prime checking mode for Emacs")
7318 (description "This package provides an E-prime checking mode for Emacs
7319 that highlights non-conforming text. The subset of the English language called
7320 E-Prime forbids the use of the \"to be\" form to strengthen your writing.")
7321 (license license:gpl3+))))
7322
7323 (define-public emacs-julia-mode
7324 ;; XXX: Upstream version remained stuck at 0.3. See
7325 ;; <https://github.com/JuliaEditorSupport/julia-emacs/issues/46>.
7326 (let ((commit "115d4dc8a07445301772da8376b232fa8c7168f4")
7327 (revision "1"))
7328 (package
7329 (name "emacs-julia-mode")
7330 (version (string-append "0.3-" revision "." (string-take commit 8)))
7331 (source
7332 (origin
7333 (method git-fetch)
7334 (uri (git-reference
7335 (url "https://github.com/JuliaEditorSupport/julia-emacs")
7336 (commit commit)))
7337 (file-name (git-file-name name version))
7338 (sha256
7339 (base32
7340 "1is4dcv6blslpzbjcg8l2jpxi8xj96q4cm0nxjxsyswpm8bw8ki0"))))
7341 (build-system emacs-build-system)
7342 (arguments
7343 `(#:tests? #t
7344 #:test-command '("emacs" "--batch"
7345 "-l" "julia-mode-tests.el"
7346 "-f" "ert-run-tests-batch-and-exit")))
7347 (home-page "https://github.com/JuliaEditorSupport/julia-emacs")
7348 (synopsis "Major mode for Julia")
7349 (description "This Emacs package provides a mode for the Julia
7350 programming language.")
7351 (license license:expat))))
7352
7353 (define-public emacs-smex
7354 (package
7355 (name "emacs-smex")
7356 (version "3.0")
7357 (source (origin
7358 (method url-fetch)
7359 (uri (string-append "https://raw.githubusercontent.com"
7360 "/nonsequitur/smex/" version "/smex.el"))
7361 (file-name (string-append "smex-" version ".el"))
7362 (sha256
7363 (base32
7364 "0ar310zx9k5y4i1vl2rawvi712xj9gx77160860jbs691p77cxqp"))))
7365 (build-system emacs-build-system)
7366 (home-page "https://github.com/nonsequitur/smex/")
7367 (synopsis "M-x interface with Ido-style fuzzy matching")
7368 (description
7369 "Smex is a M-x enhancement for Emacs. Built on top of Ido, it provides a
7370 convenient interface to your recently and most frequently used commands. And
7371 to all the other commands, too.")
7372 (license license:gpl3+)))
7373
7374 (define-public emacs-js2-mode
7375 (package
7376 (name "emacs-js2-mode")
7377 (version "20190219")
7378 (source
7379 (origin
7380 (method git-fetch)
7381 (uri (git-reference
7382 (url "https://github.com/mooz/js2-mode")
7383 (commit version)))
7384 (file-name (git-file-name name version))
7385 (sha256
7386 (base32 "0766bbr4piia9vfr4ivd2gwi8dxah654adv6h28ylz4q8xmfzm1b"))))
7387 (build-system emacs-build-system)
7388 (arguments
7389 `(#:tests? #t
7390 #:test-command '("make" "test")))
7391 (home-page "https://github.com/mooz/js2-mode/")
7392 (synopsis "Improved JavaScript editing mode for Emacs")
7393 (description
7394 "Js2-mode provides a JavaScript major mode for Emacs that is more
7395 advanced than the built-in javascript-mode. Features include accurate syntax
7396 highlighting using a recursive-descent parser, on-the-fly reporting of syntax
7397 errors and strict-mode warnings, smart line-wrapping within comments and
7398 strings, and code folding.")
7399 (license license:gpl3+)))
7400
7401 (define-public emacs-nodejs-repl
7402 (package
7403 (name "emacs-nodejs-repl")
7404 (version "0.2.2")
7405 (source (origin
7406 (method git-fetch)
7407 (uri (git-reference
7408 (url "https://github.com/abicky/nodejs-repl.el")
7409 (commit version)))
7410 (file-name (git-file-name name version))
7411 (sha256
7412 (base32
7413 "1kkj888k9x5n0i7xkia177gzsa84my3g8n0n7v65281cc4f1yhk5"))))
7414 (build-system emacs-build-system)
7415 (inputs
7416 `(("node" ,node)))
7417 (native-inputs
7418 `(("emacs-ert-expectations" ,emacs-ert-expectations)))
7419 (arguments
7420 `(#:phases
7421 (modify-phases %standard-phases
7422 (add-after 'unpack 'set-shell
7423 ;; Setting the SHELL environment variable is required for the tests
7424 ;; to find sh.
7425 (lambda _
7426 (setenv "SHELL" (which "sh"))
7427 #t))
7428 (add-after 'unpack 'configure
7429 (lambda* (#:key inputs outputs #:allow-other-keys)
7430 (let ((node (assoc-ref inputs "node")))
7431 ;; Specify the absolute file names of the various
7432 ;; programs so that everything works out-of-the-box.
7433 (make-file-writable "nodejs-repl.el")
7434 (emacs-substitute-variables
7435 "nodejs-repl.el"
7436 ("nodejs-repl-command"
7437 (string-append node "/bin/node")))))))
7438 #:tests? #t
7439 #:test-command '("emacs" "-Q" "--batch"
7440 "-L" "."
7441 "-l" "test/test.el"
7442 "-f" "ert-run-tests-batch-and-exit")))
7443 (home-page "https://github.com/abicky/nodejs-repl.el")
7444 (synopsis "Node.js REPL inside Emacs")
7445 (description
7446 "This program is derived from comint-mode and provides the following
7447 features:
7448
7449 @itemize
7450 @item TAB completion same as Node.js REPL
7451 @item file name completion in string
7452 @item incremental history search
7453 @end itemize")
7454 (license license:gpl3+)))
7455
7456 (define-public emacs-typescript-mode
7457 (package
7458 (name "emacs-typescript-mode")
7459 (version "0.3")
7460 (source (origin
7461 (method git-fetch)
7462 (uri (git-reference
7463 (url "https://github.com/ananthakumaran/typescript.el")
7464 (commit (string-append "v" version))))
7465 (file-name (git-file-name name version))
7466 (sha256
7467 (base32
7468 "002f1xfhq43fjaqliwrgxspryfahpa82va5dw3p8kwil2xwvc6mh"))))
7469 (build-system emacs-build-system)
7470 (home-page "https://github.com/ananthakumaran/typescript.el")
7471 (synopsis "Emacs major mode for editing Typescript code")
7472 (description
7473 "This is based on Karl Landstrom's barebones @code{typescript-mode}.
7474 This is much more robust and works with @code{cc-mode}'s comment
7475 filling (mostly). The modifications to the original @code{javascript.el} mode
7476 mainly consisted in replacing \"javascript\" with \"typescript\"
7477
7478 The main features of this Typescript mode are syntactic highlighting (enabled
7479 with @code{font-lock-mode} or @code{global-font-lock-mode}), automatic
7480 indentation and filling of comments and C preprocessor fontification.")
7481 (license license:gpl3+)))
7482
7483 (define-public emacs-tide
7484 (package
7485 (name "emacs-tide")
7486 (version "3.2.3")
7487 (source (origin
7488 (method git-fetch)
7489 (uri (git-reference
7490 (url "https://github.com/ananthakumaran/tide")
7491 (commit (string-append "v" version))))
7492 (file-name (git-file-name name version))
7493 (sha256
7494 (base32
7495 "19kjq4kr2j853p5qp1s79zxmrfprli82lsnphbrlp9vbnib28xyd"))))
7496 (build-system emacs-build-system)
7497 (propagated-inputs
7498 `(("emacs-dash" ,emacs-dash)
7499 ("emacs-s" ,emacs-s)
7500 ("emacs-flycheck" ,emacs-flycheck)
7501 ("emacs-typescript-mode" ,emacs-typescript-mode)))
7502 (home-page "https://github.com/ananthakumaran/tide")
7503 (synopsis "Typescript IDE for Emacs")
7504 (description
7505 "Tide is an Interactive Development Environment (IDE) for Emacs which
7506 provides the following features:
7507
7508 @itemize
7509 @item ElDoc
7510 @item Auto complete
7511 @item Flycheck
7512 @item Jump to definition, Jump to type definition
7513 @item Find occurrences
7514 @item Rename symbol
7515 @item Imenu
7516 @item Compile On Save
7517 @item Highlight Identifiers
7518 @item Code Fixes
7519 @item Code Refactor
7520 @item Organize Imports
7521 @end itemize")
7522 (license license:gpl3+)))
7523
7524 (define-public emacs-markdown-mode
7525 (package
7526 (name "emacs-markdown-mode")
7527 (version "2.4")
7528 (source
7529 (origin
7530 (method git-fetch)
7531 (uri (git-reference
7532 (url "https://github.com/jrblevin/markdown-mode")
7533 (commit (string-append "v" version))))
7534 (file-name (git-file-name name version))
7535 (sha256
7536 (base32 "0g0ja4h651yfabm3k6gbw4y8w7wibc9283fyfzb33kjj38ivl5d7"))))
7537 (build-system emacs-build-system)
7538 (home-page "https://jblevins.org/projects/markdown-mode/")
7539 (synopsis "Emacs Major mode for Markdown files")
7540 (description
7541 "Markdown-mode is a major mode for editing Markdown-formatted text files
7542 in Emacs.")
7543 (license license:gpl3+)))
7544
7545 (define-public emacs-evil-markdown
7546 (let ((commit "685d7fbb81bc02fa32779d2a127b99a0c8c7436b")
7547 (revision "2"))
7548 (package
7549 (name "emacs-evil-markdown")
7550 (version (git-version "0.0.2" revision commit))
7551 (source
7552 (origin
7553 (method git-fetch)
7554 (uri (git-reference
7555 (url "https://github.com/Somelauw/evil-markdown")
7556 (commit commit)))
7557 (file-name (git-file-name name version))
7558 (sha256
7559 (base32 "1z1sjn6dcqv8mmkh6nfcwhnql2z6xr9yx3hs77bfxj79pf3c466p"))))
7560 (build-system emacs-build-system)
7561 (propagated-inputs
7562 `(("emacs-evil" ,emacs-evil)
7563 ("emacs-markdown-mode" ,emacs-markdown-mode)))
7564 (home-page "https://github.com/Somelauw/evil-markdown/")
7565 (synopsis "Evil keybindings for @code{markdown-mode}")
7566 (description
7567 "This package provides custom text objects and bindings for
7568 @code{markdown-mode}.")
7569 (license license:gpl3+))))
7570
7571 (define-public emacs-edit-indirect
7572 (package
7573 (name "emacs-edit-indirect")
7574 (version "0.1.5")
7575 (source
7576 (origin
7577 (method git-fetch)
7578 (uri (git-reference
7579 (url "https://github.com/Fanael/edit-indirect")
7580 (commit version)))
7581 (file-name (git-file-name name version))
7582 (sha256
7583 (base32
7584 "0by1x53pji39fjrj5bd446kz831nv0vdgw2jqasbym4pc1p2947r"))))
7585 (build-system emacs-build-system)
7586 (home-page "https://github.com/Fanael/edit-indirect")
7587 (synopsis "Edit regions in separate buffers")
7588 (description "This package allows you to edit regions in separate buffers,
7589 like @code{org-edit-src-code} but for arbitrary regions.")
7590 (license license:gpl3+)))
7591
7592 (define-public emacs-projectile
7593 (package
7594 (name "emacs-projectile")
7595 (version "2.2.0")
7596 (source (origin
7597 (method url-fetch)
7598 (uri (string-append "https://raw.githubusercontent.com/bbatsov"
7599 "/projectile/v" version "/projectile.el"))
7600 (file-name (string-append "projectile-" version ".el"))
7601 (sha256
7602 (base32
7603 "1d983siysg98bjbb2r99qbrpvpf6dn85si8gyak4z05m67s8sn6v"))))
7604 (build-system emacs-build-system)
7605 (propagated-inputs
7606 `(("emacs-dash" ,emacs-dash)
7607 ("emacs-pkg-info" ,emacs-pkg-info)))
7608 (home-page "https://github.com/bbatsov/projectile")
7609 (synopsis "Manage and navigate projects in Emacs easily")
7610 (description
7611 "This library provides easy project management and navigation. The
7612 concept of a project is pretty basic - just a folder containing special file.
7613 Currently git, mercurial and bazaar repos are considered projects by default.
7614 If you want to mark a folder manually as a project just create an empty
7615 .projectile file in it.")
7616 (license license:gpl3+)))
7617
7618 (define-public emacs-skeletor
7619 (let ((commit "47c5b761aee8452716c97a69949ac2f675affe13")
7620 (revision "1"))
7621 (package
7622 (name "emacs-skeletor")
7623 (version (git-version "1.6.1" revision commit))
7624 (source (origin
7625 (method git-fetch)
7626 (uri (git-reference
7627 (url "https://github.com/chrisbarrett/skeletor.el")
7628 (commit commit)))
7629 (file-name (git-file-name name version))
7630 (sha256
7631 (base32
7632 "12bdgykfh4mwsqdazxjdvha62h3q3v33159ypy91f6x59y01fi0n"))))
7633 (build-system emacs-build-system)
7634 (propagated-inputs
7635 `(("emacs-s" ,emacs-s)
7636 ("emacs-f" ,emacs-f)
7637 ("emacs-dash" ,emacs-dash)
7638 ("emacs-let-alist" ,emacs-let-alist)))
7639 (native-inputs
7640 `(("emacs-ert-runner" ,emacs-ert-runner)))
7641 (arguments
7642 `(#:include (cons "^project-skeletons\\/" %default-include)
7643 ;; XXX: one failing test involving initializing a git repo
7644 #:phases
7645 (modify-phases %standard-phases
7646 (add-before 'check 'make-test-writable
7647 (lambda _
7648 (make-file-writable "test/skeletor-test.el")
7649 #t))
7650 (add-before 'check 'remove-git-test
7651 (lambda _
7652 (emacs-batch-edit-file "test/skeletor-test.el"
7653 `(progn
7654 (progn
7655 (goto-char (point-min))
7656 (re-search-forward
7657 "ert-deftest initialises-git-repo")
7658 (beginning-of-line)
7659 (kill-sexp))
7660 (basic-save-buffer)))
7661 #t)))
7662 #:tests? #t
7663 #:test-command '("ert-runner")))
7664 (home-page "https://github.com/chrisbarrett/skeletor.el")
7665 (synopsis "Project skeletons for Emacs")
7666 (description "This package provides project templates and automates the
7667 mundane parts of setting up a new project, such as version control, licenses,
7668 and tooling.")
7669 (license license:gpl3+))))
7670
7671 (define-public emacs-elfeed
7672 (package
7673 (name "emacs-elfeed")
7674 (version "3.3.0")
7675 (source
7676 (origin
7677 (method git-fetch)
7678 (uri (git-reference
7679 (url "https://github.com/skeeto/elfeed")
7680 (commit version)))
7681 (file-name (git-file-name name version))
7682 (sha256
7683 (base32 "0j8a94val4ml7g1vcjgzk1w89h55sxfdrwnncmz6qbh1y2xsz8c5"))))
7684 (build-system emacs-build-system)
7685 (arguments
7686 `(#:tests? #t
7687 #:test-command '("make" "test")))
7688 (home-page "https://github.com/skeeto/elfeed")
7689 (synopsis "Atom/RSS feed reader for Emacs")
7690 (description
7691 "Elfeed is an extensible web feed reader for Emacs, supporting both Atom
7692 and RSS, with a user interface inspired by notmuch.")
7693 (license license:gpl3+)))
7694
7695 (define-public emacs-elfeed-org
7696 (let ((commit "77b6bbf222487809813de260447d31c4c59902c9"))
7697 (package
7698 (name "emacs-elfeed-org")
7699 (version (git-version "0.1" "1" commit))
7700 (source
7701 (origin
7702 (method git-fetch)
7703 (uri (git-reference
7704 (url "https://github.com/remyhonig/elfeed-org")
7705 (commit commit)))
7706 (file-name (git-file-name name version))
7707 (sha256
7708 (base32 "0a2ibka82xq1dhy2z7rd2y9zhcj8rna8357881yz49wf55ccgm53"))))
7709 (build-system emacs-build-system)
7710 (propagated-inputs
7711 `(("emacs-elfeed" ,emacs-elfeed)
7712 ("emacs-org" ,emacs-org)
7713 ("emacs-dash" ,emacs-dash)
7714 ("emacs-s" ,emacs-s)))
7715 (native-inputs
7716 `(("ert-runner" ,emacs-ert-runner)
7717 ("emacs-xtest" ,emacs-xtest)))
7718 (arguments
7719 `(#:tests? #t
7720 #:test-command '("ert-runner" "-L" "org-mode/lisp")
7721 #:phases
7722 (modify-phases %standard-phases
7723 (add-before 'check 'chmod
7724 (lambda _
7725 (chmod "test/fixture-mark-feed-ignore.org" #o644)
7726 #t)))))
7727 (home-page "https://github.com/remyhonig/elfeed-org")
7728 (synopsis "Configure Elfeed with an Org-mode file")
7729 (description
7730 "@code{elfeed-org} lets you manage your Elfeed subscriptions
7731 in Org-mode. Maintaining tags for all RSS feeds is cumbersome using
7732 the regular flat list, where there is no hierarchy and tag names are
7733 duplicated a lot. Org-mode makes the book keeping of tags and feeds
7734 much easier.")
7735 (license license:gpl3+))))
7736
7737 (define-public emacs-el-x
7738 (package
7739 (name "emacs-el-x")
7740 (version "0.3.1")
7741 (source (origin
7742 (method git-fetch)
7743 (uri (git-reference
7744 (url "https://github.com/sigma/el-x")
7745 (commit (string-append "v" version))))
7746 (file-name (git-file-name name version))
7747 (sha256
7748 (base32
7749 "1i6j44ssxm1xdg0mf91nh1lnprwsaxsx8vsrf720nan7mfr283h5"))))
7750 (build-system emacs-build-system)
7751 (arguments
7752 `(#:phases
7753 (modify-phases %standard-phases
7754 ;; Move the source files to the top level, which is included in
7755 ;; the EMACSLOADPATH.
7756 (add-after 'unpack 'move-source-files
7757 (lambda _
7758 (let ((el-files (find-files "./lisp" ".*\\.el$")))
7759 (for-each (lambda (f)
7760 (rename-file f (basename f)))
7761 el-files))
7762 #t)))))
7763 (home-page "https://github.com/sigma/el-x")
7764 (synopsis "Emacs Lisp extensions")
7765 (description "command@{emacs-el-x} defines the @code{dflet} macro to
7766 provide the historic behavior of @code{flet}, as well as
7767 @code{declare-function} stub for older Emacs.")
7768 (license license:gpl2+)))
7769
7770 (define-public emacs-mocker
7771 (package
7772 (name "emacs-mocker")
7773 (version "0.3.1")
7774 (source (origin
7775 (method git-fetch)
7776 (uri (git-reference
7777 (url "https://github.com/sigma/mocker.el")
7778 (commit (string-append "v" version))))
7779 (file-name (git-file-name name version))
7780 (sha256
7781 (base32
7782 "1lav7am41v63xgavq8pr88y828jmd1cxd4prjq7jlbxm6nvrwxh2"))))
7783 (build-system emacs-build-system)
7784 (arguments
7785 `(#:tests? #t
7786 #:test-command '("ert-runner")))
7787 (native-inputs
7788 `(("ert-runner" ,emacs-ert-runner)))
7789 (propagated-inputs
7790 `(("emacs-el-x" ,emacs-el-x)))
7791 (home-page "https://github.com/sigma/mocker.el")
7792 (synopsis "Mocking framework for Emacs Lisp")
7793 (description "Mocker.el is a framework for writing tests in Emacs Lisp.
7794 It uses regular Lisp rather than a domain specific language (DSL), which
7795 maximizes flexibility (at the expense of conciseness).")
7796 (license license:gpl2+)))
7797
7798 (define-public emacs-find-file-in-project
7799 (package
7800 (name "emacs-find-file-in-project")
7801 (version "5.7.7")
7802 (source (origin
7803 (method git-fetch)
7804 (uri (git-reference
7805 (url "https://github.com/technomancy/find-file-in-project")
7806 (commit version)))
7807 (file-name (git-file-name name version))
7808 (sha256
7809 (base32
7810 "1skjbh7m0cck2rwmgzrrds51gipqf1jqghyfx15drc1n6kwivx3h"))))
7811 (build-system emacs-build-system)
7812 (arguments
7813 `(#:tests? #t
7814 #:test-command '("ert-runner" "tests")))
7815 (native-inputs
7816 `(("ert-runner" ,emacs-ert-runner)))
7817 (home-page "https://github.com/technomancy/find-file-in-project")
7818 (synopsis "File/directory finder for Emacs")
7819 (description "@code{find-file-in-project} finds files or
7820 directories quickly in the current project. The project root is detected
7821 automatically when Git, Subversion or Mercurial are used. It also provides
7822 functions to assist in reviewing changes on files.")
7823 (license license:gpl3+)))
7824
7825 (define-public emacs-pyvenv
7826 (package
7827 (name "emacs-pyvenv")
7828 (version "1.21")
7829 (source (origin
7830 (method git-fetch)
7831 (uri (git-reference
7832 (url "https://github.com/jorgenschaefer/pyvenv")
7833 (commit (string-append "v" version))))
7834 (file-name (git-file-name name version))
7835 (sha256
7836 (base32
7837 "055sgk8zf4wb5nqsf3qasf5gg861zlb1831733f1qcrd2ij5gzxx"))))
7838 (build-system emacs-build-system)
7839 (arguments
7840 `(#:phases
7841 (modify-phases %standard-phases
7842 ;; This phase incorrectly attempts to substitute "activate" and fails
7843 ;; doing so.
7844 (delete 'patch-el-files))
7845 #:tests? #t
7846 #:test-command '("ert-runner")))
7847 (native-inputs
7848 `(("ert-runner" ,emacs-ert-runner)
7849 ("emacs-mocker" ,emacs-mocker)))
7850 (home-page "https://github.com/jorgenschaefer/pyvenv")
7851 (synopsis "Python virtual environment interface for Emacs")
7852 (description "pyvenv.el is a minor mode to support using Python virtual
7853 environments (virtualenv) inside Emacs.")
7854 (license license:gpl3+)))
7855
7856 (define-public emacs-highlight-indent-guides
7857 (let ((version "0.8.5") ; from package metadata
7858 (revision "0")
7859 (commit "c2c9de4d01edfb89609c91d4d7f1d81312015a2c"))
7860 (package
7861 (name "emacs-highlight-indent-guides")
7862 (version (git-version version revision commit))
7863 (source
7864 (origin
7865 (method git-fetch)
7866 (uri (git-reference
7867 (url "https://github.com/DarthFennec/highlight-indent-guides")
7868 (commit commit)))
7869 (file-name (git-file-name name version))
7870 (sha256
7871 (base32 "10chvqnmdmkx6i9sigqframr85ziyafiz44glwhvhjajfkv42ad2"))))
7872 (build-system emacs-build-system)
7873 (home-page
7874 "https://github.com/DarthFennec/highlight-indent-guides")
7875 (synopsis "Minor mode to highlight indentation")
7876 (description
7877 "This package provides a minor mode to highlight indentation levels via
7878 font-lock. Indent widths are dynamically discovered, which means this
7879 correctly highlights in any mode, regardless of indent width, even in
7880 languages with non-uniform indentation such as Haskell. This mode works
7881 properly around hard tabs and mixed indentation and behaves well in large
7882 buffers.")
7883 (license license:expat))))
7884
7885 (define-public emacs-highlight-indentation
7886 ;; Last release version is from 2015.
7887 (let ((commit "d03803f2c06749c430443a3d24e039cbafc9c58f")
7888 (revision "1"))
7889 (package
7890 (name "emacs-highlight-indentation")
7891 (version (git-version "0.7.0" revision commit))
7892 (source
7893 (origin
7894 (method git-fetch)
7895 (uri (git-reference
7896 (url "https://github.com/antonj/Highlight-Indentation-for-Emacs")
7897 (commit commit)))
7898 (file-name (git-file-name name version))
7899 (sha256
7900 (base32
7901 "1jq0gf4kcx9hvrw40rnw5c2qynjpjw1vsjbi2i4lqjbsnfnxn4wz"))))
7902 (build-system emacs-build-system)
7903 (home-page "https://github.com/antonj/Highlight-Indentation-for-Emacs/")
7904 (synopsis "Highlighting indentation for Emacs")
7905 (description "This package provides two minor modes to highlight
7906 indentation guides in Emacs:
7907
7908 @enumerate
7909 @item @code{highlight-indentation-mode}, which displays guidelines
7910 indentation (space indentation only).
7911 @item @code{highlight-indentation-current-column-mode}, which displays
7912 guidelines for the current-point indentation (space indentation only).
7913 @end enumerate")
7914 (license license:gpl2+))))
7915
7916 (define-public emacs-elpy
7917 (package
7918 (name "emacs-elpy")
7919 (version "1.34.0")
7920 (source (origin
7921 (method git-fetch)
7922 (uri (git-reference
7923 (url "https://github.com/jorgenschaefer/elpy")
7924 (commit version)))
7925 (file-name (git-file-name name version))
7926 (sha256
7927 (base32
7928 "1x1z298axbh4xalssnq9nkf2z1sdgmx839vb01xz18kr9lfavx1x"))))
7929 (build-system emacs-build-system)
7930 (arguments
7931 `(#:include (cons* "^elpy/[^/]+\\.py$" "^snippets\\/" %default-include)
7932 #:phases
7933 (modify-phases %standard-phases
7934 ;; The following tests fail when building with Emacs 27 (see:
7935 ;; https://github.com/jorgenschaefer/elpy/issues/1812).
7936 (add-after 'unpack 'disable-problematic-tests
7937 (lambda _
7938 (substitute* "test/elpy-company-backend-test.el"
7939 (("elpy-company-backend-should-add-shell-candidates.*" all)
7940 (string-append all " (skip-unless nil)\n")))
7941 (substitute* "test/elpy-folding-fold-comments-test.el"
7942 (("elpy-fold-at-point-should-fold-and-unfold-comments.*" all)
7943 (string-append all " (skip-unless nil)\n")))
7944 #t))
7945 ;; The default environment of the RPC uses Virtualenv to install
7946 ;; Python dependencies from PyPI. We don't want/need this in Guix.
7947 (add-before 'check 'do-not-use-virtualenv
7948 (lambda _
7949 (setenv "ELPY_TEST_DONT_USE_VIRTUALENV" "1")
7950 (substitute* "elpy-rpc.el"
7951 (("defcustom elpy-rpc-virtualenv-path 'default")
7952 "defcustom elpy-rpc-virtualenv-path 'system"))
7953 #t))
7954 (add-before 'check 'build-doc
7955 (lambda _
7956 (with-directory-excursion "docs"
7957 (invoke "make" "info" "man"))
7958 ;; Move .info file at the root so that it can installed by the
7959 ;; 'move-doc phase.
7960 (rename-file "docs/_build/texinfo/Elpy.info" "Elpy.info")
7961 #t))
7962 (add-after 'build-doc 'install-manpage
7963 (lambda* (#:key outputs #:allow-other-keys)
7964 (let* ((out (assoc-ref outputs "out"))
7965 (man1 (string-append out "/share/man/man1")))
7966 (mkdir-p man1)
7967 (copy-file "docs/_build/man/elpy.1"
7968 (string-append man1 "/elpy.1")))
7969 #t)))
7970 #:tests? #t
7971 #:test-command '("ert-runner")))
7972 (propagated-inputs
7973 `(("emacs-company" ,emacs-company)
7974 ("emacs-find-file-in-project" ,emacs-find-file-in-project)
7975 ("emacs-highlight-indentation" ,emacs-highlight-indentation)
7976 ("emacs-yasnippet" ,emacs-yasnippet)
7977 ("pyvenv" ,emacs-pyvenv)
7978 ("s" ,emacs-s)
7979 ;; The following are recommended Python dependencies that make Elpy
7980 ;; much more useful. Installing these avoids Elpy prompting to install them
7981 ;; from PyPI using pip.
7982 ("python-autopep8" ,python-autopep8)
7983 ("python-black" ,python-black)
7984 ("python-flake8" ,python-flake8)
7985 ("python-jedi" ,python-jedi)
7986 ("python-rope" ,python-rope)
7987 ("python-yapf" ,python-yapf)))
7988 (native-inputs
7989 `(("ert-runner" ,emacs-ert-runner)
7990 ("emacs-f" ,emacs-f)
7991 ("python" ,python-wrapper)
7992 ;; For documentation.
7993 ("python-sphinx" ,python-sphinx)
7994 ("texinfo" ,texinfo)))
7995 (home-page "https://github.com/jorgenschaefer/elpy")
7996 (synopsis "Python development environment for Emacs")
7997 (description "Elpy brings powerful Python editing to Emacs. It combines
7998 and configures a number of other packages written in Emacs Lisp as well as
7999 Python, together offering features such as navigation, documentation,
8000 completion, interactive development and more.")
8001 (license license:gpl3+)))
8002
8003 (define-public emacs-rainbow-delimiters
8004 (package
8005 (name "emacs-rainbow-delimiters")
8006 (version "2.1.4")
8007 (source (origin
8008 (method git-fetch)
8009 (uri (git-reference
8010 (url "https://github.com/Fanael/rainbow-delimiters")
8011 (commit version)))
8012 (file-name (git-file-name name version))
8013 (sha256
8014 (base32
8015 "1zr2669savnmkc68hiqsq9wccm6bs1j6jbmlac1xqh6nq7xgq36g"))))
8016 (build-system emacs-build-system)
8017 (home-page "https://github.com/Fanael/rainbow-delimiters")
8018 (arguments
8019 `(#:tests? #t
8020 #:test-command '("emacs" "-Q" "-batch"
8021 "-l" "rainbow-delimiters-test.el"
8022 "-f" "ert-run-tests-batch-and-exit")))
8023 (synopsis "Highlight brackets according to their depth")
8024 (description
8025 "Rainbow-delimiters is a \"rainbow parentheses\"-like mode for Emacs which
8026 highlights parentheses, brackets, and braces according to their depth. Each
8027 successive level is highlighted in a different color, making it easy to spot
8028 matching delimiters, orient yourself in the code, and tell which statements
8029 are at a given level.")
8030 (license license:gpl3+)))
8031
8032 (define-public emacs-rainbow-identifiers
8033 (package
8034 (name "emacs-rainbow-identifiers")
8035 (version "0.2.2")
8036 (source (origin
8037 (method url-fetch)
8038 (uri (string-append "https://raw.githubusercontent.com/Fanael"
8039 "/rainbow-identifiers/" version
8040 "/rainbow-identifiers.el"))
8041 (file-name (string-append "rainbow-identifiers-" version ".el"))
8042 (sha256
8043 (base32
8044 "0325abxj47k0g1i8nqrq70w2wr6060ckhhf92krv1s072b3jzm31"))))
8045 (build-system emacs-build-system)
8046 (home-page "https://github.com/Fanael/rainbow-identifiers")
8047 (synopsis "Highlight identifiers in source code")
8048 (description
8049 "Rainbow identifiers mode is an Emacs minor mode providing highlighting of
8050 identifiers based on their names. Each identifier gets a color based on a hash
8051 of its name.")
8052 (license license:bsd-2)))
8053
8054 (define-public emacs-rainbow-mode
8055 (package
8056 (name "emacs-rainbow-mode")
8057 (version "1.0.5")
8058 (source
8059 (origin
8060 (method url-fetch)
8061 (uri (string-append "https://elpa.gnu.org/packages/"
8062 "rainbow-mode-" version ".el"))
8063 (sha256
8064 (base32 "159fps843k5pap9k04a7ll1k3gw6d9c6w08lq4bbc3lqg78aa2l9"))))
8065 (build-system emacs-build-system)
8066 (home-page "https://elpa.gnu.org/packages/rainbow-mode.html")
8067 (synopsis "Colorize color names in buffers")
8068 (description
8069 "This minor mode sets background color to strings that match color
8070 names, e.g., @samp{#0000ff} is displayed in white with a blue background.")
8071 (license license:gpl3+)))
8072
8073 (define-public emacs-ryo-modal
8074 ;; Package has no release. Version is extracted from "Version:" keyword in
8075 ;; main file.
8076 (let ((commit "3a54312eea7023a86ca3f8eb3c03c872554bff2f")
8077 (revision "0"))
8078 (package
8079 (name "emacs-ryo-modal")
8080 (version (git-version "0.4" revision commit))
8081 (source
8082 (origin
8083 (method git-fetch)
8084 (uri (git-reference
8085 (url "https://github.com/Kungsgeten/ryo-modal")
8086 (commit commit)))
8087 (file-name (git-file-name name version))
8088 (sha256
8089 (base32 "1cyvp3bi6yhckbdnq98xvghmhdzghya5y9wd7hxjawibs75rza95"))))
8090 (build-system emacs-build-system)
8091 (home-page "https://github.com/Kungsgeten/ryo-modal")
8092 (synopsis "Emacs minor mode for defining modal editing environments")
8093 (description "RYO modal provides a convenient way of defining modal
8094 keybindings in Emacs, and does not come with any predefined bindings.")
8095 (license license:expat))))
8096
8097 (define-public emacs-visual-fill-column
8098 (package
8099 (name "emacs-visual-fill-column")
8100 (version "1.11")
8101 (source (origin
8102 (method url-fetch)
8103 (uri (string-append "https://codeload.github.com/joostkremers/"
8104 "visual-fill-column/tar.gz/" version))
8105 (file-name (string-append name "-" version ".tar.gz"))
8106 (sha256
8107 (base32
8108 "13jnviakp607zcms7f8ams56mr8wffnq1pghlc6fvqs39663pgwh"))))
8109 (build-system emacs-build-system)
8110 (home-page "https://github.com/joostkremers/visual-fill-column")
8111 (synopsis "Fill-column for visual-line-mode")
8112 (description
8113 "@code{visual-fill-column-mode} is a small Emacs minor mode that mimics
8114 the effect of @code{fill-column} in @code{visual-line-mode}. Instead of
8115 wrapping lines at the window edge, which is the standard behaviour of
8116 @code{visual-line-mode}, it wraps lines at @code{fill-column}. If
8117 @code{fill-column} is too large for the window, the text is wrapped at the
8118 window edge.")
8119 (license license:gpl3+)))
8120
8121 (define-public emacs-writeroom
8122 (package
8123 (name "emacs-writeroom")
8124 (version "3.10")
8125 (source
8126 (origin
8127 (method git-fetch)
8128 (uri (git-reference
8129 (url "https://github.com/joostkremers/writeroom-mode")
8130 (commit version)))
8131 (file-name (git-file-name name version))
8132 (sha256
8133 (base32
8134 "0la4q2dm123l4rdfh0ry03b99ihvh324y7iw12az909198bcx335"))))
8135 (build-system emacs-build-system)
8136 (propagated-inputs
8137 `(("emacs-visual-fill-column" ,emacs-visual-fill-column)))
8138 (home-page "https://github.com/joostkremers/writeroom-mode")
8139 (synopsis "Distraction-free writing for Emacs")
8140 (description
8141 "This package defines a minor mode for distraction-free writing. Some of
8142 the default effects include entering fullscreen, deleting other windows of the
8143 current frame, disabling the mode line, and adding margins to the buffer that
8144 restrict the text width to 80 characters.")
8145 (license license:bsd-3)))
8146
8147 (define-public emacs-ido-completing-read+
8148 (package
8149 (name "emacs-ido-completing-read+")
8150 (version "3.12")
8151 (source (origin
8152 (method url-fetch)
8153 (uri (string-append "https://raw.githubusercontent.com"
8154 "/DarwinAwardWinner/ido-ubiquitous/v"
8155 version "/ido-completing-read+.el"))
8156 (file-name (string-append "ido-completing-read+-" version ".el"))
8157 (sha256
8158 (base32
8159 "1cyalb0p7nfsm4n6n9q6rjmvn6adqc0fq8ybnlj3n41n289dkfjf"))))
8160 (build-system emacs-build-system)
8161 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
8162 (synopsis "Replacement for completing-read using ido")
8163 (description
8164 "The ido-completing-read+ function is a wrapper for ido-completing-read.
8165 Importantly, it detects edge cases that ordinary ido cannot handle and either
8166 adjusts them so ido can handle them, or else simply falls back to the standard
8167 Emacs completion function instead.")
8168 (license license:gpl3+)))
8169
8170 (define-public emacs-ido-ubiquitous
8171 (package
8172 (name "emacs-ido-ubiquitous")
8173 (version "3.12")
8174 (source (origin
8175 (method url-fetch)
8176 (uri (string-append "https://raw.githubusercontent.com"
8177 "/DarwinAwardWinner/ido-ubiquitous/v"
8178 version "/ido-ubiquitous.el"))
8179 (file-name (string-append "ido-ubiquitous-" version ".el"))
8180 (sha256
8181 (base32
8182 "197ypji0fb6jsdcq40rpnknwlh3imas6s6jbsvkfm0pz9988c3q2"))))
8183 (build-system emacs-build-system)
8184 (propagated-inputs
8185 `(("emacs-ido-completing-read+" ,emacs-ido-completing-read+)))
8186 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
8187 (synopsis "Use ido (nearly) everywhere")
8188 (description
8189 "Ido-ubiquitous enables ido-style completion for almost every function
8190 that uses the standard completion function completing-read.")
8191 (license license:gpl3+)))
8192
8193 (define-public emacs-yaml-mode
8194 (package
8195 (name "emacs-yaml-mode")
8196 (version "0.0.14")
8197 (source (origin
8198 (method git-fetch)
8199 (uri (git-reference
8200 (url "https://github.com/yoshiki/yaml-mode")
8201 (commit version)))
8202 (file-name (git-file-name name version))
8203 (sha256
8204 (base32
8205 "18g064ardqi1f3xz7j6rs1x9fvv9sn0iq9vgid8c6qvxq7gwj00r"))))
8206 (build-system emacs-build-system)
8207 (home-page "https://github.com/yoshiki/yaml-mode")
8208 (synopsis "Major mode for editing YAML files")
8209 (description
8210 "Yaml-mode is an Emacs major mode for editing files in the YAML data
8211 serialization format. It was initially developed by Yoshiki Kurihara and many
8212 features were added by Marshall Vandegrift. As YAML and Python share the fact
8213 that indentation determines structure, this mode provides indentation and
8214 indentation command behavior very similar to that of python-mode.")
8215 (license license:gpl3+)))
8216
8217 (define-public emacs-gitlab-ci-mode
8218 (package
8219 (name "emacs-gitlab-ci-mode")
8220 (version "20190425.11.10")
8221 (source (origin
8222 (method git-fetch)
8223 (uri (git-reference
8224 (url "https://gitlab.com/joewreschnig/gitlab-ci-mode.git")
8225 (commit (string-append "v" version))))
8226 (file-name (git-file-name name version))
8227 (sha256
8228 (base32
8229 "1jkp9mnbiccqnha9zs646znqyqvy5jjb81kah7ghbkzdqqk2avm0"))))
8230 (build-system emacs-build-system)
8231 (propagated-inputs
8232 `(("emacs-yaml-mode" ,emacs-yaml-mode)))
8233 (home-page "https://gitlab.com/joewreschnig/gitlab-ci-mode/")
8234 (synopsis "Emacs mode for editing GitLab CI files")
8235 (description
8236 "@code{gitlab-ci-mode} is an Emacs major mode for editing GitLab CI
8237 files. It provides syntax highlighting and completion for keywords and
8238 special variables. An interface to GitLab’s CI file linter is also provided
8239 via @code{gitlab-ci-lint}.")
8240 (license license:gpl3+)))
8241
8242 (define-public emacs-gitlab-snip-helm
8243 (package
8244 (name "emacs-gitlab-snip-helm")
8245 (version "0.0.2")
8246 (source (origin
8247 (method git-fetch)
8248 (uri (git-reference
8249 (url "https://gitlab.com/sasanidas/gitlab-snip-helm.git")
8250 (commit version)))
8251 (file-name (git-file-name name version))
8252 (sha256
8253 (base32
8254 "1c5js19zyb1z61hapvbfcl5jhrjqij46cxldgqij6al0scw44dga"))))
8255 (build-system emacs-build-system)
8256 (propagated-inputs
8257 `(("emacs-dash" ,emacs-dash)
8258 ("emacs-helm" ,emacs-helm)))
8259 (home-page "https://gitlab.com/sasanidas/gitlab-snip-helm/")
8260 (synopsis "GitLab snippet API interaction for Emacs")
8261 (description "This package provides GitLab snippet API interaction for
8262 Emacs.")
8263 (license license:gpl3+)))
8264
8265 (define-public emacs-web-mode
8266 (package
8267 (name "emacs-web-mode")
8268 (version "17")
8269 (source
8270 (origin
8271 (method git-fetch)
8272 (uri (git-reference
8273 (url "https://github.com/fxbois/web-mode")
8274 (commit (string-append "v" version))))
8275 (file-name (git-file-name name version))
8276 (sha256
8277 (base32 "0jr5a1nzp8nbdng0k2fcaymiiv9ngrbknbrqaswgqn3akvx793jk"))))
8278 (build-system emacs-build-system)
8279 (synopsis "Major mode for editing web templates")
8280 (description "Web mode is an Emacs major mode for editing web templates
8281 aka HTML files embedding parts (CSS/JavaScript) and blocks (pre rendered by
8282 client/server side engines). Web mode is compatible with many template
8283 engines: PHP, JSP, ASP, Django, Twig, Jinja, Mustache, ERB, FreeMarker,
8284 Velocity, Cheetah, Smarty, CTemplate, Mustache, Blade, ErlyDTL, Go Template,
8285 Dust.js, React/JSX, Angularjs, ejs, etc.")
8286 (home-page "http://web-mode.org/")
8287 (license license:gpl3+)))
8288
8289 (define-public emacs-wgrep
8290 (package
8291 (name "emacs-wgrep")
8292 (version "2.3.2")
8293 (source (origin
8294 (method git-fetch)
8295 (uri (git-reference
8296 (url "https://github.com/mhayashi1120/Emacs-wgrep")
8297 (commit version)))
8298 (file-name (git-file-name name version))
8299 (sha256
8300 (base32
8301 "00cwqzb94jlq4mwgv8z7r3mn0a6mhq95z6j189kacq9g4473zh8d"))))
8302 (build-system emacs-build-system)
8303 (home-page "https://github.com/mhayashi1120/Emacs-wgrep")
8304 (synopsis "Edit a grep buffer and apply those changes to the files")
8305 (description
8306 "Emacs wgrep allows you to edit a grep buffer and apply those changes
8307 to the file buffer. Several backends are supported beside the classic grep:
8308 ack, ag, helm and pt.")
8309 (license license:gpl3+)))
8310
8311 (define-public emacs-helm
8312 (package
8313 (name "emacs-helm")
8314 (version "3.6.4")
8315 (source
8316 (origin
8317 (method git-fetch)
8318 (uri (git-reference
8319 (url "https://github.com/emacs-helm/helm")
8320 (commit (string-append "v" version))))
8321 (file-name (git-file-name name version))
8322 (sha256
8323 (base32 "0cl5awhq5py872qx9s30sfgfpfwjivwbsi18mgar8lj6lvs4s8zz"))))
8324 (build-system emacs-build-system)
8325 (propagated-inputs
8326 `(("emacs-async" ,emacs-async)
8327 ("emacs-popup" ,emacs-popup)))
8328 (home-page "https://emacs-helm.github.io/helm/")
8329 (synopsis "Incremental completion and selection narrowing
8330 framework for Emacs")
8331 (description "Helm is incremental completion and selection narrowing
8332 framework for Emacs. It will help steer you in the right direction when
8333 you're looking for stuff in Emacs (like buffers, files, etc). Helm is a fork
8334 of @code{anything.el} originally written by Tamas Patrovic and can be
8335 considered to be its successor. Helm sets out to clean up the legacy code in
8336 @code{anything.el} and provide a cleaner, leaner and more modular tool, that's
8337 not tied in the trap of backward compatibility.")
8338 (license license:gpl3+)))
8339
8340 (define-public emacs-helm-org
8341 (let ((commit "8457e1e46227bf87726e05c42cec5a4b51c2ef7b")
8342 (revision "3"))
8343 (package
8344 (name "emacs-helm-org")
8345 (version (git-version "1.0" revision commit))
8346 (source
8347 (origin
8348 (method git-fetch)
8349 (uri (git-reference
8350 (url "https://github.com/emacs-helm/helm-org")
8351 (commit commit)))
8352 (file-name (git-file-name name version))
8353 (sha256
8354 (base32 "0kcjhwwi492n9m2w894hvdavfvhj45zygy7bwvx103wvpay5h6h6"))))
8355 (build-system emacs-build-system)
8356 (propagated-inputs
8357 `(("emacs-helm" ,emacs-helm)))
8358 (home-page "https://github.com/emacs-helm/helm-org")
8359 (synopsis "Helm interface to the Silver Searcher")
8360 (description
8361 "This package provides a frontend for grepping tools like ag and ack,
8362 as well as features for editing search results.")
8363 (license license:gpl3+))))
8364
8365 (define-public emacs-helm-swoop
8366 (package
8367 (name "emacs-helm-swoop")
8368 (version "2.0.0")
8369 (source
8370 (origin
8371 (method git-fetch)
8372 (uri (git-reference
8373 (url "https://github.com/emacsorphanage/helm-swoop")
8374 (commit version)))
8375 (file-name (git-file-name name version))
8376 (sha256
8377 (base32 "0k0ns92g45x8dbymqpl6ylk5mj3wiw2h03f48q5cy1z8in0c4rjd"))))
8378 (build-system emacs-build-system)
8379 (propagated-inputs
8380 `(("emacs-helm" ,emacs-helm)))
8381 (home-page "https://github.com/emacsorphanage/helm-swoop")
8382 (synopsis "Filter and jump to lines in an Emacs buffer using Helm")
8383 (description
8384 "This package builds on the Helm interface to provide several commands
8385 for search-based navigation of buffers.")
8386 (license license:gpl2+)))
8387
8388 (define-public emacs-helm-ag
8389 (package
8390 (name "emacs-helm-ag")
8391 (version "0.62")
8392 (source
8393 (origin
8394 (method git-fetch)
8395 (uri (git-reference
8396 (url "https://github.com/syohex/emacs-helm-ag")
8397 (commit version)))
8398 (file-name (git-file-name name version))
8399 (sha256
8400 (base32 "0xgbpp8xqdiyvfs64x0q909g77ml28z3irw2lnasvpsg0dfdm2zy"))))
8401 (build-system emacs-build-system)
8402 (propagated-inputs
8403 `(("emacs-helm" ,emacs-helm)))
8404 (home-page "https://github.com/syohex/emacs-helm-ag")
8405 (synopsis "Helm interface to the Silver Searcher")
8406 (description
8407 "This package provides a frontend for grepping tools like ag and ack,
8408 as well as features for editing search results.")
8409 (license license:gpl3+)))
8410
8411 (define-public emacs-helm-projectile
8412 (package
8413 (name "emacs-helm-projectile")
8414 (version "1.0.0")
8415 (source
8416 (origin
8417 (method git-fetch)
8418 (uri (git-reference
8419 (url "https://github.com/bbatsov/helm-projectile")
8420 (commit (string-append "v" version))))
8421 (file-name (git-file-name name version))
8422 (sha256
8423 (base32 "05gpg90gg03yalmv9fw1y9k21i2l617iipvs0p9n80aln8nrzs8g"))))
8424 (build-system emacs-build-system)
8425 (propagated-inputs
8426 `(("emacs-helm" ,emacs-helm)
8427 ("emacs-projectile" ,emacs-projectile)))
8428 (home-page "https://github.com/bbatsov/helm-projectile")
8429 (synopsis "Helm integration for Projectile")
8430 (description
8431 "This Emacs library provides a Helm interface for Projectile.")
8432 (license license:gpl3+)))
8433
8434 (define-public emacs-taskrunner
8435 (let ((commit "3afd4a546d42339543d3d4e51b175fc3e82b3358")
8436 (revision "1"))
8437 (package
8438 (name "emacs-taskrunner")
8439 (version (git-version "0.6" revision commit))
8440 (source
8441 (origin
8442 (method git-fetch)
8443 (uri (git-reference
8444 (url "https://github.com/emacs-taskrunner/emacs-taskrunner")
8445 (commit commit)))
8446 (file-name (git-file-name name version))
8447 (sha256
8448 (base32
8449 "1lkdvmjn3alhqxq2i64sdr977sbw3g0b2670d9bwyzi67qh0jxrv"))))
8450 (build-system emacs-build-system)
8451 (propagated-inputs
8452 `(("emacs-async" ,emacs-async)
8453 ("emacs-projectile" ,emacs-projectile)))
8454 (home-page "https://github.com/emacs-taskrunner/emacs-taskrunner")
8455 (synopsis "Retrieve tasks from various build systems and task-runners")
8456 (description "This package parses Makefiles and build-system files for
8457 multiple project types.")
8458 (license license:gpl3+))))
8459
8460 (define-public emacs-ivy-taskrunner
8461 (let ((commit "75d8d67cfe3c29663fe0f5508a887adf40ed5162")
8462 (revision "1"))
8463 (package
8464 (name "emacs-ivy-taskrunner")
8465 (version (git-version "0.9" revision commit))
8466 (source
8467 (origin
8468 (method git-fetch)
8469 (uri (git-reference
8470 (url "https://github.com/emacs-taskrunner/ivy-taskrunner")
8471 (commit commit)))
8472 (file-name (git-file-name name version))
8473 (sha256
8474 (base32
8475 "1wf4s4k0ap21f7g5w6128an8nsvbja7f5n889vcml5b6gjz058db"))))
8476 (build-system emacs-build-system)
8477 (propagated-inputs
8478 `(("emacs-ivy" ,emacs-ivy)
8479 ("emacs-taskrunner" ,emacs-taskrunner)
8480 ("emacs-projectile" ,emacs-projectile)))
8481 (home-page "https://github.com/emacs-taskrunner/ivy-taskrunner")
8482 (synopsis "Retrieve build-system tasks using Ivy")
8483 (description "This package provides an Ivy interface for selecting
8484 Makefile targets.")
8485 (license license:gpl3+))))
8486
8487 (define-public emacs-helm-taskrunner
8488 (let ((commit "1910dac19cbc7bd4fd08b0faf9affd455339fbea")
8489 (revision "1"))
8490 (package
8491 (name "emacs-helm-taskrunner")
8492 (version (git-version "0.9" revision commit))
8493 (source
8494 (origin
8495 (method git-fetch)
8496 (uri (git-reference
8497 (url "https://github.com/emacs-taskrunner/helm-taskrunner")
8498 (commit commit)))
8499 (file-name (git-file-name name version))
8500 (sha256
8501 (base32
8502 "182lmr858fx6rdhp1fy7kv8dvrhzcnxzwfck1q22s6xs8x85d5q7"))))
8503 (build-system emacs-build-system)
8504 (propagated-inputs
8505 `(("emacs-helm" ,emacs-helm)
8506 ("emacs-taskrunner" ,emacs-taskrunner)
8507 ("emacs-projectile" ,emacs-projectile)))
8508 (home-page "https://github.com/emacs-taskrunner/helm-taskrunner")
8509 (synopsis "Retrieve build-system tasks using Helm")
8510 (description "This package provides a Helm interface for selecting
8511 Makefile targets.")
8512 (license license:gpl3+))))
8513
8514 (define-public emacs-helm-make
8515 (let ((commit "feae8df22bc4b20705ea08ac9adfc2b43bb348d0")
8516 (revision "1"))
8517 (package
8518 (name "emacs-helm-make")
8519 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
8520 (source
8521 (origin
8522 (method git-fetch)
8523 (uri (git-reference
8524 (url "https://github.com/abo-abo/helm-make")
8525 (commit commit)))
8526 (file-name (git-file-name name version))
8527 (sha256
8528 (base32
8529 "1y2v77mmd1bfkkz51cnk1l0dg3lvvxc39wlamnm7wjns66dbvlam"))))
8530 (build-system emacs-build-system)
8531 (propagated-inputs
8532 `(("emacs-helm" ,emacs-helm)
8533 ("emacs-projectile" ,emacs-projectile)))
8534 (home-page "https://github.com/abo-abo/helm-make")
8535 (synopsis "Select a Makefile target with helm")
8536 (description "@code{helm-make} or @code{helm-make-projectile} will give
8537 you a @code{helm} selection of directory Makefile's targets. Selecting a
8538 target will call @code{compile} on it.")
8539 (license license:gpl3+))))
8540
8541 (define-public emacs-cider
8542 (package
8543 (name "emacs-cider")
8544 (version "0.25.0")
8545 (source
8546 (origin
8547 (method git-fetch)
8548 (uri (git-reference
8549 (url "https://github.com/clojure-emacs/cider")
8550 (commit (string-append "v" version))))
8551 (file-name (git-file-name name version))
8552 (sha256
8553 (base32 "1sdd7vzw948q01kc8im1asiq1j06q0mnn2s8kj83f8sbdnfy0qbk"))))
8554 (build-system emacs-build-system)
8555 (arguments
8556 '(#:exclude ;don't exclude 'cider-test.el'
8557 '("^\\.dir-locals\\.el$" "^test/")))
8558 (propagated-inputs
8559 `(("emacs-clojure-mode" ,emacs-clojure-mode)
8560 ("emacs-parseedn" ,emacs-parseedn)
8561 ("emacs-pkg-info" ,emacs-pkg-info)
8562 ("emacs-queue" ,emacs-queue)
8563 ("emacs-sesman" ,emacs-sesman)
8564 ("emacs-spinner" ,emacs-spinner)))
8565 (home-page "https://cider.mx/")
8566 (synopsis "Clojure development environment for Emacs")
8567 (description
8568 "CIDER (Clojure Interactive Development Environment that Rocks) aims to
8569 provide an interactive development experience similar to the one you'd get
8570 when programming in Emacs Lisp, Common Lisp (with SLIME or Sly), Scheme (with
8571 Geiser) and Smalltalk.
8572
8573 CIDER is the successor to the now deprecated combination of using SLIME +
8574 swank-clojure for Clojure development.
8575
8576 There are plenty of differences between CIDER and SLIME, but the core ideas
8577 are pretty much the same (and SLIME served as the principle inspiration for
8578 CIDER).")
8579 (license license:gpl3+)))
8580
8581 ;; There hasn't been a tag or release since 2016, so we take the latest
8582 ;; commit.
8583 (define-public emacs-sly
8584 (let ((commit "6a2f543cb21f14104c2253af5a1427b884a987ae")
8585 ;; Update together with sbcl-slynk-boot0.
8586 (revision "5"))
8587 (package
8588 (name "emacs-sly")
8589 (version (git-version "1.0.0" revision commit))
8590 (source
8591 (origin
8592 (method git-fetch)
8593 (uri (git-reference
8594 (url "https://github.com/joaotavora/sly")
8595 (commit commit)))
8596 (file-name (git-file-name name version))
8597 (sha256
8598 (base32
8599 "0wbpg9p9yg2hd62l15pvy50fk3hndq5zzyqlyyf04g368s895144"))))
8600 (build-system emacs-build-system)
8601 (native-inputs
8602 `(("texinfo" ,texinfo)))
8603 (arguments
8604 `(#:include (cons* "^contrib\\/" "^lib\\/" "^slynk\\/" %default-include)
8605 #:phases
8606 ;; The package provides autoloads.
8607 (modify-phases %standard-phases
8608 (delete 'make-autoloads)
8609 (add-before 'install 'install-doc
8610 (lambda* (#:key outputs #:allow-other-keys)
8611 (let* ((out (assoc-ref outputs "out"))
8612 (info-dir (string-append out "/share/info"))
8613 (doc-dir (string-append out "/share/doc/"
8614 ,name "-" ,version))
8615 (doc-files '(;; "doc/sly-refcard.pdf" ; See sly-refcard.pdf below.
8616 "README.md" "NEWS.md" "PROBLEMS.md"
8617 "CONTRIBUTING.md")))
8618 (with-directory-excursion "doc"
8619 (substitute* "Makefile"
8620 (("infodir=/usr/local/info")
8621 (string-append "infodir=" info-dir))
8622 ;; Don't rebuild contributors.texi since we are not in
8623 ;; the git repo.
8624 (("contributors.texi: Makefile texinfo-tabulate.awk")
8625 "contributors.texi:"))
8626 (invoke "make" "html/index.html")
8627 (invoke "make" "sly.info")
8628 ;; TODO: We need minimal texlive with "preprint" package
8629 ;; (for fullpage.sty). (invoke "make" "sly-refcard.pdf")
8630 (install-file "sly.info" info-dir)
8631 (copy-recursively "html" (string-append doc-dir "/html")))
8632 (for-each (lambda (f)
8633 (install-file f doc-dir)
8634 (delete-file f))
8635 doc-files)
8636 (delete-file-recursively "doc")
8637 #t))))))
8638 (home-page "https://github.com/joaotavora/sly")
8639 (synopsis "Sylvester the Cat's Common Lisp IDE")
8640 (description
8641 "SLY is Sylvester the Cat's Common Lisp IDE. SLY is a fork of SLIME, and
8642 contains the following improvements over it:
8643
8644 @enumerate
8645 @item Completely redesigned REPL based on Emacs's own full-featured
8646 @code{comint.el}.
8647 @item Live code annotations via a new @code{sly-stickers} contrib.
8648 @item Consistent interactive button interface. Everything can be copied to
8649 the REPL.
8650 @item Multiple inspectors with independent history.
8651 @item Regexp-capable @code{M-x sly-apropos}.
8652 @item Contribs are first class SLY citizens and enabled by default.
8653 @item Use ASDF to loads contribs on demand.
8654 @end enumerate
8655
8656 SLY tracks SLIME's bugfixes and all its familiar features (debugger, inspector,
8657 xref, etc...) are still available, but with better integration.")
8658 (license license:gpl3+))))
8659
8660 (define-public emacs-sly-quicklisp
8661 (let ((commit "01ebe3976a244309f2e277c09206831135a0b66c")
8662 (revision "1"))
8663 (package
8664 (name "emacs-sly-quicklisp")
8665 (version (git-version "0.0.0" revision commit))
8666 (home-page "https://github.com/joaotavora/sly-quicklisp")
8667 (source
8668 (origin
8669 (method git-fetch)
8670 (uri (git-reference
8671 (url home-page)
8672 (commit commit)))
8673 (file-name (git-file-name name version))
8674 (sha256
8675 (base32
8676 "1vfqmvayf35g6y3ljsm3rlzv5jm50qikhh4lv2zkkswj6gkkb1cv"))))
8677 (build-system emacs-build-system)
8678 (propagated-inputs
8679 `(("emacs-sly" ,emacs-sly)))
8680 (arguments
8681 `(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
8682 #:phases
8683 ;; The package provides autoloads.
8684 (modify-phases %standard-phases
8685 (delete 'make-autoloads)
8686 (delete 'enable-autoloads-compilation))))
8687 (synopsis "Quicklisp support for SLY")
8688 (description
8689 "@command{sly-quicklisp} is an external contrib for SLY that provides a
8690 sly-quickload command that prompts the user for a package to install. ")
8691 (license license:gpl3+))))
8692
8693 (define-public emacs-sly-asdf
8694 (let ((commit "32ce14994e8faee9321605cec36d156b02996c46")
8695 (revision "4"))
8696 (package
8697 (name "emacs-sly-asdf")
8698 (version (git-version "0.1.0" revision commit))
8699 (home-page "https://github.com/mmgeorge/sly-asdf")
8700 (source
8701 (origin
8702 (method git-fetch)
8703 (uri (git-reference
8704 (url home-page)
8705 (commit commit)))
8706 (file-name (git-file-name name version))
8707 (sha256
8708 (base32
8709 "09x8l37wwqw74xc2frwzbfdb1if8rb3szg5akdk3v2qhik4sm3dd"))))
8710 (build-system emacs-build-system)
8711 (propagated-inputs
8712 `(("emacs-sly" ,emacs-sly)
8713 ("emacs-popup" ,emacs-popup)))
8714 (arguments
8715 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)))
8716 (synopsis "ASDF contrib for SLY")
8717 (description
8718 "@command{sly-asdf} is an external contrib for SLY that provides
8719 additional support for working with ASDF projects.")
8720 (license license:gpl3+))))
8721
8722 (define-public emacs-sly-named-readtables
8723 (let ((commit "a5a42674ccffa97ccd5e4e9742beaf3ea719931f")
8724 (revision "1"))
8725 (package
8726 (name "emacs-sly-named-readtables")
8727 (version (git-version "0.1" revision commit))
8728 (home-page "https://github.com/joaotavora/sly-named-readtables")
8729 (source
8730 (origin
8731 (method git-fetch)
8732 (uri (git-reference
8733 (url home-page)
8734 (commit commit)))
8735 (file-name (git-file-name name version))
8736 (sha256
8737 (base32
8738 "16asd119rzqrlclps2q6yrkis8jy5an5xgzzqvb7jdyq39zxg54q"))))
8739 (build-system emacs-build-system)
8740 (propagated-inputs
8741 `(("emacs-sly" ,emacs-sly)))
8742 (arguments
8743 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
8744 #:phases (modify-phases %standard-phases
8745 ;; Byte compilation of the autoload file fails.
8746 (delete 'enable-autoloads-compilation))))
8747 (synopsis "Named-readtables support for SLY")
8748 (description
8749 "@command{sly-named-readtables} is an external contrib for SLY that
8750 enables different readtables to be active in different parts of the same
8751 file.")
8752 (license license:gpl3+))))
8753
8754 (define-public emacs-sly-macrostep
8755 (let ((commit "be2d24545092d164be1a91031d8881afd29c9ec0")
8756 (revision "1"))
8757 (package
8758 (name "emacs-sly-macrostep")
8759 (version (git-version "0.1" revision commit))
8760 (home-page "https://github.com/joaotavora/sly-macrostep")
8761 (source
8762 (origin
8763 (method git-fetch)
8764 (uri (git-reference
8765 (url home-page)
8766 (commit commit)))
8767 (file-name (git-file-name name version))
8768 (sha256
8769 (base32
8770 "0v8m3zkccpqd2l8m9340y672l2mm3mrry8422nva5kfvpcwdayqb"))))
8771 (build-system emacs-build-system)
8772 (propagated-inputs
8773 `(("emacs-sly" ,emacs-sly)
8774 ("emacs-macrostep" ,emacs-macrostep)))
8775 (arguments
8776 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
8777 #:phases
8778 ;; The package provides autoloads.
8779 (modify-phases %standard-phases
8780 (delete 'make-autoloads)
8781 (delete 'enable-autoloads-compilation))))
8782 (synopsis "Expand Common Lisp macros inside source files with SLY")
8783 (description
8784 "@command{sly-macrostep} is a SLY contrib for expanding CL macros right
8785 inside the source file.")
8786 (license license:gpl3+))))
8787
8788 (define-public emacs-sly-package-inferred
8789 (let ((commit "800e71e2be631422277e2ec77e6d6f6ea20e95ef")
8790 (revision "1"))
8791 (package
8792 (name "emacs-sly-package-inferred")
8793 (version (git-version "0.1" revision commit))
8794 (home-page "https://github.com/40ants/sly-package-inferred")
8795 (source
8796 (origin
8797 (method git-fetch)
8798 (uri (git-reference
8799 (url home-page)
8800 (commit commit)))
8801 (file-name (git-file-name name version))
8802 (sha256
8803 (base32
8804 "1216idyp034nkqddhw4p53jkhhdxa6xnjjmsvijpf4rxqnfqvapg"))))
8805 (build-system emacs-build-system)
8806 (propagated-inputs
8807 `(("emacs-sly" ,emacs-sly)))
8808 (arguments
8809 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
8810 #:phases
8811 ;; The package provides autoloads.
8812 (modify-phases %standard-phases
8813 (delete 'make-autoloads))))
8814 (synopsis "Improved package inferred systems support for SLY")
8815 (description
8816 "@command{sly-package-inferred} is an external contrib for SLY that
8817 replaces its completion with a function which is better suited for systems
8818 using package inferred style.")
8819 (license license:gpl3+))))
8820
8821 (define-public emacs-lua-mode
8822 (let ((commit "35b6e4c20b8b4eaf783ccc8e613d0dd06dbd165c")
8823 (revision "0"))
8824 (package
8825 (name "emacs-lua-mode")
8826 (version (git-version "20200508" revision commit))
8827 (home-page "https://github.com/immerrr/lua-mode/")
8828 (source (origin
8829 (method git-fetch)
8830 (uri (git-reference
8831 (url home-page)
8832 (commit commit)))
8833 (file-name (git-file-name name version))
8834 (sha256
8835 (base32
8836 "1hai6rqjm5py0bp57nhggmj9qigwdj3a46ngacpnjc1qmy9kkgfk"))))
8837 (build-system emacs-build-system)
8838 (arguments
8839 `(#:tests? #t
8840 #:test-command '("buttercup" "-l" "lua-mode.el")))
8841 (native-inputs
8842 `(("emacs-buttercup" ,emacs-buttercup)
8843 ("lua" ,lua)))
8844 (synopsis "Major mode for lua")
8845 (description
8846 "This Emacs package provides a mode for @uref{https://www.lua.org/,
8847 Lua programming language}.")
8848 (license license:gpl2+))))
8849
8850 (define-public emacs-ebuild-mode
8851 (package
8852 (name "emacs-ebuild-mode")
8853 (version "1.51")
8854 (source
8855 (origin
8856 (method url-fetch)
8857 (uri (string-append
8858 "https://dev.gentoo.org/~ulm/emacs/"
8859 "ebuild-mode-" version ".tar.xz"))
8860 (file-name (string-append name "-" version ".tar.xz"))
8861 (sha256
8862 (base32 "0sfmd6ns2qdmybcynlvc4fqzkbkzmm54rn87wyirdcqnpy0x03i2"))))
8863 (build-system emacs-build-system)
8864 (arguments
8865 '(#:phases
8866 (modify-phases %standard-phases
8867 (add-after 'install 'install-doc
8868 (lambda* (#:key outputs #:allow-other-keys)
8869 (invoke "make" "ebuild-mode.info")
8870 (install-file "ebuild-mode.info"
8871 (string-append (assoc-ref outputs "out")
8872 "/share/info"))
8873 #t)))))
8874 (native-inputs
8875 `(("texinfo" ,texinfo)))
8876 (home-page "https://devmanual.gentoo.org")
8877 (synopsis "Major modes for Gentoo package files")
8878 (description
8879 "This Emacs package provides modes for ebuild, eclass, eblit, GLEP42
8880 news items, openrc and runscripts.")
8881 (license license:gpl2+)))
8882
8883 (define-public emacs-evil
8884 (package
8885 (name "emacs-evil")
8886 (version "1.14.0")
8887 (source
8888 (origin
8889 (method git-fetch)
8890 (uri (git-reference
8891 (url "https://github.com/emacs-evil/evil")
8892 (commit version)))
8893 (file-name (git-file-name name version))
8894 (sha256
8895 (base32
8896 "17xrn3s6a4afmls8fw8nnxa1jq9dmj2qqrxa2vngh50hxpz8840p"))))
8897 (arguments
8898 `(#:phases
8899 (modify-phases %standard-phases
8900 (add-before 'check 'fix-test-helpers
8901 (lambda _
8902 (substitute* "evil-test-helpers.el"
8903 (("\\(undo-tree-mode 1\\)") ""))
8904 #t)))))
8905 (build-system emacs-build-system)
8906 (home-page "https://github.com/emacs-evil/evil")
8907 (synopsis "Extensible Vi layer for Emacs")
8908 (description
8909 "Evil is an extensible vi layer for Emacs. It emulates the
8910 main features of Vim, and provides facilities for writing custom
8911 extensions.")
8912 (license license:gpl3+)))
8913
8914 (define-public emacs-evil-collection
8915 (let ((commit "c68aed6a9694836602ada224160bc5b4c0a37919")
8916 (revision "15"))
8917 (package
8918 (name "emacs-evil-collection")
8919 (version (git-version "0.0.3" revision commit))
8920 (source (origin
8921 (method git-fetch)
8922 (uri (git-reference
8923 (url "https://github.com/emacs-evil/evil-collection")
8924 (commit commit)))
8925 (file-name (git-file-name name version))
8926 (sha256
8927 (base32
8928 "1xhrzl0vy540a572f9fnh5a039bpqsrkv0kh6bqw0rki70w7x0xx"))))
8929 (build-system emacs-build-system)
8930 (propagated-inputs
8931 `(("emacs-evil" ,emacs-evil)
8932 ("emacs-annalist" ,emacs-annalist)))
8933 (arguments
8934 `(#:include (cons* "^modes\\/" %default-include)))
8935 (home-page "https://github.com/emacs-evil/evil-collection")
8936 (synopsis "Collection of Evil bindings for many major and minor modes")
8937 (description "This is a collection of Evil bindings for the parts of
8938 Emacs that Evil does not cover properly by default, such as @code{help-mode},
8939 @code{M-x calendar}, Eshell and more.")
8940 (license license:gpl3+))))
8941
8942 (define-public emacs-goto-chg
8943 (let ((commit "1829a13026c597e358f716d2c7793202458120b5")
8944 (version "1.7.3")
8945 (revision "1"))
8946 (package
8947 (name "emacs-goto-chg")
8948 (version (git-version version revision commit))
8949 (source
8950 (origin
8951 (method git-fetch)
8952 (uri (git-reference
8953 (url "https://github.com/emacs-evil/goto-chg")
8954 (commit commit)))
8955 (file-name (git-file-name name version))
8956 (sha256
8957 (base32
8958 "1y603maw9xwdj3qiarmf1bp13461f9f5ackzicsbynl0i9la3qki"))))
8959 (build-system emacs-build-system)
8960 (propagated-inputs
8961 `(("emacs-undo-tree" ,emacs-undo-tree)))
8962 (home-page "https://github.com/emacs-evil/goto-chg")
8963 (synopsis "Go to the last change in the Emacs buffer")
8964 (description
8965 "This package provides @code{M-x goto-last-change} command that goes to
8966 the point of the most recent edit in the current Emacs buffer. When repeated,
8967 go to the second most recent edit, etc. Negative argument, @kbd{C-u -}, is
8968 used for reverse direction.")
8969 (license license:gpl2+))))
8970
8971 (define-public emacs-janpath-evil-numbers
8972 (let ((commit "d988041c1fe6e941dc8d591390750b237f71f524")
8973 (version "0.5")
8974 (revision "1"))
8975 (package
8976 (name "emacs-janpath-evil-numbers")
8977 (version (git-version version revision commit))
8978 (source
8979 (origin
8980 (method git-fetch)
8981 (uri (git-reference
8982 (url "https://github.com/janpath/evil-numbers")
8983 (commit commit)))
8984 (file-name (git-file-name name version))
8985 (sha256
8986 (base32
8987 "16zixhxxcb83m82f2cfiardfn99j3w41v6vh1qk6j9pplrlfw70v"))))
8988 (build-system emacs-build-system)
8989 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
8990 (home-page "https://github.com/janpath/evil-numbers")
8991 (synopsis "Increment and decrement numeric literals")
8992 (description
8993 "This package provides functionality to search for a number up to the
8994 end of a line and increment or decrement it.")
8995 (license license:gpl3+))))
8996
8997 (define-public emacs-evil-owl
8998 (let ((commit "24c5f43df375194386344e69bc720ea3986c9510")
8999 (revision "3"))
9000 (package
9001 (name "emacs-evil-owl")
9002 (version (git-version "0.0.1" revision commit))
9003 (source
9004 (origin
9005 (method git-fetch)
9006 (uri (git-reference
9007 (url "https://github.com/mamapanda/evil-owl")
9008 (commit commit)))
9009 (file-name (git-file-name name version))
9010 (sha256
9011 (base32
9012 "0bqzch14whlmrcasakah3psrzswvkzd7mmi8hx5s64kfp29wbdhi"))))
9013 (build-system emacs-build-system)
9014 (propagated-inputs
9015 `(("emacs-evil" ,emacs-evil)))
9016 (arguments
9017 `(#:tests? #t
9018 #:test-command '("make" "test")))
9019 (home-page "https://github.com/mamapanda/evil-owl")
9020 (synopsis "Preview candidates when using Evil registers and marks")
9021 (description
9022 "This package supplements Evil's register- and mark-based commands with
9023 a popup window for previewing candidates.")
9024 (license license:gpl3+))))
9025
9026 (define-public emacs-evil-args
9027 (let ((commit "758ad5ae54ad34202064fec192c88151c08cb387")
9028 (revision "1"))
9029 (package
9030 (name "emacs-evil-args")
9031 (version (git-version "1.0" revision commit))
9032 (source
9033 (origin
9034 (method git-fetch)
9035 (uri (git-reference
9036 (url "https://github.com/wcsmith/evil-args")
9037 (commit commit)))
9038 (file-name (git-file-name name version))
9039 (sha256
9040 (base32
9041 "0k35glgsirc3cph8v5hhjrqfh4ndwh8a28qbr03y3jl8s453xcj7"))))
9042 (build-system emacs-build-system)
9043 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9044 (home-page "https://github.com/wcsmith/evil-args")
9045 (synopsis "Motions and text objects for delimited arguments in Evil")
9046 (description
9047 "This package provides motions and text objects for delimited
9048 arguments, such as arguments separated by commas and semicolons.")
9049 (license license:expat))))
9050
9051 (define-public emacs-evil-escape
9052 (package
9053 (name "emacs-evil-escape")
9054 (version "3.14")
9055 (source
9056 (origin
9057 (method git-fetch)
9058 (uri
9059 (git-reference
9060 (url "https://github.com/syl20bnr/evil-escape")
9061 (commit (string-append "v" version))))
9062 (file-name (git-file-name name version))
9063 (sha256
9064 (base32 "0s8lmmm25qabicwaj9jybpbd8mkc62yl7jnhk1lpablydjkv3w2i"))))
9065 (propagated-inputs
9066 `(("emacs-evil" ,emacs-evil)))
9067 (build-system emacs-build-system)
9068 (home-page "https://github.com/syl20bnr/evil-escape")
9069 (synopsis "Escape from insert state and everything else in Emacs")
9070 (description
9071 "Evil escape provides a customizable key sequence to escape from insert
9072 state and everything else in Emacs.")
9073 (license license:gpl3+)))
9074
9075 (define-public emacs-evil-exchange
9076 (let ((commit "47691537815150715e64e6f6ec79be7746c96120")
9077 (version "0.41")
9078 (revision "1"))
9079 (package
9080 (name "emacs-evil-exchange")
9081 (version (git-version version revision commit))
9082 (source
9083 (origin
9084 (method git-fetch)
9085 (uri (git-reference
9086 (url "https://github.com/Dewdrops/evil-exchange")
9087 (commit commit)))
9088 (file-name (git-file-name name version))
9089 (sha256
9090 (base32
9091 "0bjpn4yqig17ddym6wqq5fm1b294q74hzcbj9a6gs97fqiwf88xa"))))
9092 (build-system emacs-build-system)
9093 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9094 (native-inputs `(("emacs-ert-runner" ,emacs-ert-runner)))
9095 (arguments
9096 `(#:phases
9097 (modify-phases %standard-phases
9098 (add-before 'check 'fix-makefile
9099 (lambda _
9100 (substitute* "Makefile"
9101 (("cask exec ") ""))
9102 #t)))
9103 #:tests? #t
9104 #:test-command '("make" "test")))
9105 (home-page "https://github.com/Dewdrops/evil-exchange")
9106 (synopsis "Exchange text easily within Evil")
9107 (description
9108 "This package, a port of @code{vim-exchange}, provides an Evil operator
9109 for exchanging text.")
9110 (license license:gpl3+))))
9111
9112 (define-public emacs-evil-replace-with-register
9113 (let ((commit "91cc7bf21a94703c441cc9212214075b226b7f67")
9114 (version "0.1")
9115 (revision "1"))
9116 (package
9117 (name "emacs-evil-replace-with-register")
9118 (version (git-version version revision commit))
9119 (source
9120 (origin
9121 (method git-fetch)
9122 (uri (git-reference
9123 (url "https://github.com/Dewdrops/evil-ReplaceWithRegister")
9124 (commit commit)))
9125 (file-name (git-file-name name version))
9126 (sha256
9127 (base32
9128 "14rpn76qrf287s3y2agmddcxi27r226i53ixjvd694ss039g0r11"))))
9129 (build-system emacs-build-system)
9130 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9131 (home-page "https://github.com/Dewdrops/evil-ReplaceWithRegister")
9132 (synopsis "Quickly replace text with the contents of a register")
9133 (description
9134 "This package provides an Evil operator for replacing text with the
9135 contents of a register.")
9136 (license license:gpl3+))))
9137
9138 (define-public emacs-evil-indent-plus
9139 (let ((commit "0c7501e6efed661242c3a20e0a6c79a6455c2c40")
9140 (version "1.0.0")
9141 (revision "1"))
9142 (package
9143 (name "emacs-evil-indent-plus")
9144 (version (git-version version revision commit))
9145 (source
9146 (origin
9147 (method git-fetch)
9148 (uri (git-reference
9149 (url "https://github.com/TheBB/evil-indent-plus")
9150 (commit commit)))
9151 (file-name (git-file-name name version))
9152 (sha256
9153 (base32
9154 "1g6r1ydscwjvmhh1zg4q3nap4avk8lb9msdqrh7dff6pla0r2qs6"))))
9155 (build-system emacs-build-system)
9156 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9157 (home-page "https://github.com/TheBB/evil-indent-plus")
9158 (synopsis "Text objects based on indentation")
9159 (description
9160 "This package adds new text objects for @code{evil-mode} based on
9161 blocks having the same or higher indentation, including or excluding
9162 surrounding lines.")
9163 (license license:gpl2+))))
9164
9165 (define-public emacs-evil-text-object-python
9166 (let ((commit "9a064fe6475429145cbcc3b270fcc963b67adb15")
9167 (version "1.0.1")
9168 (revision "1"))
9169 (package
9170 (name "emacs-evil-text-object-python")
9171 (version (git-version version revision commit))
9172 (source
9173 (origin
9174 (method git-fetch)
9175 (uri (git-reference
9176 (url "https://github.com/wbolster/evil-text-object-python")
9177 (commit commit)))
9178 (file-name (git-file-name name version))
9179 (sha256
9180 (base32
9181 "074zpm6mmr1wfl6d5xdf8jk1fs4ccpbzf4ahhkwga9g71xiplszv"))))
9182 (build-system emacs-build-system)
9183 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9184 (home-page "https://github.com/wbolster/evil-text-object-python")
9185 (synopsis "Text objects for Python")
9186 (description
9187 "This package provides @code{evil-mode} text objects for Python.")
9188 (license license:gpl3+))))
9189
9190 (define-public emacs-evil-lion
9191 (let ((commit "6b03593f5dd6e7c9ca02207f9a73615cf94c93ab")
9192 (revision "1"))
9193 (package
9194 (name "emacs-evil-lion")
9195 (version (git-version "0.0.2" revision commit))
9196 (source
9197 (origin
9198 (method git-fetch)
9199 (uri (git-reference
9200 (url "https://github.com/edkolev/evil-lion")
9201 (commit commit)))
9202 (file-name (git-file-name name version))
9203 (sha256
9204 (base32
9205 "1a162hynp0jcsn50c1w5a02mrw9w3q05c7lkqzqd25px3d0p772q"))))
9206 (build-system emacs-build-system)
9207 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9208 (arguments
9209 `(#:tests? #t
9210 #:test-command '("make" "test")))
9211 (home-page "https://github.com/edkolev/evil-lion")
9212 (synopsis "Align operator for @code{evil-mode}")
9213 (description
9214 "This package, a port of @code{vim-lion}, provides an operator for
9215 aligning text objects based on separators.")
9216 (license license:gpl3+))))
9217
9218 (define-public emacs-evil-expat
9219 (let ((commit "f4fcd0aa3edc359adb5c986b5dd9188d220d84e2")
9220 (revision "1"))
9221 (package
9222 (name "emacs-evil-expat")
9223 (version (git-version "0.0.1" revision commit))
9224 (source
9225 (origin
9226 (method git-fetch)
9227 (uri (git-reference
9228 (url "https://github.com/edkolev/evil-expat")
9229 (commit commit)))
9230 (file-name (git-file-name name version))
9231 (sha256
9232 (base32
9233 "0872ix682hkdz0k8pn6sb54rqkx00rz5fxpd5j2snx406yagpaxz"))))
9234 (build-system emacs-build-system)
9235 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9236 (arguments
9237 `(#:tests? #t
9238 #:test-command '("make" "test")))
9239 (home-page "https://github.com/edkolev/evil-expat")
9240 (synopsis "Extra @code{ex} commands for @code{evil-mode}")
9241 (description
9242 "This package provides additional commands for the @code{ex} command
9243 line, including functions for version control with Git and for copying and
9244 pasting into and from @code{tmux} paste buffers.")
9245 (license license:gpl3+))))
9246
9247 (define-public emacs-evil-nerd-commenter
9248 (package
9249 (name "emacs-evil-nerd-commenter")
9250 (version "3.3.8")
9251 (source
9252 (origin
9253 (method git-fetch)
9254 (uri (git-reference
9255 (url "https://github.com/redguardtoo/evil-nerd-commenter")
9256 (commit version)))
9257 (file-name (git-file-name name version))
9258 (sha256
9259 (base32
9260 "0qd5a89mzvdyhd8lm13iwp220vzpd6dajwx54frlc5bzsxdmg6vc"))))
9261 (build-system emacs-build-system)
9262 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9263 (arguments
9264 `(#:tests? #t
9265 #:test-command '("make" "test")))
9266 (home-page "https://github.com/redguardtoo/evil-nerd-commenter")
9267 (synopsis "Comment and uncomment lines efficiently")
9268 (description
9269 "This package provides text objects and operators for comments within
9270 @code{evil-mode}.")
9271 (license license:gpl3+)))
9272
9273 (define-public emacs-evil-visual-replace
9274 (package
9275 (name "emacs-evil-visual-replace")
9276 (version "0.0.5")
9277 (source
9278 (origin
9279 (method git-fetch)
9280 (uri (git-reference
9281 (url "https://github.com/troyp/evil-visual-replace")
9282 (commit version)))
9283 (file-name (git-file-name name version))
9284 (sha256
9285 (base32
9286 "1gfyrq7xfzmzh3x8k5f08n027dlbwi0pkkxf9c39fkxp4jngibsz"))))
9287 (build-system emacs-build-system)
9288 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9289 (home-page "https://github.com/troyp/evil-visual-replace")
9290 (synopsis "Replacement commands for @code{evil-mode} visual blocks")
9291 (description
9292 "This package provides versions of @code{query-replace} and
9293 @code{replace-regexp} that work for @code{evil-mode} visual blocks.")
9294 (license license:gpl2+)))
9295
9296 (define-public emacs-evil-visualstar
9297 (let ((commit "06c053d8f7381f91c53311b1234872ca96ced752")
9298 (version "0.0.2")
9299 (revision "1"))
9300 (package
9301 (name "emacs-evil-visualstar")
9302 (version (git-version version revision commit))
9303 (source
9304 (origin
9305 (method git-fetch)
9306 (uri (git-reference
9307 (url "https://github.com/bling/evil-visualstar")
9308 (commit commit)))
9309 (file-name (git-file-name name version))
9310 (sha256
9311 (base32
9312 "0mkbzw12fav945icibc2293m5haxqr3hzkyli2cf4ssk6yvn0x4c"))))
9313 (build-system emacs-build-system)
9314 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
9315 (home-page "https://github.com/bling/evil-visualstar")
9316 (synopsis "Instantly search using the visual selection")
9317 (description
9318 "This package provides @code{evil-mode} functions for using selected text
9319 to search.")
9320 (license license:gpl3+))))
9321
9322 (define-public emacs-monky
9323 (package
9324 (name "emacs-monky")
9325 (version "0.1")
9326 (source (origin
9327 (method git-fetch)
9328 (uri (git-reference
9329 (url "https://github.com/ananthakumaran/monky")
9330 (commit version)))
9331 (file-name (git-file-name name version))
9332 (sha256
9333 (base32
9334 "1fgn7al4zwz2k5wb5dy3byqg9lsrjk9fra341mxh5ma2pfwxjgps"))))
9335 (build-system emacs-build-system)
9336 (home-page "https://ananthakumaran.in/monky/index.html")
9337 (arguments
9338 `(#:tests? #t
9339 #:test-command '("emacs" "--batch"
9340 "-l" "test/monky-unit-test.el"
9341 "-f" "ert-run-tests-batch-and-exit")))
9342 (synopsis "Interactive interface for the Mercurial version control system")
9343 (description
9344 "Monky provides an Emacs interface for Mercurial (Hg). Using Monky, you
9345 can selectively commit files, view the diffs, and other things.")
9346 (license license:gpl3+)))
9347
9348 (define-public emacs-monroe
9349 (package
9350 (name "emacs-monroe")
9351 (version "0.3.1")
9352 (source
9353 (origin
9354 (method git-fetch)
9355 (uri (git-reference
9356 (url "https://github.com/sanel/monroe")
9357 (commit version)))
9358 (file-name (git-file-name name version))
9359 (sha256
9360 (base32 "101lfrykdbv37spkbw7zihhx26bc1lhjyxbanrcp9880bxj04jiy"))))
9361 (build-system emacs-build-system)
9362 (home-page "https://github.com/sanel/monroe")
9363 (synopsis "Clojure nREPL client for Emacs")
9364 (description
9365 "Monroe is a nREPL client for Emacs, focused on simplicity and easy
9366 distribution, primarily targeting Clojure users")
9367 (license license:gpl3+)))
9368
9369 (define-public emacs-orgalist
9370 (package
9371 (name "emacs-orgalist")
9372 (version "1.12")
9373 (source
9374 (origin
9375 (method url-fetch)
9376 (uri (string-append "https://elpa.gnu.org/packages/"
9377 "orgalist-" version ".el"))
9378 (sha256
9379 (base32 "1hwm7j0hbv2pg9w885ky1c9qga3grcfq8v216jv2ivkw8xzavysd"))))
9380 (build-system emacs-build-system)
9381 (home-page "https://elpa.gnu.org/packages/orgalist.html")
9382 (synopsis "Manage Org-like lists in non-Org buffers")
9383 (description "Orgalist writes and manages Org mode's plain lists in
9384 non-Org buffers. More specifically, it supports the syntax of Org mode for
9385 numbered, unnumbered, description items, checkboxes, and counter cookies.
9386
9387 The library also implements radio lists, i.e., lists written in Org syntax
9388 later translated into the host format, e.g., LaTeX or HTML.")
9389 (license license:gpl3+)))
9390
9391 (define-public emacs-writegood-mode
9392 (package
9393 (name "emacs-writegood-mode")
9394 (version "2.0.2")
9395 (home-page "https://github.com/bnbeckwith/writegood-mode")
9396 (source (origin
9397 (method git-fetch)
9398 (uri (git-reference
9399 (url home-page)
9400 (commit (string-append "v" version))))
9401 (sha256
9402 (base32
9403 "1nnjn1r669hvvzfycllwap4w04m8rfsk4nzcg8057m1f263kj31b"))
9404 (file-name (string-append name "-checkout"))))
9405 (build-system emacs-build-system)
9406 (synopsis "Polish up poor writing on the fly")
9407 (description
9408 "This minor mode tries to find and highlight problems with your writing
9409 in English as you type. It primarily detects \"weasel words\" and abuse of
9410 passive voice.")
9411 (license license:gpl3+)))
9412
9413 (define-public emacs-neotree
9414 (package
9415 (name "emacs-neotree")
9416 (version "0.5.2")
9417 (home-page "https://github.com/jaypei/emacs-neotree")
9418 (source (origin
9419 (method git-fetch)
9420 (uri (git-reference
9421 (url home-page)
9422 (commit version)))
9423 (sha256
9424 (base32
9425 "0hx72fq10772bbyqrj7mhhp02k26cccjxdadiqm1ykainhfmn1x0"))
9426 (file-name (git-file-name name version))))
9427 (build-system emacs-build-system)
9428 (synopsis "Folder tree view for Emacs")
9429 (description "This Emacs package provides a folder tree view.")
9430 (license license:gpl3+)))
9431
9432 (define-public emacs-org
9433 (package
9434 (name "emacs-org")
9435 ;; emacs-org-contrib inherits from this package. Please update it as
9436 ;; well.
9437 (version "9.3.6")
9438 (source
9439 (origin
9440 (method url-fetch)
9441 (uri (string-append "https://elpa.gnu.org/packages/org-" version ".tar"))
9442 (sha256
9443 (base32 "0jwpgfzjvf1hd3mx582pw86hysdryaqzp69hk6azi9kmq4bzk87d"))))
9444 (build-system emacs-build-system)
9445 (arguments
9446 `(#:phases
9447 (modify-phases %standard-phases
9448 (add-after 'install 'install-documentation
9449 (lambda* (#:key outputs #:allow-other-keys)
9450 (let* ((share (string-append (assoc-ref outputs "out") "/share"))
9451 (info-dir (string-append share "/info"))
9452 (doc-dir (string-append share "/doc/" ,name "-" ,version)))
9453 (install-file "org" info-dir)
9454 (install-file "orgcard.pdf" doc-dir))
9455 #t)))))
9456 (home-page "https://orgmode.org/")
9457 (synopsis "Outline-based notes management and organizer")
9458 (description "Org is an Emacs mode for keeping notes, maintaining TODO
9459 lists, and project planning with a fast and effective lightweight markup
9460 language. It also is an authoring system with unique support for literate
9461 programming and reproducible research.")
9462 (license license:gpl3+)))
9463
9464 (define-public emacs-org-contrib
9465 (package
9466 (inherit emacs-org)
9467 (name "emacs-org-contrib")
9468 (version "20200213")
9469 (source
9470 (origin
9471 (method url-fetch)
9472 (uri (string-append "https://orgmode.org/elpa/"
9473 "org-plus-contrib-" version ".tar"))
9474 (sha256
9475 (base32 "0g6rrrwplrifz4ip0jg638m4kvpvdg03hwnyghd813w0lm935mh5"))))
9476 (arguments
9477 `(#:modules ((guix build emacs-build-system)
9478 (guix build utils)
9479 (guix build emacs-utils)
9480 (ice-9 ftw)
9481 (srfi srfi-1))
9482 #:phases
9483 (modify-phases %standard-phases
9484 (add-after 'install 'delete-org-files
9485 (lambda* (#:key inputs outputs #:allow-other-keys)
9486 (let* ((out (assoc-ref outputs "out"))
9487 (org (assoc-ref inputs "org"))
9488 (contrib-files
9489 (map basename (find-files out)))
9490 (org+contrib-files
9491 (map basename (find-files org)))
9492 (duplicates (lset-intersection string=?
9493 contrib-files
9494 org+contrib-files)))
9495 (with-directory-excursion
9496 (string-append out "/share/emacs/site-lisp")
9497 (for-each delete-file duplicates))
9498 #t))))))
9499 (propagated-inputs
9500 `(("arduino-mode" ,emacs-arduino-mode)
9501 ("cider" ,emacs-cider)
9502 ("org" ,emacs-org)
9503 ("scel" ,emacs-scel)))
9504 (synopsis "Contributed packages to Org mode")
9505 (description "Org is an Emacs mode for keeping notes, maintaining TODO
9506 lists, and project planning with a fast and effective plain-text system.
9507
9508 This package is equivalent to org-plus-contrib, but only includes additional
9509 files that you would find in @file{contrib/} from the git repository.")))
9510
9511 (define-public emacs-flx
9512 (package
9513 (name "emacs-flx")
9514 (version "0.6.1")
9515 (source
9516 (origin
9517 (method git-fetch)
9518 (uri (git-reference
9519 (url "https://github.com/lewang/flx")
9520 (commit (string-append "v" version))))
9521 (sha256
9522 (base32
9523 "0sjybrcnb2sl33swy3q664vqrparajcl0m455gciiih2j87hwadc"))
9524 (file-name (git-file-name name version))))
9525 (build-system emacs-build-system)
9526 (home-page "https://github.com/lewang/flx")
9527 (synopsis "Fuzzy matching for Emacs")
9528 (description
9529 "Flx provides fuzzy matching for emacs a la sublime text.
9530 The sorting algorithm is a balance between word beginnings (abbreviation)
9531 and contiguous matches (substring). The longer the substring match,
9532 the higher it scores. This maps well to how we think about matching.
9533 Flx has support for ido (interactively do things) through flx-ido.")
9534 (license license:gpl3+)))
9535
9536 (define-public emacs-cyberpunk-theme
9537 (package
9538 (name "emacs-cyberpunk-theme")
9539 (version "1.22")
9540 (source
9541 (origin
9542 (method git-fetch)
9543 (uri (git-reference
9544 (url "https://github.com/n3mo/cyberpunk-theme.el/")
9545 (commit version)))
9546 (sha256
9547 (base32
9548 "06nff38pcy5rgz13svkajsg0jjk73qy4a8m7p9f76yxcywxlgxlc"))
9549 (file-name (git-file-name name version))))
9550 (build-system emacs-build-system)
9551 (home-page "https://github.com/n3mo/cyberpunk-theme.el")
9552 (synopsis "Cyberpunk theme for Emacs built-in color theme support")
9553 (description
9554 "Cyberpunk color theme for the Emacs 24+ built-in color theme support
9555 known loosely as deftheme. Many mode-specific customizations are included.")
9556 (license license:gpl3+)))
9557
9558 (define-public emacs-danneskjold-theme
9559 (let* ((commit "8733d2fe8743e8a01826ea6d4430ef376c727e57")
9560 (revision "1"))
9561 (package
9562 (name "emacs-danneskjold-theme")
9563 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
9564 (home-page "https://github.com/rails-to-cosmos/danneskjold-theme")
9565 (source
9566 (origin
9567 (method git-fetch)
9568 (uri (git-reference
9569 (url home-page)
9570 (commit commit)))
9571 (file-name (git-file-name name version))
9572 (sha256
9573 (base32
9574 "0s6rbsb0y8i8m5b9xm4gw1p1cxsxdqnqxqqb638pygz9f76mbir1"))))
9575 (build-system emacs-build-system)
9576 (arguments
9577 `(#:phases
9578 (modify-phases %standard-phases
9579 (add-after 'unpack 'delete-screenshots
9580 (lambda _
9581 (delete-file-recursively "screenshots") #t)))))
9582 (synopsis "High-contrast Emacs theme")
9583 (description
9584 "@code{danneskjold-theme} is a high-contrast theme for Emacs.")
9585 (license license:gpl3+))))
9586
9587 (define-public emacs-dream-theme
9588 (let* ((commit "107a11d74365046f28a1802a2bdb5e69e4a7488b")
9589 (revision "1"))
9590 (package
9591 (name "emacs-dream-theme")
9592 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
9593 (source
9594 (origin
9595 (method git-fetch)
9596 (uri (git-reference
9597 (url "https://github.com/djcb/dream-theme")
9598 (commit commit)))
9599 (file-name (git-file-name name version))
9600 (sha256
9601 (base32
9602 "0za18nfkq4xqm35k6006vsixcbmvmxqgma4iw5sw37h8vmcsdylk"))))
9603 (build-system emacs-build-system)
9604 (home-page "https://github.com/djcb/dream-theme")
9605 (synopsis "High-contrast Emacs theme")
9606 (description
9607 "@code{dream-theme} is a dark, clean theme for Emacs. It is inspired
9608 by zenburn, sinburn and similar themes, but slowly diverging from them.")
9609 (license license:gpl3+))))
9610
9611 (define-public emacs-dracula-theme
9612 (package
9613 (name "emacs-dracula-theme")
9614 (version "1.7.0")
9615 (source
9616 (origin
9617 (method git-fetch)
9618 (uri (git-reference
9619 (url "https://github.com/dracula/emacs")
9620 (commit (string-append "v" version))))
9621 (file-name (git-file-name name version))
9622 (sha256
9623 (base32 "15y2djc5jljlvls1x9kp50m1kp0dcksmyixafsyimj66xpq9ngh0"))))
9624 (build-system emacs-build-system)
9625 (home-page "https://draculatheme.com/")
9626 (synopsis "Dark theme for Emacs")
9627 (description
9628 "Dracula is a dark color theme for many editors, shells and more. This
9629 package provides the Emacs theme.")
9630 (license license:expat)))
9631
9632 (define-public emacs-auto-complete
9633 (package
9634 (name "emacs-auto-complete")
9635 (version "1.5.1")
9636 (source
9637 (origin
9638 (method git-fetch)
9639 (uri (git-reference
9640 (url "https://github.com/auto-complete/auto-complete")
9641 (commit (string-append "v" version))))
9642 (sha256
9643 (base32
9644 "04i9b11iksg6acn885wl3qgi5xpsm3yszlqmd2x21yhprndlz7gb"))
9645 (file-name (git-file-name name version))))
9646 (build-system emacs-build-system)
9647 (propagated-inputs
9648 `(("emacs-popup" ,emacs-popup)))
9649 (home-page "https://github.com/auto-complete/auto-complete")
9650 (synopsis "Intelligent auto-completion extension for Emacs")
9651 (description
9652 "Auto-Complete is an intelligent auto-completion extension for Emacs.
9653 It extends the standard Emacs completion interface and provides an environment
9654 that allows users to concentrate more on their own work. Its features are:
9655 a visual interface, reduce overhead of completion by using statistic method,
9656 extensibility.")
9657 (license license:gpl3+)))
9658
9659 (define-public emacs-nginx-mode
9660 (package
9661 (name "emacs-nginx-mode")
9662 (version "1.1.9")
9663 (source
9664 (origin
9665 (method git-fetch)
9666 (uri (git-reference
9667 (url "https://github.com/ajc/nginx-mode")
9668 (commit (string-append "v" version))))
9669 (file-name (git-file-name name version))
9670 (sha256
9671 (base32 "17dh5pr3gh6adrbqx588gimxbb2fr7iv2qrxv6r48w2727l344xs"))))
9672 (build-system emacs-build-system)
9673 (home-page "https://github.com/ajc/nginx-mode")
9674 (synopsis "Emacs major mode for editing nginx config files")
9675 (description "This package provides an Emacs major mode for
9676 editing nginx config files.")
9677 (license license:gpl2+)))
9678
9679 (define-public emacs-stream
9680 (package
9681 (name "emacs-stream")
9682 (version "2.2.5")
9683 (source
9684 (origin
9685 (method url-fetch)
9686 (uri (string-append "https://elpa.gnu.org/packages/"
9687 "stream-" version ".tar"))
9688 (file-name (git-file-name name version))
9689 (sha256
9690 (base32 "00c3n4gyxzv7vczqms0d62kl8zsmjfyxa92mwxn2snyx857a9jfw"))))
9691 (build-system emacs-build-system)
9692 (home-page "http://elpa.gnu.org/packages/stream.html")
9693 (synopsis "Implementation of streams for Emacs")
9694 (description "This library provides an implementation of streams for Emacs.
9695 Streams are implemented as delayed evaluation of cons cells.")
9696 (license license:gpl3+)))
9697
9698 (define-public emacs-cl-print
9699 (let ((commit "1a70c553dfb04352afb5b8696fe0cef8acc8f991")
9700 (revision "1"))
9701 (package
9702 (name "emacs-cl-print")
9703 (version (git-version "1.0" revision commit))
9704 (source
9705 (origin
9706 (method git-fetch)
9707 (uri (git-reference
9708 (url "https://github.com/emacsmirror/cl-print")
9709 (commit commit)))
9710 (file-name (git-file-name name version))
9711 (sha256
9712 (base32 "164zbnsi5mssvcpy0158fm7fw5cmd1r5nkpn29fmd2b2scy3gm79"))))
9713 (build-system emacs-build-system)
9714 (home-page "https://github.com/emacsmirror/cl-print")
9715 (synopsis "CL-style generic printing")
9716 (description "This package provides a generic function,
9717 @code{cl-print-object}, to which the programmer can add any method they
9718 please.")
9719 (license license:gpl3+))))
9720
9721 (define-public emacs-el-search
9722 (let ((commit "07bed84dd8ae9e4c6c648834224b1d33fdbd51e0")
9723 (revision "2"))
9724 (package
9725 (name "emacs-el-search")
9726 (version (git-version "1.12.6.1" revision commit))
9727 (source
9728 (origin
9729 (method git-fetch)
9730 (uri (git-reference
9731 (url "https://github.com/emacsmirror/el-search")
9732 (commit commit)))
9733 (file-name (git-file-name name version))
9734 (sha256
9735 (base32 "10w1ldgijdhfsrazp0y3bm76jv5wvdn94k1yp0pmc2m1896b58ak"))))
9736 (build-system emacs-build-system)
9737 (inputs
9738 `(("emacs-stream" ,emacs-stream)
9739 ("emacs-cl-print" ,emacs-cl-print)))
9740 (home-page "https://github.com/emacsmirror/el-search")
9741 (synopsis "Expression based interactive search for emacs-lisp-mode")
9742 (description "This package provides expression based interactive search
9743 procedures for emacs-lisp-mode.")
9744 (license license:gpl3+))))
9745
9746 (define-public emacs-ht
9747 (package
9748 (name "emacs-ht")
9749 (version "2.2")
9750 (source
9751 (origin
9752 (method git-fetch)
9753 (uri (git-reference
9754 (url "https://github.com/Wilfred/ht.el")
9755 (commit version)))
9756 (file-name (git-file-name name version))
9757 (sha256
9758 (base32 "1p3qa7g0wa0wbviv2f8bda39cjys3naayk5xjm3nxxmqsyy8papx"))))
9759 (build-system emacs-build-system)
9760 (propagated-inputs `(("emacs-dash" ,emacs-dash)))
9761 (native-inputs
9762 `(("emacs-ert-runner" ,emacs-ert-runner)))
9763 (arguments
9764 `(#:tests? #t
9765 #:test-command '("ert-runner")))
9766 (home-page "https://github.com/Wilfred/ht.el")
9767 (synopsis "Hash table library for Emacs")
9768 (description
9769 "This package simplifies the use of hash tables in elisp. It also
9770 provides functions to convert hash tables from and to alists and plists.")
9771 (license license:gpl3+)))
9772
9773 (define-public emacs-log4e
9774 (package
9775 (name "emacs-log4e")
9776 (version "0.3.0")
9777 (source
9778 (origin
9779 (method git-fetch)
9780 (uri (git-reference
9781 (url "https://github.com/aki2o/log4e")
9782 (commit (string-append "v" version))))
9783 (file-name (git-file-name name version))
9784 (sha256
9785 (base32 "1l28n7a0v2zkknc70i1wn6qb5i21dkhfizzk8wcj28v44cgzk022"))))
9786 (build-system emacs-build-system)
9787 (arguments
9788 `(#:phases
9789 (modify-phases %standard-phases
9790 (add-after 'unpack 'remove-tests
9791 ;; Guile builder complains about null characters in some
9792 ;; strings of test files. Remove "test" directory (it is not
9793 ;; needed anyway).
9794 (lambda _
9795 (delete-file-recursively "test"))))))
9796 (home-page "https://github.com/aki2o/log4e")
9797 (synopsis "Logging framework for elisp")
9798 (description
9799 "This package provides a logging framework for elisp. It allows
9800 you to deal with multiple log levels.")
9801 (license license:gpl3+)))
9802
9803 (define-public emacs-gntp
9804 (package
9805 (name "emacs-gntp")
9806 (version "0.1")
9807 (source
9808 (origin
9809 (method git-fetch)
9810 (uri (git-reference
9811 (url "https://github.com/tekai/gntp.el")
9812 (commit (string-append "v" version))))
9813 (file-name (git-file-name name version))
9814 (sha256
9815 (base32 "1nvyjjjydrimpxy4cpg90si7sr8lmldbhlcm2mx8npklp9pn5y3a"))))
9816 (build-system emacs-build-system)
9817 (home-page "https://github.com/tekai/gntp.el")
9818 (synopsis "Growl Notification Protocol for Emacs")
9819 (description
9820 "This package implements the Growl Notification Protocol GNTP
9821 described at @uref{http://www.growlforwindows.com/gfw/help/gntp.aspx}.
9822 It is incomplete as it only lets you send but not receive
9823 notifications.")
9824 (license license:bsd-3)))
9825
9826 (define-public emacs-alert
9827 (package
9828 (name "emacs-alert")
9829 (version "1.3")
9830 (source
9831 (origin
9832 (method git-fetch)
9833 (uri (git-reference
9834 (url "https://github.com/jwiegley/alert")
9835 (commit (string-append "v" version))))
9836 (file-name (git-file-name name version))
9837 (sha256
9838 (base32 "0lc0p5cl4hfrzw1z2ghb11k1lvljn5m08jw5fmgwgxv667kwh49r"))))
9839 (build-system emacs-build-system)
9840 (propagated-inputs
9841 `(("emacs-gntp" ,emacs-gntp)
9842 ("emacs-log4e" ,emacs-log4e)))
9843 (home-page "https://github.com/jwiegley/alert")
9844 (synopsis "Growl-style notification system for Emacs")
9845 (description
9846 "Alert is a Growl-workalike for Emacs which uses a common notification
9847 interface and multiple, selectable \"styles\", whose use is fully
9848 customizable by the user.")
9849 (license license:gpl2+)))
9850
9851 (define-public emacs-zones
9852 (package
9853 (name "emacs-zones")
9854 (version "2019.7.13")
9855 (source
9856 (origin
9857 (method url-fetch)
9858 (uri (string-append "https://elpa.gnu.org/packages/"
9859 "zones-" version ".el"))
9860 (sha256
9861 (base32 "0qp1ba2pkqx9d35g7z8hf8qs2k455krf2a92l4rka3ipsbnmq5k1"))))
9862 (build-system emacs-build-system)
9863 (home-page "https://www.emacswiki.org/emacs/Zones")
9864 (synopsis "Define and act on multiple zones of buffer text")
9865 (description
9866 "Library @file{zones.el} lets you easily define and subsequently act on
9867 multiple zones of buffer text. You can think of this as enlarging the notion
9868 of region. In effect, it can remove the requirement of target text being
9869 a contiguous sequence of characters. A set of buffer zones is, in effect,
9870 a (typically) noncontiguous set of text.")
9871 (license license:gpl3+)))
9872
9873 (define-public emacs-mu4e-alert
9874 (package
9875 (name "emacs-mu4e-alert")
9876 (version "1.0")
9877 (source
9878 (origin
9879 (method git-fetch)
9880 (uri (git-reference
9881 (url "https://github.com/iqbalansari/mu4e-alert")
9882 (commit (string-append "v" version))))
9883 (file-name (git-file-name name version))
9884 (sha256
9885 (base32 "1nvsfbfsma59ilf7c3vjngnmx3aapwvvvaafdy5szm5r6lkicqvg"))))
9886 (build-system emacs-build-system)
9887 (propagated-inputs
9888 `(("emacs-alert" ,emacs-alert)
9889 ("emacs-s" ,emacs-s)
9890 ("emacs-ht" ,emacs-ht)
9891 ("mu" ,mu)))
9892 (home-page "https://github.com/iqbalansari/mu4e-alert")
9893 (synopsis "Desktop notification for mu4e")
9894 (description
9895 "This package provides desktop notifications for mu4e.
9896 Additionally it can display the number of unread emails in the
9897 mode-line.")
9898 (license license:gpl3+)))
9899
9900 (define-public emacs-mu4e-jump-to-list
9901 (let ((commit "358bba003543b49ffa266e503e54aebd0ebe614b")
9902 (revision "1"))
9903 (package
9904 (name "emacs-mu4e-jump-to-list")
9905 (version (git-version "1.0" revision commit))
9906 (source
9907 (origin
9908 (method git-fetch)
9909 (uri (git-reference
9910 (url "https://gitlab.com/wavexx/mu4e-jump-to-list.el.git")
9911 (commit commit)))
9912 (file-name (git-file-name name version))
9913 (sha256
9914 (base32
9915 "00y9nap61q1z2cdql4k9g7fgi2gdgd9iy5s5lzrd9a4agbx6r7sv"))))
9916 (build-system emacs-build-system)
9917 (propagated-inputs
9918 `(("mu" ,mu)))
9919 (home-page "https://gitlab.com/wavexx/mu4e-jump-to-list.el")
9920 (synopsis "Select and view mailing lists in mu4e")
9921 (description
9922 "@code{mu4e-jump-to-list} allows you to select and view mailing lists
9923 automatically using existing List-ID headers in your mu database. Just press
9924 \"l\" in the headers view and any mailing list you've subscribed to will be
9925 automatically discovered and presented in recency order.")
9926 (license license:gpl3+))))
9927
9928 (define-public emacs-mu4e-patch
9929 (let ((commit "522da46c1653b1cacc79cde91d6534da7ae9517d")
9930 (revision "1"))
9931 (package
9932 (name "emacs-mu4e-patch")
9933 (version (git-version "0.1.0" revision commit))
9934 (source (origin
9935 (method git-fetch)
9936 (uri (git-reference
9937 (url "https://github.com/seanfarley/mu4e-patch")
9938 (commit commit)))
9939 (file-name (git-file-name name version))
9940 (sha256
9941 (base32
9942 "10lzf3b70pk6rzdrgx0ww0gc94v0ydh9zj1gbsa20xw27ds7hmfn"))))
9943 (build-system emacs-build-system)
9944 (propagated-inputs
9945 `(("mu" ,mu)))
9946 (home-page "https://github.com/seanfarley/mu4e-patch")
9947 (synopsis "Colorize patch-like emails in mu4e")
9948 (description
9949 "Extension for mu4e to colorize patch-like emails with diff-mode.
9950 This is based on Frank Terbeck's @code{gnus-article-treat-patch.el} but has
9951 been adapted to work with mu4e.")
9952 (license license:gpl3+))))
9953
9954 (define-public emacs-pretty-mode
9955 (package
9956 (name "emacs-pretty-mode")
9957 (version "2.0.3")
9958 (source
9959 (origin
9960 (method git-fetch)
9961 (uri (git-reference
9962 (url "https://github.com/akatov/pretty-mode/")
9963 (commit version)))
9964 (file-name (git-file-name name version))
9965 (sha256
9966 (base32
9967 "013fig9i4fyx16krp2vfv953p3rwdzr38zs6i50af4pqz4vrcfvh"))))
9968 (build-system emacs-build-system)
9969 (home-page "https://github.com/akatov/pretty-mode")
9970 (synopsis "Redisplay parts of the buffer as Unicode symbols")
9971 (description
9972 "Emacs minor mode for redisplaying parts of the buffer as pretty symbols.")
9973 (license license:gpl3+)))
9974
9975 (define-public emacs-yasnippet
9976 (package
9977 (name "emacs-yasnippet")
9978 (version "0.14.0")
9979 (source
9980 (origin
9981 (method git-fetch)
9982 (uri (git-reference
9983 (url "https://github.com/joaotavora/yasnippet")
9984 (commit version)))
9985 (file-name (git-file-name name version))
9986 (sha256
9987 (base32 "0via9dzw8m5lzymg1h78xkwjssh39zr3g6ccyamlf1rjzjsyxknv"))))
9988 (build-system emacs-build-system)
9989 (arguments
9990 `(#:tests? #t
9991 #:test-command '("emacs" "--batch"
9992 "-l" "yasnippet-tests.el"
9993 "-f" "ert-run-tests-batch-and-exit")
9994 #:phases
9995 (modify-phases %standard-phases
9996 ;; Set HOME, otherwise test-rebindings fails.
9997 (add-before 'check 'set-home
9998 (lambda _
9999 (setenv "HOME" (getcwd))
10000 #t)))))
10001 (home-page "https://github.com/joaotavora/yasnippet")
10002 (synopsis "Yet another snippet extension for Emacs")
10003 (description "YASnippet is a template system for Emacs. It allows you to
10004 type an abbreviation and automatically expand it into function templates.")
10005 (license license:gpl3+)))
10006
10007 (define-public emacs-yasnippet-snippets
10008 (package
10009 (name "emacs-yasnippet-snippets")
10010 (version "0.23")
10011 (source
10012 (origin
10013 (method git-fetch)
10014 (uri (git-reference
10015 (url "https://github.com/AndreaCrotti/yasnippet-snippets")
10016 (commit version)))
10017 (file-name (git-file-name name version))
10018 (sha256
10019 (base32 "18pcnjnqvcky6i49p38vy3ms5xiisn27vy47pc3vsgr3r2n87mqb"))))
10020 (build-system trivial-build-system)
10021 (arguments
10022 `(#:modules ((guix build utils))
10023 #:builder
10024 (begin
10025 (use-modules (guix build utils))
10026 (let* ((source (assoc-ref %build-inputs "source"))
10027 (out (assoc-ref %outputs "out"))
10028 (snippet-dir
10029 (string-append out "/share/emacs/yasnippet-snippets/")))
10030 (with-directory-excursion source
10031 (mkdir-p snippet-dir)
10032 (copy-recursively "snippets" snippet-dir)))
10033 #t)))
10034 (home-page "https://github.com/AndreaCrotti/yasnippet-snippets")
10035 (synopsis "Collection of YASnippet snippets for many languages")
10036 (description
10037 "Provides Andrea Crotti's collection of YASnippet snippets. After installation,
10038 the snippets will be in \"~/.guix-profile/share/emacs/yasnippet-snippets/\".
10039 To make YASnippet aware of these snippets, add the above directory to
10040 @code{yas-snippet-dirs}.")
10041 (license license:gpl3+)))
10042
10043 (define-public emacs-helm-c-yasnippet
10044 (let ((commit "65ca732b510bfc31636708aebcfe4d2d845b59b0")
10045 (revision "1"))
10046 (package
10047 (name "emacs-helm-c-yasnippet")
10048 (version (string-append "0.6.7" "-" revision "."
10049 (string-take commit 7)))
10050 (source (origin
10051 (method git-fetch)
10052 (uri (git-reference
10053 (url "https://github.com/emacs-jp/helm-c-yasnippet")
10054 (commit commit)))
10055 (file-name (git-file-name name version))
10056 (sha256
10057 (base32
10058 "1cbafjqlzxbg19xfdqsinsh7afq58gkf44rsg1qxfgm8g6zhr7f8"))))
10059 (build-system emacs-build-system)
10060 (propagated-inputs
10061 `(("emacs-helm" ,emacs-helm)
10062 ("emacs-yasnippet" ,emacs-yasnippet)))
10063 (home-page "https://github.com/emacs-jp/helm-c-yasnippet")
10064 (synopsis "Helm integration for Yasnippet")
10065 (description "This Emacs library provides Helm interface for
10066 Yasnippet.")
10067 (license license:gpl2+))))
10068
10069 (define-public emacs-helm-system-packages
10070 ;; There won't be a new release after 1.10.1 until
10071 ;; https://github.com/emacs-helm/helm-system-packages/issues/25 is fixed,
10072 ;; and latest commits fix import issues with Guix.
10073 (let ((commit "6572340f41611ef1991e9612d34d59130957ee4a"))
10074 (package
10075 (name "emacs-helm-system-packages")
10076 (version (git-version "1.10.1" "1" commit))
10077 (source (origin
10078 (method git-fetch)
10079 (uri (git-reference
10080 (url "https://github.com/emacs-helm/helm-system-packages")
10081 (commit commit)))
10082 (file-name (git-file-name name version))
10083 (sha256
10084 (base32
10085 "0mcz6vkpk12vsyd37xv1rbg4v442sxc3lj8yxskqg294xbdaclz4"))))
10086 (build-system emacs-build-system)
10087 (inputs
10088 `(("recutils" ,recutils)))
10089 (propagated-inputs
10090 `(("emacs-helm" ,emacs-helm)))
10091 (arguments
10092 `(#:phases
10093 (modify-phases %standard-phases
10094 (add-after 'unpack 'configure
10095 (lambda* (#:key inputs outputs #:allow-other-keys)
10096 (let ((recutils (assoc-ref inputs "recutils")))
10097 ;; Specify the absolute file names of the various
10098 ;; programs so that everything works out-of-the-box.
10099 (substitute* "helm-system-packages-guix.el"
10100 (("recsel") (string-append recutils "/bin/recsel")))))))))
10101 (home-page "https://github.com/emacs-helm/helm-system-packages")
10102 (synopsis "Helm System Packages is an interface to your package manager")
10103 (description "List all available packages in Helm (with installed
10104 packages displayed in their own respective face). Fuzzy-search, mark and
10105 execute the desired action over any selections of packages: Install,
10106 uninstall, display packages details (in Org Mode) or insert details at point,
10107 find files owned by packages... And much more, including performing all the
10108 above over the network.")
10109 (license license:gpl3+))))
10110
10111 (define-public emacs-helm-org-rifle
10112 (package
10113 (name "emacs-helm-org-rifle")
10114 (version "1.7.0")
10115 (source
10116 (origin
10117 (method git-fetch)
10118 (uri (git-reference
10119 (url "https://github.com/alphapapa/helm-org-rifle")
10120 (commit version)))
10121 (file-name (git-file-name name version))
10122 (sha256
10123 (base32
10124 "058zvh7cdall7dl3xay9ibcjvs13fbqp8fli3lz980pinmsds3r2"))))
10125 (build-system emacs-build-system)
10126 (propagated-inputs
10127 `(("emacs-dash" ,emacs-dash)
10128 ("emacs-f" ,emacs-f)
10129 ("emacs-helm" ,emacs-helm)
10130 ("emacs-org" ,emacs-org)
10131 ("emacs-s" ,emacs-s)))
10132 (home-page "https://github.com/alphapapa/helm-org-rifle")
10133 (synopsis "Rifle through Org files")
10134 (description "This package searches both headings and contents of entries
10135 in Org buffers and displays matching entries.")
10136 (license license:gpl3+)))
10137
10138 (define-public emacs-dired-git-info
10139 ;; Upstream has no proper release. The base version is extracted from the
10140 ;; "Version" keyword in the main file.
10141 (let ((commit "91d57e3a4c5104c66a3abc18e281ee55e8979176")
10142 (revision "0"))
10143 (package
10144 (name "emacs-dired-git-info")
10145 (version (git-version "0.3.1" revision commit))
10146 (source
10147 (origin
10148 (method git-fetch)
10149 (uri
10150 (git-reference
10151 (url "https://github.com/clemera/dired-git-info")
10152 (commit commit)))
10153 (file-name (git-file-name name version))
10154 (sha256
10155 (base32 "1dr4iv95s4barxxj56znqkl9z0lg5jw731jmjr01s6vn8ar69gik"))))
10156 (build-system emacs-build-system)
10157 (home-page "https://github.com/clemera/dired-git-info/")
10158 (synopsis "Show git info in Emacs Dired")
10159 (description "This Emacs package provides a minor mode which shows git
10160 information inside the Dired buffer.")
10161 (license license:gpl3+))))
10162
10163 (define-public emacs-dired-toggle-sudo
10164 (let ((commit "13bbe52c54893f5aa3e56228450ffdd0c9e1d169")
10165 (revision "0"))
10166 (package
10167 (name "emacs-dired-toggle-sudo")
10168 (version (git-version "1.0" revision commit))
10169 (source
10170 (origin
10171 (method git-fetch)
10172 (uri (git-reference
10173 (url "https://github.com/renard/dired-toggle-sudo")
10174 (commit commit)))
10175 (file-name (git-file-name name version))
10176 (sha256
10177 (base32
10178 "1fw1pb1z6krqd1pfxxhr6rrfr9ckkcb0zsjzbjk0i2i1q5cg6car"))))
10179 (build-system emacs-build-system)
10180 (home-page "https://github.com/renard/dired-toggle-sudo")
10181 (synopsis "Browse directory with @code{sudo} privileges")
10182 (description "This package allows for the use of @code{dired} with
10183 @code{sudo} privileges.")
10184 (license license:wtfpl2))))
10185
10186 (define-public emacs-diredfl
10187 (package
10188 (name "emacs-diredfl")
10189 (version "0.4")
10190 (source
10191 (origin
10192 (method git-fetch)
10193 (uri
10194 (git-reference
10195 (url "https://github.com/purcell/diredfl")
10196 (commit version)))
10197 (file-name (git-file-name name version))
10198 (sha256
10199 (base32 "1zb2lz7rp58zqvpniqcsmqabi7nqg2d8bfd0hgmq68bn2hd25b5z"))))
10200 (build-system emacs-build-system)
10201 (home-page "https://github.com/purcell/diredfl/")
10202 (synopsis "Extra Emacs font lock rules for a more colourful Dired")
10203 (description "This library enables additional font locking in Dired mode.
10204 This is adapted from the extra font lock rules provided by Drew Adams' Dired+
10205 package.")
10206 (license license:gpl3+)))
10207
10208 (define-public emacs-memoize
10209 (package
10210 (name "emacs-memoize")
10211 (version "1.1")
10212 (source
10213 (origin
10214 (method git-fetch)
10215 (uri (git-reference
10216 (url "https://github.com/skeeto/emacs-memoize")
10217 (commit version)))
10218 (file-name (git-file-name name version))
10219 (sha256
10220 (base32 "04qgnlg4x6va7x364dhj1wbjmz8p5iq2vk36mn9198k2vxmijwzk"))))
10221 (build-system emacs-build-system)
10222 (arguments
10223 `(#:tests? #t
10224 #:test-command '("emacs" "--batch"
10225 "-l" "memoize-test.el"
10226 "-f" "ert-run-tests-batch-and-exit")))
10227 (home-page "https://github.com/skeeto/emacs-memoize")
10228 (synopsis "Emacs lisp memoization library")
10229 (description "@code{emacs-memoize} is an Emacs library for
10230 memoizing functions.")
10231 (license license:unlicense)))
10232
10233 (define-public emacs-linum-relative
10234 (package
10235 (name "emacs-linum-relative")
10236 (version "0.6")
10237 (source
10238 (origin
10239 (method git-fetch)
10240 (uri (git-reference
10241 (url "https://github.com/coldnew/linum-relative")
10242 (commit version)))
10243 (file-name (git-file-name name version))
10244 (sha256
10245 (base32 "0b3n1gk2w1p72x0zfdz9l70winq2fnjpjrgq0awxx730xk7ypp5n"))))
10246 (build-system emacs-build-system)
10247 (home-page "https://github.com/coldnew/linum-relative")
10248 (synopsis "Relative line numbering for Emacs")
10249 (description "@code{emacs-linum-relative} displays the relative line
10250 number on the left margin in Emacs.")
10251 (license license:gpl2+)))
10252
10253 (define-public emacs-idle-highlight
10254 (package
10255 (name "emacs-idle-highlight")
10256 (version "1.1.3")
10257 (source
10258 (origin
10259 (method git-fetch)
10260 (uri (git-reference
10261 (url "https://github.com/nonsequitur/idle-highlight-mode")
10262 (commit version)))
10263 (file-name (git-file-name name version))
10264 (sha256
10265 (base32 "0x4w1ksrw7dicl84zpf4d4scg672dyan9g95jkn6zvri0lr8xciv"))))
10266 (build-system emacs-build-system)
10267 (home-page "https://www.emacswiki.org/emacs/IdleHighlight")
10268 (synopsis "Highlights all occurrences of the word the point is on")
10269 (description
10270 "This Emacs package provides @code{idle-highlight-mode} that sets
10271 an idle timer to highlight all occurrences in the buffer of the word under
10272 the point.")
10273 (license license:gpl3+)))
10274
10275 (define-public emacs-ox-twbs
10276 (package
10277 (name "emacs-ox-twbs")
10278 (version "1.1.1")
10279 (source
10280 (origin
10281 (method git-fetch)
10282 (uri (git-reference
10283 (url "https://github.com/marsmining/ox-twbs")
10284 (commit (string-append "v" version))))
10285 (file-name (git-file-name name version))
10286 (sha256
10287 (base32 "0kd45p8y7ykadmai4jn1x1pgpafyqggwb1ccbjzalxw4k9wmd45f"))))
10288 (build-system emacs-build-system)
10289 (home-page "https://github.com/marsmining/ox-twbs")
10290 (synopsis "Export org-mode docs as HTML compatible with Twitter Bootstrap")
10291 (description
10292 "This Emacs package outputs your org-mode docs with a simple, clean and
10293 modern look. It implements a new HTML back-end for exporting org-mode docs as
10294 HTML compatible with Twitter Bootstrap. By default, HTML is exported with
10295 jQuery and Bootstrap resources included via osscdn.")
10296 (license license:gpl3+)))
10297
10298 (define-public emacs-highlight-sexp
10299 (package
10300 (name "emacs-highlight-sexp")
10301 (version "1.0")
10302 (source
10303 (origin
10304 (method git-fetch)
10305 (uri (git-reference
10306 (url "https://github.com/daimrod/highlight-sexp")
10307 (commit (string-append "v" version))))
10308 (file-name (git-file-name name version))
10309 (sha256
10310 (base32 "12cyk2q5g6p4ac2hykw1cag7dp1prjjnck5f7nalwwaklmy62y79"))))
10311 (build-system emacs-build-system)
10312 (home-page "https://github.com/daimrod/highlight-sexp")
10313 (synopsis "Minor mode that highlights the s-exp at the current position")
10314 (description
10315 "This Emacs package highlights the s-exp at the current position.")
10316 (license license:gpl3+)))
10317
10318 (define-public emacs-highlight-stages
10319 (let ((commit "29cbc5b78261916da042ddb107420083da49b271")
10320 (revision "1"))
10321 (package
10322 (name "emacs-highlight-stages")
10323 (version (string-append "1.1.0" "-" revision "." (string-take commit 7)))
10324 (source
10325 (origin
10326 (method git-fetch)
10327 (uri (git-reference
10328 (url "https://github.com/zk-phi/highlight-stages")
10329 (commit commit)))
10330 (file-name (git-file-name name version))
10331 (sha256
10332 (base32
10333 "0r6nbcrr0dqpgm8dir8ahzjy7rw4nrac48byamzrq96r7ajlxlv0"))
10334 (patches
10335 (search-patches "emacs-highlight-stages-add-gexp.patch"))))
10336 (build-system emacs-build-system)
10337 (home-page "https://github.com/wigust/highlight-stages")
10338 (synopsis "Minor mode that highlights (quasi-quoted) expressions")
10339 (description "@code{highlight-stages} provides an Emacs minor mode that
10340 highlights quasi-quoted expressions.")
10341 (license license:gpl3+))))
10342
10343 (define-public emacspeak
10344 (package
10345 (name "emacspeak")
10346 (version "52.0")
10347 (source
10348 (origin
10349 (method url-fetch)
10350 (uri (string-append
10351 "https://github.com/tvraman/emacspeak/releases/download/"
10352 version "/emacspeak-" version ".tar.bz2"))
10353 (sha256
10354 (base32 "0x5b0s38r5ih2lk7f5hasi9arrgxlmmq5jaddadbxi8in2gw2jzl"))))
10355 (build-system gnu-build-system)
10356 (arguments
10357 '(#:make-flags (list (string-append "prefix="
10358 (assoc-ref %outputs "out")))
10359 #:phases
10360 (modify-phases %standard-phases
10361 (add-after 'unpack 'delete-broken-symlink
10362 (lambda _
10363 (delete-file "lisp/sudoku.el")
10364 #t))
10365 (replace 'configure
10366 (lambda _
10367 (setenv "SHELL" (which "sh"))
10368 ;; Configure Emacspeak according to etc/install.org.
10369 (invoke "make" "config")))
10370 (add-after 'build 'build-espeak
10371 (lambda _
10372 (invoke "make" "espeak")))
10373 (replace 'install
10374 (lambda* (#:key inputs outputs #:allow-other-keys)
10375 (let* ((out (assoc-ref outputs "out"))
10376 (bin (string-append out "/bin"))
10377 (lisp (string-append out "/share/emacs/site-lisp/emacspeak"))
10378 (info (string-append out "/share/info"))
10379 (emacs (string-append (assoc-ref inputs "emacs")
10380 "/bin/emacs")))
10381 ;; According to etc/install.org, the Emacspeak directory should
10382 ;; be copied to its installation destination.
10383 (for-each
10384 (lambda (file)
10385 (copy-recursively file (string-append lisp "/" file)))
10386 '("etc" "info" "js" "lisp" "media" "servers" "sounds"
10387 "stumpwm" "xsl"))
10388 ;; Make sure emacspeak is loaded from the correct directory.
10389 (substitute* "run"
10390 (("\\./lisp/emacspeak-setup.el")
10391 (string-append lisp "/lisp/emacspeak-setup.el")))
10392 ;; Install the convenient startup script.
10393 (mkdir-p bin)
10394 (copy-file "run" (string-append bin "/emacspeak")))
10395 #t))
10396 (add-after 'install 'wrap-program
10397 (lambda* (#:key inputs outputs #:allow-other-keys)
10398 (let* ((out (assoc-ref outputs "out"))
10399 (emacspeak (string-append out "/bin/emacspeak"))
10400 (espeak (string-append (assoc-ref inputs "espeak")
10401 "/bin/espeak")))
10402 ;; The environment variable DTK_PROGRAM tells emacspeak what
10403 ;; program to use for speech.
10404 (wrap-program emacspeak
10405 `("DTK_PROGRAM" ":" prefix (,espeak)))
10406 #t))))
10407 #:tests? #f)) ; no check target
10408 (inputs
10409 `(("emacs" ,emacs)
10410 ("espeak" ,espeak-ng)
10411 ("perl" ,perl)
10412 ("tcl" ,tcl)
10413 ("tclx" ,tclx)))
10414 (home-page "http://emacspeak.sourceforge.net")
10415 (synopsis "Audio desktop interface for Emacs")
10416 (description
10417 "Emacspeak is a speech interface that allows visually impaired users to
10418 interact independently and efficiently with the computer. Audio
10419 formatting---a technique pioneered by AsTeR---and full support for W3C's Aural
10420 CSS (ACSS) allows Emacspeak to produce rich aural presentations of electronic
10421 information. By seamlessly blending all aspects of the Internet such as
10422 Web-surfing and messaging, Emacspeak speech-enables local and remote
10423 information via a consistent and well-integrated user interface.")
10424 (license license:gpl2+)))
10425
10426 (define-public emacs-adaptive-wrap
10427 (package
10428 (name "emacs-adaptive-wrap")
10429 (version "0.7")
10430 (source
10431 (origin
10432 (method url-fetch)
10433 (uri (string-append "https://elpa.gnu.org/packages/"
10434 "adaptive-wrap-" version ".el"))
10435 (sha256
10436 (base32 "10fb8gzvkbnrgzv28n1rczs03dvapr7rvi0kd73j6yf1zg2iz6qp"))))
10437 (build-system emacs-build-system)
10438 (home-page "https://elpa.gnu.org/packages/adaptive-wrap.html")
10439 (synopsis "Smart line-wrapping with wrap-prefix")
10440 (description
10441 "This Emacs package provides the @code{adaptive-wrap-prefix-mode}
10442 minor mode which sets the wrap-prefix property on the fly so that
10443 single-long-line paragraphs get word-wrapped in a way similar to what
10444 you'd get with @kbd{M-q} using @code{adaptive-fill-mode}, but without
10445 actually changing the buffer's text.")
10446 (license license:gpl3+)))
10447
10448 (define-public emacs-diff-hl
10449 (package
10450 (name "emacs-diff-hl")
10451 (version "1.8.7")
10452 (source
10453 (origin
10454 (method git-fetch)
10455 (uri (git-reference
10456 (url "https://github.com/dgutov/diff-hl")
10457 (commit version)))
10458 (file-name (git-file-name name version))
10459 (sha256
10460 (base32 "0i7x6qgr3nydcwhw72sbc8z9x9dfhgkf0dqj9nakvx36vn1bblbq"))))
10461 (build-system emacs-build-system)
10462 (home-page "https://github.com/dgutov/diff-hl")
10463 (synopsis
10464 "Highlight uncommitted changes using VC")
10465 (description
10466 "@code{diff-hl-mode} highlights uncommitted changes on the side of the
10467 window (using the fringe, by default), allows you to jump between
10468 the hunks and revert them selectively.")
10469 (license license:gpl3+)))
10470
10471 (define-public emacs-diminish
10472 (package
10473 (name "emacs-diminish")
10474 (version "0.45")
10475 (source
10476 (origin
10477 (method git-fetch)
10478 (uri (git-reference
10479 (url "https://github.com/myrjola/diminish.el")
10480 (commit (string-append "v" version))))
10481 (file-name (git-file-name name version))
10482 (sha256
10483 (base32 "0qpgfgp8hrzz4vdifxq8h25n0a0jlzgf7aa1fpy6r0080v5rqbb6"))))
10484 (build-system emacs-build-system)
10485 (home-page "https://github.com/myrjola/diminish.el")
10486 (synopsis "Diminish minor modes with no modeline display")
10487 (description "@code{emacs-diminish} implements hiding or
10488 abbreviation of the mode line displays (lighters) of minor modes.")
10489 (license license:gpl2+)))
10490
10491 (define-public emacs-use-package
10492 (package
10493 (name "emacs-use-package")
10494 (version "2.4")
10495 (source (origin
10496 (method git-fetch)
10497 (uri (git-reference
10498 (url "https://github.com/jwiegley/use-package")
10499 (commit version)))
10500 (file-name (git-file-name name version))
10501 (sha256
10502 (base32
10503 "1b7mjjh0d6fmkkd9vyj64vca27xqhga0nvyrrcqxpqjn62zq046y"))))
10504 (build-system emacs-build-system)
10505 (native-inputs
10506 `(("texinfo" ,texinfo)))
10507 (propagated-inputs
10508 `(("emacs-diminish" ,emacs-diminish)))
10509 (arguments
10510 `(#:tests? #t
10511 #:test-command '("emacs" "--batch"
10512 "-l" "use-package-tests.el"
10513 "-f" "ert-run-tests-batch-and-exit")
10514 #:phases
10515 (modify-phases %standard-phases
10516 (add-before 'install 'install-manual
10517 (lambda* (#:key outputs #:allow-other-keys)
10518 (let* ((out (assoc-ref outputs "out"))
10519 (info-dir (string-append out "/share/info")))
10520 (mkdir-p info-dir)
10521 (install-file "use-package.info" info-dir)
10522 #t)))
10523 (add-before 'install-manual 'build-manual
10524 (lambda _
10525 (invoke "makeinfo" "use-package.texi")
10526 #t)))))
10527 (home-page "https://github.com/jwiegley/use-package")
10528 (synopsis "Declaration for simplifying your .emacs")
10529 (description "The use-package macro allows you to isolate package
10530 configuration in your @file{.emacs} file in a way that is both
10531 performance-oriented and tidy.")
10532 (license license:gpl2+)))
10533
10534 (define-public emacs-leaf
10535 (package
10536 (name "emacs-leaf")
10537 (version "4.2.5")
10538 (source
10539 (origin
10540 (method url-fetch)
10541 (uri (string-append "https://elpa.gnu.org/packages/"
10542 "leaf-" version ".tar"))
10543 (sha256
10544 (base32 "0y78mp4c2gcwp7dc87wlx3r4hfmap14vvx8gkjc9nkf99qavpnkw"))))
10545 (build-system emacs-build-system)
10546 (home-page "https://github.com/conao3/leaf.el")
10547 (synopsis "Simplify your init.el configuration, extended use-package")
10548 (description
10549 "This package provides macros that allows you to declaratively configure
10550 settings typical of an Elisp package with various keywords. The syntax is
10551 similar, but not identical to use-package -- overall, leaf aims at a cleaner
10552 and more predictable implementation.")
10553 (license license:agpl3+)))
10554
10555 (define-public emacs-strace-mode
10556 (let* ((commit "6a69b4b06db6797af56f33eda5cb28af94e59f11")
10557 (revision "1"))
10558 (package
10559 (name "emacs-strace-mode")
10560 (version (string-append "0.0.2-" revision "." (string-take commit 7)))
10561 (source (origin
10562 (method git-fetch)
10563 (uri (git-reference
10564 (url "https://github.com/pkmoore/strace-mode")
10565 (commit commit)))
10566 (file-name (git-file-name name version))
10567 (sha256
10568 (base32
10569 "1lbk2kzdznf2bkfazizfbimaxxzfzv00lrz1ran9dc2zqbc0bj9f"))))
10570 (build-system emacs-build-system)
10571 (home-page "https://github.com/pkmoore/strace-mode")
10572 (synopsis "Emacs major mode to highlight strace outputs")
10573 (description "@code{emacs-strace-mode} provides an Emacs major mode
10574 highlighting strace outputs.")
10575 (license license:gpl3+))))
10576
10577 (define-public emacs-default-encrypt
10578 (package
10579 (name "emacs-default-encrypt")
10580 (version "4.4")
10581 (source
10582 (origin
10583 (method url-fetch)
10584 (uri (string-append
10585 "https://informationelle-selbstbestimmung-im-internet.de"
10586 "/emacs/jl-encrypt" version "/jl-encrypt.el"))
10587 (file-name (string-append "jl-encrypt-" version ".el"))
10588 (sha256
10589 (base32
10590 "0w9ggz075j1zwg7d0rv9k8238g600p7czfnnsnawswi7yps2xk78"))))
10591 (build-system emacs-build-system)
10592 (home-page
10593 "https://informationelle-selbstbestimmung-im-internet.de/Emacs.html")
10594 (synopsis "Automatically encrypt or sign Gnus messages in Emacs")
10595 (description
10596 "DefaultEncrypt is designed to be used with Gnus in Emacs. It
10597 automatically encrypts messages that you send (e.g., email) when public keys
10598 for all recipients are available, and it protects you from accidentally
10599 sending un-encrypted messages. It can also be configured to automatically
10600 sign messages that you send. For details and instructions on how to use
10601 DefaultEncrypt, please refer to the home page or read the comments in the
10602 source file, @file{jl-encrypt.el}.")
10603 (license license:gpl3+)))
10604
10605 (define-public emacs-extend-smime
10606 (package
10607 (name "emacs-extend-smime")
10608 (version "3.3")
10609 (source
10610 (origin
10611 (method url-fetch)
10612 (uri (string-append
10613 "https://informationelle-selbstbestimmung-im-internet.de"
10614 "/emacs/jl-smime" version "/jl-smime.el"))
10615 (file-name (string-append "jl-smime-" version ".el"))
10616 (sha256
10617 (base32
10618 "1iv8s2wjmv3v5qfwlcy9hvvrmxxvp3f8m1krlr789q7bbh35jynh"))))
10619 (build-system emacs-build-system)
10620 (home-page
10621 "https://informationelle-selbstbestimmung-im-internet.de/Emacs.html")
10622 (synopsis "Improved S/MIME support for Gnus in Emacs")
10623 (propagated-inputs
10624 `(("emacs-default-encrypt" ,emacs-default-encrypt)))
10625 (description
10626 ;; TRANSLATORS: ExtendSMIME, DefaultEncrypt, and emacs-default-encrypt
10627 ;; should not be translated. The name "emacs-default-encrypt" refers to
10628 ;; the Guix package that provides DefaultEncrypt.
10629 "ExtendSMIME is designed to be used with Gnus in Emacs. It enhances
10630 DefaultEncrypt (emacs-default-encrypt) to support S/MIME (Secure/Multipurpose
10631 Internet Mail Extensions) via LDAP (Lightweight Directory Access Protocol).
10632 Before a message (e.g., email) is sent, ExtendSMIME searches for missing
10633 certificates via LDAP and imports them into @code{gpgsm}. When certificates
10634 for all recipients are available, DefaultEncrypt automatically encrypts the
10635 message. For details and instructions on how to use ExtendSMIME, please refer
10636 to the home page or read the comments in the source file,
10637 @file{jl-smime.el}.")
10638 (license license:gpl3+)))
10639
10640 (define-public emacs-htmlize
10641 (package
10642 (name "emacs-htmlize")
10643 (version "1.55")
10644 (source
10645 (origin
10646 (method git-fetch)
10647 (uri (git-reference
10648 (url "https://github.com/hniksic/emacs-htmlize")
10649 (commit (string-append "release/" version))))
10650 (file-name (git-file-name name version))
10651 (sha256
10652 (base32 "0gi3xshscpa53qrj8yplfsqahcilc2ybcc2p7gnh5nbnf2n1n97x"))))
10653 (build-system emacs-build-system)
10654 (home-page "https://github.com/hniksic/emacs-htmlize")
10655 (synopsis "Convert buffer text and decorations to HTML")
10656 (description "@code{emacs-htmlize} converts the buffer text and
10657 the associated decorations to HTML. Output to CSS, inline CSS and
10658 fonts is supported.")
10659 (license license:gpl2+)))
10660
10661 (define-public emacs-xmlgen
10662 (package
10663 (name "emacs-xmlgen")
10664 (version "0.5")
10665 (source
10666 (origin
10667 (method git-fetch)
10668 (uri (git-reference
10669 (url "https://github.com/philjackson/xmlgen")
10670 (commit version)))
10671 (file-name (git-file-name name version))
10672 (sha256
10673 (base32 "096i29v0badx0a6339h9ckdz78zj59gbjdp7vj7vhkq9d830392s"))))
10674 (build-system emacs-build-system)
10675 (arguments
10676 `(#:tests? #t
10677 #:test-command '("emacs" "--batch"
10678 "-l" "xmlgen-test.el"
10679 "-f" "ert-run-tests-batch-and-exit")))
10680 (home-page "https://github.com/philjackson/xmlgen")
10681 (synopsis "S-expression to XML domain specific language (DSL) in
10682 Emacs Lisp")
10683 (description "@code{emacs-xmlgen} provides S-expression to XML
10684 conversion for Emacs Lisp.")
10685 (license license:gpl2+)))
10686
10687 (define-public emacs-cdlatex
10688 (package
10689 (name "emacs-cdlatex")
10690 (version "4.7")
10691 (source
10692 (origin
10693 (method git-fetch)
10694 (uri (git-reference
10695 (url "https://github.com/cdominik/cdlatex")
10696 (commit version)))
10697 (file-name (git-file-name name version))
10698 (sha256
10699 (base32 "1jj9vmhc4s3ych08bjm1c2xwi81z1p20rj7bvxrgvb5aga2ghi9d"))))
10700 (build-system emacs-build-system)
10701 (propagated-inputs
10702 `(("emacs-auctex" ,emacs-auctex)))
10703 (home-page "https://github.com/cdominik/cdlatex")
10704 (synopsis "Fast Emacs input methods for LaTeX environments and
10705 math")
10706 (description "CDLaTeX is an Emacs minor mode supporting fast
10707 insertion of environment templates and math in LaTeX. Similar
10708 commands are also offered as part of the AUCTeX package, but it is not
10709 the same - CDLaTeX focuses on speediness for inserting LaTeX
10710 constructs.")
10711 (license license:gpl3+)))
10712
10713 (define-public emacs-cnfonts
10714 (package
10715 (name "emacs-cnfonts")
10716 (version "0.9.1")
10717 (source
10718 (origin
10719 (method git-fetch)
10720 (uri (git-reference
10721 (url "https://github.com/tumashu/cnfonts")
10722 (commit (string-append "v" version))))
10723 (file-name (git-file-name name version))
10724 (sha256
10725 (base32 "11d44lf0m0kbzq1mvyqkl4aprys0xqaarp08nij57xnynin1rynx"))))
10726 (build-system emacs-build-system)
10727 (home-page "https://github.com/tumashu/cnfonts")
10728 (synopsis "Emacs Chinese fonts setup tool")
10729 (description "cnfonts is a Chinese fonts setup tool, allowing for easy
10730 configuration of Chinese fonts.")
10731 (license license:gpl2+)))
10732
10733 (define-public emacs-php-mode
10734 (package
10735 (name "emacs-php-mode")
10736 (version "1.23.0")
10737 (source
10738 (origin
10739 (method git-fetch)
10740 (uri (git-reference
10741 (url "https://github.com/ejmr/php-mode")
10742 (commit (string-append "v" version))))
10743 (file-name (git-file-name name version))
10744 (sha256
10745 (base32 "0wnkcxg6djy4jvxhshiy1iw6b5cf79pjwjhfd1a060cavhfm4v5c"))))
10746 (build-system emacs-build-system)
10747 (home-page "https://github.com/ejmr/php-mode")
10748 (synopsis "Major mode for editing PHP code")
10749 (description
10750 "PHP mode is a major mode for editing PHP source code. It's an extension
10751 of C mode; thus it inherits all C mode's navigation functionality. But it
10752 colors according to the PHP grammar and indents according to the PEAR coding
10753 guidelines. It also includes a couple handy IDE-type features such as
10754 documentation search and a source and class browser.")
10755 (license license:gpl3+)))
10756
10757 (define-public emacs-pos-tip
10758 (package
10759 (name "emacs-pos-tip")
10760 (version "0.4.6")
10761 (source
10762 (origin
10763 (method git-fetch)
10764 (uri (git-reference
10765 (url "https://github.com/pitkali/pos-tip")
10766 (commit version)))
10767 (file-name (git-file-name name version))
10768 (sha256
10769 (base32 "0w8bnspnk871qndp18hs0wk4x9x31xr9rwbvf5dc8mcbnj29ch33"))))
10770 (build-system emacs-build-system)
10771 ;; The following functions and variables needed by emacs-pos-tip are
10772 ;; not included in emacs-minimal:
10773 ;; x-display-pixel-width, x-display-pixel-height, x-show-tip
10774 (arguments `(#:emacs ,emacs))
10775 (home-page "https://github.com/pitkali/pos-tip")
10776 (synopsis "Show tooltip at point")
10777 (description "The standard library tooltip.el provides a function for
10778 displaying a tooltip at the mouse position. However, locating a tooltip at an
10779 arbitrary buffer position in a window is not easy. Pos-tip provides such a
10780 function to be used by other frontend programs.")
10781 (license license:gpl2+)))
10782
10783 (define-public emacs-pyim-basedict
10784 (package
10785 (name "emacs-pyim-basedict")
10786 (version "0.3.1")
10787 (source
10788 (origin
10789 (method git-fetch)
10790 (uri (git-reference
10791 (url "https://github.com/tumashu/pyim-basedict")
10792 (commit (string-append "v" version))))
10793 (file-name (git-file-name name version))
10794 (sha256
10795 (base32 "0576r8ap9gp91ycjf1d47pn13kxp0f9fysn09zlq44hr0s1y2y5d"))))
10796 (build-system emacs-build-system)
10797 (home-page "https://github.com/tumashu/pyim-basedict")
10798 (synopsis "Input method dictionary of pyim")
10799 (description "Pyim-basedict is the default pinyin input method dictionary,
10800 containing words from the rime project.")
10801 (license license:gpl2+)))
10802
10803 (define-public emacs-pyim
10804 (package
10805 (name "emacs-pyim")
10806 (version "1.8")
10807 (source
10808 (origin
10809 (method git-fetch)
10810 (uri (git-reference
10811 (url "https://github.com/tumashu/pyim")
10812 (commit (string-append "v" version))))
10813 (file-name (git-file-name name version))
10814 (sha256
10815 (base32
10816 "16rma4cv7xgky0g3x4an27v30jdi6i1sqw43cl99zhkqvp43l3f9"))))
10817 (build-system emacs-build-system)
10818 (propagated-inputs
10819 `(("emacs-async" ,emacs-async)
10820 ("emacs-pyim-basedict" ,emacs-pyim-basedict)
10821 ("emacs-popup" ,emacs-popup)
10822 ("emacs-posframe" ,emacs-posframe)))
10823 (home-page "https://github.com/tumashu/pyim")
10824 (synopsis "Chinese input method")
10825 (description "Chinese input method which supports quanpin, shuangpin, wubi
10826 and cangjie.")
10827 (license license:gpl2+)))
10828
10829 (define-public emacs-posframe
10830 (package
10831 (name "emacs-posframe")
10832 (version "0.7.0")
10833 (source
10834 (origin
10835 (method url-fetch)
10836 (uri (string-append "https://elpa.gnu.org/packages/"
10837 "posframe-" version ".el"))
10838 (sha256
10839 (base32 "1kwl83jb5k1hnx0s2qw972v0gjqbbvk4sdcdb1qbdxsyw36sylc9"))))
10840 (build-system emacs-build-system)
10841 ;; emacs-minimal does not include the function font-info.
10842 (arguments
10843 `(#:emacs ,emacs))
10844 (home-page "https://github.com/tumashu/posframe")
10845 (synopsis "Pop a posframe (a child frame) at point")
10846 (description "@code{emacs-posframe} can pop a posframe at point. A
10847 posframe is a child frame displayed within its root window's buffer.
10848 @code{emacs-posframe} is fast and works well with CJK languages.")
10849 (license license:gpl3+)))
10850
10851 (define-public emacs-el2org
10852 (package
10853 (name "emacs-el2org")
10854 (version "0.6.0")
10855 (source
10856 (origin
10857 (method git-fetch)
10858 (uri (git-reference
10859 (url "https://github.com/tumashu/el2org")
10860 (commit (string-append "v" version))))
10861 (file-name (git-file-name name version))
10862 (sha256
10863 (base32 "0mzddqny6wpg1fv99xrvlv7rxmaifvmy5bvj4in4pldhm4cx4q1b"))))
10864 (build-system emacs-build-system)
10865 (home-page "https://github.com/tumashu/el2org")
10866 (synopsis "Convert Emacs-lisp file to org file")
10867 (description "El2org is a simple tool, which can convert Emacs-lisp file
10868 to org file, you can use this tool to write orgify commentary.")
10869 (license license:gpl2+)))
10870
10871 (define-public emacs-mustache
10872 (package
10873 (name "emacs-mustache")
10874 (version "0.23")
10875 (source
10876 (origin
10877 (method git-fetch)
10878 (uri (git-reference
10879 (url "https://github.com/Wilfred/mustache.el")
10880 (commit version)))
10881 (file-name (git-file-name name version))
10882 (sha256
10883 (base32 "1n2ymd92qpvsby6ms0l3kjhdzzc47rri2aiscc6bs07hm4mjpr9q"))))
10884 (build-system emacs-build-system)
10885 (propagated-inputs
10886 `(("emacs-dash" ,emacs-dash)
10887 ("emacs-ht" ,emacs-ht)
10888 ("emacs-s" ,emacs-s)))
10889 (home-page "https://github.com/Wilfred/mustache.el")
10890 (synopsis "Mustache templating library for Emacs")
10891 (description "Mustache templating library for Emacs, mustache is
10892 a simple web template system, which is described as a logic-less system
10893 because it lacks any explicit control flow statements, both looping and
10894 conditional evaluation can be achieved using section tags processing lists
10895 and lambdas.")
10896 (license license:gpl3+)))
10897
10898 (define-public emacs-org2web
10899 (package
10900 (name "emacs-org2web")
10901 (version "0.9.1")
10902 (source
10903 (origin
10904 (method git-fetch)
10905 (uri (git-reference
10906 (url "https://github.com/tumashu/org2web")
10907 (commit (string-append "v" version))))
10908 (file-name (git-file-name name version))
10909 (sha256
10910 (base32 "0wsvfn409a2ivbich8b8zqza78sprirg4bl7igx536ydqclmi0n7"))))
10911 (build-system emacs-build-system)
10912 (propagated-inputs
10913 `(("emacs-dash" ,emacs-dash)
10914 ("emacs-el2org" ,emacs-el2org)
10915 ("emacs-ht" ,emacs-ht)
10916 ("emacs-mustache" ,emacs-mustache)
10917 ("emacs-simple-httpd" ,emacs-simple-httpd)))
10918 (home-page "https://github.com/tumashu/org2web")
10919 (synopsis "Static site generator based on org-mode ")
10920 (description "Org2web is a static site generator based on org-mode,
10921 which code derived from Kelvin H's org-page.")
10922 (license license:gpl2+)))
10923
10924 (define-public emacs-xelb
10925 (package
10926 (name "emacs-xelb")
10927 (version "0.18")
10928 (source (origin
10929 (method url-fetch)
10930 (uri (string-append "https://elpa.gnu.org/packages/xelb-"
10931 version ".tar"))
10932 (sha256
10933 (base32
10934 "1fp5mzl63sh0h3ws4l5p4qgvi7ny8a3fj6k4dhqa98xgw2bx03v7"))))
10935 (build-system emacs-build-system)
10936 ;; The following functions and variables needed by emacs-xelb are
10937 ;; not included in emacs-minimal:
10938 ;; x-display-screens, x-keysym-table, x-alt-keysym, x-meta-keysym
10939 ;; x-hyper-keysym, x-super-keysym, libxml-parse-xml-region
10940 ;; x-display-pixel-width, x-display-pixel-height
10941 (arguments
10942 `(#:emacs ,emacs
10943 #:phases
10944 (modify-phases %standard-phases
10945 (add-after 'unpack 'regenerate-el-files
10946 (lambda* (#:key inputs #:allow-other-keys)
10947 (invoke "make"
10948 (string-append "PROTO_PATH="
10949 (assoc-ref inputs "xcb-proto")
10950 "/share/xcb")
10951 (string-append "EMACS_BIN="
10952 (assoc-ref inputs "emacs")
10953 "/bin/emacs -Q")))))))
10954 (native-inputs `(("xcb-proto" ,xcb-proto)))
10955 (home-page "https://github.com/ch11ng/xelb")
10956 (synopsis "X protocol Emacs Lisp binding")
10957 (description "@code{emacs-xelb} is a pure Emacs Lisp implementation of the
10958 X11 protocol based on the XML description files from the XCB project. It
10959 features an object-oriented API and permits a certain degree of concurrency.
10960 It should enable you to implement low-level X11 applications.")
10961 (license license:gpl3+)))
10962
10963 (define-public emacs-exwm
10964 (package
10965 (name "emacs-exwm")
10966 (version "0.24")
10967 (synopsis "Emacs X window manager")
10968 (source
10969 (origin
10970 (method url-fetch)
10971 (uri (string-append "https://elpa.gnu.org/packages/"
10972 "exwm-" version ".tar"))
10973 (sha256
10974 (base32 "0lj1a3cmbpf4h6x8k6x8cdm1qb51ca6filydnvi5zcda8zpl060s"))
10975 (patches
10976 ;; Patch fixing fullscreen view. Applied upstream as
10977 ;; edb930005b0ba83051ca8a59b493e9a3c8ef580a. It can be removed in
10978 ;; next release.
10979 (search-patches "emacs-exwm-fix-fullscreen-states.patch"))))
10980 (build-system emacs-build-system)
10981 (propagated-inputs
10982 `(("emacs-xelb" ,emacs-xelb)))
10983 (inputs
10984 `(("xhost" ,xhost)
10985 ("dbus" ,dbus)))
10986 ;; The following functions and variables needed by emacs-exwm are
10987 ;; not included in emacs-minimal:
10988 ;; scroll-bar-mode, fringe-mode
10989 ;; x-display-pixel-width, x-display-pixel-height
10990 (arguments
10991 `(#:emacs ,emacs
10992 #:phases
10993 (modify-phases %standard-phases
10994 (add-after 'build 'install-xsession
10995 (lambda* (#:key inputs outputs #:allow-other-keys)
10996 (let* ((out (assoc-ref outputs "out"))
10997 (xsessions (string-append out "/share/xsessions"))
10998 (bin (string-append out "/bin"))
10999 (exwm-executable (string-append bin "/exwm")))
11000 ;; Add a .desktop file to xsessions
11001 (mkdir-p xsessions)
11002 (mkdir-p bin)
11003 (make-desktop-entry-file
11004 (string-append xsessions "/exwm.desktop")
11005 #:name ,name
11006 #:comment ,synopsis
11007 #:exec exwm-executable
11008 #:try-exec exwm-executable)
11009 ;; Add a shell wrapper to bin
11010 (with-output-to-file exwm-executable
11011 (lambda _
11012 (format #t "#!~a ~@
11013 ~a +SI:localuser:$USER ~@
11014 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
11015 (string-append (assoc-ref inputs "bash") "/bin/sh")
11016 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
11017 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
11018 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
11019 '(cond
11020 ((file-exists-p "~/.exwm")
11021 (load-file "~/.exwm"))
11022 ((not (featurep 'exwm))
11023 (require 'exwm)
11024 (require 'exwm-config)
11025 (exwm-config-default)
11026 (message (concat "exwm configuration not found. "
11027 "Falling back to default configuration...")))))))
11028 (chmod exwm-executable #o555)
11029 #t))))))
11030 (home-page "https://github.com/ch11ng/exwm")
11031 (description
11032 "EXWM is a full-featured tiling X window manager for Emacs built on top
11033 of XELB.")
11034 (license license:gpl3+)))
11035
11036 (define-public emacs-switch-window
11037 (package
11038 (name "emacs-switch-window")
11039 (version "1.6.2")
11040 (source
11041 (origin
11042 (method git-fetch)
11043 (uri (git-reference
11044 (url "https://github.com/dimitri/switch-window")
11045 (commit (string-append "v" version))))
11046 (file-name (git-file-name name version))
11047 (sha256
11048 (base32
11049 "0rci96asgamr6qp6nkyr5vwrnslswjxcjd96yccy4aivh0g66yfg"))))
11050 (build-system emacs-build-system)
11051 (home-page "https://github.com/dimitri/switch-window")
11052 (synopsis "Emacs window switch tool")
11053 (description "Switch-window is an emacs window switch tool, which
11054 offer a visual way to choose a window to switch to, delete, split or
11055 other operations.")
11056 (license license:wtfpl2)))
11057
11058 (define-public emacs-exwm-x
11059 (package
11060 (name "emacs-exwm-x")
11061 (version "1.9.0")
11062 (synopsis "Derivative window manager based on EXWM")
11063 (source
11064 (origin
11065 (method git-fetch)
11066 (uri (git-reference
11067 (url "https://github.com/tumashu/exwm-x")
11068 (commit (string-append "v" version))))
11069 (file-name (git-file-name name version))
11070 (sha256
11071 (base32
11072 "03l3dl7s1qys1kkh40rm1sfx7axy1b8sf5f6nyksj9ps6d30p5i4"))))
11073 (build-system emacs-build-system)
11074 (propagated-inputs
11075 `(("emacs-counsel" ,emacs-counsel)
11076 ("emacs-exwm" ,emacs-exwm)
11077 ("emacs-switch-window" ,emacs-switch-window)
11078 ("emacs-use-package" ,emacs-use-package)))
11079 (inputs
11080 `(("xhost" ,xhost)
11081 ("dbus" ,dbus)))
11082 ;; Need emacs instead of emacs-minimal,
11083 ;; for emacs's bin path will be inserted into bin/exwm-x file.
11084 (arguments
11085 `(#:emacs ,emacs
11086 #:phases
11087 (modify-phases %standard-phases
11088 (add-after 'build 'install-xsession
11089 (lambda* (#:key inputs outputs #:allow-other-keys)
11090 (let* ((out (assoc-ref outputs "out"))
11091 (xsessions (string-append out "/share/xsessions"))
11092 (bin (string-append out "/bin"))
11093 (exwm-executable (string-append bin "/exwm-x")))
11094 ;; Add a .desktop file to xsessions
11095 (mkdir-p xsessions)
11096 (mkdir-p bin)
11097 (with-output-to-file
11098 (string-append xsessions "/exwm-x.desktop")
11099 (lambda _
11100 (format #t "[Desktop Entry]~@
11101 Name=~a~@
11102 Comment=~a~@
11103 Exec=~a~@
11104 TryExec=~@*~a~@
11105 Type=Application~%" ,name ,synopsis exwm-executable)))
11106 ;; Add a shell wrapper to bin
11107 (with-output-to-file exwm-executable
11108 (lambda _
11109 (format #t "#!~a ~@
11110 ~a +SI:localuser:$USER ~@
11111 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
11112 (string-append (assoc-ref inputs "bash") "/bin/sh")
11113 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
11114 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
11115 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
11116 '(require 'exwmx-loader))))
11117 (chmod exwm-executable #o555)
11118 #t))))))
11119 (home-page "https://github.com/tumashu/exwm-x")
11120 (description "EXWM-X is a derivative window manager based on EXWM, with focus
11121 on mouse-control.")
11122 (license license:gpl3+)))
11123
11124 (define-public emacs-gnugo
11125 (package
11126 (name "emacs-gnugo")
11127 (version "3.1.0")
11128 (source
11129 (origin
11130 (method url-fetch)
11131 (uri (string-append "https://elpa.gnu.org/packages/gnugo-"
11132 version ".tar"))
11133 (sha256
11134 (base32
11135 "0xpjvs250gg71qwapdsb1hlc61gs0gpkjds01srf784fvyxx2gf1"))))
11136 (build-system emacs-build-system)
11137 (arguments
11138 `(#:phases (modify-phases %standard-phases
11139 (add-after 'unpack 'configure-default-gnugo-xpms-variable
11140 (lambda _
11141 (substitute* "gnugo.el"
11142 (("defvar gnugo-xpms nil")
11143 "defvar gnugo-xpms #'gnugo-imgen-create-xpms"))
11144 #t)))))
11145 (propagated-inputs
11146 `(("emacs-ascii-art-to-unicode" ,emacs-ascii-art-to-unicode)
11147 ("emacs-xpm" ,emacs-xpm)))
11148 (home-page "https://elpa.gnu.org/packages/gnugo.html")
11149 (synopsis "Emacs major mode for playing GNU Go")
11150 (description "This package provides an Emacs based interface for GNU Go.
11151 It has a graphical mode where the board and stones are drawn using XPM images
11152 and supports the use of a mouse.")
11153 (license license:gpl3+)))
11154
11155 (define-public emacs-gnuplot
11156 (package
11157 (name "emacs-gnuplot")
11158 (version "0.7.0")
11159 (source
11160 (origin
11161 (method git-fetch)
11162 (uri (git-reference
11163 (url "https://github.com/bruceravel/gnuplot-mode")
11164 (commit version)))
11165 (file-name (git-file-name name version))
11166 (sha256
11167 (base32 "0bwri3cvm2vr27kyqkrddm28fs08axnd4nm9amfgp54xp20bn4yn"))))
11168 (build-system gnu-build-system)
11169 (native-inputs `(("emacs" ,emacs-minimal)))
11170 (arguments
11171 (let ((elisp-dir "/share/emacs/site-lisp"))
11172 `(#:modules ((guix build gnu-build-system)
11173 (guix build utils)
11174 (guix build emacs-utils))
11175 #:imported-modules (,@%gnu-build-system-modules
11176 (guix build emacs-utils))
11177 #:configure-flags
11178 (list (string-append "EMACS=" (assoc-ref %build-inputs "emacs")
11179 "/bin/emacs")
11180 (string-append "--with-lispdir=" %output ,elisp-dir))
11181 #:phases
11182 (modify-phases %standard-phases
11183 (add-after 'install 'generate-autoloads
11184 (lambda* (#:key outputs #:allow-other-keys)
11185 (emacs-generate-autoloads
11186 "gnuplot"
11187 (string-append (assoc-ref outputs "out") ,elisp-dir))
11188 #t))))))
11189 (home-page "https://github.com/bruceravel/gnuplot-mode")
11190 (synopsis "Emacs major mode for interacting with gnuplot")
11191 (description "@code{emacs-gnuplot} is an emacs major mode for interacting
11192 with gnuplot.")
11193 (license license:gpl2+)))
11194
11195 (define-public emacs-transpose-frame
11196 (package
11197 (name "emacs-transpose-frame")
11198 (version "0.1.0")
11199 (source
11200 (origin
11201 (method url-fetch)
11202 (uri "https://www.emacswiki.org/emacs/download/transpose-frame.el")
11203 (file-name (string-append "transpose-frame-" version ".el"))
11204 (sha256
11205 (base32
11206 "1f67yksgw9s6j0033hmqzaxx2a93jm11sd5ys7cc3li5gfh680m4"))))
11207 (build-system emacs-build-system)
11208 (home-page "https://www.emacswiki.org/emacs/TransposeFrame")
11209 (synopsis "Transpose window arrangement in current frame")
11210 (description "@code{emacs-transpose-frame} provides some interactive
11211 functions which allows users to transpose windows arrangement in currently
11212 selected frame.")
11213 (license license:bsd-2)))
11214
11215 (define-public emacs-key-chord
11216 (package
11217 (name "emacs-key-chord")
11218 (version "0.6")
11219 (source
11220 (origin
11221 (method url-fetch)
11222 (uri "https://www.emacswiki.org/emacs/download/key-chord.el")
11223 (file-name (string-append "key-chord-" version ".el"))
11224 (sha256
11225 (base32
11226 "03m44pqggfrd53nh9dvpdjgm0rvca34qxmd30hr33hzprzjambxg"))))
11227 (build-system emacs-build-system)
11228 (home-page "https://www.emacswiki.org/emacs/key-chord.el")
11229 (synopsis "Map pairs of simultaneously pressed keys to Emacs commands")
11230 (description "@code{emacs-key-chord} provides @code{key-chord-mode}, a
11231 mode for binding key chords to commands. A key chord is defined as two keys
11232 pressed simultaneously or a single key quickly pressed twice.")
11233 (license license:gpl2+)))
11234
11235 (define-public emacs-evil-surround
11236 (package
11237 (name "emacs-evil-surround")
11238 (version "1.1.0")
11239 (source
11240 (origin
11241 (method git-fetch)
11242 (uri (git-reference
11243 (url "https://github.com/emacs-evil/evil-surround")
11244 (commit version)))
11245 (file-name (git-file-name name version))
11246 (sha256
11247 (base32 "15v2spg5rhddr97pxjfvxj36sh7knp753a9qpw8v5zjnp65kf2kn"))))
11248 (build-system emacs-build-system)
11249 (propagated-inputs
11250 `(("emacs-evil" ,emacs-evil)))
11251 (arguments
11252 `(#:tests? #t
11253 #:test-command '("make" "test")))
11254 (home-page "https://github.com/emacs-evil/evil-surround")
11255 (synopsis "Easily modify surrounding parentheses and quotes")
11256 (description "@code{emacs-evil-surround} allows easy deletion, change and
11257 addition of surrounding pairs, such as parentheses and quotes, in evil mode.")
11258 (license license:gpl3+)))
11259
11260 (define-public emacs-evil-commentary
11261 (package
11262 (name "emacs-evil-commentary")
11263 (version "2.1.1")
11264 (source
11265 (origin
11266 (method git-fetch)
11267 (uri (git-reference
11268 (url "https://github.com/linktohack/evil-commentary")
11269 (commit (string-append "v" version))))
11270 (file-name (git-file-name name version))
11271 (sha256
11272 (base32 "0zjs9zyqfygnpxapvf0ymmiid40i06cxbhjzd81zw33nafgkf6r4"))))
11273 (build-system emacs-build-system)
11274 (propagated-inputs
11275 `(("emacs-evil" ,emacs-evil)))
11276 (home-page "https://github.com/linktohack/evil-commentary")
11277 (synopsis "Comment out code in evil mode")
11278 (description "@code{emacs-evil-commentary} adds keybindings to easily
11279 comment out lines of code in evil mode. It provides @code{gcc} to comment out
11280 lines, and @code{gc} to comment out the target of a motion.")
11281 (license license:gpl3+)))
11282
11283 ;; Tests for emacs-ansi have a circular dependency with ert-runner, and
11284 ;; therefore cannot be run
11285 (define-public emacs-ansi
11286 (let ((commit "a41d5cc719297515d85bb5256980cd1204a71b88")
11287 (revision "1"))
11288 (package
11289 (name "emacs-ansi")
11290 (version (git-version "0.4.1" revision commit))
11291 (source
11292 (origin
11293 (method git-fetch)
11294 (uri (git-reference
11295 (url "https://github.com/rejeep/ansi.el")
11296 (commit commit)))
11297 (file-name (git-file-name name version))
11298 (sha256
11299 (base32 "051v8dmji90chwbsyqsqry7h35mksal2j6rgw1kpmjsni86d79y1"))))
11300 (build-system emacs-build-system)
11301 (propagated-inputs
11302 `(("emacs-dash" ,emacs-dash)
11303 ("emacs-s" ,emacs-s)))
11304 (home-page "https://github.com/rejeep/ansi.el")
11305 (synopsis "Convert strings to ANSI")
11306 (description "@code{emacs-ansi} defines functions that turns simple
11307 strings to ANSI strings. Turning a string into an ANSI string can be to add
11308 color to a text, add color in the background of a text or adding a style, such
11309 as bold, underscore or italic.")
11310 (license license:gpl3+))))
11311
11312 ;; Tests for emacs-commander have a circular dependency with ert-runner, and
11313 ;; therefore cannot be run
11314 (define-public emacs-commander
11315 (package
11316 (name "emacs-commander")
11317 (version "0.7.0")
11318 (source
11319 (origin
11320 (method git-fetch)
11321 (uri (git-reference
11322 (url "https://github.com/rejeep/commander.el")
11323 (commit (string-append "v" version))))
11324 (file-name (git-file-name name version))
11325 (sha256
11326 (base32 "1j6hhyzww7wfwk6bllbb5mk4hw4qs8hsgfbfdifsam9c6i4spm45"))))
11327 (build-system emacs-build-system)
11328 (propagated-inputs
11329 `(("emacs-dash" ,emacs-dash)
11330 ("emacs-f" ,emacs-f)
11331 ("emacs-s" ,emacs-s)))
11332 (home-page "https://github.com/rejeep/commander.el")
11333 (synopsis "Emacs command line parser")
11334 (description "@code{emacs-commander} provides command line parsing for
11335 Emacs.")
11336 (license license:gpl3+)))
11337
11338 (define-public emacs-eglot
11339 (package
11340 (name "emacs-eglot")
11341 (version "1.6")
11342 (source
11343 (origin
11344 (method url-fetch)
11345 (uri (string-append "https://elpa.gnu.org/packages/"
11346 "eglot-" version ".tar"))
11347 (sha256
11348 (base32 "15hd6sx7qrpvlvhwwkcgdiki8pswwf4mm7hkm0xvznskfcp44spx"))))
11349 (build-system emacs-build-system)
11350 (propagated-inputs
11351 `(("emacs-jsonrpc" ,emacs-jsonrpc)))
11352 (home-page "https://github.com/joaotavora/eglot")
11353 (synopsis "Client for Language Server Protocol (LSP) servers")
11354 (description
11355 "Emacs Polyglot, or Eglot, is an Emacs @acronym{Language Server Protocol,
11356 LSP} client that stays out of the way. It guesses the LSP program to start
11357 for the current file, using the major mode as a hint. It prompts you to enter
11358 one if it fails.")
11359 (license license:gpl3+)))
11360
11361 ;; Tests for ert-runner have a circular dependency with ecukes, and therefore
11362 ;; cannot be run
11363 (define-public emacs-ert-runner
11364 (package
11365 (name "emacs-ert-runner")
11366 (version "0.8.0")
11367 (source
11368 (origin
11369 (method git-fetch)
11370 (uri (git-reference
11371 (url "https://github.com/rejeep/ert-runner.el")
11372 (commit (string-append "v" version))))
11373 (file-name (git-file-name name version))
11374 (sha256
11375 (base32
11376 "08gygn9fjank5gpi4v6ynrkn0jbknxbwsn7md4p9ndygdbmnkf98"))))
11377 (build-system emacs-build-system)
11378 (inputs
11379 `(("emacs-ansi" ,emacs-ansi)
11380 ("emacs-commander" ,emacs-commander)
11381 ("emacs-dash" ,emacs-dash)
11382 ("emacs-f" ,emacs-f)
11383 ("emacs-s" ,emacs-s)
11384 ("emacs-shut-up" ,emacs-shut-up)))
11385 (arguments
11386 `(#:phases
11387 (modify-phases %standard-phases
11388 (add-after 'install 'install-executable
11389 (lambda* (#:key inputs outputs #:allow-other-keys)
11390 (let ((out (assoc-ref outputs "out"))
11391 (source-directory (string-append
11392 (getenv "TMPDIR") "/source")))
11393 (substitute* "bin/ert-runner"
11394 (("ERT_RUNNER=\"\\$\\(dirname \\$\\(dirname \\$0\\)\\)")
11395 (string-append "ERT_RUNNER=\"" out
11396 "/share/emacs/site-lisp")))
11397 (install-file "bin/ert-runner" (string-append out "/bin"))
11398 (wrap-program (string-append out "/bin/ert-runner")
11399 (list "EMACSLOADPATH" ":" 'prefix
11400 ;; Do not capture the transient source directory in
11401 ;; the wrapper.
11402 (delete source-directory
11403 (string-split (getenv "EMACSLOADPATH") #\:))))
11404 #t))))
11405 #:include (cons* "^reporters/.*\\.el$" %default-include)))
11406 (home-page "https://github.com/rejeep/ert-runner.el")
11407 (synopsis "Opinionated Ert testing workflow")
11408 (description "@code{ert-runner} is a tool for Emacs projects tested
11409 using ERT. It assumes a certain test structure setup and can therefore make
11410 running tests easier.")
11411 (license license:gpl3+)))
11412
11413 (define-public emacs-xtest
11414 (package
11415 (name "emacs-xtest")
11416 (version "1.1.0")
11417 (source (origin
11418 (method git-fetch)
11419 (uri (git-reference
11420 (url "https://github.com/promethial/xtest")
11421 (commit (string-append "v" version))))
11422 (file-name (git-file-name name version))
11423 (sha256
11424 (base32
11425 "1wqx6hlqcmqiljydih5fx89dw06g8w728pyn4iqsap8jwgjngb09"))))
11426 (arguments
11427 `(#:exclude '()))
11428 (build-system emacs-build-system)
11429 (home-page "https://github.com/promethial/xtest/")
11430 (synopsis "Simple testing with Emacs")
11431 (description "This package provides a simple testing library for Emacs.")
11432 (license license:gpl3+)))
11433
11434 (define-public emacs-disable-mouse
11435 (package
11436 (name "emacs-disable-mouse")
11437 (version "0.2")
11438 (source
11439 (origin
11440 (method git-fetch)
11441 (uri (git-reference
11442 (url "https://github.com/purcell/disable-mouse")
11443 (commit version)))
11444 (file-name (git-file-name name version))
11445 (sha256
11446 (base32 "1v1y5hf6k6ng7xsvgb27nh740d14m6l4krr0paccda8zgm4mw357"))))
11447 (build-system emacs-build-system)
11448 (home-page "https://github.com/purcell/disable-mouse")
11449 (synopsis "Disable mouse commands globally")
11450 (description
11451 "Provides @code{disable-mouse-mode} and @code{global-disable-mouse-mode},
11452 pair of minor modes which suppress all mouse events by intercepting them and
11453 running a customisable handler command (@code{ignore} by default). ")
11454 (license license:gpl3+)))
11455
11456 (define-public emacs-json-reformat
11457 (package
11458 (name "emacs-json-reformat")
11459 (version "0.0.6")
11460 (source
11461 (origin
11462 (method git-fetch)
11463 (uri (git-reference
11464 (url "https://github.com/gongo/json-reformat")
11465 (commit version)))
11466 (file-name (git-file-name name version))
11467 (sha256
11468 (base32 "0qp4n2k6s69jj4gwwimkpadjv245y54wk3bxb1x96f034gkp81vs"))
11469 (patches (search-patches "emacs-json-reformat-fix-tests.patch"))))
11470 (build-system emacs-build-system)
11471 (propagated-inputs
11472 `(("emacs-undercover" ,emacs-undercover)))
11473 (native-inputs
11474 `(("emacs-dash" ,emacs-dash)
11475 ("emacs-shut-up" ,emacs-shut-up)
11476 ("ert-runner" ,emacs-ert-runner)))
11477 (arguments
11478 `(#:tests? #t
11479 #:test-command '("ert-runner")
11480 #:phases
11481 (modify-phases %standard-phases
11482 (add-before 'check 'make-tests-writable
11483 (lambda _
11484 (for-each make-file-writable (find-files "test"))
11485 #t))
11486 (add-before 'check 'delete-json-objects-order-test
11487 (lambda _
11488 (emacs-batch-edit-file "test/json-reformat-test.el"
11489 `(progn (progn (goto-char (point-min))
11490 (re-search-forward
11491 "ert-deftest json-reformat-test:json-reformat-region")
11492 (beginning-of-line)
11493 (kill-sexp))
11494 (basic-save-buffer)))
11495 #t)))))
11496 (home-page "https://github.com/gongo/json-reformat")
11497 (synopsis "Reformatting tool for JSON")
11498 (description "@code{json-reformat} provides a reformatting tool for
11499 @url{http://json.org/, JSON}.")
11500 (license license:gpl3+)))
11501
11502 (define-public emacs-json-snatcher
11503 (package
11504 (name "emacs-json-snatcher")
11505 (version "1.0.0")
11506 (source
11507 (origin
11508 (method git-fetch)
11509 (uri (git-reference
11510 (url "https://github.com/Sterlingg/json-snatcher")
11511 (commit version)))
11512 (file-name (git-file-name name version))
11513 (sha256
11514 (base32 "05zsgnk7grgw9jzwl80h5sxfpifxlr37b4mkbvx7mjq4z14xc2jw"))))
11515 (build-system emacs-build-system)
11516 (home-page "https://github.com/sterlingg/json-snatcher")
11517 (synopsis "Grabs the path to JSON values in a JSON file")
11518 (description "@code{emacs-json-snatcher} grabs the path to JSON values in
11519 a @url{http://json.org/, JSON} file.")
11520 (license license:gpl3+)))
11521
11522 (define-public emacs-json-mode
11523 (package
11524 (name "emacs-json-mode")
11525 (version "1.7.0")
11526 (source
11527 (origin
11528 (method git-fetch)
11529 (uri (git-reference
11530 (url "https://github.com/joshwnj/json-mode")
11531 (commit (string-append "v" version))))
11532 (file-name (git-file-name name version))
11533 (sha256
11534 (base32 "0i79lqzdg59vkqwjd3q092xxn9vhxspb1vn4pkis0vfvn46g01jy"))))
11535 (build-system emacs-build-system)
11536 (propagated-inputs
11537 `(("emacs-json-reformat" ,emacs-json-reformat)
11538 ("emacs-json-snatcher" ,emacs-json-snatcher)))
11539 (home-page "https://github.com/joshwnj/json-mode")
11540 (synopsis "Major mode for editing JSON files")
11541 (description "@code{json-mode} extends the builtin js-mode syntax
11542 highlighting.")
11543 (license license:gpl3+)))
11544
11545 (define-public emacs-jsonrpc
11546 (package
11547 (name "emacs-jsonrpc")
11548 (version "1.0.12")
11549 (source
11550 (origin
11551 (method url-fetch)
11552 (uri (string-append "https://elpa.gnu.org/packages/"
11553 "jsonrpc-" version ".el"))
11554 (sha256
11555 (base32 "0cqp05awikbrn88ifld3vwnv6cxgmr83wlnsvxw8bqb96djz70ad"))))
11556 (build-system emacs-build-system)
11557 (home-page "http://elpa.gnu.org/packages/jsonrpc.html")
11558 (synopsis "JSON-RPC library")
11559 (description
11560 "This library implements the JSONRPC 2.0 specification as
11561 described in @url{http://www.jsonrpc.org/}. As the name suggests,
11562 JSONRPC is a generic Remote Procedure Call protocol designed around
11563 JSON objects.")
11564 (license license:gpl3+)))
11565
11566 (define-public emacs-restclient
11567 (let ((commit "422ee8d8b077dffe65706a0f027ed700b84746bc")
11568 (version "0")
11569 (revision "2")) ;Guix package revision,
11570 ;upstream doesn't have official releases
11571 (package
11572 (name "emacs-restclient")
11573 (version (git-version version revision commit))
11574 (source (origin
11575 (method git-fetch)
11576 (uri (git-reference
11577 (url "https://github.com/pashky/restclient.el")
11578 (commit commit)))
11579 (sha256
11580 (base32
11581 "067nin7vxkdpffxa0q61ybv7szihhvpdinivmci9qkbb86rs9kkz"))
11582 (file-name (git-file-name name version))))
11583 (build-system emacs-build-system)
11584 (propagated-inputs
11585 `(("emacs-helm" ,emacs-helm)))
11586 (home-page "https://github.com/pashky/restclient.el")
11587 (synopsis "Explore and test HTTP REST webservices")
11588 (description
11589 "This tool allows for testing and exploration of HTTP REST Web services
11590 from within Emacs. Restclient runs queries from a plan-text query sheet,
11591 displays results pretty-printed in XML or JSON with @code{restclient-mode}")
11592 (license license:public-domain))))
11593
11594 (define-public emacs-whitespace-cleanup-mode
11595 (let ((commit "72427144b054b0238a86e1348c45d986b8830d9d")
11596 (revision "1"))
11597 (package
11598 (name "emacs-whitespace-cleanup-mode")
11599 (version (git-version "0.10" revision commit))
11600 (source (origin
11601 (method git-fetch)
11602 (uri (git-reference
11603 (url "https://github.com/purcell/whitespace-cleanup-mode")
11604 (commit commit)))
11605 (sha256
11606 (base32
11607 "1zlk534jbwrsabcg3kqlzk4h4hwya60lh6q2n1v4yn4rpf5ghsag"))
11608 (file-name (git-file-name name version))))
11609 (build-system emacs-build-system)
11610 (home-page "https://github.com/purcell/whitespace-cleanup-mode")
11611 (synopsis "Intelligently call @code{whitespace-cleanup} on save")
11612 (description
11613 "This package provides a minor mode that calls
11614 @code{whitespace-cleanup} before saving the current buffer only if the
11615 whitespace in the buffer was initially clean.")
11616 (license license:gpl3+))))
11617
11618 (define-public emacs-eimp
11619 (let ((version "1.4.0")
11620 (commit "2e7536fe6d8f7faf1bad7a8ae37faba0162c3b4f")
11621 (revision "1"))
11622 (package
11623 (name "emacs-eimp")
11624 (version (git-version version revision commit))
11625 (source
11626 (origin
11627 (method git-fetch)
11628 (uri (git-reference
11629 (url "https://github.com/nicferrier/eimp")
11630 (commit commit)))
11631 (file-name (git-file-name name version))
11632 (sha256
11633 (base32
11634 "154d57yafxbcf39r89n5j43c86rp2fki3lw3gwy7ww2g6qkclcra"))))
11635 (build-system emacs-build-system)
11636 (arguments
11637 `(#:phases
11638 (modify-phases %standard-phases
11639 (add-after 'unpack 'configure
11640 (lambda* (#:key inputs #:allow-other-keys)
11641 (let ((imagemagick (assoc-ref inputs "imagemagick")))
11642 ;; eimp.el is read-only in git.
11643 (chmod "eimp.el" #o644)
11644 (emacs-substitute-variables "eimp.el"
11645 ("eimp-mogrify-program"
11646 (string-append imagemagick "/bin/mogrify"))))
11647 #t)))))
11648 (inputs
11649 `(("imagemagick" ,imagemagick)))
11650 (home-page "https://github.com/nicferrier/eimp")
11651 (synopsis "Interactive image manipulation utility for Emacs")
11652 (description "@code{emacs-eimp} allows interactive image manipulation
11653 from within Emacs. It uses the code@{mogrify} utility from ImageMagick to do
11654 the actual transformations.")
11655 (license license:gpl2+))))
11656
11657 (define-public emacs-dired-hacks
11658 (let ((commit "886befe113fae397407c804f72c45613d1d43535")
11659 (revision "2"))
11660 (package
11661 (name "emacs-dired-hacks")
11662 (version (git-version "0.0.1" revision commit))
11663 (source (origin
11664 (method git-fetch)
11665 (uri (git-reference
11666 (url "https://github.com/Fuco1/dired-hacks")
11667 (commit commit)))
11668 (file-name (git-file-name name version))
11669 (sha256
11670 (base32
11671 "1cvibg90ggyrivpjmcfprpi2fx7dpa68f8kzg08s88gw5ib75djl"))))
11672 (build-system emacs-build-system)
11673 (propagated-inputs
11674 `(("emacs-dash" ,emacs-dash)
11675 ("emacs-eimp" ,emacs-eimp)
11676 ("emacs-f" ,emacs-f)
11677 ("emacs-s" ,emacs-s)))
11678 (home-page "https://github.com/Fuco1/dired-hacks")
11679 (synopsis
11680 "Collection of useful dired additions")
11681 (description
11682 "This package provides the following collection of Emacs dired mode
11683 additions:
11684
11685 @itemize
11686 @item dired-avfs
11687 @item dired-columns
11688 @item dired-filter
11689 @item dired-hacks-utils
11690 @item dired-images
11691 @item dired-list
11692 @item dired-narrow
11693 @item dired-open
11694 @item dired-rainbow
11695 @item dired-ranger
11696 @item dired-subtree
11697 @item dired-tagsistant
11698 @end itemize\n")
11699 (license license:gpl3+))))
11700
11701 (define-public emacs-dired-sidebar
11702 (let ((commit "21ccb6723bea69f2e2ca25998268d8a039f904cc")
11703 (revision "1"))
11704 (package
11705 (name "emacs-dired-sidebar")
11706 (home-page "https://github.com/jojojames/dired-sidebar")
11707 (version (git-version "0.1.0" revision commit))
11708 (source (origin
11709 (method git-fetch)
11710 (uri (git-reference (url home-page) (commit commit)))
11711 (file-name (git-file-name name version))
11712 (sha256
11713 (base32
11714 "0mck4qk6srbbf8xnn2sg11j822z4ybxvgavvy402d5sli515i8ca"))))
11715 (build-system emacs-build-system)
11716 (propagated-inputs
11717 `(("emacs-dired-subtree" ,emacs-dired-hacks)))
11718 (synopsis "Sidebar for Emacs using Dired")
11719 (description
11720 "This package provides a sidebar for Emacs similar to @code{NeoTree}
11721 or @code{treemacs}, but leveraging @code{Dired} to do the job of display.")
11722 (license license:gpl3+))))
11723
11724 (define-public emacs-which-key
11725 (package
11726 (name "emacs-which-key")
11727 (version "3.4.0")
11728 (source
11729 (origin
11730 (method git-fetch)
11731 (uri (git-reference
11732 (url "https://github.com/justbur/emacs-which-key")
11733 (commit (string-append "v" version))))
11734 (file-name (git-file-name name version))
11735 (sha256
11736 (base32 "1ahgb7dqdc75farkl0fg0a6hvx2067gdvjq99cd3z2dz56km0p05"))))
11737 (build-system emacs-build-system)
11738 (arguments
11739 `(#:tests? #t
11740 #:test-command '("emacs" "--batch"
11741 "-l" "which-key-tests.el"
11742 "-f" "ert-run-tests-batch-and-exit")))
11743 (home-page "https://github.com/justbur/emacs-which-key")
11744 (synopsis "Display available key bindings in popup")
11745 (description
11746 "@code{emacs-which-key} is a minor mode for Emacs that displays the key
11747 bindings following your currently entered incomplete command (a prefix) in a
11748 popup. For example, after enabling the minor mode if you enter C-x and wait
11749 for the default of 1 second, the minibuffer will expand with all of the
11750 available key bindings that follow C-x (or as many as space allows given your
11751 settings).")
11752 (license license:gpl3+)))
11753
11754 (define-public emacs-hercules
11755 (package
11756 (name "emacs-hercules")
11757 (version "0.2.1")
11758 (source
11759 (origin
11760 (method git-fetch)
11761 (uri (git-reference
11762 (url "https://gitlab.com/jjzmajic/hercules.el.git")
11763 (commit (string-append "v" version))))
11764 (file-name (git-file-name name version))
11765 (sha256
11766 (base32
11767 "19939pf5d6p2facmfhpyghx0vipb5k6ry3bmkmjfkj1zp132zfqf"))))
11768 (build-system emacs-build-system)
11769 (propagated-inputs
11770 `(("emacs-which-key" ,emacs-which-key)))
11771 (home-page "https://gitlab.com/jjzmajic/hercules.el")
11772 (synopsis "Call a chain of related commands without repeated prefix keys")
11773 (description
11774 "This package provides sticky-key-like functionality to obviate the
11775 need for repeated prefix-key sequences, and can reuse existing keymaps. The
11776 list of commands is displayed in a handy popup.")
11777 (license license:gpl3+)))
11778
11779 (define-public emacs-ws-butler
11780 (package
11781 (name "emacs-ws-butler")
11782 (version "0.6")
11783 (source (origin
11784 (method git-fetch)
11785 (uri (git-reference
11786 (url "https://github.com/lewang/ws-butler")
11787 (commit "323b651dd70ee40a25accc940b8f80c3a3185205")))
11788 (file-name (git-file-name name version))
11789 (sha256
11790 (base32
11791 "1a4b0lsmwq84qfx51c5xy4fryhb1ysld4fhgw2vr37izf53379sb"))))
11792 (build-system emacs-build-system)
11793 (native-inputs
11794 `(("ert-runner" ,emacs-ert-runner)))
11795 (arguments
11796 `(#:tests? #t
11797 #:test-command '("ert-runner" "tests")))
11798 (home-page "https://github.com/lewang/ws-butler")
11799 (synopsis "Trim spaces from end of lines")
11800 (description
11801 "This Emacs package automatically and unobtrusively trims whitespace
11802 characters from end of lines.")
11803 (license license:gpl3+)))
11804
11805 (define-public emacs-openwith
11806 (let ((changeset "aeb78782ec87680ea9f082a3f20a3675b3770cf9")
11807 (revision "0"))
11808 (package
11809 (name "emacs-openwith")
11810 (home-page "https://bitbucket.org/jpkotta/openwith")
11811 (version (git-version "0.0.1" revision changeset))
11812 (source (origin
11813 (method hg-fetch)
11814 (uri (hg-reference (url home-page) (changeset changeset)))
11815 (file-name (git-file-name name version))
11816 (sha256
11817 (base32
11818 "1wl6gnxsyhaad4cl9bxjc0qbc5jzvlwbwjbajs0n1s6qr07d6r01"))))
11819 (build-system emacs-build-system)
11820 (synopsis "Open external applications for files with Emacs")
11821 (description
11822 "This package enables you to associate file name patterns with external
11823 applications that are automatically invoked when you use commands like
11824 @code{find-file}. For example, you can have it open @code{png} files with
11825 @code{feh} and @code{mp4} files with @code{mpv}. This is especially useful
11826 when browsing files with Dired.")
11827 (license license:gpl2+))))
11828
11829 (define-public emacs-org-edit-latex
11830 (package
11831 (name "emacs-org-edit-latex")
11832 (version "0.8.0")
11833 (source
11834 (origin
11835 (method git-fetch)
11836 (uri (git-reference
11837 (url "https://github.com/et2010/org-edit-latex")
11838 (commit (string-append "v" version))))
11839 (file-name (git-file-name name version))
11840 (sha256
11841 (base32 "0zcllyhx9n9vcr5w87h0hfz25v52lvh5fi717cb7mf3jh89zh842"))))
11842 (build-system emacs-build-system)
11843 (propagated-inputs
11844 `(("emacs-auctex" ,emacs-auctex)
11845 ;; The version of org in Emacs 25.2 is not sufficient, because the
11846 ;; `org-latex-make-preamble' function is required.
11847 ("emacs-org" ,emacs-org)))
11848 (home-page "https://github.com/et2010/org-edit-latex")
11849 (synopsis "Edit a latex fragment just like editing a src block")
11850 (description "@code{emacs-org-edit-latex} is an extension for org-mode.
11851 It lets you edit a latex fragment in a dedicated buffer just like editing a
11852 src block.")
11853 (license license:gpl3+)))
11854
11855 (define-public emacs-emamux
11856 (package
11857 (name "emacs-emamux")
11858 (version "0.14")
11859 (source
11860 (origin
11861 (method git-fetch)
11862 (uri (git-reference
11863 (url "https://github.com/syohex/emacs-emamux")
11864 (commit version)))
11865 (file-name (git-file-name name version))
11866 (sha256
11867 (base32 "19y69qw79miim9cz5ji54gwspjkcp9g2c1xr5s7jj2fiabnxax6b"))))
11868 (build-system emacs-build-system)
11869 (home-page "https://github.com/syohex/emacs-emamux")
11870 (synopsis "Manipulate Tmux from Emacs")
11871 (description
11872 "@code{emacs-emamux} lets Emacs interact with the @code{tmux} terminal
11873 multiplexer.")
11874 (license license:gpl3+)))
11875
11876 (define-public emacs-rpm-spec-mode
11877 (package
11878 (name "emacs-rpm-spec-mode")
11879 (version "0.16")
11880 (source
11881 (origin
11882 (method url-fetch)
11883 ;; URI has the Fedora release number instead of the version
11884 ;; number. This will have to updated manually every new release.
11885 (uri (string-append
11886 "https://src.fedoraproject.org/cgit/rpms"
11887 "/emacs-rpm-spec-mode.git/snapshot"
11888 "/emacs-rpm-spec-mode-f26.tar.gz"))
11889 (sha256
11890 (base32
11891 "17dz80lhjrc89fj17pysl8slahzrqdkxgcjdk55zls6jizkr6kz3"))))
11892 (build-system emacs-build-system)
11893 (home-page "http://pkgs.fedoraproject.org/cgit/rpms/emacs-rpm-spec-mode.git")
11894 (synopsis "Emacs major mode for editing RPM spec files")
11895 (description "@code{emacs-rpm-spec-mode} provides an Emacs major mode for
11896 editing RPM spec files.")
11897 (license license:gpl2+)))
11898
11899 (define-public emacs-lcr
11900 (package
11901 (name "emacs-lcr")
11902 (version "1.1")
11903 (source
11904 (origin
11905 (method git-fetch)
11906 (uri (git-reference
11907 (url "https://github.com/jyp/lcr")
11908 (commit version)))
11909 (file-name (git-file-name name version))
11910 (sha256
11911 (base32 "0mc55icihxqpf8b05990q1lc2nj2792wcgyr73xsiqx0963sjaj8"))))
11912 (build-system emacs-build-system)
11913 (propagated-inputs
11914 `(("emacs-dash" ,emacs-dash)))
11915 (home-page "https://github.com/jyp/lcr")
11916 (synopsis "Lightweight coroutines in Emacs Lisp")
11917 (description "This package provides macros that can translate code into
11918 equivalent continuation-passing code, as well as miscellaneous utility
11919 functions written in continuation-passing style.")
11920 (license license:gpl3+)))
11921
11922 (define-public emacs-attrap
11923 (let ((commit "18cd1f7832870a36c404e872fa83a271fe8e688d")
11924 (revision "2"))
11925 (package
11926 (name "emacs-attrap")
11927 (version (git-version "1.0" revision commit))
11928 (source (origin
11929 (method git-fetch)
11930 (uri (git-reference
11931 (url "https://github.com/jyp/attrap")
11932 (commit commit)))
11933 (sha256
11934 (base32
11935 "078391949h0fgmshin8f79a1a595m06ig577rkgjqgngcp0d61l9"))
11936 (file-name (git-file-name name version))))
11937 (build-system emacs-build-system)
11938 (propagated-inputs
11939 `(("emacs-dash" ,emacs-dash)
11940 ("emacs-f" ,emacs-f)
11941 ("emacs-flycheck" ,emacs-flycheck)
11942 ("emacs-s" ,emacs-s)))
11943 (home-page "https://github.com/jyp/attrap")
11944 (synopsis "Fix coding error at point")
11945 (description "This package provides a command to fix the Flycheck error
11946 at point.")
11947 (license license:gpl3+))))
11948
11949 (define-public emacs-git-messenger
11950 (package
11951 (name "emacs-git-messenger")
11952 (version "0.18")
11953 (source
11954 (origin
11955 (method git-fetch)
11956 (uri (git-reference
11957 (url "https://github.com/syohex/emacs-git-messenger")
11958 (commit version)))
11959 (file-name (git-file-name name version))
11960 (sha256
11961 (base32 "04fnby2nblk8l70gv09asxkmnn53fh1pdfs77ix44npp99fyw8ix"))))
11962 (build-system emacs-build-system)
11963 (propagated-inputs
11964 `(("emacs-popup" ,emacs-popup)))
11965 (arguments
11966 `(#:tests? #t
11967 #:test-command '("emacs" "--batch" "-l" "test/test.el"
11968 "-f" "ert-run-tests-batch-and-exit")))
11969 (home-page "https://github.com/syohex/emacs-git-messenger")
11970 (synopsis "Popup commit message at current line")
11971 (description "@code{emacs-git-messenger} provides
11972 @code{git-messenger:popup-message}, a function that when called, will popup
11973 the last git commit message for the current line. This uses git-blame
11974 internally.")
11975 (license license:gpl3+)))
11976
11977 (define-public emacs-gitpatch
11978 (package
11979 (name "emacs-gitpatch")
11980 (version "0.5.1")
11981 (source
11982 (origin
11983 (method git-fetch)
11984 (uri (git-reference
11985 (url "https://github.com/tumashu/gitpatch")
11986 (commit (string-append "v" version))))
11987 (file-name (git-file-name name version))
11988 (sha256
11989 (base32 "1drf4fvmak7brf16axkh4nfz8pg44i7pjhfjz3dbkycbpp8y5vig"))))
11990 (build-system emacs-build-system)
11991 (home-page "https://github.com/tumashu/gitpatch")
11992 (synopsis "Mail git patch from Emacs")
11993 (description "@code{emacs-gitpatch} lets users easily send git patches,
11994 created by @code{git format-patch}, from @code{magit}, @code{dired} and
11995 @code{ibuffer} buffers.")
11996 (license license:gpl3+)))
11997
11998 (define-public emacs-erc-hl-nicks
11999 (package
12000 (name "emacs-erc-hl-nicks")
12001 (version "1.3.4")
12002 (source
12003 (origin
12004 (method git-fetch)
12005 (uri (git-reference
12006 (url "https://github.com/leathekd/erc-hl-nicks")
12007 (commit version)))
12008 (file-name (git-file-name name version))
12009 (sha256
12010 (base32 "0k57scxa8rm859fqsm8srhps7rlq06jzazhjbwnadzrh8i5fyvra"))))
12011 (build-system emacs-build-system)
12012 (synopsis "Nickname highlighting for Emacs ERC")
12013 (description "@code{erc-hl-nicks} highlights nicknames in ERC, an IRC
12014 client for Emacs. The main features are:
12015 @itemize
12016 @item Auto-colorizes nicknames without having to specify colors
12017 @item Ignores certain characters that IRC clients add to nicknames to avoid
12018 duplicates (nickname, nickname’, nickname\", etc.)
12019 @item Attempts to produce colors with a sufficient amount of contrast between
12020 the nick color and the background color
12021 @end itemize\n")
12022 (home-page "https://github.com/leathekd/erc-hl-nicks")
12023 (license license:gpl3+)))
12024
12025 (define-public emacs-engine-mode
12026 (package
12027 (name "emacs-engine-mode")
12028 (version "2.1.1")
12029 (source
12030 (origin
12031 (method git-fetch)
12032 (uri (git-reference
12033 (url "https://github.com/hrs/engine-mode")
12034 (commit (string-append "v" version))))
12035 (file-name (git-file-name name version))
12036 (sha256
12037 (base32 "1xka8i4cdvp5r2v2mkli1zz17x1sdsnmszbhqav2rf94v656d91i"))))
12038 (build-system emacs-build-system)
12039 (synopsis "Minor mode for defining and querying search engines")
12040 (description "@code{engine-mode} is a global minor mode for Emacs. It
12041 enables you to easily define search engines, bind them to keybindings, and
12042 query them from the comfort of your editor.")
12043 (home-page "https://github.com/hrs/engine-mode")
12044 (license license:gpl3+)))
12045
12046 (define-public emacs-prop-menu
12047 (package
12048 (name "emacs-prop-menu")
12049 (version "0.1.2")
12050 (source
12051 (origin
12052 (method git-fetch)
12053 (uri (git-reference
12054 (url "https://github.com/david-christiansen/prop-menu-el")
12055 (commit version)))
12056 (file-name (git-file-name name version))
12057 (sha256
12058 (base32
12059 "18ap2liz5r5a8ja2zz9182fnfm47jnsbyblpq859zks356k37iwc"))))
12060 (build-system emacs-build-system)
12061 (home-page
12062 "https://github.com/david-christiansen/prop-menu-el")
12063 (synopsis
12064 "Create and display a context menu based on text and overlay properties")
12065 (description
12066 "This is a library for computing context menus based on text
12067 properties and overlays. The intended use is to have tools that
12068 annotate source code and others that use these annotations, without
12069 requiring a direct coupling between them, but maintaining
12070 discoverability.
12071
12072 Major modes that wish to use this library should first define an
12073 appropriate value for @code{prop-menu-item-functions}. Then, they should
12074 bind @code{prop-menu-by-completing-read} to an appropriate
12075 key. Optionally, a mouse pop-up can be added by binding
12076 @code{prop-menu-show-menu} to a mouse event.")
12077 (license license:gpl3+)))
12078
12079 (define-public emacs-idris-mode
12080 (let ((commit "b77eadd8ac2048d5c882b4464bd9673e45dd6a59")
12081 (revision "0"))
12082 (package
12083 (name "emacs-idris-mode")
12084 (version (git-version "1.0" revision commit))
12085 (source
12086 (origin
12087 (method git-fetch)
12088 (uri (git-reference
12089 (url "https://github.com/idris-hackers/idris-mode")
12090 (commit commit)))
12091 (file-name (git-file-name name commit))
12092 (sha256
12093 (base32
12094 "1v8av6jza1j00ln75zjwaca0vmmv0fhhhi94p84rlfzgzykyb9g1"))))
12095 (build-system emacs-build-system)
12096 (propagated-inputs
12097 `(("emacs-prop-menu" ,emacs-prop-menu)))
12098 (home-page
12099 "https://github.com/idris-hackers/idris-mode")
12100 (synopsis "Major mode for editing Idris code")
12101 (description
12102 "This is an Emacs mode for editing Idris code. It is compatible with
12103 the latest versions of Idris 1.")
12104 (license license:gpl3+))))
12105
12106 (define-public emacs-browse-at-remote
12107 (package
12108 (name "emacs-browse-at-remote")
12109 (version "0.10.0")
12110 (source
12111 (origin
12112 (method git-fetch)
12113 (uri (git-reference
12114 (url "https://github.com/rmuslimov/browse-at-remote")
12115 (commit version)))
12116 (file-name (git-file-name name version))
12117 (sha256
12118 (base32 "0vhia7xmszcb3lxrb8wh93a3knjfzj48h8nhj4fh8zj1pjz6args"))))
12119 (build-system emacs-build-system)
12120 (propagated-inputs
12121 `(("emacs-f" ,emacs-f)
12122 ("emacs-s" ,emacs-s)))
12123 (native-inputs
12124 `(("ert-runner" ,emacs-ert-runner)))
12125 (arguments
12126 `(#:tests? #t
12127 #:test-command '("ert-runner")))
12128 (home-page "https://github.com/rmuslimov/browse-at-remote")
12129 (synopsis "Open github/gitlab/bitbucket/stash page from Emacs")
12130 (description
12131 "This Emacs package allows you to open a target page on
12132 github/gitlab (or bitbucket) by calling @code{browse-at-remote} command.
12133 It supports dired buffers and opens them in tree mode at destination.")
12134 (license license:gpl3+)))
12135
12136 (define-public emacs-tiny
12137 (let ((commit "fd8a6b0b0c564d8242259e20e557ee6041f40908")
12138 (revision "1"))
12139 (package
12140 (name "emacs-tiny")
12141 (version (git-version "0.2.1" revision commit))
12142 (source
12143 (origin
12144 (method git-fetch)
12145 (uri (git-reference
12146 (url "https://github.com/abo-abo/tiny")
12147 (commit commit)))
12148 (file-name (git-file-name name version))
12149 (sha256
12150 (base32
12151 "1498j392ap2mk4zmsm2id16pfgvj78r428da9vw7hdrzzibai2cx"))))
12152 (build-system emacs-build-system)
12153 (arguments
12154 `(#:tests? #t
12155 #:test-command '("make" "test")))
12156 (home-page "https://github.com/abo-abo/tiny")
12157 (synopsis "Quickly generate linear ranges in Emacs")
12158 (description
12159 "The main command of the @code{tiny} extension for Emacs is @code{tiny-expand}.
12160 It is meant to quickly generate linear ranges, e.g. 5, 6, 7, 8. Some elisp
12161 proficiency is an advantage, since you can transform your numeric range with
12162 an elisp expression.")
12163 (license license:gpl3+))))
12164
12165 (define-public emacs-emojify
12166 (package
12167 (name "emacs-emojify")
12168 (version "1.2")
12169 (source
12170 (origin
12171 (method git-fetch)
12172 (uri (git-reference
12173 (url "https://github.com/iqbalansari/emacs-emojify")
12174 (commit (string-append "v" version))))
12175 (file-name (git-file-name name version))
12176 (sha256
12177 (base32
12178 "1fqnj5x7ivjkm5y927dqqnm85q5hzczlb0hrfpjalrhasa6ijsrm"))))
12179 (build-system emacs-build-system)
12180 (arguments
12181 `(#:include (cons "^data/" %default-include)))
12182 (propagated-inputs
12183 `(("emacs-ht" ,emacs-ht)))
12184 (home-page "https://github.com/iqbalansari/emacs-emojify")
12185 (synopsis "Display emojis in Emacs")
12186 (description "This package displays emojis in Emacs similar to how Github,
12187 Slack, and other websites do. It can display plain ASCII like @code{:)} as
12188 well as Github-style emojis like @code{:smile:}. It provides a minor mode
12189 @code{emojify-mode} to enable the display of emojis in a buffer.")
12190 (license license:gpl3+)))
12191
12192 (define-public emacs-make-it-so
12193 (let ((commit "b73dfb640588123c9eece230ad72b37604f5c126")
12194 (revision "2"))
12195 (package
12196 (name "emacs-make-it-so")
12197 (version (git-version "0.1.0" revision commit))
12198 (source
12199 (origin
12200 (method git-fetch)
12201 (uri (git-reference
12202 (url "https://github.com/abo-abo/make-it-so")
12203 (commit commit)))
12204 (file-name (git-file-name name version))
12205 (sha256
12206 (base32
12207 "0p6xhyinzzkrwzbpxqfm8hlii0ikvmmylya240bwsa77w0g1k6xq"))))
12208 (build-system emacs-build-system)
12209 (arguments
12210 `(#:include (cons "^recipes/" %default-include)))
12211 (propagated-inputs
12212 `(("emacs-ivy" ,emacs-ivy)))
12213 (home-page "https://github.com/abo-abo/make-it-so")
12214 (synopsis "Transform files with Makefile recipes")
12215 (description "This package provides an interface for selecting from
12216 different conversion recipes, often including tools like @code{ffmpeg} or
12217 @code{convert}. The conversion command need only be written once, and
12218 subsequent invocations can be readily customized. Several recipes are
12219 included by default, and more can be readily added.")
12220 (license license:gpl3+))))
12221
12222 (define-public emacs-unidecode
12223 (let ((commit "5502ada9287b4012eabb879f12f5b0a9df52c5b7")
12224 (revision "1"))
12225 (package
12226 (name "emacs-unidecode")
12227 (version (git-version "0.2" revision commit))
12228 (source
12229 (origin
12230 (method git-fetch)
12231 (uri (git-reference
12232 (url "https://github.com/sindikat/unidecode")
12233 (commit commit)))
12234 (file-name (git-file-name name version))
12235 (sha256
12236 (base32
12237 "03x3nakbhmakwm977mwrf8jifvjnfwzpjv6wrwpizbqjnkgfchmn"))))
12238 (build-system emacs-build-system)
12239 (arguments
12240 `(#:include (cons* "^tools/" "^data/" %default-include)
12241 #:tests? #t
12242 #:test-command '("emacs" "--batch"
12243 "-l" "unidecode-test.el"
12244 "-f" "ert-run-tests-batch-and-exit")
12245 #:phases
12246 (modify-phases %standard-phases
12247 (add-before 'check 'make-tests-writable
12248 (lambda _
12249 (make-file-writable "unidecode-test.el")
12250 #t))
12251 (add-before 'check 'add-require
12252 (lambda _
12253 (emacs-batch-edit-file "unidecode-test.el"
12254 `(progn (progn (goto-char (point-min))
12255 (re-search-forward
12256 "ert-deftest")
12257 (forward-line -1)
12258 (insert "(require 'unidecode)"))
12259 (basic-save-buffer)))
12260 #t)))))
12261 (home-page "https://github.com/sindikat/unidecode")
12262 (synopsis "Transliterate Unicode text to ASCII")
12263 (description "This package provides functions for converting Unicode to ASCII.")
12264 (license license:gpl2+))))
12265
12266 (define-public emacs-pubmed
12267 (package
12268 (name "emacs-pubmed")
12269 (version "0.2.1")
12270 (source
12271 (origin
12272 (method git-fetch)
12273 (uri (git-reference
12274 (url "https://gitlab.com/fvdbeek/emacs-pubmed.git")
12275 (commit (string-append "v" version))))
12276 (file-name (git-file-name name version))
12277 (sha256
12278 (base32
12279 "15bwjxc7g43m5pi8z17anaqqkvi209r7kk1chmf175477gvrv7c0"))))
12280 (build-system emacs-build-system)
12281 (propagated-inputs
12282 `(("emacs-deferred" ,emacs-deferred)
12283 ("emacs-esxml" ,emacs-esxml)
12284 ("emacs-s" ,emacs-s)
12285 ("emacs-unidecode" ,emacs-unidecode)))
12286 (home-page "https://gitlab.com/fvdbeek/emacs-pubmed")
12287 (synopsis "Interface to PubMed")
12288 (description "This package provides an Emacs interface to the PubMed
12289 database of references on life sciences.")
12290 (license license:gpl3+)))
12291
12292 (define-public emacs-websocket
12293 (package
12294 (name "emacs-websocket")
12295 (version "1.12")
12296 (source
12297 (origin
12298 (method url-fetch)
12299 (uri (string-append "https://elpa.gnu.org/packages/"
12300 "websocket-" version ".tar"))
12301 (sha256
12302 (base32 "0ap4z80c6pzpb69wrx0hsvwzignxmd2b9xy974by9gf5xm2wpa8w"))))
12303 (build-system emacs-build-system)
12304 (home-page "https://elpa.gnu.org/packages/websocket.html")
12305 (synopsis "Emacs WebSocket client and server")
12306 (description
12307 "This is an Elisp library for WebSocket clients to talk to WebSocket
12308 servers, and for WebSocket servers to accept connections from WebSocket
12309 clients. This library is designed to be used by other library writers, to
12310 write applications that use WebSockets, and is not useful by itself.")
12311 (license license:gpl3+)))
12312
12313 (define-public emacs-oauth2
12314 (package
12315 (name "emacs-oauth2")
12316 (version "0.13")
12317 (source
12318 (origin
12319 (method url-fetch)
12320 (uri (string-append "https://elpa.gnu.org/packages/"
12321 "oauth2-" version ".el"))
12322 (sha256
12323 (base32 "0y5nbdwxz2hfr09xgsqgyv60vgx0rsaisibcpkz00klvgg26w33r"))))
12324 (build-system emacs-build-system)
12325 (home-page "https://elpa.gnu.org/packages/oauth2.html")
12326 (synopsis "OAuth 2.0 authorization protocol implementation")
12327 (description
12328 "This package provides an Elisp implementation of the OAuth 2.0 draft.
12329 The main entry point is @code{oauth2-auth-and-store} which will return a token
12330 structure. This token structure can be then used with
12331 @code{oauth2-url-retrieve-synchronously} or @code{oauth2-url-retrieve} to
12332 retrieve any data that need OAuth authentication to be accessed. If the token
12333 needs to be refreshed, the code handles it automatically and stores the new
12334 value of the access token.")
12335 (license license:gpl3+)))
12336
12337 (define-public emacs-circe
12338 (package
12339 (name "emacs-circe")
12340 (version "2.11")
12341 (source
12342 (origin
12343 (method git-fetch)
12344 (uri (git-reference
12345 (url "https://github.com/jorgenschaefer/circe")
12346 (commit (string-append "v" version))))
12347 (file-name (git-file-name name version))
12348 (sha256
12349 (base32 "0cr9flk310yn2jgvj4hbqw9nj5wlfi0fazdkqafzidgz6iq150wd"))))
12350 (build-system emacs-build-system)
12351 (arguments
12352 `(#:tests? #t
12353 #:test-command '("buttercup" "-L" ".")
12354 #:phases
12355 (modify-phases %standard-phases
12356 ;; The HOME environment variable should be set to an existing
12357 ;; directory for the tests to succeed.
12358 (add-before 'check 'set-home
12359 (lambda _
12360 (setenv "HOME" "/tmp")
12361 #t)))))
12362 (native-inputs
12363 `(("emacs-buttercup" ,emacs-buttercup)))
12364 ;; In order to securely connect to an IRC server using TLS, Circe requires
12365 ;; the GnuTLS binary.
12366 (propagated-inputs
12367 `(("gnutls" ,gnutls)))
12368 (home-page "https://github.com/jorgenschaefer/circe")
12369 (synopsis "Client for IRC in Emacs")
12370 (description "Circe is a Client for IRC in Emacs. It integrates well with
12371 the rest of the editor, using standard Emacs key bindings and indicating
12372 activity in channels in the status bar so it stays out of your way unless you
12373 want to use it.")
12374 (license license:gpl3+)))
12375
12376 (define-public emacs-tracking
12377 (package
12378 (inherit emacs-circe)
12379 (name "emacs-tracking")
12380 (arguments
12381 ;; "tracking.el" is a library extracted from Circe package. It requires
12382 ;; "shorten.el".
12383 `(#:include '("^shorten.el$" "^tracking.el$")
12384 ,@(package-arguments emacs-circe)))
12385 (home-page "https://github.com/jorgenschaefer/circe/wiki/Tracking")
12386 (synopsis "Buffer tracking library")
12387 (description "@code{tracking.el} provides a way for different modes to
12388 notify the user that a buffer needs attention. The user then can cycle
12389 through them using @key{C-c C-SPC}.")
12390 (license license:gpl3+)))
12391
12392 (define-public emacs-slack
12393 (let ((commit "a6d9f49bc6161f12c594d25254e77eedf4a67666")
12394 (revision "8"))
12395 (package
12396 (name "emacs-slack")
12397 (version (git-version "0.0.2" revision commit))
12398 (source (origin
12399 (method git-fetch)
12400 (uri (git-reference
12401 (url "https://github.com/yuya373/emacs-slack")
12402 (commit commit)))
12403 (file-name (git-file-name name commit))
12404 (sha256
12405 (base32
12406 "0crjjankqi4bqjk5pdz4r2ixf56n1nnq8ab1gz3sbl3v6as6262w"))))
12407 (build-system emacs-build-system)
12408 (arguments
12409 `(#:phases
12410 (modify-phases %standard-phases
12411 ;; HOME needs to exist for source compilation.
12412 (add-before 'build 'set-HOME
12413 (lambda _ (setenv "HOME" "/tmp") #t)))))
12414 (propagated-inputs
12415 `(("emacs-alert" ,emacs-alert)
12416 ("emacs-emojify" ,emacs-emojify)
12417 ("emacs-helm" ,emacs-helm)
12418 ("emacs-request" ,emacs-request)
12419 ("emacs-websocket" ,emacs-websocket)
12420 ("emacs-oauth2" ,emacs-oauth2)
12421 ("emacs-circe" ,emacs-circe)))
12422 (home-page "https://github.com/yuya373/emacs-slack")
12423 (synopsis "Slack client for Emacs")
12424 (description "This package provides an Emacs client for the Slack
12425 messaging service.")
12426 (license license:gpl3+))))
12427
12428 (define-public emacs-bash-completion
12429 (package
12430 (name "emacs-bash-completion")
12431 (version "2.1.0")
12432 (source
12433 (origin
12434 (method git-fetch)
12435 (uri (git-reference
12436 (url "https://github.com/szermatt/emacs-bash-completion")
12437 (commit version)))
12438 (file-name (git-file-name name version))
12439 (sha256
12440 (base32 "1a1wxcqzh0javjmxwi3lng5i99xiylm8lm04kv4q1lh9bli6vmv0"))))
12441 (inputs `(("bash" ,bash)))
12442 (build-system emacs-build-system)
12443 (arguments
12444 `(#:phases
12445 (modify-phases %standard-phases
12446 (add-after 'unpack 'make-git-checkout-writable
12447 (λ _
12448 (for-each make-file-writable (find-files "."))
12449 #t))
12450 (add-before 'install 'configure
12451 (lambda* (#:key inputs #:allow-other-keys)
12452 (let ((bash (assoc-ref inputs "bash")))
12453 (emacs-substitute-variables "bash-completion.el"
12454 ("bash-completion-prog" (string-append bash "/bin/bash"))))
12455 #t)))))
12456 (home-page "https://github.com/szermatt/emacs-bash-completion")
12457 (synopsis "Bash completion for the shell buffer")
12458 (description
12459 "@code{bash-completion} defines dynamic completion hooks for shell-mode
12460 and shell-command prompts that are based on Bash completion.")
12461 (license license:gpl2+)))
12462
12463 (define-public emacs-easy-kill
12464 (package
12465 (name "emacs-easy-kill")
12466 (version "0.9.3")
12467 (source (origin
12468 (method url-fetch)
12469 (uri (string-append "https://elpa.gnu.org/packages/easy-kill-"
12470 version ".tar"))
12471 (sha256
12472 (base32
12473 "17nw0mglmg877axwg1d0gs03yc0p04lzmd3pl0nsnqbh3303fnqb"))))
12474 (build-system emacs-build-system)
12475 (home-page "https://github.com/leoliu/easy-kill")
12476 (synopsis "Kill and mark things easily in Emacs")
12477 (description
12478 "This package provides commands @code{easy-kill} and @code{easy-mark} to
12479 let users kill or mark things easily.")
12480 (license license:gpl3+)))
12481
12482 (define-public emacs-csv-mode
12483 (package
12484 (name "emacs-csv-mode")
12485 (version "1.12")
12486 (source
12487 (origin
12488 (method url-fetch)
12489 (uri (string-append "https://elpa.gnu.org/packages/"
12490 "csv-mode-" version ".tar"))
12491 (sha256
12492 (base32 "0bya12smlrzwv4cbcmch4kg1fazp4k0ndrh1z17ix9p8c14d0v1j"))))
12493 (build-system emacs-build-system)
12494 (home-page "https://elpa.gnu.org/packages/csv-mode.html")
12495 (synopsis "Major mode for editing comma/char separated values")
12496 (description
12497 "This Emacs package implements CSV mode, a major mode for editing records
12498 in a generalized CSV (character-separated values) format.")
12499 (license license:gpl3+)))
12500
12501 (define-public emacs-transmission
12502 (package
12503 (name "emacs-transmission")
12504 (version "0.12.1")
12505 (source
12506 (origin
12507 (method git-fetch)
12508 (uri (git-reference
12509 (url "https://github.com/holomorph/transmission")
12510 (commit version)))
12511 (file-name (git-file-name name version))
12512 (sha256
12513 (base32 "0kvg2gawsgy440x1fsl2c4pkxwp3zirq9rzixanklk0ryijhd3ry"))))
12514 (build-system emacs-build-system)
12515 (home-page "https://github.com/holomorph/transmission")
12516 (synopsis "Emacs interface to a Transmission session")
12517 (description "This package provides an Emacs interface to interact with a
12518 running session of the Transmission Bittorrent client.
12519
12520 Features:
12521
12522 @itemize
12523 @item List, add, start/stop, verify, remove torrents.
12524 @item Set speed limits, ratio limits, bandwidth priorities, trackers.
12525 @item Navigate to the corresponding file list, torrent info, peer info
12526 contexts.
12527 @item Toggle downloading and set priorities for individual files.
12528 @end itemize\n")
12529 (license license:gpl3+)))
12530
12531 (define-public emacs-polymode
12532 (package
12533 (name "emacs-polymode")
12534 (version "0.2")
12535 (source (origin
12536 (method git-fetch)
12537 (uri (git-reference
12538 (url "https://github.com/polymode/polymode")
12539 (commit (string-append "v" version))))
12540 (file-name (git-file-name name version))
12541 (sha256
12542 (base32
12543 "04v0gnzfsjb50bgly6kvpryx8cyzwjaq2llw4qv9ijw1l6ixmq3b"))))
12544 (build-system emacs-build-system)
12545 (home-page "https://github.com/polymode/polymode")
12546 (synopsis "Framework for multiple Emacs modes based on indirect buffers")
12547 (description
12548 "Polymode is an Emacs package that offers generic support for multiple
12549 major modes inside a single Emacs buffer. It is lightweight, object oriented
12550 and highly extensible. Creating a new polymode typically takes only a few
12551 lines of code. Polymode also provides extensible facilities for external
12552 literate programming tools for exporting, weaving and tangling.")
12553 (license license:gpl3+)))
12554
12555 (define-public emacs-polymode-ansible
12556 (let ((commit "b26094d029e25dc797b94254f797e7807a57e4c8"))
12557 (package
12558 (name "emacs-polymode-ansible")
12559 ;; No upstream version release yet.
12560 (version (git-version "0.1" "1" commit))
12561 (source
12562 (origin
12563 (method git-fetch)
12564 (uri (git-reference
12565 (url "https://gitlab.com/mavit/poly-ansible")
12566 (commit commit)))
12567 (file-name (git-file-name name version))
12568 (sha256
12569 (base32
12570 "055shddqibib3hx2ykwdz910nrqws40cd407mq946l2bf6v87gj6"))))
12571 (build-system emacs-build-system)
12572 (propagated-inputs
12573 `(("emacs-ansible-doc" ,emacs-ansible-doc)
12574 ("emacs-jinja2-mode" ,emacs-jinja2-mode)
12575 ("emacs-polymode" ,emacs-polymode)
12576 ("emacs-yaml-mode" ,emacs-yaml-mode)))
12577 (properties '((upstream-name . "poly-ansible")))
12578 (home-page "https://gitlab.com/mavit/poly-ansible/")
12579 (synopsis "Polymode for Ansible - Jinja2 in YAML")
12580 (description
12581 "Edit YAML files for Ansible containing embedded Jinja2 templating.")
12582 (license license:gpl3+))))
12583
12584 (define-public emacs-polymode-org
12585 (package
12586 (name "emacs-polymode-org")
12587 (version "0.2")
12588 (source
12589 (origin
12590 (method git-fetch)
12591 (uri (git-reference
12592 (url "https://github.com/polymode/poly-org")
12593 (commit (string-append "v" version))))
12594 (file-name (git-file-name name version))
12595 (sha256
12596 (base32
12597 "04x6apjad4kg30456z1j4ipp64yjgkcaim6hqr6bb0rmrianqhck"))))
12598 (build-system emacs-build-system)
12599 (propagated-inputs
12600 `(("emacs-polymode" ,emacs-polymode)))
12601 (properties '((upstream-name . "poly-org")))
12602 (home-page "https://github.com/polymode/poly-org")
12603 (synopsis "Polymode definitions for Org mode buffers")
12604 (description
12605 "Provides definitions for @code{emacs-polymode} to support
12606 @code{emacs-org} buffers. Edit source blocks in an Org mode buffer using the
12607 native modes of the blocks' languages while remaining inside the primary Org
12608 buffer.")
12609 (license license:gpl3+)))
12610
12611 (define-public eless
12612 (package
12613 (name "eless")
12614 (version "0.3")
12615 (source
12616 (origin
12617 (method git-fetch)
12618 (uri (git-reference
12619 (url "https://github.com/kaushalmodi/eless")
12620 (commit (string-append "v" version))))
12621 (file-name (git-file-name name version))
12622 (sha256
12623 (base32 "0jr7vhh4vw69llhi0fh9ljscljkszkj0acdxl04da5hvqv6pnqbb"))))
12624 (build-system trivial-build-system)
12625 (inputs
12626 `(("bash" ,bash)))
12627 (arguments
12628 `(#:modules ((guix build utils))
12629 #:builder
12630 (begin
12631 (use-modules (guix build utils))
12632 (copy-recursively (assoc-ref %build-inputs "source") "source")
12633 (chdir "source")
12634 (substitute* "eless" (("/usr/bin/env bash")
12635 (string-append (assoc-ref %build-inputs "bash")
12636 "/bin/bash")))
12637 (install-file "eless" (string-append %output "/bin"))
12638 (install-file "doc/eless.info" (string-append %output "/share/info"))
12639 #t)))
12640 (home-page "https://github.com/kaushalmodi/eless")
12641 (synopsis "Use Emacs as a paginator")
12642 (description "@code{eless} provides a combination of Bash script
12643 and a minimal Emacs view-mode.
12644
12645 Feautures:
12646
12647 @itemize
12648 @item Independent of a user’s Emacs config.
12649 @item Customizable via the @code{(locate-user-emacs-file \"elesscfg\")} config.
12650 @item Not require an Emacs server to be already running.
12651 @item Syntax highlighting.
12652 @item Org-mode file rendering.
12653 @item @code{man} page viewer.
12654 @item Info viewer.
12655 @item Dired, wdired, (batch edit symbolic links).
12656 @item Colored diffs, git diff, git log, ls with auto ANSI detection.
12657 @item Filter log files lines matching a regexp.
12658 @item Auto-revert log files similar to @code{tail -f}.
12659 @item Quickly change frame and font sizes.
12660 @end itemize\n")
12661 (license license:expat)))
12662
12663 (define-public emacs-evil-matchit
12664 (package
12665 (name "emacs-evil-matchit")
12666 (version "2.3.4")
12667 (source
12668 (origin
12669 (method git-fetch)
12670 (uri (git-reference
12671 (url "https://github.com/redguardtoo/evil-matchit")
12672 (commit version)))
12673 (file-name (git-file-name name version))
12674 (sha256
12675 (base32 "1nflkmx08n3ya5vaipy1xg19hnqcp6f7ddsx9xjh5gl6ix2iz0az"))))
12676 (build-system emacs-build-system)
12677 (propagated-inputs
12678 `(("emacs-evil" ,emacs-evil)))
12679 (home-page "https://github.com/redguardtoo/evil-matchit")
12680 (synopsis "Vim matchit ported into Emacs")
12681 (description
12682 "@code{evil-matchit} is a minor mode for jumping between matching tags in
12683 evil mode using @kbd{%}. It is a port of @code{matchit} for Vim.")
12684 (license license:gpl3+)))
12685
12686 (define-public emacs-evil-smartparens
12687 (package
12688 (name "emacs-evil-smartparens")
12689 (version "0.4.0")
12690 (source
12691 (origin
12692 (method git-fetch)
12693 (uri (git-reference
12694 (url "https://github.com/expez/evil-smartparens")
12695 (commit version)))
12696 (file-name (git-file-name name version))
12697 (sha256
12698 (base32 "1di4qz5fbrlwbg16c2j0m7y8zqfxw027qd7zqmc3rwk9znbhg7wl"))))
12699 (build-system emacs-build-system)
12700 (propagated-inputs
12701 `(("emacs-evil" ,emacs-evil)
12702 ("emacs-smartparens" ,emacs-smartparens)))
12703 (home-page "https://github.com/expez/evil-smartparens")
12704 (synopsis "Emacs Evil integration for Smartparens")
12705 (description "@code{emacs-evil-smartparens} is an Emacs minor mode which
12706 makes Evil play nice with Smartparens. Evil is an Emacs minor mode that
12707 emulates Vim features and provides Vim-like key bindings.")
12708 (license license:gpl3+)))
12709
12710 (define-public emacs-evil-quickscope
12711 (package
12712 (name "emacs-evil-quickscope")
12713 (version "0.1.4")
12714 (source
12715 (origin
12716 (method git-fetch)
12717 (uri (git-reference
12718 (url "https://github.com/blorbx/evil-quickscope")
12719 (commit (string-append "v" version))))
12720 (file-name (git-file-name name version))
12721 (sha256
12722 (base32 "1ja9ggj70wf0nmma4xnc1zdzg2crq9h1cv3cj7cgwjmllflgkfq7"))))
12723 (build-system emacs-build-system)
12724 (propagated-inputs
12725 `(("emacs-evil" ,emacs-evil)))
12726 (arguments
12727 `(#:tests? #t
12728 #:test-command '("emacs" "--batch"
12729 "-l" "evil-quickscope-tests.el"
12730 "-f" "ert-run-tests-batch-and-exit")))
12731 (home-page "https://github.com/blorbx/evil-quickscope")
12732 (synopsis "Target highlighting for emacs evil-mode f,F,t and T commands")
12733 (description "@code{emacs-evil-quickscope} highlights targets for Evil
12734 mode’s f,F,t,T keys, allowing for quick navigation within a line. It is a
12735 port of quick-scope for Vim. Evil is an Emacs minor mode that emulates Vim
12736 features and provides Vim-like key bindings.")
12737 (license license:gpl3+)))
12738
12739 (define-public emacs-bongo
12740 (package
12741 (name "emacs-bongo")
12742 (version "1.1")
12743 (source
12744 (origin
12745 (method git-fetch)
12746 (uri (git-reference
12747 (url "https://github.com/dbrock/bongo")
12748 (commit version)))
12749 (file-name (git-file-name name version))
12750 (sha256
12751 (base32 "1nszph9mn98flyhn1jq3y6mdh6jymjkvj5ng36ql016dj92apvhv"))))
12752 (build-system emacs-build-system)
12753 (home-page "https://github.com/dbrock/bongo")
12754 (synopsis "Media player for Emacs")
12755 (description
12756 "This package provides a flexible media player for Emacs. @code{Bongo}
12757 supports multiple backends such as @code{vlc}, @code{mpg123},
12758 @code{ogg123}, @code{speexdec}, @code{timidity}, @code{mikmod} and
12759 @code{afplay}.")
12760 (license license:gpl2+)))
12761
12762 (define-public emacs-groovy-modes
12763 (package
12764 (name "emacs-groovy-modes")
12765 (version "2.0")
12766 (source (origin
12767 (method git-fetch)
12768 (uri (git-reference
12769 (url "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes")
12770 (commit version)))
12771 (file-name (git-file-name name version))
12772 (sha256
12773 (base32
12774 "0c1d4cbnlny8gpcd20zr1wxx6ggf28jgh7sgd5r1skpsvjpbfqx2"))))
12775 (build-system emacs-build-system)
12776 (propagated-inputs
12777 `(("emacs-s" ,emacs-s)))
12778 (home-page "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes")
12779 (synopsis "Groovy related modes for Emacs")
12780 (description
12781 "This package provides @code{groovy-mode} for syntax highlighting in
12782 Groovy source files, REPL integration with run-groovy and Grails project
12783 navigation with the grails mode.")
12784 (license license:gpl3+)))
12785
12786 (define-public emacs-org-tree-slide
12787 (let ((commit "036a36eec1cf712d3db155572aed325daa372eb5")
12788 (revision "2"))
12789 (package
12790 (name "emacs-org-tree-slide")
12791 (version (git-version "2.8.4" revision commit))
12792 (source (origin
12793 (method git-fetch)
12794 (uri (git-reference
12795 (url "https://github.com/takaxp/org-tree-slide")
12796 (commit commit)))
12797 (sha256
12798 (base32
12799 "1r8ncx25xmxicgciyv5przp68y8qgy40fm10ba55awvql4xcm0yk"))
12800 (file-name (git-file-name name version))))
12801 (build-system emacs-build-system)
12802 (home-page "https://github.com/takaxp/org-tree-slide")
12803 (synopsis "Presentation tool for org-mode")
12804 (description
12805 "Org-tree-slide provides a slideshow mode to view org-mode files. Use
12806 @code{org-tree-slide-mode} to enter the slideshow mode, and then @kbd{C->} and
12807 @kbd{C-<} to jump to the next and previous slide.")
12808 (license license:gpl3+))))
12809
12810 (define-public emacs-scratch-el
12811 (let ((commit "2cdf2b841ce7a0987093f65b0cc431947549f897")
12812 (revision "1"))
12813 (package
12814 (name "emacs-scratch-el")
12815 (version (git-version "1.2" revision commit))
12816 (source (origin
12817 (method git-fetch)
12818 (uri (git-reference
12819 (url "https://github.com/ieure/scratch-el")
12820 (commit commit)))
12821 (file-name (git-file-name name version))
12822 (sha256
12823 (base32
12824 "0wscsndynjmnliajqaz28r1ww81j8wh84zwaaswx51abhwgl0idf"))))
12825 (build-system emacs-build-system)
12826 (native-inputs
12827 `(("texinfo" ,texinfo)))
12828 (arguments
12829 '(#:phases
12830 (modify-phases %standard-phases
12831 (add-after 'install 'install-doc
12832 (lambda* (#:key outputs #:allow-other-keys)
12833 (unless (invoke "makeinfo" "scratch.texi")
12834 (error "makeinfo failed"))
12835 (install-file "scratch.info"
12836 (string-append (assoc-ref outputs "out")
12837 "/share/info"))
12838 #t)))))
12839 (home-page "https://github.com/ieure/scratch-el/")
12840 (synopsis "Create scratch buffers with the same mode as current buffer")
12841 (description "Scratch is an extension to Emacs that enables one to create
12842 scratch buffers that are in the same mode as the current buffer. This is
12843 notably useful when working on code in some language; you may grab code into a
12844 scratch buffer, and, by virtue of this extension, do so using the Emacs
12845 formatting rules for that language.")
12846 (license license:bsd-2))))
12847
12848 (define-public emacs-kv
12849 (package
12850 (name "emacs-kv")
12851 (version "0.0.19")
12852 (source
12853 (origin
12854 (method git-fetch)
12855 (uri (git-reference
12856 (url "https://github.com/nicferrier/emacs-kv")
12857 (commit "721148475bce38a70e0b678ba8aa923652e8900e")))
12858 (file-name (git-file-name name version))
12859 (sha256
12860 (base32
12861 "0r0lz2s6gvy04fwnafai668jsf4546h4k6zd6isx5wpk0n33pj5m"))))
12862 (build-system emacs-build-system)
12863 (arguments
12864 `(#:tests? #t
12865 #:test-command '("emacs" "--batch" "-l" "kv-tests.el"
12866 "-f" "ert-run-tests-batch-and-exit")))
12867 (home-page "https://github.com/nicferrier/emacs-kv")
12868 (synopsis "Key/Value data structures library for Emacs Lisp")
12869 (description "@code{emacs-kv} is a collection of tools for dealing with
12870 key/value data structures such as plists, alists and hash-tables in Emacs
12871 Lisp.")
12872 (license license:gpl3+)))
12873
12874 (define-public emacs-esxml
12875 (package
12876 (name "emacs-esxml")
12877 (version "0.3.4")
12878 (source (origin
12879 (method git-fetch)
12880 (uri (git-reference
12881 (url "https://github.com/tali713/esxml")
12882 (commit version)))
12883 (file-name (git-file-name name version))
12884 (sha256
12885 (base32
12886 "00vv8a75wdklygdyr4km9mc2ismxak69c45jmcny41xl44rp9x8m"))))
12887 (build-system emacs-build-system)
12888 (arguments
12889 `(#:phases
12890 (modify-phases %standard-phases
12891 (add-after 'unpack 'fix-sources
12892 (lambda _
12893 ;; See: https://github.com/tali713/esxml/pull/28.
12894 (substitute* "css-lite.el"
12895 ((";;; main interface")
12896 (string-append ";;; main interface\n"
12897 "(require 'cl-lib)"))
12898 (("mapcan")
12899 "cl-mapcan")
12900 (("',\\(cl-mapcan #'process-css-rule rules\\)")
12901 "(cl-mapcan #'process-css-rule ',rules)"))
12902 (substitute* "esxml-form.el"
12903 ((",esxml-form-field-defn")
12904 "#'esxml-form-field-defn"))
12905 ;; See: https://github.com/tali713/esxml/issues/25
12906 (delete-file "esxpath.el")
12907 #t)))))
12908 (propagated-inputs
12909 `(("emacs-kv" ,emacs-kv)))
12910 (home-page "https://github.com/tali713/esxml/")
12911 (synopsis "SXML for EmacsLisp")
12912 (description "This is XML/XHTML done with S-Expressions in EmacsLisp.
12913 Simply, this is the easiest way to write HTML or XML in Lisp. This library
12914 uses the native form of XML representation as used by many libraries already
12915 included within Emacs. See @code{esxml-to-xml} for a concise description of
12916 the format.")
12917 (license license:gpl3+)))
12918
12919 (define-public emacs-nov-el
12920 (package
12921 (name "emacs-nov-el")
12922 (version "0.3.1")
12923 (source
12924 (origin
12925 (method git-fetch)
12926 (uri (git-reference
12927 (url "https://depp.brause.cc/nov.el.git")
12928 (commit version)))
12929 (file-name (git-file-name name version))
12930 (sha256
12931 (base32 "13r7lvyyyv62m57m4s4xjs4qz2ckhqk6ib514px7qzc7mdzcz9i9"))))
12932 (build-system emacs-build-system)
12933 (arguments
12934 `(#:phases
12935 (modify-phases %standard-phases
12936 (add-after 'unpack 'embed-path-to-unzip
12937 (lambda _
12938 (substitute* "nov.el"
12939 (("\\(executable-find \"unzip\"\\)")
12940 (string-append "\"" (which "unzip") "\"")))
12941 #t)))))
12942 (propagated-inputs
12943 `(("emacs-dash" ,emacs-dash)
12944 ("emacs-esxml" ,emacs-esxml)))
12945 (inputs
12946 `(("unzip" ,unzip)))
12947 (home-page "https://depp.brause.cc/nov.el/")
12948 (synopsis "Major mode for reading EPUBs in Emacs")
12949 (description "@code{nov.el} provides a major mode for reading EPUB
12950 documents.
12951
12952 Features:
12953
12954 @itemize
12955 @item Basic navigation (jump to TOC, previous/next chapter)
12956 @item Remembering and restoring the last read position
12957 @item Jump to next chapter when scrolling beyond end
12958 @item Renders EPUB2 (@code{.ncx}) and EPUB3 (@code{<nav>}) TOCs
12959 @item Hyperlinks to internal and external targets
12960 @item Supports textual and image documents
12961 @item View source of document files
12962 @item Metadata display
12963 @item Image rescaling
12964 @end itemize
12965 ")
12966 (license license:gpl3+)))
12967
12968 (define-public epipe
12969 (package
12970 (name "epipe")
12971 (version "0.1.0")
12972 (source
12973 (origin
12974 (method git-fetch)
12975 (uri (git-reference
12976 (url "https://github.com/cute-jumper/epipe")
12977 (commit version)))
12978 (file-name (git-file-name name version))
12979 (sha256
12980 (base32 "0lkisi1s7sn12nx8zh58qmsxwnk1rjwryj18wcbr148xqz3swg57"))))
12981 (build-system trivial-build-system)
12982 (inputs
12983 `(("bash" ,bash)
12984 ("perl" ,perl)))
12985 (arguments
12986 `(#:modules
12987 ((guix build utils))
12988 #:builder
12989 (begin
12990 (use-modules (guix build utils))
12991 ;; Extract source.
12992 (copy-recursively (assoc-ref %build-inputs "source") "source")
12993 (chdir "source")
12994 ;; Patch shebangs.
12995 (substitute* "epipe"
12996 (("/usr/bin/env bash")
12997 (string-append (assoc-ref %build-inputs "bash") "/bin/bash")))
12998 (patch-shebang "epipe.pl"
12999 (list (string-append (assoc-ref %build-inputs "perl")
13000 "/bin")))
13001 ;; Install.
13002 (for-each (lambda (file)
13003 (install-file file (string-append %output "/bin")))
13004 '("epipe" "epipe.pl"))
13005 #t)))
13006 (home-page "https://github.com/cute-jumper/epipe")
13007 (synopsis "Pipe to the @code{emacsclient}")
13008 (description "@code{epipe} provides an utility to use your editor in
13009 the pipeline, featuring the support for running @code{emacsclient}.")
13010 (license license:gpl3+)))
13011
13012 (define-public emacs-hcl-mode
13013 (package
13014 (name "emacs-hcl-mode")
13015 (version "0.03")
13016 (source
13017 (origin
13018 (method git-fetch)
13019 (uri (git-reference
13020 (url "https://github.com/syohex/emacs-hcl-mode")
13021 (commit version)))
13022 (file-name (git-file-name name version))
13023 (sha256
13024 (base32 "0jqrgq15jz6pvx38pnwkizzfiih0d3nxqphyrc92nqpcyimg8b6g"))))
13025 (build-system emacs-build-system)
13026 (home-page "https://github.com/syohex/emacs-hcl-mode")
13027 (synopsis "Major mode for the Hashicorp Configuration Language")
13028 (description
13029 "@code{emacs-hcl-mode} provides an Emacs major mode for working with
13030 @acronym{HCL, Hashicorp Configuration Language}. It provides syntax
13031 highlighting and indentation support.")
13032 (license license:gpl3+)))
13033
13034 (define-public emacs-terraform-mode
13035 (package
13036 (name "emacs-terraform-mode")
13037 (version "0.06")
13038 (source
13039 (origin
13040 (method git-fetch)
13041 (uri (git-reference
13042 (url "https://github.com/syohex/emacs-terraform-mode")
13043 (commit version)))
13044 (file-name (git-file-name name version))
13045 (sha256
13046 (base32 "05hn8kskx9lcgn7bzgam99c629zlryir2pickwrqndacjrqpdykx"))))
13047 (build-system emacs-build-system)
13048 (propagated-inputs
13049 `(("emacs-hcl-mode" ,emacs-hcl-mode)))
13050 (home-page "https://github.com/syohex/emacs-terraform-mode")
13051 (synopsis "Major mode for Terraform")
13052 (description
13053 "@code{emacs-terraform-mode} provides a major mode for working with
13054 @uref{https://www.terraform.io/, Terraform} configuration files. Most of the
13055 functionality is inherited from @code{hcl-mode}.")
13056 (license license:gpl3+)))
13057
13058 (define-public emacs-exec-path-from-shell
13059 (package
13060 (name "emacs-exec-path-from-shell")
13061 (version "1.12")
13062 (source
13063 (origin
13064 (method git-fetch)
13065 (uri (git-reference
13066 (url "https://github.com/purcell/exec-path-from-shell")
13067 (commit version)))
13068 (file-name (git-file-name name version))
13069 (sha256
13070 (base32
13071 "1ga8bpxngd3ph2hdiik92c612ki71qxw818i6rgx6f6a5r0sbf3p"))))
13072 (build-system emacs-build-system)
13073 (home-page "https://github.com/purcell/exec-path-from-shell")
13074 (synopsis "Get environment variables such as @var{PATH} from the shell")
13075 (description
13076 "This library allows the user to set Emacs @var{exec-path} and @var{PATH}
13077 from the shell @var{PATH}, so that @code{shell-command}, @code{compile} and
13078 the like work as expected on systems on which Emacs is not guaranteed to
13079 inherit a login shell's environment variables. It also allows other
13080 environment variables to be retrieved from the shell, so that Emacs will see
13081 the same values you get in a terminal.")
13082 (license license:gpl3+)))
13083
13084 (define-public emacs-frog-menu
13085 (package
13086 (name "emacs-frog-menu")
13087 (version "0.2.11")
13088 (source
13089 (origin
13090 (method url-fetch)
13091 (uri (string-append "https://elpa.gnu.org/packages/"
13092 "frog-menu-" version ".el"))
13093 (sha256
13094 (base32 "06iw11z61fd0g4w3562k3smcmzaq3nivvvc6gzm8y8k5pcrqzdff"))))
13095 (build-system emacs-build-system)
13096 (propagated-inputs
13097 `(("emacs-avy" ,emacs-avy)
13098 ("emacs-posframe" ,emacs-posframe)))
13099 (home-page "https://github.com/clemera/frog-menu")
13100 (synopsis "Quickly pick items from ad hoc menus")
13101 (description
13102 "This package provides a popup offering a preview of a list of candidates
13103 on which user-defined dispatch actions can act.")
13104 (license license:gpl3+)))
13105
13106 (define-public emacs-frog-jump-buffer
13107 (let ((commit "2d7b342785ae27d45f5d252272df6eb773c78e20")
13108 (revision "1"))
13109 (package
13110 (name "emacs-frog-jump-buffer")
13111 (version (git-version "0.1.4" revision commit))
13112 (source
13113 (origin
13114 (method git-fetch)
13115 (uri (git-reference
13116 (url "https://github.com/waymondo/frog-jump-buffer")
13117 (commit commit)))
13118 (file-name (git-file-name name version))
13119 (sha256
13120 (base32
13121 "1z00by8hiss1r2lwmzrl8pnz6jykia2849dqqm4l3z5rf6lwvc0f"))))
13122 (build-system emacs-build-system)
13123 (propagated-inputs
13124 `(("emacs-dash" ,emacs-dash)
13125 ("emacs-frog-menu" ,emacs-frog-menu)
13126 ("emacs-avy" ,emacs-avy)))
13127 (home-page "https://github.com/waymondo/frog-jump-buffer")
13128 (synopsis "Jump to any Emacs buffer with minimal keystrokes")
13129 (description
13130 "This package provides a preview window of buffers that can be switched
13131 to with quicklink-style selections.")
13132 (license license:gpl3+))))
13133
13134 (define-public emacs-deft
13135 (package
13136 (name "emacs-deft")
13137 (version "0.8")
13138 (source
13139 (origin
13140 (method git-fetch)
13141 (uri (git-reference
13142 (url "https://github.com/jrblevin/deft")
13143 (commit (string-append "v" version))))
13144 (file-name (git-file-name name version))
13145 (sha256
13146 (base32
13147 "0z7cilgiz6krvl5h2z72hkch43qxmypb0k6p5vxn5lx1p6v0mrf2"))))
13148 (build-system emacs-build-system)
13149 (home-page "https://jblevins.org/projects/deft/")
13150 (synopsis "Quickly browse, filter, and edit plain text notes")
13151 (description
13152 "Deft is an Emacs mode for quickly browsing, filtering, and editing
13153 directories of plain text notes, inspired by Notational Velocity.")
13154 (license license:bsd-3)))
13155
13156 (define-public emacs-anzu
13157 (package
13158 (name "emacs-anzu")
13159 (version "0.62")
13160 (source
13161 (origin
13162 (method git-fetch)
13163 (uri (git-reference
13164 (url "https://github.com/syohex/emacs-anzu")
13165 (commit version)))
13166 (file-name (git-file-name name version))
13167 (sha256
13168 (base32 "1lzvc0ihcbplir4hqfyxfqpsd78arz15gk92kmq4f8ggbkl37fan"))))
13169 (build-system emacs-build-system)
13170 (home-page "https://github.com/syohex/emacs-anzu")
13171 (synopsis "Show number of matches in mode-line while searching")
13172 (description
13173 "Anzu provides a minor mode which displays \"current match/total
13174 matches\" in the mode line in various search modes. This is an Emacs port of
13175 Anzu.zim.")
13176 (license license:gpl3+)))
13177
13178 (define-public emacs-ascii-art-to-unicode
13179 (package
13180 (name "emacs-ascii-art-to-unicode")
13181 (version "1.12")
13182 (source
13183 (origin
13184 (method url-fetch)
13185 (uri (string-append "https://elpa.gnu.org/packages/ascii-art-to-unicode-"
13186 version ".el"))
13187 (sha256
13188 (base32
13189 "1w9h2lyriafxj71r79774gh822cz8mry3gdfzyj6ym6v9mvqypna"))))
13190 (build-system emacs-build-system)
13191 (home-page "https://elpa.gnu.org/packages/ascii-art-to-unicode.html")
13192 (synopsis "ASCII to Unicode art converter for Emacs")
13193 (description "This Emacs package provides the commands @command{aa2u} and
13194 @command{aa2u-rectangle}. Both of these commands can be used to convert
13195 simple ASCII art line drawings to Unicode; the former works on the active
13196 region of the buffer, while the latter works on rectangular selections.")
13197 (license license:gpl3+)))
13198
13199 (define-public emacs-emmet-mode
13200 (let ((commit "1acb821e0142136344ccf40c1e5fb664d7db2e70")
13201 (revision "1"))
13202 (package
13203 (name "emacs-emmet-mode")
13204 (version (git-version "1.0.8" revision commit))
13205 (source (origin
13206 (method git-fetch)
13207 (uri (git-reference
13208 (url "https://github.com/smihica/emmet-mode")
13209 (commit commit)))
13210 (file-name (git-file-name name version))
13211 (sha256
13212 (base32
13213 "1p25h191bm0h5b3w5apg7wks51k7pb7h4dlww4jbl9ri4d33fzcl"))))
13214 (build-system emacs-build-system)
13215 (home-page "https://github.com/smihica/emmet-mode")
13216 (synopsis "Unofficial Emmet's support for Emacs")
13217 (description
13218 "Unfold CSS-selector-like expressions to markup. It is intended to be
13219 used with SGML-like languages: XML, HTML, XHTML, XSL, etc.")
13220 (license license:gpl3+))))
13221
13222 (define-public emacs-ergoemacs-mode
13223 (let ((commit "3ce23bba3cb50562693860f87f3528c471d603ba")
13224 (revision "1"))
13225 (package
13226 (name "emacs-ergoemacs-mode")
13227 (version (git-version "5.16.10.12" revision commit))
13228 (source
13229 (origin
13230 (method git-fetch)
13231 (uri (git-reference
13232 (url "https://github.com/ergoemacs/ergoemacs-mode")
13233 (commit commit)))
13234 (file-name (git-file-name name version))
13235 (sha256
13236 (base32
13237 "1s3b9bridl78hh1mxmdk9nqlmqhibbaxk0a1cixmsf23s06w8w6l"))))
13238 (build-system emacs-build-system)
13239 (propagated-inputs
13240 `(("emacs-undo-tree" ,emacs-undo-tree)))
13241 (home-page "https://ergoemacs.github.io/")
13242 (synopsis "Emacs mode based on common modern interface and ergonomics")
13243 (description
13244 "This package provides an efficient Emacs keybinding set based on
13245 statistics of command frequency, and supports common shortcuts for open,
13246 close, copy, cut, paste, undo, redo.")
13247 (license license:gpl3+))))
13248
13249 (define-public emacs-password-store
13250 (package
13251 (name "emacs-password-store")
13252 (version "1.7.3")
13253 (source (origin
13254 (method url-fetch)
13255 (uri
13256 (string-append "https://git.zx2c4.com/password-store/snapshot/"
13257 "password-store-" version ".tar.xz"))
13258 (sha256
13259 (base32
13260 "1x53k5dn3cdmvy8m4fqdld4hji5n676ksl0ql4armkmsds26av1b"))))
13261 (build-system emacs-build-system)
13262 (arguments
13263 `(#:phases
13264 (modify-phases %standard-phases
13265 (add-after 'unpack 'extract-el-file
13266 (lambda _
13267 (copy-file "contrib/emacs/password-store.el" "password-store.el")
13268 (delete-file-recursively "contrib")
13269 (delete-file-recursively "man")
13270 (delete-file-recursively "src")
13271 (delete-file-recursively "tests"))))))
13272 (propagated-inputs
13273 `(("emacs-f" ,emacs-f)
13274 ("emacs-s" ,emacs-s)
13275 ("emacs-with-editor" ,emacs-with-editor)
13276 ("password-store" ,password-store)))
13277 (home-page "https://git.zx2c4.com/password-store/tree/contrib/emacs")
13278 (synopsis "Password store (pass) support for Emacs")
13279 (description
13280 "This package provides functions for working with pass (\"the
13281 standard Unix password manager\").")
13282 (license license:gpl2+)))
13283
13284 (define-public emacs-auth-source-pass
13285 (let ((commit "847a1f54ed48856b4dfaaa184583ef2c84173edf")
13286 (revision "2"))
13287 (package
13288 (name "emacs-auth-source-pass")
13289 (version (git-version "5.0.0" revision commit))
13290 (source
13291 (origin
13292 (method git-fetch)
13293 (uri (git-reference
13294 (url "https://github.com/DamienCassou/auth-password-store")
13295 (commit commit)))
13296 (file-name (git-file-name name version))
13297 (sha256
13298 (base32 "0g48z5w6n3c54zqfpx65dfyl9jqbl15idvbb1hhw2pd9f9r8fykk"))))
13299 (build-system emacs-build-system)
13300 (arguments
13301 `(#:tests? #t
13302 #:test-command '("emacs" "--batch"
13303 "-L" "."
13304 "-l" "test/auth-source-pass-tests.el"
13305 "-f" "ert-run-tests-batch-and-exit")))
13306 (home-page "https://github.com/DamienCassou/auth-password-store")
13307 (synopsis "Integrate @code{auth-source} with @code{password-store}")
13308 (description "This package helps Emacs integrate with the Unix
13309 @code{password-store} application.")
13310 (license license:gpl3+))))
13311
13312 (define-public emacs-pass
13313 (package
13314 (name "emacs-pass")
13315 (version "2.0")
13316 (source
13317 (origin
13318 (method git-fetch)
13319 (uri (git-reference
13320 (url "https://github.com/NicolasPetton/pass")
13321 (commit version)))
13322 (file-name (git-file-name name version))
13323 (sha256
13324 (base32 "0jc8j421mlflspg24jvrqc2n3y5n3cpk3hjy560il8g36xi1049p"))))
13325 (build-system emacs-build-system)
13326 (propagated-inputs
13327 `(("emacs-password-store" ,emacs-password-store)
13328 ("emacs-f" ,emacs-f)))
13329 (home-page "https://github.com/NicolasPetton/pass")
13330 (synopsis "Major mode for @file{password-store.el}")
13331 (description "This is a major mode for managing password-store (pass)
13332 keychains. The keychain entries are displayed in a directory-like structure
13333 and can be consulted and modified.")
13334 (license license:gpl3+)))
13335
13336 (define-public emacs-psc-ide
13337 ;; There is no proper release. The base version is extracted from the
13338 ;; "Version" keyword in the main file.
13339 (let ((commit "7fc2b841be25f5bc5e1eb7d0634436181c38b3fe")
13340 (revision "1"))
13341 (package
13342 (name "emacs-psc-ide")
13343 (version (git-version "0.1.0" revision commit))
13344 (source
13345 (origin
13346 (method git-fetch)
13347 (uri
13348 (git-reference
13349 (url "https://github.com/purescript-emacs/psc-ide-emacs")
13350 (commit commit)))
13351 (file-name (git-file-name name version))
13352 (sha256
13353 (base32 "0r0fymyai30jimm34z1cmav4wgij8ci6s1d9y7qigygfbbfrdsmj"))))
13354 (build-system emacs-build-system)
13355 (propagated-inputs
13356 `(("emacs-company" ,emacs-company)
13357 ("emacs-dash" ,emacs-dash)
13358 ("emacs-flycheck" ,emacs-flycheck)
13359 ("emacs-let-alist" ,emacs-let-alist)
13360 ("emacs-s" ,emacs-s)
13361 ("emacs-seq" ,emacs-seq)))
13362 (home-page "https://github.com/purescript-emacs/psc-ide-emacs")
13363 (synopsis "Emacs integration for PureScript's psc-ide tool")
13364 (description
13365 "This package provices Emacs integration for @code{psc-ide}, an IDE
13366 protocol for PureScript programming language. It features:
13367
13368 @itemize
13369 @item Completions
13370 @item Type at point
13371 @item Go to definition
13372 @item Automatic imports
13373 @item Case split
13374 @item Build system integration, and
13375 @item Flycheck support
13376 @end itemize")
13377 (license license:gpl3+))))
13378
13379 (define-public emacs-evil-anzu
13380 (package
13381 (name "emacs-evil-anzu")
13382 (version "0.03")
13383 (source
13384 (origin
13385 (method git-fetch)
13386 (uri (git-reference
13387 (url "https://github.com/syohex/emacs-evil-anzu")
13388 (commit version)))
13389 (file-name (git-file-name name version))
13390 (sha256
13391 (base32 "0lw7fg4gqwj30r0l6k2ni36sxqkf65zf0d0z3rxnpwbxlf8dlkrr"))))
13392 (build-system emacs-build-system)
13393 (propagated-inputs
13394 `(("emacs-evil" ,emacs-evil)
13395 ("emacs-anzu" ,emacs-anzu)))
13396 (home-page "https://github.com/syohex/emacs-evil-anzu")
13397 (synopsis "Anzu for evil-mode")
13398 (description "@code{anzu} provides a minor mode that displays the current
13399 match and total match information in the mode-line in various search modes.")
13400 (license license:gpl3+)))
13401
13402 (define-public emacs-pg
13403 (let ((commit "4f6516ec3946d95dcef49abb6703cc89ecb5183d"))
13404 (package
13405 (name "emacs-pg")
13406 (version (git-version "0.1" "1" commit))
13407 (source (origin
13408 (method git-fetch)
13409 (uri (git-reference (url "https://github.com/cbbrowne/pg.el")
13410 (commit commit)))
13411 (file-name (git-file-name name version))
13412 (sha256
13413 (base32
13414 "1zh7v4nnpzvbi8yj1ynlqlawk5bmlxi6s80b5f2y7hkdqb5q26k0"))))
13415 (build-system emacs-build-system)
13416 (home-page "https://github.com/cbbrowne/pg.el")
13417 (synopsis "Emacs Lisp interface for PostgreSQL")
13418 (description
13419 "This package provides an Emacs Lisp interface for PostgreSQL.")
13420 (license license:gpl3+))))
13421
13422 (define-public emacs-cl-generic
13423 (package
13424 (name "emacs-cl-generic")
13425 (version "0.3")
13426 (source
13427 (origin
13428 (method url-fetch)
13429 (uri (string-append "https://elpa.gnu.org/packages/cl-generic-"
13430 version ".el"))
13431 (sha256
13432 (base32
13433 "0vb338bhjpsnrf60qgxny4z5rjrnifahnrv9axd4shay89d894zq"))))
13434 (build-system emacs-build-system)
13435 ;; Byte compilation of the autoload file fails.
13436 (arguments
13437 `(#:phases (modify-phases %standard-phases
13438 (delete 'enable-autoloads-compilation))))
13439 (home-page "https://elpa.gnu.org/packages/seq.html")
13440 (synopsis
13441 "Forward @code{cl-generic} compatibility for Emacs before version 25")
13442 (description "This package provides a subset of the features of the
13443 @code{cl-generic} package introduced in Emacs-25, for use on previous
13444 @code{emacsen}.")
13445 (license license:gpl3+)))
13446
13447 (define-public emacs-finalize
13448 (package
13449 (name "emacs-finalize")
13450 (version "2.0.0")
13451 (source
13452 (origin
13453 (method git-fetch)
13454 (uri (git-reference
13455 (url "https://github.com/skeeto/elisp-finalize")
13456 (commit version)))
13457 (file-name (git-file-name name version))
13458 (sha256
13459 (base32 "1gvlm4i62af5jscwz0jccc8ra0grprxpg2rlq91d5nn8dn5lpy79"))))
13460 (build-system emacs-build-system)
13461 (propagated-inputs
13462 `(("emacs-cl-generic" ,emacs-cl-generic)))
13463 (home-page "https://github.com/skeeto/elisp-finalize")
13464 (synopsis "Finalizers for Emacs Lisp")
13465 (description
13466 "This package runs a callback (a finalizer)
13467 after its registered lisp object has been garbage collected. This allows
13468 extra resources, such as buffers and processes, to be cleaned up after the
13469 object has been freed.")
13470 (license license:unlicense)))
13471
13472 (define-public emacs-emacsql
13473 (package
13474 (name "emacs-emacsql")
13475 (version "3.0.0")
13476 (source (origin
13477 (method git-fetch)
13478 (uri (git-reference
13479 (url "https://github.com/skeeto/emacsql")
13480 (commit (string-append version))))
13481 (file-name (git-file-name name version))
13482 (sha256
13483 (base32
13484 "1c84gxr1majqj4b59wgdy3lzm3ap66w9qsrnkx8hdbk9895ak81g"))))
13485 (build-system emacs-build-system)
13486 (arguments
13487 `(#:modules ((guix build emacs-build-system)
13488 (guix build utils)
13489 (guix build emacs-utils)
13490 (srfi srfi-26))
13491 #:phases
13492 (modify-phases %standard-phases
13493 (delete 'build) ;‘build-emacsql-sqlite’ compiles ‘*.el’ files.
13494 (add-before 'install 'patch-elisp-shell-shebangs
13495 (lambda _
13496 (substitute* (find-files "." "\\.el")
13497 (("/bin/sh") (which "sh")))
13498 #t))
13499 (add-after 'patch-elisp-shell-shebangs 'setenv-shell
13500 (lambda _
13501 (setenv "SHELL" "sh")))
13502 (add-after 'setenv-shell 'build-emacsql-sqlite
13503 (lambda _
13504 (invoke "make" "binary" "CC=gcc")))
13505 (add-after 'build-emacsql-sqlite 'install-emacsql-sqlite
13506 ;; This build phase installs emacs-emacsql binary.
13507 (lambda* (#:key outputs #:allow-other-keys)
13508 (install-file "sqlite/emacsql-sqlite"
13509 (string-append (assoc-ref outputs "out")
13510 "/bin"))
13511 #t))
13512 (add-after 'install-emacsql-sqlite 'patch-emacsql-sqlite.el
13513 ;; This build phase removes interactive prompts
13514 ;; and makes sure Emacs look for binaries in the right places.
13515 (lambda* (#:key outputs #:allow-other-keys)
13516 (let ((file "emacsql-sqlite.el"))
13517 (chmod file #o644)
13518 (emacs-substitute-sexps file
13519 ;; Make sure Emacs looks for ‘GCC’ binary in the right place.
13520 ("(executable-find" (which "gcc"))
13521 ;; Make sure Emacs looks for ‘emacsql-sqlite’ binary
13522 ;; in the right place.
13523 ("(defvar emacsql-sqlite-executable"
13524 (string-append (assoc-ref outputs "out")
13525 "/bin/emacsql-sqlite"))))))
13526 (replace 'install
13527 (lambda* (#:key outputs #:allow-other-keys)
13528 (let* ((out (assoc-ref outputs "out")))
13529 (install-file "sqlite/emacsql-sqlite"
13530 (string-append out "/bin"))
13531 (for-each (cut install-file <>
13532 (string-append out "/share/emacs/site-lisp"))
13533 (find-files "." "\\.elc*$")))
13534 #t)))))
13535 (inputs
13536 `(("emacs-minimal" ,emacs-minimal)
13537 ("mariadb" ,mariadb "lib")
13538 ("mariadb-dev" ,mariadb "dev")
13539 ("postgresql" ,postgresql)))
13540 (propagated-inputs
13541 `(("emacs-finalize" ,emacs-finalize)
13542 ("emacs-pg" ,emacs-pg)))
13543 (home-page "https://github.com/skeeto/emacsql")
13544 (synopsis "Emacs high-level SQL database front-end")
13545 (description "Any readable Lisp value can be stored as a value in EmacSQL,
13546 including numbers, strings, symbols, lists, vectors, and closures. EmacSQL
13547 has no concept of @code{TEXT} values; it's all just Lisp objects. The Lisp
13548 object @code{nil} corresponds 1:1 with @code{NULL} in the database.")
13549 (license license:gpl3+)))
13550
13551 (define-public emacs-closql
13552 ;; Take a commit newer than 1.0.0 release because of Emacs upgrade to 26.3.
13553 (let ((commit "70b98dbae53611d10a461d9b4a6f71086910dcef"))
13554 (package
13555 (name "emacs-closql")
13556 (version (git-version "1.0.0" "1" commit))
13557 (source
13558 (origin
13559 (method git-fetch)
13560 (uri (git-reference
13561 (url "https://github.com/emacscollective/closql")
13562 (commit commit)))
13563 (file-name (git-file-name name version))
13564 (sha256
13565 (base32
13566 "1wvhrihg663f61yzc7f0vha2abjdnlwbk0gjcwakdfk1bhwf5ikh"))))
13567 (build-system emacs-build-system)
13568 (propagated-inputs
13569 `(("emacs-emacsql" ,emacs-emacsql)))
13570 (home-page "https://github.com/emacscollective/closql")
13571 (synopsis "Store EIEIO objects using EmacSQL")
13572 (description
13573 "This package stores uniform EIEIO objects in an EmacSQL
13574 database. SQLite is used as backend. This library imposes some restrictions
13575 on what kind of objects can be stored; it isn't intended to store arbitrary
13576 objects. All objects have to share a common superclass and subclasses cannot
13577 add any additional instance slots.")
13578 (license license:gpl3))))
13579
13580 (define-public emacs-epkg
13581 ;; The release version is to old for the current database scheme.
13582 (let ((commit "432312b9583ed7b88ad9644fd1bf2183765a892e"))
13583 (package
13584 (name "emacs-epkg")
13585 (version (git-version "3.0.0" "1" commit))
13586 (source
13587 (origin
13588 (method git-fetch)
13589 (uri (git-reference
13590 (url "https://github.com/emacscollective/epkg")
13591 (commit commit)))
13592 (file-name (git-file-name name version))
13593 (sha256
13594 (base32
13595 "0d882kahn7a0vri7a9r15lvmfx1zn2hsga6jfcc6jv0hqbswlb2k"))))
13596 (build-system emacs-build-system)
13597 (propagated-inputs
13598 `(("emacs-closql" ,emacs-closql)
13599 ("emacs-dash" ,emacs-dash)))
13600 (home-page "https://emacsmirror.net")
13601 (synopsis "Browse the Emacsmirror package database")
13602 (description "This package provides access to a local copy of the
13603 Emacsmirror package database. It provides low-level functions for querying
13604 the database and a @file{package.el} user interface for browsing the database.
13605 Epkg itself is not a package manager.
13606
13607 Getting a local copy:
13608
13609 @example
13610 git clone https://github.com/emacsmirror/epkgs.git ~/.emacs.d/epkgs
13611 cd ~/.emacs.d/epkgs
13612 git submodule init
13613 git config --global url.https://github.com/.insteadOf git@@github.com:
13614 git submodule update
13615 @end example
13616
13617 Some submodule may be missing. In this case Git will prompt for a GitHub user
13618 name and password. To skip it press a @key{Return} key.
13619
13620 You could get a Epkg package list by invoking @code{epkg-list-packages} in
13621 Emacs.")
13622 (license license:gpl3+))))
13623
13624 (define-public emacs-elisp-slime-nav
13625 (package
13626 (name "emacs-elisp-slime-nav")
13627 (version "0.9")
13628 (source
13629 (origin
13630 (method git-fetch)
13631 (uri (git-reference
13632 (url "https://github.com/purcell/elisp-slime-nav")
13633 (commit version)))
13634 (file-name (git-file-name name version))
13635 (sha256
13636 (base32 "11vyy0bvzbs1h1kggikrvhd658j7c730w0pdp6qkm60rigvfi1ih"))))
13637 (build-system emacs-build-system)
13638 (home-page "https://github.com/purcell/elisp-slime-nav")
13639 (synopsis "Make @code{M-.} and @code{M-,} work for elisp like they do in SLIME")
13640 (description
13641 "This package provides SLIME's convenient @code{M-.}and @code{M-,} navigation
13642 in @code{emacs-lisp-mode}, together with an elisp equivalent of
13643 @code{slime-describe-symbol}.")
13644 (license license:gpl3+)))
13645
13646 (define-public emacs-dedicated
13647 (package
13648 (name "emacs-dedicated")
13649 (version "1.0.0")
13650 (source
13651 (origin
13652 (method git-fetch)
13653 (uri (git-reference
13654 (url "https://github.com/emacsorphanage/dedicated")
13655 (commit version)))
13656 (file-name (git-file-name name version))
13657 (sha256
13658 (base32 "0pba9s0h37sxyqh733vi6k5raa4cs7aradipf3826inw36jcw414"))))
13659 (build-system emacs-build-system)
13660 (home-page "https://github.com/emacsorphanage/dedicated")
13661 (synopsis "Emacs minor mode for toggling a windows's \"dedicated\" flag")
13662 (description
13663 "This simple Emacs minor mode allows you to toggle a window's
13664 \"dedicated\" flag. When a window is \"dedicated\", Emacs will not select
13665 files into that window. This can be quite handy since many commands will use
13666 another window to show results (compilation mode, starting info, and so on).
13667 A dedicated window won't be used for such a purpose. For details, please read
13668 the source file.")
13669 (license license:gpl2+)))
13670
13671 (define-public emacs-nnreddit
13672 (let ((commit "9843f99d01fd8f1eea2fc685965a7c7f4eeb187a")
13673 (revision "1"))
13674 (package
13675 (name "emacs-nnreddit")
13676 (version (string-append "0.0.1-" revision "."
13677 (string-take commit 7)))
13678 (source (origin
13679 (method git-fetch)
13680 (uri (git-reference
13681 (url "https://github.com/paul-issartel/nnreddit")
13682 (commit commit)))
13683 (file-name (git-file-name name version))
13684 (sha256
13685 (base32
13686 "0j4h3bnga640250jdq8bwyja49r41ssrsjd6lba4gzzllqk02nbn"))))
13687 (build-system emacs-build-system)
13688 (home-page "https://github.com/paul-issartel/nnreddit")
13689 (synopsis "Reddit backend for the Gnus newsreader")
13690 (description "@url{https://www.reddit.com} backend for the Gnus
13691 newsreader.")
13692 (license license:gpl3+))))
13693
13694 (define-public emacs-makey
13695 (package
13696 (name "emacs-makey")
13697 (version "0.3")
13698 (source
13699 (origin
13700 (method git-fetch)
13701 (uri (git-reference
13702 (url "https://github.com/mickeynp/makey")
13703 (commit version)))
13704 (file-name (git-file-name name version))
13705 (sha256
13706 (base32 "1rr7vpm3xxzcaam3m8xni3ajy8ycyljix07n2jzczayri9sd8csy"))))
13707 (build-system emacs-build-system)
13708 (home-page "https://github.com/mickeynp/makey")
13709 (synopsis "Emacs interactive command-line mode")
13710 (description
13711 "This package provides an Emacs interactive command-line mode.")
13712 (license license:gpl3+)))
13713
13714 (define-public emacs-outorg
13715 (let ((commit "78b0695121fb974bc4e971eb4ef7f8afd6d89d64"))
13716 (package
13717 (name "emacs-outorg")
13718 (version (git-version "2.0" "1" commit))
13719 (source
13720 (origin
13721 (method git-fetch)
13722 (uri (git-reference
13723 (url "https://github.com/alphapapa/outorg")
13724 (commit commit)))
13725 (file-name (git-file-name name version))
13726 (sha256
13727 (base32
13728 "03aclh4m3f7rb821gr9pwvnqkkl91px3qxdcarpf3ypa1x4fxvlj"))))
13729 (build-system emacs-build-system)
13730 (home-page "https://github.com/alphapapa/outorg")
13731 (synopsis "Org-style comment editing")
13732 (description "Outorg is for editing comment-sections of source-code
13733 files in temporary Org-mode buffers. It turns conventional
13734 literate-programming upside-down in that the default mode is the
13735 programming-mode, and special action has to be taken to switch to the
13736 text-mode (i.e. Org-mode).")
13737 (license license:gpl3+))))
13738
13739 (define-public emacs-outshine
13740 (package
13741 (name "emacs-outshine")
13742 (version "3.0.1")
13743 (source (origin
13744 (method git-fetch)
13745 (uri (git-reference
13746 (url "https://github.com/alphapapa/outshine")
13747 (commit (string-append "v" version))))
13748 (file-name (git-file-name name version))
13749 (sha256
13750 (base32
13751 "1lh9f5dgdbwfyzxk6nsg1xwdjs8gc6p9mbyyhp6f8fnk3h0y88cg"))))
13752 (build-system emacs-build-system)
13753 (propagated-inputs
13754 `(("emacs-outorg" ,emacs-outorg)))
13755 (home-page "https://github.com/alphapapa/outshine")
13756 (synopsis "Emacs outline with outshine")
13757 (description "Outshine attempts to bring the look and feel of
13758 @code{org-mode} to an Emacs outside of the Org major-mode. It is an extension
13759 of @code{outline-minor-mode} (@code{org-mode} itself derives from
13760 outline-mode), so there is no such thing like an outshine mode, only
13761 @code{outline-minor-mode} with outshine extensions loaded.")
13762 (license license:gpl3+)))
13763
13764 (define-public emacs-frecency
13765 (let ((commit "31ef9ff4af1a4fed3dcc24ea74037feea8795c87")
13766 (version "0.1-pre")
13767 (revision "1"))
13768 (package
13769 (name "emacs-frecency")
13770 (version (git-version version revision commit))
13771 (source (origin
13772 (method git-fetch)
13773 (uri (git-reference
13774 (url "https://github.com/alphapapa/frecency.el")
13775 (commit commit)))
13776 (sha256
13777 (base32
13778 "051aihjdg3x22svaxhwylpi8i6s2x9j8syvsj1jgilgjjdy15l6j"))
13779 (file-name (git-file-name name version))))
13780 (build-system emacs-build-system)
13781 (propagated-inputs
13782 `(("emacs-a" ,emacs-a)
13783 ("emacs-dash" ,emacs-dash)))
13784 (home-page "https://github.com/alphapapa/frecency.el")
13785 (synopsis "Sort items by frequency and recency of access")
13786 (description "This package provides a way of sorting items via
13787 a heuristic based on frequency and recency.")
13788 (license license:gpl3+))))
13789
13790 (define-public emacs-org-recent-headings
13791 (package
13792 (name "emacs-org-recent-headings")
13793 (version "0.1")
13794 (source (origin
13795 (method git-fetch)
13796 (uri (git-reference
13797 (url "https://github.com/alphapapa/org-recent-headings")
13798 (commit version)))
13799 (file-name (git-file-name name version))
13800 (sha256
13801 (base32
13802 "0gsrzmg3mssh9s28yjm9m866fnhm1pcligssz1q6brga6dm6f2yy"))))
13803 (build-system emacs-build-system)
13804 (propagated-inputs
13805 `(("emacs-org" ,emacs-org)
13806 ("emacs-dash" ,emacs-dash)
13807 ("emacs-frecency" ,emacs-frecency)))
13808 (home-page "https://github.com/alphapapa/org-recent-headings")
13809 (synopsis "Navigate to recently used Org headings and lists")
13810 (description "This package maintains a list of recently used Org headings,
13811 as well as functions for navigating between these headings.")
13812 (license license:gpl3+)))
13813
13814 (define-public emacs-org-super-agenda
13815 ;; emacs-org-sidebar depends on a newer commit than the latest release version.
13816 (let ((commit "a87ca11fbbe72ab6c1c4c3b55ae9e1e93ebfb8ba")
13817 (revision "3"))
13818 (package
13819 (name "emacs-org-super-agenda")
13820 (version (git-version "1.1.1" revision commit))
13821 (source (origin
13822 (method git-fetch)
13823 (uri (git-reference
13824 (url "https://github.com/alphapapa/org-super-agenda")
13825 (commit commit)))
13826 (file-name (git-file-name name version))
13827 (sha256
13828 (base32
13829 "08b7babdaqblb6jff57an4kbcxk6fkhf668620fipfjgbsnqv3ff"))))
13830 (build-system emacs-build-system)
13831 (propagated-inputs
13832 `(("emacs-org" ,emacs-org)
13833 ("emacs-dash" ,emacs-dash)
13834 ("emacs-ts" ,emacs-ts)
13835 ("emacs-ht" ,emacs-ht)
13836 ("emacs-s" ,emacs-s)))
13837 (home-page "https://github.com/alphapapa/org-super-agenda")
13838 (synopsis "Supercharged Org agenda")
13839 (description "This package allows items in the Org agenda to be grouped
13840 into sections while preserving the structure imposed by any timestamps.")
13841 (license license:gpl3+))))
13842
13843 (define-public emacs-org-make-toc
13844 (package
13845 (name "emacs-org-make-toc")
13846 (version "0.5")
13847 (source (origin
13848 (method git-fetch)
13849 (uri (git-reference
13850 (url "https://github.com/alphapapa/org-make-toc")
13851 (commit version)))
13852 (file-name (git-file-name name version))
13853 (sha256
13854 (base32
13855 "180ji6nnj6qj0rs1rdp1zlcrfsqf7ikb44ym8icbp5d6al2s4hnr"))))
13856 (build-system emacs-build-system)
13857 (propagated-inputs
13858 `(("emacs-org" ,emacs-org)
13859 ("emacs-dash" ,emacs-dash)
13860 ("emacs-s" ,emacs-s)))
13861 (home-page "https://github.com/alphapapa/org-make-toc")
13862 (synopsis "Maintain a table of contents for an Org file")
13863 (description "This package facilitates the creation and maintenance of
13864 tables of contents.")
13865 (license license:gpl3+)))
13866
13867 (define-public emacs-ts
13868 (package
13869 (name "emacs-ts")
13870 (version "0.2")
13871 (source
13872 (origin
13873 (method git-fetch)
13874 (uri (git-reference
13875 (url "https://github.com/alphapapa/ts.el")
13876 (commit version)))
13877 (sha256
13878 (base32 "0hmzc1ppnkkr0lfq5fhzqr6icv6iqz824a6bnns7zr466hhqp3qb"))
13879 (file-name (git-file-name name version))))
13880 (build-system emacs-build-system)
13881 (propagated-inputs
13882 `(("emacs-s" ,emacs-s)
13883 ("emacs-dash" ,emacs-dash)))
13884 (arguments
13885 ;; XXX: Three tests are failing because of a timezone-related issue
13886 ;; with how they're written. On my machine, all the failing test
13887 ;; results are 18000 seconds (5 hours) off.
13888
13889 ;; The ts-parse-org function accepts a string without any timezone
13890 ;; info, not assumed to be in Unix time, and converts it to a so-called
13891 ;; ts struct. The ts-unix function (accessor) accepts a ts struct,
13892 ;; then seems to assume the struct's corresponding time is in terms of
13893 ;; the user's current time zone, before returning a Unix time in
13894 ;; seconds.
13895
13896 ;; The failing tests all have similar problems, but nothing else about
13897 ;; the library seems particularly off.
13898
13899 `(#:tests? #t
13900 #:test-command '("emacs" "--batch"
13901 "-l" "test/test.el"
13902 "-f" "ert-run-tests-batch-and-exit")
13903 #:phases
13904 (modify-phases %standard-phases
13905 (add-before 'check 'make-tests-writable
13906 (lambda _
13907 (make-file-writable "test/test.el")
13908 #t))
13909 (add-before 'check 'delete-failing-tests
13910 (lambda _
13911 (emacs-batch-edit-file "test/test.el"
13912 `(progn (progn
13913 (goto-char (point-min))
13914 (dolist (test-regexp
13915 '("ert-deftest ts-format"
13916 "ert-deftest ts-parse-org\\_>"
13917 "ert-deftest ts-parse-org-element"
13918 "ert-deftest ts-update"))
13919 (re-search-forward test-regexp)
13920 (beginning-of-line)
13921 (kill-sexp)))
13922 (basic-save-buffer)))
13923 #t)))))
13924 (home-page "https://github.com/alphapapa/ts.el")
13925 (synopsis "Timestamp and date/time library")
13926 (description "This package facilitates manipulating dates, times, and
13927 timestamps by providing a @code{ts} struct.")
13928 (license license:gpl3+)))
13929
13930 (define-public emacs-peg
13931 (package
13932 (name "emacs-peg")
13933 (version "0.6")
13934 (source (origin
13935 (method git-fetch)
13936 (uri (git-reference
13937 (url "https://github.com/emacsmirror/peg")
13938 (commit version)))
13939 (sha256
13940 (base32
13941 "0kjz7ch4bn0m4v9zgqyqcrsasnqc5c5drv2hp22j7rnbb7ny0q3n"))
13942 (file-name (git-file-name name version))))
13943 (build-system emacs-build-system)
13944 (home-page "https://github.com/emacsmirror/peg/")
13945 (synopsis "Parsing Expression Grammars in Elisp")
13946 (description "This package provides a macro that parses the current buffer
13947 according to a parsing expression grammar.")
13948 (license license:gpl3+)))
13949
13950 (define-public emacs-org-ql
13951 (package
13952 (name "emacs-org-ql")
13953 (version "0.3.2")
13954 (source (origin
13955 (method git-fetch)
13956 (uri (git-reference
13957 (url "https://github.com/alphapapa/org-ql")
13958 (commit version)))
13959 (sha256
13960 (base32
13961 "11bhpi2l28vp8mm9nx18jljbqdnh9vxpv9kp1dn9lpsgivcdbc34"))
13962 (file-name (git-file-name name version))))
13963 (build-system emacs-build-system)
13964 (propagated-inputs
13965 `(("emacs-s" ,emacs-s)
13966 ("emacs-f" ,emacs-f)
13967 ("emacs-ov" ,emacs-ov)
13968 ("emacs-peg" ,emacs-peg)
13969 ("emacs-org-super-agenda" ,emacs-org-super-agenda)
13970 ("emacs-ts" ,emacs-ts)
13971 ("emacs-org" ,emacs-org)
13972 ("emacs-helm" ,emacs-helm)
13973 ("emacs-helm-org" ,emacs-helm-org)
13974 ("emacs-dash" ,emacs-dash)))
13975 (native-inputs
13976 `(("emacs-buttercup" ,emacs-buttercup)))
13977 (arguments
13978 `(#:phases
13979 (modify-phases %standard-phases
13980 (add-after 'unpack 'require-helm
13981 (lambda _
13982 (substitute* "helm-org-ql.el"
13983 (("^;;;; Requirements")
13984 ";;;; Requirements\n(require 'helm)\n(require 'helm-org)"))
13985 #t)))
13986 #:tests? #t
13987 #:test-command '("buttercup" "-L" ".")))
13988 (home-page "https://github.com/alphapapa/org-ql/")
13989 (synopsis "Query language for Org buffers")
13990 (description "This package provides a Lispy query language for Org
13991 files, allowing for actions to be performed based on search criteria.")
13992 (license license:gpl3+)))
13993
13994 (define-public emacs-org-auto-expand
13995 (let ((commit "4938d5f6460e2f8f051ba9ac000b291bfa43ef62")
13996 (revision "1"))
13997 (package
13998 (name "emacs-org-auto-expand")
13999 (version (git-version "0.1" revision commit))
14000 (source (origin
14001 (method git-fetch)
14002 (uri (git-reference
14003 (url "https://github.com/alphapapa/org-auto-expand")
14004 (commit commit)))
14005 (file-name (git-file-name name version))
14006 (sha256
14007 (base32
14008 "1my0c6xmkh37lwi6l472lz9d86lf20h6xcllzlxm1lxa24rhva6v"))))
14009 (build-system emacs-build-system)
14010 (propagated-inputs
14011 `(("emacs-org" ,emacs-org)
14012 ("emacs-dash" ,emacs-dash)))
14013 (home-page "https://github.com/alphapapa/org-auto-expand")
14014 (synopsis "Automatically expand certain Org headings")
14015 (description "This package allows a customizable set of headings in Org
14016 files to be expanded upon opening them.")
14017 (license license:gpl3+))))
14018
14019 (define-public emacs-parsebib
14020 (package
14021 (name "emacs-parsebib")
14022 (version "2.3.3")
14023 (source
14024 (origin
14025 (method git-fetch)
14026 (uri (git-reference
14027 (url "https://github.com/joostkremers/parsebib")
14028 (commit version)))
14029 (file-name (git-file-name name version))
14030 (sha256
14031 (base32 "0mpgyy9qfb5x4fvlmb274hgayjbwf0bgk65dxyx31zikjwpcd56p"))))
14032 (build-system emacs-build-system)
14033 (home-page "https://github.com/joostkremers/parsebib")
14034 (synopsis "Library for parsing @file{.bib} files")
14035 (description
14036 "This package provides an Emacs library for parsing @file{.bib} files.")
14037 (license license:gpl3+)))
14038
14039 (define-public emacs-ebib
14040 (package
14041 (name "emacs-ebib")
14042 (version "2.22.1")
14043 (source
14044 (origin
14045 (method git-fetch)
14046 (uri (git-reference
14047 (url "https://github.com/joostkremers/ebib")
14048 (commit version)))
14049 (file-name (git-file-name name version))
14050 (sha256
14051 (base32 "0spiz5r2y4pdpyc4d3f9w228giq0j9rm8f5h5akzn5rwiq9pfkwz"))))
14052 (build-system emacs-build-system)
14053 (propagated-inputs
14054 `(("emacs-parsebib" ,emacs-parsebib)))
14055 (home-page "https://joostkremers.github.io/ebib/")
14056 (synopsis "BibTeX database manager for Emacs")
14057 (description
14058 "Ebib is a BibTeX database manager that runs in GNU Emacs.
14059 With Ebib you can create, sort and manage your @file{.bib} database files, all
14060 within Emacs. It supports searching, multi-line field values and
14061 @samp{@@String} and @samp{@@Preamble} definitions. Ebib integrates
14062 with (La)TeX mode, Org mode and other Emacs editing modes.")
14063 ;; The Ebib source files are released under a BSD license with
14064 ;; the exception of org-ebib.el, which is released under the GNU
14065 ;; GPL.
14066 (license (list license:bsd-3
14067 license:gpl3+))))
14068
14069 (define-public emacs-biblio
14070 (package
14071 (name "emacs-biblio")
14072 (version "0.2")
14073 (source
14074 (origin
14075 (method git-fetch)
14076 (uri (git-reference
14077 (url "https://github.com/cpitclaudel/biblio.el")
14078 (commit version)))
14079 (file-name (git-file-name name version))
14080 (sha256
14081 (base32 "1gxjind6r235az59dr8liv03d8994mqb8a7m28j3c12q7p70aziz"))))
14082 (build-system emacs-build-system)
14083 (propagated-inputs
14084 `(("emacs-seq" ,emacs-seq)
14085 ("emacs-dash" ,emacs-dash)
14086 ("emacs-let-alist" ,emacs-let-alist)))
14087 (home-page "https://github.com/cpitclaudel/biblio.el")
14088 (synopsis "Browse and import bibliographic references")
14089 (description "This package provides an extensible Emacs package for
14090 browsing and fetching references.
14091
14092 @file{biblio.el} makes it easy to browse and gather bibliographic references
14093 and publications from various sources, by keywords or by DOI. References are
14094 automatically fetched from well-curated sources, and formatted as BibTeX.")
14095 (license license:gpl3+)))
14096
14097 (define-public emacs-helm-bibtex
14098 (let ((commit "d4471232be26793fbf56c0ac3690b5f537c378b9")
14099 (revision "2"))
14100 (package
14101 (name "emacs-helm-bibtex")
14102 (version (string-append "2.0.0" "-" revision "."
14103 (string-take commit 7)))
14104 (source
14105 (origin
14106 (method git-fetch)
14107 (uri (git-reference
14108 (url "https://github.com/tmalsburg/helm-bibtex")
14109 (commit commit)))
14110 (file-name (git-file-name name version))
14111 (sha256
14112 (base32
14113 "1bkzhic6qckb267025il1r3xcpz99kisphxiafni1pxvf9jafr0j"))))
14114 (build-system emacs-build-system)
14115 (propagated-inputs
14116 `(("emacs-helm" ,emacs-helm)
14117 ("emacs-parsebib" ,emacs-parsebib)
14118 ("emacs-s" ,emacs-s)
14119 ("emacs-dash" ,emacs-dash)
14120 ("emacs-f" ,emacs-f)
14121 ("emacs-biblio" ,emacs-biblio)
14122 ("emacs-ivy" ,emacs-ivy)))
14123 (home-page "https://github.com/tmalsburg/helm-bibtex")
14124 (synopsis "Bibliography manager based on Helm")
14125 (description "This package provides bibliography manager for Emacs,
14126 based on Helm and the bibtex-completion backend.
14127
14128 Key features:
14129
14130 @itemize
14131 @item Quick access to your bibliography from within Emacs
14132 @item Powerful search capabilities
14133 @item Provides instant search results as you type
14134 @item Tightly integrated with LaTeX authoring, emails, Org mode, etc.
14135 @item Open the PDFs, URLs, or DOIs associated with an entry
14136 @item Insert LaTeX cite commands, Ebib links, or Pandoc citations,
14137 BibTeX entries, or plain text references at point, attach PDFs to emails
14138 @item Support for note taking
14139 @item Quick access to online bibliographic databases such as Pubmed,
14140 arXiv, Google Scholar, Library of Congress, etc.
14141 @item Imports BibTeX entries from CrossRef and other sources.
14142 @end itemize\n")
14143 (license license:gpl3+))))
14144
14145 (define-public emacs-ewmctrl
14146 (let ((commit "3d0217c4d6cdb5c308b6cb4293574f470d4faacf"))
14147 (package
14148 (name "emacs-ewmctrl")
14149 (version (git-version "0.0.1" "1" commit))
14150 (source
14151 (origin
14152 (method git-fetch)
14153 (uri (git-reference
14154 (url "https://github.com/flexibeast/ewmctrl")
14155 (commit commit)))
14156 (file-name (git-file-name name version))
14157 (sha256
14158 (base32
14159 "0ilwvx0qryv3v6xf0gxqwnfm6pf96gxap8h9g3f6z6lk9ff4n1wi"))))
14160 (build-system emacs-build-system)
14161 (arguments
14162 '(#:phases
14163 (modify-phases %standard-phases
14164 (add-after 'unpack 'patch-ewmctrl
14165 ;; This build phase makes sure ‘ewmctrl’ looks
14166 ;; for ‘wmctrl’ in the right place.
14167 (lambda _
14168 (let ((file "ewmctrl.el"))
14169 (chmod file #o644)
14170 (emacs-substitute-sexps file
14171 ("(defcustom ewmctrl-wmctrl-path" (which "wmctrl")))))))))
14172 (inputs
14173 `(("wmctrl" ,wmctrl)))
14174 (home-page "https://github.com/flexibeast/ewmctrl")
14175 (synopsis "Emacs interface to @code{wmctrl}")
14176 (description "@code{ewmctrl} provides an Emacs interface to
14177 @code{wmctrl} command-line window-management program.")
14178 (license license:gpl3+))))
14179
14180 (define-public emacs-erc-image
14181 (let ((commit "82fb3871f02e24b1e880770b9a3d187aab43d0f0")
14182 (revision "3"))
14183 (package
14184 (name "emacs-erc-image")
14185 (version (git-version "0" revision commit))
14186 (source
14187 (origin
14188 (method git-fetch)
14189 (uri (git-reference
14190 (url "https://github.com/kidd/erc-image.el")
14191 (commit commit)))
14192 (file-name (git-file-name name version))
14193 (sha256
14194 (base32
14195 "1q8mkf612fb4fjp8h4kbr107wn083iqfdgv8f80pcmil8y33dw9i"))))
14196 (build-system emacs-build-system)
14197 (arguments
14198 `(#:phases (modify-phases %standard-phases
14199 ;; The package autoloader fails to provide
14200 ;; the image module when handled by Guix.
14201 ;; Disable this phase, and let the package
14202 ;; handle the `eval-after-load' procedure.
14203 (delete 'make-autoloads))))
14204 (home-page "https://github.com/kidd/erc-image.el")
14205 (synopsis "Show inlined images (png/jpg/gif/svg) in ERC buffers")
14206 (description "This plugin subscribes to hooks @code{erc-insert-modify-hook}
14207 and @code{erc-send-modify-hook} to download and show images.")
14208 (license license:gpl3+))))
14209
14210 (define-public emacs-helm-gtags
14211 (package
14212 (name "emacs-helm-gtags")
14213 (version "1.5.7")
14214 (source
14215 (origin
14216 (method git-fetch)
14217 (uri (git-reference
14218 (url "https://github.com/syohex/emacs-helm-gtags")
14219 (commit version)))
14220 (file-name (git-file-name name version))
14221 (sha256
14222 (base32 "1kc1jzk10nfd2v20g8dwnb6a944afrwdwnkzl06w4ba8k4yim7gi"))))
14223 (build-system emacs-build-system)
14224 (propagated-inputs
14225 `(("emacs-helm" ,emacs-helm)))
14226 (home-page "https://github.com/syohex/emacs-helm-gtags")
14227 (synopsis "Emacs Helm interface to GNU Global")
14228 (description
14229 "@code{emacs-helm-gtags} provides a Emacs Helm interface to GNU Global.")
14230 (license license:gpl3+)))
14231
14232 (define-public emacs-list-utils
14233 (package
14234 (name "emacs-list-utils")
14235 (version "0.4.4")
14236 (source
14237 (origin
14238 (method git-fetch)
14239 (uri (git-reference
14240 (url "https://github.com/rolandwalker/list-utils")
14241 (commit (string-append "v" version))))
14242 (file-name (git-file-name name version))
14243 (sha256
14244 (base32 "0ql159v7sxs33yh2l080kchrj52vk34knz50cvqi3ykpb7djg3sz"))))
14245 (build-system emacs-build-system)
14246 (home-page "https://github.com/rolandwalker/list-utils")
14247 (synopsis "List-manipulation utility functions")
14248 (description "This package provides a list manipulation library for Emacs.")
14249 (license license:gpl3+)))
14250
14251 (define-public emacs-move-text
14252 (package
14253 (name "emacs-move-text")
14254 (version "2.0.8")
14255 (source
14256 (origin
14257 (method git-fetch)
14258 (uri (git-reference
14259 (url "https://github.com/emacsfodder/move-text")
14260 (commit version)))
14261 (file-name (git-file-name name version))
14262 (sha256
14263 (base32 "06jxk5g23822gfmwrxhc34zand3dr8p2wjh1zs3j61ibz6n0nmz1"))))
14264 (build-system emacs-build-system)
14265 (home-page "https://github.com/emacsfodder/move-text")
14266 (synopsis "Move current line or region with M-up or M-down")
14267 (description "This package provide functions to move the current line
14268 using @kbd{M-up} or @kbd{M-down} if a region is marked, it will move the
14269 region instead.")
14270 (license license:gpl3+)))
14271
14272 (define-public emacs-validate
14273 (package
14274 (name "emacs-validate")
14275 (version "1.0.5")
14276 (source (origin
14277 (method git-fetch)
14278 (uri (git-reference
14279 (url "https://github.com/Malabarba/validate.el")
14280 (commit version)))
14281 (file-name (git-file-name name version))
14282 (sha256
14283 (base32
14284 "1l12ibx6cw4mgicgjpw71fb4fr4sd0k54lvbpq7ngc29br3j6i4v"))))
14285 (build-system emacs-build-system)
14286 (home-page "https://github.com/Malabarba/validate.el")
14287 (synopsis "Emacs library for scheme validation")
14288 (description "This Emacs library provides two functions that perform
14289 schema validation.")
14290 (license license:gpl3+)))
14291
14292 (define-public emacs-rainbow-blocks
14293 (let ((commit "dd435d7bb34ff6f162a5f315df308b90b7e9f842"))
14294 (package
14295 (name "emacs-rainbow-blocks")
14296 (version (git-version "1.0.0" "1" commit))
14297 (source (origin
14298 (method git-fetch)
14299 (uri (git-reference
14300 (url "https://github.com/istib/rainbow-blocks")
14301 (commit commit)))
14302 (file-name (git-file-name name version))
14303 (sha256
14304 (base32
14305 "06yfb3i7wzvqrhkb61zib9xvpb5i00s4frizkzff66im05k0n795"))))
14306 (build-system emacs-build-system)
14307 (home-page "https://github.com/istib/rainbow-blocks")
14308 (synopsis "Highlight sexp blocks")
14309 (description "Rainbow-blocks is an Emacs mode that highlights blocks
14310 made of parentheses, brackets, and braces according to their depth. Each
14311 successive level is highlighted in a different color. This makes it easy to
14312 orient yourself in the code, and tell which statements are at a given level.")
14313 (license license:gpl3+))))
14314
14315 (define-public emacs-hierarchy
14316 (package
14317 (name "emacs-hierarchy")
14318 (version "0.7.0")
14319 (source
14320 (origin
14321 (method git-fetch)
14322 (uri (git-reference
14323 (url "https://github.com/DamienCassou/hierarchy")
14324 (commit (string-append "v" version))))
14325 (file-name (git-file-name name version))
14326 (sha256
14327 (base32 "1kykbb1sil5cycfa5aj8dhsxc5yrx1641i2np5kwdjid6ahdlz5r"))))
14328 (build-system emacs-build-system)
14329 (native-inputs
14330 `(("emacs-buttercup" ,emacs-buttercup)))
14331 (arguments
14332 `(#:tests? #t
14333 #:test-command '("buttercup" "-L" ".")))
14334 (home-page "https://github.com/DamienCassou/hierarchy")
14335 (synopsis "Library to create and display hierarchy structures")
14336 (description "This package provides an Emacs library to create, query,
14337 navigate and display hierarchy structures.")
14338 (license license:gpl3+)))
14339
14340 (define-public emacs-tree-mode
14341 (let ((commit "b06078826d5875d74b0e7b7ac47b0d0917610534")
14342 (revision "1"))
14343 (package
14344 (name "emacs-tree-mode")
14345 (version (string-append "0.0.1" "-" revision "."
14346 (string-take commit 7)))
14347 (source
14348 (origin
14349 (method git-fetch)
14350 (uri (git-reference
14351 (url "https://github.com/emacsorphanage/tree-mode")
14352 (commit commit)))
14353 (file-name (git-file-name name version))
14354 (sha256
14355 (base32
14356 "13bbdhdmqg4x9yghanhr8fsbsxbnypzxdxgicz31sjjm675kpnix"))))
14357 (build-system emacs-build-system)
14358 (home-page "https://github.com/emacsorphanage/tree-mode")
14359 (synopsis "Emacs mode to manage tree widgets")
14360 (description
14361 "This package provides an Emacs library to manage tree widgets.")
14362 (license license:gpl3+))))
14363
14364 (define-public emacs-md4rd
14365 (package
14366 (name "emacs-md4rd")
14367 (version "0.3.1")
14368 (source (origin
14369 (method git-fetch)
14370 (uri (git-reference
14371 (url "https://github.com/ahungry/md4rd")
14372 (commit version)))
14373 (file-name (git-file-name name version))
14374 (sha256
14375 (base32
14376 "1n6g6k4adzkkn1g7z4j27s35xy12c1fg2r08gv345ddr3wplq4ri"))))
14377 (propagated-inputs
14378 `(("emacs-hierarchy" ,emacs-hierarchy)
14379 ("emacs-request" ,emacs-request)
14380 ("emacs-dash" ,emacs-dash)
14381 ("emacs-s" ,emacs-s)
14382 ("emacs-tree-mode" ,emacs-tree-mode)))
14383 (build-system emacs-build-system)
14384 (home-page "https://github.com/ahungry/md4rd")
14385 (synopsis "Emacs Mode for Reddit")
14386 (description
14387 "This package allows reading Reddit from within Emacs interactively.")
14388 (license license:gpl3+)))
14389
14390 (define-public emacs-pulseaudio-control
14391 (let ((commit "7e1a87068379075a5e9ce36c64c686c03d20d379")
14392 (revision "3"))
14393 (package
14394 (name "emacs-pulseaudio-control")
14395 (version (git-version "0.0.1" revision commit))
14396 (source
14397 (origin
14398 (method git-fetch)
14399 (uri (git-reference
14400 (url "https://github.com/flexibeast/pulseaudio-control")
14401 (commit commit)))
14402 (file-name (git-file-name name version))
14403 (sha256
14404 (base32
14405 "0wcaqyh15x56255rrj350089z15pnwixa2vf0ly6dv0hjmzmh3mr"))))
14406 (build-system emacs-build-system)
14407 (arguments
14408 '(#:phases (modify-phases %standard-phases
14409 (add-after 'unpack 'patch-file-name
14410 (lambda* (#:key inputs #:allow-other-keys)
14411 (let ((pulseaudio (assoc-ref inputs "pulseaudio")))
14412 (chmod "pulseaudio-control.el" #o600)
14413 (emacs-substitute-variables "pulseaudio-control.el"
14414 ("pulseaudio-control-pactl-path"
14415 (string-append pulseaudio "/bin/pactl")))
14416 #t))))))
14417 (inputs `(("pulseaudio" ,pulseaudio)))
14418 (home-page "https://github.com/flexibeast/pulseaudio-control")
14419 (synopsis "Control @code{pulseaudio} from Emacs")
14420 (description
14421 "This package allows controlling @code{pulseaudio} from Emacs.")
14422 (license license:gpl3+))))
14423
14424 (define-public emacs-datetime
14425 (package
14426 (name "emacs-datetime")
14427 (version "0.3")
14428 (source
14429 (origin
14430 (method git-fetch)
14431 (uri (git-reference
14432 (url "https://github.com/doublep/datetime")
14433 (commit version)))
14434 (file-name (git-file-name name version))
14435 (sha256
14436 (base32 "0fdswqi53qx924lib7nd9dazn0916xf1ybrh3bcn3f8cn6b8ikg5"))))
14437 (build-system emacs-build-system)
14438 (home-page "https://github.com/doublep/datetime/")
14439 (synopsis "Library to work with dates in Emacs")
14440 (description "Parsing, formatting, matching and recoding
14441 timestamps and date-time format strings library for Emacs.")
14442 (license license:gpl3+)))
14443
14444 (define-public emacs-org-mind-map
14445 (let ((commit "9d6e262bedd94daf9de269f4d56de277275677cb")
14446 (revision "1"))
14447 (package
14448 (name "emacs-org-mind-map")
14449 (version (string-append "0.0.1" "-" revision "."
14450 (string-take commit 7)))
14451 (source
14452 (origin
14453 (method git-fetch)
14454 (uri (git-reference
14455 (url "https://github.com/theodorewiles/org-mind-map")
14456 (commit commit)))
14457 (file-name (git-file-name name version))
14458 (sha256
14459 (base32
14460 "0jgkkgq7g64zckrmjib0hvz0qy3ynz5vz13qbmlpf096l3bb65wn"))))
14461 (propagated-inputs
14462 `(("emacs-dash" ,emacs-dash)))
14463 (build-system emacs-build-system)
14464 (home-page "https://github.com/theodorewiles/org-mind-map")
14465 (synopsis "Create Graphviz directed graphs from Org files")
14466 (description
14467 "This package creates Graphviz directed graphs from Org files.")
14468 (license license:gpl3+))))
14469
14470 (define-public emacs-npm-mode
14471 (package
14472 (name "emacs-npm-mode")
14473 (version "0.6.0")
14474 (source
14475 (origin
14476 (method git-fetch)
14477 (uri (git-reference
14478 (url "https://github.com/mojochao/npm-mode")
14479 (commit version)))
14480 (file-name (git-file-name name version))
14481 (sha256
14482 (base32 "1mh6nbffciw4yhv049kdhh796ysj1x21ndm3fwymhskb3dy0w1ss"))))
14483 (build-system emacs-build-system)
14484 (home-page "https://github.com/mojochao/npm-mode")
14485 (synopsis "Minor mode for working with @code{npm} projects")
14486 (description
14487 "@code{npm-mode} provides a minor mode to work with @code{npm} projects.")
14488 (license license:gpl3+)))
14489
14490 (define-public emacs-seq
14491 (package
14492 (name "emacs-seq")
14493 (version "2.20")
14494 (source
14495 (origin
14496 (method url-fetch)
14497 (uri (string-append "https://elpa.gnu.org/packages/seq-" version ".tar"))
14498 (sha256
14499 (base32
14500 "0vrpx6nnyjb0gsypknzagimlhvcvi5y1rcdkpxyqr42415zr8d0n"))))
14501 (build-system emacs-build-system)
14502 (home-page "https://elpa.gnu.org/packages/seq.html")
14503 (synopsis "Sequence manipulation functions")
14504 (description "Sequence-manipulation functions that complement basic
14505 functions provided by @file{subr.el}.")
14506 (license license:gpl3+)))
14507
14508 (define-public emacs-itail
14509 (let ((commit "6e43c20da03be3b9c6ece93b7dc3495975ec1888")
14510 (revision "1"))
14511 (package
14512 (name "emacs-itail")
14513 (version (string-append "0.0.1" "-" revision "."
14514 (string-take commit 7)))
14515 (source
14516 (origin
14517 (method git-fetch)
14518 (uri (git-reference
14519 (url "https://github.com/re5et/itail")
14520 (commit commit)))
14521 (file-name (git-file-name name version))
14522 (sha256
14523 (base32
14524 "044nzxh1hq41faxw3lix0wy78vfz304pjcaa5a11dqfz7q3gx5cv"))))
14525 (build-system emacs-build-system)
14526 (home-page "https://github.com/re5et/itail")
14527 (synopsis "Interactive @code{tail} Emacs mode")
14528 (description "@code{itail} provides interactive @code{tail} mode
14529 that allows you to filter the tail with unix pipes and highlight the
14530 contents of the tailed file. Works locally or on remote files using
14531 tramp.")
14532 (license license:gpl3+))))
14533
14534 (define-public emacs-loop
14535 (package
14536 (name "emacs-loop")
14537 (version "1.3")
14538 (source
14539 (origin
14540 (method git-fetch)
14541 (uri (git-reference
14542 (url "https://github.com/Wilfred/loop.el")
14543 (commit version)))
14544 (file-name (git-file-name name version))
14545 (sha256
14546 (base32 "1gs95xnmnn8aa4794k7h8mw1sz1nfdh9v0caqj6yvnsdnwy74n5x"))))
14547 (build-system emacs-build-system)
14548 (native-inputs
14549 `(("emacs-ert-runner" ,emacs-ert-runner)
14550 ("emacs-undercover" ,emacs-undercover)))
14551 (arguments
14552 `(#:tests? #t
14553 #:test-command '("ert-runner")))
14554 (home-page "https://github.com/Wilfred/loop.el")
14555 (synopsis "Imperative loop structures for Emacs")
14556 (description "Loop structures familiar to users of other languages. This
14557 library adds a selection of popular loop structures as well as break and
14558 continue.")
14559 (license license:gpl3+)))
14560
14561 (define-public emacs-elisp-refs
14562 (package
14563 (name "emacs-elisp-refs")
14564 (version "1.3")
14565 (source
14566 (origin
14567 (method git-fetch)
14568 (uri (git-reference
14569 (url "https://github.com/Wilfred/elisp-refs")
14570 (commit version)))
14571 (file-name (git-file-name name version))
14572 (sha256
14573 (base32 "0w7k91xf69zc0zkjrw8h8sjdjf9xq9qs5zhvajhd718lzf93564b"))))
14574 (build-system emacs-build-system)
14575 (propagated-inputs
14576 `(("emacs-dash" ,emacs-dash)
14577 ("emacs-f" ,emacs-f)
14578 ("emacs-list-utils" ,emacs-list-utils)
14579 ("emacs-loop" ,emacs-loop)
14580 ("emacs-s" ,emacs-s)
14581 ("emacs-shut-up" ,emacs-shut-up)))
14582 (native-inputs
14583 `(("emacs-ert-runner" ,emacs-ert-runner)
14584 ("emacs-undercover" ,emacs-undercover)))
14585 (arguments
14586 `(#:tests? #t
14587 #:test-command '("ert-runner")))
14588 (home-page "https://github.com/Wilfred/elisp-refs")
14589 (synopsis "Find callers of elisp functions or macros")
14590 (description "Find references to functions, macros or variables. Unlike a
14591 dumb text search, @code{elisp-refs} actually parses the code, so it's never
14592 confused by comments or @code{foo-bar} matching @code{foo}.")
14593 (license license:gpl3+)))
14594
14595 (define-public emacs-crux
14596 (let ((commit "308f17d914e2cd79cbc809de66d02b03ceb82859")
14597 (revision "2"))
14598 (package
14599 (name "emacs-crux")
14600 (version (git-version "0.3.0" revision commit))
14601 (source
14602 (origin
14603 (method git-fetch)
14604 (uri (git-reference
14605 (url "https://github.com/bbatsov/crux")
14606 (commit commit)))
14607 (file-name (git-file-name name version))
14608 (sha256
14609 (base32
14610 "0rf84finwlvmy0xpgyljjvnrijlmkzjyw9rh97svgxp9c1rzfk0x"))))
14611 (build-system emacs-build-system)
14612 (home-page "https://github.com/bbatsov/crux")
14613 (synopsis "Collection of useful functions for Emacs")
14614 (description
14615 "@code{crux} provides a collection of useful functions for Emacs.")
14616 (license license:gpl3+))))
14617
14618 (define-public emacs-edit-server
14619 (package
14620 (name "emacs-edit-server")
14621 (version "1.15")
14622 (source
14623 (origin
14624 (method git-fetch)
14625 (uri (git-reference
14626 (url "https://github.com/stsquad/emacs_chrome")
14627 (commit (string-append "v" version))))
14628 (file-name (git-file-name name version))
14629 (sha256
14630 (base32 "0xxby3ghs38i1l7kag12rnzlzcg9297pm8k6kqq3aqzsg9d2950y"))))
14631 (build-system emacs-build-system)
14632 (arguments
14633 `(#:phases
14634 (modify-phases %standard-phases
14635 (add-after 'unpack 'chdir-elisp
14636 ;; Elisp directory is not in root of the source.
14637 (lambda _
14638 (chdir "servers"))))))
14639 (home-page "https://github.com/stsquad/emacs_chrome")
14640 (synopsis "Server that responds to edit requests from Chromium")
14641 (description
14642 "This package provides an edit server to respond to requests from Emacs.")
14643 (license license:gpl3+)))
14644
14645 (define-public emacs-m-buffer-el
14646 (package
14647 (name "emacs-m-buffer-el")
14648 (version "0.15")
14649 (source
14650 (origin
14651 (method git-fetch)
14652 (uri (git-reference
14653 (url "https://github.com/phillord/m-buffer-el")
14654 (commit (string-append "v" version))))
14655 (file-name (git-file-name name version))
14656 (sha256
14657 (base32
14658 "1sx76i59razwccvn6x7rx5a124bfyjw9fcbxf4gj7nsg33qiq809"))))
14659 (arguments
14660 `(#:phases
14661 (modify-phases %standard-phases
14662 (add-before 'install 'check
14663 (lambda* (#:key inputs #:allow-other-keys)
14664 (invoke "emacs" "--batch" "-L" "."
14665 "-l" "test/m-buffer-test.el"
14666 "-l" "test/m-buffer-at-test.el"
14667 "-f" "ert-run-tests-batch-and-exit"))))))
14668 (build-system emacs-build-system)
14669 (home-page "https://github.com/phillord/m-buffer-el")
14670 (synopsis "List oriented buffer operations for Emacs")
14671 (description "@code{m-buffer} provides a set of list-orientated functions
14672 for operating over the contents of Emacs buffers.")
14673 (license license:gpl3+)))
14674
14675 (define-public emacs-let-alist
14676 (package
14677 (name "emacs-let-alist")
14678 (version "1.0.6")
14679 (source
14680 (origin
14681 (method url-fetch)
14682 (uri (string-append
14683 "https://elpa.gnu.org/packages/let-alist-" version ".el"))
14684 (sha256
14685 (base32 "0szj7vnjzz4zci5fvz7xqgcpi4pzdyyf4qi2s8xar2hi7v3yaawr"))))
14686 (build-system emacs-build-system)
14687 (home-page "https://elpa.gnu.org/packages/let-alist.html")
14688 (synopsis "Easily let-bind values of an assoc-list by their names")
14689 (description "This package offers a single macro, @code{let-alist}. This
14690 macro takes a first argument (whose value must be an alist) and a body.")
14691 (license license:gpl3+)))
14692
14693 (define-public emacs-esup
14694 (let ((commit "a589005a9a888537deef94d6fe38a9b8790c97c7")
14695 (revision "1"))
14696 (package
14697 (name "emacs-esup")
14698 (version (string-append "0.6" "-" revision "."
14699 (string-take commit 7)))
14700 (source
14701 (origin
14702 (method git-fetch)
14703 (uri (git-reference
14704 (url "https://github.com/jschaf/esup")
14705 (commit commit)))
14706 (file-name (git-file-name name version))
14707 (sha256
14708 (base32
14709 "04lxmd0h7mfjjl0qghrycgff0vcv950j1wqv0dbkr61jxp64n5fv"))))
14710 ;; TODO: Add tests
14711 (build-system emacs-build-system)
14712 (home-page "https://github.com/jschaf/esup")
14713 (synopsis "Emacs start up profiler")
14714 (description "Benchmark Emacs Startup time without ever leaving
14715 your Emacs.")
14716 (license license:gpl2+))))
14717
14718 (define-public emacs-restart-emacs
14719 (let ((commit "9aa90d3df9e08bc420e1c9845ee3ff568e911bd9")
14720 (revision "1"))
14721 (package
14722 (name "emacs-restart-emacs")
14723 (version (git-version "0.1.1" revision commit))
14724 (source
14725 (origin
14726 (method git-fetch)
14727 (uri (git-reference
14728 (url "https://github.com/iqbalansari/restart-emacs")
14729 (commit commit)))
14730 (file-name (git-file-name name version))
14731 (sha256
14732 (base32 "02x1a85k7r95z8091zgjiaj9nf0zvx1jy4xvl3hr12qbnrx1wfav"))))
14733 (build-system emacs-build-system)
14734 (home-page "https://github.com/iqbalansari/restart-emacs")
14735 (synopsis "Restart Emacs from within Emacs")
14736 (description "This package provides a simple command to restart Emacs from
14737 within Emacs.")
14738 (license license:gpl3+))))
14739
14740 (define-public emacs-sourcemap
14741 (package
14742 (name "emacs-sourcemap")
14743 (version "0.03")
14744 (source
14745 (origin
14746 (method git-fetch)
14747 (uri (git-reference
14748 (url "https://github.com/syohex/emacs-sourcemap")
14749 (commit version)))
14750 (file-name (git-file-name name version))
14751 (sha256
14752 (base32 "115g2mfpbfywp8xnag4gsb50klfvplqfh928a5mabb5s8v4a3582"))))
14753 (build-system emacs-build-system)
14754 (home-page "https://github.com/syohex/emacs-sourcemap")
14755 (synopsis "Sourcemap parser")
14756 (description "Sourcemap parser")
14757 (license license:gpl3+)))
14758
14759 (define-public emacs-macrostep
14760 (let ((commit "424e3734a1ee526a1bd7b5c3cd1d3ef19d184267"))
14761 (package
14762 (name "emacs-macrostep")
14763 (version (git-version "0.9" "1" commit))
14764 (source (origin
14765 (method git-fetch)
14766 (uri (git-reference
14767 (url "https://github.com/joddie/macrostep")
14768 (commit commit)))
14769 (file-name (git-file-name name version))
14770 (sha256
14771 (base32
14772 "1fm40mxdn289cyzgw992223dgrjmwxn4q8svyyxfaxjrpb38jhjz"))))
14773 (build-system emacs-build-system)
14774 (arguments
14775 '(#:phases
14776 (modify-phases %standard-phases
14777 (add-before 'check 'remove-test
14778 ;; Fails because of requirement ‘/bin/sh’.
14779 (lambda _
14780 (let ((file "macrostep-test.el"))
14781 (chmod file #o644)
14782 (emacs-batch-edit-file file
14783 `(progn (progn (goto-char (point-min))
14784 (re-search-forward
14785 "(ert-deftest macrostep-expand-c-macros")
14786 (beginning-of-line)
14787 (kill-sexp))
14788 (basic-save-buffer))))))
14789 (add-before 'install 'check
14790 (lambda _
14791 (invoke "emacs" "--batch" "-L" "."
14792 "-l" "macrostep-test.el"
14793 "-f" "ert-run-tests-batch-and-exit"))))))
14794 (home-page "https://github.com/joddie/macrostep")
14795 (synopsis "Interactive macro-expander for Emacs")
14796 (description "@code{macrostep} is an Emacs minor mode for interactively
14797 stepping through the expansion of macros in Emacs Lisp source code. It lets
14798 you see exactly what happens at each step of the expansion process by
14799 pretty-printing the expanded forms inline in the source buffer, which is
14800 temporarily read-only while macro expansions are visible. You can expand and
14801 collapse macro forms one step at a time, and evaluate or instrument the
14802 expansions for debugging with Edebug as normal (but see “Bugs and known
14803 limitations”, below). Single-stepping through the expansion is particularly
14804 useful for debugging macros that expand into another macro form. These can be
14805 difficult to debug with Emacs’ built-in macroexpand, which continues expansion
14806 until the top-level form is no longer a macro call.")
14807 (license license:gpl3+))))
14808
14809 (define-public emacs-parent-mode
14810 (package
14811 (name "emacs-parent-mode")
14812 (version "2.3")
14813 (source
14814 (origin
14815 (method git-fetch)
14816 (uri (git-reference
14817 (url "https://github.com/Fanael/parent-mode")
14818 (commit version)))
14819 (file-name (git-file-name name version))
14820 (sha256
14821 (base32 "0i5bc7lyyrx6swqlrp9l5x72yzwi53qn6ldrfs99gh08b3yvsnni"))))
14822 (build-system emacs-build-system)
14823 (home-page "https://github.com/Fanael/parent-mode")
14824 (synopsis "Get major mode's parent modes")
14825 (description "Get major mode's parent modes")
14826 (license license:gpl3+)))
14827
14828 (define-public emacs-lacarte
14829 (package
14830 (name "emacs-lacarte")
14831 (version "0.1")
14832 (source (origin
14833 (method url-fetch)
14834 (uri "https://www.emacswiki.org/emacs/download/lacarte.el")
14835 (sha256
14836 (base32
14837 "1sbmk37ljq5j7dsw5c37sbxvlfgdqswh7bi4dknyjzfxlq50f4am"))))
14838 (build-system emacs-build-system)
14839 (home-page "https://www.emacswiki.org/emacs/lacarte.el")
14840 (synopsis "Execute menu items as commands, with completion")
14841 (description "Execute menu items as commands, with completion.")
14842 (license license:gpl3)))
14843
14844 (define-public emacs-isearch-prop
14845 (let ((commit "4a2765f835dd115d472142da05215c4c748809f4")
14846 (revision "2"))
14847 (package
14848 (name "emacs-isearch-prop")
14849 (version (git-version "0" revision commit))
14850 (source
14851 (origin
14852 (method git-fetch)
14853 (uri (git-reference
14854 (url "https://github.com/emacsmirror/isearch-prop")
14855 (commit commit)))
14856 (file-name (git-file-name name version))
14857 (sha256
14858 (base32
14859 "06gdk5m84q6pxwng8rjxny1zkll8f3m2x6lw4xyib2dvg7iaslh3"))))
14860 (build-system emacs-build-system)
14861 (home-page "https://www.emacswiki.org/emacs/isearch-prop.el")
14862 (synopsis "Extensions to @code{isearch.el}")
14863 (description "The Emacs library @code{isearch-prop.el} lets you search within
14864 contexts. You can limit incremental search to a set of zones of
14865 buffer text, search contexts that in effect constitute a multi-region.
14866 These zones can be defined in various ways, including some ways
14867 provided specially by this library.")
14868 (license license:gpl3+))))
14869
14870 (define-public emacs-company-lua
14871 (let ((commit "29f6819de4d691e5fd0b62893a9f4fbc1c6fcb52")
14872 (revision "2"))
14873 (package
14874 (name "emacs-company-lua")
14875 (version (git-version "0.1" "2" commit))
14876 (source
14877 (origin
14878 (method git-fetch)
14879 (uri (git-reference
14880 (url "https://github.com/ptrv/company-lua")
14881 (commit commit)))
14882 (file-name (git-file-name name version))
14883 (sha256
14884 (base32
14885 "0ny2dcc7c585p7v3j6q0rpkbj1qmf2ismy8a5020jpr585xvz0hh"))))
14886 (build-system emacs-build-system)
14887 (propagated-inputs
14888 `(("emacs-company" ,emacs-company)
14889 ("emacs-s" ,emacs-s)
14890 ("emacs-f" ,emacs-f)
14891 ("emacs-lua-mode" ,emacs-lua-mode)))
14892 (arguments
14893 `(#:include (cons* "^lua\\/" %default-include)))
14894 (home-page "https://github.com/ptrv/company-lua")
14895 (synopsis "Company backend for Lua")
14896 (description
14897 "This package provides Company backend for Lua programming language.")
14898 (license license:gpl3+))))
14899
14900 (define-public emacs-beginend
14901 (package
14902 (name "emacs-beginend")
14903 (version "2.1.0")
14904 (source
14905 (origin
14906 (method git-fetch)
14907 (uri (git-reference
14908 (url "https://github.com/DamienCassou/beginend")
14909 (commit (string-append "v" version))))
14910 (file-name (git-file-name name version))
14911 (sha256
14912 (base32 "1ic5z3qb5sc3mjrjdlg0rqm2l59a43gwnakagns4cilln2a3xdg8"))))
14913 ;; TODO: Run tests.
14914 (build-system emacs-build-system)
14915 (inputs
14916 `(("emacs-undercover" ,emacs-undercover))) ; For tests.
14917 (home-page "https://github.com/DamienCassou/beginend")
14918 (synopsis "Redefine @code{M-<} and @code{M->} for Emacs modes")
14919 (description "@code{beginend} redefines @code{M-<} and @code{M->}
14920 keybindings for Emacs modes so that point moves to meaningful
14921 locations. Redefined keys are still accessible by pressing the same
14922 key again.")
14923 (license license:gpl3+)))
14924
14925 (define-public emacs-mbsync
14926 (let ((commit "b62491c0e0d89eb9c66261a16d7ac81231c9c453")
14927 (revision "4"))
14928 (package
14929 (name "emacs-mbsync")
14930 (version (git-version "0.1.2" revision commit))
14931 (source
14932 (origin
14933 (method git-fetch)
14934 (uri (git-reference
14935 (url "https://github.com/dimitri/mbsync-el")
14936 (commit commit)))
14937 (file-name (git-file-name name version))
14938 (sha256
14939 (base32
14940 "1zlih37mkqjn2czl12zn7lgxxljvrwhqqpbksj9c91zn0f0rm3mz"))))
14941 (build-system emacs-build-system)
14942 (home-page "https://github.com/dimitri/mbsync-el")
14943 (synopsis "Interface to mbsync for Emacs")
14944 (description "This package calls @code{mbsync} from
14945 within Emacs.")
14946 (license license:gpl3+))))
14947
14948 (define-public emacs-ibuffer-projectile
14949 (let ((commit "76496214144687cee0b5139be2e61b1e400cac87")
14950 (revision "2"))
14951 (package
14952 (name "emacs-ibuffer-projectile")
14953 (version (git-version "0.2" revision commit))
14954 (source
14955 (origin
14956 (method git-fetch)
14957 (uri (git-reference
14958 (url "https://github.com/purcell/ibuffer-projectile")
14959 (commit commit)))
14960 (file-name (git-file-name name version))
14961 (sha256
14962 (base32
14963 "0vv9xwb1qd5x8zhqmmsn1nrpd11cql9hxb7483nsdhcfwl4apqav"))))
14964 (build-system emacs-build-system)
14965 (propagated-inputs
14966 `(("emacs-projectile" ,emacs-projectile)))
14967 (home-page "https://github.com/purcell/ibuffer-projectile")
14968 (synopsis "Group ibuffer's list by projectile root")
14969 (description "Adds functionality to Emacs @code{ibuffer} for
14970 grouping buffers by their projectile root directory.")
14971 (license license:gpl3+))))
14972
14973 (define-public emacs-elm-mode
14974 (package
14975 (name "emacs-elm-mode")
14976 (version "0.21.0")
14977 (source
14978 (origin
14979 (method git-fetch)
14980 (uri
14981 (git-reference
14982 (url "https://github.com/jcollard/elm-mode")
14983 (commit (string-append "v" version))))
14984 (file-name (git-file-name name version))
14985 (sha256
14986 (base32 "0iwk4fmw8hq3ry4ky1zc7lgl4cpbnrjyk74c2xzddfspi3ks41fd"))))
14987 (propagated-inputs
14988 `(("emacs-dash" ,emacs-dash)
14989 ("emacs-f" ,emacs-f)
14990 ("emacs-reformatter" ,emacs-reformatter)
14991 ("emacs-s" ,emacs-s)))
14992 (build-system emacs-build-system)
14993 (home-page "https://github.com/jcollard/elm-mode")
14994 (synopsis "Emacs major mode for editing Elm source code")
14995 (description
14996 "This package provides a major mode for editing Elm source code, and
14997 working with common core and third-party Elm tools. Its features are:
14998
14999 @itemize
15000 @item Syntax highlighting
15001 @item Intelligent indentation
15002 @item Integration with elm-make
15003 @item Integration with elm-repl
15004 @item Integration with elm-reactor
15005 @item Integration with elm-package
15006 @item Integration with elm-oracle
15007 @item Integration with elm-format
15008 @item Integration with elm-test
15009 @end itemize")
15010 (license license:gpl3+)))
15011
15012 (define-public emacs-helm-mode-manager
15013 (package
15014 (name "emacs-helm-mode-manager")
15015 (version "1.0.0")
15016 (source
15017 (origin
15018 (method git-fetch)
15019 (uri (git-reference
15020 (url "https://github.com/istib/helm-mode-manager")
15021 (commit version)))
15022 (file-name (git-file-name name version))
15023 (sha256
15024 (base32
15025 "1srx5f0s9x7zan7ayqd6scxfhcvr3nkd4yzs96hphd87rb18apzk"))))
15026 (build-system emacs-build-system)
15027 (propagated-inputs
15028 `(("emacs-helm" ,emacs-helm)))
15029 (home-page "https://github.com/istib/helm-mode-manager/")
15030 (synopsis "Switch and toggle Emacs major and minor modes using Helm")
15031 (description "This package provides a Helm interface for toggling Emacs
15032 major or minor mode.
15033
15034 @itemize
15035 @item @code{helm-switch-major-mode} list of all major modes
15036 @item @code{helm-enable-minor-mode} list of all inactive minor modes
15037 @item @code{helm-disable-minor-mode} list of all ACTIVE minor modes
15038 @end itemize\n
15039
15040 Hitting @code{RET} enables the mode, @code{C-z} shows the mode
15041 documentation.")
15042 (license license:gpl3+)))
15043
15044 (define-public emacs-hy-mode
15045 (package
15046 (name "emacs-hy-mode")
15047 (version "1.0.4")
15048 (source
15049 (origin
15050 (method git-fetch)
15051 (uri (git-reference
15052 (url "https://github.com/hylang/hy-mode")
15053 (commit (string-append "v" version))))
15054 (file-name (git-file-name name version))
15055 (sha256
15056 (base32 "0gihxlmfminadaqdr8d2zccd7wwygl3m0gfzxsk5izi7f8hl4w7f"))))
15057 (build-system emacs-build-system)
15058 (propagated-inputs
15059 `(("emacs-dash" ,emacs-dash)
15060 ("emacs-s" ,emacs-s)))
15061 (home-page "https://github.com/hylang/hy-mode")
15062 (synopsis "Major mode for Hylang")
15063 (description "This package provides a major mode for Hylang.")
15064 (license license:gpl3+)))
15065
15066 (define-public emacs-web-beautify
15067 (package
15068 (name "emacs-web-beautify")
15069 (version "0.3.2")
15070 (source
15071 (origin
15072 (method git-fetch)
15073 (uri (git-reference
15074 (url "https://github.com/yasuyk/web-beautify")
15075 (commit version)))
15076 (file-name (git-file-name name version))
15077 (sha256
15078 (base32 "0vms7zz3ym53wf1zdrkbf2ky2xjr1v134ngsd0jr8azyi8siw84d"))))
15079 (build-system emacs-build-system)
15080 (home-page "https://github.com/yasuyk/web-beautify")
15081 (synopsis "Format HTML, CSS and JavaScript, JSON")
15082 (description "This package provides an Emacs functions to format HTML,
15083 CSS, JavaScript, JSON.")
15084 (license license:gpl3+)))
15085
15086 (define-public emacs-helm-shell-history
15087 (let ((commit "110d3c35c52fe4b89b29e79ea4c8626bce7266a1"))
15088 (package
15089 (name "emacs-helm-shell-history")
15090 (version (git-version "0.1" "1" commit))
15091 (source
15092 (origin
15093 (method git-fetch)
15094 (uri (git-reference
15095 (url "https://github.com/yuutayamada/helm-shell-history")
15096 (commit commit)))
15097 (file-name (git-file-name name version))
15098 (sha256
15099 (base32
15100 "18fkjcz69g4dyaxhf9j8svr5x6dhsdnglddwisis8hdn504scpfj"))))
15101 (build-system emacs-build-system)
15102 (arguments
15103 '(#:phases
15104 (modify-phases %standard-phases
15105 (add-before 'check 'patch-helm-shell-history-file
15106 (lambda _
15107 (let ((file "helm-shell-history.el"))
15108 (chmod file #o644)
15109 (emacs-substitute-sexps file
15110 ("(defvar helm-shell-history-file"
15111 `(expand-file-name "~/.bash_history"))))
15112 #t)))))
15113 (propagated-inputs
15114 `(("emacs-helm" ,emacs-helm)))
15115 (home-page "https://github.com/yuutayamada/helm-shell-history")
15116 (synopsis "Find shell history with Emacs Helm")
15117 (description "This package provides an Emacs Helm interface to search
15118 throw a shell history.")
15119 (license license:gpl3+))))
15120
15121 (define-public emacs-discover-my-major
15122 (package
15123 (name "emacs-discover-my-major")
15124 (version "1.0")
15125 (source
15126 (origin
15127 (method git-fetch)
15128 (uri (git-reference
15129 (url "https://framagit.org/steckerhalter/discover-my-major.git/")
15130 (commit version)))
15131 (file-name (git-file-name name version))
15132 (sha256
15133 (base32
15134 "1wlqyl03hhnflbyay3qlvdzqzvv5rbybcjpfddggda7ias9h0pr4"))))
15135 (build-system emacs-build-system)
15136 (propagated-inputs
15137 `(("emacs-makey" ,emacs-makey)))
15138 (home-page "https://framagit.org/steckerhalter/discover-my-major/")
15139 (synopsis "Discover key bindings for the current Emacs major mode")
15140 (description "This package discovers key bindings and
15141 their meaning for the current Emacs major-mode.")
15142 (license license:gpl3+)))
15143
15144 (define-public emacs-org-ref
15145 ;; No release since June 2017.
15146 (let ((commit "5bb9be2232db72b04754d7e4c02a3976ad422f6f")
15147 (revision "2"))
15148 (package
15149 (name "emacs-org-ref")
15150 (version (git-version "1.1.1" revision commit))
15151 (source
15152 (origin
15153 (method git-fetch)
15154 (uri (git-reference
15155 (url "https://github.com/jkitchin/org-ref")
15156 (commit commit)))
15157 (file-name (git-file-name name version))
15158 (sha256
15159 (base32 "15gcvbfj19kyv4nxa632b261dwhb26m99plq230qhv9ssfwfgxbx"))))
15160 (build-system emacs-build-system)
15161 (propagated-inputs
15162 `(("emacs-dash" ,emacs-dash)
15163 ("emacs-f" ,emacs-f)
15164 ("emacs-helm" ,emacs-helm)
15165 ("emacs-helm-bibtex" ,emacs-helm-bibtex)
15166 ("emacs-htmlize" ,emacs-htmlize)
15167 ("emacs-hydra" ,emacs-hydra)
15168 ("emacs-ivy" ,emacs-ivy)
15169 ("emacs-key-chord" ,emacs-key-chord)
15170 ("emacs-pdf-tools" ,emacs-pdf-tools)
15171 ("emacs-s" ,emacs-s)))
15172 (home-page "https://github.com/jkitchin/org-ref")
15173 (synopsis "Citations, cross-references and bibliographies in Org mode")
15174 (description
15175 "Org Ref is an Emacs library that provides rich support for citations,
15176 labels and cross-references in Org mode.
15177
15178 The basic idea of Org Ref is that it defines a convenient interface to insert
15179 citations from a reference database (e.g., from BibTeX files), and a set of
15180 functional Org links for citations, cross-references and labels that export
15181 properly to LaTeX, and that provide clickable functionality to the user. Org
15182 Ref interfaces with Helm BibTeX to facilitate citation entry, and it can also
15183 use RefTeX.
15184
15185 It also provides a fairly large number of utilities for finding bad citations,
15186 extracting BibTeX entries from citations in an Org file, and functions to
15187 create and modify BibTeX entries from a variety of sources, most notably from
15188 a DOI.
15189
15190 Org Ref is especially suitable for Org documents destined for LaTeX export and
15191 scientific publication. Org Ref is also useful for research documents and
15192 notes.")
15193 (license license:gpl3+))))
15194
15195 (define-public emacs-org-reveal
15196 (let ((commit "84039bb499290926511b04749882ecb5eda45a0c"))
15197 (package
15198 (name "emacs-org-reveal")
15199 (version (git-version "20200607" "1" commit))
15200 (source (origin
15201 (method git-fetch)
15202 (uri (git-reference
15203 (url "https://github.com/yjwen/org-reveal")
15204 (commit commit)))
15205 (file-name (git-file-name name version))
15206 (sha256
15207 (base32
15208 "1fx3xmnkpfljrdmy0dsyq79k93ky57gcqm1ad9qbzykk7qjvmmi8"))))
15209 (build-system emacs-build-system)
15210 (home-page "https://github.com/yjwen/org-reveal")
15211 (synopsis "Org and Reveal.js powered HTML presentation tool")
15212 (description "Org-Reveal is a @command{org-mode} extension that allows
15213 to create beautiful presentations (slides) with 3D effects from simple but
15214 powerful Org contents.")
15215 (license license:gpl3+))))
15216
15217 (define-public emacs-org-re-reveal
15218 (package
15219 (name "emacs-org-re-reveal")
15220 (version "3.0.2")
15221 (source (origin
15222 (method git-fetch)
15223 (uri (git-reference
15224 (url "https://gitlab.com/oer/org-re-reveal")
15225 (commit version)))
15226 (file-name (git-file-name name version))
15227 (sha256
15228 (base32
15229 "1jjawkqrhbm787jkzfnwz1ixjphm5mgrhdi3qhzl0jzbjib5a4bf"))))
15230 (build-system emacs-build-system)
15231 (propagated-inputs
15232 `(("emacs-htmlize" ,emacs-htmlize)
15233 ("emacs-org" ,emacs-org)))
15234 (home-page "https://gitlab.com/oer/org-re-reveal")
15235 (synopsis "Build HTML presentations with reveal.js from Org source files")
15236 (description "This project started as fork of org-reveal. It provides an
15237 export back-end for HTML presentations with reveal.js from Org mode source
15238 files.")
15239 (license license:gpl3+)))
15240
15241 (define-public emacs-add-hooks
15242 (package
15243 (name "emacs-add-hooks")
15244 (version "3.1.1")
15245 (source
15246 (origin
15247 (method git-fetch)
15248 (uri (git-reference
15249 (url "https://github.com/nickmccurdy/add-hooks")
15250 (commit version)))
15251 (file-name (git-file-name name version))
15252 (sha256
15253 (base32 "1jv9fpcsm572zg0j1mbpbfkqgdlqapy89xhhj19pswkhjns1y2wl"))))
15254 (build-system emacs-build-system)
15255 (home-page "https://github.com/nickmccurdy/add-hooks/")
15256 (synopsis "Emacs function for setting multiple hooks")
15257 (description "This package provides a @code{add-hooks} function tidies up
15258 duplicate hook and function names further into a single declarative call.")
15259 (license license:gpl3+)))
15260
15261 (define-public emacs-fancy-narrow
15262 (package
15263 (name "emacs-fancy-narrow")
15264 (version "0.9.5")
15265 (source
15266 (origin
15267 (method git-fetch)
15268 (uri (git-reference
15269 (url "https://github.com/Malabarba/fancy-narrow")
15270 (commit version)))
15271 (file-name (git-file-name name version))
15272 (sha256
15273 (base32 "0vcr1gnqawvc1yclqs23jvxm6bqix8kpflf1c7znb0wzxmz9kx7y"))))
15274 (build-system emacs-build-system)
15275 (home-page "https://github.com/Malabarba/fancy-narrow/releases")
15276 (synopsis "Imitate @code{narrow-to-region} with more eye candy")
15277 (description
15278 "Unlike @code{narrow-to-region}, which completely hides text outside
15279 the narrowed region, this package simply de-emphasizes the text, makes it
15280 read-only, and makes it unreachable. This leads to a much more natural
15281 feeling where the region stays static (instead of being brutally moved to a
15282 blank slate) and is clearly highlighted with respect to the rest of the
15283 buffer.")
15284 (license license:gpl2+)))
15285
15286 (define-public emacs-know-your-http-well
15287 (package
15288 (name "emacs-know-your-http-well")
15289 (version "0.5.0")
15290 (source
15291 (origin
15292 (method git-fetch)
15293 (uri (git-reference
15294 (url "https://github.com/for-GET/know-your-http-well")
15295 (commit (string-append "v" version))))
15296 (file-name (git-file-name name version))
15297 (sha256
15298 (base32 "1lppggnii2r9fvlhh33gbdrwb50za8lnalavlq9s86ngndn4n94k"))))
15299 (arguments
15300 `(#:phases
15301 (modify-phases %standard-phases
15302 (add-after 'unpack 'install-json-files
15303 (lambda* (#:key outputs #:allow-other-keys)
15304 (for-each (lambda (directory)
15305 (copy-recursively directory
15306 (string-append
15307 (assoc-ref outputs "out")
15308 directory)))
15309 '("js" "json"))))
15310 (add-after 'unpack 'chdir-elisp
15311 ;; Elisp directory is not in root of the source.
15312 (lambda _
15313 (chdir "emacs"))))))
15314 (build-system emacs-build-system)
15315 (home-page "https://github.com/for-GET/know-your-http-well")
15316 (synopsis "Meaning of HTTP headers codes")
15317 (description "Meaning of HTTP headers codes.")
15318 (license license:gpl3+)))
15319
15320 (define-public emacs-navi-mode
15321 (let ((commit "c1d38e8237f4e14af020a0b7d4f118ea198ab674"))
15322 (package
15323 (name "emacs-navi-mode")
15324 (version (git-version "2.0" "1" commit))
15325 (source
15326 (origin
15327 (method git-fetch)
15328 (uri (git-reference
15329 (url "https://github.com/alphapapa/navi")
15330 (commit commit)))
15331 (file-name (git-file-name name version))
15332 (sha256
15333 (base32
15334 "0jj5spk14hgb7zb1cd2n8whcw4k1kd5zb6llwj96v178yaws7l8k"))))
15335 (build-system emacs-build-system)
15336 (propagated-inputs
15337 `(("emacs-outshine" ,emacs-outshine)
15338 ("emacs-outorg" ,emacs-outorg)))
15339 (home-page "https://github.com/alphapapa/navi")
15340 (synopsis "Emacs major-mode for easy buffer-navigation")
15341 (description
15342 "This package provides an Emacs major-mode for easy buffer-navigation")
15343 (license license:gpl3+))))
15344
15345 (define-public emacs-download-region
15346 (let ((commit "eb9e557529a73b4cfc8281c70dd0d95db333fffa")
15347 (revision "1"))
15348 (package
15349 (name "emacs-download-region")
15350 (version (string-append "0.0.1" "-" revision "."
15351 (string-take commit 7)))
15352 (source
15353 (origin
15354 (method git-fetch)
15355 (uri (git-reference
15356 (url "https://github.com/zk-phi/download-region")
15357 (commit commit)))
15358 (file-name (git-file-name name version))
15359 (sha256
15360 (base32
15361 "0v52djg39b6k2snizd9x0qc009ws5y0ywqsfwhqgcbs5ymzh7dsc"))))
15362 (build-system emacs-build-system)
15363 (home-page "https://github.com/zk-phi/download-region")
15364 (synopsis "In buffer download manager for Emacs")
15365 (description "@code{download-region} provides in buffer
15366 downloading manager for Emacs.")
15367 (license license:gpl3+))))
15368
15369 (define-public emacs-helpful
15370 (package
15371 (name "emacs-helpful")
15372 (version "0.17")
15373 (source
15374 (origin
15375 (method git-fetch)
15376 (uri (git-reference
15377 (url "https://github.com/Wilfred/helpful")
15378 (commit version)))
15379 (file-name (git-file-name name version))
15380 (sha256
15381 (base32 "0v2y0x9pwi08y2mgjjiw5brfb5haa7pbmy4540glw904ffxxcblj"))))
15382 (build-system emacs-build-system)
15383 (propagated-inputs
15384 `(("emacs-elisp-refs" ,emacs-elisp-refs)
15385 ("emacs-dash" ,emacs-dash)
15386 ("emacs-s" ,emacs-s)
15387 ("emacs-f" ,emacs-f)
15388 ("emacs-shut-up" ,emacs-shut-up)))
15389 (native-inputs
15390 `(("emacs-ert-runner" ,emacs-ert-runner)
15391 ("emacs-undercover" ,emacs-undercover)))
15392 (arguments
15393 `(#:tests? #t
15394 #:test-command '("ert-runner")))
15395 (home-page "https://github.com/Wilfred/helpful")
15396 (synopsis "More contextual information in Emacs help")
15397 (description "@code{helpful} is an alternative to the built-in Emacs help
15398 that provides much more contextual information.
15399
15400 @itemize
15401 @item Show the source code for interactively defined functions (unlike the
15402 built-in Help).
15403 @item Fall back to the raw sexp if no source is available.
15404 @item Show where a function is being called.
15405 @item Docstrings will Highlight the summary (the first sentence), include
15406 cross-references, hide superfluous puncuation.
15407 @item Show you the properties that have been applied to the current
15408 symbol. This provides visibility of features like edebug or byte-code
15409 optimisation.
15410 @item Provide a separate @code{helpful-command} function to view interactive
15411 functions.
15412 @item Display any keybindings that apply to interactive functions.
15413 @item Trace, disassemble functions from inside Helpful. This is discoverable
15414 and doesn't require memorisation of commands.
15415 @end itemize\n")
15416 (license license:gpl3+)))
15417
15418 (define-public emacs-logview
15419 (package
15420 (name "emacs-logview")
15421 (version "0.9")
15422 (source
15423 (origin
15424 (method git-fetch)
15425 (uri (git-reference
15426 (url "https://github.com/doublep/logview")
15427 (commit version)))
15428 (file-name (git-file-name name version))
15429 (sha256
15430 (base32 "1qhzs75pxnaksbhczmpdcy2zmrqavlzkzss7ik5nv2wf9vs0sn02"))))
15431 (propagated-inputs
15432 `(("emacs-datetime" ,emacs-datetime)))
15433 (build-system emacs-build-system)
15434 (home-page "https://github.com/doublep/logview/")
15435 (synopsis "Emacs mode for viewing log files")
15436 (description "@code{logview} provides an Emacs mode to view log files.")
15437 (license license:gpl3+)))
15438
15439 (define-public emacs-suggest
15440 (package
15441 (name "emacs-suggest")
15442 (version "0.7")
15443 (home-page "https://github.com/Wilfred/suggest.el")
15444 (source
15445 (origin
15446 (method git-fetch)
15447 (uri (git-reference
15448 (url home-page)
15449 (commit version)))
15450 (file-name (git-file-name name version))
15451 (sha256
15452 (base32
15453 "01v8plska5d3g19sb1m4ph1i3ayprfzk8mi6mpabjy6zad397xjl"))))
15454 (build-system emacs-build-system)
15455 (propagated-inputs
15456 `(("emacs-loop" ,emacs-loop)
15457 ("emacs-dash" ,emacs-dash)
15458 ("emacs-s" ,emacs-s)
15459 ("emacs-f" ,emacs-f)
15460 ("emacs-spinner" ,emacs-spinner)
15461 ("emacs-shut-up" ,emacs-shut-up)))
15462 (native-inputs
15463 `(("emacs-ert-runner" ,emacs-ert-runner)
15464 ("emacs-undercover" ,emacs-undercover)))
15465 (arguments
15466 `(#:tests? #t
15467 #:test-command '("ert-runner")))
15468 (synopsis "Suggest Elisp functions that give the output requested")
15469 (description "Suggest.el will find functions that give the output
15470 requested. It's a great way of exploring list, string and arithmetic
15471 functions.")
15472 (license license:gpl3+)))
15473
15474 (define-public emacs-benchmark-init
15475 (package
15476 (name "emacs-benchmark-init")
15477 (version "1.0")
15478 (source
15479 (origin
15480 (method git-fetch)
15481 (uri (git-reference
15482 (url "https://github.com/dholm/benchmark-init-el")
15483 (commit version)))
15484 (file-name (git-file-name name version))
15485 (sha256
15486 (base32 "1kyn1izm5sbqbp9whnhk9dn3yc7zy8bz5san5w3ivi3rpx15fh94"))))
15487 (build-system emacs-build-system)
15488 (home-page "https://github.com/dholm/benchmark-init-el")
15489 (synopsis "Benchmark Emacs @code{require} and @code{load} calls")
15490 (description "@code{benchmark-init} provides a way to keep track of where
15491 time is being spent during Emacs startup in order to optimize startup time.")
15492 (license license:gpl3+)))
15493
15494 (define-public emacs-magit-gerrit
15495 (let ((version "0.3")
15496 (revision "1")
15497 (commit "ece6f369694aca17f3ac166ed2801b432acfe20d"))
15498 (package
15499 (name "emacs-magit-gerrit")
15500 (version (git-version version revision commit))
15501 (source (origin
15502 (method git-fetch)
15503 (uri (git-reference
15504 (url "https://github.com/terranpro/magit-gerrit")
15505 (commit commit)))
15506 (file-name (git-file-name name version))
15507 (sha256
15508 (base32
15509 "0mms0gxv9a3ns8lk5k2wjibm3088y1cmpr3axjdh6ppv7r5wdvii"))))
15510 (build-system emacs-build-system)
15511 (propagated-inputs
15512 `(("emacs-magit" ,emacs-magit)))
15513 (home-page "https://github.com/terranpro/magit-gerrit")
15514 (synopsis "Magit extension for Gerrit")
15515 (description "This Magit extension provides integration with Gerrit,
15516 which makes it possible to conduct Gerrit code reviews directly from within
15517 Emacs.")
15518 (license license:gpl3+))))
15519
15520 (define-public emacs-magit-org-todos-el
15521 (let ((commit "df206287737b9671f2e36ae7b1474ebbe9940d2a"))
15522 (package
15523 (name "emacs-magit-org-todos-el")
15524 (version (git-version "0.1.1" "1" commit))
15525 (source
15526 (origin
15527 (method git-fetch)
15528 (uri (git-reference
15529 (url "https://github.com/danielma/magit-org-todos.el")
15530 (commit commit)))
15531 (file-name (git-file-name name version))
15532 (sha256
15533 (base32
15534 "0kdp7k7jnnrkhsg0xh1c3h7iz0vgi120gf5xwl1hxy61avivnxrn"))))
15535 (propagated-inputs
15536 `(("magit" ,emacs-magit)))
15537 (build-system emacs-build-system)
15538 (home-page "https://github.com/danielma/magit-org-todos.el")
15539 (synopsis "Get todo.org into Emacs Magit status")
15540 (description "This package allows you to get @file{todo.org} into your
15541 magit status.
15542
15543 If you have a @file{todo.org} file with @code{TODO} items in the root of your
15544 repository, @code{magit-org-todos} will create a section in your Magit status
15545 buffer with each of your todos.")
15546 (license license:gpl3+))))
15547
15548 (define-public emacs-vcsh
15549 (package
15550 (name "emacs-vcsh")
15551 (version "0.4.4")
15552 (source
15553 (origin
15554 (method git-fetch)
15555 (uri (git-reference
15556 (url "https://gitlab.com/stepnem/vcsh-el.git")
15557 (commit version)))
15558 (file-name (git-file-name name version))
15559 (sha256
15560 (base32 "183pffdiqb7qqmjq31wxl3fpv8qswqgg99gb716rddiyk15ysri7"))))
15561 (build-system emacs-build-system)
15562 (home-page "https://gitlab.com/stepnem/vcsh-el")
15563 (synopsis "Emacs VCSH integration")
15564 (description
15565 "This library provides basic ``enter'' functionality and a few
15566 convenience commands to initialize a @acronym{VCSH, Version Control System for
15567 $HOME} repository and add files to it. It can be used in conjunction with
15568 Magit.")
15569 (license license:public-domain)))
15570
15571 (define-public emacs-f3
15572 (package
15573 (name "emacs-f3")
15574 (version "0.1")
15575 (source
15576 (origin
15577 (method git-fetch)
15578 (uri (git-reference
15579 (url "https://github.com/cosmicexplorer/f3")
15580 (commit version)))
15581 (file-name (git-file-name name version))
15582 (sha256
15583 (base32 "1qg48zbjdjqimw4516ymrsilz41zkib9321q0caf9474s9xyp2bi"))))
15584 (build-system emacs-build-system)
15585 (propagated-inputs
15586 `(("emacs-helm" ,emacs-helm)))
15587 (home-page "https://github.com/cosmicexplorer/f3")
15588 (synopsis "Fantastic File Finder for Emacs")
15589 (description
15590 "The Fantastic File Finder for Emacs. Find files fast, using helm.")
15591 (license license:gpl3+)))
15592
15593 (define-public emacs-lice-el
15594 (let ((commit "4339929927c62bd636f89bb39ea999d18d269250"))
15595 (package
15596 (name "emacs-lice-el")
15597 (version (git-version "0.2" "1" commit))
15598 (source (origin
15599 (method git-fetch)
15600 (uri (git-reference
15601 (url "https://github.com/buzztaiki/lice-el")
15602 (commit commit)))
15603 (file-name (git-file-name name version))
15604 (sha256
15605 (base32
15606 "0879z761b7gajkhq176ps745xpdrivch349crransv8fnsc759yb"))))
15607 (build-system emacs-build-system)
15608 (home-page "https://github.com/buzztaiki/lice-el")
15609 (synopsis "License and header template for Emacs")
15610 (description "@code{lice.el} provides following features:
15611
15612 @itemize
15613 @item License template management.
15614 @item File header insertion.
15615 @end itemize\n")
15616 (license license:gpl3+))))
15617
15618 (define-public emacs-academic-phrases
15619 (let ((commit "0823ed8c24b26c32f909b896a469833ec4d7b656"))
15620 (package
15621 (name "emacs-academic-phrases")
15622 (version (git-version "0.1" "1" commit))
15623 (source
15624 (origin
15625 (method git-fetch)
15626 (uri (git-reference
15627 (url "https://github.com/nashamri/academic-phrases")
15628 (commit commit)))
15629 (file-name (git-file-name name version))
15630 (sha256
15631 (base32
15632 "0qfzsq8jh05w4zkr0cvq3i1hdn97bq344vcqjg46sib26x3wpz6r"))))
15633 (build-system emacs-build-system)
15634 (propagated-inputs
15635 `(("emacs-dash" ,emacs-dash)
15636 ("emacs-s" ,emacs-s)
15637 ("emacs-ht" ,emacs-ht)))
15638 (home-page "https://github.com/nashamri/academic-phrases")
15639 (synopsis "Bypass that mental block when writing your papers")
15640 (description
15641 "When writing your academic paper, you might get stuck trying to find
15642 the right phrase that captures your intention. This package tries to
15643 alleviate that problem by presenting you with a list of phrases organized by
15644 the topic or by the paper section that you are writing. This package has
15645 around 600 phrases so far.
15646
15647 Using this package is easy, just call @code{academic-phrases} to get a list of
15648 phrases organized by topic, or call @code{academic-phrases-by-section} to
15649 browse the phrases by the paper section and fill-in the blanks if required.")
15650 (license license:gpl3+))))
15651
15652 (define-public emacs-auto-yasnippet
15653 (let ((commit "624b0d9711222073a2a3f2186e2605eb99fc83c9")
15654 (revision "2"))
15655 (package
15656 (name "emacs-auto-yasnippet")
15657 (version (git-version "0.3.0" revision commit))
15658 (source (origin
15659 (method git-fetch)
15660 (uri (git-reference
15661 (url "https://github.com/abo-abo/auto-yasnippet")
15662 (commit commit)))
15663 (file-name (git-file-name name version))
15664 (sha256
15665 (base32
15666 "15g8wi067f345xhpi0c12w0h04p4f4lpccwmdjdfj8hzfl4gyxy9"))))
15667 (build-system emacs-build-system)
15668 (arguments
15669 '(#:tests? #t
15670 #:test-command '("make" "test")))
15671 (propagated-inputs
15672 `(("emacs-yasnippet" ,emacs-yasnippet)))
15673 (home-page "https://github.com/abo-abo/auto-yasnippet/")
15674 (synopsis "Quickly create disposable yasnippets")
15675 (description "This package provides a hybrid of keyboard macros and
15676 yasnippet. You create the snippet on the go, usually to be used just in the
15677 one place. It's fast, because you're not leaving the current buffer, and all
15678 you do is enter the code you'd enter anyway, just placing ~ where you'd like
15679 yasnippet fields and mirrors to be.")
15680 (license license:gpl3+))))
15681
15682 (define-public emacs-highlight-numbers
15683 (package
15684 (name "emacs-highlight-numbers")
15685 (version "0.2.3")
15686 (source
15687 (origin
15688 (method git-fetch)
15689 (uri (git-reference
15690 (url "https://github.com/Fanael/highlight-numbers")
15691 (commit version)))
15692 (file-name (git-file-name name version))
15693 (sha256
15694 (base32 "1r07mpyr7rhd7bkg778hx6vbhb4n9ixgzkpszhgks7ri6ia38pj8"))))
15695 (build-system emacs-build-system)
15696 (propagated-inputs
15697 `(("emacs-parent-mode" ,emacs-parent-mode)))
15698 (home-page "https://github.com/Fanael/highlight-numbers")
15699 (synopsis "Highlight numbers in source code")
15700 (description "@code{highlight-numbers-mode} provides a minor mode for
15701 syntax highlighting of numeric literals in source code.
15702
15703 It s customizable: it's easy to add or redefine what exactly consitutes a
15704 \"number\" in given major mode. See @code{highlight-numbers-modelist}.")
15705 (license license:gpl3+)))
15706
15707 (define-public emacs-darkroom
15708 (package
15709 (name "emacs-darkroom")
15710 (version "0.3")
15711 (source
15712 (origin
15713 (method url-fetch)
15714 (uri (string-append "https://elpa.gnu.org/packages/"
15715 "darkroom-" version ".el"))
15716 (sha256
15717 (base32 "0l1xg5kqmjw22k78qnsln0ifx2dx74xxqj0qp8xxcpqvzzx0xh86"))))
15718 (build-system emacs-build-system)
15719 (home-page "https://elpa.gnu.org/packages/darkroom.html")
15720 (synopsis "Remove visual distractions and focus on writing")
15721 (description "@code{darkroom-mode} makes visual distractions disappear.
15722 The mode-line is temporarily elided, text is enlarged and margins are adjusted
15723 so that it's centered on the window.
15724
15725 @code{darkroom-tentative-mode} is similar, but it doesn't immediately turn-on
15726 @code{darkroom-mode}, unless the current buffer lives in the sole window of
15727 the Emacs frame (i.e. all other windows are deleted). Whenever the frame is
15728 split to display more windows and more buffers, the buffer exits
15729 @code{darkroom-mode}. Whenever they are deleted, the buffer re-enters
15730 @code{darkroom-mode}.")
15731 (license license:gpl3+)))
15732
15733 (define-public emacs-rsw-elisp
15734 (package
15735 (name "emacs-rsw-elisp")
15736 (version "1.0.5")
15737 (source (origin
15738 (method git-fetch)
15739 (uri (git-reference
15740 (url "https://github.com/rswgnu/rsw-elisp")
15741 (commit version)))
15742 (file-name (git-file-name name version))
15743 (sha256
15744 (base32
15745 "0dfq8myg0r91900bk1s70amsmm4mjk2qsg12v5pk7lla5d2vnyaf"))))
15746 (build-system emacs-build-system)
15747 (home-page "https://github.com/rswgnu/rsw-elisp")
15748 (synopsis "Improved expressions that interactively evaluate Emacs Lisp")
15749 (description "This package improves and replaces the GNU Emacs commands
15750 that interactively evaluate Emacs Lisp expressions. The new commands replace
15751 standard key bindings and are all prefixed with @code{rsw-elisp-}. They work
15752 the same way as the old commands when called non-interactively; only the
15753 interactive behavior should be different.")
15754 (license license:gpl3+)))
15755
15756 (define-public emacs-default-text-scale
15757 (let ((commit "968e985e219235f3e744d6d967e592acbaf6e0a8")
15758 (revision "1"))
15759 (package
15760 (name "emacs-default-text-scale")
15761 (version (string-append "0.1" "-" revision "."
15762 (string-take commit 7)))
15763 (source (origin
15764 (method git-fetch)
15765 (uri (git-reference
15766 (url "https://github.com/purcell/default-text-scale")
15767 (commit commit)))
15768 (file-name (git-file-name name version))
15769 (sha256
15770 (base32
15771 "0zds01c3q5yny6ab1fxfkzzgn1kgl3q23lxxap905f4qd70v922h"))))
15772 (build-system emacs-build-system)
15773 (home-page "https://github.com/purcell/default-text-scale")
15774 (synopsis "Adjust the font size in all Emacs frames")
15775 (description "This package provides commands for increasing or
15776 decreasing the default font size in all GUI Emacs frames.")
15777 (license license:gpl3+))))
15778
15779 (define-public emacs-mixed-pitch
15780 (package
15781 (name "emacs-mixed-pitch")
15782 (version "1.0.1")
15783 (source
15784 (origin
15785 (method git-fetch)
15786 (uri (git-reference
15787 (url "https://gitlab.com/jabranham/mixed-pitch.git")
15788 (commit version)))
15789 (file-name (git-file-name name version))
15790 (sha256
15791 (base32 "1458sy5b6bis1i0k23jdqk6hfqg0ghk637r3ajql2g19ym48rf58"))))
15792 (build-system emacs-build-system)
15793 (home-page "https://gitlab.com/jabranham/mixed-pitch")
15794 (synopsis "Mix variable- and fixed-pitch fonts in the same Emacs buffer")
15795 (description
15796 "@code{mixed-pitch-mode} is a minor mode that enables mixing
15797 variable-pitch and fixed-pitch fonts in the same buffer. The list
15798 @code{mixed-pitch-fixed-pitch-faces} defines the faces that are kept
15799 fixed-pitch,everything else becomes variable-pitch.")
15800 (license license:gpl3+)))
15801
15802 (define-public emacs-visual-regexp
15803 (package
15804 (name "emacs-visual-regexp")
15805 (version "1.1.1")
15806 (source
15807 (origin
15808 (method git-fetch)
15809 (uri (git-reference
15810 (url "https://github.com/benma/visual-regexp.el")
15811 (commit (string-append "v" version))))
15812 (file-name (git-file-name name version))
15813 (sha256
15814 (base32 "12zpmzwyp85dzsjpxd3279kpfi9yz3jwc1k9fnb3xv3pjiil5svg"))))
15815 (build-system emacs-build-system)
15816 (home-page "https://github.com/benma/visual-regexp.el/")
15817 (synopsis "Regexp command with interactive visual feedback")
15818 (description "This package provides an Emacs regexp command with
15819 interactive visual feedback.")
15820 (license license:gpl3+)))
15821
15822 (define-public emacs-faceup
15823 (let ((commit "6c92dad56a133e14e7b27831e1bcf9b3a71ff154")
15824 (revision "1"))
15825 (package
15826 (name "emacs-faceup")
15827 (version (string-append "0.0.1" "-" revision "."
15828 (string-take commit 7)))
15829 (source
15830 (origin
15831 (method git-fetch)
15832 (uri (git-reference
15833 (url "https://github.com/Lindydancer/faceup")
15834 (commit commit)))
15835 (file-name (git-file-name name version))
15836 (sha256
15837 (base32
15838 "1yzmy7flrhrh0i10bdszx8idx6r8h6czm4vm4q0z6fp5fw94zwrx"))))
15839 (build-system emacs-build-system)
15840 (home-page "https://github.com/Lindydancer/faceup")
15841 (synopsis "Markup language for faces and font-lock regression testing")
15842 (description "Emacs is capable of highlighting buffers based on
15843 language-specific @code{font-lock} rules. This package makes it possible to
15844 perform regression test for packages that provide font-lock rules.")
15845 (license license:gpl3+))))
15846
15847 (define-public emacs-racket-mode
15848 (let ((commit "5eb31a284c8db5102bc71b1e2c6ce3a095ae085b")
15849 (revision "6"))
15850 (package
15851 (name "emacs-racket-mode")
15852 (version (git-version "0.0.2" revision commit))
15853 (source
15854 (origin
15855 (method git-fetch)
15856 (uri (git-reference
15857 (url "https://github.com/greghendershott/racket-mode")
15858 (commit commit)))
15859 (file-name (git-file-name name version))
15860 (sha256
15861 (base32
15862 "081h6rd0gv88m0wvnmghi242kl39x1sz34qr4cq9vz04iwvnmgrm"))))
15863 (build-system emacs-build-system)
15864 (arguments
15865 `(#:include '("\\.el$" "\\.rkt$")))
15866 (propagated-inputs
15867 `(("emacs-faceup" ,emacs-faceup)
15868 ("emacs-pos-tip" ,emacs-pos-tip)
15869 ("emacs-s" ,emacs-s)))
15870 (home-page "https://www.racket-mode.com/")
15871 (synopsis "Major mode for the Racket language")
15872 (description "@code{racket-mode} provides:
15873
15874 @itemize
15875 @item Focus on Racket (not various Schemes).
15876 @item Follow DrRacket concepts where applicable.
15877 @item Thorough font-lock and indent.
15878 @end itemize\n")
15879 (license license:gpl3+))))
15880
15881 (define-public emacs-grep-context
15882 (let ((commit "5a4e3efdf775755c1bbefcfe4b461c1166d81d7d")
15883 (revision "1"))
15884 (package
15885 (name "emacs-grep-context")
15886 (version (git-version "0.1.0" revision commit))
15887 (source
15888 (origin
15889 (method git-fetch)
15890 (uri (git-reference
15891 (url "https://github.com/mkcms/grep-context")
15892 (commit commit)))
15893 (file-name (git-file-name name version))
15894 (sha256
15895 (base32
15896 "00q7l4a3c0ay6g5ff9bfa2qgkiswsyh4s6pqnpg0zpzhvv5710f5"))))
15897 (build-system emacs-build-system)
15898 (propagated-inputs
15899 `(("emacs-dash" ,emacs-dash)))
15900 (home-page "https://github.com/mkcms/grep-context")
15901 (synopsis "Increase context in compilation and grep buffers")
15902 (description
15903 "This package provides an Emacs package for more context in
15904 compilation/grep buffers. Works with @code{wgrep}, @code{ack}, @code{ag},
15905 @code{ivy}.")
15906 (license license:gpl3+))))
15907
15908 (define-public emacs-helm-firefox
15909 (let ((commit "0ad34b7b5abc485a86cae6920c14de861cbeb085")
15910 (revision "1"))
15911 (package
15912 (name "emacs-helm-firefox")
15913 (version (string-append "0.0.1" "-" revision "."
15914 (string-take commit 7)))
15915 (source
15916 (origin
15917 (method git-fetch)
15918 (uri (git-reference
15919 (url "https://github.com/emacs-helm/helm-firefox")
15920 (commit commit)))
15921 (file-name (git-file-name name version))
15922 (sha256
15923 (base32
15924 "08mjsi2f9s29fkk35cj1rrparjnkm836qmbfdwdz7y51f9varjbs"))))
15925 (propagated-inputs
15926 `(("emacs-helm" ,emacs-helm)))
15927 (build-system emacs-build-system)
15928 (home-page "https://github.com/emacs-helm/helm-firefox")
15929 (synopsis "Display firefox bookmarks with Emacs Helm interface")
15930 (description "Display firefox bookmarks with Emacs Helm interface")
15931 (license license:gpl3+))))
15932
15933 (define-public emacs-interactive-align
15934 (package
15935 (name "emacs-interactive-align")
15936 (version "0.4.2")
15937 (source
15938 (origin
15939 (method git-fetch)
15940 (uri (git-reference
15941 (url "https://github.com/mkcms/interactive-align")
15942 (commit (string-append "v" version))))
15943 (file-name (git-file-name name version))
15944 (sha256
15945 (base32
15946 "0bh03w91i622hbar5dcq631ndxx1y8kd3h655pgw1g0lqkv1mlnc"))))
15947 (build-system emacs-build-system)
15948 (home-page "https://github.com/mkcms/interactive-align/")
15949 (synopsis "Interactive align-regexp command in Emacs")
15950 (description "Interactive align-regexp command in Emacs")
15951 (license license:gpl3+)))
15952
15953 (define-public emacs-shift-number
15954 (package
15955 (name "emacs-shift-number")
15956 (version "0.1")
15957 (source
15958 (origin
15959 (method git-fetch)
15960 (uri (git-reference
15961 (url "https://github.com/alezost/shift-number.el")
15962 (commit (string-append "v" version))))
15963 (file-name (git-file-name name version))
15964 (sha256
15965 (base32
15966 "0zlwmzsxkv4mkggylxfx2fkrwgz7dz3zbg2gkn2rxcpy2k2gla64"))))
15967 (build-system emacs-build-system)
15968 (home-page "https://github.com/alezost/shift-number.el")
15969 (synopsis "Increase or decrease the number at point")
15970 (description "@code{emacs-shift-number} provides commands
15971 @code{shift-number-up} to increase and @code{shift-number-down} to
15972 decrease the number at point.")
15973 (license license:gpl3+)))
15974
15975 (define-public emacs-highlight-defined
15976 (package
15977 (name "emacs-highlight-defined")
15978 (version "0.1.5")
15979 (source
15980 (origin
15981 (method git-fetch)
15982 (uri (git-reference
15983 (url "https://github.com/Fanael/highlight-defined")
15984 (commit version)))
15985 (file-name (git-file-name name version))
15986 (sha256
15987 (base32 "08czwa165rnd5z0dwwdddn7zi5w63sdk31l47bj0598kbly01n7r"))))
15988 (build-system emacs-build-system)
15989 (home-page "https://github.com/Fanael/highlight-defined")
15990 (synopsis "Syntax highlighting of known Elisp symbols")
15991 (description "Minor mode providing syntax highlighting of known Emacs Lisp
15992 symbols. Currently the code distinguishes Lisp functions, built-in functions,
15993 macros, faces and variables. To enable call @code{highlight-defined-mode}. ")
15994 (license license:gpl3+)))
15995
15996 (define-public emacs-parinfer-mode
15997 (package
15998 (name "emacs-parinfer-mode")
15999 (version "0.4.10")
16000 (source
16001 (origin
16002 (method git-fetch)
16003 (uri (git-reference
16004 (url "https://github.com/DogLooksGood/parinfer-mode")
16005 (commit (string-append "v" version))))
16006 (file-name (git-file-name name version))
16007 (sha256
16008 (base32 "0v97ncb0w1slb0x8861l3yr1kqz6fgw1fwl1z9lz6hh8p2ih34sk"))))
16009 (propagated-inputs
16010 `(("emacs-dash" ,emacs-dash)
16011 ("emacs-rainbow-delimiters" ,emacs-rainbow-delimiters)
16012 ("emacs-company" ,emacs-company)))
16013 (build-system emacs-build-system)
16014 (home-page "https://github.com/DogLooksGood/parinfer-mode/")
16015 (synopsis "Lisp structure editing mode")
16016 (description "@code{parinfer-mode} is a proof-of-concept editor
16017 mode for Lisp programming languages. It will infer some changes to
16018 keep Parens and Indentation inline with one another.")
16019 (license license:gpl3+)))
16020
16021 (define-public emacs-helm-eww
16022 (package
16023 (name "emacs-helm-eww")
16024 (version "1.2")
16025 (source (origin
16026 (method git-fetch)
16027 (uri (git-reference
16028 (url "https://github.com/emacs-helm/helm-eww")
16029 (commit version)))
16030 (file-name (git-file-name name version))
16031 (sha256
16032 (base32
16033 "0hpq1h0p69c9k6hkd2mjpprx213sc5475q7pr2zpmwrjdzgcv70z"))))
16034 (propagated-inputs
16035 `(("emacs-helm" ,emacs-helm)))
16036 (build-system emacs-build-system)
16037 (home-page "https://github.com/emacs-helm/helm-eww/")
16038 (synopsis "Helm interface to EWW")
16039 (description "This package provides a Helm interface for EWW buffers,
16040 bookmarks and history.")
16041 (license license:gpl3+)))
16042
16043 (define-public emacs-stumpwm-mode
16044 (let ((commit "920f8fc1488f7953f205e1dda4c2ecbbbda56d6")
16045 (revision "3"))
16046 (package
16047 (name "emacs-stumpwm-mode")
16048 (version (git-version "0.0.1" revision commit))
16049 (source (origin
16050 (method git-fetch)
16051 (uri (git-reference
16052 (url "https://github.com/stumpwm/stumpwm-contrib")
16053 (commit commit)))
16054 (file-name (git-file-name name version))
16055 (sha256
16056 (base32
16057 "0giac390bq95ag41xkxqp8jjrhfx1wpgglz7jg5rkm0wjhcwmyml"))))
16058 (build-system emacs-build-system)
16059 (arguments
16060 `(#:phases
16061 (modify-phases %standard-phases
16062 (add-after 'unpack 'chdir-elisp
16063 ;; Elisp directory is not in root of the source.
16064 (lambda _
16065 (chdir "util/swm-emacs"))))))
16066 (home-page "https://github.com/stumpwm/stumpwm-contrib")
16067 (synopsis "Emacs minor-mode for Stumpwm")
16068 (description "Emacs minor-mode for Stumpwm")
16069 (license license:gpl3+))))
16070
16071 (define-public emacs-irfc
16072 (package
16073 (name "emacs-irfc")
16074 (version "20130824.507-1")
16075 (source
16076 (origin
16077 (method url-fetch)
16078 (uri "https://www.emacswiki.org/emacs/download/irfc.el")
16079 (file-name (string-append "irfc-" version ".el"))
16080 (sha256
16081 (base32
16082 "0rbfrza56kvspvgrwg0b5bj30d0qncqdsmfxn3y5caq4ifcj77hv"))))
16083 (build-system emacs-build-system)
16084 (home-page "https://www.emacswiki.org/emacs/download/irfc.el")
16085 (synopsis "Interface for IETF RFC document")
16086 (description
16087 "This package provides an Emacs interface for IETF RFC document.")
16088 (license license:gpl3+)))
16089
16090 (define-public emacs-ido-vertical-mode
16091 (package
16092 (name "emacs-ido-vertical-mode")
16093 (version "0.1.6")
16094 (source
16095 (origin
16096 (method git-fetch)
16097 (uri (git-reference
16098 (url "https://github.com/creichert/ido-vertical-mode.el")
16099 (commit (string-append "v" version))))
16100 (file-name (git-file-name name version))
16101 (sha256
16102 (base32 "1lv82q639xjnmvby56nwqn23ijh6f163bk675s33dkingm8csj8k"))))
16103 (build-system emacs-build-system)
16104 (home-page "https://github.com/creichert/ido-vertical-mode.el")
16105 (synopsis "Makes ido-mode display vertically")
16106 (description "Makes ido-mode display prospects vertically.")
16107 (license license:gpl3+)))
16108
16109 (define-public emacs-wordgen
16110 (package
16111 (name "emacs-wordgen")
16112 (version "0.1.4")
16113 (source
16114 (origin
16115 (method git-fetch)
16116 (uri (git-reference
16117 (url "https://github.com/Fanael/wordgen.el")
16118 (commit version)))
16119 (file-name (git-file-name name version))
16120 (sha256
16121 (base32 "06vbc9ycz1nbjwjkg99y3lj6jwb6lnwnmkqf09yr00jjrrfhfash"))))
16122 (build-system emacs-build-system)
16123 (home-page "https://github.com/Fanael/wordgen.el")
16124 (synopsis "Random word generator")
16125 (description "This package provides functions to generate random words
16126 using user-provided rules.")
16127 (license license:gpl3+)))
16128
16129 (define-public emacs-on-screen
16130 (package
16131 (name "emacs-on-screen")
16132 (version "1.3.3")
16133 (source
16134 (origin
16135 (method url-fetch)
16136 (uri (string-append
16137 "https://elpa.gnu.org/packages/on-screen-" version ".el"))
16138 (file-name (string-append name "-" version ".el"))
16139 (sha256
16140 (base32 "0ga4hw23ki583li2z2hr7l6hk1nc2kdg4afndg06cm9jn158wza7"))))
16141 (build-system emacs-build-system)
16142 (home-page "https://github.com/michael-heerdegen/on-screen.el")
16143 (synopsis "Guide your eyes while scrolling")
16144 (description
16145 "Scrolling can be distracting because your eyes may lose
16146 orientation. This library implements a minor mode that highlights
16147 the previously visible buffer part after each scroll.")
16148 (license license:gpl3+)))
16149
16150 (define-public emacs-highlight-escape-sequences
16151 ;; No release upstream. Extract version from main file.
16152 (let ((commit "08d846a7aa748209d65fecead2b6a766c3e5cb41")
16153 (revision "0"))
16154 (package
16155 (name "emacs-highlight-escape-sequences")
16156 (version (git-version "0.4" revision commit))
16157 (source
16158 (origin
16159 (method git-fetch)
16160 (uri (git-reference
16161 (url "https://github.com/dgutov/highlight-escape-sequences")
16162 (commit commit)))
16163 (file-name (git-file-name name version))
16164 (sha256
16165 (base32 "05mc3w1f8ykf80914a1yddw6j8cmh0h57llm07xh89s53821v2is"))))
16166 (build-system emacs-build-system)
16167 (home-page "https://github.com/dgutov/highlight-escape-sequences")
16168 (synopsis "Highlight escape sequences in Emacs")
16169 (description "@code{highlight-escape-sequences} provides an
16170 Emacs minor mode to escape sequences in code.")
16171 (license license:gpl3+))))
16172
16173 (define-public emacs-dashboard
16174 (package
16175 (name "emacs-dashboard")
16176 (version "1.6.0")
16177 (source
16178 (origin
16179 (method git-fetch)
16180 (uri (git-reference
16181 (url "https://github.com/rakanalh/emacs-dashboard")
16182 (commit version)))
16183 (file-name (git-file-name name version))
16184 (sha256
16185 (base32 "1g6g8vad1kdmv1zxp95a8sn70idl26isqjb3xk1r95pqnx1cn591"))))
16186 (build-system emacs-build-system)
16187 (propagated-inputs
16188 `(("emacs-page-break-lines" ,emacs-page-break-lines)))
16189 (arguments
16190 '(#:include '("\\.el$" "\\.txt$" "\\.png$")
16191 #:phases
16192 (modify-phases %standard-phases
16193 (add-after 'unpack 'patch-dashboard-widgets
16194 ;; This phase fixes compilation error.
16195 (lambda _
16196 (chmod "dashboard-widgets.el" #o666)
16197 (emacs-substitute-variables "dashboard-widgets.el"
16198 ("dashboard-init-info"
16199 '(format "Loaded in %s" (emacs-init-time))))
16200 #t)))))
16201 (home-page "https://github.com/rakanalh/emacs-dashboard")
16202 (synopsis "Startup screen extracted from Spacemacs")
16203 (description "This package provides an extensible Emacs dashboard, with
16204 sections for bookmarks, projectil projects, org-agenda and more. ")
16205 (license license:gpl3+)))
16206
16207 (define-public emacs-slime-company
16208 (package
16209 (name "emacs-slime-company")
16210 (version "1.1")
16211 (source
16212 (origin
16213 (method git-fetch)
16214 (uri (git-reference
16215 (url "https://github.com/anwyn/slime-company")
16216 (commit (string-append "v" version))))
16217 (file-name (git-file-name name version))
16218 (sha256
16219 (base32 "1hl1hqkc1pxga9k2k8k15d7dip7sfsmwf4wm4sh346m6nj606q8g"))))
16220 (build-system emacs-build-system)
16221 (propagated-inputs
16222 `(("emacs-slime" ,emacs-slime)
16223 ("emacs-company" ,emacs-company)))
16224 (home-page "https://company-mode.github.io")
16225 (synopsis "SLIME completion backend for @code{company-mode}")
16226 (description
16227 "This is a backend implementation for the completion package
16228 @code{company-mode} which supports the normal and the fuzzy completion
16229 modes of SLIME.")
16230 (license license:gpl3+)))
16231
16232 (define-public emacs-sml-mode
16233 (package
16234 (name "emacs-sml-mode")
16235 (version "6.10")
16236 (source
16237 (origin
16238 (method url-fetch)
16239 (uri (string-append "https://elpa.gnu.org/packages/sml-mode-"
16240 version ".el"))
16241 (sha256
16242 (base32 "01yf0s474r9xhj6nbs14ljn9ccxb5yy758i17c8nmgmqvm8fx7sb"))))
16243 (build-system emacs-build-system)
16244 (home-page "https://elpa.gnu.org/packages/sml-mode.html")
16245 (synopsis "Major mode for editing (Standard) ML")
16246 (description "SML-MODE is a major Emacs mode for editing Standard ML.
16247 It provides syntax highlighting and automatic indentation and
16248 comes with sml-proc which allows interaction with an inferior SML
16249 interactive loop.")
16250 (license license:gpl3+)))
16251
16252 (define-public emacs-eros
16253 (let ((commit "dd8910279226259e100dab798b073a52f9b4233a")
16254 (revision "2"))
16255 (package
16256 (name "emacs-eros")
16257 (version (git-version "0.0.1" revision commit))
16258 (source
16259 (origin
16260 (method git-fetch)
16261 (uri (git-reference
16262 (url "https://github.com/xiongtx/eros")
16263 (commit commit)))
16264 (file-name (git-file-name name version))
16265 (sha256
16266 (base32
16267 "08chj3a0lw4ygi2sv7wj0i6ihfbi8jhylr8p92inif8b88r6wg3k"))))
16268 (build-system emacs-build-system)
16269 (home-page "https://github.com/xiongtx/eros")
16270 (synopsis "Evaluation result overlays")
16271 (description "@code{eros} provides evaluation result overlays.")
16272 (license license:gpl3+))))
16273
16274 (define-public emacs-stickyfunc-enhance
16275 (let ((commit "13bdba51fcd83ccbc3267959d23afc94d458dcb0")
16276 (revision "1"))
16277 (package
16278 (name "emacs-stickyfunc-enhance")
16279 (version "0.1")
16280 (source
16281 (origin
16282 (method git-fetch)
16283 (uri (git-reference
16284 (url "https://github.com/tuhdo/semantic-stickyfunc-enhance")
16285 (commit commit)))
16286 (file-name (git-file-name name version))
16287 (sha256
16288 (base32
16289 "16dxjsr5nj20blww4xpd4jzgjprzzh1nwvb810ggdmp9paf4iy0g"))))
16290 (build-system emacs-build-system)
16291 (home-page "https://github.com/tuhdo/semantic-stickyfunc-enhance")
16292 (synopsis "Enhancement to stock @code{semantic-stickyfunc-mode}")
16293 (description
16294 "@code{semantic-stickyfunc-mode} shows the function point is currently
16295 in at the first line of the current buffer. This is useful when you have a
16296 very long function that spreads more than a screen, and you don't have to
16297 scroll up to read the function name and then scroll down to original position.")
16298 (license license:gpl3+))))
16299
16300 (define-public emacs-git-auto-commit-mode
16301 (package
16302 (name "emacs-git-auto-commit-mode")
16303 (version "4.5.0")
16304 (source
16305 (origin
16306 (method git-fetch)
16307 (uri (git-reference
16308 (url "https://github.com/ryuslash/git-auto-commit-mode")
16309 (commit version)))
16310 (file-name (git-file-name name version))
16311 (sha256
16312 (base32 "1w3v9pmlmdxl4pglsb6j0igp13lbzg5bhbr1rv2vll93m6zxmyma"))))
16313 (build-system emacs-build-system)
16314 (home-page "https://github.com/ryuslash/git-auto-commit-mode")
16315 (synopsis "Emacs Minor mode to automatically commit and push")
16316 (description "@code{git-auto-commit-mode} is an Emacs minor mode that
16317 tries to commit changes to a file after every save.
16318
16319 When @code{gac-automatically-push-p} is non-nil, it also tries to push to
16320 the current upstream.")
16321 (license license:gpl3+)))
16322
16323 (define-public emacs-scroll-on-drag
16324 (let ((commit "888abd04c34753b1fc4b2fe541bc004ebec5c996")
16325 (revision "1"))
16326 (package
16327 (name "emacs-scroll-on-drag")
16328 (version (git-version "0.1" revision commit))
16329 (source
16330 (origin
16331 (method git-fetch)
16332 (uri (git-reference
16333 (url "https://gitlab.com/ideasman42/emacs-scroll-on-drag.git")
16334 (commit commit)))
16335 (file-name (git-file-name name version))
16336 (sha256
16337 (base32
16338 "1si4hdqa3jw1inbyh3wb3i5i9grbms1nwky3vyk9zg7iznwm8a9p"))))
16339 (build-system emacs-build-system)
16340 (home-page "https://gitlab.com/ideasman42/emacs-scroll-on-drag")
16341 (synopsis "Interactive scrolling")
16342 (description "This package permits scrolling at increasing speeds based
16343 on drag distance.")
16344 (license license:gpl3+))))
16345
16346 (define-public emacs-company-restclient
16347 (package
16348 (name "emacs-company-restclient")
16349 (version "0.3.0")
16350 (source
16351 (origin
16352 (method git-fetch)
16353 (uri (git-reference
16354 (url "https://github.com/iquiw/company-restclient")
16355 (commit (string-append "v" version))))
16356 (file-name (git-file-name name version))
16357 (sha256
16358 (base32 "0yp0hlrgcr6yy1xkjvfckys2k24x9xg7y6336ma61bdwn5lpv0x0"))))
16359 (build-system emacs-build-system)
16360 (propagated-inputs
16361 `(("emacs-company" ,emacs-company)
16362 ("emacs-know-your-http-well" ,emacs-know-your-http-well)
16363 ("emacs-restclient" ,emacs-restclient)))
16364 (home-page "https://github.com/iquiw/company-restclient")
16365 (synopsis "Company-mode completion back-end for restclient-mode")
16366 (description "@code{company-mode} back-end for
16367 @code{restclient-mode}.
16368
16369 It provides auto-completion for HTTP methods and headers in
16370 @code{restclient-mode}. Completion source is given by
16371 @code{know-your-http-well}.")
16372 (license license:gpl3+)))
16373
16374 (define-public emacs-noflet
16375 (let ((version "20170629")
16376 (revision "1")
16377 (commit "7ae84dc3257637af7334101456dafe1759c6b68a"))
16378 (package
16379 (name "emacs-noflet")
16380 (version (git-version version revision commit))
16381 (source
16382 (origin
16383 (method git-fetch)
16384 (uri (git-reference
16385 (url "https://github.com/nicferrier/emacs-noflet")
16386 (commit commit)))
16387 (file-name (git-file-name name version))
16388 (sha256
16389 (base32
16390 "0g70gnmfi8n24jzfci9nrj0n9bn1qig7b8f9f325rin8h7x32ypf"))))
16391 (build-system emacs-build-system)
16392 (arguments
16393 `(#:phases
16394 (modify-phases %standard-phases
16395 (add-after 'unpack 'require-dash
16396 ;; noflet.el uses -map from dash, but (require 'dash) is
16397 ;; missing. So, add it.
16398 (lambda _
16399 (substitute* "noflet.el"
16400 ((";;; Code:") ";;; Code:\n(require 'dash)"))
16401 #t)))))
16402 (propagated-inputs
16403 `(("emacs-dash" ,emacs-dash)))
16404 (home-page "https://github.com/nicferrier/emacs-noflet")
16405 (synopsis "Locally override functions")
16406 (description "@code{emacs-noflet} lets you locally override functions,
16407 in the manner of @command{flet}, but with access to the original function
16408 through the symbol: @command{this-fn}.")
16409 (license license:gpl3+))))
16410
16411 (define-public emacs-dumb-jump
16412 (package
16413 (name "emacs-dumb-jump")
16414 (version "0.5.3")
16415 (source
16416 (origin
16417 (method git-fetch)
16418 (uri (git-reference
16419 (url "https://github.com/jacktasia/dumb-jump")
16420 (commit (string-append "v" version))))
16421 (file-name (git-file-name name version))
16422 (sha256
16423 (base32 "1njf60264snhxrd36m4z687lqfkis0p9mmrr7cf1c8l0lfdvawxi"))))
16424 (build-system emacs-build-system)
16425 (arguments
16426 `(#:tests? #f ; FIXME: Tests freeze when run.
16427 #:test-command '("ert-runner")
16428 #:phases
16429 (modify-phases %standard-phases
16430 (add-after 'unpack 'set-shell
16431 (lambda _
16432 ;; Setting the SHELL environment variable is required for the
16433 ;; tests to find sh.
16434 (setenv "SHELL" (which "sh"))
16435 #t)))))
16436 (native-inputs
16437 `(("emacs-el-mock" ,emacs-el-mock)
16438 ("emacs-noflet" ,emacs-noflet)
16439 ("emacs-undercover" ,emacs-undercover)
16440 ("ert-runner" ,emacs-ert-runner)))
16441 (propagated-inputs
16442 `(("emacs-f" ,emacs-f)
16443 ("emacs-popup" ,emacs-popup)))
16444 (home-page "https://github.com/jacktasia/dumb-jump")
16445 (synopsis "Jump to definition for multiple languages without configuration")
16446 (description "Dumb Jump is an Emacs \"jump to definition\" package with
16447 support for multiple programming languages that favors \"just working\" over
16448 speed or accuracy. This means minimal --- and ideally zero --- configuration
16449 with absolutely no stored indexes (tags) or persistent background processes.
16450 Dumb Jump performs best with The Silver Searcher @command{ag} or ripgrep
16451 @command{rg} installed.")
16452 (license license:gpl3+)))
16453
16454 (define-public emacs-dts-mode
16455 (let ((commit "9ee0854446dcc6c53d2b8d2941051768dba50344")
16456 (revision "1"))
16457 (package
16458 (name "emacs-dts-mode")
16459 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
16460 (source
16461 (origin
16462 (method git-fetch)
16463 (uri (git-reference
16464 (url "https://github.com/bgamari/dts-mode")
16465 (commit commit)))
16466 (file-name (git-file-name name version))
16467 (sha256
16468 (base32
16469 "1k8lljdbc90nd29xrhdrsscxavzdq532wq2mg7ljc94krj7538b1"))))
16470 (build-system emacs-build-system)
16471 (home-page "https://github.com/bgamari/dts-mode.git")
16472 (synopsis "Emacs minor mode for editing device tree files")
16473 (description
16474 "This package provides an Emacs minor mode for highlighting
16475 device tree files.")
16476 (license license:gpl3+))))
16477
16478 (define-public emacs-daemons
16479 (package
16480 (name "emacs-daemons")
16481 (version "2.0.0")
16482 (source
16483 (origin
16484 (method git-fetch)
16485 (uri (git-reference
16486 (url "https://github.com/cbowdon/daemons.el")
16487 (commit version)))
16488 (file-name (git-file-name name version))
16489 (sha256
16490 (base32
16491 "00bkzfaw3bqykcks610vk9wlpa2z360xn32bpsrycacwfv29j7g4"))))
16492 (build-system emacs-build-system)
16493 (home-page "https://github.com/cbowdon/daemons.el")
16494 (synopsis "Emacs UI for managing init system services")
16495 (description
16496 "This is an Emacs mode to give you a UI for managing init system
16497 daemons (services) for those getting tired of typing out @code{sudo service
16498 my_thing reload} all the time. It offers a consistent UI over different init
16499 systems.")
16500 (license license:gpl3+)))
16501
16502 (define-public emacs-isearch+
16503 (let ((commit "7c251b91a67bf914066e23e269ba52fda5b45f5f")
16504 (revision "2"))
16505 (package
16506 (name "emacs-isearch+")
16507 (version (git-version "0" revision commit))
16508 (source
16509 (origin
16510 (method git-fetch)
16511 (uri (git-reference
16512 (url "https://github.com/emacsmirror/isearch-plus")
16513 (commit commit)))
16514 (file-name (git-file-name name version))
16515 (sha256
16516 (base32
16517 "1w2799714jcdycjlxgs8lpmmz6dmzvcvqy8xwxhvmgpb60g4f2yr"))))
16518 (build-system emacs-build-system)
16519 (home-page "https://www.emacswiki.org/emacs/isearch+.el")
16520 (synopsis "Extensions to @code{isearch.el}")
16521 (description "This package extends @code{isearch} with advice, dynamic
16522 filters, highlighting of regexp group levels, and more.")
16523 (license license:gpl2+))))
16524
16525 (define-public emacs-eshell-bookmark
16526 (package
16527 (name "emacs-eshell-bookmark")
16528 (version "2.0.0")
16529 (source
16530 (origin
16531 (method git-fetch)
16532 (uri (git-reference
16533 (url "https://github.com/Fuco1/eshell-bookmark")
16534 (commit version)))
16535 (file-name (git-file-name name version))
16536 (sha256
16537 (base32
16538 "14dmsnixf9vqdhsixw693sml0fn80zcf0b37z049fb40cmppqxdw"))))
16539 (build-system emacs-build-system)
16540 (home-page "https://github.com/Fuco1/eshell-bookmark")
16541 (synopsis "Provide @file{bookmark.el} integration for @code{eshell}")
16542 (description
16543 "This package allows for bookmarking @code{eshell} buffers. Upon
16544 visiting the bookmark, a new @code{eshell} session will be opened in the
16545 appropriate directory if no @code{eshell} session is active.")
16546 (license license:gpl3+)))
16547
16548 (define-public emacs-eshell-z
16549 (package
16550 (name "emacs-eshell-z")
16551 (version "0.4")
16552 (source
16553 (origin
16554 (method git-fetch)
16555 (uri (git-reference
16556 (url "https://github.com/xuchunyang/eshell-z")
16557 (commit (string-append "v" version))))
16558 (file-name (git-file-name name version))
16559 (sha256
16560 (base32
16561 "13dwaq8q23rwmrkpy3gvf7aswrkk6b9ak5221xl7n0bld4wdhq3j"))))
16562 (build-system emacs-build-system)
16563 (home-page "https://github.com/xuchunyang/eshell-z")
16564 (synopsis "Quick navigation to frequently visited directories")
16565 (description
16566 "This package is a port of @code{z}, and keeps track of visited directories
16567 and commands invoked within them in order to enable navigation via input of
16568 matching regexps.")
16569 (license license:gpl3+)))
16570
16571 (define-public emacs-esh-autosuggest
16572 (package
16573 (name "emacs-esh-autosuggest")
16574 (version "2.0.0")
16575 (source
16576 (origin
16577 (method git-fetch)
16578 (uri (git-reference
16579 (url "https://github.com/dieggsy/esh-autosuggest")
16580 (commit version)))
16581 (file-name (git-file-name name version))
16582 (sha256
16583 (base32
16584 "116pdjgpjy9b0psm5kzwkwy7dq8vn0p6dy75dl1zsy2xrjf1iqdw"))))
16585 (build-system emacs-build-system)
16586 (propagated-inputs `(("emacs-company" ,emacs-company)))
16587 (home-page "https://github.com/dieggsy/esh-autosuggest")
16588 (synopsis "Fish-like autosuggestions in Eshell")
16589 (description
16590 "This package assumes you use something other than company for eshell
16591 completion (e.g. @code{eshell-pcomplete}, @code{completion-at-point},
16592 @code{helm-esh-pcomplete}). @code{company-mode} is used solely as a mechanism
16593 for history autosuggestions.
16594
16595 Unless you're using @code{use-package}'s hook keyword, you can enable the
16596 autosuggestions with:
16597 @code{(add-hook 'eshell-mode-hook #'esh-autosuggest-mode)}")
16598 (license license:gpl3+)))
16599
16600 (define-public emacs-desktop-environment
16601 (package
16602 (name "emacs-desktop-environment")
16603 (version "0.3.0")
16604 (source
16605 (origin
16606 (method git-fetch)
16607 (uri (git-reference
16608 (url "https://gitlab.petton.fr/DamienCassou/desktop-environment")
16609 (commit (string-append "v" version))))
16610 (file-name (git-file-name name version))
16611 (sha256
16612 (base32
16613 "195n99xvxyh4cfxjpfa1h1maalqrxf7nyi0bh3lqa1z6z5bdb6x2"))))
16614 (build-system emacs-build-system)
16615 (home-page "https://gitlab.petton.fr/DamienCassou/desktop-environment")
16616 (synopsis "Control your GNU/Linux desktop environment from Emacs")
16617 (description
16618 "This package helps you control your GNU/Linux desktop from Emacs.
16619 With @code{desktop-environment}, you can control the brightness and volume as
16620 well as take screenshots and lock your screen. The package depends on the
16621 availability of shell commands to do the hard work for us. These commands can
16622 be changed by customizing the appropriate variables.")
16623 (license license:gpl3+)))
16624
16625 (define-public emacs-org-caldav
16626 (let ((commit "a563500c9884f38ce08793e2964f8274adde163d"))
16627 (package
16628 (name "emacs-org-caldav")
16629 (version (git-version "0.0.0" "1" commit))
16630 (source
16631 (origin
16632 (method git-fetch)
16633 (uri (git-reference
16634 (url "https://github.com/dengste/org-caldav")
16635 (commit commit)))
16636 (file-name (git-file-name name version))
16637 (sha256
16638 (base32
16639 "18qi1iv5dc0gsvkv9ifal3cjpm568nlb907v8a53cnm4439x1l0l"))))
16640 (build-system emacs-build-system)
16641 (arguments
16642 ;; Tests require to have two specific calendars on a test server.
16643 `(#:exclude '("^org-caldav-testsuite\\.el")))
16644 (propagated-inputs
16645 `(("emacs-org" ,emacs-org)))
16646 (home-page "https://github.com/dengste/org-caldav")
16647 (synopsis "Sync Org files with external calendars via the CalDAV protocol")
16648 (description "Synchronize between events in Org files and a CalDAV
16649 calendar.")
16650 (license license:gpl3+))))
16651
16652 (define-public emacs-zotxt
16653 (package
16654 (name "emacs-zotxt")
16655 (version "20180518")
16656 (source
16657 (origin
16658 (method git-fetch)
16659 (uri (git-reference
16660 (url "https://github.com/egh/zotxt-emacs")
16661 (commit "23a4a9f74a658222027d53a9a83cd4bcc583ca8b")))
16662 (file-name (git-file-name name version))
16663 (sha256
16664 (base32 "09fq3w9yk9kn6bz7y9kgpiw612dvj3yzsdk734js6zgb0p8lfd2c"))))
16665 (build-system emacs-build-system)
16666 (propagated-inputs
16667 `(("emacs-deferred" ,emacs-deferred)
16668 ("emacs-request" ,emacs-request)))
16669 (home-page "https://github.com/egh/zotxt-emacs")
16670 (synopsis "Integrate Emacs with Zotero")
16671 (description "This package provides two integration features between Emacs
16672 and the Zotero research assistant: Insertion of links to Zotero items into an
16673 Org-mode file, and citations of Zotero items in Pandoc Markdown files.")
16674 (license license:gpl3+)))
16675
16676 (define-public emacs-evil-magit
16677 (let ((commit "253c644807013fe92429acdef418748794b8f254")
16678 (revision "4"))
16679 (package
16680 (name "emacs-evil-magit")
16681 (version (git-version "0.4.2" revision commit))
16682 (source
16683 (origin
16684 (method git-fetch)
16685 (uri (git-reference
16686 (url "https://github.com/emacs-evil/evil-magit")
16687 (commit commit)))
16688 (file-name (git-file-name name version))
16689 (sha256
16690 (base32
16691 "08mh7phxsdb9w4dfs0pmr4l4fdzzr2rm88z2s8karfi5j5ik2ag5"))))
16692 (build-system emacs-build-system)
16693 (propagated-inputs
16694 `(("emacs-evil" ,emacs-evil)
16695 ("magit" ,emacs-magit)))
16696 (arguments
16697 `(#:tests? #t
16698 #:test-command '("emacs" "-Q" "-batch"
16699 "-L" "."
16700 "-l" "evil-magit-tests"
16701 "-f" "ert-run-tests-batch-and-exit")))
16702 (home-page
16703 "https://github.com/emacs-evil/evil-magit")
16704 (synopsis "Evil-based key bindings for Magit")
16705 (description
16706 "This Emacs library configures Magit and Evil to play well with each other.
16707 For some background see @url{https://github.com/magit/evil-magit/issues/1}.
16708 See the README at @url{https://github.com/justbur/evil-magit} for a table
16709 describing the key binding changes.")
16710 (license license:gpl3+))))
16711
16712 (define-public emacs-evil-multiedit
16713 (package
16714 (name "emacs-evil-multiedit")
16715 (version "1.3.9")
16716 (source
16717 (origin
16718 (method git-fetch)
16719 (uri (git-reference
16720 (url "https://github.com/hlissner/evil-multiedit")
16721 (commit (string-append "v" version))))
16722 (file-name (git-file-name name version))
16723 (sha256
16724 (base32
16725 "19h3kqylqzbjv4297wkzzxdmn9yxbg6z4ga4ssrqri90xs7m3rw3"))))
16726 (build-system emacs-build-system)
16727 (propagated-inputs
16728 `(("emacs-evil" ,emacs-evil)
16729 ("emacs-iedit" ,emacs-iedit)))
16730 (native-inputs
16731 `(("emacs-ert-runner" ,emacs-ert-runner)))
16732 (arguments
16733 `(#:phases
16734 (modify-phases %standard-phases
16735 (add-before 'check 'fix-makefile
16736 (lambda _
16737 (substitute* "Makefile"
16738 (("@cask exec ") ""))
16739 #t)))
16740 #:tests? #t
16741 #:test-command '("make" "test")))
16742 (home-page
16743 "https://github.com/hlissner/evil-multiedit")
16744 (synopsis "Multiple cursors for Evil mode")
16745 (description
16746 "This plugin was an answer to the lack of proper multiple cursor support
16747 in Emacs+Evil. It allows you to select and edit matches interactively,
16748 integrating @code{iedit-mode} into Evil mode with an attempt at sensible
16749 defaults.")
16750 (license license:gpl3+)))
16751
16752 (define-public emacs-evil-mc
16753 (let ((commit "1cabb869fe70cef49f7dc06f015c3ade1a969c8c")
16754 (revision "2"))
16755 (package
16756 (name "emacs-evil-mc")
16757 (version (git-version "0.0.3" revision commit))
16758 (source
16759 (origin
16760 (method git-fetch)
16761 (uri (git-reference
16762 (url "https://github.com/gabesoft/evil-mc")
16763 (commit commit)))
16764 (file-name (git-file-name name version))
16765 (sha256
16766 (base32 "0p83p90faq1p02lmsfs7zrnky3cyzgy8z4m83a81r9kakjzhkrnb"))))
16767 (build-system emacs-build-system)
16768 (propagated-inputs
16769 `(("emacs-evil" ,emacs-evil)))
16770 (native-inputs
16771 `(("emacs-espuds" ,emacs-espuds)))
16772 (home-page "https://github.com/gabesoft/evil-mc")
16773 (synopsis "Interactive search compatible with @code{multiple-cursors}")
16774 (description "This package can be used with @code{multiple-cursors} to
16775 provide an incremental search that moves all fake cursors in sync.")
16776 (license license:expat))))
16777
16778 (define-public emacs-evil-org
16779 (let ((commit "9d4be14118bf27094a30dbff349b815f098aacbf"))
16780 (package
16781 (name "emacs-evil-org")
16782 (version (git-version "1.0.2" "1" commit))
16783 (source
16784 (origin
16785 (method git-fetch)
16786 (uri (git-reference
16787 (url "https://github.com/Somelauw/evil-org-mode")
16788 (commit commit)))
16789 (file-name (git-file-name name version))
16790 (sha256
16791 (base32
16792 "1fxxfkinb0gq4p5b686r7z4jrkv98zfgh5z889zkjacncv8ibswn"))))
16793 (build-system emacs-build-system)
16794 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
16795 (home-page
16796 "https://github.com/Somelauw/evil-org-mode")
16797 (synopsis "Evil keybindings for Org mode")
16798 (description
16799 "This package adds supplemental Evil mode key-bindings to Emacs
16800 Org-mode. It features:
16801 @itemize
16802 @item normal, visual and insert mode bindings;
16803 @item key bindings organised in key themes;
16804 @item operators like > and < to work on headings;
16805 @item text objects;
16806 @item table support;
16807 @item calendar (date selection) support;
16808 @item agenda support.
16809 @end itemize\n")
16810 (license license:gpl3+))))
16811
16812 (define-public emacs-debpaste
16813 (package
16814 (name "emacs-debpaste")
16815 (version "0.1.5")
16816 (home-page "https://github.com/alezost/debpaste.el")
16817 (source
16818 (origin
16819 (method git-fetch)
16820 (uri (git-reference (url home-page)
16821 (commit (string-append "v" version))))
16822 (file-name (git-file-name name version))
16823 (sha256
16824 (base32
16825 "1wi70r56pd5z0x4dp4m58p9asq03j74kdm4fi9vai83vsl2z9amq"))))
16826 (build-system emacs-build-system)
16827 (propagated-inputs
16828 `(("emacs-xml-rpc" ,emacs-xml-rpc)))
16829 (synopsis "Manipulate pastes from the Debian Pastezone")
16830 (description "Debpaste is an Emacs interface for the Debian Pastezone,
16831 allowing you to receive, post, and delete pastes. It communicates with the
16832 server using XML-RPC.")
16833 (license license:gpl3+)))
16834
16835 (define-public emacs-xml-rpc
16836 (let ((commit "8f624f8b964e9145acb504e4457c9510e87dd93c")
16837 (revision "1"))
16838 (package
16839 (name "emacs-xml-rpc")
16840 (version (git-version "1.6.12" revision commit))
16841 (source
16842 (origin
16843 (method git-fetch)
16844 (uri (git-reference
16845 (url "https://github.com/hexmode/xml-rpc-el")
16846 (commit commit)))
16847 (file-name (git-file-name name version))
16848 (sha256
16849 (base32
16850 "0xa54z52rsfl3n0xgmbycj4zazp8ksgdwcq56swzs6wp72zlalmj"))))
16851 (build-system emacs-build-system)
16852 (home-page "https://github.com/hexmode/xml-rpc-el")
16853 (synopsis "XML-RPC client for Emacs")
16854 (description "This package provides an XML-RPC client for Emacs capable
16855 of both synchronous and asynchronous method calls using the @code{url}
16856 package's async retrieval functionality. @file{xml-rpc.el} represents XML-RPC
16857 datatypes as Lisp values, automatically converting to and from the XML
16858 datastructures as needed, both for method parameters and return values, making
16859 using XML-RPC methods fairly transparent to the Lisp code.")
16860 (license license:gpl3+))))
16861
16862 (define-public emacs-xpm
16863 (package
16864 (name "emacs-xpm")
16865 (version "1.0.4")
16866 (source
16867 (origin
16868 (method url-fetch)
16869 (uri (string-append "https://elpa.gnu.org/packages/xpm-"
16870 version ".tar"))
16871 (sha256
16872 (base32
16873 "075miyashh9cm3b0gk6ngld3rm8bfgnh4qxnhxmmvjgzf6a64grh"))))
16874 (build-system emacs-build-system)
16875 (home-page "https://elpa.gnu.org/packages/xpm.html")
16876 (synopsis "XPM image editing mode for Emacs")
16877 (description "This Emacs package makes editing XPM images easy (and maybe
16878 fun). Editing is done directly on the (textual) image format, for maximal
16879 cohesion with the Emacs Way.")
16880 (license license:gpl3+)))
16881
16882 (define-public emacs-fish-completion
16883 (package
16884 (name "emacs-fish-completion")
16885 (version "1.2")
16886 (source
16887 (origin
16888 (method git-fetch)
16889 (uri (git-reference
16890 (url "https://gitlab.com/Ambrevar/emacs-fish-completion.git")
16891 (commit version)))
16892 (file-name (git-file-name name version))
16893 (sha256
16894 (base32
16895 "17lqip1i1rrsvxzz4bx9rqf1fvwd3hriwg3sj6qxmfc8pylnp37q"))))
16896 (build-system emacs-build-system)
16897 (inputs `(("fish" ,fish)))
16898 (arguments
16899 `(#:phases
16900 (modify-phases %standard-phases
16901 (add-after 'unpack 'configure
16902 (lambda* (#:key inputs outputs #:allow-other-keys)
16903 (let ((fish (assoc-ref inputs "fish")))
16904 ;; Specify the absolute file names of the various
16905 ;; programs so that everything works out-of-the-box.
16906 (make-file-writable "fish-completion.el")
16907 (emacs-substitute-variables
16908 "fish-completion.el"
16909 ("fish-completion-command"
16910 (string-append fish "/bin/fish")))))))))
16911 (home-page
16912 "https://gitlab.com/Ambrevar/emacs-fish-completion")
16913 (synopsis "Fish completion for Emacs pcomplete")
16914 (description
16915 "This package provides completion for the Fish shell to pcomplete (used
16916 by shell and Eshell). You can set it up globally with:
16917
16918 @example
16919 (when (and (executable-find \"fish\")
16920 (require 'fish-completion nil t))
16921 (global-fish-completion-mode))
16922 @end example
16923
16924 Alternatively, you can call the @code{fish-completion-mode} manually or in
16925 shell/Eshell mode hook.
16926
16927 The package @code{emacs-bash-completion} is an optional dependency: if available,
16928 @code{fish-completion-complete} can be configured to fall back on bash to further
16929 try completing. See @code{fish-completion-fallback-on-bash-p}.")
16930 (license license:gpl3+)))
16931
16932 (define-public emacs-gif-screencast
16933 (package
16934 (name "emacs-gif-screencast")
16935 (version "1.1")
16936 (source
16937 (origin
16938 (method git-fetch)
16939 (uri (git-reference
16940 (url "https://gitlab.com/Ambrevar/emacs-gif-screencast.git")
16941 (commit version)))
16942 (file-name (git-file-name name version))
16943 (sha256
16944 (base32
16945 "1g1by8lvf8c9vzm4wwsi5kp285kaj0ahsl54048ympin4pi0njw9"))))
16946 (build-system emacs-build-system)
16947 (inputs
16948 `(("scrot" ,scrot)
16949 ("imagemagick" ,imagemagick)
16950 ("gifsicle" ,gifsicle)))
16951 (arguments
16952 `(#:phases
16953 (modify-phases %standard-phases
16954 (add-after 'unpack 'configure
16955 (lambda* (#:key inputs outputs #:allow-other-keys)
16956 (let ((scrot (assoc-ref inputs "scrot"))
16957 (imagemagick (assoc-ref inputs "imagemagick"))
16958 (gifsicle (assoc-ref inputs "gifsicle")))
16959 (make-file-writable "gif-screencast.el")
16960 ;; Specify the absolute file names of the various
16961 ;; programs so that everything works out-of-the-box.
16962 (emacs-substitute-variables
16963 "gif-screencast.el"
16964 ("gif-screencast-program"
16965 (string-append scrot "/bin/scrot"))
16966 ("gif-screencast-convert-program"
16967 (string-append imagemagick "/bin/convert"))
16968 ("gif-screencast-cropping-program"
16969 (string-append imagemagick "/bin/mogrify"))
16970 ("gif-screencast-optimize-program"
16971 (string-append gifsicle "/bin/gifsicle")))))))))
16972 (home-page
16973 "https://gitlab.com/Ambrevar/emacs-gif-screencast")
16974 (synopsis "One-frame-per-action GIF recording")
16975 (description
16976 "Call @code{gif-screencast} to start a recording.
16977 A screenshot is taken for every user action. Call
16978 @code{gif-screencast-stop} (<f9> by default) to finish recording and create
16979 the GIF result.")
16980 (license license:gpl3+)))
16981
16982 (define-public emacs-google-translate
16983 (package
16984 (name "emacs-google-translate")
16985 (version "0.11.18")
16986 (source
16987 (origin
16988 (method git-fetch)
16989 (uri (git-reference
16990 (url "https://github.com/atykhonov/google-translate/")
16991 (commit (string-append "v" version))))
16992 (file-name (git-file-name name version))
16993 (sha256
16994 (base32
16995 "1kbiqisqyk31l94gxsirhnrdkj51ylgcb16fk2wf7zigmf13jqzp"))))
16996 (build-system emacs-build-system)
16997 (home-page "https://github.com/atykhonov/google-translate")
16998 (synopsis "Emacs interface to Google Translate")
16999 (description
17000 "This package provides an Emacs interface to the Google Translate
17001 on-line service.")
17002 (license license:gpl3+)))
17003
17004 (define-public emacs-helm-company
17005 (package
17006 (name "emacs-helm-company")
17007 (version "0.2.5")
17008 (source
17009 (origin
17010 (method git-fetch)
17011 (uri (git-reference
17012 (url "https://github.com/Sodel-the-Vociferous/helm-company")
17013 (commit (string-append "v" version))))
17014 (file-name (git-file-name name version))
17015 (sha256
17016 (base32
17017 "1ci37w6ahnqrfpb284gjvxmimlf61sdxb9k192yy9q983cksv2hx"))))
17018 (build-system emacs-build-system)
17019 (propagated-inputs
17020 `(("emacs-helm" ,emacs-helm)
17021 ("emacs-company" ,emacs-company)))
17022 (native-inputs
17023 `(("emacs-ert-runner" ,emacs-ert-runner)))
17024 (arguments
17025 `(#:tests? #t
17026 #:test-command '("ert-runner")))
17027 (home-page "https://github.com/Sodel-the-Vociferous/helm-company")
17028 (synopsis "Helm interface for company-mode")
17029 (description
17030 "This is a Helm interface to company-mode, a text completion
17031 framework.")
17032 (license license:gpl3+)))
17033
17034 (define-public emacs-helm-descbinds
17035 (let ((commit "033be73f21778633813264ce1634a6e1ad873d8e"))
17036 (package
17037 (name "emacs-helm-descbinds")
17038 (version (git-version "1.13" "1" commit))
17039 (source
17040 (origin
17041 (method git-fetch)
17042 (uri (git-reference
17043 (url "https://github.com/emacs-helm/helm-descbinds")
17044 (commit commit)))
17045 (file-name (git-file-name name version))
17046 (sha256
17047 (base32
17048 "1n89p56qwa243w1c85i5awnaf7piwjsvfi7nmnsrwm33hix5dknk"))))
17049 (build-system emacs-build-system)
17050 (propagated-inputs `(("emacs-helm" ,emacs-helm)))
17051 (home-page "https://github.com/emacs-helm/helm-descbinds")
17052 (synopsis "Convenient @code{describe-bindings} with Helm")
17053 (description
17054 "This package is a replacement of @code{describe-bindings} for Helm.
17055 @code{describe-bindings} is replaced with @code{helm-descbinds}. As usual,
17056 type @code{C-h b}, or any incomplete key sequence plus @code{C-h}, to run
17057 @code{helm-descbinds}. The bindings are presented in a similar way as
17058 @code{describe-bindings} does, but you can use completion to find the command
17059 you searched for and execute it, or view its documentation.")
17060 (license license:gpl3+))))
17061
17062 (define-public emacs-helm-emms
17063 (let ((commit "37e5aa029abfa5a5c48636314de8157142944fa2"))
17064 (package
17065 (name "emacs-helm-emms")
17066 (version (git-version "1.3" "3" commit))
17067 (source
17068 (origin
17069 (method git-fetch)
17070 (uri (git-reference
17071 (url "https://github.com/emacs-helm/helm-emms")
17072 (commit commit)))
17073 (file-name (git-file-name name version))
17074 (sha256
17075 (base32
17076 "0r1ai6xhzayyik30w2sx9n62bxxwm12vfmjspv0daqif9az8y3vg"))))
17077 (build-system emacs-build-system)
17078 (propagated-inputs
17079 `(("emacs-helm" ,emacs-helm)
17080 ("emacs-emms" ,emacs-emms)))
17081 (home-page
17082 "https://github.com/emacs-helm/helm-emms")
17083 (synopsis "Emms for Helm")
17084 (description "Helm interface for Emms to browse all tracks and all folders
17085 from @code{emms-source-file-default-directory}.")
17086 (license license:gpl3+))))
17087
17088 (define-public emacs-helm-exwm
17089 (package
17090 (name "emacs-helm-exwm")
17091 (version "0.0.2")
17092 (source
17093 (origin
17094 (method git-fetch)
17095 (uri (git-reference
17096 (url "https://github.com/emacs-helm/helm-exwm")
17097 (commit version)))
17098 (file-name (git-file-name name version))
17099 (sha256
17100 (base32 "0g4k01ps14bp2az8v6dcag9llg045k2b4kdis81xx4lvw76znr9v"))))
17101 (build-system emacs-build-system)
17102 (propagated-inputs
17103 `(("emacs-helm" ,emacs-helm)
17104 ("emacs-exwm" ,emacs-exwm)))
17105 (home-page
17106 "https://github.com/emacs-helm/helm-exwm")
17107 (synopsis "Helm for EXWM buffers")
17108 (description
17109 "@code{helm-exwm} runs a Helm session over the list of EXWM buffers.
17110 @code{helm-exwm-switch} is a convenience X application launcher using Helm to
17111 switch between the various windows of one or several specific applications.
17112 See @code{helm-exwm-switch-browser} for an example.")
17113 (license license:gpl3+)))
17114
17115 (define-public emacs-helm-flycheck
17116 (let ((commit "3cf7d3bb194acacc6395f88360588013d92675d6"))
17117 (package
17118 (name "emacs-helm-flycheck")
17119 (version (git-version "0.4" "1" commit))
17120 (source
17121 (origin
17122 (method git-fetch)
17123 (uri (git-reference
17124 (url "https://github.com/yasuyk/helm-flycheck")
17125 (commit commit)))
17126 (file-name (git-file-name name version))
17127 (sha256
17128 (base32
17129 "1a2yfxhz04klwhcandqvfzysxp6b7bxyxx1xk1x3kds5hif5fkl4"))))
17130 (build-system emacs-build-system)
17131 (propagated-inputs
17132 `(("emacs-dash" ,emacs-dash)
17133 ("emacs-flycheck" ,emacs-flycheck)
17134 ("emacs-helm" ,emacs-helm)))
17135 (home-page "https://github.com/yasuyk/helm-flycheck")
17136 (synopsis "Show Flycheck errors with Helm")
17137 (description
17138 "This integrates Flycheck with Helm.")
17139 (license license:gpl3+))))
17140
17141 (define-public emacs-helm-ls-git
17142 (let ((commit "76654c776a7f6e2e5290645e748aac2a746f7daa"))
17143 (package
17144 (name "emacs-helm-ls-git")
17145 (version (git-version "1.9.1" "1" commit))
17146 (source
17147 (origin
17148 (method git-fetch)
17149 (uri (git-reference
17150 (url "https://github.com/emacs-helm/helm-ls-git")
17151 (commit commit)))
17152 (file-name (git-file-name name version))
17153 (sha256
17154 (base32
17155 "0vsq1n3xl3ghy5zik2scm7jrs501n4kybdqd6yw6j0cv4jxdqbr0"))))
17156 (build-system emacs-build-system)
17157 (propagated-inputs `(("emacs-helm" ,emacs-helm)))
17158 (home-page "https://github.com/emacs-helm/helm-ls-git")
17159 (synopsis "Helm interface for listing the files in a Git repository")
17160 (description
17161 "This package provides a Helm interface for Git files.
17162 @itemize
17163 @item Display the open buffers in project.
17164 @item Display a status source showing state of project (modified files etc.).
17165 @item Display a list of all files in project under git control.
17166 @item Quickly look at diffs of modified files.
17167 @item Allow switching to @code{git status} with your preferred frontend
17168 (vc-dir, Magit,etc.).
17169 @item Full integration of git-grep, also allow usage of @code{helm-grep} (you
17170 can use ack-grep instead of grep).
17171 @item Integrate usage of gid from id-utils.
17172 @item Full integration with @code{helm-find-files}, allow you to browse
17173 projects unrelated to current-buffer.
17174 @item In addition, all actions of type files and buffers are provided.
17175 @end itemize\n")
17176 (license license:gpl3+))))
17177
17178 (define-public emacs-helm-mu
17179 (let ((commit "77e6fea24e01481418738421dbcfe28ef1bd63cf"))
17180 (package
17181 (name "emacs-helm-mu")
17182 (version (git-version "20180513" "1" commit))
17183 (source
17184 (origin
17185 (method git-fetch)
17186 (uri (git-reference
17187 (url "https://github.com/emacs-helm/helm-mu")
17188 (commit commit)))
17189 (file-name (git-file-name name version))
17190 (sha256
17191 (base32 "1lh0ahxdc5b2z18m9p30gwg8sbg33sjwkjr38p7h5xsm5fm7i0fz"))))
17192 (build-system emacs-build-system)
17193 (propagated-inputs
17194 `(("emacs-helm" ,emacs-helm)
17195 ("mu" ,mu)))
17196 (home-page
17197 "https://github.com/emacs-helm/helm-mu")
17198 (synopsis
17199 "Helm sources for searching emails and contacts")
17200 (description
17201 "Helm sources for searching emails and contacts using @code{mu} and
17202 @code{mu4e}. Mu is an indexer for maildirs and mu4e is a mutt-like MUA for
17203 Emacs build on top of mu. Mu is highly efficient making it possible to get
17204 instant results even for huge maildirs. It also provides search operators,
17205 e.g: @code{from:Peter to:Anne flag:attach search term}.")
17206 (license license:gpl3+))))
17207
17208 (define-public emacs-helm-pass
17209 (package
17210 (name "emacs-helm-pass")
17211 (version "0.3")
17212 (source
17213 (origin
17214 (method git-fetch)
17215 (uri (git-reference
17216 (url "https://github.com/emacs-helm/helm-pass")
17217 (commit version)))
17218 (file-name (git-file-name name version))
17219 (sha256
17220 (base32
17221 "0vglaknmir3yv4iwibwn8r40ran8d04gcyp99hx73ldmf3zqpnxv"))))
17222 (build-system emacs-build-system)
17223 (propagated-inputs
17224 `(("emacs-helm" ,emacs-helm)
17225 ("emacs-password-store" ,emacs-password-store)))
17226 (home-page "https://github.com/emacs-helm/helm-pass")
17227 (synopsis "Helm interface to pass, the standard Unix password manager")
17228 (description
17229 "Users of @code{helm-pass} may also be interested in functionality
17230 provided by other Emacs packages dealing with pass:
17231 @itemize
17232 @item @code{emacs-password-store}, which @code{helm-pass} relies on.
17233 @item @code{emacs-pass}, a major mode for @code{pass}.
17234 @item @code{auth-source-pass.el}: integration of Emacs' auth-source with
17235 @code{pass}, included in Emacs 26+).
17236 @end itemize\n")
17237 (license license:gpl3+)))
17238
17239 (define-public emacs-image+
17240 (let ((commit "6834d0c09bb4df9ecc0d7a559bd7827fed48fffc"))
17241 (package
17242 (name "emacs-image+")
17243 (version (git-version "0.6.2" "1" commit))
17244 (source
17245 (origin
17246 (method git-fetch)
17247 (uri (git-reference
17248 (url "https://github.com/mhayashi1120/Emacs-imagex")
17249 (commit commit)))
17250 (file-name (git-file-name name version))
17251 (sha256
17252 (base32
17253 "0v66wk9nh0raih4jhrzmmyi5lbysjnmbv791vm2230ffi2hmwxnd"))))
17254 (build-system emacs-build-system)
17255 (inputs `(("imagemagick" ,imagemagick)))
17256 (arguments
17257 `(#:phases
17258 (modify-phases %standard-phases
17259 (add-after 'unpack 'configure
17260 (lambda* (#:key inputs outputs #:allow-other-keys)
17261 (let ((imagemagick (assoc-ref inputs "imagemagick")))
17262 ;; Specify the absolute file names of the various
17263 ;; programs so that everything works out-of-the-box.
17264 (chmod "image+.el" #o666)
17265 (emacs-substitute-variables
17266 "image+.el"
17267 ("imagex-convert-command"
17268 (string-append imagemagick "/bin/convert"))
17269 ("imagex-identify-command"
17270 (string-append imagemagick "/bin/identify")))))))))
17271 (home-page "https://github.com/mhayashi1120/Emacs-imagex")
17272 (synopsis "Image manipulation extensions for Emacs")
17273 (description
17274 "Image+ provides keybindings allowing you to zoom in or zoom out of an
17275 image, rotate it, save modified images, and more.")
17276 (license license:gpl3+))))
17277
17278 (define-public emacs-package-lint
17279 (let ((commit "69bb89d00ba212b734c676ad056aa793c450b288"))
17280 (package
17281 (name "emacs-package-lint")
17282 (version (git-version "0.5" "1" commit))
17283 (source
17284 (origin
17285 (method git-fetch)
17286 (uri (git-reference
17287 (url "https://github.com/purcell/package-lint")
17288 (commit commit)))
17289 (file-name (git-file-name name version))
17290 (sha256
17291 (base32
17292 "1hfricsgmy3x9snnd2p4xq6vnnv94qdsxxnxp07b3hqc9bhw31rq"))))
17293 (build-system emacs-build-system)
17294 (home-page "https://github.com/purcell/package-lint")
17295 (synopsis "Linting library for elisp package authors")
17296 (description
17297 "This provides a list of issues with the Emacs package metadata of a file,
17298 e.g. the package dependencies it requires. See function
17299 @code{package-lint-buffer}. Checks will currently be enabled only if a
17300 \"Package-Requires:\" or \"Package-Version:\" header is present in the
17301 file.")
17302 (license license:gpl3+))))
17303
17304 (define-public emacs-picpocket
17305 (let ((version "40")
17306 (commit "6fd88b8711c4370662c0f9c462170187d092a046"))
17307 (package
17308 (name "emacs-picpocket")
17309 (version version)
17310 (source
17311 (origin
17312 (method git-fetch)
17313 (uri (git-reference
17314 (url "https://github.com/johanclaesson/picpocket")
17315 (commit commit)))
17316 (file-name (git-file-name name version))
17317 (sha256
17318 (base32 "1mdzzxf7xm7zwrpnqqxa27d1cr31pd72d7ilbwljv13qp177a3yw"))))
17319 (build-system emacs-build-system)
17320 (arguments ; needed for running tests
17321 `(#:tests? #t
17322 #:emacs ,emacs
17323 #:test-command '("emacs" "--batch"
17324 "-l" "picpocket-test.el"
17325 "-f" "ert-run-tests-batch-and-exit")))
17326 (home-page "https://github.com/johanclaesson/picpocket")
17327 (synopsis "Image viewer for Emacs")
17328 (description
17329 "Picpocket is an image viewer for GNU Emacs. It has commands for:
17330
17331 @itemize
17332 @item File operations on the picture files (delete, move, copy, hardlink).
17333 @item Scale and rotate the picture.
17334 @item Associate pictures with tags which are saved to disk.
17335 @item Filter pictures according to tags.
17336 @item Customizing keystrokes for quick tagging and file operations.
17337 @item Undo and browse history of undoable commands.
17338 @end itemize")
17339 (license license:gpl3+))))
17340
17341 (define-public emacs-mu4e-conversation
17342 (let ((commit "98110bb9c300fc9866dee8e0023355f9f79c9b96")
17343 (revision "5"))
17344 (package
17345 (name "emacs-mu4e-conversation")
17346 (version (git-version "0.0.1" revision commit))
17347 (source
17348 (origin
17349 (method git-fetch)
17350 (uri (git-reference
17351 (url "https://gitlab.com/Ambrevar/mu4e-conversation.git")
17352 (commit commit)))
17353 (file-name (git-file-name name version))
17354 (sha256
17355 (base32
17356 "080s96jkcw2p288sp1vgds91rgl693iz6hi2dv56p2ih0nnivwlg"))))
17357 (build-system emacs-build-system)
17358 (propagated-inputs
17359 `(("mu" ,mu)))
17360 (home-page
17361 "https://gitlab.com/Ambrevar/mu4e-conversation")
17362 (synopsis
17363 "Show a complete thread in a single buffer")
17364 (description
17365 "This package offers an alternate view to mu4e's e-mail display. It
17366 shows all e-mails of a thread in a single view, where each correspondent has
17367 their own face. Threads can be displayed linearly (in which case e-mails are
17368 displayed in chronological order) or as an Org document where the node tree
17369 maps the thread tree.")
17370 (license license:gpl3+))))
17371
17372 (define-public emacs-pinentry
17373 (let ((commit "dcc9ba03252ee5d39e03bba31b420e0708c3ba0c")
17374 (revision "1"))
17375 (package
17376 (name "emacs-pinentry")
17377 (version (git-version "0.1" revision commit))
17378 (source
17379 (origin
17380 (method url-fetch)
17381 (uri (string-append
17382 "http://git.savannah.gnu.org/cgit/emacs/elpa.git/plain"
17383 "/packages/pinentry/pinentry.el?id=" commit))
17384 (file-name (string-append "pinentry.el"))
17385 (sha256
17386 (base32
17387 "1lf30q6r8nz5cjzclbb9bbymsk2y75nskvb55hnjdv93gr3j0sik"))))
17388 (build-system emacs-build-system)
17389 (propagated-inputs
17390 `(("gnupg" ,gnupg)))
17391 (home-page "https://elpa.gnu.org/packages/pinentry.html")
17392 (synopsis "GnuPG Pinentry server implementation")
17393 (description
17394 "This package allows GnuPG passphrase to be prompted through the
17395 minibuffer instead of graphical dialog.
17396
17397 To use, add @code{allow-emacs-pinentry} to @code{~/.gnupg/gpg-agent.conf},
17398 reload the configuration with @code{gpgconf --reload gpg-agent}, and start the
17399 server with @code{M-x pinentry-start}.")
17400 (license license:gpl3+))))
17401
17402 (define-public emacs-so-long
17403 (let ((commit "cfae473b1bf65f78ddb015159e667ec0103d881c")
17404 (revision "2"))
17405 (package
17406 (name "emacs-so-long")
17407 (version (git-version "1.0" revision commit))
17408 (source
17409 (origin
17410 (method git-fetch)
17411 (uri (git-reference
17412 (url "https://git.savannah.gnu.org/git/so-long.git")
17413 (commit commit)))
17414 (file-name (git-file-name name version))
17415 (sha256
17416 (base32
17417 "0g943n5cl9lz5s7hszg6yvp10xd1xvd8mfgxyg0yckmp8fqkswin"))))
17418 (build-system emacs-build-system)
17419 (home-page "https://www.emacswiki.org/emacs/SoLong")
17420 (synopsis "Improve performance in files with long lines")
17421 (description "This package improves the performance of Emacs when
17422 viewing files with long lines.")
17423 (license license:gpl3+))))
17424
17425 (define-public emacs-github-review
17426 (let ((commit "a13a3b4f1b6114a32af843971a145ab880f51232")
17427 (revision "2"))
17428 (package
17429 (name "emacs-github-review")
17430 (version (git-version "0.1" revision commit))
17431 (source
17432 (origin
17433 (method git-fetch)
17434 (uri (git-reference
17435 (url "https://github.com/charignon/github-review")
17436 (commit commit)))
17437 (file-name (git-file-name name version))
17438 (sha256
17439 (base32
17440 "0injfpxzgfhmqalba845j5l5cdcxxqz43knhxwinf36g52nfabl0"))))
17441 (build-system emacs-build-system)
17442 (inputs
17443 `(("emacs-dash" ,emacs-dash)
17444 ("emacs-s" ,emacs-s)
17445 ("emacs-ghub" ,emacs-ghub)))
17446 (native-inputs
17447 `(("emacs-buttercup" ,emacs-buttercup)
17448 ("emacs-undercover" ,emacs-undercover)))
17449 (arguments
17450 `(#:tests? #t
17451 #:test-command '("buttercup" "-L" "test/github-review-test.el")))
17452 (home-page "https://github.com/charignon/github-review")
17453 (synopsis "Review GitHub pull requests within Emacs")
17454 (description "This package provides commands to pull in, comment on, and
17455 accept and reject GitHub pull requests.")
17456 (license license:gpl3+))))
17457
17458 (define-public emacs-deadgrep
17459 (let ((commit "7e50e71c6ff4e17dded43e0836dae4e5ec020fcf")
17460 (revision "1"))
17461 (package
17462 (name "emacs-deadgrep")
17463 (version (git-version "0.10" revision commit))
17464 (source
17465 (origin
17466 (method git-fetch)
17467 (uri (git-reference
17468 (url "https://github.com/Wilfred/deadgrep")
17469 (commit commit)))
17470 (file-name (git-file-name name version))
17471 (sha256
17472 (base32
17473 "1vjhrq02l8gvdn2haygzq7277hnhjchs9xrfpcnh76gqip200gx4"))))
17474 (build-system emacs-build-system)
17475 (propagated-inputs
17476 `(("emacs-dash" ,emacs-dash)
17477 ("emacs-s" ,emacs-s)
17478 ("emacs-spinner" ,emacs-spinner)))
17479 (home-page "https://github.com/Wilfred/deadgrep")
17480 (synopsis "Frontend for @code{ripgrep}")
17481 (description "This package provides an Emacs interface for performing
17482 searches with @code{ripgrep}.")
17483 (license license:gpl3+))))
17484
17485 (define-public emacs-focus
17486 (let ((commit "ab42b8779929beeb7878c7fb3d3ccd80d9327c7f")
17487 (version "0.1.1")
17488 (revision "1"))
17489 (package
17490 (name "emacs-focus")
17491 (version (git-version version revision commit))
17492 (source
17493 (origin
17494 (method git-fetch)
17495 (uri (git-reference
17496 (url "https://github.com/larstvei/Focus")
17497 (commit commit)))
17498 (file-name (git-file-name name version))
17499 (sha256
17500 (base32
17501 "079v1syid7h2vr2ya6hs6hl0pgj60qdsw60mqw4cj2zllmkrkwj4"))))
17502 (build-system emacs-build-system)
17503 (home-page "https://github.com/larstvei/Focus")
17504 (synopsis "Minor mode for focusing in on relevant text")
17505 (description "This package provides a minor mode that dims the color of
17506 text in neighboring sections.")
17507 (license license:gpl3+))))
17508
17509 (define-public emacs-pandoc-mode
17510 (package
17511 (name "emacs-pandoc-mode")
17512 (version "2.27.2")
17513 (source
17514 (origin
17515 (method git-fetch)
17516 (uri (git-reference
17517 (url "https://github.com/joostkremers/pandoc-mode")
17518 (commit version)))
17519 (file-name (git-file-name name version))
17520 (sha256
17521 (base32
17522 "04bqc7mhgkfks3nsvimd3rrriv4nqbksmv5ahlbbd03aqa2b0vrv"))))
17523 (build-system emacs-build-system)
17524 (propagated-inputs
17525 `(("emacs-dash" ,emacs-dash)
17526 ("emacs-hydra" ,emacs-hydra)))
17527 (home-page "https://github.com/joostkremers/pandoc-mode")
17528 (synopsis "Minor mode for interacting with Pandoc")
17529 (description "This package provides a Hydra menu for interacting with the
17530 Pandoc, the document-conversion tool.")
17531 (license license:bsd-3)))
17532
17533 (define-public emacs-hlint-refactor-mode
17534 (let ((commit "c4307f86aad6d02e32e9b30cb6edc115584c791c")
17535 (revision "1"))
17536 (package
17537 (name "emacs-hlint-refactor-mode")
17538 (version (git-version "0.0.1" revision commit))
17539 (source
17540 (origin
17541 (method git-fetch)
17542 (uri (git-reference
17543 (url "https://github.com/mpickering/hlint-refactor-mode")
17544 (commit commit)))
17545 (file-name (git-file-name name version))
17546 (sha256
17547 (base32
17548 "1c71w9s34n0i7mm4njchxn6s3ri1y6mh3akgbg4nq41d42h8iap3"))))
17549 (build-system emacs-build-system)
17550 (propagated-inputs
17551 `(("apply-refact" ,apply-refact)
17552 ("hlint" ,hlint)))
17553 (home-page "https://github.com/mpickering/hlint-refactor-mode")
17554 (synopsis "Emacs bindings for @code{hlint}'s @code{--refactor} option")
17555 (description "This package applies refactoring suggestions from
17556 @code{hlint}.")
17557 (license license:expat))))
17558
17559 (define-public emacs-ccls
17560 (let ((commit "aab3e31fd716daf59f9794e62d473357263e8cc0")
17561 (revision "4"))
17562 (package
17563 (name "emacs-ccls")
17564 (version (git-version "0.1" revision commit))
17565 (source
17566 (origin
17567 (method git-fetch)
17568 (uri (git-reference
17569 (url "https://github.com/MaskRay/emacs-ccls")
17570 (commit commit)))
17571 (file-name (git-file-name name version))
17572 (sha256
17573 (base32
17574 "1ykgw21ypyhwlyflppjcgqrj1xw4d9rld4z65qvwhk3f12cv113j"))))
17575 (build-system emacs-build-system)
17576 (propagated-inputs
17577 `(("ccls" ,ccls)
17578 ("emacs-dash" ,emacs-dash)
17579 ("emacs-projectile" ,emacs-projectile)
17580 ("emacs-lsp-mode" ,emacs-lsp-mode)))
17581 (home-page "https://github.com/MaskRay/emacs-ccls")
17582 (synopsis "Emacs support for the @code{ccls} language server")
17583 (description "This package extends @code{lsp-mode} to work with @code{C}
17584 and @code{C++} files through the @code{ccls} language server.")
17585 (license license:expat))))
17586
17587 (define-public emacs-org-brain
17588 (package
17589 (name "emacs-org-brain")
17590 (version "0.5")
17591 (source
17592 (origin
17593 (method git-fetch)
17594 (uri (git-reference
17595 (url "https://github.com/Kungsgeten/org-brain")
17596 (commit "3faf9303af3f2356e3444e69c22dc6c5774047d1")))
17597 (file-name (git-file-name name version))
17598 (sha256
17599 (base32
17600 "1ad681zk6kckw2zbk0r4iaj4bw8cfqrbd1s3gdwgdjlzq81q9mmj"))))
17601 (build-system emacs-build-system)
17602 (home-page "https://github.com/Kungsgeten/org-brain")
17603 (synopsis "Org-mode wiki and concept-mapping for Emacs")
17604 (description "@code{emacs-org-brain} implements a variant of concept
17605 mapping in Emacs, using @code{org-mode}. An org-brain is a network of
17606 org-mode entries, where each entry is a file or a headline, and you can get a
17607 visual overview of the relationships between the entries: parents, children,
17608 siblings and friends. This visual overview can also be used to browse your
17609 entries. You can think of entries as nodes in a mind map, or pages in a
17610 wiki.")
17611 (license license:expat)))
17612
17613 (define-public emacs-recent-addresses
17614 (let ((commit "afbbfdc43b81e620acf827ca20d297e0c517b6eb")
17615 (revision "1"))
17616 (package
17617 (name "emacs-recent-addresses")
17618 (home-page "https://nschum.de/src/emacs/recent-addresses/")
17619 (version (git-version "0.1" revision commit))
17620 (source (origin
17621 (method git-fetch)
17622 (uri (git-reference
17623 ;; Note: Use a branch that works with Helm. Submitted
17624 ;; at <https://github.com/nschum/recent-addresses.el/pull/1>.
17625 (url "https://github.com/civodul/recent-addresses.el")
17626 (commit commit)))
17627 (sha256
17628 (base32
17629 "0ajrq0galjmdyjdjyxazykjyax3gh6hvfk4s7l657pi11g0q5zax"))
17630 (file-name (git-file-name name version))))
17631 (build-system emacs-build-system)
17632 (synopsis "Record recently-used email addressed and auto-complete them")
17633 (description
17634 "@code{recent-addresses} is an Emacs package that allows you to quickly
17635 look up previously used email addresses. It can be used alongside the Gnus
17636 email client.")
17637 (license license:gpl2+))))
17638
17639 (define-public emacs-fold-dwim
17640 (let ((commit "c46f4bb2ce91b4e307136320e72c28dd50b6cd8b")
17641 (revision "0"))
17642 (package
17643 (name "emacs-fold-dwim")
17644 (version (git-version "1.2" revision commit))
17645 (home-page "https://github.com/emacsattic/fold-dwim")
17646 (source (origin
17647 (method git-fetch)
17648 (uri (git-reference (url home-page) (commit commit)))
17649 (sha256
17650 (base32
17651 "1yz1wis31asw6xa5maliyd1ck2q02xnnh7dc6swgj9cb4wi7k6i1"))
17652 (file-name (git-file-name name version))))
17653 (build-system emacs-build-system)
17654 (synopsis "Unified user interface for Emacs folding modes")
17655 (description
17656 "DWIM stands for \"do what I mean\", as in the idea that one keystroke
17657 can do different things depending on the context. In this package, it means
17658 that, if the cursor is in a currently hidden folded construction, we want to
17659 show it; if it's not, we want to hide whatever fold the cursor is in.")
17660 (license license:gpl2+))))
17661
17662 (define-public emacs-markup-faces
17663 (package
17664 (name "emacs-markup-faces")
17665 (version "1.0.0")
17666 (source
17667 (origin
17668 (method url-fetch)
17669 (uri (string-append "https://stable.melpa.org/packages/markup-faces-"
17670 version ".el"))
17671 (sha256
17672 (base32
17673 "124dxbaa25fwxnpwsygpz7pw6da6dnnw7y2lic3jf8rgz7lw4v32"))))
17674 (build-system emacs-build-system)
17675 (home-page "https://github.com/sensorflo/markup-faces")
17676 (synopsis "Collection of Emacs faces for markup language modes")
17677 (description "emacs-markup-faces is like font-lock-faces, but tailored for
17678 markup languages instead programming languages. The sub group markup-faces-text
17679 is also intended for 'text viewing modes' such as info or (wo)man. This gives a
17680 common look and feel, or let's say theme, across different markup language modes
17681 and 'text viewing modes' respectively.")
17682 (license license:gpl3+)))
17683
17684 (define-public emacs-adoc-mode
17685 (package
17686 (name "emacs-adoc-mode")
17687 (version "0.6.6")
17688 (source
17689 (origin
17690 (method git-fetch)
17691 (uri (git-reference
17692 (url "https://github.com/sensorflo/adoc-mode")
17693 (commit (string-append "V" version))))
17694 (file-name (git-file-name name version))
17695 (sha256
17696 (base32
17697 "0kp2aafjhqxz3mjr9hkkss85r4n51chws5a2qj1xzb63dh36liwm"))))
17698 (build-system emacs-build-system)
17699 (arguments
17700 `(#:phases
17701 (modify-phases %standard-phases
17702 ;; See: https://github.com/sensorflo/adoc-mode/issues/39.
17703 (add-after 'unpack 'disable-failing-tests
17704 (lambda _
17705 (let-syntax
17706 ((disable-tests
17707 (syntax-rules ()
17708 ((_ file ())
17709 (syntax-error "test names list must not be empty"))
17710 ((_ file (test-name ...))
17711 (substitute* file
17712 (((string-append "^\\(ert-deftest " test-name ".*") all)
17713 (string-append all "(skip-unless nil)\n")) ...)))))
17714 (disable-tests "adoc-mode-test.el"
17715 ("adoctest-test-tempo-delimited-blocks"
17716 "adoctest-test-tempo-macros"
17717 "adoctest-test-tempo-paragraphs"
17718 "adoctest-test-tempo-passthroug-macros"
17719 "adoctest-test-tempo-quotes")))
17720 #t)))
17721 #:tests? #t
17722 #:test-command '("emacs" "-Q" "-batch"
17723 "-l" "adoc-mode-test.el"
17724 "-f" "ert-run-tests-batch-and-exit")))
17725 (propagated-inputs
17726 `(("emacs-markup-faces" ,emacs-markup-faces)))
17727 (home-page "https://github.com/sensorflo/adoc-mode/wiki")
17728 (synopsis "AsciiDoc mode for Emacs")
17729 (description "This package provides an Emacs major mode for editing AsciiDoc
17730 files. It focuses on highlighting the document to improve readability.")
17731 (license license:gpl2+)))
17732
17733 (define-public emacs-racer
17734 (package
17735 (name "emacs-racer")
17736 (version "1.2")
17737 (source
17738 (origin
17739 (method git-fetch)
17740 (uri
17741 (git-reference
17742 (url "https://github.com/racer-rust/emacs-racer")
17743 (commit version)))
17744 (file-name (git-file-name name version))
17745 (sha256
17746 (base32 "0xj5iki10cg8j8vvqjlw6lfx97k3agwirhchcjnzbnkry48x9qi6"))))
17747 (arguments
17748 `(#:tests? #t
17749 #:test-command '("make" "test")
17750 #:phases
17751 (modify-phases %standard-phases
17752 (add-before 'check 'fix-makefile
17753 (lambda _
17754 (substitute* "Makefile"
17755 (("\\$\\{CASK\\} exec ") ""))
17756 #t)))))
17757 (native-inputs
17758 `(("emacs-ert-runner" ,emacs-ert-runner)
17759 ("emacs-undercover" ,emacs-undercover)))
17760 (propagated-inputs
17761 `(("emacs-dash" ,emacs-dash)
17762 ("emacs-f" ,emacs-f)
17763 ("emacs-pos-tip" ,emacs-pos-tip)
17764 ("emacs-rust-mode" ,emacs-rust-mode)
17765 ("emacs-s" ,emacs-s)))
17766 (build-system emacs-build-system)
17767 (home-page "https://github.com/racer-rust/emacs-racer")
17768 (synopsis "Racer support for Emacs")
17769 (description
17770 "This is the official Emacs package for Racer. It supports code
17771 completion of variables, functions and modules. It can also jump to
17772 definition of functions and types, and show a help buffer based on the
17773 docstring of the thing at point.")
17774 (license license:expat)))
17775
17776 (define-public emacs-rust-mode
17777 (package
17778 (name "emacs-rust-mode")
17779 (version "0.4.0")
17780 (source (origin
17781 (method git-fetch)
17782 (uri (git-reference
17783 (url "https://github.com/rust-lang/rust-mode")
17784 (commit version)))
17785 (file-name (git-file-name name version))
17786 (sha256
17787 (base32
17788 "0bcrklyicxh032rrp585rl5mxd26nb61dp6r5bl935rlcmxzsczh"))))
17789 (build-system emacs-build-system)
17790 (arguments
17791 `(#:phases
17792 (modify-phases %standard-phases
17793 (replace 'check
17794 (lambda _
17795 (invoke "sh" "run_rust_emacs_tests.sh"))))))
17796 (home-page "https://github.com/rust-lang/rust-mode")
17797 (synopsis "Major Emacs mode for editing Rust source code")
17798 (description "This package provides a major Emacs mode for editing Rust
17799 source code.")
17800 (license (list license:expat
17801 license:asl2.0))))
17802
17803 (define-public emacs-ztree
17804 (let ((commit "c54425a094353ec40a8179f9eab3596f76c6cf94"))
17805 (package
17806 (name "emacs-ztree")
17807 (version (git-version "1.0.5" "1" commit))
17808 (source
17809 (origin
17810 (method git-fetch)
17811 (uri (git-reference
17812 (url "https://github.com/fourier/ztree")
17813 (commit commit)))
17814 (file-name (git-file-name name version))
17815 (sha256
17816 (base32
17817 "0j8fpxds8m1zi04nrs8vv21091abvh4n8ab76f1sgdxnp4l5cfb0"))))
17818 (build-system emacs-build-system)
17819 (home-page "https://github.com/fourier/ztree")
17820 (synopsis "Directory tree comparison mode for Emacs")
17821 (description "Ztree is a project dedicated to implementation of several
17822 text-tree applications inside GNU Emacs. It consists of 2 subprojects:
17823 @command{ztree-diff} and @command{ztree-dir} (the basis of
17824 @command{ztree-diff}).")
17825 (license license:gpl3))))
17826
17827 (define-public emacs-helm-org-contacts
17828 (let ((commit "e7f11615802df55bb8b679450b5a5ef82a9081f9"))
17829 (package
17830 (name "emacs-helm-org-contacts")
17831 (version (git-version "20200310" "1" commit))
17832 (source
17833 (origin
17834 (method git-fetch)
17835 (uri (git-reference
17836 (url "https://github.com/tmalsburg/helm-org-contacts")
17837 (commit commit)))
17838 (file-name (git-file-name name version))
17839 (sha256
17840 (base32
17841 "06a1gbrq3qcfsn0kyv4i24x1xxfrrwqa3kgfj4xa4va88q2vqyb5"))))
17842 (build-system emacs-build-system)
17843 (propagated-inputs
17844 `(("emacs-dash" ,emacs-dash)
17845 ("emacs-helm" ,emacs-helm)
17846 ("emacs-s" ,emacs-s)))
17847 (home-page "https://github.com/tmalsburg/helm-org-contacts")
17848 (synopsis "Helm source for org-contacts")
17849 (description "This Helm source can be used to search contacts stored in
17850 org-contacts format. There are actions for inserting postal addresses, email
17851 addresses, and phone numbers in the buffer where @command{helm-org-contacts}
17852 was called.")
17853 (license license:gpl3))))
17854
17855 (define-public emacs-dired-du
17856 (package
17857 (name "emacs-dired-du")
17858 (version "0.5.2")
17859 (source
17860 (origin
17861 (method url-fetch)
17862 (uri (string-append
17863 "https://elpa.gnu.org/packages/dired-du-" version ".tar"))
17864 (sha256
17865 (base32 "0vhph7vcicsiq28b10h3b4dvnhckcy4gccpdgsad5j7pwa5k26m1"))))
17866 (build-system emacs-build-system)
17867 (home-page "https://elpa.gnu.org/packages/dired-du.html")
17868 (synopsis "Dired with recursive directory sizes")
17869 (description
17870 "Display the recursive size of directories in Dired.
17871 This file defines a minor mode @command{dired-du-mode} to show the recursive
17872 size of directories in Dired buffers. If @command{du} program is available,
17873 then the directory sizes are obtained with it. Otherwise, the directory sizes
17874 are obtained with Lisp. The former is faster and provide a more precise
17875 value. For directories where the user doesn't have read permission, the
17876 recursive size is not obtained. Once this mode is enabled, every new Dired
17877 buffer displays recursive dir sizes.")
17878 (license license:gpl3+)))
17879
17880 (define-public emacs-dired-rsync
17881 (package
17882 (name "emacs-dired-rsync")
17883 (version "0.4")
17884 (source (origin
17885 (method git-fetch)
17886 (uri (git-reference
17887 (url "https://github.com/stsquad/dired-rsync")
17888 (commit version)))
17889 (file-name (git-file-name name version))
17890 (sha256
17891 (base32
17892 "0jzbn0izxqgz719gb6fpr60zbcb6w1ama13ngpvrig82nlhs37fv"))))
17893 (build-system emacs-build-system)
17894 (propagated-inputs
17895 `(("emacs-s" ,emacs-s)
17896 ("emacs-dash" ,emacs-dash)))
17897 (home-page "https://github.com/stsquad/dired-rsync/")
17898 (synopsis "Support for rsync from Emacs dired buffers")
17899 (description "This package adds a single command @code{dired-rsync} which
17900 allows the user to copy marked files in a dired buffer via @code{rsync}. This
17901 is useful, especially for large files, because the copy happens in the
17902 background and doesn’t lock up Emacs. It is also more efficient than using
17903 tramps own encoding methods for moving data between systems.")
17904 (license license:gpl3+)))
17905
17906 (define-public emacs-pcre2el
17907 ;; Last release is very old so we get the latest commit.
17908 (let ((commit "0b5b2a2c173aab3fd14aac6cf5e90ad3bf58fa7d"))
17909 (package
17910 (name "emacs-pcre2el")
17911 (version (git-version "1.8" "1" commit))
17912 (source
17913 (origin
17914 (method git-fetch)
17915 (uri (git-reference
17916 (url "https://github.com/joddie/pcre2el")
17917 (commit commit)))
17918 (file-name (git-file-name name version))
17919 (sha256
17920 (base32
17921 "14br6ad138qx1z822wqssswqiihxiynz1k69p6mcdisr2q8yyi1z"))))
17922 (build-system emacs-build-system)
17923 (home-page "https://github.com/joddie/pcre2el")
17924 (synopsis "Convert between PCRE, Emacs and rx regexp syntax")
17925 (description "@code{pcre2el} or @code{rxt} (RegeXp Translator or RegeXp
17926 Tools) is a utility for working with regular expressions in Emacs, based on a
17927 recursive-descent parser for regexp syntax. In addition to converting (a
17928 subset of) PCRE syntax into its Emacs equivalent, it can do the following:
17929
17930 @itemize
17931 @item convert Emacs syntax to PCRE
17932 @item convert either syntax to @code{rx}, an S-expression based regexp syntax
17933 @item untangle complex regexps by showing the parse tree in @code{rx} form and
17934 highlighting the corresponding chunks of code
17935 @item show the complete list of strings (productions) matching a regexp,
17936 provided the list is finite
17937 @item provide live font-locking of regexp syntax (so far only for Elisp
17938 buffers – other modes on the TODO list).
17939 @end itemize\n")
17940 (license license:gpl3))))
17941
17942 (define-public emacs-magit-todos
17943 (package
17944 (name "emacs-magit-todos")
17945 (version "1.4.1")
17946 (source
17947 (origin
17948 (method git-fetch)
17949 (uri (git-reference
17950 (url "https://github.com/alphapapa/magit-todos")
17951 (commit version)))
17952 (file-name (git-file-name name version))
17953 (sha256
17954 (base32
17955 "1rcl6j53yabxqk3jzgaxvm3wqq7rayf1hdib2v2fapw5b0layym6"))))
17956 (build-system emacs-build-system)
17957 (propagated-inputs
17958 `(("emacs-async" ,emacs-async)
17959 ("emacs-dash" ,emacs-dash)
17960 ("emacs-f" ,emacs-f)
17961 ("emacs-hl-todo" ,emacs-hl-todo)
17962 ("magit" ,emacs-magit)
17963 ("emacs-pcre2el" ,emacs-pcre2el)
17964 ("emacs-s" ,emacs-s)))
17965 (home-page "https://github.com/alphapapa/magit-todos")
17966 (synopsis "Show source files' TODOs (and FIXMEs, etc) in Magit status buffer")
17967 (description "This package displays keyword entries from source code
17968 comments and Org files in the Magit status buffer. Activating an item jumps
17969 to it in its file. By default, it uses keywords from @code{hl-todo}, minus a
17970 few (like NOTE).")
17971 (license license:gpl3)))
17972
17973 (define-public emacs-git-annex
17974 ;; Unreleased version has a fontification fix.
17975 (let ((commit "1324d3f23c534fe79391a2c256bb8803054e383b")
17976 (revision "2"))
17977 (package
17978 (name "emacs-git-annex")
17979 (version (git-version "1.1" revision commit))
17980 (source
17981 (origin
17982 (method git-fetch)
17983 (uri (git-reference
17984 (url "https://github.com/jwiegley/git-annex-el")
17985 (commit commit)))
17986 (file-name (git-file-name name version))
17987 (sha256
17988 (base32
17989 "1lfky2nsrlndlbvk6vwbswnvbvkz1sxgg0n3r5q6xykdkjym0lrh"))))
17990 (build-system emacs-build-system)
17991 (home-page "https://github.com/jwiegley/git-annex-el")
17992 (synopsis "Emacs integration for git-annex")
17993 (description "Enhances Dired and buffers visiting annex files with
17994 git-annex functionality. In Dired, the names of annex files are shortened by
17995 hiding the symbolic links and fontified based on whether content is present.
17996 Commands for performing some common operations (e.g., unlocking and adding
17997 files) are provided.")
17998 (license license:gpl2+))))
17999
18000 (define-public emacs-hackernews
18001 (let ((commit "2362d7b00e59da7caddc8c0adc24dccb42fddef9")
18002 (revision "2"))
18003 (package
18004 (name "emacs-hackernews")
18005 (version (git-version "0.5.0" revision commit))
18006 (source
18007 (origin
18008 (method git-fetch)
18009 (uri (git-reference
18010 (url "https://github.com/clarete/hackernews.el")
18011 (commit commit)))
18012 (file-name (git-file-name name version))
18013 (sha256
18014 (base32
18015 "1hcc5b173yzcvvd2ls3jxrmsw2w9bi21m9hcpcirkn0nh93ywadv"))))
18016 (build-system emacs-build-system)
18017 (home-page "https://github.com/clarete/hackernews.el")
18018 (synopsis "Hacker News client for Emacs")
18019 (description "The @command{hackernews} package is able to fetch stories
18020 from six different Hacker News feeds, namely top, new, best, ask, show and job
18021 stories. The default feed is top stories, which corresponds to the Hacker
18022 News homepage.")
18023 (license license:gpl3))))
18024
18025 (define-public emacs-youtube-dl
18026 (let ((commit "af877b5bc4f01c04fccfa7d47a2c328926f20ef4")
18027 (revision "2"))
18028 (package
18029 (name "emacs-youtube-dl")
18030 (version (git-version "1.0" "2" commit))
18031 (source
18032 (origin
18033 (method git-fetch)
18034 (uri (git-reference
18035 (url "https://github.com/skeeto/youtube-dl-emacs/")
18036 (commit commit)))
18037 (file-name (git-file-name name version))
18038 (sha256
18039 (base32
18040 "0zkl9jkjbx0lmp9ylv4rqg1zwqibk053s4rp7s1h0i18nzk7vn8j"))))
18041 (build-system emacs-build-system)
18042 (inputs
18043 `(("youtube-dl" ,youtube-dl)))
18044 (arguments
18045 `(#:phases
18046 (modify-phases %standard-phases
18047 (add-after 'unpack 'configure
18048 (lambda* (#:key inputs #:allow-other-keys)
18049 (let ((youtube-dl (assoc-ref inputs "youtube-dl")))
18050 ;; .el is read-only in git.
18051 (chmod "youtube-dl.el" #o644)
18052 ;; Specify the absolute file names of the various
18053 ;; programs so that everything works out-of-the-box.
18054 (emacs-substitute-variables
18055 "youtube-dl.el"
18056 ("youtube-dl-program"
18057 (string-append youtube-dl "/bin/youtube-dl")))))))))
18058 (home-page "https://github.com/skeeto/youtube-dl-emacs/")
18059 (synopsis "Emacs youtube-dl download manager")
18060 (description "This package manages a video download queue for
18061 @command{youtube-dl}, which serves as the back end. It manages a single
18062 @command{youtube-dl} subprocess, downloading one video at a time. New videos
18063 can be queued at any time.")
18064 (license license:unlicense))))
18065
18066 (define-public emacs-org-web-tools
18067 (package
18068 (name "emacs-org-web-tools")
18069 (version "1.0")
18070 (source
18071 (origin
18072 (method git-fetch)
18073 (uri (git-reference
18074 (url "https://github.com/alphapapa/org-web-tools")
18075 (commit version)))
18076 (file-name (git-file-name name version))
18077 (sha256
18078 (base32
18079 "0kak9h5ny00d39gnwspv53nadnag01brw2fq9zk5wpfc91h9bjng"))))
18080 (build-system emacs-build-system)
18081 (propagated-inputs
18082 `(("emacs-dash" ,emacs-dash)
18083 ("emacs-esxml" ,emacs-esxml)
18084 ("emacs-s" ,emacs-s)))
18085 (inputs
18086 `(("pandoc" ,ghc-pandoc)))
18087 (arguments
18088 `(#:phases
18089 (modify-phases %standard-phases
18090 (add-after 'unpack 'patch-exec-paths
18091 (lambda* (#:key inputs #:allow-other-keys)
18092 (let ((pandoc (assoc-ref inputs "pandoc")))
18093 (substitute* "org-web-tools.el"
18094 (("\"pandoc\"") (string-append "\"" pandoc "/bin/pandoc\"")))
18095 #t))))))
18096 (home-page "https://github.com/alphapapa/org-web-tools")
18097 (synopsis "Display/Process web page as Org-mode content")
18098 (description "This package contains library functions and commands useful
18099 for retrieving web page content and processing it into Org-mode content.
18100
18101 For example, you can copy a URL to the clipboard or kill-ring, then run a
18102 command that downloads the page, isolates the “readable” content with
18103 @command{eww-readable}, converts it to Org-mode content with Pandoc, and
18104 displays it in an Org-mode buffer. Another command does all of that but
18105 inserts it as an Org entry instead of displaying it in a new buffer.")
18106 (license license:gpl3+)))
18107
18108 (define-public emacs-blimp
18109 (let ((commit "e420763d6d18b5d1be552cdbc47f91418343db03"))
18110 (package
18111 (name "emacs-blimp")
18112 (version (git-version "0.0.0" "1" commit))
18113 (source
18114 (origin
18115 (method git-fetch)
18116 (uri (git-reference
18117 (url "https://github.com/walseb/blimp")
18118 (commit commit)))
18119 (file-name (git-file-name name version))
18120 (sha256
18121 (base32
18122 "09wmhpym516b81dfq8smdmysh1fn610dzlyvyl2rkx8600f0fizd"))))
18123 (build-system emacs-build-system)
18124 (propagated-inputs
18125 `(("emacs-eimp" ,emacs-eimp)))
18126 (home-page "https://github.com/walseb/blimp")
18127 (synopsis "Emacs wrapper around all Imagemagick commands")
18128 (description "Blimp (Bustling Image Manipulation Package) is a complete
18129 wrapper around all Imagemagick commands with descriptions, autocompletion (for
18130 some commands) and hints displayed in prompt using @command{eimp.el} to
18131 execute its commands and resize images.")
18132 (license license:gpl3+))))
18133
18134 (define-public emacs-synosaurus
18135 (let ((commit "8bf95b935976ec0a1964cf175ed57cc5f6f93bdb"))
18136 (package
18137 (name "emacs-synosaurus")
18138 (version (git-version "0.1.0" "1" commit))
18139 (source
18140 (origin
18141 (method git-fetch)
18142 (uri (git-reference
18143 (url "https://github.com/hpdeifel/synosaurus")
18144 (commit commit)))
18145 (file-name (git-file-name name version))
18146 (sha256
18147 (base32
18148 "15by9jccab6kyplxa6k0glzaivxkqdigl33gl2qi2cvy6f2q7gva"))))
18149 (build-system emacs-build-system)
18150 (propagated-inputs
18151 `(("wordnet" ,wordnet)))
18152 (arguments
18153 `(#:phases
18154 (modify-phases %standard-phases
18155 (add-after 'unpack 'configure
18156 (lambda* (#:key inputs outputs #:allow-other-keys)
18157 (let ((wn (assoc-ref inputs "wordnet")))
18158 ;; .el is read-only in git.
18159 (chmod "synosaurus-wordnet.el" #o644)
18160 ;; Specify the absolute file names of the various
18161 ;; programs so that everything works out-of-the-box.
18162 (emacs-substitute-variables
18163 "synosaurus-wordnet.el"
18164 ("wordnet-command"
18165 (string-append wn "/bin/wn")))))))))
18166 (home-page "https://github.com/hpdeifel/synosaurus")
18167 (synopsis "Extensible thesaurus mode for Emacs")
18168 (description "Synosaurus is a thesaurus fontend for Emacs with pluggable
18169 backends, including the @command{wordnet} offline backend.")
18170 (license license:gpl3+))))
18171
18172 (define-public emacs-editorconfig
18173 (package
18174 (name "emacs-editorconfig")
18175 (version "0.8.1")
18176 (source
18177 (origin
18178 (method git-fetch)
18179 (uri (git-reference
18180 (url "https://github.com/editorconfig/editorconfig-emacs")
18181 (commit (string-append "v" version))))
18182 (file-name (git-file-name name version))
18183 (sha256
18184 (base32
18185 "1djlhkap7zddknzvjsjz0agpfsms1ih05zcpg1bikid2vs4gddyr"))))
18186 (build-system emacs-build-system)
18187 (home-page "https://github.com/editorconfig/editorconfig-emacs")
18188 (synopsis "Define and maintain consistent coding styles between different
18189 editors and IDEs")
18190 (description "The EditorConfig project consists of a file format for
18191 defining coding styles and a collection of text editor plugins that enable
18192 editors to read the file format and adhere to defined styles. EditorConfig
18193 files are easily readable and they work nicely with version control systems.")
18194 (license license:gpl3+)))
18195
18196 (define-public emacs-all-the-icons
18197 (package
18198 (name "emacs-all-the-icons")
18199 (version "4.0.1")
18200 (source
18201 (origin
18202 (method git-fetch)
18203 (uri (git-reference
18204 (url "https://github.com/domtronn/all-the-icons.el")
18205 (commit version)))
18206 (file-name (git-file-name name version))
18207 (sha256
18208 (base32 "0yh7gnv9xfqn8q4rzaa6wpyn9575vyfxy7d3afly2mqsb367fgm5"))))
18209 (build-system emacs-build-system)
18210 (arguments
18211 `(#:include '("\\.el$" "^data/" "^fonts/")
18212 ;; Compiling "test/" fails with "Symbol’s value as variable is void:
18213 ;; all-the-icons--root-code". Ignoring tests.
18214 #:exclude '("^test/")
18215 #:tests? #f))
18216 (propagated-inputs
18217 `(("f" ,emacs-f)
18218 ("memoize" ,emacs-memoize)))
18219 (home-page "https://github.com/domtronn/all-the-icons.el")
18220 (synopsis "Collect icon fonts and propertize them within Emacs")
18221 (description
18222 "All-the-icons is a utility package to collect various icon fonts and
18223 propertize them within Emacs. Icon fonts allow you to propertize and format
18224 icons the same way you would normal text. This enables things such as better
18225 scaling of and anti aliasing of the icons.")
18226 ;; Package is released under Expat license. Elisp files are licensed
18227 ;; under GPL3+. Fonts come with various licenses: Expat for
18228 ;; "all-the-icons.ttf" and "file-icons.ttf", Apache License 2.0 for
18229 ;; "material-design-icons.ttf", and SIL OFL 1.1 for "fontawesome.ttf",
18230 ;; "ocitcons.ttf" and "weathericons.ttf".
18231 (license
18232 (list license:expat license:gpl3+ license:silofl1.1 license:asl2.0))))
18233
18234 (define-public emacs-wttrin
18235 (let ((commit "df5427ce2a5ad4dab652dbb1c4a1834d7ddc2abc")
18236 (revision "1"))
18237 (package
18238 (name "emacs-wttrin")
18239 (version (git-version "0.2.0" revision commit))
18240 (source (origin
18241 (method git-fetch)
18242 (uri (git-reference
18243 (url "https://github.com/bcbcarl/emacs-wttrin")
18244 (commit commit)))
18245 (file-name (git-file-name name version))
18246 (sha256
18247 (base32
18248 "1ai655f10iayb4vw0ass2j3x83f4vsv90326mnywkzfl3sxd432z"))))
18249 (build-system emacs-build-system)
18250 (propagated-inputs
18251 `(("emacs-xterm-color" ,emacs-xterm-color)))
18252 (home-page "https://github.com/bcbcarl/emacs-wttrin")
18253 (synopsis "Frontend for weather web service @url{wttr.in}")
18254 (description "This package provides local weather information from
18255 @url{wttr.in}.")
18256 (license license:expat))))
18257
18258 (define-public emacs-browse-kill-ring
18259 (let ((commit "1ef72cc6accd94cd7032c02b1b2c78ae7f1d1965")
18260 (revision "0"))
18261 (package
18262 (name "emacs-browse-kill-ring")
18263 (version (git-version "2.0.0" revision commit))
18264 (source
18265 (origin
18266 (method git-fetch)
18267 (uri (git-reference
18268 (url "https://github.com/browse-kill-ring/browse-kill-ring")
18269 (commit commit)))
18270 (file-name (git-file-name name version))
18271 (sha256
18272 (base32
18273 "0mil32g7hcw376jibs5hdyv00xbaql3m4a27rwqaafg0x59avxdj"))))
18274 (build-system emacs-build-system)
18275 (home-page "https://github.com/browse-kill-ring/browse-kill-ring")
18276 (synopsis "Interactively insert items from kill-ring")
18277 (description
18278 "Did you ever feel that @code{C-y M-y M-y M-y ...} is not a great way
18279 of trying to find that piece of text you know you killed a while back? Then
18280 @code{browse-kill-ring.el} is for you.")
18281 (license license:gpl2+))))
18282
18283 (define-public emacs-powerline
18284 (package
18285 (name "emacs-powerline")
18286 (version "2.4")
18287 (source
18288 (origin
18289 (method git-fetch)
18290 (uri (git-reference
18291 (url "https://github.com/milkypostman/powerline")
18292 (commit version)))
18293 (file-name (git-file-name name version))
18294 (sha256
18295 (base32
18296 "1hp3xp18943n0rlggz55150020ivw8gvi1vyxkr4z8xhpwq4gaar"))))
18297 (build-system emacs-build-system)
18298 (home-page "https://github.com/milkypostman/powerline/")
18299 (synopsis "Mode-line plugin for Emacs")
18300 (description "Powerline is a utility plugin which allows you to create
18301 a better-looking, more functional Emacs mode-line. A collection of predefined
18302 themes comes with the package.")
18303 (license license:gpl3+)))
18304
18305 (define-public emacs-spaceline
18306 (package
18307 (name "emacs-spaceline")
18308 (version "2.0.1")
18309 (source
18310 (origin
18311 (method git-fetch)
18312 (uri (git-reference
18313 (url "https://github.com/TheBB/spaceline")
18314 (commit (string-append "v" version))))
18315 (file-name (git-file-name name version))
18316 (sha256
18317 (base32
18318 "1q8r95zfrh0vxna5ml2pq9b9f66clfqcl4d2qy2aizkvzyxg6skl"))))
18319 (build-system emacs-build-system)
18320 (propagated-inputs
18321 `(("dash" ,emacs-dash)
18322 ("powerline" ,emacs-powerline)
18323 ("s" ,emacs-s)))
18324 (home-page "https://github.com/TheBB/spaceline")
18325 (synopsis "Powerline theme from Spacemacs")
18326 (description "Spaceline provides Spacemacs' mode-line theme.
18327 This package provides features for three kinds of users.
18328
18329 @itemize
18330 @item You just want to use the Spacemacs mode-line theme and forget about it.
18331 @item You want to use something similar to the Spacemacs mode-line theme, but
18332 with a handful of easy tweaks.
18333 @item You want an easy-to-use library for building your own mode-line from
18334 scratch, and you think the Spacemacs theme looks good.
18335 @end itemize")
18336 (license license:gpl3+)))
18337
18338 (define-public emacs-spaceline-next
18339 (let ((commit "1b26af2c1a701481ac5d90928fe0200e389756c3")
18340 (last-release-version "2.0.1")
18341 (revision "0"))
18342 (package
18343 (inherit emacs-spaceline)
18344 (name "emacs-spaceline-next")
18345 (version (git-version last-release-version revision commit))
18346 (source
18347 (origin
18348 (method git-fetch)
18349 (uri (git-reference
18350 (url "https://github.com/TheBB/spaceline.git")
18351 (commit commit)))
18352 (sha256
18353 (base32 "11lwckqcgzsahrkkm5wk1ph4kc7d4yz05r7251g8c9f0q6vdj9dp"))
18354 (file-name (git-file-name name version)))))))
18355
18356 (define-public emacs-column-marker
18357 (package
18358 (name "emacs-column-marker")
18359 (version "9")
18360 (source
18361 (origin
18362 (method url-fetch)
18363 (uri "https://www.emacswiki.org/emacs/download/column-marker.el")
18364 (sha256 (base32 "05bv198zhqw5hqq6cr11mhz02dpca74hhp1ycwq369m0yb2naxy9"))))
18365 (build-system emacs-build-system)
18366 (home-page "https://www.emacswiki.org/emacs/ColumnMarker")
18367 (synopsis "Emacs mode for highlighting columns")
18368 (description
18369 "With @code{column-marker.el} you can highlight any number of text columns.
18370 Three such highlight column markers are provided by default. This is
18371 especially useful for languages like COBOL or Fortran where certain columns
18372 have special meaning. It is also handy for aligning text across long vertical
18373 distances. Multi-column characters, such as @kbd{TAB} are treated
18374 correctly.")
18375 (license license:gpl2+)))
18376
18377 (define-public emacs-slime-repl-ansi-color
18378 (let ((commit "ad03263f5d4de473bc173b64a6fc3dc1106393d7"))
18379 (package
18380 (name "emacs-slime-repl-ansi-color")
18381 (version (git-version "0.0.0" "1" commit))
18382 (source (origin
18383 (method git-fetch)
18384 (uri (git-reference
18385 (url "https://github.com/deadtrickster/slime-repl-ansi-color")
18386 (commit commit)))
18387 (file-name (git-file-name name version))
18388 (sha256
18389 (base32
18390 "0bpg7gxz310x7bnlg324c507sxc5gxwwz6h64h6kdq141r73vbi4"))))
18391 (build-system emacs-build-system)
18392 (home-page "https://github.com/deadtrickster/slime-repl-ansi-color")
18393 (synopsis "Color ANSI codes in the REPL of SLIME")
18394 (description "Color ANSI codes in the REPL of SLIME")
18395 (license license:gpl2+))))
18396
18397 (define-public emacs-helm-slime
18398 (package
18399 (name "emacs-helm-slime")
18400 (version "0.4.0")
18401 (source (origin
18402 (method git-fetch)
18403 (uri (git-reference
18404 (url "https://github.com/emacs-helm/helm-slime")
18405 (commit version)))
18406 (file-name (git-file-name name version))
18407 (sha256
18408 (base32
18409 "0mrpjhpijdrq353fnfvdj9l9xfsz390qlcvifcair9732ma7i8l0"))))
18410 (build-system emacs-build-system)
18411 (propagated-inputs
18412 `(("emacs-helm" ,emacs-helm)
18413 ("emacs-slime" ,emacs-slime)))
18414 (home-page "https://github.com/emacs-helm/helm-slime")
18415 (synopsis "Helm for SLIME, the Superior Lisp Interaction Mode for Emacs")
18416 (description "Helm-SLIME defines a few new commands:
18417
18418 @itemize
18419 @item helm-slime-complete: Select a symbol from the SLIME completion systems.
18420 @item helm-slime-list-connections: Yet another slime-list-connections with Helm.
18421 @item: helm-slime-apropos: Yet another slime-apropos with Helm.
18422 @item helm-slime-repl-history: Select an input from the SLIME REPL history and insert it.
18423 @end itemize\n")
18424 (license license:gpl3+)))
18425
18426 (define-public emacs-helm-sly
18427 (package
18428 (name "emacs-helm-sly")
18429 (version "0.4.1")
18430 (source (origin
18431 (method git-fetch)
18432 (uri (git-reference
18433 (url "https://github.com/emacs-helm/helm-sly")
18434 (commit version)))
18435 (file-name (git-file-name name version))
18436 (sha256
18437 (base32
18438 "0b2dx9nzh5233lkix3lz81c9cv626lk2hjpcjiikwvyp6y0q92ys"))))
18439 (build-system emacs-build-system)
18440 (propagated-inputs
18441 `(("emacs-helm" ,emacs-helm)
18442 ("emacs-sly" ,emacs-sly)))
18443 (home-page "https://github.com/emacs-helm/helm-sly")
18444 (synopsis "Helm for SLY, a Common Lisp interaction mode for Emacs")
18445 (description "Helm-SLY defines a few new commands:
18446
18447 @itemize
18448 @item helm-sly-list-connections: Yet another Lisp connection list with Helm.
18449 @item: helm-sly-apropos: Yet another @command{apropos} with Helm.
18450 @item helm-sly-mini: Like @command{helm-sly-list-connections}, but include an
18451 extra source of Lisp-related buffers, like the events buffer or the scratch
18452 buffer.
18453 @end itemize\n")
18454 (license license:gpl3+)))
18455
18456 (define-public emacs-gtk-look
18457 (package
18458 (name "emacs-gtk-look")
18459 (version "29")
18460 (source (origin
18461 (method url-fetch)
18462 (uri "https://download.tuxfamily.org/user42/gtk-look.el")
18463 (sha256
18464 (base32
18465 "14p2nwrd51cr1v06fxbjjn6jdrkf9d6vcxhmscm0kl677s25ypsp"))))
18466 (build-system emacs-build-system)
18467 (arguments
18468 `(#:phases
18469 (modify-phases %standard-phases
18470 (add-after 'unpack 'configure
18471 (lambda _
18472 ;; File is read-only.
18473 (chmod "gtk-look.el" #o644)
18474 (emacs-substitute-variables "gtk-look.el"
18475 ("gtk-lookup-devhelp-indices"
18476 '(list (expand-file-name "~/.guix-profile/share/gtk-doc/html/*/*.devhelp*"))))
18477 #t)))))
18478 (home-page "http://user42.tuxfamily.org/gtk-look/index.html")
18479 (synopsis "Find and display HTML documentation for GTK, GNOME and Glib")
18480 (description "@command{gtk-look} finds and displays HTML documentation for
18481 GTK, GNOME and Glib functions and variables in Emacs, similar to what
18482 info-lookup-symbol does for info files (C-h S). The documentation is expected
18483 to be devhelp indexes with HTML files. The location of the indexes can be
18484 customized. In addition to C code development @command{gtk-look} is good for
18485
18486 @itemize
18487 @item @command{perl-gtk2}, recognising class funcs like
18488 @command{Gtk2::Label->new} and bare method names like @command{set_text}.
18489 @item @command{guile-gnome}, recognising methods like @command{set-text} and
18490 classes like @command{<gtk-window>}.
18491 @end itemize\n")
18492 (license license:gpl3+)))
18493
18494 (define-public emacs-ov
18495 (package
18496 (name "emacs-ov")
18497 (version "1.0.6")
18498 (source (origin
18499 (method git-fetch)
18500 (uri (git-reference
18501 (url "https://github.com/ShingoFukuyama/ov.el")
18502 (commit version)))
18503 (file-name (git-file-name name version))
18504 (sha256
18505 (base32
18506 "0qxk2rf84j86syxi8xknsq252irwg7sz396v3bb4wqz4prpj0kzc"))))
18507 (build-system emacs-build-system)
18508 (home-page "https://github.com/ShingoFukuyama/ov.el")
18509 (synopsis "Overlay library for Emacs Lisp")
18510 (description "@code{ov.el} provides a simple way to manipulate overlays in
18511 Emacs.")
18512 (license license:gpl3+)))
18513
18514 (define-public emacs-matrix-client
18515 (let ((commit "a0623667b07a4bf60980c97b078e9faed97ace79"))
18516 (package
18517 (name "emacs-matrix-client")
18518 (version (git-version "0.0.0" "4" commit))
18519 (source (origin
18520 (method git-fetch)
18521 (uri (git-reference
18522 (url "https://github.com/jgkamat/matrix-client-el")
18523 (commit commit)))
18524 (file-name (git-file-name name version))
18525 (sha256
18526 (base32
18527 "1zya8id3y9wzjaj7nplq7br6nhm3lsskv0fkn1xr1y77fzcfgcdb"))))
18528 (build-system emacs-build-system)
18529 (arguments
18530 `(#:phases
18531 (modify-phases %standard-phases
18532 (add-after 'unpack 'add-missing-require
18533 ;; Fix a filter error at runtime due to a missing require.
18534 ;; Reported upstream:
18535 ;; <https://github.com/alphapapa/matrix-client.el/issues/76>
18536 (lambda _
18537 (substitute* "matrix-client-room.el"
18538 (("\\(require 'dash-functional\\)" all)
18539 (string-append all "\n" "(require 'anaphora)")))
18540 #t)))))
18541 (propagated-inputs
18542 `(("a" ,emacs-a)
18543 ("anaphora" ,emacs-anaphora)
18544 ("dash" ,emacs-dash)
18545 ("esxml" ,emacs-esxml)
18546 ("f" ,emacs-f)
18547 ("frame-purpose" ,emacs-frame-purpose)
18548 ("ht" ,emacs-ht)
18549 ("ov" ,emacs-ov)
18550 ("rainbow-identifiers" ,emacs-rainbow-identifiers)
18551 ("request" ,emacs-request)
18552 ("s" ,emacs-s)
18553 ("tracking" ,emacs-tracking)))
18554 (home-page "https://github.com/jgkamat/matrix-client-el")
18555 (synopsis "Matrix client for Emacs")
18556 (description "@code{matrix-client} is a simple chat UI to Matrix.org
18557 rooms. It also provides an API which allows Emacs to seamlessly create
18558 RPC channels with users and other software.")
18559 (license license:gpl3+))))
18560
18561 (define-public emacs-sesman
18562 (package
18563 (name "emacs-sesman")
18564 (version "0.3.4")
18565 (source
18566 (origin
18567 (method git-fetch)
18568 (uri (git-reference
18569 (url "https://github.com/vspinu/sesman")
18570 (commit (string-append "v" version))))
18571 (file-name (git-file-name name version))
18572 (sha256
18573 (base32
18574 "0z5jb4vpbjsi63w3wjy6d2lgz33qdfvrgfb3bszv4hcf6a96y7fc"))))
18575 (build-system emacs-build-system)
18576 (arguments
18577 `(#:phases
18578 (modify-phases %standard-phases
18579 (add-after 'unpack 'set-shell
18580 ;; Setting the SHELL environment variable is required for the tests
18581 ;; to find sh.
18582 (lambda _
18583 (setenv "SHELL" (which "sh"))
18584 #t)))
18585 #:tests? #t
18586 #:test-command '("make" "test")))
18587 (home-page "https://github.com/vspinu/sesman")
18588 (synopsis "Session manager for Emacs based IDEs")
18589 (description "Sesman provides facilities for session management and
18590 interactive session association with the current contexts (project, directory,
18591 buffers). While sesman can be used to manage arbitrary sessions, it primary
18592 targets the Emacs based IDEs (CIDER, ESS, Geiser, Robe, SLIME etc.)")
18593 (license license:gpl3+)))
18594
18595 (define-public emacs-buttercup
18596 (package
18597 (name "emacs-buttercup")
18598 (version "1.16")
18599 (source
18600 (origin
18601 (method git-fetch)
18602 (uri (git-reference
18603 (url "https://github.com/jorgenschaefer/emacs-buttercup")
18604 (commit (string-append "v" version))))
18605 (file-name (git-file-name name version))
18606 (sha256
18607 (base32
18608 "0dckgcyzsav6ld78bcyrrygy1cz1jvqgav6vy8f6klpmk3r8xrl1"))))
18609 (build-system emacs-build-system)
18610 (arguments
18611 `(#:tests? #t
18612 #:test-command '("make" "test")
18613 #:phases
18614 (modify-phases %standard-phases
18615 (add-after 'install 'install-bin
18616 (lambda* (#:key outputs #:allow-other-keys)
18617 (install-file "bin/buttercup"
18618 (string-append (assoc-ref outputs "out") "/bin"))
18619 #t)))))
18620 (home-page "https://github.com/jorgenschaefer/emacs-buttercup")
18621 (synopsis "Behavior driven emacs lisp testing framework")
18622 (description "Buttercup is a behavior-driven development framework for
18623 testing Emacs Lisp code. It groups related tests so they can share
18624 common set-up and tear-down code, and allows the programmer to \"spy\" on
18625 functions to ensure they are called with the right arguments during testing.")
18626 (license license:gpl3+)))
18627
18628 (define-public emacs-cort
18629 ;; Choosing a recent commit to fix some bugs.
18630 ;; https://github.com/conao3/cort.el/issues/106
18631 (let ((commit "495c3972b92b57a0cb5dd65ce5de9d3c6b8b6509")
18632 (revision "1"))
18633 (package
18634 (name "emacs-cort")
18635 (version (git-version "3.0.5" revision commit))
18636 (source (origin
18637 (method git-fetch)
18638 (uri (git-reference
18639 (url "https://github.com/conao3/cort.el")
18640 (commit commit)))
18641 (file-name (git-file-name name version))
18642 (sha256
18643 (base32
18644 "0f4irq1arh9c7lf9a5bla25am0jy5r6lj8ayb8k9k7lrirzhyk99"))))
18645 (build-system emacs-build-system)
18646 (propagated-inputs
18647 `(("emacs-ansi" ,emacs-ansi)))
18648 (arguments
18649 `(#:tests? #t
18650 #:test-command '("emacs" "--batch" "--quick"
18651 "--directory=." "--load=cort-tests.el"
18652 "--funcall=cort-test-run")))
18653 (home-page "https://github.com/conao3/cort.el")
18654 (synopsis "Unit test framework for the Emacs Lisp")
18655 (description "@code{cort} is a lightweight Emacs Lisp unit test library.")
18656 (license license:gpl3+))))
18657
18658 (define-public emacs-wordnut
18659 (let ((commit "feac531404041855312c1a046bde7ea18c674915")
18660 (revision "0"))
18661 (package
18662 (name "emacs-wordnut")
18663 (version (git-version "0.1" revision commit))
18664 (home-page "https://github.com/gromnitsky/wordnut")
18665 (source (origin
18666 (method git-fetch)
18667 (uri (git-reference (url home-page) (commit commit)))
18668 (sha256
18669 (base32
18670 "1jl0b6g64a9w0q7bfvwha67vgws5xd15b7mkfyb5gkz3pymqhfxn"))
18671 (patches
18672 (search-patches "emacs-wordnut-require-adaptive-wrap.patch"))
18673 (file-name (git-file-name name version))))
18674 (build-system emacs-build-system)
18675 (propagated-inputs
18676 `(("wordnet" ,wordnet)
18677 ("emacs-adaptive-wrap" ,emacs-adaptive-wrap)))
18678 (synopsis "Major mode for WordNet")
18679 (description "This Emacs package provides an interface for
18680 @code{wordnet}. Features include completion, if the query is not found
18681 too ambiguous and navigation in the result buffer.")
18682 (license license:gpl3+))))
18683
18684 (define-public emacs-frame-purpose
18685 (package
18686 (name "emacs-frame-purpose")
18687 (version "1.0")
18688 (source (origin
18689 (method git-fetch)
18690 (uri (git-reference
18691 (url "https://github.com/alphapapa/frame-purpose.el")
18692 (commit version)))
18693 (sha256
18694 (base32
18695 "0jq2aam1yvccw887ighd1wm2xkvk5bv53ffiz3crcl16a255aj4q"))
18696 (file-name (git-file-name name version))))
18697 (build-system emacs-build-system)
18698 (inputs
18699 `(("dash" ,emacs-dash)))
18700 (synopsis "Purpose-specific frames for Emacs")
18701 (description "@code{frame-purpose} makes it easy to open purpose-specific
18702 frames that only show certain buffers, e.g. by buffers’ major mode, their
18703 filename or directory, etc, with custom frame/X-window titles, icons, and
18704 other frame parameters.")
18705 (home-page "https://github.com/alphapapa/frame-purpose.el")
18706 (license license:gpl3+)))
18707
18708 (define-public emacs-arduino-mode
18709 (let ((commit "23ae47c9f28f559e70b790b471f20310e163a39b")
18710 (revision "1")) ;no release yet
18711 (package
18712 (name "emacs-arduino-mode")
18713 (version (git-version "0" revision commit))
18714 (source (origin
18715 (method git-fetch)
18716 (uri (git-reference
18717 (url "https://github.com/stardiviner/arduino-mode")
18718 (commit commit)))
18719 (sha256
18720 (base32
18721 "08vnbz9gpah1l93fzfd87aawrhcnh2v1kyfxgsn88pdwg8awz8rx"))
18722 (file-name (git-file-name name version))))
18723 (build-system emacs-build-system)
18724 (inputs
18725 `(("spinner" ,emacs-spinner)
18726 ("flycheck" ,emacs-flycheck)))
18727 (arguments
18728 `(#:phases
18729 (modify-phases %standard-phases
18730 ;; Emacs complains that "defmethod" and "defgeneric" are obsolete
18731 ;; macros when compiling. Substitute them with the recommended
18732 ;; macros "cl-defmethod" and "cl-defgeneric", respectively.
18733 (add-after 'unpack 'fix-obsolete
18734 (lambda _
18735 (substitute* "ede-arduino.el"
18736 (("defmethod") "cl-defmethod")
18737 (("defgeneric") "cl-defgeneric"))
18738 #t)))))
18739 (synopsis "Emacs major mode for editing Arduino sketches")
18740 (description "Emacs major mode for editing Arduino sketches.")
18741 (home-page "https://github.com/stardiviner/arduino-mode")
18742 (license license:gpl3+))))
18743
18744 (define-public emacs-annalist
18745 (let ((commit "e0601539c9ac0171a684ea3ff6266d215d1d08e6")
18746 (revision "1"))
18747 (package
18748 (name "emacs-annalist")
18749 (version (git-version "1.0.0" revision commit))
18750 (source (origin
18751 (method git-fetch)
18752 (uri (git-reference
18753 (url "https://github.com/noctuid/annalist.el")
18754 (commit commit)))
18755 (sha256
18756 (base32
18757 "10bmimdzpi6cql4sb2hbgdvrza83xbac50bi9qng4z662pfnlaam"))
18758 (file-name (git-file-name name version))))
18759 (build-system emacs-build-system)
18760 (native-inputs
18761 `(("emacs-buttercup" ,emacs-buttercup)
18762 ("emacs-lispy" ,emacs-lispy)
18763 ("emacs-evil" ,emacs-evil)))
18764 (arguments
18765 `(#:phases
18766 (modify-phases %standard-phases
18767 (add-before 'check 'fix-makefile
18768 (lambda _
18769 (substitute* "Makefile"
18770 (("cask exec ") ""))
18771 #t)))
18772 #:tests? #t
18773 #:test-command '("make" "test")))
18774 (home-page "https://github.com/noctuid/annalist.el")
18775 (synopsis "Record and display information with Org headings and tables")
18776 (description "This package allows for keybindings, settings, hooks, and
18777 advice to be recorded and displayed.")
18778 (license license:gpl3+))))
18779
18780 (define-public emacs-general
18781 (let ((commit "a0b17d207badf462311b2eef7c065b884462cb7c")
18782 (revision "4"))
18783 (package
18784 (name "emacs-general")
18785 (version (git-version "0" revision commit))
18786 (source
18787 (origin
18788 (method git-fetch)
18789 (uri (git-reference
18790 (url "https://github.com/noctuid/general.el")
18791 (commit commit)))
18792 (sha256
18793 (base32 "0wn5rk3gkimdklip392mnjrmkymgrb7q9skifi03cbpjam1anzvv"))
18794 (file-name (git-file-name name version))))
18795 (build-system emacs-build-system)
18796 (native-inputs
18797 `(("emacs-buttercup" ,emacs-buttercup)
18798 ("emacs-evil" ,emacs-evil)
18799 ("emacs-which-key" ,emacs-which-key)
18800 ("emacs-use-package" ,emacs-use-package)))
18801 (arguments
18802 `(#:tests? #t
18803 #:test-command '("buttercup" "-L" "test/test-general.el")))
18804 (home-page "https://github.com/noctuid/general.el")
18805 (synopsis "More convenient key definitions in emacs")
18806 (description "@code{general.el} provides a more convenient method for
18807 binding keys in emacs (for both evil and non-evil users). Like
18808 @code{use-package}, which provides a convenient, unified interface for
18809 managing packages, @code{general.el} is intended to provide a convenient,
18810 unified interface for key definitions. While this package does implement some
18811 completely new functionality (such as the ability to make vim-style
18812 keybindings under non-prefix keys with an optional timeout), its primary
18813 purpose is to build on existing functionality to make key definition more
18814 clear and concise. @code{general-define-key} is user-extensible and supports
18815 defining multiple keys in multiple keymaps at once, implicitly wrapping key
18816 strings with (@code{kbd ...}), using named prefix key sequences (like the
18817 leader key in vim), and much more.")
18818 (license license:gpl3+))))
18819
18820 (define-public emacs-tldr
18821 (let ((commit "7203d1be3dcbf12131846ffe06601933fa874d74"))
18822 (package
18823 (name "emacs-tldr")
18824 (version (git-version "0" "1" commit))
18825 (home-page "https://github.com/kuanyui/tldr.el")
18826 (source (origin
18827 (method git-fetch)
18828 (uri (git-reference
18829 (url (string-append home-page ".git"))
18830 (commit commit)))
18831 (sha256
18832 (base32
18833 "1bw6la463l2yfm7rp76ga4makfy4kpxgwi7ni5gxk31w11g26ryk"))
18834 (file-name (git-file-name name version))))
18835 (build-system emacs-build-system)
18836 (propagated-inputs
18837 `(("emacs-request" ,emacs-request)))
18838 (synopsis "Simplified and community-driven man pages for Emacs")
18839 (description "@code{emacs-tldr} allows the user to access tldr pages
18840 from within emacs. The @code{tldr} pages are a community effort to simplify
18841 the man pages with practical examples.")
18842 (license license:wtfpl2))))
18843
18844 (define-public emacs-window-layout
18845 (package
18846 (name "emacs-window-layout")
18847 (version "1.4")
18848 (home-page "https://github.com/kiwanami/emacs-window-layout")
18849 (source (origin
18850 (method git-fetch)
18851 (uri (git-reference
18852 (url home-page)
18853 (commit (string-append "v" version))))
18854 (sha256
18855 (base32
18856 "0wgqi8r844lbx52fn6az8c1n8m681rp6dkfzd54wmdk1ka7zmvv6"))
18857 (file-name (git-file-name name version))))
18858 (build-system emacs-build-system)
18859 (synopsis "Simple window layout management framework for emacs")
18860 (description "A window-layout management library that can split a frame
18861 or a window into some windows according to a layout recipe.")
18862 (license license:gpl3+)))
18863
18864 (define-public emacs-e2wm
18865 (package
18866 (name "emacs-e2wm")
18867 (version "1.4")
18868 (home-page "https://github.com/kiwanami/emacs-window-manager")
18869 (source (origin
18870 (method git-fetch)
18871 (uri (git-reference
18872 (url home-page)
18873 (commit (string-append "v" version))))
18874 (sha256
18875 (base32
18876 "12midsrx07pdrsr1qbl2rpi7xyhxqx08bkz7n7gf8vsmqkpfp56s"))
18877 (file-name (git-file-name name version))))
18878 (build-system emacs-build-system)
18879 (propagated-inputs
18880 `(("emacs-window-layout" ,emacs-window-layout)))
18881 (synopsis "Equilibrium Emacs Window Manager")
18882 (description "E2WM is a window manager for Emacs. It enables to
18883 customize the place of pop-up window, how the windows are split, how the
18884 buffers are located in the windows, keybinds to manipulate windows and
18885 buffers, etc. It also has plug-ins to help your Emacs life.")
18886 (license license:gpl3+)))
18887
18888 (define-public emacs-ctable
18889 (let ((commit "b8830d1ca95abb100a81bc32011bd17d5ecba000"))
18890 (package
18891 (name "emacs-ctable")
18892 (version (git-version "0.1.2" "1" commit))
18893 (home-page "https://github.com/kiwanami/emacs-ctable")
18894 (source (origin
18895 (method git-fetch)
18896 (uri (git-reference
18897 (url home-page)
18898 (commit commit)))
18899 (sha256
18900 (base32
18901 "0pg303pnqscrsbx9579hc815angszsgf9vpd2z2f8p4f4ka6a00h"))
18902 (file-name (git-file-name name version))))
18903 (build-system emacs-build-system)
18904 (synopsis "Table component for Emacs Lisp")
18905 (description "This program is a table component for Emacs Lisp. Other
18906 programs can use this table component for the application UI.")
18907 (license license:gpl3+))))
18908
18909 (define-public emacs-leetcode
18910 (let ((commit "8624496af9e105c3e07d88844b37ede87540d604")
18911 (revision "1"))
18912 (package
18913 (name "emacs-leetcode")
18914 (version (git-version "0" "1" commit))
18915 (home-page "https://github.com/ginqi7/leetcode-emacs.git")
18916 (source (origin
18917 (method git-fetch)
18918 (uri (git-reference
18919 (url "https://github.com/ginqi7/leetcode-emacs")
18920 (commit commit)))
18921 (sha256
18922 (base32
18923 "11pp7ydlmwrv7djf9mwk4xzn295xbmdnj5x13bfj5yjpjr89p531"))
18924 (file-name (git-file-name name version))))
18925 (build-system emacs-build-system)
18926 (propagated-inputs
18927 `(("emacs-names" ,emacs-names)
18928 ("emacs-ctable" ,emacs-ctable)))
18929 (synopsis "Solve and submit LeetCode problems from within Emacs")
18930 (description "This package provides an Emacs interface to LeetCode
18931 allowing users to log in and solve problems of their choice using Emacs.")
18932 (license license:unlicense))))
18933
18934 (define-public emacs-epc
18935 (let ((commit "e1bfa5ca163273859336e3cc89b4b6460f7f8cda"))
18936 (package
18937 (name "emacs-epc")
18938 (version (git-version "0.1.1" "1" commit))
18939 (home-page "https://github.com/kiwanami/emacs-epc")
18940 (source (origin
18941 (method git-fetch)
18942 (uri (git-reference
18943 (url home-page)
18944 (commit commit)))
18945 (sha256
18946 (base32
18947 "15nkrjgi64f829isfd6xrhl4zw8jirr8pkas7nisrbk1av868hx0"))
18948 (file-name (git-file-name name version))))
18949 (build-system emacs-build-system)
18950 (propagated-inputs
18951 `(("emacs-deferred" ,emacs-deferred)
18952 ("emacs-ctable" ,emacs-ctable)))
18953 (synopsis "RPC stack for Emacs Lisp")
18954 (description "This program is an asynchronous RPC stack for Emacs.
18955 Using this RPC stack, Emacs can communicate with the peer process
18956 smoothly. Because the protocol employs S-expression encoding and consists of
18957 asynchronous communications, the RPC response is fairly good.")
18958 (license license:gpl3+))))
18959
18960 (define-public emacs-edbi
18961 (let ((commit "6f50aaf4bde75255221f2292c7a4ad3fa9d918c0"))
18962 (package
18963 (name "emacs-edbi")
18964 (version (git-version "0.1.3" "1" commit))
18965 (home-page "https://github.com/kiwanami/emacs-edbi")
18966 (source (origin
18967 (method git-fetch)
18968 (uri (git-reference
18969 (url home-page)
18970 (commit commit)))
18971 (sha256
18972 (base32
18973 "0x0igyvdcm4863n7zndvcv6wgzwgn7324cbfjja6xd7r0k936zdy"))
18974 (file-name (git-file-name name version))))
18975 (build-system emacs-build-system)
18976 (inputs
18977 `(("perl" ,perl)
18978 ("perl-rpc-epc-service" ,perl-rpc-epc-service)
18979 ("perl-dbi" ,perl-dbi)
18980 ;; TODO: Adding support for perl-dbd-mysql and others would
18981 ;; dramatically increase the closure size. Make several packages?
18982 ("perl-dbd-sqlite" ,perl-dbd-sqlite)))
18983 (propagated-inputs
18984 `(("emacs-e2wm" ,emacs-e2wm)
18985 ("emacs-epc" ,emacs-epc)))
18986 (arguments
18987 `(#:include '("\\.el$" "\\.pl$")
18988 #:phases
18989 (modify-phases %standard-phases
18990 (add-after 'install 'patch-path
18991 (lambda* (#:key inputs outputs #:allow-other-keys)
18992 (let ((perl (assoc-ref inputs "perl"))
18993 (dir (string-append (assoc-ref outputs "out")
18994 "/share/emacs/site-lisp")))
18995 (substitute* (string-append dir "/edbi.el")
18996 (("\"perl\"") (string-append "\"" perl "/bin/perl\"")))
18997 (chmod (string-append dir "/edbi-bridge.pl") #o555)
18998 (wrap-program (string-append dir "/edbi-bridge.pl")
18999 `("PERL5LIB" ":" prefix (,(getenv "PERL5LIB"))))
19000 #t))))))
19001 (synopsis "Database Interface for Emacs Lisp")
19002 (description "This program connects the database server through Perl's
19003 DBI, and provides DB-accessing API and the simple management UI.")
19004 (license license:gpl3+))))
19005
19006 (define-public emacs-edbi-sqlite
19007 (let ((commit "52cb9ca1af7691b592f2cfd2f007847e7a4ccd5f"))
19008 (package
19009 (name "emacs-edbi-sqlite")
19010 (version (git-version "0.1.1" "1" commit))
19011 (home-page "https://github.com/proofit404/edbi-sqlite")
19012 (source (origin
19013 (method git-fetch)
19014 (uri (git-reference
19015 (url home-page)
19016 (commit commit)))
19017 (sha256
19018 (base32
19019 "1vll81386fx90lq5sy4rlxcik6mvw7zx5cc51f0yaca9bkcckp51"))
19020 (file-name (git-file-name name version))))
19021 (build-system emacs-build-system)
19022 (propagated-inputs
19023 `(("emacs-edbi" ,emacs-edbi)))
19024 (synopsis "Open SQLite files in Emacs")
19025 (description "This package is a convenience wrapper for @command{edbi}
19026 to open SQLite databases.")
19027 (license license:gpl3+))))
19028
19029 (define-public emacs-nix-mode
19030 (package
19031 (name "emacs-nix-mode")
19032 (version "1.4.1")
19033 (source
19034 (origin
19035 (method git-fetch)
19036 (uri (git-reference
19037 (url "https://github.com/NixOS/nix-mode")
19038 (commit (string-append "v" version))))
19039 (file-name (git-file-name name version))
19040 (sha256
19041 (base32 "04xpgg9nba5m1bl7ci5l456whcb8nfhsbvgxyx89bp0zqgr005q7"))))
19042 (build-system emacs-build-system)
19043 (inputs
19044 `(("emacs-company" ,emacs-company)
19045 ("emacs-json-mode" ,emacs-json-mode)
19046 ("emacs-mmm-mode" ,emacs-mmm-mode)))
19047 (home-page "https://github.com/NixOS/nix-mode")
19048 (synopsis "Emacs major mode for editing Nix expressions")
19049 (description "@code{nixos-mode} provides an Emacs major mode for editing
19050 Nix expressions. It supports syntax highlighting, indenting and refilling of
19051 comments.")
19052 (license license:lgpl2.1+)))
19053
19054 (define-public emacs-libmpdel
19055 (package
19056 (name "emacs-libmpdel")
19057 (version "1.1.2")
19058 (source (origin
19059 (method git-fetch)
19060 (uri (git-reference
19061 (url "https://gitea.petton.fr/mpdel/libmpdel.git")
19062 (commit (string-append "v" version))))
19063 (file-name (git-file-name name version))
19064 (sha256
19065 (base32
19066 "0dnjndpv6bmz5blfs75ynmbm32g23l4slg5p3941b1i94a08qzpy"))))
19067 (build-system emacs-build-system)
19068 (home-page "https://gitea.petton.fr/mpdel/libmpdel")
19069 (synopsis "Emacs library to communicate with Music Player Daemon (MPD)")
19070 (description
19071 "An Emacs library client to communicate with Music Player Daemon (MPD), a
19072 flexible, powerful, server-side application for playing music.")
19073 (license license:gpl3+)))
19074
19075 (define-public emacs-mpdel
19076 (package
19077 (name "emacs-mpdel")
19078 (version "1.0.0")
19079 (source
19080 (origin
19081 (method git-fetch)
19082 (uri (git-reference
19083 (url "https://gitea.petton.fr/mpdel/mpdel.git")
19084 (commit (string-append "v" version))))
19085 (file-name (git-file-name name version))
19086 (sha256
19087 (base32
19088 "0pyyvbzskr44dxbmlp3y0r6s459fd51cvwjmnjaqxfxflr5v891g"))))
19089 (build-system emacs-build-system)
19090 (inputs
19091 `(("emacs-libmpdel" ,emacs-libmpdel)))
19092 (home-page "https://gitea.petton.fr/mpdel/mpdel")
19093 (synopsis "Emacs user interface for Music Player Daemon (MPD)")
19094 (description
19095 "MPDel provides an Emacs user interface to control playback (play, pause,
19096 next, volume) and display and control the current playlist as well as your
19097 stored playlists.")
19098 (license license:gpl3+)))
19099
19100 (define-public emacs-vterm
19101 (let ((version "0")
19102 (revision "1")
19103 (commit "e63bd65eece7c5de3a534b7e2fdbe58256ec2da0"))
19104 (package
19105 (name "emacs-vterm")
19106 (version (git-version version revision commit))
19107 (source (origin
19108 (method git-fetch)
19109 (uri (git-reference
19110 (url "https://github.com/akermu/emacs-libvterm")
19111 (commit commit)))
19112 (file-name (git-file-name name version))
19113 (sha256
19114 (base32
19115 "0iq857w54qmazxh23fipz85fb9i6dav3f63g0ghpmi6mybfp6i5v"))))
19116 (build-system emacs-build-system)
19117 (arguments
19118 `(#:modules ((guix build emacs-build-system)
19119 ((guix build cmake-build-system) #:prefix cmake:)
19120 (guix build emacs-utils)
19121 (guix build utils))
19122 #:imported-modules (,@%emacs-build-system-modules
19123 (guix build cmake-build-system))
19124 #:phases
19125 (modify-phases %standard-phases
19126 (add-before 'add-source-to-load-path 'substitute-vterm-module-path
19127 (lambda* (#:key outputs #:allow-other-keys)
19128 (chmod "vterm.el" #o644)
19129 (emacs-substitute-sexps "vterm.el"
19130 ("(require 'vterm-module nil t)"
19131 `(module-load
19132 ,(string-append (assoc-ref outputs "out")
19133 "/lib/vterm-module.so"))))
19134 #t))
19135 (add-after 'build 'configure
19136 ;; Run cmake.
19137 (lambda* (#:key outputs #:allow-other-keys)
19138 ((assoc-ref cmake:%standard-phases 'configure)
19139 #:outputs outputs
19140 #:out-of-source? #f
19141 #:configure-flags '("-DUSE_SYSTEM_LIBVTERM=ON"))
19142 #t))
19143 (add-after 'configure 'make
19144 ;; Run make.
19145 (lambda* (#:key (make-flags '()) outputs #:allow-other-keys)
19146 ;; Compile the shared object file.
19147 (apply invoke "make" "all" make-flags)
19148 ;; Move the file into /lib.
19149 (install-file
19150 "vterm-module.so"
19151 (string-append (assoc-ref outputs "out") "/lib"))
19152 #t)))
19153 #:tests? #f))
19154 (native-inputs
19155 `(("cmake" ,cmake-minimal)
19156 ("libtool" ,libtool)
19157 ("libvterm" ,libvterm)))
19158 (home-page "https://github.com/akermu/emacs-libvterm")
19159 (synopsis "Emacs libvterm integration")
19160 (description "This package implements a bridge to @code{libvterm} to
19161 display a terminal in an Emacs buffer.")
19162 (license license:gpl3+))))
19163
19164 (define-public emacs-simple-mpc
19165 ;; There have been no releases.
19166 (let ((commit "bee8520e81292b4c7353e45b193f9a13b482f5b2")
19167 (revision "1"))
19168 (package
19169 (name "emacs-simple-mpc")
19170 (version (git-version "0" revision commit))
19171 (source
19172 (origin
19173 (method git-fetch)
19174 (uri (git-reference
19175 (url "https://github.com/jorenvo/simple-mpc")
19176 (commit commit)))
19177 (file-name (git-file-name name version))
19178 (sha256
19179 (base32
19180 "1ja06pv007cmzjjgka95jlg31k7d29jrih1yxyblsxv85s9sg21q"))))
19181 (build-system emacs-build-system)
19182 (propagated-inputs `(("emacs-s" ,emacs-s)))
19183 (home-page "https://github.com/jorenvo/simple-mpc")
19184 (synopsis "Simple Emacs frontend to mpc")
19185 (description "This package provides an Emacs major mode which acts as a
19186 front end to mpc, a client for the @dfn{Music Player Daemon} (MPD).")
19187 (license license:gpl3+))))
19188
19189 (define-public emacs-mkmcc-gnuplot-mode
19190 (package
19191 (name "emacs-mkmcc-gnuplot-mode")
19192 (version "1.2.0")
19193 (source
19194 (origin
19195 (method git-fetch)
19196 (uri (git-reference
19197 (url "https://github.com/mkmcc/gnuplot-mode")
19198 (commit "601f6392986f0cba332c87678d31ae0d0a496ce7")))
19199 (file-name (git-file-name name version))
19200 (sha256
19201 (base32
19202 "14f0yh1rjqc3337j4sbqzfb7pjim2c8a7wk1a73xkrdkmjn82vgb"))))
19203 (build-system emacs-build-system)
19204 (home-page "https://mkmcc.github.io/software/gnuplot-mode.html")
19205 (synopsis "Minimal emacs major mode for editing gnuplot scripts")
19206 (description "@code{emacs-mkmcc-gnuplot-mode} is a minimal emacs major
19207 mode for editing gnuplot scripts. It provides syntax highlighting,
19208 indentation and a command to plot the file.")
19209 (license license:gpl3+)))
19210
19211 (define-public emacs-cmake-font-lock
19212 (let ((commit "e0ceaaae19c13b66f781512e3295bfc6707b56f4")
19213 (revision "1"))
19214 (package
19215 (name "emacs-cmake-font-lock")
19216 (version (git-version "0.1.5" revision commit))
19217 (source (origin
19218 (method git-fetch)
19219 (uri (git-reference
19220 (url "https://github.com/Lindydancer/cmake-font-lock")
19221 (commit commit)))
19222 (file-name (git-file-name name version))
19223 (sha256
19224 (base32
19225 "03gsyn95dlmsn15bl353bphi3qy7ccn5bss3f7n97kf38bllh0yf"))))
19226 (build-system emacs-build-system)
19227 (native-inputs
19228 `(("emacs-faceup" ,emacs-faceup)))
19229 (arguments
19230 `(#:include (cons "^admin\\/" %default-include)))
19231 (home-page "https://github.com/Lindydancer/cmake-font-lock")
19232 (synopsis "Advanced type-aware syntax-highlighting for CMake")
19233 (description "This package highlights function arguments in CMake
19234 according to their use.")
19235 (license license:gpl3+))))
19236
19237 (define-public emacs-dtrt-indent
19238 (package
19239 (name "emacs-dtrt-indent")
19240 (version "0.8")
19241 (source (origin
19242 (method git-fetch)
19243 (uri (git-reference
19244 (url "https://github.com/jscheid/dtrt-indent")
19245 (commit version)))
19246 (file-name (git-file-name name version))
19247 (sha256
19248 (base32
19249 "0pgf0pvqd8k4yzhdn2df9lp0y8hmlm2ccrh07jivwlccs95pcz7z"))))
19250 (build-system emacs-build-system)
19251 (home-page "https://github.com/jscheid/dtrt-indent")
19252 (synopsis "Minor mode that guesses the indentation offset")
19253 (description "This package provides a minor mode that guesses the
19254 indentation offset originally used for creating source code files and
19255 transparently adjusts the corresponding settings in Emacs, making it more
19256 convenient to edit foreign files.")
19257 (license license:gpl2+)))
19258
19259 (define-public emacs-repo
19260 (package
19261 (name "emacs-repo")
19262 (version "0.1.3")
19263 (source (origin
19264 (method git-fetch)
19265 (uri (git-reference
19266 (url "https://github.com/canatella/repo-el")
19267 (commit version)))
19268 (file-name (git-file-name name version))
19269 (sha256
19270 (base32
19271 "0rbvcvm7bfr6ncji7cllfxyyr6x7n9fx863byp243phsj3n93adz"))))
19272 (build-system emacs-build-system)
19273 (native-inputs
19274 `(("emacs-el-mock" ,emacs-el-mock)
19275 ("ert-runner" ,emacs-ert-runner)))
19276 (propagated-inputs
19277 `(("emacs-f" ,emacs-f)
19278 ("magit" ,emacs-magit)))
19279 (home-page "https://github.com/canatella/repo-el")
19280 (synopsis "Emacs interface for the Google Repo tool")
19281 (description "This package provides integration of the Google Repo tool
19282 with emacs. It displays the output of the @code{repo status} command in a
19283 buffer and launches Magit from the status buffer for the project at point.")
19284 (license license:gpl3+)))
19285
19286 (define-public emacs-alect-themes
19287 (package
19288 (name "emacs-alect-themes")
19289 (version "0.9")
19290 (source (origin
19291 (method git-fetch)
19292 (uri (git-reference
19293 (url "https://github.com/alezost/alect-themes")
19294 (commit (string-append "v" version))))
19295 (file-name (git-file-name name version))
19296 (sha256
19297 (base32
19298 "0nffxpdm0sa7bynwi0rmlwpc4qmvbda5ankhzz7fmk4ap9fkjxv9"))))
19299 (build-system emacs-build-system)
19300 (home-page "https://github.com/alezost/alect-themes")
19301 (synopsis "Low contrast, light, dark and black color theme for Emacs")
19302 (description "@code{emacs-alect-themes} provides configurable light, dark
19303 and black color themes for Emacs. The themes are intended to be used with
19304 GUI.")
19305 (license license:gpl3+)))
19306
19307 (define-public emacs-google-c-style
19308 (let ((commit "6271f3f473ceb3a7fef99388a3040903b1a145f1")
19309 (revision "0"))
19310 (package
19311 (name "emacs-google-c-style")
19312 (version (git-version "0.1" revision commit))
19313 (source (origin
19314 (method git-fetch)
19315 (uri (git-reference
19316 (url "https://github.com/google/styleguide")
19317 (commit commit)))
19318 (file-name (git-file-name name version))
19319 (sha256
19320 (base32
19321 "1jghyyasdl15c4gaqaxmdn43am63k6bykn5ab83f1ahv9zi1krxk"))))
19322 (build-system emacs-build-system)
19323 (home-page "https://github.com/google/styleguide")
19324 (synopsis "Emacs settings file for Google C/C++ style")
19325 (description "@code{emacs-google-c-style} provides an Emacs settings
19326 file for Google C and C++ style.")
19327 (license license:gpl1+))))
19328
19329 (define-public emacs-redshank
19330 (let ((commit "f98e68f532e622bcd464292ca4a9cf5fbea14ebb")
19331 (revision "1"))
19332 (package
19333 (name "emacs-redshank")
19334 (version (git-version "0.1" revision commit))
19335 (source (origin
19336 (method git-fetch)
19337 (uri (git-reference
19338 (url "http://www.foldr.org/~michaelw/projects/redshank.git")
19339 (commit commit)))
19340 (file-name (git-file-name name version))
19341 (sha256
19342 (base32
19343 "1jdkgvd5xy9hl5q611jwah2n05abjp7qcy9sj4k1z11x0ii62b6p"))))
19344 (build-system emacs-build-system)
19345 (propagated-inputs
19346 `(("emacs-paredit" ,emacs-paredit)))
19347 (home-page "http://www.foldr.org/~michaelw/emacs/redshank/")
19348 (synopsis "Common Lisp Editing Extensions (for Emacs)")
19349 (description "Redshank is a collection of code-wrangling Emacs macros
19350 mostly geared towards Common Lisp, but some are useful for other Lisp
19351 dialects, too. Redshank's code transformations aim to be expression-based (as
19352 opposed to character-based).")
19353 (license license:gpl1+))))
19354
19355 (define-public emacs-disk-usage
19356 (package
19357 (name "emacs-disk-usage")
19358 (version "1.3.3")
19359 (source
19360 (origin
19361 (method git-fetch)
19362 (uri (git-reference
19363 (url "https://gitlab.com/Ambrevar/emacs-disk-usage.git")
19364 (commit version)))
19365 (file-name (git-file-name name version))
19366 (sha256
19367 (base32
19368 "0hv2gsd8k5fbjgckgiyisq4rn1i7y4rchbjy8kmixjv6mx563bll"))))
19369 (build-system emacs-build-system)
19370 (home-page "https://gitlab.com/Ambrevar/emacs-disk-usage")
19371 (synopsis "Sort and browse disk usage listings with Emacs")
19372 (description "Disk Usage is a file system analyzer: it offers a tabulated
19373 view of file listings sorted by size. Directory sizes are computed
19374 recursively. The results are cached for speed.")
19375 (license license:gpl3+)))
19376
19377 (define-public emacs-orgit
19378 (package
19379 (name "emacs-orgit")
19380 (version "1.5.3")
19381 (home-page "https://github.com/magit/orgit")
19382 (source (origin
19383 (method git-fetch)
19384 (uri (git-reference
19385 (url home-page)
19386 (commit (string-append "v" version))))
19387 (file-name (git-file-name name version))
19388 (sha256
19389 (base32
19390 "1ywavzki510rslsgfm0cnn3mlh644p61ha2nfb715xhkg7cd3j9g"))))
19391 (build-system emacs-build-system)
19392 (propagated-inputs
19393 `(("emacs-dash" ,emacs-dash)
19394 ("emacs-magit" ,emacs-magit)))
19395 (synopsis "Support for Org links to Magit buffers")
19396 (description "This package defines several Org link types, which can be
19397 used to link to certain Magit buffers. Use the command
19398 @command{org-store-link} while such a buffer is current to store a link.
19399 Later you can insert it into an Org buffer using the command
19400 @code{org-insert-link}.")
19401 (license license:gpl3+)))
19402
19403 (define-public emacs-amx
19404 (package
19405 (name "emacs-amx")
19406 (version "3.3")
19407 (source
19408 (origin
19409 (method git-fetch)
19410 (uri (git-reference
19411 (url "https://github.com/DarwinAwardWinner/amx")
19412 (commit (string-append "v" version))))
19413 (file-name (git-file-name name version))
19414 (sha256
19415 (base32 "0ikjzs119g57cwh2v3jmy63lggqc0ib99q5gsl93slkk4y2ihavw"))))
19416 (build-system emacs-build-system)
19417 (propagated-inputs
19418 `(("emacs-s" ,emacs-s)))
19419 (home-page "https://github.com/DarwinAwardWinner/amx")
19420 (synopsis "Alternative M-x interface for Emacs")
19421 (description "Amx is an alternative interface for M-x in Emacs. It
19422 provides several enhancements over the ordinary
19423 @code{execute-extended-command}, such as prioritizing your most-used commands
19424 in the completion list and showing keyboard shortcuts, and it supports several
19425 completion systems for selecting commands, such as Ido and Ivy.")
19426 (license license:gpl3+)))
19427
19428 (define-public emacs-lorem-ipsum
19429 (let ((commit "4b39f6fed455d67f635b3837cf5668bf74d0f6cd"))
19430 (package
19431 (name "emacs-lorem-ipsum")
19432 (version (git-version "0.2" "1" commit))
19433 (home-page "https://github.com/jschaf/emacs-lorem-ipsum/")
19434 (source (origin
19435 (method git-fetch)
19436 (uri (git-reference
19437 (url home-page)
19438 (commit commit)))
19439 (file-name (git-file-name name version))
19440 (sha256
19441 (base32
19442 "0a3b18p3vdjci89prsgdzjnfxsl8p67vjhf8ai4qdng7zvh50lir"))))
19443 (build-system emacs-build-system)
19444 (synopsis "Insert dummy pseudo Latin text in Emacs")
19445 (description "This package provides convenience functions to insert
19446 dummy Latin text into a buffer. This can be useful if you need to produce
19447 paragraphs or pages of text for testing purposes.")
19448 (license license:gpl3+))))
19449
19450 (define-public emacs-lisp-extra-font-lock
19451 (let ((commit "4605eccbe1a7fcbd3cacf5b71249435413b4db4f"))
19452 (package
19453 (name "emacs-lisp-extra-font-lock")
19454 (version (git-version "0.0.6" "1" commit))
19455 (home-page "https://github.com/Lindydancer/lisp-extra-font-lock")
19456 (source (origin
19457 (method git-fetch)
19458 (uri (git-reference
19459 (url home-page)
19460 (commit commit)))
19461 (file-name (git-file-name name version))
19462 (sha256
19463 (base32
19464 "152vcp3mdlv33jf5va4rinl1d0k960gnfhbrqqrafazgx9j3ya8w"))))
19465 (build-system emacs-build-system)
19466 (synopsis "Highlight bound variables and quoted expressions in Emacs")
19467 (description "This package highlight the location where local variables
19468 is created (bound, for example, by let) as well as quoted and backquoted
19469 constant expressions.")
19470 (license license:gpl3+))))
19471
19472 (define-public emacs-docker-tramp
19473 (package
19474 (name "emacs-docker-tramp")
19475 (version "0.1")
19476 (source
19477 (origin
19478 (method git-fetch)
19479 (uri (git-reference
19480 (url "https://github.com/emacs-pe/docker-tramp.el")
19481 (commit (string-append "v" version))))
19482 (file-name (git-file-name name version))
19483 (sha256
19484 (base32
19485 "0lxvzmfg52fhxrhbvp92zwp7cv4i1rlxnkyyzgngj3sjm7y60yvg"))))
19486 (build-system emacs-build-system)
19487 (home-page "https://github.com/emacs-pe/docker-tramp.el")
19488 (synopsis "TRAMP integration for docker containers")
19489 (description
19490 "This package provides a TRAMP method for Docker containers.")
19491 (license license:gpl3+)))
19492
19493 (define-public emacs-docker
19494 (package
19495 (name "emacs-docker")
19496 (version "1.3.0")
19497 (source (origin
19498 (method git-fetch)
19499 (uri (git-reference
19500 (url "https://github.com/Silex/docker.el")
19501 (commit version)))
19502 (file-name (git-file-name name version))
19503 (sha256
19504 (base32
19505 "1g8r1faqp0z0vqp9qrl8m84pa0v2ddvc91klphdkfmldwv7rfipw"))))
19506 (inputs
19507 `(("emacs-undercover" ,emacs-undercover)))
19508 (propagated-inputs
19509 `(("emacs-dash" ,emacs-dash)
19510 ("emacs-docker-tramp" ,emacs-docker-tramp)
19511 ("emacs-magit-popup" ,emacs-magit-popup)
19512 ("emacs-s" ,emacs-s)
19513 ("emacs-tablist" ,emacs-tablist)
19514 ("emacs-json-mode" ,emacs-json-mode)))
19515 (arguments
19516 `(#:phases
19517 (modify-phases %standard-phases
19518 (delete 'check)))) ;no tests
19519 (build-system emacs-build-system)
19520 (home-page "https://github.com/Silex/docker.el")
19521 (synopsis "Manage docker from Emacs")
19522 (description "This package provides an Emacs interface for Docker.")
19523 (license license:gpl3+)))
19524
19525 (define-public emacs-dockerfile-mode
19526 ;; Latest upstream release is too old.
19527 (let ((commit "ed73e82dcc636dad00d1a8c3b32a49136d25ee60"))
19528 (package
19529 (name "emacs-dockerfile-mode")
19530 (version (git-version "1.2" "2" commit))
19531 (source
19532 (origin
19533 (method git-fetch)
19534 (uri (git-reference
19535 (url "https://github.com/spotify/dockerfile-mode")
19536 (commit commit)))
19537 (file-name (git-file-name name version))
19538 (sha256
19539 (base32
19540 "0lri2rnx4lr23vqfphkpq39cd4xfgzkvz1xsz7ccdvl4qj0k7fdl"))))
19541 (build-system emacs-build-system)
19542 (propagated-inputs
19543 `(("emacs-s" ,emacs-s)))
19544 (home-page "https://github.com/spotify/dockerfile-mode")
19545 (synopsis "Major mode for editing Dockerfile")
19546 (description
19547 "This package provides a major mode @code{dockerfile-mode} for use with
19548 the standard @code{Dockerfile} file format.")
19549 (license license:asl2.0))))
19550
19551 (define-public emacs-lsp-mode
19552 (package
19553 (name "emacs-lsp-mode")
19554 (version "7.0")
19555 (source
19556 (origin
19557 (method git-fetch)
19558 (uri (git-reference
19559 (url "https://github.com/emacs-lsp/lsp-mode")
19560 (commit version)))
19561 (file-name (git-file-name name version))
19562 (sha256
19563 (base32 "1kw32dcm73i0kg1fncp6vwgar3dwva7dh3gkg5cr45gavn6rq34i"))))
19564 (build-system emacs-build-system)
19565 (propagated-inputs
19566 `(("emacs-dash" ,emacs-dash)
19567 ("emacs-f" ,emacs-f)
19568 ("emacs-ht" ,emacs-ht)
19569 ("emacs-hydra" ,emacs-hydra)
19570 ("emacs-markdown-mode" ,emacs-markdown-mode)
19571 ("emacs-spinner" ,emacs-spinner)))
19572 (home-page "https://emacs-lsp.github.io/lsp-mode/")
19573 (synopsis "Emacs client and library for the Language Server Protocol")
19574 (description
19575 "LSP mode is a client and library implementation for the Language Server
19576 Protocol. This mode creates an IDE-like experience by providing optional
19577 integration with other popular Emacs packages like Company, Flycheck, and
19578 Projectile.")
19579 (license license:gpl3+)))
19580
19581 (define-public emacs-pfuture
19582 (let ((commit "368254ee30692c709400db413c347e18e76a8a55"))
19583 (package
19584 (name "emacs-pfuture")
19585 (version (git-version "1.6" "1" commit))
19586 (source (origin
19587 (method git-fetch)
19588 (uri (git-reference
19589 (url "https://github.com/Alexander-Miller/pfuture")
19590 (commit commit)))
19591 (file-name (git-file-name name version))
19592 (sha256
19593 (base32
19594 "096raqpjx84njws85r7pqq1wi9w9bjwkr0ga1mbbhlna1mfn3mg4"))))
19595 (build-system emacs-build-system)
19596 (home-page
19597 "https://github.com/Alexander-Miller/pfuture")
19598 (synopsis "Simple wrapper around asynchronous processes for Emacs")
19599 (description "This package provides a simple wrapper around asynchronous
19600 processes for Emacs")
19601 (license license:gpl3+))))
19602
19603 (define-public emacs-treemacs
19604 (package
19605 (name "emacs-treemacs")
19606 (version "2.8")
19607 (source (origin
19608 (method git-fetch)
19609 (uri (git-reference
19610 (url "https://github.com/Alexander-Miller/treemacs")
19611 (commit version)))
19612 (file-name (git-file-name name version))
19613 (sha256
19614 (base32
19615 "0m083g3pg0n4ymi1w0jx34awr7cqbm4r561adij9kklblxsz7sc2"))))
19616 (build-system emacs-build-system)
19617 (propagated-inputs
19618 `(("emacs-dash" ,emacs-dash)
19619 ("emacs-s" ,emacs-s)
19620 ("emacs-f" ,emacs-f)
19621 ("emacs-ace-window" ,emacs-ace-window)
19622 ("emacs-pfuture" ,emacs-pfuture)
19623 ("emacs-hydra" ,emacs-hydra)
19624 ("emacs-ht" ,emacs-ht)))
19625 (native-inputs
19626 `(("emacs-buttercup" ,emacs-buttercup)
19627 ("emacs-el-mock" ,emacs-el-mock)))
19628 (inputs
19629 `(("python" ,python)))
19630 (arguments
19631 `(#:tests? #t ;TODO: Investigate ‘treemacs--parse-collapsed-dirs’ test failure.
19632 #:phases
19633 (modify-phases %standard-phases
19634 (add-after 'unpack 'fix-makefile
19635 (lambda _
19636 (substitute* "Makefile"
19637 (("@\\$\\(CASK\\) exec ") "")
19638 ;; Guix does not need to prepare dependencies before testing.
19639 (("test: prepare") "test:"))
19640 #t))
19641 (add-after 'fix-makefile 'chdir-elisp
19642 ;; Elisp directory is not in root of the source.
19643 (lambda _
19644 (chdir "src/elisp")))
19645 (replace 'check
19646 (lambda _
19647 (with-directory-excursion "../.." ;treemacs root
19648 (chmod "test/test-treemacs.el" #o644)
19649 (emacs-substitute-sexps "test/test-treemacs.el"
19650 ("(describe \"treemacs--parse-collapsed-dirs\""
19651 ""))
19652 (invoke "make" "test"))))
19653 (add-before 'install 'patch-paths
19654 (lambda* (#:key inputs outputs #:allow-other-keys)
19655 (with-directory-excursion "../.." ;treemacs root
19656 (chmod "src/elisp/treemacs-core-utils.el" #o644)
19657 (emacs-substitute-variables "src/elisp/treemacs-core-utils.el"
19658 ("treemacs-dir"
19659 (string-append (assoc-ref outputs "out") "/")))
19660 (chmod "src/elisp/treemacs-icons.el" #o644)
19661 (substitute* "src/elisp/treemacs-icons.el"
19662 (("icons/default") "share/emacs-treemacs/images"))
19663 (chmod "src/elisp/treemacs-customization.el" #o644)
19664 (emacs-substitute-variables "src/elisp/treemacs-customization.el"
19665 ("treemacs-python-executable"
19666 (string-append (assoc-ref inputs "python") "/bin/python3")))
19667 (chmod "src/elisp/treemacs-async.el" #o644)
19668 (substitute* "src/elisp/treemacs-async.el"
19669 (("src/scripts") (string-append "share/" ,name "/scripts"))))
19670 #t))
19671 (add-after 'install 'install-data
19672 (lambda* (#:key outputs #:allow-other-keys)
19673 (let ((out (assoc-ref outputs "out")))
19674 (with-directory-excursion "../.." ;treemacs root
19675 (copy-recursively "icons/default"
19676 (string-append out "/share/" ,name "/images"))
19677 (copy-recursively
19678 "src/scripts"
19679 (string-append out "/share/" ,name "/scripts"))
19680 #t)))))))
19681 (home-page "https://github.com/Alexander-Miller/treemacs")
19682 (synopsis "Emacs tree style file explorer")
19683 (description "Powerful and flexible file tree project explorer.")
19684 (license license:gpl3+)))
19685
19686 (define-public emacs-treemacs-extra
19687 (package
19688 (inherit emacs-treemacs)
19689 (name "emacs-treemacs-extra")
19690 (propagated-inputs
19691 `(,@(package-propagated-inputs emacs-treemacs)
19692 ("emacs-evil" ,emacs-evil)
19693 ("emacs-magit" ,emacs-magit)
19694 ("emacs-projectile" ,emacs-projectile)
19695 ("emacs-persp-mode" ,emacs-persp-mode)))
19696 (arguments
19697 (substitute-keyword-arguments
19698 (package-arguments emacs-treemacs)
19699 ((#:phases phases)
19700 `(modify-phases ,phases
19701 (add-after 'chdir-elisp 'copy-extra
19702 (lambda _
19703 (copy-recursively "../extra" ".")))))))))
19704
19705 (define-public emacs-libyaml
19706 ;; Upstream made no release so far.
19707 (let ((version "0")
19708 (revision "1")
19709 (commit "703e0d448c7ee24e25b513a3c65980c80e166805"))
19710 (package
19711 (name "emacs-libyaml")
19712 (version (git-version version revision commit))
19713 (source
19714 (origin
19715 (method git-fetch)
19716 (uri (git-reference
19717 (url "https://github.com/syohex/emacs-libyaml")
19718 (commit commit)))
19719 (file-name (git-file-name name version))
19720 (sha256
19721 (base32 "08l7pm9v50ykd3fkbm0bh2kcd57cadbc5i9r6rj51vd32w3pl2yl"))))
19722 (build-system emacs-build-system)
19723 (arguments
19724 `(#:tests? #f ;no test
19725 #:modules ((guix build emacs-build-system)
19726 (guix build emacs-utils)
19727 (guix build utils))
19728 #:imported-modules (,@%emacs-build-system-modules
19729 (guix build gnu-build-system))
19730 #:phases
19731 (modify-phases %standard-phases
19732 (add-before 'add-source-to-load-path 'substitute-libyaml-core-path
19733 (lambda* (#:key outputs #:allow-other-keys)
19734 (chmod "libyaml.el" #o644)
19735 (substitute* "libyaml.el"
19736 (("^\\(require 'libyaml-core\\)")
19737 (string-append "(module-load \"" (assoc-ref outputs "out")
19738 "/lib/libyaml-core.so\")")))
19739 #t))
19740 (add-after 'check 'make
19741 ;; Run make.
19742 (lambda* (#:key (make-flags '()) outputs #:allow-other-keys)
19743 ;; Compile the shared object file.
19744 (apply invoke "make" "all" "CPPFLAGS=" make-flags)
19745 ;; Move the file into /lib.
19746 (install-file "libyaml-core.so"
19747 (string-append (assoc-ref outputs "out") "/lib"))
19748 #t)))))
19749 (native-inputs `(("libyaml" ,libyaml)))
19750 (home-page "https://github.com/syohex/emacs-libyaml")
19751 (synopsis "Libyaml bindings for Emacs")
19752 (description
19753 "This package implements bindings for LibYAML to be able to parse YAML
19754 files in Elisp.")
19755 (license license:gpl3+))))
19756
19757 (define-public emacs-lsp-java
19758 (package
19759 (name "emacs-lsp-java")
19760 (version "2.2")
19761 (source (origin
19762 (method git-fetch)
19763 (uri (git-reference
19764 (url "https://github.com/emacs-lsp/lsp-java")
19765 (commit version)))
19766 (file-name (git-file-name name version))
19767 (sha256
19768 (base32
19769 "0hcnvbyaqyypgby1bfj4zbrbq97amk8hfx0sj4w73rl46yf4jk3j"))))
19770 (build-system emacs-build-system)
19771 (propagated-inputs
19772 `(("emacs-lsp-mode" ,emacs-lsp-mode)
19773 ("emacs-markdown-mode" ,emacs-markdown-mode)
19774 ("emacs-dash" ,emacs-dash)
19775 ("emacs-f" ,emacs-f)
19776 ("emacs-ht" ,emacs-ht)
19777 ("emacs-request" ,emacs-request)
19778 ("emacs-treemacs" ,emacs-treemacs)))
19779 (home-page "https://github.com/emacs-lsp/lsp-java/")
19780 (synopsis "Java support for lsp-mode")
19781 (description "Emacs Java IDE using Eclipse JDT Language Server.")
19782 (license license:gpl3+)))
19783
19784 (define-public emacs-lsp-ui
19785 (package
19786 (name "emacs-lsp-ui")
19787 (version "6.2")
19788 (source (origin
19789 (method git-fetch)
19790 (uri (git-reference
19791 (url "https://github.com/emacs-lsp/lsp-ui")
19792 (commit version)))
19793 (file-name (git-file-name name version))
19794 (sha256
19795 (base32
19796 "024753bi0p1jyjhw7wk8k6s16kbwab5ar4cfasvbn8g08acf293b"))))
19797 (build-system emacs-build-system)
19798 (propagated-inputs
19799 `(("emacs-dash" ,emacs-dash)
19800 ("emacs-lsp-mode" ,emacs-lsp-mode)
19801 ("emacs-markdown-mode" ,emacs-markdown-mode)
19802 ("emacs-flycheck" ,emacs-flycheck)))
19803 (home-page "https://github.com/emacs-lsp/lsp-ui")
19804 (synopsis "User interface extensions for @code{lsp-mode}")
19805 (description
19806 "@code{LSP-ui} contains several enhancements and integrations for
19807 @code{lsp-mode}, such as visual flychecking, displaying references in-line,
19808 and code peeking.")
19809 (license license:gpl3+)))
19810
19811 (define-public emacs-lsp-lua-emmy
19812 (let ((commit "ab53fb2a8b8942804eb75bab5624fd19f1d360bf"))
19813 (package
19814 (name "emacs-lsp-lua-emmy")
19815 (version (git-version "0.1.0" "1" commit))
19816 (source (origin
19817 (method git-fetch)
19818 (uri (git-reference
19819 (url "https://github.com/phenix3443/lsp-lua-emmy")
19820 (commit commit)))
19821 (file-name (git-file-name name version))
19822 (sha256
19823 (base32
19824 "0rbizis73n1w5ig07fj1han74chbc1zpbp5bn37rj0gz608aqka8"))))
19825 (build-system emacs-build-system)
19826 (propagated-inputs
19827 `(("emacs-lsp-mode" ,emacs-lsp-mode)))
19828 (home-page "https://github.com/phenix3443/lsp-lua-emmy/")
19829 (synopsis "Lua support in @code{lsp-mode} client for Emacs")
19830 (description "This package provides a Lua language support in
19831 @code{lsp-mode} client for Emacs.")
19832 (license license:gpl3+))))
19833
19834 (define-public emacs-lsp-ivy
19835 (let ((commit "caf1e1d7e22ed0b5fe18dd508d1a6f83dd163288")
19836 (revision "2"))
19837 (package
19838 (name "emacs-lsp-ivy")
19839 (version (git-version "0.1" revision commit))
19840 (source (origin
19841 (method git-fetch)
19842 (uri (git-reference
19843 (url "https://github.com/emacs-lsp/lsp-ivy")
19844 (commit commit)))
19845 (file-name (git-file-name name version))
19846 (sha256
19847 (base32
19848 "084ds4qhzhivfnicy3h7z4mblxgcqx8pfnkbjr9qjrfng7cisy4z"))))
19849 (build-system emacs-build-system)
19850 (propagated-inputs
19851 `(("emacs-ivy" ,emacs-ivy)
19852 ("emacs-lsp-mode" ,emacs-lsp-mode)
19853 ("emacs-dash" ,emacs-dash)))
19854 (home-page "https://github.com/emacs-lsp/lsp-ivy")
19855 (synopsis "Provide LSP-enhanced completion for symbols")
19856 (description
19857 "This package enhances @code{ivy} with completion for symbols from
19858 workspaces with a LSP-compliant server running.")
19859 (license license:gpl3+))))
19860
19861 (define-public emacs-helm-lsp
19862 (let ((commit "3a58ca4cfd94b9ab1e15e819d3b16ef568e8889b")
19863 (revision "1"))
19864 (package
19865 (name "emacs-helm-lsp")
19866 (version (git-version "0.1" revision commit))
19867 (source (origin
19868 (method git-fetch)
19869 (uri (git-reference
19870 (url "https://github.com/emacs-lsp/helm-lsp")
19871 (commit commit)))
19872 (file-name (git-file-name name version))
19873 (sha256
19874 (base32
19875 "0wh5zai3s17ss2q8wcdd6d87hv1h3nbyrxxs4js9cas8m6y2ssjv"))))
19876 (build-system emacs-build-system)
19877 (propagated-inputs
19878 `(("emacs-helm" ,emacs-helm)
19879 ("emacs-lsp-mode" ,emacs-lsp-mode)
19880 ("emacs-dash" ,emacs-dash)))
19881 (home-page "https://github.com/emacs-lsp/helm-lsp")
19882 (synopsis "Provide LSP-enhanced completion for symbols")
19883 (description
19884 "This package enhances @code{helm} with completion for symbols from
19885 workspaces with a LSP-compliant server running.")
19886 (license license:gpl3+))))
19887
19888 (define-public emacs-helm-notmuch
19889 (package
19890 (name "emacs-helm-notmuch")
19891 (version "1.2")
19892 (home-page "https://github.com/emacs-helm/helm-notmuch/")
19893 (source (origin
19894 (method git-fetch)
19895 (uri (git-reference
19896 (url home-page)
19897 (commit version)))
19898 (file-name (git-file-name name version))
19899 (sha256
19900 (base32
19901 "1k038dbdpaa411gl4071x19fklhnizhr346plxw23lsnxir9dhqc"))))
19902 (build-system emacs-build-system)
19903 (propagated-inputs
19904 `(("emacs-helm" ,emacs-helm)
19905 ("notmuch" ,notmuch)))
19906 (synopsis "Search emails with Emacs Notmuch and Helm")
19907 (description
19908 "This package can be used to search emails in Emacs, searching result
19909 displays as you type thanks to Helm, though @command{notmuch-search} does the
19910 real search.")
19911 (license license:gpl3+)))
19912
19913 (define-public emacs-elmacro
19914 (let ((commit "89b9b0feabafd01fee48111d67131c4c9b5fed9a"))
19915 (package
19916 (name "emacs-elmacro")
19917 (version (git-version "1.1.0" "1" commit))
19918 (home-page "https://github.com/Silex/elmacro")
19919 (source (origin
19920 (method git-fetch)
19921 (uri (git-reference
19922 (url home-page)
19923 (commit commit)))
19924 (file-name (git-file-name name version))
19925 (sha256
19926 (base32
19927 "06wkzafh6vbcjf0m3sl253mgcq32p8cdv7vsfmyx51baa36938ha"))))
19928 (build-system emacs-build-system)
19929 (propagated-inputs
19930 `(("emacs-s" ,emacs-s)
19931 ("emacs-dash" ,emacs-dash)))
19932 (synopsis "Convert keyboard macros to Emacs Lisp")
19933 (description
19934 "This package displays keyboard macros or latest interactive commands
19935 as Emacs Lisp.")
19936 (license license:gpl3+))))
19937
19938 (define-public emacs-transient
19939 (let ((revision "1")
19940 (commit "a6e4cced303b3febd59412b24a97eaf1e855e6d7"))
19941 (package
19942 (name "emacs-transient")
19943 (version (git-version "0.2.0" revision commit))
19944 (source (origin
19945 (method git-fetch)
19946 (uri (git-reference
19947 (url "https://github.com/magit/transient")
19948 (commit commit)))
19949 (file-name (git-file-name name version))
19950 (sha256
19951 (base32
19952 "01xsw9sxr50valc2q590ngy3ra2ll01p39l9cbzvqqz6mxyymxmd"))))
19953 (build-system emacs-build-system)
19954 (arguments
19955 `(#:tests? #f ;no test suite
19956 #:phases
19957 (modify-phases %standard-phases
19958 (add-after 'unpack 'build-info-manual
19959 (lambda _
19960 (invoke "make" "info")
19961 ;; Move the info file to lisp so that it gets installed by the
19962 ;; emacs-build-system.
19963 (rename-file "docs/transient.info" "lisp/transient.info")
19964 #t))
19965 (add-after 'build-info-manual 'enter-lisp-directory
19966 (lambda _
19967 (chdir "lisp")
19968 #t)))))
19969 (native-inputs
19970 `(("texinfo" ,texinfo)))
19971 (propagated-inputs
19972 `(("dash" ,emacs-dash)))
19973 (home-page "https://magit.vc/manual/transient")
19974 (synopsis "Transient commands in Emacs")
19975 (description "Taking inspiration from prefix keys and prefix arguments
19976 in Emacs, Transient implements a similar abstraction involving a prefix
19977 command, infix arguments and suffix commands. We could call this abstraction
19978 a \"transient command\", but because it always involves at least two
19979 commands (a prefix and a suffix) we prefer to call it just a \"transient\".")
19980 (license license:gpl3+))))
19981
19982 (define-public emacs-forge
19983 (let ((commit "09bf8adc9c9afb492632e612f51f39e1cc15fca0"))
19984 (package
19985 (name "emacs-forge")
19986 (version (git-version "0.1.0" "4" commit))
19987 (source
19988 (origin
19989 (method git-fetch)
19990 (uri (git-reference
19991 (url "https://github.com/magit/forge")
19992 (commit commit)))
19993 (file-name (git-file-name name version))
19994 (sha256
19995 (base32
19996 "148h1rvmfmxyrfy2q5l0vzblr7lpsyw1si30hfwhzsj8fvj21qcr"))))
19997 (build-system emacs-build-system)
19998 (native-inputs
19999 `(("texinfo" ,texinfo)))
20000 (propagated-inputs
20001 `(("emacs-closql" ,emacs-closql)
20002 ("emacs-dash" ,emacs-dash)
20003 ("emacs-emacsql-sqlite" ,emacs-emacsql)
20004 ("emacs-ghub" ,emacs-ghub)
20005 ("emacs-let-alist" ,emacs-let-alist)
20006 ("emacs-magit" ,emacs-magit)
20007 ("emacs-markdown-mode" ,emacs-markdown-mode)
20008 ("emacs-transient" ,emacs-transient)))
20009 (arguments
20010 `(#:tests? #f ;no tests
20011 #:phases
20012 (modify-phases %standard-phases
20013 (add-after 'unpack 'build-info-manual
20014 (lambda _
20015 (invoke "make" "info")
20016 ;; Move the info file to lisp so that it gets installed by the
20017 ;; emacs-build-system.
20018 (rename-file "docs/forge.info" "lisp/forge.info")))
20019 (add-after 'build-info-manual 'chdir-lisp
20020 (lambda _
20021 (chdir "lisp")
20022 #t)))))
20023 (home-page "https://github.com/magit/forge/")
20024 (synopsis "Access Git forges from Magit")
20025 (description "Work with Git forges, such as Github and Gitlab, from the
20026 comfort of Magit and the rest of Emacs.")
20027 (license license:gpl3+))))
20028
20029 (define-public emacs-matcha
20030 (let ((commit "c7df5cf5cdac9ae369e241342389ccda0205eab9"))
20031 (package
20032 (name "emacs-matcha")
20033 (version (git-version "0.0.1" "1" commit)) ;no upstream release
20034 (source (origin
20035 (method git-fetch)
20036 (uri (git-reference
20037 (url "https://github.com/jojojames/matcha")
20038 (commit commit)))
20039 (file-name (git-file-name name version))
20040 (sha256
20041 (base32
20042 "1lfnh1glg6al677m7ci0x8g5wjdhjxlfl3nv1f1ppsw4dpnwsj9b"))))
20043 (propagated-inputs
20044 `(("emacs-hydra" ,emacs-hydra)
20045 ("emacs-transient" ,emacs-transient)))
20046 (build-system emacs-build-system)
20047 (home-page "https://github.com/jojojames/matcha/")
20048 (synopsis "Collection of hydras with a generic interface to launch them")
20049 (description "Matcha provides a collection of transients for various
20050 packages with a consistent way to use them.")
20051 (license license:gpl3+))))
20052
20053 (define-public emacs-undo-propose-el
20054 (let ((commit "f80baee566807d733fbacbab08a897bcd62579c3")
20055 (revision "3"))
20056 (package
20057 (name "emacs-undo-propose-el")
20058 (version (git-version "3.0.0" revision commit))
20059 (source
20060 (origin
20061 (method git-fetch)
20062 (uri (git-reference
20063 (url "https://github.com/jackkamm/undo-propose-el")
20064 (commit commit)))
20065 (file-name (git-file-name name version))
20066 (sha256
20067 (base32
20068 "00rqz63bhh66q78l646q3w16gydygj8h4d8np0dpbifgzciak90b"))))
20069 (build-system emacs-build-system)
20070 (arguments
20071 `(#:tests? #t
20072 #:test-command '("make" "test")))
20073 (home-page "https://github.com/jackkamm/undo-propose-el")
20074 (synopsis "Simple and safe navigation of @code{undo} history")
20075 (description "This package permits navigation of @code{undo} history in a
20076 temporary buffer, which is read-only save for @code{undo} commands, and
20077 subsequent committal of a chain of @code{undo} commands as a single edit in
20078 the @code{undo} history.")
20079 (license license:gpl3+))))
20080
20081 (define-public emacs-elisp-docstring-mode
20082 (let ((commit "f512e509dd690f65133e55563ebbfd2dede5034f")
20083 (version "0.0.1")
20084 (revision "1"))
20085 (package
20086 (name "emacs-elisp-docstring-mode")
20087 (version (git-version version revision commit))
20088 (source
20089 (origin
20090 (method git-fetch)
20091 (uri (git-reference
20092 (url "https://github.com/Fuco1/elisp-docstring-mode")
20093 (commit commit)))
20094 (file-name (git-file-name name version))
20095 (sha256
20096 (base32
20097 "0al8m75p359h4n82rf0dsl22qfdg9cwwywn5pn7x6gb96c7qrqaa"))))
20098 (build-system emacs-build-system)
20099 (home-page "https://github.com/Fuco1/elisp-docstring-mode")
20100 (synopsis "Major mode for editing Emacs Lisp docstrings")
20101 (description "This package provides font lock and automatic escaping and
20102 unescaping of quotes.")
20103 (license license:gpl3+))))
20104
20105 (define-public emacs-vimrc-mode
20106 (let ((commit "13bc150a870d5d4a95f1111e4740e2b22813c30e")
20107 (version "0.3.1")
20108 (revision "1"))
20109 (package
20110 (name "emacs-vimrc-mode")
20111 (version (git-version version revision commit))
20112 (source
20113 (origin
20114 (method git-fetch)
20115 (uri (git-reference
20116 (url "https://github.com/mcandre/vimrc-mode")
20117 (commit commit)))
20118 (file-name (git-file-name name version))
20119 (sha256
20120 (base32
20121 "0026dqs3hwygk2k2xfra90w5sfnxrfj7l69jz7sq5glavbf340pk"))))
20122 (build-system emacs-build-system)
20123 (home-page "https://github.com/mcandre/vimrc-mode")
20124 (synopsis "Major mode for Vimscript")
20125 (description "This package provides font lock and @code{beginning-} and
20126 @code{end-of-defun} functions for Vimscript files.")
20127 (license license:gpl3+))))
20128
20129 (define-public emacs-flycheck-elm
20130 (let ((revision "0")
20131 (commit "1b60050efd4729bfba548f3e5adbcb58436667cb"))
20132 (package
20133 (name "emacs-flycheck-elm")
20134 (version (git-version "0" revision commit))
20135 (source
20136 (origin
20137 (method git-fetch)
20138 (uri
20139 (git-reference
20140 (url "https://github.com/bsermons/flycheck-elm")
20141 (commit commit)))
20142 (file-name (git-file-name name version))
20143 (sha256
20144 (base32 "1kjms9d2c98ffd1qxs879qhg0n4jzic0r5kni9y4gz3v09ww8zms"))))
20145 (build-system emacs-build-system)
20146 (propagated-inputs
20147 `(("emacs-flycheck" ,emacs-flycheck)
20148 ("emacs-let-alist" ,emacs-let-alist)))
20149 (home-page "https://github.com/bsermons/flycheck-elm")
20150 (synopsis "Flycheck support for the Elm language")
20151 (description "Flycheck Elm adds Flycheck support for Elm language.")
20152 (license license:gpl3+))))
20153
20154 (define-public emacs-flycheck-haskell
20155 (let ((commit "32ddff87165a7d3a35e7318bee997b5b4bd41278")
20156 (revision "2"))
20157 (package
20158 (name "emacs-flycheck-haskell")
20159 (version (git-version "0.8" revision commit))
20160 (source
20161 (origin
20162 (method git-fetch)
20163 (uri (git-reference
20164 (url "https://github.com/flycheck/flycheck-haskell")
20165 (commit commit)))
20166 (file-name (git-file-name name version))
20167 (sha256
20168 (base32
20169 "10pgsbagq6qj4mshq5sypv0q0khck92b30sc793b4g1pfpsxvgjn"))))
20170 (build-system emacs-build-system)
20171 (propagated-inputs
20172 `(("emacs-dash" ,emacs-dash)
20173 ("emacs-seq" ,emacs-seq)
20174 ("emacs-flycheck" ,emacs-flycheck)
20175 ("emacs-haskell-mode" ,emacs-haskell-mode)
20176 ("emacs-let-alist" ,emacs-let-alist)))
20177 (arguments
20178 `(#:include '("\\.el$" "\\.hs$")))
20179 (home-page "https://github.com/flycheck/flycheck-haskell")
20180 (synopsis "Flycheck for Haskell")
20181 (description "This package configures syntax-checking for Haskell
20182 buffers.")
20183 (license license:gpl3+))))
20184
20185 (define-public emacs-js2-refactor-el
20186 (let ((commit "d4c40b5fc86d3edd7c6a7d83ac86483ee1cb7a28")
20187 (revision "2"))
20188 (package
20189 (name "emacs-js2-refactor-el")
20190 (version (git-version "0.9.0" revision commit))
20191 (source
20192 (origin
20193 (method git-fetch)
20194 (uri (git-reference
20195 (url "https://github.com/magnars/js2-refactor.el")
20196 (commit commit)))
20197 (file-name (git-file-name name version))
20198 (sha256
20199 (base32
20200 "08b25y3raz0p98zxk9xdd8nj9shqd6mzrqhbq1gg4cwsmi7h7ly1"))))
20201 (build-system emacs-build-system)
20202 (propagated-inputs
20203 `(("emacs-dash" ,emacs-dash)
20204 ("emacs-s" ,emacs-s)
20205 ("emacs-js2-mode" ,emacs-js2-mode)
20206 ("emacs-yasnippet" ,emacs-yasnippet)
20207 ("emacs-multiple-cursors" ,emacs-multiple-cursors)))
20208 (native-inputs
20209 `(("emacs-buttercup" ,emacs-buttercup)
20210 ("emacs-espuds" ,emacs-espuds)))
20211 (home-page "https://github.com/magnars/js2-refactor.el")
20212 (synopsis "JavaScript refactoring in Emacs")
20213 (description "This package provides various refactoring functions for
20214 JavaScript.")
20215 (license license:gpl3+))))
20216
20217 (define-public emacs-prettier
20218 (let ((commit "e9b73e81d3e1642aec682195f127a42dfb0b5774")
20219 (version "0.1.0")
20220 (revision "1"))
20221 (package
20222 (name "emacs-prettier")
20223 (version (git-version version revision commit))
20224 (source
20225 (origin
20226 (method git-fetch)
20227 (uri (git-reference
20228 (url "https://github.com/prettier/prettier-emacs")
20229 (commit commit)))
20230 (file-name (git-file-name name version))
20231 (sha256
20232 (base32
20233 "0hj4fv3fgc60i6jrsx4a81s5c9fsxxafhhs3q2q1dypsscjci9ph"))))
20234 (build-system emacs-build-system)
20235 (home-page "https://github.com/prettier/prettier-emacs")
20236 (synopsis "Automatic formatting of JavaScript code")
20237 (description "This package integrates Prettier with Emacs, and
20238 provides a minor mode that autoformats the buffer upon saving.")
20239 (license license:expat))))
20240
20241 (define-public emacs-fish-mode
20242 (package
20243 (name "emacs-fish-mode")
20244 (version "0.1.4")
20245 (source
20246 (origin
20247 (method git-fetch)
20248 (uri (git-reference
20249 (url "https://github.com/wwwjfy/emacs-fish")
20250 (commit version)))
20251 (file-name (git-file-name name version))
20252 (sha256
20253 (base32
20254 "0a74ghmjjrxfdhk4mvq6lar4w6l6lc4iilabs99smqr2fn5rsslq"))))
20255 (build-system emacs-build-system)
20256 (home-page "https://github.com/wwwjfy/emacs-fish")
20257 (synopsis "Major mode for Fish shell scripts")
20258 (description "This package provides syntax highlighting and indentation
20259 functions for Fish shell scripts.")
20260 (license license:gpl3+)))
20261
20262 (define-public emacs-eshell-up
20263 (let ((commit "9c100bae5c3020e8d9307e4332d3b64e7dc28519")
20264 (version "0.0.3")
20265 (revision "12"))
20266 (package
20267 (name "emacs-eshell-up")
20268 (version (git-version version revision commit))
20269 (source
20270 (origin
20271 (method git-fetch)
20272 (uri (git-reference
20273 (url "https://github.com/peterwvj/eshell-up")
20274 (commit commit)))
20275 (file-name (git-file-name name version))
20276 (sha256
20277 (base32
20278 "00zdbcncjabgj5mp47l1chymx5na18v2g4kj730dgmj3rnl3iz2q"))))
20279 (build-system emacs-build-system)
20280 (home-page "https://github.com/peterwvj/eshell-up")
20281 (synopsis "Quickly go to a parent directory in @code{Eshell}")
20282 (description "This package provides quick navigation to a specific
20283 parent directory using @code{Eshell}.")
20284 (license license:gpl3+))))
20285
20286 (define-public emacs-tco-el
20287 (let ((commit "482db5313f090b17ed22ccd856f0e141dc75afe6")
20288 (revision "1"))
20289 (package
20290 (name "emacs-tco-el")
20291 (version (git-version "0.3" revision commit))
20292 (source
20293 (origin
20294 (method git-fetch)
20295 (uri (git-reference
20296 (url "https://github.com/Wilfred/tco.el")
20297 (commit commit)))
20298 (file-name (git-file-name name version))
20299 (sha256
20300 (base32
20301 "1z7xkbrqznk6ni687qqknp8labcyhl8y6576hjfri89fn21385y9"))))
20302 (build-system emacs-build-system)
20303 (propagated-inputs
20304 `(("emacs-dash" ,emacs-dash)))
20305 (native-inputs
20306 `(("emacs-ert-runner" ,emacs-ert-runner)
20307 ("emacs-undercover" ,emacs-undercover)))
20308 (arguments
20309 `(#:tests? #t
20310 #:test-command '("ert-runner")))
20311 (home-page "https://github.com/Wilfred/tco.el")
20312 (synopsis "Tail-call optimization for Emacs Lisp")
20313 (description "This package provides tail-call optimization for Emacs
20314 Lisp functions that call themselves in tail position.")
20315 (license license:gpl3+))))
20316
20317 (define-public emacs-equake
20318 (let ((commit "7eddc025ee61b83029363e22219af228b8c20681")
20319 (revision "2"))
20320 (package
20321 (name "emacs-equake")
20322 (version (git-version "0.85" revision commit))
20323 (source
20324 (origin
20325 (method git-fetch)
20326 (uri (git-reference
20327 (url "https://gitlab.com/emacsomancer/equake/")
20328 (commit commit)))
20329 (file-name (git-file-name name version))
20330 (sha256
20331 (base32
20332 "1c55pbqak3d02sw6z1139baxzy401b90g0gxzcc3j6sgplz6sc6w"))))
20333 (build-system emacs-build-system)
20334 (propagated-inputs
20335 `(("emacs-dash" ,emacs-dash)
20336 ("emacs-tco-el" ,emacs-tco-el)))
20337 (home-page "https://gitlab.com/emacsomancer/equake/")
20338 (synopsis "Drop-down console for @code{Eshell} and terminal emulators")
20339 (description "This package provides a Quake-style drop-down console
20340 compatible with Emacs' shell modes.")
20341 (license license:gpl3+))))
20342
20343 (define-public emacs-vdiff
20344 (let ((commit "09e15fc932bfd2febe1d4a65780a532394562b07")
20345 (revision "1"))
20346 (package
20347 (name "emacs-vdiff")
20348 (version (git-version "0.2.3" revision commit))
20349 (source
20350 (origin
20351 (method git-fetch)
20352 (uri (git-reference
20353 (url "https://github.com/justbur/emacs-vdiff")
20354 (commit commit)))
20355 (file-name (git-file-name name version))
20356 (sha256
20357 (base32
20358 "1gvqi5l4zs872nn4pmj603aza09d81qad2rgijzv268lif8z34db"))))
20359 (build-system emacs-build-system)
20360 (propagated-inputs
20361 `(("emacs-hydra" ,emacs-hydra)))
20362 (arguments
20363 `(#:tests? #t
20364 #:test-command '("emacs" "-Q" "-batch" "-L" "."
20365 "-l" "vdiff-test.el"
20366 "-f" "ert-run-tests-batch-and-exit")))
20367 (home-page "https://github.com/justbur/emacs-vdiff/")
20368 (synopsis "Frontend for diffing based on vimdiff")
20369 (description "This package permits comparisons of two or three buffers
20370 based on diff output.")
20371 (license license:gpl3+))))
20372
20373 (define-public emacs-vdiff-magit
20374 ;; Need to use a more recent commit than the latest release version because
20375 ;; of Magit and Transient
20376 (let ((commit "b100d126c69e5c26a61ae05aa1778bcc4302b597")
20377 (version "0.3.2")
20378 (revision "8"))
20379 (package
20380 (name "emacs-vdiff-magit")
20381 (version (git-version version revision commit))
20382 (source
20383 (origin
20384 (method git-fetch)
20385 (uri (git-reference
20386 (url "https://github.com/justbur/emacs-vdiff-magit/")
20387 (commit commit)))
20388 (file-name (git-file-name name version))
20389 (sha256
20390 (base32
20391 "16cjmrzflf2i1w01973sl944xrfanakba8sb4dpwi79d92xp03xy"))))
20392 (build-system emacs-build-system)
20393 (propagated-inputs
20394 `(("emacs-vdiff" ,emacs-vdiff)
20395 ("emacs-magit" ,emacs-magit)
20396 ("emacs-transient" ,emacs-transient)))
20397 (home-page "https://github.com/justbur/emacs-vdiff-magit/")
20398 (synopsis "Frontend for diffing based on vimdiff")
20399 (description "This package permits comparisons of two or three buffers
20400 based on diff output.")
20401 (license license:gpl3+))))
20402
20403 (define-public emacs-all-the-icons-dired
20404 (let ((commit "980b7747d6c4a7992a1ec56afad908956db0a519")
20405 (version "1.0")
20406 (revision "1"))
20407 (package
20408 (name "emacs-all-the-icons-dired")
20409 (version (git-version version revision commit))
20410 (source
20411 (origin
20412 (method git-fetch)
20413 (uri (git-reference
20414 (url "https://github.com/jtbm37/all-the-icons-dired/")
20415 (commit commit)))
20416 (file-name (git-file-name name version))
20417 (sha256
20418 (base32
20419 "1pvbgyxfj4j205nj1r02045f1y4wgavdsk7f45hxkkhms1rj8jyy"))))
20420 (build-system emacs-build-system)
20421 (propagated-inputs
20422 `(("emacs-all-the-icons" ,emacs-all-the-icons)))
20423 (home-page "https://github.com/jtbm37/all-the-icons-dired/")
20424 (synopsis "Show icons for each file in @code{dired-mode}")
20425 (description "This package allows icons from @file{all-the-icons.el} to
20426 be used in @code{dired-mode}.")
20427 (license license:gpl3+))))
20428
20429 (define-public emacs-exwm-edit
20430 (let ((commit "e1291e311840f1049106fe98cec032a1c75efd2b")
20431 (version "0.0.1")
20432 (revision "3"))
20433 (package
20434 (name "emacs-exwm-edit")
20435 (version (git-version version revision commit))
20436 (source
20437 (origin
20438 (method git-fetch)
20439 (uri (git-reference
20440 (url "https://github.com/agzam/exwm-edit/")
20441 (commit commit)))
20442 (file-name (git-file-name name version))
20443 (sha256
20444 (base32
20445 "031cb8fvv5n30djr9lpl6vz3rl15zykfvjlgkjc8l33a3l5mw8j0"))))
20446 (build-system emacs-build-system)
20447 (propagated-inputs
20448 `(("emacs-exwm" ,emacs-exwm)))
20449 (home-page "https://github.com/agzam/exwm-edit/")
20450 (synopsis "Open temp buffers for editing text from EXWM buffers")
20451 (description "This package facilitates editing text from EXWM buffers by
20452 generating a temp buffer in which any useful Emacs utilities and modes can be
20453 invoked.")
20454 (license license:gpl3+))))
20455
20456 (define-public emacs-ert-async
20457 (package
20458 (name "emacs-ert-async")
20459 (version "0.1.2")
20460 (source
20461 (origin
20462 (method git-fetch)
20463 (uri (git-reference
20464 (url "https://github.com/rejeep/ert-async.el")
20465 (commit (string-append "v" version))))
20466 (file-name (git-file-name name version))
20467 (sha256
20468 (base32
20469 "0hn9i405nfhjd1h9vnwj43nxbbz00khrwkjq0acfyxjaz1shfac9"))))
20470 (build-system emacs-build-system)
20471 (home-page "https://github.com/rejeep/ert-async.el")
20472 (synopsis "Async support for ERT")
20473 (description "This package allows ERT to work with asynchronous tests.")
20474 (license license:gpl3+)))
20475
20476 (define-public emacs-prodigy-el
20477 (let ((commit "0a12eec1f001a4eef16b2c0c524f02f2647a4ff1")
20478 (revision "2"))
20479 (package
20480 (name "emacs-prodigy-el")
20481 (version (git-version "0.7.0" revision commit))
20482 (source
20483 (origin
20484 (method git-fetch)
20485 (uri (git-reference
20486 (url "https://github.com/rejeep/prodigy.el")
20487 (commit commit)))
20488 (file-name (git-file-name name version))
20489 (sha256
20490 (base32
20491 "02kysq57kqzg0zkhaf302ada9cp9spgp71z8vbdq4c7dl6x75h4g"))))
20492 (build-system emacs-build-system)
20493 (propagated-inputs
20494 `(("emacs-dash" ,emacs-dash)
20495 ("emacs-s" ,emacs-s)
20496 ("emacs-f" ,emacs-f)))
20497 (native-inputs
20498 `(("emacs-el-mock" ,emacs-el-mock)
20499 ("emacs-ert-async" ,emacs-ert-async)))
20500 (home-page "https://github.com/rejeep/prodigy.el")
20501 (synopsis "Manage external services from within Emacs")
20502 (description "This package provides a GUI for defining and monitoring services.")
20503 (license license:gpl3+))))
20504
20505 (define-public emacs-web-server
20506 (package
20507 (name "emacs-web-server")
20508 (version "0.1.2")
20509 (source
20510 (origin
20511 (method url-fetch)
20512 (uri (string-append "https://elpa.gnu.org/packages/"
20513 "web-server-" version ".tar"))
20514 (sha256
20515 (base32 "10lcsl4dg2yr9zjd99gq9jz150wvvh6r5y9pd88l8y9vz16f2lim"))))
20516 (build-system emacs-build-system)
20517 (home-page "https://github.com/eschulte/emacs-web-server/")
20518 (synopsis "Web server with handlers in Emacs Lisp")
20519 (description "This package supports HTTP GET and POST requests with
20520 url-encoded parameters, as well as web sockets.")
20521 (license license:gpl3+)))
20522
20523 (define-public emacs-markdown-preview-mode
20524 (package
20525 (name "emacs-markdown-preview-mode")
20526 (version "0.9.2")
20527 (source
20528 (origin
20529 (method git-fetch)
20530 (uri (git-reference
20531 (url "https://github.com/ancane/markdown-preview-mode")
20532 (commit (string-append "v" version))))
20533 (file-name (git-file-name name version))
20534 (sha256
20535 (base32
20536 "1d1id99gagymvzdfa1mwqh8y3szm8ii47rpijkfi1qnifjg5jaq9"))))
20537 (build-system emacs-build-system)
20538 (propagated-inputs
20539 `(("emacs-markdown-mode" ,emacs-markdown-mode)
20540 ("emacs-websocket" ,emacs-websocket)
20541 ("emacs-web-server" ,emacs-web-server)))
20542 (arguments '(#:include '("\\.el$" "\\.html$")))
20543 (home-page "https://github.com/ancane/markdown-preview-mode")
20544 (synopsis "Preview Markdown files")
20545 (description "This package provides a minor mode for preview of Markdown
20546 files, and sends rendered Markdown to a web browser.")
20547 (license license:gpl3+)))
20548
20549 (define-public emacs-dotenv-mode
20550 (package
20551 (name "emacs-dotenv-mode")
20552 (version "0.2.4")
20553 (source
20554 (origin
20555 (method git-fetch)
20556 (uri (git-reference
20557 (url "https://github.com/preetpalS/emacs-dotenv-mode")
20558 (commit (string-append "v" version))))
20559 (file-name (git-file-name name version))
20560 (sha256
20561 (base32
20562 "1fplkhxnsgdrg10iqsmw162zny2idz4vvv35spsb9j0hsk8imclc"))))
20563 (build-system emacs-build-system)
20564 (home-page "https://github.com/preetpalS/emacs-dotenv-mode")
20565 (synopsis "Major mode for @file{.env} files")
20566 (description "This package provides syntax highlighting for @file{.env}
20567 files.")
20568 (license license:gpl3+)))
20569
20570 (define-public emacs-add-node-modules-path
20571 (let ((commit "f31e69ccb681f882aebb806ce6e9478e3ac39708")
20572 (version "1.2.0")
20573 (revision "10"))
20574 (package
20575 (name "emacs-add-node-modules-path")
20576 (version (git-version version revision commit))
20577 (source
20578 (origin
20579 (method git-fetch)
20580 (uri (git-reference
20581 (url "https://github.com/codesuki/add-node-modules-path")
20582 (commit commit)))
20583 (file-name (git-file-name name version))
20584 (sha256
20585 (base32
20586 "0p106bqmvdr8by5iv02bshm339qbrjcch2d15mrm4h3nav03v306"))))
20587 (build-system emacs-build-system)
20588 (home-page "https://github.com/codesuki/add-node-modules-path")
20589 (synopsis "Add @file{node_modules} to the buffer-local @file{exec-path}")
20590 (description "This package searches the parent directories of the
20591 current file for the project's @file{node_modules/.bin/} directory, allowing
20592 Emacs to find project-specific installations of packages.")
20593 (license license:expat))))
20594
20595 (define-public emacs-flow-minor-mode
20596 (let ((commit "d1b32a7dd0d33c6a00a106da5f4b2323602cbd3e")
20597 (version "0.3")
20598 (revision "4"))
20599 (package
20600 (name "emacs-flow-minor-mode")
20601 (version (git-version version revision commit))
20602 (source
20603 (origin
20604 (method git-fetch)
20605 (uri (git-reference
20606 (url "https://github.com/an-sh/flow-minor-mode")
20607 (commit commit)))
20608 (file-name (git-file-name name version))
20609 (sha256
20610 (base32
20611 "169r4ib9qg9q6fm3p0p23qs1qx4pa9pg1qvyq4ysr85i7kwygppl"))))
20612 (build-system emacs-build-system)
20613 (home-page "https://github.com/an-sh/flow-minor-mode")
20614 (synopsis "Minor mode for JavaScript Flow files")
20615 (description "This package integrates Flow with Emacs, allowing for
20616 definition-jumping and type-checking on demand.")
20617 (license license:bsd-3))))
20618
20619 (define-public emacs-rjsx-mode
20620 (let ((commit "0e7fa6b4facdec4f85a7a8865bdf59dfd57217b5")
20621 (revision "2"))
20622 (package
20623 (name "emacs-rjsx-mode")
20624 (version (git-version "0.4" revision commit))
20625 (source
20626 (origin
20627 (method git-fetch)
20628 (uri (git-reference
20629 (url "https://github.com/felipeochoa/rjsx-mode")
20630 (commit commit)))
20631 (file-name (git-file-name name version))
20632 (sha256
20633 (base32
20634 "0s0871sx3ch09kgvbcp9na4zdrfrda62xjq8m9knbq5vnj8q8qpi"))))
20635 (build-system emacs-build-system)
20636 (propagated-inputs
20637 `(("emacs-js2-mode" ,emacs-js2-mode)))
20638 (arguments
20639 `(#:tests? #t
20640 #:test-command '("make" "test")))
20641 (home-page "https://github.com/felipeochoa/rjsx-mode")
20642 (synopsis "Major mode for JSX files")
20643 (description "This package extends the parser of @code{js2-mode} to
20644 support JSX syntax.")
20645 (license license:expat))))
20646
20647 (define-public emacs-origami-el
20648 (let ((commit "1f38085c8f9af7842765ed63f7d6dfe4dab59366")
20649 (version "1.0")
20650 (revision "1"))
20651 (package
20652 (name "emacs-origami-el")
20653 (version (git-version version revision commit))
20654 (source
20655 (origin
20656 (method git-fetch)
20657 (uri (git-reference
20658 (url "https://github.com/gregsexton/origami.el")
20659 (commit commit)))
20660 (file-name (git-file-name name version))
20661 (sha256
20662 (base32
20663 "0ha1qsz2p36pqa0sa2sp83lspbgx5lr7930qxnwd585liajzdd9x"))))
20664 (build-system emacs-build-system)
20665 (propagated-inputs
20666 `(("emacs-dash" ,emacs-dash)
20667 ("emacs-s" ,emacs-s)))
20668 (home-page "https://github.com/gregsexton/origami.el")
20669 (synopsis "Flexible text-folding")
20670 (description "This package provides a minor mode for collapsing and
20671 expanding regions of text without modifying the actual contents.")
20672 (license license:expat))))
20673
20674 (define-public emacs-peep-dired
20675 (let ((commit "c88a9a3050197840edfe145f11e0bb9488de32f4")
20676 (version "0")
20677 (revision "1"))
20678 (package
20679 (name "emacs-peep-dired")
20680 (version (git-version version revision commit))
20681 (source
20682 (origin
20683 (method git-fetch)
20684 (uri (git-reference
20685 (url "https://github.com/asok/peep-dired")
20686 (commit commit)))
20687 (file-name (git-file-name name version))
20688 (sha256
20689 (base32
20690 "1wy5qpnfri1gha2cnl6q20qar8dbl2mimpb43bnhmm2g3wgjyad6"))))
20691 (build-system emacs-build-system)
20692 (home-page "https://github.com/asok/peep-dired")
20693 (synopsis "Preview files in another window")
20694 (description "This package provides a minor mode that allows files to be
20695 previewed by scrolling up and down within a @code{dired} buffer.")
20696 (license license:gpl3+))))
20697
20698 (define-public emacs-counsel-etags
20699 (package
20700 (name "emacs-counsel-etags")
20701 (version "1.9.11")
20702 (source
20703 (origin
20704 (method git-fetch)
20705 (uri (git-reference
20706 (url "https://github.com/redguardtoo/counsel-etags")
20707 (commit version)))
20708 (file-name (git-file-name name version))
20709 (sha256
20710 (base32 "0h0br41vkrx9l7bqr55bafqd715drxxwm41qif6iffhgdpvf69ym"))))
20711 (build-system emacs-build-system)
20712 (propagated-inputs
20713 `(("emacs-counsel" ,emacs-counsel)))
20714 (arguments
20715 `(#:tests? #t
20716 #:test-command '("make" "test")))
20717 (home-page "https://github.com/redguardtoo/counsel-etags")
20718 (synopsis "Fast @code{Ctags}/@code{Etags} solution with @code{ivy-mode}")
20719 (description "This package uses @code{ivy-mode} to facilitate navigating
20720 and searching through @code{Ctags} files.")
20721 (license license:gpl3+)))
20722
20723 (define-public emacs-ivy-clipmenu
20724 (let ((commit "d2071f2c5043a05d610cd1952e84176ca78c31dc"))
20725 (package
20726 (name "emacs-ivy-clipmenu")
20727 (version (git-version "0.0.1" "1" commit))
20728 (source (origin
20729 (method git-fetch)
20730 (uri (git-reference
20731 (url "https://github.com/wpcarro/ivy-clipmenu.el")
20732 (commit commit)))
20733 (file-name (git-file-name name version))
20734 (sha256
20735 (base32
20736 "0npd8glzk5z4n7y9mzbsbzi0cf3by19fqcki052jr3dga363lds7"))))
20737 (propagated-inputs
20738 `(("emacs-f" ,emacs-f)
20739 ("emacs-ivy" ,emacs-ivy)))
20740 (build-system emacs-build-system)
20741 (home-page "https://github.com/wpcarro/ivy-clipmenu.el")
20742 (synopsis "Ivy integration with clipmenu")
20743 (description "Ivy integration with the clipboard manager, clipmenu.")
20744 (license license:expat))))
20745
20746 (define-public emacs-org-download
20747 (let ((commit "10c9d7c8eed928c88a896310c882e3af4d8d0f61")
20748 (revision "2"))
20749 (package
20750 (name "emacs-org-download")
20751 (version (git-version "0.1.0" revision commit))
20752 (source (origin
20753 (method git-fetch)
20754 (uri (git-reference
20755 (url "https://github.com/abo-abo/org-download")
20756 (commit commit)))
20757 (sha256
20758 (base32
20759 "0i8wlx1i7y1vn5lqwjifvymvszg28a07vwqcm4jslf1v2ajs1lsl"))
20760 (file-name (git-file-name name version))))
20761 (build-system emacs-build-system)
20762 (propagated-inputs
20763 `(("emacs-org" ,emacs-org)
20764 ("emacs-async" ,emacs-async)))
20765 (home-page "https://github.com/abo-abo/org-download")
20766 (synopsis "Facilitate moving images")
20767 (description "This package provides utilities for managing image files
20768 copied into @code{org-mode} buffers.")
20769 (license license:gpl3+))))
20770
20771 (define-public emacs-dash-docs
20772 (let ((commit "111fd9b97001f1ad887b45e5308a14ddd68ce70a")
20773 (revision "1"))
20774 (package
20775 (name "emacs-dash-docs")
20776 (version (git-version "1.4.0" revision commit))
20777 (source
20778 (origin
20779 (method git-fetch)
20780 (uri (git-reference
20781 (url "https://github.com/dash-docs-el/dash-docs")
20782 (commit commit)))
20783 (file-name (git-file-name name version))
20784 (sha256
20785 (base32
20786 "0sckb7z0ylflva212bns7iq9mfnffgjghi0qspsbfwra35zb9xng"))))
20787 (build-system emacs-build-system)
20788 (propagated-inputs
20789 `(("emacs-async" ,emacs-async)))
20790 (native-inputs
20791 `(("emacs-undercover" ,emacs-undercover)
20792 ("emacs-ert-runner" ,emacs-ert-runner)))
20793 (arguments
20794 `(#:tests? #t
20795 #:test-command '("ert-runner")
20796 #:phases
20797 ;; this test requires network access, so remove it
20798 (modify-phases %standard-phases
20799 (add-before 'check 'make-tests-writable
20800 (lambda _
20801 (make-file-writable "test/dash-docs-test.el")
20802 #t))
20803 (add-before 'check 'delete-test
20804 (lambda _
20805 (emacs-batch-edit-file "test/dash-docs-test.el"
20806 `(progn (progn
20807 (goto-char (point-min))
20808 (re-search-forward "ert-deftest dash-docs-official-docsets-test")
20809 (beginning-of-line)
20810 (kill-sexp))
20811 (basic-save-buffer)))
20812 #t)))))
20813 (home-page "https://github.com/dash-docs-el/dash-docs")
20814 (synopsis "Offline documentation browser for APIs using Dash docsets")
20815 (description "This package exposes functionality to work with Dash docsets.")
20816 (license license:gpl3+))))
20817
20818 (define-public emacs-helm-dash
20819 (let ((commit "7f853bd34da666f0e9a883011c80f451b06f6c59")
20820 (revision "2"))
20821 (package
20822 (name "emacs-helm-dash")
20823 (version (git-version "1.3.0" revision commit))
20824 (source
20825 (origin
20826 (method git-fetch)
20827 (uri (git-reference
20828 (url "https://github.com/areina/helm-dash")
20829 (commit commit)))
20830 (file-name (git-file-name name version))
20831 (sha256
20832 (base32
20833 "0r192vzry1212ihabg9pgw9xar8zdgnbgy0vsgvfm8s5wj6ny7jp"))))
20834 (build-system emacs-build-system)
20835 (propagated-inputs
20836 `(("emacs-helm" ,emacs-helm)
20837 ("emacs-dash-docs" ,emacs-dash-docs)))
20838 (home-page "https://github.com/areina/helm-dash")
20839 (synopsis "Offline documentation browser for APIs using Dash docsets")
20840 (description "This package uses Helm to install and navigate through
20841 Dash docsets.")
20842 (license license:gpl3+))))
20843
20844 (define-public emacs-counsel-dash
20845 (let ((commit "370d5f6f14b5294d0eb717f7b2a6a8e93df1ed24")
20846 (revision "4"))
20847 (package
20848 (name "emacs-counsel-dash")
20849 (version (git-version "0.1.3" revision commit))
20850 (source
20851 (origin
20852 (method git-fetch)
20853 (uri (git-reference
20854 (url "https://github.com/dash-docs-el/counsel-dash")
20855 (commit commit)))
20856 (file-name (git-file-name name version))
20857 (sha256
20858 (base32 "1fn38vbz46ijarjvhgw7iy7dj9s2a2miy95fyy9f8b5sj8nrdfvz"))))
20859 (build-system emacs-build-system)
20860 (propagated-inputs
20861 `(("emacs-counsel" ,emacs-counsel)
20862 ("emacs-dash-docs" ,emacs-dash-docs)))
20863 (home-page "https://github.com/dash-docs-el/counsel-dash")
20864 (synopsis "Offline documentation browser for APIs using Dash docsets")
20865 (description "This package uses @code{ivy-mode} to install and navigate
20866 through Dash docsets.")
20867 (license license:expat))))
20868
20869 (define-public emacs-calibredb
20870 (package
20871 (name "emacs-calibredb")
20872 (version "2.4.0")
20873 (source
20874 (origin
20875 (method git-fetch)
20876 (uri (git-reference
20877 (url "https://github.com/chenyanming/calibredb.el")
20878 (commit version)))
20879 (file-name (git-file-name name version))
20880 (sha256
20881 (base32 "0c6y3n51djajhfj4k6g0r58brls0fhyw6d7c6h4zi5jl1hw64vj6"))))
20882 (build-system emacs-build-system)
20883 (propagated-inputs
20884 `(("emacs-dash" ,emacs-dash)
20885 ("emacs-org" ,emacs-org)
20886 ("emacs-s" ,emacs-s)
20887 ("emacs-transient" ,emacs-transient)))
20888 (home-page "https://github.com/chenyanming/calibredb.el")
20889 (synopsis "Yet another calibre client for Emacs")
20890 (description "This package integrates calibre into Emacs.
20891 @enumerate
20892 @item Powerful ebook dashboard.
20893 @item Manage ebooks, actually not only ebooks!
20894 @item Manage Ebook libraries.
20895 @item Another bookmarks solution, by setting the tags and comments.
20896 @item Quick search, filter, make actions on items with ivy and helm.
20897 @item Org-ref support.
20898 @end enumerate")
20899 (license license:gpl3)))
20900
20901 (define-public emacs-el-patch
20902 (package
20903 (name "emacs-el-patch")
20904 (version "2.2.3")
20905 (source
20906 (origin
20907 (method git-fetch)
20908 (uri (git-reference
20909 (url "https://github.com/raxod502/el-patch")
20910 (commit version)))
20911 (file-name (git-file-name name version))
20912 (sha256
20913 (base32
20914 "18djslz177q6q33y82zmg2v6n9236a76kiqfvxdk4vbqzjbq82f7"))))
20915 (build-system emacs-build-system)
20916 (home-page "https://github.com/raxod502/el-patch")
20917 (synopsis "Future-proof your Emacs customizations")
20918 (description "This package allows for an alternate definition of an Elisp
20919 function to be specified and for any differences from the original definition
20920 to be examined using Ediff.")
20921 (license license:expat)))
20922
20923 (define-public emacs-info-plus
20924 (let ((commit "4a6b93c170169594e1e8ea60cd799a1a88a969da")
20925 (revision "2"))
20926 (package
20927 (name "emacs-info-plus")
20928 (version (git-version "0" revision commit))
20929 (source
20930 (origin
20931 (method git-fetch)
20932 (uri (git-reference
20933 (url "https://github.com/emacsmirror/info-plus")
20934 (commit commit)))
20935 (file-name (git-file-name name version))
20936 (sha256
20937 (base32
20938 "1xzmx7m1qbl3b1x6yq1db1a108xqaa64ljfv1hdw763zmy4kc6m0"))))
20939 (build-system emacs-build-system)
20940 (home-page "https://github.com/emacsmirror/info-plus")
20941 (synopsis "Extensions to @file{info.el}")
20942 (description "This package extends Emacs' @file{info.el} by allowing
20943 outline-enabled table of contents, additional metadata association for Info
20944 nodes, and more.")
20945 (license license:gpl2+))))
20946
20947 (define-public emacs-eval-sexp-fu-el
20948 (package
20949 (name "emacs-eval-sexp-fu-el")
20950 (version "0.5.0")
20951 (source
20952 (origin
20953 (method git-fetch)
20954 (uri (git-reference
20955 (url "https://github.com/hchbaw/eval-sexp-fu.el")
20956 (commit (string-append "v" version))))
20957 (file-name (git-file-name name version))
20958 (sha256
20959 (base32
20960 "01mpnpgmlnfbi2yw9dxz5iw72mw3lk223bj172i4fnx3xdrrxbij"))))
20961 (build-system emacs-build-system)
20962 (home-page "https://github.com/hchbaw/eval-sexp-fu.el")
20963 (synopsis "Enhancements for evaluating s-expressions")
20964 (description "This package provides provides variants of
20965 @code{eval-last-sexp} that work on the containing list or s-expression, as
20966 well as an option for visually flashing evaluated s-expressions.")
20967 (license license:gpl3+)))
20968
20969 (define-public emacs-counsel-tramp
20970 (package
20971 (name "emacs-counsel-tramp")
20972 (version "0.7.5")
20973 (source
20974 (origin
20975 (method git-fetch)
20976 (uri (git-reference
20977 (url "https://github.com/masasam/emacs-counsel-tramp")
20978 (commit version)))
20979 (file-name (git-file-name name version))
20980 (sha256
20981 (base32 "18qlwyjqxap2qfbz14ma6yqp4p3v4q2y8idc355s4szjdd2as2lr"))))
20982 (build-system emacs-build-system)
20983 (propagated-inputs
20984 `(("emacs-counsel" ,emacs-counsel)))
20985 (home-page "https://github.com/masasam/emacs-counsel-tramp")
20986 (synopsis "Ivy interface for TRAMP")
20987 (description
20988 "This package allows @code{ivy-mode} to display and filter SSH servers.")
20989 (license license:gpl3+)))
20990
20991 (define-public emacs-tramp
20992 (package
20993 (name "emacs-tramp")
20994 (version "2.4.4.1")
20995 (source
20996 (origin
20997 (method url-fetch)
20998 (uri (string-append "https://elpa.gnu.org/packages/"
20999 "tramp-" version ".tar"))
21000 (sha256
21001 (base32 "0jayd75yscaqvg6y0m6g2mgbjswyj5gqdij2az9g0j18vm5vbqy3"))))
21002 (build-system emacs-build-system)
21003 (arguments
21004 `(#:emacs ,emacs ;need D-Bus
21005 #:phases
21006 (modify-phases %standard-phases
21007 ;; All but one "/bin/" directory refer to remote
21008 ;; environments, which may not be Guix. Do not patch them
21009 ;; blindly. However, local encoding shell has to be patched.
21010 (replace 'patch-el-files
21011 (lambda* (#:key inputs #:allow-other-keys)
21012 (let ((sh (assoc-ref inputs "bash"))
21013 (file "tramp.el"))
21014 (emacs-substitute-variables file
21015 ("tramp-encoding-shell" (string-append sh "/bin/sh"))))
21016 #t)))))
21017 (inputs
21018 `(("bash" ,bash)))
21019 (home-page "https://savannah.gnu.org/projects/tramp")
21020 (synopsis "Remote file editing package for Emacs")
21021 (description
21022 "Tramp stands for ``Transparent Remote (file) Access, Multiple
21023 Protocol''. This package provides remote file editing, using
21024 a combination of @command{rsh} and @command{rcp} or other work-alike
21025 programs, such as @command{ssh} and @command{scp}.")
21026 (license license:gpl3+)))
21027
21028 (define-public emacs-tramp-auto-auth
21029 (let ((commit "f15a12dfab651aff60f4a9d70f868030a12344ac"))
21030 (package
21031 (name "emacs-tramp-auto-auth")
21032 (version (git-version "20191027" "1" commit))
21033 (source
21034 (origin
21035 (method git-fetch)
21036 (uri (git-reference
21037 (url "https://github.com/oitofelix/tramp-auto-auth")
21038 (commit commit)))
21039 (file-name (git-file-name name version))
21040 (sha256
21041 (base32
21042 "09nkjgwppjfgv04q0gv468qihgx4y3p39lpwbd6vbh3wgbccas9k"))))
21043 (build-system emacs-build-system)
21044 (home-page "https://github.com/oitofelix/tramp-auto-auth")
21045 (synopsis "TRAMP automatic authentication library")
21046 (description "This package provides @code{tramp-auto-auth-mode} Emacs
21047 global minor mode whose purpose is to automatically feed TRAMP sub-processes
21048 with passwords for paths matching regexps.")
21049 (license license:gpl3+))))
21050
21051 (define-public emacs-eacl
21052 (package
21053 (name "emacs-eacl")
21054 (version "2.0.1")
21055 (source
21056 (origin
21057 (method git-fetch)
21058 (uri (git-reference
21059 (url "https://github.com/redguardtoo/eacl")
21060 (commit version)))
21061 (file-name (git-file-name name version))
21062 (sha256
21063 (base32
21064 "0ksn11sm3g1ja5lpjz3hrzzw8b480mfcb3q589m52qjgvvn5iyfv"))))
21065 (build-system emacs-build-system)
21066 (propagated-inputs
21067 `(("emacs-ivy" ,emacs-ivy)))
21068 (home-page "https://github.com/redguardtoo/eacl")
21069 (synopsis "Auto-complete lines by using @code{grep} on a project")
21070 (description "This package provides auto-completion commands for single
21071 and multiple lines of code in a project.")
21072 (license license:gpl3+)))
21073
21074 (define-public emacs-semantic-refactor
21075 ;; The last release, 0.5, was made on 2015-07-26 and there have been 47
21076 ;; commits since then.
21077 (let ((commit "6f2c97d17fb70f4ca2112f5a2b99a8ec162004f5"))
21078 (package
21079 (name "emacs-semantic-refactor")
21080 (version (git-version "0.5" "1" commit))
21081 (source
21082 (origin
21083 (method git-fetch)
21084 (uri (git-reference
21085 (url "https://github.com/tuhdo/semantic-refactor")
21086 (commit commit)))
21087 (file-name (git-file-name name version))
21088 (sha256
21089 (base32
21090 "1lyz3zjkx2csh0xdy1zpx8s32qp1p3sig57mwi9xhgpqjyf0axmb"))))
21091 (build-system emacs-build-system)
21092 (home-page "https://github.com/tuhdo/semantic-refactor")
21093 (synopsis "Refactoring tool for C/C++ and Lisp dialects")
21094 (description "This package provides a refactoring tool based on the
21095 Emacs Semantic parser framework. For C and C++ it supports operations such as:
21096
21097 @enumerate
21098 @item Generating class implementations
21099 @item Generating function prototypes
21100 @item Converting functions to function pointers
21101 @item Moving semantic units
21102 @item etc...
21103 @end enumerate
21104
21105 For Lisp dialects like Clojure, ELisp, and Scheme, it supports operations such
21106 as:
21107
21108 @enumerate
21109 @item Formatting the whole buffer
21110 @item Converting sexpressions to one or multiple lines
21111 @item etc...
21112 @end enumerate\n")
21113 (license license:gpl3+))))
21114
21115 (define-public emacs-nhexl-mode
21116 (package
21117 (name "emacs-nhexl-mode")
21118 (version "1.5")
21119 (source
21120 (origin
21121 (method url-fetch)
21122 (uri (string-append "https://elpa.gnu.org/packages/"
21123 "nhexl-mode-" version ".el"))
21124 (sha256
21125 (base32 "0qvxfg7sv4iqyjxzaim6b4v9k5hav36qd4vkf9jwzw6p5fri8w8d"))))
21126 (build-system emacs-build-system)
21127 (home-page "https://elpa.gnu.org/packages/nhexl-mode.html")
21128 (synopsis "Minor mode to edit files via hex-dump format")
21129 (description
21130 "This package implements NHexl mode, a minor mode for editing files
21131 in hex dump format. The mode command is called @command{nhexl-mode}.
21132
21133 This minor mode implements similar functionality to @command{hexl-mode},
21134 but using a different implementation technique, which makes it
21135 usable as a \"plain\" minor mode. It works on any buffer, and does
21136 not mess with the undo log or with the major mode.
21137
21138 It also comes with:
21139
21140 @itemize
21141 @item @command{nhexl-nibble-edit-mode}: a \"nibble editor\" minor mode, where
21142 the cursor pretends to advance by nibbles (4-bit) and the self-insertion keys
21143 (which only work for hex-digits) will only modify the nibble under point.
21144 @item @command{nhexl-overwrite-only-mode}: a minor mode to try and avoid
21145 moving text. In this minor mode, not only self-inserting keys overwrite
21146 existing text, but commands like `yank' and @command{kill-region} as well.
21147 @item It overrides @code{C-u} to use hexadecimal, so you can do @code{C-u a 4
21148 C-f} to advance by #xa4 characters.
21149 @end itemize")
21150 (license license:gpl3+)))
21151
21152 (define-public emacs-helm-wikipedia
21153 (let ((commit "126f044e0a0e1432e0791c33ce2a41875d704a9b"))
21154 (package
21155 (name "emacs-helm-wikipedia")
21156 (version (git-version "0.0.0" "1" commit))
21157 (home-page "https://github.com/emacs-helm/helm-wikipedia/")
21158 (source
21159 (origin
21160 (method git-fetch)
21161 (uri (git-reference
21162 (url home-page)
21163 (commit commit)))
21164 (file-name (git-file-name name version))
21165 (sha256
21166 (base32
21167 "148a5xsnbsiddhf9cl7yxdk41lrv38h0pip91kcflw9d7l0dp7pr"))))
21168 (build-system emacs-build-system)
21169 (inputs
21170 `(("helm" ,emacs-helm)))
21171 (synopsis "Search suggestions and article extracts from Wikipedia for Emacs")
21172 (description
21173 "This package provides an Emacs Helm interface for search suggestions
21174 and article extracts for Wikipedia.")
21175 (license license:gpl3+))))
21176
21177 (define-public emacs-webfeeder
21178 (package
21179 (name "emacs-webfeeder")
21180 (version "1.0.0")
21181 (source
21182 (origin
21183 (method url-fetch)
21184 (uri (string-append
21185 "https://elpa.gnu.org/packages/webfeeder-"
21186 version
21187 ".tar"))
21188 (sha256
21189 (base32
21190 "06y5vxw9m6pmbrzb8v2i3w9dnhgqxz06vyx1knmgi9cczlrj4a64"))))
21191 (build-system emacs-build-system)
21192 (home-page "https://gitlab.com/Ambrevar/emacs-webfeeder")
21193 (synopsis "Build RSS and Atom webfeeds from HTML files")
21194 (description
21195 "Webfeeder is an Emacs library to generate RSS and Atom feeds from HTML
21196 files. The various elements of the HTML input are parsed with customizable
21197 functions (e.g. @code{webfeeder-title-function}).")
21198 (license license:gpl3+)))
21199
21200 (define-public emacs-evil-numbers
21201 (let ((commit "6ea1c8c3a9b37bed63d48f1128e9a4910e68187e"))
21202 (package
21203 (name "emacs-evil-numbers")
21204 (version (git-version "0.4" "1" commit))
21205 (source (origin
21206 (method git-fetch)
21207 (uri (git-reference
21208 (url "https://github.com/dieggsy/evil-numbers")
21209 (commit commit)))
21210 (file-name (git-file-name name version))
21211 (sha256
21212 (base32
21213 "1aq95hj8x13py0pwsnc6wvd8cc5yv5qin8ym9js42y5966vwj4np"))))
21214 (build-system emacs-build-system)
21215 (home-page "https://github.com/dieggsy/evil-numbers")
21216 (synopsis "Increment and decrement numbers in Emacs")
21217 (description "This package increments and decrements binary, octal,
21218 decimal and hex literals. It works like C-a/C-x in Vim, i.e. searches for
21219 number up to EOL and then increments or decrements and keeps zero padding up
21220 (unlike in Vim). When a region is active, as in Evil's visual mode, all the
21221 numbers within that region will be incremented/decremented (unlike in Vim).
21222
21223 It is a fork of https://github.com/cofi/evil-numbers, which is unmaintained.")
21224 (license license:gpl3+))))
21225
21226 (define-public emacs-rotate-text
21227 (package
21228 (name "emacs-rotate-text")
21229 (version "0.1")
21230 (source (origin
21231 (method git-fetch)
21232 (uri (git-reference
21233 (url "https://github.com/nschum/rotate-text.el")
21234 (commit version)))
21235 (file-name (git-file-name name version))
21236 (sha256
21237 (base32
21238 "1cgxv4aibkvv6lnssynn0438a615fz3zq8hg9sb0lhfgsr99pxln"))))
21239 (build-system emacs-build-system)
21240 (home-page "https://nschum.de/src/emacs/rotate-text/")
21241 (synopsis "Cycle through words, symbols and patterns in Emacs")
21242 (description "@code{rotate-text} allows you rotate to commonly
21243 interchanged text with a single keystroke. For example, you can toggle
21244 between \"frame-width\" and \"frame-height\", between \"public\",
21245 \"protected\" and \"private\" and between \"variable1\", \"variable2\" through
21246 \"variableN\".")
21247 (license license:gpl2+)))
21248
21249 (define-public emacs-ediprolog
21250 (package
21251 (name "emacs-ediprolog")
21252 (version "1.2")
21253 (source
21254 (origin
21255 (method url-fetch)
21256 (uri (string-append
21257 "https://elpa.gnu.org/packages/ediprolog-"
21258 version
21259 ".el"))
21260 (sha256
21261 (base32
21262 "039ffvp7c810mjyargmgw1i87g0z8qs8qicq826sd9aiz9hprfaz"))))
21263 (build-system emacs-build-system)
21264 (home-page "https://elpa.gnu.org/packages/ediprolog.html")
21265 (synopsis "Emacs Does Interactive Prolog")
21266 (description "This package provides a major mode that let the user
21267 interact with SWI-Prolog in all buffers. For instance, one can consult Prolog
21268 programs and evaluate embedded queries. This mode is focused on the command
21269 @code{ediprolog-dwim} (Do What I Mean) which is supposed to, depending on the
21270 context, carry out the appropriate action.")
21271 (license license:gpl3+)))
21272
21273 (define-public emacs-evil-cleverparens
21274 (let ((commit "8c45879d49bfa6d4e414b6c1df700a4a51cbb869")
21275 (revision "1"))
21276 (package
21277 (name "emacs-evil-cleverparens")
21278 (version (git-version "2017-07-17" revision commit))
21279 (source (origin
21280 (method git-fetch)
21281 (uri (git-reference
21282 (url "https://github.com/luxbock/evil-cleverparens")
21283 (commit commit)))
21284 (sha256 (base32 "0lhnybpnk4n2yhlcnj9zxn0vi5hpjfaqfhvyfy7ckzz74g8v7iyw"))
21285 (file-name (git-file-name name version))))
21286 (build-system emacs-build-system)
21287 (propagated-inputs
21288 `(("emacs-evil" ,emacs-evil)
21289 ("emacs-paredit" ,emacs-paredit)
21290 ("emacs-smartparens" ,emacs-smartparens)))
21291 (home-page "https://github.com/luxbock/evil-cleverparens")
21292 (synopsis "Emacs modal editing optimized for editing Lisp")
21293 (description "@code{evil-cleverparens} remaps Evil keybindings to allow
21294 modal editing with screwing up the structure of Lisp code. Alternatives for
21295 verb commands which would are normally destructive (such as deletion) are
21296 provided. Those alternative commands are and bound by default to their
21297 corresponding Evil keys.")
21298 (license license:expat))))
21299
21300 (define-public emacs-evil-traces
21301 (let ((commit "1931e3ea2c64b4aec393a9c25063c330deff55e3")
21302 (revision "2"))
21303 (package
21304 (name "emacs-evil-traces")
21305 (version (git-version "0.0.1" revision commit))
21306 (source (origin
21307 (method git-fetch)
21308 (uri (git-reference
21309 (url "https://github.com/mamapanda/evil-traces")
21310 (commit commit)))
21311 (file-name (git-file-name name version))
21312 (sha256
21313 (base32
21314 "12p9lfxscs182vbd4dy0m5gacs3d4kyprbz5yndpwvl8g2qsqplz"))))
21315 (build-system emacs-build-system)
21316 (propagated-inputs
21317 `(("emacs-evil" ,emacs-evil)))
21318 (arguments
21319 `(#:phases
21320 (modify-phases %standard-phases
21321 (add-after 'unpack 'set-shell
21322 ;; Setting the SHELL environment variable is required for the tests
21323 ;; to find sh.
21324 (lambda _
21325 (setenv "SHELL" (which "sh"))
21326 #t)))
21327 #:tests? #t
21328 #:test-command '("make" "test")))
21329 (home-page "https://github.com/mamapanda/evil-traces")
21330 (synopsis "Visual hints for @code{evil-ex}")
21331 (description "This package adds visual hints to certain @code{ex}
21332 commands in @code{evil-mode}.")
21333 (license license:gpl3+))))
21334
21335 (define-public emacs-evil-tmux-navigator
21336 (package
21337 (name "emacs-evil-tmux-navigator")
21338 (version "0.1.5")
21339 (source
21340 (origin
21341 (method git-fetch)
21342 (uri
21343 (git-reference
21344 (url "https://github.com/keith/evil-tmux-navigator")
21345 (commit version)))
21346 (file-name (git-file-name name version))
21347 (sha256
21348 (base32
21349 "1na44rbc03sr5b4z9pvnps6n4nmrqcz58nywix9825l74a419ijx"))))
21350 (propagated-inputs
21351 `(("emacs-evil" ,emacs-evil)))
21352 (build-system emacs-build-system)
21353 (home-page "https://github.com/keith/evil-tmux-navigator")
21354 (synopsis
21355 "Navigate seamlessly between emacs windows and tmux panes")
21356 (description
21357 "This package lets you use C-h, C-j, C-k and C-l to navigate between
21358 Emacs windows and tmux panes.")
21359 (license license:expat)))
21360
21361 (define-public emacs-xclip
21362 (package
21363 (name "emacs-xclip")
21364 (version "1.10")
21365 (source
21366 (origin
21367 (method url-fetch)
21368 (uri (string-append "https://elpa.gnu.org/packages/"
21369 "xclip-" version ".el"))
21370 (sha256
21371 (base32 "0i3i9kwfg8qmhcmqhhnrb1kljgwkccv63s9q1mjwqfjldyfh8j8i"))))
21372 (build-system emacs-build-system)
21373 (home-page "http://elpa.gnu.org/packages/xclip.html")
21374 (synopsis "Copy and paste GUI clipboard from Emacs in text terminal")
21375 (description
21376 "This package allows Emacs to copy to and paste from the GUI clipboard
21377 when running in text terminal.
21378
21379 It can use external command-line tools for that, e.g., @command{xclip} or
21380 @command{xsel}, which you may need to install in order for the package to
21381 work.")
21382 (license license:gpl3+)))
21383
21384 (define-public emacs-xterm-color
21385 (package
21386 (name "emacs-xterm-color")
21387 (version "1.9")
21388 (source (origin
21389 (method git-fetch)
21390 (uri (git-reference
21391 (url "https://github.com/atomontage/xterm-color")
21392 (commit version)))
21393 (file-name (git-file-name name version))
21394 (sha256
21395 (base32
21396 "0i9ivc5xhl5y5v0l18kbhfg8s2abb9zaimyx951b8bc0f5as68xm"))))
21397 (build-system emacs-build-system)
21398 (home-page "https://github.com/atomontage/xterm-color")
21399 (synopsis "ANSI & xterm-256 color text property translator for Emacs")
21400 (description "@code{xterm-color.el} is an ANSI control sequence to
21401 text-property translator.")
21402 (license license:bsd-2)))
21403
21404 (define-public emacs-org-noter
21405 (package
21406 (name "emacs-org-noter")
21407 (version "1.4.1")
21408 (source
21409 (origin
21410 (method git-fetch)
21411 (uri (git-reference
21412 (url "https://github.com/weirdNox/org-noter")
21413 (commit version)))
21414 (file-name (git-file-name name version))
21415 (sha256
21416 (base32
21417 "1vwfpdi7hfkxx4vi0cwg7rvqby3i0mymzdkyzrqzv30dazmcjpag"))))
21418 (build-system emacs-build-system)
21419 (propagated-inputs `(("emacs-org" ,emacs-org)))
21420 (home-page "https://github.com/weirdNox/org-noter")
21421 (synopsis "Synchronized, Org-mode, document annotator")
21422 (description
21423 "This package lets you create notes that are kept in sync when you
21424 scroll through the document, but that are external to it---the notes
21425 themselves live in an Org-mode file. As such, this leverages the power of
21426 Org-mode (the notes may have outlines, latex fragments, babel, etc...) while
21427 acting like notes that are made @emph{in} the document.")
21428 (license license:gpl3+)))
21429
21430 (define-public emacs-org-redmine
21431 (let ((commit "e77d013bc3784947c46a5c53f03cd7d3c68552fc"))
21432 (package
21433 (name "emacs-org-redmine")
21434 (version (git-version "0.1" "1" commit))
21435 (source (origin
21436 (method git-fetch)
21437 (uri (git-reference
21438 (url "https://github.com/gongo/org-redmine")
21439 (commit commit)))
21440 (file-name (git-file-name name version))
21441 (sha256
21442 (base32
21443 "06miv3mf2a39vkf6mmm5ssc47inqh7dq82khsyc03anz4d4lj822"))))
21444 (build-system emacs-build-system)
21445 (home-page "https://github.com/gongo/org-redmine/")
21446 (synopsis "Redmine tools using Emacs")
21447 (description "This program provides an Emacs client for Redmine.")
21448 (license license:gpl3+))))
21449
21450 (define-public emacs-multi-term
21451 ;; No upstream release. Extract version from main file.
21452 (let ((commit "017c77c550115936860e2ea71b88e585371475d5")
21453 (revision "0"))
21454 (package
21455 (name "emacs-multi-term")
21456 (version (git-version "1.5" revision commit))
21457 (source
21458 (origin
21459 (method git-fetch)
21460 (uri (git-reference
21461 (url "https://github.com/manateelazycat/multi-term")
21462 (commit commit)))
21463 (file-name (git-file-name name version))
21464 (sha256
21465 (base32 "043dqd8i8h6hbcg11rzprxin2yq5lb902zlrb7mxah44vyp8wrdi"))))
21466 (build-system emacs-build-system)
21467 (inputs
21468 `(("zsh" ,zsh)))
21469 (home-page "https://github.com/manateelazycat/multi-term")
21470 (synopsis "Manage multiple terminal buffers in Emacs")
21471 (description
21472 "This package enhances @code{term.el} with the following features:
21473
21474 @enumerate
21475 @item Functions to switch between multiple terminal buffers
21476 @item List of keys to be intercepted by @code{emacs-multi-term} instead of by
21477 the underlying terminal
21478 @item Kills the unused buffer left after exiting the terminal
21479 @item Kills the running sub-processes along with the terminal when killing the
21480 it forcibly
21481 @item Dedicated window for debugging program.
21482 @end enumerate")
21483 (license license:gpl3+))))
21484
21485 (define-public emacs-elpher
21486 (package
21487 (name "emacs-elpher")
21488 (version "2.9.1")
21489 (source
21490 (origin
21491 (method git-fetch)
21492 (uri (git-reference
21493 (url "git://thelambdalab.xyz/elpher.git")
21494 (commit (string-append "v" version))))
21495 (file-name (git-file-name name version))
21496 (sha256
21497 (base32 "0vyqmv7dycmad1726yb6yizd21x3kkz5cj33mca11r8nh38f1qzp"))))
21498 (build-system emacs-build-system)
21499 (native-inputs
21500 `(("texinfo" ,texinfo)))
21501 (arguments
21502 `(#:phases
21503 (modify-phases %standard-phases
21504 (add-before 'install 'build-doc
21505 (lambda _
21506 (invoke "makeinfo" "elpher.texi"))))))
21507 (home-page "gopher://thelambdalab.xyz/1/projects/elpher/")
21508 (synopsis "Gopher client for Emacs")
21509 (description "Elpher is a full-featured gopher client for Emacs. Its
21510 features include intuitive keyboard and mouse-driven browsing, out-of-the-box
21511 compatibility with evil-mode, clickable web and gopher links in plain text,
21512 caching of visited sites, pleasant and configurable visualization of Gopher
21513 directories, direct visualisation of image files, jumping directly to links by
21514 name (with autocompletion), a simple bookmark management system and
21515 connections using TLS encryption.")
21516 (license license:gpl3+)))
21517
21518 (define-public emacs-zerodark-theme
21519 (package
21520 (name "emacs-zerodark-theme")
21521 (version "4.6")
21522 (source
21523 (origin
21524 (method git-fetch)
21525 (uri (git-reference
21526 (url "https://github.com/NicolasPetton/zerodark-theme")
21527 (commit version)))
21528 (file-name (git-file-name name version))
21529 (sha256
21530 (base32
21531 "0pfyd1iqs7l2ngwgvj9n0r9k1px7yl16h8n502xdyf0pprxcs4p6"))))
21532 (build-system emacs-build-system)
21533 (propagated-inputs
21534 `(("emacs-flycheck" ,emacs-flycheck)
21535 ("emacs-all-the-icons" ,emacs-all-the-icons)))
21536 (home-page
21537 "https://gitlab.petton.fr/nico/zerodark-theme")
21538 (synopsis
21539 "Dark, medium contrast theme for Emacs")
21540 (description
21541 "Zerodark is a dark theme inspired from One Dark and Niflheim.
21542 An optional mode-line format can be enabled with @code{zerodark-setup-modeline-format}.")
21543 (license license:gpl3+)))
21544
21545 (define-public emacs-gnus-alias
21546 (package
21547 (name "emacs-gnus-alias")
21548 (version "20150316")
21549 (source (origin
21550 (method git-fetch)
21551 (uri (git-reference
21552 (url "https://github.com/hexmode/gnus-alias")
21553 (commit "9447d3ccb4c0e75d0468899cccff7aa249657bac")))
21554 (file-name (git-file-name name version))
21555 (sha256
21556 (base32
21557 "1i278npayv3kfxxd1ypi9n83q5l402sbc1zkm11pf8g006ifqsp4"))))
21558 (build-system emacs-build-system)
21559 (home-page "https://melpa.org/#/gnus-alias")
21560 (synopsis "Alternative to @code{gnus-posting-styles}")
21561 (description "This Emacs add-on provides a simple mechanism to switch
21562 Identities when using a @code{message-mode} or a @code{message-mode} derived
21563 mode. Identities can include @code{From} and @code{Organisation} headers,
21564 extra headers, body and signature. Other features include:
21565
21566 @itemize
21567 @item Switch Identities in a message buffer.
21568 @item Access original message to help determine Identity of the followup/reply
21569 message.
21570 @item Act on a forwarded message as if it were a message being replied to.
21571 @item Start a new message with a given Identity pre-selected.
21572 @end itemize")
21573 (license license:gpl2+)))
21574
21575 (define-public emacs-ox-epub
21576 (package
21577 (name "emacs-ox-epub")
21578 (version "0.3")
21579 (source (origin
21580 (method git-fetch)
21581 (uri (git-reference
21582 (url "https://github.com/ofosos/ox-epub")
21583 (commit (string-append "v" version))))
21584 (file-name (git-file-name name version))
21585 (sha256
21586 (base32
21587 "057sqmvm8hwkhcg3yd4i8zz2xlqsqrpyiklyiw750s3i5mxdn0k7"))))
21588 (build-system emacs-build-system)
21589 (home-page "https://github.com/ofosos/ox-epub")
21590 (synopsis "Export org mode projects to EPUB")
21591 (description "@code{ox-epub} extends the (X)HTML exporter to generate
21592 @code{.epub} files directly from OrgMode. This will export EPUB version 2,
21593 which should give broad compatibility. It should also be relatiely easy to
21594 convert the resulting @code{.epub} to a @code{.mobi} file. Needs a working
21595 zip utility (default is @code{zip}).")
21596 (license license:gpl3+)))
21597
21598 (define-public emacs-ox-hugo
21599 (package
21600 (name "emacs-ox-hugo")
21601 (version "0.8")
21602 (source
21603 (origin
21604 (method git-fetch)
21605 (uri (git-reference
21606 (url "https://github.com/kaushalmodi/ox-hugo")
21607 (commit (string-append "v" version))))
21608 (file-name (git-file-name name version))
21609 (sha256
21610 (base32
21611 "11h464cyc28ld0b0zridgm4drydc1qjxbm1y24zrwlkyqqjk6yr7"))))
21612 (build-system emacs-build-system)
21613 (home-page "https://ox-hugo.scripter.co")
21614 (synopsis "Hugo markdown back-end for Org export engine")
21615 (description
21616 "Ox-hugo is an Org exporter backend that exports Org to Hugo-compatible
21617 Markdown, Blackfriday, and also generates the front-matter in TOML or YAML
21618 format.")
21619 (license license:gpl3+)))
21620
21621 (define-public emacs-ox-pandoc
21622 (package
21623 (name "emacs-ox-pandoc")
21624 (version "20180510")
21625 (source (origin
21626 (method git-fetch)
21627 (uri (git-reference
21628 (url "https://github.com/kawabata/ox-pandoc")
21629 (commit "aa37dc7e94213d4ebedb85c384c1ba35007da18e")))
21630 (file-name (git-file-name name version))
21631 (sha256
21632 (base32
21633 "0iibxplgdp34bpq1yll2gmqjd8d8lnqn4mqjvx6cdf0y438yr4jz"))))
21634 (build-system emacs-build-system)
21635 (inputs
21636 `(("pandoc" ,ghc-pandoc)))
21637 (propagated-inputs
21638 `(("emacs-dash" ,emacs-dash)
21639 ("emacs-ht" ,emacs-ht)))
21640 (home-page "https://github.com/kawabata/ox-pandoc")
21641 (synopsis "Org exporter for Pandoc")
21642 (description "@code{ox-pandoc} is an exporter for converting Org-mode
21643 files to numerous other formats via Pandoc.")
21644 (license license:gpl3+)))
21645
21646 (define-public emacs-wc-mode
21647 (package
21648 (name "emacs-wc-mode")
21649 (version "1.3")
21650 (source (origin
21651 (method git-fetch)
21652 (uri (git-reference
21653 (url "https://github.com/bnbeckwith/wc-mode")
21654 (commit (string-append "v" version))))
21655 (file-name (git-file-name name version))
21656 (sha256
21657 (base32
21658 "0pjlxv46zzqdq6q131jb306vqlg4sfqls1x8vag7mmfw462hafqp"))))
21659 (build-system emacs-build-system)
21660 (home-page "https://github.com/bnbeckwith/wc-mode")
21661 (synopsis "Running word count with goals (minor mode)")
21662 (description "@code{wc-mode} is a minor mode, providing a ‘wc’ function
21663 for Emacs buffers as well as a modeline addition with live word, line and
21664 character counts. Additionally, a user can set specific goals for adding or
21665 deleting words. These goals were partly inspired by 750words.com where the
21666 goal of the site is to encourage writing by setting a goal of 750 words at a
21667 time.")
21668 (license license:gpl3+)))
21669
21670 (define-public emacs-mastodon
21671 (package
21672 (name "emacs-mastodon")
21673 (version "0.9.0")
21674 (source (origin
21675 (method git-fetch)
21676 (uri (git-reference
21677 (url "https://github.com/jdenen/mastodon.el")
21678 (commit version)))
21679 (file-name (git-file-name name version))
21680 (sha256
21681 (base32
21682 "0hwax6y9dghqwsbnb6f1bnc7gh8xsh5cvcnayk2sn49x8b0zi5h1"))))
21683 (build-system emacs-build-system)
21684 (arguments
21685 `(#:phases
21686 (modify-phases %standard-phases
21687 ;; Move the source files to the top level, which is included in
21688 ;; the EMACSLOADPATH.
21689 (add-after 'unpack 'move-source-files
21690 (lambda _
21691 (let ((el-files (find-files "./lisp" ".*\\.el$")))
21692 (for-each (lambda (f)
21693 (rename-file f (basename f)))
21694 el-files))
21695 #t)))))
21696 (home-page "https://github.com/jdenen/mastodon.el")
21697 (synopsis "Emacs client for Mastodon")
21698 (description "@code{mastodon.el} is an Emacs client for Mastodon, the
21699 federated microblogging social network.")
21700 (license license:gpl3+)))
21701
21702 (define-public emacs-ebdb
21703 (package
21704 (name "emacs-ebdb")
21705 (version "0.6.18")
21706 (source
21707 (origin
21708 (method url-fetch)
21709 (uri (string-append "https://elpa.gnu.org/packages/"
21710 "ebdb-" version ".tar"))
21711 (sha256
21712 (base32 "0znbv3c7wdgak1f1zb051vg4r29fksqh53k1j77jfmqcvwkpz2mw"))))
21713 (build-system emacs-build-system)
21714 (home-page "https://github.com/girzel/ebdb")
21715 (synopsis "EIEIO port of BBDB, Emacs's contact-management package")
21716 (description
21717 "EBDB is a contact management/addressbook package for Emacs. It's
21718 a re-write of the Insidious Big Brother Database (BBDB) using Emacs
21719 Lisp's (relatively new) EIEIO object oriented libraries.")
21720 (license license:gpl3+)))
21721
21722 (define-public emacs-refactor
21723 (package
21724 (name "emacs-refactor")
21725 (version "0.4")
21726 (source (origin
21727 (method git-fetch)
21728 (uri (git-reference
21729 (url "https://github.com/Wilfred/emacs-refactor")
21730 (commit version)))
21731 (file-name (git-file-name name version))
21732 (sha256
21733 (base32
21734 "1yky7vlv91501xb43xk19rr8mxlvrsxhawsc98jivf64nad5dqay"))))
21735 (build-system emacs-build-system)
21736 (propagated-inputs
21737 `(("emacs-dash" ,emacs-dash)
21738 ("emacs-s" ,emacs-s)
21739 ("emacs-popup" ,emacs-popup)
21740 ("emacs-list-utils" ,emacs-list-utils)
21741 ("emacs-iedit" ,emacs-iedit)))
21742 (home-page "https://github.com/Wilfred/emacs-refactor/")
21743 (synopsis "Language-specific refactoring in Emacs")
21744 (description "Emacs Refactor (EMR) is a framework for providing
21745 language-specific refactoring in Emacs. It includes refactoring commands for
21746 a variety of languages, including elisp itself.")
21747 (license license:gpl3+)))
21748
21749 (define-public emacs-flyspell-correct
21750 (package
21751 (name "emacs-flyspell-correct")
21752 (version "0.5")
21753 (source
21754 (origin
21755 (method git-fetch)
21756 (uri (git-reference
21757 (url "https://github.com/d12frosted/flyspell-correct")
21758 (commit (string-append "v" version))))
21759 (file-name (git-file-name name version))
21760 (sha256
21761 (base32
21762 "1r9hmz7sihhy7npv6nxp04sy57glzmfax5d67mwn96fdnc0yhlnd"))))
21763 (build-system emacs-build-system)
21764 (propagated-inputs
21765 `(("emacs-helm" ,emacs-helm)
21766 ("emacs-ivy" ,emacs-ivy)
21767 ("emacs-popup" ,emacs-popup)))
21768 (home-page
21769 "https://github.com/d12frosted/flyspell-correct")
21770 (synopsis
21771 "Correcting words with flyspell via custom interfaces")
21772 (description
21773 "This package provides functionality for correcting words via custom
21774 interfaces. Several interfaces are supported beside the classic ido: popup,
21775 helm and ivy.")
21776 (license license:gpl3+)))
21777
21778 (define-public emacs-org-emms
21779 (let ((commit "07a8917f3d628c32e5de1dbd118ac08203772533")
21780 (revision "1"))
21781 (package
21782 (name "emacs-org-emms")
21783 (version
21784 (git-version "0.1" revision commit))
21785 (source
21786 (origin
21787 (method git-fetch)
21788 (uri (git-reference
21789 (url "https://gitlab.com/jagrg/org-emms.git")
21790 (commit commit)))
21791 (file-name (git-file-name name commit))
21792 (sha256
21793 (base32
21794 "1sqsm5sv311xfdk4f4rsnvprdf2v2vm7l1b3vqi7pc0g8adlnw1d"))))
21795 (build-system emacs-build-system)
21796 (propagated-inputs
21797 `(("emms" ,emacs-emms)
21798 ("emacs-org" ,emacs-org)))
21799 (home-page "https://gitlab.com/jagrg/org-emms")
21800 (synopsis "Play multimedia files from org-mode")
21801 (description
21802 "This package provides a new org link type for playing back multimedia
21803 files from org-mode using EMMS, The Emacs Multimedia System. If the link
21804 contains a track position, playback will start at the specified position.")
21805 (license license:gpl3+))))
21806
21807 (define-public emacs-org-jira
21808 (package
21809 (name "emacs-org-jira")
21810 (version "4.3.1")
21811 (source
21812 (origin
21813 (method git-fetch)
21814 (uri (git-reference
21815 (url "https://github.com/ahungry/org-jira")
21816 (commit version)))
21817 (file-name (git-file-name name version))
21818 (sha256
21819 (base32
21820 "1l80r2a9zzbfk2c78i40h0ww79vm9v4j6xi2h5i4w9kqh10rs6h2"))))
21821 (build-system emacs-build-system)
21822 (propagated-inputs
21823 `(("emacs-request" ,emacs-request)
21824 ("emacs-s" ,emacs-s)
21825 ("emacs-dash" ,emacs-dash)
21826 ("emacs-org" ,emacs-org)))
21827 (home-page "https://github.com/ahungry/org-jira")
21828 (synopsis "Syncing between Jira and Org-mode")
21829 (description
21830 "This package provides an extension to org-mode for syncing issues with
21831 JIRA issue servers.")
21832 (license license:gpl3+)))
21833
21834 (define-public emacs-systemd-mode
21835 (package
21836 (name "emacs-systemd-mode")
21837 (version "1.6")
21838 (source (origin
21839 (method git-fetch)
21840 (uri (git-reference
21841 (url "https://github.com/holomorph/systemd-mode")
21842 (commit (string-append "v" version))))
21843 (file-name (git-file-name name version))
21844 (sha256
21845 (base32
21846 "0ylgnvpfindg4cxccbqy02ic7p0i9rygf1w16dm1filwhbqvjplq"))))
21847 (build-system emacs-build-system)
21848 (arguments '(#:include '("\\.el$" "\\.txt$")))
21849 (home-page "https://github.com/holomorph/systemd-mode")
21850 (synopsis
21851 "Major mode for editing systemd units")
21852 (description
21853 "Major mode for editing systemd units in GNU Emacs.")
21854 (license license:gpl3+)))
21855
21856 (define-public emacs-ssh-config-mode
21857 (let ((commit "4c1dfa57d452cb5654453bf186c8ff63e1e71b56")
21858 (revision "1"))
21859 (package
21860 (name "emacs-ssh-config-mode")
21861 (version (git-version "8.0" revision commit))
21862 (source
21863 (origin
21864 (method git-fetch)
21865 (uri
21866 (git-reference
21867 (url "https://github.com/jhgorrell/ssh-config-mode-el")
21868 (commit commit)))
21869 (file-name (git-file-name name commit))
21870 (sha256
21871 (base32
21872 "0crglfdazzckizbwzmgl2rn6j85avfzkr1q7ijxd17rp2anvr9bd"))))
21873 (build-system emacs-build-system)
21874 (arguments '(#:include '("\\.el$" "\\.txt$")))
21875 (home-page
21876 "https://github.com/jhgorrell/ssh-config-mode-el")
21877 (synopsis
21878 "Mode for fontification of ~/.ssh/config")
21879 (description
21880 "This package fontifies the ssh config keywords and creates
21881 keybindings for skipping from host section to host section.")
21882 (license license:gpl3+))))
21883
21884 (define-public emacs-ssh-agency
21885 (package
21886 (name "emacs-ssh-agency")
21887 (version "0.4")
21888 (source (origin
21889 (method git-fetch)
21890 (uri (git-reference
21891 (url "https://github.com/magit/ssh-agency")
21892 (commit version)))
21893 (file-name (git-file-name name version))
21894 (sha256
21895 (base32
21896 "0895n7bss4wdydic1gflr03f2cwdyqywl16gvb599lpn288jhwvz"))))
21897 (build-system emacs-build-system)
21898 (propagated-inputs
21899 `(("dash" ,emacs-dash)))
21900 (home-page "https://github.com/magit/ssh-agency")
21901 (synopsis "Manage @code{ssh-agent} from Emacs")
21902 (description
21903 "This package provides functions to startup @code{ssh-agent}, set the
21904 needed environment variables in Emacs, and prompt for passphrases from within
21905 Emacs so that pushes and pulls from @code{magit} will not require entering any
21906 passphrase.
21907
21908 It can also be useful on Unix-like platforms to delay having to enter your
21909 passphrase until the first time you push to a remote.")
21910 (license license:gpl3+)))
21911
21912 (define-public emacs-tao-theme
21913 (let ((commit "c5107fbe7e752f4e58c2d2147ff18a1ebb12937c")
21914 (revision "0"))
21915 (package
21916 (name "emacs-tao-theme")
21917 (version (git-version "0" revision commit))
21918 (source
21919 (origin
21920 (method git-fetch)
21921 (uri (git-reference
21922 (url "https://github.com/11111000000/tao-theme-emacs")
21923 (commit commit)))
21924 (file-name (git-file-name name version))
21925 (sha256
21926 (base32
21927 "07vvlglmkj87hpxz79s3bl2cjn71vain57fdxs7j9vlr5jkchxwn"))))
21928 (build-system emacs-build-system)
21929 (home-page "https://github.com/11111000000/tao-theme-emacs")
21930 (synopsis "Parameterized uncolored color themes for Emacs")
21931 (description
21932 "This package provides two parameterized uncolored color themes for
21933 Emacs: @code{tao-yin} and @code{tao-yang}. The default
21934 @code{tao-theme-scale-fn} is @code{tao-theme-golden-scale}.
21935
21936 You can customize: @code{tao-theme-scale-fn}, that returns 16 2-digit numbers;
21937 @code{tao-theme-scale-filter-fn}, for edge filter; and
21938 @code{tao-theme-use-height}.")
21939 (license license:gpl3+))))
21940
21941 (define-public emacs-almost-mono-themes
21942 (let ((commit "c3a85c1a665530a5d830665969725cdba8eceb75")
21943 (revision "0"))
21944 (package
21945 (name "emacs-almost-mono-themes")
21946 (version (git-version "0" revision commit))
21947 (source
21948 (origin
21949 (method git-fetch)
21950 (uri (git-reference
21951 (url "https://github.com/cryon/almost-mono-themes")
21952 (commit commit)))
21953 (file-name (git-file-name name version))
21954 (sha256
21955 (base32
21956 "034k32xkr5ma415hlkbl35z0jxc4sa1inf87hg3y6lrlfl83fyjh"))))
21957 (build-system emacs-build-system)
21958 (home-page "https://github.com/cryon/almost-mono-themes")
21959 (synopsis "Almost monochromatic themes for emacs in a few variants")
21960 (description
21961 "This package provides a collection of almost monochrome Emacs themes:
21962 @code{almost-mono-black} and @code{almost-mono-white}.")
21963 (license license:gpl3+))))
21964
21965 (define-public emacs-quasi-monochrome
21966 (let ((commit "68060dbbc0bbfe4924387392874186c5a29bb434")
21967 (revision "0"))
21968 (package
21969 (name "emacs-quasi-monochrome")
21970 (version (git-version "1.2" revision commit))
21971 (source
21972 (origin
21973 (method git-fetch)
21974 (uri (git-reference
21975 (url "https://github.com/lbolla/emacs-quasi-monochrome")
21976 (commit commit)))
21977 (file-name (git-file-name name version))
21978 (sha256
21979 (base32
21980 "0zp2xr0bjfqrpb0bqczzick1vvbjmipjavrdi70kw6a9caynvq22"))))
21981 (build-system emacs-build-system)
21982 (home-page "https://github.com/lbolla/emacs-quasi-monochrome")
21983 (synopsis "Dark color theme for Emacs")
21984 (description
21985 "This package provides a dark color theme with a black background, high
21986 contrast and few colors.")
21987 (license license:gpl3+))))
21988
21989 (define-public emacs-doom-themes
21990 (let ((commit "54039c5171e3f8c9cef1f82122549b66cd8c8f7b")
21991 (revision "4")
21992 (version "2.1.6"))
21993 (package
21994 (name "emacs-doom-themes")
21995 (version (git-version version revision commit))
21996 (source (origin
21997 (method git-fetch)
21998 (uri (git-reference
21999 (url "https://github.com/hlissner/emacs-doom-themes")
22000 (commit commit)))
22001 (file-name (git-file-name name version))
22002 (sha256
22003 (base32 "1iwdjq4q2gkhi6jwas3ywgmdz5dg14sfb3fzhqd7wih6j3i2l3cr"))))
22004 (build-system emacs-build-system)
22005 (native-inputs
22006 `(("emacs-ert-runner" ,emacs-ert-runner)))
22007 (arguments
22008 `(#:tests? #t
22009 #:test-command '("ert-runner")
22010 #:modules ((guix build emacs-build-system)
22011 (guix build utils)
22012 (guix build emacs-utils)
22013 (srfi srfi-1))
22014 #:phases
22015 (modify-phases %standard-phases
22016 (add-after 'unpack 'move-themes
22017 (lambda _
22018 ;; Move the source files to the top level, which is in the
22019 ;; EMACSLOADPATH.
22020 (for-each (lambda (f)
22021 (rename-file f (basename f)))
22022 (find-files "./themes" ".*\\.el$"))
22023 #t))
22024 ;; There is a byte-code overflow issue in the latest checkout
22025 ;; which affects byte-compilation for several (read `most') theme
22026 ;; files. In order to cope with this issue, we disable
22027 ;; byte-compilation until this issue is resolved.
22028 ;; <https://github.com/hlissner/emacs-doom-themes/issues/314>
22029 ;;
22030 ;; NOTE: Byte-comp has been disabled in/after commit 9cd6872.
22031 ;; However our method of selective disabling is preferential to
22032 ;; just widely disabling byte-compilation.
22033 (add-after 'move-themes 'disable-breaking-compilation
22034 (lambda _
22035 (for-each (lambda (file)
22036 (chmod file #o600) ; needed to write changes.
22037 (emacs-batch-disable-compilation file))
22038 (cons "doom-themes-ext-neotree.el"
22039 ;; NOTE: When updating this package, determine
22040 ;; whether changed theme files can byte-compile.
22041 ;; If they can successfully byte-compile, add them
22042 ;; to this list of exceptions.
22043 (lset-difference string-contains
22044 (find-files "." ".*-theme.el")
22045 '("material"
22046 "snazzy"
22047 "tomorrow-day"))))
22048 #t)))))
22049 (synopsis "Wide collection of color themes for Emacs")
22050 (description "Emacs-doom-themes contains numerous popular color themes for
22051 Emacs that integrate with major modes like Org-mode.")
22052 (home-page "https://github.com/hlissner/emacs-doom-themes")
22053 (license license:expat))))
22054
22055 (define-public emacs-modus-operandi-theme
22056 (package
22057 (name "emacs-modus-operandi-theme")
22058 (version "0.10.0")
22059 (source
22060 (origin
22061 (method url-fetch)
22062 (uri (string-append "https://elpa.gnu.org/packages/"
22063 "modus-operandi-theme-" version ".el"))
22064 (sha256
22065 (base32 "1r6dkfdd967zw1nw58nlw7y1r9x8lcbr5gvjfbcbrw0agh87wb40"))))
22066 (build-system emacs-build-system)
22067 (home-page "https://gitlab.com/protesilaos/modus-themes")
22068 (synopsis "Accessible light theme (WCAG AAA)")
22069 (description
22070 "Modus operandi is the light version of the Modus accessible themes for
22071 GNU Emacs. The contrast ratio between foreground and background values should
22072 always be greater than 7:1, which conforms with the WCAG AAA accessibility
22073 standard. This is the highest standard of its kind.")
22074 (license license:gpl3+)))
22075
22076 (define-public emacs-modus-vivendi-theme
22077 (package
22078 (name "emacs-modus-vivendi-theme")
22079 (version "0.10.0")
22080 (source
22081 (origin
22082 (method url-fetch)
22083 (uri (string-append "https://elpa.gnu.org/packages/"
22084 "modus-vivendi-theme-" version ".el"))
22085 (sha256
22086 (base32 "1kk8q5lrl69ysawnk2iymqmmcsad884kx691hjf2zdj6fskd070g"))))
22087 (build-system emacs-build-system)
22088 (home-page "https://gitlab.com/protesilaos/modus-themes")
22089 (synopsis "Accessible dark theme (WCAG AAA)")
22090 (description
22091 "Modus vivendi is the dark version of the Modus accessible themes for GNU
22092 Emacs. The contrast ratio between foreground and background values should
22093 always be greater than 7:1, which conforms with the WCAG AAA accessibility
22094 standard. This is the highest standard of its kind.")
22095 (license license:gpl3+)))
22096
22097 (define-public emacs-modus-themes
22098 (deprecated-package "emacs-modus-themes" emacs-modus-operandi-theme))
22099
22100 (define-public emacs-punpun-theme
22101 (let ((commit "2f78125609277b2478abdebd8f9d5ee10a823b65")
22102 (revision "0"))
22103 (package
22104 (name "emacs-punpun-theme")
22105 (version (git-version "0" revision commit))
22106 (source
22107 (origin
22108 (method git-fetch)
22109 (uri (git-reference
22110 (url "https://github.com/wasamasa/punpun-theme")
22111 (commit commit)))
22112 (file-name (git-file-name name version))
22113 (sha256
22114 (base32
22115 "1sgxrj3igzq86h3whfymxf4qzv9kpvcrlhbvjmnp7fwrplys0n7d"))))
22116 (build-system emacs-build-system)
22117 (home-page "https://github.com/wasamasa/punpun-theme")
22118 (synopsis "Bleak Emacs theme")
22119 (description
22120 "A bleak theme. Uses shades of gray and the occasional splash of
22121 color. Designed for 256-color terminals. Comes in light and dark!")
22122 (license license:gpl3+))))
22123
22124 (define-public emacs-spacemacs-theme
22125 (let ((commit "f79c40fb241e204539fde97200abae91e828e585")
22126 (revision "1"))
22127 (package
22128 (name "emacs-spacemacs-theme")
22129 (version (git-version "0" revision commit)) ;no release yet
22130 (source
22131 (origin
22132 (method git-fetch)
22133 (uri (git-reference
22134 (url "https://github.com/nashamri/spacemacs-theme")
22135 (commit commit)))
22136 (file-name (git-file-name name version))
22137 (sha256
22138 (base32 "1l2kkiyrskkpx8f901v0wrzaah1wjg15zdyv88spj3mh3hwd3b6n"))))
22139 (build-system emacs-build-system)
22140 (home-page "https://github.com/nashamri/spacemacs-theme")
22141 (synopsis
22142 "Light and dark theme for spacemacs that supports GUI and terminal")
22143 (description
22144 "Spacemacs theme is an Emacs color theme that started as
22145 a theme for Spacemacs. The theme comes with dark and light variants
22146 and it should work well with 256 color terminals.")
22147 (license license:gpl3+))))
22148
22149 (define-public emacs-elixir-mode
22150 (package
22151 (name "emacs-elixir-mode")
22152 (version "2.3.1")
22153 (source
22154 (origin
22155 (method git-fetch)
22156 (uri (git-reference
22157 (url "https://github.com/elixir-editors/emacs-elixir")
22158 (commit (string-append "v" version))))
22159 (file-name (git-file-name name version))
22160 (sha256
22161 (base32 "06bi68x49v6f7flpz279mm4jpg31ll3s274givm3pvr8slcxs6xg"))))
22162 (build-system emacs-build-system)
22163 (propagated-inputs
22164 `(("emacs-pkg-info" ,emacs-pkg-info)))
22165 (home-page
22166 "https://github.com/elixir-editors/emacs-elixir")
22167 (synopsis "Major mode for editing Elixir files")
22168 (description
22169 "Elixir-Mode provides font-locking, indentation and navigation support
22170 for the Elixir programming language.")
22171 (license license:gpl3+)))
22172
22173 (define-public emacs-dimmer
22174 (package
22175 (name "emacs-dimmer")
22176 (version "0.3.0")
22177 (source
22178 (origin
22179 (method git-fetch)
22180 (uri (git-reference
22181 (url "https://github.com/gonewest818/dimmer.el")
22182 (commit version)))
22183 (file-name (git-file-name name version))
22184 (sha256
22185 (base32 "1jv9rrv15nb5hpwcaqlpjj932gyisrkwbv11czkg3v0bn7qn6yif"))))
22186 (build-system emacs-build-system)
22187 (home-page "https://github.com/gonewest818/dimmer.el")
22188 (synopsis "Visually highlights the selected buffer in Emacs")
22189 (description "Dimmer provides a minor mode that indicates which buffer is
22190 currently active by dimming the faces in the other buffers. It does this
22191 nondestructively, and computes the dimmed faces dynamically such that your
22192 overall color scheme is shown in a muted form without requiring you to define
22193 what is a \"dim\" version of every face.")
22194 (license license:gpl3+)))
22195
22196 (define-public emacs-minibuffer-line
22197 (package
22198 (name "emacs-minibuffer-line")
22199 (version "0.1")
22200 (source
22201 (origin
22202 (method url-fetch)
22203 (uri (string-append
22204 "https://elpa.gnu.org/packages/minibuffer-line-"
22205 version
22206 ".el"))
22207 (sha256
22208 (base32 "1ny4iirp26na5118wfgxlv6fxlrdclzdbd9m0lkrv51w0qw7spil"))))
22209 (build-system emacs-build-system)
22210 (home-page "https://elpa.gnu.org/packages/minibuffer-line.html")
22211 (synopsis "Display status info in the minibuffer window")
22212 (description
22213 "This package lets you display various status information in the
22214 minibuffer window instead of the mode-line. Of course, this is only displayed
22215 when the minibuffer window is not already used for other things (e.g. a
22216 minibuffer or an each area message).
22217
22218 The contents and aspect is controlled by the @code{minibuffer-line-format}
22219 variable and the @code{minibuffer-line} face.")
22220 (license license:gpl3+)))
22221
22222 (define-public emacs-eshell-prompt-extras
22223 (package
22224 (name "emacs-eshell-prompt-extras")
22225 (version "1.0")
22226 (home-page "https://github.com/zwild/eshell-prompt-extras")
22227 (source
22228 (origin
22229 (method git-fetch)
22230 (uri (git-reference
22231 (url home-page)
22232 (commit version)))
22233 (file-name (git-file-name name version))
22234 (sha256
22235 (base32
22236 "0gb07mns23dgqqr6qfy7d6ndizy15sqgbgfaig6k5xbjnwi02v9g"))))
22237 (build-system emacs-build-system)
22238 (synopsis "Display extra information and color for your Eshell prompt")
22239 (description "This library displays various customizable elements for
22240 @code{eshell} prompts: remote user, remote host, python virtual environment
22241 info, git branch, git dirty info and git unpushed number. Multiple themes are
22242 available.")
22243 (license license:gpl3+)))
22244
22245 (define-public emacs-eshell-did-you-mean
22246 (package
22247 (name "emacs-eshell-did-you-mean")
22248 (version "0.1")
22249 (home-page "https://github.com/xuchunyang/eshell-did-you-mean")
22250 (source
22251 (origin
22252 (method git-fetch)
22253 (uri (git-reference
22254 (url home-page)
22255 (commit (string-append "v" version))))
22256 (file-name (git-file-name name version))
22257 (sha256
22258 (base32
22259 "0v0wshck5n4hspcv1zk1g2nm6xiigcjp16lx0dc8wzkl6ymljvbg"))))
22260 (build-system emacs-build-system)
22261 (synopsis "Display suggestions on 'command not found' in Eshell")
22262 (description "This library adds a list of 'Did you mean...' suggestions
22263 when the command was not found in Eshell. The suggestions are found after the
22264 commands that bear resemblance to the input command.")
22265 (license license:gpl3+)))
22266
22267 (define-public emacs-unfill
22268 (package
22269 (name "emacs-unfill")
22270 (version "0.2")
22271 (home-page "https://github.com/purcell/unfill")
22272 (source
22273 (origin
22274 (method git-fetch)
22275 (uri (git-reference
22276 (url home-page)
22277 (commit version)))
22278 (file-name (git-file-name name version))
22279 (sha256
22280 (base32 "0wyradin5igp25nsd3n22i2ppxhmy49ac1iq1w2715v8pfmiydnc"))))
22281 (build-system emacs-build-system)
22282 (synopsis "Inverse of Emacs' @code{fill-paragraph} and @code{fill-region}")
22283 (description
22284 "The functions in this package provide the inverse of Emacs'
22285 @code{fill-paragraph} and @code{fill-region}.")
22286 (license license:gpl3+)))
22287
22288 (define-public emacs-windower
22289 (package
22290 (name "emacs-windower")
22291 (version "0.0.1")
22292 (home-page "https://gitlab.com/ambrevar/emacs-windower")
22293 (source
22294 (origin
22295 (method git-fetch)
22296 (uri (git-reference
22297 (url home-page)
22298 (commit version)))
22299 (file-name (git-file-name name version))
22300 (sha256
22301 (base32 "0h24gb1ip0czfasxm8wwcc3v19g7mznzw2sxkmmfb5iis59p7dfy"))))
22302 (build-system emacs-build-system)
22303 (synopsis "Helper functions for window manipulation in Emacs")
22304 (description
22305 "This package provides helper functions for window manipulation in Emacs,
22306 such as:
22307
22308 @itemize
22309 @item switch to last buffer,
22310 @item toggle single window display,
22311 @item toggle between horizontal and vertical splits,
22312 @item move borders more naturally,
22313 @item swap windows à-la @code{windmove}.
22314 @end itemize")
22315 (license license:gpl3+)))
22316
22317 (define-public emacs-flycheck-cpplint
22318 (let ((commit "1d8a090861572258ab704915263feeb3a436c3d2")
22319 (revision "1"))
22320 (package
22321 (name "emacs-flycheck-cpplint")
22322 (version (git-version "0.1" revision commit))
22323 (source
22324 (origin
22325 (method git-fetch)
22326 (uri (git-reference
22327 (url "https://github.com/flycheck/flycheck-google-cpplint")
22328 (commit commit)))
22329 (file-name (git-file-name name version))
22330 (sha256
22331 (base32 "0l6sg83f6z8x2alnblpv03rj442sbnkkkcbf8i0agjmx3713a5yx"))))
22332 (build-system emacs-build-system)
22333 (arguments
22334 `(#:phases
22335 (modify-phases %standard-phases
22336 (add-after 'unpack 'set-cpplint-path
22337 (lambda _
22338 (substitute* "flycheck-google-cpplint.el"
22339 (("\"cpplint.py\"")
22340 (string-append "\"" (which "cpplint") "\"")))
22341 #t)))))
22342 (inputs
22343 `(("cpplint" ,cpplint)))
22344 (propagated-inputs
22345 `(("flycheck-mode" ,emacs-flycheck)))
22346 (synopsis "Google C++ checker for Flycheck")
22347 (description "This package provides a interface for @code{cpplint} over
22348 Flycheck plugin. @code{cpplint} is a static code checker for C++, following
22349 Google guidelines.")
22350 (home-page "https://github.com/flycheck/flycheck-google-cpplint")
22351 (license license:gpl3+))))
22352
22353 (define-public emacs-helm-fish-completion
22354 (package
22355 (name "emacs-helm-fish-completion")
22356 (version "0.5")
22357 (home-page "https://github.com/emacs-helm/helm-fish-completion")
22358 (source
22359 (origin
22360 (method git-fetch)
22361 (uri (git-reference
22362 (url home-page)
22363 (commit version)))
22364 (file-name (git-file-name name version))
22365 (sha256
22366 (base32 "0hpsm39kx8vpz2zmarjrkvy1capkk5lwpsmdg2xnklsck6xsn922"))))
22367 (build-system emacs-build-system)
22368 (propagated-inputs
22369 `(("helm" ,emacs-helm)
22370 ("fish-completion" ,emacs-fish-completion)))
22371 (synopsis "Helm interface for Emacs fish-completion")
22372 (description "Helm Fish Completion is a Helm interface for Emacs
22373 fish-completion. It can be used in both Eshell and M-x shell.")
22374 (license license:gpl3+)))
22375
22376 (define-public emacs-telega
22377 ;; This package has versions newer than indicated on MELPA.
22378 ;; Get the current version from `telega-version` in telega.el.
22379 ;; or by running M-x telega-version.
22380 (let ((commit "e53996777570a5bed84d21f6c8defd4f51c8e255")
22381 (revision "0")
22382 (version "0.6.28"))
22383 (package
22384 (name "emacs-telega")
22385 (version (git-version version revision commit))
22386 (source
22387 (origin
22388 (method git-fetch)
22389 (uri (git-reference
22390 (url "https://github.com/zevlg/telega.el")
22391 (commit commit)))
22392 (sha256
22393 (base32
22394 "058x6svgy33lyqjqq0l3byv8bysqig9jmh3kx8shaqr0ypfrjhi3"))
22395 (patches (search-patches
22396 "emacs-telega-patch-server-functions.patch"
22397 "emacs-telega-test-env.patch"))
22398 (file-name (git-file-name name version))))
22399 (build-system gnu-build-system)
22400 (arguments
22401 `(#:modules ((guix build gnu-build-system)
22402 ((guix build emacs-build-system) #:prefix emacs:)
22403 (guix build utils)
22404 (guix build emacs-utils))
22405 #:imported-modules (,@%gnu-build-system-modules
22406 (guix build emacs-build-system)
22407 (guix build emacs-utils))
22408 #:test-target "test"
22409 ;; TODO: Currently tgVOIP is not functional, thus we have disabled it
22410 ;; temporarily. This functionality when enabled causes an erroneous
22411 ;; linkage with libtgvoip.so and libopus.so (FFMPEG) against the
22412 ;; system libraries on "foreign" distros. When tgVOIP becomes functional
22413 ;; this needs to be investigated to prevent a linkage issue.
22414 ;; Re-add libtgvoip to native-inputs at that time.
22415 ;; #:make-flags (list "WITH_VOIP=t")
22416 #:phases
22417 (modify-phases %standard-phases
22418 (add-after 'unpack 'prefix-patch
22419 (lambda _
22420 (substitute* "server/Makefile"
22421 (("CC=cc")
22422 "CC=gcc")
22423 (("INSTALL_PREFIX=\\$\\(HOME\\)/.telega")
22424 (string-append "INSTALL_PREFIX=" (assoc-ref %outputs "out")
22425 "/bin"))
22426 ;; Manually invoke `run_tests.py` after install phase.
22427 (("python3 run_tests.py")
22428 ""))
22429 #t))
22430 (add-after 'check 'telega-paths-patch
22431 (lambda* (#:key inputs #:allow-other-keys)
22432 ;; Hard-code paths to `ffplay` and `ffmpeg`.
22433 (let ((ffplay-bin (string-append (assoc-ref inputs "ffmpeg")
22434 "/bin/ffplay"))
22435 (ffmpeg-bin (string-append (assoc-ref inputs "ffmpeg")
22436 "/bin/ffmpeg")))
22437 (substitute* "telega-ffplay.el"
22438 (("\\(executable-find \"ffplay\"\\)")
22439 (string-append
22440 "(and (file-executable-p \"" ffplay-bin "\")"
22441 "\"" ffplay-bin "\")"))
22442 (("\\(executable-find \"ffmpeg\"\\)")
22443 (string-append
22444 "(and (file-executable-p \"" ffmpeg-bin "\")"
22445 "\"" ffmpeg-bin "\")"))))
22446 ;; Modify telega-util to reflect unique dir name in
22447 ;; `telega-install-data' phase.
22448 (substitute* "telega-util.el"
22449 (("\\(concat \"etc/\" filename\\) telega--lib-directory")
22450 "(concat \"telega-data/\" filename)
22451 (locate-dominating-file telega--lib-directory
22452 \"telega-data\")"))
22453 ;; Modify telega.el to reflect unique dir name in
22454 ;; `telega-install-contrib' phase.
22455 (substitute* "telega.el"
22456 (("\\(push \\(expand-file-name \"contrib\" telega--lib-directory\\) load-path\\)")
22457 "(push (expand-file-name \"telega-contrib\"
22458 (locate-dominating-file telega--lib-directory
22459 \"telega-contrib\")) load-path)"))
22460 #t))
22461 ;; The server test suite has a hardcoded path.
22462 ;; Reset this behavior to use the proper path.
22463 (add-after 'unpack 'server-suite-patch
22464 (lambda _
22465 (substitute* "server/run_tests.py"
22466 (("~/.telega/telega-server")
22467 (string-append (assoc-ref %outputs "out")
22468 "/bin/telega-server")))
22469 #t))
22470 (add-after 'install 'run-server-suite
22471 (lambda _
22472 (invoke "python3" "server/run_tests.py")
22473 #t))
22474 (delete 'configure)
22475 ;; Build emacs-side using `emacs-build-system'
22476 (add-after 'compress-documentation 'emacs-add-source-to-load-path
22477 (assoc-ref emacs:%standard-phases 'add-source-to-load-path))
22478 ;; Manually invoke bytecompilation for the contrib
22479 ;; subdirectory.
22480 (add-after 'emacs-add-source-to-load-path 'emacs-bytecomp-contrib
22481 (lambda _
22482 (substitute* "Makefile"
22483 (("byte-recompile-directory \".\"")
22484 "byte-recompile-directory \"contrib\""))
22485 (invoke "make" "compile")
22486 #t))
22487 (add-after 'emacs-bytecomp-contrib 'emacs-install
22488 (assoc-ref emacs:%standard-phases 'install))
22489 ;; This step installs subdir /etc, which contains images, sounds and
22490 ;; various other data, next to the site-lisp dir.
22491 (add-after 'emacs-install 'telega-install-data
22492 (lambda* (#:key outputs #:allow-other-keys)
22493 (copy-recursively
22494 "etc"
22495 (string-append (assoc-ref outputs "out")
22496 "/share/emacs/telega-data/"))
22497 #t))
22498 (add-after 'emacs-install 'telega-install-contrib
22499 (lambda* (#:key outputs #:allow-other-keys)
22500 (copy-recursively
22501 "contrib"
22502 (string-append (assoc-ref outputs "out")
22503 "/share/emacs/telega-contrib"))
22504 #t))
22505 (add-after 'telega-install-contrib 'emacs-build
22506 (assoc-ref emacs:%standard-phases 'build))
22507 (add-after 'telega-install-contrib 'emacs-make-autoloads
22508 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
22509 (inputs
22510 `(("ffmpeg" ,ffmpeg))) ; mp4/gif support.
22511 (propagated-inputs
22512 `(("emacs-visual-fill-column" ,emacs-visual-fill-column)
22513 ("emacs-company" ,emacs-company)
22514 ("emacs-rainbow-identifiers"
22515 ,emacs-rainbow-identifiers)
22516 ("libwebp" ,libwebp))) ; sticker support.
22517 (native-inputs
22518 `(("tdlib" ,tdlib)
22519 ;; Use Emacs with wide ints on 32-bit architectures.
22520 ("emacs" ,(match (%current-system)
22521 ((or "i686-linux" "armhf-linux")
22522 emacs-wide-int)
22523 (_
22524 emacs)))
22525 ("python" ,python)))
22526 (synopsis "GNU Emacs client for the Telegram messenger")
22527 (description
22528 "Telega is a full-featured, unofficial GNU Emacs-based client for the
22529 Telegram messaging platform.")
22530 (home-page "https://github.com/zevlg/telega.el")
22531 (license license:gpl3+))))
22532
22533 (define-public emacs-doom-modeline
22534 (package
22535 (name "emacs-doom-modeline")
22536 (version "2.8.2")
22537 (source (origin
22538 (method git-fetch)
22539 (uri (git-reference
22540 (url "https://github.com/seagle0128/doom-modeline")
22541 (commit (string-append "v" version))))
22542 (sha256
22543 (base32
22544 "11srz1mr821axggs2jcmdhihxx09a2dniqv3n039wbdfaimfaidz"))
22545 (file-name (git-file-name name version))))
22546 (build-system emacs-build-system)
22547 (arguments
22548 `(#:test-command '("ert-runner")))
22549 (native-inputs `(("emacs-ert-runner" ,emacs-ert-runner)))
22550 (propagated-inputs
22551 `(("emacs-all-the-icons" ,emacs-all-the-icons)
22552 ("emacs-shrink-path" ,emacs-shrink-path)))
22553 (synopsis "Fancy and fast mode-line inspired by minimalism design")
22554 (description "Doom modeline is a complete modeline for GNU Emacs inspired
22555 by the Doom theme collection. This modeline features support for mode-specific
22556 icon support, git integration, and several other utilities.")
22557 (home-page "https://github.com/seagle0128/doom-modeline/")
22558 (license license:gpl3+)))
22559
22560 (define-public emacs-shrink-path
22561 (package
22562 (name "emacs-shrink-path")
22563 (version "0.3.1")
22564 (source
22565 (origin
22566 (method git-fetch)
22567 (uri (git-reference
22568 (url "https://gitlab.com/bennya/shrink-path.el.git")
22569 (commit (string-append "v" version))))
22570 (sha256
22571 (base32
22572 "0kx0c4syd7k6ff9j463bib32pz4wq0rzjlg6b0yqnymlzfr1mbki"))
22573 (file-name (git-file-name name version))))
22574 (build-system emacs-build-system)
22575 (propagated-inputs
22576 `(("emacs-s" ,emacs-s)
22577 ("emacs-dash" ,emacs-dash)
22578 ("emacs-f" ,emacs-f)))
22579 (home-page "https://gitlab.com/bennya/shrink-path.el")
22580 (synopsis "Fish-style path truncation in emacs-lisp")
22581 (description "This package provides utility functions that allow for
22582 Fish-style truncated directories in eshell and various modelines.")
22583 (license license:gpl3+)))
22584
22585 (define-public emacs-org-present
22586 (let ((commit "d13acd70eff6a1608bc991920232146a0de76b21"))
22587 (package
22588 (name "emacs-org-present")
22589 (version "0.0.1")
22590 (source
22591 (origin
22592 (method git-fetch)
22593 (uri (git-reference
22594 (url "https://github.com/rlister/org-present")
22595 (commit commit)))
22596 (file-name (git-file-name name version))
22597 (sha256
22598 (base32
22599 "0jz8xiny3rv9ql0p623byz32pip1b82j2c2nyfz2wd114kiabb6q"))))
22600 (build-system emacs-build-system)
22601 (synopsis "Ultra-minimalist presentation minor-mode for Emacs org-mode")
22602 (description "Org-present is an extremely minimalist presentation tool
22603 for Emacs org-mode. Simply layout your presentation with each slide under a
22604 top-level header, start the minor mode with @code{org-present}, and page through
22605 each slide with left/right keys.")
22606 (home-page "https://github.com/rlister/org-present")
22607 (license license:gpl2))))
22608
22609 (define-public emacs-fullframe
22610 (package
22611 (name "emacs-fullframe")
22612 (version "0.5.0")
22613 (source
22614 (origin
22615 (method git-fetch)
22616 (uri (git-reference
22617 (url "https://github.com/tomterl/fullframe")
22618 (commit version)))
22619 (sha256
22620 (base32
22621 "0m43qnhp6ibsskpjkxc86p3lrjsjc0ndqml3lbd65s79x4x7i3fi"))
22622 (file-name (git-file-name name version))))
22623 (build-system emacs-build-system)
22624 (home-page "https://github.com/tomterl/fullframe")
22625 (synopsis "Generalized automatic execution in a single frame")
22626 (description "This library provides helpers for single-window-per-frame
22627 execution of buffer-exposing commands.")
22628 (license license:gpl3+)))
22629
22630 (define-public emacs-eshell-toggle
22631 (let ((commit "ddfbe0a693497c4d4bc5494a19970ba4f6ab9033")
22632 (revision "1"))
22633 (package
22634 (name "emacs-eshell-toggle")
22635 (version (git-version "0.10.0" revision commit))
22636 (source
22637 (origin
22638 (method git-fetch)
22639 (uri (git-reference
22640 (url "https://github.com/4DA/eshell-toggle")
22641 (commit commit)))
22642 (sha256
22643 (base32
22644 "0xqrp8pwbmfxjdqipgpw5nw633mvhjjjm3k3j9sh9xdpmw05hhws"))
22645 (file-name (git-file-name name version))))
22646 (build-system emacs-build-system)
22647 (propagated-inputs
22648 `(("emacs-dash" ,emacs-dash)))
22649 (home-page "https://github.com/4DA/eshell-toggle")
22650 (synopsis "Show and hide an @code{eshell} instance")
22651 (description "This package toggles an @code{eshell} instance for the
22652 current buffer.")
22653 (license license:gpl3+))))
22654
22655 (define-public emacs-repl-toggle
22656 (package
22657 (name "emacs-repl-toggle")
22658 (version "0.6.1")
22659 (source
22660 (origin
22661 (method git-fetch)
22662 (uri (git-reference
22663 (url "https://github.com/tomterl/repl-toggle")
22664 (commit version)))
22665 (sha256
22666 (base32
22667 "12h3xxja3isnhvrqx7m2g7a5d8h68cc85pbqyhiipfxyafyl1yxd"))
22668 (file-name (git-file-name name version))))
22669 (build-system emacs-build-system)
22670 (propagated-inputs
22671 `(("emacs-fullframe" ,emacs-fullframe)))
22672 (home-page "https://github.com/tomterl/repl-toggle")
22673 (synopsis "Switch to and from current major mode's REPL")
22674 (description "This package provides a function to switch to and from a
22675 REPL appropriate to the current major mode.")
22676 (license license:gpl3+)))
22677
22678 (define-public emacs-rime
22679 (package
22680 (name "emacs-rime")
22681 (version "1.0.3")
22682 (source
22683 (origin
22684 (method git-fetch)
22685 (uri (git-reference
22686 (url "https://github.com/DogLooksGood/emacs-rime")
22687 (commit (string-append "v" version))))
22688 (file-name (git-file-name name version))
22689 (sha256
22690 (base32 "08rzkiqwcl8j3i2yyibll5lcsj8720plzm9zfdgmxgkw7vhcyix5"))))
22691 (build-system emacs-build-system)
22692 (arguments
22693 '(#:phases
22694 (modify-phases %standard-phases
22695 (add-after 'unpack 'patch-rime-data-path
22696 (lambda* (#:key inputs #:allow-other-keys)
22697 (make-file-writable "rime.el")
22698 (emacs-substitute-variables "rime.el"
22699 ("rime-share-data-dir"
22700 (string-append (assoc-ref inputs "rime-data")
22701 "/share/rime-data")))
22702 #t))
22703 (add-before 'install 'build-emacs-module
22704 (lambda _
22705 (invoke "make" "lib")))
22706 (add-after 'install 'install-emacs-module
22707 (lambda* (#:key outputs #:allow-other-keys)
22708 (install-file "librime-emacs.so"
22709 (string-append (assoc-ref outputs "out")
22710 "/share/emacs/site-lisp"))
22711 #t)))))
22712 (inputs
22713 `(("librime" ,librime)
22714 ("rime-data" ,rime-data)))
22715 (propagated-inputs
22716 `(("emacs-dash" ,emacs-dash)
22717 ("emacs-popup" ,emacs-popup)
22718 ("emacs-posframe" ,emacs-posframe)))
22719 (home-page "https://github.com/DogLooksGood/emacs-rime")
22720 (synopsis "Rime input method in Emacs")
22721 (description
22722 "Rime is an Emacs input method built upon Rime input method engine.")
22723 (license license:gpl3+)))
22724
22725 (define-public emacs-blackout
22726 (let ((commit "4bac44671fca4c98d96aa94c79946bf4d4baf0ee")
22727 (revision "1"))
22728 (package
22729 (name "emacs-blackout")
22730 (version (git-version "1.0" revision commit))
22731 (source
22732 (origin
22733 (method git-fetch)
22734 (uri (git-reference
22735 (url "https://github.com/raxod502/blackout")
22736 (commit commit)))
22737 (sha256
22738 (base32
22739 "1wnh0nwy6r3a18sy9sqmrwv04vnmaflxy4g7mq8jiyyjijri7l1b"))
22740 (file-name (git-file-name name version))))
22741 (build-system emacs-build-system)
22742 (home-page "https://github.com/raxod502/blackout")
22743 (synopsis "Clean up mode lighters")
22744 (description "This package provides a function for hiding and customizing
22745 display of major and minor modes in the mode line.")
22746 (license license:gpl3+))))
22747
22748 (define-public emacs-ivy-omni-org
22749 (let ((commit "5460a9fc061a4a5ae8372dc8df966ced94abab58")
22750 (revision "1"))
22751 (package
22752 (name "emacs-ivy-omni-org")
22753 (version (git-version "0.2.1" revision commit))
22754 (source
22755 (origin
22756 (method git-fetch)
22757 (uri (git-reference
22758 (url "https://github.com/akirak/ivy-omni-org")
22759 (commit commit)))
22760 (file-name (git-file-name name version))
22761 (sha256
22762 (base32
22763 "1np1f51hc3phkl5w02a9a79gl38ra2d535i784fn4pqaasvm0rq8"))))
22764 (build-system emacs-build-system)
22765 (propagated-inputs
22766 `(("emacs-ivy" ,emacs-ivy)
22767 ("emacs-dash" ,emacs-dash)))
22768 (synopsis "Browse anything in Org mode")
22769 (description "This package allows Org items to be accessed via the Ivy
22770 interface.")
22771 (home-page "https://github.com/akirak/ivy-omni-org")
22772 (license license:gpl3+))))
22773
22774 (define-public emacs-ivy-posframe
22775 (let ((commit "ae9bafe94fe6b77b6fe45766ae6172646f6a5d50"))
22776 (package
22777 (name "emacs-ivy-posframe")
22778 (version (git-version "0.1.0" "1" commit))
22779 (source
22780 (origin
22781 (method git-fetch)
22782 (uri (git-reference
22783 (url "https://github.com/tumashu/ivy-posframe")
22784 (commit commit)))
22785 (file-name (git-file-name name version))
22786 (sha256
22787 (base32
22788 "1j6yns5d7lh2v1nfcznrirl7qicdli9csciqvfgj4gkh72a97pw1"))))
22789 (build-system emacs-build-system)
22790 (propagated-inputs
22791 `(("emacs-posframe" ,emacs-posframe)
22792 ("emacs-ivy" ,emacs-ivy)))
22793 (home-page "https://github.com/tumashu/ivy-posframe")
22794 (synopsis "Pop a posframe (a child frame) to show Ivy candidates")
22795 (description
22796 "This package provides an Emacs Ivy extension, which let Ivy use
22797 posframe to show its candidate menu.")
22798 (license license:gpl3+))))
22799
22800 (define-public emacs-shackle
22801 (let ((commit "7ccbe513852a1d1700b698547efca14b8940319d")
22802 (revision "1"))
22803 (package
22804 (name "emacs-shackle")
22805 (version (git-version "1.0.3" revision commit))
22806 (source
22807 (origin
22808 (method git-fetch)
22809 (uri (git-reference
22810 (url "https://github.com/wasamasa/shackle")
22811 (commit commit)))
22812 (file-name (git-file-name name version))
22813 (sha256
22814 (base32
22815 "0agsp8ia4irr540r898ifhjqp28n1zsq1pilv1kc272spn3qhvp9"))))
22816 (build-system emacs-build-system)
22817 (synopsis "Enforce rules for popups")
22818 (description "This package provides a global minor mode in which users
22819 can specify how popup-displaying functions occupy the screen.")
22820 (home-page "https://github.com/wasamasa/shackle")
22821 (license license:gpl3+))))
22822
22823 (define-public emacs-helm-lacarte
22824 (let ((commit "40a6c449720be521435b6b1da7911af3a0b9dca0")
22825 (revision "1"))
22826 (package
22827 (name "emacs-helm-lacarte")
22828 (version (git-version "0" revision commit))
22829 (source
22830 (origin
22831 (method git-fetch)
22832 (uri (git-reference
22833 (url "https://github.com/emacs-helm/helm-lacarte")
22834 (commit commit)))
22835 (file-name (git-file-name name version))
22836 (sha256
22837 (base32
22838 "0dkfd3lap2v7b4nckzv8v7hczmzwzhbl75haqkra107ln91ldbwc"))))
22839 (build-system emacs-build-system)
22840 (propagated-inputs
22841 `(("emacs-helm" ,emacs-helm)
22842 ("emacs-lacarte" ,emacs-lacarte)))
22843 (synopsis "Helm interface to @code{lacarte.el}")
22844 (description "This package provides a Helm interface to
22845 @code{lacarte.el}, a package that displays mode-specific commands as menu
22846 items.")
22847 (home-page "https://github.com/emacs-helm/helm-lacarte")
22848 (license license:gpl3+))))
22849
22850 (define-public emacs-esh-help
22851 (let ((commit "417673ed18a983930a66a6692dbfb288a995cb80")
22852 (revision "1"))
22853 (package
22854 (name "emacs-esh-help")
22855 (version (git-version "1.0.1" revision commit))
22856 (source
22857 (origin
22858 (method git-fetch)
22859 (uri (git-reference
22860 (url "https://github.com/tom-tan/esh-help")
22861 (commit commit)))
22862 (file-name (git-file-name name version))
22863 (sha256
22864 (base32
22865 "0x7d51a6ljl014zy7mi27vzcqqbcwg9z4drq29fr2ajk82mqhlgd"))))
22866 (build-system emacs-build-system)
22867 (propagated-inputs
22868 `(("emacs-dash" ,emacs-dash)))
22869 (synopsis "Help functions for Eshell")
22870 (description "This package provides a @code{run-help} function inspired
22871 by @code{zsh} as well as @code{eldoc} support.")
22872 (home-page "https://github.com/tom-tan/esh-help")
22873 (license license:gpl3+))))
22874
22875 (define-public emacs-isearch-dabbrev
22876 (let ((commit "1efe7abba4923015cbc2462395deaec5446a9cc8")
22877 (revision "1"))
22878 (package
22879 (name "emacs-isearch-dabbrev")
22880 (version (git-version "0.1" revision commit))
22881 (source
22882 (origin
22883 (method git-fetch)
22884 (uri (git-reference
22885 (url "https://github.com/Dewdrops/isearch-dabbrev")
22886 (commit commit)))
22887 (file-name (git-file-name name version))
22888 (sha256
22889 (base32
22890 "17d0816awadvsw1qc7r0p6ira75jmgxaj9hsk9ypayxsaf6ynyrb"))))
22891 (build-system emacs-build-system)
22892 (synopsis "Use @code{dabbrev} within @code{isearch}")
22893 (description "This package allows @code{dabbrev-expand} to be used
22894 within @code{isearch-mode}.")
22895 (home-page "https://github.com/Dewdrops/isearch-dabbrev")
22896 (license license:gpl3+))))
22897
22898 (define-public emacs-helm-linux-disks
22899 (let ((commit "2cdc8116a08534289eb0dc76461d0f93a0bdf231")
22900 (revision "1"))
22901 (package
22902 (name "emacs-helm-linux-disks")
22903 (version (git-version "0.1" revision commit))
22904 (source
22905 (origin
22906 (method git-fetch)
22907 (uri (git-reference
22908 (url "https://github.com/Akirak/helm-linux-disks")
22909 (commit commit)))
22910 (file-name (git-file-name name version))
22911 (sha256
22912 (base32
22913 "1limw82zd8jz3mhh9rqlmhj4cjhfgybs9argfjid1an3vpyhc85i"))))
22914 (build-system emacs-build-system)
22915 (propagated-inputs
22916 `(("emacs-helm" ,emacs-helm)))
22917 (synopsis "Mount/unmount volumes in Linux via Helm")
22918 (description "This package provides a Helm interface to run operations
22919 on removable volumes in Linux.")
22920 (home-page "https://github.com/Akirak/helm-linux-disks")
22921 (license license:gpl3+))))
22922
22923 (define-public emacs-psession
22924 (let ((commit "3e97267c92b164584e06a6c70ee7491714c7c12c")
22925 (revision "1"))
22926 (package
22927 (name "emacs-psession")
22928 (version (git-version "1.5" revision commit))
22929 (source
22930 (origin
22931 (method git-fetch)
22932 (uri (git-reference
22933 (url "https://github.com/thierryvolpiatto/psession")
22934 (commit commit)))
22935 (file-name (git-file-name name version))
22936 (sha256
22937 (base32
22938 "15frl618393bc891d0yi3mdxzvbq790a86vfvp3dyd5riz4ddg95"))))
22939 (build-system emacs-build-system)
22940 (propagated-inputs
22941 `(("emacs-async" ,emacs-async)))
22942 (synopsis "Persistent save of @code{elisp} objects.")
22943 (description "This package provides minor modes for saving Emacs session
22944 data, including buffers, window configuration, variables, and more.")
22945 (home-page "https://github.com/thierryvolpiatto/psession")
22946 (license license:gpl3+))))
22947
22948 (define-public emacs-parseedn
22949 (package
22950 (name "emacs-parseedn")
22951 (version "0.1.0")
22952 (source
22953 (origin
22954 (method git-fetch)
22955 (uri (git-reference
22956 (url "https://github.com/clojure-emacs/parseedn")
22957 (commit (string-append "v" version))))
22958 (file-name (git-file-name name version))
22959 (sha256
22960 (base32
22961 "11wi3hwcgmy54p6ivpijqm7v0hj6j75a19qk5z779bqfrp79b4pc"))))
22962 (build-system emacs-build-system)
22963 (propagated-inputs
22964 `(("emacs-a" ,emacs-a)
22965 ("emacs-parseclj" ,emacs-parseclj)))
22966 (home-page "https://cider.mx")
22967 (synopsis "EDN parser for Emacs Lisp")
22968 (description
22969 "An Emacs Lisp library for parsing EDN (Clojure) data.
22970 It uses parseclj's shift-reduce parser internally.")
22971 (license license:gpl3+)))
22972
22973 (define-public emacs-parseclj
22974 (package
22975 (name "emacs-parseclj")
22976 (version "0.1.0")
22977 (source
22978 (origin
22979 (method git-fetch)
22980 (uri (git-reference
22981 (url "https://github.com/clojure-emacs/parseclj")
22982 (commit (string-append "v" version))))
22983 (file-name (git-file-name name version))
22984 (sha256
22985 (base32
22986 "03bm5dm4hmkqimv4wqxjjh5814pxysmm7z54bv2rf7zwv1x7dggr"))))
22987 (build-system emacs-build-system)
22988 (propagated-inputs `(("emacs-a" ,emacs-a)))
22989 (home-page "https://cider.mx")
22990 (synopsis "Clojure parser for Emacs Lisp")
22991 (description
22992 "An Emacs Lisp library for parsing Clojure code and EDN data.
22993 It supports several input and output formats, all powered by the
22994 same shift-reduce parser function.")
22995 (license license:gpl3+)))
22996
22997 (define-public emacs-hide-mode-line
22998 (package
22999 (name "emacs-hide-mode-line")
23000 (version "1.0.2")
23001 (source (origin
23002 (method git-fetch)
23003 (uri (git-reference
23004 (url "https://github.com/hlissner/emacs-hide-mode-line")
23005 (commit (string-append "v" version))))
23006 (file-name (git-file-name name version))
23007 (sha256
23008 (base32
23009 "0dfzjgxfkcw4wisbyldsm1km18pfp9j8xgadn6qnsz11l55bpgyp"))))
23010 (build-system emacs-build-system)
23011 (synopsis "Emacs plugin that hides the mode-line")
23012 (description "A minor mode that hides the mode-line in your current
23013 buffer. It can be used to toggle an alternative mode-line, toggle its visibility,
23014 or simply disable the mode-line in buffers where it is not very useful.")
23015 (home-page "https://github.com/hlissner/emacs-hide-mode-line")
23016 (license license:expat)))
23017
23018 (define-public emacs-helm-cider
23019 ;; No new release since March 2018.
23020 (let ((commit "9363cc537f06233345aa3af5cd46aa5681ad607b"))
23021 (package
23022 (name "emacs-helm-cider")
23023 (version (git-version "0.4.0" "1" commit))
23024 (home-page "https://github.com/clojure-emacs/helm-cider")
23025 (source (origin
23026 (method git-fetch)
23027 (uri (git-reference
23028 (url home-page)
23029 (commit commit)))
23030 (file-name (git-file-name name version))
23031 (sha256
23032 (base32
23033 "0vfn4smqba1vsshz48ggkj8gs94la0sxb1sq4shrb41qj2x3dci7"))))
23034 (build-system emacs-build-system)
23035 (propagated-inputs
23036 `(("emacs-helm" ,emacs-helm)
23037 ("emacs-cider" ,emacs-cider)))
23038 (synopsis "Helm interface to Clojure's CIDER")
23039 (description "Helm-CIDER adds Helm interfaces to
23040 @command{cider-apropos}, @command{cider-apropos-documentation},
23041 @command{cider-browse-ns} (namespaces).
23042
23043 It also provides original Helm commands: @command{helm-cider-spec},
23044 @command{helm-cider-spec-ns}, @command{helm-cider-repl-history},
23045 @command{helm-cider-cheatsheet}.")
23046 (license license:gpl3+))))
23047
23048 (define-public emacs-edn
23049 ;; No release since February 2016
23050 (let ((commit "be9e32d1b49e35247b263b0243df7cfdc8d413ab"))
23051 (package
23052 (name "emacs-edn")
23053 (version (git-version "1.1.2" "1" commit))
23054 (home-page "https://github.com/expez/edn.el")
23055 (source (origin
23056 (method git-fetch)
23057 (uri (git-reference
23058 (url home-page)
23059 (commit commit)))
23060 (file-name (git-file-name name version))
23061 (sha256
23062 (base32
23063 "1xp2hjhn52k6l1g6ypva6dsklpawni7gvjafbz6404f9dyxflh7l"))))
23064 (build-system emacs-build-system)
23065 (propagated-inputs
23066 `(("emacs-peg" ,emacs-peg)))
23067 (synopsis "Read and write EDN from Elisp")
23068 (description "This is an Emacs Lisp library for reading and writing the
23069 data format @code{edn}. See @url{https://github.com/edn-format/edn}.")
23070 (license license:gpl3+))))
23071
23072 (define-public emacs-helm-clojuredocs
23073 (let ((commit "5a7f0f2cb401be0b09e73262a1c18265ab9a3cea"))
23074 (package
23075 (name "emacs-helm-clojuredocs")
23076 (version (git-version "0.3" "1" commit))
23077 (home-page "https://github.com/mbuczko/helm-clojuredocs")
23078 (source (origin
23079 (method git-fetch)
23080 (uri (git-reference
23081 (url home-page)
23082 (commit commit)))
23083 (file-name (git-file-name name version))
23084 (sha256
23085 (base32
23086 "015b8zxh91ljhqvn6z43gy08di54xcw9skw0i7frj3d7gk984qhl"))))
23087 (build-system emacs-build-system)
23088 (propagated-inputs
23089 `(("emacs-helm" ,emacs-helm)
23090 ("emacs-edn" ,emacs-edn)))
23091 (synopsis "Search help on clojuredocs.org with Helm")
23092 (description "This package provides a Helm interface to lookup Clojure
23093 documentation on @url{https://clojuredocs.org} with Helm.
23094
23095 Two function are exposed:
23096 @itemize
23097 @item @command{helm-clojuredocs}: opens a Helm session with no initial
23098 pattern. Searching starts with minimal 3 characters entered.
23099 @item @command{helm-clojuredocs-at-point}: opens a Helm session with initial
23100 pattern guessed from thing under current cursor position.
23101 @end itemize\n")
23102 (license license:gpl3+))))
23103
23104 (define-public emacs-helm-selector
23105 (package
23106 (name "emacs-helm-selector")
23107 (version "0.2")
23108 (home-page "https://github.com/emacs-helm/helm-selector")
23109 (source
23110 (origin
23111 (method git-fetch)
23112 (uri (git-reference
23113 (url home-page)
23114 (commit version)))
23115 (file-name (git-file-name name version))
23116 (sha256
23117 (base32
23118 "1c7xhrq1mivldyq3rglpmfypbz44dcm7zrgyha6x09cfixlyfbcp"))))
23119 (build-system emacs-build-system)
23120 (propagated-inputs
23121 `(("emacs-helm" ,emacs-helm)))
23122 (synopsis "Convenient related-buffer selection for Emacs Helm")
23123 (description "Helm Selector is a collection of Helm helper functions for
23124 convenient buffer selection.
23125
23126 It is especially helpful to create Helm sessions to navigate buffers of a
23127 given mode in a “do what I mean” fashion:
23128
23129 If current buffer is not of mode X, switch to last buffer of mode X. If
23130 current buffer is of mode X, show a Helm session of all buffers in mode X. In
23131 the Helm session, it’s also possible to input an arbitrary name which will be
23132 used for the creation of a new buffer of mode X.")
23133 (license license:gpl3+)))
23134
23135 (define-public emacs-helm-wordnut
23136 (let ((commit "9681a9535a839cd5d042c302945ae595852fe7bf"))
23137 (package
23138 (name "emacs-helm-wordnut")
23139 (version (git-version "0.1" "1" commit))
23140 (home-page "https://github.com/emacs-helm/helm-wordnut")
23141 (source
23142 (origin
23143 (method git-fetch)
23144 (uri (git-reference
23145 (url home-page)
23146 (commit commit)))
23147 (file-name (git-file-name name version))
23148 (sha256
23149 (base32
23150 "0msj7nbsb363pxamxi7n2z08cp5jizkpjbwia8f5a161wjglrihs"))))
23151 (build-system emacs-build-system)
23152 (inputs
23153 `(("wordnet" ,wordnet)))
23154 (propagated-inputs
23155 `(("emacs-helm" ,emacs-helm)))
23156 (arguments
23157 `(#:phases
23158 (modify-phases %standard-phases
23159 (add-after 'unpack 'configure
23160 (lambda* (#:key inputs #:allow-other-keys)
23161 (let ((wn (assoc-ref inputs "wordnet")))
23162 ;; .el is read-only in git.
23163 (chmod "helm-wordnut.el" #o644)
23164 ;; Specify the absolute file names of the various
23165 ;; programs so that everything works out-of-the-box.
23166 (emacs-substitute-variables "helm-wordnut.el"
23167 ("helm-wordnut-prog" (string-append wn "/bin/wn"))
23168 ("helm-wordnut-wordnet-location"
23169 (string-append wn "/dict")))))))))
23170 (synopsis "Emacs Helm interface for Wordnet")
23171 (description "This package is merely a combination of two other Emacs
23172 packages: @code{helm-wordnet} and @code{wordnut}. It features word completion
23173 with Helm and displays a buffer of all the different result types available to
23174 Wordnet.")
23175 (license license:gpl3+))))
23176
23177 (define-public emacs-metal-mercury-mode
23178 (let ((commit "99e2d8fb7177cae3bfa2dec2910fc28216d5f5a8")
23179 (revision "1")
23180 (version "0.0.0"))
23181 (package
23182 (name "emacs-metal-mercury-mode")
23183 (version (git-version version revision commit))
23184 (source
23185 (origin
23186 (method git-fetch)
23187 (uri (git-reference
23188 (url "https://github.com/ahungry/metal-mercury-mode")
23189 (commit commit)))
23190 (sha256
23191 (base32
23192 "0iil5k3rgifz2vqwsy12rbv5rzyvidq4sgwazsb2hzys8xynmfn5"))
23193 (file-name (git-file-name name version))))
23194 (build-system emacs-build-system)
23195 (propagated-inputs
23196 `(("emacs-dash" ,emacs-dash)))
23197 (synopsis "Major mode for editing Mercury files")
23198 (description
23199 "Major mode for editing Mercury files. This is a rewrite of the original
23200 mercury-mode provided by Emacs as a wrapper around prolog-mode.")
23201 (home-page "https://github.com/ahungry/metal-mercury-mode")
23202 (license license:gpl3+))))
23203
23204 (define-public emacs-boxquote
23205 ;; The following commit is 2.1 release with a switch to GPL3+ license.
23206 (let ((commit "7e47e0e2853bc1215739b2e28f260e9eed93b2c5")
23207 (revision "0"))
23208 (package
23209 (name "emacs-boxquote")
23210 (version (git-version "2.1" revision commit))
23211 (source
23212 (origin
23213 (method git-fetch)
23214 (uri (git-reference
23215 (url "https://github.com/davep/boxquote.el")
23216 (commit commit)))
23217 (file-name (git-file-name name version))
23218 (sha256
23219 (base32 "1aqhg24gajvllbqxb0zxrnx6sddas37k2ldfinqyszd856sjhsg3"))))
23220 (build-system emacs-build-system)
23221 (home-page "https://github.com/davep/boxquote.el")
23222 (synopsis "Quote text with different kinds of boxes")
23223 (description "@code{boxquote} provides a set of functions for using
23224 a text quoting style that partially boxes in the left hand side of an area of
23225 text, such a marking style might be used to show externally included text or
23226 example code.")
23227 (license license:gpl3+))))
23228
23229 (define-public emacs-buffer-move
23230 (package
23231 (name "emacs-buffer-move")
23232 (version "0.6.2")
23233 (source
23234 (origin
23235 (method git-fetch)
23236 (uri (git-reference
23237 (url "https://github.com/lukhas/buffer-move")
23238 (commit version)))
23239 (file-name (git-file-name name version))
23240 (sha256
23241 (base32 "0xdks4jfqyhkh34y48iq3gz8swp0f526kwnaai5mhgvazvs4za8c"))))
23242 (build-system emacs-build-system)
23243 (home-page "https://github.com/lukhas/buffer-move")
23244 (synopsis "Functions for moving Emacs' buffers around")
23245 (description
23246 "This package define functions for swapping buffers between windows
23247 contained in the same frame. An alternate behavior is to have the current
23248 window switch to the previous buffer instead of swapping with the other
23249 window.")
23250 (license license:gpl3+)))
23251
23252 (define-public emacs-company-ebdb
23253 (package
23254 (name "emacs-company-ebdb")
23255 (version "1.1")
23256 (source
23257 (origin
23258 (method url-fetch)
23259 (uri (string-append "https://elpa.gnu.org/packages/"
23260 "company-ebdb-" version ".el"))
23261 (sha256
23262 (base32 "146qpiigz12zp1823ggxfrx090g0mxs7gz1ba7sa0iq6ibgzwwm9"))))
23263 (build-system emacs-build-system)
23264 (propagated-inputs
23265 `(("emacs-company" ,emacs-company)))
23266 (home-page "https://elpa.gnu.org/packages/company-ebdb.html")
23267 (synopsis "Company completion backend for EBDB in Message mode")
23268 (description "@code{company-ebdb} provides Company mode integration for
23269 EBDB. It is copied more or less intact from @code{company-bbdb}, originally
23270 by Jan Tatarik.")
23271 (license license:gpl3+)))
23272
23273 (define-public emacs-mwim
23274 ;; Use the latest commit not in a release version as of yet, since it
23275 ;; contains a bug fix for the cases where `comment-start-skip' is nil.
23276 (let ((commit "b4f3edb4c0fb8f8b71cecbf8095c2c25a8ffbf85")
23277 (revision "0"))
23278 (package
23279 (name "emacs-mwim")
23280 (version (git-version "0.4" revision commit))
23281 (source
23282 (origin
23283 (method git-fetch)
23284 (uri (git-reference
23285 (url "https://github.com/alezost/mwim.el")
23286 (commit commit)))
23287 (file-name (git-file-name name version))
23288 (sha256
23289 (base32 "0l3k611gp9g2x2vfmh92wnhnda81dslpwwpb8mxmzk308man77ya"))))
23290 (build-system emacs-build-system)
23291 (home-page "https://github.com/alezost/mwim.el")
23292 (synopsis "Move to the beginning/end of line, code or comment")
23293 (description "@code{mwim} provides several commands to switch between
23294 various line positions, like moving to the beginning/end of code, line, or
23295 comment.")
23296 (license license:gpl3+))))
23297
23298 (define-public emacs-delight
23299 (package
23300 (name "emacs-delight")
23301 (version "1.7")
23302 (source
23303 (origin
23304 (method url-fetch)
23305 (uri (string-append "https://elpa.gnu.org/packages/"
23306 "delight-" version ".el"))
23307 (sha256
23308 (base32 "0pihsghrf9xnd1kqlq48qmjcmp5ra95wwwgrb3l8m1wagmmc0bi1"))))
23309 (build-system emacs-build-system)
23310 (home-page "https://elpa.gnu.org/packages/delight.html")
23311 (synopsis "Dimmer switch for your mode-line lighter text")
23312 (description "@code{delight} enables customizing or hiding the
23313 mode-line text (lighter) of major and minor modes.")
23314 (license license:gpl3+)))
23315
23316 (define-public emacs-unkillable-scratch
23317 ;; Use the latest (unreleased) commit as of now, since it contains a handy
23318 ;; `unkillable-scratch-do-not-reset-scratch-buffer' customization to not
23319 ;; repopulate the scratch buffer with `initial-scratch-message'.
23320 (let ((commit "b24c2a760529833f230c14cb02ff6e7ec92288ab")
23321 (revision "0"))
23322 (package
23323 (name "emacs-unkillable-scratch")
23324 (version (git-version "1.0.0" revision commit))
23325 (source
23326 (origin
23327 (method git-fetch)
23328 (uri (git-reference
23329 (url "https://github.com/EricCrosson/unkillable-scratch")
23330 (commit commit)))
23331 (file-name (git-file-name name version))
23332 (sha256
23333 (base32 "13wjbcxr3km4s96yhpavgs5acs5pvqv3ih1p84diqb3x3i6wd4pa"))))
23334 (build-system emacs-build-system)
23335 (home-page "https://github.com/EricCrosson/unkillable-scratch")
23336 (synopsis "Prevents the *scratch* buffer from being killed")
23337 (description "@code{unkillable-scratch} helps prevent killing buffers
23338 matching a given regexp.")
23339 (license license:gpl2+))))
23340
23341 (define-public emacs-switch-buffer-functions
23342 (package
23343 (name "emacs-switch-buffer-functions")
23344 (version "0.0.1")
23345 (source
23346 (origin
23347 (method git-fetch)
23348 (uri (git-reference
23349 (url "https://github.com/10sr/switch-buffer-functions-el")
23350 (commit (string-append "v" version))))
23351 (file-name (git-file-name name version))
23352 (sha256
23353 (base32 "0pq53b8wrjbrxd5hnrcdi0z7mffp4bax55hn90k9ca3j76lhbn1k"))))
23354 (build-system emacs-build-system)
23355 (home-page "https://github.com/10sr/switch-buffer-functions-el")
23356 (synopsis "Hooks run when switching current buffer")
23357 (description "This package provides a hook variable
23358 @code{switch-buffer-functions}. The hooks will be run when the current buffer
23359 is changed after an interactive command, i.e., when @code{post-command-hook}
23360 hooks are run. The hooked functions will be called with both the previous and
23361 the current buffer.")
23362 (license license:unlicense)))
23363
23364 (define-public emacs-erc-scrolltoplace
23365 (package
23366 (name "emacs-erc-scrolltoplace")
23367 (version "0.1.0")
23368 (source
23369 (origin
23370 (method git-fetch)
23371 (uri (git-reference
23372 (url "https://gitlab.com/jgkamat/erc-scrolltoplace.git")
23373 (commit version)))
23374 (file-name (git-file-name name version))
23375 (sha256
23376 (base32 "11zpqwh1mlfifbgnvhc63bvnhg340jgxssm3m43hr1sxsyb52lh6"))))
23377 (build-system emacs-build-system)
23378 (propagated-inputs
23379 `(("emacs-switch-buffer-functions" ,emacs-switch-buffer-functions)))
23380 (home-page "https://gitlab.com/jgkamat/erc-scrolltoplace")
23381 (synopsis "ERC module to replace scrolltobottom while using keep-place")
23382 (description "@code{erc-scrolltoplace} is an ERC module to try
23383 to emulate @code{scrolltobottom} while @code{keep-place} is enabled.")
23384 (license license:gpl3+)))
23385
23386 (define-public emacs-dmenu
23387 ;; Use the latest commit, as there are no tagged releases.
23388 (let ((commit "e8cc9b27c79d3ecc252267c082ab8e9c82eab264")
23389 (revision "0"))
23390 (package
23391 (name "emacs-dmenu")
23392 (version (git-version "0.1" revision commit))
23393 (source
23394 (origin
23395 (method git-fetch)
23396 (uri (git-reference
23397 (url "https://github.com/lujun9972/el-dmenu")
23398 (commit commit)))
23399 (file-name (git-file-name name version))
23400 (sha256
23401 (base32 "098ncygms1r33zhjlq4fj2p4jc91v5whqrm3fazzdk7sd6dilf25"))))
23402 (build-system emacs-build-system)
23403 (home-page "https://github.com/lujun9972/el-dmenu")
23404 (synopsis "Simulate the @command{dmenu} command line program")
23405 (description "This package provides a @command{dmenu} command for
23406 launching other commands/applications from within Emacs, similar to the
23407 @command{dmenu} program. This is especially useful when using EXWM.")
23408 (license license:gpl3+))))
23409
23410 (define-public emacs-no-littering
23411 (package
23412 (name "emacs-no-littering")
23413 (version "1.0.3")
23414 (source
23415 (origin
23416 (method git-fetch)
23417 (uri (git-reference
23418 (url "https://github.com/emacscollective/no-littering")
23419 (commit (string-append "v" version))))
23420 (file-name (git-file-name name version))
23421 (sha256
23422 (base32 "17is06l0w6glppabv2kaclrnqi3dqb6p6alpslpg7lrjd8vd45ir"))))
23423 (build-system emacs-build-system)
23424 (home-page "https://github.com/emacscollective/no-littering")
23425 (synopsis "Help keep ~/.emacs.d/ clean")
23426 (description "The default paths used to store configuration files and
23427 persistent data are not consistent across Emacs packages, be them built-in or
23428 third-party ones. @code{no-littering} sets out to help clean
23429 @file{~/.emacs.d/} by putting configuration files and persistent data files in
23430 two user-defined directories, as well as using more descriptive names for
23431 files and subdirectories when appropriate.")
23432 (license license:gpl3+)))
23433
23434 (define-public emacs-meson-mode
23435 (package
23436 (name "emacs-meson-mode")
23437 (version "0.2")
23438 (source
23439 (origin
23440 (method git-fetch)
23441 (uri (git-reference
23442 (url "https://github.com/wentasah/meson-mode")
23443 (commit (string-append "v" version))))
23444 (file-name (git-file-name name version))
23445 (sha256
23446 (base32 "1720b3hpfqd989zrgcns51jbjrv4vzl9di9mccl55vkmkbqzfin0"))))
23447 (build-system emacs-build-system)
23448 (home-page "https://github.com/wentasah/meson-mode")
23449 (synopsis "Major mode for Meson build system files")
23450 (description
23451 "This is an Emacs major mode for Meson build system files. Syntax
23452 highlighting works reliably. Indentation works too, but there are probably
23453 cases where it breaks.")
23454 (license license:gpl3+)))
23455
23456 (define-public emacs-message-x
23457 ;; Use the latest commit, as there are no tagged releases.
23458 (let ((commit "5524de7bbfdd8749c110f48de5afb024d9f83133")
23459 (revision "0"))
23460 (package
23461 (name "emacs-message-x")
23462 (version (git-version "1.23" revision commit))
23463 (source
23464 (origin
23465 (method git-fetch)
23466 (uri (git-reference
23467 (url "https://github.com/emacsmirror/message-x")
23468 (commit commit)))
23469 (file-name (git-file-name name version))
23470 (sha256
23471 (base32 "0qy1xf11j357lsnbb829hnbg7fq1cii4cx54fwf0wgjh1bv2abvj"))))
23472 (build-system emacs-build-system)
23473 (home-page "https://www.emacswiki.org/emacs/message-x.el")
23474 (synopsis "Customizable completion in message headers")
23475 (description "@code{message-x} assigns a context-sensitive function to
23476 the TAB key in Message mode. When on a header line, it performs completion
23477 based on which header we are in (for example, newsgroup name completion makes
23478 sense on the @samp{Newsgroups} header, whereas mail alias expansion makes
23479 sense in the @samp{To} and @samp{Cc} headers). When in the message body, this
23480 executes a different function (default: @code{indent-relative}).")
23481 (license license:gpl2+))))
23482
23483 (define-public emacs-glsl-mode
23484 ;; No tag, version grabbed from source .el file.
23485 (let ((commit "b07112016436d9634cd4ef747f9af6b01366d136")
23486 (revision "0"))
23487 (package
23488 (name "emacs-glsl-mode")
23489 (version (git-version "2.4" revision commit))
23490 (source
23491 (origin
23492 (method git-fetch)
23493 (uri (git-reference
23494 (url "https://github.com/jimhourihan/glsl-mode")
23495 (commit commit)))
23496 (file-name (git-file-name name version))
23497 (sha256
23498 (base32 "0bav9ipfm0vy26n74ngsmjzc7fsyqz6xmriadzx55s44h8p5dn1s"))))
23499 (build-system emacs-build-system)
23500 (home-page "https://github.com/jimhourihan/glsl-mode")
23501 (synopsis "Major mode for Open GLSL shader files")
23502 (description
23503 "This package provides a major mode for editing OpenGLSL grammar files,
23504 usually files ending with @file{.vert}, @file{.frag}, @file{.glsl} or
23505 @file{.geom}. It is based on C mode plus some features and pre-specified
23506 fontifications.")
23507 (license license:gpl3+))))
23508
23509 (define-public emacs-gnus-harvest
23510 (let ((commit "feda071a87b799bd5d23cacde3ee71f0b166e75d")
23511 (revision "0"))
23512 (package
23513 (name "emacs-gnus-harvest")
23514 (version (git-version "1.0" revision commit))
23515 (source
23516 (origin
23517 (method git-fetch)
23518 (uri (git-reference
23519 (url "https://github.com/jwiegley/gnus-harvest")
23520 (commit commit)))
23521 (file-name (git-file-name name version))
23522 (sha256
23523 (base32 "08zb7vc3v3wdxkzgi902vlc5ybfvm8fxrvm5drnwfsjj9873pbcb"))))
23524 (build-system emacs-build-system)
23525 (inputs
23526 `(("sqlite" ,sqlite)))
23527 (arguments
23528 `(#:phases
23529 (modify-phases %standard-phases
23530 (add-before 'build 'patch-exec-paths
23531 (lambda* (#:key inputs #:allow-other-keys)
23532 (let ((sqlite (assoc-ref inputs "sqlite"))
23533 (file "gnus-harvest.el"))
23534 (make-file-writable file)
23535 (emacs-substitute-variables file
23536 ("gnus-harvest-sqlite-program"
23537 (string-append sqlite "/bin/sqlite3"))))
23538 #t)))))
23539 (home-page "https://github.com/jwiegley/gnus-harvest")
23540 (synopsis
23541 "Harvest email addresses from read/written Gnus articles")
23542 (description "@code{gnus-harvest} notices email address in every message
23543 or post you read or write, and collects them in a SQLite database, which can
23544 be easily and quickly queried to determine the completion list. It optionally
23545 uses BBDB and Message-X.")
23546 (license license:gpl3+))))
23547
23548 (define-public emacs-auto-dictionary-mode
23549 (package
23550 (name "emacs-auto-dictionary-mode")
23551 (version "1.1")
23552 (source
23553 (origin
23554 (method git-fetch)
23555 (uri (git-reference
23556 (url "https://github.com/nschum/auto-dictionary-mode")
23557 (commit version)))
23558 (file-name (git-file-name name version))
23559 (sha256
23560 (base32 "191294k92qp8gmfypf0q8j8qrym96aqikzvyb9p03wqvbr3r1dsk"))))
23561 (build-system emacs-build-system)
23562 (home-page "http://nschum.de/src/emacs/auto-dictionary/")
23563 (synopsis "Automatic dictionary switcher for Emacs spell checking")
23564 (description "@code{auto-dictionary} is a minor mode that hooks into
23565 Flyspell's on-the-fly spell checking and extends these checks to also detect
23566 language. Auto-dictionary then sets @code{ispell-dictionary} to use the
23567 detected language.")
23568 (license license:gpl2+)))
23569
23570 (define-public emacs-persist
23571 (package
23572 (name "emacs-persist")
23573 (version "0.4")
23574 (source
23575 (origin
23576 (method url-fetch)
23577 (uri (string-append "https://elpa.gnu.org/packages/"
23578 "persist-" version ".tar"))
23579 (sha256
23580 (base32 "0gpxy41qawzss2526j9a7lys60vqma1lvamn4bfabwza7gfhac0q"))))
23581 (build-system emacs-build-system)
23582 (home-page "http://elpa.gnu.org/packages/persist.html")
23583 (synopsis "Persist variables between Emacs sessions")
23584 (description
23585 "This package provides variables which persist across sessions.
23586 Values are stored in a directory in @code{user-emacs-directory}, using
23587 one file per value. This makes it easy to delete or remove unused
23588 variables.")
23589 (license license:gpl3+)))
23590
23591 (define-public emacs-company-emoji
23592 (package
23593 (name "emacs-company-emoji")
23594 (version "2.5.2")
23595 (source
23596 (origin
23597 (method git-fetch)
23598 (uri (git-reference
23599 (url "https://github.com/dunn/company-emoji/")
23600 (commit version)))
23601 (file-name (git-file-name name version))
23602 (sha256
23603 (base32 "0r9zcbm3nb3zw5cwrkl098v5b49jbga5404bj7j55g6k4rwkjar2"))))
23604 (build-system emacs-build-system)
23605 (propagated-inputs
23606 `(("emacs-company" ,emacs-company)))
23607 (home-page "https://github.com/dunn/company-emoji/")
23608 (synopsis "Company completion back-end for emoji")
23609 (description
23610 "This library is a Company back-end providing auto-completion for
23611 emoji.")
23612 (license license:gpl3+)))
23613
23614 (define-public emacs-exiftool
23615 (package
23616 (name "emacs-exiftool")
23617 (version "0.3.2")
23618 (source
23619 (origin
23620 (method git-fetch)
23621 (uri (git-reference
23622 (url "https://git.systemreboot.net/exiftool.el/")
23623 (commit (string-append "v" version))))
23624 (file-name (git-file-name name version))
23625 (sha256
23626 (base32
23627 "0bv58is66cz21yhc0qqkp1z4nk13zfi2l7i6pjbhyi0g1n88qqyv"))))
23628 (build-system emacs-build-system)
23629 (arguments
23630 `(#:tests? #t
23631 #:test-command '("make" "-C" "tests")
23632 #:phases
23633 (modify-phases %standard-phases
23634 (add-after 'unpack 'configure
23635 (lambda* (#:key inputs #:allow-other-keys)
23636 (make-file-writable "exiftool.el")
23637 (emacs-substitute-variables "exiftool.el"
23638 ("exiftool-executable"
23639 (string-append (assoc-ref inputs "perl-image-exiftool")
23640 "/bin/exiftool")))
23641 #t)))))
23642 (inputs
23643 `(("perl-image-exiftool" ,perl-image-exiftool)))
23644 (home-page "https://git.systemreboot.net/exiftool.el/about/")
23645 (synopsis "Elisp wrapper around ExifTool")
23646 (description "@code{emacs-exiftool} is an Elisp wrapper around ExifTool.
23647 ExifTool supports reading and writing metadata in various formats including
23648 EXIF, XMP and IPTC.")
23649 (license license:gpl3+)))
23650
23651 (define-public emacs-password-generator
23652 (package
23653 (name "emacs-password-generator")
23654 (version "1.01")
23655 (home-page "https://github.com/zargener/emacs-password-genarator")
23656 (source
23657 (origin
23658 (method git-fetch)
23659 (uri (git-reference
23660 (url home-page)
23661 (commit "904cdb591a04305ba882ce19e1d117f5fa60f7d3")))
23662 (file-name (git-file-name name version))
23663 (sha256
23664 (base32
23665 "1qgvn79qz1h8ykm5i1qv2fja4v2y0g2i0n5sf7byhnqhqlwn63nv"))))
23666 (build-system emacs-build-system)
23667 (synopsis "Generate passwords inside Emacs")
23668 (description "@code{emacs-password-generator} provides simple functions to
23669 generate random passwords and insert them into the current buffer. It also
23670 supports generation of phonetic and numeric passwords.")
23671 (license license:artistic2.0)))
23672
23673 (define-public emacs-csv
23674 (package
23675 (name "emacs-csv")
23676 (version "2.1")
23677 (home-page "https://gitlab.com/u11/csv.el")
23678 (source
23679 (origin
23680 (method git-fetch)
23681 (uri (git-reference
23682 (url home-page)
23683 (commit (string-append "V" version))))
23684 (file-name (git-file-name name version))
23685 (sha256
23686 (base32
23687 "1vmazjrfcsa9aa9aw8bq5sazdhqvhxyj837dyw5lmh8gk7z0xdaa"))))
23688 (build-system emacs-build-system)
23689 (synopsis "Elisp functions for reading and parsing CSV files")
23690 (description
23691 "@code{csv.el} provides functions for reading and parsing @acronym{CSV,
23692 Comma-Separated Values} files. It follows the format as defined in RFC 4180
23693 @emph{Common Format and MIME Type for CSV
23694 Files} (@url{http://tools.ietf.org/html/rfc4180}).")
23695 (license license:gpl3+)))
23696
23697 (define-public emacs-org-journal
23698 (package
23699 (name "emacs-org-journal")
23700 (version "2.0.0")
23701 (source
23702 (origin
23703 (method git-fetch)
23704 (uri (git-reference
23705 (url "https://github.com/bastibe/org-journal")
23706 (commit version)))
23707 (file-name (git-file-name name version))
23708 (sha256
23709 (base32 "18dqd0jy2x530lk0h4fcn9cld9qh4w7b3vxa60fpiia628vsv1dg"))))
23710 (build-system emacs-build-system)
23711 (home-page "https://github.com/bastibe/org-journal")
23712 (synopsis "Simple Org mode journaling mode")
23713 (description
23714 "Org Journal is a set of functions to maintain a simple personal diary /
23715 journal using in Emacs, adapted from
23716 @url{https://www.emacswiki.org/emacs/PersonalDiary}. Convenient bindings
23717 allow the creation of journal records in the current daily, weekly, monthly or
23718 yearly file and search within all records or specified time intervals. All
23719 records can be browsed and searched from the Emacs Calendar for convenience.
23720 All entries in a specified TODO state will be carried over to the next day.")
23721 (license license:bsd-3)))
23722
23723 (define-public emacs-org-static-blog
23724 (package
23725 (name "emacs-org-static-blog")
23726 (version "1.3.0")
23727 (source
23728 (origin
23729 (method git-fetch)
23730 (uri (git-reference
23731 (url "https://github.com/bastibe/org-static-blog")
23732 (commit version)))
23733 (file-name (git-file-name name version))
23734 (sha256
23735 (base32 "15iy3z8rglaqbx1fz14inh18ksgjsmq30b8hyv3lgjvcc9ssaiw0"))))
23736 (build-system emacs-build-system)
23737 (home-page "https://github.com/bastibe/org-static-blog")
23738 (synopsis
23739 "Simple Org mode based static blog generator")
23740 (description
23741 "@code{emacs-org-static-blog} is one more static blog generator, it
23742 focuses on being simple. All files are simple Org files in a directory. The
23743 only requirement is that every Org file must have a @samp{title} and
23744 a @samp{date} keywords, and optionally, a @samp{filetags} keyword.")
23745 (license license:bsd-3)))
23746
23747 (define-public emacs-ddskk
23748 ;; XXX: Upstream adds code names to their release tags, so version and code
23749 ;; name below need to be updated together.
23750 (let ((version "16.3")
23751 (code-name "Kutomatsunai"))
23752 (package
23753 (name "emacs-ddskk")
23754 (version version)
23755 (source
23756 (origin
23757 (method git-fetch)
23758 (uri (git-reference
23759 (url "https://github.com/skk-dev/ddskk")
23760 (commit (string-append "ddskk-" version "_" code-name))))
23761 (file-name (git-file-name name version))
23762 (sha256
23763 (base32 "0ln4x8f35z5y3kf9m718g223bn3lzcmw40jfjg2j5yi24ydf1wm9"))))
23764 (build-system gnu-build-system)
23765 (arguments
23766 `(#:modules ((guix build gnu-build-system)
23767 (guix build utils)
23768 (guix build emacs-utils))
23769 #:imported-modules (,@%gnu-build-system-modules
23770 (guix build emacs-utils))
23771 #:test-target "test"
23772 #:phases
23773 (modify-phases %standard-phases
23774 (replace 'configure
23775 (lambda* (#:key outputs #:allow-other-keys)
23776 (make-file-writable "SKK-MK")
23777 (emacs-substitute-variables "SKK-MK"
23778 ("PREFIX" (assoc-ref outputs "out"))
23779 ("LISPDIR" '(expand-file-name "/share/emacs/site-lisp" PREFIX))
23780 ("SKK_PREFIX" "")
23781 ("SKK_INFODIR" '(expand-file-name "info" PREFIX)))
23782 (for-each make-file-writable (find-files "./doc"))
23783 #t)))))
23784 (native-inputs
23785 `(("emacs-minimal" ,emacs-minimal)))
23786 (home-page "https://github.com/skk-dev/ddskk")
23787 (synopsis "Simple Kana to Kanji conversion program")
23788 (description
23789 "Daredevil SKK is a version of @acronym{SKK, Simple Kana to Kanji
23790 conversion program}, a Japanese input method on Emacs.")
23791 (license license:gpl2+))))
23792
23793 (define-public emacs-objed
23794 (package
23795 (name "emacs-objed")
23796 (version "0.8.3")
23797 (source
23798 (origin
23799 (method url-fetch)
23800 (uri (string-append
23801 "https://elpa.gnu.org/packages/objed-" version ".tar"))
23802 (sha256
23803 (base32
23804 "1s38d6bvggdk5p45ww1jb4gxifzgjwgw1m6ar920nlg0j4fgbcvr"))))
23805 (build-system emacs-build-system)
23806 (home-page "https://github.com/clemera/objed")
23807 (synopsis "Navigate and edit text objects")
23808 (description
23809 "@code{emacs-objed} allows navigating and editing text objects. It
23810 enables modal editing and composition of commands, too. It combines ideas of
23811 other Editors like Vim or Kakoune and tries to align them with regular Emacs
23812 conventions.")
23813 (license license:gpl3+)))
23814
23815 (define-public emacs-haskell-snippets
23816 ;; The commit below is 5 commits ahead of release, and includes a build fix.
23817 (let ((commit "07b0f460b946fd1be26c29652cb0468b47782f3a"))
23818 (package
23819 (name "emacs-haskell-snippets")
23820 (version (git-version "0.1.0" "0" commit))
23821 (source
23822 (origin
23823 (method git-fetch)
23824 (uri
23825 (git-reference
23826 (url "https://github.com/haskell/haskell-snippets")
23827 (commit commit)))
23828 (file-name (git-file-name name version))
23829 (sha256
23830 (base32 "0a7y3awi9hcyahggf0ghsdwvsmrhr9yq634wy9lkqjzrm2hqj0ci"))))
23831 (build-system emacs-build-system)
23832 (arguments
23833 `(#:phases
23834 (modify-phases %standard-phases
23835 (add-after 'install 'install-snippets
23836 (lambda* (#:key outputs #:allow-other-keys)
23837 (let* ((out (assoc-ref outputs "out"))
23838 (snippets
23839 (string-append
23840 out "/share/emacs/site-lisp/snippets/haskell-mode")))
23841 (mkdir-p snippets)
23842 (copy-recursively "snippets/haskell-mode" snippets)
23843 #t))))))
23844 (propagated-inputs
23845 `(("emacs-yasnippet" ,emacs-yasnippet)))
23846 (home-page "https://github.com/haskell/haskell-snippets")
23847 (synopsis "Official collection of YASnippet Haskell snippets for Emacs")
23848 (description "Haskell-Snippets is a collection of YASnippet Haskell
23849 snippets for Emacs.")
23850 (license license:expat))))
23851
23852 (define-public emacs-org-roam
23853 (package
23854 (name "emacs-org-roam")
23855 (version "1.0.0")
23856 (source
23857 (origin
23858 (method git-fetch)
23859 (uri (git-reference
23860 (url "https://github.com/jethrokuan/org-roam")
23861 (commit (string-append "v" version))))
23862 (file-name (git-file-name name version))
23863 (sha256
23864 (base32 "08pfa63k194dpk0y2gfa0nzn5lig81q0l9axkq5j4ibj6ifaap4a"))))
23865 (build-system emacs-build-system)
23866 (propagated-inputs
23867 `(("emacs-company" ,emacs-company)
23868 ("emacs-dash" ,emacs-dash)
23869 ("emacs-emacsql-sqlite" ,emacs-emacsql)
23870 ("emacs-f" ,emacs-f)
23871 ("emacs-org-ref" ,emacs-org-ref)
23872 ("emacs-s" ,emacs-s)))
23873 (home-page "https://github.com/jethrokuan/org-roam/")
23874 (synopsis "Non-hierarchical note-taking with Org mode")
23875 (description "Emacs Org Roam is a solution for taking non-hierarchical
23876 notes with Org mode. Notes are captured without hierarchy and are connected
23877 by tags. Notes can be found and created quickly. Org Roam should also work
23878 as a plug-and-play solution for anyone already using Org mode for their
23879 personal wiki.")
23880 (license license:gpl3+)))
23881
23882 (define-public emacs-org-generate
23883 (package
23884 (name "emacs-org-generate")
23885 (version "1.0.0")
23886 (source (origin
23887 (method git-fetch)
23888 (uri (git-reference
23889 (url "https://github.com/conao3/org-generate.el.git")
23890 (commit (string-append "v" version))))
23891 (file-name (git-file-name name version))
23892 (sha256
23893 (base32
23894 "0z2frp5mn3lp2xskwanw2rncrwa50x3aphy87vfxmhx4fqlqrzy8"))))
23895 (inputs
23896 `(("emacs-cort" ,emacs-cort))) ;tests suite
23897 (propagated-inputs
23898 `(("emacs-mustache" ,emacs-mustache)))
23899 (arguments
23900 `(#:tests? #t
23901 #:test-command '("emacs" "--batch" "--quick"
23902 "--directory=." "--load=org-generate-tests.el"
23903 "--funcall=cort-test-run")))
23904 (build-system emacs-build-system)
23905 (home-page "https://github.com/conao3/org-generate.el")
23906 (synopsis "Generate template files and folders from Org document")
23907 (description "This package allows to generate files and folders from Emacs
23908 org-mode templates.")
23909 (license license:gpl3+)))
23910
23911 (define-public emacs-uml-mode
23912 ;; Package has no release. Version is extracted from "Version:" keyword in
23913 ;; main file.
23914 (let ((commit "4c37ac1c4424b2313cd8f16ba48a98a4cc214200")
23915 (revision "1"))
23916 (package
23917 (name "emacs-uml-mode")
23918 (version (git-version "0.0.4" revision commit))
23919 (source
23920 (origin
23921 (method git-fetch)
23922 (uri (git-reference
23923 (url "https://github.com/ianxm/emacs-uml")
23924 (commit commit)))
23925 (file-name (git-file-name name version))
23926 (sha256
23927 (base32 "145i4srnfvd1vyibri2a1l6p9mbjvkkwlrpi41134pbarqffcnka"))))
23928 (build-system emacs-build-system)
23929 (home-page "https://github.com/ianxm/emacs-uml")
23930 (synopsis "Minor mode for editing ASCII UML sequence diagrams")
23931 (description "Emacs UML mode is a minor mode that makes it easy to build
23932 ASCII UML sequence diagrams in Emacs, which can be embedded in source code,
23933 comments or emails.")
23934 (license license:gpl3+))))
23935
23936 (define-public emacs-trashed
23937 (package
23938 (name "emacs-trashed")
23939 (version "1.9.0")
23940 (source
23941 (origin
23942 (method git-fetch)
23943 (uri (git-reference
23944 (url "https://github.com/shingo256/trashed/")
23945 (commit version)))
23946 (file-name (git-file-name name version))
23947 (sha256
23948 (base32 "13grdi12iwlw4fiphdfmvclfpbr6ajlgfbfyi7v41z8k3rxz4ypz"))))
23949 (build-system emacs-build-system)
23950 (home-page "https://github.com/shingo256/trashed/")
23951 (synopsis "View and edit system trash can in Emacs")
23952 (description "Open, view, browse, restore or permanently delete trashed
23953 files or directories in trash can with Dired-like look and feel. The trash
23954 can has to be compliant with freedesktop.org. In Emacs, you can trash files by
23955 deleting them with @code{(setq delete-by-moving-to-trash t)}. This package
23956 provides a simple but convenient user interface to manage those trashed
23957 files.")
23958 (license license:gpl3+)))
23959
23960 (define-public emacs-plantuml-mode
23961 (package
23962 (name "emacs-plantuml-mode")
23963 (version "1.4.1")
23964 (source
23965 (origin
23966 (method git-fetch)
23967 (uri (git-reference
23968 (url "https://github.com/skuro/plantuml-mode")
23969 (commit (string-append "v" version))))
23970 (file-name (git-file-name name version))
23971 (sha256
23972 (base32 "0yp41d2dmf3sx7qnl5x0zdjcr9y71b2wwc9m0q31v22xqn938ipc"))))
23973 (arguments
23974 '(#:phases
23975 (modify-phases %standard-phases
23976 (add-after 'unpack 'use-local-plantuml
23977 (lambda* (#:key inputs #:allow-other-keys)
23978 (let ((plantuml (assoc-ref inputs "plantuml"))
23979 (file "plantuml-mode.el"))
23980 (chmod file #o644)
23981 (emacs-substitute-variables file
23982 ("plantuml-jar-path"
23983 (string-append plantuml "/share/java/plantuml.jar"))
23984 ("plantuml-executable-path"
23985 (string-append plantuml "/bin/plantuml"))
23986 ("plantuml-server-url" 'nil)
23987 ("plantuml-default-exec-mode" ''executable))
23988 (emacs-batch-edit-file file
23989 `(progn (progn
23990 (goto-char (point-min))
23991 (re-search-forward "(defun plantuml-download-jar")
23992 (beginning-of-line)
23993 (kill-sexp))
23994 (basic-save-buffer)))
23995 #t))))))
23996 (inputs
23997 `(("plantuml" ,plantuml)))
23998 (propagated-inputs
23999 `(("emacs-dash" ,emacs-dash)))
24000 (build-system emacs-build-system)
24001 (home-page "https://github.com/skuro/plantuml-mode")
24002 (synopsis "Major mode for editing PlantUML sources")
24003 (description "This package provides a major mode for editing PlantUML
24004 sources. It features syntax highlighting, autocompletion, preview of buffer
24005 or region and use of locally installed binaries.")
24006 (license license:gpl3+)))
24007
24008 (define-public emacs-shell-pop
24009 (let ((commit "4b4394037940a890a313d715d203d9ead2d156a6")
24010 (revision "0"))
24011 (package
24012 (name "emacs-shell-pop")
24013 (version (git-version "0.64" revision commit))
24014 (source
24015 (origin
24016 (method git-fetch)
24017 (uri (git-reference
24018 (url "https://github.com/kyagi/shell-pop-el")
24019 (commit commit)))
24020 (file-name (git-file-name name version))
24021 (sha256
24022 (base32 "0s77n6b9iw1x3dv91ybkpgy3zvqd12si7zw3lg0m2b6j1akrawsg"))))
24023 (build-system emacs-build-system)
24024 (home-page "https://github.com/kyagi/shell-pop-el")
24025 (synopsis "Utility which helps with pop up shell buffer")
24026 (description
24027 "This Emacs utility helps you pop up and pop out shell buffer window
24028 easily. Four pre-set options are: @samp{shell}, @samp{terminal},
24029 @samp{ansi-term}, and @samp{eshell}. You can also set your custom shell if
24030 you use some other configuration.")
24031 (license license:gpl3+))))