Merge branch 'master' into core-updates
[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 Ricardo Wurmus <rekado@elephly.net>
8 ;;; Copyright © 2016, 2017, 2018, 2019 Chris Marusich <cmmarusich@gmail.com>
9 ;;; Copyright © 2015, 2016, 2018 Christopher Lemmer Webber <cwebber@dustycloud.org>
10 ;;; Copyright © 2016 Adriano Peluso <catonano@gmail.com>
11 ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
12 ;;; Copyright © 2016 David Thompson <davet@gnu.org>
13 ;;; Copyright © 2016 Matthew Jordan <matthewjordandevops@yandex.com>
14 ;;; Copyright © 2016, 2017 Roel Janssen <roel@gnu.org>
15 ;;; Copyright © 2016, 2017 ng0 <ng0@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 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 Maxim Cournoyer <maxim.cournoyer@gmail.com>
35 ;;; Copyright © 2018 Sohom Bhattacharjee <soham.bhattacharjee15@gmail.com>
36 ;;; Copyright © 2018, 2019 Mathieu Lirzin <mthl@gnu.org>
37 ;;; Copyright © 2018, 2019, 2020 Pierre Neidhardt <mail@ambrevar.xyz>
38 ;;; Copyright © 2018, 2019 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
39 ;;; Copyright © 2018, 2019 Jack Hill <jackhill@jackhill.us>
40 ;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
41 ;;; Copyright © 2018 Alex Branham <alex.branham@gmail.com>
42 ;;; Copyright © 2018 Thorsten Wilms <t_w_@freenet.de>
43 ;;; Copyright © 2018, 2019 Pierre Langlois <pierre.langlois@gmx.com>
44 ;;; Copyright © 2018, 2019, 2020 Brett Gilio <brettg@gnu.org>
45 ;;; Copyright © 2019, 2020 Dimakakos Dimos <bendersteed@teknik.io>
46 ;;; Copyright © 2019, 2020 Brian Leung <bkleung89@gmail.com>
47 ;;; Copyright © 2019 mikadoZero <mikadozero@yandex.com>
48 ;;; Copyright © 2019 Gabriel Hondet <gabrielhondet@gmail.com>
49 ;;; Copyright © 2019, 2020 Joseph LaFreniere <joseph@lafreniere.xyz>
50 ;;; Copyright © 2019 Amar Singh <nly@disroot.org>
51 ;;; Copyright © 2019 Baptiste Strazzulla <bstrazzull@hotmail.fr>
52 ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
53 ;;; Copyright © 2019 Jens Mølgaard <jens@zete.tk>
54 ;;; Copyright © 2019, 2020 Amin Bandali <bandali@gnu.org>
55 ;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org>
56 ;;; Copyright © 2019 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
57 ;;; Copyright © 2019 Stephen Webber <montokapro@gmail.com>
58 ;;; Copyright © 2019 Leo Prikler <leo.prikler@student.tugraz.at>
59 ;;; Copyright © 2019 David Wilson <david@daviwil.com>
60 ;;; Copyright © 2020 Paul Garlick <pgarlick@tourbillion-technology.com>
61 ;;; Copyright © 2020 Robert Smith <robertsmith@posteo.net>
62 ;;; Copyright © 2020 Evan Straw <evan.straw99@gmail.com>
63 ;;; Copyright © 2020 Masaya Tojo <masaya@tojo.tokyo>
64 ;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net>
65 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
66 ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
67 ;;; Copyright © 2020 6033fe7de85d <6033fe7de85d@airmail.cc>
68 ;;; Copyright © 2020 John Soo <jsoo1@asu.edu>
69 ;;; Copyright © 2020 Jérémy Korwin-Zmijowski <jeremy@korwin-zmijowski.fr>
70 ;;; Copyright © 2020 Alberto Eleuterio Flores Guerrero <barbanegra+guix@posteo.mx>
71 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
72 ;;; Copyright © 2020 pinoaffe <pinoaffe@airmail.cc>
73 ;;;
74 ;;; This file is part of GNU Guix.
75 ;;;
76 ;;; GNU Guix is free software; you can redistribute it and/or modify it
77 ;;; under the terms of the GNU General Public License as published by
78 ;;; the Free Software Foundation; either version 3 of the License, or (at
79 ;;; your option) any later version.
80 ;;;
81 ;;; GNU Guix is distributed in the hope that it will be useful, but
82 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
83 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
84 ;;; GNU General Public License for more details.
85 ;;;
86 ;;; You should have received a copy of the GNU General Public License
87 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
88
89 (define-module (gnu packages emacs-xyz)
90 #:use-module ((guix licenses) #:prefix license:)
91 #:use-module (guix packages)
92 #:use-module (guix cvs-download)
93 #:use-module (guix download)
94 #:use-module (guix git-download)
95 #:use-module (guix hg-download)
96 #:use-module (guix build-system gnu)
97 #:use-module (guix build-system cmake)
98 #:use-module (guix build-system emacs)
99 #:use-module (guix build-system glib-or-gtk)
100 #:use-module (guix build-system perl)
101 #:use-module (guix build-system trivial)
102 #:use-module (gnu packages)
103 #:use-module (gnu packages admin)
104 #:use-module (gnu packages audio)
105 #:use-module (gnu packages bash)
106 #:use-module (gnu packages cmake)
107 #:use-module (gnu packages code)
108 #:use-module (gnu packages cpp)
109 #:use-module (gnu packages curl)
110 #:use-module (gnu packages databases)
111 #:use-module (gnu packages dictionaries)
112 #:use-module (gnu packages emacs)
113 #:use-module (gnu packages guile)
114 #:use-module (gnu packages gtk)
115 #:use-module (gnu packages gnome)
116 #:use-module (gnu packages haskell-apps)
117 #:use-module (gnu packages ncurses)
118 #:use-module (gnu packages python)
119 #:use-module (gnu packages python-xyz)
120 #:use-module (gnu packages telephony)
121 #:use-module (gnu packages terminals)
122 #:use-module (gnu packages tex)
123 #:use-module (gnu packages texinfo)
124 #:use-module (gnu packages tcl)
125 #:use-module (gnu packages tls)
126 #:use-module (gnu packages pkg-config)
127 #:use-module (gnu packages xorg)
128 #:use-module (gnu packages lesstif)
129 #:use-module (gnu packages llvm)
130 #:use-module (gnu packages image)
131 #:use-module (gnu packages linux)
132 #:use-module (gnu packages libevent)
133 #:use-module (gnu packages lua)
134 #:use-module (gnu packages music)
135 #:use-module (gnu packages version-control)
136 #:use-module (gnu packages imagemagick)
137 #:use-module (gnu packages w3m)
138 #:use-module (gnu packages wget)
139 #:use-module (gnu packages autotools)
140 #:use-module (gnu packages base)
141 #:use-module (gnu packages compression)
142 #:use-module (gnu packages node)
143 #:use-module (gnu packages xml)
144 #:use-module (gnu packages glib)
145 #:use-module (gnu packages acl)
146 #:use-module (gnu packages mail)
147 #:use-module (gnu packages messaging)
148 #:use-module (gnu packages package-management)
149 #:use-module (gnu packages perl)
150 #:use-module (gnu packages pdf)
151 #:use-module (gnu packages rust-apps)
152 #:use-module (gnu packages scheme)
153 #:use-module (gnu packages speech)
154 #:use-module (gnu packages xiph)
155 #:use-module (gnu packages mp3)
156 #:use-module (gnu packages gettext)
157 #:use-module (gnu packages fribidi)
158 #:use-module (gnu packages gd)
159 #:use-module (gnu packages fontutils)
160 #:use-module (gnu packages password-utils)
161 #:use-module (gnu packages pulseaudio)
162 #:use-module (gnu packages sphinx)
163 #:use-module (gnu packages xdisorg)
164 #:use-module (gnu packages shells)
165 #:use-module (gnu packages sqlite)
166 #:use-module (gnu packages gnupg)
167 #:use-module (gnu packages video)
168 #:use-module (gnu packages haskell-xyz)
169 #:use-module (gnu packages wordnet)
170 #:use-module (gnu packages photo)
171 #:use-module (guix utils)
172 #:use-module (srfi srfi-1)
173 #:use-module (ice-9 match))
174
175 ;;;
176 ;;; Emacs hacking.
177 ;;;
178
179 (define-public emacs-geiser
180 (package
181 (name "emacs-geiser")
182 (version "0.11.2")
183 (source (origin
184 (method git-fetch)
185 (uri (git-reference
186 (url "https://gitlab.com/jaor/geiser/")
187 (commit version)))
188 (file-name (git-file-name name version))
189 (sha256
190 (base32
191 "1khi1bghsjx6cs5acizmlbw9z19s4qycnji9krdbn42cbpv0rysv"))))
192 (build-system gnu-build-system)
193 (arguments
194 '(#:phases
195 (modify-phases %standard-phases
196 (add-after 'install 'post-install
197 (lambda* (#:key outputs #:allow-other-keys)
198 (symlink "geiser-install.el"
199 (string-append (assoc-ref outputs "out")
200 "/share/emacs/site-lisp/"
201 "geiser-autoloads.el"))
202 #t)))))
203 (inputs `(("guile" ,guile-2.2)))
204 (native-inputs
205 `(("emacs" ,emacs-minimal)
206 ("autoconf" ,autoconf)
207 ("automake" ,automake)
208 ("texinfo" ,texinfo)))
209 (home-page "https://nongnu.org/geiser/")
210 (synopsis "Collection of Emacs modes for Guile and Racket hacking")
211 (description
212 "Geiser is a collection of Emacs major and minor modes that conspire with
213 one or more Scheme implementations to keep the Lisp Machine Spirit alive. The
214 continuously running Scheme interpreter takes the center of the stage in
215 Geiser. A bundle of Elisp shims orchestrates the dialog between the Scheme
216 implementation, Emacs and, ultimately, the schemer, giving them access to live
217 metadata.")
218 (license license:bsd-3)))
219
220 (define-public emacs-ac-geiser
221 (let ((commit "93818c936ee7e2f1ba1b315578bde363a7d43d05")
222 (revision "0"))
223 (package
224 (name "emacs-ac-geiser")
225 (version (git-version "0.1" revision commit))
226 (source
227 (origin
228 (uri (git-reference
229 (url "https://github.com/xiaohanyu/ac-geiser.git")
230 (commit commit)))
231 (method git-fetch)
232 (sha256
233 (base32 "00n2qa26yilaj837n1yp6lbqa4gf30nkkbvanl7m9ih7k48ssqmw"))
234 (file-name (git-file-name name version))))
235 (build-system emacs-build-system)
236 (propagated-inputs
237 `(("geiser" ,emacs-geiser)
238 ("auto-complete" ,emacs-auto-complete)))
239 (synopsis "Auto-complete backend for geiser")
240 (description
241 "This package provides an auto-complete source for Scheme projects
242 using geiser.")
243 (license license:bsd-3)
244 (home-page "https://github.com/xiaohanyu/ac-geiser"))))
245
246 (define-public emacs-paredit
247 (package
248 (name "emacs-paredit")
249 (version "24")
250 (source (origin
251 (method url-fetch)
252 (uri (string-append "http://mumble.net/~campbell/emacs/paredit-"
253 version ".el"))
254 (sha256
255 (base32
256 "0pp3n8q6kc70blqsaw0zlzp6bc327dpgdrjr0cnh7hqg1lras7ka"))))
257 (build-system emacs-build-system)
258 (home-page "http://mumble.net/~campbell/emacs/paredit/")
259 (synopsis "Emacs minor mode for editing parentheses")
260 (description
261 "ParEdit (paredit.el) is a minor mode for performing structured editing
262 of S-expression data. The typical example of this would be Lisp or Scheme
263 source code.
264
265 ParEdit helps **keep parentheses balanced** and adds many keys for moving
266 S-expressions and moving around in S-expressions. Its behavior can be jarring
267 for those who may want transient periods of unbalanced parentheses, such as
268 when typing parentheses directly or commenting out code line by line.")
269 (license license:gpl3+)))
270
271 (define-public git-modes
272 (package
273 (name "emacs-git-modes")
274 (version "1.2.8")
275 (source (origin
276 (method git-fetch)
277 (uri (git-reference
278 (url "https://github.com/magit/git-modes")
279 (commit version)))
280 (file-name (git-file-name name version))
281 (sha256
282 (base32
283 "08hy7rbfazs6grkpk54i82bz0i0c74zcjk96cip8970h6jn3mj72"))))
284 (build-system emacs-build-system)
285 (home-page "https://github.com/magit/git-modes")
286 (synopsis "Emacs major modes for Git configuration files")
287 (description
288 "This package provides Emacs major modes for editing various Git
289 configuration files, such as .gitattributes, .gitignore, and .git/config.")
290 (license license:gpl3+)))
291
292 (define-public emacs-with-editor
293 (package
294 (name "emacs-with-editor")
295 (version "2.9.0")
296 (source (origin
297 (method git-fetch)
298 (uri (git-reference
299 (url "https://github.com/magit/with-editor.git")
300 (commit (string-append "v" version))))
301 (file-name (git-file-name name version))
302 (sha256
303 (base32
304 "1sjb3qqrn1rhmpkrn14l8rya6c3gwxwmgw74n779s54kvl9gn7a9"))))
305 (build-system emacs-build-system)
306 (propagated-inputs
307 `(("emacs-dash" ,emacs-dash)))
308 (home-page "https://github.com/magit/with-editor")
309 (synopsis "Emacs library for using Emacsclient as EDITOR")
310 (description
311 "This package provides an Emacs library to use the Emacsclient as
312 @code{$EDITOR} of child processes, making sure they know how to call home.
313 For remote processes a substitute is provided, which communicates with Emacs
314 on stdout instead of using a socket as the Emacsclient does.")
315 (license license:gpl3+)))
316
317 (define-public emacs-magit
318 ;; `magit-setup-buffer' macro introduced in c761d28d and required in
319 ;; `emacs-forge'.
320 (let ((commit "c761d28d49e5238037512b898db0ec9b40d85770"))
321 (package
322 (name "emacs-magit")
323 (version (git-version "2.90.1" "3" commit))
324 (source (origin
325 (method git-fetch)
326 (uri (git-reference
327 (url "https://github.com/magit/magit.git")
328 (commit commit)))
329 (file-name (git-file-name name version))
330 (sha256
331 (base32
332 "16qx0404l05q1m6w7y5j8ck1z5nfmpinm00w0p2yh1hn5zzwy6dd"))
333 ;; FIXME: emacs-forge uses a function defined in this patch,
334 ;; which is newer than the current commit.
335 (patches
336 (search-patches
337 "emacs-magit-log-format-author-margin.patch"))
338 (modules '((guix build utils)))
339 (snippet
340 '(begin
341 ;; Fix syntax error
342 (substitute* "lisp/magit-extras.el"
343 (("rev\\)\\)\\)\\)\\)\\)") "rev)))))"))
344 #t))))
345 (build-system gnu-build-system)
346 (native-inputs `(("texinfo" ,texinfo)
347 ("emacs" ,emacs-minimal)))
348 (inputs
349 `(("git" ,git)
350 ("perl" ,perl)))
351 (propagated-inputs
352 `(("dash" ,emacs-dash)
353 ("with-editor" ,emacs-with-editor)
354 ("transient" ,emacs-transient)))
355 (arguments
356 `(#:modules ((guix build gnu-build-system)
357 (guix build utils)
358 (guix build emacs-utils))
359 #:imported-modules (,@%gnu-build-system-modules
360 (guix build emacs-utils))
361 #:test-target "test"
362 #:tests? #f ; tests are not included in the release
363 #:make-flags
364 (list (string-append "PREFIX=" %output)
365 ;; Don't put .el files in a sub-directory.
366 (string-append "lispdir=" %output "/share/emacs/site-lisp"))
367 #:phases
368 (modify-phases %standard-phases
369 (add-after 'unpack 'patch
370 (lambda _
371 (chmod "lisp/magit-extras.el" #o644)
372 (emacs-batch-edit-file "lisp/magit-extras.el"
373 `(progn (progn
374 (goto-char (point-min))
375 (re-search-forward "(defun magit-copy-buffer-revision ()")
376 (forward-sexp 2)
377 (kill-sexp)
378 (insert ,(format #f "~S"
379 '(if (use-region-p)
380 (copy-region-as-kill nil nil 'region)
381 (when-let ((rev (cl-case major-mode
382 ((magit-cherry-mode
383 magit-log-select-mode
384 magit-reflog-mode
385 magit-refs-mode
386 magit-revision-mode
387 magit-stash-mode
388 magit-stashes-mode)
389 (car magit-refresh-args))
390 ((magit-diff-mode magit-log-mode)
391 (let ((r (caar magit-refresh-args)))
392 (if (string-match "\\.\\.\\.?\\(.+\\)" r)
393 (match-string 1 r)
394 r)))
395 (magit-status-mode "HEAD"))))
396 (when (magit-commit-p rev)
397 (setq rev (magit-rev-parse rev))
398 (push (list rev default-directory) magit-revision-stack)
399 (kill-new (message "%s" rev))))))))
400 (basic-save-buffer)))
401 #t))
402 (delete 'configure)
403 (add-before
404 'build 'patch-exec-paths
405 (lambda* (#:key inputs #:allow-other-keys)
406 (let ((perl (assoc-ref inputs "perl")))
407 (make-file-writable "lisp/magit-sequence.el")
408 (emacs-substitute-variables "lisp/magit-sequence.el"
409 ("magit-perl-executable" (string-append perl "/bin/perl")))
410 #t))))))
411 (home-page "https://magit.vc/")
412 (synopsis "Emacs interface for the Git version control system")
413 (description
414 "With Magit, you can inspect and modify your Git repositories with Emacs.
415 You can review and commit the changes you have made to the tracked files, for
416 example, and you can browse the history of past changes. There is support for
417 cherry picking, reverting, merging, rebasing, and other common Git
418 operations.")
419 (license license:gpl3+))))
420
421 (define-public emacs-magit-svn
422 (let ((commit "9e33ceee32f665db59909e1c00a667ccdd04178f"))
423 (package
424 (name "emacs-magit-svn")
425 (version (git-version "2.2.1" "2" commit))
426 (source (origin
427 (method git-fetch)
428 (uri (git-reference
429 (url "https://github.com/magit/magit-svn")
430 (commit commit)))
431 (file-name (git-file-name name version))
432 (sha256
433 (base32
434 "1mlqz8dh6jy5rv72lgkxv253dgh73fmbaidskicypapvbl3lr6xy"))))
435 (build-system emacs-build-system)
436 (propagated-inputs `(("dash" ,emacs-dash)
437 ("with-editor" ,emacs-with-editor)
438 ("magit" ,emacs-magit)
439 ("transient" ,emacs-transient)))
440 (home-page "https://github.com/magit/magit-svn")
441 (synopsis "Git-SVN extension to Magit")
442 (description
443 "This package is an extension to Magit, the Git Emacs mode, providing
444 support for Git-SVN.")
445 (license license:gpl3+))))
446
447 (define-public emacs-magit-popup
448 (package
449 (name "emacs-magit-popup")
450 (version "2.12.5")
451 (source (origin
452 (method git-fetch)
453 (uri (git-reference
454 (url "https://github.com/magit/magit-popup.git")
455 (commit (string-append "v" version))))
456 (file-name (git-file-name name version))
457 (sha256
458 (base32
459 "13riknyqr6vxqll80sfhvz165flvdz367rbd0pr5slb01bnfsi2i"))))
460 (build-system emacs-build-system)
461 (arguments
462 `(#:phases
463 (modify-phases %standard-phases
464 (add-before 'install 'make-info
465 (lambda _
466 (invoke "make" "info"))))))
467 (native-inputs
468 `(("texinfo" ,texinfo)))
469 (propagated-inputs
470 `(("emacs-dash" ,emacs-dash)))
471 (home-page "https://github.com/magit/magit-popup")
472 (synopsis "Define prefix-infix-suffix command combos")
473 (description
474 "This library implements a generic interface for toggling switches and
475 setting options and then invoking an Emacs command which does something with
476 these arguments. The prototypical use is for the command to call an external
477 process, passing on the arguments as command line arguments.")
478 (license license:gpl3+)))
479
480 (define-public emacs-magit-annex
481 (let ((commit "ef5dce6267e9118a5eca82a22bcad0b67826c23a")
482 (revision "1"))
483 (package
484 (name "emacs-magit-annex")
485 (version (git-version "1.7.1" revision commit))
486 (source (origin
487 (method git-fetch)
488 (uri (git-reference
489 (url "https://github.com/magit/magit-annex.git")
490 (commit commit)))
491 (file-name (git-file-name name version))
492 (sha256
493 (base32
494 "0vzkydgl889cq173zjl89g2vrddb9abc4a8gljiz3b4a7n5b1nrd"))))
495 (build-system emacs-build-system)
496 (propagated-inputs
497 `(("magit" ,emacs-magit)
498 ("transient" ,emacs-transient)))
499 (home-page "https://github.com/magit/magit-annex/")
500 (synopsis "Git-annex support for Magit")
501 (description
502 "Magit-annex adds a few git-annex operations to the Magit interface.")
503 (license license:gpl3+))))
504
505 (define-public emacs-minions
506 (package
507 (name "emacs-minions")
508 (version "0.3.2")
509 (source (origin
510 (method git-fetch)
511 (uri (git-reference
512 (url "https://github.com/tarsius/minions.git")
513 (commit (string-append "v" version))))
514 (file-name (git-file-name name version))
515 (sha256
516 (base32
517 "16rplpbfy3dnvqqgavk9jb1f1ihr5875zlixd4zxb1pqxs3jkgw3"))))
518 (build-system emacs-build-system)
519 (propagated-inputs
520 `(("emacs-dash" ,emacs-dash)))
521 (home-page "https://github.com/tarsius/minions")
522 (synopsis "Minor-mode menu for the mode line")
523 (description
524 "This package implements a menu that lists enabled minor-modes, as well
525 as commonly but not currently enabled minor-modes. It can be used to toggle
526 local and global minor-modes, to access mode-specific menus, and to get help
527 about modes.
528
529 This menu is intended as a replacement for the incomplete yet wide list of
530 enabled minor-modes that is displayed in the mode line by default. To use the
531 menu like this, enable Minions mode.
532
533 Alternatively the menu can be bound globally, for example:
534 @code{(global-set-key [S-down-mouse-3] 'minions-minor-modes-menu)}.")
535 (license license:gpl3+)))
536
537 (define-public emacs-treepy
538 (package
539 (name "emacs-treepy")
540 (version "0.1.1")
541 (source (origin
542 (method git-fetch)
543 (uri (git-reference
544 (url "https://github.com/volrath/treepy.el.git")
545 (commit version)))
546 (file-name (git-file-name name version))
547 (sha256
548 (base32
549 "04zwm6gx9pxfvgfkizx6pvb1ql8pqxjyzqp8flz0432x0gq5nlxk"))))
550 (build-system emacs-build-system)
551 (home-page
552 "https://github.com/volrath/treepy.el")
553 (synopsis "Tree traversal tools")
554 (description
555 "Generic tools for recursive and iterative tree traversal based on
556 clojure.walk and clojure.zip respectively.")
557 (license license:gpl3+)))
558
559 (define-public emacs-graphql
560 (package
561 (name "emacs-graphql")
562 (version "0.1.1")
563 (source (origin
564 (modules '((guix build utils)))
565 ;; Remove examples file with references to external packages as
566 ;; they do not exist at compilation time.
567 (snippet
568 '(begin (delete-file "examples.el")
569 #t))
570 (method git-fetch)
571 (uri (git-reference
572 (url "https://github.com/vermiculus/graphql.el.git")
573 (commit version)))
574 (file-name (git-file-name name version))
575 (sha256
576 (base32
577 "0sp0skc1rnhi39szfbq1i99pdgd3bhn4c15cff05iqhjy2d4hniw"))))
578 (build-system emacs-build-system)
579 (home-page
580 "https://github.com/vermiculus/graphql.el")
581 (synopsis "GraphQL utilities")
582 (description
583 "GraphQL.el provides a generally-applicable domain-specific language for
584 creating and executing GraphQL queries against your favorite web services.
585 GraphQL is a data query language and runtime designed and used to request and
586 deliver data to mobile and web apps.")
587 (license license:gpl3+)))
588
589 (define-public emacs-ghub
590 ;; We need a newer commit to avoid problems in emacs-forge.
591 (let ((commit "e19cd86ca4768a6d89285123933baa3f1460d696")
592 (revision "2"))
593 (package
594 (name "emacs-ghub")
595 (version (git-version "3.2.0" revision commit))
596 (source (origin
597 (method git-fetch)
598 (uri (git-reference
599 (url "https://github.com/magit/ghub")
600 (commit commit)))
601 (file-name (git-file-name name version))
602 (sha256
603 (base32
604 "1d6f8sxlsl0fpkzwbpnaw77d1a5pkg63zfvf6a2fxir357lbdizx"))))
605 (build-system emacs-build-system)
606 (arguments
607 `(#:phases
608 (modify-phases %standard-phases
609 (add-before 'install 'make-info
610 (lambda _
611 (invoke "make" "info"))))))
612 (native-inputs
613 `(("texinfo" ,texinfo)))
614 (propagated-inputs
615 `(("dash" ,emacs-dash)
616 ("emacs-let-alist" ,emacs-let-alist)
617 ("treepy" ,emacs-treepy)))
618 (home-page "https://github.com/magit/ghub")
619 (synopsis "Emacs client libraries for the APIs of various Git forges")
620 (description
621 "Ghub provides basic support for using the APIs of various Git forges from
622 Emacs packages. It supports the REST APIs of Github, Github GraphQL, Gitlab,
623 Gitea, Gogs and Bitbucket. It abstracts access to API resources using only a
624 handful of functions that are not resource-specific.")
625 (license license:gpl3+))))
626
627 (define-public emacs-typit
628 ;; Last release is from 2017.
629 (let ((commit "231cb7df43253b84323520b8ed70f128d37003af")
630 (revision "1"))
631 (package
632 (name "emacs-typit")
633 (version (git-version "0.2.1" revision commit))
634 (source
635 (origin
636 (method git-fetch)
637 (uri (git-reference
638 (url "https://github.com/mrkkrp/typit.git")
639 (commit commit)))
640 (file-name (git-file-name name version))
641 (sha256
642 (base32 "1savrxs7xl92ifyxpxkkzv2didr7lb405h0dwz1bs1wldr5fb53f"))))
643 (build-system emacs-build-system)
644 (arguments
645 `(#:phases
646 (modify-phases %standard-phases
647 (add-after 'install 'install-dictionaries
648 (lambda* (#:key outputs #:allow-other-keys)
649 (let* ((out (assoc-ref outputs "out"))
650 (site-lisp
651 (string-append
652 out "/share/emacs/site-lisp/dict")))
653 (mkdir-p site-lisp)
654 (copy-recursively "dict" site-lisp)
655 #t))))))
656 (propagated-inputs
657 `(("emacs-f" ,emacs-f)
658 ("emacs-mmt" ,emacs-mmt)))
659 (home-page "https://github.com/mrkkrp/typit")
660 (synopsis "Typing game for Emacs with two difficulties")
661 (description "Emacs Typit is a typing game for Emacs. Words that are
662 picked randomly from the most frequent words in language you're practicing,
663 until time is up.")
664 (license license:gpl3+))))
665
666 (define-public emacs-scribble-mode
667 (let ((commit "217945d54de5e4bb207033f2116baa28f5c5ecf2")
668 (revision "2"))
669 (package
670 (name "emacs-scribble-mode")
671 (version (git-version "0.1" revision commit))
672 (source (origin
673 (method git-fetch)
674 (uri (git-reference
675 (url "https://github.com/emacs-pe/scribble-mode.git")
676 (commit commit)))
677 (file-name (git-file-name name version))
678 (sha256
679 (base32
680 "1s5ccw1a5ack01wd94ywfcrar9j98agchwdh30q7iyxr0d2z4sii"))))
681 (build-system emacs-build-system)
682 (home-page "https://github.com/emacs-pe/scribble-mode")
683 (synopsis "Emacs mode for editing the Scribble documentation syntax.")
684 (description
685 "This package provides basic syntax highlighting and editing support
686 for editing Racket's Scribble documentation syntax in Emacs.")
687 (license license:gpl3+))))
688
689 (define-public emacs-shroud
690 (package
691 (name "emacs-shroud")
692 (version "1.105")
693 (source
694 (origin
695 (method git-fetch)
696 (uri (git-reference
697 (url "https://git.savannah.gnu.org/git/emacs-shroud.git")
698 (commit version)))
699 (file-name (git-file-name name version))
700 (sha256
701 (base32 "0q2pb3w8s833fjhkzicciw2php4lsnismad1dnwgp2lcway757ra"))))
702 (build-system gnu-build-system)
703 (native-inputs
704 `(("autoconf" ,autoconf)
705 ("automake" ,automake)
706 ("texinfo" ,texinfo)
707 ("perl" ,perl)
708 ("emacs-minimal" ,emacs-minimal)))
709 (propagated-inputs
710 `(("emacs-bui" ,emacs-bui)
711 ("emacs-dash" ,emacs-dash)
712 ("emacs-f" ,emacs-f)
713 ("emacs-s" ,emacs-s)
714 ("gnupg" ,gnupg)
715 ("shroud" ,shroud)))
716 (home-page "https://www.nongnu.org/emacs-shroud")
717 (synopsis "Emacs interface to the Shroud password manager")
718 (description
719 "This package provides an Emacs interface to the Shroud password manager,
720 using the Buffers User Interface library. You can view, copy, and edit secrets
721 from within Emacs.")
722 (license license:gpl3+)))
723
724 (define-public emacs-unpackaged-el
725 (let ((commit "746801a677ada6cd6fa076e423aa0953779f3fad")
726 (revision "3"))
727 (package
728 (name "emacs-unpackaged-el")
729 (version (git-version "0" revision commit))
730 (source
731 (origin
732 (method git-fetch)
733 (uri (git-reference
734 (url "https://github.com/alphapapa/unpackaged.el")
735 (commit commit)))
736 (file-name (git-file-name name version))
737 (sha256
738 (base32
739 "0jvb2ci0h0lj368qhbff3pzkxj3nhlligpbkjzi525k9rkjgm7l8"))))
740 (build-system emacs-build-system)
741 (propagated-inputs
742 `(("emacs-dash" ,emacs-dash)
743 ("emacs-org" ,emacs-org)
744 ("emacs-s" ,emacs-s)
745 ("emacs-hydra" ,emacs-hydra)
746 ("emacs-use-package" ,emacs-use-package)))
747 (arguments
748 `(#:phases
749 (modify-phases %standard-phases
750 (add-after 'unpack 'require-hydra
751 (lambda _
752 (substitute* "unpackaged.el"
753 ((";;; Code:") ";;; Code:\n(require 'hydra)"))
754 #t)))))
755 (home-page "https://github.com/alphapapa/unpackaged.el")
756 (synopsis "Useful snippets of Emacs Lisp code")
757 (description "This package provides Emacs Lisp utilities for a variety
758 of tasks, including version control, task management, and regex-based
759 replacement.")
760 (license license:gpl3+))))
761
762 (define-public emacs-haskell-mode
763 (package
764 (name "emacs-haskell-mode")
765 (version "16.1")
766 (source (origin
767 (method git-fetch)
768 (uri (git-reference
769 (url "https://github.com/haskell/haskell-mode")
770 (commit (string-append "v" version))))
771 (file-name (git-file-name name version))
772 (sha256
773 (base32 "1qk36y0v9fzass6785il65c6wb5cfj4ihhwkvgnzmbafpa8p4dvq"))
774 (patches
775 (search-patches ; backport test failure fixes
776 "haskell-mode-unused-variables.patch"
777 "haskell-mode-make-check.patch"))))
778 (inputs
779 `(("emacs-el-search" ,emacs-el-search) ; for tests
780 ("emacs-stream" ,emacs-stream))) ; for tests
781 (propagated-inputs
782 `(("emacs-dash" ,emacs-dash)))
783 (native-inputs
784 `(("emacs" ,emacs-minimal)
785 ("texinfo" ,texinfo)))
786 (build-system gnu-build-system)
787 (arguments
788 `(#:make-flags (list (string-append "EMACS="
789 (assoc-ref %build-inputs "emacs")
790 "/bin/emacs"))
791 #:modules ((ice-9 match)
792 (srfi srfi-26)
793 ,@%gnu-build-system-modules)
794 #:phases
795 (modify-phases %standard-phases
796 (delete 'configure)
797 (add-before
798 'build 'pre-build
799 (lambda* (#:key inputs #:allow-other-keys)
800 (define (el-dir store-dir)
801 (match (find-files store-dir "\\.el$")
802 ((f1 f2 ...) (dirname f1))
803 (_ "")))
804
805 (let ((sh (string-append (assoc-ref inputs "bash") "/bin/sh")))
806 (define emacs-prefix? (cut string-prefix? "emacs-" <>))
807
808 (setenv "SHELL" "sh")
809 (setenv "EMACSLOADPATH"
810 (string-concatenate
811 (map (match-lambda
812 (((? emacs-prefix? name) . dir)
813 (string-append (el-dir dir) ":"))
814 (_ ""))
815 inputs)))
816 (substitute* (find-files "." "\\.el") (("/bin/sh") sh))
817 ;; embed filename to fix test failure
818 (let ((file "tests/haskell-cabal-tests.el"))
819 (substitute* file
820 (("\\(buffer-file-name\\)")
821 (format #f "(or (buffer-file-name) ~s)" file))))
822 #t)))
823 (replace
824 'install
825 (lambda* (#:key outputs #:allow-other-keys)
826 (let* ((out (assoc-ref outputs "out"))
827 (el-dir (string-append out "/share/emacs/site-lisp"))
828 (doc (string-append
829 out "/share/doc/haskell-mode-" ,version))
830 (info (string-append out "/share/info")))
831 (define (copy-to-dir dir files)
832 (for-each (lambda (f)
833 (install-file f dir))
834 files))
835
836 (with-directory-excursion "doc"
837 (invoke "makeinfo" "haskell-mode.texi")
838 (install-file "haskell-mode.info" info))
839 (copy-to-dir doc '("CONTRIBUTING.md" "NEWS" "README.md"))
840 (copy-to-dir el-dir (find-files "." "\\.elc?"))
841 ;; These are part of other packages.
842 (with-directory-excursion el-dir
843 (for-each delete-file '("dash.el" "ert.el")))
844 #t))))))
845 (home-page "https://github.com/haskell/haskell-mode")
846 (synopsis "Haskell mode for Emacs")
847 (description
848 "This is an Emacs mode for editing, debugging and developing Haskell
849 programs.")
850 (license license:gpl3+)))
851
852 (define-public emacs-dante
853 (let ((commit "38b589417294c7ea44bf65b73b8046d950f9531b")
854 (revision "1"))
855 (package
856 (name "emacs-dante")
857 (version (git-version "1.6" revision commit))
858 (source (origin
859 (method git-fetch)
860 (uri (git-reference
861 (url "https://github.com/jyp/dante")
862 (commit commit)))
863 (sha256
864 (base32
865 "1mnmn635552zlwd4zr68jbvdjipl6gi4mi6wiyck28fsmq8kw96h"))
866 (file-name (git-file-name name version))))
867 (build-system emacs-build-system)
868 (propagated-inputs
869 `(("emacs-dash" ,emacs-dash)
870 ("emacs-f" ,emacs-f)
871 ("emacs-flycheck" ,emacs-flycheck)
872 ("emacs-haskell-mode" ,emacs-haskell-mode)
873 ("emacs-s" ,emacs-s)
874 ("emacs-company" ,emacs-company)
875 ("emacs-lcr" ,emacs-lcr)))
876 (home-page "https://github.com/jyp/dante")
877 (synopsis "Minor mode for interactive Haskell")
878 (description
879 "This package provides a minor mode for Haskell development that
880 supports type hints, definition-jumping, completion, and more.")
881 (license license:gpl3+))))
882
883 (define-public emacs-flycheck
884 ;; last release version was more than 300 commits ago
885 (let ((commit "0006a59259ebd02c9199ddc87f0e3ce22793a2ea")
886 (revision "1"))
887 (package
888 (name "emacs-flycheck")
889 (version (git-version "31" revision commit))
890 (source (origin
891 (method git-fetch)
892 (uri (git-reference
893 (url "https://github.com/flycheck/flycheck/")
894 (commit commit)))
895 (sha256
896 (base32
897 "09q3h6ldpg528cfbmsbb1x2vf5hmzgm3fshqn6kdy144jxcdjlf1"))
898 (file-name (git-file-name name version))))
899 (build-system emacs-build-system)
900 (propagated-inputs
901 `(("emacs-dash" ,emacs-dash)))
902 (native-inputs
903 `(("emacs-shut-up" ,emacs-shut-up)))
904 (arguments
905 `(#:phases
906 (modify-phases %standard-phases
907 (add-after 'unpack 'change-flycheck-version
908 (lambda _
909 (substitute* "flycheck.el"
910 (("\\(pkg-info-version-info 'flycheck\\)")
911 (string-append "\"" ,version "\"")))
912 #t)))
913 ;; TODO: many failing tests
914 #:tests? #f
915 #:test-command '("emacs" "-Q" "--batch" "-L" "."
916 "--load" "test/flycheck-test"
917 "--load" "test/run.el"
918 "-f" "flycheck-run-tests-main")))
919 (home-page "https://www.flycheck.org")
920 (synopsis "On-the-fly syntax checking")
921 (description
922 "This package provides on-the-fly syntax checking for GNU Emacs. It is a
923 replacement for the older Flymake extension which is part of GNU Emacs, with
924 many improvements and additional features.
925
926 Flycheck provides fully-automatic, fail-safe, on-the-fly background syntax
927 checking for over 30 programming and markup languages with more than 70
928 different tools. It highlights errors and warnings inline in the buffer, and
929 provides an optional IDE-like error list.")
930 (license license:gpl3+)))) ;+GFDLv1.3+ for the manual
931
932 (define-public emacs-a
933 (package
934 (name "emacs-a")
935 (version "0.1.1")
936 (source (origin
937 (method git-fetch)
938 (uri (git-reference
939 (url "https://github.com/plexus/a.el.git")
940 (commit (string-append "v" version))))
941 (file-name (git-file-name name version))
942 (sha256
943 (base32
944 "00v9w6qg3bkwdhypq0ssf0phdh0f4bcq59c20lngd6vhk0204dqi"))))
945 (build-system emacs-build-system)
946 (home-page "https://github.com/plexus/a.el/")
947 (synopsis
948 "Emacs library for dealing with association lists and hash tables")
949 (description "@code{emacs-a} provides Emacs Lisp functions for dealing
950 with associative structures in a uniform and functional way. These functions
951 can take association lists, hash tables, and in some cases vectors (where the
952 index is considered the key).")
953 (license license:gpl3+)))
954
955 (define-public emacs-ace-jump-mode
956 (package
957 (name "emacs-ace-jump-mode")
958 (version "2.0")
959 (home-page "https://github.com/winterTTr/ace-jump-mode")
960 (source (origin
961 (method git-fetch)
962 (uri (git-reference
963 (url home-page)
964 (commit (string-append "v" version))))
965 (sha256
966 (base32
967 "1bwvzh056ls2v7y26a0s4j5mj582dmds04lx4x6iqihs04ss74bb"))
968 (file-name (git-file-name name version))))
969 (build-system emacs-build-system)
970 (synopsis "Cursor location minor mode for fast navigation")
971 (description "Ace-jump-mode is a fast/direct cursor location minor
972 mode. It creates an N-Branch search tree internally and marks all
973 the possible position with predefined keys in within the whole Emacs
974 view. This allows you to move to the character, word, or line almost
975 directly.")
976 (license license:gpl3+)))
977
978 (define-public emacs-anaphora
979 (package
980 (name "emacs-anaphora")
981 (version "1.0.4")
982 (source
983 (origin
984 (method git-fetch)
985 (uri (git-reference
986 (url "https://github.com/rolandwalker/anaphora.git")
987 (commit (string-append "v" version))))
988 (file-name (git-file-name name version))
989 (sha256
990 (base32
991 "11fgiy029sqz7nvdm7dcal95lacryz9zql0x5h05z48nrrcl4bib"))))
992 (build-system emacs-build-system)
993 (home-page "https://github.com/rolandwalker/anaphora/")
994 (synopsis "Anaphoric expressions for Emacs Lisp")
995 (description "@code{emacs-anaphora} implements anaphoric expressions for
996 Emacs Lisp.
997
998 Anaphoric expressions implicitly create one or more temporary variables which
999 can be referred to during the expression. This technique can improve clarity
1000 in certain cases. It also enables recursion for anonymous functions.")
1001 (license license:public-domain)))
1002
1003 (define-public emacs-xr
1004 (package
1005 (name "emacs-xr")
1006 (version "1.19")
1007 (source
1008 (origin
1009 (method url-fetch)
1010 (uri (string-append "https://elpa.gnu.org/packages/xr-" version ".tar"))
1011 (sha256
1012 (base32 "1aa3iqh0r635jw8k89zh8y4am9d4hfrqpk9mrdh2b51invjn8llq"))))
1013 (build-system emacs-build-system)
1014 (home-page "https://elpa.gnu.org/packages/xr.html")
1015 (synopsis "Convert string regexp to rx notation")
1016 (description
1017 "This is an inverse companion to the @code{rx} package for translating
1018 regexps in string form to the @code{rx} notation. Its chief uses are:
1019
1020 @itemize
1021 @item Migrating existing code to @code{rx} form, for better readability and
1022 maintainability
1023 @item Understanding complex regexp strings and finding errors in them
1024 @end itemize
1025
1026 In addition to Emacs regexps, this package can also parse and troubleshoot
1027 skip set strings, which are arguments to @code{skip-chars-forward} and
1028 @code{skip-chars-backward}.")
1029 (license license:gpl3+)))
1030
1031 (define-public emacs-ample-regexps
1032 (let ((commit "cbe91e148cac1ee8e223874dc956ed4cf607f046")
1033 (revision "1"))
1034 (package
1035 (name "emacs-ample-regexps")
1036 (version (git-version "0.1" revision commit))
1037 (source
1038 (origin
1039 (method git-fetch)
1040 (uri (git-reference
1041 (url "https://github.com/immerrr/ample-regexps.el")
1042 (commit commit)))
1043 (file-name (git-file-name name version))
1044 (sha256
1045 (base32
1046 "1mm4icrwx4mscp7kbbmlc34995r164dhrfczn5ybkyxjzzf76jn1"))))
1047 (build-system emacs-build-system)
1048 (native-inputs
1049 `(("ert-runner" ,emacs-ert-runner)))
1050 (arguments
1051 `(#:tests? #t
1052 #:test-command '("ert-runner" "-l" "ample-regexps")))
1053 (home-page "https://github.com/immerrr/ample-regexps.el")
1054 (synopsis "Compose and reuse Emacs regexps")
1055 (description
1056 "This package allows common parts of regexps to be easily picked out
1057 and reused.")
1058 (license license:gpl3+))))
1059
1060 (define-public emacs-ample-theme
1061 (let ((commit "536966adf882446165a1f756830028faa792c7a9")
1062 (revision "1"))
1063 (package
1064 (name "emacs-ample-theme")
1065 (version (git-version "0.0.0" revision commit))
1066 (source (origin
1067 (method git-fetch)
1068 (uri (git-reference
1069 (url "https://github.com/jordonbiondo/ample-theme")
1070 (commit commit)))
1071 (file-name (git-file-name name version))
1072 (sha256
1073 (base32
1074 "07bpv8dag40qjnm5000pgzpazj4whfxf93x2vprz26sg3mjfx0nf"))))
1075 (build-system emacs-build-system)
1076 (home-page "https://github.com/jordonbiondo/ample-theme")
1077 (synopsis "Theme for Emacs providing dark, light, and flat versions")
1078 (description "Ample themes is a collection of three themes sharing a
1079 similar pallet with a light, dark and flat versions with a focus on being easy
1080 on the eyes during night and day. They only support GUI and 256 colour
1081 terminals.")
1082 (license license:gpl3+))))
1083
1084 (define-public emacs-reformatter
1085 (package
1086 (name "emacs-reformatter")
1087 (version "0.4")
1088 (source
1089 (origin
1090 (method git-fetch)
1091 (uri (git-reference
1092 (url "https://github.com/purcell/reformatter.el.git")
1093 (commit version)))
1094 (file-name (git-file-name name version))
1095 (sha256
1096 (base32
1097 "0hhy6x1bkwlhdlarsgm06g3am4yh02yqv8qs34szpzgy53x84qah"))))
1098 (build-system emacs-build-system)
1099 (home-page "https://github.com/purcell/reformatter.el")
1100 (synopsis "Define commands which run reformatters on the current buffer")
1101 (description
1102 "This library lets elisp authors easily define an idiomatic command to
1103 reformat the current buffer using a command-line program, together with an
1104 optional minor mode which can apply this command automatically on save.")
1105 (license license:gpl3+)))
1106
1107 (define-public emacs-relint
1108 (package
1109 (name "emacs-relint")
1110 (version "1.16")
1111 (source
1112 (origin
1113 (method url-fetch)
1114 (uri (string-append
1115 "https://elpa.gnu.org/packages/relint-" version ".tar"))
1116 (sha256
1117 (base32 "0cwk806g2kq60sql8sic2zdn63l1g2pzdiklcv0w8l2k9wssknnx"))))
1118 (build-system emacs-build-system)
1119 (propagated-inputs `(("emacs-xr" ,emacs-xr)))
1120 (home-page "https://github.com/mattiase/relint")
1121 (synopsis "Elisp regexp mistake finder")
1122 (description
1123 "Relint (regular expression lint) scans Elisp files for mistakes in
1124 regexps, including deprecated syntax and bad practice. It also checks the
1125 regexp-like arguments to @code{skip-chars-forward} and
1126 @code{skip-chars-backward}.")
1127 (license license:gpl3+)))
1128
1129 (define-public emacs-bug-hunter
1130 (let ((commit "b88d981afa9154b236c5a3a83b50d5889d46c6a7")
1131 (revision "1"))
1132 (package
1133 (name "emacs-bug-hunter")
1134 (version (git-version "1.3.1" revision commit))
1135 (source
1136 (origin
1137 (method git-fetch)
1138 (uri (git-reference
1139 (url "https://github.com/Malabarba/elisp-bug-hunter.git")
1140 (commit commit)))
1141 (file-name (git-file-name name commit))
1142 (sha256
1143 (base32
1144 "134fj493sdn93pyyac8rpz1fzahzmayvphsrmqp3wvgysmfqm38l"))))
1145 (build-system emacs-build-system)
1146 (propagated-inputs
1147 `(("emacs-seq" ,emacs-seq)))
1148 (home-page "https://github.com/Malabarba/elisp-bug-hunter")
1149 (synopsis "Hunt down errors by bisecting elisp files")
1150 (description
1151 "The Bug Hunter is an Emacs library that finds the source of an error
1152 or unexpected behavior inside an elisp configuration file (typically
1153 @file{init.el} or @file{.emacs}).")
1154 (license license:gpl3+))))
1155
1156 \f
1157 ;;;
1158 ;;; Web browsing.
1159 ;;;
1160
1161 (define-public emacs-w3m
1162 ;; Emacs-w3m follows a "rolling release" model.
1163 (package
1164 (name "emacs-w3m")
1165 (version "2018-11-11")
1166 (source (origin
1167 (method cvs-fetch)
1168 (uri (cvs-reference
1169 (root-directory
1170 ":pserver:anonymous@cvs.namazu.org:/storage/cvsroot")
1171 (module "emacs-w3m")
1172 (revision version)))
1173 (file-name (string-append name "-" version "-checkout"))
1174 (sha256
1175 (base32
1176 "0nvahdbjs12zg7zsk4gql02mvnv56cf1rwj2f5p42lwp3xvswiwp"))))
1177 (build-system gnu-build-system)
1178 (native-inputs `(("autoconf" ,autoconf)
1179 ("texinfo" ,texinfo)
1180 ("emacs" ,emacs-minimal)))
1181 (inputs `(("w3m" ,w3m)
1182 ("imagemagick" ,imagemagick)))
1183 (arguments
1184 `(#:modules ((guix build gnu-build-system)
1185 (guix build utils)
1186 (guix build emacs-utils))
1187 #:imported-modules (,@%gnu-build-system-modules
1188 (guix build emacs-utils))
1189 #:configure-flags
1190 (let ((out (assoc-ref %outputs "out")))
1191 (list (string-append "--with-lispdir="
1192 out "/share/emacs/site-lisp")
1193 (string-append "--with-icondir="
1194 out "/share/images/emacs-w3m")
1195 ;; Leave .el files uncompressed, otherwise GC can't
1196 ;; identify run-time dependencies. See
1197 ;; <http://lists.gnu.org/archive/html/guix-devel/2015-12/msg00208.html>
1198 "--without-compress-install"))
1199 #:tests? #f ; no check target
1200 #:phases
1201 (modify-phases %standard-phases
1202 (add-after 'unpack 'autoconf
1203 (lambda _
1204 (invoke "autoconf")))
1205 (add-before 'configure 'support-emacs!
1206 (lambda _
1207 ;; For some reason 'AC_PATH_EMACS' thinks that 'Emacs 26' is
1208 ;; unsupported.
1209 (substitute* "configure"
1210 (("EMACS_FLAVOR=unsupported")
1211 "EMACS_FLAVOR=emacs"))
1212 #t))
1213 (add-before 'build 'patch-exec-paths
1214 (lambda* (#:key inputs outputs #:allow-other-keys)
1215 (let ((out (assoc-ref outputs "out"))
1216 (w3m (assoc-ref inputs "w3m"))
1217 (imagemagick (assoc-ref inputs "imagemagick"))
1218 (coreutils (assoc-ref inputs "coreutils")))
1219 (make-file-writable "w3m.el")
1220 (emacs-substitute-variables "w3m.el"
1221 ("w3m-command" (string-append w3m "/bin/w3m"))
1222 ("w3m-touch-command"
1223 (string-append coreutils "/bin/touch"))
1224 ("w3m-icon-directory"
1225 (string-append out "/share/images/emacs-w3m")))
1226 (make-file-writable "w3m-image.el")
1227 (emacs-substitute-variables "w3m-image.el"
1228 ("w3m-imagick-convert-program"
1229 (string-append imagemagick "/bin/convert"))
1230 ("w3m-imagick-identify-program"
1231 (string-append imagemagick "/bin/identify")))
1232 #t)))
1233 (replace 'install
1234 (lambda* (#:key outputs #:allow-other-keys)
1235 (invoke "make" "install" "install-icons")
1236 (with-directory-excursion
1237 (string-append (assoc-ref outputs "out")
1238 "/share/emacs/site-lisp")
1239 (for-each delete-file '("ChangeLog" "ChangeLog.1"))
1240 (symlink "w3m-load.el" "w3m-autoloads.el")
1241 #t))))))
1242 (home-page "http://emacs-w3m.namazu.org/")
1243 (synopsis "Simple Web browser for Emacs based on w3m")
1244 (description
1245 "Emacs-w3m is an emacs interface for the w3m web browser.")
1246 (license license:gpl2+)))
1247
1248 (define-public emacs-wget
1249 (package
1250 (name "emacs-wget")
1251 (version "0.5.0")
1252 (source (origin
1253 (method url-fetch)
1254 (uri (string-append "mirror://debian/pool/main/w/wget-el/wget-el_"
1255 version ".orig.tar.gz"))
1256 (sha256
1257 (base32 "10byvyv9dk0ib55gfqm7bcpxmx2qbih1jd03gmihrppr2mn52nff"))))
1258 (build-system gnu-build-system)
1259 (inputs `(("wget" ,wget)))
1260 (native-inputs `(("emacs" ,emacs-minimal)))
1261 (arguments
1262 `(#:modules ((guix build gnu-build-system)
1263 (guix build utils)
1264 (guix build emacs-utils))
1265 #:imported-modules (,@%gnu-build-system-modules
1266 (guix build emacs-utils))
1267 #:tests? #f ; no check target
1268 #:phases
1269 (modify-phases %standard-phases
1270 (replace 'configure
1271 (lambda* (#:key outputs #:allow-other-keys)
1272 (substitute* "Makefile"
1273 (("/usr/local") (assoc-ref outputs "out"))
1274 (("/site-lisp/emacs-wget") "/site-lisp"))
1275 #t))
1276 (add-before 'build 'patch-exec-paths
1277 (lambda* (#:key inputs outputs #:allow-other-keys)
1278 (let ((wget (assoc-ref inputs "wget")))
1279 (emacs-substitute-variables "wget.el"
1280 ("wget-command" (string-append wget "/bin/wget"))))
1281 #t))
1282 (add-after 'install 'post-install
1283 (lambda* (#:key outputs #:allow-other-keys)
1284 (emacs-generate-autoloads
1285 "wget" (string-append (assoc-ref outputs "out")
1286 "/share/emacs/site-lisp/"))
1287 #t)))))
1288 (home-page "https://www.emacswiki.org/emacs/EmacsWget")
1289 (synopsis "Simple file downloader for Emacs based on wget")
1290 (description
1291 "Emacs-wget is an emacs interface for the wget file downloader.")
1292 (license license:gpl2+)))
1293
1294 (define-public emacs-eww-lnum
1295 (package
1296 (name "emacs-eww-lnum")
1297 (version "1.1")
1298 (source (origin
1299 (method git-fetch)
1300 (uri (git-reference
1301 (url "https://github.com/m00natic/eww-lnum.git")
1302 (commit version)))
1303 (file-name (git-file-name name version))
1304 (sha256
1305 (base32
1306 "0gs6bi3s2sszc6v2b26929azmn5513kvyin99n4d0ark1jdbjmv2"))))
1307 (build-system emacs-build-system)
1308 (home-page "https://github.com/m00natic/eww-lnum")
1309 (synopsis "Conkeror-like functionality for Eww")
1310 (description "This is extension to the Emacs browser Eww that adds
1311 Conkeror-like functionality. In short, currently visible links, forms,
1312 buttons are temporarily assigned numbers with which the former can be
1313 immediately activated. Also filtering can be applied so selection can be
1314 incrementally confined in Isearch manner.")
1315 (license license:gpl3+)))
1316
1317
1318 \f
1319 ;;;
1320 ;;; Multimedia.
1321 ;;;
1322
1323 (define-public emacs-emms
1324 (package
1325 (name "emacs-emms")
1326 (version "5.4")
1327 (source
1328 (origin
1329 (method url-fetch)
1330 (uri (string-append "mirror://gnu/emms/emms-" version ".tar.gz"))
1331 (sha256
1332 (base32 "1nd7sb6pva7qb1ki6w0zhd6zvqzd7742kaqi0f3v4as5jh09l6nr"))
1333 (modules '((guix build utils)))
1334 (snippet
1335 '(begin
1336 (substitute* "Makefile"
1337 (("/usr/bin/install-info")
1338 ;; No need to use 'install-info' since it would create a
1339 ;; useless 'dir' file.
1340 "true")
1341 (("^INFODIR=.*")
1342 ;; Install Info files to $out/share/info, not $out/info.
1343 "INFODIR := $(PREFIX)/share/info\n")
1344 (("/site-lisp/emms")
1345 ;; Install directly in share/emacs/site-lisp, not in a
1346 ;; sub-directory.
1347 "/site-lisp")
1348 (("^all: (.*)\n" _ rest)
1349 ;; Build 'emms-print-metadata'.
1350 (string-append "all: " rest " emms-print-metadata\n")))
1351 #t))))
1352 (build-system gnu-build-system)
1353 (arguments
1354 `(#:modules ((guix build gnu-build-system)
1355 (guix build utils)
1356 (guix build emacs-utils)
1357 (ice-9 ftw))
1358 #:imported-modules (,@%gnu-build-system-modules
1359 (guix build emacs-utils))
1360
1361 #:phases
1362 (modify-phases %standard-phases
1363 (replace 'configure
1364 (lambda* (#:key inputs outputs #:allow-other-keys)
1365 (let ((out (assoc-ref outputs "out"))
1366 (flac (assoc-ref inputs "flac"))
1367 (vorbis (assoc-ref inputs "vorbis-tools"))
1368 (alsa (assoc-ref inputs "alsa-utils"))
1369 (mpg321 (assoc-ref inputs "mpg321"))
1370 (mp3info (assoc-ref inputs "mp3info"))
1371 (mutagen (assoc-ref inputs "mutagen"))
1372 (opus (assoc-ref inputs "opus-tools")))
1373 ;; Specify the installation directory.
1374 (substitute* "Makefile"
1375 (("PREFIX=.*$")
1376 (string-append "PREFIX := " out "\n")))
1377
1378 (setenv "SHELL" (which "sh"))
1379 (setenv "CC" "gcc")
1380
1381 ;; Specify the absolute file names of the various
1382 ;; programs so that everything works out-of-the-box.
1383 (with-directory-excursion "lisp"
1384 (emacs-substitute-variables
1385 "emms-player-mpg321-remote.el"
1386 ("emms-player-mpg321-remote-command"
1387 (string-append mpg321 "/bin/mpg321")))
1388 (substitute* "emms-player-simple.el"
1389 (("\"ogg123\"")
1390 (string-append "\"" vorbis "/bin/ogg123\"")))
1391 (substitute* "emms-player-simple.el"
1392 (("\"mpg321\"")
1393 (string-append "\"" mpg321 "/bin/mpg321\"")))
1394 (emacs-substitute-variables "emms-info-ogginfo.el"
1395 ("emms-info-ogginfo-program-name"
1396 (string-append vorbis "/bin/ogginfo")))
1397 (emacs-substitute-variables "emms-info-opusinfo.el"
1398 ("emms-info-opusinfo-program-name"
1399 (string-append opus "/bin/opusinfo")))
1400 (emacs-substitute-variables "emms-info-libtag.el"
1401 ("emms-info-libtag-program-name"
1402 (string-append out "/bin/emms-print-metadata")))
1403 (emacs-substitute-variables "emms-info-mp3info.el"
1404 ("emms-info-mp3info-program-name"
1405 (string-append mp3info "/bin/mp3info")))
1406 (emacs-substitute-variables "emms-info-metaflac.el"
1407 ("emms-info-metaflac-program-name"
1408 (string-append flac "/bin/metaflac")))
1409 (emacs-substitute-variables "emms-source-file.el"
1410 ("emms-source-file-gnu-find" (which "find")))
1411 (substitute* "emms-volume-amixer.el"
1412 (("\"amixer\"")
1413 (string-append "\"" alsa "/bin/amixer\"")))
1414 (substitute* "emms-tag-editor.el"
1415 (("\"mid3v2\"")
1416 (string-append "\"" mutagen "/bin/mid3v2\"")))
1417 #t))))
1418 (add-before 'install 'pre-install
1419 (lambda* (#:key outputs #:allow-other-keys)
1420 ;; The 'install' rule expects the target directories to exist.
1421 (let* ((out (assoc-ref outputs "out"))
1422 (bin (string-append out "/bin"))
1423 (man1 (string-append out "/share/man/man1")))
1424 (mkdir-p bin)
1425 (mkdir-p man1)
1426
1427 ;; Ensure that files are not rejected by gzip
1428 (let ((early-1980 315619200)) ; 1980-01-02 UTC
1429 (ftw "." (lambda (file stat flag)
1430 (unless (<= early-1980 (stat:mtime stat))
1431 (utime file early-1980 early-1980))
1432 #t)))
1433 #t)))
1434 (add-after 'install 'post-install
1435 (lambda* (#:key outputs #:allow-other-keys)
1436 (let ((out (assoc-ref outputs "out")))
1437 (symlink "emms-auto.el"
1438 (string-append out "/share/emacs/site-lisp/"
1439 "emms-autoloads.el")))
1440 #t)))
1441 #:tests? #f))
1442 (native-inputs `(("emacs" ,emacs-minimal) ;for (guix build emacs-utils)
1443 ("texinfo" ,texinfo)))
1444 (inputs `(("alsa-utils" ,alsa-utils)
1445 ("flac" ,flac) ;for metaflac
1446 ("vorbis-tools" ,vorbis-tools)
1447 ("mpg321" ,mpg321)
1448 ("taglib" ,taglib)
1449 ("mp3info" ,mp3info)
1450 ("mutagen" ,python-mutagen)
1451 ("opus-tools" ,opus-tools)))
1452 (properties '((upstream-name . "emms")))
1453 (synopsis "Emacs Multimedia System")
1454 (description
1455 "EMMS is the Emacs Multimedia System. It is a small front-end which
1456 can control one of the supported external players. Thus, it supports
1457 whatever formats are supported by your music player. It also
1458 supports tagging and playlist management, all behind a clean and
1459 light user interface.")
1460 (home-page "https://www.gnu.org/software/emms/")
1461 (license license:gpl3+)))
1462
1463 (define-public emacs-emms-mode-line-cycle
1464 (package
1465 (name "emacs-emms-mode-line-cycle")
1466 (version "0.2.5")
1467 (source
1468 (origin
1469 (method git-fetch)
1470 (uri (git-reference
1471 (url "https://github.com/momomo5717/emms-mode-line-cycle")
1472 (commit version)))
1473 (file-name (git-file-name name version))
1474 (sha256
1475 (base32
1476 "0q80f0plch6k4lhs8c9qm3mfycfbp3kn5sjrk9zxgxwnn901y9mp"))))
1477 (build-system emacs-build-system)
1478 (propagated-inputs
1479 `(("emms" ,emacs-emms)))
1480 (home-page "https://github.com/momomo5717/emms-mode-line-cycle")
1481 (synopsis "Display the EMMS mode line as a ticker")
1482 (description
1483 "This is a minor mode for updating the EMMS mode-line string cyclically
1484 within a specified width. It is useful for displaying long track titles.")
1485 (license license:gpl3+)))
1486
1487 \f
1488 ;;;
1489 ;;; Miscellaneous.
1490 ;;;
1491
1492 (define-public emacs-ace-link
1493 (package
1494 (name "emacs-ace-link")
1495 (version "0.5.0")
1496 (source
1497 (origin
1498 (method git-fetch)
1499 (uri (git-reference
1500 (url "https://github.com/abo-abo/ace-link.git")
1501 (commit version)))
1502 (file-name (git-file-name name version))
1503 (sha256
1504 (base32
1505 "147dz79vg4ym5wg3d544bw2khdb2j3hr73rw4qfm64wf0q2dj0vk"))))
1506 (build-system emacs-build-system)
1507 (propagated-inputs
1508 `(("emacs-avy" ,emacs-avy)))
1509 (home-page "https://github.com/abo-abo/ace-link")
1510 (synopsis "Quickly follow links in Emacs")
1511 (description
1512 "Currently, to jump to a link in a @code{Info-mode}, @code{help-mode},
1513 @code{woman-mode}, @code{org-mode}, @code{eww-mode}, @code{compilation-mode},
1514 @code{goto-address-mode} buffer, you can tab through the links to select the
1515 one you want. This is an O(N) operation, where the N is the amount of links.
1516 This package turns this into an O(1) operation. It does so by assigning a
1517 letter to each link using avy.")
1518 (license license:gpl3+)))
1519
1520 (define-public emacs-auto-sudoedit
1521 (package
1522 (name "emacs-auto-sudoedit")
1523 (version "1.0.0")
1524 (source
1525 (origin
1526 (method git-fetch)
1527 (uri (git-reference
1528 (url "https://github.com/ncaq/auto-sudoedit.git")
1529 (commit (string-append "v" version))))
1530 (file-name (git-file-name name version))
1531 (sha256
1532 (base32 "10p0hc95j382km8655pqld9wxg10j1f36czzppkdd6a55cxarv9f"))))
1533 (propagated-inputs
1534 `(("emacs-f" ,emacs-f)))
1535 (build-system emacs-build-system)
1536 (home-page "https://github.com/ncaq/auto-sudoedit")
1537 (synopsis "Automatically re-open read-only files with sudo")
1538 (description
1539 "This package automatically reopens a file or directory with
1540 @command{sudo} if it cannot write to it.")
1541 (license license:expat)))
1542
1543 (define-public emacs-bbdb
1544 (package
1545 (name "emacs-bbdb")
1546 (version "3.1.2")
1547 (source (origin
1548 (method url-fetch)
1549 (uri (string-append "mirror://savannah/bbdb/bbdb-"
1550 version ".tar.gz"))
1551 (sha256
1552 (base32
1553 "1gs16bbpiiy01w9pyg12868r57kx1v3hnw04gmqsmpc40l1hyy05"))
1554 (modules '((guix build utils)))
1555 (snippet
1556 ;; We don't want to build and install the PDF.
1557 '(begin
1558 (substitute* "doc/Makefile.in"
1559 (("^doc_DATA = .*$")
1560 "doc_DATA =\n"))
1561 #t))))
1562 (build-system gnu-build-system)
1563 (arguments
1564 '(#:phases
1565 (modify-phases %standard-phases
1566 (add-after 'install 'post-install
1567 (lambda* (#:key outputs #:allow-other-keys)
1568 ;; Add an autoloads file with the right name for guix.el.
1569 (let* ((out (assoc-ref outputs "out"))
1570 (site (string-append out "/share/emacs/site-lisp")))
1571 (with-directory-excursion site
1572 (symlink "bbdb-loaddefs.el" "bbdb-autoloads.el")))
1573 #t)))))
1574 (native-inputs `(("emacs" ,emacs-minimal)))
1575 (home-page "https://savannah.nongnu.org/projects/bbdb/")
1576 (synopsis "Contact management utility for Emacs")
1577 (description
1578 "BBDB is the Insidious Big Brother Database for GNU Emacs. It provides
1579 an address book for email and snail mail addresses, phone numbers and the
1580 like. It can be linked with various Emacs mail clients (Message and Mail
1581 mode, Rmail, Gnus, MH-E, and VM). BBDB is fully customizable.")
1582 (license license:gpl3+)))
1583
1584 (define-public emacs-aggressive-indent
1585 (package
1586 (name "emacs-aggressive-indent")
1587 (version "1.8.3")
1588 (source (origin
1589 (method url-fetch)
1590 (uri (string-append "https://elpa.gnu.org/packages/"
1591 "aggressive-indent-" version ".el"))
1592 (sha256
1593 (base32
1594 "0jnzccl50x0wapprgwxinp99pwwa6j43q6msn4gv437j7swy8wnj"))))
1595 (build-system emacs-build-system)
1596 (home-page "https://elpa.gnu.org/packages/aggressive-indent.html")
1597 (synopsis "Minor mode to aggressively keep your code always indented")
1598 (description
1599 "@code{aggressive-indent-mode} is a minor mode that keeps your code
1600 always indented. It reindents after every change, making it more reliable
1601 than @code{electric-indent-mode}.")
1602 (license license:gpl2+)))
1603
1604 (define-public emacs-ctrlf
1605 (package
1606 (name "emacs-ctrlf")
1607 (version "1.0")
1608 (source
1609 (origin
1610 (method git-fetch)
1611 (uri (git-reference
1612 (url "https://github.com/raxod502/ctrlf.git")
1613 (commit (string-append "v" version))))
1614 (file-name (git-file-name name version))
1615 (sha256
1616 (base32 "10gnhafas54zj3z9173h1g7b519ac4i26afclmw3w1pk6qyyb03z"))))
1617 (build-system emacs-build-system)
1618 (home-page "https://github.com/raxod502/ctrlf/")
1619 (synopsis "Single-buffer text search in Emacs")
1620 (description "CTRLF (pronounced @emph{control F}) is an intuitive and
1621 efficient solution for single-buffer text search in Emacs, replacing packages
1622 such as Isearch, Swiper, and helm-swoop. It takes inspiration from the
1623 widely-adopted and battle-tested @samp{Ctrl+F} interfaces in programs such as
1624 web browsers, but follows the flow and keybindings of Isearch.")
1625 (license license:expat)))
1626
1627 (define-public emacs-dhall-mode
1628 ;; There is no proper release. The base version is extracted from the
1629 ;; "Version" keyword in the main file.
1630 (let ((revision "0")
1631 (commit "ef4d33debe224c6ba37e51a29b9dc8b74f20f1c2"))
1632 (package
1633 (name "emacs-dhall-mode")
1634 (version (git-version "0.1.3" revision commit))
1635 (source
1636 (origin
1637 (method git-fetch)
1638 (uri
1639 (git-reference
1640 (url "https://github.com/psibi/dhall-mode")
1641 (commit commit)))
1642 (file-name (git-file-name name version))
1643 (sha256
1644 (base32 "1232y2k4l3bsz90pgis78zxmrw7jv09dfaip21yc1w4vpxfyr384"))))
1645 (build-system emacs-build-system)
1646 (propagated-inputs
1647 `(("emacs-reformatter" ,emacs-reformatter)))
1648 (home-page "https://github.com/psibi/dhall-mode")
1649 (synopsis "Major mode for working with Dhall configuration language")
1650 (description
1651 "Dhall-mode provides an Emacs Major mode for working with the Dhall
1652 configuration language. It features:
1653
1654 @itemize
1655 @item Syntax highlighting
1656 @item Multiline support for String
1657 @item Basic indentation, commenting
1658 @item Automatic formatting on save using dhall-format.
1659 @item Error highlighting.
1660 @end itemize")
1661 (license license:gpl3+))))
1662
1663 (define-public emacs-link-hint
1664 ;; Last release was in 2015.
1665 (let ((commit "d74a483652486260c052941fedeadddb1ea71f88")
1666 (revision "1"))
1667 (package
1668 (name "emacs-link-hint")
1669 (version (git-version "0.1" revision commit))
1670 (source
1671 (origin
1672 (method git-fetch)
1673 (uri (git-reference
1674 (url "https://github.com/noctuid/link-hint.el")
1675 (commit commit)))
1676 (file-name (git-file-name name version))
1677 (sha256
1678 (base32
1679 "0dghxd165fbds6czy9bfwpid3i4irgp3q08n9mg57sfifi0cmij0"))))
1680 (build-system emacs-build-system)
1681 (propagated-inputs
1682 `(("emacs-avy" ,emacs-avy)))
1683 (home-page "https://github.com/noctuid/link-hint.el")
1684 (synopsis "Vimperator-style link-hinting in Emacs")
1685 (description "This package provides commands for visiting and acting on
1686 links.")
1687 (license license:gpl3+))))
1688
1689 (define-public emacs-ag
1690 (package
1691 (name "emacs-ag")
1692 (version "0.48")
1693 (source (origin
1694 (method git-fetch)
1695 (uri (git-reference
1696 (url "https://github.com/Wilfred/ag.el.git")
1697 (commit version)))
1698 (file-name (git-file-name name version))
1699 (sha256
1700 (base32
1701 "1p918y24vcn2pdliaymd210xp9fvhd4a1srqbv2lfiqrh59yjidx"))))
1702 (build-system emacs-build-system)
1703 (arguments
1704 `(#:phases
1705 (modify-phases %standard-phases
1706 (add-before 'install 'make-info
1707 (lambda _
1708 (with-directory-excursion "docs"
1709 (invoke "make" "info"))))
1710 (add-after 'install 'install-info
1711 (lambda* (#:key outputs #:allow-other-keys)
1712 (let* ((out (assoc-ref outputs "out"))
1713 (info (string-append out "/share/info")))
1714 (install-file "docs/_build/texinfo/agel.info" info)
1715 #t))))))
1716 (native-inputs
1717 `(("python-sphinx" ,python-sphinx)
1718 ("texinfo" ,texinfo)))
1719 (propagated-inputs
1720 `(("dash" ,emacs-dash)
1721 ("s" ,emacs-s)
1722 ;; We need to use 'ag' as the executable on remote systems.
1723 ("the-silver-searcher" ,the-silver-searcher)))
1724 (home-page "https://github.com/Wilfred/ag.el")
1725 (synopsis "Front-end for ag (the-silver-searcher) for Emacs")
1726 (description "This package provides the ability to use the silver
1727 searcher, a code searching tool, sometimes abbreviated to @code{ag}. Features
1728 include version control system awareness, use of Perl compatible regular
1729 expressions, editing the search results directly and searching file names
1730 rather than the contents of files.")
1731 (license license:gpl3+)))
1732
1733 (define-public emacs-async
1734 (package
1735 (name "emacs-async")
1736 (home-page "https://github.com/jwiegley/emacs-async")
1737 (version "1.9.4")
1738 (source (origin
1739 (method git-fetch)
1740 (uri (git-reference
1741 (url home-page)
1742 (commit (string-append "v" version))))
1743 (file-name (git-file-name name version))
1744 (sha256
1745 (base32
1746 "0hhpyxb3d531jb2f3wvzx25183f0anm8nxv6mh0p825q2gkm6ly7"))))
1747 (build-system emacs-build-system)
1748 (synopsis "Asynchronous processing in Emacs")
1749 (description
1750 "This package provides the ability to call asynchronous functions and
1751 processes. For example, it can be used to run dired commands (for copying,
1752 moving, etc.) asynchronously using @code{dired-async-mode}. Also it is used
1753 as a library for other Emacs packages.")
1754 (license license:gpl3+)))
1755
1756 (define-public emacs-auctex
1757 (package
1758 (name "emacs-auctex")
1759 (version "12.2.0")
1760 (source
1761 (origin
1762 (method url-fetch)
1763 (uri (string-append "https://elpa.gnu.org/packages/auctex-"
1764 version ".tar"))
1765 (sha256
1766 (base32 "0j919l3q5sq6h1k1kmk4kyv0vkzl4f98fxcd64v34x5q1ahjhg48"))))
1767 (build-system emacs-build-system)
1768 ;; We use 'emacs' because AUCTeX requires dbus at compile time
1769 ;; ('emacs-minimal' does not provide dbus).
1770 (arguments
1771 `(#:emacs ,emacs
1772 #:include '("\\.el$" "^images/" "^latex/" "\\.info$")
1773 #:exclude '("^tests/" "^latex/README")
1774 #:phases
1775 (modify-phases %standard-phases
1776 (add-after 'install 'install-doc
1777 (lambda* (#:key outputs #:allow-other-keys)
1778 (let* ((out (assoc-ref outputs "out"))
1779 (etc-dir (string-append out "/share/" ,name "/"
1780 ,version "/etc")))
1781 (with-directory-excursion "doc"
1782 (setenv "HOME" (getenv "TMPDIR")) ; for mktextfm
1783 (invoke "pdftex" "tex-ref")
1784 (install-file "tex-ref.pdf" (string-append etc-dir
1785 "/refcards")))
1786 #t))))))
1787 (native-inputs
1788 `(("perl" ,perl)))
1789 (inputs
1790 `(("texlive" ,(texlive-union (list texlive-amsfonts)))))
1791 (home-page "https://www.gnu.org/software/auctex/")
1792 (synopsis "Integrated environment for TeX")
1793 (description
1794 "AUCTeX is a comprehensive customizable integrated environment for
1795 writing input files for TeX, LaTeX, ConTeXt, Texinfo, and docTeX using Emacs
1796 or XEmacs.")
1797 (license license:gpl3+)))
1798
1799 (define-public emacs-autothemer
1800 (package
1801 (name "emacs-autothemer")
1802 (version "0.2.2")
1803 (source
1804 (origin
1805 (method git-fetch)
1806 (uri (git-reference
1807 (url "https://github.com/sebastiansturm/autothemer.git")
1808 (commit version)))
1809 (file-name (git-file-name name version))
1810 (sha256
1811 (base32
1812 "0cd2pqh6k32sjidkcd8682y4l6mx52xw4a05f38kk8nsrk28m74k"))))
1813 (build-system emacs-build-system)
1814 (propagated-inputs
1815 `(("emacs-dash" ,emacs-dash)))
1816 (home-page "https://github.com/sebastiansturm/autothemer")
1817 (synopsis "Conveniently create Emacs themes")
1818 (description
1819 "Autothemer provides a thin layer on top of @code{deftheme} and
1820 @code{custom-theme-set-faces} that creates a new custom color theme, based on
1821 a set of simplified face specifications and a user-supplied color palette")
1822 (license license:gpl3+)))
1823
1824 (define-public emacs-howm
1825 (package
1826 (name "emacs-howm")
1827 (version "1.4.5")
1828 (source
1829 (origin
1830 (method url-fetch)
1831 (uri (string-append "https://howm.sourceforge.jp/a/howm-"
1832 version ".tar.gz"))
1833 (sha256
1834 (base32 "1kvr5pxpc9rwhkza9025mdi0wvh0f0rpawl21rzirjk1x10903yi"))))
1835 (build-system gnu-build-system)
1836 (native-inputs
1837 `(("emacs" ,emacs-minimal)))
1838 (arguments
1839 `(#:configure-flags
1840 (list (string-append "--with-howmdir=" %output
1841 "/share/emacs/site-lisp/"))
1842 #:modules ((guix build gnu-build-system)
1843 ((guix build emacs-build-system) #:prefix emacs:)
1844 (guix build utils))
1845 #:imported-modules (,@%gnu-build-system-modules
1846 (guix build emacs-build-system)
1847 (guix build emacs-utils))
1848 #:phases
1849 (modify-phases %standard-phases
1850 (add-after 'install 'make-autoloads
1851 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
1852 (home-page "https://howm.osdn.jp/")
1853 (synopsis "Note-taking tool for Emacs")
1854 (description "Howm is a note-taking tool for Emacs. Like
1855 code@{emacs-wiki.el}, it facilitates using hyperlinks and doing full-text
1856 searches. Unlike code@{emacs-wiki.el}, it can be combined with any format.")
1857 (license license:gpl1+)))
1858
1859 (define-public emacs-calfw
1860 (package
1861 (name "emacs-calfw")
1862 (version "1.6")
1863 (source
1864 (origin
1865 (method git-fetch)
1866 (uri (git-reference
1867 (url "https://github.com/kiwanami/emacs-calfw.git")
1868 (commit (string-append "v" version))))
1869 (file-name (git-file-name name version))
1870 (sha256
1871 (base32
1872 "0r42cagvmvvib76kd15nd9ix55ys6i549vxnls4z16s864695zpa"))))
1873 (build-system emacs-build-system)
1874 (propagated-inputs
1875 `(("emacs-howm" ,emacs-howm)))
1876 (home-page "https://github.com/kiwanami/emacs-calfw/")
1877 (synopsis "Calendar framework for Emacs")
1878 (description
1879 "This package displays a calendar view with various schedule data in the
1880 Emacs buffer.")
1881 (license license:gpl3+)))
1882
1883 (define-public emacs-caps-lock
1884 (package
1885 (name "emacs-caps-lock")
1886 (version "1.0")
1887 (source
1888 (origin
1889 (method url-fetch)
1890 (uri (string-append "https://elpa.gnu.org/packages/"
1891 "caps-lock-" version ".el"))
1892 (sha256
1893 (base32 "1i4hwam81p4dr0bk8257fkiz4xmv6knkjxj7a00fa35kgx5blpva"))))
1894 (build-system emacs-build-system)
1895 (home-page "http://elpa.gnu.org/packages/caps-lock.html")
1896 (synopsis "Caps Lock as a minor mode")
1897 (description
1898 "This package provides a minor mode to emulate the behavior of a Caps
1899 Lock key.")
1900 (license license:gpl3+)))
1901
1902 (define-public emacs-chronometrist
1903 (package
1904 (name "emacs-chronometrist")
1905 (version "0.4.2")
1906 (source
1907 (origin
1908 (method git-fetch)
1909 (uri (git-reference
1910 (url "https://framagit.org/contrapunctus/chronometrist.git")
1911 (commit (string-append "v" version))))
1912 (file-name (git-file-name name version))
1913 (sha256
1914 (base32 "1ccy7qz1wcmggqlf3hwigbqq4wrx1amds4x9bxz9py6bypglyjc5"))))
1915 (build-system emacs-build-system)
1916 (propagated-inputs
1917 `(("emacs-dash" ,emacs-dash)
1918 ("emacs-s" ,emacs-s)))
1919 (home-page "https://framagit.org/contrapunctus/chronometrist")
1920 (synopsis "Time tracker for Emacs")
1921 (description "Chronometrist is a time tracker in Emacs, largely modelled
1922 after the Android application, @emph{A Time Tracker}.
1923
1924 Its features are:
1925 @itemize
1926 @item Simple and efficient to use,
1927 @item Displays useful information about your time usage,
1928 @item Support for both mouse and keyboard,
1929 @item Human errors in tracking are easily fixed by editing a plain text file,
1930 @item Hooks to let you perform arbitrary actions when starting/stopping tasks.
1931 @end itemize")
1932 ;; Software is dual-licensed.
1933 (license (list license:unlicense license:wtfpl2))))
1934
1935 (define-public emacs-direnv
1936 (package
1937 (name "emacs-direnv")
1938 (version "2.0.0")
1939 (source
1940 (origin
1941 (method git-fetch)
1942 (uri (git-reference
1943 (url "https://github.com/wbolster/emacs-direnv.git")
1944 (commit version)))
1945 (file-name (git-file-name name version))
1946 (sha256
1947 (base32
1948 "005ibyzsx1fdyrl5iyhqpb1bg83mphzahq7zvw58x00syyqi2z49"))))
1949 (build-system emacs-build-system)
1950 (propagated-inputs
1951 `(("dash" ,emacs-dash)
1952 ("with-editor" ,emacs-with-editor)))
1953 (home-page "https://github.com/wbolster/emacs-direnv")
1954 (synopsis "Direnv integration for Emacs")
1955 (description
1956 "This package provides support for invoking direnv to get the environment
1957 for the current file and updating the environment within Emacs to match.
1958
1959 Direnv can be invoked manually, and a global minor mode is included that will
1960 update the environment when the active buffer changes.
1961
1962 Using emacs-direnv means that programs started from Emacs will use the
1963 environment set through Direnv.")
1964 (license license:gpl3+)))
1965
1966 (define-public emacs-elf-mode
1967 (package
1968 (name "emacs-elf-mode")
1969 (version "0.1.0")
1970 (source
1971 (origin
1972 (method git-fetch)
1973 (uri
1974 (git-reference
1975 (url "https://github.com/abo-abo/elf-mode")
1976 (commit version)))
1977 (file-name (git-file-name name version))
1978 (sha256
1979 (base32 "0cbvjbk2893ag1iy8ggixpirfiyhssm7fii96hb9jqdz874cdl0k"))))
1980 (build-system emacs-build-system)
1981 (home-page "https://github.com/abo-abo/elf-mode")
1982 (synopsis "Show symbol list when opening a binary file in Emacs")
1983 (description "This Emacs package provides a command showing the symbols
1984 that the binary uses instead of the actual binary contents.")
1985 (license license:gpl3+)))
1986
1987 (define-public emacs-form-feed
1988 (package
1989 (name "emacs-form-feed")
1990 (version "0.2.2")
1991 (source
1992 (origin
1993 (method git-fetch)
1994 (uri (git-reference
1995 (url "https://github.com/wasamasa/form-feed.git")
1996 (commit version)))
1997 (file-name (git-file-name name version))
1998 (sha256
1999 (base32 "171jna631b2iqcimfsik9c66gii8nc0zdb58m077w00rn7rcxbh2"))))
2000 (build-system emacs-build-system)
2001 (home-page "https://github.com/wasamasa/form-feed")
2002 (synopsis "Display ^L glyphs as horizontal lines")
2003 (description
2004 "This package provides a minor mode @code{form-feed-mode} to display page
2005 delimiters which usually appear as ^L glyphs on a single line as horizontal
2006 lines spanning the entire window. The minor mode is suitable for inclusion
2007 into mode hooks and is intended to be used that way.")
2008 (license license:gpl3+)))
2009
2010 (define-public emacs-ggtags
2011 (package
2012 (name "emacs-ggtags")
2013 (version "0.8.13")
2014 (source
2015 (origin
2016 (method url-fetch)
2017 (uri (string-append "https://elpa.gnu.org/packages/ggtags-"
2018 version ".el"))
2019 (sha256
2020 (base32
2021 "1qa7lcrcmf76sf6dy8sxbg4adq7rg59fm0n5848w3qxgsr0h45fg"))))
2022 (build-system emacs-build-system)
2023 (inputs
2024 `(("global" ,global)))
2025 (arguments
2026 `(#:phases
2027 (modify-phases %standard-phases
2028 (add-after 'unpack 'configure
2029 (lambda* (#:key inputs #:allow-other-keys)
2030 (chmod "ggtags.el" #o644)
2031 (emacs-substitute-variables "ggtags.el"
2032 ("ggtags-executable-directory"
2033 (string-append (assoc-ref inputs "global") "/bin")))
2034 #t)))))
2035 (home-page "https://github.com/leoliu/ggtags")
2036 (synopsis "Frontend to the GNU Global source code tagging system")
2037 (description "@code{ggtags} provides a frontend to the GNU Global source
2038 code tagging system.
2039
2040 Features:
2041
2042 @itemize
2043 @item Build on @code{compile.el} for asynchronicity and its large feature-set.
2044 @item Automatically update Global's tag files when needed with tuning for
2045 large source trees.
2046 @item Intuitive navigation among multiple matches with mode-line display of
2047 current match, total matches and exit status.
2048 @item Read tag with completion.
2049 @item Show definition at point.
2050 @item Jump to #include files.
2051 @item Support search history and saving a search to register/bookmark.
2052 @item Query replace.
2053 @item Manage Global's environment variables on a per-project basis.
2054 @item Highlight (definition) tag at point.
2055 @item Abbreviated display of file names.
2056 @item Support all Global search backends: @code{grep}, @code{idutils}, etc.
2057 @item Support exuberant ctags @url{http://ctags.sourceforge.net/} and
2058 @code{pygments} backend.
2059 @item Support all Global's output formats: @code{grep}, @code{ctags-x},
2060 @code{cscope} etc.
2061 @item Support projects on remote hosts (e.g. via @code{tramp}).
2062 @item Support eldoc.
2063 @item Search @code{GTAGSLIBPATH} for references and symbols.
2064 @end itemize\n")
2065 (license license:gpl3+)))
2066
2067 (define-public emacs-go-mode
2068 (package
2069 (name "emacs-go-mode")
2070 (version "1.5.0")
2071 (source (origin
2072 (method git-fetch)
2073 (uri (git-reference
2074 (url "https://github.com/dominikh/go-mode.el.git")
2075 (commit (string-append "v" version))))
2076 (file-name (git-file-name name version))
2077 (sha256
2078 (base32
2079 "1nd2h50yb0493wvf1h7fzplq45rmqn2w7kxpgnlxzhkvq99v8vzf"))))
2080 (build-system emacs-build-system)
2081 (arguments
2082 `(#:phases
2083 (modify-phases %standard-phases
2084 (add-after 'unpack 'make-writable
2085 (lambda _
2086 (for-each make-file-writable (find-files "." "\\.el$"))
2087 #t)))))
2088 (home-page "https://github.com/dominikh/go-mode.el")
2089 (synopsis "Go mode for Emacs")
2090 (description
2091 "This package provides go-mode, an Emacs mode for working with software
2092 written in the Go programming language.")
2093 (license license:bsd-3)))
2094
2095 (define-public emacs-google-maps
2096 (package
2097 (name "emacs-google-maps")
2098 (version "1.0.0")
2099 (source (origin
2100 (method git-fetch)
2101 (uri (git-reference
2102 (url "https://github.com/jd/google-maps.el.git")
2103 (commit version)))
2104 (file-name (git-file-name name version))
2105 (sha256
2106 (base32
2107 "183igr5lp20zcqi7rc01fk76sfxdhksd74i11v16gdsifdkjimd0"))))
2108 (build-system emacs-build-system)
2109 (home-page "https://github.com/jd/google-maps.el")
2110 (synopsis "Access Google Maps from Emacs")
2111 (description "The @code{google-maps} package displays Google
2112 Maps directly inside Emacs.")
2113 (license license:gpl3+)))
2114
2115 (define-public emacs-graphviz-dot-mode
2116 (package
2117 (name "emacs-graphviz-dot-mode")
2118 (version "0.4.2")
2119 (source
2120 (origin
2121 (method git-fetch)
2122 (uri (git-reference
2123 (url "https://github.com/ppareit/graphviz-dot-mode.git")
2124 (commit (string-append "v" version))))
2125 (file-name (git-file-name name version))
2126 (sha256
2127 (base32 "1v1p85wk73nfsvv66qf90flgf9dqhmv15z1r7q4zmc4ifklqn08m"))))
2128 (build-system emacs-build-system)
2129 (arguments
2130 `(#:phases
2131 (modify-phases %standard-phases
2132 (add-before 'install 'make-info
2133 (lambda* (#:key inputs #:allow-other-keys)
2134 (with-directory-excursion "texinfo"
2135 (substitute* "Makefile"
2136 (("\\/usr\\/bin\\/gzip")
2137 (string-append (assoc-ref inputs "gzip") "/bin/gzip")))
2138 (invoke "make"
2139 "clean"
2140 "info"
2141 (string-append "TEXINFODIR="
2142 (assoc-ref inputs "texinfo")
2143 "/bin")))))
2144 (add-after 'install 'install-info
2145 (lambda* (#:key outputs #:allow-other-keys)
2146 (let* ((out (assoc-ref outputs "out"))
2147 (info (string-append out "/share/info")))
2148 (install-file "texinfo/graphviz-dot-mode.info.gz" info)
2149 #t))))))
2150 (native-inputs
2151 `(("gzip" ,gzip)
2152 ("texinfo" ,texinfo)))
2153 (propagated-inputs
2154 `(("emacs-company" ,emacs-company)))
2155 (home-page "http://ppareit.github.com/graphviz-dot-mode")
2156 (synopsis "Major mode for editing Graphviz DOT files")
2157 (description
2158 "This Emacs package helps you to create @file{.dot} or @file{.gv} files
2159 using the DOT syntax, and use Graphviz to convert these files to diagrams.")
2160 (license license:gpl2+)))
2161
2162 (define-public emacs-imenu-list
2163 (package
2164 (name "emacs-imenu-list")
2165 (version "0.8")
2166 (source
2167 (origin
2168 (method git-fetch)
2169 (uri
2170 (git-reference
2171 (url "https://github.com/bmag/imenu-list")
2172 (commit (string-append "v" version))))
2173 (file-name (git-file-name name version))
2174 (sha256
2175 (base32 "13xh9bdl3k6ccfq83wjmkpi4269qahv4davki4wq18dr4amrzhlx"))))
2176 (build-system emacs-build-system)
2177 (home-page "https://github.com/bmag/imenu-list")
2178 (synopsis
2179 "Automatically tracks the current buffer's imenu entries")
2180 (description
2181 "This Emacs minor mode creates an automatically updated buffer called
2182 @code{*Ilist*} that is populated with the current buffer's imenu entries.
2183 This buffer is typically shown as a sidebar (Emacs vertically splits the
2184 window).")
2185 (license license:gpl3+)))
2186
2187 (define-public emacs-mmm-mode
2188 (package
2189 (name "emacs-mmm-mode")
2190 (version "0.5.7")
2191 (source
2192 (origin
2193 (method git-fetch)
2194 (uri (git-reference
2195 (url "https://github.com/purcell/mmm-mode.git")
2196 (commit version)))
2197 (file-name (git-file-name name version))
2198 (sha256
2199 (base32
2200 "0lxd55yhz0ag7v1ydff55bg4h8snq5lbk8cjwxqpyq6gh4v7md1h"))))
2201 (build-system gnu-build-system)
2202 (native-inputs
2203 `(("autoconf" ,autoconf)
2204 ("automake" ,automake)
2205 ("emacs" ,emacs-minimal)
2206 ("texinfo" ,texinfo)))
2207 (home-page "https://github.com/purcell/mmm-mode")
2208 (synopsis "Allow multiple major modes in an Emacs buffer")
2209 (description
2210 "MMM Mode is a minor mode that allows multiple major modes to coexist in a
2211 single buffer.")
2212 (license license:gpl3+)))
2213
2214 (define-public emacs-mmt
2215 (package
2216 (name "emacs-mmt")
2217 (version "0.2.0")
2218 (source
2219 (origin
2220 (method git-fetch)
2221 (uri (git-reference
2222 (url "https://github.com/mrkkrp/mmt.git")
2223 (commit version)))
2224 (file-name (git-file-name name version))
2225 (sha256
2226 (base32 "13vbfc5597v0gd87qyhn10f93nb477vjpg3jlpphbax9fvkf4gav"))))
2227 (build-system emacs-build-system)
2228 (home-page "https://github.com/mrkkrp/mmt")
2229 (synopsis "Classic tools to write Emacs Lisp macros")
2230 (description "Emacs MMT is a package that contains classic tools for Emacs
2231 Lisp developers who want to write macros with convenience.")
2232 (license license:gpl3+)))
2233
2234 (define-public emacs-tablist
2235 (package
2236 (name "emacs-tablist")
2237 (version "1.0")
2238 (source (origin
2239 (method git-fetch)
2240 (uri (git-reference
2241 (url "https://github.com/politza/tablist.git")
2242 (commit (string-append "v" version))))
2243 (file-name (git-file-name name version))
2244 (sha256
2245 (base32
2246 "0pzsdg0rm59daw34ppss79cg05z9wnr8nkmdcc48nkd0p69ip2yy"))))
2247 (build-system emacs-build-system)
2248 (home-page "https://github.com/politza/tablist")
2249 (synopsis "Extension for @code{tabulated-list-mode}")
2250 (description "Tablist is the Emacs package that provides several
2251 additional features to @code{tabulated-list-mode}: it adds marks,
2252 filters, new key bindings and faces. It can be enabled by
2253 @code{tablist-mode} or @code{tablist-minor-mode} commands.")
2254 (license license:gpl3+)))
2255
2256 (define-public emacs-djvu
2257 (package
2258 (name "emacs-djvu")
2259 (version "1.1")
2260 (source
2261 (origin
2262 (method url-fetch)
2263 (uri (string-append "https://elpa.gnu.org/packages/"
2264 "djvu-" version ".el"))
2265 (sha256
2266 (base32 "0njgyx09q225hliacsnjk8wallg5i6xkz6bj501pb05nwqfbvfk7"))))
2267 (build-system emacs-build-system)
2268 (home-page "http://elpa.gnu.org/packages/djvu.html")
2269 (synopsis "Edit and view Djvu files via djvused")
2270 (description
2271 "This package is a front end for the command-line program djvused from
2272 DjVuLibre, see @url{http://djvu.sourceforge.net/}. It assumes you have the
2273 programs @command{djvused}, @command{djview}, @command{ddjvu}, and
2274 @command{djvm} installed.")
2275 (license license:gpl3+)))
2276
2277 (define-public emacs-pabbrev
2278 (package
2279 (name "emacs-pabbrev")
2280 (version "4.2.1")
2281 (source
2282 (origin
2283 (method url-fetch)
2284 (uri (string-append "https://elpa.gnu.org/packages/"
2285 "pabbrev-" version ".el"))
2286 (sha256
2287 (base32 "19v5adk61y8fpigw7k6wz6dj79jwr450hnbi7fj0jvb21cvjmfxh"))))
2288 (build-system emacs-build-system)
2289 (home-page "http://elpa.gnu.org/packages/pabbrev.html")
2290 (synopsis "Predictive abbreviation expansion")
2291 (description
2292 "The code provides a abbreviation expansion for Emacs. It is
2293 fairly similar to Dabbrev expansion, which works based on the contents
2294 of the current buffer (or other buffers).
2295
2296 Predictive abbreviation expansion works based on the previously
2297 written text. Unlike dynamic abbreviation, the text is analysed
2298 during idle time, while Emacs is doing nothing else.")
2299 (license license:gpl3+)))
2300
2301 (define-public emacs-pdf-tools
2302 (package
2303 (name "emacs-pdf-tools")
2304 (version "0.90")
2305 (home-page "https://github.com/politza/pdf-tools")
2306 (source (origin
2307 (method git-fetch)
2308 (uri (git-reference (url home-page)
2309 (commit (string-append "v" version))))
2310 (file-name (git-file-name name version))
2311 (sha256
2312 (base32
2313 "0iv2g5kd14zk3r5dzdw7b7hk4b5w7qpbilcqkja46jgxbb6xnpl9"))))
2314 (build-system gnu-build-system)
2315 (arguments
2316 `(#:tests? #f ; there are no tests
2317 #:modules ((guix build gnu-build-system)
2318 ((guix build emacs-build-system) #:prefix emacs:)
2319 (guix build utils)
2320 (guix build emacs-utils))
2321 #:imported-modules (,@%gnu-build-system-modules
2322 (guix build emacs-build-system)
2323 (guix build emacs-utils))
2324 #:phases
2325 (modify-phases %standard-phases
2326 ;; Build server side using 'gnu-build-system'.
2327 (add-after 'unpack 'enter-server-dir
2328 (lambda _ (chdir "server") #t))
2329 (add-after 'enter-server-dir 'autogen
2330 (lambda _
2331 (invoke "bash" "autogen.sh")))
2332
2333 ;; Build emacs side using 'emacs-build-system'.
2334 (add-after 'compress-documentation 'enter-lisp-dir
2335 (lambda _ (chdir "../lisp") #t))
2336 (add-after 'enter-lisp-dir 'emacs-patch-variables
2337 (lambda* (#:key outputs #:allow-other-keys)
2338 (for-each make-file-writable (find-files "."))
2339
2340 ;; Set path to epdfinfo program.
2341 (emacs-substitute-variables "pdf-info.el"
2342 ("pdf-info-epdfinfo-program"
2343 (string-append (assoc-ref outputs "out")
2344 "/bin/epdfinfo")))
2345 ;; Set 'pdf-tools-handle-upgrades' to nil to avoid "auto
2346 ;; upgrading" that pdf-tools tries to perform.
2347 (emacs-substitute-variables "pdf-tools.el"
2348 ("pdf-tools-handle-upgrades" '()))))
2349 (add-after 'emacs-patch-variables 'emacs-add-source-to-load-path
2350 (assoc-ref emacs:%standard-phases 'add-source-to-load-path))
2351 (add-after 'emacs-add-source-to-load-path 'emacs-install
2352 (assoc-ref emacs:%standard-phases 'install))
2353 (add-after 'emacs-install 'emacs-build
2354 (assoc-ref emacs:%standard-phases 'build))
2355 (add-after 'emacs-install 'emacs-make-autoloads
2356 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
2357 (native-inputs `(("autoconf" ,autoconf)
2358 ("automake" ,automake)
2359 ("pkg-config" ,pkg-config)
2360 ("emacs" ,emacs-minimal)))
2361 (inputs `(("poppler" ,poppler)
2362 ("cairo" ,cairo)
2363 ("glib" ,glib)
2364 ("libpng" ,libpng)
2365 ("zlib" ,zlib)))
2366 (propagated-inputs `(("tablist" ,emacs-tablist)))
2367 (synopsis "Emacs support library for PDF files")
2368 (description
2369 "PDF Tools is, among other things, a replacement of DocView for PDF
2370 files. The key difference is that pages are not pre-rendered by
2371 e.g. ghostscript and stored in the file-system, but rather created on-demand
2372 and stored in memory.")
2373 (license license:gpl3+)))
2374
2375 (define-public emacs-dash
2376 (package
2377 (name "emacs-dash")
2378 (version "2.17.0")
2379 (source (origin
2380 (method git-fetch)
2381 (uri (git-reference
2382 (url "https://github.com/magnars/dash.el.git")
2383 (commit version)))
2384 (file-name (git-file-name name version))
2385 (sha256
2386 (base32
2387 "153f55dqkhs8w2xlf6b88wp5vlkap7h8vjd9wxh4jp2ram5g4l1n"))))
2388 (build-system emacs-build-system)
2389 (arguments
2390 `(#:tests? #t
2391 #:test-command '("./run-tests.sh")))
2392 (home-page "https://github.com/magnars/dash.el")
2393 (synopsis "Modern list library for Emacs")
2394 (description "This package provides a modern list API library for Emacs.")
2395 (license license:gpl3+)))
2396
2397 (define-public emacs-bui
2398 (package
2399 (name "emacs-bui")
2400 (version "1.2.1")
2401 (source (origin
2402 (method git-fetch)
2403 (uri (git-reference
2404 (url "https://notabug.org/alezost/emacs-bui.git")
2405 (commit (string-append "v" version))))
2406 (file-name (git-file-name name version))
2407 (sha256
2408 (base32
2409 "0sszdl4kvqbihdh8d7mybpp0d8yw2p3gyiipjcxz9xhvvmw3ww4x"))))
2410 (build-system emacs-build-system)
2411 (propagated-inputs
2412 `(("dash" ,emacs-dash)))
2413 (home-page "https://notabug.org/alezost/emacs-bui")
2414 (synopsis "Buffer interface library for Emacs")
2415 (description
2416 "BUI (Buffer User Interface) is a library for making @code{list} and
2417 @code{info} interfaces to display an arbitrary data of the same
2418 type, for example: packages, buffers, files, etc.")
2419 (license license:gpl3+)))
2420
2421 (define-public emacs-guix
2422 (package
2423 (name "emacs-guix")
2424 (version "0.5.2")
2425 (source (origin
2426 (method url-fetch)
2427 (uri (string-append "https://emacs-guix.gitlab.io/website/"
2428 "releases/emacs-guix-" version ".tar.gz"))
2429 (sha256
2430 (base32
2431 "0yz64c0z4ygi2k4af18k4r1ncgys18jb8icywkp2g5pgmpn5l7ps"))
2432 (modules '((guix build utils)))
2433 (snippet
2434 '(begin
2435 ;; Add support for Guile 3.0. Remove for versions > 0.5.2.
2436 (substitute* "configure"
2437 (("\"2\\.2 2\\.0\"")
2438 "\"3.0 2.2 2.0\""))
2439 #t))))
2440 (build-system gnu-build-system)
2441 (native-inputs
2442 `(("pkg-config" ,pkg-config)
2443 ("emacs" ,emacs-minimal)))
2444 (inputs
2445 `(("guile" ,guile-3.0)
2446 ("guix" ,guix)))
2447 (propagated-inputs
2448 `(("geiser" ,emacs-geiser)
2449 ("guile-gcrypt" ,guile-gcrypt)
2450 ("dash" ,emacs-dash)
2451 ("bui" ,emacs-bui)
2452 ("edit-indirect" ,emacs-edit-indirect)
2453 ("magit-popup" ,emacs-magit-popup)))
2454 (home-page "https://emacs-guix.gitlab.io/website/")
2455 (synopsis "Emacs interface for GNU Guix")
2456 (description
2457 "Emacs-Guix provides a visual interface, tools and features for the GNU
2458 Guix package manager. Particularly, it allows you to do various package
2459 management tasks from Emacs. To begin with, run @code{M-x guix-about} or
2460 @code{M-x guix-help} command.")
2461 (license license:gpl3+)))
2462
2463 (define-public emacs-build-farm
2464 (package
2465 (name "emacs-build-farm")
2466 (version "0.2.2")
2467 (source (origin
2468 (method git-fetch)
2469 (uri (git-reference
2470 (url "https://notabug.org/alezost/emacs-build-farm.git")
2471 (commit (string-append "v" version))))
2472 (file-name (git-file-name name version))
2473 (sha256
2474 (base32
2475 "0i0bwbav5861j2y15j9nd5m9rdqg9q97zgcbld8pivr9nyxy63lz"))))
2476 (build-system emacs-build-system)
2477 (propagated-inputs
2478 `(("bui" ,emacs-bui)
2479 ("magit-popup" ,emacs-magit-popup)))
2480 (home-page "https://notabug.org/alezost/emacs-build-farm")
2481 (synopsis "Emacs interface for Hydra and Cuirass build farms")
2482 (description
2483 "This Emacs package provides an interface for Hydra and
2484 Cuirass (build farms used by Nix and Guix). It allows you to look at
2485 various data related to the build farm projects, jobsets, builds and
2486 evaluations. The entry point is @code{M-x build-farm} command.")
2487 (license license:gpl3+)))
2488
2489 (define-public emacs-d-mode
2490 (package
2491 (name "emacs-d-mode")
2492 (version "2.0.10")
2493 (source
2494 (origin
2495 (method git-fetch)
2496 (uri (git-reference
2497 (url "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode.git")
2498 (commit version)))
2499 (file-name (git-file-name name version))
2500 (sha256
2501 (base32 "0915kb9jcaixgindhj85fmykkhvj31ckp1yg6746fznwdgfrlifv"))))
2502 (build-system emacs-build-system)
2503 (propagated-inputs
2504 `(("emacs-undercover" ,emacs-undercover)))
2505 (home-page "https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode")
2506 (synopsis "Emacs major mode for editing D code")
2507 (description "This package provides an Emacs major mode for highlighting
2508 code written in the D programming language. This mode is currently known to
2509 work with Emacs 24 and 25.")
2510 (license license:gpl2+)))
2511
2512 (define-public emacs-extempore-mode
2513 ;; Use the latest commit at time of packaging. There are no releases or tags.
2514 (let ((commit "09518ae6650d7be33a4633a4c0f31b7130d04c6e")
2515 (revision "1"))
2516 (package
2517 (name "emacs-extempore-mode")
2518 (version (git-version "0.0.0" revision commit))
2519 (source
2520 (origin
2521 (method git-fetch)
2522 (uri (git-reference
2523 (url "https://github.com/extemporelang/extempore-emacs-mode.git")
2524 (commit commit)))
2525 (file-name (git-file-name name version))
2526 (sha256
2527 (base32 "0hfza9lzdsz94gxhmzyp9fwviscv19rmnjgd0q613faayn11sjsp"))))
2528 (build-system emacs-build-system)
2529 (home-page "https://github.com/extemporelang/extempore-emacs-mode")
2530 (synopsis "Emacs major mode for Extempore source files")
2531 (description
2532 "This package provides a major mode for editing Extempore code. It can
2533 create an Extempore REPL, connect the current @code{extempore-mode} buffer to a
2534 running Extempore process, and more.")
2535 (license license:bsd-2))))
2536
2537 (define-public emacs-kakoune
2538 ;; Package has no release. Version is extracted from "Version:" keyword in
2539 ;; main file.
2540 (let ((commit "d73d14e69ea38076af50cc69f846808383ff539d")
2541 (revision "0"))
2542 (package
2543 (name "emacs-kakoune")
2544 (version (git-version "0.1" revision commit))
2545 (source
2546 (origin
2547 (method git-fetch)
2548 (uri (git-reference
2549 (url "https://github.com/jmorag/kakoune.el.git")
2550 (commit commit)))
2551 (file-name (git-file-name name version))
2552 (sha256
2553 (base32 "0nk6jdy1y5mc3ryd0smiqghrk6iv34d5grc7f7migmshlbq0np92"))))
2554 (build-system emacs-build-system)
2555 (propagated-inputs
2556 `(("emacs-expand-region" ,emacs-expand-region)
2557 ("emacs-multiple-cursors" ,emacs-multiple-cursors)
2558 ("emacs-ryo-modal" ,emacs-ryo-modal)))
2559 (home-page "https://github.com/jmorag/kakoune.el")
2560 (synopsis "Emacs simple simulation, but not emulation, of Kakoune")
2561 (description "This package provides many, but not all of the editing
2562 primitives in the Kakoune editor. Unlike Evil mode for Vim, this is a very
2563 shallow emulation, which seeks to do as little work as possible, leveraging
2564 Emacs native editing commmands and the work of other packages wherever
2565 possible.")
2566 (license license:expat))))
2567
2568 (define-public emacs-keyfreq
2569 (package
2570 (name "emacs-keyfreq")
2571 (version "20160516.716")
2572 (source
2573 (origin
2574 (method url-fetch)
2575 (uri (string-append "http://melpa.org/packages/keyfreq-"
2576 version ".el"))
2577 (sha256
2578 (base32
2579 "008hd7d06qskc3mx0bbdgpgy2pwxr8185fzlyqf9qjg49y74p6g8"))))
2580 (build-system emacs-build-system)
2581 (home-page "https://github.com/dacap/keyfreq")
2582 (synopsis "Track Emacs command frequencies")
2583 (description "@code{emacs-keyfeq} tracks and shows how many times you used
2584 a command.")
2585 (license license:gpl3+)))
2586
2587 (define-public emacs-olivetti
2588 (package
2589 (name "emacs-olivetti")
2590 (version "1.8.1")
2591 (source (origin
2592 (method git-fetch)
2593 (uri (git-reference
2594 (url "https://github.com/rnkn/olivetti.git")
2595 (commit (string-append "v" version))))
2596 (file-name (git-file-name name version))
2597 (sha256
2598 (base32
2599 "1fbj9s49y5yx5i429awv9rybacfgvhwp7v5h0zw67bpgx4qs44pa"))))
2600 (build-system emacs-build-system)
2601 (home-page "https://github.com/rnkn/olivetti")
2602 (synopsis "Emacs minor mode for a nice writing environment")
2603 (description "This package provides an Emacs minor mode that puts writing
2604 in the center.")
2605 (license license:gpl3+)))
2606
2607 (define-public emacs-undo-tree
2608 (package
2609 (name "emacs-undo-tree")
2610 (version "0.7.1")
2611 (source (origin
2612 (method git-fetch)
2613 (uri (git-reference
2614 (url "http://dr-qubit.org/git/undo-tree.git")
2615 (commit (string-append "release/" version))))
2616 (file-name (git-file-name name version))
2617 (sha256
2618 (base32
2619 "1nr0149y2nvrxj56gc12jqnfl01g6z9ypfsgl6pfg85cw73hnggk"))))
2620 (build-system emacs-build-system)
2621 (home-page "http://www.dr-qubit.org/emacs.php")
2622 (synopsis "Treat undo history as a tree")
2623 (description "Tree-like interface to Emacs undo system, providing
2624 graphical tree presentation of all previous states of buffer that
2625 allows easily move between them.")
2626 (license license:gpl3+)))
2627
2628 (define-public emacs-s
2629 (package
2630 (name "emacs-s")
2631 (version "1.12.0")
2632 (source
2633 (origin
2634 (method git-fetch)
2635 (uri (git-reference
2636 (url "https://github.com/magnars/s.el.git")
2637 (commit version)))
2638 (file-name (git-file-name name version))
2639 (sha256
2640 (base32 "1g8mqd13llj007al4nlxxx4z2lcsg3wk970mgjn0avwrhjjgdmmv"))))
2641 (build-system emacs-build-system)
2642 (arguments
2643 `(#:tests? #t
2644 #:emacs ,emacs ; FIXME: tests fail with emacs-minimal
2645 #:test-command '("./run-tests.sh")))
2646 (home-page "https://github.com/magnars/s.el")
2647 (synopsis "Emacs string manipulation library")
2648 (description "This package provides an Emacs library for manipulating
2649 strings.")
2650 (license license:gpl3+)))
2651
2652 (define-public emacs-symon
2653 (package
2654 (name "emacs-symon")
2655 (version "20160630")
2656 (source
2657 (origin
2658 (method git-fetch)
2659 (uri (git-reference
2660 (url "https://github.com/zk-phi/symon.git")
2661 (commit version)))
2662 (file-name (git-file-name name version))
2663 (sha256
2664 (base32 "1q7di9s8k710nx98wnqnbkkhdimrn0jf6z4xkm4c78l6s5idjwlz"))))
2665 (build-system emacs-build-system)
2666 (home-page "https://github.com/zk-phi/symon")
2667 (synopsis "Tiny graphical system monitor")
2668 (description
2669 "Tiny graphical system monitor for the Emacs minibuffer when idle.")
2670 (license license:gpl2+)))
2671
2672 (define-public emacs-sx
2673 (let ((version "20191229")
2674 (revision "0")
2675 (commit "e9d1093c97507a6d7b4f4710ef65200dae725e5f"))
2676 (package
2677 (name "emacs-sx")
2678 (version (git-version version revision commit))
2679 (source
2680 (origin
2681 (method git-fetch)
2682 (uri (git-reference
2683 (url "https://github.com/vermiculus/sx.el")
2684 (commit commit)))
2685 (file-name (git-file-name name version))
2686 (sha256
2687 (base32 "0m90ddwm8j0y6d1ppqhd2gil1107k202blw6mzm5bdambn4nfqkf"))))
2688 (build-system emacs-build-system)
2689 (propagated-inputs
2690 `(("emacs-markdown-mode" ,emacs-markdown-mode)))
2691 (home-page "https://github.com/vermiculus/sx.el")
2692 (synopsis "Emacs StackExchange client")
2693 (description
2694 "Emacs StackExchange client. Ask and answer questions on
2695 Stack Overflow, Super User, and other StackExchange sites.")
2696 (license license:gpl3+))))
2697
2698 (define-public emacs-toml-mode
2699 (let ((version "0.1.3")
2700 (revision "0")
2701 (commit "f6c61817b00f9c4a3cab1bae9c309e0fc45cdd06"))
2702 (package
2703 (name "emacs-toml-mode")
2704 (version (git-version version revision commit))
2705 (source
2706 (origin
2707 (method git-fetch)
2708 (uri (git-reference
2709 (url "https://github.com/dryman/toml-mode.el.git")
2710 (commit commit)))
2711 (file-name (git-file-name name version))
2712 (sha256
2713 (base32 "05b4ksay85c8y5ncax0qsvnmplwsfiw24z16a58gkarjz938hb57"))))
2714 (build-system emacs-build-system)
2715 (home-page "https://github.com/dryman/toml-mode.el")
2716 (synopsis "Emacs major mode for editing TOML files")
2717 (description
2718 ;; XXX: Ideally we'd use @acronym for "TOML", but Guile's Texinfo
2719 ;; parser does not currently support @comma{}, making it impossible
2720 ;; to use commas in the @acronym arguments.
2721 "This package provides a major mode for editing files in @dfn{TOML}
2722 (Tom's Obvious, Minimal Language) data format.")
2723 (license license:gpl3+))))
2724
2725 (define-public emacs-twittering-mode
2726 (package
2727 (name "emacs-twittering-mode")
2728 (version "3.1.0")
2729 (source
2730 (origin
2731 (method url-fetch)
2732 (uri (string-append "mirror://sourceforge/twmode"
2733 "/twittering-mode-" version
2734 "/twittering-mode-" version ".tar.xz"))
2735 (sha256
2736 (base32 "02imis1gxz90lah0b5n37j2hlsaw5igss11d85vpsm5d1bgw8j28"))))
2737 (build-system emacs-build-system)
2738 (home-page "http://twmode.sourceforge.net")
2739 (synopsis "Emacs major mode for Twitter")
2740 (description
2741 "Twittering mode is an Emacs major mode for Twitter.
2742 You can check timelines, tweet, mark posts as favorites and so on with
2743 Emacs.")
2744 (license license:gpl2+)))
2745
2746 (define-public emacs-f
2747 (package
2748 (name "emacs-f")
2749 (version "0.20.0")
2750 (source (origin
2751 (method git-fetch)
2752 (uri (git-reference
2753 (url "https://github.com/rejeep/f.el.git")
2754 (commit (string-append "v" version))))
2755 (file-name (git-file-name name version))
2756 (sha256
2757 (base32
2758 "1a47xk3yp1rp17fqg7ldl3d3fb888h0fz3sysqfdz1bfdgs8a9bk"))))
2759 (build-system emacs-build-system)
2760 (propagated-inputs
2761 `(("emacs-s" ,emacs-s)
2762 ("emacs-dash" ,emacs-dash)))
2763 (home-page "https://github.com/rejeep/f.el")
2764 (synopsis "Emacs API for working with files and directories")
2765 (description "This package provides an Emacs library for working with
2766 files and directories.")
2767 (license license:gpl3+)))
2768
2769 (define-public emacs-fringe-helper
2770 (let ((commit "ef4a9c023bae18ec1ddd7265f1f2d6d2e775efdd")
2771 (revision "1"))
2772 (package
2773 (name "emacs-fringe-helper")
2774 (version (git-version "1.0.1" revision commit))
2775 (source
2776 (origin
2777 (method git-fetch)
2778 (uri (git-reference
2779 (url "https://github.com/nschum/fringe-helper.el.git")
2780 (commit commit)))
2781 (file-name (git-file-name name version))
2782 (sha256
2783 (base32 "0ra9rc53l1gvkqank8apasl3r7wz2yfjrcvmfk3wpxhh24ppxv9d"))))
2784 (build-system emacs-build-system)
2785 (arguments
2786 `(#:tests? #t
2787 #:test-command '("emacs" "--batch"
2788 "-l" "tests.el"
2789 "-f" "ert-run-tests-batch-and-exit")))
2790 (home-page "https://github.com/nschum/fringe-helper.el")
2791 (synopsis "Helper functions for fringe bitmaps")
2792 (description
2793 "This package allows fringe bitmaps to be defined with a visual string
2794 representation.")
2795 (license license:gpl2+))))
2796
2797 (define-public emacs-git-gutter
2798 (package
2799 (name "emacs-git-gutter")
2800 (version "0.90")
2801 (source
2802 (origin
2803 (method git-fetch)
2804 (uri (git-reference
2805 (url "https://github.com/syohex/emacs-git-gutter.git")
2806 (commit version)))
2807 (file-name (git-file-name name version))
2808 (sha256
2809 (base32 "1abagq0psip7cgsqbfjv72qy60ywsny0ibsfcn74ldj6a9v17mz5"))))
2810 (build-system emacs-build-system)
2811 (home-page "https://github.com/syohex/emacs-git-gutter")
2812 (synopsis "See and manage hunks of text in a version control system")
2813 (description
2814 "This package is an Emacs minor mode for displaying and interacting with
2815 hunks of text managed in a version control system. Added modified and deleted
2816 areas can be indicated with symbols on the edge of the buffer, and commands
2817 can be used to move between and perform actions on these hunks.
2818
2819 Git, Mercurial, Subversion and Bazaar are supported, and many parts of the
2820 display and behaviour is easily customisable.")
2821 (license license:gpl3+)))
2822
2823 (define-public emacs-git-gutter-fringe
2824 (let ((commit "16226caab44174301f1659f7bf8cc67a76153445")
2825 (revision "1"))
2826 (package
2827 (name "emacs-git-gutter-fringe")
2828 (version (git-version "0.23" revision commit))
2829 (source
2830 (origin
2831 (method git-fetch)
2832 (uri (git-reference
2833 (url "https://github.com/syohex/git-gutter-fringe.git")
2834 (commit commit)))
2835 (file-name (git-file-name name version))
2836 (sha256
2837 (base32 "1y77gjl0yznamdj0f55d418zb75k22izisjg7ikvrfsl2yfqf3pm"))))
2838 (build-system emacs-build-system)
2839 (propagated-inputs
2840 `(("emacs-git-gutter" ,emacs-git-gutter)
2841 ("emacs-fringe-helper" ,emacs-fringe-helper)))
2842 (home-page "https://github.com/syohex/git-gutter-fringe")
2843 (synopsis "See and manage hunks of text in a version control system")
2844 (description
2845 "This package extends @code{git-gutter} to use the fringe area of a
2846 window.")
2847 (license license:gpl3+))))
2848
2849 (define-public emacs-git-link
2850 (package
2851 (name "emacs-git-link")
2852 (version "0.7.5")
2853 (source
2854 (origin
2855 (method git-fetch)
2856 (uri (git-reference
2857 (url "https://github.com/sshaw/git-link.git")
2858 (commit (string-append "v" version))))
2859 (file-name (git-file-name name version))
2860 (sha256
2861 (base32 "04xa6lp8wkjb6zs096bf4sz124grcjj15xv1h009bmn2j95rggj6"))))
2862 (build-system emacs-build-system)
2863 (arguments
2864 `(#:tests? #t
2865 #:test-command '("make" "test")))
2866 (home-page "https://github.com/sshaw/git-link")
2867 (synopsis "Create links for files and commits in GitHub/GitLab/etc. repos")
2868 (description
2869 "@code{git-link} returns the URL for the current buffer's file location
2870 at the current line number or active region. @code{git-link-commit} returns
2871 the URL for a commit. URLs are added to the kill ring.")
2872 (license license:gpl3+)))
2873
2874 (define-public emacs-apheleia
2875 (package
2876 (name "emacs-apheleia")
2877 (version "1.0")
2878 (source
2879 (origin
2880 (method git-fetch)
2881 (uri (git-reference
2882 (url "https://github.com/raxod502/apheleia.git")
2883 (commit (string-append "v" version))))
2884 (file-name (git-file-name name version))
2885 (sha256
2886 (base32 "04pls7zahy4jfkikv6fvd9vfpm4glhyanmmkx79hgi9pwdv966rf"))))
2887 (build-system emacs-build-system)
2888 (home-page "https://github.com/raxod502/apheleia")
2889 (synopsis "Reformat buffer stably")
2890 (description
2891 "This package allows for a buffer to be reformatted without moving point,
2892 so that running a formatting tool like @code{Prettier} or @code{Black} upon
2893 saving won't move point back to the beginning of the buffer.")
2894 (license license:gpl3+)))
2895
2896 (define-public emacs-git-timemachine
2897 (package
2898 (name "emacs-git-timemachine")
2899 (version "4.11")
2900 (source
2901 (origin
2902 (method git-fetch)
2903 (uri (git-reference
2904 (url "https://gitlab.com/pidu/git-timemachine.git")
2905 (commit version)))
2906 (file-name (git-file-name name version))
2907 (sha256
2908 (base32
2909 "1pz4l1xnq6s67w5yq9107vm8dg7rqf8n9dmbn90jys97c722g70n"))))
2910 (build-system emacs-build-system)
2911 (propagated-inputs
2912 `(("emacs-transient" ,emacs-transient)))
2913 (home-page "https://gitlab.com/pidu/git-timemachine")
2914 (synopsis "Step through historic versions of Git-controlled files")
2915 (description "This package enables you to step through historic versions
2916 of files under Git version control from within Emacs.")
2917 (license license:gpl3+)))
2918
2919 (define-public emacs-minitest
2920 (let ((commit "1aadb7865c1dc69c201cecee275751ecec33a182")
2921 (revision "1"))
2922 (package
2923 (name "emacs-minitest")
2924 (version (git-version "0.8.0" revision commit))
2925 (source (origin
2926 (method git-fetch)
2927 (uri (git-reference
2928 (url "https://github.com/arthurnn/minitest-emacs")
2929 (commit commit)))
2930 (file-name (git-file-name name commit))
2931 (sha256
2932 (base32
2933 "1l18zqpdzbnqj2qawq8hj7z7pl8hr8z9d8ihy8jaiqma915hmhj1"))))
2934 (build-system emacs-build-system)
2935 (arguments
2936 '(#:include (cons "^snippets\\/minitest-mode\\/" %default-include)
2937 #:exclude (delete "^[^/]*tests?\\.el$" %default-exclude)))
2938 (propagated-inputs
2939 `(("emacs-dash" ,emacs-dash)
2940 ("emacs-f" ,emacs-f)))
2941 (home-page "https://github.com/arthurnn/minitest-emacs")
2942 (synopsis "Emacs minitest mode")
2943 (description
2944 "The minitest mode provides commands to run the tests for the current
2945 file or line, as well as rerunning the previous tests, or all the tests for a
2946 project.
2947
2948 This package also includes relevant snippets for yasnippet.")
2949 (license license:expat))))
2950
2951 (define-public emacs-el-mock
2952 (package
2953 (name "emacs-el-mock")
2954 (version "1.25.1")
2955 (source
2956 (origin
2957 (method git-fetch)
2958 (uri (git-reference
2959 (url "https://github.com/rejeep/el-mock.el.git")
2960 (commit (string-append "v" version))))
2961 (file-name (git-file-name name version))
2962 (sha256
2963 (base32 "13mv1rhgkwiww2wh5w926jz7idppp492wir1vdl245c5x50dh4f7"))))
2964 (build-system emacs-build-system)
2965 (home-page "https://github.com/rejeep/el-mock.el")
2966 (synopsis "Tiny mock and stub framework in Emacs Lisp")
2967 (description
2968 "Emacs Lisp Mock is a library for mocking and stubbing using readable
2969 syntax. Most commonly Emacs Lisp Mock is used in conjunction with Emacs Lisp
2970 Expectations, but it can be used in other contexts.")
2971 (license license:gpl3+)))
2972
2973 (define-public emacs-espuds
2974 (package
2975 (name "emacs-espuds")
2976 (version "0.3.3")
2977 (source
2978 (origin
2979 (method git-fetch)
2980 (uri (git-reference
2981 (url "https://github.com/ecukes/espuds.git")
2982 (commit (string-append "v" version))))
2983 (file-name (git-file-name name version))
2984 (sha256
2985 (base32 "16r4j27j9yfdiy841w9q5ykkc6n3wrm7hvfacagb32mydk821ijg"))))
2986 (build-system emacs-build-system)
2987 (propagated-inputs
2988 `(("emacs-s" ,emacs-s)
2989 ("emacs-dash" ,emacs-dash)
2990 ("emacs-f" ,emacs-f)))
2991 (home-page "https://github.com/ecukes/espuds")
2992 (synopsis "Common step definitions for Ecukes")
2993 (description "Espuds is a collection of the most commonly used step
2994 definitions for testing with the Ecukes framework.")
2995 (license license:gpl3+)))
2996
2997 (define-public emacs-spark
2998 (let ((version "20160503") ; no proper tag, use date of commit
2999 (commit "0bf148c3ede3b31d56fd75f347cdd0b0eae60025")
3000 (revision "1"))
3001 (package
3002 (name "emacs-spark")
3003 (version (git-version version revision commit))
3004 (source
3005 (origin
3006 (method git-fetch)
3007 (uri (git-reference
3008 (url "https://github.com/alvinfrancis/spark.git")
3009 (commit commit)))
3010 (file-name (git-file-name name version))
3011 (sha256
3012 (base32
3013 "1ykqr86j17mi95s08d9fp02d7ych1331b04dcqxzxnmpkhwngyj1"))))
3014 (build-system emacs-build-system)
3015 (home-page "https://github.com/alvinfrancis/spark")
3016 (synopsis "Sparkline generation library for Emacs Lisp")
3017 (description "@code{emacs-spark} is a sparkline generation library for
3018 Emacs Lisp. It generates a sparkline string given a list of numbers. It is a
3019 port of @code{cl-spark} to Emacs Lisp.")
3020 (license license:expat))))
3021
3022 (define-public emacs-es-mode
3023 (package
3024 (name "emacs-es-mode")
3025 (version "4.3.0")
3026 (source
3027 (origin
3028 (method git-fetch)
3029 (uri (git-reference
3030 (url "https://github.com/dakrone/es-mode.git")
3031 (commit version)))
3032 (file-name (git-file-name name version))
3033 (sha256
3034 (base32 "1qhfnd5anp5qrmravv7ks5ix763xnki2f5jwcyj70qyxwr0l60cg"))))
3035 (build-system emacs-build-system)
3036 (propagated-inputs
3037 ;; The version of org in Emacs 24.5 is not sufficient, and causes tables
3038 ;; to be rendered incorrectly
3039 `(("emacs-dash" ,emacs-dash)
3040 ("emacs-org" ,emacs-org)
3041 ("emacs-spark" ,emacs-spark)))
3042 (home-page "https://github.com/dakrone/es-mode")
3043 (synopsis "Major mode for editing Elasticsearch queries")
3044 (description "@code{es-mode} includes highlighting, completion and
3045 indentation support for Elasticsearch queries. Also supported are
3046 @code{es-mode} blocks in @code{org-mode}, for which the results of queries can
3047 be processed through @code{jq}, or in the case of aggregations, can be
3048 rendered in to a table. In addition, there is an @code{es-command-center}
3049 mode, which displays information about Elasticsearch clusters.")
3050 (license license:gpl3+)))
3051
3052 (define-public emacs-expand-region
3053 (package
3054 (name "emacs-expand-region")
3055 (version "0.11.0")
3056 (source
3057 (origin
3058 (method git-fetch)
3059 (uri (git-reference
3060 (url "https://github.com/magnars/expand-region.el.git")
3061 (commit version)))
3062 (file-name (git-file-name name version))
3063 (sha256
3064 (base32 "0h40dhc3kn8fq86xnwi5lz7ql8my8737y7wkqr897p15y90swr35"))))
3065 (build-system emacs-build-system)
3066 (home-page "https://github.com/magnars/expand-region.el")
3067 (synopsis "Increase selected region by semantic units")
3068 (description
3069 "Expand region increases the selected region by semantic units. Just
3070 keep pressing the key until it selects what you want. There's also
3071 @code{er/contract-region} if you expand too far.")
3072 (license license:gpl3+)))
3073
3074 (define-public emacs-fill-column-indicator
3075 (package
3076 (name "emacs-fill-column-indicator")
3077 (version "1.90")
3078 (source
3079 (origin
3080 (method git-fetch)
3081 (uri (git-reference
3082 (url "https://github.com/alpaker/Fill-Column-Indicator.git")
3083 (commit version)))
3084 (file-name (git-file-name name version))
3085 (sha256
3086 (base32 "0snjznxdwwfdgccdcvrnk467416r244r2r5qcm2sga8l0ha9gw9z"))))
3087 (build-system emacs-build-system)
3088 (home-page "https://www.emacswiki.org/emacs/FillColumnIndicator")
3089 (synopsis "Graphically indicate the fill column")
3090 (description
3091 "Fill-column-indicator graphically indicates the location of the fill
3092 column by drawing a thin line down the length of the editing window.")
3093 (license license:gpl3+)))
3094
3095 (define-public emacs-grep-a-lot
3096 (package
3097 (name "emacs-grep-a-lot")
3098 (version "1.0.7")
3099 (source
3100 (origin
3101 (method git-fetch)
3102 (uri (git-reference
3103 (url "https://github.com/ZungBang/emacs-grep-a-lot.git")
3104 (commit "9f9f645b9e308a0d887b66864ff97d0fca1ba4ad")))
3105 (file-name (git-file-name name version))
3106 (sha256
3107 (base32 "1f8262mrlinzgnn4m49hbj1hm3c1mvzza24py4b37sasn49546lw"))))
3108 (build-system emacs-build-system)
3109 (home-page "https://github.com/ZungBang/emacs-grep-a-lot")
3110 (synopsis "Enables multiple grep buffers in Emacs")
3111 (description
3112 "This Emacs package allows managing multiple grep buffers.")
3113 (license license:gpl3+)))
3114
3115 (define-public emacs-rg
3116 (package
3117 (name "emacs-rg")
3118 (version "1.8.1")
3119 (source
3120 (origin
3121 (method git-fetch)
3122 (uri (git-reference
3123 (url "https://github.com/dajva/rg.el.git")
3124 (commit version)))
3125 (file-name (git-file-name name version))
3126 (sha256
3127 (base32 "0k7x5z7mh9flwih35cqy8chs54rack3nswdcpw5wcpgv6xim227y"))))
3128 (build-system emacs-build-system)
3129 (arguments
3130 '(#:phases
3131 (modify-phases %standard-phases
3132 (add-after 'unpack 'hardcode-rg-path
3133 ;; Hardcode the path to ripgrep.
3134 (lambda _
3135 (let ((file "rg.el"))
3136 (chmod file #o644)
3137 (emacs-substitute-sexps file
3138 ("(defcustom rg-executable" (which "rg")))))))))
3139 (propagated-inputs
3140 `(("emacs-s" ,emacs-s)
3141 ("emacs-wgrep" ,emacs-wgrep)))
3142 (inputs
3143 `(("ripgrep" ,ripgrep)))
3144 (home-page "https://rgel.readthedocs.io/en/latest/")
3145 (synopsis "Search tool based on @code{ripgrep}")
3146 (description
3147 "@code{rg} is an Emacs search package based on the @code{ripgrep} command
3148 line tool. It allows one to interactively search based on the editing context
3149 then refine or modify the search results.")
3150 (license license:gpl3+)))
3151
3152 (define-public emacs-inf-ruby
3153 (package
3154 (name "emacs-inf-ruby")
3155 (version "2.5.2")
3156 (source
3157 (origin
3158 (method git-fetch)
3159 (uri (git-reference
3160 (url "https://github.com/nonsequitur/inf-ruby.git")
3161 (commit version)))
3162 (file-name (git-file-name name version))
3163 (sha256
3164 (base32 "0a1hhvfbl6mq8rjsi77fg9fh5a91hi5scjrg9rjqc5ffbql67y0v"))))
3165 (build-system emacs-build-system)
3166 (home-page "https://github.com/nonsequitur/inf-ruby")
3167 (synopsis "Provides a REPL buffer connected to a Ruby subprocess in Emacs")
3168 (description
3169 "@code{inf-ruby} provides a Read Eval Print Loop (REPL) buffer, allowing
3170 for easy interaction with a ruby subprocess. Features include support for
3171 detecting specific uses of Ruby, e.g. when using rails, and using a
3172 appropriate console.")
3173 (license license:gpl3+)))
3174
3175 (define-public emacs-znc
3176 (package
3177 (name "emacs-znc")
3178 (version "0.0.2")
3179 (source
3180 (origin
3181 (method url-fetch)
3182 (uri (string-append "https://marmalade-repo.org/packages/znc-"
3183 version ".el"))
3184 (sha256
3185 (base32
3186 "1d8lqvybgyazin5z0g1c4l3rg1vzrrvf0saqs53jr1zcdg0lianh"))))
3187 (build-system emacs-build-system)
3188 (home-page "https://github.com/sshirokov/ZNC.el")
3189 (synopsis "Make ERC and ZNC get along better")
3190 (description
3191 "This is a thin wrapper around @code{erc} that enables one to use the ZNC
3192 IRC bouncer with ERC.")
3193 (license license:expat)))
3194
3195 (define-public emacs-shut-up
3196 (package
3197 (name "emacs-shut-up")
3198 (version "0.3.2")
3199 (source
3200 (origin
3201 (method git-fetch)
3202 (uri (git-reference
3203 (url "https://github.com/cask/shut-up.git")
3204 (commit (string-append "v" version))))
3205 (file-name (git-file-name name version))
3206 (sha256
3207 (base32 "103yvfgkj78i4bnv1fwk76izsa8h4wyj3vwj1vq7xggj607hkxzq"))))
3208 (build-system emacs-build-system)
3209 (home-page "https://github.com/cask/shut-up")
3210 (synopsis "Silence Emacs")
3211 (description "This package silences most output of Emacs when running an
3212 Emacs shell script.")
3213 (license license:expat)))
3214
3215 (define-public emacs-undercover
3216 (package
3217 (name "emacs-undercover")
3218 (version "0.6.1")
3219 (source
3220 (origin
3221 (method git-fetch)
3222 (uri (git-reference
3223 (url "https://github.com/sviridov/undercover.el.git")
3224 (commit version)))
3225 (file-name (git-file-name name version))
3226 (sha256
3227 (base32 "080bmfwyfi8663y8x594770hqz7mff7zvj2v03qdfwbhdr9w9y29"))))
3228 (build-system emacs-build-system)
3229 (propagated-inputs
3230 `(("emacs-dash" ,emacs-dash)
3231 ("emacs-shut-up" ,emacs-shut-up)))
3232 (home-page "https://github.com/sviridov/undercover.el")
3233 (synopsis "Test coverage library for Emacs Lisp")
3234 (description
3235 "Undercover is a test coverage library for software written in Emacs
3236 Lisp.")
3237 (license license:expat)))
3238
3239 (define-public emacs-paren-face
3240 (package
3241 (name "emacs-paren-face")
3242 (version "1.0.5")
3243 (source
3244 (origin
3245 (method git-fetch)
3246 (uri (git-reference
3247 (url "https://github.com/tarsius/paren-face.git")
3248 (commit version)))
3249 (file-name (git-file-name name version))
3250 (sha256
3251 (base32
3252 "04vkg8fhdn8x02dydxbwpizh2yn3sbmn9432v770vbbq6b62k2lx"))))
3253 (build-system emacs-build-system)
3254 (home-page "https://github.com/tarsius/paren-face")
3255 (synopsis "Face for parentheses in lisp modes")
3256 (description
3257 "This library defines a face named @code{parenthesis} used just for
3258 parentheses. The intended purpose of this face is to make parentheses less
3259 visible in Lisp code by dimming them. Lispers probably don't need to be
3260 constantly made aware of the existence of the parentheses. Dimming them might
3261 be even more useful for people new to lisp who have not yet learned to
3262 subconsciously blend out the parentheses.")
3263 (license license:gpl3+)))
3264
3265 (define-public emacs-page-break-lines
3266 (package
3267 (name "emacs-page-break-lines")
3268 (version "0.11")
3269 (source
3270 (origin
3271 (method git-fetch)
3272 (uri (git-reference
3273 (url "https://github.com/purcell/page-break-lines.git")
3274 (commit version)))
3275 (file-name (git-file-name name version))
3276 (sha256
3277 (base32 "1wp974716ih2cz9kdmdz7xwjy1qnnfzdzlfr9kchknagw8d9nn12"))))
3278 (build-system emacs-build-system)
3279 (home-page "https://github.com/purcell/page-break-lines")
3280 (synopsis "Display page breaks as tidy horizontal lines")
3281 (description
3282 "This library provides a global mode which displays form feed characters
3283 as horizontal rules.")
3284 (license license:gpl3+)))
3285
3286 (define-public emacs-simple-httpd
3287 (package
3288 (name "emacs-simple-httpd")
3289 (version "1.5.1")
3290 (source
3291 (origin
3292 (method git-fetch)
3293 (uri (git-reference
3294 (url "https://github.com/skeeto/emacs-web-server.git")
3295 (commit version)))
3296 (file-name (git-file-name name version))
3297 (sha256
3298 (base32 "0dpn92rg813c4pq7a1vzj3znyxzp2lmvxqz6pzcqi0l2xn5r3wvb"))))
3299 (build-system emacs-build-system)
3300 (home-page "https://github.com/skeeto/emacs-web-server")
3301 (synopsis "HTTP server in pure Emacs Lisp")
3302 (description
3303 "This package provides a simple HTTP server written in Emacs Lisp to
3304 serve files and directory listings.")
3305 (license license:unlicense)))
3306
3307 (define-public emacs-skewer-mode
3308 (package
3309 (name "emacs-skewer-mode")
3310 (version "1.8.0")
3311 (source
3312 (origin
3313 (method git-fetch)
3314 (uri (git-reference
3315 (url "https://github.com/skeeto/skewer-mode.git")
3316 (commit version)))
3317 (file-name (git-file-name name version))
3318 (sha256
3319 (base32 "1ha7jl7776pk1bki5zj2q0jy66450mn8xr3aqjc0m9kj3gc9qxgw"))))
3320 (build-system emacs-build-system)
3321 (propagated-inputs
3322 `(("emacs-simple-httpd" ,emacs-simple-httpd)
3323 ("emacs-js2-mode" ,emacs-js2-mode)))
3324 (arguments '(#:include '("\\.el$" "\\.js$" "\\.html$")))
3325 (home-page "https://github.com/skeeto/skewer-mode")
3326 (synopsis "Live web development in Emacs")
3327 (description
3328 "Skewer-mode provides live interaction with JavaScript, CSS, and HTML in
3329 a web browser. Expressions are sent on-the-fly from an editing buffer to be
3330 evaluated in the browser, just like Emacs does with an inferior Lisp process
3331 in Lisp modes.")
3332 (license license:unlicense)))
3333
3334 (define-public emacs-litable
3335 (let ((commit "b0278f3f8dcff424bfbdfdefb545b1fbff33206f"))
3336 (package
3337 (name "emacs-litable")
3338 (version (git-version "0.1" "0" commit))
3339 (source (origin
3340 (method git-fetch)
3341 (uri (git-reference
3342 (url "https://github.com/Fuco1/litable.git")
3343 (commit commit)))
3344 (file-name (git-file-name name version))
3345 (sha256
3346 (base32
3347 "0bny40hv9a024n01clxns351cs4j4ifhgcc7m4743xncqf612p7g"))))
3348 (build-system emacs-build-system)
3349 (propagated-inputs
3350 `(("emacs-dash" ,emacs-dash)))
3351 (home-page "https://github.com/Fuco1/litable/")
3352 (synopsis "Dynamic evaluation replacement with Emacs")
3353 (description "This package provides dynamic evaluation in Emacs.")
3354 (license license:gpl3+))))
3355
3356 (define-public emacs-string-inflection
3357 (package
3358 (name "emacs-string-inflection")
3359 (version "1.0.6")
3360 (source (origin
3361 (method git-fetch)
3362 (uri (git-reference
3363 (url "https://github.com/akicho8/string-inflection")
3364 (commit "a150e7bdda60b7824d3a936750ce23f73b0e4edd")))
3365 (file-name (git-file-name name version))
3366 (sha256
3367 (base32
3368 "1k0sm552iawi49v4zis6dbb81d1rzgky9v0dpv7nj31gnb7bmy7k"))))
3369 (build-system emacs-build-system)
3370 (native-inputs
3371 `(("ert-runner" ,emacs-ert-runner)))
3372 (arguments
3373 `(#:tests? #t
3374 #:test-command '("ert-runner")))
3375 (home-page "https://github.com/akicho8/string-inflection")
3376 (synopsis "Convert symbol names between different naming conventions")
3377 (description
3378 "This Emacs package provides convenient methods for manipulating the
3379 naming style of a symbol. It supports different naming conventions such as:
3380
3381 @enumerate
3382 @item camel case
3383 @item Pascal case
3384 @item all upper case
3385 @item lower case separated by underscore
3386 @item etc...
3387 @end enumerate\n")
3388 (license license:gpl2+)))
3389
3390 (define-public emacs-stripe-buffer
3391 (package
3392 (name "emacs-stripe-buffer")
3393 (version "0.2.5")
3394 (source
3395 (origin
3396 (method git-fetch)
3397 (uri (git-reference
3398 (url "https://github.com/sabof/stripe-buffer.git")
3399 (commit version)))
3400 (file-name (git-file-name name version))
3401 (sha256
3402 (base32 "035ym1c1vzg6hjsnd258z4dkrfc11lj4c0y4gpgybhk54dq3w9dk"))))
3403 (build-system emacs-build-system)
3404 (home-page "https://github.com/sabof/stripe-buffer/")
3405 (synopsis "Add stripes to list buffers")
3406 (description
3407 "This Emacs package adds faces to add stripes to list buffers and org
3408 tables.")
3409 (license license:gpl2+)))
3410
3411 (define-public emacs-org-rich-yank
3412 (package
3413 (name "emacs-org-rich-yank")
3414 (version "0.2.1")
3415 (source
3416 (origin
3417 (method git-fetch)
3418 (uri (git-reference
3419 (url "https://github.com/unhammer/org-rich-yank.git")
3420 (commit (string-append "v" version))))
3421 (file-name (git-file-name name version))
3422 (sha256
3423 (base32 "0gxb0fnh5gxjmld0hnk5hli0cvdd8gjd27m30bk2b80kwldxlq1z"))))
3424 (build-system emacs-build-system)
3425 (home-page "https://github.com/unhammer/org-rich-yank")
3426 (synopsis "Automatically surround source code pasted into Org with
3427 @code{#+BEGIN_SRC} blocks")
3428 (description
3429 "This package provides a utility function for Org buffers that makes a
3430 @code{_SRC} block with the appropriate language annotation for code that has
3431 been copied from an Emacs major mode.")
3432 (license license:gpl2+)))
3433
3434 (define-public emacs-ob-restclient
3435 (let ((commit "53376667eeddb1388fd6c6976f3222e7c8adcd46"))
3436 (package
3437 (name "emacs-ob-restclient")
3438 (version (git-version "0.02" "1" commit))
3439 (source
3440 (origin
3441 (method git-fetch)
3442 (uri (git-reference
3443 (url "https://github.com/alf/ob-restclient.el.git")
3444 (commit commit)))
3445 (file-name (git-file-name name version))
3446 (sha256
3447 (base32 "1djg53cp7y83gic2v71y6r5z76kwrbkp0r69hl25rs99dx6p89dy"))))
3448 (propagated-inputs
3449 `(("emacs-restclient" ,emacs-restclient)))
3450 (build-system emacs-build-system)
3451 (home-page "https://github.com/alf/ob-restclient.el")
3452 (synopsis "Org-babel functionality for @code{restclient-mode}")
3453 (description
3454 "This package integrates @code{restclient-mode} with Org.")
3455 (license license:gpl3+))))
3456
3457 (define-public emacs-org-now
3458 (let ((commit "8f6b277a73f1c66e58ccb4b7f40d406851befc91"))
3459 (package
3460 (name "emacs-org-now")
3461 (version (git-version "0.1-pre" "1" commit))
3462 (source
3463 (origin
3464 (method git-fetch)
3465 (uri (git-reference
3466 (url "https://github.com/alphapapa/org-now.git")
3467 (commit commit)))
3468 (file-name (git-file-name name version))
3469 (sha256
3470 (base32 "117zzkryznznk6h4i1jqzdn888nl019xrgxm2gza0lndx8dxsg2c"))))
3471 (propagated-inputs
3472 `(("emacs-dash" ,emacs-dash)))
3473 (build-system emacs-build-system)
3474 (home-page "https://github.com/alphapapa/org-now")
3475 (synopsis "Show current Org tasks in a sidebar")
3476 (description
3477 "This package provides commands to show Org headings in a sidebar
3478 window while working on them. After defining one heading as the \"now\"
3479 heading, other headings can be refiled to it with one command, and back to
3480 their original location with another.")
3481 (license license:gpl3+))))
3482
3483 (define-public emacs-rich-minority
3484 (package
3485 (name "emacs-rich-minority")
3486 (version "1.0.3")
3487 (source
3488 (origin
3489 (method git-fetch)
3490 (uri (git-reference
3491 (url "https://github.com/Malabarba/rich-minority.git")
3492 (commit version)))
3493 (file-name (git-file-name name version))
3494 (sha256
3495 (base32
3496 "1kn7c9qr9ykj68iqffzzmjsr6aazwac8cxb7j960sjb282rq0yyj"))))
3497 (build-system emacs-build-system)
3498 (home-page "https://github.com/Malabarba/rich-minority")
3499 (synopsis "Clean-up and beautify the list of minor modes")
3500 (description
3501 "This Emacs package hides and/or highlights minor modes in the
3502 mode-line.")
3503 (license license:gpl2+)))
3504
3505 (define-public emacs-robe
3506 (package
3507 (name "emacs-robe")
3508 (version "0.8.2")
3509 (source
3510 (origin
3511 (method git-fetch)
3512 (uri (git-reference
3513 (url "https://github.com/dgutov/robe.git")
3514 (commit version)))
3515 (file-name (git-file-name name version))
3516 (sha256
3517 (base32 "0qw18wi54yg971n4wnjqkd8lqj5lbs9ra8bvmngif2bzhqlfdsbn"))))
3518 (build-system emacs-build-system)
3519 (arguments
3520 '(#:include (cons "^lib\\/" %default-include)))
3521 (propagated-inputs
3522 `(("emacs-inf-ruby" ,emacs-inf-ruby)))
3523 (home-page "https://github.com/dgutov/robe")
3524 (synopsis "Ruby code assistance tool for Emacs")
3525 (description
3526 "Robe can provide information on loaded classes and modules in Ruby code,
3527 as well as where methods are defined. This allows the user to jump to method
3528 definitions, modules and classes, display method documentation and provide
3529 method and constant name completion.")
3530 (license license:gpl3+)))
3531
3532 (define-public emacs-robot-mode
3533 (let ((commit "32846e7e80ae3471b7c07f9709dcaa4f9b9ed4a0")
3534 (revision "1"))
3535 (package
3536 (name "emacs-robot-mode")
3537 (version (git-version "0.0.0" revision commit))
3538 (source (origin
3539 (method git-fetch)
3540 (uri (git-reference
3541 ;; A better maintained fork of robot-mode.
3542 (url "https://github.com/jvalkeejarvi/robot-mode.git")
3543 (commit commit)))
3544 (file-name (git-file-name name version))
3545 (sha256
3546 (base32
3547 "1i8wf7m0gml8zvvmlgppjzv78b432686p1qdbzgclc7qfcvzag0d"))))
3548 (build-system emacs-build-system)
3549 (propagated-inputs `(("emacs-s" ,emacs-s)))
3550 (home-page "https://github.com/jvalkeejarvi/robot-mode")
3551 (synopsis "Emacs mode for Robot Framework")
3552 (description "This major mode facilitates editing Robot Framework source
3553 files with features such as syntax highlighting, comments, finding keywords,
3554 completing keywords and smart indentation.")
3555 (license license:gpl3+))))
3556
3557 (define-public emacs-rspec
3558 (let ((commit "66ea7cc9699d6edc6115daa024818adbd85efc20")
3559 (revision "1"))
3560 (package
3561 (name "emacs-rspec")
3562 (version (git-version "1.11" revision commit))
3563 (source
3564 (origin
3565 (method git-fetch)
3566 (uri (git-reference
3567 (url "https://github.com/pezra/rspec-mode.git")
3568 (commit commit)))
3569 (file-name (git-file-name name version))
3570 (sha256
3571 (base32 "0b11s8r0pi7ah54km4yg4fqff8wkk409d25qnlwm1l94pdwjd1c8"))))
3572 (build-system emacs-build-system)
3573 (arguments
3574 `(#:include (cons "^snippets\\/rspec-mode\\/" %default-include)
3575 #:tests? #t
3576 #:test-command '("make" "test")))
3577 (home-page "https://github.com/pezra/rspec-mode")
3578 (synopsis "Provides a rspec mode for working with RSpec")
3579 (description
3580 "The Emacs RSpec mode provides keybindings for Ruby source files, e.g. to
3581 verify the spec associated with the current buffer, or entire project, as well
3582 as moving between the spec files, and corresponding code files.
3583
3584 Also included are keybindings for spec files and Dired buffers, as well as
3585 snippets for yasnippet.")
3586 (license license:gpl3+))))
3587
3588 (define-public emacs-smart-mode-line
3589 (package
3590 (name "emacs-smart-mode-line")
3591 (version "2.13")
3592 (source
3593 (origin
3594 (method git-fetch)
3595 (uri (git-reference
3596 (url "https://github.com/Malabarba/smart-mode-line.git")
3597 (commit version)))
3598 (file-name (git-file-name name version))
3599 (sha256
3600 (base32 "164b697xm1rwcggv37dymhf3npbyh2bs59z8b6m5x35lb4c3lf8b"))))
3601 (build-system emacs-build-system)
3602 (propagated-inputs
3603 `(("emacs-rich-minority" ,emacs-rich-minority)))
3604 (home-page "https://github.com/Malabarba/smart-mode-line")
3605 (synopsis "Color-coded smart mode-line")
3606 (description
3607 "Smart Mode Line is a mode-line theme for Emacs. It aims to be easy to
3608 read from small to large monitors by using colors, a prefix feature, and smart
3609 truncation.")
3610 (license license:gpl2+)))
3611
3612 (define-public emacs-sr-speedbar
3613 (let ((commit "77a83fb50f763a465c021eca7343243f465b4a47")
3614 (revision "0"))
3615 (package
3616 (name "emacs-sr-speedbar")
3617 (version (git-version "20161025" revision commit))
3618 (source
3619 (origin
3620 (method git-fetch)
3621 (uri (git-reference
3622 (url "https://github.com/emacsorphanage/sr-speedbar.git")
3623 (commit commit)))
3624 (file-name (git-file-name name version))
3625 (sha256
3626 (base32
3627 "0sd12555hk7z721y00kv3crdybvcn1i08wmd148z5imayzibj153"))))
3628 (build-system emacs-build-system)
3629 (home-page "https://www.emacswiki.org/emacs/SrSpeedbar")
3630 (synopsis "Same frame Emacs @code{speedbar}")
3631 (description
3632 "This Emacs package allows you to show @code{M-x speedbar} in the
3633 same frame (in an extra window). You can customize the initial width of
3634 the speedbar window.")
3635 (license license:gpl3+))))
3636
3637 (define-public emacs-shell-switcher
3638 (package
3639 (name "emacs-shell-switcher")
3640 (version "1.0.1")
3641 (source
3642 (origin
3643 (method git-fetch)
3644 (uri (git-reference
3645 (url "https://github.com/DamienCassou/shell-switcher.git")
3646 (commit (string-append "v" version))))
3647 (file-name (git-file-name name version))
3648 (sha256
3649 (base32 "0ia7sdip4hl27avckv3qpqgm3k4ynvp3xxq1cy53bqfzzx0gcria"))))
3650 (build-system emacs-build-system)
3651 (home-page "https://github.com/DamienCassou/shell-switcher")
3652 (synopsis "Provide fast switching between shell buffers")
3653 (description
3654 "This package provides commands to quickly switch between shell buffers.")
3655 (license license:gpl3+)))
3656
3657 (define-public emacs-names
3658 (let ((commit "d8baba5360e5253938a25d3e005455b6d2d86971")
3659 (version "20151201.0")
3660 (revision "8"))
3661 (package
3662 (name "emacs-names")
3663 (version (git-version version revision commit))
3664 (source
3665 (origin
3666 (method git-fetch)
3667 (uri (git-reference
3668 (url "https://github.com/Malabarba/names")
3669 (commit commit)))
3670 (file-name (git-file-name name version))
3671 (sha256
3672 (base32
3673 "11wyha2q8y7bzqq3jrzix8n97ywvsibvddrahqcps1a1yqk4hzfz"))))
3674 (build-system emacs-build-system)
3675 (home-page "https://github.com/Malabarba/names/")
3676 (synopsis "Namespace implementation for Emacs Lisp")
3677 (description
3678 "This package provides a macro that writes your namespaces for you.")
3679 (license license:gpl3+))))
3680
3681 (define-public emacs-evil-leader
3682 (package
3683 (name "emacs-evil-leader")
3684 (version "0.4.3")
3685 (source
3686 (origin
3687 (method git-fetch)
3688 (uri
3689 (git-reference
3690 (url "https://github.com/cofi/evil-leader")
3691 (commit version)))
3692 (file-name (git-file-name name version))
3693 (sha256
3694 (base32 "1k2zinchs0jjllp8zkpggckyy63dkyi5yig3p46vh4w45jdzysk5"))))
3695 (inputs
3696 `(("emacs-evil" ,emacs-evil)))
3697 (build-system emacs-build-system)
3698 (home-page "https://github.com/cofi/evil-leader")
3699 (synopsis "Implement <leader> feature from Vim")
3700 (description
3701 "Evil Leader provides the @code{<leader>} feature from Vim that provides
3702 an easy way to bind keys under a configurable prefix key.")
3703 (license license:gpl3+)))
3704
3705 (define-public emacs-evil-textobj-syntax
3706 (let ((commit "2d9ba8c75c754b409aea7469f46a5cfa52a872f3")
3707 (version "0")
3708 (revision "1"))
3709 (package
3710 (name "emacs-evil-textobj-syntax")
3711 (version (git-version version revision commit))
3712 (source
3713 (origin
3714 (method git-fetch)
3715 (uri (git-reference
3716 (url "https://github.com/laishulu/evil-textobj-syntax/")
3717 (commit commit)))
3718 (file-name (git-file-name name version))
3719 (sha256
3720 (base32
3721 "031p5i3274dazp7rz6m5y38shfgszm1clmkcf58qfqlvy978ammc"))))
3722 (build-system emacs-build-system)
3723 (propagated-inputs `(("emacs-evil" ,emacs-evil)
3724 ("emacs-names" ,emacs-names)))
3725 (home-page "https://github.com/laishulu/evil-textobj-syntax/")
3726 (synopsis "Text objects based on syntax highlighting")
3727 (description
3728 "This package provides text objects for @code{evil-mode} with
3729 boundaries defined by syntax highlighting.")
3730 (license license:gpl3+))))
3731
3732 (define-public emacs-flycheck-flow
3733 (let ((commit "9e8e52cfc98af6a23fd906f9cb5d5d470d8cf82d")
3734 (version "1.1")
3735 (revision "1"))
3736 (package
3737 (name "emacs-flycheck-flow")
3738 (version (git-version version revision commit))
3739 (source
3740 (origin
3741 (method git-fetch)
3742 (uri (git-reference
3743 (url "https://github.com/lbolla/emacs-flycheck-flow")
3744 (commit commit)))
3745 (file-name (git-file-name name version))
3746 (sha256
3747 (base32
3748 "14qldlisbmxzammr500gyha2hiv2xgyzfc6mysqii06kbcqn1ik1"))))
3749 (build-system emacs-build-system)
3750 (propagated-inputs
3751 `(("emacs-flycheck" ,emacs-flycheck)))
3752 (home-page "https://github.com/lbolla/emacs-flycheck-flow")
3753 (synopsis "Flow support for @code{flycheck-mode}")
3754 (description
3755 "This package allows @code{flycheck-mode} to provide syntax-checking
3756 for Flow files.")
3757 (license license:gpl3+))))
3758
3759 (define-public emacs-flycheck-grammalecte
3760 (package
3761 (name "emacs-flycheck-grammalecte")
3762 (version "1.0")
3763 (source
3764 (origin
3765 (method url-fetch)
3766 (uri (string-append "https://git.deparis.io/"
3767 "flycheck-grammalecte/snapshot/"
3768 "flycheck-grammalecte-" version ".tar.xz"))
3769 (sha256
3770 (base32 "02wxaw228dia8cps0v02327hrrribfqb4601qggjpi4l4ms1lf8b"))))
3771 (build-system emacs-build-system)
3772 (arguments
3773 `(#:include '("\\.(el|py)$")
3774 #:phases
3775 (modify-phases %standard-phases
3776 (add-after 'unpack 'set-external-executables
3777 ;; Hardcode python3 and curl executables in the Emacs library.
3778 (lambda* (#:key inputs #:allow-other-keys)
3779 (let ((python3 (string-append (assoc-ref inputs "python")
3780 "/bin/python3"))
3781 (curl (string-append (assoc-ref inputs "curl")
3782 "/bin/curl")))
3783 (substitute* "flycheck-grammalecte.el"
3784 (("\"python3?") (string-append "\"" python3))
3785 (("\"curl") (string-append "\"" curl)))
3786 #t)))
3787 (add-after 'install 'link-to-grammalecte
3788 ;; The package expects grammalecte to be in a sub-directory.
3789 ;; Symlink it there from the store.
3790 (lambda* (#:key inputs outputs #:allow-other-keys)
3791 (let ((grammalecte (assoc-ref inputs "grammalecte"))
3792 (out (assoc-ref outputs "out"))
3793 (version ,(version-major+minor (package-version python))))
3794 (with-directory-excursion
3795 (string-append out "/share/emacs/site-lisp")
3796 (symlink (string-append grammalecte "/lib/"
3797 "python" version "/site-packages/"
3798 "grammalecte")
3799 "grammalecte"))
3800 #t))))))
3801 (inputs
3802 `(("curl" ,curl)
3803 ("grammalecte" ,grammalecte)
3804 ("python" ,python)))
3805 (propagated-inputs
3806 `(("emacs-flycheck" ,emacs-flycheck)))
3807 (home-page "https://git.deparis.io/flycheck-grammalecte/")
3808 (synopsis "Integrate Grammalecte with Flycheck")
3809 (description "Integrate the French grammar and typography checker
3810 Grammalecte with Flycheck to automatically look for mistakes in your writings.
3811 It also provides an easy way to find synonyms and antonyms for a given
3812 word (to avoid repetitions for example).")
3813 (license license:gpl3+)))
3814
3815 (define-public emacs-flycheck-rust
3816 (package
3817 (name "emacs-flycheck-rust")
3818 (version "1.1")
3819 (source
3820 (origin
3821 (method git-fetch)
3822 (uri
3823 (git-reference
3824 (url "https://github.com/flycheck/flycheck-rust")
3825 (commit version)))
3826 (file-name (git-file-name name version))
3827 (sha256
3828 (base32 "1fh6j5w2387nh2fwwjphkhq17cgj5m2q5k0fhidvgc2w65lzbr1r"))))
3829 (propagated-inputs
3830 `(("emacs-dash" ,emacs-dash)
3831 ("emacs-flycheck" ,emacs-flycheck)
3832 ("emacs-let-alist" ,emacs-let-alist)))
3833 (build-system emacs-build-system)
3834 (home-page "https://github.com/flycheck/flycheck-rust")
3835 (synopsis "Rust/Cargo support for Flycheck")
3836 (description
3837 "This Flycheck extension configures Flycheck automatically for
3838 the current Cargo project.")
3839 (license license:gpl3+)))
3840
3841 (define-public emacs-elisp-demos
3842 (package
3843 (name "emacs-elisp-demos")
3844 (version "2020.02.19")
3845 (source
3846 (origin
3847 (method git-fetch)
3848 (uri (git-reference
3849 (url "https://github.com/xuchunyang/elisp-demos")
3850 (commit version)))
3851 (file-name (git-file-name name version))
3852 (sha256
3853 (base32
3854 "0mckgaz92v3y2vlkggx9kd51fd1mahylw39c42l51dyv8wscm7sc"))))
3855 (build-system emacs-build-system)
3856 (arguments
3857 `(#:include '("\\.el$" "\\.org$")
3858 #:tests? #t
3859 #:test-command '("make" "test")))
3860 (home-page "https://github.com/xuchunyang/elisp-demos/")
3861 (synopsis "Enhance @code{*Help*} buffers with additional examples")
3862 (description
3863 "This package injects example uses of Elisp functions into their
3864 respective @code{*Help*} buffers.")
3865 (license license:gpl3+)))
3866
3867 (define-public emacs-docker-compose-mode
3868 (package
3869 (name "emacs-docker-compose-mode")
3870 (version "1.1.0")
3871 (source
3872 (origin
3873 (method git-fetch)
3874 (uri (git-reference
3875 (url "https://github.com/meqif/docker-compose-mode")
3876 (commit version)))
3877 (file-name (git-file-name name version))
3878 (sha256
3879 (base32
3880 "1fbcxwfvm33xcdj3cs26d9i1zyrryyjjkv7sc3mfxd45nq8d3ivj"))))
3881 (build-system emacs-build-system)
3882 (propagated-inputs
3883 `(("emacs-dash" ,emacs-dash)
3884 ("emacs-f" ,emacs-f)))
3885 (home-page "https://github.com/meqif/docker-compose-mode/")
3886 (synopsis "Major mode for editing @file{docker-compose} files")
3887 (description
3888 "This is a major mode for @file{docker-compose} files that provides
3889 completion of relevant keywords.")
3890 (license license:expat)))
3891
3892 (define-public emacs-sudo-edit
3893 (let ((commit "cc3d478937b1accd38742bfceba92af02ee9357d")
3894 (revision "6"))
3895 (package
3896 (name "emacs-sudo-edit")
3897 (version (git-version "0.1.0" revision commit))
3898 (source
3899 (origin
3900 (method git-fetch)
3901 (uri (git-reference
3902 (url "https://github.com/nflath/sudo-edit")
3903 (commit commit)))
3904 (file-name (git-file-name name version))
3905 (sha256
3906 (base32
3907 "1qv58x5j5a3v1s2ylhck1ykbfclq0mbi0gsvaql3nyv8cxazqlwl"))))
3908 (build-system emacs-build-system)
3909 (native-inputs
3910 `(("emacs-undercover" ,emacs-undercover)))
3911 (arguments
3912 `(#:phases
3913 (modify-phases %standard-phases
3914 (add-before 'check 'fix-makefile
3915 (lambda _
3916 (substitute* "Makefile"
3917 (("\\$\\(CASK\\) exec ") ""))
3918 #t)))
3919 #:tests? #t
3920 #:test-command '("make" "test")))
3921 (home-page "https://github.com/nflath/sudo-edit/")
3922 (synopsis "Open files as another user")
3923 (description
3924 "This package allows editing files as another user, including the root
3925 user.")
3926 (license license:gpl3+))))
3927
3928 (define-public emacs-miniedit
3929 (package
3930 (name "emacs-miniedit")
3931 (version "2.0")
3932 (source
3933 (origin
3934 (method git-fetch)
3935 (uri (git-reference
3936 (url "https://github.com/emacsmirror/miniedit")
3937 (commit version)))
3938 (file-name (git-file-name name version))
3939 (sha256
3940 (base32
3941 "1850z96gly0jnr50472idqz1drzqarr0n23bbasslrc501xkg0bq"))))
3942 (build-system emacs-build-system)
3943 (home-page "https://github.com/emacsmirror/miniedit/")
3944 (synopsis "Enhanced editing for minibuffer fields")
3945 (description
3946 "This package provides a function that can be called from the
3947 minibuffer to enable editing the minibuffer input in another buffer with
3948 @code{text-mode} enabled.")
3949 (license license:gpl2+)))
3950
3951 (define-public emacs-ob-ipython
3952 (package
3953 (name "emacs-ob-ipython")
3954 (version "20180224")
3955 (source (origin
3956 (method git-fetch)
3957 (uri (git-reference
3958 (commit "7147455230841744fb5b95dcbe03320313a77124")
3959 (url "https://github.com/gregsexton/ob-ipython.git")))
3960 (file-name (git-file-name name version))
3961 (sha256
3962 (base32
3963 "1a10fc2jk37ni5sjjvf87s5nyaz2a6h2mlj5dxh4dhv5sd3bb85p"))))
3964 (build-system emacs-build-system)
3965 (propagated-inputs
3966 `(("emacs-f" ,emacs-f)))
3967 (home-page "http://www.gregsexton.org")
3968 (synopsis "Org-Babel functions for IPython evaluation")
3969 (description "This package adds support to Org-Babel for evaluating Python
3970 source code using IPython.")
3971 (license license:gpl3+)))
3972
3973 (define-public emacs-debbugs
3974 (package
3975 (name "emacs-debbugs")
3976 (version "0.22")
3977 (source (origin
3978 (method url-fetch)
3979 (uri (string-append "https://elpa.gnu.org/packages/debbugs-"
3980 version ".tar"))
3981 (sha256
3982 (base32
3983 "05ik9qv539b5c1nzxkk3lk23bqj4vqgmfmd8x367abhb7c9gix2z"))))
3984 (build-system emacs-build-system)
3985 (arguments '(#:include '("\\.el$" "\\.wsdl$" "\\.info$")))
3986 (propagated-inputs
3987 `(("emacs-async" ,emacs-async)))
3988 (home-page "https://elpa.gnu.org/packages/debbugs.html")
3989 (synopsis "Access the Debbugs bug tracker in Emacs")
3990 (description
3991 "This package lets you access the @uref{http://bugs.gnu.org,GNU Bug
3992 Tracker} from within Emacs.
3993
3994 For instance, it defines the command @code{M-x debbugs-gnu} for listing bugs,
3995 and the command @code{M-x debbugs-gnu-search} for bug searching. If you
3996 prefer the listing of bugs as TODO items of @code{org-mode}, you could use
3997 @code{M-x debbugs-org} and related commands.
3998
3999 A minor mode @code{debbugs-browse-mode} let you browse URLs to the GNU Bug
4000 Tracker as well as bug identifiers prepared for @code{bug-reference-mode}.")
4001 (license license:gpl3+)))
4002
4003 (define-public emacs-ert-expectations
4004 (package
4005 (name "emacs-ert-expectations")
4006 (version "0.2")
4007 (source
4008 (origin
4009 (method url-fetch)
4010 (uri "https://www.emacswiki.org/emacs/download/ert-expectations.el")
4011 (sha256
4012 (base32
4013 "0cwy3ilsid90abzzjb7ha2blq9kmv3gfp3icwwfcz6qczgirq6g7"))))
4014 (build-system emacs-build-system)
4015 (home-page "https://www.emacswiki.org/emacs/ert-expectations.el")
4016 (synopsis "Simple unit test framework for Emacs Lisp")
4017 (description "@code{emacs-ert-expectations} is a simple unit test
4018 framework for Emacs Lisp to be used with @code{ert}.")
4019 (license license:gpl3+)))
4020
4021 (define-public emacs-deferred
4022 (package
4023 (name "emacs-deferred")
4024 (version "0.5.1")
4025 (home-page "https://github.com/kiwanami/emacs-deferred")
4026 (source (origin
4027 (method git-fetch)
4028 (uri (git-reference
4029 (url home-page)
4030 (commit (string-append "v" version))))
4031 (file-name (git-file-name name version))
4032 (sha256
4033 (base32
4034 "0xy9zb6wwkgwhcxdnslqk52bq3z24chgk6prqi4ks0qcf2bwyh5h"))))
4035 (build-system emacs-build-system)
4036 (arguments
4037 `(#:phases
4038 (modify-phases %standard-phases
4039 (add-after 'unpack 'set-shell
4040 ;; Setting the SHELL environment variable is required for the tests
4041 ;; to find sh.
4042 (lambda _
4043 (setenv "SHELL" (which "sh"))
4044 #t))
4045 (add-before 'check 'fix-makefile
4046 (lambda _
4047 (substitute* "Makefile"
4048 (("\\$\\(CASK\\) exec ") ""))
4049 #t)))
4050 #:tests? #t
4051 #:test-command '("make" "test")))
4052 (native-inputs
4053 `(("emacs-ert-expectations" ,emacs-ert-expectations)
4054 ("emacs-undercover" ,emacs-undercover)
4055 ("ert-runner" ,emacs-ert-runner)))
4056 (synopsis "Simple asynchronous functions for Emacs Lisp")
4057 (description
4058 "The @code{deferred.el} library provides support for asynchronous tasks.
4059 The API is almost the same as that of
4060 @uref{https://github.com/cho45/jsdeferred, JSDeferred}, a JavaScript library
4061 for asynchronous tasks.")
4062 (license license:gpl3+)))
4063
4064 (define-public emacs-butler
4065 (package
4066 (name "emacs-butler")
4067 (version "0.2.4")
4068 (home-page "https://github.com/AshtonKem/Butler")
4069 (source (origin
4070 (method git-fetch)
4071 (uri (git-reference
4072 (url home-page)
4073 (commit version)))
4074 (file-name (git-file-name name version))
4075 (sha256
4076 (base32
4077 "1pii9dw4skq7nr4na6qxqasl36av8cwjp71bf1fgppqpcd9z8skj"))))
4078 (build-system emacs-build-system)
4079 (propagated-inputs
4080 `(("emacs-deferred" ,emacs-deferred)))
4081 (synopsis "Emacs client for Jenkins")
4082 (description
4083 "Butler provides an interface to connect to Jenkins continuous
4084 integration servers. Users can specify a list of server in the
4085 @code{butler-server-list} variable and then use @code{M-x butler-status} to
4086 view the build status of those servers' build jobs, and possibly to trigger
4087 build jobs.")
4088 (license license:gpl3+)))
4089
4090 (define-public emacs-company
4091 (package
4092 (name "emacs-company")
4093 (version "0.9.12")
4094 (source
4095 (origin
4096 (method git-fetch)
4097 (uri (git-reference
4098 (url "https://github.com/company-mode/company-mode.git")
4099 (commit version)))
4100 (file-name (git-file-name name version))
4101 (sha256
4102 (base32 "0c31amc6gyfkmb1ii6mm56c75za1yxkj2iyhrjc45nn2mrh7yj7a"))))
4103 (build-system emacs-build-system)
4104 (arguments
4105 `(#:phases
4106 (modify-phases %standard-phases
4107 (add-before 'check 'fix-bin-dir
4108 (lambda _
4109 ;; The company-files-candidates-normal-root test looks
4110 ;; for the /bin directory, but the build environment has
4111 ;; no /bin directory. Modify the test to look for the
4112 ;; /tmp directory.
4113 (substitute* "test/files-tests.el"
4114 (("/bin/") "/tmp/"))
4115 #t)))
4116 #:tests? #t
4117 #:test-command '("make" "test-batch")))
4118 (home-page "https://company-mode.github.io/")
4119 (synopsis "Modular text completion framework")
4120 (description
4121 "Company is a modular completion mechanism. Modules for retrieving
4122 completion candidates are called back-ends, modules for displaying them are
4123 front-ends. Company comes with many back-ends, e.g., @code{company-elisp}.
4124 These are distributed in separate files and can be used individually.")
4125 (license license:gpl3+)))
4126
4127 (define-public emacs-company-posframe
4128 (let ((version "0.1.0")
4129 (revision "1")
4130 (commit "67d899502384fb9ab2870aba0af41523dea7b64f"))
4131 (package
4132 (name "emacs-company-posframe")
4133 (version (git-version version revision commit))
4134 (source (origin
4135 (method git-fetch)
4136 (uri (git-reference
4137 (url "https://github.com/tumashu/company-posframe.git")
4138 (commit commit)))
4139 (file-name (git-file-name name version))
4140 (sha256
4141 (base32
4142 "051smlvz1siwglsd9k9l0m20mygrx4niflmyshha0064287aysxr"))))
4143 (build-system emacs-build-system)
4144 (propagated-inputs
4145 `(("emacs-company" ,emacs-company)
4146 ("emacs-posframe" ,emacs-posframe)))
4147 (home-page "https://github.com/tumashu/company-posframe")
4148 (synopsis "Use a posframe for @code{emacs-company}'s candidate menu")
4149 (description
4150 "Allows @code{emacs-company} to use child frames for its candidate menus.
4151
4152 @code{emacs-company-posframe} is fast enough for daily use and supports CJK
4153 languages.")
4154 (license license:gpl3+))))
4155
4156 (define-public emacs-irony-mode
4157 (package
4158 (name "emacs-irony-mode")
4159 (version "1.4.0")
4160 (home-page "https://github.com/Sarcasm/irony-mode")
4161 (source (origin
4162 (method git-fetch)
4163 (uri (git-reference
4164 (url (string-append home-page ".git"))
4165 (commit (string-append "v" version))))
4166 (file-name (git-file-name name version))
4167 (sha256
4168 (base32
4169 "0n2nfcq58md1p2xdhq1smh8v7lsyj0ci7ma5xyd6bkg5rvhsh10i"))))
4170 (build-system emacs-build-system)
4171 (inputs `(("server" ,emacs-irony-mode-server)))
4172 (arguments `(#:phases
4173 (modify-phases %standard-phases
4174 (add-after 'unpack 'configure
4175 (lambda* (#:key inputs #:allow-other-keys)
4176 (chmod "irony.el" #o644)
4177 (emacs-substitute-variables "irony.el"
4178 ("irony-server-install-prefix"
4179 (assoc-ref inputs "server")))
4180 #t)))))
4181 (synopsis "C/C++/ObjC Code completion and syntax checks for Emacs")
4182 (description "Irony-mode provides Clang-assisted syntax checking and
4183 completion for C, C++, and ObjC in GNU Emacs. Using @code{libclang} it can
4184 provide syntax checking and autocompletion on compiler level which is very
4185 resistant against false positives. It also integrates well with other
4186 packages like @code{eldoc-mode} and especially @code{company-mode} as
4187 described on the homepage.")
4188 (license license:gpl3+)))
4189
4190 (define-public emacs-irony-mode-server
4191 (package (inherit emacs-irony-mode)
4192 (name "emacs-irony-mode-server")
4193 (inputs
4194 `(("clang" ,clang)))
4195 (arguments
4196 `(#:phases
4197 (modify-phases %standard-phases
4198 (replace 'configure
4199 (lambda* (#:key outputs #:allow-other-keys)
4200 (let ((out (assoc-ref outputs "out")))
4201 (invoke "cmake"
4202 "server"
4203 (string-append "-DCMAKE_INSTALL_PREFIX=" out)) #t))))))
4204 (build-system cmake-build-system)
4205 (synopsis "Server for the Emacs @dfn{irony mode}")))
4206
4207 (define-public emacs-company-irony
4208 (package
4209 (name "emacs-company-irony")
4210 (version "1.1.0")
4211 (source (origin
4212 (method git-fetch)
4213 (uri (git-reference
4214 (url "https://github.com/Sarcasm/company-irony.git")
4215 (commit (string-append "v" version))))
4216 (sha256 (base32
4217 "1qgyam2vyjw90kpxns5cd6bq3qiqjhzpwrlvmi18vyb69qcgqd8a"))
4218 (file-name (git-file-name name version))))
4219 (build-system emacs-build-system)
4220 (inputs
4221 `(("emacs-irony-mode" ,emacs-irony-mode)
4222 ("emacs-company" ,emacs-company)))
4223 (synopsis "C++ completion backend for Company using irony-mode")
4224 (description "This backend for company-mode allows for C++ code completion
4225 with irony-mode using clang-tooling.")
4226 (home-page "https://github.com/Sarcasm/company-irony")
4227 (license license:gpl3+)))
4228
4229 (define-public emacs-flycheck-irony
4230 (package
4231 (name "emacs-flycheck-irony")
4232 (version "0.1.0")
4233 (source (origin
4234 (method git-fetch)
4235 (uri (git-reference
4236 (url "https://github.com/Sarcasm/flycheck-irony.git")
4237 (commit (string-append "v" version))))
4238 (file-name (git-file-name name version))
4239 (sha256
4240 (base32 "0qa5a8wzvzxwqql92ibc9s43k8sj3vwn7skz9hfr8av0skkhx996"))))
4241 (build-system emacs-build-system)
4242 (inputs
4243 `(("irony-mode" ,emacs-irony-mode)
4244 ("flycheck-mode" ,emacs-flycheck)
4245 ("emacs-company" ,emacs-company)))
4246 (synopsis "Live syntax checking frontend for Flycheck using irony-mode")
4247 (description "This package provides a frontend for Flycheck that lets
4248 irony-mode do the syntax checking.")
4249 (home-page "https://github.com/Sarcasm/flycheck-irony")
4250 (license license:gpl3+)))
4251
4252 (define-public emacs-irony-eldoc
4253 (package
4254 (name "emacs-irony-eldoc")
4255 (version (package-version emacs-irony-mode))
4256 (source
4257 (origin
4258 (method git-fetch)
4259 (uri (git-reference
4260 (url "https://github.com/ikirill/irony-eldoc.git")
4261 (commit "0df5831eaae264a25422b061eb2792aadde8b3f2")))
4262 (file-name (git-file-name name version))
4263 (sha256
4264 (base32 "1l5qpr66v1l12fb50yh73grb2rr85xxmbj19mm33b5rdrq2bqmmd"))))
4265 (build-system emacs-build-system)
4266 (inputs
4267 `(("irony-mode" ,emacs-irony-mode)))
4268 (synopsis "Eldoc integration for irony-mode")
4269 (description "Irony-eldoc is an eldoc extension that shows documentation
4270 for the current function or variable in the minibuffer.")
4271 (home-page "https://github.com/ikirill/irony-eldoc")
4272 (license license:gpl3+)))
4273
4274 (define-public emacs-company-quickhelp
4275 ;; XXX: release version 2.3.0 is on an unmaintained branch for some reason,
4276 ;; so we use the latest 2.2.0 commit instead
4277 (let ((commit "479676cade80a9f03802ca3d956591820ed5c537")
4278 (revision "1"))
4279 (package
4280 (name "emacs-company-quickhelp")
4281 (version (git-version "2.2.0" revision commit))
4282 (source
4283 (origin
4284 (method git-fetch)
4285 (uri (git-reference
4286 (url "https://github.com/expez/company-quickhelp.git")
4287 (commit commit)))
4288 (file-name (git-file-name name version))
4289 (sha256
4290 (base32 "0hbqpnaf4hnin3nmdzmfj3v22kk9a97b6zssqs96ns36d9h52xcp"))))
4291 (build-system emacs-build-system)
4292 (propagated-inputs
4293 `(("emacs-pos-tip" ,emacs-pos-tip)
4294 ("emacs-company" ,emacs-company)))
4295 (home-page "https://github.com/expez/company-quickhelp")
4296 (synopsis "Popup documentation for completion candidates")
4297 (description "@code{company-quickhelp} shows documentation for the
4298 completion candidate when using the Company text completion framework.")
4299 (license license:gpl3+))))
4300
4301 (define-public emacs-math-symbol-lists
4302 (let ((commit "dc7531cff0c845d5470a50c24d5d7309b2ced7eb")
4303 (revision "1"))
4304 (package
4305 (name "emacs-math-symbol-lists")
4306 (version (git-version "1.2.1" revision commit))
4307 (source
4308 (origin
4309 (method git-fetch)
4310 (uri (git-reference
4311 (url "https://github.com/vspinu/math-symbol-lists.git")
4312 (commit commit)))
4313 (file-name (git-file-name name version))
4314 (sha256
4315 (base32 "094m21i9rns6m59cmhxcivxxafbg52w8f8na4y3v47aq67zmhhqm"))))
4316 (build-system emacs-build-system)
4317 (home-page "https://github.com/vspinu/math-symbol-lists")
4318 (synopsis "Lists of Unicode math symbols and @code{LaTeX} commands")
4319 (description "This is a storage package used by completion engines like
4320 @code{company-math}.")
4321 (license license:gpl3+))))
4322
4323 (define-public emacs-company-coq
4324 (package
4325 (name "emacs-company-coq")
4326 (version "1.0.1")
4327 (source
4328 (origin
4329 (method git-fetch)
4330 (uri
4331 (git-reference
4332 (url "https://github.com/cpitclaudel/company-coq")
4333 (commit version)))
4334 (file-name (git-file-name name version))
4335 (sha256
4336 (base32 "0dxi4h8xqq5647k7h89s4pi8nwyj3brlhsckrv3p3b1g4dr6mk3b"))))
4337 (inputs
4338 `(("emacs-company" ,emacs-company)
4339 ("emacs-company-math" ,emacs-company-math)
4340 ("emacs-dash" ,emacs-dash)
4341 ("emacs-yasnippet" ,emacs-yasnippet)))
4342 (build-system emacs-build-system)
4343 (home-page "https://github.com/cpitclaudel/company-coq")
4344 (synopsis "Emacs extensions for Proof General's Coq mode")
4345 (description "This package includes a collection of Company mode backends
4346 for Proof-General's Coq mode, and many useful extensions to Proof-General. It
4347 features:
4348
4349 @itemize
4350 @item Prettification of operators, types, and subscripts,
4351 @item Auto-completion,
4352 @item Insertion of cases,
4353 @item Fully explicit intros,
4354 @item Outlines, code folding, and jumping to definition,
4355 @item Help with errors,
4356 @item and more.
4357 @end itemize")
4358 (license license:gpl3+)))
4359
4360 (define-public emacs-company-math
4361 (let ((commit "600e49449644f6835f9dc3501bc58461999e8ab9")
4362 (revision "1"))
4363 (package
4364 (name "emacs-company-math")
4365 (version (git-version "1.3" revision commit))
4366 (source
4367 (origin
4368 (method git-fetch)
4369 (uri (git-reference
4370 (url "https://github.com/vspinu/company-math.git")
4371 (commit commit)))
4372 (file-name (git-file-name name version))
4373 (sha256
4374 (base32
4375 "1ps2lpkzn8mjbpcbvvy1qz3xbgrh6951x8y9bsd1fm32drdph9lh"))))
4376 (build-system emacs-build-system)
4377 (propagated-inputs
4378 `(("emacs-math-symbol-lists" ,emacs-math-symbol-lists)
4379 ("emacs-company" ,emacs-company)))
4380 (home-page "https://github.com/vspinu/company-math")
4381 (synopsis "Completion backends for Unicode math symbols and @code{LaTeX} tags")
4382 (description "This package provides a backend for use with
4383 @code{company-mode} allowing for completion of common math symbols.")
4384 (license license:gpl3+))))
4385
4386 (define-public emacs-compdef
4387 (let ((commit "67104a38763cc819644f711248b170a43bce151b")
4388 (revision "2"))
4389 (package
4390 (name "emacs-compdef")
4391 (version (git-version "0.2" revision commit))
4392 (source
4393 (origin
4394 (method git-fetch)
4395 (uri (git-reference
4396 (url "https://gitlab.com/jjzmajic/compdef.git")
4397 (commit commit)))
4398 (file-name (git-file-name name version))
4399 (sha256
4400 (base32 "1f6y6cr67gps9jp5hd20xszfd3k26v70g6z4g5db6wdkvlnc2wkg"))))
4401 (build-system emacs-build-system)
4402 (home-page "https://gitlab.com/jjzmajic/compdef")
4403 (synopsis "Set local completion backends")
4404 (description "This package provides a function to cleanly set local
4405 completion backends according to mode, and integrates with
4406 @code{use-package}.")
4407 (license license:gpl3+))))
4408
4409 (define-public emacs-handle
4410 (let ((commit "51c050bc1c6e5caf0eb47ecd985daea1db7241ab")
4411 (revision "2"))
4412 (package
4413 (name "emacs-handle")
4414 (version (git-version "0.1" revision commit))
4415 (source
4416 (origin
4417 (method git-fetch)
4418 (uri (git-reference
4419 (url "https://gitlab.com/jjzmajic/handle.git")
4420 (commit commit)))
4421 (file-name (git-file-name name version))
4422 (sha256
4423 (base32 "14f15qzfmwdslml4rv37zb5d1lsjf0jibriz636hb7q7knx1n4sg"))))
4424 (build-system emacs-build-system)
4425 (propagated-inputs
4426 `(("emacs-parent-mode" ,emacs-parent-mode)))
4427 (home-page "https://gitlab.com/jjzmajic/handle")
4428 (synopsis "Handle generic functions across related major modes")
4429 (description "This package provides generic functions that specialize on
4430 major modes and intended purpose rather than on arguments. Different
4431 callables for tasks like expression evaluation, definition-jumping, and more
4432 can now be grouped accordingly and tried in sequence until one of them
4433 succeeds.")
4434 (license license:gpl3+))))
4435
4436 (define-public emacs-nswbuff
4437 (let ((commit "362da7f3687e2eb5bb11667347de85f4a9d002bc")
4438 (revision "1"))
4439 (package
4440 (name "emacs-nswbuff")
4441 (version (git-version "1.0" revision commit))
4442 (source
4443 (origin
4444 (method git-fetch)
4445 (uri (git-reference
4446 (url "https://github.com/joostkremers/nswbuff.git")
4447 (commit commit)))
4448 (file-name (git-file-name name version))
4449 (sha256
4450 (base32 "0l2xfz8z5qd4hz3kv6zn7h6qq3narkilri8a071y1n8j31jps4ma"))))
4451 (build-system emacs-build-system)
4452 (home-page "https://github.com/joostkremers/nswbuff")
4453 (synopsis "Quickly switch between buffers")
4454 (description "This package allows for navigating between buffers within
4455 a customizable list.")
4456 (license license:gpl3+))))
4457
4458 (define-public emacs-phi-search
4459 (let ((commit "9a089b8271cb1cff9640848850298c9ec855286c")
4460 (revision "1"))
4461 (package
4462 (name "emacs-phi-search")
4463 (version (git-version "20160630" revision commit))
4464 (source
4465 (origin
4466 (method git-fetch)
4467 (uri (git-reference
4468 (url "https://github.com/zk-phi/phi-search.git")
4469 (commit commit)))
4470 (file-name (git-file-name name version))
4471 (sha256
4472 (base32 "1gr5plcbrfdc4pglfj905s89hf8x0kc083h30wcnd81bnw9jwz1x"))))
4473 (build-system emacs-build-system)
4474 (home-page "https://github.com/zk-phi/phi-search")
4475 (synopsis "Interactive search compatible with @code{multiple-cursors}")
4476 (description "This package can be used with @code{multiple-cursors} to
4477 provide an incremental search that moves all fake cursors in sync.")
4478 (license license:gpl2+))))
4479
4480 (define-public emacs-phi-search-mc
4481 (let ((commit "7aa671910f766437089aec26c3aa7814222d1356")
4482 (revision "1"))
4483 (package
4484 (name "emacs-phi-search-mc")
4485 (version (git-version "2.2.1" revision commit))
4486 (source
4487 (origin
4488 (method git-fetch)
4489 (uri (git-reference
4490 (url "https://github.com/knu/phi-search-mc.el.git")
4491 (commit commit)))
4492 (file-name (git-file-name name version))
4493 (sha256
4494 (base32 "0wr86ad0yl52im6b9z0b9pzmhcn39qg5m9878yfv1nbxliw40lcd"))))
4495 (build-system emacs-build-system)
4496 (propagated-inputs
4497 `(("emacs-phi-search" ,emacs-phi-search)
4498 ("emacs-multiple-cursors" ,emacs-multiple-cursors)))
4499 (home-page "https://github.com/knu/phi-search-mc.el")
4500 (synopsis "Extend @code{phi-search} with additional
4501 @code{multiple-cursors} functionality")
4502 (description "This package provides further integration between
4503 @code{multiple-cursors} and @code{phi-search}, a package that allows for
4504 interactive searches to move multiple fake cursors.")
4505 (license license:bsd-2))))
4506
4507 (define-public emacs-multiple-cursors
4508 (package
4509 (name "emacs-multiple-cursors")
4510 (version "1.4.0")
4511 (source
4512 (origin
4513 (method git-fetch)
4514 (uri (git-reference
4515 (url "https://github.com/magnars/multiple-cursors.el.git")
4516 (commit version)))
4517 (file-name (git-file-name name version))
4518 (sha256
4519 (base32 "1ijgvzv5r44xqvz751fd5drbvrspapw6xwv47582w255j363r6ss"))))
4520 (build-system emacs-build-system)
4521 (home-page "https://github.com/magnars/multiple-cursors.el")
4522 (synopsis "Multiple cursors for Emacs")
4523 (description
4524 "This package adds support to Emacs for editing text with multiple
4525 simultaneous cursors.")
4526 (license license:gpl3+)))
4527
4528 (define-public emacs-mc-extras
4529 (let ((commit "053abc52181b8718559d7361a587bbb795faf164")
4530 (revision "1"))
4531 (package
4532 (name "emacs-mc-extras")
4533 (version (git-version "1.2.4" revision commit))
4534 (source
4535 (origin
4536 (method git-fetch)
4537 (uri (git-reference
4538 (url "https://github.com/knu/mc-extras.el.git")
4539 (commit commit)))
4540 (file-name (git-file-name name version))
4541 (sha256
4542 (base32 "16y48qrd20m20vypvys5jp4v4gc1qrqlkm75s1pk1r68i9zrw481"))))
4543 (build-system emacs-build-system)
4544 (propagated-inputs
4545 `(("emacs-multiple-cursors" ,emacs-multiple-cursors)))
4546 (home-page "https://github.com/knu/mc-extras.el")
4547 (synopsis "Extra functions for manipulating multiple cursors")
4548 (description
4549 "This package provides additional functions for
4550 @code{multiple-cursors}, including functions for marking s-expressions,
4551 comparing characters, removing cursors, and more.")
4552 (license license:bsd-2))))
4553
4554 (define-public emacs-typo
4555 (package
4556 (name "emacs-typo")
4557 (version "1.1")
4558 (home-page "https://github.com/jorgenschaefer/typoel")
4559 (source (origin
4560 (method git-fetch)
4561 (uri (git-reference
4562 (url home-page)
4563 (commit (string-append "v" version))))
4564 (file-name (git-file-name name version))
4565 (sha256
4566 (base32
4567 "1jhd4grch5iz12gyxwfbsgh4dmz5hj4bg4gnvphccg8dsnni05k2"))))
4568 (build-system emacs-build-system)
4569 (synopsis "Minor mode for typographic editing")
4570 (description
4571 "This package provides two Emacs modes, @code{typo-mode} and
4572 @code{typo-global-mode}. These modes automatically insert Unicode characters
4573 for quotation marks, dashes, and ellipses. For example, typing @kbd{\"}
4574 automatically inserts a Unicode opening or closing quotation mark, depending
4575 on context.")
4576 (license license:gpl3+)))
4577
4578 (define-public emacs-company-lsp
4579 (package
4580 (name "emacs-company-lsp")
4581 (version "2.1.0")
4582 (source (origin
4583 (method git-fetch)
4584 (uri (git-reference
4585 (url "https://github.com/tigersoldier/company-lsp.git")
4586 (commit version)))
4587 (file-name (git-file-name name version))
4588 (sha256
4589 (base32
4590 "1hy1x2w0yp5brm7714d1hziz3rpkywb5jp3yj78ibmi9ifny9vri"))))
4591 (build-system emacs-build-system)
4592 (propagated-inputs
4593 `(("emacs-dash" ,emacs-dash)
4594 ("emacs-lsp-mode" ,emacs-lsp-mode)
4595 ("emacs-company" ,emacs-company)
4596 ("emacs-s" ,emacs-s)
4597 ("emacs-dash" ,emacs-dash)))
4598 (native-inputs
4599 `(("emacs-buttercup" ,emacs-buttercup)))
4600 (arguments
4601 `(#:tests? #t
4602 #:test-command '("buttercup" "-L" ".")))
4603 (home-page "https://github.com/tigersoldier/company-lsp")
4604 (synopsis "Completion for @code{lsp-mode}")
4605 (description
4606 "This package provides completion features that are not possible with
4607 @code{lsp-mode} and @code{company-capf} alone, including support for trigger
4608 characters and asynchronous fetching of completion candidates.")
4609 (license license:gpl3+)))
4610
4611 (define-public emacs-scheme-complete
4612 (let ((commit "9b5cf224bf2a5994bc6d5b152ff487517f1a9bb5"))
4613 (package
4614 (name "emacs-scheme-complete")
4615 (version (string-append "20151223." (string-take commit 8)))
4616 (source
4617 (origin
4618 (method git-fetch)
4619 (uri (git-reference
4620 (url "https://github.com/ashinn/scheme-complete.git")
4621 (commit commit)))
4622 (file-name (git-file-name name version))
4623 (sha256
4624 (base32
4625 "141wn9l0m33w0g3dqmx8nxbfdny1r5xbr6ak61rsz21bk0qafs7x"))
4626 (patches
4627 (search-patches "emacs-scheme-complete-scheme-r5rs-info.patch"))))
4628 (build-system emacs-build-system)
4629 (home-page "https://github.com/ashinn/scheme-complete")
4630 (synopsis "Smart tab completion for Scheme in Emacs")
4631 (description
4632 "This file provides a single function, @code{scheme-smart-complete},
4633 which you can use for intelligent, context-sensitive completion for any Scheme
4634 implementation in Emacs. To use it just load this file and bind that function
4635 to a key in your preferred mode.")
4636 (license license:public-domain))))
4637
4638 (define-public emacs-scel
4639 (let ((version "20170629")
4640 (revision "1")
4641 (commit "aeea3ad4be9306d14c3a734a4ff54fee10ac135b"))
4642 (package
4643 (name "emacs-scel")
4644 (version (git-version version revision commit))
4645 (source
4646 (origin
4647 (method git-fetch)
4648 (uri (git-reference
4649 (url "https://github.com/supercollider/scel.git")
4650 (commit commit)))
4651 (file-name (git-file-name name version))
4652 (sha256
4653 (base32
4654 "0jvmzs1lsjyndqshhii2y4mnr3wghai26i3p75453zrpxpg0zvvw"))))
4655 (build-system emacs-build-system)
4656 (arguments
4657 `(#:modules ((guix build emacs-build-system)
4658 ((guix build cmake-build-system) #:prefix cmake:)
4659 (guix build utils))
4660 #:imported-modules (,@%emacs-build-system-modules
4661 (guix build cmake-build-system))
4662 #:phases
4663 (modify-phases %standard-phases
4664 (add-after 'unpack 'configure
4665 (lambda* (#:key outputs #:allow-other-keys)
4666 (substitute* "el/CMakeLists.txt"
4667 (("share/emacs/site-lisp/SuperCollider")
4668 (string-append
4669 "share/emacs/site-lisp")))
4670 ((assoc-ref cmake:%standard-phases 'configure)
4671 #:outputs outputs
4672 #:configure-flags '("-DSC_EL_BYTECOMPILE=OFF"))))
4673 (add-after 'add-source-to-load-path 'add-el-dir-to-emacs-load-path
4674 (lambda _
4675 (setenv "EMACSLOADPATH"
4676 (string-append (getcwd) "/el:" (getenv "EMACSLOADPATH")))
4677 #t))
4678 (replace 'install (assoc-ref cmake:%standard-phases 'install)))))
4679 (inputs
4680 `(("supercollider" ,supercollider)))
4681 (native-inputs
4682 `(("cmake" ,cmake-minimal)))
4683 (home-page "https://github.com/supercollider/scel")
4684 (synopsis "SuperCollider Emacs interface")
4685 (description "@code{emacs-scel} is an Emacs interface to SuperCollider.
4686 SuperCollider is a platform for audio synthesis and algorithmic composition.")
4687 (license license:gpl2+))))
4688
4689 (define-public emacs-company-auctex
4690 (let ((commit "48c42c58ce2f0e693301b0cb2d085055410c1b25")
4691 (revision "1"))
4692 (package
4693 (name "emacs-company-auctex")
4694 (version (git-version "0" revision commit))
4695 (source (origin
4696 (method git-fetch)
4697 (uri (git-reference
4698 (url "https://github.com/alexeyr/company-auctex")
4699 (commit commit)))
4700 (file-name (git-file-name name version))
4701 (sha256
4702 (base32
4703 "10qn7frn5wcmrlci3v6iliqzj7r9dls87h9zp3xkgrgn4bqprfp8"))))
4704 (build-system emacs-build-system)
4705 (propagated-inputs
4706 `(("emacs-yasnippet" ,emacs-yasnippet)
4707 ("emacs-auctex" ,emacs-auctex)
4708 ("emacs-company" ,emacs-company)))
4709 (home-page "https://github.com/alexeyr/company-auctex/")
4710 (synopsis "Completion for @code{AUCTeX}")
4711 (description
4712 "This package provides a group of backends permitting auto-completion
4713 for @code{AUCTeX}.")
4714 (license license:gpl3+))))
4715
4716 (define-public emacs-mit-scheme-doc
4717 (package
4718 (name "emacs-mit-scheme-doc")
4719 (version "20140203")
4720 (source
4721 (origin
4722 (modules '((guix build utils)))
4723 (snippet
4724 ;; keep only file of interest
4725 '(begin
4726 (for-each delete-file '("dot-emacs.el" "Makefile"))
4727 (install-file "6.945-config/mit-scheme-doc.el" ".")
4728 (delete-file-recursively "6.945-config")
4729 #t))
4730 (file-name (string-append name "-" version ".tar.bz2"))
4731 (method url-fetch)
4732 (uri (string-append "http://groups.csail.mit.edu/mac/users/gjs/"
4733 "6.945/dont-panic/emacs-basic-config.tar.bz2"))
4734 (sha256
4735 (base32
4736 "0dqidg2bd66pawqfarvwca93w5gqf9mikn1k2a2rmd9ymfjpziq1"))))
4737 (build-system emacs-build-system)
4738 (inputs `(("mit-scheme" ,mit-scheme)))
4739 (arguments
4740 `(#:phases
4741 (modify-phases %standard-phases
4742 (add-after 'unpack 'configure-doc
4743 (lambda* (#:key inputs #:allow-other-keys)
4744 (let* ((mit-scheme-dir (assoc-ref inputs "mit-scheme"))
4745 (doc-dir (string-append mit-scheme-dir "/share/doc/"
4746 "mit-scheme-"
4747 ,(package-version mit-scheme))))
4748 (substitute* "mit-scheme-doc.el"
4749 (("http://www\\.gnu\\.org/software/mit-scheme/documentation/mit-scheme-ref/")
4750 (string-append "file:" doc-dir "/mit-scheme-ref/")))))))))
4751 (home-page "https://groups.csail.mit.edu/mac/users/gjs/6.945/dont-panic/")
4752 (synopsis "MIT-Scheme documentation lookup for Emacs")
4753 (description
4754 "This package provides a set of Emacs functions to search definitions of
4755 identifiers in the MIT-Scheme documentation.")
4756 (license license:gpl2+)))
4757
4758 (define-public emacs-constants
4759 (package
4760 (name "emacs-constants")
4761 (version "2.6")
4762 (home-page "https://staff.fnwi.uva.nl/c.dominik/Tools/constants")
4763 (source
4764 (origin
4765 (method git-fetch)
4766 (uri (git-reference
4767 (url "https://github.com/fedeinthemix/emacs-constants.git")
4768 (commit (string-append "v" version))))
4769 (file-name (git-file-name name version))
4770 (sha256
4771 (base32 "0f5sh6b45a8p9kancjp9jk44ws8ww6x50a0i6zgyyvr7dbvii1a0"))))
4772 (build-system emacs-build-system)
4773 (synopsis "Enter definition of constants into an Emacs buffer")
4774 (description
4775 "This package provides functions for inserting the definition of natural
4776 constants and units into an Emacs buffer.")
4777 (license license:gpl2+)))
4778
4779 (define-public emacs-tagedit
4780 (package
4781 (name "emacs-tagedit")
4782 (version "1.4.0")
4783 (source
4784 (origin
4785 (method git-fetch)
4786 (uri (git-reference
4787 (url "https://github.com/magnars/tagedit.git")
4788 (commit version)))
4789 (file-name (git-file-name name version))
4790 (sha256
4791 (base32 "0kq40g46s8kgiafrhdq99h79rz9h5fvgz59k7ralmf86bl4sdmdb"))))
4792 (build-system emacs-build-system)
4793 (propagated-inputs
4794 `(("emacs-s" ,emacs-s)
4795 ("emacs-dash" ,emacs-dash)))
4796 (home-page "https://github.com/magnars/tagedit")
4797 (synopsis "Some paredit-like features for html-mode")
4798 (description
4799 "This package provides a collection of paredit-like functions for editing
4800 in @code{html-mode}.")
4801 (license license:gpl3+)))
4802
4803 (define-public emacs-slime
4804 (package
4805 (name "emacs-slime")
4806 (version "2.24")
4807 (source
4808 (origin
4809 (method git-fetch)
4810 (uri (git-reference
4811 (url "https://github.com/slime/slime.git")
4812 (commit (string-append "v" version))))
4813 (file-name (git-file-name name version))
4814 (sha256
4815 (base32 "0js24x42m7b5iymb4rxz501dff19vav5pywnzv50b673rbkaaqvh"))))
4816 (build-system emacs-build-system)
4817 (native-inputs
4818 `(("texinfo" ,texinfo)))
4819 (arguments
4820 `(#:include '("\\.el$" "\\.lisp$" "\\.asd$" "contrib")
4821 #:exclude '("^slime-tests.el" "^contrib/test/"
4822 "^contrib/Makefile$" "^contrib/README.md$")
4823 #:phases
4824 (modify-phases %standard-phases
4825 (add-after 'unpack 'make-git-checkout-writable
4826 (lambda _
4827 (for-each make-file-writable (find-files "."))
4828 #t))
4829 (add-before 'install 'configure
4830 (lambda* _
4831 (emacs-substitute-variables "slime.el"
4832 ("inferior-lisp-program" "sbcl"))
4833 #t))
4834 (add-before 'install 'install-doc
4835 (lambda* (#:key outputs #:allow-other-keys)
4836 (let* ((out (assoc-ref outputs "out"))
4837 (info-dir (string-append out "/share/info"))
4838 (doc-dir (string-append out "/share/doc/"
4839 ,name "-" ,version))
4840 (doc-files '("doc/slime-refcard.pdf"
4841 "README.md" "NEWS" "PROBLEMS"
4842 "CONTRIBUTING.md")))
4843 (with-directory-excursion "doc"
4844 (substitute* "Makefile"
4845 (("infodir=/usr/local/info")
4846 (string-append "infodir=" info-dir)))
4847 (invoke "make" "html/index.html")
4848 (invoke "make" "slime.info")
4849 (install-file "slime.info" info-dir)
4850 (copy-recursively "html" (string-append doc-dir "/html")))
4851 (for-each (lambda (f)
4852 (install-file f doc-dir)
4853 (delete-file f))
4854 doc-files)
4855 (delete-file-recursively "doc")
4856 #t))))))
4857 (home-page "https://github.com/slime/slime")
4858 (synopsis "Superior Lisp Interaction Mode for Emacs")
4859 (description
4860 "SLIME extends Emacs with support for interactive programming in
4861 Common Lisp. The features are centered around @command{slime-mode},
4862 an Emacs minor mode that complements the standard @command{lisp-mode}.
4863 While lisp-mode supports editing Lisp source files, @command{slime-mode}
4864 adds support for interacting with a running Common Lisp process
4865 for compilation, debugging, documentation lookup, and so on.")
4866 (license (list license:gpl2+ license:public-domain))))
4867
4868 (define-public emacs-popup
4869 (package
4870 (name "emacs-popup")
4871 (version "0.5.3")
4872 (source
4873 (origin
4874 (method git-fetch)
4875 (uri (git-reference
4876 (url "https://github.com/auto-complete/popup-el.git")
4877 (commit (string-append "v" version))))
4878 (file-name (git-file-name name version))
4879 (sha256
4880 (base32 "1y538siabcf1n00wr4iz5gbxfndw661kx2mn9w1g4lg7yi4n0h0h"))))
4881 (build-system emacs-build-system)
4882 (home-page "https://github.com/auto-complete/popup-el")
4883 (synopsis "Visual Popup User Interface for Emacs")
4884 (description
4885 "Popup.el is a visual popup user interface library for Emacs.
4886 This provides a basic API and common UI widgets such as popup tooltips
4887 and popup menus.")
4888 (license license:gpl3+)))
4889
4890 (define-public emacs-python-environment
4891 (package
4892 (name "emacs-python-environment")
4893 (version "0.0.2")
4894 (source
4895 (origin
4896 (method git-fetch)
4897 (uri (git-reference
4898 (url "https://github.com/tkf/emacs-python-environment/")
4899 (commit version)))
4900 (file-name (git-file-name name version))
4901 (sha256
4902 (base32 "0q6bib9nr6xiq6npzbngyfcjk87yyvwzq1zirr3z1h5wadm34lsk"))))
4903 (build-system emacs-build-system)
4904 (propagated-inputs
4905 `(("emacs-deferred" ,emacs-deferred)))
4906 (home-page "https://github.com/tkf/emacs-python-environment")
4907 (synopsis "Provides a @code{virtualenv} API in Emacs Lisp")
4908 (description
4909 "This package permits automated installation of tools written in Python.")
4910 (license license:gpl3+)))
4911
4912 (define-public emacs-jedi
4913 (package
4914 (name "emacs-jedi")
4915 (version "0.2.8")
4916 (source (origin
4917 (method git-fetch)
4918 (uri (git-reference
4919 (url "https://github.com/tkf/emacs-jedi/")
4920 (commit (string-append "v" version))))
4921 (file-name (git-file-name name version))
4922 (sha256
4923 (base32
4924 "1bckxppfzd5gwn0aw4h86igb7igal9axqncq7j8zmflg7zppncf1"))))
4925 (build-system emacs-build-system)
4926 (native-inputs
4927 `(("emacs-mocker" ,emacs-mocker)))
4928 (propagated-inputs
4929 `(("emacs-auto-complete" ,emacs-auto-complete)
4930 ("emacs-python-environment" ,emacs-python-environment)
4931 ("emacs-epc" ,emacs-epc)))
4932 (home-page "https://github.com/tkf/emacs-jedi")
4933 (synopsis "Provides Python completion in Emacs")
4934 (description
4935 "This package provides completion in Python buffers and also helps find
4936 the locations of docstrings, arguments, and functions.")
4937 (license license:gpl3+)))
4938
4939 (define-public emacs-company-jedi
4940 (package
4941 (name "emacs-company-jedi")
4942 (version "0.04")
4943 (source (origin
4944 (method git-fetch)
4945 (uri (git-reference
4946 (url "https://github.com/syohex/emacs-company-jedi")
4947 (commit version)))
4948 (file-name (git-file-name name version))
4949 (sha256
4950 (base32
4951 "1ihqapp4dv92794rsgyq0rmhwika60cmradqd4bn9b72ss6plxs1"))))
4952 (build-system emacs-build-system)
4953 (propagated-inputs
4954 `(("emacs-jedi" ,emacs-jedi)
4955 ("emacs-company" ,emacs-company)))
4956 (home-page "https://github.com/syohex/emacs-company-jedi")
4957 (synopsis "Provides Python completion in @code{company-mode}")
4958 (description
4959 "This package provides a Company backend for Python.")
4960 (license license:gpl3+)))
4961
4962 (define-public emacs-puppet-mode
4963 (let ((commit "b3ed5057166a4f49dfa9be638523a348b55a2fd2")
4964 (revision "1"))
4965 (package
4966 (name "emacs-puppet-mode")
4967 ;; The last release, 0.3 was several years ago, and there have been many
4968 ;; commits since
4969 (version (git-version "0.3" revision commit))
4970 (source
4971 (origin
4972 (method url-fetch)
4973 (uri (string-append
4974 "https://raw.githubusercontent.com/voxpupuli/puppet-mode/"
4975 commit "/puppet-mode.el"))
4976 (sha256
4977 (base32
4978 "1indycxawsl0p2aqqg754f6735q3cmah9vd886rpn0ncc3ipi1xm"))))
4979 (build-system emacs-build-system)
4980 (home-page "https://github.com/voxpupuli/puppet-mode")
4981 (synopsis "Emacs major mode for the Puppet configuration language")
4982 (description
4983 "This package provides support for the Puppet configuration language,
4984 including syntax highlighting, indentation of expressions and statements,
4985 linting of manifests and integration with Puppet Debugger.")
4986 ;; Also incorporates work covered by the Apache License, Version 2.0
4987 (license license:gpl3+))))
4988
4989 (define-public emacs-god-mode
4990 (let ((commit "6cf0807b6555eb6fcf8387a4e3b667071ef38964")
4991 (revision "1"))
4992 (package
4993 (name "emacs-god-mode")
4994 (version (string-append "20151005.925."
4995 revision "-" (string-take commit 9)))
4996 (source
4997 (origin
4998 (method git-fetch)
4999 (uri (git-reference
5000 (url "https://github.com/chrisdone/god-mode.git")
5001 (commit commit)))
5002 (file-name (git-file-name name version))
5003 (sha256
5004 (base32
5005 "1am415k4xxcva6y3vbvyvknzc6bma49pq3p85zmpjsdmsp18qdix"))))
5006 (build-system emacs-build-system)
5007 (home-page "https://github.com/chrisdone/god-mode")
5008 (synopsis "Minor mode for entering commands without modifier keys")
5009 (description
5010 "This package provides a global minor mode for entering Emacs commands
5011 without modifier keys. It's similar to Vim's separation of commands and
5012 insertion mode. When enabled all keys are implicitly prefixed with
5013 @samp{C-} (among other helpful shortcuts).")
5014 (license license:gpl3+))))
5015
5016 (define-public emacs-jinja2-mode
5017 (package
5018 (name "emacs-jinja2-mode")
5019 (version "0.2")
5020 (source
5021 (origin
5022 (method git-fetch)
5023 (uri (git-reference
5024 (url "https://github.com/paradoxxxzero/jinja2-mode.git")
5025 (commit (string-append "v" version))))
5026 (file-name (git-file-name name version))
5027 (sha256
5028 (base32 "0l26wcy496k6xk7q5sf905xir0p73ziy6c44is77854lv3y0z381"))))
5029 (build-system emacs-build-system)
5030 (home-page "https://github.com/paradoxxxzero/jinja2-mode")
5031 (synopsis "Major mode for jinja2")
5032 (description
5033 "Emacs major mode for jinja2 with: syntax highlighting,
5034 sgml/html integration, and indentation (working with sgml).")
5035 (license license:gpl3+)))
5036
5037 (define-public emacs-company-cabal
5038 ;; The latest version is 0.3.0, but no release has been provided after 0.2.1.
5039 (let ((commit "62112a7259e24bd6c08885629a185afe512b7d3d")
5040 (revision "1"))
5041 (package
5042 (name "emacs-company-cabal")
5043 (version (git-version "0.3.0" revision commit))
5044 (source (origin
5045 (method git-fetch)
5046 (uri (git-reference
5047 (url "https://github.com/iquiw/company-cabal/")
5048 (commit commit)))
5049 (file-name (git-file-name name version))
5050 (sha256
5051 (base32
5052 "1gf45xwjzdm8i4q6c6khk4dbg1mmp2r0awz2sjr4dcr2dbd1n7mg"))))
5053 (build-system emacs-build-system)
5054 (propagated-inputs
5055 `(("emacs-company" ,emacs-company)))
5056 (arguments
5057 `(#:include (cons "^tools\\/" %default-include)))
5058 (home-page "https://github.com/iquiw/company-cabal/")
5059 (synopsis "Company completion for Haskell Cabal files")
5060 (description
5061 "This package allows for completion of field names, section names,
5062 field values, and more within @code{haskell-cabal-mode}.")
5063 (license license:gpl3+))))
5064
5065 (define-public emacs-rfcview
5066 (package
5067 (name "emacs-rfcview")
5068 (version "0.13")
5069 (home-page "http://www.loveshack.ukfsn.org/emacs")
5070 (source (origin
5071 (method url-fetch)
5072 (uri "http://www.loveshack.ukfsn.org/emacs/rfcview.el")
5073 (sha256
5074 (base32
5075 "0ympj5rxig383zl2jf0pzdsa80nnq0dpvjiriq0ivfi98fj7kxbz"))))
5076 (build-system emacs-build-system)
5077 (synopsis "Prettify Request for Comments (RFC) documents")
5078 (description "The Internet Engineering Task Force (IETF) and the Internet
5079 Society (ISOC) publish various Internet-related protocols and specifications
5080 as \"Request for Comments\" (RFC) documents and Internet Standard (STD)
5081 documents. RFCs and STDs are published in a simple text form. This package
5082 provides an Emacs major mode, rfcview-mode, which makes it more pleasant to
5083 read these documents in Emacs. It prettifies the text and adds
5084 hyperlinks/menus for easier navigation. It also provides functions for
5085 browsing the index of RFC documents and fetching them from remote servers or
5086 local directories.")
5087 (license license:gpl3+)))
5088
5089 (define-public emacs-ffap-rfc-space
5090 (package
5091 (name "emacs-ffap-rfc-space")
5092 (version "12")
5093 (home-page "https://user42.tuxfamily.org/ffap-rfc-space/index.html")
5094 (source (origin
5095 (method url-fetch)
5096 (uri "http://download.tuxfamily.org/user42/ffap-rfc-space.el")
5097 (sha256
5098 (base32
5099 "1iv61dv57a73mdps7rn6zmgz7nqh14v0ninidyrasy45b1nv6gck"))))
5100 (build-system emacs-build-system)
5101 (synopsis "Make ffap recognize an RFC with a space before its number")
5102 (description "The Internet Engineering Task Force (IETF) and the
5103 Internet Society (ISOC) publish various Internet-related protocols and
5104 specifications as \"Request for Comments\" (RFC) documents. The
5105 built-in Emacs module \"ffap\" (Find File at Point) has the ability to
5106 recognize names at point which look like \"RFC1234\" and \"RFC-1234\"
5107 and load the appropriate RFC from a remote server. However, it fails
5108 to recognize a name like \"RFC 1234\". This package enhances ffap so
5109 that it correctly finds RFCs even when a space appears before the
5110 number.")
5111 (license license:gpl3+)))
5112
5113 (define-public emacs-org-bullets
5114 (package
5115 (name "emacs-org-bullets")
5116 (version "0.2.4")
5117 (source
5118 (origin
5119 (method git-fetch)
5120 (uri (git-reference
5121 (url "https://github.com/sabof/org-bullets.git")
5122 (commit version)))
5123 (file-name (git-file-name name version))
5124 (sha256
5125 (base32 "10nr4sjffnqbllv6gmak6pviyynrb7pi5nvrq331h5alm3xcpq0w"))))
5126 (build-system emacs-build-system)
5127 (home-page "https://github.com/sabof/org-bullets")
5128 (synopsis "Show bullets in org-mode as UTF-8 characters")
5129 (description
5130 "This package provides an Emacs minor mode causing bullets in
5131 @code{org-mode} to be rendered as UTF-8 characters.")
5132 (license license:gpl3+)))
5133
5134 (define-public emacs-org-superstar
5135 (package
5136 (name "emacs-org-superstar")
5137 (version "1.2.1")
5138 (source
5139 (origin
5140 (method git-fetch)
5141 (uri (git-reference
5142 (url "https://github.com/integral-dw/org-superstar-mode.git")
5143 (commit (string-append "v" version))))
5144 (file-name (git-file-name name version))
5145 (sha256
5146 (base32 "14w06v76xi4f6hpq6xzicrjjv0b802g5zc9as4mpimfy5gx2xpm0"))))
5147 (build-system emacs-build-system)
5148 (propagated-inputs
5149 `(("emacs-org" ,emacs-org)))
5150 (home-page "https://github.com/integral-dw/org-superstar-mode")
5151 (synopsis "Prettify headings and plain lists in Org mode")
5152 (description "This package prettifies headings and plain lists in
5153 Org mode. It is a direct descendant of @code{org-bullets}, with most
5154 of the code base completely rewritten.
5155
5156 Currently, this package prettifies Org heading lines by:
5157 @itemize
5158 @item replacing trailing bullets by UTF-8 bullets,
5159 @item hiding leading stars, customizing their look or removing them from vision,
5160 @item applying a custom face to the header bullet,
5161 @item applying a custom face to the leading bullets,
5162 @item using double-bullets for inline tasks,
5163 @item (optional) using special bullets for TODO keywords.
5164 @end itemize
5165
5166 It also prettifies Org plain list bullets by:
5167 @itemize
5168 @item replacing each bullet type (*, + and -) with UTF-8 bullets,
5169 @item applying a custom face to item bullets.
5170 @end itemize
5171
5172 Features degrade gracefully when viewed from terminal.")
5173 (license license:gpl3+)))
5174
5175 (define-public emacs-org-pomodoro
5176 ;; Last release version was from 2016.
5177 (let ((commit "aa07c11318f91219336197e62c47bc7a3d090479")
5178 (revision "1"))
5179 (package
5180 (name "emacs-org-pomodoro")
5181 (version (git-version "2.1.0" revision commit))
5182 (source
5183 (origin
5184 (method git-fetch)
5185 (uri (git-reference
5186 (url "https://github.com/marcinkoziej/org-pomodoro.git")
5187 (commit commit)))
5188 (file-name (git-file-name name version))
5189 (sha256
5190 (base32 "0nbprh2nhnmb7ngp9ndr6zr37ashcsvpi5slv7a37x1dl7j6w1k4"))))
5191 (build-system emacs-build-system)
5192 (propagated-inputs
5193 `(("emacs-alert" ,emacs-alert)))
5194 (arguments
5195 `(#:include (cons "^resources\\/" %default-include)
5196 #:tests? #t
5197 #:test-command '("emacs" "--batch"
5198 "-l" "org-pomodoro-tests.el"
5199 "-f" "ert-run-tests-batch-and-exit")
5200 #:phases
5201 (modify-phases %standard-phases
5202 (add-before 'check 'make-tests-writable
5203 (lambda _
5204 (make-file-writable "org-pomodoro-tests.el")
5205 #t))
5206 (add-before 'check 'add-require
5207 (lambda _
5208 (emacs-batch-edit-file "org-pomodoro-tests.el"
5209 `(progn (progn (goto-char (point-min))
5210 (re-search-forward
5211 "ert-deftest")
5212 (beginning-of-line)
5213 (forward-line -1)
5214 (insert "(require 'org-pomodoro)"))
5215 (basic-save-buffer)))
5216 #t)))))
5217 (home-page "https://github.com/marcinkoziej/org-pomodoro")
5218 (synopsis "Pomodoro technique for org-mode")
5219 (description "@code{emacs-org-pomodoro} adds very basic support for
5220 Pomodoro technique in Emacs org-mode.
5221
5222 Run @code{M-x org-pomodoro} for the task at point or select one of the
5223 last tasks that you clocked time for. Each clocked-in pomodoro starts
5224 a timer of 25 minutes and after each pomodoro a break timer of 5
5225 minutes is started automatically. Every 4 breaks a long break is
5226 started with 20 minutes. All values are customizable.")
5227 (license license:gpl3+))))
5228
5229 (define-public emacs-org-sidebar
5230 (package
5231 (name "emacs-org-sidebar")
5232 (version "0.2")
5233 (source
5234 (origin
5235 (method git-fetch)
5236 (uri (git-reference
5237 (url "https://github.com/alphapapa/org-sidebar.git")
5238 (commit version)))
5239 (file-name (git-file-name name version))
5240 (sha256
5241 (base32 "106h06vjfbqfj761vbxwymd6612ds8c6fk053yzgbrqzm3hn2c03"))))
5242 (build-system emacs-build-system)
5243 (propagated-inputs
5244 `(("emacs-dash" ,emacs-dash)
5245 ("emacs-org-super-agenda" ,emacs-org-super-agenda)
5246 ("emacs-org" ,emacs-org)
5247 ("emacs-org-ql" ,emacs-org-ql)
5248 ("emacs-s" ,emacs-s)))
5249 (home-page "https://github.com/alphapapa/org-sidebar")
5250 (synopsis "Helpful sidebar for Org buffers")
5251 (description "This package provides a sidebar for Org buffers. At the
5252 top is a chronological list of scheduled and deadlined tasks in the current
5253 buffer (similar to the Org agenda ,but without all its features), and below
5254 that is a list of all other non-done to-do items. If the buffer is narrowed,
5255 the sidebar only shows items in the narrowed portion; this allows seeing an
5256 overview of tasks in a subtree.")
5257 (license license:gpl3+)))
5258
5259 (define-public emacs-org-trello
5260 (package
5261 (name "emacs-org-trello")
5262 (version "0.8.1")
5263 (source
5264 (origin
5265 (method git-fetch)
5266 (uri (git-reference
5267 (url "https://github.com/org-trello/org-trello.git")
5268 (commit version)))
5269 (file-name (git-file-name name version))
5270 (sha256
5271 (base32
5272 "02gx3kv4mkij69ln8x8wf9n28x17pbb4kv85v78d3lxph7ykqimc"))))
5273 (build-system emacs-build-system)
5274 (propagated-inputs
5275 `(("emacs-dash" ,emacs-dash)
5276 ("emacs-deferred" ,emacs-deferred)
5277 ("emacs-f" ,emacs-f)
5278 ("emacs-helm" ,emacs-helm)
5279 ("emacs-request" ,emacs-request)
5280 ("emacs-s" ,emacs-s)))
5281 (home-page "https://org-trello.github.io")
5282 (synopsis "Emacs minor mode for interacting with Trello")
5283 (description "This package provides an Emacs minor mode to extend
5284 @code{org-mode} with Trello abilities. Trello is an online project
5285 organizer.")
5286 (license license:gpl3+)))
5287
5288 (define-public emacs-org-tanglesync
5289 (let ((commit "d99181f173b4e55b4e835d99fcd415e62beb047f")
5290 (revision "2"))
5291 (package
5292 (name "emacs-org-tanglesync")
5293 (version (git-version "0.6" revision commit))
5294 (source
5295 (origin
5296 (method git-fetch)
5297 (uri (git-reference
5298 (url "https://github.com/mtekman/org-tanglesync.el.git")
5299 (commit commit)))
5300 (file-name (git-file-name name version))
5301 (sha256
5302 (base32 "0x94gy1bgfd1f3p9w2bfrqj11bwy9ql0cpi1gw6srpj7kykx0lml"))))
5303 (build-system emacs-build-system)
5304 (propagated-inputs
5305 `(("emacs-org" ,emacs-org)))
5306 (home-page "https://github.com/mtekman/org-tanglesync.el")
5307 (synopsis "Sync Org source blocks with tangled external files")
5308 (description "This package automatically pulls changes from source code
5309 to their corresponding tangled blocks.")
5310 (license license:gpl3+))))
5311
5312 (define-public emacs-company-flow
5313 (let ((commit "76ef585c70d2a3206c2eadf24ba61e59124c3a16")
5314 (revision "1"))
5315 (package
5316 (name "emacs-company-flow")
5317 (version (git-version "0.1.0" revision commit))
5318 (source (origin
5319 (method git-fetch)
5320 (uri (git-reference
5321 (url "https://github.com/aaronjensen/company-flow/")
5322 (commit commit)))
5323 (file-name (git-file-name name version))
5324 (sha256
5325 (base32
5326 "0zs9cblnbkxa0dxw4lyllmybqizxcdx96gv8jlhx20nrjpi78piw"))))
5327 (build-system emacs-build-system)
5328 (propagated-inputs
5329 `(("emacs-company" ,emacs-company)
5330 ("emacs-dash" ,emacs-dash)))
5331 (home-page "https://github.com/aaronjensen/company-flow/")
5332 (synopsis "Flow backend for @code{company-mode}")
5333 (description
5334 "This package provides completion for JavaScript files utilizing Flow.")
5335 (license license:gpl3+))))
5336
5337 (define-public emacs-atom-one-dark-theme
5338 (let ((commit "1f1185bf667a38d3d0d180ce85fd4c131818aae2")
5339 (revision "0"))
5340 (package
5341 (name "emacs-atom-one-dark-theme")
5342 (version (git-version "0.4.0" revision commit))
5343 (source (origin
5344 (method git-fetch)
5345 (uri (git-reference
5346 (url "https://github.com/jonathanchu/atom-one-dark-theme.git")
5347 (commit commit)))
5348 (sha256
5349 (base32
5350 "1alma16hg3mfjly8a9s3mrswkjjx4lrpdnf43869hn2ibkn7zx9z"))
5351 (file-name (git-file-name name version))))
5352 (build-system emacs-build-system)
5353 (home-page "https://github.com/jonathanchu/atom-one-dark-theme")
5354 (synopsis "Atom One Dark color theme for Emacs")
5355 (description "An Emacs port of the Atom One Dark theme from Atom.io.")
5356 (license license:gpl3+))))
5357
5358 (define-public emacs-zenburn-theme
5359 (package
5360 (name "emacs-zenburn-theme")
5361 (version "2.6")
5362 (source
5363 (origin
5364 (method git-fetch)
5365 (uri (git-reference
5366 (url "https://github.com/bbatsov/zenburn-emacs.git")
5367 (commit (string-append "v" version))))
5368 (file-name (git-file-name name version))
5369 (sha256
5370 (base32 "1n87r5hs7h5r8dgfid66skpzcypl9hssr9m3npp916g6jfsi782f"))))
5371 (build-system emacs-build-system)
5372 (home-page "https://github.com/bbatsov/zenburn-emacs")
5373 (synopsis "Low contrast color theme for Emacs")
5374 (description
5375 "Zenburn theme is a port of the popular Vim Zenburn theme for Emacs.
5376 It is built on top of the custom theme support in Emacs 24 or later.")
5377 (license license:gpl3+)))
5378
5379 (define-public emacs-moe-theme-el
5380 (let ((commit "6e086d855d6bb446bbd1090742815589a81a915f")
5381 (version "1.0")
5382 (revision "1"))
5383 (package
5384 (name "emacs-moe-theme-el")
5385 (version (git-version version revision commit))
5386 (source
5387 (origin
5388 (method git-fetch)
5389 (uri (git-reference
5390 (url "https://github.com/kuanyui/moe-theme.el")
5391 (commit commit)))
5392 (file-name (git-file-name name version))
5393 (sha256
5394 (base32 "0xj4wfd7h4jqnr193pizm9frf6lmwjr0dsdv2l9mqh9k691z1dnc"))))
5395 (build-system emacs-build-system)
5396 (home-page "https://github.com/kuanyui/moe-theme.el")
5397 (synopsis "Anime-inspired color themes")
5398 (description
5399 "This package provides vibrant color schemes with light and dark
5400 variants.")
5401 (license license:gpl3+))))
5402
5403 (define-public emacs-solarized-theme
5404 (package
5405 (name "emacs-solarized-theme")
5406 (version "1.3.1")
5407 (source
5408 (origin
5409 (method git-fetch)
5410 (uri (git-reference
5411 (url "https://github.com/bbatsov/solarized-emacs/")
5412 (commit (string-append "v" version))))
5413 (file-name (git-file-name name version))
5414 (sha256
5415 (base32 "15ql8xcixgm7mbs7rsbybwszanqibq057j5b5ds89a31dw7zxf1g"))))
5416 (build-system emacs-build-system)
5417 (propagated-inputs
5418 `(("emacs-dash" ,emacs-dash)))
5419 (home-page "https://github.com/bbatsov/solarized-emacs")
5420 (synopsis "Port of the Solarized theme for Emacs")
5421 (description
5422 "Solarized for Emacs is a port of the Solarized theme for Vim. This
5423 package provides a light and a dark variant.")
5424 (license license:gpl3+)))
5425
5426 (define-public emacs-poet-theme
5427 (let ((commit "d84f7b259cc9b6ff8d442cf4c38bd6c7065ff8f4")
5428 (revision "0"))
5429 (package
5430 (name "emacs-poet-theme")
5431 (version (git-version "0" revision commit))
5432 (source
5433 (origin
5434 (method git-fetch)
5435 (uri (git-reference
5436 (url "https://github.com/kunalb/poet.git")
5437 (commit commit)))
5438 (file-name (git-file-name name version))
5439 (sha256
5440 (base32
5441 "0a84jdaj619mb59a46dmkk2sfs42rylqk9ryl1drgs8d3lia79mz"))))
5442 (build-system emacs-build-system)
5443 (home-page "https://github.com/kunalb/poet/")
5444 (synopsis "Emacs theme for prose")
5445 (description
5446 "Emacs has very good support for multiple fonts in a single file. Poet
5447 uses this support to make it much more convenient to write prose within Emacs,
5448 with particular attention paid to @code{org-mode} and @code{markdown-mode}.
5449 Code blocks, tables, etc are formatted in monospace text with the appropriate
5450 backgrounds.")
5451 (license license:expat))))
5452
5453 (define-public emacs-ahungry-theme
5454 (package
5455 (name "emacs-ahungry-theme")
5456 (version "1.10.0")
5457 (source
5458 (origin (method url-fetch)
5459 (uri (string-append "https://elpa.gnu.org/packages/ahungry-theme-"
5460 version ".tar"))
5461 (sha256
5462 (base32
5463 "14q5yw56n82qph09bk7wmj5b1snhh9w0nk5s1l7yn9ldg71xq6pm"))))
5464 (build-system emacs-build-system)
5465 (home-page "https://github.com/ahungry/color-theme-ahungry")
5466 (synopsis "Ahungry color theme for Emacs")
5467 (description "Ahungry theme for Emacs provides bright and bold colors.
5468 If you load it from a terminal, you will be able to make use of the
5469 transparent background. If you load it from a GUI, it will default to a
5470 dark background.")
5471 (license license:gpl3+)))
5472
5473 (define-public emacs-gruvbox-theme
5474 (package
5475 (name "emacs-gruvbox-theme")
5476 (version "1.28.0")
5477 (source (origin
5478 (method git-fetch)
5479 (uri (git-reference
5480 (url "https://github.com/greduan/emacs-theme-gruvbox.git")
5481 (commit version)))
5482 (file-name (git-file-name name version))
5483 (sha256
5484 (base32
5485 "00qq92gp1g55pzm97rh7k0dgxy44pxziridl8kqm4rbpi31r7k9p"))))
5486 (build-system emacs-build-system)
5487 (propagated-inputs
5488 `(("emacs-autothemer" ,emacs-autothemer)))
5489 (home-page "https://github.com/greduan/emacs-theme-gruvbox")
5490 (synopsis "Gruvbox is a retro groove color scheme ported from Vim")
5491 (description
5492 "Gruvbox is heavily inspired by badwolf, jellybeans and solarized.
5493
5494 Designed as a bright theme with pastel 'retro groove' colors and light/dark
5495 mode switching in the way of solarized. The main focus when developing gruvbox
5496 is to keep colors easily distinguishable, contrast enough and still pleasant
5497 for the eyes.")
5498 (license license:expat))) ; MIT license
5499
5500 (define-public emacs-spacegray-theme
5501 (let ((commit "9826265c2bceb2ebc1c5e16a45021da0253ace97")
5502 (revision "0"))
5503 (package
5504 (name "emacs-spacegray-theme")
5505 (version (git-version "0" revision commit))
5506 (source (origin
5507 (method git-fetch)
5508 (uri (git-reference
5509 (url "https://github.com/bruce/emacs-spacegray-theme.git")
5510 (commit commit)))
5511 (file-name (git-file-name name version))
5512 (sha256
5513 (base32
5514 "0aplwmm17ypbns5blc4rf5rr6dasj0zp5ibykpfl43fh4bd8z89n"))))
5515 (build-system emacs-build-system)
5516 (home-page "https://github.com/bruce/emacs-spacegray-theme")
5517 (synopsis "Port of Sublime Text's Spacegray theme for Emacs")
5518 (description
5519 "@code{spacegray-theme} is an Emacs port of the Spacegray theme from
5520 Sublime Text. It features a dark blue/gray background and soft blue, green,
5521 orange and red as accent colors.")
5522 (license license:expat)))) ; MIT license
5523
5524 (define-public emacs-2048-game
5525 (package
5526 (name "emacs-2048-game")
5527 (version "20151026.1233")
5528 (source
5529 (origin
5530 (method url-fetch)
5531 (uri (string-append "https://melpa.org/packages/2048-game-"
5532 version ".el"))
5533 (sha256
5534 (base32
5535 "0gy2pvz79whpavp4jmz8h9krzn7brmvv3diixi1d4w51pcdvaldd"))))
5536 (build-system emacs-build-system)
5537 (home-page "https://bitbucket.org/zck/2048.el")
5538 (synopsis "Implementation of the game 2048 in Emacs Lisp")
5539 (description
5540 "This program is an implementation of 2048 for Emacs.
5541 The goal of this game is to create a tile with value 2048. The size of the
5542 board and goal value can be customized.")
5543 (license license:gpl3+)))
5544
5545 (define-public emacs-4clojure
5546 ;; There is no release. Base version is extracted from Version keyword in
5547 ;; the main file.
5548 (let ((commit "4eccf8c7d4341a36c269451838114b27836699f9")
5549 (revision "1"))
5550 (package
5551 (name "emacs-4clojure")
5552 (version (git-version "0.2.1" revision commit))
5553 (source
5554 (origin
5555 (method git-fetch)
5556 (uri (git-reference
5557 (url "https://github.com/emacsorphanage/4clojure.git")
5558 (commit commit)))
5559 (file-name (git-file-name name version))
5560 (sha256
5561 (base32 "19x653lzc1dxil4ix257hciidbdmbhaxhs6qhlkwi9ygjrlrgvnk"))))
5562 (build-system emacs-build-system)
5563 (propagated-inputs
5564 `(("emacs-request" ,emacs-request)))
5565 (home-page "https://github.com/emacsorphanage/4clojure/")
5566 (synopsis "Open and evaluate 4clojure questions in Emacs")
5567 (description "Emacs 4clojure interacts with
5568 @url{http://www.4clojure.com, 4clojure} problems. You can open a specific
5569 question and move to the next or previous one. You can also verify your
5570 answers.")
5571 (license license:gpl3+))))
5572
5573 (define-public emacs-base16-theme
5574 (package
5575 (name "emacs-base16-theme")
5576 (version "2.2")
5577 (source
5578 (origin
5579 (method git-fetch)
5580 (uri (git-reference
5581 (url "https://github.com/belak/base16-emacs.git")
5582 (commit version)))
5583 (file-name (git-file-name name version))
5584 (sha256
5585 (base32 "01w89g413s1da6rf94y1xnhw79cjy2bqb01yfjs58cy492cm0vr6"))))
5586 (build-system emacs-build-system)
5587 (home-page "https://github.com/belak/base16-emacs")
5588 (synopsis "Base16 color themes for Emacs")
5589 (description
5590 "Base16 provides carefully chosen syntax highlighting and a default set
5591 of sixteen colors suitable for a wide range of applications. Base16 is not a
5592 single theme but a set of guidelines with numerous implementations.")
5593 (license license:expat)))
5594
5595 (define-public emacs-solaire-mode
5596 (package
5597 (name "emacs-solaire-mode")
5598 (version "1.0.9")
5599 (source
5600 (origin
5601 (method git-fetch)
5602 (uri (git-reference
5603 (url "https://github.com/hlissner/emacs-solaire-mode.git")
5604 (commit (string-append "v" version))))
5605 (file-name (git-file-name name version))
5606 (sha256
5607 (base32 "011m4r7s6i9lgjymh7jgq5jwwrpz4vmpvp3c8d4ix96v5hi04kzg"))))
5608 (build-system emacs-build-system)
5609 (home-page "https://github.com/hlissner/emacs-solaire-mode")
5610 (synopsis "Change background of file-visiting buffers in Emacs")
5611 (description
5612 "@code{solaire-mode} is inspired by editors which visually distinguish
5613 code-editing windows from sidebars, popups, terminals, ecetera. It changes the
5614 background of file-visiting buffers (and certain aspects of the UI) to make
5615 them easier to distinguish from other, less important buffers.")
5616 (license license:expat)))
5617
5618 (define-public emacs-prescient
5619 (package
5620 (name "emacs-prescient")
5621 (version "4.1")
5622 (source
5623 (origin
5624 (method git-fetch)
5625 (uri (git-reference
5626 (url "https://github.com/raxod502/prescient.el.git")
5627 (commit (string-append "v" version))))
5628 (file-name (git-file-name name version))
5629 (sha256
5630 (base32 "1rf5cz262hjpck7vpxg15bccdrwrmlhiyxc20liwcjb2ig36nis3"))))
5631 (build-system emacs-build-system)
5632 (propagated-inputs
5633 `(("emacs-company" ,emacs-company)
5634 ("emacs-ivy" ,emacs-ivy)
5635 ("emacs-selectrum" ,emacs-selectrum)))
5636 (home-page "https://github.com/raxod502/prescient.el/")
5637 (synopsis "Emacs library for sorting and filtering candidates")
5638 (description
5639 "Prescient is a library for sorting and filtering, as well as extensions
5640 for Ivy and Company that make use of the library.")
5641 (license license:expat)))
5642
5643 (define-public emacs-selectrum
5644 (package
5645 (name "emacs-selectrum")
5646 (version "1.0")
5647 (source
5648 (origin
5649 (method git-fetch)
5650 (uri (git-reference
5651 (url "https://github.com/raxod502/selectrum.git")
5652 (commit (string-append "v" version))))
5653 (file-name (git-file-name name version))
5654 (sha256
5655 (base32 "105zl102dwbzvk50xh6b824nq6p24kxhky18ghdnk5yi5sv620lm"))))
5656 (build-system emacs-build-system)
5657 (home-page "https://github.com/raxod502/selectrum/")
5658 (synopsis "Incremental narrowing in Emacs")
5659 (description "Selectrum is a solution for incremental narrowing in
5660 Emacs, replacing Helm, Ivy, and IDO. Its design philosophy is based
5661 on choosing the right abstractions and prioritizing consistency and
5662 predictability over special-cased improvements for particular cases.
5663 As such, Selectrum follows existing Emacs conventions where they exist
5664 and are reasonable, and it declines to implement features which have
5665 marginal benefit compared to the additional complexity of a new
5666 interface.")
5667 (license license:expat)))
5668
5669 (define-public emacs-smartparens
5670 (package
5671 (name "emacs-smartparens")
5672 (version "1.11.0")
5673 (source
5674 (origin
5675 (method git-fetch)
5676 (uri (git-reference
5677 (url "https://github.com/Fuco1/smartparens.git")
5678 (commit version)))
5679 (file-name (git-file-name name version))
5680 (sha256
5681 (base32 "0zij2f2rjjym98w68jkp10n1ckpfprlkk217c3fg16hz5nq4vnm6"))))
5682 (build-system emacs-build-system)
5683 (propagated-inputs
5684 `(("emacs-dash" ,emacs-dash)
5685 ("emacs-markdown-mode" ,emacs-markdown-mode)))
5686 (home-page "https://github.com/Fuco1/smartparens")
5687 (synopsis "Paredit-like insertion, wrapping and navigation with user
5688 defined pairs")
5689 (description
5690 "Smartparens is a minor mode for Emacs that deals with parens pairs
5691 and tries to be smart about it. It started as a unification effort to
5692 combine functionality of several existing packages in a single,
5693 compatible and extensible way to deal with parentheses, delimiters, tags
5694 and the like. Some of these packages include autopair, textmate,
5695 wrap-region, electric-pair-mode, paredit and others. With the basic
5696 features found in other packages it also brings many improvements as
5697 well as completely new features.")
5698 (license license:gpl3+)))
5699
5700 (define-public emacs-highlight-symbol
5701 ;; We prefer a more recent commit that provides an option to squelch
5702 ;; echo-area alerts that can drown out useful information like eldoc
5703 ;; messages.
5704 (let ((commit "7a789c779648c55b16e43278e51be5898c121b3a")
5705 (version "1.3")
5706 (revision "1"))
5707 (package
5708 (name "emacs-highlight-symbol")
5709 (version (git-version version revision commit))
5710 (source
5711 (origin
5712 (method git-fetch)
5713 (uri (git-reference
5714 (url "https://github.com/nschum/highlight-symbol.el.git")
5715 (commit commit)))
5716 (file-name (git-file-name name version))
5717 (sha256
5718 (base32 "19cgyk0sh8nsmf3jbi92i8qsdx4l4yilfq5jj9zfdbj9p5gvwx96"))))
5719 (build-system emacs-build-system)
5720 (home-page "https://nschum.de/src/emacs/highlight-symbol/")
5721 (synopsis "Automatic and manual symbol highlighting for Emacs")
5722 (description
5723 "Use @code{highlight-symbol} to toggle highlighting of the symbol at
5724 point throughout the current buffer. Use @code{highlight-symbol-mode} to keep
5725 the symbol at point highlighted.
5726
5727 The functions @code{highlight-symbol-next}, @code{highlight-symbol-prev},
5728 @code{highlight-symbol-next-in-defun} and
5729 @code{highlight-symbol-prev-in-defun} allow for cycling through the locations
5730 of any symbol at point. Use @code{highlight-symbol-nav-mode} to enable key
5731 bindings @code{M-p} and @code{M-p} for navigation. When
5732 @code{highlight-symbol-on-navigation-p} is set, highlighting is triggered
5733 regardless of @code{highlight-symbol-idle-delay}.
5734
5735 @code{highlight-symbol-query-replace} can be used to replace the symbol. ")
5736 (license license:gpl2+))))
5737
5738 (define-public emacs-symbol-overlay
5739 (let ((commit "e40a7c407f24158c45eaa5f54ed41f5e416a51dc")
5740 (revision "1"))
5741 (package
5742 (name "emacs-symbol-overlay")
5743 (version (git-version "4.1" revision commit))
5744 (source
5745 (origin
5746 (method git-fetch)
5747 (uri (git-reference
5748 (url "https://github.com/wolray/symbol-overlay.git")
5749 (commit commit)))
5750 (file-name (git-file-name name version))
5751 (sha256
5752 (base32 "0ibz3392d3jw1l8006h9kf8s7bg6vl7jc92bmqc031a433009ic7"))))
5753 (build-system emacs-build-system)
5754 (home-page "https://github.com/wolray/symbol-overlay")
5755 (synopsis "Highlight symbols and perform various search operations on them")
5756 (description
5757 "This package provides functions for highlighting and navigating
5758 between symbols.")
5759 (license license:gpl3+))))
5760
5761 (define-public emacs-hl-todo
5762 (package
5763 (name "emacs-hl-todo")
5764 (version "3.0.0")
5765 (source (origin
5766 (method git-fetch)
5767 (uri (git-reference
5768 (url "https://github.com/tarsius/hl-todo")
5769 (commit (string-append "v" version))))
5770 (file-name (git-file-name name version))
5771 (sha256
5772 (base32
5773 "07xcc04ivpl5sbgb55qz84mz6wa500h0awzw1zq1ba5mfjjq8hls"))))
5774 (build-system emacs-build-system)
5775 (home-page "https://github.com/tarsius/hl-todo")
5776 (synopsis "Emacs mode to highlight TODO and similar keywords")
5777 (description
5778 "This package provides an Emacs mode to highlight TODO and similar
5779 keywords in comments and strings. This package also provides commands for
5780 moving to the next or previous keyword and to invoke @code{occur} with a
5781 regexp that matches all known keywords.")
5782 (license license:gpl3+)))
5783
5784 (define-public emacs-perspective
5785 (package
5786 (name "emacs-perspective")
5787 (version "2.2")
5788 (source
5789 (origin
5790 (method git-fetch)
5791 (uri (git-reference
5792 (url "https://github.com/nex3/perspective-el.git")
5793 (commit version)))
5794 (file-name (git-file-name name version))
5795 (sha256
5796 (base32
5797 "0pd5sqrrz6y3md20yh6ffy32jdcgb1gc9b4j14pm6r54bqxik68h"))))
5798 (build-system emacs-build-system)
5799 (home-page "https://github.com/nex3/perspective-el")
5800 (synopsis "Switch between named \"perspectives\"")
5801 (description
5802 "This package provides tagged workspaces in Emacs, similar to workspaces in
5803 windows managers such as Awesome and XMonad. @code{perspective.el} provides
5804 multiple workspaces (or \"perspectives\") for each Emacs frame. Each
5805 perspective is composed of a window configuration and a set of buffers.
5806 Switching to a perspective activates its window configuration, and when in a
5807 perspective only its buffers are available by default.")
5808 ;; This package is released under the same license as Emacs (GPLv3+) or
5809 ;; the Expat license.
5810 (license license:gpl3+)))
5811
5812 (define-public emacs-persp-mode
5813 (package
5814 (name "emacs-persp-mode")
5815 (version "2.9.8")
5816 (source
5817 (origin
5818 (method git-fetch)
5819 (uri (git-reference
5820 (url "https://github.com/Bad-ptr/persp-mode.el.git")
5821 (commit (string-append "v" version))))
5822 (file-name (git-file-name name version))
5823 (sha256
5824 (base32
5825 "0b4y7a6j70s9lvr37riyy9k5kh3yvmx0m6nd9c0c8572ji4ij65g"))))
5826 (build-system emacs-build-system)
5827 (home-page "https://github.com/Bad-ptr/persp-mode.el")
5828 (synopsis "Switch between named \"perspectives\" shared among frames")
5829 (description
5830 "This package extends @code{perspective.el} to enable perspectives that
5831 can be saved to and restored from a file.")
5832 (license license:gpl2+)))
5833
5834 (define-public emacs-test-simple
5835 (package
5836 (name "emacs-test-simple")
5837 (version "1.3.0")
5838 (source
5839 (origin
5840 (method url-fetch)
5841 (uri (string-append "https://elpa.gnu.org/packages/test-simple-"
5842 version ".el"))
5843 (sha256
5844 (base32
5845 "1yd61jc9ds95a5n09052kwc5gasy57g4lxr0jsff040brlyi9czz"))))
5846 (build-system emacs-build-system)
5847 (home-page "https://github.com/rocky/emacs-test-simple")
5848 (synopsis "Simple unit test framework for Emacs Lisp")
5849 (description
5850 "Test Simple is a simple unit test framework for Emacs Lisp. It
5851 alleviates the need for context macros, enclosing specifications or required
5852 test tags. It supports both interactive and non-interactive use.")
5853 (license license:gpl3+)))
5854
5855 (define-public emacs-load-relative
5856 (package
5857 (name "emacs-load-relative")
5858 (version "1.3.1")
5859 (source
5860 (origin
5861 (method url-fetch)
5862 (uri (string-append "https://elpa.gnu.org/packages/load-relative-"
5863 version ".el"))
5864 (sha256
5865 (base32 "1m37scr82lqqy954fchjxrmdh4lngrl4d1yzxhp3yfjhsydizhrj"))))
5866 (build-system emacs-build-system)
5867 (home-page "http://github.com/rocky/emacs-load-relative")
5868 (synopsis "Emacs Lisp relative file loading related functions")
5869 (description
5870 "Provides functions which facilitate writing multi-file Emacs packages
5871 and running from the source tree without having to \"install\" code or fiddle
5872 with @{load-path}.
5873
5874 The main function, @code{load-relative}, loads an Emacs Lisp file relative to
5875 another (presumably currently running) Emacs Lisp file.")
5876 (license license:gpl3+)))
5877
5878 (define-public emacs-loc-changes
5879 (package
5880 (name "emacs-loc-changes")
5881 (version "1.2")
5882 (source
5883 (origin
5884 (method url-fetch)
5885 (uri (string-append "https://elpa.gnu.org/packages/loc-changes-"
5886 version ".el"))
5887 (sha256
5888 (base32
5889 "1x8fn8vqasayf1rb8a6nma9n6nbvkx60krmiahyb05vl5rrsw6r3"))))
5890 (build-system emacs-build-system)
5891 (home-page "https://github.com/rocky/emacs-loc-changes")
5892 (synopsis "Keeps track of positions even after buffer changes")
5893 (description
5894 "This Emacs package provides a mean to track important buffer positions
5895 after buffer changes.")
5896 (license license:gpl3+)))
5897
5898 (define-public emacs-realgud
5899 (package
5900 (name "emacs-realgud")
5901 (version "1.5.1")
5902 (source
5903 (origin
5904 (method git-fetch)
5905 (uri (git-reference
5906 (url "https://github.com/realgud/realgud/")
5907 (commit version)))
5908 (sha256
5909 (base32
5910 "1d3s23jk0i34wpyxfajydgyyvsxnpbqrfl0mgydsq7zw2c75ylnq"))
5911 (file-name (git-file-name name version))))
5912 (build-system emacs-build-system)
5913 (arguments
5914 `(#:tests? #t
5915 #:phases
5916 (modify-phases %standard-phases
5917 (add-after 'unpack 'fix-autogen-script
5918 (lambda _
5919 (substitute* "autogen.sh"
5920 (("./configure") "sh configure"))))
5921 (add-after 'fix-autogen-script 'autogen
5922 (lambda _
5923 (setenv "CONFIG_SHELL" "sh")
5924 (invoke "sh" "autogen.sh")))
5925 (add-after 'fix-autogen-script 'set-home
5926 (lambda _
5927 (setenv "HOME" (getenv "TMPDIR"))))
5928 (add-before 'patch-el-files 'remove-realgud-pkg.el
5929 (lambda _
5930 ;; FIXME: `patch-el-files' crashes on this file with error:
5931 ;; unable to locate "bashdb".
5932 (delete-file "./test/test-regexp-bashdb.el"))))
5933 #:include (cons* ".*\\.el$" %default-include)))
5934 (native-inputs
5935 `(("autoconf" ,autoconf)
5936 ("automake" ,automake)
5937 ("emacs-test-simple" ,emacs-test-simple)))
5938 (propagated-inputs
5939 `(("emacs-load-relative" ,emacs-load-relative)
5940 ("emacs-loc-changes" ,emacs-loc-changes)))
5941 (home-page "https://github.com/realgud/realgud/")
5942 (synopsis
5943 "Modular front-end for interacting with external debuggers")
5944 (description
5945 "RealGUD is a modular, extensible GNU Emacs front-end for interacting
5946 with external debuggers. It integrates various debuggers such as gdb, pdb,
5947 ipdb, jdb, lldb, bashdb, zshdb, etc. and allows to visually step code in the
5948 sources. Unlike GUD, it also supports running multiple debug sessions in
5949 parallel.")
5950 (license license:gpl3+)))
5951
5952 (define-public emacs-request
5953 (package
5954 (name "emacs-request")
5955 (version "0.3.2")
5956 (source (origin
5957 (method git-fetch)
5958 (uri (git-reference
5959 (url "https://github.com/tkf/emacs-request.git")
5960 (commit (string-append "v" version))))
5961 (file-name (git-file-name name version))
5962 (sha256
5963 (base32
5964 "1djywhvvb6kwdj0nd3axjvb7k2g06dzkc6hsf29w9rsk96vr8ryl"))))
5965 (build-system emacs-build-system)
5966 (arguments
5967 `(#:tests? #f)) ; requires network access.
5968 (propagated-inputs
5969 `(("emacs-deferred" ,emacs-deferred)))
5970 (home-page "https://github.com/tkf/emacs-request")
5971 (synopsis "Package for speaking HTTP in Emacs Lisp")
5972 (description "This package provides a HTTP request library with multiple
5973 backends. It supports url.el which is shipped with Emacs and the curl command
5974 line program.")
5975 (license license:gpl3+)))
5976
5977 (define-public emacs-rudel
5978 (package
5979 (name "emacs-rudel")
5980 (version "0.3.1")
5981 (source
5982 (origin
5983 (method url-fetch)
5984 (uri (string-append "https://elpa.gnu.org/packages/rudel-"
5985 version ".tar"))
5986 (sha256
5987 (base32
5988 "0glqa68g509p0s2vcc0i8kzlddnc9brd9jqhnm5rzxz4i050cvnz"))))
5989 (build-system emacs-build-system)
5990 (home-page "http://rudel.sourceforge.net/")
5991 (synopsis "Collaborative editing framework")
5992 (description
5993 "Rudel is a collaborative editing environment for GNU Emacs. Its purpose
5994 is to share buffers with other users in order to edit the contents of those
5995 buffers collaboratively. Rudel supports multiple backends to enable
5996 communication with other collaborative editors using different protocols,
5997 though currently Obby (for use with the Gobby editor) is the only
5998 fully-functional one.")
5999 (license license:gpl3+)))
6000
6001 (define-public emacs-hydra
6002 (package
6003 (name "emacs-hydra")
6004 (version "0.15.0")
6005 (source
6006 (origin
6007 (method git-fetch)
6008 (uri (git-reference
6009 (url "https://github.com/abo-abo/hydra")
6010 (commit version)))
6011 (file-name (git-file-name name version))
6012 (sha256
6013 (base32
6014 "0fapvhmhgc9kppf3bvkgry0cd7gyilg7sfvlscfrfjxpx4xvwsfy"))))
6015 (build-system emacs-build-system)
6016 (arguments
6017 `(#:tests? #t
6018 #:test-command '("make" "test")))
6019 (home-page "https://github.com/abo-abo/hydra")
6020 (synopsis "Make Emacs bindings that stick around")
6021 (description
6022 "This package can be used to tie related commands into a family of short
6023 bindings with a common prefix---a Hydra. Once you summon the Hydra (through
6024 the prefixed binding), all the heads can be called in succession with only a
6025 short extension. Any binding that isn't the Hydra's head vanquishes the
6026 Hydra. Note that the final binding, besides vanquishing the Hydra, will still
6027 serve its original purpose, calling the command assigned to it. This makes
6028 the Hydra very seamless; it's like a minor mode that disables itself
6029 automatically.")
6030 (license license:gpl3+)))
6031
6032 (define-public emacs-ivy
6033 (package
6034 (name "emacs-ivy")
6035 (version "0.13.0")
6036 (source
6037 (origin
6038 (method git-fetch)
6039 (uri (git-reference
6040 (url "https://github.com/abo-abo/swiper.git")
6041 (commit version)))
6042 (file-name (git-file-name name version))
6043 (sha256
6044 (base32
6045 "0ghcwrg8a6r5q6fw2x8s08cwlmnz2d8qjhisnjwbnc2l4cgqpd9p"))))
6046 (build-system emacs-build-system)
6047 (arguments
6048 `(#:phases
6049 (modify-phases %standard-phases
6050 (add-after 'install 'install-doc
6051 (lambda* (#:key outputs #:allow-other-keys)
6052 (let* ((out (assoc-ref outputs "out"))
6053 (info (string-append out "/share/info")))
6054 (with-directory-excursion "doc"
6055 (invoke "makeinfo" "ivy.texi")
6056 (install-file "ivy.info" info)
6057 #t))))
6058 (add-before 'check 'make-dummy-git-directory
6059 (lambda _
6060 (mkdir-p ".git")))
6061 (add-after 'check 'delete-dummy-git-directory
6062 (lambda _
6063 (delete-file-recursively ".git"))))
6064 #:tests? #t
6065 #:test-command '("make" "test")))
6066 (propagated-inputs
6067 `(("emacs-hydra" ,emacs-hydra)))
6068 (native-inputs
6069 `(("texinfo" ,texinfo)
6070 ("emacs-wgrep" ,emacs-wgrep)))
6071 (home-page "http://oremacs.com/swiper/")
6072 (synopsis "Incremental vertical completion for Emacs")
6073 (description
6074 "This package provides @code{ivy-read} as an alternative to
6075 @code{completing-read} and similar functions. No attempt is made to determine
6076 the best candidate. Instead, the user can navigate candidates with
6077 @code{ivy-next-line} and @code{ivy-previous-line}. The matching is done by
6078 splitting the input text by spaces and re-building it into a regular
6079 expression.")
6080 (license license:gpl3+)))
6081
6082 (define-public emacs-ivy-xref
6083 (let ((commit "1a35fc0f070388701b05b0a455cbe262e924d547")
6084 (revision "1"))
6085 (package
6086 (name "emacs-ivy-xref")
6087 (version (git-version "0.1" revision commit))
6088 (source
6089 (origin
6090 (method git-fetch)
6091 (uri (git-reference
6092 (url "https://github.com/alexmurray/ivy-xref.git")
6093 (commit commit)))
6094 (file-name (git-file-name name version))
6095 (sha256
6096 (base32
6097 "0d71nm9d9ajp5i6dnl8h1hw9jqp8gd1ajgninb1h13i80rplzl9k"))))
6098 (build-system emacs-build-system)
6099 (propagated-inputs
6100 `(("emacs-ivy" ,emacs-ivy)))
6101 (home-page "https://github.com/alexmurray/ivy-xref")
6102 (synopsis "Ivy interface for @code{xref}")
6103 (description "This package provides an Ivy interface for selecting from
6104 @code{xref} results.")
6105 (license license:gpl3))))
6106
6107 (define-public emacs-ivy-pass
6108 (let ((commit "5b523de1151f2109fdd6a8114d0af12eef83d3c5")
6109 (revision "1"))
6110 (package
6111 (name "emacs-ivy-pass")
6112 (version (git-version "0.1" revision commit))
6113 (source
6114 (origin
6115 (method git-fetch)
6116 (uri (git-reference
6117 (url "https://github.com/ecraven/ivy-pass.git")
6118 (commit commit)))
6119 (file-name (git-file-name name version))
6120 (sha256
6121 (base32
6122 "18crb4zh2pjf0cmv3b913m9vfng27girjwfqc3mk7vqd1r5a49yk"))))
6123 (build-system emacs-build-system)
6124 (propagated-inputs
6125 `(("emacs-ivy" ,emacs-ivy)
6126 ("emacs-password-store" ,emacs-password-store)
6127 ("password-store" ,password-store)))
6128 (home-page "https://github.com/ecraven/ivy-pass")
6129 (synopsis "Ivy interface for password store (pass)")
6130 (description "This package provides an Ivy interface for working with
6131 the password store @code{pass}.")
6132 (license license:gpl3))))
6133
6134 (define-public emacs-ivy-yasnippet
6135 (let ((commit "32580b4fd23ebf9ca7dde96704f7d53df6e253cd")
6136 (revision "2"))
6137 (package
6138 (name "emacs-ivy-yasnippet")
6139 (version (git-version "0.1" revision commit))
6140 (source
6141 (origin
6142 (method git-fetch)
6143 (uri (git-reference
6144 (url "https://github.com/mkcms/ivy-yasnippet.git")
6145 (commit commit)))
6146 (file-name (git-file-name name version))
6147 (sha256
6148 (base32
6149 "1wfg6mmd5gl1qgvayyzpxlkh9s7jgn20y8l1vh1zbj1czvv51xp8"))))
6150 (build-system emacs-build-system)
6151 (propagated-inputs
6152 `(("emacs-ivy" ,emacs-ivy)
6153 ("emacs-yasnippet" ,emacs-yasnippet)
6154 ("emacs-dash" ,emacs-dash)))
6155 (home-page "https://github.com/mkcms/ivy-yasnippet")
6156 (synopsis "Preview @code{yasnippets} with @code{ivy}")
6157 (description "This package allows you to select @code{yasnippet}
6158 snippets using @code{ivy} completion. When current selection changes in the
6159 minibuffer, the snippet contents are temporarily expanded in the buffer. To
6160 use it, call @code{M-x ivy-yasnippet} (but make sure you have enabled
6161 @code{yas-minor-mode} first).")
6162 (license license:gpl3+))))
6163
6164 (define-public emacs-ivy-rich
6165 ;; The latest release version has a small mistake that has since been fixed,
6166 ;; so we use a more recent commit.
6167 (let ((commit "7a667b135983a1f3ad33d6db8514638e2a3bdfb3")
6168 (revision "2"))
6169 (package
6170 (name "emacs-ivy-rich")
6171 (version (git-version "0.1.4" revision commit))
6172 (source
6173 (origin
6174 (method git-fetch)
6175 (uri (git-reference
6176 (url "https://github.com/Yevgnen/ivy-rich.git")
6177 (commit commit)))
6178 (file-name (git-file-name name version))
6179 (sha256
6180 (base32 "1v5j6pak2j1wjw19y7rx9rhxif0bj2h47xyl2knfcl6fi4qiqm9y"))))
6181 (build-system emacs-build-system)
6182 (propagated-inputs
6183 `(("emacs-ivy" ,emacs-ivy)))
6184 (home-page "https://github.com/Yevgnen/ivy-rich")
6185 (synopsis "More friendly interface for @code{ivy}")
6186 (description
6187 "This package extends @code{ivy} by showing more information in the
6188 minibuffer for each candidate. It adds columns showing buffer modes, file
6189 sizes, docstrings, etc. If @code{emacs-all-the-icons} is installed, it can
6190 show icons as well.")
6191 (license license:gpl3+))))
6192
6193 (define-public emacs-avy
6194 (package
6195 (name "emacs-avy")
6196 (version "0.5.0")
6197 (source
6198 (origin
6199 (method git-fetch)
6200 (uri (git-reference
6201 (url "https://github.com/abo-abo/avy.git")
6202 (commit version)))
6203 (file-name (git-file-name name version))
6204 (sha256
6205 (base32 "09qdni1s74i5pv8741szl5g4ynj8fxn0x65qmwa9rmfkbimnc0fs"))))
6206 (build-system emacs-build-system)
6207 (arguments
6208 `(#:tests? #t
6209 #:test-command '("make" "test")))
6210 (home-page "https://github.com/abo-abo/avy")
6211 (synopsis "Tree-based completion for Emacs")
6212 (description
6213 "This package provides a generic completion method based on building a
6214 balanced decision tree with each candidate being a leaf. To traverse the tree
6215 from the root to a desired leaf, typically a sequence of @code{read-key} can
6216 be used.
6217
6218 In order for @code{read-key} to make sense, the tree needs to be visualized
6219 appropriately, with a character at each branch node. So this completion
6220 method works only for things that you can see on your screen, all at once,
6221 such as the positions of characters, words, line beginnings, links, or
6222 windows.")
6223 (license license:gpl3+)))
6224
6225 (define-public emacs-ace-window
6226 (package
6227 (name "emacs-ace-window")
6228 (version "0.10.0")
6229 (source
6230 (origin
6231 (method git-fetch)
6232 (uri (git-reference
6233 (url "https://github.com/abo-abo/ace-window.git")
6234 (commit version)))
6235 (file-name (git-file-name name version))
6236 (sha256
6237 (base32
6238 "0f3r40d5yxp2pm2j0nn86s29nqj8py0jxjbj50v4ci3hsd92d8jl"))))
6239 (build-system emacs-build-system)
6240 (propagated-inputs
6241 `(("emacs-avy" ,emacs-avy)))
6242 (home-page "https://github.com/abo-abo/ace-window")
6243 (synopsis "Quickly switch windows in Emacs")
6244 (description
6245 "@code{ace-window} is meant to replace @code{other-window}.
6246 In fact, when there are only two windows present, @code{other-window} is
6247 called. If there are more, each window will have its first character
6248 highlighted. Pressing that character will switch to that window.")
6249 (license license:gpl3+)))
6250
6251 (define-public emacs-iedit
6252 ;; Last release version was in 2016.
6253 (let ((commit "e2c100cdd67b7d82835d281ac2cd1bf4f374bc8f")
6254 (revision "1"))
6255 (package
6256 (name "emacs-iedit")
6257 (version (git-version "0.9.9.9" revision commit))
6258 (source
6259 (origin
6260 (method git-fetch)
6261 (uri (git-reference
6262 (url "https://github.com/victorhge/iedit.git")
6263 (commit commit)))
6264 (file-name (git-file-name name version))
6265 (sha256
6266 (base32 "0wr3w2id95wx2rma8n1ifjrv9rx37ly26ijc5zi58id0yrip3hnc"))))
6267 (build-system emacs-build-system)
6268 (home-page "https://www.emacswiki.org/emacs/Iedit")
6269 (synopsis "Edit multiple regions in the same way simultaneously")
6270 (description
6271 "This package is an Emacs minor mode and allows you to edit one
6272 occurrence of some text in a buffer (possibly narrowed) or region, and
6273 simultaneously have other occurrences edited in the same way.
6274
6275 You can also use Iedit mode as a quick way to temporarily show only the buffer
6276 lines that match the current text being edited. This gives you the effect of
6277 a temporary @code{keep-lines} or @code{occur}.")
6278 (license license:gpl3+))))
6279
6280 (define-public emacs-zoutline
6281 (package
6282 (name "emacs-zoutline")
6283 (version "0.2.0")
6284 (source
6285 (origin
6286 (method git-fetch)
6287 (uri (git-reference
6288 (url "https://github.com/abo-abo/zoutline")
6289 (commit version)))
6290 (sha256
6291 (base32
6292 "1w0zh6vs7klgivq5r030a82mcfg1zwic4x3fimyiqyg5n8p67hyx"))
6293 (file-name (git-file-name name version))))
6294 (build-system emacs-build-system)
6295 (home-page "https://github.com/abo-abo/zoutline")
6296 (synopsis "Simple outline library")
6297 (description
6298 "This library provides helpers for outlines. Outlines allow users to
6299 navigate code in a tree-like fashion.")
6300 (license license:gpl3+)))
6301
6302 (define-public emacs-lispy
6303 (package
6304 (name "emacs-lispy")
6305 (version "0.27.0")
6306 (home-page "https://github.com/abo-abo/lispy")
6307 (source (origin
6308 (method git-fetch)
6309 (uri (git-reference
6310 (url "https://github.com/abo-abo/lispy")
6311 (commit version)))
6312 (sha256
6313 (base32
6314 "1cm7f4pyl73f3vhkb7ah6bbbrj2sa7n0p31g09k7dy4zgx04bgw6"))
6315 (file-name (git-file-name name version))))
6316 (build-system emacs-build-system)
6317 (propagated-inputs
6318 `(("emacs-ace-window" ,emacs-ace-window)
6319 ("emacs-iedit" ,emacs-iedit)
6320 ("emacs-ivy" ,emacs-ivy)
6321 ("emacs-hydra" ,emacs-hydra)
6322 ("emacs-zoutline" ,emacs-zoutline)))
6323 (native-inputs
6324 `(("emacs-clojure-mode" ,emacs-clojure-mode)
6325 ("emacs-undercover" ,emacs-undercover)))
6326 (arguments
6327 `(#:include (cons* "^lispy-clojure\\.clj$"
6328 "^lispy-python\\.py$"
6329 %default-include)
6330 #:phases
6331 ;; XXX: one failing test involving python evaluation
6332 (modify-phases %standard-phases
6333 (add-before 'check 'make-test-writable
6334 (lambda _
6335 (make-file-writable "lispy-test.el")
6336 #t))
6337 (add-before 'check 'remove-python-eval-test
6338 (lambda _
6339 (emacs-batch-edit-file "lispy-test.el"
6340 `(progn
6341 (progn
6342 (goto-char (point-min))
6343 (re-search-forward
6344 "ert-deftest lispy-eval-python-str")
6345 (beginning-of-line)
6346 (kill-sexp))
6347 (basic-save-buffer)))
6348 #t)))
6349 #:tests? #t
6350 #:test-command '("make" "test")))
6351 (synopsis "Modal S-expression editing")
6352 (description
6353 "Due to the structure of Lisp syntax it's very rare for the programmer
6354 to want to insert characters right before \"(\" or right after \")\". Thus
6355 unprefixed printable characters can be used to call commands when the point is
6356 at one of these special locations. Lispy provides unprefixed keybindings for
6357 S-expression editing when point is at the beginning or end of an
6358 S-expression.")
6359 (license license:gpl3+)))
6360
6361 (define-public emacs-lispyville
6362 (let ((commit "d28b937f0cabd8ce61e2020fe9a733ca80d82c74")
6363 (revision "1"))
6364 (package
6365 (name "emacs-lispyville")
6366 (version (git-version "0.1" revision commit))
6367 (home-page "https://github.com/noctuid/lispyville")
6368 (source (origin
6369 (method git-fetch)
6370 (uri (git-reference (url home-page) (commit commit)))
6371 (sha256
6372 (base32
6373 "0f6srwj1qqkfkbmp5n5pjvi6gm7b7xav05p5hrs2i83rjrakzzqx"))
6374 (file-name (git-file-name name version))))
6375 (propagated-inputs
6376 `(("emacs-evil" ,emacs-evil)
6377 ("emacs-lispy" ,emacs-lispy)))
6378 (build-system emacs-build-system)
6379 (arguments
6380 `(#:phases
6381 ;; XXX: mysterious whitespace issue with one test
6382 (modify-phases %standard-phases
6383 (add-before 'check 'make-test-writable
6384 (lambda _
6385 (make-file-writable "lispyville-test.el")
6386 #t))
6387 (add-after 'make-test-writable 'remove-test
6388 (lambda _
6389 (emacs-batch-edit-file "lispyville-test.el"
6390 `(progn (progn (goto-char (point-min))
6391 (re-search-forward
6392 "ert-deftest lispyville-comment-and-clone-dwim")
6393 (beginning-of-line)
6394 (kill-sexp))
6395 (basic-save-buffer))))))
6396 #:tests? #t
6397 #:test-command '("make" "test")))
6398 (synopsis "Minor mode for integrating Evil with lispy")
6399 (description
6400 "LispyVille's main purpose is to provide a Lisp editing environment
6401 suited towards Evil users. It can serve as a minimal layer on top of lispy
6402 for better integration with Evil, but it does not require the use of lispy’s
6403 keybinding style. The provided commands allow for editing Lisp in normal
6404 state and will work even without lispy being enabled.")
6405 (license license:gpl3+))))
6406
6407 (define-public emacs-lpy
6408 (let ((commit "43b401fe15f0f0d01edb189378b9498121e9f766")
6409 (revision "3"))
6410 (package
6411 (name "emacs-lpy")
6412 (version (git-version "0.1.0" revision commit))
6413 (source
6414 (origin
6415 (method git-fetch)
6416 (uri (git-reference
6417 (url "https://github.com/abo-abo/lpy")
6418 (commit commit)))
6419 (sha256
6420 (base32
6421 "0xj1r7cn1rivaxhvawvmgx9fg3xilpfw4lkf2x2aqplr4s85ijas"))
6422 (file-name (git-file-name name version))))
6423 (propagated-inputs
6424 `(("emacs-zoutline" ,emacs-zoutline)
6425 ("emacs-lispy" ,emacs-lispy)))
6426 (build-system emacs-build-system)
6427 (home-page "https://github.com/abo-abo/lpy")
6428 (synopsis "Modal editing for Python")
6429 (description
6430 "This package provides a minor mode for Python that binds useful
6431 commands to unprefixed keys, such as @code{j} or @code{e}, under certain
6432 circumstances, and leaves the keys untouched outside of those situations,
6433 allowing unprefixed keys to insert their respective characters as expected.")
6434 (license license:gpl3+))))
6435
6436 (define-public emacs-clojure-mode
6437 (package
6438 (name "emacs-clojure-mode")
6439 (version "5.6.1")
6440 (source
6441 (origin
6442 (method git-fetch)
6443 (uri (git-reference
6444 (url "https://github.com/clojure-emacs/clojure-mode.git")
6445 (commit version)))
6446 (file-name (git-file-name name version))
6447 (sha256
6448 (base32 "1qadymqzs5fn1sb347xzfw8lqq6s85vvkh4kzm35m61g5i2lm86y"))))
6449 (build-system emacs-build-system)
6450 (native-inputs
6451 `(("emacs-dash" ,emacs-dash)
6452 ("emacs-s" ,emacs-s)
6453 ("ert-runner" ,emacs-ert-runner)))
6454 (arguments
6455 `(#:tests? #t
6456 #:test-command '("ert-runner")))
6457 (home-page "https://github.com/clojure-emacs/clojure-mode")
6458 (synopsis "Major mode for Clojure code")
6459 (description
6460 "This Emacs package provides font-lock, indentation, navigation and basic
6461 refactoring for the @uref{http://clojure.org, Clojure programming language}.
6462 It is recommended to use @code{clojure-mode} with paredit or smartparens.")
6463 (license license:gpl3+)))
6464
6465 (define-public emacs-epl
6466 (package
6467 (name "emacs-epl")
6468 (version "0.8")
6469 (source
6470 (origin
6471 (method git-fetch)
6472 (uri (git-reference
6473 (url "https://github.com/cask/epl.git")
6474 (commit version)))
6475 (file-name (git-file-name name version))
6476 (sha256
6477 (base32 "0sjxd5y5hxhrbgfkpwx6m724r3841b53hgc61a0g5zwispw5pmrr"))))
6478 (build-system emacs-build-system)
6479 (home-page "https://github.com/cask/epl")
6480 (synopsis "Emacs Package Library")
6481 (description
6482 "A package management library for Emacs, based on @code{package.el}.
6483
6484 The purpose of this library is to wrap all the quirks and hassle of
6485 @code{package.el} into a sane API.")
6486 (license license:gpl3+)))
6487
6488 (define-public emacs-counsel-projectile
6489 (package
6490 (name "emacs-counsel-projectile")
6491 (version "0.3.0")
6492 (source (origin
6493 (method git-fetch)
6494 (uri (git-reference
6495 (url "https://github.com/ericdanan/counsel-projectile")
6496 (commit version)))
6497 (file-name (git-file-name name version))
6498 (sha256
6499 (base32
6500 "1inc4ndl0ysfwvxk4avbgpj4qi9rc93da6476a5c81xmwpsv8wmq"))))
6501 (build-system emacs-build-system)
6502 (propagated-inputs
6503 `(("emacs-ivy" ,emacs-ivy)
6504 ("emacs-projectile" ,emacs-projectile)))
6505 (home-page "https://github.com/ericdanan/counsel-projectile")
6506 (synopsis "Enhance Projectile with Ivy")
6507 (description
6508 "This package uses Ivy to provide additional actions for Projectile
6509 commands and replacements for existing functions.")
6510 (license license:gpl3+)))
6511
6512 (define-public emacs-queue
6513 (package
6514 (name "emacs-queue")
6515 (version "0.2")
6516 (source (origin
6517 (method url-fetch)
6518 (uri (string-append "https://elpa.gnu.org/packages/queue-"
6519 version ".el"))
6520 (sha256
6521 (base32
6522 "0cx2848sqnnkkr4zisvqadzxngjyhmb36mh0q3if7q19yjjhmrkb"))))
6523 (build-system emacs-build-system)
6524 (home-page "http://www.dr-qubit.org/tags/computing-code-emacs.html")
6525 (synopsis "Queue data structure for Emacs")
6526 (description
6527 "This Emacs library provides queue data structure. These queues can be
6528 used both as a first-in last-out (FILO) and as a first-in first-out (FIFO)
6529 stack, i.e. elements can be added to the front or back of the queue, and can
6530 be removed from the front. This type of data structure is sometimes called an
6531 \"output-restricted deque\".")
6532 (license license:gpl3+)))
6533
6534 (define-public emacs-pkg-info
6535 (package
6536 (name "emacs-pkg-info")
6537 (version "0.6")
6538 (source
6539 (origin
6540 (method git-fetch)
6541 (uri (git-reference
6542 (url "https://github.com/lunaryorn/pkg-info.el.git")
6543 (commit version)))
6544 (file-name (git-file-name name version))
6545 (sha256
6546 (base32 "0nk12dcppdyhav6m6yf7abpywyd7amxd4237zsfd32w4zxsx39k1"))))
6547 (build-system emacs-build-system)
6548 (propagated-inputs `(("emacs-epl" ,emacs-epl)))
6549 (home-page "https://github.com/lunaryorn/pkg-info.el")
6550 (synopsis "Information about Emacs packages")
6551 (description
6552 "This library extracts information from the installed Emacs packages.")
6553 (license license:gpl3+)))
6554
6555 (define-public emacs-spinner
6556 (package
6557 (name "emacs-spinner")
6558 (version "1.7.3")
6559 (source (origin
6560 (method url-fetch)
6561 (uri (string-append "https://elpa.gnu.org/packages/spinner-"
6562 version ".el"))
6563 (sha256
6564 (base32
6565 "19kp1mmndbmw11sgvv2ggfjl4pyf5zrsbh3871f0965pw9z8vahd"))))
6566 (build-system emacs-build-system)
6567 (home-page "https://github.com/Malabarba/spinner.el")
6568 (synopsis "Emacs mode-line spinner for operations in progress")
6569 (description
6570 "This Emacs package adds spinners and progress-bars to the mode-line for
6571 ongoing operations.")
6572 (license license:gpl3+)))
6573
6574 (define-public emacs-sparql-mode
6575 (package
6576 (name "emacs-sparql-mode")
6577 (version "2.0.1")
6578 (source
6579 (origin
6580 (method git-fetch)
6581 (uri (git-reference
6582 (url "https://github.com/ljos/sparql-mode.git")
6583 (commit (string-append "v" version))))
6584 (file-name (git-file-name name version))
6585 (sha256
6586 (base32 "0ywhqk6n5k0l85zjwbnrivnvxjzqipqrggv06lify6yv18qmyl6s"))))
6587 (build-system emacs-build-system)
6588 (home-page "https://github.com/ljos/sparql-mode")
6589 (synopsis "SPARQL mode for Emacs")
6590 (description "This package provides a major mode for Emacs that provides
6591 syntax highlighting for SPARQL. It also provides a way to execute queries
6592 against a SPARQL HTTP endpoint, such as is provided by Fuseki. It is also
6593 possible to query other endpoints like DBPedia.")
6594 (license license:gpl3+)))
6595
6596 (define-public emacs-better-defaults
6597 (package
6598 (name "emacs-better-defaults")
6599 (version "0.1.3")
6600 (source
6601 (origin
6602 (method git-fetch)
6603 (uri (git-reference
6604 (url "https://github.com/technomancy/better-defaults")
6605 (commit version)))
6606 (file-name (git-file-name name version))
6607 (sha256
6608 (base32
6609 "1rxznx2l0cdpiz8mad8s6q17m1fngpgb1cki7ch6yh18r3qz8ysr"))))
6610 (build-system emacs-build-system)
6611 (home-page "https://github.com/technomancy/better-defaults")
6612 (synopsis "Better defaults for Emacs")
6613 (description
6614 "Better defaults attempts to address the most obvious deficiencies of the
6615 Emacs default configuration in uncontroversial ways that nearly everyone can
6616 agree upon.")
6617 (license license:gpl3+)))
6618
6619 (define-public emacs-undohist-el
6620 (let ((commit "d2239a5f736724ceb9e3b6bcaa86f4064805cda0")
6621 (revision "1"))
6622 (package
6623 (name "emacs-undohist-el")
6624 (version (git-version "0" revision commit))
6625 (source
6626 (origin
6627 (method git-fetch)
6628 (uri (git-reference
6629 (url "https://github.com/m2ym/undohist-el")
6630 (commit commit)))
6631 (file-name (git-file-name name version))
6632 (sha256
6633 (base32
6634 "1c0daw246ky7b1x5b8h55x79pl1pjqk1k348l487bdd8zdj4w9wx"))
6635 (patches
6636 (search-patches "emacs-undohist-ignored.patch"))))
6637 (build-system emacs-build-system)
6638 (home-page "https://github.com/m2ym/undohist-el")
6639 (synopsis "Save undo history between sessions")
6640 (description "This package allows persistent use of undo history for
6641 individual file buffers.")
6642 (license license:gpl3+))))
6643
6644 (define-public emacs-eprime
6645 (let ((commit "17a481af26496be91c07139a9bfc05cfe722506f"))
6646 (package
6647 (name "emacs-eprime")
6648 (version (string-append "20140513-" (string-take commit 7)))
6649 (source (origin
6650 (method url-fetch)
6651 (uri (string-append "https://raw.githubusercontent.com"
6652 "/AndrewHynes/eprime-mode/"
6653 commit "/eprime-mode.el"))
6654 (file-name (string-append "eprime-" version ".el"))
6655 (sha256
6656 (base32
6657 "0v68lggkyq7kbcr9zyi573m2g2x251xy3jadlaw8kx02l8krwq8d"))))
6658 (build-system emacs-build-system)
6659 (home-page "https://github.com/AndrewHynes/eprime-mode")
6660 (synopsis "E-prime checking mode for Emacs")
6661 (description "This package provides an E-prime checking mode for Emacs
6662 that highlights non-conforming text. The subset of the English language called
6663 E-Prime forbids the use of the \"to be\" form to strengthen your writing.")
6664 (license license:gpl3+))))
6665
6666 (define-public emacs-julia-mode
6667 ;; XXX: Upstream version remained stuck at 0.3. See
6668 ;; <https://github.com/JuliaEditorSupport/julia-emacs/issues/46>.
6669 (let ((commit "115d4dc8a07445301772da8376b232fa8c7168f4")
6670 (revision "1"))
6671 (package
6672 (name "emacs-julia-mode")
6673 (version (string-append "0.3-" revision "." (string-take commit 8)))
6674 (source
6675 (origin
6676 (method git-fetch)
6677 (uri (git-reference
6678 (url "https://github.com/JuliaEditorSupport/julia-emacs.git")
6679 (commit commit)))
6680 (file-name (git-file-name name version))
6681 (sha256
6682 (base32
6683 "1is4dcv6blslpzbjcg8l2jpxi8xj96q4cm0nxjxsyswpm8bw8ki0"))))
6684 (build-system emacs-build-system)
6685 (arguments
6686 `(#:tests? #t
6687 #:test-command '("emacs" "--batch"
6688 "-l" "julia-mode-tests.el"
6689 "-f" "ert-run-tests-batch-and-exit")))
6690 (home-page "https://github.com/JuliaEditorSupport/julia-emacs")
6691 (synopsis "Major mode for Julia")
6692 (description "This Emacs package provides a mode for the Julia
6693 programming language.")
6694 (license license:expat))))
6695
6696 (define-public emacs-smex
6697 (package
6698 (name "emacs-smex")
6699 (version "3.0")
6700 (source (origin
6701 (method url-fetch)
6702 (uri (string-append "https://raw.githubusercontent.com"
6703 "/nonsequitur/smex/" version "/smex.el"))
6704 (file-name (string-append "smex-" version ".el"))
6705 (sha256
6706 (base32
6707 "0ar310zx9k5y4i1vl2rawvi712xj9gx77160860jbs691p77cxqp"))))
6708 (build-system emacs-build-system)
6709 (home-page "https://github.com/nonsequitur/smex/")
6710 (synopsis "M-x interface with Ido-style fuzzy matching")
6711 (description
6712 "Smex is a M-x enhancement for Emacs. Built on top of Ido, it provides a
6713 convenient interface to your recently and most frequently used commands. And
6714 to all the other commands, too.")
6715 (license license:gpl3+)))
6716
6717 (define-public emacs-js2-mode
6718 (package
6719 (name "emacs-js2-mode")
6720 (version "20190219")
6721 (source
6722 (origin
6723 (method git-fetch)
6724 (uri (git-reference
6725 (url "https://github.com/mooz/js2-mode.git")
6726 (commit version)))
6727 (file-name (git-file-name name version))
6728 (sha256
6729 (base32 "0766bbr4piia9vfr4ivd2gwi8dxah654adv6h28ylz4q8xmfzm1b"))))
6730 (build-system emacs-build-system)
6731 (arguments
6732 `(#:tests? #t
6733 #:test-command '("make" "test")))
6734 (home-page "https://github.com/mooz/js2-mode/")
6735 (synopsis "Improved JavaScript editing mode for Emacs")
6736 (description
6737 "Js2-mode provides a JavaScript major mode for Emacs that is more
6738 advanced than the built-in javascript-mode. Features include accurate syntax
6739 highlighting using a recursive-descent parser, on-the-fly reporting of syntax
6740 errors and strict-mode warnings, smart line-wrapping within comments and
6741 strings, and code folding.")
6742 (license license:gpl3+)))
6743
6744 (define-public emacs-nodejs-repl
6745 (package
6746 (name "emacs-nodejs-repl")
6747 (version "0.2.2")
6748 (source (origin
6749 (method git-fetch)
6750 (uri (git-reference
6751 (url "https://github.com/abicky/nodejs-repl.el")
6752 (commit version)))
6753 (file-name (git-file-name name version))
6754 (sha256
6755 (base32
6756 "1kkj888k9x5n0i7xkia177gzsa84my3g8n0n7v65281cc4f1yhk5"))))
6757 (build-system emacs-build-system)
6758 (inputs
6759 `(("node" ,node)))
6760 (native-inputs
6761 `(("emacs-ert-expectations" ,emacs-ert-expectations)))
6762 (arguments
6763 `(#:phases
6764 (modify-phases %standard-phases
6765 (add-after 'unpack 'set-shell
6766 ;; Setting the SHELL environment variable is required for the tests
6767 ;; to find sh.
6768 (lambda _
6769 (setenv "SHELL" (which "sh"))
6770 #t))
6771 (add-after 'unpack 'configure
6772 (lambda* (#:key inputs outputs #:allow-other-keys)
6773 (let ((node (assoc-ref inputs "node")))
6774 ;; Specify the absolute file names of the various
6775 ;; programs so that everything works out-of-the-box.
6776 (make-file-writable "nodejs-repl.el")
6777 (emacs-substitute-variables
6778 "nodejs-repl.el"
6779 ("nodejs-repl-command"
6780 (string-append node "/bin/node")))))))
6781 #:tests? #t
6782 #:test-command '("emacs" "-Q" "--batch"
6783 "-L" "."
6784 "-l" "test/test.el"
6785 "-f" "ert-run-tests-batch-and-exit")))
6786 (home-page "https://github.com/abicky/nodejs-repl.el")
6787 (synopsis "Node.js REPL inside Emacs")
6788 (description
6789 "This program is derived from comint-mode and provides the following
6790 features:
6791
6792 @itemize
6793 @item TAB completion same as Node.js REPL
6794 @item file name completion in string
6795 @item incremental history search
6796 @end itemize")
6797 (license license:gpl3+)))
6798
6799 (define-public emacs-typescript-mode
6800 (package
6801 (name "emacs-typescript-mode")
6802 (version "0.3")
6803 (source (origin
6804 (method git-fetch)
6805 (uri (git-reference
6806 (url "https://github.com/ananthakumaran/typescript.el")
6807 (commit (string-append "v" version))))
6808 (file-name (git-file-name name version))
6809 (sha256
6810 (base32
6811 "002f1xfhq43fjaqliwrgxspryfahpa82va5dw3p8kwil2xwvc6mh"))))
6812 (build-system emacs-build-system)
6813 (home-page "https://github.com/ananthakumaran/typescript.el")
6814 (synopsis "Emacs major mode for editing Typescript code")
6815 (description
6816 "This is based on Karl Landstrom's barebones @code{typescript-mode}.
6817 This is much more robust and works with @code{cc-mode}'s comment
6818 filling (mostly). The modifications to the original @code{javascript.el} mode
6819 mainly consisted in replacing \"javascript\" with \"typescript\"
6820
6821 The main features of this Typescript mode are syntactic highlighting (enabled
6822 with @code{font-lock-mode} or @code{global-font-lock-mode}), automatic
6823 indentation and filling of comments and C preprocessor fontification.")
6824 (license license:gpl3+)))
6825
6826 (define-public emacs-tide
6827 (package
6828 (name "emacs-tide")
6829 (version "3.2.3")
6830 (source (origin
6831 (method git-fetch)
6832 (uri (git-reference
6833 (url "https://github.com/ananthakumaran/tide")
6834 (commit (string-append "v" version))))
6835 (file-name (git-file-name name version))
6836 (sha256
6837 (base32
6838 "19kjq4kr2j853p5qp1s79zxmrfprli82lsnphbrlp9vbnib28xyd"))))
6839 (build-system emacs-build-system)
6840 (propagated-inputs
6841 `(("emacs-dash" ,emacs-dash)
6842 ("emacs-s" ,emacs-s)
6843 ("emacs-flycheck" ,emacs-flycheck)
6844 ("emacs-typescript-mode" ,emacs-typescript-mode)))
6845 (home-page "https://github.com/ananthakumaran/tide")
6846 (synopsis "Typescript IDE for Emacs")
6847 (description
6848 "Tide is an Interactive Development Environment (IDE) for Emacs which
6849 provides the following features:
6850
6851 @itemize
6852 @item ElDoc
6853 @item Auto complete
6854 @item Flycheck
6855 @item Jump to definition, Jump to type definition
6856 @item Find occurrences
6857 @item Rename symbol
6858 @item Imenu
6859 @item Compile On Save
6860 @item Highlight Identifiers
6861 @item Code Fixes
6862 @item Code Refactor
6863 @item Organize Imports
6864 @end itemize")
6865 (license license:gpl3+)))
6866
6867 (define-public emacs-markdown-mode
6868 (package
6869 (name "emacs-markdown-mode")
6870 (version "2.3")
6871 (source (origin
6872 (method git-fetch)
6873 (uri (git-reference
6874 (url "https://github.com/jrblevin/markdown-mode.git")
6875 (commit (string-append "v" version))))
6876 (file-name (git-file-name name version))
6877 (sha256
6878 (base32
6879 "1zm1j4w0f3h01bmmpsv4j4mh6i13nnl8fcqlj2hsa1ncy1lgi8q7"))))
6880 (build-system emacs-build-system)
6881 (home-page "https://jblevins.org/projects/markdown-mode/")
6882 (synopsis "Emacs Major mode for Markdown files")
6883 (description
6884 "Markdown-mode is a major mode for editing Markdown-formatted text files
6885 in Emacs.")
6886 (license license:gpl3+)))
6887
6888 (define-public emacs-evil-markdown
6889 (let ((commit "46cd81b37991c4325fc24015a610f832b0ff995d")
6890 (revision "1"))
6891 (package
6892 (name "emacs-evil-markdown")
6893 (version (git-version "0.0.2" revision commit))
6894 (source (origin
6895 (method git-fetch)
6896 (uri (git-reference
6897 (url "https://github.com/Somelauw/evil-markdown.git")
6898 (commit commit)))
6899 (file-name (git-file-name name version))
6900 (sha256
6901 (base32
6902 "0mad8sp5y9vyk28595qygspnyh8bfmb1fbxjlw70qwc1kdn822n4"))))
6903 (build-system emacs-build-system)
6904 (propagated-inputs
6905 `(("emacs-markdown-mode" ,emacs-markdown-mode)
6906 ("emacs-evil" ,emacs-evil)))
6907 (home-page "http://jblevins.org/projects/evil-markdown/")
6908 (synopsis "Evil keybindings for @code{markdown-mode}")
6909 (description
6910 "This package provides custom text objects and bindings for
6911 @code{markdown-mode}.")
6912 (license license:gpl3+))))
6913
6914 (define-public emacs-edit-indirect
6915 (package
6916 (name "emacs-edit-indirect")
6917 (version "0.1.5")
6918 (source
6919 (origin
6920 (method git-fetch)
6921 (uri (git-reference
6922 (url "https://github.com/Fanael/edit-indirect")
6923 (commit version)))
6924 (file-name (git-file-name name version))
6925 (sha256
6926 (base32
6927 "0by1x53pji39fjrj5bd446kz831nv0vdgw2jqasbym4pc1p2947r"))))
6928 (build-system emacs-build-system)
6929 (home-page "https://github.com/Fanael/edit-indirect")
6930 (synopsis "Edit regions in separate buffers")
6931 (description "This package allows you to edit regions in separate buffers,
6932 like @code{org-edit-src-code} but for arbitrary regions.")
6933 (license license:gpl3+)))
6934
6935 (define-public emacs-projectile
6936 (package
6937 (name "emacs-projectile")
6938 (version "2.1.0")
6939 (source (origin
6940 (method url-fetch)
6941 (uri (string-append "https://raw.githubusercontent.com/bbatsov"
6942 "/projectile/v" version "/projectile.el"))
6943 (file-name (string-append "projectile-" version ".el"))
6944 (sha256
6945 (base32
6946 "1jj9wk91clyph3zmxkd7y7d6gdqmjd1vndhyq5fxp7i7dy013571"))))
6947 (build-system emacs-build-system)
6948 (propagated-inputs
6949 `(("emacs-dash" ,emacs-dash)
6950 ("emacs-pkg-info" ,emacs-pkg-info)))
6951 (home-page "https://github.com/bbatsov/projectile")
6952 (synopsis "Manage and navigate projects in Emacs easily")
6953 (description
6954 "This library provides easy project management and navigation. The
6955 concept of a project is pretty basic - just a folder containing special file.
6956 Currently git, mercurial and bazaar repos are considered projects by default.
6957 If you want to mark a folder manually as a project just create an empty
6958 .projectile file in it.")
6959 (license license:gpl3+)))
6960
6961 (define-public emacs-skeletor
6962 (let ((commit "47c5b761aee8452716c97a69949ac2f675affe13")
6963 (revision "1"))
6964 (package
6965 (name "emacs-skeletor")
6966 (version (git-version "1.6.1" revision commit))
6967 (source (origin
6968 (method git-fetch)
6969 (uri (git-reference
6970 (url "https://github.com/chrisbarrett/skeletor.el.git")
6971 (commit commit)))
6972 (file-name (git-file-name name version))
6973 (sha256
6974 (base32
6975 "12bdgykfh4mwsqdazxjdvha62h3q3v33159ypy91f6x59y01fi0n"))))
6976 (build-system emacs-build-system)
6977 (propagated-inputs
6978 `(("emacs-s" ,emacs-s)
6979 ("emacs-f" ,emacs-f)
6980 ("emacs-dash" ,emacs-dash)
6981 ("emacs-let-alist" ,emacs-let-alist)))
6982 (native-inputs
6983 `(("emacs-ert-runner" ,emacs-ert-runner)))
6984 (arguments
6985 `(#:include (cons "^project-skeletons\\/" %default-include)
6986 ;; XXX: one failing test involving initializing a git repo
6987 #:phases
6988 (modify-phases %standard-phases
6989 (add-before 'check 'make-test-writable
6990 (lambda _
6991 (make-file-writable "test/skeletor-test.el")
6992 #t))
6993 (add-before 'check 'remove-git-test
6994 (lambda _
6995 (emacs-batch-edit-file "test/skeletor-test.el"
6996 `(progn
6997 (progn
6998 (goto-char (point-min))
6999 (re-search-forward
7000 "ert-deftest initialises-git-repo")
7001 (beginning-of-line)
7002 (kill-sexp))
7003 (basic-save-buffer)))
7004 #t)))
7005 #:tests? #t
7006 #:test-command '("ert-runner")))
7007 (home-page "https://github.com/chrisbarrett/skeletor.el")
7008 (synopsis "Project skeletons for Emacs")
7009 (description "This package provides project templates and automates the
7010 mundane parts of setting up a new project, such as version control, licenses,
7011 and tooling.")
7012 (license license:gpl3+))))
7013
7014 (define-public emacs-elfeed
7015 (package
7016 (name "emacs-elfeed")
7017 (version "3.3.0")
7018 (source
7019 (origin
7020 (method git-fetch)
7021 (uri (git-reference
7022 (url "https://github.com/skeeto/elfeed.git")
7023 (commit version)))
7024 (file-name (git-file-name name version))
7025 (sha256
7026 (base32 "0j8a94val4ml7g1vcjgzk1w89h55sxfdrwnncmz6qbh1y2xsz8c5"))))
7027 (build-system emacs-build-system)
7028 (arguments
7029 `(#:tests? #t
7030 #:test-command '("make" "test")))
7031 (home-page "https://github.com/skeeto/elfeed")
7032 (synopsis "Atom/RSS feed reader for Emacs")
7033 (description
7034 "Elfeed is an extensible web feed reader for Emacs, supporting both Atom
7035 and RSS, with a user interface inspired by notmuch.")
7036 (license license:gpl3+)))
7037
7038 (define-public emacs-elfeed-org
7039 (let ((commit "77b6bbf222487809813de260447d31c4c59902c9"))
7040 (package
7041 (name "emacs-elfeed-org")
7042 (version (git-version "0.1" "1" commit))
7043 (source
7044 (origin
7045 (method git-fetch)
7046 (uri (git-reference
7047 (url "https://github.com/remyhonig/elfeed-org.git")
7048 (commit commit)))
7049 (file-name (git-file-name name version))
7050 (sha256
7051 (base32 "0a2ibka82xq1dhy2z7rd2y9zhcj8rna8357881yz49wf55ccgm53"))))
7052 (build-system emacs-build-system)
7053 (propagated-inputs
7054 `(("emacs-elfeed" ,emacs-elfeed)
7055 ("emacs-org" ,emacs-org)
7056 ("emacs-dash" ,emacs-dash)
7057 ("emacs-s" ,emacs-s)))
7058 (native-inputs
7059 `(("ert-runner" ,emacs-ert-runner)
7060 ("emacs-xtest" ,emacs-xtest)))
7061 (arguments
7062 `(#:tests? #t
7063 #:test-command '("ert-runner" "-L" "org-mode/lisp")
7064 #:phases
7065 (modify-phases %standard-phases
7066 (add-before 'check 'chmod
7067 (lambda _
7068 (chmod "test/fixture-mark-feed-ignore.org" #o644)
7069 #t)))))
7070 (home-page "https://github.com/remyhonig/elfeed-org")
7071 (synopsis "Configure Elfeed with an Org-mode file")
7072 (description
7073 "@code{elfeed-org} lets you manage your Elfeed subscriptions
7074 in Org-mode. Maintaining tags for all RSS feeds is cumbersome using
7075 the regular flat list, where there is no hierarchy and tag names are
7076 duplicated a lot. Org-mode makes the book keeping of tags and feeds
7077 much easier.")
7078 (license license:gpl3+))))
7079
7080 (define-public emacs-el-x
7081 (package
7082 (name "emacs-el-x")
7083 (version "0.3.1")
7084 (source (origin
7085 (method git-fetch)
7086 (uri (git-reference
7087 (url "https://github.com/sigma/el-x.git")
7088 (commit (string-append "v" version))))
7089 (file-name (git-file-name name version))
7090 (sha256
7091 (base32
7092 "1i6j44ssxm1xdg0mf91nh1lnprwsaxsx8vsrf720nan7mfr283h5"))))
7093 (build-system emacs-build-system)
7094 (arguments
7095 `(#:phases
7096 (modify-phases %standard-phases
7097 ;; Move the source files to the top level, which is included in
7098 ;; the EMACSLOADPATH.
7099 (add-after 'unpack 'move-source-files
7100 (lambda _
7101 (let ((el-files (find-files "./lisp" ".*\\.el$")))
7102 (for-each (lambda (f)
7103 (rename-file f (basename f)))
7104 el-files))
7105 #t)))))
7106 (home-page "https://github.com/sigma/el-x")
7107 (synopsis "Emacs Lisp extensions")
7108 (description "command@{emacs-el-x} defines the @code{dflet} macro to
7109 provide the historic behavior of @code{flet}, as well as
7110 @code{declare-function} stub for older Emacs.")
7111 (license license:gpl2+)))
7112
7113 (define-public emacs-mocker
7114 (package
7115 (name "emacs-mocker")
7116 (version "0.3.1")
7117 (source (origin
7118 (method git-fetch)
7119 (uri (git-reference
7120 (url "https://github.com/sigma/mocker.el.git")
7121 (commit (string-append "v" version))))
7122 (file-name (git-file-name name version))
7123 (sha256
7124 (base32
7125 "1lav7am41v63xgavq8pr88y828jmd1cxd4prjq7jlbxm6nvrwxh2"))))
7126 (build-system emacs-build-system)
7127 (arguments
7128 `(#:tests? #t
7129 #:test-command '("ert-runner")))
7130 (native-inputs
7131 `(("ert-runner" ,emacs-ert-runner)))
7132 (propagated-inputs
7133 `(("emacs-el-x" ,emacs-el-x)))
7134 (home-page "https://github.com/sigma/mocker.el")
7135 (synopsis "Mocking framework for Emacs Lisp")
7136 (description "Mocker.el is a framework for writing tests in Emacs Lisp.
7137 It uses regular Lisp rather than a domain specific language (DSL), which
7138 maximizes flexibility (at the expense of conciseness).")
7139 (license license:gpl2+)))
7140
7141 (define-public emacs-find-file-in-project
7142 (package
7143 (name "emacs-find-file-in-project")
7144 (version "5.7.7")
7145 (source (origin
7146 (method git-fetch)
7147 (uri (git-reference
7148 (url "https://github.com/technomancy/find-file-in-project.git")
7149 (commit version)))
7150 (file-name (git-file-name name version))
7151 (sha256
7152 (base32
7153 "1skjbh7m0cck2rwmgzrrds51gipqf1jqghyfx15drc1n6kwivx3h"))))
7154 (build-system emacs-build-system)
7155 (arguments
7156 `(#:tests? #t
7157 #:test-command '("ert-runner" "tests")))
7158 (native-inputs
7159 `(("ert-runner" ,emacs-ert-runner)))
7160 (home-page "https://github.com/technomancy/find-file-in-project")
7161 (synopsis "File/directory finder for Emacs")
7162 (description "@code{find-file-in-project} finds files or
7163 directories quickly in the current project. The project root is detected
7164 automatically when Git, Subversion or Mercurial are used. It also provides
7165 functions to assist in reviewing changes on files.")
7166 (license license:gpl3+)))
7167
7168 (define-public emacs-pyvenv
7169 (package
7170 (name "emacs-pyvenv")
7171 (version "1.21")
7172 (source (origin
7173 (method git-fetch)
7174 (uri (git-reference
7175 (url "https://github.com/jorgenschaefer/pyvenv.git")
7176 (commit (string-append "v" version))))
7177 (file-name (git-file-name name version))
7178 (sha256
7179 (base32
7180 "055sgk8zf4wb5nqsf3qasf5gg861zlb1831733f1qcrd2ij5gzxx"))))
7181 (build-system emacs-build-system)
7182 (arguments
7183 `(#:phases
7184 (modify-phases %standard-phases
7185 ;; This phase incorrectly attempts to substitute "activate" and fails
7186 ;; doing so.
7187 (delete 'patch-el-files))
7188 #:tests? #t
7189 #:test-command '("ert-runner")))
7190 (native-inputs
7191 `(("ert-runner" ,emacs-ert-runner)
7192 ("emacs-mocker" ,emacs-mocker)))
7193 (home-page "https://github.com/jorgenschaefer/pyvenv")
7194 (synopsis "Python virtual environment interface for Emacs")
7195 (description "pyvenv.el is a minor mode to support using Python virtual
7196 environments (virtualenv) inside Emacs.")
7197 (license license:gpl3+)))
7198
7199 (define-public emacs-highlight-indent-guides
7200 (let ((version "0.8.5") ; from package metadata
7201 (revision "0")
7202 (commit "c2c9de4d01edfb89609c91d4d7f1d81312015a2c"))
7203 (package
7204 (name "emacs-highlight-indent-guides")
7205 (version (git-version version revision commit))
7206 (source
7207 (origin
7208 (method git-fetch)
7209 (uri (git-reference
7210 (url "https://github.com/DarthFennec/highlight-indent-guides.git")
7211 (commit commit)))
7212 (file-name (git-file-name name version))
7213 (sha256
7214 (base32 "10chvqnmdmkx6i9sigqframr85ziyafiz44glwhvhjajfkv42ad2"))))
7215 (build-system emacs-build-system)
7216 (home-page
7217 "https://github.com/DarthFennec/highlight-indent-guides")
7218 (synopsis "Minor mode to highlight indentation")
7219 (description
7220 "This package provides a minor mode to highlight indentation levels via
7221 font-lock. Indent widths are dynamically discovered, which means this
7222 correctly highlights in any mode, regardless of indent width, even in
7223 languages with non-uniform indentation such as Haskell. This mode works
7224 properly around hard tabs and mixed indentation and behaves well in large
7225 buffers.")
7226 (license license:expat))))
7227
7228 (define-public emacs-highlight-indentation
7229 ;; Last release version is from 2015.
7230 (let ((commit "d03803f2c06749c430443a3d24e039cbafc9c58f")
7231 (revision "1"))
7232 (package
7233 (name "emacs-highlight-indentation")
7234 (version (git-version "0.7.0" revision commit))
7235 (source
7236 (origin
7237 (method git-fetch)
7238 (uri (git-reference
7239 (url "https://github.com/antonj/Highlight-Indentation-for-Emacs.git")
7240 (commit commit)))
7241 (file-name (git-file-name name version))
7242 (sha256
7243 (base32
7244 "1jq0gf4kcx9hvrw40rnw5c2qynjpjw1vsjbi2i4lqjbsnfnxn4wz"))))
7245 (build-system emacs-build-system)
7246 (home-page "https://github.com/antonj/Highlight-Indentation-for-Emacs/")
7247 (synopsis "Highlighting indentation for Emacs")
7248 (description "This package provides two minor modes to highlight
7249 indentation guides in Emacs:
7250
7251 @enumerate
7252 @item @code{highlight-indentation-mode}, which displays guidelines
7253 indentation (space indentation only).
7254 @item @code{highlight-indentation-current-column-mode}, which displays
7255 guidelines for the current-point indentation (space indentation only).
7256 @end enumerate")
7257 (license license:gpl2+))))
7258
7259 (define-public emacs-elpy
7260 (package
7261 (name "emacs-elpy")
7262 (version "1.32.0")
7263 (source (origin
7264 (method git-fetch)
7265 (uri (git-reference
7266 (url "https://github.com/jorgenschaefer/elpy.git")
7267 (commit version)))
7268 (file-name (git-file-name name version))
7269 (sha256
7270 (base32
7271 "0f00mdnzx6xqwni86rgvaa6sfkwyh62xfbwz8qsar15j0j6vc2dj"))))
7272 (build-system emacs-build-system)
7273 (arguments
7274 `(#:include (cons* "^elpy/[^/]+\\.py$" "^snippets\\/" %default-include)
7275 #:phases
7276 (modify-phases %standard-phases
7277 ;; The default environment of the RPC uses Virtualenv to install
7278 ;; Python dependencies from PyPI. We don't want/need this in Guix.
7279 (add-before 'check 'do-not-use-virtualenv
7280 (lambda _
7281 (setenv "ELPY_TEST_DONT_USE_VIRTUALENV" "1")
7282 (substitute* "elpy-rpc.el"
7283 (("defcustom elpy-rpc-virtualenv-path 'default")
7284 "defcustom elpy-rpc-virtualenv-path 'system"))
7285 #t))
7286 (add-before 'check 'build-doc
7287 (lambda _
7288 (with-directory-excursion "docs"
7289 (invoke "make" "info" "man"))
7290 ;; Move .info file at the root so that it can installed by the
7291 ;; 'move-doc phase.
7292 (rename-file "docs/_build/texinfo/Elpy.info" "Elpy.info")
7293 #t))
7294 (add-after 'build-doc 'install-manpage
7295 (lambda* (#:key outputs #:allow-other-keys)
7296 (let* ((out (assoc-ref outputs "out"))
7297 (man1 (string-append out "/share/man/man1")))
7298 (mkdir-p man1)
7299 (copy-file "docs/_build/man/elpy.1"
7300 (string-append man1 "/elpy.1")))
7301 #t)))
7302 #:tests? #t
7303 #:test-command '("ert-runner")))
7304 (propagated-inputs
7305 `(("emacs-company" ,emacs-company)
7306 ("emacs-find-file-in-project" ,emacs-find-file-in-project)
7307 ("emacs-highlight-indentation" ,emacs-highlight-indentation)
7308 ("emacs-yasnippet" ,emacs-yasnippet)
7309 ("pyvenv" ,emacs-pyvenv)
7310 ("s" ,emacs-s)
7311 ;; The following are recommended Python dependencies that make Elpy
7312 ;; much more useful. Installing these avoids Elpy prompting to install them
7313 ;; from PyPI using pip.
7314 ("python-autopep8" ,python-autopep8)
7315 ("python-black" ,python-black)
7316 ("python-flake8" ,python-flake8)
7317 ("python-jedi" ,python-jedi)
7318 ("python-rope" ,python-rope)
7319 ("python-yapf" ,python-yapf)))
7320 (native-inputs
7321 `(("ert-runner" ,emacs-ert-runner)
7322 ("emacs-f" ,emacs-f)
7323 ("python" ,python-wrapper)
7324 ;; For documentation.
7325 ("python-sphinx" ,python-sphinx)
7326 ("texinfo" ,texinfo)))
7327 (home-page "https://github.com/jorgenschaefer/elpy")
7328 (synopsis "Python development environment for Emacs")
7329 (description "Elpy brings powerful Python editing to Emacs. It combines
7330 and configures a number of other packages written in Emacs Lisp as well as
7331 Python, together offering features such as navigation, documentation,
7332 completion, interactive development and more.")
7333 (license license:gpl3+)))
7334
7335 (define-public emacs-rainbow-delimiters
7336 (package
7337 (name "emacs-rainbow-delimiters")
7338 (version "2.1.4")
7339 (source (origin
7340 (method git-fetch)
7341 (uri (git-reference
7342 (url "https://github.com/Fanael/rainbow-delimiters.git")
7343 (commit version)))
7344 (file-name (git-file-name name version))
7345 (sha256
7346 (base32
7347 "1zr2669savnmkc68hiqsq9wccm6bs1j6jbmlac1xqh6nq7xgq36g"))))
7348 (build-system emacs-build-system)
7349 (home-page "https://github.com/Fanael/rainbow-delimiters")
7350 (arguments
7351 `(#:tests? #t
7352 #:test-command '("emacs" "-Q" "-batch"
7353 "-l" "rainbow-delimiters-test.el"
7354 "-f" "ert-run-tests-batch-and-exit")))
7355 (synopsis "Highlight brackets according to their depth")
7356 (description
7357 "Rainbow-delimiters is a \"rainbow parentheses\"-like mode for Emacs which
7358 highlights parentheses, brackets, and braces according to their depth. Each
7359 successive level is highlighted in a different color, making it easy to spot
7360 matching delimiters, orient yourself in the code, and tell which statements
7361 are at a given level.")
7362 (license license:gpl3+)))
7363
7364 (define-public emacs-rainbow-identifiers
7365 (package
7366 (name "emacs-rainbow-identifiers")
7367 (version "0.2.2")
7368 (source (origin
7369 (method url-fetch)
7370 (uri (string-append "https://raw.githubusercontent.com/Fanael"
7371 "/rainbow-identifiers/" version
7372 "/rainbow-identifiers.el"))
7373 (file-name (string-append "rainbow-identifiers-" version ".el"))
7374 (sha256
7375 (base32
7376 "0325abxj47k0g1i8nqrq70w2wr6060ckhhf92krv1s072b3jzm31"))))
7377 (build-system emacs-build-system)
7378 (home-page "https://github.com/Fanael/rainbow-identifiers")
7379 (synopsis "Highlight identifiers in source code")
7380 (description
7381 "Rainbow identifiers mode is an Emacs minor mode providing highlighting of
7382 identifiers based on their names. Each identifier gets a color based on a hash
7383 of its name.")
7384 (license license:bsd-2)))
7385
7386 (define-public emacs-rainbow-mode
7387 (package
7388 (name "emacs-rainbow-mode")
7389 (version "1.0.2")
7390 (source (origin
7391 (method url-fetch)
7392 (uri (string-append
7393 "https://elpa.gnu.org/packages/rainbow-mode-" version ".el"))
7394 (sha256
7395 (base32
7396 "1zfqj63sr07pdlwy7caz4fxsjhmbhh939n81z6jxq9xggm8ajxkd"))))
7397 (build-system emacs-build-system)
7398 (home-page "https://elpa.gnu.org/packages/rainbow-mode.html")
7399 (synopsis "Colorize color names in buffers")
7400 (description
7401 "This minor mode sets background color to strings that match color
7402 names, e.g. #0000ff is displayed in white with a blue background.")
7403 (license license:gpl3+)))
7404
7405 (define-public emacs-ryo-modal
7406 ;; Package has no release. Version is extracted from "Version:" keyword in
7407 ;; main file.
7408 (let ((commit "3a54312eea7023a86ca3f8eb3c03c872554bff2f")
7409 (revision "0"))
7410 (package
7411 (name "emacs-ryo-modal")
7412 (version (git-version "0.4" revision commit))
7413 (source
7414 (origin
7415 (method git-fetch)
7416 (uri (git-reference
7417 (url "https://github.com/Kungsgeten/ryo-modal.git")
7418 (commit commit)))
7419 (file-name (git-file-name name version))
7420 (sha256
7421 (base32 "1cyvp3bi6yhckbdnq98xvghmhdzghya5y9wd7hxjawibs75rza95"))))
7422 (build-system emacs-build-system)
7423 (home-page "http://github.com/Kungsgeten/ryo-modal")
7424 (synopsis "Emacs minor mode for defining modal editing environments")
7425 (description "RYO modal provides a convenient way of defining modal
7426 keybindings in Emacs, and does not come with any predefined bindings.")
7427 (license license:expat))))
7428
7429 (define-public emacs-visual-fill-column
7430 (package
7431 (name "emacs-visual-fill-column")
7432 (version "1.11")
7433 (source (origin
7434 (method url-fetch)
7435 (uri (string-append "https://codeload.github.com/joostkremers/"
7436 "visual-fill-column/tar.gz/" version))
7437 (file-name (string-append name "-" version ".tar.gz"))
7438 (sha256
7439 (base32
7440 "13jnviakp607zcms7f8ams56mr8wffnq1pghlc6fvqs39663pgwh"))))
7441 (build-system emacs-build-system)
7442 (home-page "https://github.com/joostkremers/visual-fill-column")
7443 (synopsis "Fill-column for visual-line-mode")
7444 (description
7445 "@code{visual-fill-column-mode} is a small Emacs minor mode that mimics
7446 the effect of @code{fill-column} in @code{visual-line-mode}. Instead of
7447 wrapping lines at the window edge, which is the standard behaviour of
7448 @code{visual-line-mode}, it wraps lines at @code{fill-column}. If
7449 @code{fill-column} is too large for the window, the text is wrapped at the
7450 window edge.")
7451 (license license:gpl3+)))
7452
7453 (define-public emacs-writeroom
7454 (package
7455 (name "emacs-writeroom")
7456 (version "3.9")
7457 (source
7458 (origin
7459 (method git-fetch)
7460 (uri (git-reference
7461 (url "https://github.com/joostkremers/writeroom-mode.git")
7462 (commit version)))
7463 (file-name (git-file-name name version))
7464 (sha256
7465 (base32
7466 "1nrppnfqsaki6myp58w8jhmzb94rzskh5n98glcn4ghr8sqnafi8"))))
7467 (build-system emacs-build-system)
7468 (propagated-inputs
7469 `(("emacs-visual-fill-column" ,emacs-visual-fill-column)))
7470 (home-page "https://github.com/joostkremers/writeroom-mode")
7471 (synopsis "Distraction-free writing for Emacs")
7472 (description
7473 "This package defines a minor mode for distraction-free writing. Some of
7474 the default effects include entering fullscreen, deleting other windows of the
7475 current frame, disabling the mode line, and adding margins to the buffer that
7476 restrict the text width to 80 characters.")
7477 (license license:bsd-3)))
7478
7479 (define-public emacs-ido-completing-read+
7480 (package
7481 (name "emacs-ido-completing-read+")
7482 (version "3.12")
7483 (source (origin
7484 (method url-fetch)
7485 (uri (string-append "https://raw.githubusercontent.com"
7486 "/DarwinAwardWinner/ido-ubiquitous/v"
7487 version "/ido-completing-read+.el"))
7488 (file-name (string-append "ido-completing-read+-" version ".el"))
7489 (sha256
7490 (base32
7491 "1cyalb0p7nfsm4n6n9q6rjmvn6adqc0fq8ybnlj3n41n289dkfjf"))))
7492 (build-system emacs-build-system)
7493 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
7494 (synopsis "Replacement for completing-read using ido")
7495 (description
7496 "The ido-completing-read+ function is a wrapper for ido-completing-read.
7497 Importantly, it detects edge cases that ordinary ido cannot handle and either
7498 adjusts them so ido can handle them, or else simply falls back to the standard
7499 Emacs completion function instead.")
7500 (license license:gpl3+)))
7501
7502 (define-public emacs-ido-ubiquitous
7503 (package
7504 (name "emacs-ido-ubiquitous")
7505 (version "3.12")
7506 (source (origin
7507 (method url-fetch)
7508 (uri (string-append "https://raw.githubusercontent.com"
7509 "/DarwinAwardWinner/ido-ubiquitous/v"
7510 version "/ido-ubiquitous.el"))
7511 (file-name (string-append "ido-ubiquitous-" version ".el"))
7512 (sha256
7513 (base32
7514 "197ypji0fb6jsdcq40rpnknwlh3imas6s6jbsvkfm0pz9988c3q2"))))
7515 (build-system emacs-build-system)
7516 (propagated-inputs
7517 `(("emacs-ido-completing-read+" ,emacs-ido-completing-read+)))
7518 (home-page "https://github.com/DarwinAwardWinner/ido-ubiquitous")
7519 (synopsis "Use ido (nearly) everywhere")
7520 (description
7521 "Ido-ubiquitous enables ido-style completion for almost every function
7522 that uses the standard completion function completing-read.")
7523 (license license:gpl3+)))
7524
7525 (define-public emacs-yaml-mode
7526 (package
7527 (name "emacs-yaml-mode")
7528 (version "0.0.14")
7529 (source (origin
7530 (method git-fetch)
7531 (uri (git-reference
7532 (url "https://github.com/yoshiki/yaml-mode.git")
7533 (commit version)))
7534 (file-name (git-file-name name version))
7535 (sha256
7536 (base32
7537 "18g064ardqi1f3xz7j6rs1x9fvv9sn0iq9vgid8c6qvxq7gwj00r"))))
7538 (build-system emacs-build-system)
7539 (home-page "https://github.com/yoshiki/yaml-mode")
7540 (synopsis "Major mode for editing YAML files")
7541 (description
7542 "Yaml-mode is an Emacs major mode for editing files in the YAML data
7543 serialization format. It was initially developed by Yoshiki Kurihara and many
7544 features were added by Marshall Vandegrift. As YAML and Python share the fact
7545 that indentation determines structure, this mode provides indentation and
7546 indentation command behavior very similar to that of python-mode.")
7547 (license license:gpl3+)))
7548
7549 (define-public emacs-gitlab-ci-mode
7550 (package
7551 (name "emacs-gitlab-ci-mode")
7552 (version "20190425.11.10")
7553 (source (origin
7554 (method git-fetch)
7555 (uri (git-reference
7556 (url "https://gitlab.com/joewreschnig/gitlab-ci-mode.git")
7557 (commit (string-append "v" version))))
7558 (file-name (git-file-name name version))
7559 (sha256
7560 (base32
7561 "1jkp9mnbiccqnha9zs646znqyqvy5jjb81kah7ghbkzdqqk2avm0"))))
7562 (build-system emacs-build-system)
7563 (propagated-inputs
7564 `(("emacs-yaml-mode" ,emacs-yaml-mode)))
7565 (home-page "https://gitlab.com/joewreschnig/gitlab-ci-mode/")
7566 (synopsis "Emacs mode for editing GitLab CI files")
7567 (description
7568 "@code{gitlab-ci-mode} is an Emacs major mode for editing GitLab CI
7569 files. It provides syntax highlighting and completion for keywords and
7570 special variables. An interface to GitLab’s CI file linter is also provided
7571 via @code{gitlab-ci-lint}.")
7572 (license license:gpl3+)))
7573
7574 (define-public emacs-gitlab-snip-helm
7575 (package
7576 (name "emacs-gitlab-snip-helm")
7577 (version "0.0.2")
7578 (source (origin
7579 (method git-fetch)
7580 (uri (git-reference
7581 (url "https://gitlab.com/sasanidas/gitlab-snip-helm.git")
7582 (commit version)))
7583 (file-name (git-file-name name version))
7584 (sha256
7585 (base32
7586 "1c5js19zyb1z61hapvbfcl5jhrjqij46cxldgqij6al0scw44dga"))))
7587 (build-system emacs-build-system)
7588 (propagated-inputs
7589 `(("emacs-dash" ,emacs-dash)
7590 ("emacs-helm" ,emacs-helm)))
7591 (home-page "https://gitlab.com/sasanidas/gitlab-snip-helm/")
7592 (synopsis "GitLab snippet API interaction for Emacs")
7593 (description "This package provides GitLab snippet API interaction for
7594 Emacs.")
7595 (license license:gpl3+)))
7596
7597 (define-public emacs-web-mode
7598 (package
7599 (name "emacs-web-mode")
7600 (version "17")
7601 (source
7602 (origin
7603 (method git-fetch)
7604 (uri (git-reference
7605 (url "https://github.com/fxbois/web-mode.git")
7606 (commit (string-append "v" version))))
7607 (file-name (git-file-name name version))
7608 (sha256
7609 (base32 "0jr5a1nzp8nbdng0k2fcaymiiv9ngrbknbrqaswgqn3akvx793jk"))))
7610 (build-system emacs-build-system)
7611 (synopsis "Major mode for editing web templates")
7612 (description "Web mode is an Emacs major mode for editing web templates
7613 aka HTML files embedding parts (CSS/JavaScript) and blocks (pre rendered by
7614 client/server side engines). Web mode is compatible with many template
7615 engines: PHP, JSP, ASP, Django, Twig, Jinja, Mustache, ERB, FreeMarker,
7616 Velocity, Cheetah, Smarty, CTemplate, Mustache, Blade, ErlyDTL, Go Template,
7617 Dust.js, React/JSX, Angularjs, ejs, etc.")
7618 (home-page "http://web-mode.org/")
7619 (license license:gpl3+)))
7620
7621 (define-public emacs-wgrep
7622 (package
7623 (name "emacs-wgrep")
7624 (version "2.3.2")
7625 (source (origin
7626 (method git-fetch)
7627 (uri (git-reference
7628 (url "https://github.com/mhayashi1120/Emacs-wgrep")
7629 (commit version)))
7630 (file-name (git-file-name name version))
7631 (sha256
7632 (base32
7633 "00cwqzb94jlq4mwgv8z7r3mn0a6mhq95z6j189kacq9g4473zh8d"))))
7634 (build-system emacs-build-system)
7635 (home-page "https://github.com/mhayashi1120/Emacs-wgrep")
7636 (synopsis "Edit a grep buffer and apply those changes to the files")
7637 (description
7638 "Emacs wgrep allows you to edit a grep buffer and apply those changes
7639 to the file buffer. Several backends are supported beside the classic grep:
7640 ack, ag, helm and pt.")
7641 (license license:gpl3+)))
7642
7643 (define-public emacs-helm
7644 (package
7645 (name "emacs-helm")
7646 (version "3.6.0")
7647 (source
7648 (origin
7649 (method git-fetch)
7650 (uri (git-reference
7651 (url "https://github.com/emacs-helm/helm.git")
7652 (commit (string-append "v" version))))
7653 (file-name (git-file-name name version))
7654 (sha256
7655 (base32 "0miq2q52pbicijp7pmj0widk252qixswywc03d120s4hya2b7vd7"))))
7656 (build-system emacs-build-system)
7657 (propagated-inputs
7658 `(("emacs-async" ,emacs-async)
7659 ("emacs-popup" ,emacs-popup)))
7660 (home-page "https://emacs-helm.github.io/helm/")
7661 (synopsis "Incremental completion and selection narrowing
7662 framework for Emacs")
7663 (description "Helm is incremental completion and selection narrowing
7664 framework for Emacs. It will help steer you in the right direction when
7665 you're looking for stuff in Emacs (like buffers, files, etc). Helm is a fork
7666 of @code{anything.el} originally written by Tamas Patrovic and can be
7667 considered to be its successor. Helm sets out to clean up the legacy code in
7668 @code{anything.el} and provide a cleaner, leaner and more modular tool, that's
7669 not tied in the trap of backward compatibility.")
7670 (license license:gpl3+)))
7671
7672 (define-public emacs-helm-org
7673 (let ((commit "8457e1e46227bf87726e05c42cec5a4b51c2ef7b")
7674 (revision "3"))
7675 (package
7676 (name "emacs-helm-org")
7677 (version (git-version "1.0" revision commit))
7678 (source
7679 (origin
7680 (method git-fetch)
7681 (uri (git-reference
7682 (url "https://github.com/emacs-helm/helm-org.git")
7683 (commit commit)))
7684 (file-name (git-file-name name version))
7685 (sha256
7686 (base32 "0kcjhwwi492n9m2w894hvdavfvhj45zygy7bwvx103wvpay5h6h6"))))
7687 (build-system emacs-build-system)
7688 (propagated-inputs
7689 `(("emacs-helm" ,emacs-helm)))
7690 (home-page "https://github.com/emacs-helm/helm-org")
7691 (synopsis "Helm interface to the Silver Searcher")
7692 (description
7693 "This package provides a frontend for grepping tools like ag and ack,
7694 as well as features for editing search results.")
7695 (license license:gpl3+))))
7696
7697 (define-public emacs-helm-swoop
7698 (package
7699 (name "emacs-helm-swoop")
7700 (version "2.0.0")
7701 (source
7702 (origin
7703 (method git-fetch)
7704 (uri (git-reference
7705 (url "https://github.com/emacsorphanage/helm-swoop.git")
7706 (commit version)))
7707 (file-name (git-file-name name version))
7708 (sha256
7709 (base32 "0k0ns92g45x8dbymqpl6ylk5mj3wiw2h03f48q5cy1z8in0c4rjd"))))
7710 (build-system emacs-build-system)
7711 (propagated-inputs
7712 `(("emacs-helm" ,emacs-helm)))
7713 (home-page "https://github.com/emacsorphanage/helm-swoop")
7714 (synopsis "Filter and jump to lines in an Emacs buffer using Helm")
7715 (description
7716 "This package builds on the Helm interface to provide several commands
7717 for search-based navigation of buffers.")
7718 (license license:gpl2+)))
7719
7720 (define-public emacs-helm-ag
7721 (package
7722 (name "emacs-helm-ag")
7723 (version "0.59")
7724 (source
7725 (origin
7726 (method git-fetch)
7727 (uri (git-reference
7728 (url "https://github.com/syohex/emacs-helm-ag.git")
7729 (commit version)))
7730 (file-name (git-file-name name version))
7731 (sha256
7732 (base32 "0vsz2b5qw4qahlf74059z4p1grinhfz28f0psw4c3qf4jasv3b9j"))))
7733 (build-system emacs-build-system)
7734 (propagated-inputs
7735 `(("emacs-helm" ,emacs-helm)))
7736 (home-page "https://github.com/syohex/emacs-helm-ag")
7737 (synopsis "Helm interface to the Silver Searcher")
7738 (description
7739 "This package provides a frontend for grepping tools like ag and ack,
7740 as well as features for editing search results.")
7741 (license license:gpl3+)))
7742
7743 ;; There hasn't been a tag or release since 2016, so we take the latest
7744 ;; commit.
7745 (define-public emacs-helm-projectile
7746 (let ((commit "5328b74dddcee8d1913803ca8167868831a07463")
7747 (version "0.14.0")
7748 (revision "1"))
7749 (package
7750 (name "emacs-helm-projectile")
7751 (version (git-version version revision commit))
7752 (source
7753 (origin
7754 (method git-fetch)
7755 (uri (git-reference
7756 (url "https://github.com/bbatsov/helm-projectile.git")
7757 (commit commit)))
7758 (file-name (git-file-name name version))
7759 (sha256
7760 (base32 "0a811cblrvc8llpv771b8dppgxs6bwjyvjy3qn2xns4nigvn93s0"))))
7761 (build-system emacs-build-system)
7762 (propagated-inputs
7763 `(("emacs-helm" ,emacs-helm)
7764 ("emacs-projectile" ,emacs-projectile)))
7765 (home-page "https://github.com/bbatsov/helm-projectile")
7766 (synopsis "Helm integration for Projectile")
7767 (description
7768 "This Emacs library provides a Helm interface for Projectile.")
7769 (license license:gpl3+))))
7770
7771 (define-public emacs-taskrunner
7772 (let ((commit "3afd4a546d42339543d3d4e51b175fc3e82b3358")
7773 (revision "1"))
7774 (package
7775 (name "emacs-taskrunner")
7776 (version (git-version "0.6" revision commit))
7777 (source
7778 (origin
7779 (method git-fetch)
7780 (uri (git-reference
7781 (url "https://github.com/emacs-taskrunner/emacs-taskrunner.git")
7782 (commit commit)))
7783 (file-name (git-file-name name version))
7784 (sha256
7785 (base32
7786 "1lkdvmjn3alhqxq2i64sdr977sbw3g0b2670d9bwyzi67qh0jxrv"))))
7787 (build-system emacs-build-system)
7788 (propagated-inputs
7789 `(("emacs-async" ,emacs-async)
7790 ("emacs-projectile" ,emacs-projectile)))
7791 (home-page "https://github.com/emacs-taskrunner/emacs-taskrunner")
7792 (synopsis "Retrieve tasks from various build systems and task-runners")
7793 (description "This package parses Makefiles and build-system files for
7794 multiple project types.")
7795 (license license:gpl3+))))
7796
7797 (define-public emacs-ivy-taskrunner
7798 (let ((commit "75d8d67cfe3c29663fe0f5508a887adf40ed5162")
7799 (revision "1"))
7800 (package
7801 (name "emacs-ivy-taskrunner")
7802 (version (git-version "0.9" revision commit))
7803 (source
7804 (origin
7805 (method git-fetch)
7806 (uri (git-reference
7807 (url "https://github.com/emacs-taskrunner/ivy-taskrunner.git")
7808 (commit commit)))
7809 (file-name (git-file-name name version))
7810 (sha256
7811 (base32
7812 "1wf4s4k0ap21f7g5w6128an8nsvbja7f5n889vcml5b6gjz058db"))))
7813 (build-system emacs-build-system)
7814 (propagated-inputs
7815 `(("emacs-ivy" ,emacs-ivy)
7816 ("emacs-taskrunner" ,emacs-taskrunner)
7817 ("emacs-projectile" ,emacs-projectile)))
7818 (home-page "https://github.com/emacs-taskrunner/ivy-taskrunner")
7819 (synopsis "Retrieve build-system tasks using Ivy")
7820 (description "This package provides an Ivy interface for selecting
7821 Makefile targets.")
7822 (license license:gpl3+))))
7823
7824 (define-public emacs-helm-taskrunner
7825 (let ((commit "1910dac19cbc7bd4fd08b0faf9affd455339fbea")
7826 (revision "1"))
7827 (package
7828 (name "emacs-helm-taskrunner")
7829 (version (git-version "0.9" revision commit))
7830 (source
7831 (origin
7832 (method git-fetch)
7833 (uri (git-reference
7834 (url "https://github.com/emacs-taskrunner/helm-taskrunner.git")
7835 (commit commit)))
7836 (file-name (git-file-name name version))
7837 (sha256
7838 (base32
7839 "182lmr858fx6rdhp1fy7kv8dvrhzcnxzwfck1q22s6xs8x85d5q7"))))
7840 (build-system emacs-build-system)
7841 (propagated-inputs
7842 `(("emacs-helm" ,emacs-helm)
7843 ("emacs-taskrunner" ,emacs-taskrunner)
7844 ("emacs-projectile" ,emacs-projectile)))
7845 (home-page "https://github.com/emacs-taskrunner/helm-taskrunner")
7846 (synopsis "Retrieve build-system tasks using Helm")
7847 (description "This package provides a Helm interface for selecting
7848 Makefile targets.")
7849 (license license:gpl3+))))
7850
7851 (define-public emacs-helm-make
7852 (let ((commit "feae8df22bc4b20705ea08ac9adfc2b43bb348d0")
7853 (revision "1"))
7854 (package
7855 (name "emacs-helm-make")
7856 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
7857 (source
7858 (origin
7859 (method git-fetch)
7860 (uri (git-reference
7861 (url "https://github.com/abo-abo/helm-make.git")
7862 (commit commit)))
7863 (file-name (git-file-name name version))
7864 (sha256
7865 (base32
7866 "1y2v77mmd1bfkkz51cnk1l0dg3lvvxc39wlamnm7wjns66dbvlam"))))
7867 (build-system emacs-build-system)
7868 (propagated-inputs
7869 `(("emacs-helm" ,emacs-helm)
7870 ("emacs-projectile" ,emacs-projectile)))
7871 (home-page "https://github.com/abo-abo/helm-make")
7872 (synopsis "Select a Makefile target with helm")
7873 (description "@code{helm-make} or @code{helm-make-projectile} will give
7874 you a @code{helm} selection of directory Makefile's targets. Selecting a
7875 target will call @code{compile} on it.")
7876 (license license:gpl3+))))
7877
7878 (define-public emacs-cider
7879 (package
7880 (name "emacs-cider")
7881 (version "0.23.0")
7882 (source
7883 (origin
7884 (method git-fetch)
7885 (uri (git-reference
7886 (url "https://github.com/clojure-emacs/cider.git")
7887 (commit (string-append "v" version))))
7888 (file-name (git-file-name name version))
7889 (sha256
7890 (base32
7891 "05yjkqc6d4grq9z5pxmv3anqh4zlhfg4v46jlccp6ynh030g7axs"))))
7892 (build-system emacs-build-system)
7893 (arguments
7894 '(#:exclude ; Don't exclude 'cider-test.el'.
7895 '("^\\.dir-locals\\.el$" "^test/")))
7896 (propagated-inputs
7897 `(("emacs-clojure-mode" ,emacs-clojure-mode)
7898 ("emacs-sesman" ,emacs-sesman)
7899 ("emacs-seq" ,emacs-seq)
7900 ("emacs-spinner" ,emacs-spinner)
7901 ("emacs-parseedn" ,emacs-parseedn)
7902 ("emacs-pkg-info" ,emacs-pkg-info)
7903 ("emacs-queue" ,emacs-queue)))
7904 (home-page "https://cider.mx/")
7905 (synopsis "Clojure development environment for Emacs")
7906 (description
7907 "CIDER (Clojure Interactive Development Environment that Rocks) aims to
7908 provide an interactive development experience similar to the one you'd get
7909 when programming in Emacs Lisp, Common Lisp (with SLIME or Sly), Scheme (with
7910 Geiser) and Smalltalk.
7911
7912 CIDER is the successor to the now deprecated combination of using SLIME +
7913 swank-clojure for Clojure development.
7914
7915 There are plenty of differences between CIDER and SLIME, but the core ideas
7916 are pretty much the same (and SLIME served as the principle inspiration for
7917 CIDER).")
7918 (license license:gpl3+)))
7919
7920 ;; There hasn't been a tag or release since 2016, so we take the latest
7921 ;; commit.
7922 (define-public emacs-sly
7923 (let ((commit "86a63df73360be51529806c7ed9b775b3f02284d")
7924 (revision "4"))
7925 (package
7926 (name "emacs-sly")
7927 (version (git-version "1.0.0" revision commit))
7928 (source
7929 (origin
7930 (method git-fetch)
7931 (uri (git-reference
7932 (url "https://github.com/joaotavora/sly.git")
7933 (commit commit)))
7934 (file-name (git-file-name name version))
7935 (sha256
7936 (base32
7937 "0sx6fdckcfcld41db0695svvlvllnfaazwx513686gnykwfd209n"))))
7938 (build-system emacs-build-system)
7939 (native-inputs
7940 `(("texinfo" ,texinfo)))
7941 (arguments
7942 `(#:include (cons* "^contrib\\/" "^lib\\/" "^slynk\\/" %default-include)
7943 #:phases
7944 ;; The package provides autoloads.
7945 (modify-phases %standard-phases
7946 (delete 'make-autoloads)
7947 (add-before 'install 'install-doc
7948 (lambda* (#:key outputs #:allow-other-keys)
7949 (let* ((out (assoc-ref outputs "out"))
7950 (info-dir (string-append out "/share/info"))
7951 (doc-dir (string-append out "/share/doc/"
7952 ,name "-" ,version))
7953 (doc-files '(;; "doc/sly-refcard.pdf" ; See sly-refcard.pdf below.
7954 "README.md" "NEWS.md" "PROBLEMS.md"
7955 "CONTRIBUTING.md")))
7956 (with-directory-excursion "doc"
7957 (substitute* "Makefile"
7958 (("infodir=/usr/local/info")
7959 (string-append "infodir=" info-dir))
7960 ;; Don't rebuild contributors.texi since we are not in
7961 ;; the git repo.
7962 (("contributors.texi: Makefile texinfo-tabulate.awk")
7963 "contributors.texi:"))
7964 (invoke "make" "html/index.html")
7965 (invoke "make" "sly.info")
7966 ;; TODO: We need minimal texlive with "preprint" package
7967 ;; (for fullpage.sty). (invoke "make" "sly-refcard.pdf")
7968 (install-file "sly.info" info-dir)
7969 (copy-recursively "html" (string-append doc-dir "/html")))
7970 (for-each (lambda (f)
7971 (install-file f doc-dir)
7972 (delete-file f))
7973 doc-files)
7974 (delete-file-recursively "doc")
7975 #t))))))
7976 (home-page "https://github.com/joaotavora/sly")
7977 (synopsis "Sylvester the Cat's Common Lisp IDE")
7978 (description
7979 "SLY is Sylvester the Cat's Common Lisp IDE. SLY is a fork of SLIME, and
7980 contains the following improvements over it:
7981
7982 @enumerate
7983 @item Completely redesigned REPL based on Emacs's own full-featured
7984 @code{comint.el}.
7985 @item Live code annotations via a new @code{sly-stickers} contrib.
7986 @item Consistent interactive button interface. Everything can be copied to
7987 the REPL.
7988 @item Multiple inspectors with independent history.
7989 @item Regexp-capable @code{M-x sly-apropos}.
7990 @item Contribs are first class SLY citizens and enabled by default.
7991 @item Use ASDF to loads contribs on demand.
7992 @end enumerate
7993
7994 SLY tracks SLIME's bugfixes and all its familiar features (debugger, inspector,
7995 xref, etc...) are still available, but with better integration.")
7996 (license license:gpl3+))))
7997
7998 (define-public emacs-sly-quicklisp
7999 (let ((commit "01ebe3976a244309f2e277c09206831135a0b66c")
8000 (revision "1"))
8001 (package
8002 (name "emacs-sly-quicklisp")
8003 (version (git-version "0.0.0" revision commit))
8004 (home-page "https://github.com/joaotavora/sly-quicklisp")
8005 (source
8006 (origin
8007 (method git-fetch)
8008 (uri (git-reference
8009 (url home-page)
8010 (commit commit)))
8011 (file-name (git-file-name name version))
8012 (sha256
8013 (base32
8014 "1vfqmvayf35g6y3ljsm3rlzv5jm50qikhh4lv2zkkswj6gkkb1cv"))))
8015 (build-system emacs-build-system)
8016 (propagated-inputs
8017 `(("emacs-sly" ,emacs-sly)))
8018 (arguments
8019 `(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
8020 #:phases
8021 ;; The package provides autoloads.
8022 (modify-phases %standard-phases
8023 (delete 'make-autoloads)
8024 (delete 'enable-autoloads-compilation))))
8025 (synopsis "Quicklisp support for SLY")
8026 (description
8027 "@command{sly-quicklisp} is an external contrib for SLY that provides a
8028 sly-quickload command that prompts the user for a package to install. ")
8029 (license license:gpl3+))))
8030
8031 (define-public emacs-sly-asdf
8032 (let ((commit "32ce14994e8faee9321605cec36d156b02996c46")
8033 (revision "4"))
8034 (package
8035 (name "emacs-sly-asdf")
8036 (version (git-version "0.1.0" revision commit))
8037 (home-page "https://github.com/mmgeorge/sly-asdf")
8038 (source
8039 (origin
8040 (method git-fetch)
8041 (uri (git-reference
8042 (url home-page)
8043 (commit commit)))
8044 (file-name (git-file-name name version))
8045 (sha256
8046 (base32
8047 "09x8l37wwqw74xc2frwzbfdb1if8rb3szg5akdk3v2qhik4sm3dd"))))
8048 (build-system emacs-build-system)
8049 (propagated-inputs
8050 `(("emacs-sly" ,emacs-sly)
8051 ("emacs-popup" ,emacs-popup)))
8052 (arguments
8053 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)))
8054 (synopsis "ASDF contrib for SLY")
8055 (description
8056 "@command{sly-asdf} is an external contrib for SLY that provides
8057 additional support for working with ASDF projects.")
8058 (license license:gpl3+))))
8059
8060 (define-public emacs-sly-named-readtables
8061 (let ((commit "a5a42674ccffa97ccd5e4e9742beaf3ea719931f")
8062 (revision "1"))
8063 (package
8064 (name "emacs-sly-named-readtables")
8065 (version (git-version "0.1" revision commit))
8066 (home-page "https://github.com/joaotavora/sly-named-readtables")
8067 (source
8068 (origin
8069 (method git-fetch)
8070 (uri (git-reference
8071 (url home-page)
8072 (commit commit)))
8073 (file-name (git-file-name name version))
8074 (sha256
8075 (base32
8076 "16asd119rzqrlclps2q6yrkis8jy5an5xgzzqvb7jdyq39zxg54q"))))
8077 (build-system emacs-build-system)
8078 (propagated-inputs
8079 `(("emacs-sly" ,emacs-sly)))
8080 (arguments
8081 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
8082 #:phases (modify-phases %standard-phases
8083 ;; Byte compilation of the autoload file fails.
8084 (delete 'enable-autoloads-compilation))))
8085 (synopsis "Named-readtables support for SLY")
8086 (description
8087 "@command{sly-named-readtables} is an external contrib for SLY that
8088 enables different readtables to be active in different parts of the same
8089 file.")
8090 (license license:gpl3+))))
8091
8092 (define-public emacs-sly-macrostep
8093 (let ((commit "be2d24545092d164be1a91031d8881afd29c9ec0")
8094 (revision "1"))
8095 (package
8096 (name "emacs-sly-macrostep")
8097 (version (git-version "0.1" revision commit))
8098 (home-page "https://github.com/joaotavora/sly-macrostep")
8099 (source
8100 (origin
8101 (method git-fetch)
8102 (uri (git-reference
8103 (url home-page)
8104 (commit commit)))
8105 (file-name (git-file-name name version))
8106 (sha256
8107 (base32
8108 "0v8m3zkccpqd2l8m9340y672l2mm3mrry8422nva5kfvpcwdayqb"))))
8109 (build-system emacs-build-system)
8110 (propagated-inputs
8111 `(("emacs-sly" ,emacs-sly)
8112 ("emacs-macrostep" ,emacs-macrostep)))
8113 (arguments
8114 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
8115 #:phases
8116 ;; The package provides autoloads.
8117 (modify-phases %standard-phases
8118 (delete 'make-autoloads)
8119 (delete 'enable-autoloads-compilation))))
8120 (synopsis "Expand Common Lisp macros inside source files with SLY")
8121 (description
8122 "@command{sly-macrostep} is a SLY contrib for expanding CL macros right
8123 inside the source file.")
8124 (license license:gpl3+))))
8125
8126 (define-public emacs-sly-package-inferred
8127 (let ((commit "800e71e2be631422277e2ec77e6d6f6ea20e95ef")
8128 (revision "1"))
8129 (package
8130 (name "emacs-sly-package-inferred")
8131 (version (git-version "0.1" revision commit))
8132 (home-page "https://github.com/40ants/sly-package-inferred")
8133 (source
8134 (origin
8135 (method git-fetch)
8136 (uri (git-reference
8137 (url home-page)
8138 (commit commit)))
8139 (file-name (git-file-name name version))
8140 (sha256
8141 (base32
8142 "1216idyp034nkqddhw4p53jkhhdxa6xnjjmsvijpf4rxqnfqvapg"))))
8143 (build-system emacs-build-system)
8144 (propagated-inputs
8145 `(("emacs-sly" ,emacs-sly)))
8146 (arguments
8147 '(#:include (cons* "\\.lisp$" "\\.asd$" %default-include)
8148 #:phases
8149 ;; The package provides autoloads.
8150 (modify-phases %standard-phases
8151 (delete 'make-autoloads))))
8152 (synopsis "Improved package inferred systems support for SLY")
8153 (description
8154 "@command{sly-package-inferred} is an external contrib for SLY that
8155 replaces its completion with a function which is better suited for systems
8156 using package inferred style.")
8157 (license license:gpl3+))))
8158
8159 (define-public emacs-lua-mode
8160 (let ((commit "1f596a93b3f1caadd7bba01030f8c179b029600b")
8161 (revision "1"))
8162 (package
8163 (name "emacs-lua-mode")
8164 (version (git-version "20191204" revision commit))
8165 (home-page "https://github.com/immerrr/lua-mode/")
8166 (source (origin
8167 (method git-fetch)
8168 (uri (git-reference
8169 (url home-page)
8170 (commit commit)))
8171 (file-name (git-file-name name version))
8172 (sha256
8173 (base32
8174 "0i4adlaik3qjx1wkb7rwk2clvj7ci2g8pm0siyb3yk90r6z5mspi"))))
8175 (build-system emacs-build-system)
8176 (arguments
8177 `(#:tests? #t
8178 #:test-command '("buttercup" "-l" "lua-mode.el")))
8179 (native-inputs
8180 `(("emacs-buttercup" ,emacs-buttercup)
8181 ("lua" ,lua)))
8182 (synopsis "Major mode for lua")
8183 (description
8184 "This Emacs package provides a mode for @uref{https://www.lua.org/,
8185 Lua programming language}.")
8186 (license license:gpl2+))))
8187
8188 (define-public emacs-ebuild-mode
8189 (package
8190 (name "emacs-ebuild-mode")
8191 (version "1.50")
8192 (source
8193 (origin
8194 (method url-fetch)
8195 (uri (string-append
8196 "https://dev.gentoo.org/~ulm/emacs/"
8197 "ebuild-mode-" version ".tar.xz"))
8198 (file-name (string-append name "-" version ".tar.xz"))
8199 (sha256
8200 (base32 "0bgi98vx6ahxijw69kfdiy3rkjdg7yi6k3bkjyasak5920m6fj1d"))))
8201 (build-system emacs-build-system)
8202 (arguments
8203 '(#:phases
8204 (modify-phases %standard-phases
8205 (add-after 'install 'install-doc
8206 (lambda* (#:key outputs #:allow-other-keys)
8207 (invoke "make" "ebuild-mode.info")
8208 (install-file "ebuild-mode.info"
8209 (string-append (assoc-ref outputs "out")
8210 "/share/info"))
8211 #t)))))
8212 (native-inputs
8213 `(("texinfo" ,texinfo)))
8214 (home-page "https://devmanual.gentoo.org")
8215 (synopsis "Major modes for Gentoo package files")
8216 (description
8217 "This Emacs package provides modes for ebuild, eclass, eblit, GLEP42
8218 news items, openrc and runscripts.")
8219 (license license:gpl2+)))
8220
8221 (define-public emacs-evil
8222 (package
8223 (name "emacs-evil")
8224 (version "1.2.14")
8225 (source
8226 (origin
8227 (method git-fetch)
8228 (uri (git-reference
8229 (url "https://github.com/emacs-evil/evil")
8230 (commit version)))
8231 (file-name (git-file-name name version))
8232 (sha256
8233 (base32
8234 "1833w397xhac5g3pp25szr2gyvclxy91aw27azvbmsx94pyk2a3q"))))
8235 (arguments
8236 `(#:phases
8237 (modify-phases %standard-phases
8238 (add-before 'check 'fix-test-helpers
8239 (lambda _
8240 (substitute* "evil-test-helpers.el"
8241 (("\\(undo-tree-mode 1\\)") ""))
8242 #t)))))
8243 (build-system emacs-build-system)
8244 (home-page "https://github.com/emacs-evil/evil")
8245 (synopsis "Extensible Vi layer for Emacs")
8246 (description
8247 "Evil is an extensible vi layer for Emacs. It emulates the
8248 main features of Vim, and provides facilities for writing custom
8249 extensions.")
8250 (license license:gpl3+)))
8251
8252 (define-public emacs-evil-collection
8253 (let ((commit "a478a95a8a3665e40bdae3bab2a0519db6c1f29c")
8254 (revision "13"))
8255 (package
8256 (name "emacs-evil-collection")
8257 (version (git-version "0.0.3" revision commit))
8258 (source (origin
8259 (method git-fetch)
8260 (uri (git-reference
8261 (url "https://github.com/emacs-evil/evil-collection")
8262 (commit commit)))
8263 (file-name (git-file-name name version))
8264 (sha256
8265 (base32
8266 "15ii5lw6hs4yyl22yyzfwzagdma2sman4rm5gq4m9773g4ava515"))))
8267 (build-system emacs-build-system)
8268 (propagated-inputs
8269 `(("emacs-evil" ,emacs-evil)
8270 ("emacs-annalist" ,emacs-annalist)))
8271 (arguments
8272 `(#:include (cons* "^modes\\/" %default-include)))
8273 (home-page "https://github.com/emacs-evil/evil-collection")
8274 (synopsis "Collection of Evil bindings for many major and minor modes")
8275 (description "This is a collection of Evil bindings for the parts of
8276 Emacs that Evil does not cover properly by default, such as @code{help-mode},
8277 @code{M-x calendar}, Eshell and more.")
8278 (license license:gpl3+))))
8279
8280 (define-public emacs-goto-chg
8281 (let ((commit "1829a13026c597e358f716d2c7793202458120b5")
8282 (version "1.7.3")
8283 (revision "1"))
8284 (package
8285 (name "emacs-goto-chg")
8286 (version (git-version version revision commit))
8287 (source
8288 (origin
8289 (method git-fetch)
8290 (uri (git-reference
8291 (url "https://github.com/emacs-evil/goto-chg")
8292 (commit commit)))
8293 (file-name (git-file-name name version))
8294 (sha256
8295 (base32
8296 "1y603maw9xwdj3qiarmf1bp13461f9f5ackzicsbynl0i9la3qki"))))
8297 (build-system emacs-build-system)
8298 (propagated-inputs
8299 `(("emacs-undo-tree" ,emacs-undo-tree)))
8300 (home-page "https://github.com/emacs-evil/goto-chg")
8301 (synopsis "Go to the last change in the Emacs buffer")
8302 (description
8303 "This package provides @code{M-x goto-last-change} command that goes to
8304 the point of the most recent edit in the current Emacs buffer. When repeated,
8305 go to the second most recent edit, etc. Negative argument, @kbd{C-u -}, is
8306 used for reverse direction.")
8307 (license license:gpl2+))))
8308
8309 (define-public emacs-janpath-evil-numbers
8310 (let ((commit "d988041c1fe6e941dc8d591390750b237f71f524")
8311 (version "0.5")
8312 (revision "1"))
8313 (package
8314 (name "emacs-janpath-evil-numbers")
8315 (version (git-version version revision commit))
8316 (source
8317 (origin
8318 (method git-fetch)
8319 (uri (git-reference
8320 (url "https://github.com/janpath/evil-numbers")
8321 (commit commit)))
8322 (file-name (git-file-name name version))
8323 (sha256
8324 (base32
8325 "16zixhxxcb83m82f2cfiardfn99j3w41v6vh1qk6j9pplrlfw70v"))))
8326 (build-system emacs-build-system)
8327 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
8328 (home-page "https://github.com/janpath/evil-numbers")
8329 (synopsis "Increment and decrement numeric literals")
8330 (description
8331 "This package provides functionality to search for a number up to the
8332 end of a line and increment or decrement it.")
8333 (license license:gpl3+))))
8334
8335 (define-public emacs-evil-owl
8336 (let ((commit "24c5f43df375194386344e69bc720ea3986c9510")
8337 (revision "3"))
8338 (package
8339 (name "emacs-evil-owl")
8340 (version (git-version "0.0.1" revision commit))
8341 (source
8342 (origin
8343 (method git-fetch)
8344 (uri (git-reference
8345 (url "https://github.com/mamapanda/evil-owl")
8346 (commit commit)))
8347 (file-name (git-file-name name version))
8348 (sha256
8349 (base32
8350 "0bqzch14whlmrcasakah3psrzswvkzd7mmi8hx5s64kfp29wbdhi"))))
8351 (build-system emacs-build-system)
8352 (propagated-inputs
8353 `(("emacs-evil" ,emacs-evil)))
8354 (arguments
8355 `(#:tests? #t
8356 #:test-command '("make" "test")))
8357 (home-page "https://github.com/mamapanda/evil-owl")
8358 (synopsis "Preview candidates when using Evil registers and marks")
8359 (description
8360 "This package supplements Evil's register- and mark-based commands with
8361 a popup window for previewing candidates.")
8362 (license license:gpl3+))))
8363
8364 (define-public emacs-evil-args
8365 (let ((commit "758ad5ae54ad34202064fec192c88151c08cb387")
8366 (revision "1"))
8367 (package
8368 (name "emacs-evil-args")
8369 (version (git-version "1.0" revision commit))
8370 (source
8371 (origin
8372 (method git-fetch)
8373 (uri (git-reference
8374 (url "https://github.com/wcsmith/evil-args.git")
8375 (commit commit)))
8376 (file-name (git-file-name name version))
8377 (sha256
8378 (base32
8379 "0k35glgsirc3cph8v5hhjrqfh4ndwh8a28qbr03y3jl8s453xcj7"))))
8380 (build-system emacs-build-system)
8381 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
8382 (home-page "https://github.com/wcsmith/evil-args")
8383 (synopsis "Motions and text objects for delimited arguments in Evil")
8384 (description
8385 "This package provides motions and text objects for delimited
8386 arguments, such as arguments separated by commas and semicolons.")
8387 (license license:expat))))
8388
8389 (define-public emacs-evil-escape
8390 (package
8391 (name "emacs-evil-escape")
8392 (version "3.14")
8393 (source
8394 (origin
8395 (method git-fetch)
8396 (uri
8397 (git-reference
8398 (url "https://github.com/syl20bnr/evil-escape")
8399 (commit (string-append "v" version))))
8400 (file-name (git-file-name name version))
8401 (sha256
8402 (base32 "0s8lmmm25qabicwaj9jybpbd8mkc62yl7jnhk1lpablydjkv3w2i"))))
8403 (propagated-inputs
8404 `(("emacs-evil" ,emacs-evil)))
8405 (build-system emacs-build-system)
8406 (home-page "https://github.com/syl20bnr/evil-escape")
8407 (synopsis "Escape from insert state and everything else in Emacs")
8408 (description
8409 "Evil escape provides a customizable key sequence to escape from insert
8410 state and everything else in Emacs.")
8411 (license license:gpl3+)))
8412
8413 (define-public emacs-evil-exchange
8414 (let ((commit "47691537815150715e64e6f6ec79be7746c96120")
8415 (version "0.41")
8416 (revision "1"))
8417 (package
8418 (name "emacs-evil-exchange")
8419 (version (git-version version revision commit))
8420 (source
8421 (origin
8422 (method git-fetch)
8423 (uri (git-reference
8424 (url "https://github.com/Dewdrops/evil-exchange")
8425 (commit commit)))
8426 (file-name (git-file-name name version))
8427 (sha256
8428 (base32
8429 "0bjpn4yqig17ddym6wqq5fm1b294q74hzcbj9a6gs97fqiwf88xa"))))
8430 (build-system emacs-build-system)
8431 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
8432 (native-inputs `(("emacs-ert-runner" ,emacs-ert-runner)))
8433 (arguments
8434 `(#:phases
8435 (modify-phases %standard-phases
8436 (add-before 'check 'fix-makefile
8437 (lambda _
8438 (substitute* "Makefile"
8439 (("cask exec ") ""))
8440 #t)))
8441 #:tests? #t
8442 #:test-command '("make" "test")))
8443 (home-page "https://github.com/Dewdrops/evil-exchange")
8444 (synopsis "Exchange text easily within Evil")
8445 (description
8446 "This package, a port of @code{vim-exchange}, provides an Evil operator
8447 for exchanging text.")
8448 (license license:gpl3+))))
8449
8450 (define-public emacs-evil-replace-with-register
8451 (let ((commit "91cc7bf21a94703c441cc9212214075b226b7f67")
8452 (version "0.1")
8453 (revision "1"))
8454 (package
8455 (name "emacs-evil-replace-with-register")
8456 (version (git-version version revision commit))
8457 (source
8458 (origin
8459 (method git-fetch)
8460 (uri (git-reference
8461 (url "https://github.com/Dewdrops/evil-ReplaceWithRegister")
8462 (commit commit)))
8463 (file-name (git-file-name name version))
8464 (sha256
8465 (base32
8466 "14rpn76qrf287s3y2agmddcxi27r226i53ixjvd694ss039g0r11"))))
8467 (build-system emacs-build-system)
8468 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
8469 (home-page "https://github.com/Dewdrops/evil-ReplaceWithRegister")
8470 (synopsis "Quickly replace text with the contents of a register")
8471 (description
8472 "This package provides an Evil operator for replacing text with the
8473 contents of a register.")
8474 (license license:gpl3+))))
8475
8476 (define-public emacs-evil-indent-plus
8477 (let ((commit "0c7501e6efed661242c3a20e0a6c79a6455c2c40")
8478 (version "1.0.0")
8479 (revision "1"))
8480 (package
8481 (name "emacs-evil-indent-plus")
8482 (version (git-version version revision commit))
8483 (source
8484 (origin
8485 (method git-fetch)
8486 (uri (git-reference
8487 (url "https://github.com/TheBB/evil-indent-plus")
8488 (commit commit)))
8489 (file-name (git-file-name name version))
8490 (sha256
8491 (base32
8492 "1g6r1ydscwjvmhh1zg4q3nap4avk8lb9msdqrh7dff6pla0r2qs6"))))
8493 (build-system emacs-build-system)
8494 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
8495 (home-page "https://github.com/TheBB/evil-indent-plus")
8496 (synopsis "Text objects based on indentation")
8497 (description
8498 "This package adds new text objects for @code{evil-mode} based on
8499 blocks having the same or higher indentation, including or excluding
8500 surrounding lines.")
8501 (license license:gpl2+))))
8502
8503 (define-public emacs-evil-text-object-python
8504 (let ((commit "9a064fe6475429145cbcc3b270fcc963b67adb15")
8505 (version "1.0.1")
8506 (revision "1"))
8507 (package
8508 (name "emacs-evil-text-object-python")
8509 (version (git-version version revision commit))
8510 (source
8511 (origin
8512 (method git-fetch)
8513 (uri (git-reference
8514 (url "https://github.com/wbolster/evil-text-object-python")
8515 (commit commit)))
8516 (file-name (git-file-name name version))
8517 (sha256
8518 (base32
8519 "074zpm6mmr1wfl6d5xdf8jk1fs4ccpbzf4ahhkwga9g71xiplszv"))))
8520 (build-system emacs-build-system)
8521 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
8522 (home-page "https://github.com/wbolster/evil-text-object-python")
8523 (synopsis "Text objects for Python")
8524 (description
8525 "This package provides @code{evil-mode} text objects for Python.")
8526 (license license:gpl3+))))
8527
8528 (define-public emacs-evil-lion
8529 (let ((commit "6b03593f5dd6e7c9ca02207f9a73615cf94c93ab")
8530 (revision "1"))
8531 (package
8532 (name "emacs-evil-lion")
8533 (version (git-version "0.0.2" revision commit))
8534 (source
8535 (origin
8536 (method git-fetch)
8537 (uri (git-reference
8538 (url "https://github.com/edkolev/evil-lion")
8539 (commit commit)))
8540 (file-name (git-file-name name version))
8541 (sha256
8542 (base32
8543 "1a162hynp0jcsn50c1w5a02mrw9w3q05c7lkqzqd25px3d0p772q"))))
8544 (build-system emacs-build-system)
8545 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
8546 (arguments
8547 `(#:tests? #t
8548 #:test-command '("make" "test")))
8549 (home-page "https://github.com/edkolev/evil-lion")
8550 (synopsis "Align operator for @code{evil-mode}")
8551 (description
8552 "This package, a port of @code{vim-lion}, provides an operator for
8553 aligning text objects based on separators.")
8554 (license license:gpl3+))))
8555
8556 (define-public emacs-evil-expat
8557 (let ((commit "f4fcd0aa3edc359adb5c986b5dd9188d220d84e2")
8558 (revision "1"))
8559 (package
8560 (name "emacs-evil-expat")
8561 (version (git-version "0.0.1" revision commit))
8562 (source
8563 (origin
8564 (method git-fetch)
8565 (uri (git-reference
8566 (url "https://github.com/edkolev/evil-expat")
8567 (commit commit)))
8568 (file-name (git-file-name name version))
8569 (sha256
8570 (base32
8571 "0872ix682hkdz0k8pn6sb54rqkx00rz5fxpd5j2snx406yagpaxz"))))
8572 (build-system emacs-build-system)
8573 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
8574 (arguments
8575 `(#:tests? #t
8576 #:test-command '("make" "test")))
8577 (home-page "https://github.com/edkolev/evil-expat")
8578 (synopsis "Extra @code{ex} commands for @code{evil-mode}")
8579 (description
8580 "This package provides additional commands for the @code{ex} command
8581 line, including functions for version control with Git and for copying and
8582 pasting into and from @code{tmux} paste buffers.")
8583 (license license:gpl3+))))
8584
8585 (define-public emacs-evil-nerd-commenter
8586 (package
8587 (name "emacs-evil-nerd-commenter")
8588 (version "3.3.8")
8589 (source
8590 (origin
8591 (method git-fetch)
8592 (uri (git-reference
8593 (url "https://github.com/redguardtoo/evil-nerd-commenter")
8594 (commit version)))
8595 (file-name (git-file-name name version))
8596 (sha256
8597 (base32
8598 "0qd5a89mzvdyhd8lm13iwp220vzpd6dajwx54frlc5bzsxdmg6vc"))))
8599 (build-system emacs-build-system)
8600 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
8601 (arguments
8602 `(#:tests? #t
8603 #:test-command '("make" "test")))
8604 (home-page "https://github.com/redguardtoo/evil-nerd-commenter")
8605 (synopsis "Comment and uncomment lines efficiently")
8606 (description
8607 "This package provides text objects and operators for comments within
8608 @code{evil-mode}.")
8609 (license license:gpl3+)))
8610
8611 (define-public emacs-evil-visual-replace
8612 (package
8613 (name "emacs-evil-visual-replace")
8614 (version "0.0.5")
8615 (source
8616 (origin
8617 (method git-fetch)
8618 (uri (git-reference
8619 (url "https://github.com/troyp/evil-visual-replace")
8620 (commit version)))
8621 (file-name (git-file-name name version))
8622 (sha256
8623 (base32
8624 "1gfyrq7xfzmzh3x8k5f08n027dlbwi0pkkxf9c39fkxp4jngibsz"))))
8625 (build-system emacs-build-system)
8626 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
8627 (home-page "https://github.com/troyp/evil-visual-replace")
8628 (synopsis "Replacement commands for @code{evil-mode} visual blocks")
8629 (description
8630 "This package provides versions of @code{query-replace} and
8631 @code{replace-regexp} that work for @code{evil-mode} visual blocks.")
8632 (license license:gpl2+)))
8633
8634 (define-public emacs-evil-visualstar
8635 (let ((commit "06c053d8f7381f91c53311b1234872ca96ced752")
8636 (version "0.0.2")
8637 (revision "1"))
8638 (package
8639 (name "emacs-evil-visualstar")
8640 (version (git-version version revision commit))
8641 (source
8642 (origin
8643 (method git-fetch)
8644 (uri (git-reference
8645 (url "https://github.com/bling/evil-visualstar")
8646 (commit commit)))
8647 (file-name (git-file-name name version))
8648 (sha256
8649 (base32
8650 "0mkbzw12fav945icibc2293m5haxqr3hzkyli2cf4ssk6yvn0x4c"))))
8651 (build-system emacs-build-system)
8652 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
8653 (home-page "https://github.com/bling/evil-visualstar")
8654 (synopsis "Instantly search using the visual selection")
8655 (description
8656 "This package provides @code{evil-mode} functions for using selected text
8657 to search.")
8658 (license license:gpl3+))))
8659
8660 (define-public emacs-monky
8661 (package
8662 (name "emacs-monky")
8663 (version "0.1")
8664 (source (origin
8665 (method git-fetch)
8666 (uri (git-reference
8667 (url "https://github.com/ananthakumaran/monky.git")
8668 (commit version)))
8669 (file-name (git-file-name name version))
8670 (sha256
8671 (base32
8672 "1fgn7al4zwz2k5wb5dy3byqg9lsrjk9fra341mxh5ma2pfwxjgps"))))
8673 (build-system emacs-build-system)
8674 (home-page "https://ananthakumaran.in/monky/index.html")
8675 (arguments
8676 `(#:tests? #t
8677 #:test-command '("emacs" "--batch"
8678 "-l" "test/monky-unit-test.el"
8679 "-f" "ert-run-tests-batch-and-exit")))
8680 (synopsis "Interactive interface for the Mercurial version control system")
8681 (description
8682 "Monky provides an Emacs interface for Mercurial (Hg). Using Monky, you
8683 can selectively commit files, view the diffs, and other things.")
8684 (license license:gpl3+)))
8685
8686 (define-public emacs-monroe
8687 (package
8688 (name "emacs-monroe")
8689 (version "0.3.1")
8690 (source
8691 (origin
8692 (method git-fetch)
8693 (uri (git-reference
8694 (url "https://github.com/sanel/monroe.git")
8695 (commit version)))
8696 (file-name (git-file-name name version))
8697 (sha256
8698 (base32 "101lfrykdbv37spkbw7zihhx26bc1lhjyxbanrcp9880bxj04jiy"))))
8699 (build-system emacs-build-system)
8700 (home-page "https://github.com/sanel/monroe")
8701 (synopsis "Clojure nREPL client for Emacs")
8702 (description
8703 "Monroe is a nREPL client for Emacs, focused on simplicity and easy
8704 distribution, primarily targeting Clojure users")
8705 (license license:gpl3+)))
8706
8707 (define-public emacs-orgalist
8708 (package
8709 (name "emacs-orgalist")
8710 (version "1.12")
8711 (source
8712 (origin
8713 (method url-fetch)
8714 (uri (string-append "https://elpa.gnu.org/packages/"
8715 "orgalist-" version ".el"))
8716 (sha256
8717 (base32 "1hwm7j0hbv2pg9w885ky1c9qga3grcfq8v216jv2ivkw8xzavysd"))))
8718 (build-system emacs-build-system)
8719 (home-page "https://elpa.gnu.org/packages/orgalist.html")
8720 (synopsis "Manage Org-like lists in non-Org buffers")
8721 (description "Orgalist writes and manages Org mode's plain lists in
8722 non-Org buffers. More specifically, it supports the syntax of Org mode for
8723 numbered, unnumbered, description items, checkboxes, and counter cookies.
8724
8725 The library also implements radio lists, i.e., lists written in Org syntax
8726 later translated into the host format, e.g., LaTeX or HTML.")
8727 (license license:gpl3+)))
8728
8729 (define-public emacs-writegood-mode
8730 (package
8731 (name "emacs-writegood-mode")
8732 (version "2.0.2")
8733 (home-page "https://github.com/bnbeckwith/writegood-mode")
8734 (source (origin
8735 (method git-fetch)
8736 (uri (git-reference
8737 (url home-page)
8738 (commit (string-append "v" version))))
8739 (sha256
8740 (base32
8741 "1nnjn1r669hvvzfycllwap4w04m8rfsk4nzcg8057m1f263kj31b"))
8742 (file-name (string-append name "-checkout"))))
8743 (build-system emacs-build-system)
8744 (synopsis "Polish up poor writing on the fly")
8745 (description
8746 "This minor mode tries to find and highlight problems with your writing
8747 in English as you type. It primarily detects \"weasel words\" and abuse of
8748 passive voice.")
8749 (license license:gpl3+)))
8750
8751 (define-public emacs-neotree
8752 (package
8753 (name "emacs-neotree")
8754 (version "0.5.2")
8755 (home-page "https://github.com/jaypei/emacs-neotree")
8756 (source (origin
8757 (method git-fetch)
8758 (uri (git-reference
8759 (url home-page)
8760 (commit version)))
8761 (sha256
8762 (base32
8763 "0hx72fq10772bbyqrj7mhhp02k26cccjxdadiqm1ykainhfmn1x0"))
8764 (file-name (git-file-name name version))))
8765 (build-system emacs-build-system)
8766 (synopsis "Folder tree view for Emacs")
8767 (description "This Emacs package provides a folder tree view.")
8768 (license license:gpl3+)))
8769
8770 (define-public emacs-org
8771 (package
8772 (name "emacs-org")
8773 ;; emacs-org-contrib inherits from this package. Please update it as
8774 ;; well.
8775 (version "9.3.6")
8776 (source
8777 (origin
8778 (method url-fetch)
8779 (uri (string-append "https://elpa.gnu.org/packages/org-" version ".tar"))
8780 (sha256
8781 (base32 "0jwpgfzjvf1hd3mx582pw86hysdryaqzp69hk6azi9kmq4bzk87d"))))
8782 (build-system emacs-build-system)
8783 (arguments
8784 `(#:phases
8785 (modify-phases %standard-phases
8786 (add-after 'install 'install-documentation
8787 (lambda* (#:key outputs #:allow-other-keys)
8788 (let* ((share (string-append (assoc-ref outputs "out") "/share"))
8789 (info-dir (string-append share "/info"))
8790 (doc-dir (string-append share "/doc/" ,name "-" ,version)))
8791 (install-file "org" info-dir)
8792 (install-file "orgcard.pdf" doc-dir))
8793 #t)))))
8794 (home-page "https://orgmode.org/")
8795 (synopsis "Outline-based notes management and organizer")
8796 (description "Org is an Emacs mode for keeping notes, maintaining TODO
8797 lists, and project planning with a fast and effective lightweight markup
8798 language. It also is an authoring system with unique support for literate
8799 programming and reproducible research.")
8800 (license license:gpl3+)))
8801
8802 (define-public emacs-org-contrib
8803 (package
8804 (inherit emacs-org)
8805 (name "emacs-org-contrib")
8806 (version "20200213")
8807 (source
8808 (origin
8809 (method url-fetch)
8810 (uri (string-append "https://orgmode.org/elpa/"
8811 "org-plus-contrib-" version ".tar"))
8812 (sha256
8813 (base32 "0g6rrrwplrifz4ip0jg638m4kvpvdg03hwnyghd813w0lm935mh5"))))
8814 (arguments
8815 `(#:modules ((guix build emacs-build-system)
8816 (guix build utils)
8817 (guix build emacs-utils)
8818 (ice-9 ftw)
8819 (srfi srfi-1))
8820 #:phases
8821 (modify-phases %standard-phases
8822 (add-after 'install 'delete-org-files
8823 (lambda* (#:key inputs outputs #:allow-other-keys)
8824 (let* ((out (assoc-ref outputs "out"))
8825 (org (assoc-ref inputs "org"))
8826 (contrib-files
8827 (map basename (find-files out)))
8828 (org+contrib-files
8829 (map basename (find-files org)))
8830 (duplicates (lset-intersection string=?
8831 contrib-files
8832 org+contrib-files)))
8833 (with-directory-excursion
8834 (string-append out "/share/emacs/site-lisp")
8835 (for-each delete-file duplicates))
8836 #t))))))
8837 (propagated-inputs
8838 `(("arduino-mode" ,emacs-arduino-mode)
8839 ("cider" ,emacs-cider)
8840 ("org" ,emacs-org)
8841 ("scel" ,emacs-scel)))
8842 (synopsis "Contributed packages to Org mode")
8843 (description "Org is an Emacs mode for keeping notes, maintaining TODO
8844 lists, and project planning with a fast and effective plain-text system.
8845
8846 This package is equivalent to org-plus-contrib, but only includes additional
8847 files that you would find in @file{contrib/} from the git repository.")))
8848
8849 (define-public emacs-flx
8850 (package
8851 (name "emacs-flx")
8852 (version "0.6.1")
8853 (source
8854 (origin
8855 (method git-fetch)
8856 (uri (git-reference
8857 (url "https://github.com/lewang/flx.git")
8858 (commit (string-append "v" version))))
8859 (sha256
8860 (base32
8861 "0sjybrcnb2sl33swy3q664vqrparajcl0m455gciiih2j87hwadc"))
8862 (file-name (git-file-name name version))))
8863 (build-system emacs-build-system)
8864 (home-page "https://github.com/lewang/flx")
8865 (synopsis "Fuzzy matching for Emacs")
8866 (description
8867 "Flx provides fuzzy matching for emacs a la sublime text.
8868 The sorting algorithm is a balance between word beginnings (abbreviation)
8869 and contiguous matches (substring). The longer the substring match,
8870 the higher it scores. This maps well to how we think about matching.
8871 Flx has support for ido (interactively do things) through flx-ido.")
8872 (license license:gpl3+)))
8873
8874 (define-public emacs-cyberpunk-theme
8875 (package
8876 (name "emacs-cyberpunk-theme")
8877 (version "1.21")
8878 (source
8879 (origin
8880 (method git-fetch)
8881 (uri (git-reference
8882 (url "https://github.com/n3mo/cyberpunk-theme.el/")
8883 (commit version)))
8884 (sha256
8885 (base32
8886 "05mfgr9aj7knn7niadv9p6z3qrfpq2lbbi2wxxx62xywim9maw2y"))
8887 (file-name (git-file-name name version))))
8888 (build-system emacs-build-system)
8889 (home-page "https://github.com/n3mo/cyberpunk-theme.el")
8890 (synopsis "Cyberpunk theme for Emacs built-in color theme support")
8891 (description
8892 "Cyberpunk color theme for the Emacs 24+ built-in color theme support
8893 known loosely as deftheme. Many mode-specific customizations are included.")
8894 (license license:gpl3+)))
8895
8896 (define-public emacs-danneskjold-theme
8897 (let* ((commit "8733d2fe8743e8a01826ea6d4430ef376c727e57")
8898 (revision "1"))
8899 (package
8900 (name "emacs-danneskjold-theme")
8901 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
8902 (home-page "https://github.com/rails-to-cosmos/danneskjold-theme")
8903 (source
8904 (origin
8905 (method git-fetch)
8906 (uri (git-reference
8907 (url home-page)
8908 (commit commit)))
8909 (file-name (git-file-name name version))
8910 (sha256
8911 (base32
8912 "0s6rbsb0y8i8m5b9xm4gw1p1cxsxdqnqxqqb638pygz9f76mbir1"))))
8913 (build-system emacs-build-system)
8914 (arguments
8915 `(#:phases
8916 (modify-phases %standard-phases
8917 (add-after 'unpack 'delete-screenshots
8918 (lambda _
8919 (delete-file-recursively "screenshots") #t)))))
8920 (synopsis "High-contrast Emacs theme")
8921 (description
8922 "@code{danneskjold-theme} is a high-contrast theme for Emacs.")
8923 (license license:gpl3+))))
8924
8925 (define-public emacs-dream-theme
8926 (let* ((commit "107a11d74365046f28a1802a2bdb5e69e4a7488b")
8927 (revision "1"))
8928 (package
8929 (name "emacs-dream-theme")
8930 (version (string-append "0.0.0-" revision "." (string-take commit 7)))
8931 (source
8932 (origin
8933 (method git-fetch)
8934 (uri (git-reference
8935 (url "https://github.com/djcb/dream-theme")
8936 (commit commit)))
8937 (file-name (git-file-name name version))
8938 (sha256
8939 (base32
8940 "0za18nfkq4xqm35k6006vsixcbmvmxqgma4iw5sw37h8vmcsdylk"))))
8941 (build-system emacs-build-system)
8942 (home-page "https://github.com/djcb/dream-theme")
8943 (synopsis "High-contrast Emacs theme")
8944 (description
8945 "@code{dream-theme} is a dark, clean theme for Emacs. It is inspired
8946 by zenburn, sinburn and similar themes, but slowly diverging from them.")
8947 (license license:gpl3+))))
8948
8949 (define-public emacs-auto-complete
8950 (package
8951 (name "emacs-auto-complete")
8952 (version "1.5.1")
8953 (source
8954 (origin
8955 (method git-fetch)
8956 (uri (git-reference
8957 (url "https://github.com/auto-complete/auto-complete.git")
8958 (commit (string-append "v" version))))
8959 (sha256
8960 (base32
8961 "04i9b11iksg6acn885wl3qgi5xpsm3yszlqmd2x21yhprndlz7gb"))
8962 (file-name (git-file-name name version))))
8963 (build-system emacs-build-system)
8964 (propagated-inputs
8965 `(("emacs-popup" ,emacs-popup)))
8966 (home-page "https://github.com/auto-complete/auto-complete")
8967 (synopsis "Intelligent auto-completion extension for Emacs")
8968 (description
8969 "Auto-Complete is an intelligent auto-completion extension for Emacs.
8970 It extends the standard Emacs completion interface and provides an environment
8971 that allows users to concentrate more on their own work. Its features are:
8972 a visual interface, reduce overhead of completion by using statistic method,
8973 extensibility.")
8974 (license license:gpl3+)))
8975
8976 (define-public emacs-nginx-mode
8977 (package
8978 (name "emacs-nginx-mode")
8979 (version "1.1.9")
8980 (source
8981 (origin
8982 (method git-fetch)
8983 (uri (git-reference
8984 (url "https://github.com/ajc/nginx-mode.git")
8985 (commit (string-append "v" version))))
8986 (file-name (git-file-name name version))
8987 (sha256
8988 (base32 "17dh5pr3gh6adrbqx588gimxbb2fr7iv2qrxv6r48w2727l344xs"))))
8989 (build-system emacs-build-system)
8990 (home-page "https://github.com/ajc/nginx-mode")
8991 (synopsis "Emacs major mode for editing nginx config files")
8992 (description "This package provides an Emacs major mode for
8993 editing nginx config files.")
8994 (license license:gpl2+)))
8995
8996 (define-public emacs-stream
8997 (let ((commit "a3f3da155a49c133e2692bd8789b35492bfdc4f7")
8998 (revision "1"))
8999 (package
9000 (name "emacs-stream")
9001 (version (git-version "2.2.4" revision commit))
9002 (source
9003 (origin
9004 (method git-fetch)
9005 (uri (git-reference
9006 (url "https://github.com/Emacsmirror/stream.git")
9007 (commit commit)))
9008 (file-name (git-file-name name version))
9009 (sha256
9010 (base32 "0aig0yjb9z752ijh0mzildjmh44j051inchga8qll01dr8wf7332"))))
9011 (build-system emacs-build-system)
9012 (arguments
9013 `(#:tests? #t
9014 #:test-command '("emacs" "--batch"
9015 "-l" "tests/stream-tests.el"
9016 "-f" "ert-run-tests-batch-and-exit")))
9017 (home-page "https://github.com/Emacsmirror/stream")
9018 (synopsis "Implementation of streams for Emacs")
9019 (description "This library provides an implementation of streams for Emacs.
9020 Streams are implemented as delayed evaluation of cons cells.")
9021 (license license:gpl3+))))
9022
9023 (define-public emacs-cl-print
9024 (let ((commit "1a70c553dfb04352afb5b8696fe0cef8acc8f991")
9025 (revision "1"))
9026 (package
9027 (name "emacs-cl-print")
9028 (version (git-version "1.0" revision commit))
9029 (source
9030 (origin
9031 (method git-fetch)
9032 (uri (git-reference
9033 (url "https://github.com/emacsmirror/cl-print.git")
9034 (commit commit)))
9035 (file-name (git-file-name name version))
9036 (sha256
9037 (base32 "164zbnsi5mssvcpy0158fm7fw5cmd1r5nkpn29fmd2b2scy3gm79"))))
9038 (build-system emacs-build-system)
9039 (home-page "https://github.com/emacsmirror/cl-print")
9040 (synopsis "CL-style generic printing")
9041 (description "This package provides a generic function,
9042 @code{cl-print-object}, to which the programmer can add any method they
9043 please.")
9044 (license license:gpl3+))))
9045
9046 (define-public emacs-el-search
9047 (let ((commit "07bed84dd8ae9e4c6c648834224b1d33fdbd51e0")
9048 (revision "2"))
9049 (package
9050 (name "emacs-el-search")
9051 (version (git-version "1.12.6.1" revision commit))
9052 (source
9053 (origin
9054 (method git-fetch)
9055 (uri (git-reference
9056 (url "https://github.com/emacsmirror/el-search.git")
9057 (commit commit)))
9058 (file-name (git-file-name name version))
9059 (sha256
9060 (base32 "10w1ldgijdhfsrazp0y3bm76jv5wvdn94k1yp0pmc2m1896b58ak"))))
9061 (build-system emacs-build-system)
9062 (inputs
9063 `(("emacs-stream" ,emacs-stream)
9064 ("emacs-cl-print" ,emacs-cl-print)))
9065 (home-page "https://github.com/emacsmirror/el-search")
9066 (synopsis "Expression based interactive search for emacs-lisp-mode")
9067 (description "This package provides expression based interactive search
9068 procedures for emacs-lisp-mode.")
9069 (license license:gpl3+))))
9070
9071 (define-public emacs-ht
9072 (package
9073 (name "emacs-ht")
9074 (version "2.2")
9075 (source
9076 (origin
9077 (method git-fetch)
9078 (uri (git-reference
9079 (url "https://github.com/Wilfred/ht.el.git")
9080 (commit version)))
9081 (file-name (git-file-name name version))
9082 (sha256
9083 (base32 "1p3qa7g0wa0wbviv2f8bda39cjys3naayk5xjm3nxxmqsyy8papx"))))
9084 (build-system emacs-build-system)
9085 (propagated-inputs `(("emacs-dash" ,emacs-dash)))
9086 (native-inputs
9087 `(("emacs-ert-runner" ,emacs-ert-runner)))
9088 (arguments
9089 `(#:tests? #t
9090 #:test-command '("ert-runner")))
9091 (home-page "https://github.com/Wilfred/ht.el")
9092 (synopsis "Hash table library for Emacs")
9093 (description
9094 "This package simplifies the use of hash tables in elisp. It also
9095 provides functions to convert hash tables from and to alists and plists.")
9096 (license license:gpl3+)))
9097
9098 (define-public emacs-log4e
9099 (package
9100 (name "emacs-log4e")
9101 (version "0.3.0")
9102 (source
9103 (origin
9104 (method git-fetch)
9105 (uri (git-reference
9106 (url "https://github.com/aki2o/log4e.git")
9107 (commit (string-append "v" version))))
9108 (file-name (git-file-name name version))
9109 (sha256
9110 (base32 "1l28n7a0v2zkknc70i1wn6qb5i21dkhfizzk8wcj28v44cgzk022"))))
9111 (build-system emacs-build-system)
9112 (arguments
9113 `(#:phases
9114 (modify-phases %standard-phases
9115 (add-after 'unpack 'remove-tests
9116 ;; Guile builder complains about null characters in some
9117 ;; strings of test files. Remove "test" directory (it is not
9118 ;; needed anyway).
9119 (lambda _
9120 (delete-file-recursively "test"))))))
9121 (home-page "https://github.com/aki2o/log4e")
9122 (synopsis "Logging framework for elisp")
9123 (description
9124 "This package provides a logging framework for elisp. It allows
9125 you to deal with multiple log levels.")
9126 (license license:gpl3+)))
9127
9128 (define-public emacs-gntp
9129 (package
9130 (name "emacs-gntp")
9131 (version "0.1")
9132 (source
9133 (origin
9134 (method git-fetch)
9135 (uri (git-reference
9136 (url "https://github.com/tekai/gntp.el.git")
9137 (commit (string-append "v" version))))
9138 (file-name (git-file-name name version))
9139 (sha256
9140 (base32 "1nvyjjjydrimpxy4cpg90si7sr8lmldbhlcm2mx8npklp9pn5y3a"))))
9141 (build-system emacs-build-system)
9142 (home-page "https://github.com/tekai/gntp.el")
9143 (synopsis "Growl Notification Protocol for Emacs")
9144 (description
9145 "This package implements the Growl Notification Protocol GNTP
9146 described at @uref{http://www.growlforwindows.com/gfw/help/gntp.aspx}.
9147 It is incomplete as it only lets you send but not receive
9148 notifications.")
9149 (license license:bsd-3)))
9150
9151 (define-public emacs-alert
9152 (package
9153 (name "emacs-alert")
9154 (version "1.3")
9155 (source
9156 (origin
9157 (method git-fetch)
9158 (uri (git-reference
9159 (url "https://github.com/jwiegley/alert.git")
9160 (commit (string-append "v" version))))
9161 (file-name (git-file-name name version))
9162 (sha256
9163 (base32 "0lc0p5cl4hfrzw1z2ghb11k1lvljn5m08jw5fmgwgxv667kwh49r"))))
9164 (build-system emacs-build-system)
9165 (propagated-inputs
9166 `(("emacs-gntp" ,emacs-gntp)
9167 ("emacs-log4e" ,emacs-log4e)))
9168 (home-page "https://github.com/jwiegley/alert")
9169 (synopsis "Growl-style notification system for Emacs")
9170 (description
9171 "Alert is a Growl-workalike for Emacs which uses a common notification
9172 interface and multiple, selectable \"styles\", whose use is fully
9173 customizable by the user.")
9174 (license license:gpl2+)))
9175
9176 (define-public emacs-zones
9177 (let ((commit "3169815c323966ff8e252b44e3558d6d045243fe")
9178 (revision "2"))
9179 (package
9180 (name "emacs-zones")
9181 (version (git-version "0" revision commit))
9182 (source
9183 (origin
9184 (method git-fetch)
9185 (uri (git-reference
9186 (url "https://github.com/emacsmirror/zones.git")
9187 (commit commit)))
9188 (file-name (git-file-name name version))
9189 (sha256
9190 (base32
9191 "039msns5596rz0my7fxpanpxwg1lkhpiibm9ppnlzaajx1hszbzl"))
9192 (patches
9193 (search-patches
9194 "emacs-zones-called-interactively.patch"))))
9195 (build-system emacs-build-system)
9196 (home-page "https://www.emacswiki.org/emacs/Zones")
9197 (synopsis "Define and act on multiple zones of buffer text")
9198 (description "Library @file{zones.el} lets you easily define and
9199 subsequently act on multiple zones of buffer text. You can think of this as
9200 enlarging the notion of region. In effect, it can remove the requirement of
9201 target text being a contiguous sequence of characters. A set of buffer zones
9202 is, in effect, a (typically) noncontiguous set of text.")
9203 (license license:gpl3+))))
9204
9205 (define-public emacs-mu4e-alert
9206 (package
9207 (name "emacs-mu4e-alert")
9208 (version "1.0")
9209 (source
9210 (origin
9211 (method git-fetch)
9212 (uri (git-reference
9213 (url "https://github.com/iqbalansari/mu4e-alert.git")
9214 (commit (string-append "v" version))))
9215 (file-name (git-file-name name version))
9216 (sha256
9217 (base32 "1nvsfbfsma59ilf7c3vjngnmx3aapwvvvaafdy5szm5r6lkicqvg"))))
9218 (build-system emacs-build-system)
9219 (propagated-inputs
9220 `(("emacs-alert" ,emacs-alert)
9221 ("emacs-s" ,emacs-s)
9222 ("emacs-ht" ,emacs-ht)
9223 ("mu" ,mu)))
9224 (home-page "https://github.com/iqbalansari/mu4e-alert")
9225 (synopsis "Desktop notification for mu4e")
9226 (description
9227 "This package provides desktop notifications for mu4e.
9228 Additionally it can display the number of unread emails in the
9229 mode-line.")
9230 (license license:gpl3+)))
9231
9232 (define-public emacs-mu4e-jump-to-list
9233 (let ((commit "358bba003543b49ffa266e503e54aebd0ebe614b")
9234 (revision "1"))
9235 (package
9236 (name "emacs-mu4e-jump-to-list")
9237 (version (git-version "1.0" revision commit))
9238 (source
9239 (origin
9240 (method git-fetch)
9241 (uri (git-reference
9242 (url "https://gitlab.com/wavexx/mu4e-jump-to-list.el.git")
9243 (commit commit)))
9244 (file-name (git-file-name name version))
9245 (sha256
9246 (base32
9247 "00y9nap61q1z2cdql4k9g7fgi2gdgd9iy5s5lzrd9a4agbx6r7sv"))))
9248 (build-system emacs-build-system)
9249 (propagated-inputs
9250 `(("mu" ,mu)))
9251 (home-page "https://gitlab.com/wavexx/mu4e-jump-to-list.el")
9252 (synopsis "Select and view mailing lists in mu4e")
9253 (description
9254 "@code{mu4e-jump-to-list} allows you to select and view mailing lists
9255 automatically using existing List-ID headers in your mu database. Just press
9256 \"l\" in the headers view and any mailing list you've subscribed to will be
9257 automatically discovered and presented in recency order.")
9258 (license license:gpl3+))))
9259
9260 (define-public emacs-mu4e-patch
9261 (let ((commit "522da46c1653b1cacc79cde91d6534da7ae9517d")
9262 (revision "1"))
9263 (package
9264 (name "emacs-mu4e-patch")
9265 (version (git-version "0.1.0" revision commit))
9266 (source (origin
9267 (method git-fetch)
9268 (uri (git-reference
9269 (url "https://github.com/seanfarley/mu4e-patch")
9270 (commit commit)))
9271 (file-name (git-file-name name version))
9272 (sha256
9273 (base32
9274 "10lzf3b70pk6rzdrgx0ww0gc94v0ydh9zj1gbsa20xw27ds7hmfn"))))
9275 (build-system emacs-build-system)
9276 (propagated-inputs
9277 `(("mu" ,mu)))
9278 (home-page "https://github.com/seanfarley/mu4e-patch")
9279 (synopsis "Colorize patch-like emails in mu4e")
9280 (description
9281 "Extension for mu4e to colorize patch-like emails with diff-mode.
9282 This is based on Frank Terbeck's @code{gnus-article-treat-patch.el} but has
9283 been adapted to work with mu4e.")
9284 (license license:gpl3+))))
9285
9286 (define-public emacs-pretty-mode
9287 (package
9288 (name "emacs-pretty-mode")
9289 (version "2.0.3")
9290 (source
9291 (origin
9292 (method git-fetch)
9293 (uri (git-reference
9294 (url "https://github.com/akatov/pretty-mode/")
9295 (commit version)))
9296 (file-name (git-file-name name version))
9297 (sha256
9298 (base32
9299 "013fig9i4fyx16krp2vfv953p3rwdzr38zs6i50af4pqz4vrcfvh"))))
9300 (build-system emacs-build-system)
9301 (home-page "https://github.com/akatov/pretty-mode")
9302 (synopsis "Redisplay parts of the buffer as Unicode symbols")
9303 (description
9304 "Emacs minor mode for redisplaying parts of the buffer as pretty symbols.")
9305 (license license:gpl3+)))
9306
9307 (define-public emacs-yasnippet
9308 (package
9309 (name "emacs-yasnippet")
9310 (version "0.14.0")
9311 (source
9312 (origin
9313 (method git-fetch)
9314 (uri (git-reference
9315 (url "https://github.com/joaotavora/yasnippet.git")
9316 (commit version)))
9317 (file-name (string-append name "-" version ".tar.gz"))
9318 (sha256
9319 (base32 "0via9dzw8m5lzymg1h78xkwjssh39zr3g6ccyamlf1rjzjsyxknv"))
9320 (modules '((guix build utils)))
9321 (snippet
9322 '(begin
9323 ;; YASnippet expects a "snippets" subdirectory in the same
9324 ;; directory as yasnippet.el, but we don't install it because it's
9325 ;; a git submodule pointing to an external repository. Adjust
9326 ;; `yas-snippet-dirs' to prevent warnings about a missing
9327 ;; directory.
9328 (substitute* "yasnippet.el"
9329 (("^ +'yas-installed-snippets-dir\\)\\)\n")
9330 "))\n"))
9331 #t))))
9332 (build-system emacs-build-system)
9333 (arguments
9334 `(#:tests? #t
9335 #:test-command '("emacs" "--batch"
9336 "-l" "yasnippet-tests.el"
9337 "-f" "ert-run-tests-batch-and-exit")
9338 ;; FIXME: one failing test.
9339 #:phases
9340 (modify-phases %standard-phases
9341 (add-before 'check 'make-tests-writable
9342 (lambda _
9343 (make-file-writable "yasnippet-tests.el")
9344 #t))
9345 (add-before 'check 'delete-rebinding-test
9346 (lambda _
9347 (emacs-batch-edit-file "yasnippet-tests.el"
9348 `(progn (goto-char (point-min))
9349 (re-search-forward "ert-deftest test-rebindings")
9350 (beginning-of-line)
9351 (kill-sexp)
9352 (basic-save-buffer)))
9353 #t)))))
9354 (home-page "https://github.com/joaotavora/yasnippet")
9355 (synopsis "Yet another snippet extension for Emacs")
9356 (description
9357 "YASnippet is a template system for Emacs. It allows you to type an
9358 abbreviation and automatically expand it into function templates.")
9359 (license license:gpl3+)))
9360
9361 (define-public emacs-yasnippet-snippets
9362 (package
9363 (name "emacs-yasnippet-snippets")
9364 (version "0.20")
9365 (source
9366 (origin
9367 (method git-fetch)
9368 (uri (git-reference
9369 (url "https://github.com/AndreaCrotti/yasnippet-snippets")
9370 (commit version)))
9371 (file-name (git-file-name name version))
9372 (sha256
9373 (base32 "095w7cdmfwmmr6426mbq15n0a5izgbmv9408m9yh1pqz5x3v3vsx"))))
9374 (build-system trivial-build-system)
9375 (arguments
9376 `(#:modules ((guix build utils))
9377 #:builder
9378 (begin
9379 (use-modules (guix build utils))
9380 (let* ((source (assoc-ref %build-inputs "source"))
9381 (out (assoc-ref %outputs "out"))
9382 (snippet-dir
9383 (string-append out "/share/emacs/yasnippet-snippets/")))
9384 (with-directory-excursion source
9385 (mkdir-p snippet-dir)
9386 (copy-recursively "snippets" snippet-dir)))
9387 #t)))
9388 (home-page "https://github.com/AndreaCrotti/yasnippet-snippets")
9389 (synopsis "Collection of YASnippet snippets for many languages")
9390 (description
9391 "Provides Andrea Crotti's collection of YASnippet snippets. After installation,
9392 the snippets will be in \"~/.guix-profile/share/emacs/yasnippet-snippets/\".
9393 To make YASnippet aware of these snippets, add the above directory to
9394 @code{yas-snippet-dirs}.")
9395 (license license:gpl3+)))
9396
9397 (define-public emacs-helm-c-yasnippet
9398 (let ((commit "65ca732b510bfc31636708aebcfe4d2d845b59b0")
9399 (revision "1"))
9400 (package
9401 (name "emacs-helm-c-yasnippet")
9402 (version (string-append "0.6.7" "-" revision "."
9403 (string-take commit 7)))
9404 (source (origin
9405 (method git-fetch)
9406 (uri (git-reference
9407 (url "https://github.com/emacs-jp/helm-c-yasnippet")
9408 (commit commit)))
9409 (file-name (git-file-name name version))
9410 (sha256
9411 (base32
9412 "1cbafjqlzxbg19xfdqsinsh7afq58gkf44rsg1qxfgm8g6zhr7f8"))))
9413 (build-system emacs-build-system)
9414 (propagated-inputs
9415 `(("emacs-helm" ,emacs-helm)
9416 ("emacs-yasnippet" ,emacs-yasnippet)))
9417 (home-page "https://github.com/emacs-jp/helm-c-yasnippet")
9418 (synopsis "Helm integration for Yasnippet")
9419 (description "This Emacs library provides Helm interface for
9420 Yasnippet.")
9421 (license license:gpl2+))))
9422
9423 (define-public emacs-helm-system-packages
9424 ;; There won't be a new release after 1.10.1 until
9425 ;; https://github.com/emacs-helm/helm-system-packages/issues/25 is fixed,
9426 ;; and latest commits fix import issues with Guix.
9427 (let ((commit "6572340f41611ef1991e9612d34d59130957ee4a"))
9428 (package
9429 (name "emacs-helm-system-packages")
9430 (version (git-version "1.10.1" "1" commit))
9431 (source (origin
9432 (method git-fetch)
9433 (uri (git-reference
9434 (url "https://github.com/emacs-helm/helm-system-packages")
9435 (commit commit)))
9436 (file-name (git-file-name name version))
9437 (sha256
9438 (base32
9439 "0mcz6vkpk12vsyd37xv1rbg4v442sxc3lj8yxskqg294xbdaclz4"))))
9440 (build-system emacs-build-system)
9441 (inputs
9442 `(("recutils" ,recutils)))
9443 (propagated-inputs
9444 `(("emacs-helm" ,emacs-helm)))
9445 (arguments
9446 `(#:phases
9447 (modify-phases %standard-phases
9448 (add-after 'unpack 'configure
9449 (lambda* (#:key inputs outputs #:allow-other-keys)
9450 (let ((recutils (assoc-ref inputs "recutils")))
9451 ;; Specify the absolute file names of the various
9452 ;; programs so that everything works out-of-the-box.
9453 (substitute* "helm-system-packages-guix.el"
9454 (("recsel") (string-append recutils "/bin/recsel")))))))))
9455 (home-page "https://github.com/emacs-helm/helm-system-packages")
9456 (synopsis "Helm System Packages is an interface to your package manager")
9457 (description "List all available packages in Helm (with installed
9458 packages displayed in their own respective face). Fuzzy-search, mark and
9459 execute the desired action over any selections of packages: Install,
9460 uninstall, display packages details (in Org Mode) or insert details at point,
9461 find files owned by packages... And much more, including performing all the
9462 above over the network.")
9463 (license license:gpl3+))))
9464
9465 (define-public emacs-helm-org-rifle
9466 (package
9467 (name "emacs-helm-org-rifle")
9468 (version "1.7.0")
9469 (source
9470 (origin
9471 (method git-fetch)
9472 (uri (git-reference
9473 (url "https://github.com/alphapapa/helm-org-rifle")
9474 (commit version)))
9475 (file-name (git-file-name name version))
9476 (sha256
9477 (base32
9478 "058zvh7cdall7dl3xay9ibcjvs13fbqp8fli3lz980pinmsds3r2"))))
9479 (build-system emacs-build-system)
9480 (propagated-inputs
9481 `(("emacs-dash" ,emacs-dash)
9482 ("emacs-f" ,emacs-f)
9483 ("emacs-helm" ,emacs-helm)
9484 ("emacs-org" ,emacs-org)
9485 ("emacs-s" ,emacs-s)))
9486 (home-page "https://github.com/alphapapa/helm-org-rifle")
9487 (synopsis "Rifle through Org files")
9488 (description "This package searches both headings and contents of entries
9489 in Org buffers and displays matching entries.")
9490 (license license:gpl3+)))
9491
9492 (define-public emacs-dired-git-info
9493 ;; Upstream has no proper release. The base version is extracted from the
9494 ;; "Version" keyword in the main file.
9495 (let ((commit "91d57e3a4c5104c66a3abc18e281ee55e8979176")
9496 (revision "0"))
9497 (package
9498 (name "emacs-dired-git-info")
9499 (version (git-version "0.3.1" revision commit))
9500 (source
9501 (origin
9502 (method git-fetch)
9503 (uri
9504 (git-reference
9505 (url "https://github.com/clemera/dired-git-info")
9506 (commit commit)))
9507 (file-name (git-file-name name version))
9508 (sha256
9509 (base32 "1dr4iv95s4barxxj56znqkl9z0lg5jw731jmjr01s6vn8ar69gik"))))
9510 (build-system emacs-build-system)
9511 (home-page "https://github.com/clemera/dired-git-info/")
9512 (synopsis "Show git info in Emacs Dired")
9513 (description "This Emacs package provides a minor mode which shows git
9514 information inside the Dired buffer.")
9515 (license license:gpl3+))))
9516
9517 (define-public emacs-dired-toggle-sudo
9518 (let ((commit "13bbe52c54893f5aa3e56228450ffdd0c9e1d169")
9519 (revision "0"))
9520 (package
9521 (name "emacs-dired-toggle-sudo")
9522 (version (git-version "1.0" revision commit))
9523 (source
9524 (origin
9525 (method git-fetch)
9526 (uri (git-reference
9527 (url "https://github.com/renard/dired-toggle-sudo")
9528 (commit commit)))
9529 (file-name (git-file-name name version))
9530 (sha256
9531 (base32
9532 "1fw1pb1z6krqd1pfxxhr6rrfr9ckkcb0zsjzbjk0i2i1q5cg6car"))))
9533 (build-system emacs-build-system)
9534 (home-page "https://github.com/renard/dired-toggle-sudo")
9535 (synopsis "Browse directory with @code{sudo} privileges")
9536 (description "This package allows for the use of @code{dired} with
9537 @code{sudo} privileges.")
9538 (license license:wtfpl2))))
9539
9540 (define-public emacs-diredfl
9541 (package
9542 (name "emacs-diredfl")
9543 (version "0.4")
9544 (source
9545 (origin
9546 (method git-fetch)
9547 (uri
9548 (git-reference
9549 (url "https://github.com/purcell/diredfl")
9550 (commit version)))
9551 (file-name (git-file-name name version))
9552 (sha256
9553 (base32 "1zb2lz7rp58zqvpniqcsmqabi7nqg2d8bfd0hgmq68bn2hd25b5z"))))
9554 (build-system emacs-build-system)
9555 (home-page "https://github.com/purcell/diredfl/")
9556 (synopsis "Extra Emacs font lock rules for a more colourful Dired")
9557 (description "This library enables additional font locking in Dired mode.
9558 This is adapted from the extra font lock rules provided by Drew Adams' Dired+
9559 package.")
9560 (license license:gpl3+)))
9561
9562 (define-public emacs-memoize
9563 (package
9564 (name "emacs-memoize")
9565 (version "1.1")
9566 (source
9567 (origin
9568 (method git-fetch)
9569 (uri (git-reference
9570 (url "https://github.com/skeeto/emacs-memoize.git")
9571 (commit version)))
9572 (file-name (git-file-name name version))
9573 (sha256
9574 (base32 "04qgnlg4x6va7x364dhj1wbjmz8p5iq2vk36mn9198k2vxmijwzk"))))
9575 (build-system emacs-build-system)
9576 (arguments
9577 `(#:tests? #t
9578 #:test-command '("emacs" "--batch"
9579 "-l" "memoize-test.el"
9580 "-f" "ert-run-tests-batch-and-exit")))
9581 (home-page "https://github.com/skeeto/emacs-memoize")
9582 (synopsis "Emacs lisp memoization library")
9583 (description "@code{emacs-memoize} is an Emacs library for
9584 memoizing functions.")
9585 (license license:unlicense)))
9586
9587 (define-public emacs-linum-relative
9588 (package
9589 (name "emacs-linum-relative")
9590 (version "0.6")
9591 (source
9592 (origin
9593 (method git-fetch)
9594 (uri (git-reference
9595 (url "https://github.com/coldnew/linum-relative.git")
9596 (commit version)))
9597 (file-name (git-file-name name version))
9598 (sha256
9599 (base32 "0b3n1gk2w1p72x0zfdz9l70winq2fnjpjrgq0awxx730xk7ypp5n"))))
9600 (build-system emacs-build-system)
9601 (home-page "https://github.com/coldnew/linum-relative")
9602 (synopsis "Relative line numbering for Emacs")
9603 (description "@code{emacs-linum-relative} displays the relative line
9604 number on the left margin in Emacs.")
9605 (license license:gpl2+)))
9606
9607 (define-public emacs-idle-highlight
9608 (package
9609 (name "emacs-idle-highlight")
9610 (version "1.1.3")
9611 (source
9612 (origin
9613 (method git-fetch)
9614 (uri (git-reference
9615 (url "https://github.com/nonsequitur/idle-highlight-mode.git")
9616 (commit version)))
9617 (file-name (git-file-name name version))
9618 (sha256
9619 (base32 "0x4w1ksrw7dicl84zpf4d4scg672dyan9g95jkn6zvri0lr8xciv"))))
9620 (build-system emacs-build-system)
9621 (home-page "https://www.emacswiki.org/emacs/IdleHighlight")
9622 (synopsis "Highlights all occurrences of the word the point is on")
9623 (description
9624 "This Emacs package provides @code{idle-highlight-mode} that sets
9625 an idle timer to highlight all occurrences in the buffer of the word under
9626 the point.")
9627 (license license:gpl3+)))
9628
9629 (define-public emacs-ox-twbs
9630 (package
9631 (name "emacs-ox-twbs")
9632 (version "1.1.1")
9633 (source
9634 (origin
9635 (method git-fetch)
9636 (uri (git-reference
9637 (url "https://github.com/marsmining/ox-twbs.git")
9638 (commit (string-append "v" version))))
9639 (file-name (git-file-name name version))
9640 (sha256
9641 (base32 "0kd45p8y7ykadmai4jn1x1pgpafyqggwb1ccbjzalxw4k9wmd45f"))))
9642 (build-system emacs-build-system)
9643 (home-page "https://github.com/marsmining/ox-twbs")
9644 (synopsis "Export org-mode docs as HTML compatible with Twitter Bootstrap")
9645 (description
9646 "This Emacs package outputs your org-mode docs with a simple, clean and
9647 modern look. It implements a new HTML back-end for exporting org-mode docs as
9648 HTML compatible with Twitter Bootstrap. By default, HTML is exported with
9649 jQuery and Bootstrap resources included via osscdn.")
9650 (license license:gpl3+)))
9651
9652 (define-public emacs-highlight-sexp
9653 (package
9654 (name "emacs-highlight-sexp")
9655 (version "1.0")
9656 (source
9657 (origin
9658 (method git-fetch)
9659 (uri (git-reference
9660 (url "https://github.com/daimrod/highlight-sexp.git")
9661 (commit (string-append "v" version))))
9662 (file-name (git-file-name name version))
9663 (sha256
9664 (base32 "12cyk2q5g6p4ac2hykw1cag7dp1prjjnck5f7nalwwaklmy62y79"))))
9665 (build-system emacs-build-system)
9666 (home-page "https://github.com/daimrod/highlight-sexp")
9667 (synopsis "Minor mode that highlights the s-exp at the current position")
9668 (description
9669 "This Emacs package highlights the s-exp at the current position.")
9670 (license license:gpl3+)))
9671
9672 (define-public emacs-highlight-stages
9673 (let ((commit "29cbc5b78261916da042ddb107420083da49b271")
9674 (revision "1"))
9675 (package
9676 (name "emacs-highlight-stages")
9677 (version (string-append "1.1.0" "-" revision "." (string-take commit 7)))
9678 (source
9679 (origin
9680 (method git-fetch)
9681 (uri (git-reference
9682 (url "https://github.com/zk-phi/highlight-stages.git")
9683 (commit commit)))
9684 (file-name (git-file-name name version))
9685 (sha256
9686 (base32
9687 "0r6nbcrr0dqpgm8dir8ahzjy7rw4nrac48byamzrq96r7ajlxlv0"))
9688 (patches
9689 (search-patches "emacs-highlight-stages-add-gexp.patch"))))
9690 (build-system emacs-build-system)
9691 (home-page "https://github.com/wigust/highlight-stages")
9692 (synopsis "Minor mode that highlights (quasi-quoted) expressions")
9693 (description "@code{highlight-stages} provides an Emacs minor mode that
9694 highlights quasi-quoted expressions.")
9695 (license license:gpl3+))))
9696
9697 (define-public emacspeak
9698 (package
9699 (name "emacspeak")
9700 (version "50.0")
9701 (source
9702 (origin
9703 (method url-fetch)
9704 (uri (string-append
9705 "https://github.com/tvraman/emacspeak/releases/download/"
9706 version "/emacspeak-" version ".tar.bz2"))
9707 (sha256
9708 (base32
9709 "0rsj7rzfyqmyidfsjrhjnxi2d43axx6r3gac1fhv5xkkbiiqzqkb"))))
9710 (build-system gnu-build-system)
9711 (arguments
9712 '(#:make-flags (list (string-append "prefix="
9713 (assoc-ref %outputs "out")))
9714 #:phases
9715 (modify-phases %standard-phases
9716 (replace 'configure
9717 (lambda _
9718 (setenv "SHELL" (which "sh"))
9719 ;; Configure Emacspeak according to etc/install.org.
9720 (invoke "make" "config")))
9721 (add-after 'build 'build-espeak
9722 (lambda _
9723 (invoke "make" "espeak")))
9724 (replace 'install
9725 (lambda* (#:key inputs outputs #:allow-other-keys)
9726 (let* ((out (assoc-ref outputs "out"))
9727 (bin (string-append out "/bin"))
9728 (lisp (string-append out "/share/emacs/site-lisp/emacspeak"))
9729 (info (string-append out "/share/info"))
9730 (emacs (string-append (assoc-ref inputs "emacs")
9731 "/bin/emacs")))
9732 ;; According to etc/install.org, the Emacspeak directory should
9733 ;; be copied to its installation destination.
9734 (for-each
9735 (lambda (file)
9736 (copy-recursively file (string-append lisp "/" file)))
9737 '("etc" "info" "js" "lisp" "media" "servers" "sounds"
9738 "stumpwm" "xsl"))
9739 ;; Make sure emacspeak is loaded from the correct directory.
9740 (substitute* "etc/emacspeak.sh"
9741 (("/lisp/emacspeak-setup.el")
9742 (string-append lisp "/lisp/emacspeak-setup.el")))
9743 ;; Install the convenient startup script.
9744 (mkdir-p bin)
9745 (copy-file "etc/emacspeak.sh" (string-append bin "/emacspeak")))
9746 #t))
9747 (add-after 'install 'wrap-program
9748 (lambda* (#:key inputs outputs #:allow-other-keys)
9749 (let* ((out (assoc-ref outputs "out"))
9750 (emacspeak (string-append out "/bin/emacspeak"))
9751 (espeak (string-append (assoc-ref inputs "espeak")
9752 "/bin/espeak")))
9753 ;; The environment variable DTK_PROGRAM tells emacspeak what
9754 ;; program to use for speech.
9755 (wrap-program emacspeak
9756 `("DTK_PROGRAM" ":" prefix (,espeak)))
9757 #t))))
9758 #:tests? #f)) ; no check target
9759 (inputs
9760 `(("emacs" ,emacs)
9761 ("espeak" ,espeak)
9762 ("perl" ,perl)
9763 ("tcl" ,tcl)
9764 ("tclx" ,tclx)))
9765 (home-page "http://emacspeak.sourceforge.net")
9766 (synopsis "Audio desktop interface for Emacs")
9767 (description
9768 "Emacspeak is a speech interface that allows visually impaired users to
9769 interact independently and efficiently with the computer. Audio formatting
9770 --a technique pioneered by AsTeR-- and full support for W3C's Aural CSS (ACSS)
9771 allows Emacspeak to produce rich aural presentations of electronic information.
9772 By seamlessly blending all aspects of the Internet such as Web-surfing and
9773 messaging, Emacspeak speech-enables local and remote information via a
9774 consistent and well-integrated user interface.")
9775 (license license:gpl2+)))
9776
9777 (define-public emacs-adaptive-wrap
9778 (package
9779 (name "emacs-adaptive-wrap")
9780 (version "0.5.1")
9781 (source (origin
9782 (method url-fetch)
9783 (uri (string-append
9784 "https://elpa.gnu.org/packages/adaptive-wrap-"
9785 version ".el"))
9786 (sha256
9787 (base32
9788 "0qi7gjprcpywk2daivnlavwsx53hl5wcqvpxbwinvigg42vxh3ll"))))
9789 (build-system emacs-build-system)
9790 (home-page "https://elpa.gnu.org/packages/adaptive-wrap.html")
9791 (synopsis "Smart line-wrapping with wrap-prefix")
9792 (description
9793 "This Emacs package provides the @code{adaptive-wrap-prefix-mode}
9794 minor mode which sets the wrap-prefix property on the fly so that
9795 single-long-line paragraphs get word-wrapped in a way similar to what
9796 you'd get with @kbd{M-q} using @code{adaptive-fill-mode}, but without
9797 actually changing the buffer's text.")
9798 (license license:gpl3+)))
9799
9800 (define-public emacs-diff-hl
9801 (package
9802 (name "emacs-diff-hl")
9803 (version "1.8.7")
9804 (source
9805 (origin
9806 (method git-fetch)
9807 (uri (git-reference
9808 (url "https://github.com/dgutov/diff-hl")
9809 (commit version)))
9810 (file-name (git-file-name name version))
9811 (sha256
9812 (base32 "0i7x6qgr3nydcwhw72sbc8z9x9dfhgkf0dqj9nakvx36vn1bblbq"))))
9813 (build-system emacs-build-system)
9814 (home-page "https://github.com/dgutov/diff-hl")
9815 (synopsis
9816 "Highlight uncommitted changes using VC")
9817 (description
9818 "@code{diff-hl-mode} highlights uncommitted changes on the side of the
9819 window (using the fringe, by default), allows you to jump between
9820 the hunks and revert them selectively.")
9821 (license license:gpl3+)))
9822
9823 (define-public emacs-diminish
9824 (package
9825 (name "emacs-diminish")
9826 (version "0.45")
9827 (source
9828 (origin
9829 (method git-fetch)
9830 (uri (git-reference
9831 (url "https://github.com/myrjola/diminish.el.git")
9832 (commit (string-append "v" version))))
9833 (file-name (git-file-name name version))
9834 (sha256
9835 (base32 "0qpgfgp8hrzz4vdifxq8h25n0a0jlzgf7aa1fpy6r0080v5rqbb6"))))
9836 (build-system emacs-build-system)
9837 (home-page "https://github.com/myrjola/diminish.el")
9838 (synopsis "Diminish minor modes with no modeline display")
9839 (description "@code{emacs-diminish} implements hiding or
9840 abbreviation of the mode line displays (lighters) of minor modes.")
9841 (license license:gpl2+)))
9842
9843 (define-public emacs-use-package
9844 (package
9845 (name "emacs-use-package")
9846 (version "2.4")
9847 (source (origin
9848 (method git-fetch)
9849 (uri (git-reference
9850 (url "https://github.com/jwiegley/use-package")
9851 (commit version)))
9852 (file-name (git-file-name name version))
9853 (sha256
9854 (base32
9855 "1b7mjjh0d6fmkkd9vyj64vca27xqhga0nvyrrcqxpqjn62zq046y"))))
9856 (build-system emacs-build-system)
9857 (propagated-inputs
9858 `(("emacs-diminish" ,emacs-diminish)))
9859 (arguments
9860 `(#:tests? #t
9861 #:test-command '("emacs" "--batch"
9862 "-l" "use-package-tests.el"
9863 "-f" "ert-run-tests-batch-and-exit")))
9864 (home-page "https://github.com/jwiegley/use-package")
9865 (synopsis "Declaration for simplifying your .emacs")
9866 (description "The use-package macro allows you to isolate package
9867 configuration in your @file{.emacs} file in a way that is both
9868 performance-oriented and tidy.")
9869 (license license:gpl2+)))
9870
9871 (define-public emacs-leaf
9872 (package
9873 (name "emacs-leaf")
9874 (version "3.5.0")
9875 (source
9876 (origin
9877 (method git-fetch)
9878 (uri (git-reference
9879 (url "https://github.com/conao3/leaf.el.git")
9880 (commit (string-append "v" version))))
9881 (file-name (git-file-name name version))
9882 (sha256
9883 (base32
9884 "1rgd59146wad92yc64las0qgx67k2ifgsw1vwhp40xvkd7kb0r6d"))))
9885 (build-system emacs-build-system)
9886 (home-page "https://github.com/conao3/leaf.el")
9887 (arguments
9888 `(#:tests? #t
9889 #:test-command '("emacs" "--batch"
9890 "-l" "leaf-tests.el"
9891 "-f" "cort-test-run")))
9892 (synopsis
9893 "Simplify your init.el configuration, extended use-package")
9894 (description
9895 "This package provides macros that allows you to declaratively configure
9896 settings typical of an Elisp package with various keywords. The syntax is
9897 similar, but not identical to use-package -- overall, leaf aims at a cleaner
9898 and more predictable implementation.")
9899 (license license:agpl3+)))
9900
9901 (define-public emacs-strace-mode
9902 (let* ((commit "6a69b4b06db6797af56f33eda5cb28af94e59f11")
9903 (revision "1"))
9904 (package
9905 (name "emacs-strace-mode")
9906 (version (string-append "0.0.2-" revision "." (string-take commit 7)))
9907 (source (origin
9908 (method git-fetch)
9909 (uri (git-reference
9910 (url "https://github.com/pkmoore/strace-mode")
9911 (commit commit)))
9912 (file-name (git-file-name name version))
9913 (sha256
9914 (base32
9915 "1lbk2kzdznf2bkfazizfbimaxxzfzv00lrz1ran9dc2zqbc0bj9f"))))
9916 (build-system emacs-build-system)
9917 (home-page "https://github.com/pkmoore/strace-mode")
9918 (synopsis "Emacs major mode to highlight strace outputs")
9919 (description "@code{emacs-strace-mode} provides an Emacs major mode
9920 highlighting strace outputs.")
9921 (license license:gpl3+))))
9922
9923 (define-public emacs-default-encrypt
9924 (package
9925 (name "emacs-default-encrypt")
9926 (version "4.4")
9927 (source
9928 (origin
9929 (method url-fetch)
9930 (uri (string-append
9931 "https://informationelle-selbstbestimmung-im-internet.de"
9932 "/emacs/jl-encrypt" version "/jl-encrypt.el"))
9933 (file-name (string-append "jl-encrypt-" version ".el"))
9934 (sha256
9935 (base32
9936 "0w9ggz075j1zwg7d0rv9k8238g600p7czfnnsnawswi7yps2xk78"))))
9937 (build-system emacs-build-system)
9938 (home-page
9939 "https://informationelle-selbstbestimmung-im-internet.de/Emacs.html")
9940 (synopsis "Automatically encrypt or sign Gnus messages in Emacs")
9941 (description
9942 "DefaultEncrypt is designed to be used with Gnus in Emacs. It
9943 automatically encrypts messages that you send (e.g., email) when public keys
9944 for all recipients are available, and it protects you from accidentally
9945 sending un-encrypted messages. It can also be configured to automatically
9946 sign messages that you send. For details and instructions on how to use
9947 DefaultEncrypt, please refer to the home page or read the comments in the
9948 source file, @file{jl-encrypt.el}.")
9949 (license license:gpl3+)))
9950
9951 (define-public emacs-extend-smime
9952 (package
9953 (name "emacs-extend-smime")
9954 (version "3.3")
9955 (source
9956 (origin
9957 (method url-fetch)
9958 (uri (string-append
9959 "https://informationelle-selbstbestimmung-im-internet.de"
9960 "/emacs/jl-smime" version "/jl-smime.el"))
9961 (file-name (string-append "jl-smime-" version ".el"))
9962 (sha256
9963 (base32
9964 "1iv8s2wjmv3v5qfwlcy9hvvrmxxvp3f8m1krlr789q7bbh35jynh"))))
9965 (build-system emacs-build-system)
9966 (home-page
9967 "https://informationelle-selbstbestimmung-im-internet.de/Emacs.html")
9968 (synopsis "Improved S/MIME support for Gnus in Emacs")
9969 (propagated-inputs
9970 `(("emacs-default-encrypt" ,emacs-default-encrypt)))
9971 (description
9972 ;; TRANSLATORS: ExtendSMIME, DefaultEncrypt, and emacs-default-encrypt
9973 ;; should not be translated. The name "emacs-default-encrypt" refers to
9974 ;; the Guix package that provides DefaultEncrypt.
9975 "ExtendSMIME is designed to be used with Gnus in Emacs. It enhances
9976 DefaultEncrypt (emacs-default-encrypt) to support S/MIME (Secure/Multipurpose
9977 Internet Mail Extensions) via LDAP (Lightweight Directory Access Protocol).
9978 Before a message (e.g., email) is sent, ExtendSMIME searches for missing
9979 certificates via LDAP and imports them into @code{gpgsm}. When certificates
9980 for all recipients are available, DefaultEncrypt automatically encrypts the
9981 message. For details and instructions on how to use ExtendSMIME, please refer
9982 to the home page or read the comments in the source file,
9983 @file{jl-smime.el}.")
9984 (license license:gpl3+)))
9985
9986 (define-public emacs-htmlize
9987 (package
9988 (name "emacs-htmlize")
9989 (version "1.55")
9990 (source
9991 (origin
9992 (method git-fetch)
9993 (uri (git-reference
9994 (url "https://github.com/hniksic/emacs-htmlize.git")
9995 (commit (string-append "release/" version))))
9996 (file-name (git-file-name name version))
9997 (sha256
9998 (base32 "0gi3xshscpa53qrj8yplfsqahcilc2ybcc2p7gnh5nbnf2n1n97x"))))
9999 (build-system emacs-build-system)
10000 (home-page "https://github.com/hniksic/emacs-htmlize")
10001 (synopsis "Convert buffer text and decorations to HTML")
10002 (description "@code{emacs-htmlize} converts the buffer text and
10003 the associated decorations to HTML. Output to CSS, inline CSS and
10004 fonts is supported.")
10005 (license license:gpl2+)))
10006
10007 (define-public emacs-xmlgen
10008 (package
10009 (name "emacs-xmlgen")
10010 (version "0.5")
10011 (source
10012 (origin
10013 (method git-fetch)
10014 (uri (git-reference
10015 (url "https://github.com/philjackson/xmlgen.git")
10016 (commit version)))
10017 (file-name (git-file-name name version))
10018 (sha256
10019 (base32 "096i29v0badx0a6339h9ckdz78zj59gbjdp7vj7vhkq9d830392s"))))
10020 (build-system emacs-build-system)
10021 (arguments
10022 `(#:tests? #t
10023 #:test-command '("emacs" "--batch"
10024 "-l" "xmlgen-test.el"
10025 "-f" "ert-run-tests-batch-and-exit")))
10026 (home-page "https://github.com/philjackson/xmlgen")
10027 (synopsis "S-expression to XML domain specific language (DSL) in
10028 Emacs Lisp")
10029 (description "@code{emacs-xmlgen} provides S-expression to XML
10030 conversion for Emacs Lisp.")
10031 (license license:gpl2+)))
10032
10033 (define-public emacs-cdlatex
10034 (package
10035 (name "emacs-cdlatex")
10036 (version "4.7")
10037 (source
10038 (origin
10039 (method git-fetch)
10040 (uri (git-reference
10041 (url "https://github.com/cdominik/cdlatex.git")
10042 (commit version)))
10043 (file-name (git-file-name name version))
10044 (sha256
10045 (base32 "1jj9vmhc4s3ych08bjm1c2xwi81z1p20rj7bvxrgvb5aga2ghi9d"))))
10046 (build-system emacs-build-system)
10047 (propagated-inputs
10048 `(("emacs-auctex" ,emacs-auctex)))
10049 (home-page "https://github.com/cdominik/cdlatex")
10050 (synopsis "Fast Emacs input methods for LaTeX environments and
10051 math")
10052 (description "CDLaTeX is an Emacs minor mode supporting fast
10053 insertion of environment templates and math in LaTeX. Similar
10054 commands are also offered as part of the AUCTeX package, but it is not
10055 the same - CDLaTeX focuses on speediness for inserting LaTeX
10056 constructs.")
10057 (license license:gpl3+)))
10058
10059 (define-public emacs-cnfonts
10060 (package
10061 (name "emacs-cnfonts")
10062 (version "0.9.1")
10063 (source
10064 (origin
10065 (method git-fetch)
10066 (uri (git-reference
10067 (url "https://github.com/tumashu/cnfonts.git")
10068 (commit (string-append "v" version))))
10069 (file-name (git-file-name name version))
10070 (sha256
10071 (base32 "11d44lf0m0kbzq1mvyqkl4aprys0xqaarp08nij57xnynin1rynx"))))
10072 (build-system emacs-build-system)
10073 (home-page "https://github.com/tumashu/cnfonts")
10074 (synopsis "Emacs Chinese fonts setup tool")
10075 (description "cnfonts is a Chinese fonts setup tool, allowing for easy
10076 configuration of Chinese fonts.")
10077 (license license:gpl2+)))
10078
10079 (define-public emacs-php-mode
10080 (package
10081 (name "emacs-php-mode")
10082 (version "1.22.2")
10083 (source (origin
10084 (method git-fetch)
10085 (uri (git-reference
10086 (url "https://github.com/ejmr/php-mode.git")
10087 (commit (string-append "v" version))))
10088 (file-name (git-file-name name version))
10089 (sha256
10090 (base32
10091 "1r4bpyavlndd4c78cv5cc97bc0gkd4cggiyz4kd2vg6zlyc1nld3"))))
10092 (build-system emacs-build-system)
10093 (home-page "https://github.com/ejmr/php-mode")
10094 (synopsis "Major mode for editing PHP code")
10095 (description "@code{php-mode} is a major mode for editing PHP source
10096 code. It's an extension of C mode; thus it inherits all C mode's navigation
10097 functionality. But it colors according to the PHP grammar and indents
10098 according to the PEAR coding guidelines. It also includes a couple handy
10099 IDE-type features such as documentation search and a source and class
10100 browser.")
10101 (license license:gpl3+)))
10102
10103 (define-public emacs-pos-tip
10104 (package
10105 (name "emacs-pos-tip")
10106 (version "0.4.6")
10107 (source
10108 (origin
10109 (method git-fetch)
10110 (uri (git-reference
10111 (url "https://github.com/pitkali/pos-tip.git")
10112 (commit version)))
10113 (file-name (git-file-name name version))
10114 (sha256
10115 (base32 "0w8bnspnk871qndp18hs0wk4x9x31xr9rwbvf5dc8mcbnj29ch33"))))
10116 (build-system emacs-build-system)
10117 ;; The following functions and variables needed by emacs-pos-tip are
10118 ;; not included in emacs-minimal:
10119 ;; x-display-pixel-width, x-display-pixel-height, x-show-tip
10120 (arguments `(#:emacs ,emacs))
10121 (home-page "https://github.com/pitkali/pos-tip")
10122 (synopsis "Show tooltip at point")
10123 (description "The standard library tooltip.el provides a function for
10124 displaying a tooltip at the mouse position. However, locating a tooltip at an
10125 arbitrary buffer position in a window is not easy. Pos-tip provides such a
10126 function to be used by other frontend programs.")
10127 (license license:gpl2+)))
10128
10129 (define-public emacs-pyim-basedict
10130 (package
10131 (name "emacs-pyim-basedict")
10132 (version "0.3.1")
10133 (source
10134 (origin
10135 (method git-fetch)
10136 (uri (git-reference
10137 (url "https://github.com/tumashu/pyim-basedict.git")
10138 (commit (string-append "v" version))))
10139 (file-name (git-file-name name version))
10140 (sha256
10141 (base32 "0576r8ap9gp91ycjf1d47pn13kxp0f9fysn09zlq44hr0s1y2y5d"))))
10142 (build-system emacs-build-system)
10143 (home-page "https://github.com/tumashu/pyim-basedict")
10144 (synopsis "Input method dictionary of pyim")
10145 (description "Pyim-basedict is the default pinyin input method dictionary,
10146 containing words from the rime project.")
10147 (license license:gpl2+)))
10148
10149 (define-public emacs-pyim
10150 (package
10151 (name "emacs-pyim")
10152 (version "1.8")
10153 (source
10154 (origin
10155 (method git-fetch)
10156 (uri (git-reference
10157 (url "https://github.com/tumashu/pyim")
10158 (commit (string-append "v" version))))
10159 (file-name (git-file-name name version))
10160 (sha256
10161 (base32
10162 "16rma4cv7xgky0g3x4an27v30jdi6i1sqw43cl99zhkqvp43l3f9"))))
10163 (build-system emacs-build-system)
10164 (propagated-inputs
10165 `(("emacs-async" ,emacs-async)
10166 ("emacs-pyim-basedict" ,emacs-pyim-basedict)
10167 ("emacs-popup" ,emacs-popup)
10168 ("emacs-posframe" ,emacs-posframe)))
10169 (home-page "https://github.com/tumashu/pyim")
10170 (synopsis "Chinese input method")
10171 (description "Chinese input method which supports quanpin, shuangpin, wubi
10172 and cangjie.")
10173 (license license:gpl2+)))
10174
10175 (define-public emacs-posframe
10176 (package
10177 (name "emacs-posframe")
10178 (version "0.5.0")
10179 (source
10180 (origin
10181 (method git-fetch)
10182 (uri (git-reference
10183 (url "https://github.com/tumashu/posframe")
10184 (commit (string-append "v" version))))
10185 (file-name (git-file-name name version))
10186 (sha256
10187 (base32
10188 "1fhjxj7gi2pj5rdnmf0gddiwd8iifgjgjp01c01npz1gwwixyqh3"))))
10189 (build-system emacs-build-system)
10190 ;; emacs-minimal does not include the function font-info
10191 (arguments `(#:emacs ,emacs))
10192 (home-page "https://github.com/tumashu/posframe")
10193 (synopsis "Pop a posframe (a child frame) at point")
10194 (description "@code{emacs-posframe} can pop a posframe at point. A
10195 posframe is a child frame displayed within its root window's buffer.
10196 @code{emacs-posframe} is fast and works well with CJK languages.")
10197 (license license:gpl3+)))
10198
10199 (define-public emacs-el2org
10200 (package
10201 (name "emacs-el2org")
10202 (version "0.6.0")
10203 (source
10204 (origin
10205 (method git-fetch)
10206 (uri (git-reference
10207 (url "https://github.com/tumashu/el2org.git")
10208 (commit (string-append "v" version))))
10209 (file-name (git-file-name name version))
10210 (sha256
10211 (base32 "0mzddqny6wpg1fv99xrvlv7rxmaifvmy5bvj4in4pldhm4cx4q1b"))))
10212 (build-system emacs-build-system)
10213 (home-page "https://github.com/tumashu/el2org")
10214 (synopsis "Convert Emacs-lisp file to org file")
10215 (description "El2org is a simple tool, which can convert Emacs-lisp file
10216 to org file, you can use this tool to write orgify commentary.")
10217 (license license:gpl2+)))
10218
10219 (define-public emacs-mustache
10220 (package
10221 (name "emacs-mustache")
10222 (version "0.23")
10223 (source
10224 (origin
10225 (method git-fetch)
10226 (uri (git-reference
10227 (url "https://github.com/Wilfred/mustache.el.git")
10228 (commit version)))
10229 (file-name (git-file-name name version))
10230 (sha256
10231 (base32 "1n2ymd92qpvsby6ms0l3kjhdzzc47rri2aiscc6bs07hm4mjpr9q"))))
10232 (build-system emacs-build-system)
10233 (propagated-inputs
10234 `(("emacs-dash" ,emacs-dash)
10235 ("emacs-ht" ,emacs-ht)
10236 ("emacs-s" ,emacs-s)))
10237 (home-page "https://github.com/Wilfred/mustache.el")
10238 (synopsis "Mustache templating library for Emacs")
10239 (description "Mustache templating library for Emacs, mustache is
10240 a simple web template system, which is described as a logic-less system
10241 because it lacks any explicit control flow statements, both looping and
10242 conditional evaluation can be achieved using section tags processing lists
10243 and lambdas.")
10244 (license license:gpl3+)))
10245
10246 (define-public emacs-org2web
10247 (package
10248 (name "emacs-org2web")
10249 (version "0.9.1")
10250 (source
10251 (origin
10252 (method git-fetch)
10253 (uri (git-reference
10254 (url "https://github.com/tumashu/org2web.git")
10255 (commit (string-append "v" version))))
10256 (file-name (git-file-name name version))
10257 (sha256
10258 (base32 "0wsvfn409a2ivbich8b8zqza78sprirg4bl7igx536ydqclmi0n7"))))
10259 (build-system emacs-build-system)
10260 (propagated-inputs
10261 `(("emacs-dash" ,emacs-dash)
10262 ("emacs-el2org" ,emacs-el2org)
10263 ("emacs-ht" ,emacs-ht)
10264 ("emacs-mustache" ,emacs-mustache)
10265 ("emacs-simple-httpd" ,emacs-simple-httpd)))
10266 (home-page "https://github.com/tumashu/org2web")
10267 (synopsis "Static site generator based on org-mode ")
10268 (description "Org2web is a static site generator based on org-mode,
10269 which code derived from Kelvin H's org-page.")
10270 (license license:gpl2+)))
10271
10272 (define-public emacs-xelb
10273 (package
10274 (name "emacs-xelb")
10275 (version "0.18")
10276 (source (origin
10277 (method url-fetch)
10278 (uri (string-append "https://elpa.gnu.org/packages/xelb-"
10279 version ".tar"))
10280 (sha256
10281 (base32
10282 "1fp5mzl63sh0h3ws4l5p4qgvi7ny8a3fj6k4dhqa98xgw2bx03v7"))))
10283 (build-system emacs-build-system)
10284 ;; The following functions and variables needed by emacs-xelb are
10285 ;; not included in emacs-minimal:
10286 ;; x-display-screens, x-keysym-table, x-alt-keysym, x-meta-keysym
10287 ;; x-hyper-keysym, x-super-keysym, libxml-parse-xml-region
10288 ;; x-display-pixel-width, x-display-pixel-height
10289 (arguments
10290 `(#:emacs ,emacs
10291 #:phases
10292 (modify-phases %standard-phases
10293 (add-after 'unpack 'regenerate-el-files
10294 (lambda* (#:key inputs #:allow-other-keys)
10295 (invoke "make"
10296 (string-append "PROTO_PATH="
10297 (assoc-ref inputs "xcb-proto")
10298 "/share/xcb")
10299 (string-append "EMACS_BIN="
10300 (assoc-ref inputs "emacs")
10301 "/bin/emacs -Q")))))))
10302 (native-inputs `(("xcb-proto" ,xcb-proto)))
10303 (home-page "https://github.com/ch11ng/xelb")
10304 (synopsis "X protocol Emacs Lisp binding")
10305 (description "@code{emacs-xelb} is a pure Emacs Lisp implementation of the
10306 X11 protocol based on the XML description files from the XCB project. It
10307 features an object-oriented API and permits a certain degree of concurrency.
10308 It should enable you to implement low-level X11 applications.")
10309 (license license:gpl3+)))
10310
10311 (define-public emacs-exwm
10312 (package
10313 (name "emacs-exwm")
10314 (version "0.23")
10315 (synopsis "Emacs X window manager")
10316 (source (origin
10317 (method url-fetch)
10318 (uri (string-append "https://elpa.gnu.org/packages/exwm-"
10319 version ".tar"))
10320 (sha256
10321 (base32
10322 "05w1v3wrp1lzz20zd9lcvr5nhk809kgy6svvkbs15xhnr6x55ad5"))))
10323 (build-system emacs-build-system)
10324 (propagated-inputs
10325 `(("emacs-xelb" ,emacs-xelb)))
10326 (inputs
10327 `(("xhost" ,xhost)
10328 ("dbus" ,dbus)))
10329 ;; The following functions and variables needed by emacs-exwm are
10330 ;; not included in emacs-minimal:
10331 ;; scroll-bar-mode, fringe-mode
10332 ;; x-display-pixel-width, x-display-pixel-height
10333 (arguments
10334 `(#:emacs ,emacs
10335 #:phases
10336 (modify-phases %standard-phases
10337 (add-after 'build 'install-xsession
10338 (lambda* (#:key inputs outputs #:allow-other-keys)
10339 (let* ((out (assoc-ref outputs "out"))
10340 (xsessions (string-append out "/share/xsessions"))
10341 (bin (string-append out "/bin"))
10342 (exwm-executable (string-append bin "/exwm")))
10343 ;; Add a .desktop file to xsessions
10344 (mkdir-p xsessions)
10345 (mkdir-p bin)
10346 (make-desktop-entry-file
10347 (string-append xsessions "/exwm.desktop")
10348 #:name ,name
10349 #:comment ,synopsis
10350 #:exec exwm-executable
10351 #:try-exec exwm-executable)
10352 ;; Add a shell wrapper to bin
10353 (with-output-to-file exwm-executable
10354 (lambda _
10355 (format #t "#!~a ~@
10356 ~a +SI:localuser:$USER ~@
10357 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
10358 (string-append (assoc-ref inputs "bash") "/bin/sh")
10359 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
10360 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
10361 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
10362 '(cond
10363 ((file-exists-p "~/.exwm")
10364 (load-file "~/.exwm"))
10365 ((not (featurep 'exwm))
10366 (require 'exwm)
10367 (require 'exwm-config)
10368 (exwm-config-default)
10369 (message (concat "exwm configuration not found. "
10370 "Falling back to default configuration...")))))))
10371 (chmod exwm-executable #o555)
10372 #t))))))
10373 (home-page "https://github.com/ch11ng/exwm")
10374 (description "EXWM is a full-featured tiling X window manager for Emacs
10375 built on top of XELB.")
10376 (license license:gpl3+)))
10377
10378 (define-public emacs-switch-window
10379 (package
10380 (name "emacs-switch-window")
10381 (version "1.6.2")
10382 (source
10383 (origin
10384 (method git-fetch)
10385 (uri (git-reference
10386 (url "https://github.com/dimitri/switch-window")
10387 (commit (string-append "v" version))))
10388 (file-name (git-file-name name version))
10389 (sha256
10390 (base32
10391 "0rci96asgamr6qp6nkyr5vwrnslswjxcjd96yccy4aivh0g66yfg"))))
10392 (build-system emacs-build-system)
10393 (home-page "https://github.com/dimitri/switch-window")
10394 (synopsis "Emacs window switch tool")
10395 (description "Switch-window is an emacs window switch tool, which
10396 offer a visual way to choose a window to switch to, delete, split or
10397 other operations.")
10398 (license license:wtfpl2)))
10399
10400 (define-public emacs-exwm-x
10401 (package
10402 (name "emacs-exwm-x")
10403 (version "1.9.0")
10404 (synopsis "Derivative window manager based on EXWM")
10405 (source
10406 (origin
10407 (method git-fetch)
10408 (uri (git-reference
10409 (url "https://github.com/tumashu/exwm-x")
10410 (commit (string-append "v" version))))
10411 (file-name (git-file-name name version))
10412 (sha256
10413 (base32
10414 "03l3dl7s1qys1kkh40rm1sfx7axy1b8sf5f6nyksj9ps6d30p5i4"))))
10415 (build-system emacs-build-system)
10416 (propagated-inputs
10417 `(("emacs-exwm" ,emacs-exwm)
10418 ("emacs-switch-window" ,emacs-switch-window)
10419 ("emacs-ivy" ,emacs-ivy)
10420 ("emacs-use-package" ,emacs-use-package)))
10421 (inputs
10422 `(("xhost" ,xhost)
10423 ("dbus" ,dbus)))
10424 ;; Need emacs instead of emacs-minimal,
10425 ;; for emacs's bin path will be inserted into bin/exwm-x file.
10426 (arguments
10427 `(#:emacs ,emacs
10428 #:phases
10429 (modify-phases %standard-phases
10430 (add-after 'build 'install-xsession
10431 (lambda* (#:key inputs outputs #:allow-other-keys)
10432 (let* ((out (assoc-ref outputs "out"))
10433 (xsessions (string-append out "/share/xsessions"))
10434 (bin (string-append out "/bin"))
10435 (exwm-executable (string-append bin "/exwm-x")))
10436 ;; Add a .desktop file to xsessions
10437 (mkdir-p xsessions)
10438 (mkdir-p bin)
10439 (with-output-to-file
10440 (string-append xsessions "/exwm-x.desktop")
10441 (lambda _
10442 (format #t "[Desktop Entry]~@
10443 Name=~a~@
10444 Comment=~a~@
10445 Exec=~a~@
10446 TryExec=~@*~a~@
10447 Type=Application~%" ,name ,synopsis exwm-executable)))
10448 ;; Add a shell wrapper to bin
10449 (with-output-to-file exwm-executable
10450 (lambda _
10451 (format #t "#!~a ~@
10452 ~a +SI:localuser:$USER ~@
10453 exec ~a --exit-with-session ~a \"$@\" --eval '~s' ~%"
10454 (string-append (assoc-ref inputs "bash") "/bin/sh")
10455 (string-append (assoc-ref inputs "xhost") "/bin/xhost")
10456 (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch")
10457 (string-append (assoc-ref inputs "emacs") "/bin/emacs")
10458 '(require 'exwmx-loader))))
10459 (chmod exwm-executable #o555)
10460 #t))))))
10461 (home-page "https://github.com/tumashu/exwm-x")
10462 (description "EXWM-X is a derivative window manager based on EXWM, with focus
10463 on mouse-control.")
10464 (license license:gpl3+)))
10465
10466 (define-public emacs-gnugo
10467 (package
10468 (name "emacs-gnugo")
10469 (version "3.1.0")
10470 (source
10471 (origin
10472 (method url-fetch)
10473 (uri (string-append "https://elpa.gnu.org/packages/gnugo-"
10474 version ".tar"))
10475 (sha256
10476 (base32
10477 "0xpjvs250gg71qwapdsb1hlc61gs0gpkjds01srf784fvyxx2gf1"))))
10478 (build-system emacs-build-system)
10479 (arguments
10480 `(#:phases (modify-phases %standard-phases
10481 (add-after 'unpack 'configure-default-gnugo-xpms-variable
10482 (lambda _
10483 (substitute* "gnugo.el"
10484 (("defvar gnugo-xpms nil")
10485 "defvar gnugo-xpms #'gnugo-imgen-create-xpms"))
10486 #t)))))
10487 (propagated-inputs
10488 `(("emacs-ascii-art-to-unicode" ,emacs-ascii-art-to-unicode)
10489 ("emacs-xpm" ,emacs-xpm)))
10490 (home-page "https://elpa.gnu.org/packages/gnugo.html")
10491 (synopsis "Emacs major mode for playing GNU Go")
10492 (description "This package provides an Emacs based interface for GNU Go.
10493 It has a graphical mode where the board and stones are drawn using XPM images
10494 and supports the use of a mouse.")
10495 (license license:gpl3+)))
10496
10497 (define-public emacs-gnuplot
10498 (package
10499 (name "emacs-gnuplot")
10500 (version "0.7.0")
10501 (source
10502 (origin
10503 (method git-fetch)
10504 (uri (git-reference
10505 (url "https://github.com/bruceravel/gnuplot-mode.git")
10506 (commit version)))
10507 (file-name (git-file-name name version))
10508 (sha256
10509 (base32 "0bwri3cvm2vr27kyqkrddm28fs08axnd4nm9amfgp54xp20bn4yn"))))
10510 (build-system gnu-build-system)
10511 (native-inputs `(("emacs" ,emacs-minimal)))
10512 (arguments
10513 (let ((elisp-dir "/share/emacs/site-lisp"))
10514 `(#:modules ((guix build gnu-build-system)
10515 (guix build utils)
10516 (guix build emacs-utils))
10517 #:imported-modules (,@%gnu-build-system-modules
10518 (guix build emacs-utils))
10519 #:configure-flags
10520 (list (string-append "EMACS=" (assoc-ref %build-inputs "emacs")
10521 "/bin/emacs")
10522 (string-append "--with-lispdir=" %output ,elisp-dir))
10523 #:phases
10524 (modify-phases %standard-phases
10525 (add-after 'install 'generate-autoloads
10526 (lambda* (#:key outputs #:allow-other-keys)
10527 (emacs-generate-autoloads
10528 "gnuplot"
10529 (string-append (assoc-ref outputs "out") ,elisp-dir))
10530 #t))))))
10531 (home-page "https://github.com/bruceravel/gnuplot-mode")
10532 (synopsis "Emacs major mode for interacting with gnuplot")
10533 (description "@code{emacs-gnuplot} is an emacs major mode for interacting
10534 with gnuplot.")
10535 (license license:gpl2+)))
10536
10537 (define-public emacs-transpose-frame
10538 (package
10539 (name "emacs-transpose-frame")
10540 (version "0.1.0")
10541 (source
10542 (origin
10543 (method url-fetch)
10544 (uri "https://www.emacswiki.org/emacs/download/transpose-frame.el")
10545 (file-name (string-append "transpose-frame-" version ".el"))
10546 (sha256
10547 (base32
10548 "1f67yksgw9s6j0033hmqzaxx2a93jm11sd5ys7cc3li5gfh680m4"))))
10549 (build-system emacs-build-system)
10550 (home-page "https://www.emacswiki.org/emacs/TransposeFrame")
10551 (synopsis "Transpose window arrangement in current frame")
10552 (description "@code{emacs-transpose-frame} provides some interactive
10553 functions which allows users to transpose windows arrangement in currently
10554 selected frame.")
10555 (license license:bsd-2)))
10556
10557 (define-public emacs-key-chord
10558 (package
10559 (name "emacs-key-chord")
10560 (version "0.6")
10561 (source
10562 (origin
10563 (method url-fetch)
10564 (uri "https://www.emacswiki.org/emacs/download/key-chord.el")
10565 (file-name (string-append "key-chord-" version ".el"))
10566 (sha256
10567 (base32
10568 "03m44pqggfrd53nh9dvpdjgm0rvca34qxmd30hr33hzprzjambxg"))))
10569 (build-system emacs-build-system)
10570 (home-page "https://www.emacswiki.org/emacs/key-chord.el")
10571 (synopsis "Map pairs of simultaneously pressed keys to Emacs commands")
10572 (description "@code{emacs-key-chord} provides @code{key-chord-mode}, a
10573 mode for binding key chords to commands. A key chord is defined as two keys
10574 pressed simultaneously or a single key quickly pressed twice.")
10575 (license license:gpl2+)))
10576
10577 (define-public emacs-evil-surround
10578 (package
10579 (name "emacs-evil-surround")
10580 (version "1.0.4")
10581 (source
10582 (origin
10583 (method git-fetch)
10584 (uri (git-reference
10585 (url "https://github.com/emacs-evil/evil-surround")
10586 (commit version)))
10587 (file-name (git-file-name name version))
10588 (sha256
10589 (base32 "1ajsi6xn8mliwzl24h6pp9rd91z7f20yvkphr9q7k6zpjrd7fb9q"))))
10590 (build-system emacs-build-system)
10591 (propagated-inputs
10592 `(("emacs-evil" ,emacs-evil)))
10593 (arguments
10594 `(#:tests? #t
10595 #:test-command '("make" "test")))
10596 (home-page "https://github.com/emacs-evil/evil-surround")
10597 (synopsis "Easily modify surrounding parentheses and quotes")
10598 (description "@code{emacs-evil-surround} allows easy deletion, change and
10599 addition of surrounding pairs, such as parentheses and quotes, in evil mode.")
10600 (license license:gpl3+)))
10601
10602 (define-public emacs-evil-commentary
10603 (package
10604 (name "emacs-evil-commentary")
10605 (version "2.1.1")
10606 (source
10607 (origin
10608 (method git-fetch)
10609 (uri (git-reference
10610 (url "https://github.com/linktohack/evil-commentary.git")
10611 (commit (string-append "v" version))))
10612 (file-name (git-file-name name version))
10613 (sha256
10614 (base32 "0zjs9zyqfygnpxapvf0ymmiid40i06cxbhjzd81zw33nafgkf6r4"))))
10615 (build-system emacs-build-system)
10616 (propagated-inputs
10617 `(("emacs-evil" ,emacs-evil)))
10618 (home-page "https://github.com/linktohack/evil-commentary")
10619 (synopsis "Comment out code in evil mode")
10620 (description "@code{emacs-evil-commentary} adds keybindings to easily
10621 comment out lines of code in evil mode. It provides @code{gcc} to comment out
10622 lines, and @code{gc} to comment out the target of a motion.")
10623 (license license:gpl3+)))
10624
10625 ;; Tests for emacs-ansi have a circular dependency with ert-runner, and
10626 ;; therefore cannot be run
10627 (define-public emacs-ansi
10628 (package
10629 (name "emacs-ansi")
10630 (version "0.4.1")
10631 (source
10632 (origin
10633 (method git-fetch)
10634 (uri (git-reference
10635 (url "https://github.com/rejeep/ansi.el.git")
10636 (commit (string-append "v" version))))
10637 (file-name (git-file-name name version))
10638 (sha256
10639 (base32 "1hbddxarr40ygvaw4pwaivq2l4f0brszw73w1r50lkjlggb7bl3g"))))
10640 (build-system emacs-build-system)
10641 (propagated-inputs
10642 `(("emacs-dash" ,emacs-dash)
10643 ("emacs-s" ,emacs-s)))
10644 (home-page "https://github.com/rejeep/ansi.el")
10645 (synopsis "Convert strings to ANSI")
10646 (description "@code{emacs-ansi} defines functions that turns simple
10647 strings to ANSI strings. Turning a string into an ANSI string can be to add
10648 color to a text, add color in the background of a text or adding a style, such
10649 as bold, underscore or italic.")
10650 (license license:gpl3+)))
10651
10652 ;; Tests for emacs-commander have a circular dependency with ert-runner, and
10653 ;; therefore cannot be run
10654 (define-public emacs-commander
10655 (package
10656 (name "emacs-commander")
10657 (version "0.7.0")
10658 (source
10659 (origin
10660 (method git-fetch)
10661 (uri (git-reference
10662 (url "https://github.com/rejeep/commander.el.git")
10663 (commit (string-append "v" version))))
10664 (file-name (git-file-name name version))
10665 (sha256
10666 (base32 "1j6hhyzww7wfwk6bllbb5mk4hw4qs8hsgfbfdifsam9c6i4spm45"))))
10667 (build-system emacs-build-system)
10668 (propagated-inputs
10669 `(("emacs-dash" ,emacs-dash)
10670 ("emacs-f" ,emacs-f)
10671 ("emacs-s" ,emacs-s)))
10672 (home-page "https://github.com/rejeep/commander.el")
10673 (synopsis "Emacs command line parser")
10674 (description "@code{emacs-commander} provides command line parsing for
10675 Emacs.")
10676 (license license:gpl3+)))
10677
10678 ;; Tests for ert-runner have a circular dependency with ecukes, and therefore
10679 ;; cannot be run
10680 (define-public emacs-ert-runner
10681 (package
10682 (name "emacs-ert-runner")
10683 (version "0.8.0")
10684 (source
10685 (origin
10686 (method git-fetch)
10687 (uri (git-reference
10688 (url "https://github.com/rejeep/ert-runner.el.git")
10689 (commit (string-append "v" version))))
10690 (file-name (git-file-name name version))
10691 (sha256
10692 (base32
10693 "08gygn9fjank5gpi4v6ynrkn0jbknxbwsn7md4p9ndygdbmnkf98"))))
10694 (build-system emacs-build-system)
10695 (inputs
10696 `(("emacs-ansi" ,emacs-ansi)
10697 ("emacs-commander" ,emacs-commander)
10698 ("emacs-dash" ,emacs-dash)
10699 ("emacs-f" ,emacs-f)
10700 ("emacs-s" ,emacs-s)
10701 ("emacs-shut-up" ,emacs-shut-up)))
10702 (arguments
10703 `(#:phases
10704 (modify-phases %standard-phases
10705 (add-after 'install 'install-executable
10706 (lambda* (#:key inputs outputs #:allow-other-keys)
10707 (let ((out (assoc-ref outputs "out"))
10708 (source-directory (string-append
10709 (getenv "TMPDIR") "/source")))
10710 (substitute* "bin/ert-runner"
10711 (("ERT_RUNNER=\"\\$\\(dirname \\$\\(dirname \\$0\\)\\)")
10712 (string-append "ERT_RUNNER=\"" out
10713 "/share/emacs/site-lisp")))
10714 (install-file "bin/ert-runner" (string-append out "/bin"))
10715 (wrap-program (string-append out "/bin/ert-runner")
10716 (list "EMACSLOADPATH" ":" 'prefix
10717 ;; Do not capture the transient source directory in
10718 ;; the wrapper.
10719 (delete source-directory
10720 (string-split (getenv "EMACSLOADPATH") #\:))))
10721 #t))))
10722 #:include (cons* "^reporters/.*\\.el$" %default-include)))
10723 (home-page "https://github.com/rejeep/ert-runner.el")
10724 (synopsis "Opinionated Ert testing workflow")
10725 (description "@code{ert-runner} is a tool for Emacs projects tested
10726 using ERT. It assumes a certain test structure setup and can therefore make
10727 running tests easier.")
10728 (license license:gpl3+)))
10729
10730 (define-public emacs-xtest
10731 (package
10732 (name "emacs-xtest")
10733 (version "1.1.0")
10734 (source (origin
10735 (method git-fetch)
10736 (uri (git-reference
10737 (url "https://github.com/promethial/xtest.git")
10738 (commit (string-append "v" version))))
10739 (file-name (git-file-name name version))
10740 (sha256
10741 (base32
10742 "1wqx6hlqcmqiljydih5fx89dw06g8w728pyn4iqsap8jwgjngb09"))))
10743 (arguments
10744 `(#:exclude '()))
10745 (build-system emacs-build-system)
10746 (home-page "https://github.com/promethial/xtest/")
10747 (synopsis "Simple testing with Emacs")
10748 (description "This package provides a simple testing library for Emacs.")
10749 (license license:gpl3+)))
10750
10751 (define-public emacs-disable-mouse
10752 (package
10753 (name "emacs-disable-mouse")
10754 (version "0.2")
10755 (source
10756 (origin
10757 (method git-fetch)
10758 (uri (git-reference
10759 (url "https://github.com/purcell/disable-mouse.git")
10760 (commit version)))
10761 (file-name (git-file-name name version))
10762 (sha256
10763 (base32 "1v1y5hf6k6ng7xsvgb27nh740d14m6l4krr0paccda8zgm4mw357"))))
10764 (build-system emacs-build-system)
10765 (home-page "https://github.com/purcell/disable-mouse")
10766 (synopsis "Disable mouse commands globally")
10767 (description
10768 "Provides @code{disable-mouse-mode} and @code{global-disable-mouse-mode},
10769 pair of minor modes which suppress all mouse events by intercepting them and
10770 running a customisable handler command (@code{ignore} by default). ")
10771 (license license:gpl3+)))
10772
10773 (define-public emacs-json-reformat
10774 (package
10775 (name "emacs-json-reformat")
10776 (version "0.0.6")
10777 (source
10778 (origin
10779 (method git-fetch)
10780 (uri (git-reference
10781 (url "https://github.com/gongo/json-reformat.git")
10782 (commit version)))
10783 (file-name (git-file-name name version))
10784 (sha256
10785 (base32 "0qp4n2k6s69jj4gwwimkpadjv245y54wk3bxb1x96f034gkp81vs"))
10786 (patches (search-patches "emacs-json-reformat-fix-tests.patch"))))
10787 (build-system emacs-build-system)
10788 (propagated-inputs
10789 `(("emacs-undercover" ,emacs-undercover)))
10790 (native-inputs
10791 `(("emacs-dash" ,emacs-dash)
10792 ("emacs-shut-up" ,emacs-shut-up)
10793 ("ert-runner" ,emacs-ert-runner)))
10794 (arguments
10795 `(#:tests? #t
10796 #:test-command '("ert-runner")
10797 #:phases
10798 (modify-phases %standard-phases
10799 (add-before 'check 'make-tests-writable
10800 (lambda _
10801 (for-each make-file-writable (find-files "test"))
10802 #t))
10803 (add-before 'check 'delete-json-objects-order-test
10804 (lambda _
10805 (emacs-batch-edit-file "test/json-reformat-test.el"
10806 `(progn (progn (goto-char (point-min))
10807 (re-search-forward
10808 "ert-deftest json-reformat-test:json-reformat-region")
10809 (beginning-of-line)
10810 (kill-sexp))
10811 (basic-save-buffer)))
10812 #t)))))
10813 (home-page "https://github.com/gongo/json-reformat")
10814 (synopsis "Reformatting tool for JSON")
10815 (description "@code{json-reformat} provides a reformatting tool for
10816 @url{http://json.org/, JSON}.")
10817 (license license:gpl3+)))
10818
10819 (define-public emacs-json-snatcher
10820 (package
10821 (name "emacs-json-snatcher")
10822 (version "1.0.0")
10823 (source
10824 (origin
10825 (method git-fetch)
10826 (uri (git-reference
10827 (url "https://github.com/Sterlingg/json-snatcher.git")
10828 (commit version)))
10829 (file-name (git-file-name name version))
10830 (sha256
10831 (base32 "05zsgnk7grgw9jzwl80h5sxfpifxlr37b4mkbvx7mjq4z14xc2jw"))))
10832 (build-system emacs-build-system)
10833 (home-page "https://github.com/sterlingg/json-snatcher")
10834 (synopsis "Grabs the path to JSON values in a JSON file")
10835 (description "@code{emacs-json-snatcher} grabs the path to JSON values in
10836 a @url{http://json.org/, JSON} file.")
10837 (license license:gpl3+)))
10838
10839 (define-public emacs-json-mode
10840 (package
10841 (name "emacs-json-mode")
10842 (version "1.7.0")
10843 (source
10844 (origin
10845 (method git-fetch)
10846 (uri (git-reference
10847 (url "https://github.com/joshwnj/json-mode.git")
10848 (commit (string-append "v" version))))
10849 (file-name (git-file-name name version))
10850 (sha256
10851 (base32 "0i79lqzdg59vkqwjd3q092xxn9vhxspb1vn4pkis0vfvn46g01jy"))))
10852 (build-system emacs-build-system)
10853 (propagated-inputs
10854 `(("emacs-json-reformat" ,emacs-json-reformat)
10855 ("emacs-json-snatcher" ,emacs-json-snatcher)))
10856 (home-page "https://github.com/joshwnj/json-mode")
10857 (synopsis "Major mode for editing JSON files")
10858 (description "@code{json-mode} extends the builtin js-mode syntax
10859 highlighting.")
10860 (license license:gpl3+)))
10861
10862 (define-public emacs-restclient
10863 (let ((commit "422ee8d8b077dffe65706a0f027ed700b84746bc")
10864 (version "0")
10865 (revision "2")) ;Guix package revision,
10866 ;upstream doesn't have official releases
10867 (package
10868 (name "emacs-restclient")
10869 (version (git-version version revision commit))
10870 (source (origin
10871 (method git-fetch)
10872 (uri (git-reference
10873 (url "https://github.com/pashky/restclient.el.git")
10874 (commit commit)))
10875 (sha256
10876 (base32
10877 "067nin7vxkdpffxa0q61ybv7szihhvpdinivmci9qkbb86rs9kkz"))
10878 (file-name (git-file-name name version))))
10879 (build-system emacs-build-system)
10880 (propagated-inputs
10881 `(("emacs-helm" ,emacs-helm)))
10882 (home-page "https://github.com/pashky/restclient.el")
10883 (synopsis "Explore and test HTTP REST webservices")
10884 (description
10885 "This tool allows for testing and exploration of HTTP REST Web services
10886 from within Emacs. Restclient runs queries from a plan-text query sheet,
10887 displays results pretty-printed in XML or JSON with @code{restclient-mode}")
10888 (license license:public-domain))))
10889
10890 (define-public emacs-whitespace-cleanup-mode
10891 (let ((commit "72427144b054b0238a86e1348c45d986b8830d9d")
10892 (revision "1"))
10893 (package
10894 (name "emacs-whitespace-cleanup-mode")
10895 (version (git-version "0.10" revision commit))
10896 (source (origin
10897 (method git-fetch)
10898 (uri (git-reference
10899 (url "https://github.com/purcell/whitespace-cleanup-mode")
10900 (commit commit)))
10901 (sha256
10902 (base32
10903 "1zlk534jbwrsabcg3kqlzk4h4hwya60lh6q2n1v4yn4rpf5ghsag"))
10904 (file-name (git-file-name name version))))
10905 (build-system emacs-build-system)
10906 (home-page "https://github.com/purcell/whitespace-cleanup-mode")
10907 (synopsis "Intelligently call @code{whitespace-cleanup} on save")
10908 (description
10909 "This package provides a minor mode that calls
10910 @code{whitespace-cleanup} before saving the current buffer only if the
10911 whitespace in the buffer was initially clean.")
10912 (license license:gpl3+))))
10913
10914 (define-public emacs-eimp
10915 (let ((version "1.4.0")
10916 (commit "2e7536fe6d8f7faf1bad7a8ae37faba0162c3b4f")
10917 (revision "1"))
10918 (package
10919 (name "emacs-eimp")
10920 (version (git-version version revision commit))
10921 (source
10922 (origin
10923 (method git-fetch)
10924 (uri (git-reference
10925 (url "https://github.com/nicferrier/eimp.git")
10926 (commit commit)))
10927 (file-name (git-file-name name version))
10928 (sha256
10929 (base32
10930 "154d57yafxbcf39r89n5j43c86rp2fki3lw3gwy7ww2g6qkclcra"))))
10931 (build-system emacs-build-system)
10932 (arguments
10933 `(#:phases
10934 (modify-phases %standard-phases
10935 (add-after 'unpack 'configure
10936 (lambda* (#:key inputs #:allow-other-keys)
10937 (let ((imagemagick (assoc-ref inputs "imagemagick")))
10938 ;; eimp.el is read-only in git.
10939 (chmod "eimp.el" #o644)
10940 (emacs-substitute-variables "eimp.el"
10941 ("eimp-mogrify-program"
10942 (string-append imagemagick "/bin/mogrify"))))
10943 #t)))))
10944 (inputs
10945 `(("imagemagick" ,imagemagick)))
10946 (home-page "https://github.com/nicferrier/eimp")
10947 (synopsis "Interactive image manipulation utility for Emacs")
10948 (description "@code{emacs-eimp} allows interactive image manipulation
10949 from within Emacs. It uses the code@{mogrify} utility from ImageMagick to do
10950 the actual transformations.")
10951 (license license:gpl2+))))
10952
10953 (define-public emacs-dired-hacks
10954 (let ((commit "886befe113fae397407c804f72c45613d1d43535")
10955 (revision "2"))
10956 (package
10957 (name "emacs-dired-hacks")
10958 (version (git-version "0.0.1" revision commit))
10959 (source (origin
10960 (method git-fetch)
10961 (uri (git-reference
10962 (url "https://github.com/Fuco1/dired-hacks.git")
10963 (commit commit)))
10964 (file-name (git-file-name name version))
10965 (sha256
10966 (base32
10967 "1cvibg90ggyrivpjmcfprpi2fx7dpa68f8kzg08s88gw5ib75djl"))))
10968 (build-system emacs-build-system)
10969 (propagated-inputs
10970 `(("emacs-dash" ,emacs-dash)
10971 ("emacs-eimp" ,emacs-eimp)
10972 ("emacs-f" ,emacs-f)
10973 ("emacs-s" ,emacs-s)))
10974 (home-page "https://github.com/Fuco1/dired-hacks")
10975 (synopsis
10976 "Collection of useful dired additions")
10977 (description
10978 "This package provides the following collection of Emacs dired mode
10979 additions:
10980
10981 @itemize
10982 @item dired-avfs
10983 @item dired-columns
10984 @item dired-filter
10985 @item dired-hacks-utils
10986 @item dired-images
10987 @item dired-list
10988 @item dired-narrow
10989 @item dired-open
10990 @item dired-rainbow
10991 @item dired-ranger
10992 @item dired-subtree
10993 @item dired-tagsistant
10994 @end itemize\n")
10995 (license license:gpl3+))))
10996
10997 (define-public emacs-dired-sidebar
10998 (let ((commit "21ccb6723bea69f2e2ca25998268d8a039f904cc")
10999 (revision "1"))
11000 (package
11001 (name "emacs-dired-sidebar")
11002 (home-page "https://github.com/jojojames/dired-sidebar")
11003 (version (git-version "0.1.0" revision commit))
11004 (source (origin
11005 (method git-fetch)
11006 (uri (git-reference (url home-page) (commit commit)))
11007 (file-name (git-file-name name version))
11008 (sha256
11009 (base32
11010 "0mck4qk6srbbf8xnn2sg11j822z4ybxvgavvy402d5sli515i8ca"))))
11011 (build-system emacs-build-system)
11012 (propagated-inputs
11013 `(("emacs-dired-subtree" ,emacs-dired-hacks)))
11014 (synopsis "Sidebar for Emacs using Dired")
11015 (description
11016 "This package provides a sidebar for Emacs similar to @code{NeoTree}
11017 or @code{treemacs}, but leveraging @code{Dired} to do the job of display.")
11018 (license license:gpl3+))))
11019
11020 (define-public emacs-which-key
11021 (package
11022 (name "emacs-which-key")
11023 (version "3.4.0")
11024 (source
11025 (origin
11026 (method git-fetch)
11027 (uri (git-reference
11028 (url "https://github.com/justbur/emacs-which-key.git")
11029 (commit (string-append "v" version))))
11030 (file-name (git-file-name name version))
11031 (sha256
11032 (base32 "1ahgb7dqdc75farkl0fg0a6hvx2067gdvjq99cd3z2dz56km0p05"))))
11033 (build-system emacs-build-system)
11034 (arguments
11035 `(#:tests? #t
11036 #:test-command '("emacs" "--batch"
11037 "-l" "which-key-tests.el"
11038 "-f" "ert-run-tests-batch-and-exit")))
11039 (home-page "https://github.com/justbur/emacs-which-key")
11040 (synopsis "Display available key bindings in popup")
11041 (description
11042 "@code{emacs-which-key} is a minor mode for Emacs that displays the key
11043 bindings following your currently entered incomplete command (a prefix) in a
11044 popup. For example, after enabling the minor mode if you enter C-x and wait
11045 for the default of 1 second, the minibuffer will expand with all of the
11046 available key bindings that follow C-x (or as many as space allows given your
11047 settings).")
11048 (license license:gpl3+)))
11049
11050 (define-public emacs-hercules
11051 (package
11052 (name "emacs-hercules")
11053 (version "0.2.1")
11054 (source
11055 (origin
11056 (method git-fetch)
11057 (uri (git-reference
11058 (url "https://gitlab.com/jjzmajic/hercules.el.git")
11059 (commit (string-append "v" version))))
11060 (file-name (git-file-name name version))
11061 (sha256
11062 (base32
11063 "19939pf5d6p2facmfhpyghx0vipb5k6ry3bmkmjfkj1zp132zfqf"))))
11064 (build-system emacs-build-system)
11065 (propagated-inputs
11066 `(("emacs-which-key" ,emacs-which-key)))
11067 (home-page "https://gitlab.com/jjzmajic/hercules.el")
11068 (synopsis "Call a chain of related commands without repeated prefix keys")
11069 (description
11070 "This package provides sticky-key-like functionality to obviate the
11071 need for repeated prefix-key sequences, and can reuse existing keymaps. The
11072 list of commands is displayed in a handy popup.")
11073 (license license:gpl3+)))
11074
11075 (define-public emacs-ws-butler
11076 (package
11077 (name "emacs-ws-butler")
11078 (version "0.6")
11079 (source (origin
11080 (method git-fetch)
11081 (uri (git-reference
11082 (url "https://github.com/lewang/ws-butler.git")
11083 (commit "323b651dd70ee40a25accc940b8f80c3a3185205")))
11084 (file-name (git-file-name name version))
11085 (sha256
11086 (base32
11087 "1a4b0lsmwq84qfx51c5xy4fryhb1ysld4fhgw2vr37izf53379sb"))))
11088 (build-system emacs-build-system)
11089 (native-inputs
11090 `(("ert-runner" ,emacs-ert-runner)))
11091 (arguments
11092 `(#:tests? #t
11093 #:test-command '("ert-runner" "tests")))
11094 (home-page "https://github.com/lewang/ws-butler")
11095 (synopsis "Trim spaces from end of lines")
11096 (description
11097 "This Emacs package automatically and unobtrusively trims whitespace
11098 characters from end of lines.")
11099 (license license:gpl3+)))
11100
11101 (define-public emacs-openwith
11102 (let ((changeset "aeb78782ec87680ea9f082a3f20a3675b3770cf9")
11103 (revision "0"))
11104 (package
11105 (name "emacs-openwith")
11106 (home-page "https://bitbucket.org/jpkotta/openwith")
11107 (version (git-version "0.0.1" revision changeset))
11108 (source (origin
11109 (method hg-fetch)
11110 (uri (hg-reference (url home-page) (changeset changeset)))
11111 (file-name (git-file-name name version))
11112 (sha256
11113 (base32
11114 "1wl6gnxsyhaad4cl9bxjc0qbc5jzvlwbwjbajs0n1s6qr07d6r01"))))
11115 (build-system emacs-build-system)
11116 (synopsis "Open external applications for files with Emacs")
11117 (description
11118 "This package enables you to associate file name patterns with external
11119 applications that are automatically invoked when you use commands like
11120 @code{find-file}. For example, you can have it open @code{png} files with
11121 @code{feh} and @code{mp4} files with @code{mpv}. This is especially useful
11122 when browsing files with Dired.")
11123 (license license:gpl2+))))
11124
11125 (define-public emacs-org-edit-latex
11126 (package
11127 (name "emacs-org-edit-latex")
11128 (version "0.8.0")
11129 (source
11130 (origin
11131 (method git-fetch)
11132 (uri (git-reference
11133 (url "https://github.com/et2010/org-edit-latex.git")
11134 (commit (string-append "v" version))))
11135 (file-name (git-file-name name version))
11136 (sha256
11137 (base32 "0zcllyhx9n9vcr5w87h0hfz25v52lvh5fi717cb7mf3jh89zh842"))))
11138 (build-system emacs-build-system)
11139 (propagated-inputs
11140 `(("emacs-auctex" ,emacs-auctex)
11141 ;; The version of org in Emacs 25.2 is not sufficient, because the
11142 ;; `org-latex-make-preamble' function is required.
11143 ("emacs-org" ,emacs-org)))
11144 (home-page "https://github.com/et2010/org-edit-latex")
11145 (synopsis "Edit a latex fragment just like editing a src block")
11146 (description "@code{emacs-org-edit-latex} is an extension for org-mode.
11147 It lets you edit a latex fragment in a dedicated buffer just like editing a
11148 src block.")
11149 (license license:gpl3+)))
11150
11151 (define-public emacs-emamux
11152 (package
11153 (name "emacs-emamux")
11154 (version "0.14")
11155 (source
11156 (origin
11157 (method git-fetch)
11158 (uri (git-reference
11159 (url "https://github.com/syohex/emacs-emamux.git")
11160 (commit version)))
11161 (file-name (git-file-name name version))
11162 (sha256
11163 (base32 "19y69qw79miim9cz5ji54gwspjkcp9g2c1xr5s7jj2fiabnxax6b"))))
11164 (build-system emacs-build-system)
11165 (home-page "https://github.com/syohex/emacs-emamux")
11166 (synopsis "Manipulate Tmux from Emacs")
11167 (description
11168 "@code{emacs-emamux} lets Emacs interact with the @code{tmux} terminal
11169 multiplexer.")
11170 (license license:gpl3+)))
11171
11172 (define-public emacs-rpm-spec-mode
11173 (package
11174 (name "emacs-rpm-spec-mode")
11175 (version "0.16")
11176 (source
11177 (origin
11178 (method url-fetch)
11179 ;; URI has the Fedora release number instead of the version
11180 ;; number. This will have to updated manually every new release.
11181 (uri (string-append
11182 "https://src.fedoraproject.org/cgit/rpms"
11183 "/emacs-rpm-spec-mode.git/snapshot"
11184 "/emacs-rpm-spec-mode-f26.tar.gz"))
11185 (sha256
11186 (base32
11187 "17dz80lhjrc89fj17pysl8slahzrqdkxgcjdk55zls6jizkr6kz3"))))
11188 (build-system emacs-build-system)
11189 (home-page "http://pkgs.fedoraproject.org/cgit/rpms/emacs-rpm-spec-mode.git")
11190 (synopsis "Emacs major mode for editing RPM spec files")
11191 (description "@code{emacs-rpm-spec-mode} provides an Emacs major mode for
11192 editing RPM spec files.")
11193 (license license:gpl2+)))
11194
11195 (define-public emacs-lcr
11196 (package
11197 (name "emacs-lcr")
11198 (version "1.1")
11199 (source
11200 (origin
11201 (method git-fetch)
11202 (uri (git-reference
11203 (url "https://github.com/jyp/lcr")
11204 (commit version)))
11205 (file-name (git-file-name name version))
11206 (sha256
11207 (base32 "0mc55icihxqpf8b05990q1lc2nj2792wcgyr73xsiqx0963sjaj8"))))
11208 (build-system emacs-build-system)
11209 (propagated-inputs
11210 `(("emacs-dash" ,emacs-dash)))
11211 (home-page "https://github.com/jyp/lcr")
11212 (synopsis "Lightweight coroutines in Emacs Lisp")
11213 (description "This package provides macros that can translate code into
11214 equivalent continuation-passing code, as well as miscellaneous utility
11215 functions written in continuation-passing style.")
11216 (license license:gpl3+)))
11217
11218 (define-public emacs-attrap
11219 (let ((commit "18cd1f7832870a36c404e872fa83a271fe8e688d")
11220 (revision "2"))
11221 (package
11222 (name "emacs-attrap")
11223 (version (git-version "1.0" revision commit))
11224 (source (origin
11225 (method git-fetch)
11226 (uri (git-reference
11227 (url "https://github.com/jyp/attrap")
11228 (commit commit)))
11229 (sha256
11230 (base32
11231 "078391949h0fgmshin8f79a1a595m06ig577rkgjqgngcp0d61l9"))
11232 (file-name (git-file-name name version))))
11233 (build-system emacs-build-system)
11234 (propagated-inputs
11235 `(("emacs-dash" ,emacs-dash)
11236 ("emacs-f" ,emacs-f)
11237 ("emacs-flycheck" ,emacs-flycheck)
11238 ("emacs-s" ,emacs-s)))
11239 (home-page "https://github.com/jyp/attrap")
11240 (synopsis "Fix coding error at point")
11241 (description "This package provides a command to fix the Flycheck error
11242 at point.")
11243 (license license:gpl3+))))
11244
11245 (define-public emacs-git-messenger
11246 (package
11247 (name "emacs-git-messenger")
11248 (version "0.18")
11249 (source
11250 (origin
11251 (method git-fetch)
11252 (uri (git-reference
11253 (url "https://github.com/syohex/emacs-git-messenger.git")
11254 (commit version)))
11255 (file-name (git-file-name name version))
11256 (sha256
11257 (base32 "04fnby2nblk8l70gv09asxkmnn53fh1pdfs77ix44npp99fyw8ix"))))
11258 (build-system emacs-build-system)
11259 (propagated-inputs
11260 `(("emacs-popup" ,emacs-popup)))
11261 (arguments
11262 `(#:tests? #t
11263 #:test-command '("emacs" "--batch" "-l" "test/test.el"
11264 "-f" "ert-run-tests-batch-and-exit")))
11265 (home-page "https://github.com/syohex/emacs-git-messenger")
11266 (synopsis "Popup commit message at current line")
11267 (description "@code{emacs-git-messenger} provides
11268 @code{git-messenger:popup-message}, a function that when called, will popup
11269 the last git commit message for the current line. This uses git-blame
11270 internally.")
11271 (license license:gpl3+)))
11272
11273 (define-public emacs-gitpatch
11274 (package
11275 (name "emacs-gitpatch")
11276 (version "0.5.1")
11277 (source
11278 (origin
11279 (method git-fetch)
11280 (uri (git-reference
11281 (url "https://github.com/tumashu/gitpatch.git")
11282 (commit (string-append "v" version))))
11283 (file-name (git-file-name name version))
11284 (sha256
11285 (base32 "1drf4fvmak7brf16axkh4nfz8pg44i7pjhfjz3dbkycbpp8y5vig"))))
11286 (build-system emacs-build-system)
11287 (home-page "https://github.com/tumashu/gitpatch")
11288 (synopsis "Mail git patch from Emacs")
11289 (description "@code{emacs-gitpatch} lets users easily send git patches,
11290 created by @code{git format-patch}, from @code{magit}, @code{dired} and
11291 @code{ibuffer} buffers.")
11292 (license license:gpl3+)))
11293
11294 (define-public emacs-erc-hl-nicks
11295 (package
11296 (name "emacs-erc-hl-nicks")
11297 (version "1.3.3")
11298 (source
11299 (origin
11300 (method git-fetch)
11301 (uri (git-reference
11302 (url "https://github.com/leathekd/erc-hl-nicks")
11303 (commit version)))
11304 (file-name (git-file-name name version))
11305 (sha256
11306 (base32 "0c82rxpl5v7bbxirf1ksg06xv5xcddh8nkrpj7i6nvfarwdfnk4f"))))
11307 (build-system emacs-build-system)
11308 (synopsis "Nickname highlighting for Emacs ERC")
11309 (description "@code{erc-hl-nicks} highlights nicknames in ERC, an IRC
11310 client for Emacs. The main features are:
11311 @itemize
11312 @item Auto-colorizes nicknames without having to specify colors
11313 @item Ignores certain characters that IRC clients add to nicknames to avoid
11314 duplicates (nickname, nickname’, nickname\", etc.)
11315 @item Attempts to produce colors with a sufficient amount of contrast between
11316 the nick color and the background color
11317 @end itemize\n")
11318 (home-page "https://github.com/leathekd/erc-hl-nicks")
11319 (license license:gpl3+)))
11320
11321 (define-public emacs-engine-mode
11322 (package
11323 (name "emacs-engine-mode")
11324 (version "2.1.1")
11325 (source
11326 (origin
11327 (method git-fetch)
11328 (uri (git-reference
11329 (url "https://github.com/hrs/engine-mode.git")
11330 (commit (string-append "v" version))))
11331 (file-name (git-file-name name version))
11332 (sha256
11333 (base32 "1xka8i4cdvp5r2v2mkli1zz17x1sdsnmszbhqav2rf94v656d91i"))))
11334 (build-system emacs-build-system)
11335 (synopsis "Minor mode for defining and querying search engines")
11336 (description "@code{engine-mode} is a global minor mode for Emacs. It
11337 enables you to easily define search engines, bind them to keybindings, and
11338 query them from the comfort of your editor.")
11339 (home-page "https://github.com/hrs/engine-mode")
11340 (license license:gpl3+)))
11341
11342 (define-public emacs-prop-menu
11343 (package
11344 (name "emacs-prop-menu")
11345 (version "0.1.2")
11346 (source
11347 (origin
11348 (method git-fetch)
11349 (uri (git-reference
11350 (url "https://github.com/david-christiansen/prop-menu-el.git")
11351 (commit version)))
11352 (file-name (git-file-name name version))
11353 (sha256
11354 (base32
11355 "18ap2liz5r5a8ja2zz9182fnfm47jnsbyblpq859zks356k37iwc"))))
11356 (build-system emacs-build-system)
11357 (home-page
11358 "https://github.com/david-christiansen/prop-menu-el")
11359 (synopsis
11360 "Create and display a context menu based on text and overlay properties")
11361 (description
11362 "This is a library for computing context menus based on text
11363 properties and overlays. The intended use is to have tools that
11364 annotate source code and others that use these annotations, without
11365 requiring a direct coupling between them, but maintaining
11366 discoverability.
11367
11368 Major modes that wish to use this library should first define an
11369 appropriate value for @code{prop-menu-item-functions}. Then, they should
11370 bind @code{prop-menu-by-completing-read} to an appropriate
11371 key. Optionally, a mouse pop-up can be added by binding
11372 @code{prop-menu-show-menu} to a mouse event.")
11373 (license license:gpl3+)))
11374
11375 (define-public emacs-idris-mode
11376 (let ((commit "acc8835449475d7cd205aba213fdd3d41c38ba40")
11377 (revision "0"))
11378 (package
11379 (name "emacs-idris-mode")
11380 (version (git-version "0.9.19" revision commit))
11381 (source
11382 (origin
11383 (method git-fetch)
11384 (uri (git-reference
11385 (url "https://github.com/idris-hackers/idris-mode.git")
11386 (commit commit)))
11387 (file-name (git-file-name name commit))
11388 (sha256
11389 (base32
11390 "0n9xbknc68id0mf8hbfmawi8qpvrs47ix807sk9ffv2g3ik32kk6"))))
11391 (build-system emacs-build-system)
11392 (propagated-inputs
11393 `(("emacs-prop-menu" ,emacs-prop-menu)))
11394 (home-page
11395 "https://github.com/idris-hackers/idris-mode")
11396 (synopsis "Major mode for editing Idris code")
11397 (description
11398 "This is an Emacs mode for editing Idris code. It requires the latest
11399 version of Idris, and some features may rely on the latest Git version of
11400 Idris.")
11401 (license license:gpl3+))))
11402
11403 (define-public emacs-browse-at-remote
11404 (package
11405 (name "emacs-browse-at-remote")
11406 (version "0.10.0")
11407 (source
11408 (origin
11409 (method git-fetch)
11410 (uri (git-reference
11411 (url "https://github.com/rmuslimov/browse-at-remote.git")
11412 (commit version)))
11413 (file-name (git-file-name name version))
11414 (sha256
11415 (base32 "0vhia7xmszcb3lxrb8wh93a3knjfzj48h8nhj4fh8zj1pjz6args"))))
11416 (build-system emacs-build-system)
11417 (propagated-inputs
11418 `(("emacs-f" ,emacs-f)
11419 ("emacs-s" ,emacs-s)))
11420 (native-inputs
11421 `(("ert-runner" ,emacs-ert-runner)))
11422 (arguments
11423 `(#:tests? #t
11424 #:test-command '("ert-runner")))
11425 (home-page "https://github.com/rmuslimov/browse-at-remote")
11426 (synopsis "Open github/gitlab/bitbucket/stash page from Emacs")
11427 (description
11428 "This Emacs package allows you to open a target page on
11429 github/gitlab (or bitbucket) by calling @code{browse-at-remote} command.
11430 It supports dired buffers and opens them in tree mode at destination.")
11431 (license license:gpl3+)))
11432
11433 (define-public emacs-tiny
11434 (let ((commit "fd8a6b0b0c564d8242259e20e557ee6041f40908")
11435 (revision "1"))
11436 (package
11437 (name "emacs-tiny")
11438 (version (git-version "0.2.1" revision commit))
11439 (source
11440 (origin
11441 (method git-fetch)
11442 (uri (git-reference
11443 (url "https://github.com/abo-abo/tiny.git")
11444 (commit commit)))
11445 (file-name (git-file-name name version))
11446 (sha256
11447 (base32
11448 "1498j392ap2mk4zmsm2id16pfgvj78r428da9vw7hdrzzibai2cx"))))
11449 (build-system emacs-build-system)
11450 (arguments
11451 `(#:tests? #t
11452 #:test-command '("make" "test")))
11453 (home-page "https://github.com/abo-abo/tiny")
11454 (synopsis "Quickly generate linear ranges in Emacs")
11455 (description
11456 "The main command of the @code{tiny} extension for Emacs is @code{tiny-expand}.
11457 It is meant to quickly generate linear ranges, e.g. 5, 6, 7, 8. Some elisp
11458 proficiency is an advantage, since you can transform your numeric range with
11459 an elisp expression.")
11460 (license license:gpl3+))))
11461
11462 (define-public emacs-emojify
11463 (package
11464 (name "emacs-emojify")
11465 (version "1.2")
11466 (source
11467 (origin
11468 (method git-fetch)
11469 (uri (git-reference
11470 (url "https://github.com/iqbalansari/emacs-emojify")
11471 (commit (string-append "v" version))))
11472 (file-name (git-file-name name version))
11473 (sha256
11474 (base32
11475 "1fqnj5x7ivjkm5y927dqqnm85q5hzczlb0hrfpjalrhasa6ijsrm"))))
11476 (build-system emacs-build-system)
11477 (arguments
11478 `(#:include (cons "^data/" %default-include)))
11479 (propagated-inputs
11480 `(("emacs-ht" ,emacs-ht)))
11481 (home-page "https://github.com/iqbalansari/emacs-emojify")
11482 (synopsis "Display emojis in Emacs")
11483 (description "This package displays emojis in Emacs similar to how Github,
11484 Slack, and other websites do. It can display plain ASCII like @code{:)} as
11485 well as Github-style emojis like @code{:smile:}. It provides a minor mode
11486 @code{emojify-mode} to enable the display of emojis in a buffer.")
11487 (license license:gpl3+)))
11488
11489 (define-public emacs-make-it-so
11490 (let ((commit "b73dfb640588123c9eece230ad72b37604f5c126")
11491 (revision "2"))
11492 (package
11493 (name "emacs-make-it-so")
11494 (version (git-version "0.1.0" revision commit))
11495 (source
11496 (origin
11497 (method git-fetch)
11498 (uri (git-reference
11499 (url "https://github.com/abo-abo/make-it-so")
11500 (commit commit)))
11501 (file-name (git-file-name name version))
11502 (sha256
11503 (base32
11504 "0p6xhyinzzkrwzbpxqfm8hlii0ikvmmylya240bwsa77w0g1k6xq"))))
11505 (build-system emacs-build-system)
11506 (arguments
11507 `(#:include (cons "^recipes/" %default-include)))
11508 (propagated-inputs
11509 `(("emacs-ivy" ,emacs-ivy)))
11510 (home-page "https://github.com/abo-abo/make-it-so")
11511 (synopsis "Transform files with Makefile recipes")
11512 (description "This package provides an interface for selecting from
11513 different conversion recipes, often including tools like @code{ffmpeg} or
11514 @code{convert}. The conversion command need only be written once, and
11515 subsequent invocations can be readily customized. Several recipes are
11516 included by default, and more can be readily added.")
11517 (license license:gpl3+))))
11518
11519 (define-public emacs-unidecode
11520 (let ((commit "5502ada9287b4012eabb879f12f5b0a9df52c5b7")
11521 (revision "1"))
11522 (package
11523 (name "emacs-unidecode")
11524 (version (git-version "0.2" revision commit))
11525 (source
11526 (origin
11527 (method git-fetch)
11528 (uri (git-reference
11529 (url "https://github.com/sindikat/unidecode")
11530 (commit commit)))
11531 (file-name (git-file-name name version))
11532 (sha256
11533 (base32
11534 "03x3nakbhmakwm977mwrf8jifvjnfwzpjv6wrwpizbqjnkgfchmn"))))
11535 (build-system emacs-build-system)
11536 (arguments
11537 `(#:include (cons* "^tools/" "^data/" %default-include)
11538 #:tests? #t
11539 #:test-command '("emacs" "--batch"
11540 "-l" "unidecode-test.el"
11541 "-f" "ert-run-tests-batch-and-exit")
11542 #:phases
11543 (modify-phases %standard-phases
11544 (add-before 'check 'make-tests-writable
11545 (lambda _
11546 (make-file-writable "unidecode-test.el")
11547 #t))
11548 (add-before 'check 'add-require
11549 (lambda _
11550 (emacs-batch-edit-file "unidecode-test.el"
11551 `(progn (progn (goto-char (point-min))
11552 (re-search-forward
11553 "ert-deftest")
11554 (forward-line -1)
11555 (insert "(require 'unidecode)"))
11556 (basic-save-buffer)))
11557 #t)))))
11558 (home-page "https://github.com/sindikat/unidecode")
11559 (synopsis "Transliterate Unicode text to ASCII")
11560 (description "This package provides functions for converting Unicode to ASCII.")
11561 (license license:gpl2+))))
11562
11563 (define-public emacs-pubmed
11564 (package
11565 (name "emacs-pubmed")
11566 (version "0.2.1")
11567 (source
11568 (origin
11569 (method git-fetch)
11570 (uri (git-reference
11571 (url "https://gitlab.com/fvdbeek/emacs-pubmed.git")
11572 (commit (string-append "v" version))))
11573 (file-name (git-file-name name version))
11574 (sha256
11575 (base32
11576 "15bwjxc7g43m5pi8z17anaqqkvi209r7kk1chmf175477gvrv7c0"))))
11577 (build-system emacs-build-system)
11578 (propagated-inputs
11579 `(("emacs-deferred" ,emacs-deferred)
11580 ("emacs-esxml" ,emacs-esxml)
11581 ("emacs-s" ,emacs-s)
11582 ("emacs-unidecode" ,emacs-unidecode)))
11583 (home-page "https://gitlab.com/fvdbeek/emacs-pubmed")
11584 (synopsis "Interface to PubMed")
11585 (description "This package provides an Emacs interface to the PubMed
11586 database of references on life sciences.")
11587 (license license:gpl3+)))
11588
11589 (define-public emacs-websocket
11590 (package
11591 (name "emacs-websocket")
11592 (version "1.10")
11593 (source
11594 (origin
11595 (method git-fetch)
11596 (uri (git-reference
11597 (url "https://github.com/ahyatt/emacs-websocket.git")
11598 (commit version)))
11599 (file-name (git-file-name name version))
11600 (sha256
11601 (base32
11602 "1dgrf7na6r6mmkknphzshlbd5fnzisg0qn0j7vfpa38wgsymaq52"))))
11603 (build-system emacs-build-system)
11604 (arguments
11605 `(#:tests? #t
11606 ;; TODO: also enable websocket-functional-test.el
11607 #:test-command '("emacs" "--batch"
11608 "-l" "websocket-test.el"
11609 "-f" "ert-run-tests-batch-and-exit")))
11610 (home-page "https://elpa.gnu.org/packages/websocket.html")
11611 (synopsis "Emacs WebSocket client and server")
11612 (description "This is an Elisp library for WebSocket clients to talk to
11613 WebSocket servers, and for WebSocket servers to accept connections from
11614 WebSocket clients. This library is designed to be used by other library
11615 writers, to write applications that use WebSockets, and is not useful by
11616 itself.")
11617 (license license:gpl3+)))
11618
11619 (define-public emacs-oauth2
11620 (package
11621 (name "emacs-oauth2")
11622 (version "0.11")
11623 (source
11624 (origin
11625 (method url-fetch)
11626 (uri (string-append "https://elpa.gnu.org/packages/oauth2-"
11627 version ".el"))
11628 (sha256
11629 (base32
11630 "0ydkc9jazsnbbvfhd47mql52y7k06n3z7r0naqxkwb99j9blqsmp"))))
11631 (build-system emacs-build-system)
11632 (home-page "https://elpa.gnu.org/packages/oauth2.html")
11633 (synopsis "OAuth 2.0 authorization protocol implementation")
11634 (description
11635 "This package provides an Elisp implementation of the OAuth 2.0 draft.
11636 The main entry point is @code{oauth2-auth-and-store} which will return a token
11637 structure. This token structure can be then used with
11638 @code{oauth2-url-retrieve-synchronously} or @code{oauth2-url-retrieve} to
11639 retrieve any data that need OAuth authentication to be accessed. If the token
11640 needs to be refreshed, the code handles it automatically and stores the new
11641 value of the access token.")
11642 (license license:gpl3+)))
11643
11644 (define-public emacs-circe
11645 (package
11646 (name "emacs-circe")
11647 (version "2.11")
11648 (source
11649 (origin
11650 (method git-fetch)
11651 (uri (git-reference
11652 (url "https://github.com/jorgenschaefer/circe.git")
11653 (commit (string-append "v" version))))
11654 (file-name (git-file-name name version))
11655 (sha256
11656 (base32 "0cr9flk310yn2jgvj4hbqw9nj5wlfi0fazdkqafzidgz6iq150wd"))))
11657 (build-system emacs-build-system)
11658 (arguments
11659 `(#:tests? #t
11660 #:test-command '("buttercup" "-L" ".")
11661 #:phases
11662 (modify-phases %standard-phases
11663 ;; The HOME environment variable should be set to an existing
11664 ;; directory for the tests to succeed.
11665 (add-before 'check 'set-home
11666 (lambda _
11667 (setenv "HOME" "/tmp")
11668 #t)))))
11669 (native-inputs
11670 `(("emacs-buttercup" ,emacs-buttercup)))
11671 ;; In order to securely connect to an IRC server using TLS, Circe requires
11672 ;; the GnuTLS binary.
11673 (propagated-inputs
11674 `(("gnutls" ,gnutls)))
11675 (home-page "https://github.com/jorgenschaefer/circe")
11676 (synopsis "Client for IRC in Emacs")
11677 (description "Circe is a Client for IRC in Emacs. It integrates well with
11678 the rest of the editor, using standard Emacs key bindings and indicating
11679 activity in channels in the status bar so it stays out of your way unless you
11680 want to use it.")
11681 (license license:gpl3+)))
11682
11683 (define-public emacs-tracking
11684 (package
11685 (inherit emacs-circe)
11686 (name "emacs-tracking")
11687 (arguments
11688 ;; "tracking.el" is a library extracted from Circe package. It requires
11689 ;; "shorten.el".
11690 `(#:include '("^shorten.el$" "^tracking.el$")
11691 ,@(package-arguments emacs-circe)))
11692 (home-page "https://github.com/jorgenschaefer/circe/wiki/Tracking")
11693 (synopsis "Buffer tracking library")
11694 (description "@code{tracking.el} provides a way for different modes to
11695 notify the user that a buffer needs attention. The user then can cycle
11696 through them using @key{C-c C-SPC}.")
11697 (license license:gpl3+)))
11698
11699 (define-public emacs-slack
11700 (let ((commit "b7b9eada0bf62d40dfe764b00f55913a2d3d742e")
11701 (revision "7"))
11702 (package
11703 (name "emacs-slack")
11704 (version (git-version "0.0.2" revision commit))
11705 (source (origin
11706 (method git-fetch)
11707 (uri (git-reference
11708 (url "https://github.com/yuya373/emacs-slack.git")
11709 (commit commit)))
11710 (file-name (git-file-name name commit))
11711 (sha256
11712 (base32
11713 "0cqr7jnfxzb0z2wy79pdwpv9cvmawjif1kin3zbp8q7zhwrq09v0"))))
11714 (build-system emacs-build-system)
11715 (arguments
11716 `(#:phases
11717 (modify-phases %standard-phases
11718 ;; HOME needs to exist for source compilation.
11719 (add-before 'build 'set-HOME
11720 (lambda _ (setenv "HOME" "/tmp") #t)))))
11721 (propagated-inputs
11722 `(("emacs-alert" ,emacs-alert)
11723 ("emacs-emojify" ,emacs-emojify)
11724 ("emacs-helm" ,emacs-helm)
11725 ("emacs-request" ,emacs-request)
11726 ("emacs-websocket" ,emacs-websocket)
11727 ("emacs-oauth2" ,emacs-oauth2)
11728 ("emacs-circe" ,emacs-circe)))
11729 (home-page "https://github.com/yuya373/emacs-slack")
11730 (synopsis "Slack client for Emacs")
11731 (description "This package provides an Emacs client for the Slack
11732 messaging service.")
11733 (license license:gpl3+))))
11734
11735 (define-public emacs-bash-completion
11736 (package
11737 (name "emacs-bash-completion")
11738 (version "2.1.0")
11739 (source
11740 (origin
11741 (method git-fetch)
11742 (uri (git-reference
11743 (url "https://github.com/szermatt/emacs-bash-completion.git")
11744 (commit version)))
11745 (file-name (git-file-name name version))
11746 (sha256
11747 (base32 "1a1wxcqzh0javjmxwi3lng5i99xiylm8lm04kv4q1lh9bli6vmv0"))))
11748 (inputs `(("bash" ,bash)))
11749 (build-system emacs-build-system)
11750 (arguments
11751 `(#:phases
11752 (modify-phases %standard-phases
11753 (add-after 'unpack 'make-git-checkout-writable
11754 (λ _
11755 (for-each make-file-writable (find-files "."))
11756 #t))
11757 (add-before 'install 'configure
11758 (lambda* (#:key inputs #:allow-other-keys)
11759 (let ((bash (assoc-ref inputs "bash")))
11760 (emacs-substitute-variables "bash-completion.el"
11761 ("bash-completion-prog" (string-append bash "/bin/bash"))))
11762 #t)))))
11763 (home-page "https://github.com/szermatt/emacs-bash-completion")
11764 (synopsis "Bash completion for the shell buffer")
11765 (description
11766 "@code{bash-completion} defines dynamic completion hooks for shell-mode
11767 and shell-command prompts that are based on Bash completion.")
11768 (license license:gpl2+)))
11769
11770 (define-public emacs-easy-kill
11771 (package
11772 (name "emacs-easy-kill")
11773 (version "0.9.3")
11774 (source (origin
11775 (method url-fetch)
11776 (uri (string-append "https://elpa.gnu.org/packages/easy-kill-"
11777 version ".tar"))
11778 (sha256
11779 (base32
11780 "17nw0mglmg877axwg1d0gs03yc0p04lzmd3pl0nsnqbh3303fnqb"))))
11781 (build-system emacs-build-system)
11782 (home-page "https://github.com/leoliu/easy-kill")
11783 (synopsis "Kill and mark things easily in Emacs")
11784 (description
11785 "This package provides commands @code{easy-kill} and @code{easy-mark} to
11786 let users kill or mark things easily.")
11787 (license license:gpl3+)))
11788
11789 (define-public emacs-csv-mode
11790 (package
11791 (name "emacs-csv-mode")
11792 (version "1.10")
11793 (source
11794 (origin
11795 (method url-fetch)
11796 (uri (string-append "https://elpa.gnu.org/packages/csv-mode-"
11797 version ".el"))
11798 (sha256
11799 (base32 "0q7j2cmj7vs6hz8cnf7j7lmlcjmig3jn2p6az345z96agl8a5xsq"))))
11800 (build-system emacs-build-system)
11801 (home-page "https://elpa.gnu.org/packages/csv-mode.html")
11802 (synopsis "Major mode for editing comma/char separated values")
11803 (description
11804 "This Emacs package implements CSV mode, a major mode for editing records
11805 in a generalized CSV (character-separated values) format.")
11806 (license license:gpl3+)))
11807
11808 (define-public emacs-transmission
11809 (package
11810 (name "emacs-transmission")
11811 (version "0.12.1")
11812 (source
11813 (origin
11814 (method git-fetch)
11815 (uri (git-reference
11816 (url "https://github.com/holomorph/transmission.git")
11817 (commit version)))
11818 (file-name (git-file-name name version))
11819 (sha256
11820 (base32 "0kvg2gawsgy440x1fsl2c4pkxwp3zirq9rzixanklk0ryijhd3ry"))))
11821 (build-system emacs-build-system)
11822 (home-page "https://github.com/holomorph/transmission")
11823 (synopsis "Emacs interface to a Transmission session")
11824 (description "This package provides an Emacs interface to interact with a
11825 running session of the Transmission Bittorrent client.
11826
11827 Features:
11828
11829 @itemize
11830 @item List, add, start/stop, verify, remove torrents.
11831 @item Set speed limits, ratio limits, bandwidth priorities, trackers.
11832 @item Navigate to the corresponding file list, torrent info, peer info
11833 contexts.
11834 @item Toggle downloading and set priorities for individual files.
11835 @end itemize\n")
11836 (license license:gpl3+)))
11837
11838 (define-public emacs-polymode
11839 (package
11840 (name "emacs-polymode")
11841 (version "0.2")
11842 (source (origin
11843 (method git-fetch)
11844 (uri (git-reference
11845 (url "https://github.com/polymode/polymode.git")
11846 (commit (string-append "v" version))))
11847 (file-name (git-file-name name version))
11848 (sha256
11849 (base32
11850 "04v0gnzfsjb50bgly6kvpryx8cyzwjaq2llw4qv9ijw1l6ixmq3b"))))
11851 (build-system emacs-build-system)
11852 (home-page "https://github.com/polymode/polymode")
11853 (synopsis "Framework for multiple Emacs modes based on indirect buffers")
11854 (description
11855 "Polymode is an Emacs package that offers generic support for multiple
11856 major modes inside a single Emacs buffer. It is lightweight, object oriented
11857 and highly extensible. Creating a new polymode typically takes only a few
11858 lines of code. Polymode also provides extensible facilities for external
11859 literate programming tools for exporting, weaving and tangling.")
11860 (license license:gpl3+)))
11861
11862 (define-public emacs-polymode-ansible
11863 (let ((commit "b26094d029e25dc797b94254f797e7807a57e4c8"))
11864 (package
11865 (name "emacs-polymode-ansible")
11866 ;; No upstream version release yet.
11867 (version (git-version "0.1" "1" commit))
11868 (source
11869 (origin
11870 (method git-fetch)
11871 (uri (git-reference
11872 (url "https://gitlab.com/mavit/poly-ansible")
11873 (commit commit)))
11874 (file-name (git-file-name name version))
11875 (sha256
11876 (base32
11877 "055shddqibib3hx2ykwdz910nrqws40cd407mq946l2bf6v87gj6"))))
11878 (build-system emacs-build-system)
11879 (propagated-inputs
11880 `(("emacs-ansible-doc" ,emacs-ansible-doc)
11881 ("emacs-jinja2-mode" ,emacs-jinja2-mode)
11882 ("emacs-polymode" ,emacs-polymode)
11883 ("emacs-yaml-mode" ,emacs-yaml-mode)))
11884 (properties '((upstream-name . "poly-ansible")))
11885 (home-page "https://gitlab.com/mavit/poly-ansible/")
11886 (synopsis "Polymode for Ansible - Jinja2 in YAML")
11887 (description
11888 "Edit YAML files for Ansible containing embedded Jinja2 templating.")
11889 (license license:gpl3+))))
11890
11891 (define-public emacs-polymode-org
11892 (package
11893 (name "emacs-polymode-org")
11894 (version "0.2")
11895 (source
11896 (origin
11897 (method git-fetch)
11898 (uri (git-reference
11899 (url "https://github.com/polymode/poly-org.git")
11900 (commit (string-append "v" version))))
11901 (file-name (git-file-name name version))
11902 (sha256
11903 (base32
11904 "04x6apjad4kg30456z1j4ipp64yjgkcaim6hqr6bb0rmrianqhck"))))
11905 (build-system emacs-build-system)
11906 (propagated-inputs
11907 `(("emacs-polymode" ,emacs-polymode)))
11908 (properties '((upstream-name . "poly-org")))
11909 (home-page "https://github.com/polymode/poly-org")
11910 (synopsis "Polymode definitions for Org mode buffers")
11911 (description
11912 "Provides definitions for @code{emacs-polymode} to support
11913 @code{emacs-org} buffers. Edit source blocks in an Org mode buffer using the
11914 native modes of the blocks' languages while remaining inside the primary Org
11915 buffer.")
11916 (license license:gpl3+)))
11917
11918 (define-public eless
11919 (package
11920 (name "eless")
11921 (version "0.3")
11922 (source
11923 (origin
11924 (method git-fetch)
11925 (uri (git-reference
11926 (url "https://github.com/kaushalmodi/eless.git")
11927 (commit (string-append "v" version))))
11928 (file-name (git-file-name name version))
11929 (sha256
11930 (base32 "0jr7vhh4vw69llhi0fh9ljscljkszkj0acdxl04da5hvqv6pnqbb"))))
11931 (build-system trivial-build-system)
11932 (inputs
11933 `(("bash" ,bash)))
11934 (arguments
11935 `(#:modules ((guix build utils))
11936 #:builder
11937 (begin
11938 (use-modules (guix build utils))
11939 (copy-recursively (assoc-ref %build-inputs "source") "source")
11940 (chdir "source")
11941 (substitute* "eless" (("/usr/bin/env bash")
11942 (string-append (assoc-ref %build-inputs "bash")
11943 "/bin/bash")))
11944 (install-file "eless" (string-append %output "/bin"))
11945 (install-file "doc/eless.info" (string-append %output "/share/info"))
11946 #t)))
11947 (home-page "https://github.com/kaushalmodi/eless")
11948 (synopsis "Use Emacs as a paginator")
11949 (description "@code{eless} provides a combination of Bash script
11950 and a minimal Emacs view-mode.
11951
11952 Feautures:
11953
11954 @itemize
11955 @item Independent of a user’s Emacs config.
11956 @item Customizable via the @code{(locate-user-emacs-file \"elesscfg\")} config.
11957 @item Not require an Emacs server to be already running.
11958 @item Syntax highlighting.
11959 @item Org-mode file rendering.
11960 @item @code{man} page viewer.
11961 @item Info viewer.
11962 @item Dired, wdired, (batch edit symbolic links).
11963 @item Colored diffs, git diff, git log, ls with auto ANSI detection.
11964 @item Filter log files lines matching a regexp.
11965 @item Auto-revert log files similar to @code{tail -f}.
11966 @item Quickly change frame and font sizes.
11967 @end itemize\n")
11968 (license license:expat)))
11969
11970 (define-public emacs-evil-matchit
11971 (package
11972 (name "emacs-evil-matchit")
11973 (version "2.3.4")
11974 (source
11975 (origin
11976 (method git-fetch)
11977 (uri (git-reference
11978 (url "https://github.com/redguardtoo/evil-matchit.git")
11979 (commit version)))
11980 (file-name (git-file-name name version))
11981 (sha256
11982 (base32 "1nflkmx08n3ya5vaipy1xg19hnqcp6f7ddsx9xjh5gl6ix2iz0az"))))
11983 (build-system emacs-build-system)
11984 (propagated-inputs
11985 `(("emacs-evil" ,emacs-evil)))
11986 (home-page "https://github.com/redguardtoo/evil-matchit")
11987 (synopsis "Vim matchit ported into Emacs")
11988 (description
11989 "@code{evil-matchit} is a minor mode for jumping between matching tags in
11990 evil mode using @kbd{%}. It is a port of @code{matchit} for Vim.")
11991 (license license:gpl3+)))
11992
11993 (define-public emacs-evil-smartparens
11994 (package
11995 (name "emacs-evil-smartparens")
11996 (version "0.4.0")
11997 (source
11998 (origin
11999 (method git-fetch)
12000 (uri (git-reference
12001 (url "https://github.com/expez/evil-smartparens.git")
12002 (commit version)))
12003 (file-name (git-file-name name version))
12004 (sha256
12005 (base32 "1di4qz5fbrlwbg16c2j0m7y8zqfxw027qd7zqmc3rwk9znbhg7wl"))))
12006 (build-system emacs-build-system)
12007 (propagated-inputs
12008 `(("emacs-evil" ,emacs-evil)
12009 ("emacs-smartparens" ,emacs-smartparens)))
12010 (home-page "https://github.com/expez/evil-smartparens")
12011 (synopsis "Emacs Evil integration for Smartparens")
12012 (description "@code{emacs-evil-smartparens} is an Emacs minor mode which
12013 makes Evil play nice with Smartparens. Evil is an Emacs minor mode that
12014 emulates Vim features and provides Vim-like key bindings.")
12015 (license license:gpl3+)))
12016
12017 (define-public emacs-evil-quickscope
12018 (package
12019 (name "emacs-evil-quickscope")
12020 (version "0.1.4")
12021 (source
12022 (origin
12023 (method git-fetch)
12024 (uri (git-reference
12025 (url "https://github.com/blorbx/evil-quickscope.git")
12026 (commit (string-append "v" version))))
12027 (file-name (git-file-name name version))
12028 (sha256
12029 (base32 "1ja9ggj70wf0nmma4xnc1zdzg2crq9h1cv3cj7cgwjmllflgkfq7"))))
12030 (build-system emacs-build-system)
12031 (propagated-inputs
12032 `(("emacs-evil" ,emacs-evil)))
12033 (arguments
12034 `(#:tests? #t
12035 #:test-command '("emacs" "--batch"
12036 "-l" "evil-quickscope-tests.el"
12037 "-f" "ert-run-tests-batch-and-exit")))
12038 (home-page "https://github.com/blorbx/evil-quickscope")
12039 (synopsis "Target highlighting for emacs evil-mode f,F,t and T commands")
12040 (description "@code{emacs-evil-quickscope} highlights targets for Evil
12041 mode’s f,F,t,T keys, allowing for quick navigation within a line. It is a
12042 port of quick-scope for Vim. Evil is an Emacs minor mode that emulates Vim
12043 features and provides Vim-like key bindings.")
12044 (license license:gpl3+)))
12045
12046 (define-public emacs-bongo
12047 (package
12048 (name "emacs-bongo")
12049 (version "1.0")
12050 (source
12051 (origin
12052 (method git-fetch)
12053 (uri (git-reference
12054 (url "https://github.com/dbrock/bongo.git")
12055 (commit version)))
12056 (file-name (git-file-name name version))
12057 (sha256
12058 (base32 "1q3ws2vn062dh7ci6jn2k2bcn7szh3ap64sgwkzdd6f1pas37fnr"))))
12059 (build-system emacs-build-system)
12060 (home-page "https://github.com/dbrock/bongo")
12061 (synopsis "Media player for Emacs")
12062 (description
12063 "This package provides a flexible media player for Emacs. @code{Bongo}
12064 supports multiple backends such as @code{vlc}, @code{mpg123},
12065 @code{ogg123}, @code{speexdec}, @code{timidity}, @code{mikmod} and
12066 @code{afplay}.")
12067 (license license:gpl2+)))
12068
12069 (define-public emacs-groovy-modes
12070 (package
12071 (name "emacs-groovy-modes")
12072 (version "2.0")
12073 (source (origin
12074 (method git-fetch)
12075 (uri (git-reference
12076 (url "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes")
12077 (commit version)))
12078 (file-name (git-file-name name version))
12079 (sha256
12080 (base32
12081 "0c1d4cbnlny8gpcd20zr1wxx6ggf28jgh7sgd5r1skpsvjpbfqx2"))))
12082 (build-system emacs-build-system)
12083 (propagated-inputs
12084 `(("emacs-s" ,emacs-s)))
12085 (home-page "https://github.com/Groovy-Emacs-Modes/groovy-emacs-modes")
12086 (synopsis "Groovy related modes for Emacs")
12087 (description
12088 "This package provides @code{groovy-mode} for syntax highlighting in
12089 Groovy source files, REPL integration with run-groovy and Grails project
12090 navigation with the grails mode.")
12091 (license license:gpl3+)))
12092
12093 (define-public emacs-org-tree-slide
12094 (let ((commit "036a36eec1cf712d3db155572aed325daa372eb5")
12095 (revision "2"))
12096 (package
12097 (name "emacs-org-tree-slide")
12098 (version (git-version "2.8.4" revision commit))
12099 (source (origin
12100 (method git-fetch)
12101 (uri (git-reference
12102 (url "https://github.com/takaxp/org-tree-slide.git")
12103 (commit commit)))
12104 (sha256
12105 (base32
12106 "1r8ncx25xmxicgciyv5przp68y8qgy40fm10ba55awvql4xcm0yk"))
12107 (file-name (git-file-name name version))))
12108 (build-system emacs-build-system)
12109 (home-page "https://github.com/takaxp/org-tree-slide")
12110 (synopsis "Presentation tool for org-mode")
12111 (description
12112 "Org-tree-slide provides a slideshow mode to view org-mode files. Use
12113 @code{org-tree-slide-mode} to enter the slideshow mode, and then @kbd{C->} and
12114 @kbd{C-<} to jump to the next and previous slide.")
12115 (license license:gpl3+))))
12116
12117 (define-public emacs-scratch-el
12118 (let ((commit "2cdf2b841ce7a0987093f65b0cc431947549f897")
12119 (revision "1"))
12120 (package
12121 (name "emacs-scratch-el")
12122 (version (git-version "1.2" revision commit))
12123 (source (origin
12124 (method git-fetch)
12125 (uri (git-reference
12126 (url "https://github.com/ieure/scratch-el.git")
12127 (commit commit)))
12128 (file-name (git-file-name name version))
12129 (sha256
12130 (base32
12131 "0wscsndynjmnliajqaz28r1ww81j8wh84zwaaswx51abhwgl0idf"))))
12132 (build-system emacs-build-system)
12133 (native-inputs
12134 `(("texinfo" ,texinfo)))
12135 (arguments
12136 '(#:phases
12137 (modify-phases %standard-phases
12138 (add-after 'install 'install-doc
12139 (lambda* (#:key outputs #:allow-other-keys)
12140 (unless (invoke "makeinfo" "scratch.texi")
12141 (error "makeinfo failed"))
12142 (install-file "scratch.info"
12143 (string-append (assoc-ref outputs "out")
12144 "/share/info"))
12145 #t)))))
12146 (home-page "https://github.com/ieure/scratch-el/")
12147 (synopsis "Create scratch buffers with the same mode as current buffer")
12148 (description "Scratch is an extension to Emacs that enables one to create
12149 scratch buffers that are in the same mode as the current buffer. This is
12150 notably useful when working on code in some language; you may grab code into a
12151 scratch buffer, and, by virtue of this extension, do so using the Emacs
12152 formatting rules for that language.")
12153 (license license:bsd-2))))
12154
12155 (define-public emacs-kv
12156 (package
12157 (name "emacs-kv")
12158 (version "0.0.19")
12159 (source
12160 (origin
12161 (method git-fetch)
12162 (uri (git-reference
12163 (url "https://github.com/nicferrier/emacs-kv.git")
12164 (commit "721148475bce38a70e0b678ba8aa923652e8900e")))
12165 (file-name (git-file-name name version))
12166 (sha256
12167 (base32
12168 "0r0lz2s6gvy04fwnafai668jsf4546h4k6zd6isx5wpk0n33pj5m"))))
12169 (build-system emacs-build-system)
12170 (arguments
12171 `(#:tests? #t
12172 #:test-command '("emacs" "--batch" "-l" "kv-tests.el"
12173 "-f" "ert-run-tests-batch-and-exit")))
12174 (home-page "https://github.com/nicferrier/emacs-kv")
12175 (synopsis "Key/Value data structures library for Emacs Lisp")
12176 (description "@code{emacs-kv} is a collection of tools for dealing with
12177 key/value data structures such as plists, alists and hash-tables in Emacs
12178 Lisp.")
12179 (license license:gpl3+)))
12180
12181 (define-public emacs-esxml
12182 (package
12183 (name "emacs-esxml")
12184 (version "0.3.4")
12185 (source (origin
12186 (method git-fetch)
12187 (uri (git-reference
12188 (url "https://github.com/tali713/esxml.git")
12189 (commit version)))
12190 (file-name (git-file-name name version))
12191 (sha256
12192 (base32
12193 "00vv8a75wdklygdyr4km9mc2ismxak69c45jmcny41xl44rp9x8m"))))
12194 (build-system emacs-build-system)
12195 (arguments
12196 `(#:phases
12197 (modify-phases %standard-phases
12198 (add-after 'unpack 'fix-sources
12199 (lambda _
12200 ;; See: https://github.com/tali713/esxml/pull/28.
12201 (substitute* "css-lite.el"
12202 ((";;; main interface")
12203 (string-append ";;; main interface\n"
12204 "(require 'cl-lib)"))
12205 (("mapcan")
12206 "cl-mapcan")
12207 (("',\\(cl-mapcan #'process-css-rule rules\\)")
12208 "(cl-mapcan #'process-css-rule ',rules)"))
12209 (substitute* "esxml-form.el"
12210 ((",esxml-form-field-defn")
12211 "#'esxml-form-field-defn"))
12212 ;; See: https://github.com/tali713/esxml/issues/25
12213 (delete-file "esxpath.el")
12214 #t)))))
12215 (propagated-inputs
12216 `(("emacs-kv" ,emacs-kv)))
12217 (home-page "https://github.com/tali713/esxml/")
12218 (synopsis "SXML for EmacsLisp")
12219 (description "This is XML/XHTML done with S-Expressions in EmacsLisp.
12220 Simply, this is the easiest way to write HTML or XML in Lisp. This library
12221 uses the native form of XML representation as used by many libraries already
12222 included within Emacs. See @code{esxml-to-xml} for a concise description of
12223 the format.")
12224 (license license:gpl3+)))
12225
12226 (define-public emacs-nov-el
12227 (package
12228 (name "emacs-nov-el")
12229 (version "0.2.9")
12230 (source (origin
12231 (method git-fetch)
12232 (uri (git-reference
12233 (url "https://github.com/wasamasa/nov.el.git")
12234 (commit version)))
12235 (file-name (git-file-name name version))
12236 (sha256
12237 (base32
12238 "0v01l1p35mcigixs6j4c5bpc7n7bd51kxa0p3l1xl0gr92774yq3"))))
12239 (build-system emacs-build-system)
12240 (arguments
12241 `(#:phases
12242 (modify-phases %standard-phases
12243 (add-after 'unpack 'embed-path-to-unzip
12244 (lambda _
12245 (substitute* "nov.el"
12246 (("\\(executable-find \"unzip\"\\)")
12247 (string-append "\"" (which "unzip") "\"")))
12248 #t)))))
12249 (propagated-inputs
12250 `(("emacs-dash" ,emacs-dash)
12251 ("emacs-esxml" ,emacs-esxml)))
12252 (inputs
12253 `(("unzip" ,unzip)))
12254 (home-page "https://github.com/wasamasa/nov.el/")
12255 (synopsis "Major mode for reading EPUBs in Emacs")
12256 (description "@code{nov.el} provides a major mode for reading EPUB
12257 documents.
12258
12259 Features:
12260
12261 @itemize
12262 @item Basic navigation (jump to TOC, previous/next chapter)
12263 @item Remembering and restoring the last read position
12264 @item Jump to next chapter when scrolling beyond end
12265 @item Renders EPUB2 (@code{.ncx}) and EPUB3 (@code{<nav>}) TOCs
12266 @item Hyperlinks to internal and external targets
12267 @item Supports textual and image documents
12268 @item View source of document files
12269 @item Metadata display
12270 @item Image rescaling
12271 @end itemize
12272 ")
12273 (license license:gpl3+)))
12274
12275 (define-public epipe
12276 (package
12277 (name "epipe")
12278 (version "0.1.0")
12279 (source
12280 (origin
12281 (method git-fetch)
12282 (uri (git-reference
12283 (url "https://github.com/cute-jumper/epipe.git")
12284 (commit version)))
12285 (file-name (git-file-name name version))
12286 (sha256
12287 (base32 "0lkisi1s7sn12nx8zh58qmsxwnk1rjwryj18wcbr148xqz3swg57"))))
12288 (build-system trivial-build-system)
12289 (inputs
12290 `(("bash" ,bash)
12291 ("perl" ,perl)))
12292 (arguments
12293 `(#:modules
12294 ((guix build utils))
12295 #:builder
12296 (begin
12297 (use-modules (guix build utils))
12298 ;; Extract source.
12299 (copy-recursively (assoc-ref %build-inputs "source") "source")
12300 (chdir "source")
12301 ;; Patch shebangs.
12302 (substitute* "epipe"
12303 (("/usr/bin/env bash")
12304 (string-append (assoc-ref %build-inputs "bash") "/bin/bash")))
12305 (patch-shebang "epipe.pl"
12306 (list (string-append (assoc-ref %build-inputs "perl")
12307 "/bin")))
12308 ;; Install.
12309 (for-each (lambda (file)
12310 (install-file file (string-append %output "/bin")))
12311 '("epipe" "epipe.pl"))
12312 #t)))
12313 (home-page "https://github.com/cute-jumper/epipe")
12314 (synopsis "Pipe to the @code{emacsclient}")
12315 (description "@code{epipe} provides an utility to use your editor in
12316 the pipeline, featuring the support for running @code{emacsclient}.")
12317 (license license:gpl3+)))
12318
12319 (define-public emacs-hcl-mode
12320 (package
12321 (name "emacs-hcl-mode")
12322 (version "0.03")
12323 (source
12324 (origin
12325 (method git-fetch)
12326 (uri (git-reference
12327 (url "https://github.com/syohex/emacs-hcl-mode.git")
12328 (commit version)))
12329 (file-name (git-file-name name version))
12330 (sha256
12331 (base32 "0jqrgq15jz6pvx38pnwkizzfiih0d3nxqphyrc92nqpcyimg8b6g"))))
12332 (build-system emacs-build-system)
12333 (home-page "https://github.com/syohex/emacs-hcl-mode")
12334 (synopsis "Major mode for the Hashicorp Configuration Language")
12335 (description
12336 "@code{emacs-hcl-mode} provides an Emacs major mode for working with
12337 @acronym{HCL, Hashicorp Configuration Language}. It provides syntax
12338 highlighting and indentation support.")
12339 (license license:gpl3+)))
12340
12341 (define-public emacs-terraform-mode
12342 (package
12343 (name "emacs-terraform-mode")
12344 (version "0.06")
12345 (source
12346 (origin
12347 (method git-fetch)
12348 (uri (git-reference
12349 (url "https://github.com/syohex/emacs-terraform-mode.git")
12350 (commit version)))
12351 (file-name (git-file-name name version))
12352 (sha256
12353 (base32 "05hn8kskx9lcgn7bzgam99c629zlryir2pickwrqndacjrqpdykx"))))
12354 (build-system emacs-build-system)
12355 (propagated-inputs
12356 `(("emacs-hcl-mode" ,emacs-hcl-mode)))
12357 (home-page "https://github.com/syohex/emacs-terraform-mode")
12358 (synopsis "Major mode for Terraform")
12359 (description
12360 "@code{emacs-terraform-mode} provides a major mode for working with
12361 @uref{https://www.terraform.io/, Terraform} configuration files. Most of the
12362 functionality is inherited from @code{hcl-mode}.")
12363 (license license:gpl3+)))
12364
12365 (define-public emacs-exec-path-from-shell
12366 (package
12367 (name "emacs-exec-path-from-shell")
12368 (version "1.12")
12369 (source
12370 (origin
12371 (method git-fetch)
12372 (uri (git-reference
12373 (url "https://github.com/purcell/exec-path-from-shell")
12374 (commit version)))
12375 (file-name (git-file-name name version))
12376 (sha256
12377 (base32
12378 "1ga8bpxngd3ph2hdiik92c612ki71qxw818i6rgx6f6a5r0sbf3p"))))
12379 (build-system emacs-build-system)
12380 (home-page "https://github.com/purcell/exec-path-from-shell")
12381 (synopsis "Get environment variables such as @var{PATH} from the shell")
12382 (description
12383 "This library allows the user to set Emacs @var{exec-path} and @var{PATH}
12384 from the shell @var{PATH}, so that @code{shell-command}, @code{compile} and
12385 the like work as expected on systems on which Emacs is not guaranteed to
12386 inherit a login shell's environment variables. It also allows other
12387 environment variables to be retrieved from the shell, so that Emacs will see
12388 the same values you get in a terminal.")
12389 (license license:gpl3+)))
12390
12391 (define-public emacs-frog-menu
12392 (let ((commit "740bbc88b8535d31f783f3b2043a2a6683afbf31")
12393 (revision "1"))
12394 (package
12395 (name "emacs-frog-menu")
12396 (version (git-version "0.2.9" revision commit))
12397 (source
12398 (origin
12399 (method git-fetch)
12400 (uri (git-reference
12401 (url "https://github.com/clemera/frog-menu")
12402 (commit commit)))
12403 (file-name (git-file-name name version))
12404 (sha256
12405 (base32
12406 "1g77424jwq62qj06rvld44s5hp0dw8rw2pwmmag6gd536zf65xrj"))))
12407 (build-system emacs-build-system)
12408 (propagated-inputs
12409 `(("emacs-posframe" ,emacs-posframe)
12410 ("emacs-avy" ,emacs-avy)))
12411 (home-page "https://github.com/clemera/frog-menu")
12412 (synopsis "Quickly pick items from ad hoc menus")
12413 (description
12414 "This package provides a popup offering a preview of a list of
12415 candidates on which user-defined dispatch actions can act.")
12416 (license license:gpl3+))))
12417
12418 (define-public emacs-frog-jump-buffer
12419 (let ((commit "2d7b342785ae27d45f5d252272df6eb773c78e20")
12420 (revision "1"))
12421 (package
12422 (name "emacs-frog-jump-buffer")
12423 (version (git-version "0.1.4" revision commit))
12424 (source
12425 (origin
12426 (method git-fetch)
12427 (uri (git-reference
12428 (url "https://github.com/waymondo/frog-jump-buffer")
12429 (commit commit)))
12430 (file-name (git-file-name name version))
12431 (sha256
12432 (base32
12433 "1z00by8hiss1r2lwmzrl8pnz6jykia2849dqqm4l3z5rf6lwvc0f"))))
12434 (build-system emacs-build-system)
12435 (propagated-inputs
12436 `(("emacs-dash" ,emacs-dash)
12437 ("emacs-frog-menu" ,emacs-frog-menu)
12438 ("emacs-avy" ,emacs-avy)))
12439 (home-page "https://github.com/waymondo/frog-jump-buffer")
12440 (synopsis "Jump to any Emacs buffer with minimal keystrokes")
12441 (description
12442 "This package provides a preview window of buffers that can be switched
12443 to with quicklink-style selections.")
12444 (license license:gpl3+))))
12445
12446 (define-public emacs-deft
12447 (package
12448 (name "emacs-deft")
12449 (version "0.8")
12450 (source
12451 (origin
12452 (method git-fetch)
12453 (uri (git-reference
12454 (url "https://github.com/jrblevin/deft.git")
12455 (commit (string-append "v" version))))
12456 (file-name (git-file-name name version))
12457 (sha256
12458 (base32
12459 "0z7cilgiz6krvl5h2z72hkch43qxmypb0k6p5vxn5lx1p6v0mrf2"))))
12460 (build-system emacs-build-system)
12461 (home-page "https://jblevins.org/projects/deft/")
12462 (synopsis "Quickly browse, filter, and edit plain text notes")
12463 (description
12464 "Deft is an Emacs mode for quickly browsing, filtering, and editing
12465 directories of plain text notes, inspired by Notational Velocity.")
12466 (license license:bsd-3)))
12467
12468 (define-public emacs-anzu
12469 (package
12470 (name "emacs-anzu")
12471 (version "0.62")
12472 (source
12473 (origin
12474 (method git-fetch)
12475 (uri (git-reference
12476 (url "https://github.com/syohex/emacs-anzu.git")
12477 (commit version)))
12478 (file-name (git-file-name name version))
12479 (sha256
12480 (base32 "1lzvc0ihcbplir4hqfyxfqpsd78arz15gk92kmq4f8ggbkl37fan"))))
12481 (build-system emacs-build-system)
12482 (home-page "https://github.com/syohex/emacs-anzu")
12483 (synopsis "Show number of matches in mode-line while searching")
12484 (description
12485 "Anzu provides a minor mode which displays \"current match/total
12486 matches\" in the mode line in various search modes. This is an Emacs port of
12487 Anzu.zim.")
12488 (license license:gpl3+)))
12489
12490 (define-public emacs-ascii-art-to-unicode
12491 (package
12492 (name "emacs-ascii-art-to-unicode")
12493 (version "1.12")
12494 (source
12495 (origin
12496 (method url-fetch)
12497 (uri (string-append "https://elpa.gnu.org/packages/ascii-art-to-unicode-"
12498 version ".el"))
12499 (sha256
12500 (base32
12501 "1w9h2lyriafxj71r79774gh822cz8mry3gdfzyj6ym6v9mvqypna"))))
12502 (build-system emacs-build-system)
12503 (home-page "https://elpa.gnu.org/packages/ascii-art-to-unicode.html")
12504 (synopsis "ASCII to Unicode art converter for Emacs")
12505 (description "This Emacs package provides the commands @command{aa2u} and
12506 @command{aa2u-rectangle}. Both of these commands can be used to convert
12507 simple ASCII art line drawings to Unicode; the former works on the active
12508 region of the buffer, while the latter works on rectangular selections.")
12509 (license license:gpl3+)))
12510
12511 (define-public emacs-emmet-mode
12512 (let ((commit "1acb821e0142136344ccf40c1e5fb664d7db2e70")
12513 (revision "1"))
12514 (package
12515 (name "emacs-emmet-mode")
12516 (version (git-version "1.0.8" revision commit))
12517 (source (origin
12518 (method git-fetch)
12519 (uri (git-reference
12520 (url "https://github.com/smihica/emmet-mode.git")
12521 (commit commit)))
12522 (file-name (git-file-name name version))
12523 (sha256
12524 (base32
12525 "1p25h191bm0h5b3w5apg7wks51k7pb7h4dlww4jbl9ri4d33fzcl"))))
12526 (build-system emacs-build-system)
12527 (home-page "https://github.com/smihica/emmet-mode")
12528 (synopsis "Unofficial Emmet's support for Emacs")
12529 (description
12530 "Unfold CSS-selector-like expressions to markup. It is intended to be
12531 used with SGML-like languages: XML, HTML, XHTML, XSL, etc.")
12532 (license license:gpl3+))))
12533
12534 (define-public emacs-ergoemacs-mode
12535 (let ((commit "3ce23bba3cb50562693860f87f3528c471d603ba")
12536 (revision "1"))
12537 (package
12538 (name "emacs-ergoemacs-mode")
12539 (version (git-version "5.16.10.12" revision commit))
12540 (source
12541 (origin
12542 (method git-fetch)
12543 (uri (git-reference
12544 (url "https://github.com/ergoemacs/ergoemacs-mode.git")
12545 (commit commit)))
12546 (file-name (git-file-name name version))
12547 (sha256
12548 (base32
12549 "1s3b9bridl78hh1mxmdk9nqlmqhibbaxk0a1cixmsf23s06w8w6l"))))
12550 (build-system emacs-build-system)
12551 (propagated-inputs
12552 `(("emacs-undo-tree" ,emacs-undo-tree)))
12553 (home-page "https://ergoemacs.github.io/")
12554 (synopsis "Emacs mode based on common modern interface and ergonomics")
12555 (description
12556 "This package provides an efficient Emacs keybinding set based on
12557 statistics of command frequency, and supports common shortcuts for open,
12558 close, copy, cut, paste, undo, redo.")
12559 (license license:gpl3+))))
12560
12561 (define-public emacs-password-store
12562 (package
12563 (name "emacs-password-store")
12564 (version "1.7.3")
12565 (source (origin
12566 (method url-fetch)
12567 (uri
12568 (string-append "https://git.zx2c4.com/password-store/snapshot/"
12569 "password-store-" version ".tar.xz"))
12570 (sha256
12571 (base32
12572 "1x53k5dn3cdmvy8m4fqdld4hji5n676ksl0ql4armkmsds26av1b"))))
12573 (build-system emacs-build-system)
12574 (arguments
12575 `(#:phases
12576 (modify-phases %standard-phases
12577 (add-after 'unpack 'extract-el-file
12578 (lambda _
12579 (copy-file "contrib/emacs/password-store.el" "password-store.el")
12580 (delete-file-recursively "contrib")
12581 (delete-file-recursively "man")
12582 (delete-file-recursively "src")
12583 (delete-file-recursively "tests"))))))
12584 (propagated-inputs
12585 `(("emacs-f" ,emacs-f)
12586 ("emacs-s" ,emacs-s)
12587 ("emacs-with-editor" ,emacs-with-editor)
12588 ("password-store" ,password-store)))
12589 (home-page "https://git.zx2c4.com/password-store/tree/contrib/emacs")
12590 (synopsis "Password store (pass) support for Emacs")
12591 (description
12592 "This package provides functions for working with pass (\"the
12593 standard Unix password manager\").")
12594 (license license:gpl2+)))
12595
12596 (define-public emacs-auth-source-pass
12597 (let ((commit "847a1f54ed48856b4dfaaa184583ef2c84173edf")
12598 (revision "2"))
12599 (package
12600 (name "emacs-auth-source-pass")
12601 (version (git-version "5.0.0" revision commit))
12602 (source
12603 (origin
12604 (method git-fetch)
12605 (uri (git-reference
12606 (url "https://github.com/DamienCassou/auth-password-store.git")
12607 (commit commit)))
12608 (file-name (git-file-name name version))
12609 (sha256
12610 (base32 "0g48z5w6n3c54zqfpx65dfyl9jqbl15idvbb1hhw2pd9f9r8fykk"))))
12611 (build-system emacs-build-system)
12612 (arguments
12613 `(#:tests? #t
12614 #:test-command '("emacs" "--batch"
12615 "-L" "."
12616 "-l" "test/auth-source-pass-tests.el"
12617 "-f" "ert-run-tests-batch-and-exit")))
12618 (home-page "https://github.com/DamienCassou/auth-password-store")
12619 (synopsis "Integrate @code{auth-source} with @code{password-store}")
12620 (description "This package helps Emacs integrate with the Unix
12621 @code{password-store} application.")
12622 (license license:gpl3+))))
12623
12624 (define-public emacs-pass
12625 (package
12626 (name "emacs-pass")
12627 (version "1.8")
12628 (source
12629 (origin
12630 (method git-fetch)
12631 (uri (git-reference
12632 (url "https://github.com/NicolasPetton/pass.git")
12633 (commit version)))
12634 (file-name (git-file-name name version))
12635 (sha256
12636 (base32 "05h4hacv3yygyjcjj004qbyqjpkl4pyhwgp25gsz8mw5c66l70cx"))))
12637 (build-system emacs-build-system)
12638 (propagated-inputs
12639 `(("emacs-password-store" ,emacs-password-store)
12640 ("emacs-f" ,emacs-f)))
12641 (home-page "https://github.com/NicolasPetton/pass")
12642 (synopsis "Major mode for @file{password-store.el}")
12643 (description "This is a major mode for managing password-store (pass)
12644 keychains. The keychain entries are displayed in a directory-like structure
12645 and can be consulted and modified.")
12646 (license license:gpl3+)))
12647
12648 (define-public emacs-psc-ide
12649 ;; There is no proper release. The base version is extracted from the
12650 ;; "Version" keyword in the main file.
12651 (let ((commit "7fc2b841be25f5bc5e1eb7d0634436181c38b3fe")
12652 (revision "1"))
12653 (package
12654 (name "emacs-psc-ide")
12655 (version (git-version "0.1.0" revision commit))
12656 (source
12657 (origin
12658 (method git-fetch)
12659 (uri
12660 (git-reference
12661 (url "https://github.com/purescript-emacs/psc-ide-emacs")
12662 (commit commit)))
12663 (file-name (git-file-name name version))
12664 (sha256
12665 (base32 "0r0fymyai30jimm34z1cmav4wgij8ci6s1d9y7qigygfbbfrdsmj"))))
12666 (build-system emacs-build-system)
12667 (propagated-inputs
12668 `(("emacs-company" ,emacs-company)
12669 ("emacs-dash" ,emacs-dash)
12670 ("emacs-flycheck" ,emacs-flycheck)
12671 ("emacs-let-alist" ,emacs-let-alist)
12672 ("emacs-s" ,emacs-s)
12673 ("emacs-seq" ,emacs-seq)))
12674 (home-page "https://github.com/purescript-emacs/psc-ide-emacs")
12675 (synopsis "Emacs integration for PureScript's psc-ide tool")
12676 (description
12677 "This package provices Emacs integration for @code{psc-ide}, an IDE
12678 protocol for PureScript programming language. It features:
12679
12680 @itemize
12681 @item Completions
12682 @item Type at point
12683 @item Go to definition
12684 @item Automatic imports
12685 @item Case split
12686 @item Build system integration, and
12687 @item Flycheck support
12688 @end itemize")
12689 (license license:gpl3+))))
12690
12691 (define-public emacs-evil-anzu
12692 (package
12693 (name "emacs-evil-anzu")
12694 (version "0.03")
12695 (source
12696 (origin
12697 (method git-fetch)
12698 (uri (git-reference
12699 (url "https://github.com/syohex/emacs-evil-anzu")
12700 (commit version)))
12701 (file-name (git-file-name name version))
12702 (sha256
12703 (base32 "0lw7fg4gqwj30r0l6k2ni36sxqkf65zf0d0z3rxnpwbxlf8dlkrr"))))
12704 (build-system emacs-build-system)
12705 (propagated-inputs
12706 `(("emacs-evil" ,emacs-evil)
12707 ("emacs-anzu" ,emacs-anzu)))
12708 (home-page "https://github.com/syohex/emacs-evil-anzu")
12709 (synopsis "Anzu for evil-mode")
12710 (description "@code{anzu} provides a minor mode that displays the current
12711 match and total match information in the mode-line in various search modes.")
12712 (license license:gpl3+)))
12713
12714 (define-public emacs-pg
12715 (let ((commit "4f6516ec3946d95dcef49abb6703cc89ecb5183d"))
12716 (package
12717 (name "emacs-pg")
12718 (version (git-version "0.1" "1" commit))
12719 (source (origin
12720 (method git-fetch)
12721 (uri (git-reference (url "https://github.com/cbbrowne/pg.el")
12722 (commit commit)))
12723 (file-name (git-file-name name version))
12724 (sha256
12725 (base32
12726 "1zh7v4nnpzvbi8yj1ynlqlawk5bmlxi6s80b5f2y7hkdqb5q26k0"))))
12727 (build-system emacs-build-system)
12728 (home-page "https://github.com/cbbrowne/pg.el")
12729 (synopsis "Emacs Lisp interface for PostgreSQL")
12730 (description
12731 "This package provides an Emacs Lisp interface for PostgreSQL.")
12732 (license license:gpl3+))))
12733
12734 (define-public emacs-cl-generic
12735 (package
12736 (name "emacs-cl-generic")
12737 (version "0.3")
12738 (source
12739 (origin
12740 (method url-fetch)
12741 (uri (string-append "https://elpa.gnu.org/packages/cl-generic-"
12742 version ".el"))
12743 (sha256
12744 (base32
12745 "0vb338bhjpsnrf60qgxny4z5rjrnifahnrv9axd4shay89d894zq"))))
12746 (build-system emacs-build-system)
12747 ;; Byte compilation of the autoload file fails.
12748 (arguments
12749 `(#:phases (modify-phases %standard-phases
12750 (delete 'enable-autoloads-compilation))))
12751 (home-page "https://elpa.gnu.org/packages/seq.html")
12752 (synopsis
12753 "Forward @code{cl-generic} compatibility for Emacs before version 25")
12754 (description "This package provides a subset of the features of the
12755 @code{cl-generic} package introduced in Emacs-25, for use on previous
12756 @code{emacsen}.")
12757 (license license:gpl3+)))
12758
12759 (define-public emacs-finalize
12760 (package
12761 (name "emacs-finalize")
12762 (version "2.0.0")
12763 (source
12764 (origin
12765 (method git-fetch)
12766 (uri (git-reference
12767 (url "https://github.com/skeeto/elisp-finalize.git")
12768 (commit version)))
12769 (file-name (git-file-name name version))
12770 (sha256
12771 (base32 "1gvlm4i62af5jscwz0jccc8ra0grprxpg2rlq91d5nn8dn5lpy79"))))
12772 (build-system emacs-build-system)
12773 (propagated-inputs
12774 `(("emacs-cl-generic" ,emacs-cl-generic)))
12775 (home-page "https://github.com/skeeto/elisp-finalize")
12776 (synopsis "Finalizers for Emacs Lisp")
12777 (description
12778 "This package runs a callback (a finalizer)
12779 after its registered lisp object has been garbage collected. This allows
12780 extra resources, such as buffers and processes, to be cleaned up after the
12781 object has been freed.")
12782 (license license:unlicense)))
12783
12784 (define-public emacs-emacsql
12785 (package
12786 (name "emacs-emacsql")
12787 (version "3.0.0")
12788 (source (origin
12789 (method git-fetch)
12790 (uri (git-reference
12791 (url "https://github.com/skeeto/emacsql.git")
12792 (commit (string-append version))))
12793 (file-name (git-file-name name version))
12794 (sha256
12795 (base32
12796 "1c84gxr1majqj4b59wgdy3lzm3ap66w9qsrnkx8hdbk9895ak81g"))))
12797 (build-system emacs-build-system)
12798 (arguments
12799 `(#:modules ((guix build emacs-build-system)
12800 (guix build utils)
12801 (guix build emacs-utils)
12802 (srfi srfi-26))
12803 #:phases
12804 (modify-phases %standard-phases
12805 (delete 'build) ;‘build-emacsql-sqlite’ compiles ‘*.el’ files.
12806 (add-before 'install 'patch-elisp-shell-shebangs
12807 (lambda _
12808 (substitute* (find-files "." "\\.el")
12809 (("/bin/sh") (which "sh")))
12810 #t))
12811 (add-after 'patch-elisp-shell-shebangs 'setenv-shell
12812 (lambda _
12813 (setenv "SHELL" "sh")))
12814 (add-after 'setenv-shell 'build-emacsql-sqlite
12815 (lambda _
12816 (invoke "make" "binary" "CC=gcc")))
12817 (add-after 'build-emacsql-sqlite 'install-emacsql-sqlite
12818 ;; This build phase installs emacs-emacsql binary.
12819 (lambda* (#:key outputs #:allow-other-keys)
12820 (install-file "sqlite/emacsql-sqlite"
12821 (string-append (assoc-ref outputs "out")
12822 "/bin"))
12823 #t))
12824 (add-after 'install-emacsql-sqlite 'patch-emacsql-sqlite.el
12825 ;; This build phase removes interactive prompts
12826 ;; and makes sure Emacs look for binaries in the right places.
12827 (lambda* (#:key outputs #:allow-other-keys)
12828 (let ((file "emacsql-sqlite.el"))
12829 (chmod file #o644)
12830 (emacs-substitute-sexps file
12831 ;; Make sure Emacs looks for ‘GCC’ binary in the right place.
12832 ("(executable-find" (which "gcc"))
12833 ;; Make sure Emacs looks for ‘emacsql-sqlite’ binary
12834 ;; in the right place.
12835 ("(defvar emacsql-sqlite-executable"
12836 (string-append (assoc-ref outputs "out")
12837 "/bin/emacsql-sqlite"))))))
12838 (replace 'install
12839 (lambda* (#:key outputs #:allow-other-keys)
12840 (let* ((out (assoc-ref outputs "out")))
12841 (install-file "sqlite/emacsql-sqlite"
12842 (string-append out "/bin"))
12843 (for-each (cut install-file <>
12844 (string-append out "/share/emacs/site-lisp"))
12845 (find-files "." "\\.elc*$")))
12846 #t)))))
12847 (inputs
12848 `(("emacs-minimal" ,emacs-minimal)
12849 ("mariadb" ,mariadb "lib")
12850 ("mariadb-dev" ,mariadb "dev")
12851 ("postgresql" ,postgresql)))
12852 (propagated-inputs
12853 `(("emacs-finalize" ,emacs-finalize)
12854 ("emacs-pg" ,emacs-pg)))
12855 (home-page "https://github.com/skeeto/emacsql")
12856 (synopsis "Emacs high-level SQL database front-end")
12857 (description "Any readable Lisp value can be stored as a value in EmacSQL,
12858 including numbers, strings, symbols, lists, vectors, and closures. EmacSQL
12859 has no concept of @code{TEXT} values; it's all just Lisp objects. The Lisp
12860 object @code{nil} corresponds 1:1 with @code{NULL} in the database.")
12861 (license license:gpl3+)))
12862
12863 (define-public emacs-closql
12864 ;; Take a commit newer than 1.0.0 release because of Emacs upgrade to 26.3.
12865 (let ((commit "70b98dbae53611d10a461d9b4a6f71086910dcef"))
12866 (package
12867 (name "emacs-closql")
12868 (version (git-version "1.0.0" "1" commit))
12869 (source
12870 (origin
12871 (method git-fetch)
12872 (uri (git-reference
12873 (url "https://github.com/emacscollective/closql.git")
12874 (commit commit)))
12875 (file-name (git-file-name name version))
12876 (sha256
12877 (base32
12878 "1wvhrihg663f61yzc7f0vha2abjdnlwbk0gjcwakdfk1bhwf5ikh"))))
12879 (build-system emacs-build-system)
12880 (propagated-inputs
12881 `(("emacs-emacsql" ,emacs-emacsql)))
12882 (home-page "https://github.com/emacscollective/closql")
12883 (synopsis "Store EIEIO objects using EmacSQL")
12884 (description
12885 "This package stores uniform EIEIO objects in an EmacSQL
12886 database. SQLite is used as backend. This library imposes some restrictions
12887 on what kind of objects can be stored; it isn't intended to store arbitrary
12888 objects. All objects have to share a common superclass and subclasses cannot
12889 add any additional instance slots.")
12890 (license license:gpl3))))
12891
12892 (define-public emacs-epkg
12893 ;; The release version is to old for the current database scheme.
12894 (let ((commit "432312b9583ed7b88ad9644fd1bf2183765a892e"))
12895 (package
12896 (name "emacs-epkg")
12897 (version (git-version "3.0.0" "1" commit))
12898 (source
12899 (origin
12900 (method git-fetch)
12901 (uri (git-reference
12902 (url "https://github.com/emacscollective/epkg.git")
12903 (commit commit)))
12904 (file-name (git-file-name name version))
12905 (sha256
12906 (base32
12907 "0d882kahn7a0vri7a9r15lvmfx1zn2hsga6jfcc6jv0hqbswlb2k"))))
12908 (build-system emacs-build-system)
12909 (propagated-inputs
12910 `(("emacs-closql" ,emacs-closql)
12911 ("emacs-dash" ,emacs-dash)))
12912 (home-page "https://emacsmirror.net")
12913 (synopsis "Browse the Emacsmirror package database")
12914 (description "This package provides access to a local copy of the
12915 Emacsmirror package database. It provides low-level functions for querying
12916 the database and a @file{package.el} user interface for browsing the database.
12917 Epkg itself is not a package manager.
12918
12919 Getting a local copy:
12920
12921 @example
12922 git clone https://github.com/emacsmirror/epkgs.git ~/.emacs.d/epkgs
12923 cd ~/.emacs.d/epkgs
12924 git submodule init
12925 git config --global url.https://github.com/.insteadOf git@@github.com:
12926 git submodule update
12927 @end example
12928
12929 Some submodule may be missing. In this case Git will prompt for a GitHub user
12930 name and password. To skip it press a @key{Return} key.
12931
12932 You could get a Epkg package list by invoking @code{epkg-list-packages} in
12933 Emacs.")
12934 (license license:gpl3+))))
12935
12936 (define-public emacs-elisp-slime-nav
12937 (package
12938 (name "emacs-elisp-slime-nav")
12939 (version "0.9")
12940 (source
12941 (origin
12942 (method git-fetch)
12943 (uri (git-reference
12944 (url "https://github.com/purcell/elisp-slime-nav.git")
12945 (commit version)))
12946 (file-name (git-file-name name version))
12947 (sha256
12948 (base32 "11vyy0bvzbs1h1kggikrvhd658j7c730w0pdp6qkm60rigvfi1ih"))))
12949 (build-system emacs-build-system)
12950 (home-page "https://github.com/purcell/elisp-slime-nav")
12951 (synopsis "Make @code{M-.} and @code{M-,} work for elisp like they do in SLIME")
12952 (description
12953 "This package provides SLIME's convenient @code{M-.}and @code{M-,} navigation
12954 in @code{emacs-lisp-mode}, together with an elisp equivalent of
12955 @code{slime-describe-symbol}.")
12956 (license license:gpl3+)))
12957
12958 (define-public emacs-dedicated
12959 (package
12960 (name "emacs-dedicated")
12961 (version "1.0.0")
12962 (source
12963 (origin
12964 (method git-fetch)
12965 (uri (git-reference
12966 (url "https://github.com/emacsorphanage/dedicated.git")
12967 (commit version)))
12968 (file-name (git-file-name name version))
12969 (sha256
12970 (base32 "0pba9s0h37sxyqh733vi6k5raa4cs7aradipf3826inw36jcw414"))))
12971 (build-system emacs-build-system)
12972 (home-page "https://github.com/emacsorphanage/dedicated")
12973 (synopsis "Emacs minor mode for toggling a windows's \"dedicated\" flag")
12974 (description
12975 "This simple Emacs minor mode allows you to toggle a window's
12976 \"dedicated\" flag. When a window is \"dedicated\", Emacs will not select
12977 files into that window. This can be quite handy since many commands will use
12978 another window to show results (compilation mode, starting info, and so on).
12979 A dedicated window won't be used for such a purpose. For details, please read
12980 the source file.")
12981 (license license:gpl2+)))
12982
12983 (define-public emacs-nnreddit
12984 (let ((commit "9843f99d01fd8f1eea2fc685965a7c7f4eeb187a")
12985 (revision "1"))
12986 (package
12987 (name "emacs-nnreddit")
12988 (version (string-append "0.0.1-" revision "."
12989 (string-take commit 7)))
12990 (source (origin
12991 (method git-fetch)
12992 (uri (git-reference
12993 (url "https://github.com/paul-issartel/nnreddit.git")
12994 (commit commit)))
12995 (file-name (git-file-name name version))
12996 (sha256
12997 (base32
12998 "0j4h3bnga640250jdq8bwyja49r41ssrsjd6lba4gzzllqk02nbn"))))
12999 (build-system emacs-build-system)
13000 (home-page "https://github.com/paul-issartel/nnreddit")
13001 (synopsis "Reddit backend for the Gnus newsreader")
13002 (description "@url{https://www.reddit.com} backend for the Gnus
13003 newsreader.")
13004 (license license:gpl3+))))
13005
13006 (define-public emacs-makey
13007 (package
13008 (name "emacs-makey")
13009 (version "0.3")
13010 (source
13011 (origin
13012 (method git-fetch)
13013 (uri (git-reference
13014 (url "https://github.com/mickeynp/makey.git")
13015 (commit version)))
13016 (file-name (git-file-name name version))
13017 (sha256
13018 (base32 "1rr7vpm3xxzcaam3m8xni3ajy8ycyljix07n2jzczayri9sd8csy"))))
13019 (build-system emacs-build-system)
13020 (home-page "https://github.com/mickeynp/makey")
13021 (synopsis "Emacs interactive command-line mode")
13022 (description
13023 "This package provides an Emacs interactive command-line mode.")
13024 (license license:gpl3+)))
13025
13026 (define-public emacs-outorg
13027 (let ((commit "78b0695121fb974bc4e971eb4ef7f8afd6d89d64"))
13028 (package
13029 (name "emacs-outorg")
13030 (version (git-version "2.0" "1" commit))
13031 (source
13032 (origin
13033 (method git-fetch)
13034 (uri (git-reference
13035 (url "https://github.com/alphapapa/outorg")
13036 (commit commit)))
13037 (file-name (git-file-name name version))
13038 (sha256
13039 (base32
13040 "03aclh4m3f7rb821gr9pwvnqkkl91px3qxdcarpf3ypa1x4fxvlj"))))
13041 (build-system emacs-build-system)
13042 (home-page "https://github.com/alphapapa/outorg")
13043 (synopsis "Org-style comment editing")
13044 (description "Outorg is for editing comment-sections of source-code
13045 files in temporary Org-mode buffers. It turns conventional
13046 literate-programming upside-down in that the default mode is the
13047 programming-mode, and special action has to be taken to switch to the
13048 text-mode (i.e. Org-mode).")
13049 (license license:gpl3+))))
13050
13051 (define-public emacs-outshine
13052 (package
13053 (name "emacs-outshine")
13054 (version "3.0.1")
13055 (source (origin
13056 (method git-fetch)
13057 (uri (git-reference
13058 (url "https://github.com/alphapapa/outshine.git")
13059 (commit (string-append "v" version))))
13060 (file-name (git-file-name name version))
13061 (sha256
13062 (base32
13063 "1lh9f5dgdbwfyzxk6nsg1xwdjs8gc6p9mbyyhp6f8fnk3h0y88cg"))))
13064 (build-system emacs-build-system)
13065 (propagated-inputs
13066 `(("emacs-outorg" ,emacs-outorg)))
13067 (home-page "https://github.com/alphapapa/outshine")
13068 (synopsis "Emacs outline with outshine")
13069 (description "Outshine attempts to bring the look and feel of
13070 @code{org-mode} to an Emacs outside of the Org major-mode. It is an extension
13071 of @code{outline-minor-mode} (@code{org-mode} itself derives from
13072 outline-mode), so there is no such thing like an outshine mode, only
13073 @code{outline-minor-mode} with outshine extensions loaded.")
13074 (license license:gpl3+)))
13075
13076 (define-public emacs-frecency
13077 (let ((commit "31ef9ff4af1a4fed3dcc24ea74037feea8795c87")
13078 (version "0.1-pre")
13079 (revision "1"))
13080 (package
13081 (name "emacs-frecency")
13082 (version (git-version version revision commit))
13083 (source (origin
13084 (method git-fetch)
13085 (uri (git-reference
13086 (url "https://github.com/alphapapa/frecency.el")
13087 (commit commit)))
13088 (sha256
13089 (base32
13090 "051aihjdg3x22svaxhwylpi8i6s2x9j8syvsj1jgilgjjdy15l6j"))
13091 (file-name (git-file-name name version))))
13092 (build-system emacs-build-system)
13093 (propagated-inputs
13094 `(("emacs-a" ,emacs-a)
13095 ("emacs-dash" ,emacs-dash)))
13096 (home-page "https://github.com/alphapapa/frecency.el")
13097 (synopsis "Sort items by frequency and recency of access")
13098 (description "This package provides a way of sorting items via
13099 a heuristic based on frequency and recency.")
13100 (license license:gpl3+))))
13101
13102 (define-public emacs-org-recent-headings
13103 (package
13104 (name "emacs-org-recent-headings")
13105 (version "0.1")
13106 (source (origin
13107 (method git-fetch)
13108 (uri (git-reference
13109 (url "https://github.com/alphapapa/org-recent-headings.git")
13110 (commit version)))
13111 (file-name (git-file-name name version))
13112 (sha256
13113 (base32
13114 "0gsrzmg3mssh9s28yjm9m866fnhm1pcligssz1q6brga6dm6f2yy"))))
13115 (build-system emacs-build-system)
13116 (propagated-inputs
13117 `(("emacs-org" ,emacs-org)
13118 ("emacs-dash" ,emacs-dash)
13119 ("emacs-frecency" ,emacs-frecency)))
13120 (home-page "https://github.com/alphapapa/org-recent-headings")
13121 (synopsis "Navigate to recently used Org headings and lists")
13122 (description "This package maintains a list of recently used Org headings,
13123 as well as functions for navigating between these headings.")
13124 (license license:gpl3+)))
13125
13126 (define-public emacs-org-super-agenda
13127 ;; emacs-org-sidebar depends on a newer commit than the latest release version.
13128 (let ((commit "a87ca11fbbe72ab6c1c4c3b55ae9e1e93ebfb8ba")
13129 (revision "3"))
13130 (package
13131 (name "emacs-org-super-agenda")
13132 (version (git-version "1.1.1" revision commit))
13133 (source (origin
13134 (method git-fetch)
13135 (uri (git-reference
13136 (url "https://github.com/alphapapa/org-super-agenda")
13137 (commit commit)))
13138 (file-name (git-file-name name version))
13139 (sha256
13140 (base32
13141 "08b7babdaqblb6jff57an4kbcxk6fkhf668620fipfjgbsnqv3ff"))))
13142 (build-system emacs-build-system)
13143 (propagated-inputs
13144 `(("emacs-org" ,emacs-org)
13145 ("emacs-dash" ,emacs-dash)
13146 ("emacs-ts" ,emacs-ts)
13147 ("emacs-ht" ,emacs-ht)
13148 ("emacs-s" ,emacs-s)))
13149 (home-page "https://github.com/alphapapa/org-super-agenda")
13150 (synopsis "Supercharged Org agenda")
13151 (description "This package allows items in the Org agenda to be grouped
13152 into sections while preserving the structure imposed by any timestamps.")
13153 (license license:gpl3+))))
13154
13155 (define-public emacs-org-make-toc
13156 (package
13157 (name "emacs-org-make-toc")
13158 (version "0.5")
13159 (source (origin
13160 (method git-fetch)
13161 (uri (git-reference
13162 (url "https://github.com/alphapapa/org-make-toc")
13163 (commit version)))
13164 (file-name (git-file-name name version))
13165 (sha256
13166 (base32
13167 "180ji6nnj6qj0rs1rdp1zlcrfsqf7ikb44ym8icbp5d6al2s4hnr"))))
13168 (build-system emacs-build-system)
13169 (propagated-inputs
13170 `(("emacs-org" ,emacs-org)
13171 ("emacs-dash" ,emacs-dash)
13172 ("emacs-s" ,emacs-s)))
13173 (home-page "https://github.com/alphapapa/org-make-toc")
13174 (synopsis "Maintain a table of contents for an Org file")
13175 (description "This package facilitates the creation and maintenance of
13176 tables of contents.")
13177 (license license:gpl3+)))
13178
13179 (define-public emacs-ts
13180 (let ((commit "395649a2f2ba79028331bb1fa9ec08b218950ff6")
13181 (revision "2"))
13182 (package
13183 (name "emacs-ts")
13184 (version (git-version "0.1" revision commit))
13185 (source (origin
13186 (method git-fetch)
13187 (uri (git-reference
13188 (url "https://github.com/alphapapa/ts.el")
13189 (commit commit)))
13190 (sha256
13191 (base32
13192 "02603wv66fplsigxd87jy23hrb5g9vigszcpdqrdv0ypaqaxlr3a"))
13193 (file-name (git-file-name name version))))
13194 (build-system emacs-build-system)
13195 (propagated-inputs
13196 `(("emacs-s" ,emacs-s)
13197 ("emacs-dash" ,emacs-dash)))
13198 (arguments
13199 ;; XXX: Three tests are failing because of a timezone-related issue
13200 ;; with how they're written. On my machine, all the failing test
13201 ;; results are 18000 seconds (5 hours) off.
13202
13203 ;; The ts-parse-org function accepts a string without any timezone
13204 ;; info, not assumed to be in Unix time, and converts it to a so-called
13205 ;; ts struct. The ts-unix function (accessor) accepts a ts struct,
13206 ;; then seems to assume the struct's corresponding time is in terms of
13207 ;; the user's current time zone, before returning a Unix time in
13208 ;; seconds.
13209
13210 ;; The failing tests all have similar problems, but nothing else about
13211 ;; the library seems particularly off.
13212
13213 `(#:tests? #t
13214 #:test-command '("emacs" "--batch"
13215 "-l" "test/test.el"
13216 "-f" "ert-run-tests-batch-and-exit")
13217 #:phases
13218 (modify-phases %standard-phases
13219 (add-before 'check 'make-tests-writable
13220 (lambda _
13221 (make-file-writable "test/test.el")
13222 #t))
13223 (add-before 'check 'delete-failing-tests
13224 (lambda _
13225 (emacs-batch-edit-file "test/test.el"
13226 `(progn (progn
13227 (goto-char (point-min))
13228 (dolist (test-regexp '("ert-deftest ts-format"
13229 "ert-deftest ts-parse-org\\_>"
13230 "ert-deftest ts-parse-org-element"))
13231 (re-search-forward test-regexp)
13232 (beginning-of-line)
13233 (kill-sexp)))
13234 (basic-save-buffer)))
13235 #t)))))
13236 (home-page "https://github.com/alphapapa/ts.el")
13237 (synopsis "Timestamp and date/time library")
13238 (description "This package facilitates manipulating dates, times, and
13239 timestamps by providing a @code{ts} struct.")
13240 (license license:gpl3+))))
13241
13242 (define-public emacs-peg
13243 (package
13244 (name "emacs-peg")
13245 (version "0.6")
13246 (source (origin
13247 (method git-fetch)
13248 (uri (git-reference
13249 (url "https://github.com/emacsmirror/peg")
13250 (commit version)))
13251 (sha256
13252 (base32
13253 "0kjz7ch4bn0m4v9zgqyqcrsasnqc5c5drv2hp22j7rnbb7ny0q3n"))
13254 (file-name (git-file-name name version))))
13255 (build-system emacs-build-system)
13256 (home-page "https://github.com/emacsmirror/peg/")
13257 (synopsis "Parsing Expression Grammars in Elisp")
13258 (description "This package provides a macro that parses the current buffer
13259 according to a parsing expression grammar.")
13260 (license license:gpl3+)))
13261
13262 (define-public emacs-org-ql
13263 (package
13264 (name "emacs-org-ql")
13265 (version "0.3.2")
13266 (source (origin
13267 (method git-fetch)
13268 (uri (git-reference
13269 (url "https://github.com/alphapapa/org-ql")
13270 (commit version)))
13271 (sha256
13272 (base32
13273 "11bhpi2l28vp8mm9nx18jljbqdnh9vxpv9kp1dn9lpsgivcdbc34"))
13274 (file-name (git-file-name name version))))
13275 (build-system emacs-build-system)
13276 (propagated-inputs
13277 `(("emacs-s" ,emacs-s)
13278 ("emacs-f" ,emacs-f)
13279 ("emacs-ov" ,emacs-ov)
13280 ("emacs-peg" ,emacs-peg)
13281 ("emacs-org-super-agenda" ,emacs-org-super-agenda)
13282 ("emacs-ts" ,emacs-ts)
13283 ("emacs-org" ,emacs-org)
13284 ("emacs-helm" ,emacs-helm)
13285 ("emacs-helm-org" ,emacs-helm-org)
13286 ("emacs-dash" ,emacs-dash)))
13287 (native-inputs
13288 `(("emacs-buttercup" ,emacs-buttercup)))
13289 (arguments
13290 `(#:phases
13291 (modify-phases %standard-phases
13292 (add-after 'unpack 'require-helm
13293 (lambda _
13294 (substitute* "helm-org-ql.el"
13295 (("^;;;; Requirements")
13296 ";;;; Requirements\n(require 'helm)\n(require 'helm-org)"))
13297 #t)))
13298 #:tests? #t
13299 #:test-command '("buttercup" "-L" ".")))
13300 (home-page "https://github.com/alphapapa/org-ql/")
13301 (synopsis "Query language for Org buffers")
13302 (description "This package provides a Lispy query language for Org
13303 files, allowing for actions to be performed based on search criteria.")
13304 (license license:gpl3+)))
13305
13306 (define-public emacs-org-auto-expand
13307 (let ((commit "4938d5f6460e2f8f051ba9ac000b291bfa43ef62")
13308 (revision "1"))
13309 (package
13310 (name "emacs-org-auto-expand")
13311 (version (git-version "0.1" revision commit))
13312 (source (origin
13313 (method git-fetch)
13314 (uri (git-reference
13315 (url "https://github.com/alphapapa/org-auto-expand")
13316 (commit commit)))
13317 (file-name (git-file-name name version))
13318 (sha256
13319 (base32
13320 "1my0c6xmkh37lwi6l472lz9d86lf20h6xcllzlxm1lxa24rhva6v"))))
13321 (build-system emacs-build-system)
13322 (propagated-inputs
13323 `(("emacs-org" ,emacs-org)
13324 ("emacs-dash" ,emacs-dash)))
13325 (home-page "https://github.com/alphapapa/org-auto-expand")
13326 (synopsis "Automatically expand certain Org headings")
13327 (description "This package allows a customizable set of headings in Org
13328 files to be expanded upon opening them.")
13329 (license license:gpl3+))))
13330
13331 (define-public emacs-parsebib
13332 (package
13333 (name "emacs-parsebib")
13334 (version "2.3.3")
13335 (source
13336 (origin
13337 (method git-fetch)
13338 (uri (git-reference
13339 (url "https://github.com/joostkremers/parsebib.git")
13340 (commit version)))
13341 (file-name (git-file-name name version))
13342 (sha256
13343 (base32 "0mpgyy9qfb5x4fvlmb274hgayjbwf0bgk65dxyx31zikjwpcd56p"))))
13344 (build-system emacs-build-system)
13345 (home-page "https://github.com/joostkremers/parsebib")
13346 (synopsis "Library for parsing @file{.bib} files")
13347 (description
13348 "This package provides an Emacs library for parsing @file{.bib} files.")
13349 (license license:gpl3+)))
13350
13351 (define-public emacs-ebib
13352 (package
13353 (name "emacs-ebib")
13354 (version "2.22.1")
13355 (source
13356 (origin
13357 (method git-fetch)
13358 (uri (git-reference
13359 (url "https://github.com/joostkremers/ebib.git")
13360 (commit version)))
13361 (file-name (git-file-name name version))
13362 (sha256
13363 (base32 "0spiz5r2y4pdpyc4d3f9w228giq0j9rm8f5h5akzn5rwiq9pfkwz"))))
13364 (build-system emacs-build-system)
13365 (propagated-inputs
13366 `(("emacs-parsebib" ,emacs-parsebib)))
13367 (home-page "https://joostkremers.github.io/ebib/")
13368 (synopsis "BibTeX database manager for Emacs")
13369 (description
13370 "Ebib is a BibTeX database manager that runs in GNU Emacs.
13371 With Ebib you can create, sort and manage your @file{.bib} database files, all
13372 within Emacs. It supports searching, multi-line field values and
13373 @samp{@@String} and @samp{@@Preamble} definitions. Ebib integrates
13374 with (La)TeX mode, Org mode and other Emacs editing modes.")
13375 ;; The Ebib source files are released under a BSD license with
13376 ;; the exception of org-ebib.el, which is released under the GNU
13377 ;; GPL.
13378 (license (list license:bsd-3
13379 license:gpl3+))))
13380
13381 (define-public emacs-biblio
13382 (package
13383 (name "emacs-biblio")
13384 (version "0.2")
13385 (source
13386 (origin
13387 (method git-fetch)
13388 (uri (git-reference
13389 (url "https://github.com/cpitclaudel/biblio.el.git")
13390 (commit version)))
13391 (file-name (git-file-name name version))
13392 (sha256
13393 (base32 "1gxjind6r235az59dr8liv03d8994mqb8a7m28j3c12q7p70aziz"))))
13394 (build-system emacs-build-system)
13395 (propagated-inputs
13396 `(("emacs-seq" ,emacs-seq)
13397 ("emacs-dash" ,emacs-dash)
13398 ("emacs-let-alist" ,emacs-let-alist)))
13399 (home-page "https://github.com/cpitclaudel/biblio.el")
13400 (synopsis "Browse and import bibliographic references")
13401 (description "This package provides an extensible Emacs package for
13402 browsing and fetching references.
13403
13404 @file{biblio.el} makes it easy to browse and gather bibliographic references
13405 and publications from various sources, by keywords or by DOI. References are
13406 automatically fetched from well-curated sources, and formatted as BibTeX.")
13407 (license license:gpl3+)))
13408
13409 (define-public emacs-helm-bibtex
13410 (let ((commit "d4471232be26793fbf56c0ac3690b5f537c378b9")
13411 (revision "2"))
13412 (package
13413 (name "emacs-helm-bibtex")
13414 (version (string-append "2.0.0" "-" revision "."
13415 (string-take commit 7)))
13416 (source
13417 (origin
13418 (method git-fetch)
13419 (uri (git-reference
13420 (url "https://github.com/tmalsburg/helm-bibtex.git")
13421 (commit commit)))
13422 (file-name (git-file-name name version))
13423 (sha256
13424 (base32
13425 "1bkzhic6qckb267025il1r3xcpz99kisphxiafni1pxvf9jafr0j"))))
13426 (build-system emacs-build-system)
13427 (propagated-inputs
13428 `(("emacs-helm" ,emacs-helm)
13429 ("emacs-parsebib" ,emacs-parsebib)
13430 ("emacs-s" ,emacs-s)
13431 ("emacs-dash" ,emacs-dash)
13432 ("emacs-f" ,emacs-f)
13433 ("emacs-biblio" ,emacs-biblio)
13434 ("emacs-ivy" ,emacs-ivy)))
13435 (home-page "https://github.com/tmalsburg/helm-bibtex")
13436 (synopsis "Bibliography manager based on Helm")
13437 (description "This package provides bibliography manager for Emacs,
13438 based on Helm and the bibtex-completion backend.
13439
13440 Key features:
13441
13442 @itemize
13443 @item Quick access to your bibliography from within Emacs
13444 @item Powerful search capabilities
13445 @item Provides instant search results as you type
13446 @item Tightly integrated with LaTeX authoring, emails, Org mode, etc.
13447 @item Open the PDFs, URLs, or DOIs associated with an entry
13448 @item Insert LaTeX cite commands, Ebib links, or Pandoc citations,
13449 BibTeX entries, or plain text references at point, attach PDFs to emails
13450 @item Support for note taking
13451 @item Quick access to online bibliographic databases such as Pubmed,
13452 arXiv, Google Scholar, Library of Congress, etc.
13453 @item Imports BibTeX entries from CrossRef and other sources.
13454 @end itemize\n")
13455 (license license:gpl3+))))
13456
13457 (define-public emacs-ewmctrl
13458 (let ((commit "3d0217c4d6cdb5c308b6cb4293574f470d4faacf"))
13459 (package
13460 (name "emacs-ewmctrl")
13461 (version (git-version "0.0.1" "1" commit))
13462 (source
13463 (origin
13464 (method git-fetch)
13465 (uri (git-reference
13466 (url "https://github.com/flexibeast/ewmctrl.git")
13467 (commit commit)))
13468 (file-name (git-file-name name version))
13469 (sha256
13470 (base32
13471 "0ilwvx0qryv3v6xf0gxqwnfm6pf96gxap8h9g3f6z6lk9ff4n1wi"))))
13472 (build-system emacs-build-system)
13473 (arguments
13474 '(#:phases
13475 (modify-phases %standard-phases
13476 (add-after 'unpack 'patch-ewmctrl
13477 ;; This build phase makes sure ‘ewmctrl’ looks
13478 ;; for ‘wmctrl’ in the right place.
13479 (lambda _
13480 (let ((file "ewmctrl.el"))
13481 (chmod file #o644)
13482 (emacs-substitute-sexps file
13483 ("(defcustom ewmctrl-wmctrl-path" (which "wmctrl")))))))))
13484 (inputs
13485 `(("wmctrl" ,wmctrl)))
13486 (home-page "https://github.com/flexibeast/ewmctrl")
13487 (synopsis "Emacs interface to @code{wmctrl}")
13488 (description "@code{ewmctrl} provides an Emacs interface to
13489 @code{wmctrl} command-line window-management program.")
13490 (license license:gpl3+))))
13491
13492 (define-public emacs-erc-image
13493 (let ((commit "82fb3871f02e24b1e880770b9a3d187aab43d0f0")
13494 (revision "1"))
13495 (package
13496 (name "emacs-erc-image")
13497 (version (git-version "0" revision commit))
13498 (source
13499 (origin
13500 (method git-fetch)
13501 (uri (git-reference
13502 (url "https://github.com/kidd/erc-image.el")
13503 (commit commit)))
13504 (file-name (git-file-name name version))
13505 (sha256
13506 (base32
13507 "1q8mkf612fb4fjp8h4kbr107wn083iqfdgv8f80pcmil8y33dw9i"))))
13508 (build-system emacs-build-system)
13509 (home-page "https://github.com/kidd/erc-image.el")
13510 (synopsis "Show inlined images (png/jpg/gif/svg) in ERC buffers")
13511 (description "This plugin subscribes to hooks @code{erc-insert-modify-hook}
13512 and @code{erc-send-modify-hook} to download and show images.")
13513 (license license:gpl3+))))
13514
13515 (define-public emacs-helm-gtags
13516 (package
13517 (name "emacs-helm-gtags")
13518 (version "1.5.6")
13519 (source
13520 (origin
13521 (method git-fetch)
13522 (uri (git-reference
13523 (url "https://github.com/syohex/emacs-helm-gtags.git")
13524 (commit version)))
13525 (file-name (git-file-name name version))
13526 (sha256
13527 (base32 "0zyspn9rqfs3hkq8qx0q1w5qiv30ignbmycyv0vn3a6q7a5fsnhx"))))
13528 (build-system emacs-build-system)
13529 (propagated-inputs
13530 `(("emacs-helm" ,emacs-helm)))
13531 (home-page "https://github.com/syohex/emacs-helm-gtags")
13532 (synopsis "Emacs Helm interface to GNU Global")
13533 (description
13534 "@code{emacs-helm-gtags} provides a Emacs Helm interface to GNU Global.")
13535 (license license:gpl3+)))
13536
13537 (define-public emacs-list-utils
13538 (package
13539 (name "emacs-list-utils")
13540 (version "0.4.4")
13541 (source
13542 (origin
13543 (method git-fetch)
13544 (uri (git-reference
13545 (url "https://github.com/rolandwalker/list-utils.git")
13546 (commit (string-append "v" version))))
13547 (file-name (git-file-name name version))
13548 (sha256
13549 (base32 "0ql159v7sxs33yh2l080kchrj52vk34knz50cvqi3ykpb7djg3sz"))))
13550 (build-system emacs-build-system)
13551 (home-page "https://github.com/rolandwalker/list-utils")
13552 (synopsis "List-manipulation utility functions")
13553 (description "This package provides a list manipulation library for Emacs.")
13554 (license license:gpl3+)))
13555
13556 (define-public emacs-move-text
13557 (package
13558 (name "emacs-move-text")
13559 (version "2.0.8")
13560 (source
13561 (origin
13562 (method git-fetch)
13563 (uri (git-reference
13564 (url "https://github.com/emacsfodder/move-text.git")
13565 (commit version)))
13566 (file-name (git-file-name name version))
13567 (sha256
13568 (base32 "06jxk5g23822gfmwrxhc34zand3dr8p2wjh1zs3j61ibz6n0nmz1"))))
13569 (build-system emacs-build-system)
13570 (home-page "https://github.com/emacsfodder/move-text")
13571 (synopsis "Move current line or region with M-up or M-down")
13572 (description "This package provide functions to move the current line
13573 using @kbd{M-up} or @kbd{M-down} if a region is marked, it will move the
13574 region instead.")
13575 (license license:gpl3+)))
13576
13577 (define-public emacs-validate
13578 (package
13579 (name "emacs-validate")
13580 (version "1.0.5")
13581 (source (origin
13582 (method git-fetch)
13583 (uri (git-reference
13584 (url "https://github.com/Malabarba/validate.el")
13585 (commit version)))
13586 (file-name (git-file-name name version))
13587 (sha256
13588 (base32
13589 "1l12ibx6cw4mgicgjpw71fb4fr4sd0k54lvbpq7ngc29br3j6i4v"))))
13590 (build-system emacs-build-system)
13591 (home-page "https://github.com/Malabarba/validate.el")
13592 (synopsis "Emacs library for scheme validation")
13593 (description "This Emacs library provides two functions that perform
13594 schema validation.")
13595 (license license:gpl3+)))
13596
13597 (define-public emacs-rainbow-blocks
13598 (let ((commit "dd435d7bb34ff6f162a5f315df308b90b7e9f842"))
13599 (package
13600 (name "emacs-rainbow-blocks")
13601 (version (git-version "1.0.0" "1" commit))
13602 (source (origin
13603 (method git-fetch)
13604 (uri (git-reference
13605 (url "https://github.com/istib/rainbow-blocks.git")
13606 (commit commit)))
13607 (file-name (git-file-name name version))
13608 (sha256
13609 (base32
13610 "06yfb3i7wzvqrhkb61zib9xvpb5i00s4frizkzff66im05k0n795"))))
13611 (build-system emacs-build-system)
13612 (home-page "https://github.com/istib/rainbow-blocks")
13613 (synopsis "Highlight sexp blocks")
13614 (description "Rainbow-blocks is an Emacs mode that highlights blocks
13615 made of parentheses, brackets, and braces according to their depth. Each
13616 successive level is highlighted in a different color. This makes it easy to
13617 orient yourself in the code, and tell which statements are at a given level.")
13618 (license license:gpl3+))))
13619
13620 (define-public emacs-hierarchy
13621 (package
13622 (name "emacs-hierarchy")
13623 (version "0.7.0")
13624 (source
13625 (origin
13626 (method git-fetch)
13627 (uri (git-reference
13628 (url "https://github.com/DamienCassou/hierarchy.git")
13629 (commit (string-append "v" version))))
13630 (file-name (git-file-name name version))
13631 (sha256
13632 (base32 "1kykbb1sil5cycfa5aj8dhsxc5yrx1641i2np5kwdjid6ahdlz5r"))))
13633 (build-system emacs-build-system)
13634 (native-inputs
13635 `(("emacs-buttercup" ,emacs-buttercup)))
13636 (arguments
13637 `(#:tests? #t
13638 #:test-command '("buttercup" "-L" ".")))
13639 (home-page "https://github.com/DamienCassou/hierarchy")
13640 (synopsis "Library to create and display hierarchy structures")
13641 (description "This package provides an Emacs library to create, query,
13642 navigate and display hierarchy structures.")
13643 (license license:gpl3+)))
13644
13645 (define-public emacs-tree-mode
13646 (let ((commit "b06078826d5875d74b0e7b7ac47b0d0917610534")
13647 (revision "1"))
13648 (package
13649 (name "emacs-tree-mode")
13650 (version (string-append "0.0.1" "-" revision "."
13651 (string-take commit 7)))
13652 (source
13653 (origin
13654 (method git-fetch)
13655 (uri (git-reference
13656 (url "https://github.com/emacsorphanage/tree-mode.git")
13657 (commit commit)))
13658 (file-name (git-file-name name version))
13659 (sha256
13660 (base32
13661 "13bbdhdmqg4x9yghanhr8fsbsxbnypzxdxgicz31sjjm675kpnix"))))
13662 (build-system emacs-build-system)
13663 (home-page "https://github.com/emacsorphanage/tree-mode")
13664 (synopsis "Emacs mode to manage tree widgets")
13665 (description
13666 "This package provides an Emacs library to manage tree widgets.")
13667 (license license:gpl3+))))
13668
13669 (define-public emacs-md4rd
13670 (package
13671 (name "emacs-md4rd")
13672 (version "0.3.1")
13673 (source (origin
13674 (method git-fetch)
13675 (uri (git-reference
13676 (url "https://github.com/ahungry/md4rd.git")
13677 (commit version)))
13678 (file-name (git-file-name name version))
13679 (sha256
13680 (base32
13681 "1n6g6k4adzkkn1g7z4j27s35xy12c1fg2r08gv345ddr3wplq4ri"))))
13682 (propagated-inputs
13683 `(("emacs-hierarchy" ,emacs-hierarchy)
13684 ("emacs-request" ,emacs-request)
13685 ("emacs-dash" ,emacs-dash)
13686 ("emacs-s" ,emacs-s)
13687 ("emacs-tree-mode" ,emacs-tree-mode)))
13688 (build-system emacs-build-system)
13689 (home-page "https://github.com/ahungry/md4rd")
13690 (synopsis "Emacs Mode for Reddit")
13691 (description
13692 "This package allows reading Reddit from within Emacs interactively.")
13693 (license license:gpl3+)))
13694
13695 (define-public emacs-pulseaudio-control
13696 (let ((commit "7e1a87068379075a5e9ce36c64c686c03d20d379")
13697 (revision "3"))
13698 (package
13699 (name "emacs-pulseaudio-control")
13700 (version (git-version "0.0.1" revision commit))
13701 (source
13702 (origin
13703 (method git-fetch)
13704 (uri (git-reference
13705 (url "https://github.com/flexibeast/pulseaudio-control.git")
13706 (commit commit)))
13707 (file-name (git-file-name name version))
13708 (sha256
13709 (base32
13710 "0wcaqyh15x56255rrj350089z15pnwixa2vf0ly6dv0hjmzmh3mr"))))
13711 (build-system emacs-build-system)
13712 (arguments
13713 '(#:phases (modify-phases %standard-phases
13714 (add-after 'unpack 'patch-file-name
13715 (lambda* (#:key inputs #:allow-other-keys)
13716 (let ((pulseaudio (assoc-ref inputs "pulseaudio")))
13717 (chmod "pulseaudio-control.el" #o600)
13718 (emacs-substitute-variables "pulseaudio-control.el"
13719 ("pulseaudio-control-pactl-path"
13720 (string-append pulseaudio "/bin/pactl")))
13721 #t))))))
13722 (inputs `(("pulseaudio" ,pulseaudio)))
13723 (home-page "https://github.com/flexibeast/pulseaudio-control")
13724 (synopsis "Control @code{pulseaudio} from Emacs")
13725 (description
13726 "This package allows controlling @code{pulseaudio} from Emacs.")
13727 (license license:gpl3+))))
13728
13729 (define-public emacs-datetime
13730 (package
13731 (name "emacs-datetime")
13732 (version "0.3")
13733 (source
13734 (origin
13735 (method git-fetch)
13736 (uri (git-reference
13737 (url "https://github.com/doublep/datetime.git")
13738 (commit version)))
13739 (file-name (git-file-name name version))
13740 (sha256
13741 (base32 "0fdswqi53qx924lib7nd9dazn0916xf1ybrh3bcn3f8cn6b8ikg5"))))
13742 (build-system emacs-build-system)
13743 (home-page "https://github.com/doublep/datetime/")
13744 (synopsis "Library to work with dates in Emacs")
13745 (description "Parsing, formatting, matching and recoding
13746 timestamps and date-time format strings library for Emacs.")
13747 (license license:gpl3+)))
13748
13749 (define-public emacs-org-mind-map
13750 (let ((commit "9d6e262bedd94daf9de269f4d56de277275677cb")
13751 (revision "1"))
13752 (package
13753 (name "emacs-org-mind-map")
13754 (version (string-append "0.0.1" "-" revision "."
13755 (string-take commit 7)))
13756 (source
13757 (origin
13758 (method git-fetch)
13759 (uri (git-reference
13760 (url "https://github.com/theodorewiles/org-mind-map.git")
13761 (commit commit)))
13762 (file-name (git-file-name name version))
13763 (sha256
13764 (base32
13765 "0jgkkgq7g64zckrmjib0hvz0qy3ynz5vz13qbmlpf096l3bb65wn"))))
13766 (propagated-inputs
13767 `(("emacs-dash" ,emacs-dash)))
13768 (build-system emacs-build-system)
13769 (home-page "https://github.com/theodorewiles/org-mind-map")
13770 (synopsis "Create Graphviz directed graphs from Org files")
13771 (description
13772 "This package creates Graphviz directed graphs from Org files.")
13773 (license license:gpl3+))))
13774
13775 (define-public emacs-npm-mode
13776 (package
13777 (name "emacs-npm-mode")
13778 (version "0.6.0")
13779 (source
13780 (origin
13781 (method git-fetch)
13782 (uri (git-reference
13783 (url "https://github.com/mojochao/npm-mode.git")
13784 (commit version)))
13785 (file-name (git-file-name name version))
13786 (sha256
13787 (base32 "1mh6nbffciw4yhv049kdhh796ysj1x21ndm3fwymhskb3dy0w1ss"))))
13788 (build-system emacs-build-system)
13789 (home-page "https://github.com/mojochao/npm-mode")
13790 (synopsis "Minor mode for working with @code{npm} projects")
13791 (description
13792 "@code{npm-mode} provides a minor mode to work with @code{npm} projects.")
13793 (license license:gpl3+)))
13794
13795 (define-public emacs-seq
13796 (package
13797 (name "emacs-seq")
13798 (version "2.20")
13799 (source
13800 (origin
13801 (method url-fetch)
13802 (uri (string-append "https://elpa.gnu.org/packages/seq-" version ".tar"))
13803 (sha256
13804 (base32
13805 "0vrpx6nnyjb0gsypknzagimlhvcvi5y1rcdkpxyqr42415zr8d0n"))))
13806 (build-system emacs-build-system)
13807 (home-page "https://elpa.gnu.org/packages/seq.html")
13808 (synopsis "Sequence manipulation functions")
13809 (description "Sequence-manipulation functions that complement basic
13810 functions provided by @file{subr.el}.")
13811 (license license:gpl3+)))
13812
13813 (define-public emacs-itail
13814 (let ((commit "6e43c20da03be3b9c6ece93b7dc3495975ec1888")
13815 (revision "1"))
13816 (package
13817 (name "emacs-itail")
13818 (version (string-append "0.0.1" "-" revision "."
13819 (string-take commit 7)))
13820 (source
13821 (origin
13822 (method git-fetch)
13823 (uri (git-reference
13824 (url "https://github.com/re5et/itail.git")
13825 (commit commit)))
13826 (file-name (git-file-name name version))
13827 (sha256
13828 (base32
13829 "044nzxh1hq41faxw3lix0wy78vfz304pjcaa5a11dqfz7q3gx5cv"))))
13830 (build-system emacs-build-system)
13831 (home-page "https://github.com/re5et/itail")
13832 (synopsis "Interactive @code{tail} Emacs mode")
13833 (description "@code{itail} provides interactive @code{tail} mode
13834 that allows you to filter the tail with unix pipes and highlight the
13835 contents of the tailed file. Works locally or on remote files using
13836 tramp.")
13837 (license license:gpl3+))))
13838
13839 (define-public emacs-loop
13840 (package
13841 (name "emacs-loop")
13842 (version "1.3")
13843 (source
13844 (origin
13845 (method git-fetch)
13846 (uri (git-reference
13847 (url "https://github.com/Wilfred/loop.el.git")
13848 (commit version)))
13849 (file-name (git-file-name name version))
13850 (sha256
13851 (base32 "1gs95xnmnn8aa4794k7h8mw1sz1nfdh9v0caqj6yvnsdnwy74n5x"))))
13852 (build-system emacs-build-system)
13853 (native-inputs
13854 `(("emacs-ert-runner" ,emacs-ert-runner)
13855 ("emacs-undercover" ,emacs-undercover)))
13856 (arguments
13857 `(#:tests? #t
13858 #:test-command '("ert-runner")))
13859 (home-page "https://github.com/Wilfred/loop.el")
13860 (synopsis "Imperative loop structures for Emacs")
13861 (description "Loop structures familiar to users of other languages. This
13862 library adds a selection of popular loop structures as well as break and
13863 continue.")
13864 (license license:gpl3+)))
13865
13866 (define-public emacs-elisp-refs
13867 (package
13868 (name "emacs-elisp-refs")
13869 (version "1.3")
13870 (source
13871 (origin
13872 (method git-fetch)
13873 (uri (git-reference
13874 (url "https://github.com/Wilfred/elisp-refs.git")
13875 (commit version)))
13876 (file-name (git-file-name name version))
13877 (sha256
13878 (base32 "0w7k91xf69zc0zkjrw8h8sjdjf9xq9qs5zhvajhd718lzf93564b"))))
13879 (build-system emacs-build-system)
13880 (propagated-inputs
13881 `(("emacs-dash" ,emacs-dash)
13882 ("emacs-f" ,emacs-f)
13883 ("emacs-list-utils" ,emacs-list-utils)
13884 ("emacs-loop" ,emacs-loop)
13885 ("emacs-s" ,emacs-s)
13886 ("emacs-shut-up" ,emacs-shut-up)))
13887 (native-inputs
13888 `(("emacs-ert-runner" ,emacs-ert-runner)
13889 ("emacs-undercover" ,emacs-undercover)))
13890 (arguments
13891 `(#:tests? #t
13892 #:test-command '("ert-runner")))
13893 (home-page "https://github.com/Wilfred/elisp-refs")
13894 (synopsis "Find callers of elisp functions or macros")
13895 (description "Find references to functions, macros or variables. Unlike a
13896 dumb text search, @code{elisp-refs} actually parses the code, so it's never
13897 confused by comments or @code{foo-bar} matching @code{foo}.")
13898 (license license:gpl3+)))
13899
13900 (define-public emacs-crux
13901 (let ((commit "308f17d914e2cd79cbc809de66d02b03ceb82859")
13902 (revision "2"))
13903 (package
13904 (name "emacs-crux")
13905 (version (git-version "0.3.0" revision commit))
13906 (source
13907 (origin
13908 (method git-fetch)
13909 (uri (git-reference
13910 (url "https://github.com/bbatsov/crux.git")
13911 (commit commit)))
13912 (file-name (git-file-name name version))
13913 (sha256
13914 (base32
13915 "0rf84finwlvmy0xpgyljjvnrijlmkzjyw9rh97svgxp9c1rzfk0x"))))
13916 (build-system emacs-build-system)
13917 (home-page "https://github.com/bbatsov/crux")
13918 (synopsis "Collection of useful functions for Emacs")
13919 (description
13920 "@code{crux} provides a collection of useful functions for Emacs.")
13921 (license license:gpl3+))))
13922
13923 (define-public emacs-edit-server
13924 (package
13925 (name "emacs-edit-server")
13926 (version "1.13")
13927 (source
13928 (origin
13929 (method git-fetch)
13930 (uri (git-reference
13931 (url "https://github.com/stsquad/emacs_chrome.git")
13932 (commit (string-append "v" version))))
13933 (file-name (git-file-name name version))
13934 (sha256
13935 (base32 "12dp1xj09jrp0kxp9xb6cak9dn6zkyis1wfn4fnhzmxxnrd8c5rn"))))
13936 (build-system emacs-build-system)
13937 (arguments
13938 `(#:phases
13939 (modify-phases %standard-phases
13940 (add-after 'unpack 'chdir-elisp
13941 ;; Elisp directory is not in root of the source.
13942 (lambda _
13943 (chdir "servers"))))))
13944 (home-page "https://github.com/stsquad/emacs_chrome")
13945 (synopsis "Server that responds to edit requests from Chromium")
13946 (description
13947 "This package provides an edit server to respond to requests from Emacs.")
13948 (license license:gpl3+)))
13949
13950 (define-public emacs-m-buffer-el
13951 (package
13952 (name "emacs-m-buffer-el")
13953 (version "0.15")
13954 (source
13955 (origin
13956 (method git-fetch)
13957 (uri (git-reference
13958 (url "https://github.com/phillord/m-buffer-el")
13959 (commit (string-append "v" version))))
13960 (file-name (git-file-name name version))
13961 (sha256
13962 (base32
13963 "1sx76i59razwccvn6x7rx5a124bfyjw9fcbxf4gj7nsg33qiq809"))))
13964 (arguments
13965 `(#:phases
13966 (modify-phases %standard-phases
13967 (add-before 'install 'check
13968 (lambda* (#:key inputs #:allow-other-keys)
13969 (invoke "emacs" "--batch" "-L" "."
13970 "-l" "test/m-buffer-test.el"
13971 "-l" "test/m-buffer-at-test.el"
13972 "-f" "ert-run-tests-batch-and-exit"))))))
13973 (build-system emacs-build-system)
13974 (home-page "https://github.com/phillord/m-buffer-el")
13975 (synopsis "List oriented buffer operations for Emacs")
13976 (description "@code{m-buffer} provides a set of list-orientated functions
13977 for operating over the contents of Emacs buffers.")
13978 (license license:gpl3+)))
13979
13980 (define-public emacs-let-alist
13981 (package
13982 (name "emacs-let-alist")
13983 (version "1.0.6")
13984 (source
13985 (origin
13986 (method url-fetch)
13987 (uri (string-append
13988 "https://elpa.gnu.org/packages/let-alist-" version ".el"))
13989 (sha256
13990 (base32 "0szj7vnjzz4zci5fvz7xqgcpi4pzdyyf4qi2s8xar2hi7v3yaawr"))))
13991 (build-system emacs-build-system)
13992 (home-page "https://elpa.gnu.org/packages/let-alist.html")
13993 (synopsis "Easily let-bind values of an assoc-list by their names")
13994 (description "This package offers a single macro, @code{let-alist}. This
13995 macro takes a first argument (whose value must be an alist) and a body.")
13996 (license license:gpl3+)))
13997
13998 (define-public emacs-esup
13999 (let ((commit "a589005a9a888537deef94d6fe38a9b8790c97c7")
14000 (revision "1"))
14001 (package
14002 (name "emacs-esup")
14003 (version (string-append "0.6" "-" revision "."
14004 (string-take commit 7)))
14005 (source
14006 (origin
14007 (method git-fetch)
14008 (uri (git-reference
14009 (url "https://github.com/jschaf/esup.git")
14010 (commit commit)))
14011 (file-name (git-file-name name version))
14012 (sha256
14013 (base32
14014 "04lxmd0h7mfjjl0qghrycgff0vcv950j1wqv0dbkr61jxp64n5fv"))))
14015 ;; TODO: Add tests
14016 (build-system emacs-build-system)
14017 (home-page "https://github.com/jschaf/esup")
14018 (synopsis "Emacs start up profiler")
14019 (description "Benchmark Emacs Startup time without ever leaving
14020 your Emacs.")
14021 (license license:gpl2+))))
14022
14023 (define-public emacs-restart-emacs
14024 (let ((commit "9aa90d3df9e08bc420e1c9845ee3ff568e911bd9")
14025 (revision "1"))
14026 (package
14027 (name "emacs-restart-emacs")
14028 (version (git-version "0.1.1" revision commit))
14029 (source
14030 (origin
14031 (method git-fetch)
14032 (uri (git-reference
14033 (url "https://github.com/iqbalansari/restart-emacs.git")
14034 (commit commit)))
14035 (file-name (git-file-name name version))
14036 (sha256
14037 (base32 "02x1a85k7r95z8091zgjiaj9nf0zvx1jy4xvl3hr12qbnrx1wfav"))))
14038 (build-system emacs-build-system)
14039 (home-page "https://github.com/iqbalansari/restart-emacs")
14040 (synopsis "Restart Emacs from within Emacs")
14041 (description "This package provides a simple command to restart Emacs from
14042 within Emacs.")
14043 (license license:gpl3+))))
14044
14045 (define-public emacs-sourcemap
14046 (package
14047 (name "emacs-sourcemap")
14048 (version "0.03")
14049 (source
14050 (origin
14051 (method git-fetch)
14052 (uri (git-reference
14053 (url "https://github.com/syohex/emacs-sourcemap.git")
14054 (commit version)))
14055 (file-name (git-file-name name version))
14056 (sha256
14057 (base32 "115g2mfpbfywp8xnag4gsb50klfvplqfh928a5mabb5s8v4a3582"))))
14058 (build-system emacs-build-system)
14059 (home-page "https://github.com/syohex/emacs-sourcemap")
14060 (synopsis "Sourcemap parser")
14061 (description "Sourcemap parser")
14062 (license license:gpl3+)))
14063
14064 (define-public emacs-macrostep
14065 (let ((commit "424e3734a1ee526a1bd7b5c3cd1d3ef19d184267"))
14066 (package
14067 (name "emacs-macrostep")
14068 (version (git-version "0.9" "1" commit))
14069 (source (origin
14070 (method git-fetch)
14071 (uri (git-reference
14072 (url "https://github.com/joddie/macrostep.git")
14073 (commit commit)))
14074 (file-name (git-file-name name version))
14075 (sha256
14076 (base32
14077 "1fm40mxdn289cyzgw992223dgrjmwxn4q8svyyxfaxjrpb38jhjz"))))
14078 (build-system emacs-build-system)
14079 (arguments
14080 '(#:phases
14081 (modify-phases %standard-phases
14082 (add-before 'check 'remove-test
14083 ;; Fails because of requirement ‘/bin/sh’.
14084 (lambda _
14085 (let ((file "macrostep-test.el"))
14086 (chmod file #o644)
14087 (emacs-batch-edit-file file
14088 `(progn (progn (goto-char (point-min))
14089 (re-search-forward
14090 "(ert-deftest macrostep-expand-c-macros")
14091 (beginning-of-line)
14092 (kill-sexp))
14093 (basic-save-buffer))))))
14094 (add-before 'install 'check
14095 (lambda _
14096 (invoke "emacs" "--batch" "-L" "."
14097 "-l" "macrostep-test.el"
14098 "-f" "ert-run-tests-batch-and-exit"))))))
14099 (home-page "https://github.com/joddie/macrostep")
14100 (synopsis "Interactive macro-expander for Emacs")
14101 (description "@code{macrostep} is an Emacs minor mode for interactively
14102 stepping through the expansion of macros in Emacs Lisp source code. It lets
14103 you see exactly what happens at each step of the expansion process by
14104 pretty-printing the expanded forms inline in the source buffer, which is
14105 temporarily read-only while macro expansions are visible. You can expand and
14106 collapse macro forms one step at a time, and evaluate or instrument the
14107 expansions for debugging with Edebug as normal (but see “Bugs and known
14108 limitations”, below). Single-stepping through the expansion is particularly
14109 useful for debugging macros that expand into another macro form. These can be
14110 difficult to debug with Emacs’ built-in macroexpand, which continues expansion
14111 until the top-level form is no longer a macro call.")
14112 (license license:gpl3+))))
14113
14114 (define-public emacs-parent-mode
14115 (package
14116 (name "emacs-parent-mode")
14117 (version "2.3")
14118 (source
14119 (origin
14120 (method git-fetch)
14121 (uri (git-reference
14122 (url "https://github.com/Fanael/parent-mode.git")
14123 (commit version)))
14124 (file-name (git-file-name name version))
14125 (sha256
14126 (base32 "0i5bc7lyyrx6swqlrp9l5x72yzwi53qn6ldrfs99gh08b3yvsnni"))))
14127 (build-system emacs-build-system)
14128 (home-page "https://github.com/Fanael/parent-mode")
14129 (synopsis "Get major mode's parent modes")
14130 (description "Get major mode's parent modes")
14131 (license license:gpl3+)))
14132
14133 (define-public emacs-lacarte
14134 (package
14135 (name "emacs-lacarte")
14136 (version "0.1")
14137 (source (origin
14138 (method url-fetch)
14139 (uri "https://www.emacswiki.org/emacs/download/lacarte.el")
14140 (sha256
14141 (base32
14142 "1sbmk37ljq5j7dsw5c37sbxvlfgdqswh7bi4dknyjzfxlq50f4am"))))
14143 (build-system emacs-build-system)
14144 (home-page "https://www.emacswiki.org/emacs/lacarte.el")
14145 (synopsis "Execute menu items as commands, with completion")
14146 (description "Execute menu items as commands, with completion.")
14147 (license license:gpl3)))
14148
14149 (define-public emacs-isearch-prop
14150 (let ((commit "4a2765f835dd115d472142da05215c4c748809f4")
14151 (revision "2"))
14152 (package
14153 (name "emacs-isearch-prop")
14154 (version (git-version "0" revision commit))
14155 (source
14156 (origin
14157 (method git-fetch)
14158 (uri (git-reference
14159 (url "https://github.com/emacsmirror/isearch-prop.git")
14160 (commit commit)))
14161 (file-name (git-file-name name version))
14162 (sha256
14163 (base32
14164 "06gdk5m84q6pxwng8rjxny1zkll8f3m2x6lw4xyib2dvg7iaslh3"))))
14165 (build-system emacs-build-system)
14166 (home-page "https://www.emacswiki.org/emacs/isearch-prop.el")
14167 (synopsis "Extensions to @code{isearch.el}")
14168 (description "The Emacs library @code{isearch-prop.el} lets you search within
14169 contexts. You can limit incremental search to a set of zones of
14170 buffer text, search contexts that in effect constitute a multi-region.
14171 These zones can be defined in various ways, including some ways
14172 provided specially by this library.")
14173 (license license:gpl3+))))
14174
14175 (define-public emacs-company-lua
14176 (let ((commit "29f6819de4d691e5fd0b62893a9f4fbc1c6fcb52")
14177 (revision "2"))
14178 (package
14179 (name "emacs-company-lua")
14180 (version (git-version "0.1" "2" commit))
14181 (source
14182 (origin
14183 (method git-fetch)
14184 (uri (git-reference
14185 (url "https://github.com/ptrv/company-lua.git")
14186 (commit commit)))
14187 (file-name (git-file-name name version))
14188 (sha256
14189 (base32
14190 "0ny2dcc7c585p7v3j6q0rpkbj1qmf2ismy8a5020jpr585xvz0hh"))))
14191 (build-system emacs-build-system)
14192 (propagated-inputs
14193 `(("emacs-company" ,emacs-company)
14194 ("emacs-s" ,emacs-s)
14195 ("emacs-f" ,emacs-f)
14196 ("emacs-lua-mode" ,emacs-lua-mode)))
14197 (arguments
14198 `(#:include (cons* "^lua\\/" %default-include)))
14199 (home-page "https://github.com/ptrv/company-lua")
14200 (synopsis "Company backend for Lua")
14201 (description
14202 "This package provides Company backend for Lua programming language.")
14203 (license license:gpl3+))))
14204
14205 (define-public emacs-beginend
14206 (package
14207 (name "emacs-beginend")
14208 (version "2.0.0")
14209 (source
14210 (origin
14211 (method git-fetch)
14212 (uri (git-reference
14213 (url "https://github.com/DamienCassou/beginend.git")
14214 (commit (string-append "v" version))))
14215 (file-name (git-file-name name version))
14216 (sha256
14217 (base32 "1jbhg73g1rrkbwql5vi2b0ys9avfazmwzwgd90gkzwavw0ch9cvl"))))
14218 ;; TODO: Run tests.
14219 (build-system emacs-build-system)
14220 (inputs
14221 `(("emacs-undercover" ,emacs-undercover))) ; For tests.
14222 (home-page "https://github.com/DamienCassou/beginend")
14223 (synopsis "Redefine @code{M-<} and @code{M->} for Emacs modes")
14224 (description "@code{beginend} redefines @code{M-<} and @code{M->}
14225 keybindings for Emacs modes so that point moves to meaningful
14226 locations. Redefined keys are still accessible by pressing the same
14227 key again.")
14228 (license license:gpl3+)))
14229
14230 (define-public emacs-mbsync
14231 (let ((commit "b62491c0e0d89eb9c66261a16d7ac81231c9c453")
14232 (revision "4"))
14233 (package
14234 (name "emacs-mbsync")
14235 (version (git-version "0.1.2" revision commit))
14236 (source
14237 (origin
14238 (method git-fetch)
14239 (uri (git-reference
14240 (url "https://github.com/dimitri/mbsync-el.git")
14241 (commit commit)))
14242 (file-name (git-file-name name version))
14243 (sha256
14244 (base32
14245 "1zlih37mkqjn2czl12zn7lgxxljvrwhqqpbksj9c91zn0f0rm3mz"))))
14246 (build-system emacs-build-system)
14247 (home-page "https://github.com/dimitri/mbsync-el")
14248 (synopsis "Interface to mbsync for Emacs")
14249 (description "This package calls @code{mbsync} from
14250 within Emacs.")
14251 (license license:gpl3+))))
14252
14253 (define-public emacs-ibuffer-projectile
14254 (let ((commit "76496214144687cee0b5139be2e61b1e400cac87")
14255 (revision "2"))
14256 (package
14257 (name "emacs-ibuffer-projectile")
14258 (version (git-version "0.2" revision commit))
14259 (source
14260 (origin
14261 (method git-fetch)
14262 (uri (git-reference
14263 (url "https://github.com/purcell/ibuffer-projectile.git")
14264 (commit commit)))
14265 (file-name (git-file-name name version))
14266 (sha256
14267 (base32
14268 "0vv9xwb1qd5x8zhqmmsn1nrpd11cql9hxb7483nsdhcfwl4apqav"))))
14269 (build-system emacs-build-system)
14270 (propagated-inputs
14271 `(("emacs-projectile" ,emacs-projectile)))
14272 (home-page "https://github.com/purcell/ibuffer-projectile")
14273 (synopsis "Group ibuffer's list by projectile root")
14274 (description "Adds functionality to Emacs @code{ibuffer} for
14275 grouping buffers by their projectile root directory.")
14276 (license license:gpl3+))))
14277
14278 (define-public emacs-elm-mode
14279 (package
14280 (name "emacs-elm-mode")
14281 (version "0.21.0")
14282 (source
14283 (origin
14284 (method git-fetch)
14285 (uri
14286 (git-reference
14287 (url "https://github.com/jcollard/elm-mode")
14288 (commit (string-append "v" version))))
14289 (file-name (git-file-name name version))
14290 (sha256
14291 (base32 "0iwk4fmw8hq3ry4ky1zc7lgl4cpbnrjyk74c2xzddfspi3ks41fd"))))
14292 (propagated-inputs
14293 `(("emacs-dash" ,emacs-dash)
14294 ("emacs-f" ,emacs-f)
14295 ("emacs-reformatter" ,emacs-reformatter)
14296 ("emacs-s" ,emacs-s)))
14297 (build-system emacs-build-system)
14298 (home-page "https://github.com/jcollard/elm-mode")
14299 (synopsis "Emacs major mode for editing Elm source code")
14300 (description
14301 "This package provides a major mode for editing Elm source code, and
14302 working with common core and third-party Elm tools. Its features are:
14303
14304 @itemize
14305 @item Syntax highlighting
14306 @item Intelligent indentation
14307 @item Integration with elm-make
14308 @item Integration with elm-repl
14309 @item Integration with elm-reactor
14310 @item Integration with elm-package
14311 @item Integration with elm-oracle
14312 @item Integration with elm-format
14313 @item Integration with elm-test
14314 @end itemize")
14315 (license license:gpl3+)))
14316
14317 (define-public emacs-helm-mode-manager
14318 (package
14319 (name "emacs-helm-mode-manager")
14320 (version "1.0.0")
14321 (source
14322 (origin
14323 (method git-fetch)
14324 (uri (git-reference
14325 (url "https://github.com/istib/helm-mode-manager")
14326 (commit version)))
14327 (file-name (git-file-name name version))
14328 (sha256
14329 (base32
14330 "1srx5f0s9x7zan7ayqd6scxfhcvr3nkd4yzs96hphd87rb18apzk"))))
14331 (build-system emacs-build-system)
14332 (propagated-inputs
14333 `(("emacs-helm" ,emacs-helm)))
14334 (home-page "https://github.com/istib/helm-mode-manager/")
14335 (synopsis "Switch and toggle Emacs major and minor modes using Helm")
14336 (description "This package provides a Helm interface for toggling Emacs
14337 major or minor mode.
14338
14339 @itemize
14340 @item @code{helm-switch-major-mode} list of all major modes
14341 @item @code{helm-enable-minor-mode} list of all inactive minor modes
14342 @item @code{helm-disable-minor-mode} list of all ACTIVE minor modes
14343 @end itemize\n
14344
14345 Hitting @code{RET} enables the mode, @code{C-z} shows the mode
14346 documentation.")
14347 (license license:gpl3+)))
14348
14349 (define-public emacs-hy-mode
14350 (package
14351 (name "emacs-hy-mode")
14352 (version "1.0.3")
14353 (source
14354 (origin
14355 (method git-fetch)
14356 (uri (git-reference
14357 (url "https://github.com/hylang/hy-mode.git")
14358 (commit (string-append "v" version))))
14359 (file-name (git-file-name name version))
14360 (sha256
14361 (base32 "1jxximiznz7fw9ys5k6plw85zrbzvxidql7py1fdi425fdp4058z"))))
14362 (build-system emacs-build-system)
14363 (propagated-inputs
14364 `(("emacs-dash" ,emacs-dash)
14365 ("emacs-s" ,emacs-s)))
14366 (home-page "https://github.com/hylang/hy-mode")
14367 (synopsis "Major mode for Hylang")
14368 (description "This package provides a major mode for Hylang.")
14369 (license license:gpl3+)))
14370
14371 (define-public emacs-web-beautify
14372 (package
14373 (name "emacs-web-beautify")
14374 (version "0.3.2")
14375 (source
14376 (origin
14377 (method git-fetch)
14378 (uri (git-reference
14379 (url "https://github.com/yasuyk/web-beautify.git")
14380 (commit version)))
14381 (file-name (git-file-name name version))
14382 (sha256
14383 (base32 "0vms7zz3ym53wf1zdrkbf2ky2xjr1v134ngsd0jr8azyi8siw84d"))))
14384 (build-system emacs-build-system)
14385 (home-page "https://github.com/yasuyk/web-beautify")
14386 (synopsis "Format HTML, CSS and JavaScript, JSON")
14387 (description "This package provides an Emacs functions to format HTML,
14388 CSS, JavaScript, JSON.")
14389 (license license:gpl3+)))
14390
14391 (define-public emacs-helm-shell-history
14392 (let ((commit "110d3c35c52fe4b89b29e79ea4c8626bce7266a1"))
14393 (package
14394 (name "emacs-helm-shell-history")
14395 (version (git-version "0.1" "1" commit))
14396 (source
14397 (origin
14398 (method git-fetch)
14399 (uri (git-reference
14400 (url "https://github.com/yuutayamada/helm-shell-history.git")
14401 (commit commit)))
14402 (file-name (git-file-name name version))
14403 (sha256
14404 (base32
14405 "18fkjcz69g4dyaxhf9j8svr5x6dhsdnglddwisis8hdn504scpfj"))))
14406 (build-system emacs-build-system)
14407 (arguments
14408 '(#:phases
14409 (modify-phases %standard-phases
14410 (add-before 'check 'patch-helm-shell-history-file
14411 (lambda _
14412 (let ((file "helm-shell-history.el"))
14413 (chmod file #o644)
14414 (emacs-substitute-sexps file
14415 ("(defvar helm-shell-history-file"
14416 `(expand-file-name "~/.bash_history"))))
14417 #t)))))
14418 (propagated-inputs
14419 `(("emacs-helm" ,emacs-helm)))
14420 (home-page "https://github.com/yuutayamada/helm-shell-history")
14421 (synopsis "Find shell history with Emacs Helm")
14422 (description "This package provides an Emacs Helm interface to search
14423 throw a shell history.")
14424 (license license:gpl3+))))
14425
14426 (define-public emacs-discover-my-major
14427 (package
14428 (name "emacs-discover-my-major")
14429 (version "1.0")
14430 (source
14431 (origin
14432 (method git-fetch)
14433 (uri (git-reference
14434 (url "https://framagit.org/steckerhalter/discover-my-major.git/")
14435 (commit version)))
14436 (file-name (git-file-name name version))
14437 (sha256
14438 (base32
14439 "1wlqyl03hhnflbyay3qlvdzqzvv5rbybcjpfddggda7ias9h0pr4"))))
14440 (build-system emacs-build-system)
14441 (propagated-inputs
14442 `(("emacs-makey" ,emacs-makey)))
14443 (home-page "https://framagit.org/steckerhalter/discover-my-major/")
14444 (synopsis "Discover key bindings for the current Emacs major mode")
14445 (description "This package discovers key bindings and
14446 their meaning for the current Emacs major-mode.")
14447 (license license:gpl3+)))
14448
14449 (define-public emacs-org-ref
14450 ;; No release since June 2017.
14451 (let ((commit "5bb9be2232db72b04754d7e4c02a3976ad422f6f")
14452 (revision "2"))
14453 (package
14454 (name "emacs-org-ref")
14455 (version (git-version "1.1.1" revision commit))
14456 (source
14457 (origin
14458 (method git-fetch)
14459 (uri (git-reference
14460 (url "https://github.com/jkitchin/org-ref.git")
14461 (commit commit)))
14462 (file-name (git-file-name name version))
14463 (sha256
14464 (base32 "15gcvbfj19kyv4nxa632b261dwhb26m99plq230qhv9ssfwfgxbx"))))
14465 (build-system emacs-build-system)
14466 (propagated-inputs
14467 `(("emacs-dash" ,emacs-dash)
14468 ("emacs-f" ,emacs-f)
14469 ("emacs-helm" ,emacs-helm)
14470 ("emacs-helm-bibtex" ,emacs-helm-bibtex)
14471 ("emacs-htmlize" ,emacs-htmlize)
14472 ("emacs-hydra" ,emacs-hydra)
14473 ("emacs-ivy" ,emacs-ivy)
14474 ("emacs-key-chord" ,emacs-key-chord)
14475 ("emacs-pdf-tools" ,emacs-pdf-tools)
14476 ("emacs-s" ,emacs-s)))
14477 (home-page "https://github.com/jkitchin/org-ref")
14478 (synopsis "Citations, cross-references and bibliographies in Org mode")
14479 (description
14480 "Org Ref is an Emacs library that provides rich support for citations,
14481 labels and cross-references in Org mode.
14482
14483 The basic idea of Org Ref is that it defines a convenient interface to insert
14484 citations from a reference database (e.g., from BibTeX files), and a set of
14485 functional Org links for citations, cross-references and labels that export
14486 properly to LaTeX, and that provide clickable functionality to the user. Org
14487 Ref interfaces with Helm BibTeX to facilitate citation entry, and it can also
14488 use RefTeX.
14489
14490 It also provides a fairly large number of utilities for finding bad citations,
14491 extracting BibTeX entries from citations in an Org file, and functions to
14492 create and modify BibTeX entries from a variety of sources, most notably from
14493 a DOI.
14494
14495 Org Ref is especially suitable for Org documents destined for LaTeX export and
14496 scientific publication. Org Ref is also useful for research documents and
14497 notes.")
14498 (license license:gpl3+))))
14499
14500 ;; This project is unmaintained. Please use emacs-org-re-reveal instead.
14501 (define-public emacs-org-reveal
14502 (let ((commit "9210413202a360a559a51e8275faa42be68cf44b"))
14503 (package
14504 (name "emacs-org-reveal")
14505 (version (git-version "0.1" "3" commit))
14506 (source (origin
14507 (method git-fetch)
14508 (uri (git-reference
14509 (url "https://github.com/yjwen/org-reveal.git")
14510 (commit commit)))
14511 (file-name (git-file-name name version))
14512 (sha256
14513 (base32
14514 "1wlfk823d3vrn480m38j7ncaqm193lvh6y22b92fx4b3yhdbndza"))))
14515 (build-system emacs-build-system)
14516 (home-page "https://github.com/yjwen/org-reveal")
14517 (synopsis "Org and Reveal.js powered HTML presentation tool")
14518 (description "Org-Reveal is a @command{org-mode} extension that allows
14519 to create beautiful presentations (slides) with 3D effects from simple but
14520 powerful Org contents.")
14521 (license license:gpl3+))))
14522
14523 (define-public emacs-org-re-reveal
14524 (package
14525 (name "emacs-org-re-reveal")
14526 (version "2.5.1")
14527 (source (origin
14528 (method git-fetch)
14529 (uri (git-reference
14530 (url "https://gitlab.com/oer/org-re-reveal.git")
14531 (commit version)))
14532 (file-name (git-file-name name version))
14533 (sha256
14534 (base32
14535 "1zbz6hbddxbb264ibmhc04cmnpk17kb50jpn5l8878q4hxw5wwy2"))))
14536 (build-system emacs-build-system)
14537 (propagated-inputs
14538 `(("emacs-htmlize" ,emacs-htmlize)
14539 ("emacs-org" ,emacs-org)))
14540 (home-page "https://gitlab.com/oer/org-re-reveal")
14541 (synopsis "Build HTML presentations with reveal.js from Org source files")
14542 (description "This project started as fork of org-reveal. It provides an
14543 export back-end for HTML presentations with reveal.js from Org mode source
14544 files.")
14545 (license license:gpl3+)))
14546
14547 (define-public emacs-add-hooks
14548 (package
14549 (name "emacs-add-hooks")
14550 (version "3.1.1")
14551 (source
14552 (origin
14553 (method git-fetch)
14554 (uri (git-reference
14555 (url "https://github.com/nickmccurdy/add-hooks.git")
14556 (commit version)))
14557 (file-name (git-file-name name version))
14558 (sha256
14559 (base32 "1jv9fpcsm572zg0j1mbpbfkqgdlqapy89xhhj19pswkhjns1y2wl"))))
14560 (build-system emacs-build-system)
14561 (home-page "https://github.com/nickmccurdy/add-hooks/")
14562 (synopsis "Emacs function for setting multiple hooks")
14563 (description "This package provides a @code{add-hooks} function tidies up
14564 duplicate hook and function names further into a single declarative call.")
14565 (license license:gpl3+)))
14566
14567 (define-public emacs-fancy-narrow
14568 (package
14569 (name "emacs-fancy-narrow")
14570 (version "0.9.5")
14571 (source
14572 (origin
14573 (method git-fetch)
14574 (uri (git-reference
14575 (url "https://github.com/Malabarba/fancy-narrow.git")
14576 (commit version)))
14577 (file-name (git-file-name name version))
14578 (sha256
14579 (base32 "0vcr1gnqawvc1yclqs23jvxm6bqix8kpflf1c7znb0wzxmz9kx7y"))))
14580 (build-system emacs-build-system)
14581 (home-page "https://github.com/Malabarba/fancy-narrow/releases")
14582 (synopsis "Imitate @code{narrow-to-region} with more eye candy")
14583 (description
14584 "Unlike @code{narrow-to-region}, which completely hides text outside
14585 the narrowed region, this package simply de-emphasizes the text, makes it
14586 read-only, and makes it unreachable. This leads to a much more natural
14587 feeling where the region stays static (instead of being brutally moved to a
14588 blank slate) and is clearly highlighted with respect to the rest of the
14589 buffer.")
14590 (license license:gpl2+)))
14591
14592 (define-public emacs-know-your-http-well
14593 (package
14594 (name "emacs-know-your-http-well")
14595 (version "0.5.0")
14596 (source
14597 (origin
14598 (method git-fetch)
14599 (uri (git-reference
14600 (url "https://github.com/for-GET/know-your-http-well.git")
14601 (commit (string-append "v" version))))
14602 (file-name (git-file-name name version))
14603 (sha256
14604 (base32 "1lppggnii2r9fvlhh33gbdrwb50za8lnalavlq9s86ngndn4n94k"))))
14605 (arguments
14606 `(#:phases
14607 (modify-phases %standard-phases
14608 (add-after 'unpack 'install-json-files
14609 (lambda* (#:key outputs #:allow-other-keys)
14610 (for-each (lambda (directory)
14611 (copy-recursively directory
14612 (string-append
14613 (assoc-ref outputs "out")
14614 directory)))
14615 '("js" "json"))))
14616 (add-after 'unpack 'chdir-elisp
14617 ;; Elisp directory is not in root of the source.
14618 (lambda _
14619 (chdir "emacs"))))))
14620 (build-system emacs-build-system)
14621 (home-page "https://github.com/for-GET/know-your-http-well")
14622 (synopsis "Meaning of HTTP headers codes")
14623 (description "Meaning of HTTP headers codes.")
14624 (license license:gpl3+)))
14625
14626 (define-public emacs-navi-mode
14627 (let ((commit "c1d38e8237f4e14af020a0b7d4f118ea198ab674"))
14628 (package
14629 (name "emacs-navi-mode")
14630 (version (git-version "2.0" "1" commit))
14631 (source
14632 (origin
14633 (method git-fetch)
14634 (uri (git-reference
14635 (url "https://github.com/alphapapa/navi.git")
14636 (commit commit)))
14637 (file-name (git-file-name name version))
14638 (sha256
14639 (base32
14640 "0jj5spk14hgb7zb1cd2n8whcw4k1kd5zb6llwj96v178yaws7l8k"))))
14641 (build-system emacs-build-system)
14642 (propagated-inputs
14643 `(("emacs-outshine" ,emacs-outshine)
14644 ("emacs-outorg" ,emacs-outorg)))
14645 (home-page "https://github.com/alphapapa/navi")
14646 (synopsis "Emacs major-mode for easy buffer-navigation")
14647 (description
14648 "This package provides an Emacs major-mode for easy buffer-navigation")
14649 (license license:gpl3+))))
14650
14651 (define-public emacs-download-region
14652 (let ((commit "eb9e557529a73b4cfc8281c70dd0d95db333fffa")
14653 (revision "1"))
14654 (package
14655 (name "emacs-download-region")
14656 (version (string-append "0.0.1" "-" revision "."
14657 (string-take commit 7)))
14658 (source
14659 (origin
14660 (method git-fetch)
14661 (uri (git-reference
14662 (url "https://github.com/zk-phi/download-region.git")
14663 (commit commit)))
14664 (file-name (git-file-name name version))
14665 (sha256
14666 (base32
14667 "0v52djg39b6k2snizd9x0qc009ws5y0ywqsfwhqgcbs5ymzh7dsc"))))
14668 (build-system emacs-build-system)
14669 (home-page "https://github.com/zk-phi/download-region")
14670 (synopsis "In buffer download manager for Emacs")
14671 (description "@code{download-region} provides in buffer
14672 downloading manager for Emacs.")
14673 (license license:gpl3+))))
14674
14675 (define-public emacs-helpful
14676 (package
14677 (name "emacs-helpful")
14678 (version "0.17")
14679 (source
14680 (origin
14681 (method git-fetch)
14682 (uri (git-reference
14683 (url "https://github.com/Wilfred/helpful.git")
14684 (commit version)))
14685 (file-name (git-file-name name version))
14686 (sha256
14687 (base32 "0v2y0x9pwi08y2mgjjiw5brfb5haa7pbmy4540glw904ffxxcblj"))))
14688 (build-system emacs-build-system)
14689 (propagated-inputs
14690 `(("emacs-elisp-refs" ,emacs-elisp-refs)
14691 ("emacs-dash" ,emacs-dash)
14692 ("emacs-s" ,emacs-s)
14693 ("emacs-f" ,emacs-f)
14694 ("emacs-shut-up" ,emacs-shut-up)))
14695 (native-inputs
14696 `(("emacs-ert-runner" ,emacs-ert-runner)
14697 ("emacs-undercover" ,emacs-undercover)))
14698 (arguments
14699 `(#:tests? #t
14700 #:test-command '("ert-runner")))
14701 (home-page "https://github.com/Wilfred/helpful")
14702 (synopsis "More contextual information in Emacs help")
14703 (description "@code{helpful} is an alternative to the built-in Emacs help
14704 that provides much more contextual information.
14705
14706 @itemize
14707 @item Show the source code for interactively defined functions (unlike the
14708 built-in Help).
14709 @item Fall back to the raw sexp if no source is available.
14710 @item Show where a function is being called.
14711 @item Docstrings will Highlight the summary (the first sentence), include
14712 cross-references, hide superfluous puncuation.
14713 @item Show you the properties that have been applied to the current
14714 symbol. This provides visibility of features like edebug or byte-code
14715 optimisation.
14716 @item Provide a separate @code{helpful-command} function to view interactive
14717 functions.
14718 @item Display any keybindings that apply to interactive functions.
14719 @item Trace, disassemble functions from inside Helpful. This is discoverable
14720 and doesn't require memorisation of commands.
14721 @end itemize\n")
14722 (license license:gpl3+)))
14723
14724 (define-public emacs-logview
14725 (package
14726 (name "emacs-logview")
14727 (version "0.9")
14728 (source
14729 (origin
14730 (method git-fetch)
14731 (uri (git-reference
14732 (url "https://github.com/doublep/logview.git")
14733 (commit version)))
14734 (file-name (git-file-name name version))
14735 (sha256
14736 (base32 "1qhzs75pxnaksbhczmpdcy2zmrqavlzkzss7ik5nv2wf9vs0sn02"))))
14737 (propagated-inputs
14738 `(("emacs-datetime" ,emacs-datetime)))
14739 (build-system emacs-build-system)
14740 (home-page "https://github.com/doublep/logview/")
14741 (synopsis "Emacs mode for viewing log files")
14742 (description "@code{logview} provides an Emacs mode to view log files.")
14743 (license license:gpl3+)))
14744
14745 (define-public emacs-suggest
14746 (package
14747 (name "emacs-suggest")
14748 (version "0.7")
14749 (home-page "https://github.com/Wilfred/suggest.el")
14750 (source
14751 (origin
14752 (method git-fetch)
14753 (uri (git-reference
14754 (url home-page)
14755 (commit version)))
14756 (file-name (git-file-name name version))
14757 (sha256
14758 (base32
14759 "01v8plska5d3g19sb1m4ph1i3ayprfzk8mi6mpabjy6zad397xjl"))))
14760 (build-system emacs-build-system)
14761 (propagated-inputs
14762 `(("emacs-loop" ,emacs-loop)
14763 ("emacs-dash" ,emacs-dash)
14764 ("emacs-s" ,emacs-s)
14765 ("emacs-f" ,emacs-f)
14766 ("emacs-spinner" ,emacs-spinner)
14767 ("emacs-shut-up" ,emacs-shut-up)))
14768 (native-inputs
14769 `(("emacs-ert-runner" ,emacs-ert-runner)
14770 ("emacs-undercover" ,emacs-undercover)))
14771 (arguments
14772 `(#:tests? #t
14773 #:test-command '("ert-runner")))
14774 (synopsis "Suggest Elisp functions that give the output requested")
14775 (description "Suggest.el will find functions that give the output
14776 requested. It's a great way of exploring list, string and arithmetic
14777 functions.")
14778 (license license:gpl3+)))
14779
14780 (define-public emacs-benchmark-init
14781 (package
14782 (name "emacs-benchmark-init")
14783 (version "1.0")
14784 (source
14785 (origin
14786 (method git-fetch)
14787 (uri (git-reference
14788 (url "https://github.com/dholm/benchmark-init-el.git")
14789 (commit version)))
14790 (file-name (git-file-name name version))
14791 (sha256
14792 (base32 "1kyn1izm5sbqbp9whnhk9dn3yc7zy8bz5san5w3ivi3rpx15fh94"))))
14793 (build-system emacs-build-system)
14794 (home-page "https://github.com/dholm/benchmark-init-el")
14795 (synopsis "Benchmark Emacs @code{require} and @code{load} calls")
14796 (description "@code{benchmark-init} provides a way to keep track of where
14797 time is being spent during Emacs startup in order to optimize startup time.")
14798 (license license:gpl3+)))
14799
14800 (define-public emacs-magit-gerrit
14801 (let ((version "0.3")
14802 (revision "1")
14803 (commit "ece6f369694aca17f3ac166ed2801b432acfe20d"))
14804 (package
14805 (name "emacs-magit-gerrit")
14806 (version (git-version version revision commit))
14807 (source (origin
14808 (method git-fetch)
14809 (uri (git-reference
14810 (url "https://github.com/terranpro/magit-gerrit.git")
14811 (commit commit)))
14812 (file-name (git-file-name name version))
14813 (sha256
14814 (base32
14815 "0mms0gxv9a3ns8lk5k2wjibm3088y1cmpr3axjdh6ppv7r5wdvii"))))
14816 (build-system emacs-build-system)
14817 (propagated-inputs
14818 `(("emacs-magit" ,emacs-magit)))
14819 (home-page "https://github.com/terranpro/magit-gerrit")
14820 (synopsis "Magit extension for Gerrit")
14821 (description "This Magit extension provides integration with Gerrit,
14822 which makes it possible to conduct Gerrit code reviews directly from within
14823 Emacs.")
14824 (license license:gpl3+))))
14825
14826 (define-public emacs-magit-org-todos-el
14827 (let ((commit "df206287737b9671f2e36ae7b1474ebbe9940d2a"))
14828 (package
14829 (name "emacs-magit-org-todos-el")
14830 (version (git-version "0.1.1" "1" commit))
14831 (source
14832 (origin
14833 (method git-fetch)
14834 (uri (git-reference
14835 (url "https://github.com/danielma/magit-org-todos.el.git")
14836 (commit commit)))
14837 (file-name (git-file-name name version))
14838 (sha256
14839 (base32
14840 "0kdp7k7jnnrkhsg0xh1c3h7iz0vgi120gf5xwl1hxy61avivnxrn"))))
14841 (propagated-inputs
14842 `(("magit" ,emacs-magit)))
14843 (build-system emacs-build-system)
14844 (home-page "https://github.com/danielma/magit-org-todos.el")
14845 (synopsis "Get todo.org into Emacs Magit status")
14846 (description "This package allows you to get @file{todo.org} into your
14847 magit status.
14848
14849 If you have a @file{todo.org} file with @code{TODO} items in the root of your
14850 repository, @code{magit-org-todos} will create a section in your Magit status
14851 buffer with each of your todos.")
14852 (license license:gpl3+))))
14853
14854 (define-public emacs-f3
14855 (package
14856 (name "emacs-f3")
14857 (version "0.1")
14858 (source
14859 (origin
14860 (method git-fetch)
14861 (uri (git-reference
14862 (url "https://github.com/cosmicexplorer/f3.git")
14863 (commit version)))
14864 (file-name (git-file-name name version))
14865 (sha256
14866 (base32 "1qg48zbjdjqimw4516ymrsilz41zkib9321q0caf9474s9xyp2bi"))))
14867 (build-system emacs-build-system)
14868 (propagated-inputs
14869 `(("emacs-helm" ,emacs-helm)))
14870 (home-page "https://github.com/cosmicexplorer/f3")
14871 (synopsis "Fantastic File Finder for Emacs")
14872 (description
14873 "The Fantastic File Finder for Emacs. Find files fast, using helm.")
14874 (license license:gpl3+)))
14875
14876 (define-public emacs-lice-el
14877 (let ((commit "4339929927c62bd636f89bb39ea999d18d269250"))
14878 (package
14879 (name "emacs-lice-el")
14880 (version (git-version "0.2" "1" commit))
14881 (source (origin
14882 (method git-fetch)
14883 (uri (git-reference
14884 (url "https://github.com/buzztaiki/lice-el.git")
14885 (commit commit)))
14886 (file-name (git-file-name name version))
14887 (sha256
14888 (base32
14889 "0879z761b7gajkhq176ps745xpdrivch349crransv8fnsc759yb"))))
14890 (build-system emacs-build-system)
14891 (home-page "https://github.com/buzztaiki/lice-el")
14892 (synopsis "License and header template for Emacs")
14893 (description "@code{lice.el} provides following features:
14894
14895 @itemize
14896 @item License template management.
14897 @item File header insertion.
14898 @end itemize\n")
14899 (license license:gpl3+))))
14900
14901 (define-public emacs-academic-phrases
14902 (let ((commit "0823ed8c24b26c32f909b896a469833ec4d7b656"))
14903 (package
14904 (name "emacs-academic-phrases")
14905 (version (git-version "0.1" "1" commit))
14906 (source
14907 (origin
14908 (method git-fetch)
14909 (uri (git-reference
14910 (url "https://github.com/nashamri/academic-phrases.git")
14911 (commit commit)))
14912 (file-name (git-file-name name version))
14913 (sha256
14914 (base32
14915 "0qfzsq8jh05w4zkr0cvq3i1hdn97bq344vcqjg46sib26x3wpz6r"))))
14916 (build-system emacs-build-system)
14917 (propagated-inputs
14918 `(("emacs-dash" ,emacs-dash)
14919 ("emacs-s" ,emacs-s)
14920 ("emacs-ht" ,emacs-ht)))
14921 (home-page "https://github.com/nashamri/academic-phrases")
14922 (synopsis "Bypass that mental block when writing your papers")
14923 (description
14924 "When writing your academic paper, you might get stuck trying to find
14925 the right phrase that captures your intention. This package tries to
14926 alleviate that problem by presenting you with a list of phrases organized by
14927 the topic or by the paper section that you are writing. This package has
14928 around 600 phrases so far.
14929
14930 Using this package is easy, just call @code{academic-phrases} to get a list of
14931 phrases organized by topic, or call @code{academic-phrases-by-section} to
14932 browse the phrases by the paper section and fill-in the blanks if required.")
14933 (license license:gpl3+))))
14934
14935 (define-public emacs-auto-yasnippet
14936 (let ((commit "624b0d9711222073a2a3f2186e2605eb99fc83c9")
14937 (revision "2"))
14938 (package
14939 (name "emacs-auto-yasnippet")
14940 (version (git-version "0.3.0" revision commit))
14941 (source (origin
14942 (method git-fetch)
14943 (uri (git-reference
14944 (url "https://github.com/abo-abo/auto-yasnippet.git")
14945 (commit commit)))
14946 (file-name (git-file-name name version))
14947 (sha256
14948 (base32
14949 "15g8wi067f345xhpi0c12w0h04p4f4lpccwmdjdfj8hzfl4gyxy9"))))
14950 (build-system emacs-build-system)
14951 (arguments
14952 '(#:tests? #t
14953 #:test-command '("make" "test")))
14954 (propagated-inputs
14955 `(("emacs-yasnippet" ,emacs-yasnippet)))
14956 (home-page "https://github.com/abo-abo/auto-yasnippet/")
14957 (synopsis "Quickly create disposable yasnippets")
14958 (description "This package provides a hybrid of keyboard macros and
14959 yasnippet. You create the snippet on the go, usually to be used just in the
14960 one place. It's fast, because you're not leaving the current buffer, and all
14961 you do is enter the code you'd enter anyway, just placing ~ where you'd like
14962 yasnippet fields and mirrors to be.")
14963 (license license:gpl3+))))
14964
14965 (define-public emacs-highlight-numbers
14966 (package
14967 (name "emacs-highlight-numbers")
14968 (version "0.2.3")
14969 (source
14970 (origin
14971 (method git-fetch)
14972 (uri (git-reference
14973 (url "https://github.com/Fanael/highlight-numbers.git")
14974 (commit version)))
14975 (file-name (git-file-name name version))
14976 (sha256
14977 (base32 "1r07mpyr7rhd7bkg778hx6vbhb4n9ixgzkpszhgks7ri6ia38pj8"))))
14978 (build-system emacs-build-system)
14979 (propagated-inputs
14980 `(("emacs-parent-mode" ,emacs-parent-mode)))
14981 (home-page "https://github.com/Fanael/highlight-numbers")
14982 (synopsis "Highlight numbers in source code")
14983 (description "@code{highlight-numbers-mode} provides a minor mode for
14984 syntax highlighting of numeric literals in source code.
14985
14986 It s customizable: it's easy to add or redefine what exactly consitutes a
14987 \"number\" in given major mode. See @code{highlight-numbers-modelist}.")
14988 (license license:gpl3+)))
14989
14990 (define-public emacs-darkroom
14991 (package
14992 (name "emacs-darkroom")
14993 (version "0.2")
14994 (source (origin
14995 (method url-fetch)
14996 (uri (string-append "https://elpa.gnu.org/packages/darkroom-"
14997 version ".el"))
14998 (sha256
14999 (base32
15000 "1a528brhz4vckhp77n2c1phkyqdliykpj9kzk3f834f4rwnb5mp0"))))
15001 (build-system emacs-build-system)
15002 (home-page "https://elpa.gnu.org/packages/darkroom.html")
15003 (synopsis "Remove visual distractions and focus on writing")
15004 (description "@code{darkroom-mode} makes visual distractions disappear.
15005 The mode-line is temporarily elided, text is enlarged and margins are adjusted
15006 so that it's centered on the window.
15007
15008 @code{darkroom-tentative-mode} is similar, but it doesn't immediately turn-on
15009 @code{darkroom-mode}, unless the current buffer lives in the sole window of
15010 the Emacs frame (i.e. all other windows are deleted). Whenever the frame is
15011 split to display more windows and more buffers, the buffer exits
15012 @code{darkroom-mode}. Whenever they are deleted, the buffer re-enters
15013 @code{darkroom-mode}.")
15014 (license license:gpl3+)))
15015
15016 (define-public emacs-rsw-elisp
15017 (package
15018 (name "emacs-rsw-elisp")
15019 (version "1.0.5")
15020 (source (origin
15021 (method git-fetch)
15022 (uri (git-reference
15023 (url "https://github.com/rswgnu/rsw-elisp")
15024 (commit version)))
15025 (file-name (git-file-name name version))
15026 (sha256
15027 (base32
15028 "0dfq8myg0r91900bk1s70amsmm4mjk2qsg12v5pk7lla5d2vnyaf"))))
15029 (build-system emacs-build-system)
15030 (home-page "https://github.com/rswgnu/rsw-elisp")
15031 (synopsis "Improved expressions that interactively evaluate Emacs Lisp")
15032 (description "This package improves and replaces the GNU Emacs commands
15033 that interactively evaluate Emacs Lisp expressions. The new commands replace
15034 standard key bindings and are all prefixed with @code{rsw-elisp-}. They work
15035 the same way as the old commands when called non-interactively; only the
15036 interactive behavior should be different.")
15037 (license license:gpl3+)))
15038
15039 (define-public emacs-default-text-scale
15040 (let ((commit "968e985e219235f3e744d6d967e592acbaf6e0a8")
15041 (revision "1"))
15042 (package
15043 (name "emacs-default-text-scale")
15044 (version (string-append "0.1" "-" revision "."
15045 (string-take commit 7)))
15046 (source (origin
15047 (method git-fetch)
15048 (uri (git-reference
15049 (url "https://github.com/purcell/default-text-scale")
15050 (commit commit)))
15051 (file-name (git-file-name name version))
15052 (sha256
15053 (base32
15054 "0zds01c3q5yny6ab1fxfkzzgn1kgl3q23lxxap905f4qd70v922h"))))
15055 (build-system emacs-build-system)
15056 (home-page "https://github.com/purcell/default-text-scale")
15057 (synopsis "Adjust the font size in all Emacs frames")
15058 (description "This package provides commands for increasing or
15059 decreasing the default font size in all GUI Emacs frames.")
15060 (license license:gpl3+))))
15061
15062 (define-public emacs-mixed-pitch
15063 (package
15064 (name "emacs-mixed-pitch")
15065 (version "1.0.1")
15066 (source
15067 (origin
15068 (method git-fetch)
15069 (uri (git-reference
15070 (url "https://gitlab.com/jabranham/mixed-pitch.git")
15071 (commit version)))
15072 (file-name (git-file-name name version))
15073 (sha256
15074 (base32 "1458sy5b6bis1i0k23jdqk6hfqg0ghk637r3ajql2g19ym48rf58"))))
15075 (build-system emacs-build-system)
15076 (home-page "https://gitlab.com/jabranham/mixed-pitch")
15077 (synopsis "Mix variable- and fixed-pitch fonts in the same Emacs buffer")
15078 (description
15079 "@code{mixed-pitch-mode} is a minor mode that enables mixing
15080 variable-pitch and fixed-pitch fonts in the same buffer. The list
15081 @code{mixed-pitch-fixed-pitch-faces} defines the faces that are kept
15082 fixed-pitch,everything else becomes variable-pitch.")
15083 (license license:gpl3+)))
15084
15085 (define-public emacs-visual-regexp
15086 (package
15087 (name "emacs-visual-regexp")
15088 (version "1.1.1")
15089 (source
15090 (origin
15091 (method git-fetch)
15092 (uri (git-reference
15093 (url "https://github.com/benma/visual-regexp.el.git")
15094 (commit (string-append "v" version))))
15095 (file-name (git-file-name name version))
15096 (sha256
15097 (base32 "12zpmzwyp85dzsjpxd3279kpfi9yz3jwc1k9fnb3xv3pjiil5svg"))))
15098 (build-system emacs-build-system)
15099 (home-page "https://github.com/benma/visual-regexp.el/")
15100 (synopsis "Regexp command with interactive visual feedback")
15101 (description "This package provides an Emacs regexp command with
15102 interactive visual feedback.")
15103 (license license:gpl3+)))
15104
15105 (define-public emacs-faceup
15106 (let ((commit "6c92dad56a133e14e7b27831e1bcf9b3a71ff154")
15107 (revision "1"))
15108 (package
15109 (name "emacs-faceup")
15110 (version (string-append "0.0.1" "-" revision "."
15111 (string-take commit 7)))
15112 (source
15113 (origin
15114 (method git-fetch)
15115 (uri (git-reference
15116 (url "https://github.com/Lindydancer/faceup.git")
15117 (commit commit)))
15118 (file-name (git-file-name name version))
15119 (sha256
15120 (base32
15121 "1yzmy7flrhrh0i10bdszx8idx6r8h6czm4vm4q0z6fp5fw94zwrx"))))
15122 (build-system emacs-build-system)
15123 (home-page "https://github.com/Lindydancer/faceup")
15124 (synopsis "Markup language for faces and font-lock regression testing")
15125 (description "Emacs is capable of highlighting buffers based on
15126 language-specific @code{font-lock} rules. This package makes it possible to
15127 perform regression test for packages that provide font-lock rules.")
15128 (license license:gpl3+))))
15129
15130 (define-public emacs-racket-mode
15131 (let ((commit "5f396fa91fc22310f5c519aa658436a1a5251846")
15132 (revision "5"))
15133 (package
15134 (name "emacs-racket-mode")
15135 (version (git-version "0.0.2" revision commit))
15136 (source
15137 (origin
15138 (method git-fetch)
15139 (uri (git-reference
15140 (url "https://github.com/greghendershott/racket-mode")
15141 (commit commit)))
15142 (file-name (git-file-name name version))
15143 (sha256
15144 (base32
15145 "1214y08i0c51d1vzw9jzyf79vyfqizdy6m0980qs13qbdwsj32v0"))))
15146 (build-system emacs-build-system)
15147 (arguments
15148 `(#:include '("\\.el$" "\\.rkt$")))
15149 (propagated-inputs
15150 `(("emacs-faceup" ,emacs-faceup)
15151 ("emacs-s" ,emacs-s)))
15152 (home-page "https://www.racket-mode.com/")
15153 (synopsis "Major mode for the Racket language")
15154 (description "@code{racket-mode} provides:
15155
15156 @itemize
15157 @item Focus on Racket (not various Schemes).
15158 @item Follow DrRacket concepts where applicable.
15159 @item Thorough font-lock and indent.
15160 @end itemize\n")
15161 (license license:gpl3+))))
15162
15163 (define-public emacs-grep-context
15164 (let ((commit "5a4e3efdf775755c1bbefcfe4b461c1166d81d7d")
15165 (revision "1"))
15166 (package
15167 (name "emacs-grep-context")
15168 (version (git-version "0.1.0" revision commit))
15169 (source
15170 (origin
15171 (method git-fetch)
15172 (uri (git-reference
15173 (url "https://github.com/mkcms/grep-context.git")
15174 (commit commit)))
15175 (file-name (git-file-name name version))
15176 (sha256
15177 (base32
15178 "00q7l4a3c0ay6g5ff9bfa2qgkiswsyh4s6pqnpg0zpzhvv5710f5"))))
15179 (build-system emacs-build-system)
15180 (propagated-inputs
15181 `(("emacs-dash" ,emacs-dash)))
15182 (home-page "https://github.com/mkcms/grep-context")
15183 (synopsis "Increase context in compilation and grep buffers")
15184 (description
15185 "This package provides an Emacs package for more context in
15186 compilation/grep buffers. Works with @code{wgrep}, @code{ack}, @code{ag},
15187 @code{ivy}.")
15188 (license license:gpl3+))))
15189
15190 (define-public emacs-helm-firefox
15191 (let ((commit "0ad34b7b5abc485a86cae6920c14de861cbeb085")
15192 (revision "1"))
15193 (package
15194 (name "emacs-helm-firefox")
15195 (version (string-append "0.0.1" "-" revision "."
15196 (string-take commit 7)))
15197 (source
15198 (origin
15199 (method git-fetch)
15200 (uri (git-reference
15201 (url "https://github.com/emacs-helm/helm-firefox.git")
15202 (commit commit)))
15203 (file-name (git-file-name name version))
15204 (sha256
15205 (base32
15206 "08mjsi2f9s29fkk35cj1rrparjnkm836qmbfdwdz7y51f9varjbs"))))
15207 (propagated-inputs
15208 `(("emacs-helm" ,emacs-helm)))
15209 (build-system emacs-build-system)
15210 (home-page "https://github.com/emacs-helm/helm-firefox")
15211 (synopsis "Display firefox bookmarks with Emacs Helm interface")
15212 (description "Display firefox bookmarks with Emacs Helm interface")
15213 (license license:gpl3+))))
15214
15215 (define-public emacs-interactive-align
15216 (package
15217 (name "emacs-interactive-align")
15218 (version "0.4.2")
15219 (source
15220 (origin
15221 (method git-fetch)
15222 (uri (git-reference
15223 (url "https://github.com/mkcms/interactive-align.git")
15224 (commit (string-append "v" version))))
15225 (file-name (git-file-name name version))
15226 (sha256
15227 (base32
15228 "0bh03w91i622hbar5dcq631ndxx1y8kd3h655pgw1g0lqkv1mlnc"))))
15229 (build-system emacs-build-system)
15230 (home-page "https://github.com/mkcms/interactive-align/")
15231 (synopsis "Interactive align-regexp command in Emacs")
15232 (description "Interactive align-regexp command in Emacs")
15233 (license license:gpl3+)))
15234
15235 (define-public emacs-shift-number
15236 (package
15237 (name "emacs-shift-number")
15238 (version "0.1")
15239 (source
15240 (origin
15241 (method git-fetch)
15242 (uri (git-reference
15243 (url "https://github.com/alezost/shift-number.el")
15244 (commit (string-append "v" version))))
15245 (file-name (git-file-name name version))
15246 (sha256
15247 (base32
15248 "0zlwmzsxkv4mkggylxfx2fkrwgz7dz3zbg2gkn2rxcpy2k2gla64"))))
15249 (build-system emacs-build-system)
15250 (home-page "https://github.com/alezost/shift-number.el")
15251 (synopsis "Increase or decrease the number at point")
15252 (description "@code{emacs-shift-number} provides commands
15253 @code{shift-number-up} to increase and @code{shift-number-down} to
15254 decrease the number at point.")
15255 (license license:gpl3+)))
15256
15257 (define-public emacs-highlight-defined
15258 (package
15259 (name "emacs-highlight-defined")
15260 (version "0.1.5")
15261 (source
15262 (origin
15263 (method git-fetch)
15264 (uri (git-reference
15265 (url "https://github.com/Fanael/highlight-defined.git")
15266 (commit version)))
15267 (file-name (git-file-name name version))
15268 (sha256
15269 (base32 "08czwa165rnd5z0dwwdddn7zi5w63sdk31l47bj0598kbly01n7r"))))
15270 (build-system emacs-build-system)
15271 (home-page "https://github.com/Fanael/highlight-defined")
15272 (synopsis "Syntax highlighting of known Elisp symbols")
15273 (description "Minor mode providing syntax highlighting of known Emacs Lisp
15274 symbols. Currently the code distinguishes Lisp functions, built-in functions,
15275 macros, faces and variables. To enable call @code{highlight-defined-mode}. ")
15276 (license license:gpl3+)))
15277
15278 (define-public emacs-parinfer-mode
15279 (package
15280 (name "emacs-parinfer-mode")
15281 (version "0.4.10")
15282 (source
15283 (origin
15284 (method git-fetch)
15285 (uri (git-reference
15286 (url "https://github.com/DogLooksGood/parinfer-mode.git")
15287 (commit (string-append "v" version))))
15288 (file-name (git-file-name name version))
15289 (sha256
15290 (base32 "0v97ncb0w1slb0x8861l3yr1kqz6fgw1fwl1z9lz6hh8p2ih34sk"))))
15291 (propagated-inputs
15292 `(("emacs-dash" ,emacs-dash)
15293 ("emacs-rainbow-delimiters" ,emacs-rainbow-delimiters)
15294 ("emacs-company" ,emacs-company)))
15295 (build-system emacs-build-system)
15296 (home-page "https://github.com/DogLooksGood/parinfer-mode/")
15297 (synopsis "Lisp structure editing mode")
15298 (description "@code{parinfer-mode} is a proof-of-concept editor
15299 mode for Lisp programming languages. It will infer some changes to
15300 keep Parens and Indentation inline with one another.")
15301 (license license:gpl3+)))
15302
15303 (define-public emacs-helm-eww
15304 (package
15305 (name "emacs-helm-eww")
15306 (version "1.2")
15307 (source (origin
15308 (method git-fetch)
15309 (uri (git-reference
15310 (url "https://github.com/emacs-helm/helm-eww.git")
15311 (commit version)))
15312 (file-name (git-file-name name version))
15313 (sha256
15314 (base32
15315 "0hpq1h0p69c9k6hkd2mjpprx213sc5475q7pr2zpmwrjdzgcv70z"))))
15316 (propagated-inputs
15317 `(("emacs-helm" ,emacs-helm)))
15318 (build-system emacs-build-system)
15319 (home-page "https://github.com/emacs-helm/helm-eww/")
15320 (synopsis "Helm interface to EWW")
15321 (description "This package provides a Helm interface for EWW buffers,
15322 bookmarks and history.")
15323 (license license:gpl3+)))
15324
15325 (define-public emacs-stumpwm-mode
15326 (let ((commit "dd5b037923ec7d3cc27c55806bcec5a1b8cf4e91")
15327 (revision "2"))
15328 (package
15329 (name "emacs-stumpwm-mode")
15330 (version (git-version "0.0.1" revision commit))
15331 (source (origin
15332 (method git-fetch)
15333 (uri (git-reference
15334 (url "https://github.com/stumpwm/stumpwm-contrib.git")
15335 (commit commit)))
15336 (file-name (git-file-name name version))
15337 (sha256
15338 (base32
15339 "0ahxdj9f884afpzxczx6mx7l4nwg4kw6afqaq7lwhf7lxcwylldn"))))
15340 (build-system emacs-build-system)
15341 (arguments
15342 `(#:phases
15343 (modify-phases %standard-phases
15344 (add-after 'unpack 'chdir-elisp
15345 ;; Elisp directory is not in root of the source.
15346 (lambda _
15347 (chdir "util/swm-emacs"))))))
15348 (home-page "https://github.com/stumpwm/stumpwm-contrib")
15349 (synopsis "Emacs minor-mode for Stumpwm")
15350 (description "Emacs minor-mode for Stumpwm")
15351 (license license:gpl3+))))
15352
15353 (define-public emacs-irfc
15354 (package
15355 (name "emacs-irfc")
15356 (version "20130824.507-1")
15357 (source
15358 (origin
15359 (method url-fetch)
15360 (uri "https://www.emacswiki.org/emacs/download/irfc.el")
15361 (file-name (string-append "irfc-" version ".el"))
15362 (sha256
15363 (base32
15364 "0rbfrza56kvspvgrwg0b5bj30d0qncqdsmfxn3y5caq4ifcj77hv"))))
15365 (build-system emacs-build-system)
15366 (home-page "https://www.emacswiki.org/emacs/download/irfc.el")
15367 (synopsis "Interface for IETF RFC document")
15368 (description
15369 "This package provides an Emacs interface for IETF RFC document.")
15370 (license license:gpl3+)))
15371
15372 (define-public emacs-ido-vertical-mode
15373 (package
15374 (name "emacs-ido-vertical-mode")
15375 (version "0.1.6")
15376 (source
15377 (origin
15378 (method git-fetch)
15379 (uri (git-reference
15380 (url "https://github.com/creichert/ido-vertical-mode.el.git")
15381 (commit (string-append "v" version))))
15382 (file-name (git-file-name name version))
15383 (sha256
15384 (base32 "1lv82q639xjnmvby56nwqn23ijh6f163bk675s33dkingm8csj8k"))))
15385 (build-system emacs-build-system)
15386 (home-page "https://github.com/creichert/ido-vertical-mode.el")
15387 (synopsis "Makes ido-mode display vertically")
15388 (description "Makes ido-mode display prospects vertically.")
15389 (license license:gpl3+)))
15390
15391 (define-public emacs-wordgen
15392 (package
15393 (name "emacs-wordgen")
15394 (version "0.1.4")
15395 (source
15396 (origin
15397 (method git-fetch)
15398 (uri (git-reference
15399 (url "https://github.com/Fanael/wordgen.el.git")
15400 (commit version)))
15401 (file-name (git-file-name name version))
15402 (sha256
15403 (base32 "06vbc9ycz1nbjwjkg99y3lj6jwb6lnwnmkqf09yr00jjrrfhfash"))))
15404 (build-system emacs-build-system)
15405 (home-page "https://github.com/Fanael/wordgen.el")
15406 (synopsis "Random word generator")
15407 (description "This package provides functions to generate random words
15408 using user-provided rules.")
15409 (license license:gpl3+)))
15410
15411 (define-public emacs-on-screen
15412 (package
15413 (name "emacs-on-screen")
15414 (version "1.3.3")
15415 (source
15416 (origin
15417 (method url-fetch)
15418 (uri (string-append
15419 "https://elpa.gnu.org/packages/on-screen-" version ".el"))
15420 (file-name (string-append name "-" version ".el"))
15421 (sha256
15422 (base32 "0ga4hw23ki583li2z2hr7l6hk1nc2kdg4afndg06cm9jn158wza7"))))
15423 (build-system emacs-build-system)
15424 (home-page "https://github.com/michael-heerdegen/on-screen.el")
15425 (synopsis "Guide your eyes while scrolling")
15426 (description
15427 "Scrolling can be distracting because your eyes may lose
15428 orientation. This library implements a minor mode that highlights
15429 the previously visible buffer part after each scroll.")
15430 (license license:gpl3+)))
15431
15432 (define-public emacs-highlight-escape-sequences
15433 (let ((commit "08d846a7aa748209d65fecead2b6a766c3e5cb41")
15434 (revision "1"))
15435 (package
15436 (name "emacs-highlight-escape-sequences")
15437 (version (string-append "0.0.1" "-" revision "."
15438 (string-take commit 7)))
15439 (source
15440 (origin
15441 (method git-fetch)
15442 (uri (git-reference
15443 (url "https://github.com/dgutov/highlight-escape-sequences.git")
15444 (commit commit)))
15445 (file-name (git-file-name name version))
15446 (sha256
15447 (base32
15448 "05mc3w1f8ykf80914a1yddw6j8cmh0h57llm07xh89s53821v2is"))))
15449 (build-system emacs-build-system)
15450 (home-page "https://github.com/dgutov/highlight-escape-sequences")
15451 (synopsis "Highlight escape sequences in Emacs")
15452 (description "@code{highlight-escape-sequences} provides an
15453 Emacs minor mode to escape sequences in code.")
15454 (license license:gpl3+))))
15455
15456 (define-public emacs-dashboard
15457 (package
15458 (name "emacs-dashboard")
15459 (version "1.6.0")
15460 (source
15461 (origin
15462 (method git-fetch)
15463 (uri (git-reference
15464 (url "https://github.com/rakanalh/emacs-dashboard.git")
15465 (commit version)))
15466 (file-name (git-file-name name version))
15467 (sha256
15468 (base32 "1g6g8vad1kdmv1zxp95a8sn70idl26isqjb3xk1r95pqnx1cn591"))))
15469 (build-system emacs-build-system)
15470 (propagated-inputs
15471 `(("emacs-page-break-lines" ,emacs-page-break-lines)))
15472 (arguments
15473 '(#:include '("\\.el$" "\\.txt$" "\\.png$")
15474 #:phases
15475 (modify-phases %standard-phases
15476 (add-after 'unpack 'patch-dashboard-widgets
15477 ;; This phase fixes compilation error.
15478 (lambda _
15479 (chmod "dashboard-widgets.el" #o666)
15480 (emacs-substitute-variables "dashboard-widgets.el"
15481 ("dashboard-init-info"
15482 '(format "Loaded in %s" (emacs-init-time))))
15483 #t)))))
15484 (home-page "https://github.com/rakanalh/emacs-dashboard")
15485 (synopsis "Startup screen extracted from Spacemacs")
15486 (description "This package provides an extensible Emacs dashboard, with
15487 sections for bookmarks, projectil projects, org-agenda and more. ")
15488 (license license:gpl3+)))
15489
15490 (define-public emacs-slime-company
15491 (package
15492 (name "emacs-slime-company")
15493 (version "1.1")
15494 (source
15495 (origin
15496 (method git-fetch)
15497 (uri (git-reference
15498 (url "https://github.com/anwyn/slime-company.git")
15499 (commit (string-append "v" version))))
15500 (file-name (git-file-name name version))
15501 (sha256
15502 (base32 "1hl1hqkc1pxga9k2k8k15d7dip7sfsmwf4wm4sh346m6nj606q8g"))))
15503 (build-system emacs-build-system)
15504 (propagated-inputs
15505 `(("emacs-slime" ,emacs-slime)
15506 ("emacs-company" ,emacs-company)))
15507 (home-page "https://company-mode.github.io")
15508 (synopsis "SLIME completion backend for @code{company-mode}")
15509 (description
15510 "This is a backend implementation for the completion package
15511 @code{company-mode} which supports the normal and the fuzzy completion
15512 modes of SLIME.")
15513 (license license:gpl3+)))
15514
15515 (define-public emacs-sml-mode
15516 (package
15517 (name "emacs-sml-mode")
15518 (version "6.10")
15519 (source
15520 (origin
15521 (method url-fetch)
15522 (uri (string-append "https://elpa.gnu.org/packages/sml-mode-"
15523 version ".el"))
15524 (sha256
15525 (base32 "01yf0s474r9xhj6nbs14ljn9ccxb5yy758i17c8nmgmqvm8fx7sb"))))
15526 (build-system emacs-build-system)
15527 (home-page "https://elpa.gnu.org/packages/sml-mode.html")
15528 (synopsis "Major mode for editing (Standard) ML")
15529 (description "SML-MODE is a major Emacs mode for editing Standard ML.
15530 It provides syntax highlighting and automatic indentation and
15531 comes with sml-proc which allows interaction with an inferior SML
15532 interactive loop.")
15533 (license license:gpl3+)))
15534
15535 (define-public emacs-eros
15536 (let ((commit "dd8910279226259e100dab798b073a52f9b4233a")
15537 (revision "2"))
15538 (package
15539 (name "emacs-eros")
15540 (version (git-version "0.0.1" revision commit))
15541 (source
15542 (origin
15543 (method git-fetch)
15544 (uri (git-reference
15545 (url "https://github.com/xiongtx/eros.git")
15546 (commit commit)))
15547 (file-name (git-file-name name version))
15548 (sha256
15549 (base32
15550 "08chj3a0lw4ygi2sv7wj0i6ihfbi8jhylr8p92inif8b88r6wg3k"))))
15551 (build-system emacs-build-system)
15552 (home-page "https://github.com/xiongtx/eros")
15553 (synopsis "Evaluation result overlays")
15554 (description "@code{eros} provides evaluation result overlays.")
15555 (license license:gpl3+))))
15556
15557 (define-public emacs-stickyfunc-enhance
15558 (let ((commit "13bdba51fcd83ccbc3267959d23afc94d458dcb0")
15559 (revision "1"))
15560 (package
15561 (name "emacs-stickyfunc-enhance")
15562 (version "0.1")
15563 (source
15564 (origin
15565 (method git-fetch)
15566 (uri (git-reference
15567 (url "https://github.com/tuhdo/semantic-stickyfunc-enhance.git")
15568 (commit commit)))
15569 (file-name (git-file-name name version))
15570 (sha256
15571 (base32
15572 "16dxjsr5nj20blww4xpd4jzgjprzzh1nwvb810ggdmp9paf4iy0g"))))
15573 (build-system emacs-build-system)
15574 (home-page "https://github.com/tuhdo/semantic-stickyfunc-enhance")
15575 (synopsis "Enhancement to stock @code{semantic-stickyfunc-mode}")
15576 (description
15577 "@code{semantic-stickyfunc-mode} shows the function point is currently
15578 in at the first line of the current buffer. This is useful when you have a
15579 very long function that spreads more than a screen, and you don't have to
15580 scroll up to read the function name and then scroll down to original position.")
15581 (license license:gpl3+))))
15582
15583 (define-public emacs-git-auto-commit-mode
15584 (package
15585 (name "emacs-git-auto-commit-mode")
15586 (version "4.5.0")
15587 (source
15588 (origin
15589 (method git-fetch)
15590 (uri (git-reference
15591 (url "https://github.com/ryuslash/git-auto-commit-mode.git")
15592 (commit version)))
15593 (file-name (git-file-name name version))
15594 (sha256
15595 (base32 "1w3v9pmlmdxl4pglsb6j0igp13lbzg5bhbr1rv2vll93m6zxmyma"))))
15596 (build-system emacs-build-system)
15597 (home-page "https://github.com/ryuslash/git-auto-commit-mode")
15598 (synopsis "Emacs Minor mode to automatically commit and push")
15599 (description "@code{git-auto-commit-mode} is an Emacs minor mode that
15600 tries to commit changes to a file after every save.
15601
15602 When @code{gac-automatically-push-p} is non-nil, it also tries to push to
15603 the current upstream.")
15604 (license license:gpl3+)))
15605
15606 (define-public emacs-scroll-on-drag
15607 (let ((commit "888abd04c34753b1fc4b2fe541bc004ebec5c996")
15608 (revision "1"))
15609 (package
15610 (name "emacs-scroll-on-drag")
15611 (version (git-version "0.1" revision commit))
15612 (source
15613 (origin
15614 (method git-fetch)
15615 (uri (git-reference
15616 (url "https://gitlab.com/ideasman42/emacs-scroll-on-drag.git")
15617 (commit commit)))
15618 (file-name (git-file-name name version))
15619 (sha256
15620 (base32
15621 "1si4hdqa3jw1inbyh3wb3i5i9grbms1nwky3vyk9zg7iznwm8a9p"))))
15622 (build-system emacs-build-system)
15623 (home-page "https://gitlab.com/ideasman42/emacs-scroll-on-drag")
15624 (synopsis "Interactive scrolling")
15625 (description "This package permits scrolling at increasing speeds based
15626 on drag distance.")
15627 (license license:gpl3+))))
15628
15629 (define-public emacs-company-restclient
15630 (package
15631 (name "emacs-company-restclient")
15632 (version "0.3.0")
15633 (source
15634 (origin
15635 (method git-fetch)
15636 (uri (git-reference
15637 (url "https://github.com/iquiw/company-restclient.git")
15638 (commit (string-append "v" version))))
15639 (file-name (git-file-name name version))
15640 (sha256
15641 (base32 "0yp0hlrgcr6yy1xkjvfckys2k24x9xg7y6336ma61bdwn5lpv0x0"))))
15642 (build-system emacs-build-system)
15643 (propagated-inputs
15644 `(("emacs-company" ,emacs-company)
15645 ("emacs-know-your-http-well" ,emacs-know-your-http-well)
15646 ("emacs-restclient" ,emacs-restclient)))
15647 (home-page "https://github.com/iquiw/company-restclient")
15648 (synopsis "Company-mode completion back-end for restclient-mode")
15649 (description "@code{company-mode} back-end for
15650 @code{restclient-mode}.
15651
15652 It provides auto-completion for HTTP methods and headers in
15653 @code{restclient-mode}. Completion source is given by
15654 @code{know-your-http-well}.")
15655 (license license:gpl3+)))
15656
15657 (define-public emacs-noflet
15658 (let ((version "20170629")
15659 (revision "1")
15660 (commit "7ae84dc3257637af7334101456dafe1759c6b68a"))
15661 (package
15662 (name "emacs-noflet")
15663 (version (git-version version revision commit))
15664 (source
15665 (origin
15666 (method git-fetch)
15667 (uri (git-reference
15668 (url "https://github.com/nicferrier/emacs-noflet")
15669 (commit commit)))
15670 (file-name (git-file-name name version))
15671 (sha256
15672 (base32
15673 "0g70gnmfi8n24jzfci9nrj0n9bn1qig7b8f9f325rin8h7x32ypf"))))
15674 (build-system emacs-build-system)
15675 (arguments
15676 `(#:phases
15677 (modify-phases %standard-phases
15678 (add-after 'unpack 'require-dash
15679 ;; noflet.el uses -map from dash, but (require 'dash) is
15680 ;; missing. So, add it.
15681 (lambda _
15682 (substitute* "noflet.el"
15683 ((";;; Code:") ";;; Code:\n(require 'dash)"))
15684 #t)))))
15685 (propagated-inputs
15686 `(("emacs-dash" ,emacs-dash)))
15687 (home-page "https://github.com/nicferrier/emacs-noflet")
15688 (synopsis "Locally override functions")
15689 (description "@code{emacs-noflet} lets you locally override functions,
15690 in the manner of @command{flet}, but with access to the original function
15691 through the symbol: @command{this-fn}.")
15692 (license license:gpl3+))))
15693
15694 (define-public emacs-dumb-jump
15695 (package
15696 (name "emacs-dumb-jump")
15697 (version "0.5.3")
15698 (source
15699 (origin
15700 (method git-fetch)
15701 (uri (git-reference
15702 (url "https://github.com/jacktasia/dumb-jump.git")
15703 (commit (string-append "v" version))))
15704 (file-name (git-file-name name version))
15705 (sha256
15706 (base32 "1njf60264snhxrd36m4z687lqfkis0p9mmrr7cf1c8l0lfdvawxi"))))
15707 (build-system emacs-build-system)
15708 (arguments
15709 `(#:tests? #f ; FIXME: Tests freeze when run.
15710 #:test-command '("ert-runner")
15711 #:phases
15712 (modify-phases %standard-phases
15713 (add-after 'unpack 'set-shell
15714 (lambda _
15715 ;; Setting the SHELL environment variable is required for the
15716 ;; tests to find sh.
15717 (setenv "SHELL" (which "sh"))
15718 #t)))))
15719 (native-inputs
15720 `(("emacs-el-mock" ,emacs-el-mock)
15721 ("emacs-noflet" ,emacs-noflet)
15722 ("emacs-undercover" ,emacs-undercover)
15723 ("ert-runner" ,emacs-ert-runner)))
15724 (propagated-inputs
15725 `(("emacs-f" ,emacs-f)
15726 ("emacs-popup" ,emacs-popup)))
15727 (home-page "https://github.com/jacktasia/dumb-jump")
15728 (synopsis "Jump to definition for multiple languages without configuration")
15729 (description "Dumb Jump is an Emacs \"jump to definition\" package with
15730 support for multiple programming languages that favors \"just working\" over
15731 speed or accuracy. This means minimal --- and ideally zero --- configuration
15732 with absolutely no stored indexes (tags) or persistent background processes.
15733 Dumb Jump performs best with The Silver Searcher @command{ag} or ripgrep
15734 @command{rg} installed.")
15735 (license license:gpl3+)))
15736
15737 (define-public emacs-dts-mode
15738 (let ((commit "9ee0854446dcc6c53d2b8d2941051768dba50344")
15739 (revision "1"))
15740 (package
15741 (name "emacs-dts-mode")
15742 (version (string-append "0.1.0-" revision "." (string-take commit 7)))
15743 (source
15744 (origin
15745 (method git-fetch)
15746 (uri (git-reference
15747 (url "https://github.com/bgamari/dts-mode.git")
15748 (commit commit)))
15749 (file-name (git-file-name name version))
15750 (sha256
15751 (base32
15752 "1k8lljdbc90nd29xrhdrsscxavzdq532wq2mg7ljc94krj7538b1"))))
15753 (build-system emacs-build-system)
15754 (home-page "https://github.com/bgamari/dts-mode.git")
15755 (synopsis "Emacs minor mode for editing device tree files")
15756 (description
15757 "This package provides an Emacs minor mode for highlighting
15758 device tree files.")
15759 (license license:gpl3+))))
15760
15761 (define-public emacs-daemons
15762 (package
15763 (name "emacs-daemons")
15764 (version "2.0.0")
15765 (source
15766 (origin
15767 (method git-fetch)
15768 (uri (git-reference
15769 (url "https://github.com/cbowdon/daemons.el")
15770 (commit version)))
15771 (file-name (git-file-name name version))
15772 (sha256
15773 (base32
15774 "00bkzfaw3bqykcks610vk9wlpa2z360xn32bpsrycacwfv29j7g4"))))
15775 (build-system emacs-build-system)
15776 (home-page "https://github.com/cbowdon/daemons.el")
15777 (synopsis "Emacs UI for managing init system services")
15778 (description
15779 "This is an Emacs mode to give you a UI for managing init system
15780 daemons (services) for those getting tired of typing out @code{sudo service
15781 my_thing reload} all the time. It offers a consistent UI over different init
15782 systems.")
15783 (license license:gpl3+)))
15784
15785 (define-public emacs-isearch+
15786 (let ((commit "7c251b91a67bf914066e23e269ba52fda5b45f5f")
15787 (revision "2"))
15788 (package
15789 (name "emacs-isearch+")
15790 (version (git-version "0" revision commit))
15791 (source
15792 (origin
15793 (method git-fetch)
15794 (uri (git-reference
15795 (url "https://github.com/emacsmirror/isearch-plus.git")
15796 (commit commit)))
15797 (file-name (git-file-name name version))
15798 (sha256
15799 (base32
15800 "1w2799714jcdycjlxgs8lpmmz6dmzvcvqy8xwxhvmgpb60g4f2yr"))))
15801 (build-system emacs-build-system)
15802 (home-page "https://www.emacswiki.org/emacs/isearch+.el")
15803 (synopsis "Extensions to @code{isearch.el}")
15804 (description "This package extends @code{isearch} with advice, dynamic
15805 filters, highlighting of regexp group levels, and more.")
15806 (license license:gpl2+))))
15807
15808 (define-public emacs-eshell-bookmark
15809 (package
15810 (name "emacs-eshell-bookmark")
15811 (version "2.0.0")
15812 (source
15813 (origin
15814 (method git-fetch)
15815 (uri (git-reference
15816 (url "https://github.com/Fuco1/eshell-bookmark")
15817 (commit version)))
15818 (file-name (git-file-name name version))
15819 (sha256
15820 (base32
15821 "14dmsnixf9vqdhsixw693sml0fn80zcf0b37z049fb40cmppqxdw"))))
15822 (build-system emacs-build-system)
15823 (home-page "https://github.com/Fuco1/eshell-bookmark")
15824 (synopsis "Provide @file{bookmark.el} integration for @code{eshell}")
15825 (description
15826 "This package allows for bookmarking @code{eshell} buffers. Upon
15827 visiting the bookmark, a new @code{eshell} session will be opened in the
15828 appropriate directory if no @code{eshell} session is active.")
15829 (license license:gpl3+)))
15830
15831 (define-public emacs-eshell-z
15832 (package
15833 (name "emacs-eshell-z")
15834 (version "0.4")
15835 (source
15836 (origin
15837 (method git-fetch)
15838 (uri (git-reference
15839 (url "https://github.com/xuchunyang/eshell-z")
15840 (commit (string-append "v" version))))
15841 (file-name (git-file-name name version))
15842 (sha256
15843 (base32
15844 "13dwaq8q23rwmrkpy3gvf7aswrkk6b9ak5221xl7n0bld4wdhq3j"))))
15845 (build-system emacs-build-system)
15846 (home-page "https://github.com/xuchunyang/eshell-z")
15847 (synopsis "Quick navigation to frequently visited directories")
15848 (description
15849 "This package is a port of @code{z}, and keeps track of visited directories
15850 and commands invoked within them in order to enable navigation via input of
15851 matching regexps.")
15852 (license license:gpl3+)))
15853
15854 (define-public emacs-esh-autosuggest
15855 (package
15856 (name "emacs-esh-autosuggest")
15857 (version "2.0.0")
15858 (source
15859 (origin
15860 (method git-fetch)
15861 (uri (git-reference
15862 (url "https://github.com/dieggsy/esh-autosuggest")
15863 (commit version)))
15864 (file-name (git-file-name name version))
15865 (sha256
15866 (base32
15867 "116pdjgpjy9b0psm5kzwkwy7dq8vn0p6dy75dl1zsy2xrjf1iqdw"))))
15868 (build-system emacs-build-system)
15869 (propagated-inputs `(("emacs-company" ,emacs-company)))
15870 (home-page "https://github.com/dieggsy/esh-autosuggest")
15871 (synopsis "Fish-like autosuggestions in Eshell")
15872 (description
15873 "This package assumes you use something other than company for eshell
15874 completion (e.g. @code{eshell-pcomplete}, @code{completion-at-point},
15875 @code{helm-esh-pcomplete}). @code{company-mode} is used solely as a mechanism
15876 for history autosuggestions.
15877
15878 Unless you're using @code{use-package}'s hook keyword, you can enable the
15879 autosuggestions with:
15880 @code{(add-hook 'eshell-mode-hook #'esh-autosuggest-mode)}")
15881 (license license:gpl3+)))
15882
15883 (define-public emacs-desktop-environment
15884 (package
15885 (name "emacs-desktop-environment")
15886 (version "0.3.0")
15887 (source
15888 (origin
15889 (method git-fetch)
15890 (uri (git-reference
15891 (url "https://gitlab.petton.fr/DamienCassou/desktop-environment")
15892 (commit (string-append "v" version))))
15893 (file-name (git-file-name name version))
15894 (sha256
15895 (base32
15896 "195n99xvxyh4cfxjpfa1h1maalqrxf7nyi0bh3lqa1z6z5bdb6x2"))))
15897 (build-system emacs-build-system)
15898 (home-page "https://gitlab.petton.fr/DamienCassou/desktop-environment")
15899 (synopsis "Control your GNU/Linux desktop environment from Emacs")
15900 (description
15901 "This package helps you control your GNU/Linux desktop from Emacs.
15902 With @code{desktop-environment}, you can control the brightness and volume as
15903 well as take screenshots and lock your screen. The package depends on the
15904 availability of shell commands to do the hard work for us. These commands can
15905 be changed by customizing the appropriate variables.")
15906 (license license:gpl3+)))
15907
15908 (define-public emacs-org-caldav
15909 (let ((commit "a563500c9884f38ce08793e2964f8274adde163d"))
15910 (package
15911 (name "emacs-org-caldav")
15912 (version (git-version "0.0.0" "1" commit))
15913 (source
15914 (origin
15915 (method git-fetch)
15916 (uri (git-reference
15917 (url "https://github.com/dengste/org-caldav.git")
15918 (commit commit)))
15919 (file-name (git-file-name name version))
15920 (sha256
15921 (base32
15922 "18qi1iv5dc0gsvkv9ifal3cjpm568nlb907v8a53cnm4439x1l0l"))))
15923 (build-system emacs-build-system)
15924 (arguments
15925 ;; Tests require to have two specific calendars on a test server.
15926 `(#:exclude '("^org-caldav-testsuite\\.el")))
15927 (propagated-inputs
15928 `(("emacs-org" ,emacs-org)))
15929 (home-page "https://github.com/dengste/org-caldav")
15930 (synopsis "Sync Org files with external calendars via the CalDAV protocol")
15931 (description "Synchronize between events in Org files and a CalDAV
15932 calendar.")
15933 (license license:gpl3+))))
15934
15935 (define-public emacs-zotxt
15936 (package
15937 (name "emacs-zotxt")
15938 (version "20180518")
15939 (source
15940 (origin
15941 (method git-fetch)
15942 (uri (git-reference
15943 (url "https://github.com/egh/zotxt-emacs.git")
15944 (commit "23a4a9f74a658222027d53a9a83cd4bcc583ca8b")))
15945 (file-name (git-file-name name version))
15946 (sha256
15947 (base32 "09fq3w9yk9kn6bz7y9kgpiw612dvj3yzsdk734js6zgb0p8lfd2c"))))
15948 (build-system emacs-build-system)
15949 (propagated-inputs
15950 `(("emacs-deferred" ,emacs-deferred)
15951 ("emacs-request" ,emacs-request)))
15952 (home-page "https://github.com/egh/zotxt-emacs")
15953 (synopsis "Integrate Emacs with Zotero")
15954 (description "This package provides two integration features between Emacs
15955 and the Zotero research assistant: Insertion of links to Zotero items into an
15956 Org-mode file, and citations of Zotero items in Pandoc Markdown files.")
15957 (license license:gpl3+)))
15958
15959 (define-public emacs-evil-magit
15960 (let ((commit "4b66a1db8285457147a5436f209391016a819ea1")
15961 (revision "3"))
15962 (package
15963 (name "emacs-evil-magit")
15964 (version (git-version "0.4.2" revision commit))
15965 (source
15966 (origin
15967 (method git-fetch)
15968 (uri (git-reference
15969 (url "https://github.com/emacs-evil/evil-magit")
15970 (commit commit)))
15971 (file-name (git-file-name name version))
15972 (sha256
15973 (base32
15974 "0kkmbswfh34k3amfl3v140vsnz1gq4n4mg9g4khjd9yjph3zms4h"))))
15975 (build-system emacs-build-system)
15976 (propagated-inputs
15977 `(("emacs-evil" ,emacs-evil)
15978 ("magit" ,emacs-magit)))
15979 (arguments
15980 `(#:tests? #t
15981 #:test-command '("emacs" "-Q" "-batch"
15982 "-L" "."
15983 "-l" "evil-magit-tests"
15984 "-f" "ert-run-tests-batch-and-exit")))
15985 (home-page
15986 "https://github.com/emacs-evil/evil-magit")
15987 (synopsis "Evil-based key bindings for Magit")
15988 (description
15989 "This Emacs library configures Magit and Evil to play well with each other.
15990 For some background see @url{https://github.com/magit/evil-magit/issues/1}.
15991 See the README at @url{https://github.com/justbur/evil-magit} for a table
15992 describing the key binding changes.")
15993 (license license:gpl3+))))
15994
15995 (define-public emacs-evil-multiedit
15996 (package
15997 (name "emacs-evil-multiedit")
15998 (version "1.3.9")
15999 (source
16000 (origin
16001 (method git-fetch)
16002 (uri (git-reference
16003 (url "https://github.com/hlissner/evil-multiedit")
16004 (commit (string-append "v" version))))
16005 (file-name (git-file-name name version))
16006 (sha256
16007 (base32
16008 "19h3kqylqzbjv4297wkzzxdmn9yxbg6z4ga4ssrqri90xs7m3rw3"))))
16009 (build-system emacs-build-system)
16010 (propagated-inputs
16011 `(("emacs-evil" ,emacs-evil)
16012 ("emacs-iedit" ,emacs-iedit)))
16013 (native-inputs
16014 `(("emacs-ert-runner" ,emacs-ert-runner)))
16015 (arguments
16016 `(#:phases
16017 (modify-phases %standard-phases
16018 (add-before 'check 'fix-makefile
16019 (lambda _
16020 (substitute* "Makefile"
16021 (("@cask exec ") ""))
16022 #t)))
16023 #:tests? #t
16024 #:test-command '("make" "test")))
16025 (home-page
16026 "https://github.com/hlissner/evil-multiedit")
16027 (synopsis "Multiple cursors for Evil mode")
16028 (description
16029 "This plugin was an answer to the lack of proper multiple cursor support
16030 in Emacs+Evil. It allows you to select and edit matches interactively,
16031 integrating @code{iedit-mode} into Evil mode with an attempt at sensible
16032 defaults.")
16033 (license license:gpl3+)))
16034
16035 (define-public emacs-evil-mc
16036 (let ((commit "1cabb869fe70cef49f7dc06f015c3ade1a969c8c")
16037 (revision "2"))
16038 (package
16039 (name "emacs-evil-mc")
16040 (version (git-version "0.0.3" revision commit))
16041 (source
16042 (origin
16043 (method git-fetch)
16044 (uri (git-reference
16045 (url "https://github.com/gabesoft/evil-mc.git")
16046 (commit commit)))
16047 (file-name (git-file-name name version))
16048 (sha256
16049 (base32 "0p83p90faq1p02lmsfs7zrnky3cyzgy8z4m83a81r9kakjzhkrnb"))))
16050 (build-system emacs-build-system)
16051 (propagated-inputs
16052 `(("emacs-evil" ,emacs-evil)))
16053 (native-inputs
16054 `(("emacs-espuds" ,emacs-espuds)))
16055 (home-page "https://github.com/gabesoft/evil-mc")
16056 (synopsis "Interactive search compatible with @code{multiple-cursors}")
16057 (description "This package can be used with @code{multiple-cursors} to
16058 provide an incremental search that moves all fake cursors in sync.")
16059 (license license:expat))))
16060
16061 (define-public emacs-evil-org
16062 (let ((commit "9d4be14118bf27094a30dbff349b815f098aacbf"))
16063 (package
16064 (name "emacs-evil-org")
16065 (version (git-version "1.0.2" "1" commit))
16066 (source
16067 (origin
16068 (method git-fetch)
16069 (uri (git-reference
16070 (url "https://github.com/Somelauw/evil-org-mode")
16071 (commit commit)))
16072 (file-name (git-file-name name version))
16073 (sha256
16074 (base32
16075 "1fxxfkinb0gq4p5b686r7z4jrkv98zfgh5z889zkjacncv8ibswn"))))
16076 (build-system emacs-build-system)
16077 (propagated-inputs `(("emacs-evil" ,emacs-evil)))
16078 (home-page
16079 "https://github.com/Somelauw/evil-org-mode")
16080 (synopsis "Evil keybindings for Org mode")
16081 (description
16082 "This package adds supplemental Evil mode key-bindings to Emacs
16083 Org-mode. It features:
16084 @itemize
16085 @item normal, visual and insert mode bindings;
16086 @item key bindings organised in key themes;
16087 @item operators like > and < to work on headings;
16088 @item text objects;
16089 @item table support;
16090 @item calendar (date selection) support;
16091 @item agenda support.
16092 @end itemize\n")
16093 (license license:gpl3+))))
16094
16095 (define-public emacs-debpaste
16096 (package
16097 (name "emacs-debpaste")
16098 (version "0.1.5")
16099 (home-page "https://github.com/alezost/debpaste.el")
16100 (source
16101 (origin
16102 (method git-fetch)
16103 (uri (git-reference (url home-page)
16104 (commit (string-append "v" version))))
16105 (file-name (git-file-name name version))
16106 (sha256
16107 (base32
16108 "1wi70r56pd5z0x4dp4m58p9asq03j74kdm4fi9vai83vsl2z9amq"))))
16109 (build-system emacs-build-system)
16110 (propagated-inputs
16111 `(("emacs-xml-rpc" ,emacs-xml-rpc)))
16112 (synopsis "Manipulate pastes from the Debian Pastezone")
16113 (description "Debpaste is an Emacs interface for the Debian Pastezone,
16114 allowing you to receive, post, and delete pastes. It communicates with the
16115 server using XML-RPC.")
16116 (license license:gpl3+)))
16117
16118 (define-public emacs-xml-rpc
16119 (let ((commit "8f624f8b964e9145acb504e4457c9510e87dd93c")
16120 (revision "1"))
16121 (package
16122 (name "emacs-xml-rpc")
16123 (version (git-version "1.6.12" revision commit))
16124 (source
16125 (origin
16126 (method git-fetch)
16127 (uri (git-reference
16128 (url "https://github.com/hexmode/xml-rpc-el")
16129 (commit commit)))
16130 (file-name (git-file-name name version))
16131 (sha256
16132 (base32
16133 "0xa54z52rsfl3n0xgmbycj4zazp8ksgdwcq56swzs6wp72zlalmj"))))
16134 (build-system emacs-build-system)
16135 (home-page "https://github.com/hexmode/xml-rpc-el")
16136 (synopsis "XML-RPC client for Emacs")
16137 (description "This package provides an XML-RPC client for Emacs capable
16138 of both synchronous and asynchronous method calls using the @code{url}
16139 package's async retrieval functionality. @file{xml-rpc.el} represents XML-RPC
16140 datatypes as Lisp values, automatically converting to and from the XML
16141 datastructures as needed, both for method parameters and return values, making
16142 using XML-RPC methods fairly transparent to the Lisp code.")
16143 (license license:gpl3+))))
16144
16145 (define-public emacs-xpm
16146 (package
16147 (name "emacs-xpm")
16148 (version "1.0.4")
16149 (source
16150 (origin
16151 (method url-fetch)
16152 (uri (string-append "https://elpa.gnu.org/packages/xpm-"
16153 version ".tar"))
16154 (sha256
16155 (base32
16156 "075miyashh9cm3b0gk6ngld3rm8bfgnh4qxnhxmmvjgzf6a64grh"))))
16157 (build-system emacs-build-system)
16158 (home-page "https://elpa.gnu.org/packages/xpm.html")
16159 (synopsis "XPM image editing mode for Emacs")
16160 (description "This Emacs package makes editing XPM images easy (and maybe
16161 fun). Editing is done directly on the (textual) image format, for maximal
16162 cohesion with the Emacs Way.")
16163 (license license:gpl3+)))
16164
16165 (define-public emacs-fish-completion
16166 (package
16167 (name "emacs-fish-completion")
16168 (version "1.2")
16169 (source
16170 (origin
16171 (method git-fetch)
16172 (uri (git-reference
16173 (url "https://gitlab.com/Ambrevar/emacs-fish-completion.git")
16174 (commit version)))
16175 (file-name (git-file-name name version))
16176 (sha256
16177 (base32
16178 "17lqip1i1rrsvxzz4bx9rqf1fvwd3hriwg3sj6qxmfc8pylnp37q"))))
16179 (build-system emacs-build-system)
16180 (inputs `(("fish" ,fish)))
16181 (arguments
16182 `(#:phases
16183 (modify-phases %standard-phases
16184 (add-after 'unpack 'configure
16185 (lambda* (#:key inputs outputs #:allow-other-keys)
16186 (let ((fish (assoc-ref inputs "fish")))
16187 ;; Specify the absolute file names of the various
16188 ;; programs so that everything works out-of-the-box.
16189 (make-file-writable "fish-completion.el")
16190 (emacs-substitute-variables
16191 "fish-completion.el"
16192 ("fish-completion-command"
16193 (string-append fish "/bin/fish")))))))))
16194 (home-page
16195 "https://gitlab.com/Ambrevar/emacs-fish-completion")
16196 (synopsis "Fish completion for Emacs pcomplete")
16197 (description
16198 "This package provides completion for the Fish shell to pcomplete (used
16199 by shell and Eshell). You can set it up globally with:
16200
16201 @example
16202 (when (and (executable-find \"fish\")
16203 (require 'fish-completion nil t))
16204 (global-fish-completion-mode))
16205 @end example
16206
16207 Alternatively, you can call the @code{fish-completion-mode} manually or in
16208 shell/Eshell mode hook.
16209
16210 The package @code{emacs-bash-completion} is an optional dependency: if available,
16211 @code{fish-completion-complete} can be configured to fall back on bash to further
16212 try completing. See @code{fish-completion-fallback-on-bash-p}.")
16213 (license license:gpl3+)))
16214
16215 (define-public emacs-gif-screencast
16216 (package
16217 (name "emacs-gif-screencast")
16218 (version "1.1")
16219 (source
16220 (origin
16221 (method git-fetch)
16222 (uri (git-reference
16223 (url "https://gitlab.com/Ambrevar/emacs-gif-screencast.git")
16224 (commit version)))
16225 (file-name (git-file-name name version))
16226 (sha256
16227 (base32
16228 "1g1by8lvf8c9vzm4wwsi5kp285kaj0ahsl54048ympin4pi0njw9"))))
16229 (build-system emacs-build-system)
16230 (inputs
16231 `(("scrot" ,scrot)
16232 ("imagemagick" ,imagemagick)
16233 ("gifsicle" ,gifsicle)))
16234 (arguments
16235 `(#:phases
16236 (modify-phases %standard-phases
16237 (add-after 'unpack 'configure
16238 (lambda* (#:key inputs outputs #:allow-other-keys)
16239 (let ((scrot (assoc-ref inputs "scrot"))
16240 (imagemagick (assoc-ref inputs "imagemagick"))
16241 (gifsicle (assoc-ref inputs "gifsicle")))
16242 (make-file-writable "gif-screencast.el")
16243 ;; Specify the absolute file names of the various
16244 ;; programs so that everything works out-of-the-box.
16245 (emacs-substitute-variables
16246 "gif-screencast.el"
16247 ("gif-screencast-program"
16248 (string-append scrot "/bin/scrot"))
16249 ("gif-screencast-convert-program"
16250 (string-append imagemagick "/bin/convert"))
16251 ("gif-screencast-cropping-program"
16252 (string-append imagemagick "/bin/mogrify"))
16253 ("gif-screencast-optimize-program"
16254 (string-append gifsicle "/bin/gifsicle")))))))))
16255 (home-page
16256 "https://gitlab.com/Ambrevar/emacs-gif-screencast")
16257 (synopsis "One-frame-per-action GIF recording")
16258 (description
16259 "Call @code{gif-screencast} to start a recording.
16260 A screenshot is taken for every user action. Call
16261 @code{gif-screencast-stop} (<f9> by default) to finish recording and create
16262 the GIF result.")
16263 (license license:gpl3+)))
16264
16265 (define-public emacs-google-translate
16266 (package
16267 (name "emacs-google-translate")
16268 (version "0.11.18")
16269 (source
16270 (origin
16271 (method git-fetch)
16272 (uri (git-reference
16273 (url "https://github.com/atykhonov/google-translate/")
16274 (commit (string-append "v" version))))
16275 (file-name (git-file-name name version))
16276 (sha256
16277 (base32
16278 "1kbiqisqyk31l94gxsirhnrdkj51ylgcb16fk2wf7zigmf13jqzp"))))
16279 (build-system emacs-build-system)
16280 (home-page "https://github.com/atykhonov/google-translate")
16281 (synopsis "Emacs interface to Google Translate")
16282 (description
16283 "This package provides an Emacs interface to the Google Translate
16284 on-line service.")
16285 (license license:gpl3+)))
16286
16287 (define-public emacs-helm-company
16288 (package
16289 (name "emacs-helm-company")
16290 (version "0.2.5")
16291 (source
16292 (origin
16293 (method git-fetch)
16294 (uri (git-reference
16295 (url "https://github.com/Sodel-the-Vociferous/helm-company")
16296 (commit (string-append "v" version))))
16297 (file-name (git-file-name name version))
16298 (sha256
16299 (base32
16300 "1ci37w6ahnqrfpb284gjvxmimlf61sdxb9k192yy9q983cksv2hx"))))
16301 (build-system emacs-build-system)
16302 (propagated-inputs
16303 `(("emacs-helm" ,emacs-helm)
16304 ("emacs-company" ,emacs-company)))
16305 (native-inputs
16306 `(("emacs-ert-runner" ,emacs-ert-runner)))
16307 (arguments
16308 `(#:tests? #t
16309 #:test-command '("ert-runner")))
16310 (home-page "https://github.com/Sodel-the-Vociferous/helm-company")
16311 (synopsis "Helm interface for company-mode")
16312 (description
16313 "This is a Helm interface to company-mode, a text completion
16314 framework.")
16315 (license license:gpl3+)))
16316
16317 (define-public emacs-helm-descbinds
16318 (let ((commit "033be73f21778633813264ce1634a6e1ad873d8e"))
16319 (package
16320 (name "emacs-helm-descbinds")
16321 (version (git-version "1.13" "1" commit))
16322 (source
16323 (origin
16324 (method git-fetch)
16325 (uri (git-reference
16326 (url "https://github.com/emacs-helm/helm-descbinds")
16327 (commit commit)))
16328 (file-name (git-file-name name version))
16329 (sha256
16330 (base32
16331 "1n89p56qwa243w1c85i5awnaf7piwjsvfi7nmnsrwm33hix5dknk"))))
16332 (build-system emacs-build-system)
16333 (propagated-inputs `(("emacs-helm" ,emacs-helm)))
16334 (home-page "https://github.com/emacs-helm/helm-descbinds")
16335 (synopsis "Convenient @code{describe-bindings} with Helm")
16336 (description
16337 "This package is a replacement of @code{describe-bindings} for Helm.
16338 @code{describe-bindings} is replaced with @code{helm-descbinds}. As usual,
16339 type @code{C-h b}, or any incomplete key sequence plus @code{C-h}, to run
16340 @code{helm-descbinds}. The bindings are presented in a similar way as
16341 @code{describe-bindings} does, but you can use completion to find the command
16342 you searched for and execute it, or view its documentation.")
16343 (license license:gpl3+))))
16344
16345 (define-public emacs-helm-emms
16346 (let ((commit "b785cb845a98a643eba9d5d53c9c0b4e6810a3cd"))
16347 (package
16348 (name "emacs-helm-emms")
16349 (version (git-version "1.3" "2" commit))
16350 (source
16351 (origin
16352 (method git-fetch)
16353 (uri (git-reference
16354 (url "https://github.com/emacs-helm/helm-emms")
16355 (commit commit)))
16356 (file-name (git-file-name name version))
16357 (sha256
16358 (base32
16359 "1595r09y3rmwd46nnhvjja3hb8j2ila295ijxv61cg52ws4wginh"))))
16360 (build-system emacs-build-system)
16361 (propagated-inputs
16362 `(("emacs-helm" ,emacs-helm)
16363 ("emacs-emms" ,emacs-emms)))
16364 (home-page
16365 "https://github.com/emacs-helm/helm-emms")
16366 (synopsis "Emms for Helm")
16367 (description "Helm interface for Emms to browse all tracks and all folders
16368 from @code{emms-source-file-default-directory}.")
16369 (license license:gpl3+))))
16370
16371 (define-public emacs-helm-exwm
16372 (package
16373 (name "emacs-helm-exwm")
16374 (version "0.0.2")
16375 (source
16376 (origin
16377 (method git-fetch)
16378 (uri (git-reference
16379 (url "https://github.com/emacs-helm/helm-exwm.git")
16380 (commit version)))
16381 (file-name (git-file-name name version))
16382 (sha256
16383 (base32 "0g4k01ps14bp2az8v6dcag9llg045k2b4kdis81xx4lvw76znr9v"))))
16384 (build-system emacs-build-system)
16385 (propagated-inputs
16386 `(("emacs-helm" ,emacs-helm)
16387 ("emacs-exwm" ,emacs-exwm)))
16388 (home-page
16389 "https://github.com/emacs-helm/helm-exwm")
16390 (synopsis "Helm for EXWM buffers")
16391 (description
16392 "@code{helm-exwm} runs a Helm session over the list of EXWM buffers.
16393 @code{helm-exwm-switch} is a convenience X application launcher using Helm to
16394 switch between the various windows of one or several specific applications.
16395 See @code{helm-exwm-switch-browser} for an example.")
16396 (license license:gpl3+)))
16397
16398 (define-public emacs-helm-flycheck
16399 (let ((commit "3cf7d3bb194acacc6395f88360588013d92675d6"))
16400 (package
16401 (name "emacs-helm-flycheck")
16402 (version (git-version "0.4" "1" commit))
16403 (source
16404 (origin
16405 (method git-fetch)
16406 (uri (git-reference
16407 (url "https://github.com/yasuyk/helm-flycheck")
16408 (commit commit)))
16409 (file-name (git-file-name name version))
16410 (sha256
16411 (base32
16412 "1a2yfxhz04klwhcandqvfzysxp6b7bxyxx1xk1x3kds5hif5fkl4"))))
16413 (build-system emacs-build-system)
16414 (propagated-inputs
16415 `(("emacs-dash" ,emacs-dash)
16416 ("emacs-flycheck" ,emacs-flycheck)
16417 ("emacs-helm" ,emacs-helm)))
16418 (home-page "https://github.com/yasuyk/helm-flycheck")
16419 (synopsis "Show Flycheck errors with Helm")
16420 (description
16421 "This integrates Flycheck with Helm.")
16422 (license license:gpl3+))))
16423
16424 (define-public emacs-helm-ls-git
16425 (let ((commit "76654c776a7f6e2e5290645e748aac2a746f7daa"))
16426 (package
16427 (name "emacs-helm-ls-git")
16428 (version (git-version "1.9.1" "1" commit))
16429 (source
16430 (origin
16431 (method git-fetch)
16432 (uri (git-reference
16433 (url "https://github.com/emacs-helm/helm-ls-git")
16434 (commit commit)))
16435 (file-name (git-file-name name version))
16436 (sha256
16437 (base32
16438 "0vsq1n3xl3ghy5zik2scm7jrs501n4kybdqd6yw6j0cv4jxdqbr0"))))
16439 (build-system emacs-build-system)
16440 (propagated-inputs `(("emacs-helm" ,emacs-helm)))
16441 (home-page "https://github.com/emacs-helm/helm-ls-git")
16442 (synopsis "Helm interface for listing the files in a Git repository")
16443 (description
16444 "This package provides a Helm interface for Git files.
16445 @itemize
16446 @item Display the open buffers in project.
16447 @item Display a status source showing state of project (modified files etc.).
16448 @item Display a list of all files in project under git control.
16449 @item Quickly look at diffs of modified files.
16450 @item Allow switching to @code{git status} with your preferred frontend
16451 (vc-dir, Magit,etc.).
16452 @item Full integration of git-grep, also allow usage of @code{helm-grep} (you
16453 can use ack-grep instead of grep).
16454 @item Integrate usage of gid from id-utils.
16455 @item Full integration with @code{helm-find-files}, allow you to browse
16456 projects unrelated to current-buffer.
16457 @item In addition, all actions of type files and buffers are provided.
16458 @end itemize\n")
16459 (license license:gpl3+))))
16460
16461 (define-public emacs-helm-mu
16462 (let ((commit "77e6fea24e01481418738421dbcfe28ef1bd63cf"))
16463 (package
16464 (name "emacs-helm-mu")
16465 (version (git-version "20180513" "1" commit))
16466 (source
16467 (origin
16468 (method git-fetch)
16469 (uri (git-reference
16470 (url "https://github.com/emacs-helm/helm-mu.git")
16471 (commit commit)))
16472 (file-name (git-file-name name version))
16473 (sha256
16474 (base32 "1lh0ahxdc5b2z18m9p30gwg8sbg33sjwkjr38p7h5xsm5fm7i0fz"))))
16475 (build-system emacs-build-system)
16476 (propagated-inputs
16477 `(("emacs-helm" ,emacs-helm)
16478 ("mu" ,mu)))
16479 (home-page
16480 "https://github.com/emacs-helm/helm-mu")
16481 (synopsis
16482 "Helm sources for searching emails and contacts")
16483 (description
16484 "Helm sources for searching emails and contacts using @code{mu} and
16485 @code{mu4e}. Mu is an indexer for maildirs and mu4e is a mutt-like MUA for
16486 Emacs build on top of mu. Mu is highly efficient making it possible to get
16487 instant results even for huge maildirs. It also provides search operators,
16488 e.g: @code{from:Peter to:Anne flag:attach search term}.")
16489 (license license:gpl3+))))
16490
16491 (define-public emacs-helm-pass
16492 (package
16493 (name "emacs-helm-pass")
16494 (version "0.3")
16495 (source
16496 (origin
16497 (method git-fetch)
16498 (uri (git-reference
16499 (url "https://github.com/emacs-helm/helm-pass")
16500 (commit version)))
16501 (file-name (git-file-name name version))
16502 (sha256
16503 (base32
16504 "0vglaknmir3yv4iwibwn8r40ran8d04gcyp99hx73ldmf3zqpnxv"))))
16505 (build-system emacs-build-system)
16506 (propagated-inputs
16507 `(("emacs-helm" ,emacs-helm)
16508 ("emacs-password-store" ,emacs-password-store)))
16509 (home-page "https://github.com/emacs-helm/helm-pass")
16510 (synopsis "Helm interface to pass, the standard Unix password manager")
16511 (description
16512 "Users of @code{helm-pass} may also be interested in functionality
16513 provided by other Emacs packages dealing with pass:
16514 @itemize
16515 @item @code{emacs-password-store}, which @code{helm-pass} relies on.
16516 @item @code{emacs-pass}, a major mode for @code{pass}.
16517 @item @code{auth-source-pass.el}: integration of Emacs' auth-source with
16518 @code{pass}, included in Emacs 26+).
16519 @end itemize\n")
16520 (license license:gpl3+)))
16521
16522 (define-public emacs-image+
16523 (let ((commit "6834d0c09bb4df9ecc0d7a559bd7827fed48fffc"))
16524 (package
16525 (name "emacs-image+")
16526 (version (git-version "0.6.2" "1" commit))
16527 (source
16528 (origin
16529 (method git-fetch)
16530 (uri (git-reference
16531 (url "https://github.com/mhayashi1120/Emacs-imagex")
16532 (commit commit)))
16533 (file-name (git-file-name name version))
16534 (sha256
16535 (base32
16536 "0v66wk9nh0raih4jhrzmmyi5lbysjnmbv791vm2230ffi2hmwxnd"))))
16537 (build-system emacs-build-system)
16538 (inputs `(("imagemagick" ,imagemagick)))
16539 (arguments
16540 `(#:phases
16541 (modify-phases %standard-phases
16542 (add-after 'unpack 'configure
16543 (lambda* (#:key inputs outputs #:allow-other-keys)
16544 (let ((imagemagick (assoc-ref inputs "imagemagick")))
16545 ;; Specify the absolute file names of the various
16546 ;; programs so that everything works out-of-the-box.
16547 (chmod "image+.el" #o666)
16548 (emacs-substitute-variables
16549 "image+.el"
16550 ("imagex-convert-command"
16551 (string-append imagemagick "/bin/convert"))
16552 ("imagex-identify-command"
16553 (string-append imagemagick "/bin/identify")))))))))
16554 (home-page "https://github.com/mhayashi1120/Emacs-imagex")
16555 (synopsis "Image manipulation extensions for Emacs")
16556 (description
16557 "Image+ provides keybindings allowing you to zoom in or zoom out of an
16558 image, rotate it, save modified images, and more.")
16559 (license license:gpl3+))))
16560
16561 (define-public emacs-package-lint
16562 (let ((commit "69bb89d00ba212b734c676ad056aa793c450b288"))
16563 (package
16564 (name "emacs-package-lint")
16565 (version (git-version "0.5" "1" commit))
16566 (source
16567 (origin
16568 (method git-fetch)
16569 (uri (git-reference
16570 (url "https://github.com/purcell/package-lint")
16571 (commit commit)))
16572 (file-name (git-file-name name version))
16573 (sha256
16574 (base32
16575 "1hfricsgmy3x9snnd2p4xq6vnnv94qdsxxnxp07b3hqc9bhw31rq"))))
16576 (build-system emacs-build-system)
16577 (home-page "https://github.com/purcell/package-lint")
16578 (synopsis "Linting library for elisp package authors")
16579 (description
16580 "This provides a list of issues with the Emacs package metadata of a file,
16581 e.g. the package dependencies it requires. See function
16582 @code{package-lint-buffer}. Checks will currently be enabled only if a
16583 \"Package-Requires:\" or \"Package-Version:\" header is present in the
16584 file.")
16585 (license license:gpl3+))))
16586
16587 (define-public emacs-picpocket
16588 (let ((version "40")
16589 (commit "6fd88b8711c4370662c0f9c462170187d092a046"))
16590 (package
16591 (name "emacs-picpocket")
16592 (version version)
16593 (source
16594 (origin
16595 (method git-fetch)
16596 (uri (git-reference
16597 (url "https://github.com/johanclaesson/picpocket")
16598 (commit commit)))
16599 (file-name (git-file-name name version))
16600 (sha256
16601 (base32 "1mdzzxf7xm7zwrpnqqxa27d1cr31pd72d7ilbwljv13qp177a3yw"))))
16602 (build-system emacs-build-system)
16603 (arguments ; needed for running tests
16604 `(#:tests? #t
16605 #:emacs ,emacs
16606 #:test-command '("emacs" "--batch"
16607 "-l" "picpocket-test.el"
16608 "-f" "ert-run-tests-batch-and-exit")))
16609 (home-page "https://github.com/johanclaesson/picpocket")
16610 (synopsis "Image viewer for Emacs")
16611 (description
16612 "Picpocket is an image viewer for GNU Emacs. It has commands for:
16613
16614 @itemize
16615 @item File operations on the picture files (delete, move, copy, hardlink).
16616 @item Scale and rotate the picture.
16617 @item Associate pictures with tags which are saved to disk.
16618 @item Filter pictures according to tags.
16619 @item Customizing keystrokes for quick tagging and file operations.
16620 @item Undo and browse history of undoable commands.
16621 @end itemize")
16622 (license license:gpl3+))))
16623
16624 (define-public emacs-mu4e-conversation
16625 (let ((commit "98110bb9c300fc9866dee8e0023355f9f79c9b96")
16626 (revision "5"))
16627 (package
16628 (name "emacs-mu4e-conversation")
16629 (version (git-version "0.0.1" revision commit))
16630 (source
16631 (origin
16632 (method git-fetch)
16633 (uri (git-reference
16634 (url "https://gitlab.com/Ambrevar/mu4e-conversation.git")
16635 (commit commit)))
16636 (file-name (git-file-name name version))
16637 (sha256
16638 (base32
16639 "080s96jkcw2p288sp1vgds91rgl693iz6hi2dv56p2ih0nnivwlg"))))
16640 (build-system emacs-build-system)
16641 (propagated-inputs
16642 `(("mu" ,mu)))
16643 (home-page
16644 "https://gitlab.com/Ambrevar/mu4e-conversation")
16645 (synopsis
16646 "Show a complete thread in a single buffer")
16647 (description
16648 "This package offers an alternate view to mu4e's e-mail display. It
16649 shows all e-mails of a thread in a single view, where each correspondent has
16650 their own face. Threads can be displayed linearly (in which case e-mails are
16651 displayed in chronological order) or as an Org document where the node tree
16652 maps the thread tree.")
16653 (license license:gpl3+))))
16654
16655 (define-public emacs-pinentry
16656 (let ((commit "dcc9ba03252ee5d39e03bba31b420e0708c3ba0c")
16657 (revision "1"))
16658 (package
16659 (name "emacs-pinentry")
16660 (version (git-version "0.1" revision commit))
16661 (source
16662 (origin
16663 (method url-fetch)
16664 (uri (string-append
16665 "http://git.savannah.gnu.org/cgit/emacs/elpa.git/plain"
16666 "/packages/pinentry/pinentry.el?id=" commit))
16667 (file-name (string-append "pinentry.el"))
16668 (sha256
16669 (base32
16670 "1lf30q6r8nz5cjzclbb9bbymsk2y75nskvb55hnjdv93gr3j0sik"))))
16671 (build-system emacs-build-system)
16672 (propagated-inputs
16673 `(("gnupg" ,gnupg)))
16674 (home-page "https://elpa.gnu.org/packages/pinentry.html")
16675 (synopsis "GnuPG Pinentry server implementation")
16676 (description
16677 "This package allows GnuPG passphrase to be prompted through the
16678 minibuffer instead of graphical dialog.
16679
16680 To use, add @code{allow-emacs-pinentry} to @code{~/.gnupg/gpg-agent.conf},
16681 reload the configuration with @code{gpgconf --reload gpg-agent}, and start the
16682 server with @code{M-x pinentry-start}.")
16683 (license license:gpl3+))))
16684
16685 (define-public emacs-so-long
16686 (let ((commit "cfae473b1bf65f78ddb015159e667ec0103d881c")
16687 (revision "2"))
16688 (package
16689 (name "emacs-so-long")
16690 (version (git-version "1.0" revision commit))
16691 (source
16692 (origin
16693 (method git-fetch)
16694 (uri (git-reference
16695 (url "https://git.savannah.gnu.org/git/so-long.git")
16696 (commit commit)))
16697 (file-name (git-file-name name version))
16698 (sha256
16699 (base32
16700 "0g943n5cl9lz5s7hszg6yvp10xd1xvd8mfgxyg0yckmp8fqkswin"))))
16701 (build-system emacs-build-system)
16702 (home-page "https://www.emacswiki.org/emacs/SoLong")
16703 (synopsis "Improve performance in files with long lines")
16704 (description "This package improves the performance of Emacs when
16705 viewing files with long lines.")
16706 (license license:gpl3+))))
16707
16708 (define-public emacs-github-review
16709 (let ((commit "a13a3b4f1b6114a32af843971a145ab880f51232")
16710 (revision "2"))
16711 (package
16712 (name "emacs-github-review")
16713 (version (git-version "0.1" revision commit))
16714 (source
16715 (origin
16716 (method git-fetch)
16717 (uri (git-reference
16718 (url "https://github.com/charignon/github-review")
16719 (commit commit)))
16720 (file-name (git-file-name name version))
16721 (sha256
16722 (base32
16723 "0injfpxzgfhmqalba845j5l5cdcxxqz43knhxwinf36g52nfabl0"))))
16724 (build-system emacs-build-system)
16725 (inputs
16726 `(("emacs-dash" ,emacs-dash)
16727 ("emacs-s" ,emacs-s)
16728 ("emacs-ghub" ,emacs-ghub)))
16729 (native-inputs
16730 `(("emacs-buttercup" ,emacs-buttercup)
16731 ("emacs-undercover" ,emacs-undercover)))
16732 (arguments
16733 `(#:tests? #t
16734 #:test-command '("buttercup" "-L" "test/github-review-test.el")))
16735 (home-page "https://github.com/charignon/github-review")
16736 (synopsis "Review GitHub pull requests within Emacs")
16737 (description "This package provides commands to pull in, comment on, and
16738 accept and reject GitHub pull requests.")
16739 (license license:gpl3+))))
16740
16741 (define-public emacs-deadgrep
16742 (let ((commit "3fc7ca1f58e190f0c80da455a0e40187e673020e")
16743 (revision "2"))
16744 (package
16745 (name "emacs-deadgrep")
16746 (version (git-version "0.8" revision commit))
16747 (source
16748 (origin
16749 (method git-fetch)
16750 (uri (git-reference
16751 (url "https://github.com/Wilfred/deadgrep")
16752 (commit commit)))
16753 (file-name (git-file-name name version))
16754 (sha256
16755 (base32
16756 "016gwqxd9aqzjw3hqv3vdf8cs6la8r65g6azg5rlmjqwfx3vsaha"))))
16757 (build-system emacs-build-system)
16758 (inputs
16759 `(("emacs-dash" ,emacs-dash)
16760 ("emacs-s" ,emacs-s)
16761 ("emacs-spinner" ,emacs-spinner)))
16762 (home-page "https://github.com/Wilfred/deadgrep")
16763 (synopsis "Frontend for @code{ripgrep}")
16764 (description "This package provides an Emacs interface for performing
16765 searches with @code{ripgrep}.")
16766 (license license:gpl3+))))
16767
16768 (define-public emacs-focus
16769 (let ((commit "ab42b8779929beeb7878c7fb3d3ccd80d9327c7f")
16770 (version "0.1.1")
16771 (revision "1"))
16772 (package
16773 (name "emacs-focus")
16774 (version (git-version version revision commit))
16775 (source
16776 (origin
16777 (method git-fetch)
16778 (uri (git-reference
16779 (url "https://github.com/larstvei/Focus")
16780 (commit commit)))
16781 (file-name (git-file-name name version))
16782 (sha256
16783 (base32
16784 "079v1syid7h2vr2ya6hs6hl0pgj60qdsw60mqw4cj2zllmkrkwj4"))))
16785 (build-system emacs-build-system)
16786 (home-page "https://github.com/larstvei/Focus")
16787 (synopsis "Minor mode for focusing in on relevant text")
16788 (description "This package provides a minor mode that dims the color of
16789 text in neighboring sections.")
16790 (license license:gpl3+))))
16791
16792 (define-public emacs-pandoc-mode
16793 (package
16794 (name "emacs-pandoc-mode")
16795 (version "2.27.2")
16796 (source
16797 (origin
16798 (method git-fetch)
16799 (uri (git-reference
16800 (url "https://github.com/joostkremers/pandoc-mode")
16801 (commit version)))
16802 (file-name (git-file-name name version))
16803 (sha256
16804 (base32
16805 "04bqc7mhgkfks3nsvimd3rrriv4nqbksmv5ahlbbd03aqa2b0vrv"))))
16806 (build-system emacs-build-system)
16807 (propagated-inputs
16808 `(("emacs-dash" ,emacs-dash)
16809 ("emacs-hydra" ,emacs-hydra)))
16810 (home-page "https://github.com/joostkremers/pandoc-mode")
16811 (synopsis "Minor mode for interacting with Pandoc")
16812 (description "This package provides a Hydra menu for interacting with the
16813 Pandoc, the document-conversion tool.")
16814 (license license:bsd-3)))
16815
16816 (define-public emacs-hlint-refactor-mode
16817 (let ((commit "c4307f86aad6d02e32e9b30cb6edc115584c791c")
16818 (revision "1"))
16819 (package
16820 (name "emacs-hlint-refactor-mode")
16821 (version (git-version "0.0.1" revision commit))
16822 (source
16823 (origin
16824 (method git-fetch)
16825 (uri (git-reference
16826 (url "https://github.com/mpickering/hlint-refactor-mode")
16827 (commit commit)))
16828 (file-name (git-file-name name version))
16829 (sha256
16830 (base32
16831 "1c71w9s34n0i7mm4njchxn6s3ri1y6mh3akgbg4nq41d42h8iap3"))))
16832 (build-system emacs-build-system)
16833 (propagated-inputs
16834 `(("apply-refact" ,apply-refact)
16835 ("hlint" ,hlint)))
16836 (home-page "https://github.com/mpickering/hlint-refactor-mode")
16837 (synopsis "Emacs bindings for @code{hlint}'s @code{--refactor} option")
16838 (description "This package applies refactoring suggestions from
16839 @code{hlint}.")
16840 (license license:expat))))
16841
16842 (define-public emacs-ccls
16843 (let ((commit "aab3e31fd716daf59f9794e62d473357263e8cc0")
16844 (revision "4"))
16845 (package
16846 (name "emacs-ccls")
16847 (version (git-version "0.1" revision commit))
16848 (source
16849 (origin
16850 (method git-fetch)
16851 (uri (git-reference
16852 (url "https://github.com/MaskRay/emacs-ccls")
16853 (commit commit)))
16854 (file-name (git-file-name name version))
16855 (sha256
16856 (base32
16857 "1ykgw21ypyhwlyflppjcgqrj1xw4d9rld4z65qvwhk3f12cv113j"))))
16858 (build-system emacs-build-system)
16859 (propagated-inputs
16860 `(("ccls" ,ccls)
16861 ("emacs-dash" ,emacs-dash)
16862 ("emacs-projectile" ,emacs-projectile)
16863 ("emacs-lsp-mode" ,emacs-lsp-mode)))
16864 (home-page "https://github.com/MaskRay/emacs-ccls")
16865 (synopsis "Emacs support for the @code{ccls} language server")
16866 (description "This package extends @code{lsp-mode} to work with @code{C}
16867 and @code{C++} files through the @code{ccls} language server.")
16868 (license license:expat))))
16869
16870 (define-public emacs-org-brain
16871 (package
16872 (name "emacs-org-brain")
16873 (version "0.5")
16874 (source
16875 (origin
16876 (method git-fetch)
16877 (uri (git-reference
16878 (url "https://github.com/Kungsgeten/org-brain.git")
16879 (commit "3faf9303af3f2356e3444e69c22dc6c5774047d1")))
16880 (file-name (git-file-name name version))
16881 (sha256
16882 (base32
16883 "1ad681zk6kckw2zbk0r4iaj4bw8cfqrbd1s3gdwgdjlzq81q9mmj"))))
16884 (build-system emacs-build-system)
16885 (home-page "https://github.com/Kungsgeten/org-brain")
16886 (synopsis "Org-mode wiki and concept-mapping for Emacs")
16887 (description "@code{emacs-org-brain} implements a variant of concept
16888 mapping in Emacs, using @code{org-mode}. An org-brain is a network of
16889 org-mode entries, where each entry is a file or a headline, and you can get a
16890 visual overview of the relationships between the entries: parents, children,
16891 siblings and friends. This visual overview can also be used to browse your
16892 entries. You can think of entries as nodes in a mind map, or pages in a
16893 wiki.")
16894 (license license:expat)))
16895
16896 (define-public emacs-recent-addresses
16897 (let ((commit "afbbfdc43b81e620acf827ca20d297e0c517b6eb")
16898 (revision "1"))
16899 (package
16900 (name "emacs-recent-addresses")
16901 (home-page "https://nschum.de/src/emacs/recent-addresses/")
16902 (version (git-version "0.1" revision commit))
16903 (source (origin
16904 (method git-fetch)
16905 (uri (git-reference
16906 ;; Note: Use a branch that works with Helm. Submitted
16907 ;; at <https://github.com/nschum/recent-addresses.el/pull/1>.
16908 (url "https://github.com/civodul/recent-addresses.el")
16909 (commit commit)))
16910 (sha256
16911 (base32
16912 "0ajrq0galjmdyjdjyxazykjyax3gh6hvfk4s7l657pi11g0q5zax"))
16913 (file-name (git-file-name name version))))
16914 (build-system emacs-build-system)
16915 (synopsis "Record recently-used email addressed and auto-complete them")
16916 (description
16917 "@code{recent-addresses} is an Emacs package that allows you to quickly
16918 look up previously used email addresses. It can be used alongside the Gnus
16919 email client.")
16920 (license license:gpl2+))))
16921
16922 (define-public emacs-fold-dwim
16923 (let ((commit "c46f4bb2ce91b4e307136320e72c28dd50b6cd8b")
16924 (revision "0"))
16925 (package
16926 (name "emacs-fold-dwim")
16927 (version (git-version "1.2" revision commit))
16928 (home-page "https://github.com/emacsattic/fold-dwim")
16929 (source (origin
16930 (method git-fetch)
16931 (uri (git-reference (url home-page) (commit commit)))
16932 (sha256
16933 (base32
16934 "1yz1wis31asw6xa5maliyd1ck2q02xnnh7dc6swgj9cb4wi7k6i1"))
16935 (file-name (git-file-name name version))))
16936 (build-system emacs-build-system)
16937 (synopsis "Unified user interface for Emacs folding modes")
16938 (description
16939 "DWIM stands for \"do what I mean\", as in the idea that one keystroke
16940 can do different things depending on the context. In this package, it means
16941 that, if the cursor is in a currently hidden folded construction, we want to
16942 show it; if it's not, we want to hide whatever fold the cursor is in.")
16943 (license license:gpl2+))))
16944
16945 (define-public emacs-markup-faces
16946 (package
16947 (name "emacs-markup-faces")
16948 (version "1.0.0")
16949 (source
16950 (origin
16951 (method url-fetch)
16952 (uri (string-append "https://stable.melpa.org/packages/markup-faces-"
16953 version ".el"))
16954 (sha256
16955 (base32
16956 "124dxbaa25fwxnpwsygpz7pw6da6dnnw7y2lic3jf8rgz7lw4v32"))))
16957 (build-system emacs-build-system)
16958 (home-page "https://github.com/sensorflo/markup-faces")
16959 (synopsis "Collection of Emacs faces for markup language modes")
16960 (description "emacs-markup-faces is like font-lock-faces, but tailored for
16961 markup languages instead programming languages. The sub group markup-faces-text
16962 is also intended for 'text viewing modes' such as info or (wo)man. This gives a
16963 common look and feel, or let's say theme, across different markup language modes
16964 and 'text viewing modes' respectively.")
16965 (license license:gpl3+)))
16966
16967 (define-public emacs-adoc-mode
16968 (package
16969 (name "emacs-adoc-mode")
16970 (version "0.6.6")
16971 (source
16972 (origin
16973 (method git-fetch)
16974 (uri (git-reference
16975 (url "https://github.com/sensorflo/adoc-mode.git")
16976 (commit (string-append "V" version))))
16977 (file-name (git-file-name name version))
16978 (sha256
16979 (base32
16980 "0kp2aafjhqxz3mjr9hkkss85r4n51chws5a2qj1xzb63dh36liwm"))))
16981 (build-system emacs-build-system)
16982 (arguments
16983 `(#:phases
16984 (modify-phases %standard-phases
16985 ;; See: https://github.com/sensorflo/adoc-mode/issues/39.
16986 (add-after 'unpack 'disable-failing-tests
16987 (lambda _
16988 (let-syntax
16989 ((disable-tests
16990 (syntax-rules ()
16991 ((_ file ())
16992 (syntax-error "test names list must not be empty"))
16993 ((_ file (test-name ...))
16994 (substitute* file
16995 (((string-append "^\\(ert-deftest " test-name ".*") all)
16996 (string-append all "(skip-unless nil)\n")) ...)))))
16997 (disable-tests "adoc-mode-test.el"
16998 ("adoctest-test-tempo-delimited-blocks"
16999 "adoctest-test-tempo-macros"
17000 "adoctest-test-tempo-paragraphs"
17001 "adoctest-test-tempo-passthroug-macros"
17002 "adoctest-test-tempo-quotes")))
17003 #t)))
17004 #:tests? #t
17005 #:test-command '("emacs" "-Q" "-batch"
17006 "-l" "adoc-mode-test.el"
17007 "-f" "ert-run-tests-batch-and-exit")))
17008 (propagated-inputs
17009 `(("emacs-markup-faces" ,emacs-markup-faces)))
17010 (home-page "https://github.com/sensorflo/adoc-mode/wiki")
17011 (synopsis "AsciiDoc mode for Emacs")
17012 (description "This package provides an Emacs major mode for editing AsciiDoc
17013 files. It focuses on highlighting the document to improve readability.")
17014 (license license:gpl2+)))
17015
17016 (define-public emacs-racer
17017 (package
17018 (name "emacs-racer")
17019 (version "1.2")
17020 (source
17021 (origin
17022 (method git-fetch)
17023 (uri
17024 (git-reference
17025 (url "https://github.com/racer-rust/emacs-racer")
17026 (commit version)))
17027 (file-name (git-file-name name version))
17028 (sha256
17029 (base32 "0xj5iki10cg8j8vvqjlw6lfx97k3agwirhchcjnzbnkry48x9qi6"))))
17030 (arguments
17031 `(#:tests? #t
17032 #:test-command '("make" "test")
17033 #:phases
17034 (modify-phases %standard-phases
17035 (add-before 'check 'fix-makefile
17036 (lambda _
17037 (substitute* "Makefile"
17038 (("\\$\\{CASK\\} exec ") ""))
17039 #t)))))
17040 (native-inputs
17041 `(("emacs-ert-runner" ,emacs-ert-runner)
17042 ("emacs-undercover" ,emacs-undercover)))
17043 (propagated-inputs
17044 `(("emacs-dash" ,emacs-dash)
17045 ("emacs-f" ,emacs-f)
17046 ("emacs-pos-tip" ,emacs-pos-tip)
17047 ("emacs-rust-mode" ,emacs-rust-mode)
17048 ("emacs-s" ,emacs-s)))
17049 (build-system emacs-build-system)
17050 (home-page "https://github.com/racer-rust/emacs-racer")
17051 (synopsis "Racer support for Emacs")
17052 (description
17053 "This is the official Emacs package for Racer. It supports code
17054 completion of variables, functions and modules. It can also jump to
17055 definition of functions and types, and show a help buffer based on the
17056 docstring of the thing at point.")
17057 (license license:expat)))
17058
17059 (define-public emacs-rust-mode
17060 (package
17061 (name "emacs-rust-mode")
17062 (version "0.4.0")
17063 (source (origin
17064 (method git-fetch)
17065 (uri (git-reference
17066 (url "https://github.com/rust-lang/rust-mode")
17067 (commit version)))
17068 (file-name (git-file-name name version))
17069 (sha256
17070 (base32
17071 "0bcrklyicxh032rrp585rl5mxd26nb61dp6r5bl935rlcmxzsczh"))))
17072 (build-system emacs-build-system)
17073 (arguments
17074 `(#:phases
17075 (modify-phases %standard-phases
17076 (replace 'check
17077 (lambda _
17078 (invoke "sh" "run_rust_emacs_tests.sh"))))))
17079 (home-page "https://github.com/rust-lang/rust-mode")
17080 (synopsis "Major Emacs mode for editing Rust source code")
17081 (description "This package provides a major Emacs mode for editing Rust
17082 source code.")
17083 (license (list license:expat
17084 license:asl2.0))))
17085
17086 (define-public emacs-ztree
17087 (let ((commit "c54425a094353ec40a8179f9eab3596f76c6cf94"))
17088 (package
17089 (name "emacs-ztree")
17090 (version (git-version "1.0.5" "1" commit))
17091 (source
17092 (origin
17093 (method git-fetch)
17094 (uri (git-reference
17095 (url "https://github.com/fourier/ztree")
17096 (commit commit)))
17097 (file-name (git-file-name name version))
17098 (sha256
17099 (base32
17100 "0j8fpxds8m1zi04nrs8vv21091abvh4n8ab76f1sgdxnp4l5cfb0"))))
17101 (build-system emacs-build-system)
17102 (home-page "https://github.com/fourier/ztree")
17103 (synopsis "Directory tree comparison mode for Emacs")
17104 (description "Ztree is a project dedicated to implementation of several
17105 text-tree applications inside GNU Emacs. It consists of 2 subprojects:
17106 @command{ztree-diff} and @command{ztree-dir} (the basis of
17107 @command{ztree-diff}).")
17108 (license license:gpl3))))
17109
17110 (define-public emacs-helm-org-contacts
17111 (let ((commit "e7f11615802df55bb8b679450b5a5ef82a9081f9"))
17112 (package
17113 (name "emacs-helm-org-contacts")
17114 (version (git-version "20200310" "1" commit))
17115 (source
17116 (origin
17117 (method git-fetch)
17118 (uri (git-reference
17119 (url "https://github.com/tmalsburg/helm-org-contacts")
17120 (commit commit)))
17121 (file-name (git-file-name name version))
17122 (sha256
17123 (base32
17124 "06a1gbrq3qcfsn0kyv4i24x1xxfrrwqa3kgfj4xa4va88q2vqyb5"))))
17125 (build-system emacs-build-system)
17126 (propagated-inputs
17127 `(("emacs-dash" ,emacs-dash)
17128 ("emacs-helm" ,emacs-helm)
17129 ("emacs-s" ,emacs-s)))
17130 (home-page "https://github.com/tmalsburg/helm-org-contacts")
17131 (synopsis "Helm source for org-contacts")
17132 (description "This Helm source can be used to search contacts stored in
17133 org-contacts format. There are actions for inserting postal addresses, email
17134 addresses, and phone numbers in the buffer where @command{helm-org-contacts}
17135 was called.")
17136 (license license:gpl3))))
17137
17138 (define-public emacs-dired-du
17139 (package
17140 (name "emacs-dired-du")
17141 (version "0.5.2")
17142 (source
17143 (origin
17144 (method url-fetch)
17145 (uri (string-append
17146 "https://elpa.gnu.org/packages/dired-du-" version ".tar"))
17147 (sha256
17148 (base32 "0vhph7vcicsiq28b10h3b4dvnhckcy4gccpdgsad5j7pwa5k26m1"))))
17149 (build-system emacs-build-system)
17150 (home-page "https://elpa.gnu.org/packages/dired-du.html")
17151 (synopsis "Dired with recursive directory sizes")
17152 (description
17153 "Display the recursive size of directories in Dired.
17154 This file defines a minor mode @command{dired-du-mode} to show the recursive
17155 size of directories in Dired buffers. If @command{du} program is available,
17156 then the directory sizes are obtained with it. Otherwise, the directory sizes
17157 are obtained with Lisp. The former is faster and provide a more precise
17158 value. For directories where the user doesn't have read permission, the
17159 recursive size is not obtained. Once this mode is enabled, every new Dired
17160 buffer displays recursive dir sizes.")
17161 (license license:gpl3+)))
17162
17163 (define-public emacs-dired-rsync
17164 (package
17165 (name "emacs-dired-rsync")
17166 (version "0.4")
17167 (source (origin
17168 (method git-fetch)
17169 (uri (git-reference
17170 (url "https://github.com/stsquad/dired-rsync.git")
17171 (commit version)))
17172 (file-name (git-file-name name version))
17173 (sha256
17174 (base32
17175 "0jzbn0izxqgz719gb6fpr60zbcb6w1ama13ngpvrig82nlhs37fv"))))
17176 (build-system emacs-build-system)
17177 (propagated-inputs
17178 `(("emacs-s" ,emacs-s)
17179 ("emacs-dash" ,emacs-dash)))
17180 (home-page "https://github.com/stsquad/dired-rsync/")
17181 (synopsis "Support for rsync from Emacs dired buffers")
17182 (description "This package adds a single command @code{dired-rsync} which
17183 allows the user to copy marked files in a dired buffer via @code{rsync}. This
17184 is useful, especially for large files, because the copy happens in the
17185 background and doesn’t lock up Emacs. It is also more efficient than using
17186 tramps own encoding methods for moving data between systems.")
17187 (license license:gpl3+)))
17188
17189 (define-public emacs-pcre2el
17190 ;; Last release is very old so we get the latest commit.
17191 (let ((commit "0b5b2a2c173aab3fd14aac6cf5e90ad3bf58fa7d"))
17192 (package
17193 (name "emacs-pcre2el")
17194 (version (git-version "1.8" "1" commit))
17195 (source
17196 (origin
17197 (method git-fetch)
17198 (uri (git-reference
17199 (url "https://github.com/joddie/pcre2el")
17200 (commit commit)))
17201 (file-name (git-file-name name version))
17202 (sha256
17203 (base32
17204 "14br6ad138qx1z822wqssswqiihxiynz1k69p6mcdisr2q8yyi1z"))))
17205 (build-system emacs-build-system)
17206 (home-page "https://github.com/joddie/pcre2el")
17207 (synopsis "Convert between PCRE, Emacs and rx regexp syntax")
17208 (description "@code{pcre2el} or @code{rxt} (RegeXp Translator or RegeXp
17209 Tools) is a utility for working with regular expressions in Emacs, based on a
17210 recursive-descent parser for regexp syntax. In addition to converting (a
17211 subset of) PCRE syntax into its Emacs equivalent, it can do the following:
17212
17213 @itemize
17214 @item convert Emacs syntax to PCRE
17215 @item convert either syntax to @code{rx}, an S-expression based regexp syntax
17216 @item untangle complex regexps by showing the parse tree in @code{rx} form and
17217 highlighting the corresponding chunks of code
17218 @item show the complete list of strings (productions) matching a regexp,
17219 provided the list is finite
17220 @item provide live font-locking of regexp syntax (so far only for Elisp
17221 buffers – other modes on the TODO list).
17222 @end itemize\n")
17223 (license license:gpl3))))
17224
17225 (define-public emacs-magit-todos
17226 (package
17227 (name "emacs-magit-todos")
17228 (version "1.4.1")
17229 (source
17230 (origin
17231 (method git-fetch)
17232 (uri (git-reference
17233 (url "https://github.com/alphapapa/magit-todos")
17234 (commit version)))
17235 (file-name (git-file-name name version))
17236 (sha256
17237 (base32
17238 "1rcl6j53yabxqk3jzgaxvm3wqq7rayf1hdib2v2fapw5b0layym6"))))
17239 (build-system emacs-build-system)
17240 (propagated-inputs
17241 `(("emacs-async" ,emacs-async)
17242 ("emacs-dash" ,emacs-dash)
17243 ("emacs-f" ,emacs-f)
17244 ("emacs-hl-todo" ,emacs-hl-todo)
17245 ("magit" ,emacs-magit)
17246 ("emacs-pcre2el" ,emacs-pcre2el)
17247 ("emacs-s" ,emacs-s)))
17248 (home-page "https://github.com/alphapapa/magit-todos")
17249 (synopsis "Show source files' TODOs (and FIXMEs, etc) in Magit status buffer")
17250 (description "This package displays keyword entries from source code
17251 comments and Org files in the Magit status buffer. Activating an item jumps
17252 to it in its file. By default, it uses keywords from @code{hl-todo}, minus a
17253 few (like NOTE).")
17254 (license license:gpl3)))
17255
17256 (define-public emacs-git-annex
17257 ;; Unreleased version has a fontification fix.
17258 (let ((commit "1324d3f23c534fe79391a2c256bb8803054e383b")
17259 (revision "2"))
17260 (package
17261 (name "emacs-git-annex")
17262 (version (git-version "1.1" revision commit))
17263 (source
17264 (origin
17265 (method git-fetch)
17266 (uri (git-reference
17267 (url "https://github.com/jwiegley/git-annex-el")
17268 (commit commit)))
17269 (file-name (git-file-name name version))
17270 (sha256
17271 (base32
17272 "1lfky2nsrlndlbvk6vwbswnvbvkz1sxgg0n3r5q6xykdkjym0lrh"))))
17273 (build-system emacs-build-system)
17274 (home-page "https://github.com/jwiegley/git-annex-el")
17275 (synopsis "Emacs integration for git-annex")
17276 (description "Enhances Dired and buffers visiting annex files with
17277 git-annex functionality. In Dired, the names of annex files are shortened by
17278 hiding the symbolic links and fontified based on whether content is present.
17279 Commands for performing some common operations (e.g., unlocking and adding
17280 files) are provided.")
17281 (license license:gpl2+))))
17282
17283 (define-public emacs-hackernews
17284 (let ((commit "2362d7b00e59da7caddc8c0adc24dccb42fddef9")
17285 (revision "2"))
17286 (package
17287 (name "emacs-hackernews")
17288 (version (git-version "0.5.0" revision commit))
17289 (source
17290 (origin
17291 (method git-fetch)
17292 (uri (git-reference
17293 (url "https://github.com/clarete/hackernews.el")
17294 (commit commit)))
17295 (file-name (git-file-name name version))
17296 (sha256
17297 (base32
17298 "1hcc5b173yzcvvd2ls3jxrmsw2w9bi21m9hcpcirkn0nh93ywadv"))))
17299 (build-system emacs-build-system)
17300 (home-page "https://github.com/clarete/hackernews.el")
17301 (synopsis "Hacker News client for Emacs")
17302 (description "The @command{hackernews} package is able to fetch stories
17303 from six different Hacker News feeds, namely top, new, best, ask, show and job
17304 stories. The default feed is top stories, which corresponds to the Hacker
17305 News homepage.")
17306 (license license:gpl3))))
17307
17308 (define-public emacs-youtube-dl
17309 (let ((commit "af877b5bc4f01c04fccfa7d47a2c328926f20ef4")
17310 (revision "2"))
17311 (package
17312 (name "emacs-youtube-dl")
17313 (version (git-version "1.0" "2" commit))
17314 (source
17315 (origin
17316 (method git-fetch)
17317 (uri (git-reference
17318 (url "https://github.com/skeeto/youtube-dl-emacs/")
17319 (commit commit)))
17320 (file-name (git-file-name name version))
17321 (sha256
17322 (base32
17323 "0zkl9jkjbx0lmp9ylv4rqg1zwqibk053s4rp7s1h0i18nzk7vn8j"))))
17324 (build-system emacs-build-system)
17325 (inputs
17326 `(("youtube-dl" ,youtube-dl)))
17327 (arguments
17328 `(#:phases
17329 (modify-phases %standard-phases
17330 (add-after 'unpack 'configure
17331 (lambda* (#:key inputs #:allow-other-keys)
17332 (let ((youtube-dl (assoc-ref inputs "youtube-dl")))
17333 ;; .el is read-only in git.
17334 (chmod "youtube-dl.el" #o644)
17335 ;; Specify the absolute file names of the various
17336 ;; programs so that everything works out-of-the-box.
17337 (emacs-substitute-variables
17338 "youtube-dl.el"
17339 ("youtube-dl-program"
17340 (string-append youtube-dl "/bin/youtube-dl")))))))))
17341 (home-page "https://github.com/skeeto/youtube-dl-emacs/")
17342 (synopsis "Emacs youtube-dl download manager")
17343 (description "This package manages a video download queue for
17344 @command{youtube-dl}, which serves as the back end. It manages a single
17345 @command{youtube-dl} subprocess, downloading one video at a time. New videos
17346 can be queued at any time.")
17347 (license license:unlicense))))
17348
17349 (define-public emacs-org-web-tools
17350 (package
17351 (name "emacs-org-web-tools")
17352 (version "1.0")
17353 (source
17354 (origin
17355 (method git-fetch)
17356 (uri (git-reference
17357 (url "https://github.com/alphapapa/org-web-tools")
17358 (commit version)))
17359 (file-name (git-file-name name version))
17360 (sha256
17361 (base32
17362 "0kak9h5ny00d39gnwspv53nadnag01brw2fq9zk5wpfc91h9bjng"))))
17363 (build-system emacs-build-system)
17364 (propagated-inputs
17365 `(("emacs-dash" ,emacs-dash)
17366 ("emacs-esxml" ,emacs-esxml)
17367 ("emacs-s" ,emacs-s)))
17368 (inputs
17369 `(("pandoc" ,ghc-pandoc)))
17370 (arguments
17371 `(#:phases
17372 (modify-phases %standard-phases
17373 (add-after 'unpack 'patch-exec-paths
17374 (lambda* (#:key inputs #:allow-other-keys)
17375 (let ((pandoc (assoc-ref inputs "pandoc")))
17376 (substitute* "org-web-tools.el"
17377 (("\"pandoc\"") (string-append "\"" pandoc "/bin/pandoc\"")))
17378 #t))))))
17379 (home-page "https://github.com/alphapapa/org-web-tools")
17380 (synopsis "Display/Process web page as Org-mode content")
17381 (description "This package contains library functions and commands useful
17382 for retrieving web page content and processing it into Org-mode content.
17383
17384 For example, you can copy a URL to the clipboard or kill-ring, then run a
17385 command that downloads the page, isolates the “readable” content with
17386 @command{eww-readable}, converts it to Org-mode content with Pandoc, and
17387 displays it in an Org-mode buffer. Another command does all of that but
17388 inserts it as an Org entry instead of displaying it in a new buffer.")
17389 (license license:gpl3+)))
17390
17391 (define-public emacs-blimp
17392 (let ((commit "e420763d6d18b5d1be552cdbc47f91418343db03"))
17393 (package
17394 (name "emacs-blimp")
17395 (version (git-version "0.0.0" "1" commit))
17396 (source
17397 (origin
17398 (method git-fetch)
17399 (uri (git-reference
17400 (url "https://github.com/walseb/blimp")
17401 (commit commit)))
17402 (file-name (git-file-name name version))
17403 (sha256
17404 (base32
17405 "09wmhpym516b81dfq8smdmysh1fn610dzlyvyl2rkx8600f0fizd"))))
17406 (build-system emacs-build-system)
17407 (propagated-inputs
17408 `(("emacs-eimp" ,emacs-eimp)))
17409 (home-page "https://github.com/walseb/blimp")
17410 (synopsis "Emacs wrapper around all Imagemagick commands")
17411 (description "Blimp (Bustling Image Manipulation Package) is a complete
17412 wrapper around all Imagemagick commands with descriptions, autocompletion (for
17413 some commands) and hints displayed in prompt using @command{eimp.el} to
17414 execute its commands and resize images.")
17415 (license license:gpl3+))))
17416
17417 (define-public emacs-synosaurus
17418 (let ((commit "8bf95b935976ec0a1964cf175ed57cc5f6f93bdb"))
17419 (package
17420 (name "emacs-synosaurus")
17421 (version (git-version "0.1.0" "1" commit))
17422 (source
17423 (origin
17424 (method git-fetch)
17425 (uri (git-reference
17426 (url "https://github.com/hpdeifel/synosaurus")
17427 (commit commit)))
17428 (file-name (git-file-name name version))
17429 (sha256
17430 (base32
17431 "15by9jccab6kyplxa6k0glzaivxkqdigl33gl2qi2cvy6f2q7gva"))))
17432 (build-system emacs-build-system)
17433 (propagated-inputs
17434 `(("wordnet" ,wordnet)))
17435 (arguments
17436 `(#:phases
17437 (modify-phases %standard-phases
17438 (add-after 'unpack 'configure
17439 (lambda* (#:key inputs outputs #:allow-other-keys)
17440 (let ((wn (assoc-ref inputs "wordnet")))
17441 ;; .el is read-only in git.
17442 (chmod "synosaurus-wordnet.el" #o644)
17443 ;; Specify the absolute file names of the various
17444 ;; programs so that everything works out-of-the-box.
17445 (emacs-substitute-variables
17446 "synosaurus-wordnet.el"
17447 ("wordnet-command"
17448 (string-append wn "/bin/wn")))))))))
17449 (home-page "https://github.com/hpdeifel/synosaurus")
17450 (synopsis "Extensible thesaurus mode for Emacs")
17451 (description "Synosaurus is a thesaurus fontend for Emacs with pluggable
17452 backends, including the @command{wordnet} offline backend.")
17453 (license license:gpl3+))))
17454
17455 (define-public emacs-editorconfig
17456 (package
17457 (name "emacs-editorconfig")
17458 (version "0.8.1")
17459 (source
17460 (origin
17461 (method git-fetch)
17462 (uri (git-reference
17463 (url "https://github.com/editorconfig/editorconfig-emacs")
17464 (commit (string-append "v" version))))
17465 (file-name (git-file-name name version))
17466 (sha256
17467 (base32
17468 "1djlhkap7zddknzvjsjz0agpfsms1ih05zcpg1bikid2vs4gddyr"))))
17469 (build-system emacs-build-system)
17470 (home-page "https://github.com/editorconfig/editorconfig-emacs")
17471 (synopsis "Define and maintain consistent coding styles between different
17472 editors and IDEs")
17473 (description "The EditorConfig project consists of a file format for
17474 defining coding styles and a collection of text editor plugins that enable
17475 editors to read the file format and adhere to defined styles. EditorConfig
17476 files are easily readable and they work nicely with version control systems.")
17477 (license license:gpl3+)))
17478
17479 (define-public emacs-all-the-icons
17480 (package
17481 (name "emacs-all-the-icons")
17482 (version "4.0.1")
17483 (source
17484 (origin
17485 (method git-fetch)
17486 (uri (git-reference
17487 (url "https://github.com/domtronn/all-the-icons.el.git")
17488 (commit version)))
17489 (file-name (git-file-name name version))
17490 (sha256
17491 (base32 "0yh7gnv9xfqn8q4rzaa6wpyn9575vyfxy7d3afly2mqsb367fgm5"))))
17492 (build-system emacs-build-system)
17493 (arguments
17494 `(#:include '("\\.el$" "^data/" "^fonts/")
17495 ;; Compiling "test/" fails with "Symbol’s value as variable is void:
17496 ;; all-the-icons--root-code". Ignoring tests.
17497 #:exclude '("^test/")
17498 #:tests? #f))
17499 (propagated-inputs
17500 `(("f" ,emacs-f)
17501 ("memoize" ,emacs-memoize)))
17502 (home-page "https://github.com/domtronn/all-the-icons.el")
17503 (synopsis "Collect icon fonts and propertize them within Emacs")
17504 (description
17505 "All-the-icons is a utility package to collect various icon fonts and
17506 propertize them within Emacs. Icon fonts allow you to propertize and format
17507 icons the same way you would normal text. This enables things such as better
17508 scaling of and anti aliasing of the icons.")
17509 ;; Package is released under Expat license. Elisp files are licensed
17510 ;; under GPL3+. Fonts come with various licenses: Expat for
17511 ;; "all-the-icons.ttf" and "file-icons.ttf", Apache License 2.0 for
17512 ;; "material-design-icons.ttf", and SIL OFL 1.1 for "fontawesome.ttf",
17513 ;; "ocitcons.ttf" and "weathericons.ttf".
17514 (license
17515 (list license:expat license:gpl3+ license:silofl1.1 license:asl2.0))))
17516
17517 (define-public emacs-wttrin
17518 (let ((commit "df5427ce2a5ad4dab652dbb1c4a1834d7ddc2abc")
17519 (revision "1"))
17520 (package
17521 (name "emacs-wttrin")
17522 (version (git-version "0.2.0" revision commit))
17523 (source (origin
17524 (method git-fetch)
17525 (uri (git-reference
17526 (url "https://github.com/bcbcarl/emacs-wttrin.git")
17527 (commit commit)))
17528 (file-name (git-file-name name version))
17529 (sha256
17530 (base32
17531 "1ai655f10iayb4vw0ass2j3x83f4vsv90326mnywkzfl3sxd432z"))))
17532 (build-system emacs-build-system)
17533 (propagated-inputs
17534 `(("emacs-xterm-color" ,emacs-xterm-color)))
17535 (home-page "https://github.com/bcbcarl/emacs-wttrin")
17536 (synopsis "Frontend for weather web service @url{wttr.in}")
17537 (description "This package provides local weather information from
17538 @url{wttr.in}.")
17539 (license license:expat))))
17540
17541 (define-public emacs-powerline
17542 (package
17543 (name "emacs-powerline")
17544 (version "2.4")
17545 (source
17546 (origin
17547 (method git-fetch)
17548 (uri (git-reference
17549 (url "https://github.com/milkypostman/powerline.git")
17550 (commit version)))
17551 (file-name (git-file-name name version))
17552 (sha256
17553 (base32
17554 "1hp3xp18943n0rlggz55150020ivw8gvi1vyxkr4z8xhpwq4gaar"))))
17555 (build-system emacs-build-system)
17556 (home-page "https://github.com/milkypostman/powerline/")
17557 (synopsis "Mode-line plugin for Emacs")
17558 (description "Powerline is a utility plugin which allows you to create
17559 a better-looking, more functional Emacs mode-line. A collection of predefined
17560 themes comes with the package.")
17561 (license license:gpl3+)))
17562
17563 (define-public emacs-spaceline
17564 (package
17565 (name "emacs-spaceline")
17566 (version "2.0.1")
17567 (source
17568 (origin
17569 (method git-fetch)
17570 (uri (git-reference
17571 (url "https://github.com/TheBB/spaceline.git")
17572 (commit (string-append "v" version))))
17573 (file-name (git-file-name name version))
17574 (sha256
17575 (base32
17576 "1q8r95zfrh0vxna5ml2pq9b9f66clfqcl4d2qy2aizkvzyxg6skl"))))
17577 (build-system emacs-build-system)
17578 (propagated-inputs
17579 `(("dash" ,emacs-dash)
17580 ("powerline" ,emacs-powerline)
17581 ("s" ,emacs-s)))
17582 (home-page "https://github.com/TheBB/spaceline")
17583 (synopsis "Powerline theme from Spacemacs")
17584 (description "Spaceline provides Spacemacs' mode-line theme.
17585 This package provides features for three kinds of users.
17586
17587 @itemize
17588 @item You just want to use the Spacemacs mode-line theme and forget about it.
17589 @item You want to use something similar to the Spacemacs mode-line theme, but
17590 with a handful of easy tweaks.
17591 @item You want an easy-to-use library for building your own mode-line from
17592 scratch, and you think the Spacemacs theme looks good.
17593 @end itemize")
17594 (license license:gpl3+)))
17595
17596 (define-public emacs-column-marker
17597 (package
17598 (name "emacs-column-marker")
17599 (version "9")
17600 (source
17601 (origin
17602 (method url-fetch)
17603 (uri "https://www.emacswiki.org/emacs/download/column-marker.el")
17604 (sha256 (base32 "05bv198zhqw5hqq6cr11mhz02dpca74hhp1ycwq369m0yb2naxy9"))))
17605 (build-system emacs-build-system)
17606 (home-page "https://www.emacswiki.org/emacs/ColumnMarker")
17607 (synopsis "Emacs mode for highlighting columns")
17608 (description
17609 "With @code{column-marker.el} you can highlight any number of text columns.
17610 Three such highlight column markers are provided by default. This is
17611 especially useful for languages like COBOL or Fortran where certain columns
17612 have special meaning. It is also handy for aligning text across long vertical
17613 distances. Multi-column characters, such as @kbd{TAB} are treated
17614 correctly.")
17615 (license license:gpl2+)))
17616
17617 (define-public emacs-slime-repl-ansi-color
17618 (let ((commit "ad03263f5d4de473bc173b64a6fc3dc1106393d7"))
17619 (package
17620 (name "emacs-slime-repl-ansi-color")
17621 (version (git-version "0.0.0" "1" commit))
17622 (source (origin
17623 (method git-fetch)
17624 (uri (git-reference
17625 (url "https://github.com/deadtrickster/slime-repl-ansi-color")
17626 (commit commit)))
17627 (file-name (git-file-name name version))
17628 (sha256
17629 (base32
17630 "0bpg7gxz310x7bnlg324c507sxc5gxwwz6h64h6kdq141r73vbi4"))))
17631 (build-system emacs-build-system)
17632 (home-page "https://github.com/deadtrickster/slime-repl-ansi-color")
17633 (synopsis "Color ANSI codes in the REPL of SLIME")
17634 (description "Color ANSI codes in the REPL of SLIME")
17635 (license license:gpl2+))))
17636
17637 (define-public emacs-helm-slime
17638 (package
17639 (name "emacs-helm-slime")
17640 (version "0.4.0")
17641 (source (origin
17642 (method git-fetch)
17643 (uri (git-reference
17644 (url "https://github.com/emacs-helm/helm-slime")
17645 (commit version)))
17646 (file-name (git-file-name name version))
17647 (sha256
17648 (base32
17649 "0mrpjhpijdrq353fnfvdj9l9xfsz390qlcvifcair9732ma7i8l0"))))
17650 (build-system emacs-build-system)
17651 (propagated-inputs
17652 `(("emacs-helm" ,emacs-helm)
17653 ("emacs-slime" ,emacs-slime)))
17654 (home-page "https://github.com/emacs-helm/helm-slime")
17655 (synopsis "Helm for SLIME, the Superior Lisp Interaction Mode for Emacs")
17656 (description "Helm-SLIME defines a few new commands:
17657
17658 @itemize
17659 @item helm-slime-complete: Select a symbol from the SLIME completion systems.
17660 @item helm-slime-list-connections: Yet another slime-list-connections with Helm.
17661 @item: helm-slime-apropos: Yet another slime-apropos with Helm.
17662 @item helm-slime-repl-history: Select an input from the SLIME REPL history and insert it.
17663 @end itemize\n")
17664 (license license:gpl3+)))
17665
17666 (define-public emacs-helm-sly
17667 (package
17668 (name "emacs-helm-sly")
17669 (version "0.4.1")
17670 (source (origin
17671 (method git-fetch)
17672 (uri (git-reference
17673 (url "https://github.com/emacs-helm/helm-sly")
17674 (commit version)))
17675 (file-name (git-file-name name version))
17676 (sha256
17677 (base32
17678 "0b2dx9nzh5233lkix3lz81c9cv626lk2hjpcjiikwvyp6y0q92ys"))))
17679 (build-system emacs-build-system)
17680 (propagated-inputs
17681 `(("emacs-helm" ,emacs-helm)
17682 ("emacs-sly" ,emacs-sly)))
17683 (home-page "https://github.com/emacs-helm/helm-sly")
17684 (synopsis "Helm for SLY, a Common Lisp interaction mode for Emacs")
17685 (description "Helm-SLY defines a few new commands:
17686
17687 @itemize
17688 @item helm-sly-list-connections: Yet another Lisp connection list with Helm.
17689 @item: helm-sly-apropos: Yet another @command{apropos} with Helm.
17690 @item helm-sly-mini: Like @command{helm-sly-list-connections}, but include an
17691 extra source of Lisp-related buffers, like the events buffer or the scratch
17692 buffer.
17693 @end itemize\n")
17694 (license license:gpl3+)))
17695
17696 (define-public emacs-gtk-look
17697 (package
17698 (name "emacs-gtk-look")
17699 (version "29")
17700 (source (origin
17701 (method url-fetch)
17702 (uri "https://download.tuxfamily.org/user42/gtk-look.el")
17703 (sha256
17704 (base32
17705 "14p2nwrd51cr1v06fxbjjn6jdrkf9d6vcxhmscm0kl677s25ypsp"))))
17706 (build-system emacs-build-system)
17707 (arguments
17708 `(#:phases
17709 (modify-phases %standard-phases
17710 (add-after 'unpack 'configure
17711 (lambda _
17712 ;; File is read-only.
17713 (chmod "gtk-look.el" #o644)
17714 (emacs-substitute-variables "gtk-look.el"
17715 ("gtk-lookup-devhelp-indices"
17716 '(list (expand-file-name "~/.guix-profile/share/gtk-doc/html/*/*.devhelp*"))))
17717 #t)))))
17718 (home-page "http://user42.tuxfamily.org/gtk-look/index.html")
17719 (synopsis "Find and display HTML documentation for GTK, GNOME and Glib")
17720 (description "@command{gtk-look} finds and displays HTML documentation for
17721 GTK, GNOME and Glib functions and variables in Emacs, similar to what
17722 info-lookup-symbol does for info files (C-h S). The documentation is expected
17723 to be devhelp indexes with HTML files. The location of the indexes can be
17724 customized. In addition to C code development @command{gtk-look} is good for
17725
17726 @itemize
17727 @item @command{perl-gtk2}, recognising class funcs like
17728 @command{Gtk2::Label->new} and bare method names like @command{set_text}.
17729 @item @command{guile-gnome}, recognising methods like @command{set-text} and
17730 classes like @command{<gtk-window>}.
17731 @end itemize\n")
17732 (license license:gpl3+)))
17733
17734 (define-public emacs-ov
17735 (package
17736 (name "emacs-ov")
17737 (version "1.0.6")
17738 (source (origin
17739 (method git-fetch)
17740 (uri (git-reference
17741 (url "https://github.com/ShingoFukuyama/ov.el.git")
17742 (commit version)))
17743 (file-name (git-file-name name version))
17744 (sha256
17745 (base32
17746 "0qxk2rf84j86syxi8xknsq252irwg7sz396v3bb4wqz4prpj0kzc"))))
17747 (build-system emacs-build-system)
17748 (home-page "https://github.com/ShingoFukuyama/ov.el")
17749 (synopsis "Overlay library for Emacs Lisp")
17750 (description "@code{ov.el} provides a simple way to manipulate overlays in
17751 Emacs.")
17752 (license license:gpl3+)))
17753
17754 (define-public emacs-matrix-client
17755 (let ((commit "a0623667b07a4bf60980c97b078e9faed97ace79"))
17756 (package
17757 (name "emacs-matrix-client")
17758 (version (git-version "0.0.0" "4" commit))
17759 (source (origin
17760 (method git-fetch)
17761 (uri (git-reference
17762 (url "https://github.com/jgkamat/matrix-client-el.git")
17763 (commit commit)))
17764 (file-name (git-file-name name version))
17765 (sha256
17766 (base32
17767 "1zya8id3y9wzjaj7nplq7br6nhm3lsskv0fkn1xr1y77fzcfgcdb"))))
17768 (build-system emacs-build-system)
17769 (arguments
17770 `(#:phases
17771 (modify-phases %standard-phases
17772 (add-after 'unpack 'add-missing-require
17773 ;; Fix a filter error at runtime due to a missing require.
17774 ;; Reported upstream:
17775 ;; <https://github.com/alphapapa/matrix-client.el/issues/76>
17776 (lambda _
17777 (substitute* "matrix-client-room.el"
17778 (("\\(require 'dash-functional\\)" all)
17779 (string-append all "\n" "(require 'anaphora)")))
17780 #t)))))
17781 (propagated-inputs
17782 `(("a" ,emacs-a)
17783 ("anaphora" ,emacs-anaphora)
17784 ("dash" ,emacs-dash)
17785 ("esxml" ,emacs-esxml)
17786 ("f" ,emacs-f)
17787 ("frame-purpose" ,emacs-frame-purpose)
17788 ("ht" ,emacs-ht)
17789 ("ov" ,emacs-ov)
17790 ("rainbow-identifiers" ,emacs-rainbow-identifiers)
17791 ("request" ,emacs-request)
17792 ("s" ,emacs-s)
17793 ("tracking" ,emacs-tracking)))
17794 (home-page "https://github.com/jgkamat/matrix-client-el")
17795 (synopsis "Matrix client for Emacs")
17796 (description "@code{matrix-client} is a simple chat UI to Matrix.org
17797 rooms. It also provides an API which allows Emacs to seamlessly create
17798 RPC channels with users and other software.")
17799 (license license:gpl3+))))
17800
17801 (define-public emacs-sesman
17802 (package
17803 (name "emacs-sesman")
17804 (version "0.3.4")
17805 (source
17806 (origin
17807 (method git-fetch)
17808 (uri (git-reference
17809 (url "https://github.com/vspinu/sesman.git")
17810 (commit (string-append "v" version))))
17811 (file-name (git-file-name name version))
17812 (sha256
17813 (base32
17814 "0z5jb4vpbjsi63w3wjy6d2lgz33qdfvrgfb3bszv4hcf6a96y7fc"))))
17815 (build-system emacs-build-system)
17816 (arguments
17817 `(#:phases
17818 (modify-phases %standard-phases
17819 (add-after 'unpack 'set-shell
17820 ;; Setting the SHELL environment variable is required for the tests
17821 ;; to find sh.
17822 (lambda _
17823 (setenv "SHELL" (which "sh"))
17824 #t)))
17825 #:tests? #t
17826 #:test-command '("make" "test")))
17827 (home-page "https://github.com/vspinu/sesman")
17828 (synopsis "Session manager for Emacs based IDEs")
17829 (description "Sesman provides facilities for session management and
17830 interactive session association with the current contexts (project, directory,
17831 buffers). While sesman can be used to manage arbitrary sessions, it primary
17832 targets the Emacs based IDEs (CIDER, ESS, Geiser, Robe, SLIME etc.)")
17833 (license license:gpl3+)))
17834
17835 (define-public emacs-buttercup
17836 (package
17837 (name "emacs-buttercup")
17838 (version "1.16")
17839 (source
17840 (origin
17841 (method git-fetch)
17842 (uri (git-reference
17843 (url "https://github.com/jorgenschaefer/emacs-buttercup.git")
17844 (commit (string-append "v" version))))
17845 (file-name (git-file-name name version))
17846 (sha256
17847 (base32
17848 "0dckgcyzsav6ld78bcyrrygy1cz1jvqgav6vy8f6klpmk3r8xrl1"))))
17849 (build-system emacs-build-system)
17850 (arguments
17851 `(#:tests? #t
17852 #:test-command '("make" "test")
17853 #:phases
17854 (modify-phases %standard-phases
17855 (add-after 'install 'install-bin
17856 (lambda* (#:key outputs #:allow-other-keys)
17857 (install-file "bin/buttercup"
17858 (string-append (assoc-ref outputs "out") "/bin"))
17859 #t)))))
17860 (home-page "https://github.com/jorgenschaefer/emacs-buttercup")
17861 (synopsis "Behavior driven emacs lisp testing framework")
17862 (description "Buttercup is a behavior-driven development framework for
17863 testing Emacs Lisp code. It groups related tests so they can share
17864 common set-up and tear-down code, and allows the programmer to \"spy\" on
17865 functions to ensure they are called with the right arguments during testing.")
17866 (license license:gpl3+)))
17867
17868 (define-public emacs-wordnut
17869 (let ((commit "feac531404041855312c1a046bde7ea18c674915")
17870 (revision "0"))
17871 (package
17872 (name "emacs-wordnut")
17873 (version (git-version "0.1" revision commit))
17874 (home-page "https://github.com/gromnitsky/wordnut")
17875 (source (origin
17876 (method git-fetch)
17877 (uri (git-reference (url home-page) (commit commit)))
17878 (sha256
17879 (base32
17880 "1jl0b6g64a9w0q7bfvwha67vgws5xd15b7mkfyb5gkz3pymqhfxn"))
17881 (patches
17882 (search-patches "emacs-wordnut-require-adaptive-wrap.patch"))
17883 (file-name (git-file-name name version))))
17884 (build-system emacs-build-system)
17885 (propagated-inputs
17886 `(("wordnet" ,wordnet)
17887 ("emacs-adaptive-wrap" ,emacs-adaptive-wrap)))
17888 (synopsis "Major mode for WordNet")
17889 (description "This Emacs package provides an interface for
17890 @code{wordnet}. Features include completion, if the query is not found
17891 too ambiguous and navigation in the result buffer.")
17892 (license license:gpl3+))))
17893
17894 (define-public emacs-frame-purpose
17895 (package
17896 (name "emacs-frame-purpose")
17897 (version "1.0")
17898 (source (origin
17899 (method git-fetch)
17900 (uri (git-reference
17901 (url "https://github.com/alphapapa/frame-purpose.el.git")
17902 (commit version)))
17903 (sha256
17904 (base32
17905 "0jq2aam1yvccw887ighd1wm2xkvk5bv53ffiz3crcl16a255aj4q"))
17906 (file-name (git-file-name name version))))
17907 (build-system emacs-build-system)
17908 (inputs
17909 `(("dash" ,emacs-dash)))
17910 (synopsis "Purpose-specific frames for Emacs")
17911 (description "@code{frame-purpose} makes it easy to open purpose-specific
17912 frames that only show certain buffers, e.g. by buffers’ major mode, their
17913 filename or directory, etc, with custom frame/X-window titles, icons, and
17914 other frame parameters.")
17915 (home-page "https://github.com/alphapapa/frame-purpose.el")
17916 (license license:gpl3+)))
17917
17918 (define-public emacs-arduino-mode
17919 (let ((commit "23ae47c9f28f559e70b790b471f20310e163a39b")
17920 (revision "1")) ;no release yet
17921 (package
17922 (name "emacs-arduino-mode")
17923 (version (git-version "0" revision commit))
17924 (source (origin
17925 (method git-fetch)
17926 (uri (git-reference
17927 (url "https://github.com/stardiviner/arduino-mode.git")
17928 (commit commit)))
17929 (sha256
17930 (base32
17931 "08vnbz9gpah1l93fzfd87aawrhcnh2v1kyfxgsn88pdwg8awz8rx"))
17932 (file-name (git-file-name name version))))
17933 (build-system emacs-build-system)
17934 (inputs
17935 `(("spinner" ,emacs-spinner)
17936 ("flycheck" ,emacs-flycheck)))
17937 (arguments
17938 `(#:phases
17939 (modify-phases %standard-phases
17940 ;; Emacs complains that "defmethod" and "defgeneric" are obsolete
17941 ;; macros when compiling. Substitute them with the recommended
17942 ;; macros "cl-defmethod" and "cl-defgeneric", respectively.
17943 (add-after 'unpack 'fix-obsolete
17944 (lambda _
17945 (substitute* "ede-arduino.el"
17946 (("defmethod") "cl-defmethod")
17947 (("defgeneric") "cl-defgeneric"))
17948 #t)))))
17949 (synopsis "Emacs major mode for editing Arduino sketches")
17950 (description "Emacs major mode for editing Arduino sketches.")
17951 (home-page "https://github.com/stardiviner/arduino-mode")
17952 (license license:gpl3+))))
17953
17954 (define-public emacs-annalist
17955 (let ((commit "e0601539c9ac0171a684ea3ff6266d215d1d08e6")
17956 (revision "1"))
17957 (package
17958 (name "emacs-annalist")
17959 (version (git-version "1.0.0" revision commit))
17960 (source (origin
17961 (method git-fetch)
17962 (uri (git-reference
17963 (url "https://github.com/noctuid/annalist.el.git")
17964 (commit commit)))
17965 (sha256
17966 (base32
17967 "10bmimdzpi6cql4sb2hbgdvrza83xbac50bi9qng4z662pfnlaam"))
17968 (file-name (git-file-name name version))))
17969 (build-system emacs-build-system)
17970 (native-inputs
17971 `(("emacs-buttercup" ,emacs-buttercup)
17972 ("emacs-lispy" ,emacs-lispy)
17973 ("emacs-evil" ,emacs-evil)))
17974 (arguments
17975 `(#:phases
17976 (modify-phases %standard-phases
17977 (add-before 'check 'fix-makefile
17978 (lambda _
17979 (substitute* "Makefile"
17980 (("cask exec ") ""))
17981 #t)))
17982 #:tests? #t
17983 #:test-command '("make" "test")))
17984 (home-page "https://github.com/noctuid/annalist.el")
17985 (synopsis "Record and display information with Org headings and tables")
17986 (description "This package allows for keybindings, settings, hooks, and
17987 advice to be recorded and displayed.")
17988 (license license:gpl3+))))
17989
17990 (define-public emacs-general
17991 (let ((commit "f38fb2294bd29261374b772f765730f2fa168b3e")
17992 (revision "3"))
17993 (package
17994 (name "emacs-general")
17995 (version (git-version "0" revision commit))
17996 (source (origin
17997 (method git-fetch)
17998 (uri (git-reference
17999 (url "https://github.com/noctuid/general.el.git")
18000 (commit commit)))
18001 (sha256
18002 (base32
18003 "1aqi5axkwfng6rm52sblf738c7rffp10sqs69dvkh2fv3ps8q28i"))
18004 (file-name (git-file-name name version))))
18005 (build-system emacs-build-system)
18006 (native-inputs
18007 `(("emacs-buttercup" ,emacs-buttercup)
18008 ("emacs-evil" ,emacs-evil)
18009 ("emacs-which-key" ,emacs-which-key)
18010 ("emacs-use-package" ,emacs-use-package)))
18011 (arguments
18012 `(#:phases
18013 (modify-phases %standard-phases
18014 (add-before 'check 'fix-makefile
18015 (lambda _
18016 (substitute* "Makefile"
18017 (("cask exec ") ""))
18018 #t)))
18019 #:tests? #t
18020 #:test-command '("make" "test")))
18021 (home-page "https://github.com/noctuid/general.el")
18022 (synopsis "More convenient key definitions in emacs")
18023 (description "@code{general.el} provides a more convenient method for
18024 binding keys in emacs (for both evil and non-evil users). Like
18025 @code{use-package}, which provides a convenient, unified interface for
18026 managing packages, @code{general.el} is intended to provide a convenient,
18027 unified interface for key definitions. While this package does implement some
18028 completely new functionality (such as the ability to make vim-style
18029 keybindings under non-prefix keys with an optional timeout), its primary
18030 purpose is to build on existing functionality to make key definition more
18031 clear and concise. @code{general-define-key} is user-extensible and supports
18032 defining multiple keys in multiple keymaps at once, implicitly wrapping key
18033 strings with (@code{kbd ...}), using named prefix key sequences (like the
18034 leader key in vim), and much more.")
18035 (license license:gpl3+))))
18036
18037 (define-public emacs-tldr
18038 (let ((commit "7203d1be3dcbf12131846ffe06601933fa874d74"))
18039 (package
18040 (name "emacs-tldr")
18041 (version (git-version "0" "1" commit))
18042 (home-page "https://github.com/kuanyui/tldr.el")
18043 (source (origin
18044 (method git-fetch)
18045 (uri (git-reference
18046 (url (string-append home-page ".git"))
18047 (commit commit)))
18048 (sha256
18049 (base32
18050 "1bw6la463l2yfm7rp76ga4makfy4kpxgwi7ni5gxk31w11g26ryk"))
18051 (file-name (git-file-name name version))))
18052 (build-system emacs-build-system)
18053 (propagated-inputs
18054 `(("emacs-request" ,emacs-request)))
18055 (synopsis "Simplified and community-driven man pages for Emacs")
18056 (description "@code{emacs-tldr} allows the user to access tldr pages
18057 from within emacs. The @code{tldr} pages are a community effort to simplify
18058 the man pages with practical examples.")
18059 (license license:wtfpl2))))
18060
18061 (define-public emacs-window-layout
18062 (package
18063 (name "emacs-window-layout")
18064 (version "1.4")
18065 (home-page "https://github.com/kiwanami/emacs-window-layout")
18066 (source (origin
18067 (method git-fetch)
18068 (uri (git-reference
18069 (url home-page)
18070 (commit (string-append "v" version))))
18071 (sha256
18072 (base32
18073 "0wgqi8r844lbx52fn6az8c1n8m681rp6dkfzd54wmdk1ka7zmvv6"))
18074 (file-name (git-file-name name version))))
18075 (build-system emacs-build-system)
18076 (synopsis "Simple window layout management framework for emacs")
18077 (description "A window-layout management library that can split a frame
18078 or a window into some windows according to a layout recipe.")
18079 (license license:gpl3+)))
18080
18081 (define-public emacs-e2wm
18082 (package
18083 (name "emacs-e2wm")
18084 (version "1.4")
18085 (home-page "https://github.com/kiwanami/emacs-window-manager")
18086 (source (origin
18087 (method git-fetch)
18088 (uri (git-reference
18089 (url home-page)
18090 (commit (string-append "v" version))))
18091 (sha256
18092 (base32
18093 "12midsrx07pdrsr1qbl2rpi7xyhxqx08bkz7n7gf8vsmqkpfp56s"))
18094 (file-name (git-file-name name version))))
18095 (build-system emacs-build-system)
18096 (propagated-inputs
18097 `(("emacs-window-layout" ,emacs-window-layout)))
18098 (synopsis "Equilibrium Emacs Window Manager")
18099 (description "E2WM is a window manager for Emacs. It enables to
18100 customize the place of pop-up window, how the windows are split, how the
18101 buffers are located in the windows, keybinds to manipulate windows and
18102 buffers, etc. It also has plug-ins to help your Emacs life.")
18103 (license license:gpl3+)))
18104
18105 (define-public emacs-ctable
18106 (let ((commit "b8830d1ca95abb100a81bc32011bd17d5ecba000"))
18107 (package
18108 (name "emacs-ctable")
18109 (version (git-version "0.1.2" "1" commit))
18110 (home-page "https://github.com/kiwanami/emacs-ctable")
18111 (source (origin
18112 (method git-fetch)
18113 (uri (git-reference
18114 (url home-page)
18115 (commit commit)))
18116 (sha256
18117 (base32
18118 "0pg303pnqscrsbx9579hc815angszsgf9vpd2z2f8p4f4ka6a00h"))
18119 (file-name (git-file-name name version))))
18120 (build-system emacs-build-system)
18121 (synopsis "Table component for Emacs Lisp")
18122 (description "This program is a table component for Emacs Lisp. Other
18123 programs can use this table component for the application UI.")
18124 (license license:gpl3+))))
18125
18126 (define-public emacs-leetcode
18127 (let ((commit "8624496af9e105c3e07d88844b37ede87540d604")
18128 (revision "1"))
18129 (package
18130 (name "emacs-leetcode")
18131 (version (git-version "0" "1" commit))
18132 (home-page "https://github.com/ginqi7/leetcode-emacs.git")
18133 (source (origin
18134 (method git-fetch)
18135 (uri (git-reference
18136 (url "https://github.com/ginqi7/leetcode-emacs")
18137 (commit commit)))
18138 (sha256
18139 (base32
18140 "11pp7ydlmwrv7djf9mwk4xzn295xbmdnj5x13bfj5yjpjr89p531"))
18141 (file-name (git-file-name name version))))
18142 (build-system emacs-build-system)
18143 (propagated-inputs
18144 `(("emacs-names" ,emacs-names)
18145 ("emacs-ctable" ,emacs-ctable)))
18146 (synopsis "Solve and submit LeetCode problems from within Emacs")
18147 (description "This package provides an Emacs interface to LeetCode
18148 allowing users to log in and solve problems of their choice using Emacs.")
18149 (license license:unlicense))))
18150
18151 (define-public emacs-epc
18152 (let ((commit "e1bfa5ca163273859336e3cc89b4b6460f7f8cda"))
18153 (package
18154 (name "emacs-epc")
18155 (version (git-version "0.1.1" "1" commit))
18156 (home-page "https://github.com/kiwanami/emacs-epc")
18157 (source (origin
18158 (method git-fetch)
18159 (uri (git-reference
18160 (url home-page)
18161 (commit commit)))
18162 (sha256
18163 (base32
18164 "15nkrjgi64f829isfd6xrhl4zw8jirr8pkas7nisrbk1av868hx0"))
18165 (file-name (git-file-name name version))))
18166 (build-system emacs-build-system)
18167 (propagated-inputs
18168 `(("emacs-deferred" ,emacs-deferred)
18169 ("emacs-ctable" ,emacs-ctable)))
18170 (synopsis "RPC stack for Emacs Lisp")
18171 (description "This program is an asynchronous RPC stack for Emacs.
18172 Using this RPC stack, Emacs can communicate with the peer process
18173 smoothly. Because the protocol employs S-expression encoding and consists of
18174 asynchronous communications, the RPC response is fairly good.")
18175 (license license:gpl3+))))
18176
18177 (define-public emacs-edbi
18178 (let ((commit "6f50aaf4bde75255221f2292c7a4ad3fa9d918c0"))
18179 (package
18180 (name "emacs-edbi")
18181 (version (git-version "0.1.3" "1" commit))
18182 (home-page "https://github.com/kiwanami/emacs-edbi")
18183 (source (origin
18184 (method git-fetch)
18185 (uri (git-reference
18186 (url home-page)
18187 (commit commit)))
18188 (sha256
18189 (base32
18190 "0x0igyvdcm4863n7zndvcv6wgzwgn7324cbfjja6xd7r0k936zdy"))
18191 (file-name (git-file-name name version))))
18192 (build-system emacs-build-system)
18193 (inputs
18194 `(("perl" ,perl)
18195 ("perl-rpc-epc-service" ,perl-rpc-epc-service)
18196 ("perl-dbi" ,perl-dbi)
18197 ;; TODO: Adding support for perl-dbd-mysql and others would
18198 ;; dramatically increase the closure size. Make several packages?
18199 ("perl-dbd-sqlite" ,perl-dbd-sqlite)))
18200 (propagated-inputs
18201 `(("emacs-e2wm" ,emacs-e2wm)
18202 ("emacs-epc" ,emacs-epc)))
18203 (arguments
18204 `(#:include '("\\.el$" "\\.pl$")
18205 #:phases
18206 (modify-phases %standard-phases
18207 (add-after 'install 'patch-path
18208 (lambda* (#:key inputs outputs #:allow-other-keys)
18209 (let ((perl (assoc-ref inputs "perl"))
18210 (dir (string-append (assoc-ref outputs "out")
18211 "/share/emacs/site-lisp")))
18212 (substitute* (string-append dir "/edbi.el")
18213 (("\"perl\"") (string-append "\"" perl "/bin/perl\"")))
18214 (chmod (string-append dir "/edbi-bridge.pl") #o555)
18215 (wrap-program (string-append dir "/edbi-bridge.pl")
18216 `("PERL5LIB" ":" prefix (,(getenv "PERL5LIB"))))
18217 #t))))))
18218 (synopsis "Database Interface for Emacs Lisp")
18219 (description "This program connects the database server through Perl's
18220 DBI, and provides DB-accessing API and the simple management UI.")
18221 (license license:gpl3+))))
18222
18223 (define-public emacs-edbi-sqlite
18224 (let ((commit "52cb9ca1af7691b592f2cfd2f007847e7a4ccd5f"))
18225 (package
18226 (name "emacs-edbi-sqlite")
18227 (version (git-version "0.1.1" "1" commit))
18228 (home-page "https://github.com/proofit404/edbi-sqlite")
18229 (source (origin
18230 (method git-fetch)
18231 (uri (git-reference
18232 (url home-page)
18233 (commit commit)))
18234 (sha256
18235 (base32
18236 "1vll81386fx90lq5sy4rlxcik6mvw7zx5cc51f0yaca9bkcckp51"))
18237 (file-name (git-file-name name version))))
18238 (build-system emacs-build-system)
18239 (propagated-inputs
18240 `(("emacs-edbi" ,emacs-edbi)))
18241 (synopsis "Open SQLite files in Emacs")
18242 (description "This package is a convenience wrapper for @command{edbi}
18243 to open SQLite databases.")
18244 (license license:gpl3+))))
18245
18246 (define-public emacs-nix-mode
18247 (package
18248 (name "emacs-nix-mode")
18249 (version "1.4.1")
18250 (source
18251 (origin
18252 (method git-fetch)
18253 (uri (git-reference
18254 (url "https://github.com/NixOS/nix-mode.git")
18255 (commit (string-append "v" version))))
18256 (file-name (git-file-name name version))
18257 (sha256
18258 (base32 "04xpgg9nba5m1bl7ci5l456whcb8nfhsbvgxyx89bp0zqgr005q7"))))
18259 (build-system emacs-build-system)
18260 (inputs
18261 `(("emacs-company" ,emacs-company)
18262 ("emacs-json-mode" ,emacs-json-mode)
18263 ("emacs-mmm-mode" ,emacs-mmm-mode)))
18264 (home-page "https://github.com/NixOS/nix-mode")
18265 (synopsis "Emacs major mode for editing Nix expressions")
18266 (description "@code{nixos-mode} provides an Emacs major mode for editing
18267 Nix expressions. It supports syntax highlighting, indenting and refilling of
18268 comments.")
18269 (license license:lgpl2.1+)))
18270
18271 (define-public emacs-libmpdel
18272 (package
18273 (name "emacs-libmpdel")
18274 (version "1.1.2")
18275 (source (origin
18276 (method git-fetch)
18277 (uri (git-reference
18278 (url "https://gitea.petton.fr/mpdel/libmpdel.git")
18279 (commit (string-append "v" version))))
18280 (file-name (git-file-name name version))
18281 (sha256
18282 (base32
18283 "0dnjndpv6bmz5blfs75ynmbm32g23l4slg5p3941b1i94a08qzpy"))))
18284 (build-system emacs-build-system)
18285 (home-page "https://gitea.petton.fr/mpdel/libmpdel")
18286 (synopsis "Emacs library to communicate with Music Player Daemon (MPD)")
18287 (description
18288 "An Emacs library client to communicate with Music Player Daemon (MPD), a
18289 flexible, powerful, server-side application for playing music.")
18290 (license license:gpl3+)))
18291
18292 (define-public emacs-mpdel
18293 (package
18294 (name "emacs-mpdel")
18295 (version "1.0.0")
18296 (source
18297 (origin
18298 (method git-fetch)
18299 (uri (git-reference
18300 (url "https://gitea.petton.fr/mpdel/mpdel.git")
18301 (commit (string-append "v" version))))
18302 (file-name (git-file-name name version))
18303 (sha256
18304 (base32
18305 "0pyyvbzskr44dxbmlp3y0r6s459fd51cvwjmnjaqxfxflr5v891g"))))
18306 (build-system emacs-build-system)
18307 (inputs
18308 `(("emacs-libmpdel" ,emacs-libmpdel)))
18309 (home-page "https://gitea.petton.fr/mpdel/mpdel")
18310 (synopsis "Emacs user interface for Music Player Daemon (MPD)")
18311 (description
18312 "MPDel provides an Emacs user interface to control playback (play, pause,
18313 next, volume) and display and control the current playlist as well as your
18314 stored playlists.")
18315 (license license:gpl3+)))
18316
18317 (define-public emacs-vterm
18318 (let ((version "0")
18319 (revision "1")
18320 (commit "e63bd65eece7c5de3a534b7e2fdbe58256ec2da0"))
18321 (package
18322 (name "emacs-vterm")
18323 (version (git-version version revision commit))
18324 (source (origin
18325 (method git-fetch)
18326 (uri (git-reference
18327 (url "https://github.com/akermu/emacs-libvterm.git")
18328 (commit commit)))
18329 (file-name (git-file-name name version))
18330 (sha256
18331 (base32
18332 "0iq857w54qmazxh23fipz85fb9i6dav3f63g0ghpmi6mybfp6i5v"))))
18333 (build-system emacs-build-system)
18334 (arguments
18335 `(#:modules ((guix build emacs-build-system)
18336 ((guix build cmake-build-system) #:prefix cmake:)
18337 (guix build emacs-utils)
18338 (guix build utils))
18339 #:imported-modules (,@%emacs-build-system-modules
18340 (guix build cmake-build-system))
18341 #:phases
18342 (modify-phases %standard-phases
18343 (add-before 'add-source-to-load-path 'substitute-vterm-module-path
18344 (lambda* (#:key outputs #:allow-other-keys)
18345 (chmod "vterm.el" #o644)
18346 (emacs-substitute-sexps "vterm.el"
18347 ("(require 'vterm-module nil t)"
18348 `(module-load
18349 ,(string-append (assoc-ref outputs "out")
18350 "/lib/vterm-module.so"))))
18351 #t))
18352 (add-after 'build 'configure
18353 ;; Run cmake.
18354 (lambda* (#:key outputs #:allow-other-keys)
18355 ((assoc-ref cmake:%standard-phases 'configure)
18356 #:outputs outputs
18357 #:out-of-source? #f
18358 #:configure-flags '("-DUSE_SYSTEM_LIBVTERM=ON"))
18359 #t))
18360 (add-after 'configure 'make
18361 ;; Run make.
18362 (lambda* (#:key (make-flags '()) outputs #:allow-other-keys)
18363 ;; Compile the shared object file.
18364 (apply invoke "make" "all" make-flags)
18365 ;; Move the file into /lib.
18366 (install-file
18367 "vterm-module.so"
18368 (string-append (assoc-ref outputs "out") "/lib"))
18369 #t)))
18370 #:tests? #f))
18371 (native-inputs
18372 `(("cmake" ,cmake-minimal)
18373 ("libtool" ,libtool)
18374 ("libvterm" ,libvterm)))
18375 (home-page "https://github.com/akermu/emacs-libvterm")
18376 (synopsis "Emacs libvterm integration")
18377 (description "This package implements a bridge to @code{libvterm} to
18378 display a terminal in an Emacs buffer.")
18379 (license license:gpl3+))))
18380
18381 (define-public emacs-simple-mpc
18382 ;; There have been no releases.
18383 (let ((commit "bee8520e81292b4c7353e45b193f9a13b482f5b2")
18384 (revision "1"))
18385 (package
18386 (name "emacs-simple-mpc")
18387 (version (git-version "0" revision commit))
18388 (source
18389 (origin
18390 (method git-fetch)
18391 (uri (git-reference
18392 (url "https://github.com/jorenvo/simple-mpc.git")
18393 (commit commit)))
18394 (file-name (git-file-name name version))
18395 (sha256
18396 (base32
18397 "1ja06pv007cmzjjgka95jlg31k7d29jrih1yxyblsxv85s9sg21q"))))
18398 (build-system emacs-build-system)
18399 (propagated-inputs `(("emacs-s" ,emacs-s)))
18400 (home-page "https://github.com/jorenvo/simple-mpc")
18401 (synopsis "Simple Emacs frontend to mpc")
18402 (description "This package provides an Emacs major mode which acts as a
18403 front end to mpc, a client for the @dfn{Music Player Daemon} (MPD).")
18404 (license license:gpl3+))))
18405
18406 (define-public emacs-mkmcc-gnuplot-mode
18407 (package
18408 (name "emacs-mkmcc-gnuplot-mode")
18409 (version "1.2.0")
18410 (source
18411 (origin
18412 (method git-fetch)
18413 (uri (git-reference
18414 (url "https://github.com/mkmcc/gnuplot-mode")
18415 (commit "601f6392986f0cba332c87678d31ae0d0a496ce7")))
18416 (file-name (git-file-name name version))
18417 (sha256
18418 (base32
18419 "14f0yh1rjqc3337j4sbqzfb7pjim2c8a7wk1a73xkrdkmjn82vgb"))))
18420 (build-system emacs-build-system)
18421 (home-page "https://mkmcc.github.io/software/gnuplot-mode.html")
18422 (synopsis "Minimal emacs major mode for editing gnuplot scripts")
18423 (description "@code{emacs-mkmcc-gnuplot-mode} is a minimal emacs major
18424 mode for editing gnuplot scripts. It provides syntax highlighting,
18425 indentation and a command to plot the file.")
18426 (license license:gpl3+)))
18427
18428 (define-public emacs-cmake-font-lock
18429 (let ((commit "e0ceaaae19c13b66f781512e3295bfc6707b56f4")
18430 (revision "1"))
18431 (package
18432 (name "emacs-cmake-font-lock")
18433 (version (git-version "0.1.5" revision commit))
18434 (source (origin
18435 (method git-fetch)
18436 (uri (git-reference
18437 (url "https://github.com/Lindydancer/cmake-font-lock.git")
18438 (commit commit)))
18439 (file-name (git-file-name name version))
18440 (sha256
18441 (base32
18442 "03gsyn95dlmsn15bl353bphi3qy7ccn5bss3f7n97kf38bllh0yf"))))
18443 (build-system emacs-build-system)
18444 (native-inputs
18445 `(("emacs-faceup" ,emacs-faceup)))
18446 (arguments
18447 `(#:include (cons "^admin\\/" %default-include)))
18448 (home-page "https://github.com/Lindydancer/cmake-font-lock")
18449 (synopsis "Advanced type-aware syntax-highlighting for CMake")
18450 (description "This package highlights function arguments in CMake
18451 according to their use.")
18452 (license license:gpl3+))))
18453
18454 (define-public emacs-dtrt-indent
18455 (package
18456 (name "emacs-dtrt-indent")
18457 (version "0.8")
18458 (source (origin
18459 (method git-fetch)
18460 (uri (git-reference
18461 (url "https://github.com/jscheid/dtrt-indent")
18462 (commit version)))
18463 (file-name (git-file-name name version))
18464 (sha256
18465 (base32
18466 "0pgf0pvqd8k4yzhdn2df9lp0y8hmlm2ccrh07jivwlccs95pcz7z"))))
18467 (build-system emacs-build-system)
18468 (home-page "https://github.com/jscheid/dtrt-indent")
18469 (synopsis "Minor mode that guesses the indentation offset")
18470 (description "This package provides a minor mode that guesses the
18471 indentation offset originally used for creating source code files and
18472 transparently adjusts the corresponding settings in Emacs, making it more
18473 convenient to edit foreign files.")
18474 (license license:gpl2+)))
18475
18476 (define-public emacs-repo
18477 (package
18478 (name "emacs-repo")
18479 (version "0.1.3")
18480 (source (origin
18481 (method git-fetch)
18482 (uri (git-reference
18483 (url "https://github.com/canatella/repo-el")
18484 (commit version)))
18485 (file-name (git-file-name name version))
18486 (sha256
18487 (base32
18488 "0rbvcvm7bfr6ncji7cllfxyyr6x7n9fx863byp243phsj3n93adz"))))
18489 (build-system emacs-build-system)
18490 (native-inputs
18491 `(("emacs-el-mock" ,emacs-el-mock)
18492 ("ert-runner" ,emacs-ert-runner)))
18493 (propagated-inputs
18494 `(("emacs-f" ,emacs-f)
18495 ("magit" ,emacs-magit)))
18496 (home-page "https://github.com/canatella/repo-el")
18497 (synopsis "Emacs interface for the Google Repo tool")
18498 (description "This package provides integration of the Google Repo tool
18499 with emacs. It displays the output of the @code{repo status} command in a
18500 buffer and launches Magit from the status buffer for the project at point.")
18501 (license license:gpl3+)))
18502
18503 (define-public emacs-alect-themes
18504 (package
18505 (name "emacs-alect-themes")
18506 (version "0.9")
18507 (source (origin
18508 (method git-fetch)
18509 (uri (git-reference
18510 (url "https://github.com/alezost/alect-themes")
18511 (commit (string-append "v" version))))
18512 (file-name (git-file-name name version))
18513 (sha256
18514 (base32
18515 "0nffxpdm0sa7bynwi0rmlwpc4qmvbda5ankhzz7fmk4ap9fkjxv9"))))
18516 (build-system emacs-build-system)
18517 (home-page "https://github.com/alezost/alect-themes")
18518 (synopsis "Low contrast, light, dark and black color theme for Emacs")
18519 (description "@code{emacs-alect-themes} provides configurable light, dark
18520 and black color themes for Emacs. The themes are intended to be used with
18521 GUI.")
18522 (license license:gpl3+)))
18523
18524 (define-public emacs-google-c-style
18525 (let ((commit "6271f3f473ceb3a7fef99388a3040903b1a145f1")
18526 (revision "0"))
18527 (package
18528 (name "emacs-google-c-style")
18529 (version (git-version "0.1" revision commit))
18530 (source (origin
18531 (method git-fetch)
18532 (uri (git-reference
18533 (url "https://github.com/google/styleguide")
18534 (commit commit)))
18535 (file-name (git-file-name name version))
18536 (sha256
18537 (base32
18538 "1jghyyasdl15c4gaqaxmdn43am63k6bykn5ab83f1ahv9zi1krxk"))))
18539 (build-system emacs-build-system)
18540 (home-page "https://github.com/google/styleguide")
18541 (synopsis "Emacs settings file for Google C/C++ style")
18542 (description "@code{emacs-google-c-style} provides an Emacs settings
18543 file for Google C and C++ style.")
18544 (license license:gpl1+))))
18545
18546 (define-public emacs-redshank
18547 (let ((commit "f98e68f532e622bcd464292ca4a9cf5fbea14ebb")
18548 (revision "1"))
18549 (package
18550 (name "emacs-redshank")
18551 (version (git-version "0.1" revision commit))
18552 (source (origin
18553 (method git-fetch)
18554 (uri (git-reference
18555 (url "http://www.foldr.org/~michaelw/projects/redshank.git")
18556 (commit commit)))
18557 (file-name (git-file-name name version))
18558 (sha256
18559 (base32
18560 "1jdkgvd5xy9hl5q611jwah2n05abjp7qcy9sj4k1z11x0ii62b6p"))))
18561 (build-system emacs-build-system)
18562 (propagated-inputs
18563 `(("emacs-paredit" ,emacs-paredit)))
18564 (home-page "http://www.foldr.org/~michaelw/emacs/redshank/")
18565 (synopsis "Common Lisp Editing Extensions (for Emacs)")
18566 (description "Redshank is a collection of code-wrangling Emacs macros
18567 mostly geared towards Common Lisp, but some are useful for other Lisp
18568 dialects, too. Redshank's code transformations aim to be expression-based (as
18569 opposed to character-based).")
18570 (license license:gpl1+))))
18571
18572 (define-public emacs-disk-usage
18573 (package
18574 (name "emacs-disk-usage")
18575 (version "1.3.3")
18576 (source
18577 (origin
18578 (method git-fetch)
18579 (uri (git-reference
18580 (url "https://gitlab.com/Ambrevar/emacs-disk-usage.git")
18581 (commit version)))
18582 (file-name (git-file-name name version))
18583 (sha256
18584 (base32
18585 "0hv2gsd8k5fbjgckgiyisq4rn1i7y4rchbjy8kmixjv6mx563bll"))))
18586 (build-system emacs-build-system)
18587 (home-page "https://gitlab.com/Ambrevar/emacs-disk-usage")
18588 (synopsis "Sort and browse disk usage listings with Emacs")
18589 (description "Disk Usage is a file system analyzer: it offers a tabulated
18590 view of file listings sorted by size. Directory sizes are computed
18591 recursively. The results are cached for speed.")
18592 (license license:gpl3+)))
18593
18594 (define-public emacs-orgit
18595 (package
18596 (name "emacs-orgit")
18597 (version "1.5.3")
18598 (home-page "https://github.com/magit/orgit")
18599 (source (origin
18600 (method git-fetch)
18601 (uri (git-reference
18602 (url home-page)
18603 (commit (string-append "v" version))))
18604 (file-name (git-file-name name version))
18605 (sha256
18606 (base32
18607 "1ywavzki510rslsgfm0cnn3mlh644p61ha2nfb715xhkg7cd3j9g"))))
18608 (build-system emacs-build-system)
18609 (propagated-inputs
18610 `(("emacs-dash" ,emacs-dash)
18611 ("emacs-magit" ,emacs-magit)))
18612 (synopsis "Support for Org links to Magit buffers")
18613 (description "This package defines several Org link types, which can be
18614 used to link to certain Magit buffers. Use the command
18615 @command{org-store-link} while such a buffer is current to store a link.
18616 Later you can insert it into an Org buffer using the command
18617 @code{org-insert-link}.")
18618 (license license:gpl3+)))
18619
18620 (define-public emacs-amx
18621 (package
18622 (name "emacs-amx")
18623 (version "3.3")
18624 (source
18625 (origin
18626 (method git-fetch)
18627 (uri (git-reference
18628 (url "https://github.com/DarwinAwardWinner/amx")
18629 (commit (string-append "v" version))))
18630 (file-name (git-file-name name version))
18631 (sha256
18632 (base32 "0ikjzs119g57cwh2v3jmy63lggqc0ib99q5gsl93slkk4y2ihavw"))))
18633 (build-system emacs-build-system)
18634 (propagated-inputs
18635 `(("emacs-s" ,emacs-s)))
18636 (home-page "https://github.com/DarwinAwardWinner/amx")
18637 (synopsis "Alternative M-x interface for Emacs")
18638 (description "Amx is an alternative interface for M-x in Emacs. It
18639 provides several enhancements over the ordinary
18640 @code{execute-extended-command}, such as prioritizing your most-used commands
18641 in the completion list and showing keyboard shortcuts, and it supports several
18642 completion systems for selecting commands, such as Ido and Ivy.")
18643 (license license:gpl3+)))
18644
18645 (define-public emacs-lorem-ipsum
18646 (let ((commit "4b39f6fed455d67f635b3837cf5668bf74d0f6cd"))
18647 (package
18648 (name "emacs-lorem-ipsum")
18649 (version (git-version "0.2" "1" commit))
18650 (home-page "https://github.com/jschaf/emacs-lorem-ipsum/")
18651 (source (origin
18652 (method git-fetch)
18653 (uri (git-reference
18654 (url home-page)
18655 (commit commit)))
18656 (file-name (git-file-name name version))
18657 (sha256
18658 (base32
18659 "0a3b18p3vdjci89prsgdzjnfxsl8p67vjhf8ai4qdng7zvh50lir"))))
18660 (build-system emacs-build-system)
18661 (synopsis "Insert dummy pseudo Latin text in Emacs")
18662 (description "This package provides convenience functions to insert
18663 dummy Latin text into a buffer. This can be useful if you need to produce
18664 paragraphs or pages of text for testing purposes.")
18665 (license license:gpl3+))))
18666
18667 (define-public emacs-lisp-extra-font-lock
18668 (let ((commit "4605eccbe1a7fcbd3cacf5b71249435413b4db4f"))
18669 (package
18670 (name "emacs-lisp-extra-font-lock")
18671 (version (git-version "0.0.6" "1" commit))
18672 (home-page "https://github.com/Lindydancer/lisp-extra-font-lock")
18673 (source (origin
18674 (method git-fetch)
18675 (uri (git-reference
18676 (url home-page)
18677 (commit commit)))
18678 (file-name (git-file-name name version))
18679 (sha256
18680 (base32
18681 "152vcp3mdlv33jf5va4rinl1d0k960gnfhbrqqrafazgx9j3ya8w"))))
18682 (build-system emacs-build-system)
18683 (synopsis "Highlight bound variables and quoted expressions in Emacs")
18684 (description "This package highlight the location where local variables
18685 is created (bound, for example, by let) as well as quoted and backquoted
18686 constant expressions.")
18687 (license license:gpl3+))))
18688
18689 (define-public emacs-docker-tramp
18690 (package
18691 (name "emacs-docker-tramp")
18692 (version "0.1")
18693 (source
18694 (origin
18695 (method git-fetch)
18696 (uri (git-reference
18697 (url "https://github.com/emacs-pe/docker-tramp.el")
18698 (commit (string-append "v" version))))
18699 (file-name (git-file-name name version))
18700 (sha256
18701 (base32
18702 "0lxvzmfg52fhxrhbvp92zwp7cv4i1rlxnkyyzgngj3sjm7y60yvg"))))
18703 (build-system emacs-build-system)
18704 (home-page "https://github.com/emacs-pe/docker-tramp.el")
18705 (synopsis "TRAMP integration for docker containers")
18706 (description
18707 "This package provides a TRAMP method for Docker containers.")
18708 (license license:gpl3+)))
18709
18710 (define-public emacs-docker
18711 (package
18712 (name "emacs-docker")
18713 (version "1.3.0")
18714 (source (origin
18715 (method git-fetch)
18716 (uri (git-reference
18717 (url "https://github.com/Silex/docker.el")
18718 (commit version)))
18719 (file-name (git-file-name name version))
18720 (sha256
18721 (base32
18722 "1g8r1faqp0z0vqp9qrl8m84pa0v2ddvc91klphdkfmldwv7rfipw"))))
18723 (inputs
18724 `(("emacs-undercover" ,emacs-undercover)))
18725 (propagated-inputs
18726 `(("emacs-dash" ,emacs-dash)
18727 ("emacs-docker-tramp" ,emacs-docker-tramp)
18728 ("emacs-magit-popup" ,emacs-magit-popup)
18729 ("emacs-s" ,emacs-s)
18730 ("emacs-tablist" ,emacs-tablist)
18731 ("emacs-json-mode" ,emacs-json-mode)))
18732 (arguments
18733 `(#:phases
18734 (modify-phases %standard-phases
18735 (delete 'check)))) ;no tests
18736 (build-system emacs-build-system)
18737 (home-page "https://github.com/Silex/docker.el")
18738 (synopsis "Manage docker from Emacs")
18739 (description "This package provides an Emacs interface for Docker.")
18740 (license license:gpl3+)))
18741
18742 (define-public emacs-dockerfile-mode
18743 ;; Latest upstream release is too old.
18744 (let ((commit "ed73e82dcc636dad00d1a8c3b32a49136d25ee60"))
18745 (package
18746 (name "emacs-dockerfile-mode")
18747 (version (git-version "1.2" "2" commit))
18748 (source
18749 (origin
18750 (method git-fetch)
18751 (uri (git-reference
18752 (url "https://github.com/spotify/dockerfile-mode.git")
18753 (commit commit)))
18754 (file-name (git-file-name name version))
18755 (sha256
18756 (base32
18757 "0lri2rnx4lr23vqfphkpq39cd4xfgzkvz1xsz7ccdvl4qj0k7fdl"))))
18758 (build-system emacs-build-system)
18759 (propagated-inputs
18760 `(("emacs-s" ,emacs-s)))
18761 (home-page "https://github.com/spotify/dockerfile-mode")
18762 (synopsis "Major mode for editing Dockerfile")
18763 (description
18764 "This package provides a major mode @code{dockerfile-mode} for use with
18765 the standard @code{Dockerfile} file format.")
18766 (license license:asl2.0))))
18767
18768 (define-public emacs-lsp-mode
18769 (package
18770 (name "emacs-lsp-mode")
18771 (version "6.2.1")
18772 (source (origin
18773 (method git-fetch)
18774 (uri (git-reference
18775 (url "https://github.com/emacs-lsp/lsp-mode.git")
18776 (commit version)))
18777 (file-name (git-file-name name version))
18778 (sha256
18779 (base32
18780 "0f9d0zhblcjzrpggqclww2g7fyjky5rzpp7zj424005ahv0zd3xf"))))
18781 (build-system emacs-build-system)
18782 (propagated-inputs
18783 `(("emacs-dash" ,emacs-dash)
18784 ("emacs-f" ,emacs-f)
18785 ("emacs-ht" ,emacs-ht)
18786 ("emacs-markdown-mode" ,emacs-markdown-mode)
18787 ("emacs-spinner" ,emacs-spinner)
18788 ("emacs-hydra" ,emacs-hydra)))
18789 (home-page "https://github.com/emacs-lsp/lsp-mode")
18790 (synopsis "Emacs client and library for the Language Server Protocol")
18791 (description "@code{LSP-mode} is a client and library implementation for
18792 the Language Server Protocol. This mode aims to provide an IDE-like
18793 experience by providing optional integration with other popular Emacs packages
18794 like @code{company}, @code{flycheck}, and @code{projectile}.")
18795 (license license:gpl3+)))
18796
18797 (define-public emacs-pfuture
18798 (let ((commit "368254ee30692c709400db413c347e18e76a8a55"))
18799 (package
18800 (name "emacs-pfuture")
18801 (version (git-version "1.6" "1" commit))
18802 (source (origin
18803 (method git-fetch)
18804 (uri (git-reference
18805 (url "https://github.com/Alexander-Miller/pfuture.git")
18806 (commit commit)))
18807 (file-name (git-file-name name version))
18808 (sha256
18809 (base32
18810 "096raqpjx84njws85r7pqq1wi9w9bjwkr0ga1mbbhlna1mfn3mg4"))))
18811 (build-system emacs-build-system)
18812 (home-page
18813 "https://github.com/Alexander-Miller/pfuture")
18814 (synopsis "Simple wrapper around asynchronous processes for Emacs")
18815 (description "This package provides a simple wrapper around asynchronous
18816 processes for Emacs")
18817 (license license:gpl3+))))
18818
18819 (define-public emacs-treemacs
18820 (package
18821 (name "emacs-treemacs")
18822 (version "2.6")
18823 (source (origin
18824 (method git-fetch)
18825 (uri (git-reference
18826 (url "https://github.com/Alexander-Miller/treemacs.git")
18827 (commit version)))
18828 (file-name (git-file-name name version))
18829 (sha256
18830 (base32
18831 "13gs8g05xj7np3i2q3bbxg6zgdiazzn1spxii4x0cyd4pg83c0i1"))))
18832 (build-system emacs-build-system)
18833 (propagated-inputs
18834 `(("emacs-dash" ,emacs-dash)
18835 ("emacs-s" ,emacs-s)
18836 ("emacs-f" ,emacs-f)
18837 ("emacs-ace-window" ,emacs-ace-window)
18838 ("emacs-pfuture" ,emacs-pfuture)
18839 ("emacs-hydra" ,emacs-hydra)
18840 ("emacs-ht" ,emacs-ht)))
18841 (native-inputs
18842 `(("emacs-buttercup" ,emacs-buttercup)
18843 ("emacs-el-mock" ,emacs-el-mock)))
18844 (inputs
18845 `(("python" ,python)))
18846 (arguments
18847 `(#:tests? #t ;TODO: Investigate ‘treemacs--parse-collapsed-dirs’ test failure.
18848 #:phases
18849 (modify-phases %standard-phases
18850 (add-after 'unpack 'fix-makefile
18851 (lambda _
18852 (substitute* "Makefile"
18853 (("@\\$\\(CASK\\) exec ") ""))
18854 #t))
18855 (add-after 'fix-makefile 'chdir-elisp
18856 ;; Elisp directory is not in root of the source.
18857 (lambda _
18858 (chdir "src/elisp")))
18859 (replace 'check
18860 (lambda _
18861 (with-directory-excursion "../.." ;treemacs root
18862 (chmod "test/test-treemacs.el" #o644)
18863 (emacs-substitute-sexps "test/test-treemacs.el"
18864 ("(describe \"treemacs--parse-collapsed-dirs\""
18865 ""))
18866 (invoke "make" "test"))))
18867 (add-before 'install 'patch-paths
18868 (lambda* (#:key inputs outputs #:allow-other-keys)
18869 (with-directory-excursion "../.." ;treemacs root
18870 (chmod "src/elisp/treemacs-core-utils.el" #o644)
18871 (emacs-substitute-variables "src/elisp/treemacs-core-utils.el"
18872 ("treemacs-dir"
18873 (string-append (assoc-ref outputs "out") "/")))
18874 (chmod "src/elisp/treemacs-icons.el" #o644)
18875 (substitute* "src/elisp/treemacs-icons.el"
18876 (("icons/default") "share/emacs-treemacs/images"))
18877 (chmod "src/elisp/treemacs-customization.el" #o644)
18878 (emacs-substitute-variables "src/elisp/treemacs-customization.el"
18879 ("treemacs-python-executable"
18880 (string-append (assoc-ref inputs "python") "/bin/python3")))
18881 (chmod "src/elisp/treemacs-async.el" #o644)
18882 (substitute* "src/elisp/treemacs-async.el"
18883 (("src/scripts") (string-append "share/" ,name "/scripts"))))
18884 #t))
18885 (add-after 'install 'install-data
18886 (lambda* (#:key outputs #:allow-other-keys)
18887 (let ((out (assoc-ref outputs "out")))
18888 (with-directory-excursion "../.." ;treemacs root
18889 (copy-recursively "icons/default"
18890 (string-append out "/share/" ,name "/images"))
18891 (copy-recursively
18892 "src/scripts"
18893 (string-append out "/share/" ,name "/scripts"))
18894 #t)))))))
18895 (home-page "https://github.com/Alexander-Miller/treemacs")
18896 (synopsis "Emacs tree style file explorer")
18897 (description "Powerful and flexible file tree project explorer.")
18898 (license license:gpl3+)))
18899
18900 (define-public emacs-treemacs-extra
18901 (package
18902 (inherit emacs-treemacs)
18903 (name "emacs-treemacs-extra")
18904 (propagated-inputs
18905 `(,@(package-propagated-inputs emacs-treemacs)
18906 ("emacs-evil" ,emacs-evil)
18907 ("emacs-magit" ,emacs-magit)
18908 ("emacs-projectile" ,emacs-projectile)))
18909 (arguments
18910 (substitute-keyword-arguments
18911 (package-arguments emacs-treemacs)
18912 ((#:phases phases)
18913 `(modify-phases ,phases
18914 (add-after 'chdir-elisp 'copy-extra
18915 (lambda _
18916 (copy-recursively "../extra" ".")))))))))
18917
18918 (define-public emacs-lsp-java
18919 (package
18920 (name "emacs-lsp-java")
18921 (version "2.2")
18922 (source (origin
18923 (method git-fetch)
18924 (uri (git-reference
18925 (url "https://github.com/emacs-lsp/lsp-java.git")
18926 (commit version)))
18927 (file-name (git-file-name name version))
18928 (sha256
18929 (base32
18930 "0hcnvbyaqyypgby1bfj4zbrbq97amk8hfx0sj4w73rl46yf4jk3j"))))
18931 (build-system emacs-build-system)
18932 (propagated-inputs
18933 `(("emacs-lsp-mode" ,emacs-lsp-mode)
18934 ("emacs-markdown-mode" ,emacs-markdown-mode)
18935 ("emacs-dash" ,emacs-dash)
18936 ("emacs-f" ,emacs-f)
18937 ("emacs-ht" ,emacs-ht)
18938 ("emacs-request" ,emacs-request)
18939 ("emacs-treemacs" ,emacs-treemacs)))
18940 (home-page "https://github.com/emacs-lsp/lsp-java/")
18941 (synopsis "Java support for lsp-mode")
18942 (description "Emacs Java IDE using Eclipse JDT Language Server.")
18943 (license license:gpl3+)))
18944
18945 (define-public emacs-lsp-ui
18946 (package
18947 (name "emacs-lsp-ui")
18948 (version "6.2")
18949 (source (origin
18950 (method git-fetch)
18951 (uri (git-reference
18952 (url "https://github.com/emacs-lsp/lsp-ui.git")
18953 (commit version)))
18954 (file-name (git-file-name name version))
18955 (sha256
18956 (base32
18957 "024753bi0p1jyjhw7wk8k6s16kbwab5ar4cfasvbn8g08acf293b"))))
18958 (build-system emacs-build-system)
18959 (propagated-inputs
18960 `(("emacs-dash" ,emacs-dash)
18961 ("emacs-lsp-mode" ,emacs-lsp-mode)
18962 ("emacs-markdown-mode" ,emacs-markdown-mode)
18963 ("emacs-flycheck" ,emacs-flycheck)))
18964 (home-page "https://github.com/emacs-lsp/lsp-ui")
18965 (synopsis "User interface extensions for @code{lsp-mode}")
18966 (description
18967 "@code{LSP-ui} contains several enhancements and integrations for
18968 @code{lsp-mode}, such as visual flychecking, displaying references in-line,
18969 and code peeking.")
18970 (license license:gpl3+)))
18971
18972 (define-public emacs-lsp-lua-emmy
18973 (let ((commit "ab53fb2a8b8942804eb75bab5624fd19f1d360bf"))
18974 (package
18975 (name "emacs-lsp-lua-emmy")
18976 (version (git-version "0.1.0" "1" commit))
18977 (source (origin
18978 (method git-fetch)
18979 (uri (git-reference
18980 (url "https://github.com/phenix3443/lsp-lua-emmy.git")
18981 (commit commit)))
18982 (file-name (git-file-name name version))
18983 (sha256
18984 (base32
18985 "0rbizis73n1w5ig07fj1han74chbc1zpbp5bn37rj0gz608aqka8"))))
18986 (build-system emacs-build-system)
18987 (propagated-inputs
18988 `(("emacs-lsp-mode" ,emacs-lsp-mode)))
18989 (home-page "https://github.com/phenix3443/lsp-lua-emmy/")
18990 (synopsis "Lua support in @code{lsp-mode} client for Emacs")
18991 (description "This package provides a Lua language support in
18992 @code{lsp-mode} client for Emacs.")
18993 (license license:gpl3+))))
18994
18995 (define-public emacs-lsp-ivy
18996 (let ((commit "caf1e1d7e22ed0b5fe18dd508d1a6f83dd163288")
18997 (revision "2"))
18998 (package
18999 (name "emacs-lsp-ivy")
19000 (version (git-version "0.1" revision commit))
19001 (source (origin
19002 (method git-fetch)
19003 (uri (git-reference
19004 (url "https://github.com/emacs-lsp/lsp-ivy.git")
19005 (commit commit)))
19006 (file-name (git-file-name name version))
19007 (sha256
19008 (base32
19009 "084ds4qhzhivfnicy3h7z4mblxgcqx8pfnkbjr9qjrfng7cisy4z"))))
19010 (build-system emacs-build-system)
19011 (propagated-inputs
19012 `(("emacs-ivy" ,emacs-ivy)
19013 ("emacs-lsp-mode" ,emacs-lsp-mode)
19014 ("emacs-dash" ,emacs-dash)))
19015 (home-page "https://github.com/emacs-lsp/lsp-ivy")
19016 (synopsis "Provide LSP-enhanced completion for symbols")
19017 (description
19018 "This package enhances @code{ivy} with completion for symbols from
19019 workspaces with a LSP-compliant server running.")
19020 (license license:gpl3+))))
19021
19022 (define-public emacs-helm-lsp
19023 (let ((commit "3a58ca4cfd94b9ab1e15e819d3b16ef568e8889b")
19024 (revision "1"))
19025 (package
19026 (name "emacs-helm-lsp")
19027 (version (git-version "0.1" revision commit))
19028 (source (origin
19029 (method git-fetch)
19030 (uri (git-reference
19031 (url "https://github.com/emacs-lsp/helm-lsp.git")
19032 (commit commit)))
19033 (file-name (git-file-name name version))
19034 (sha256
19035 (base32
19036 "0wh5zai3s17ss2q8wcdd6d87hv1h3nbyrxxs4js9cas8m6y2ssjv"))))
19037 (build-system emacs-build-system)
19038 (propagated-inputs
19039 `(("emacs-helm" ,emacs-helm)
19040 ("emacs-lsp-mode" ,emacs-lsp-mode)
19041 ("emacs-dash" ,emacs-dash)))
19042 (home-page "https://github.com/emacs-lsp/helm-lsp")
19043 (synopsis "Provide LSP-enhanced completion for symbols")
19044 (description
19045 "This package enhances @code{helm} with completion for symbols from
19046 workspaces with a LSP-compliant server running.")
19047 (license license:gpl3+))))
19048
19049 (define-public emacs-helm-notmuch
19050 (package
19051 (name "emacs-helm-notmuch")
19052 (version "1.2")
19053 (home-page "https://github.com/emacs-helm/helm-notmuch/")
19054 (source (origin
19055 (method git-fetch)
19056 (uri (git-reference
19057 (url home-page)
19058 (commit version)))
19059 (file-name (git-file-name name version))
19060 (sha256
19061 (base32
19062 "1k038dbdpaa411gl4071x19fklhnizhr346plxw23lsnxir9dhqc"))))
19063 (build-system emacs-build-system)
19064 (propagated-inputs
19065 `(("emacs-helm" ,emacs-helm)
19066 ("notmuch" ,notmuch)))
19067 (synopsis "Search emails with Emacs Notmuch and Helm")
19068 (description
19069 "This package can be used to search emails in Emacs, searching result
19070 displays as you type thanks to Helm, though @command{notmuch-search} does the
19071 real search.")
19072 (license license:gpl3+)))
19073
19074 (define-public emacs-elmacro
19075 (let ((commit "89b9b0feabafd01fee48111d67131c4c9b5fed9a"))
19076 (package
19077 (name "emacs-elmacro")
19078 (version (git-version "1.1.0" "1" commit))
19079 (home-page "https://github.com/Silex/elmacro")
19080 (source (origin
19081 (method git-fetch)
19082 (uri (git-reference
19083 (url home-page)
19084 (commit commit)))
19085 (file-name (git-file-name name version))
19086 (sha256
19087 (base32
19088 "06wkzafh6vbcjf0m3sl253mgcq32p8cdv7vsfmyx51baa36938ha"))))
19089 (build-system emacs-build-system)
19090 (propagated-inputs
19091 `(("emacs-s" ,emacs-s)
19092 ("emacs-dash" ,emacs-dash)))
19093 (synopsis "Convert keyboard macros to Emacs Lisp")
19094 (description
19095 "This package displays keyboard macros or latest interactive commands
19096 as Emacs Lisp.")
19097 (license license:gpl3+))))
19098
19099 (define-public emacs-transient
19100 ;; 0.1.0 depends on lv.el but not later versions.
19101 (let ((commit "7e45a57ec81185631fe763733f64c99021df2a06"))
19102 (package
19103 (name "emacs-transient")
19104 (version (git-version "0.1.0" "1" commit))
19105 (source (origin
19106 (method git-fetch)
19107 (uri (git-reference
19108 (url "https://github.com/magit/transient")
19109 (commit commit)))
19110 (file-name (git-file-name name version))
19111 (sha256
19112 (base32
19113 "0r6d4c1lga3bk0s7q7y4v4hbpxnd9h40cjxybqvax2z902931fz1"))))
19114 (build-system gnu-build-system)
19115 (native-inputs `(("texinfo" ,texinfo)
19116 ("emacs" ,emacs-minimal)))
19117 (propagated-inputs
19118 `(("dash" ,emacs-dash)))
19119 (arguments
19120 `(#:modules ((guix build gnu-build-system)
19121 (guix build utils)
19122 (srfi srfi-26)
19123 (guix build emacs-utils))
19124 #:imported-modules (,@%gnu-build-system-modules
19125 (guix build emacs-utils))
19126 #:tests? #f ; tests are not included in the release
19127 #:make-flags (list "lisp" "info")
19128 #:phases
19129 (modify-phases %standard-phases
19130 (delete 'configure)
19131 (replace 'install
19132 (lambda* (#:key inputs outputs #:allow-other-keys)
19133 (let* ((out (assoc-ref outputs "out"))
19134 (lisp (string-append out "/share/emacs/site-lisp"))
19135 (info (string-append out "/share/info")))
19136 (for-each (cut install-file <> lisp)
19137 (find-files "." "\\.elc*$"))
19138 (install-file "docs/transient.info" (string-append info)))
19139 #t)))))
19140 (home-page "https://magit.vc/manual/transient")
19141 (synopsis "Transient commands in Emacs")
19142 (description
19143 "Taking inspiration from prefix keys and prefix arguments in Emacs,
19144 Transient implements a similar abstraction involving a prefix command, infix
19145 arguments and suffix commands. We could call this abstraction a \"transient
19146 command\", but because it always involves at least two commands (a prefix and
19147 a suffix) we prefer to call it just a \"transient\".")
19148 (license license:gpl3+))))
19149
19150 (define-public emacs-forge
19151 (let ((commit "63cbf81f166fc71861d8e3d246df8e5ccedcb9bb"))
19152 (package
19153 (name "emacs-forge")
19154 (version (git-version "0.1.0" "3" commit))
19155 (source
19156 (origin
19157 (method git-fetch)
19158 (uri (git-reference
19159 (url "https://github.com/magit/forge.git")
19160 (commit commit)))
19161 (file-name (git-file-name name version))
19162 (sha256
19163 (base32
19164 "1yf2xjx3459py6rji740jm8bmh2pv66ghnbjxsvjd4jf9kcdav83"))))
19165 (build-system emacs-build-system)
19166 (native-inputs
19167 `(("texinfo" ,texinfo)
19168 ("emacs" ,emacs-minimal)))
19169 (propagated-inputs
19170 `(("emacs-closql" ,emacs-closql)
19171 ("emacs-dash" ,emacs-dash)
19172 ("emacs-emacsql-sqlite" ,emacs-emacsql)
19173 ("emacs-ghub" ,emacs-ghub)
19174 ("emacs-let-alist" ,emacs-let-alist)
19175 ("emacs-magit" ,emacs-magit)
19176 ("emacs-markdown-mode" ,emacs-markdown-mode)
19177 ("emacs-transient" ,emacs-transient)))
19178 (arguments
19179 `(#:tests? #f ;no tests
19180 #:phases
19181 (modify-phases %standard-phases
19182 (add-after 'unpack 'build-info-manual
19183 (lambda _
19184 (invoke "make" "info")
19185 ;; Move the info file to lisp so that it gets installed by the
19186 ;; emacs-build-system.
19187 (rename-file "docs/forge.info" "lisp/forge.info")))
19188 (add-after 'build-info-manual 'chdir-lisp
19189 (lambda _
19190 (chdir "lisp")
19191 #t)))))
19192 (home-page "https://github.com/magit/forge/")
19193 (synopsis "Access Git forges from Magit")
19194 (description "Work with Git forges, such as Github and Gitlab, from the
19195 comfort of Magit and the rest of Emacs.")
19196 (license license:gpl3+))))
19197
19198 (define-public emacs-matcha
19199 (let ((commit "c7df5cf5cdac9ae369e241342389ccda0205eab9"))
19200 (package
19201 (name "emacs-matcha")
19202 (version (git-version "0.0.1" "1" commit)) ;no upstream release
19203 (source (origin
19204 (method git-fetch)
19205 (uri (git-reference
19206 (url "https://github.com/jojojames/matcha.git")
19207 (commit commit)))
19208 (file-name (git-file-name name version))
19209 (sha256
19210 (base32
19211 "1lfnh1glg6al677m7ci0x8g5wjdhjxlfl3nv1f1ppsw4dpnwsj9b"))))
19212 (propagated-inputs
19213 `(("emacs-hydra" ,emacs-hydra)
19214 ("emacs-transient" ,emacs-transient)))
19215 (build-system emacs-build-system)
19216 (home-page "https://github.com/jojojames/matcha/")
19217 (synopsis "Collection of hydras with a generic interface to launch them")
19218 (description "Matcha provides a collection of transients for various
19219 packages with a consistent way to use them.")
19220 (license license:gpl3+))))
19221
19222 (define-public emacs-undo-propose-el
19223 (let ((commit "f80baee566807d733fbacbab08a897bcd62579c3")
19224 (revision "3"))
19225 (package
19226 (name "emacs-undo-propose-el")
19227 (version (git-version "3.0.0" revision commit))
19228 (source
19229 (origin
19230 (method git-fetch)
19231 (uri (git-reference
19232 (url "https://github.com/jackkamm/undo-propose-el")
19233 (commit commit)))
19234 (file-name (git-file-name name version))
19235 (sha256
19236 (base32
19237 "00rqz63bhh66q78l646q3w16gydygj8h4d8np0dpbifgzciak90b"))))
19238 (build-system emacs-build-system)
19239 (arguments
19240 `(#:tests? #t
19241 #:test-command '("make" "test")))
19242 (home-page "https://github.com/jackkamm/undo-propose-el")
19243 (synopsis "Simple and safe navigation of @code{undo} history")
19244 (description "This package permits navigation of @code{undo} history in a
19245 temporary buffer, which is read-only save for @code{undo} commands, and
19246 subsequent committal of a chain of @code{undo} commands as a single edit in
19247 the @code{undo} history.")
19248 (license license:gpl3+))))
19249
19250 (define-public emacs-elisp-docstring-mode
19251 (let ((commit "f512e509dd690f65133e55563ebbfd2dede5034f")
19252 (version "0.0.1")
19253 (revision "1"))
19254 (package
19255 (name "emacs-elisp-docstring-mode")
19256 (version (git-version version revision commit))
19257 (source
19258 (origin
19259 (method git-fetch)
19260 (uri (git-reference
19261 (url "https://github.com/Fuco1/elisp-docstring-mode")
19262 (commit commit)))
19263 (file-name (git-file-name name version))
19264 (sha256
19265 (base32
19266 "0al8m75p359h4n82rf0dsl22qfdg9cwwywn5pn7x6gb96c7qrqaa"))))
19267 (build-system emacs-build-system)
19268 (home-page "https://github.com/Fuco1/elisp-docstring-mode")
19269 (synopsis "Major mode for editing Emacs Lisp docstrings")
19270 (description "This package provides font lock and automatic escaping and
19271 unescaping of quotes.")
19272 (license license:gpl3+))))
19273
19274 (define-public emacs-vimrc-mode
19275 (let ((commit "13bc150a870d5d4a95f1111e4740e2b22813c30e")
19276 (version "0.3.1")
19277 (revision "1"))
19278 (package
19279 (name "emacs-vimrc-mode")
19280 (version (git-version version revision commit))
19281 (source
19282 (origin
19283 (method git-fetch)
19284 (uri (git-reference
19285 (url "https://github.com/mcandre/vimrc-mode")
19286 (commit commit)))
19287 (file-name (git-file-name name version))
19288 (sha256
19289 (base32
19290 "0026dqs3hwygk2k2xfra90w5sfnxrfj7l69jz7sq5glavbf340pk"))))
19291 (build-system emacs-build-system)
19292 (home-page "https://github.com/mcandre/vimrc-mode")
19293 (synopsis "Major mode for Vimscript")
19294 (description "This package provides font lock and @code{beginning-} and
19295 @code{end-of-defun} functions for Vimscript files.")
19296 (license license:gpl3+))))
19297
19298 (define-public emacs-flycheck-elm
19299 (let ((revision "0")
19300 (commit "1b60050efd4729bfba548f3e5adbcb58436667cb"))
19301 (package
19302 (name "emacs-flycheck-elm")
19303 (version (git-version "0" revision commit))
19304 (source
19305 (origin
19306 (method git-fetch)
19307 (uri
19308 (git-reference
19309 (url "https://github.com/bsermons/flycheck-elm")
19310 (commit commit)))
19311 (file-name (git-file-name name version))
19312 (sha256
19313 (base32 "1kjms9d2c98ffd1qxs879qhg0n4jzic0r5kni9y4gz3v09ww8zms"))))
19314 (build-system emacs-build-system)
19315 (propagated-inputs
19316 `(("emacs-flycheck" ,emacs-flycheck)
19317 ("emacs-let-alist" ,emacs-let-alist)))
19318 (home-page "https://github.com/bsermons/flycheck-elm")
19319 (synopsis "Flycheck support for the Elm language")
19320 (description "Flycheck Elm adds Flycheck support for Elm language.")
19321 (license license:gpl3+))))
19322
19323 (define-public emacs-flycheck-haskell
19324 (let ((commit "32ddff87165a7d3a35e7318bee997b5b4bd41278")
19325 (revision "2"))
19326 (package
19327 (name "emacs-flycheck-haskell")
19328 (version (git-version "0.8" revision commit))
19329 (source
19330 (origin
19331 (method git-fetch)
19332 (uri (git-reference
19333 (url "https://github.com/flycheck/flycheck-haskell")
19334 (commit commit)))
19335 (file-name (git-file-name name version))
19336 (sha256
19337 (base32
19338 "10pgsbagq6qj4mshq5sypv0q0khck92b30sc793b4g1pfpsxvgjn"))))
19339 (build-system emacs-build-system)
19340 (propagated-inputs
19341 `(("emacs-dash" ,emacs-dash)
19342 ("emacs-seq" ,emacs-seq)
19343 ("emacs-flycheck" ,emacs-flycheck)
19344 ("emacs-haskell-mode" ,emacs-haskell-mode)
19345 ("emacs-let-alist" ,emacs-let-alist)))
19346 (arguments
19347 `(#:include '("\\.el$" "\\.hs$")))
19348 (home-page "https://github.com/flycheck/flycheck-haskell")
19349 (synopsis "Flycheck for Haskell")
19350 (description "This package configures syntax-checking for Haskell
19351 buffers.")
19352 (license license:gpl3+))))
19353
19354 (define-public emacs-js2-refactor-el
19355 (let ((commit "d4c40b5fc86d3edd7c6a7d83ac86483ee1cb7a28")
19356 (revision "2"))
19357 (package
19358 (name "emacs-js2-refactor-el")
19359 (version (git-version "0.9.0" revision commit))
19360 (source
19361 (origin
19362 (method git-fetch)
19363 (uri (git-reference
19364 (url "https://github.com/magnars/js2-refactor.el")
19365 (commit commit)))
19366 (file-name (git-file-name name version))
19367 (sha256
19368 (base32
19369 "08b25y3raz0p98zxk9xdd8nj9shqd6mzrqhbq1gg4cwsmi7h7ly1"))))
19370 (build-system emacs-build-system)
19371 (propagated-inputs
19372 `(("emacs-dash" ,emacs-dash)
19373 ("emacs-s" ,emacs-s)
19374 ("emacs-js2-mode" ,emacs-js2-mode)
19375 ("emacs-yasnippet" ,emacs-yasnippet)
19376 ("emacs-multiple-cursors" ,emacs-multiple-cursors)))
19377 (native-inputs
19378 `(("emacs-buttercup" ,emacs-buttercup)
19379 ("emacs-espuds" ,emacs-espuds)))
19380 (home-page "https://github.com/magnars/js2-refactor.el")
19381 (synopsis "JavaScript refactoring in Emacs")
19382 (description "This package provides various refactoring functions for
19383 JavaScript.")
19384 (license license:gpl3+))))
19385
19386 (define-public emacs-prettier
19387 (let ((commit "e9b73e81d3e1642aec682195f127a42dfb0b5774")
19388 (version "0.1.0")
19389 (revision "1"))
19390 (package
19391 (name "emacs-prettier")
19392 (version (git-version version revision commit))
19393 (source
19394 (origin
19395 (method git-fetch)
19396 (uri (git-reference
19397 (url "https://github.com/prettier/prettier-emacs")
19398 (commit commit)))
19399 (file-name (git-file-name name version))
19400 (sha256
19401 (base32
19402 "0hj4fv3fgc60i6jrsx4a81s5c9fsxxafhhs3q2q1dypsscjci9ph"))))
19403 (build-system emacs-build-system)
19404 (home-page "https://github.com/prettier/prettier-emacs")
19405 (synopsis "Automatic formatting of JavaScript code")
19406 (description "This package integrates Prettier with Emacs, and
19407 provides a minor mode that autoformats the buffer upon saving.")
19408 (license license:expat))))
19409
19410 (define-public emacs-fish-mode
19411 (package
19412 (name "emacs-fish-mode")
19413 (version "0.1.4")
19414 (source
19415 (origin
19416 (method git-fetch)
19417 (uri (git-reference
19418 (url "https://github.com/wwwjfy/emacs-fish")
19419 (commit version)))
19420 (file-name (git-file-name name version))
19421 (sha256
19422 (base32
19423 "0a74ghmjjrxfdhk4mvq6lar4w6l6lc4iilabs99smqr2fn5rsslq"))))
19424 (build-system emacs-build-system)
19425 (home-page "https://github.com/wwwjfy/emacs-fish")
19426 (synopsis "Major mode for Fish shell scripts")
19427 (description "This package provides syntax highlighting and indentation
19428 functions for Fish shell scripts.")
19429 (license license:gpl3+)))
19430
19431 (define-public emacs-eshell-up
19432 (let ((commit "9c100bae5c3020e8d9307e4332d3b64e7dc28519")
19433 (version "0.0.3")
19434 (revision "12"))
19435 (package
19436 (name "emacs-eshell-up")
19437 (version (git-version version revision commit))
19438 (source
19439 (origin
19440 (method git-fetch)
19441 (uri (git-reference
19442 (url "https://github.com/peterwvj/eshell-up")
19443 (commit commit)))
19444 (file-name (git-file-name name version))
19445 (sha256
19446 (base32
19447 "00zdbcncjabgj5mp47l1chymx5na18v2g4kj730dgmj3rnl3iz2q"))))
19448 (build-system emacs-build-system)
19449 (home-page "https://github.com/peterwvj/eshell-up")
19450 (synopsis "Quickly go to a parent directory in @code{Eshell}")
19451 (description "This package provides quick navigation to a specific
19452 parent directory using @code{Eshell}.")
19453 (license license:gpl3+))))
19454
19455 (define-public emacs-tco-el
19456 (let ((commit "482db5313f090b17ed22ccd856f0e141dc75afe6")
19457 (revision "1"))
19458 (package
19459 (name "emacs-tco-el")
19460 (version (git-version "0.3" revision commit))
19461 (source
19462 (origin
19463 (method git-fetch)
19464 (uri (git-reference
19465 (url "https://github.com/Wilfred/tco.el")
19466 (commit commit)))
19467 (file-name (git-file-name name version))
19468 (sha256
19469 (base32
19470 "1z7xkbrqznk6ni687qqknp8labcyhl8y6576hjfri89fn21385y9"))))
19471 (build-system emacs-build-system)
19472 (propagated-inputs
19473 `(("emacs-dash" ,emacs-dash)))
19474 (native-inputs
19475 `(("emacs-ert-runner" ,emacs-ert-runner)
19476 ("emacs-undercover" ,emacs-undercover)))
19477 (arguments
19478 `(#:tests? #t
19479 #:test-command '("ert-runner")))
19480 (home-page "https://github.com/Wilfred/tco.el")
19481 (synopsis "Tail-call optimization for Emacs Lisp")
19482 (description "This package provides tail-call optimization for Emacs
19483 Lisp functions that call themselves in tail position.")
19484 (license license:gpl3+))))
19485
19486 (define-public emacs-equake
19487 (let ((commit "7eddc025ee61b83029363e22219af228b8c20681")
19488 (revision "2"))
19489 (package
19490 (name "emacs-equake")
19491 (version (git-version "0.85" revision commit))
19492 (source
19493 (origin
19494 (method git-fetch)
19495 (uri (git-reference
19496 (url "https://gitlab.com/emacsomancer/equake/")
19497 (commit commit)))
19498 (file-name (git-file-name name version))
19499 (sha256
19500 (base32
19501 "1c55pbqak3d02sw6z1139baxzy401b90g0gxzcc3j6sgplz6sc6w"))))
19502 (build-system emacs-build-system)
19503 (propagated-inputs
19504 `(("emacs-dash" ,emacs-dash)
19505 ("emacs-tco-el" ,emacs-tco-el)))
19506 (home-page "https://gitlab.com/emacsomancer/equake/")
19507 (synopsis "Drop-down console for @code{Eshell} and terminal emulators")
19508 (description "This package provides a Quake-style drop-down console
19509 compatible with Emacs' shell modes.")
19510 (license license:gpl3+))))
19511
19512 (define-public emacs-vdiff
19513 (let ((commit "09e15fc932bfd2febe1d4a65780a532394562b07")
19514 (revision "1"))
19515 (package
19516 (name "emacs-vdiff")
19517 (version (git-version "0.2.3" revision commit))
19518 (source
19519 (origin
19520 (method git-fetch)
19521 (uri (git-reference
19522 (url "https://github.com/justbur/emacs-vdiff.git")
19523 (commit commit)))
19524 (file-name (git-file-name name version))
19525 (sha256
19526 (base32
19527 "1gvqi5l4zs872nn4pmj603aza09d81qad2rgijzv268lif8z34db"))))
19528 (build-system emacs-build-system)
19529 (propagated-inputs
19530 `(("emacs-hydra" ,emacs-hydra)))
19531 (arguments
19532 `(#:tests? #t
19533 #:test-command '("emacs" "-Q" "-batch" "-L" "."
19534 "-l" "vdiff-test.el"
19535 "-f" "ert-run-tests-batch-and-exit")))
19536 (home-page "https://github.com/justbur/emacs-vdiff/")
19537 (synopsis "Frontend for diffing based on vimdiff")
19538 (description "This package permits comparisons of two or three buffers
19539 based on diff output.")
19540 (license license:gpl3+))))
19541
19542 (define-public emacs-vdiff-magit
19543 ;; Need to use a more recent commit than the latest release version because
19544 ;; of Magit and Transient
19545 (let ((commit "b100d126c69e5c26a61ae05aa1778bcc4302b597")
19546 (version "0.3.2")
19547 (revision "8"))
19548 (package
19549 (name "emacs-vdiff-magit")
19550 (version (git-version version revision commit))
19551 (source
19552 (origin
19553 (method git-fetch)
19554 (uri (git-reference
19555 (url "https://github.com/justbur/emacs-vdiff-magit/")
19556 (commit commit)))
19557 (file-name (git-file-name name version))
19558 (sha256
19559 (base32
19560 "16cjmrzflf2i1w01973sl944xrfanakba8sb4dpwi79d92xp03xy"))))
19561 (build-system emacs-build-system)
19562 (propagated-inputs
19563 `(("emacs-vdiff" ,emacs-vdiff)
19564 ("emacs-magit" ,emacs-magit)
19565 ("emacs-transient" ,emacs-transient)))
19566 (home-page "https://github.com/justbur/emacs-vdiff-magit/")
19567 (synopsis "Frontend for diffing based on vimdiff")
19568 (description "This package permits comparisons of two or three buffers
19569 based on diff output.")
19570 (license license:gpl3+))))
19571
19572 (define-public emacs-all-the-icons-dired
19573 (let ((commit "980b7747d6c4a7992a1ec56afad908956db0a519")
19574 (version "1.0")
19575 (revision "1"))
19576 (package
19577 (name "emacs-all-the-icons-dired")
19578 (version (git-version version revision commit))
19579 (source
19580 (origin
19581 (method git-fetch)
19582 (uri (git-reference
19583 (url "https://github.com/jtbm37/all-the-icons-dired/")
19584 (commit commit)))
19585 (file-name (git-file-name name version))
19586 (sha256
19587 (base32
19588 "1pvbgyxfj4j205nj1r02045f1y4wgavdsk7f45hxkkhms1rj8jyy"))))
19589 (build-system emacs-build-system)
19590 (propagated-inputs
19591 `(("emacs-all-the-icons" ,emacs-all-the-icons)))
19592 (home-page "https://github.com/jtbm37/all-the-icons-dired/")
19593 (synopsis "Show icons for each file in @code{dired-mode}")
19594 (description "This package allows icons from @file{all-the-icons.el} to
19595 be used in @code{dired-mode}.")
19596 (license license:gpl3+))))
19597
19598 (define-public emacs-exwm-edit
19599 (let ((commit "bc25ba094b383be3c650ca0b7e1534efe2bb154f")
19600 (version "0.0.1")
19601 (revision "2"))
19602 (package
19603 (name "emacs-exwm-edit")
19604 (version (git-version version revision commit))
19605 (source
19606 (origin
19607 (method git-fetch)
19608 (uri (git-reference
19609 (url "https://github.com/agzam/exwm-edit/")
19610 (commit commit)))
19611 (file-name (git-file-name name version))
19612 (sha256
19613 (base32
19614 "1z1ya9xgknka3dy3b3x8zzfkxdx5jqsi8q5aqkvxjxa6n7mmqdwv"))))
19615 (build-system emacs-build-system)
19616 (propagated-inputs
19617 `(("emacs-exwm" ,emacs-exwm)))
19618 (home-page "https://github.com/agzam/exwm-edit/")
19619 (synopsis "Open temp buffers for editing text from EXWM buffers")
19620 (description "This package facilitates editing text from EXWM buffers by
19621 generating a temp buffer in which any useful Emacs utilities and modes can be
19622 invoked.")
19623 (license license:gpl3+))))
19624
19625 (define-public emacs-ert-async
19626 (package
19627 (name "emacs-ert-async")
19628 (version "0.1.2")
19629 (source
19630 (origin
19631 (method git-fetch)
19632 (uri (git-reference
19633 (url "https://github.com/rejeep/ert-async.el")
19634 (commit (string-append "v" version))))
19635 (file-name (git-file-name name version))
19636 (sha256
19637 (base32
19638 "0hn9i405nfhjd1h9vnwj43nxbbz00khrwkjq0acfyxjaz1shfac9"))))
19639 (build-system emacs-build-system)
19640 (home-page "https://github.com/rejeep/ert-async.el")
19641 (synopsis "Async support for ERT")
19642 (description "This package allows ERT to work with asynchronous tests.")
19643 (license license:gpl3+)))
19644
19645 (define-public emacs-prodigy-el
19646 (let ((commit "0a12eec1f001a4eef16b2c0c524f02f2647a4ff1")
19647 (revision "2"))
19648 (package
19649 (name "emacs-prodigy-el")
19650 (version (git-version "0.7.0" revision commit))
19651 (source
19652 (origin
19653 (method git-fetch)
19654 (uri (git-reference
19655 (url "https://github.com/rejeep/prodigy.el")
19656 (commit commit)))
19657 (file-name (git-file-name name version))
19658 (sha256
19659 (base32
19660 "02kysq57kqzg0zkhaf302ada9cp9spgp71z8vbdq4c7dl6x75h4g"))))
19661 (build-system emacs-build-system)
19662 (propagated-inputs
19663 `(("emacs-dash" ,emacs-dash)
19664 ("emacs-s" ,emacs-s)
19665 ("emacs-f" ,emacs-f)))
19666 (native-inputs
19667 `(("emacs-el-mock" ,emacs-el-mock)
19668 ("emacs-ert-async" ,emacs-ert-async)))
19669 (home-page "https://github.com/rejeep/prodigy.el")
19670 (synopsis "Manage external services from within Emacs")
19671 (description "This package provides a GUI for defining and monitoring services.")
19672 (license license:gpl3+))))
19673
19674 (define-public emacs-web-server
19675 (let ((commit "cafa5b7582c57252a0884b2c33da9b18fb678713")
19676 (revision "1"))
19677 (package
19678 (name "emacs-web-server")
19679 (version (git-version "0.1.0" revision commit))
19680 (source
19681 (origin
19682 (method git-fetch)
19683 (uri (git-reference
19684 (url "https://github.com/eschulte/emacs-web-server/")
19685 (commit commit)))
19686 (file-name (git-file-name name version))
19687 (sha256
19688 (base32
19689 "1c0lfqmbs5hvz3fh3c8wgp6ipwmxrwx9xj264bjpj3phixd5419y"))))
19690 (build-system emacs-build-system)
19691 (native-inputs
19692 `(("curl" ,curl)))
19693 (arguments
19694 `(#:phases
19695 (modify-phases %standard-phases
19696 (add-after 'unpack 'set-shell
19697 ;; Setting the SHELL environment variable is required for the tests
19698 ;; to find sh.
19699 (lambda _
19700 (setenv "SHELL" (which "sh"))
19701 #t)))
19702 #:tests? #t
19703 #:test-command '("make" "check")))
19704 (home-page "https://github.com/eschulte/emacs-web-server/")
19705 (synopsis "Web server with handlers in Emacs Lisp")
19706 (description "This package supports HTTP GET and POST requests with
19707 url-encoded parameters, as well as web sockets.")
19708 (license license:gpl3+))))
19709
19710 (define-public emacs-markdown-preview-mode
19711 (package
19712 (name "emacs-markdown-preview-mode")
19713 (version "0.9.2")
19714 (source
19715 (origin
19716 (method git-fetch)
19717 (uri (git-reference
19718 (url "https://github.com/ancane/markdown-preview-mode")
19719 (commit (string-append "v" version))))
19720 (file-name (git-file-name name version))
19721 (sha256
19722 (base32
19723 "1d1id99gagymvzdfa1mwqh8y3szm8ii47rpijkfi1qnifjg5jaq9"))))
19724 (build-system emacs-build-system)
19725 (propagated-inputs
19726 `(("emacs-markdown-mode" ,emacs-markdown-mode)
19727 ("emacs-websocket" ,emacs-websocket)
19728 ("emacs-web-server" ,emacs-web-server)))
19729 (arguments '(#:include '("\\.el$" "\\.html$")))
19730 (home-page "https://github.com/ancane/markdown-preview-mode")
19731 (synopsis "Preview Markdown files")
19732 (description "This package provides a minor mode for preview of Markdown
19733 files, and sends rendered Markdown to a web browser.")
19734 (license license:gpl3+)))
19735
19736 (define-public emacs-dotenv-mode
19737 (package
19738 (name "emacs-dotenv-mode")
19739 (version "0.2.4")
19740 (source
19741 (origin
19742 (method git-fetch)
19743 (uri (git-reference
19744 (url "https://github.com/preetpalS/emacs-dotenv-mode")
19745 (commit (string-append "v" version))))
19746 (file-name (git-file-name name version))
19747 (sha256
19748 (base32
19749 "1fplkhxnsgdrg10iqsmw162zny2idz4vvv35spsb9j0hsk8imclc"))))
19750 (build-system emacs-build-system)
19751 (home-page "https://github.com/preetpalS/emacs-dotenv-mode")
19752 (synopsis "Major mode for @file{.env} files")
19753 (description "This package provides syntax highlighting for @file{.env}
19754 files.")
19755 (license license:gpl3+)))
19756
19757 (define-public emacs-add-node-modules-path
19758 (let ((commit "f31e69ccb681f882aebb806ce6e9478e3ac39708")
19759 (version "1.2.0")
19760 (revision "10"))
19761 (package
19762 (name "emacs-add-node-modules-path")
19763 (version (git-version version revision commit))
19764 (source
19765 (origin
19766 (method git-fetch)
19767 (uri (git-reference
19768 (url "https://github.com/codesuki/add-node-modules-path")
19769 (commit commit)))
19770 (file-name (git-file-name name version))
19771 (sha256
19772 (base32
19773 "0p106bqmvdr8by5iv02bshm339qbrjcch2d15mrm4h3nav03v306"))))
19774 (build-system emacs-build-system)
19775 (home-page "https://github.com/codesuki/add-node-modules-path")
19776 (synopsis "Add @file{node_modules} to the buffer-local @file{exec-path}")
19777 (description "This package searches the parent directories of the
19778 current file for the project's @file{node_modules/.bin/} directory, allowing
19779 Emacs to find project-specific installations of packages.")
19780 (license license:expat))))
19781
19782 (define-public emacs-flow-minor-mode
19783 (let ((commit "d1b32a7dd0d33c6a00a106da5f4b2323602cbd3e")
19784 (version "0.3")
19785 (revision "4"))
19786 (package
19787 (name "emacs-flow-minor-mode")
19788 (version (git-version version revision commit))
19789 (source
19790 (origin
19791 (method git-fetch)
19792 (uri (git-reference
19793 (url "https://github.com/an-sh/flow-minor-mode")
19794 (commit commit)))
19795 (file-name (git-file-name name version))
19796 (sha256
19797 (base32
19798 "169r4ib9qg9q6fm3p0p23qs1qx4pa9pg1qvyq4ysr85i7kwygppl"))))
19799 (build-system emacs-build-system)
19800 (home-page "https://github.com/an-sh/flow-minor-mode")
19801 (synopsis "Minor mode for JavaScript Flow files")
19802 (description "This package integrates Flow with Emacs, allowing for
19803 definition-jumping and type-checking on demand.")
19804 (license license:bsd-3))))
19805
19806 (define-public emacs-rjsx-mode
19807 (let ((commit "0e7fa6b4facdec4f85a7a8865bdf59dfd57217b5")
19808 (revision "2"))
19809 (package
19810 (name "emacs-rjsx-mode")
19811 (version (git-version "0.4" revision commit))
19812 (source
19813 (origin
19814 (method git-fetch)
19815 (uri (git-reference
19816 (url "https://github.com/felipeochoa/rjsx-mode")
19817 (commit commit)))
19818 (file-name (git-file-name name version))
19819 (sha256
19820 (base32
19821 "0s0871sx3ch09kgvbcp9na4zdrfrda62xjq8m9knbq5vnj8q8qpi"))))
19822 (build-system emacs-build-system)
19823 (propagated-inputs
19824 `(("emacs-js2-mode" ,emacs-js2-mode)))
19825 (arguments
19826 `(#:tests? #t
19827 #:test-command '("make" "test")))
19828 (home-page "https://github.com/felipeochoa/rjsx-mode")
19829 (synopsis "Major mode for JSX files")
19830 (description "This package extends the parser of @code{js2-mode} to
19831 support JSX syntax.")
19832 (license license:expat))))
19833
19834 (define-public emacs-origami-el
19835 (let ((commit "1f38085c8f9af7842765ed63f7d6dfe4dab59366")
19836 (version "1.0")
19837 (revision "1"))
19838 (package
19839 (name "emacs-origami-el")
19840 (version (git-version version revision commit))
19841 (source
19842 (origin
19843 (method git-fetch)
19844 (uri (git-reference
19845 (url "https://github.com/gregsexton/origami.el")
19846 (commit commit)))
19847 (file-name (git-file-name name version))
19848 (sha256
19849 (base32
19850 "0ha1qsz2p36pqa0sa2sp83lspbgx5lr7930qxnwd585liajzdd9x"))))
19851 (build-system emacs-build-system)
19852 (propagated-inputs
19853 `(("emacs-dash" ,emacs-dash)
19854 ("emacs-s" ,emacs-s)))
19855 (home-page "https://github.com/gregsexton/origami.el")
19856 (synopsis "Flexible text-folding")
19857 (description "This package provides a minor mode for collapsing and
19858 expanding regions of text without modifying the actual contents.")
19859 (license license:expat))))
19860
19861 (define-public emacs-peep-dired
19862 (let ((commit "c88a9a3050197840edfe145f11e0bb9488de32f4")
19863 (version "0")
19864 (revision "1"))
19865 (package
19866 (name "emacs-peep-dired")
19867 (version (git-version version revision commit))
19868 (source
19869 (origin
19870 (method git-fetch)
19871 (uri (git-reference
19872 (url "https://github.com/asok/peep-dired")
19873 (commit commit)))
19874 (file-name (git-file-name name version))
19875 (sha256
19876 (base32
19877 "1wy5qpnfri1gha2cnl6q20qar8dbl2mimpb43bnhmm2g3wgjyad6"))))
19878 (build-system emacs-build-system)
19879 (home-page "https://github.com/asok/peep-dired")
19880 (synopsis "Preview files in another window")
19881 (description "This package provides a minor mode that allows files to be
19882 previewed by scrolling up and down within a @code{dired} buffer.")
19883 (license license:gpl3+))))
19884
19885 (define-public emacs-counsel-etags
19886 (package
19887 (name "emacs-counsel-etags")
19888 (version "1.8.9")
19889 (source
19890 (origin
19891 (method git-fetch)
19892 (uri (git-reference
19893 (url "https://github.com/redguardtoo/counsel-etags")
19894 (commit version)))
19895 (file-name (git-file-name name version))
19896 (sha256
19897 (base32
19898 "0rmdl93kgyydwa96yclds9vwly41bpk8v18cbqc1x266w6v77dr9"))))
19899 (build-system emacs-build-system)
19900 (propagated-inputs
19901 `(("emacs-ivy" ,emacs-ivy)))
19902 (arguments
19903 `(#:tests? #t
19904 #:test-command '("make" "test")))
19905 (home-page "https://github.com/redguardtoo/counsel-etags")
19906 (synopsis "Fast @code{Ctags}/@code{Etags} solution with @code{ivy-mode}")
19907 (description "This package uses @code{ivy-mode} to facilitate navigating
19908 and searching through @code{Ctags} files.")
19909 (license license:gpl3+)))
19910
19911 (define-public emacs-ivy-clipmenu
19912 (let ((commit "d2071f2c5043a05d610cd1952e84176ca78c31dc"))
19913 (package
19914 (name "emacs-ivy-clipmenu")
19915 (version (git-version "0.0.1" "1" commit))
19916 (source (origin
19917 (method git-fetch)
19918 (uri (git-reference
19919 (url "https://github.com/wpcarro/ivy-clipmenu.el.git")
19920 (commit commit)))
19921 (file-name (git-file-name name version))
19922 (sha256
19923 (base32
19924 "0npd8glzk5z4n7y9mzbsbzi0cf3by19fqcki052jr3dga363lds7"))))
19925 (propagated-inputs
19926 `(("emacs-f" ,emacs-f)
19927 ("emacs-ivy" ,emacs-ivy)))
19928 (build-system emacs-build-system)
19929 (home-page "https://github.com/wpcarro/ivy-clipmenu.el")
19930 (synopsis "Ivy integration with clipmenu")
19931 (description "Ivy integration with the clipboard manager, clipmenu.")
19932 (license license:expat))))
19933
19934 (define-public emacs-org-download
19935 (let ((commit "10c9d7c8eed928c88a896310c882e3af4d8d0f61")
19936 (revision "2"))
19937 (package
19938 (name "emacs-org-download")
19939 (version (git-version "0.1.0" revision commit))
19940 (source (origin
19941 (method git-fetch)
19942 (uri (git-reference
19943 (url "https://github.com/abo-abo/org-download")
19944 (commit commit)))
19945 (sha256
19946 (base32
19947 "0i8wlx1i7y1vn5lqwjifvymvszg28a07vwqcm4jslf1v2ajs1lsl"))
19948 (file-name (git-file-name name version))))
19949 (build-system emacs-build-system)
19950 (propagated-inputs
19951 `(("emacs-org" ,emacs-org)
19952 ("emacs-async" ,emacs-async)))
19953 (home-page "https://github.com/abo-abo/org-download")
19954 (synopsis "Facilitate moving images")
19955 (description "This package provides utilities for managing image files
19956 copied into @code{org-mode} buffers.")
19957 (license license:gpl3+))))
19958
19959 (define-public emacs-dash-docs
19960 (let ((commit "111fd9b97001f1ad887b45e5308a14ddd68ce70a")
19961 (revision "1"))
19962 (package
19963 (name "emacs-dash-docs")
19964 (version (git-version "1.4.0" revision commit))
19965 (source
19966 (origin
19967 (method git-fetch)
19968 (uri (git-reference
19969 (url "https://github.com/dash-docs-el/dash-docs.git")
19970 (commit commit)))
19971 (file-name (git-file-name name version))
19972 (sha256
19973 (base32
19974 "0sckb7z0ylflva212bns7iq9mfnffgjghi0qspsbfwra35zb9xng"))))
19975 (build-system emacs-build-system)
19976 (propagated-inputs
19977 `(("emacs-async" ,emacs-async)))
19978 (native-inputs
19979 `(("emacs-undercover" ,emacs-undercover)
19980 ("emacs-ert-runner" ,emacs-ert-runner)))
19981 (arguments
19982 `(#:tests? #t
19983 #:test-command '("ert-runner")
19984 #:phases
19985 ;; this test requires network access, so remove it
19986 (modify-phases %standard-phases
19987 (add-before 'check 'make-tests-writable
19988 (lambda _
19989 (make-file-writable "test/dash-docs-test.el")
19990 #t))
19991 (add-before 'check 'delete-test
19992 (lambda _
19993 (emacs-batch-edit-file "test/dash-docs-test.el"
19994 `(progn (progn
19995 (goto-char (point-min))
19996 (re-search-forward "ert-deftest dash-docs-official-docsets-test")
19997 (beginning-of-line)
19998 (kill-sexp))
19999 (basic-save-buffer)))
20000 #t)))))
20001 (home-page "https://github.com/dash-docs-el/dash-docs")
20002 (synopsis "Offline documentation browser for APIs using Dash docsets")
20003 (description "This package exposes functionality to work with Dash docsets.")
20004 (license license:gpl3+))))
20005
20006 (define-public emacs-helm-dash
20007 (let ((commit "7f853bd34da666f0e9a883011c80f451b06f6c59")
20008 (revision "2"))
20009 (package
20010 (name "emacs-helm-dash")
20011 (version (git-version "1.3.0" revision commit))
20012 (source
20013 (origin
20014 (method git-fetch)
20015 (uri (git-reference
20016 (url "https://github.com/areina/helm-dash.git")
20017 (commit commit)))
20018 (file-name (git-file-name name version))
20019 (sha256
20020 (base32
20021 "0r192vzry1212ihabg9pgw9xar8zdgnbgy0vsgvfm8s5wj6ny7jp"))))
20022 (build-system emacs-build-system)
20023 (propagated-inputs
20024 `(("emacs-helm" ,emacs-helm)
20025 ("emacs-dash-docs" ,emacs-dash-docs)))
20026 (home-page "https://github.com/areina/helm-dash")
20027 (synopsis "Offline documentation browser for APIs using Dash docsets")
20028 (description "This package uses Helm to install and navigate through
20029 Dash docsets.")
20030 (license license:gpl3+))))
20031
20032 (define-public emacs-counsel-dash
20033 (let ((commit "7027868d483b51d949b9f20fb8f34b122ca61520")
20034 (revision "3"))
20035 (package
20036 (name "emacs-counsel-dash")
20037 (version (git-version "0.1.3" revision commit))
20038 (source
20039 (origin
20040 (method git-fetch)
20041 (uri (git-reference
20042 (url "https://github.com/dash-docs-el/counsel-dash.git")
20043 (commit commit)))
20044 (file-name (git-file-name name version))
20045 (sha256
20046 (base32
20047 "0h3f5pxnmb21pq4hh7k4w8jzflz1k2ap7nwpjc222w0q6x6jrbjp"))))
20048 (build-system emacs-build-system)
20049 (propagated-inputs
20050 `(("emacs-dash-docs" ,emacs-dash-docs)
20051 ("emacs-ivy" ,emacs-ivy)))
20052 (arguments
20053 `(#:phases
20054 (modify-phases %standard-phases
20055 (add-after 'unpack 'require-ivy
20056 (lambda _
20057 (substitute* "counsel-dash.el"
20058 (("^\\(require 'cl-lib\\)")
20059 "(require 'cl-lib)\n(require 'ivy)\n(require 'subr-x)"))
20060 #t)))))
20061 (home-page "https://github.com/dash-docs-el/counsel-dash")
20062 (synopsis "Offline documentation browser for APIs using Dash docsets")
20063 (description "This package uses @code{ivy-mode} to install and navigate
20064 through Dash docsets.")
20065 (license license:expat))))
20066
20067 (define-public emacs-el-patch
20068 (package
20069 (name "emacs-el-patch")
20070 (version "2.2.3")
20071 (source
20072 (origin
20073 (method git-fetch)
20074 (uri (git-reference
20075 (url "https://github.com/raxod502/el-patch")
20076 (commit version)))
20077 (file-name (git-file-name name version))
20078 (sha256
20079 (base32
20080 "18djslz177q6q33y82zmg2v6n9236a76kiqfvxdk4vbqzjbq82f7"))))
20081 (build-system emacs-build-system)
20082 (home-page "https://github.com/raxod502/el-patch")
20083 (synopsis "Future-proof your Emacs customizations")
20084 (description "This package allows for an alternate definition of an Elisp
20085 function to be specified and for any differences from the original definition
20086 to be examined using Ediff.")
20087 (license license:expat)))
20088
20089 (define-public emacs-info-plus
20090 (let ((commit "4a6b93c170169594e1e8ea60cd799a1a88a969da")
20091 (revision "2"))
20092 (package
20093 (name "emacs-info-plus")
20094 (version (git-version "0" revision commit))
20095 (source
20096 (origin
20097 (method git-fetch)
20098 (uri (git-reference
20099 (url "https://github.com/emacsmirror/info-plus")
20100 (commit commit)))
20101 (file-name (git-file-name name version))
20102 (sha256
20103 (base32
20104 "1xzmx7m1qbl3b1x6yq1db1a108xqaa64ljfv1hdw763zmy4kc6m0"))))
20105 (build-system emacs-build-system)
20106 (home-page "https://github.com/emacsmirror/info-plus")
20107 (synopsis "Extensions to @file{info.el}")
20108 (description "This package extends Emacs' @file{info.el} by allowing
20109 outline-enabled table of contents, additional metadata association for Info
20110 nodes, and more.")
20111 (license license:gpl2+))))
20112
20113 (define-public emacs-eval-sexp-fu-el
20114 (package
20115 (name "emacs-eval-sexp-fu-el")
20116 (version "0.5.0")
20117 (source
20118 (origin
20119 (method git-fetch)
20120 (uri (git-reference
20121 (url "https://github.com/hchbaw/eval-sexp-fu.el")
20122 (commit (string-append "v" version))))
20123 (file-name (git-file-name name version))
20124 (sha256
20125 (base32
20126 "01mpnpgmlnfbi2yw9dxz5iw72mw3lk223bj172i4fnx3xdrrxbij"))))
20127 (build-system emacs-build-system)
20128 (home-page "https://github.com/hchbaw/eval-sexp-fu.el")
20129 (synopsis "Enhancements for evaluating s-expressions")
20130 (description "This package provides provides variants of
20131 @code{eval-last-sexp} that work on the containing list or s-expression, as
20132 well as an option for visually flashing evaluated s-expressions.")
20133 (license license:gpl3+)))
20134
20135 (define-public emacs-counsel-tramp
20136 (package
20137 (name "emacs-counsel-tramp")
20138 (version "0.6.3")
20139 (source
20140 (origin
20141 (method git-fetch)
20142 (uri (git-reference
20143 (url "https://github.com/masasam/emacs-counsel-tramp")
20144 (commit version)))
20145 (file-name (git-file-name name version))
20146 (sha256
20147 (base32
20148 "1qy9lf7cyv6hp9mmpwh92cpdcffbxzyzchx6878d5pmk9qh6xy92"))))
20149 (build-system emacs-build-system)
20150 (propagated-inputs
20151 `(("emacs-ivy" ,emacs-ivy)))
20152 (home-page "https://github.com/masasam/emacs-counsel-tramp")
20153 (synopsis "Ivy interface for TRAMP")
20154 (description "This package allows @code{ivy-mode} to display and filter
20155 SSH servers.")
20156 (license license:gpl3+)))
20157
20158 (define-public emacs-tramp-auto-auth
20159 (let ((commit "f15a12dfab651aff60f4a9d70f868030a12344ac"))
20160 (package
20161 (name "emacs-tramp-auto-auth")
20162 (version (git-version "20191027" "1" commit))
20163 (source
20164 (origin
20165 (method git-fetch)
20166 (uri (git-reference
20167 (url "https://github.com/oitofelix/tramp-auto-auth.git")
20168 (commit commit)))
20169 (file-name (git-file-name name version))
20170 (sha256
20171 (base32
20172 "09nkjgwppjfgv04q0gv468qihgx4y3p39lpwbd6vbh3wgbccas9k"))))
20173 (build-system emacs-build-system)
20174 (home-page "https://github.com/oitofelix/tramp-auto-auth")
20175 (synopsis "TRAMP automatic authentication library")
20176 (description "This package provides @code{tramp-auto-auth-mode} Emacs
20177 global minor mode whose purpose is to automatically feed TRAMP sub-processes
20178 with passwords for paths matching regexps.")
20179 (license license:gpl3+))))
20180
20181 (define-public emacs-eacl
20182 (package
20183 (name "emacs-eacl")
20184 (version "2.0.1")
20185 (source
20186 (origin
20187 (method git-fetch)
20188 (uri (git-reference
20189 (url "https://github.com/redguardtoo/eacl")
20190 (commit version)))
20191 (file-name (git-file-name name version))
20192 (sha256
20193 (base32
20194 "0ksn11sm3g1ja5lpjz3hrzzw8b480mfcb3q589m52qjgvvn5iyfv"))))
20195 (build-system emacs-build-system)
20196 (propagated-inputs
20197 `(("emacs-ivy" ,emacs-ivy)))
20198 (home-page "https://github.com/redguardtoo/eacl")
20199 (synopsis "Auto-complete lines by using @code{grep} on a project")
20200 (description "This package provides auto-completion commands for single
20201 and multiple lines of code in a project.")
20202 (license license:gpl3+)))
20203
20204 (define-public emacs-semantic-refactor
20205 ;; The last release, 0.5, was made on 2015-07-26 and there have been 47
20206 ;; commits since then.
20207 (let ((commit "6f2c97d17fb70f4ca2112f5a2b99a8ec162004f5"))
20208 (package
20209 (name "emacs-semantic-refactor")
20210 (version (git-version "0.5" "1" commit))
20211 (source
20212 (origin
20213 (method git-fetch)
20214 (uri (git-reference
20215 (url "https://github.com/tuhdo/semantic-refactor")
20216 (commit commit)))
20217 (file-name (git-file-name name version))
20218 (sha256
20219 (base32
20220 "1lyz3zjkx2csh0xdy1zpx8s32qp1p3sig57mwi9xhgpqjyf0axmb"))))
20221 (build-system emacs-build-system)
20222 (home-page "https://github.com/tuhdo/semantic-refactor")
20223 (synopsis "Refactoring tool for C/C++ and Lisp dialects")
20224 (description "This package provides a refactoring tool based on the
20225 Emacs Semantic parser framework. For C and C++ it supports operations such as:
20226
20227 @enumerate
20228 @item Generating class implementations
20229 @item Generating function prototypes
20230 @item Converting functions to function pointers
20231 @item Moving semantic units
20232 @item etc...
20233 @end enumerate
20234
20235 For Lisp dialects like Clojure, ELisp, and Scheme, it supports operations such
20236 as:
20237
20238 @enumerate
20239 @item Formatting the whole buffer
20240 @item Converting sexpressions to one or multiple lines
20241 @item etc...
20242 @end enumerate\n")
20243 (license license:gpl3+))))
20244
20245 (define-public emacs-nhexl-mode
20246 (package
20247 (name "emacs-nhexl-mode")
20248 (version "1.4")
20249 (source
20250 (origin
20251 (method url-fetch)
20252 (uri (string-append
20253 "https://elpa.gnu.org/packages/nhexl-mode-"
20254 version ".el"))
20255 (sha256
20256 (base32 "1c2q4w6hkvc7z4026hiqdcsm2scd6q35x7b0dk80h8qicsbi14c8"))))
20257 (build-system emacs-build-system)
20258 (home-page "https://elpa.gnu.org/packages/nhexl-mode.html")
20259 (synopsis "Minor mode to edit files via hex-dump format")
20260 (description
20261 "This package implements NHexl mode, a minor mode for editing files
20262 in hex dump format. The mode command is called @command{nhexl-mode}.
20263
20264 This minor mode implements similar functionality to @command{hexl-mode},
20265 but using a different implementation technique, which makes it
20266 usable as a \"plain\" minor mode. It works on any buffer, and does
20267 not mess with the undo log or with the major mode.
20268
20269 It also comes with:
20270
20271 @itemize
20272 @item @command{nhexl-nibble-edit-mode}: a \"nibble editor\" minor mode, where
20273 the cursor pretends to advance by nibbles (4-bit) and the self-insertion keys
20274 (which only work for hex-digits) will only modify the nibble under point.
20275 @item @command{nhexl-overwrite-only-mode}: a minor mode to try and avoid
20276 moving text. In this minor mode, not only self-inserting keys overwrite
20277 existing text, but commands like `yank' and @command{kill-region} as well.
20278 @item It overrides @code{C-u} to use hexadecimal, so you can do @code{C-u a 4
20279 C-f} to advance by #xa4 characters.
20280 @end itemize\n")
20281 (license license:gpl3+)))
20282
20283 (define-public emacs-helm-wikipedia
20284 (let ((commit "126f044e0a0e1432e0791c33ce2a41875d704a9b"))
20285 (package
20286 (name "emacs-helm-wikipedia")
20287 (version (git-version "0.0.0" "1" commit))
20288 (home-page "https://github.com/emacs-helm/helm-wikipedia/")
20289 (source
20290 (origin
20291 (method git-fetch)
20292 (uri (git-reference
20293 (url home-page)
20294 (commit commit)))
20295 (file-name (git-file-name name version))
20296 (sha256
20297 (base32
20298 "148a5xsnbsiddhf9cl7yxdk41lrv38h0pip91kcflw9d7l0dp7pr"))))
20299 (build-system emacs-build-system)
20300 (inputs
20301 `(("helm" ,emacs-helm)))
20302 (synopsis "Search suggestions and article extracts from Wikipedia for Emacs")
20303 (description
20304 "This package provides an Emacs Helm interface for search suggestions
20305 and article extracts for Wikipedia.")
20306 (license license:gpl3+))))
20307
20308 (define-public emacs-webfeeder
20309 (package
20310 (name "emacs-webfeeder")
20311 (version "1.0.0")
20312 (source
20313 (origin
20314 (method url-fetch)
20315 (uri (string-append
20316 "https://elpa.gnu.org/packages/webfeeder-"
20317 version
20318 ".tar"))
20319 (sha256
20320 (base32
20321 "06y5vxw9m6pmbrzb8v2i3w9dnhgqxz06vyx1knmgi9cczlrj4a64"))))
20322 (build-system emacs-build-system)
20323 (home-page "https://gitlab.com/Ambrevar/emacs-webfeeder")
20324 (synopsis "Build RSS and Atom webfeeds from HTML files")
20325 (description
20326 "Webfeeder is an Emacs library to generate RSS and Atom feeds from HTML
20327 files. The various elements of the HTML input are parsed with customizable
20328 functions (e.g. @code{webfeeder-title-function}).")
20329 (license license:gpl3+)))
20330
20331 (define-public emacs-evil-numbers
20332 (let ((commit "6ea1c8c3a9b37bed63d48f1128e9a4910e68187e"))
20333 (package
20334 (name "emacs-evil-numbers")
20335 (version (git-version "0.4" "1" commit))
20336 (source (origin
20337 (method git-fetch)
20338 (uri (git-reference
20339 (url "https://github.com/dieggsy/evil-numbers")
20340 (commit commit)))
20341 (file-name (git-file-name name version))
20342 (sha256
20343 (base32
20344 "1aq95hj8x13py0pwsnc6wvd8cc5yv5qin8ym9js42y5966vwj4np"))))
20345 (build-system emacs-build-system)
20346 (home-page "https://github.com/dieggsy/evil-numbers")
20347 (synopsis "Increment and decrement numbers in Emacs")
20348 (description "This package increments and decrements binary, octal,
20349 decimal and hex literals. It works like C-a/C-x in Vim, i.e. searches for
20350 number up to EOL and then increments or decrements and keeps zero padding up
20351 (unlike in Vim). When a region is active, as in Evil's visual mode, all the
20352 numbers within that region will be incremented/decremented (unlike in Vim).
20353
20354 It is a fork of https://github.com/cofi/evil-numbers, which is unmaintained.")
20355 (license license:gpl3+))))
20356
20357 (define-public emacs-rotate-text
20358 (package
20359 (name "emacs-rotate-text")
20360 (version "0.1")
20361 (source (origin
20362 (method git-fetch)
20363 (uri (git-reference
20364 (url "https://github.com/nschum/rotate-text.el.git")
20365 (commit version)))
20366 (file-name (git-file-name name version))
20367 (sha256
20368 (base32
20369 "1cgxv4aibkvv6lnssynn0438a615fz3zq8hg9sb0lhfgsr99pxln"))))
20370 (build-system emacs-build-system)
20371 (home-page "https://nschum.de/src/emacs/rotate-text/")
20372 (synopsis "Cycle through words, symbols and patterns in Emacs")
20373 (description "@code{rotate-text} allows you rotate to commonly
20374 interchanged text with a single keystroke. For example, you can toggle
20375 between \"frame-width\" and \"frame-height\", between \"public\",
20376 \"protected\" and \"private\" and between \"variable1\", \"variable2\" through
20377 \"variableN\".")
20378 (license license:gpl2+)))
20379
20380 (define-public emacs-ediprolog
20381 (package
20382 (name "emacs-ediprolog")
20383 (version "1.2")
20384 (source
20385 (origin
20386 (method url-fetch)
20387 (uri (string-append
20388 "https://elpa.gnu.org/packages/ediprolog-"
20389 version
20390 ".el"))
20391 (sha256
20392 (base32
20393 "039ffvp7c810mjyargmgw1i87g0z8qs8qicq826sd9aiz9hprfaz"))))
20394 (build-system emacs-build-system)
20395 (home-page "https://elpa.gnu.org/packages/ediprolog.html")
20396 (synopsis "Emacs Does Interactive Prolog")
20397 (description "This package provides a major mode that let the user
20398 interact with SWI-Prolog in all buffers. For instance, one can consult Prolog
20399 programs and evaluate embedded queries. This mode is focused on the command
20400 @code{ediprolog-dwim} (Do What I Mean) which is supposed to, depending on the
20401 context, carry out the appropriate action.")
20402 (license license:gpl3+)))
20403
20404 (define-public emacs-evil-cleverparens
20405 (let ((commit "8c45879d49bfa6d4e414b6c1df700a4a51cbb869")
20406 (revision "1"))
20407 (package
20408 (name "emacs-evil-cleverparens")
20409 (version (git-version "2017-07-17" revision commit))
20410 (source (origin
20411 (method git-fetch)
20412 (uri (git-reference
20413 (url "https://github.com/luxbock/evil-cleverparens.git")
20414 (commit commit)))
20415 (sha256 (base32 "0lhnybpnk4n2yhlcnj9zxn0vi5hpjfaqfhvyfy7ckzz74g8v7iyw"))
20416 (file-name (git-file-name name version))))
20417 (build-system emacs-build-system)
20418 (propagated-inputs
20419 `(("emacs-evil" ,emacs-evil)
20420 ("emacs-paredit" ,emacs-paredit)
20421 ("emacs-smartparens" ,emacs-smartparens)))
20422 (home-page "https://github.com/luxbock/evil-cleverparens")
20423 (synopsis "Emacs modal editing optimized for editing Lisp")
20424 (description "@code{evil-cleverparens} remaps Evil keybindings to allow
20425 modal editing with screwing up the structure of Lisp code. Alternatives for
20426 verb commands which would are normally destructive (such as deletion) are
20427 provided. Those alternative commands are and bound by default to their
20428 corresponding Evil keys.")
20429 (license license:expat))))
20430
20431 (define-public emacs-evil-traces
20432 (let ((commit "1931e3ea2c64b4aec393a9c25063c330deff55e3")
20433 (revision "2"))
20434 (package
20435 (name "emacs-evil-traces")
20436 (version (git-version "0.0.1" revision commit))
20437 (source (origin
20438 (method git-fetch)
20439 (uri (git-reference
20440 (url "https://github.com/mamapanda/evil-traces.git")
20441 (commit commit)))
20442 (file-name (git-file-name name version))
20443 (sha256
20444 (base32
20445 "12p9lfxscs182vbd4dy0m5gacs3d4kyprbz5yndpwvl8g2qsqplz"))))
20446 (build-system emacs-build-system)
20447 (propagated-inputs
20448 `(("emacs-evil" ,emacs-evil)))
20449 (arguments
20450 `(#:phases
20451 (modify-phases %standard-phases
20452 (add-after 'unpack 'set-shell
20453 ;; Setting the SHELL environment variable is required for the tests
20454 ;; to find sh.
20455 (lambda _
20456 (setenv "SHELL" (which "sh"))
20457 #t)))
20458 #:tests? #t
20459 #:test-command '("make" "test")))
20460 (home-page "https://github.com/mamapanda/evil-traces")
20461 (synopsis "Visual hints for @code{evil-ex}")
20462 (description "This package adds visual hints to certain @code{ex}
20463 commands in @code{evil-mode}.")
20464 (license license:gpl3+))))
20465
20466 (define-public emacs-evil-tmux-navigator
20467 (package
20468 (name "emacs-evil-tmux-navigator")
20469 (version "0.1.5")
20470 (source
20471 (origin
20472 (method git-fetch)
20473 (uri
20474 (git-reference
20475 (url "https://github.com/keith/evil-tmux-navigator")
20476 (commit version)))
20477 (file-name (git-file-name name version))
20478 (sha256
20479 (base32
20480 "1na44rbc03sr5b4z9pvnps6n4nmrqcz58nywix9825l74a419ijx"))))
20481 (propagated-inputs
20482 `(("emacs-evil" ,emacs-evil)))
20483 (build-system emacs-build-system)
20484 (home-page "https://github.com/keith/evil-tmux-navigator")
20485 (synopsis
20486 "Navigate seamlessly between emacs windows and tmux panes")
20487 (description
20488 "This package lets you use C-h, C-j, C-k and C-l to navigate between
20489 Emacs windows and tmux panes.")
20490 (license license:expat)))
20491
20492 (define-public emacs-xclip
20493 (package
20494 (name "emacs-xclip")
20495 (version "1.10")
20496 (source
20497 (origin
20498 (method url-fetch)
20499 (uri (string-append "https://elpa.gnu.org/packages/"
20500 "xclip-" version ".el"))
20501 (sha256
20502 (base32 "0i3i9kwfg8qmhcmqhhnrb1kljgwkccv63s9q1mjwqfjldyfh8j8i"))))
20503 (build-system emacs-build-system)
20504 (home-page "http://elpa.gnu.org/packages/xclip.html")
20505 (synopsis "Copy and paste GUI clipboard from Emacs in text terminal")
20506 (description
20507 "This package allows Emacs to copy to and paste from the GUI clipboard
20508 when running in text terminal.
20509
20510 It can use external command-line tools for that, e.g., @command{xclip} or
20511 @command{xsel}, which you may need to install in order for the package to
20512 work.")
20513 (license license:gpl3+)))
20514
20515 (define-public emacs-xterm-color
20516 (package
20517 (name "emacs-xterm-color")
20518 (version "1.9")
20519 (source (origin
20520 (method git-fetch)
20521 (uri (git-reference
20522 (url "https://github.com/atomontage/xterm-color.git")
20523 (commit version)))
20524 (file-name (git-file-name name version))
20525 (sha256
20526 (base32
20527 "0i9ivc5xhl5y5v0l18kbhfg8s2abb9zaimyx951b8bc0f5as68xm"))))
20528 (build-system emacs-build-system)
20529 (home-page "https://github.com/atomontage/xterm-color")
20530 (synopsis "ANSI & xterm-256 color text property translator for Emacs")
20531 (description "@code{xterm-color.el} is an ANSI control sequence to
20532 text-property translator.")
20533 (license license:bsd-2)))
20534
20535 (define-public emacs-org-noter
20536 (package
20537 (name "emacs-org-noter")
20538 (version "1.4.1")
20539 (source
20540 (origin
20541 (method git-fetch)
20542 (uri (git-reference
20543 (url "https://github.com/weirdNox/org-noter.git")
20544 (commit version)))
20545 (file-name (git-file-name name version))
20546 (sha256
20547 (base32
20548 "1vwfpdi7hfkxx4vi0cwg7rvqby3i0mymzdkyzrqzv30dazmcjpag"))))
20549 (build-system emacs-build-system)
20550 (propagated-inputs `(("emacs-org" ,emacs-org)))
20551 (home-page "https://github.com/weirdNox/org-noter")
20552 (synopsis "Synchronized, Org-mode, document annotator")
20553 (description
20554 "This package lets you create notes that are kept in sync when you
20555 scroll through the document, but that are external to it---the notes
20556 themselves live in an Org-mode file. As such, this leverages the power of
20557 Org-mode (the notes may have outlines, latex fragments, babel, etc...) while
20558 acting like notes that are made @emph{in} the document.")
20559 (license license:gpl3+)))
20560
20561 (define-public emacs-org-redmine
20562 (let ((commit "e77d013bc3784947c46a5c53f03cd7d3c68552fc"))
20563 (package
20564 (name "emacs-org-redmine")
20565 (version (git-version "0.1" "1" commit))
20566 (source (origin
20567 (method git-fetch)
20568 (uri (git-reference
20569 (url "https://github.com/gongo/org-redmine.git")
20570 (commit commit)))
20571 (file-name (git-file-name name version))
20572 (sha256
20573 (base32
20574 "06miv3mf2a39vkf6mmm5ssc47inqh7dq82khsyc03anz4d4lj822"))))
20575 (build-system emacs-build-system)
20576 (home-page "https://github.com/gongo/org-redmine/")
20577 (synopsis "Redmine tools using Emacs")
20578 (description "This program provides an Emacs client for Redmine.")
20579 (license license:gpl3+))))
20580
20581 (define-public emacs-multi-term
20582 (let ((commit "0804b11e52b960c80f5cd0712ee1e53ae70d83a4"))
20583 (package
20584 (name "emacs-multi-term")
20585 (version "1.2")
20586 (source (origin
20587 (method git-fetch)
20588 (uri (git-reference
20589 (url "https://github.com/manateelazycat/multi-term.git")
20590 (commit commit)))
20591 (file-name (git-file-name name version))
20592 (sha256
20593 (base32
20594 "0apvidmvb7rv05qjnjhax42ma8wrimik5vxx620dlbv17svz7iyf"))))
20595 (build-system emacs-build-system)
20596 (inputs `(("zsh" ,zsh)))
20597 (home-page "https://github.com/manateelazycat/multi-term")
20598 (synopsis "Manage multiple terminal buffers in Emacs")
20599 (description
20600 "This package enhances @code{term.el} with the following features:
20601
20602 @enumerate
20603 @item Functions to switch between multiple terminal buffers
20604 @item List of keys to be intercepted by @code{emacs-multi-term} instead of by
20605 the underlying terminal
20606 @item Kills the unused buffer left after exiting the terminal
20607 @item Kills the running sub-processes along with the terminal when killing the
20608 it forcibly
20609 @item Dedicated window for debugging program.
20610 @end enumerate")
20611 (license license:gpl3+))))
20612
20613 (define-public emacs-elpher
20614 (package
20615 (name "emacs-elpher")
20616 (version "1.4.6")
20617 (source
20618 (origin
20619 (method git-fetch)
20620 (uri (git-reference
20621 (url "https://github.com/tgvaughan/elpher")
20622 (commit (string-append "v" version))))
20623 (file-name (git-file-name name version))
20624 (sha256
20625 (base32
20626 "07xansmhn4l0b9ghzf56vyx8cqg0q01aq3pz5ikx2i19v5f0rc66"))))
20627 (build-system emacs-build-system)
20628 (native-inputs
20629 `(("texinfo" ,texinfo)))
20630 (arguments
20631 `(#:phases
20632 (modify-phases %standard-phases
20633 (add-before 'install 'build-doc
20634 (lambda _
20635 (invoke "makeinfo" "elpher.texi"))))))
20636 (home-page "https://github.com/tgvaughan/elpher")
20637 (synopsis "Gopher client for Emacs")
20638 (description "Elpher is a full-featured gopher client for Emacs. Its
20639 features include intuitive keyboard and mouse-driven browsing, out-of-the-box
20640 compatibility with evil-mode, clickable web and gopher links in plain text,
20641 caching of visited sites, pleasant and configurable visualization of Gopher
20642 directories, direct visualisation of image files, jumping directly to links by
20643 name (with autocompletion), a simple bookmark management system and
20644 connections using TLS encryption.")
20645 (license license:gpl3+)))
20646
20647 (define-public emacs-zerodark-theme
20648 (package
20649 (name "emacs-zerodark-theme")
20650 (version "4.6")
20651 (source
20652 (origin
20653 (method git-fetch)
20654 (uri (git-reference
20655 (url "https://github.com/NicolasPetton/zerodark-theme")
20656 (commit version)))
20657 (file-name (git-file-name name version))
20658 (sha256
20659 (base32
20660 "0pfyd1iqs7l2ngwgvj9n0r9k1px7yl16h8n502xdyf0pprxcs4p6"))))
20661 (build-system emacs-build-system)
20662 (propagated-inputs
20663 `(("emacs-flycheck" ,emacs-flycheck)
20664 ("emacs-all-the-icons" ,emacs-all-the-icons)))
20665 (home-page
20666 "https://gitlab.petton.fr/nico/zerodark-theme")
20667 (synopsis
20668 "Dark, medium contrast theme for Emacs")
20669 (description
20670 "Zerodark is a dark theme inspired from One Dark and Niflheim.
20671 An optional mode-line format can be enabled with @code{zerodark-setup-modeline-format}.")
20672 (license license:gpl3+)))
20673
20674 (define-public emacs-gnus-alias
20675 (package
20676 (name "emacs-gnus-alias")
20677 (version "20150316")
20678 (source (origin
20679 (method git-fetch)
20680 (uri (git-reference
20681 (url "https://github.com/hexmode/gnus-alias.git")
20682 (commit "9447d3ccb4c0e75d0468899cccff7aa249657bac")))
20683 (file-name (git-file-name name version))
20684 (sha256
20685 (base32
20686 "1i278npayv3kfxxd1ypi9n83q5l402sbc1zkm11pf8g006ifqsp4"))))
20687 (build-system emacs-build-system)
20688 (home-page "https://melpa.org/#/gnus-alias")
20689 (synopsis "Alternative to @code{gnus-posting-styles}")
20690 (description "This Emacs add-on provides a simple mechanism to switch
20691 Identities when using a @code{message-mode} or a @code{message-mode} derived
20692 mode. Identities can include @code{From} and @code{Organisation} headers,
20693 extra headers, body and signature. Other features include:
20694
20695 @itemize
20696 @item Switch Identities in a message buffer.
20697 @item Access original message to help determine Identity of the followup/reply
20698 message.
20699 @item Act on a forwarded message as if it were a message being replied to.
20700 @item Start a new message with a given Identity pre-selected.
20701 @end itemize")
20702 (license license:gpl2+)))
20703
20704 (define-public emacs-ox-epub
20705 (package
20706 (name "emacs-ox-epub")
20707 (version "0.3")
20708 (source (origin
20709 (method git-fetch)
20710 (uri (git-reference
20711 (url "https://github.com/ofosos/ox-epub.git")
20712 (commit (string-append "v" version))))
20713 (file-name (git-file-name name version))
20714 (sha256
20715 (base32
20716 "057sqmvm8hwkhcg3yd4i8zz2xlqsqrpyiklyiw750s3i5mxdn0k7"))))
20717 (build-system emacs-build-system)
20718 (home-page "https://github.com/ofosos/ox-epub")
20719 (synopsis "Export org mode projects to EPUB")
20720 (description "@code{ox-epub} extends the (X)HTML exporter to generate
20721 @code{.epub} files directly from OrgMode. This will export EPUB version 2,
20722 which should give broad compatibility. It should also be relatiely easy to
20723 convert the resulting @code{.epub} to a @code{.mobi} file. Needs a working
20724 zip utility (default is @code{zip}).")
20725 (license license:gpl3+)))
20726
20727 (define-public emacs-ox-hugo
20728 (package
20729 (name "emacs-ox-hugo")
20730 (version "0.8")
20731 (source
20732 (origin
20733 (method git-fetch)
20734 (uri (git-reference
20735 (url "https://github.com/kaushalmodi/ox-hugo.git")
20736 (commit (string-append "v" version))))
20737 (file-name (git-file-name name version))
20738 (sha256
20739 (base32
20740 "11h464cyc28ld0b0zridgm4drydc1qjxbm1y24zrwlkyqqjk6yr7"))))
20741 (build-system emacs-build-system)
20742 (home-page "https://ox-hugo.scripter.co")
20743 (synopsis "Hugo markdown back-end for Org export engine")
20744 (description
20745 "Ox-hugo is an Org exporter backend that exports Org to Hugo-compatible
20746 Markdown, Blackfriday, and also generates the front-matter in TOML or YAML
20747 format.")
20748 (license license:gpl3+)))
20749
20750 (define-public emacs-ox-pandoc
20751 (package
20752 (name "emacs-ox-pandoc")
20753 (version "20180510")
20754 (source (origin
20755 (method git-fetch)
20756 (uri (git-reference
20757 (url "https://github.com/kawabata/ox-pandoc.git")
20758 (commit "aa37dc7e94213d4ebedb85c384c1ba35007da18e")))
20759 (file-name (git-file-name name version))
20760 (sha256
20761 (base32
20762 "0iibxplgdp34bpq1yll2gmqjd8d8lnqn4mqjvx6cdf0y438yr4jz"))))
20763 (build-system emacs-build-system)
20764 (inputs
20765 `(("pandoc" ,ghc-pandoc)))
20766 (propagated-inputs
20767 `(("emacs-dash" ,emacs-dash)
20768 ("emacs-ht" ,emacs-ht)))
20769 (home-page "https://github.com/kawabata/ox-pandoc")
20770 (synopsis "Org exporter for Pandoc")
20771 (description "@code{ox-pandoc} is an exporter for converting Org-mode
20772 files to numerous other formats via Pandoc.")
20773 (license license:gpl3+)))
20774
20775 (define-public emacs-wc-mode
20776 (package
20777 (name "emacs-wc-mode")
20778 (version "1.3")
20779 (source (origin
20780 (method git-fetch)
20781 (uri (git-reference
20782 (url "https://github.com/bnbeckwith/wc-mode.git")
20783 (commit (string-append "v" version))))
20784 (file-name (git-file-name name version))
20785 (sha256
20786 (base32
20787 "0pjlxv46zzqdq6q131jb306vqlg4sfqls1x8vag7mmfw462hafqp"))))
20788 (build-system emacs-build-system)
20789 (home-page "https://github.com/bnbeckwith/wc-mode")
20790 (synopsis "Running word count with goals (minor mode)")
20791 (description "@code{wc-mode} is a minor mode, providing a ‘wc’ function
20792 for Emacs buffers as well as a modeline addition with live word, line and
20793 character counts. Additionally, a user can set specific goals for adding or
20794 deleting words. These goals were partly inspired by 750words.com where the
20795 goal of the site is to encourage writing by setting a goal of 750 words at a
20796 time.")
20797 (license license:gpl3+)))
20798
20799 (define-public emacs-mastodon
20800 (package
20801 (name "emacs-mastodon")
20802 (version "0.9.0")
20803 (source (origin
20804 (method git-fetch)
20805 (uri (git-reference
20806 (url "https://github.com/jdenen/mastodon.el.git")
20807 (commit version)))
20808 (file-name (git-file-name name version))
20809 (sha256
20810 (base32
20811 "0hwax6y9dghqwsbnb6f1bnc7gh8xsh5cvcnayk2sn49x8b0zi5h1"))))
20812 (build-system emacs-build-system)
20813 (arguments
20814 `(#:phases
20815 (modify-phases %standard-phases
20816 ;; Move the source files to the top level, which is included in
20817 ;; the EMACSLOADPATH.
20818 (add-after 'unpack 'move-source-files
20819 (lambda _
20820 (let ((el-files (find-files "./lisp" ".*\\.el$")))
20821 (for-each (lambda (f)
20822 (rename-file f (basename f)))
20823 el-files))
20824 #t)))))
20825 (home-page "https://github.com/jdenen/mastodon.el")
20826 (synopsis "Emacs client for Mastodon")
20827 (description "@code{mastodon.el} is an Emacs client for Mastodon, the
20828 federated microblogging social network.")
20829 (license license:gpl3+)))
20830
20831 ;; The last release tarball is for version 0.6. We pick a commit close to
20832 ;; version 0.6.10, which doesn't have a release tarball.
20833 (define-public emacs-ebdb
20834 (let ((commit "2a87f5ed2a53e3a4e91e8c88ba5afc49f5e945df")
20835 (revision "0"))
20836 (package
20837 (name "emacs-ebdb")
20838 (version (git-version "0.6.10" revision commit))
20839 (source (origin
20840 (method git-fetch)
20841 (uri (git-reference
20842 (url "https://github.com/girzel/ebdb.git")
20843 (commit commit)))
20844 (file-name (git-file-name name version))
20845 (sha256
20846 (base32
20847 "0fidy7z0c86dpqiss97sg5s92fd3fj4bdl8pqqdgg2m00jx4mrjz"))))
20848 (build-system emacs-build-system)
20849 (home-page "https://github.com/girzel/ebdb")
20850 (synopsis "EIEIO port of BBDB, Emacs's contact-management package")
20851 (description "EBDB is a contact management/addressbook package for
20852 Emacs. It's a re-write of the Insidious Big Brother Database (BBDB) using
20853 Emacs Lisp's (relatively new) EIEIO object oriented libraries.")
20854 (license license:gpl3+))))
20855
20856 (define-public emacs-refactor
20857 (package
20858 (name "emacs-refactor")
20859 (version "0.4")
20860 (source (origin
20861 (method git-fetch)
20862 (uri (git-reference
20863 (url "https://github.com/Wilfred/emacs-refactor.git")
20864 (commit version)))
20865 (file-name (git-file-name name version))
20866 (sha256
20867 (base32
20868 "1yky7vlv91501xb43xk19rr8mxlvrsxhawsc98jivf64nad5dqay"))))
20869 (build-system emacs-build-system)
20870 (propagated-inputs
20871 `(("emacs-dash" ,emacs-dash)
20872 ("emacs-s" ,emacs-s)
20873 ("emacs-popup" ,emacs-popup)
20874 ("emacs-list-utils" ,emacs-list-utils)
20875 ("emacs-iedit" ,emacs-iedit)))
20876 (home-page "https://github.com/Wilfred/emacs-refactor/")
20877 (synopsis "Language-specific refactoring in Emacs")
20878 (description "Emacs Refactor (EMR) is a framework for providing
20879 language-specific refactoring in Emacs. It includes refactoring commands for
20880 a variety of languages, including elisp itself.")
20881 (license license:gpl3+)))
20882
20883 (define-public emacs-flyspell-correct
20884 (package
20885 (name "emacs-flyspell-correct")
20886 (version "0.5")
20887 (source
20888 (origin
20889 (method git-fetch)
20890 (uri (git-reference
20891 (url "https://github.com/d12frosted/flyspell-correct.git")
20892 (commit (string-append "v" version))))
20893 (file-name (git-file-name name version))
20894 (sha256
20895 (base32
20896 "1r9hmz7sihhy7npv6nxp04sy57glzmfax5d67mwn96fdnc0yhlnd"))))
20897 (build-system emacs-build-system)
20898 (propagated-inputs
20899 `(("emacs-helm" ,emacs-helm)
20900 ("emacs-ivy" ,emacs-ivy)
20901 ("emacs-popup" ,emacs-popup)))
20902 (home-page
20903 "https://github.com/d12frosted/flyspell-correct")
20904 (synopsis
20905 "Correcting words with flyspell via custom interfaces")
20906 (description
20907 "This package provides functionality for correcting words via custom
20908 interfaces. Several interfaces are supported beside the classic ido: popup,
20909 helm and ivy.")
20910 (license license:gpl3+)))
20911
20912 (define-public emacs-org-emms
20913 (let ((commit "07a8917f3d628c32e5de1dbd118ac08203772533")
20914 (revision "1"))
20915 (package
20916 (name "emacs-org-emms")
20917 (version
20918 (git-version "0.1" revision commit))
20919 (source
20920 (origin
20921 (method git-fetch)
20922 (uri (git-reference
20923 (url "https://gitlab.com/jagrg/org-emms.git")
20924 (commit commit)))
20925 (file-name (git-file-name name commit))
20926 (sha256
20927 (base32
20928 "1sqsm5sv311xfdk4f4rsnvprdf2v2vm7l1b3vqi7pc0g8adlnw1d"))))
20929 (build-system emacs-build-system)
20930 (propagated-inputs
20931 `(("emms" ,emacs-emms)
20932 ("emacs-org" ,emacs-org)))
20933 (home-page "https://gitlab.com/jagrg/org-emms")
20934 (synopsis "Play multimedia files from org-mode")
20935 (description
20936 "This package provides a new org link type for playing back multimedia
20937 files from org-mode using EMMS, The Emacs Multimedia System. If the link
20938 contains a track position, playback will start at the specified position.")
20939 (license license:gpl3+))))
20940
20941 (define-public emacs-org-jira
20942 (package
20943 (name "emacs-org-jira")
20944 (version "4.3.1")
20945 (source
20946 (origin
20947 (method git-fetch)
20948 (uri (git-reference
20949 (url "https://github.com/ahungry/org-jira.git")
20950 (commit version)))
20951 (file-name (git-file-name name version))
20952 (sha256
20953 (base32
20954 "1l80r2a9zzbfk2c78i40h0ww79vm9v4j6xi2h5i4w9kqh10rs6h2"))))
20955 (build-system emacs-build-system)
20956 (propagated-inputs
20957 `(("emacs-request" ,emacs-request)
20958 ("emacs-s" ,emacs-s)
20959 ("emacs-dash" ,emacs-dash)
20960 ("emacs-org" ,emacs-org)))
20961 (home-page "https://github.com/ahungry/org-jira")
20962 (synopsis "Syncing between Jira and Org-mode")
20963 (description
20964 "This package provides an extension to org-mode for syncing issues with
20965 JIRA issue servers.")
20966 (license license:gpl3+)))
20967
20968 (define-public emacs-systemd-mode
20969 (package
20970 (name "emacs-systemd-mode")
20971 (version "1.6")
20972 (source (origin
20973 (method git-fetch)
20974 (uri (git-reference
20975 (url "https://github.com/holomorph/systemd-mode.git")
20976 (commit (string-append "v" version))))
20977 (file-name (git-file-name name version))
20978 (sha256
20979 (base32
20980 "0ylgnvpfindg4cxccbqy02ic7p0i9rygf1w16dm1filwhbqvjplq"))))
20981 (build-system emacs-build-system)
20982 (arguments '(#:include '("\\.el$" "\\.txt$")))
20983 (home-page "https://github.com/holomorph/systemd-mode")
20984 (synopsis
20985 "Major mode for editing systemd units")
20986 (description
20987 "Major mode for editing systemd units in GNU Emacs.")
20988 (license license:gpl3+)))
20989
20990 (define-public emacs-ssh-config-mode
20991 (let ((commit "4c1dfa57d452cb5654453bf186c8ff63e1e71b56")
20992 (revision "1"))
20993 (package
20994 (name "emacs-ssh-config-mode")
20995 (version (git-version "8.0" revision commit))
20996 (source
20997 (origin
20998 (method git-fetch)
20999 (uri
21000 (git-reference
21001 (url "https://github.com/jhgorrell/ssh-config-mode-el.git")
21002 (commit commit)))
21003 (file-name (git-file-name name commit))
21004 (sha256
21005 (base32
21006 "0crglfdazzckizbwzmgl2rn6j85avfzkr1q7ijxd17rp2anvr9bd"))))
21007 (build-system emacs-build-system)
21008 (arguments '(#:include '("\\.el$" "\\.txt$")))
21009 (home-page
21010 "https://github.com/jhgorrell/ssh-config-mode-el")
21011 (synopsis
21012 "Mode for fontification of ~/.ssh/config")
21013 (description
21014 "This package fontifies the ssh config keywords and creates
21015 keybindings for skipping from host section to host section.")
21016 (license license:gpl3+))))
21017
21018 (define-public emacs-ssh-agency
21019 (package
21020 (name "emacs-ssh-agency")
21021 (version "0.4")
21022 (source (origin
21023 (method git-fetch)
21024 (uri (git-reference
21025 (url "https://github.com/magit/ssh-agency.git")
21026 (commit version)))
21027 (file-name (git-file-name name version))
21028 (sha256
21029 (base32
21030 "0895n7bss4wdydic1gflr03f2cwdyqywl16gvb599lpn288jhwvz"))))
21031 (build-system emacs-build-system)
21032 (propagated-inputs
21033 `(("dash" ,emacs-dash)))
21034 (home-page "https://github.com/magit/ssh-agency")
21035 (synopsis "Manage @code{ssh-agent} from Emacs")
21036 (description
21037 "This package provides functions to startup @code{ssh-agent}, set the
21038 needed environment variables in Emacs, and prompt for passphrases from within
21039 Emacs so that pushes and pulls from @code{magit} will not require entering any
21040 passphrase.
21041
21042 It can also be useful on Unix-like platforms to delay having to enter your
21043 passphrase until the first time you push to a remote.")
21044 (license license:gpl3+)))
21045
21046 (define-public emacs-tao-theme
21047 (let ((commit "c5107fbe7e752f4e58c2d2147ff18a1ebb12937c")
21048 (revision "0"))
21049 (package
21050 (name "emacs-tao-theme")
21051 (version (git-version "0" revision commit))
21052 (source
21053 (origin
21054 (method git-fetch)
21055 (uri (git-reference
21056 (url "https://github.com/11111000000/tao-theme-emacs.git")
21057 (commit commit)))
21058 (file-name (git-file-name name version))
21059 (sha256
21060 (base32
21061 "07vvlglmkj87hpxz79s3bl2cjn71vain57fdxs7j9vlr5jkchxwn"))))
21062 (build-system emacs-build-system)
21063 (home-page "https://github.com/11111000000/tao-theme-emacs")
21064 (synopsis "Parameterized uncolored color themes for Emacs")
21065 (description
21066 "This package provides two parameterized uncolored color themes for
21067 Emacs: @code{tao-yin} and @code{tao-yang}. The default
21068 @code{tao-theme-scale-fn} is @code{tao-theme-golden-scale}.
21069
21070 You can customize: @code{tao-theme-scale-fn}, that returns 16 2-digit numbers;
21071 @code{tao-theme-scale-filter-fn}, for edge filter; and
21072 @code{tao-theme-use-height}.")
21073 (license license:gpl3+))))
21074
21075 (define-public emacs-almost-mono-themes
21076 (let ((commit "c3a85c1a665530a5d830665969725cdba8eceb75")
21077 (revision "0"))
21078 (package
21079 (name "emacs-almost-mono-themes")
21080 (version (git-version "0" revision commit))
21081 (source
21082 (origin
21083 (method git-fetch)
21084 (uri (git-reference
21085 (url "https://github.com/cryon/almost-mono-themes.git")
21086 (commit commit)))
21087 (file-name (git-file-name name version))
21088 (sha256
21089 (base32
21090 "034k32xkr5ma415hlkbl35z0jxc4sa1inf87hg3y6lrlfl83fyjh"))))
21091 (build-system emacs-build-system)
21092 (home-page "https://github.com/cryon/almost-mono-themes")
21093 (synopsis "Almost monochromatic themes for emacs in a few variants")
21094 (description
21095 "This package provides a collection of almost monochrome Emacs themes:
21096 @code{almost-mono-black} and @code{almost-mono-white}.")
21097 (license license:gpl3+))))
21098
21099 (define-public emacs-quasi-monochrome
21100 (let ((commit "68060dbbc0bbfe4924387392874186c5a29bb434")
21101 (revision "0"))
21102 (package
21103 (name "emacs-quasi-monochrome")
21104 (version (git-version "1.2" revision commit))
21105 (source
21106 (origin
21107 (method git-fetch)
21108 (uri (git-reference
21109 (url "https://github.com/lbolla/emacs-quasi-monochrome.git")
21110 (commit commit)))
21111 (file-name (git-file-name name version))
21112 (sha256
21113 (base32
21114 "0zp2xr0bjfqrpb0bqczzick1vvbjmipjavrdi70kw6a9caynvq22"))))
21115 (build-system emacs-build-system)
21116 (home-page "https://github.com/lbolla/emacs-quasi-monochrome")
21117 (synopsis "Dark color theme for Emacs")
21118 (description
21119 "This package provides a dark color theme with a black background, high
21120 contrast and few colors.")
21121 (license license:gpl3+))))
21122
21123 (define-public emacs-doom-themes
21124 (let ((commit "54039c5171e3f8c9cef1f82122549b66cd8c8f7b")
21125 (revision "4")
21126 (version "2.1.6"))
21127 (package
21128 (name "emacs-doom-themes")
21129 (version (git-version version revision commit))
21130 (source (origin
21131 (method git-fetch)
21132 (uri (git-reference
21133 (url "https://github.com/hlissner/emacs-doom-themes.git")
21134 (commit commit)))
21135 (file-name (git-file-name name version))
21136 (sha256
21137 (base32 "1iwdjq4q2gkhi6jwas3ywgmdz5dg14sfb3fzhqd7wih6j3i2l3cr"))))
21138 (build-system emacs-build-system)
21139 (native-inputs
21140 `(("emacs-ert-runner" ,emacs-ert-runner)))
21141 (arguments
21142 `(#:tests? #t
21143 #:test-command '("ert-runner")
21144 #:modules ((guix build emacs-build-system)
21145 (guix build utils)
21146 (guix build emacs-utils)
21147 (srfi srfi-1))
21148 #:phases
21149 (modify-phases %standard-phases
21150 (add-after 'unpack 'move-themes
21151 (lambda _
21152 ;; Move the source files to the top level, which is in the
21153 ;; EMACSLOADPATH.
21154 (for-each (lambda (f)
21155 (rename-file f (basename f)))
21156 (find-files "./themes" ".*\\.el$"))
21157 #t))
21158 ;; There is a byte-code overflow issue in the latest checkout
21159 ;; which affects byte-compilation for several (read `most') theme
21160 ;; files. In order to cope with this issue, we disable
21161 ;; byte-compilation until this issue is resolved.
21162 ;; <https://github.com/hlissner/emacs-doom-themes/issues/314>
21163 ;;
21164 ;; NOTE: Byte-comp has been disabled in/after commit 9cd6872.
21165 ;; However our method of selective disabling is preferential to
21166 ;; just widely disabling byte-compilation.
21167 (add-after 'move-themes 'disable-breaking-compilation
21168 (lambda _
21169 (for-each (lambda (file)
21170 (chmod file #o600) ; needed to write changes.
21171 (emacs-batch-disable-compilation file))
21172 (cons "doom-themes-ext-neotree.el"
21173 ;; NOTE: When updating this package, determine
21174 ;; whether changed theme files can byte-compile.
21175 ;; If they can successfully byte-compile, add them
21176 ;; to this list of exceptions.
21177 (lset-difference string-contains
21178 (find-files "." ".*-theme.el")
21179 '("material"
21180 "snazzy"
21181 "tomorrow-day"))))
21182 #t)))))
21183 (synopsis "Wide collection of color themes for Emacs")
21184 (description "Emacs-doom-themes contains numerous popular color themes for
21185 Emacs that integrate with major modes like Org-mode.")
21186 (home-page "https://github.com/hlissner/emacs-doom-themes")
21187 (license license:expat))))
21188
21189 (define-public emacs-modus-operandi-theme
21190 (package
21191 (name "emacs-modus-operandi-theme")
21192 (version "0.8.1")
21193 (source
21194 (origin
21195 (method url-fetch)
21196 (uri (string-append "https://elpa.gnu.org/packages/"
21197 "modus-operandi-theme-" version ".el"))
21198 (sha256
21199 (base32 "0i8s6blkhx53m1jk1bblqs7fwlbn57xkxxhsp9famcj5m0xyfimb"))))
21200 (build-system emacs-build-system)
21201 (home-page "https://gitlab.com/protesilaos/modus-themes")
21202 (synopsis "Accessible light theme (WCAG AAA)")
21203 (description
21204 "Modus operandi is the light version of the Modus accessible themes for
21205 GNU Emacs. The contrast ratio between foreground and background values should
21206 always be greater than 7:1, which conforms with the WCAG AAA accessibility
21207 standard. This is the highest standard of its kind.")
21208 (license license:gpl3+)))
21209
21210 (define-public emacs-modus-vivendi-theme
21211 (package
21212 (name "emacs-modus-vivendi-theme")
21213 (version "0.8.1")
21214 (source
21215 (origin
21216 (method url-fetch)
21217 (uri (string-append "https://elpa.gnu.org/packages/"
21218 "modus-vivendi-theme-" version ".el"))
21219 (sha256
21220 (base32 "121nlr5w58j4q47rh9xjjf9wzb97yl2m1n2l6g58ck4vnarwndl1"))))
21221 (build-system emacs-build-system)
21222 (home-page "https://gitlab.com/protesilaos/modus-themes")
21223 (synopsis "Accessible dark theme (WCAG AAA)")
21224 (description
21225 "Modus vivendi is the dark version of the Modus accessible themes for GNU
21226 Emacs. The contrast ratio between foreground and background values should
21227 always be greater than 7:1, which conforms with the WCAG AAA accessibility
21228 standard. This is the highest standard of its kind.")
21229 (license license:gpl3+)))
21230
21231 (define-public emacs-modus-themes
21232 (deprecated-package "emacs-modus-themes" emacs-modus-operandi-theme))
21233
21234 (define-public emacs-punpun-theme
21235 (let ((commit "2f78125609277b2478abdebd8f9d5ee10a823b65")
21236 (revision "0"))
21237 (package
21238 (name "emacs-punpun-theme")
21239 (version (git-version "0" revision commit))
21240 (source
21241 (origin
21242 (method git-fetch)
21243 (uri (git-reference
21244 (url "https://github.com/wasamasa/punpun-theme.git")
21245 (commit commit)))
21246 (file-name (git-file-name name version))
21247 (sha256
21248 (base32
21249 "1sgxrj3igzq86h3whfymxf4qzv9kpvcrlhbvjmnp7fwrplys0n7d"))))
21250 (build-system emacs-build-system)
21251 (home-page "https://github.com/wasamasa/punpun-theme")
21252 (synopsis "Bleak Emacs theme")
21253 (description
21254 "A bleak theme. Uses shades of gray and the occasional splash of
21255 color. Designed for 256-color terminals. Comes in light and dark!")
21256 (license license:gpl3+))))
21257
21258 (define-public emacs-spacemacs-theme
21259 (let ((commit "f79c40fb241e204539fde97200abae91e828e585")
21260 (revision "1"))
21261 (package
21262 (name "emacs-spacemacs-theme")
21263 (version (git-version "0" revision commit)) ;no release yet
21264 (source
21265 (origin
21266 (method git-fetch)
21267 (uri (git-reference
21268 (url "https://github.com/nashamri/spacemacs-theme.git")
21269 (commit commit)))
21270 (file-name (git-file-name name version))
21271 (sha256
21272 (base32 "1l2kkiyrskkpx8f901v0wrzaah1wjg15zdyv88spj3mh3hwd3b6n"))))
21273 (build-system emacs-build-system)
21274 (home-page "https://github.com/nashamri/spacemacs-theme")
21275 (synopsis
21276 "Light and dark theme for spacemacs that supports GUI and terminal")
21277 (description
21278 "Spacemacs theme is an Emacs color theme that started as
21279 a theme for Spacemacs. The theme comes with dark and light variants
21280 and it should work well with 256 color terminals.")
21281 (license license:gpl3+))))
21282
21283 (define-public emacs-elixir-mode
21284 (package
21285 (name "emacs-elixir-mode")
21286 (version "2.3.1")
21287 (source
21288 (origin
21289 (method git-fetch)
21290 (uri (git-reference
21291 (url "https://github.com/elixir-editors/emacs-elixir.git")
21292 (commit (string-append "v" version))))
21293 (file-name (git-file-name name version))
21294 (sha256
21295 (base32 "06bi68x49v6f7flpz279mm4jpg31ll3s274givm3pvr8slcxs6xg"))))
21296 (build-system emacs-build-system)
21297 (propagated-inputs
21298 `(("emacs-pkg-info" ,emacs-pkg-info)))
21299 (home-page
21300 "https://github.com/elixir-editors/emacs-elixir")
21301 (synopsis "Major mode for editing Elixir files")
21302 (description
21303 "Elixir-Mode provides font-locking, indentation and navigation support
21304 for the Elixir programming language.")
21305 (license license:gpl3+)))
21306
21307 (define-public emacs-dimmer
21308 (package
21309 (name "emacs-dimmer")
21310 (version "0.3.0")
21311 (source
21312 (origin
21313 (method git-fetch)
21314 (uri (git-reference
21315 (url "https://github.com/gonewest818/dimmer.el.git")
21316 (commit version)))
21317 (file-name (git-file-name name version))
21318 (sha256
21319 (base32 "1jv9rrv15nb5hpwcaqlpjj932gyisrkwbv11czkg3v0bn7qn6yif"))))
21320 (build-system emacs-build-system)
21321 (home-page "https://github.com/gonewest818/dimmer.el")
21322 (synopsis "Visually highlights the selected buffer in Emacs")
21323 (description "Dimmer provides a minor mode that indicates which buffer is
21324 currently active by dimming the faces in the other buffers. It does this
21325 nondestructively, and computes the dimmed faces dynamically such that your
21326 overall color scheme is shown in a muted form without requiring you to define
21327 what is a \"dim\" version of every face.")
21328 (license license:gpl3+)))
21329
21330 (define-public emacs-minibuffer-line
21331 (package
21332 (name "emacs-minibuffer-line")
21333 (version "0.1")
21334 (source
21335 (origin
21336 (method url-fetch)
21337 (uri (string-append
21338 "https://elpa.gnu.org/packages/minibuffer-line-"
21339 version
21340 ".el"))
21341 (sha256
21342 (base32 "1ny4iirp26na5118wfgxlv6fxlrdclzdbd9m0lkrv51w0qw7spil"))))
21343 (build-system emacs-build-system)
21344 (home-page "https://elpa.gnu.org/packages/minibuffer-line.html")
21345 (synopsis "Display status info in the minibuffer window")
21346 (description
21347 "This package lets you display various status information in the
21348 minibuffer window instead of the mode-line. Of course, this is only displayed
21349 when the minibuffer window is not already used for other things (e.g. a
21350 minibuffer or an each area message).
21351
21352 The contents and aspect is controlled by the @code{minibuffer-line-format}
21353 variable and the @code{minibuffer-line} face.")
21354 (license license:gpl3+)))
21355
21356 (define-public emacs-eshell-prompt-extras
21357 (package
21358 (name "emacs-eshell-prompt-extras")
21359 (version "1.0")
21360 (home-page "https://github.com/zwild/eshell-prompt-extras")
21361 (source
21362 (origin
21363 (method git-fetch)
21364 (uri (git-reference
21365 (url home-page)
21366 (commit version)))
21367 (file-name (git-file-name name version))
21368 (sha256
21369 (base32
21370 "0gb07mns23dgqqr6qfy7d6ndizy15sqgbgfaig6k5xbjnwi02v9g"))))
21371 (build-system emacs-build-system)
21372 (synopsis "Display extra information and color for your Eshell prompt")
21373 (description "This library displays various customizable elements for
21374 @code{eshell} prompts: remote user, remote host, python virtual environment
21375 info, git branch, git dirty info and git unpushed number. Multiple themes are
21376 available.")
21377 (license license:gpl3+)))
21378
21379 (define-public emacs-eshell-did-you-mean
21380 (package
21381 (name "emacs-eshell-did-you-mean")
21382 (version "0.1")
21383 (home-page "https://github.com/xuchunyang/eshell-did-you-mean")
21384 (source
21385 (origin
21386 (method git-fetch)
21387 (uri (git-reference
21388 (url home-page)
21389 (commit (string-append "v" version))))
21390 (file-name (git-file-name name version))
21391 (sha256
21392 (base32
21393 "0v0wshck5n4hspcv1zk1g2nm6xiigcjp16lx0dc8wzkl6ymljvbg"))))
21394 (build-system emacs-build-system)
21395 (synopsis "Display suggestions on 'command not found' in Eshell")
21396 (description "This library adds a list of 'Did you mean...' suggestions
21397 when the command was not found in Eshell. The suggestions are found after the
21398 commands that bear resemblance to the input command.")
21399 (license license:gpl3+)))
21400
21401 (define-public emacs-unfill
21402 (package
21403 (name "emacs-unfill")
21404 (version "0.2")
21405 (home-page "https://github.com/purcell/unfill")
21406 (source
21407 (origin
21408 (method git-fetch)
21409 (uri (git-reference
21410 (url home-page)
21411 (commit version)))
21412 (file-name (git-file-name name version))
21413 (sha256
21414 (base32 "0wyradin5igp25nsd3n22i2ppxhmy49ac1iq1w2715v8pfmiydnc"))))
21415 (build-system emacs-build-system)
21416 (synopsis "Inverse of Emacs' @code{fill-paragraph} and @code{fill-region}")
21417 (description
21418 "The functions in this package provide the inverse of Emacs'
21419 @code{fill-paragraph} and @code{fill-region}.")
21420 (license license:gpl3+)))
21421
21422 (define-public emacs-windower
21423 (package
21424 (name "emacs-windower")
21425 (version "0.0.1")
21426 (home-page "https://gitlab.com/ambrevar/emacs-windower")
21427 (source
21428 (origin
21429 (method git-fetch)
21430 (uri (git-reference
21431 (url home-page)
21432 (commit version)))
21433 (file-name (git-file-name name version))
21434 (sha256
21435 (base32 "0h24gb1ip0czfasxm8wwcc3v19g7mznzw2sxkmmfb5iis59p7dfy"))))
21436 (build-system emacs-build-system)
21437 (synopsis "Helper functions for window manipulation in Emacs")
21438 (description
21439 "This package provides helper functions for window manipulation in Emacs,
21440 such as:
21441
21442 @itemize
21443 @item switch to last buffer,
21444 @item toggle single window display,
21445 @item toggle between horizontal and vertical splits,
21446 @item move borders more naturally,
21447 @item swap windows à-la @code{windmove}.
21448 @end itemize")
21449 (license license:gpl3+)))
21450
21451 (define-public emacs-flycheck-cpplint
21452 (let ((commit "1d8a090861572258ab704915263feeb3a436c3d2")
21453 (revision "1"))
21454 (package
21455 (name "emacs-flycheck-cpplint")
21456 (version (git-version "0.1" revision commit))
21457 (source
21458 (origin
21459 (method git-fetch)
21460 (uri (git-reference
21461 (url "https://github.com/flycheck/flycheck-google-cpplint")
21462 (commit commit)))
21463 (file-name (git-file-name name version))
21464 (sha256
21465 (base32 "0l6sg83f6z8x2alnblpv03rj442sbnkkkcbf8i0agjmx3713a5yx"))))
21466 (build-system emacs-build-system)
21467 (arguments
21468 `(#:phases
21469 (modify-phases %standard-phases
21470 (add-after 'unpack 'set-cpplint-path
21471 (lambda _
21472 (substitute* "flycheck-google-cpplint.el"
21473 (("\"cpplint.py\"")
21474 (string-append "\"" (which "cpplint") "\"")))
21475 #t)))))
21476 (inputs
21477 `(("cpplint" ,cpplint)))
21478 (propagated-inputs
21479 `(("flycheck-mode" ,emacs-flycheck)))
21480 (synopsis "Google C++ checker for Flycheck")
21481 (description "This package provides a interface for @code{cpplint} over
21482 Flycheck plugin. @code{cpplint} is a static code checker for C++, following
21483 Google guidelines.")
21484 (home-page "https://github.com/flycheck/flycheck-google-cpplint")
21485 (license license:gpl3+))))
21486
21487 (define-public emacs-helm-fish-completion
21488 (package
21489 (name "emacs-helm-fish-completion")
21490 (version "0.2")
21491 (home-page "https://github.com/emacs-helm/helm-fish-completion")
21492 (source
21493 (origin
21494 (method git-fetch)
21495 (uri (git-reference
21496 (url home-page)
21497 (commit version)))
21498 (file-name (git-file-name name version))
21499 (sha256
21500 (base32 "089gp2k22xwn33z8brpyb7r18vpyralq2cwxj1xsc8b2sj9s4896"))))
21501 (build-system emacs-build-system)
21502 (propagated-inputs
21503 `(("helm" ,emacs-helm)
21504 ("fish-completion" ,emacs-fish-completion)))
21505 (synopsis "Helm interface for Emacs fish-completion")
21506 (description "Helm Fish Completion is a Helm interface for Emacs
21507 fish-completion. It can be used in both Eshell and M-x shell.")
21508 (license license:gpl3+)))
21509
21510 (define-public emacs-telega
21511 ;; This package has versions newer than indicated on MELPA.
21512 ;; Get the current version from `telega-version` in telega.el.
21513 ;; or by running M-x telega-version.
21514 (let ((commit "ae09592498ce380e57fbb76725fd4c89ae248864")
21515 (revision "0")
21516 (version "0.6.0"))
21517 (package
21518 (name "emacs-telega")
21519 (version (git-version version revision commit))
21520 (source
21521 (origin
21522 (method git-fetch)
21523 (uri (git-reference
21524 (url "https://github.com/zevlg/telega.el.git")
21525 (commit commit)))
21526 (sha256
21527 (base32
21528 "0mv6i80958d9crzspzik5xh5g8326115bvg2frgv0dp9p6rm86m3"))
21529 (patches (search-patches "emacs-telega-test-env.patch"))
21530 (file-name (git-file-name name version))))
21531 (build-system gnu-build-system)
21532 (arguments
21533 `(#:modules ((guix build gnu-build-system)
21534 ((guix build emacs-build-system) #:prefix emacs:)
21535 (guix build utils)
21536 (guix build emacs-utils))
21537 #:imported-modules (,@%gnu-build-system-modules
21538 (guix build emacs-build-system)
21539 (guix build emacs-utils))
21540 #:test-target "test"
21541 #:make-flags (list "WITH_VOIP=t")
21542 #:phases
21543 (modify-phases %standard-phases
21544 (add-after 'unpack 'prefix-patch
21545 (lambda _
21546 (substitute* "server/Makefile"
21547 (("CC=cc")
21548 "CC=gcc")
21549 (("INSTALL_PREFIX=\\$\\(HOME\\)/.telega")
21550 (string-append "INSTALL_PREFIX=" (assoc-ref %outputs "out")
21551 "/bin"))
21552 ;; Manually invoke `run_tests.py` after install phase.
21553 (("python3 run_tests.py")
21554 ""))
21555 #t))
21556 (add-after 'unpack 'telega-paths-patch
21557 (lambda* (#:key inputs #:allow-other-keys)
21558 ;; Hard-code paths to `ffplay` and `ffmpeg`.
21559 (let ((ffplay-bin (string-append (assoc-ref inputs "ffmpeg")
21560 "/bin/ffplay"))
21561 (ffmpeg-bin (string-append (assoc-ref inputs "ffmpeg")
21562 "/bin/ffmpeg")))
21563 (substitute* "telega-ffplay.el"
21564 (("\\(executable-find \"ffplay\"\\)")
21565 (string-append
21566 "(and (file-executable-p \"" ffplay-bin "\")"
21567 "\"" ffplay-bin "\")"))
21568 (("\\(executable-find \"ffmpeg\"\\)")
21569 (string-append
21570 "(and (file-executable-p \"" ffmpeg-bin "\")"
21571 "\"" ffmpeg-bin "\")"))))
21572 ;; Modify telega-util to reflect unique dir name in
21573 ;; `telega-install-data' phase.
21574 (substitute* "telega-util.el"
21575 (("\\(concat \"etc/\" filename\\) telega--lib-directory")
21576 "(concat \"telega-data/\" filename)
21577 (locate-dominating-file telega--lib-directory
21578 \"telega-data\")"))
21579 #t))
21580 ;; The server test suite has a hardcoded path.
21581 ;; Reset this behavior to use the proper path.
21582 (add-after 'unpack 'server-suite-patch
21583 (lambda _
21584 (substitute* "server/run_tests.py"
21585 (("~/.telega/telega-server")
21586 (string-append (assoc-ref %outputs "out")
21587 "/bin/telega-server")))
21588 #t))
21589 (add-after 'install 'run-server-suite
21590 (lambda _
21591 (invoke "python3" "server/run_tests.py")
21592 #t))
21593 (delete 'configure)
21594 ;; Build emacs-side using `emacs-build-system'
21595 (add-after 'compress-documentation 'emacs-add-source-to-load-path
21596 (assoc-ref emacs:%standard-phases 'add-source-to-load-path))
21597 (add-after 'emacs-add-source-to-load-path 'emacs-install
21598 (assoc-ref emacs:%standard-phases 'install))
21599 ;; This step installs subdir /etc, which contains images, sounds and
21600 ;; various other data, next to the site-lisp dir.
21601 (add-after 'emacs-install 'telega-install-data
21602 (lambda* (#:key outputs #:allow-other-keys)
21603 (copy-recursively
21604 "etc"
21605 (string-append (assoc-ref outputs "out")
21606 "/share/emacs/telega-data/"))
21607 #t))
21608 (add-after 'telega-install-data 'emacs-build
21609 (assoc-ref emacs:%standard-phases 'build))
21610 (add-after 'emacs-build 'emacs-make-autoloads
21611 (assoc-ref emacs:%standard-phases 'make-autoloads)))))
21612 (inputs
21613 `(("ffmpeg" ,ffmpeg))) ; mp4/gif support.
21614 (propagated-inputs
21615 `(("emacs-visual-fill-column" ,emacs-visual-fill-column)
21616 ("emacs-company" ,emacs-company)
21617 ("libwebp" ,libwebp))) ; sticker support.
21618 (native-inputs
21619 `(("tdlib" ,tdlib)
21620 ("libtgvoip" ,libtgvoip) ; VoIP support.
21621 ;; Use Emacs with wide ints on 32-bit architectures.
21622 ("emacs" ,(match (%current-system)
21623 ((or "i686-linux" "armhf-linux")
21624 emacs-wide-int)
21625 (_
21626 emacs)))
21627 ("python" ,python)))
21628 (synopsis "GNU Emacs client for the Telegram messenger")
21629 (description
21630 "Telega is a full-featured, unofficial GNU Emacs-based client for the
21631 Telegram messaging platform.")
21632 (home-page "https://github.com/zevlg/telega.el")
21633 (license license:gpl3+))))
21634
21635 (define-public emacs-doom-modeline
21636 (package
21637 (name "emacs-doom-modeline")
21638 (version "2.8.2")
21639 (source (origin
21640 (method git-fetch)
21641 (uri (git-reference
21642 (url "https://github.com/seagle0128/doom-modeline.git")
21643 (commit (string-append "v" version))))
21644 (sha256
21645 (base32
21646 "11srz1mr821axggs2jcmdhihxx09a2dniqv3n039wbdfaimfaidz"))
21647 (file-name (git-file-name name version))))
21648 (build-system emacs-build-system)
21649 (arguments
21650 `(#:test-command '("ert-runner")))
21651 (native-inputs `(("emacs-ert-runner" ,emacs-ert-runner)))
21652 (propagated-inputs
21653 `(("emacs-all-the-icons" ,emacs-all-the-icons)
21654 ("emacs-shrink-path" ,emacs-shrink-path)))
21655 (synopsis "Fancy and fast mode-line inspired by minimalism design")
21656 (description "Doom modeline is a complete modeline for GNU Emacs inspired
21657 by the Doom theme collection. This modeline features support for mode-specific
21658 icon support, git integration, and several other utilities.")
21659 (home-page "https://github.com/seagle0128/doom-modeline/")
21660 (license license:gpl3+)))
21661
21662 (define-public emacs-shrink-path
21663 (package
21664 (name "emacs-shrink-path")
21665 (version "0.3.1")
21666 (source
21667 (origin
21668 (method git-fetch)
21669 (uri (git-reference
21670 (url "https://gitlab.com/bennya/shrink-path.el.git")
21671 (commit (string-append "v" version))))
21672 (sha256
21673 (base32
21674 "0kx0c4syd7k6ff9j463bib32pz4wq0rzjlg6b0yqnymlzfr1mbki"))
21675 (file-name (git-file-name name version))))
21676 (build-system emacs-build-system)
21677 (propagated-inputs
21678 `(("emacs-s" ,emacs-s)
21679 ("emacs-dash" ,emacs-dash)
21680 ("emacs-f" ,emacs-f)))
21681 (home-page "https://gitlab.com/bennya/shrink-path.el")
21682 (synopsis "Fish-style path truncation in emacs-lisp")
21683 (description "This package provides utility functions that allow for
21684 Fish-style truncated directories in eshell and various modelines.")
21685 (license license:gpl3+)))
21686
21687 (define-public emacs-org-present
21688 (let ((commit "d13acd70eff6a1608bc991920232146a0de76b21"))
21689 (package
21690 (name "emacs-org-present")
21691 (version "0.0.1")
21692 (source
21693 (origin
21694 (method git-fetch)
21695 (uri (git-reference
21696 (url "https://github.com/rlister/org-present.git")
21697 (commit commit)))
21698 (file-name (git-file-name name version))
21699 (sha256
21700 (base32
21701 "0jz8xiny3rv9ql0p623byz32pip1b82j2c2nyfz2wd114kiabb6q"))))
21702 (build-system emacs-build-system)
21703 (synopsis "Ultra-minimalist presentation minor-mode for Emacs org-mode")
21704 (description "Org-present is an extremely minimalist presentation tool
21705 for Emacs org-mode. Simply layout your presentation with each slide under a
21706 top-level header, start the minor mode with @code{org-present}, and page through
21707 each slide with left/right keys.")
21708 (home-page "https://github.com/rlister/org-present")
21709 (license license:gpl2))))
21710
21711 (define-public emacs-fullframe
21712 (package
21713 (name "emacs-fullframe")
21714 (version "0.5.0")
21715 (source
21716 (origin
21717 (method git-fetch)
21718 (uri (git-reference
21719 (url "https://github.com/tomterl/fullframe.git")
21720 (commit version)))
21721 (sha256
21722 (base32
21723 "0m43qnhp6ibsskpjkxc86p3lrjsjc0ndqml3lbd65s79x4x7i3fi"))
21724 (file-name (git-file-name name version))))
21725 (build-system emacs-build-system)
21726 (home-page "https://github.com/tomterl/fullframe")
21727 (synopsis "Generalized automatic execution in a single frame")
21728 (description "This library provides helpers for single-window-per-frame
21729 execution of buffer-exposing commands.")
21730 (license license:gpl3+)))
21731
21732 (define-public emacs-eshell-toggle
21733 (let ((commit "ddfbe0a693497c4d4bc5494a19970ba4f6ab9033")
21734 (revision "1"))
21735 (package
21736 (name "emacs-eshell-toggle")
21737 (version (git-version "0.10.0" revision commit))
21738 (source
21739 (origin
21740 (method git-fetch)
21741 (uri (git-reference
21742 (url "https://github.com/4DA/eshell-toggle.git")
21743 (commit commit)))
21744 (sha256
21745 (base32
21746 "0xqrp8pwbmfxjdqipgpw5nw633mvhjjjm3k3j9sh9xdpmw05hhws"))
21747 (file-name (git-file-name name version))))
21748 (build-system emacs-build-system)
21749 (propagated-inputs
21750 `(("emacs-dash" ,emacs-dash)))
21751 (home-page "https://github.com/4DA/eshell-toggle")
21752 (synopsis "Show and hide an @code{eshell} instance")
21753 (description "This package toggles an @code{eshell} instance for the
21754 current buffer.")
21755 (license license:gpl3+))))
21756
21757 (define-public emacs-repl-toggle
21758 (package
21759 (name "emacs-repl-toggle")
21760 (version "0.6.1")
21761 (source
21762 (origin
21763 (method git-fetch)
21764 (uri (git-reference
21765 (url "https://github.com/tomterl/repl-toggle.git")
21766 (commit version)))
21767 (sha256
21768 (base32
21769 "12h3xxja3isnhvrqx7m2g7a5d8h68cc85pbqyhiipfxyafyl1yxd"))
21770 (file-name (git-file-name name version))))
21771 (build-system emacs-build-system)
21772 (propagated-inputs
21773 `(("emacs-fullframe" ,emacs-fullframe)))
21774 (home-page "https://github.com/tomterl/repl-toggle")
21775 (synopsis "Switch to and from current major mode's REPL")
21776 (description "This package provides a function to switch to and from a
21777 REPL appropriate to the current major mode.")
21778 (license license:gpl3+)))
21779
21780 (define-public emacs-blackout
21781 (let ((commit "4bac44671fca4c98d96aa94c79946bf4d4baf0ee")
21782 (revision "1"))
21783 (package
21784 (name "emacs-blackout")
21785 (version (git-version "1.0" revision commit))
21786 (source
21787 (origin
21788 (method git-fetch)
21789 (uri (git-reference
21790 (url "https://github.com/raxod502/blackout.git")
21791 (commit commit)))
21792 (sha256
21793 (base32
21794 "1wnh0nwy6r3a18sy9sqmrwv04vnmaflxy4g7mq8jiyyjijri7l1b"))
21795 (file-name (git-file-name name version))))
21796 (build-system emacs-build-system)
21797 (home-page "https://github.com/raxod502/blackout")
21798 (synopsis "Clean up mode lighters")
21799 (description "This package provides a function for hiding and customizing
21800 display of major and minor modes in the mode line.")
21801 (license license:gpl3+))))
21802
21803 (define-public emacs-ivy-omni-org
21804 (let ((commit "5460a9fc061a4a5ae8372dc8df966ced94abab58")
21805 (revision "1"))
21806 (package
21807 (name "emacs-ivy-omni-org")
21808 (version (git-version "0.2.1" revision commit))
21809 (source
21810 (origin
21811 (method git-fetch)
21812 (uri (git-reference
21813 (url "https://github.com/akirak/ivy-omni-org.git")
21814 (commit commit)))
21815 (file-name (git-file-name name version))
21816 (sha256
21817 (base32
21818 "1np1f51hc3phkl5w02a9a79gl38ra2d535i784fn4pqaasvm0rq8"))))
21819 (build-system emacs-build-system)
21820 (propagated-inputs
21821 `(("emacs-ivy" ,emacs-ivy)
21822 ("emacs-dash" ,emacs-dash)))
21823 (synopsis "Browse anything in Org mode")
21824 (description "This package allows Org items to be accessed via the Ivy
21825 interface.")
21826 (home-page "https://github.com/akirak/ivy-omni-org")
21827 (license license:gpl3+))))
21828
21829 (define-public emacs-ivy-posframe
21830 (let ((commit "ae9bafe94fe6b77b6fe45766ae6172646f6a5d50"))
21831 (package
21832 (name "emacs-ivy-posframe")
21833 (version (git-version "0.1.0" "1" commit))
21834 (source
21835 (origin
21836 (method git-fetch)
21837 (uri (git-reference
21838 (url "https://github.com/tumashu/ivy-posframe.git")
21839 (commit commit)))
21840 (file-name (git-file-name name version))
21841 (sha256
21842 (base32
21843 "1j6yns5d7lh2v1nfcznrirl7qicdli9csciqvfgj4gkh72a97pw1"))))
21844 (build-system emacs-build-system)
21845 (propagated-inputs
21846 `(("emacs-posframe" ,emacs-posframe)
21847 ("emacs-ivy" ,emacs-ivy)))
21848 (home-page "https://github.com/tumashu/ivy-posframe")
21849 (synopsis "Pop a posframe (a child frame) to show Ivy candidates")
21850 (description
21851 "This package provides an Emacs Ivy extension, which let Ivy use
21852 posframe to show its candidate menu.")
21853 (license license:gpl3+))))
21854
21855 (define-public emacs-shackle
21856 (let ((commit "7ccbe513852a1d1700b698547efca14b8940319d")
21857 (revision "1"))
21858 (package
21859 (name "emacs-shackle")
21860 (version (git-version "1.0.3" revision commit))
21861 (source
21862 (origin
21863 (method git-fetch)
21864 (uri (git-reference
21865 (url "https://github.com/wasamasa/shackle.git")
21866 (commit commit)))
21867 (file-name (git-file-name name version))
21868 (sha256
21869 (base32
21870 "0agsp8ia4irr540r898ifhjqp28n1zsq1pilv1kc272spn3qhvp9"))))
21871 (build-system emacs-build-system)
21872 (synopsis "Enforce rules for popups")
21873 (description "This package provides a global minor mode in which users
21874 can specify how popup-displaying functions occupy the screen.")
21875 (home-page "https://github.com/wasamasa/shackle")
21876 (license license:gpl3+))))
21877
21878 (define-public emacs-helm-lacarte
21879 (let ((commit "40a6c449720be521435b6b1da7911af3a0b9dca0")
21880 (revision "1"))
21881 (package
21882 (name "emacs-helm-lacarte")
21883 (version (git-version "0" revision commit))
21884 (source
21885 (origin
21886 (method git-fetch)
21887 (uri (git-reference
21888 (url "https://github.com/emacs-helm/helm-lacarte.git")
21889 (commit commit)))
21890 (file-name (git-file-name name version))
21891 (sha256
21892 (base32
21893 "0dkfd3lap2v7b4nckzv8v7hczmzwzhbl75haqkra107ln91ldbwc"))))
21894 (build-system emacs-build-system)
21895 (propagated-inputs
21896 `(("emacs-helm" ,emacs-helm)
21897 ("emacs-lacarte" ,emacs-lacarte)))
21898 (synopsis "Helm interface to @code{lacarte.el}")
21899 (description "This package provides a Helm interface to
21900 @code{lacarte.el}, a package that displays mode-specific commands as menu
21901 items.")
21902 (home-page "https://github.com/emacs-helm/helm-lacarte")
21903 (license license:gpl3+))))
21904
21905 (define-public emacs-esh-help
21906 (let ((commit "417673ed18a983930a66a6692dbfb288a995cb80")
21907 (revision "1"))
21908 (package
21909 (name "emacs-esh-help")
21910 (version (git-version "1.0.1" revision commit))
21911 (source
21912 (origin
21913 (method git-fetch)
21914 (uri (git-reference
21915 (url "https://github.com/tom-tan/esh-help.git")
21916 (commit commit)))
21917 (file-name (git-file-name name version))
21918 (sha256
21919 (base32
21920 "0x7d51a6ljl014zy7mi27vzcqqbcwg9z4drq29fr2ajk82mqhlgd"))))
21921 (build-system emacs-build-system)
21922 (propagated-inputs
21923 `(("emacs-dash" ,emacs-dash)))
21924 (synopsis "Help functions for Eshell")
21925 (description "This package provides a @code{run-help} function inspired
21926 by @code{zsh} as well as @code{eldoc} support.")
21927 (home-page "https://github.com/tom-tan/esh-help")
21928 (license license:gpl3+))))
21929
21930 (define-public emacs-isearch-dabbrev
21931 (let ((commit "1efe7abba4923015cbc2462395deaec5446a9cc8")
21932 (revision "1"))
21933 (package
21934 (name "emacs-isearch-dabbrev")
21935 (version (git-version "0.1" revision commit))
21936 (source
21937 (origin
21938 (method git-fetch)
21939 (uri (git-reference
21940 (url "https://github.com/Dewdrops/isearch-dabbrev.git")
21941 (commit commit)))
21942 (file-name (git-file-name name version))
21943 (sha256
21944 (base32
21945 "17d0816awadvsw1qc7r0p6ira75jmgxaj9hsk9ypayxsaf6ynyrb"))))
21946 (build-system emacs-build-system)
21947 (synopsis "Use @code{dabbrev} within @code{isearch}")
21948 (description "This package allows @code{dabbrev-expand} to be used
21949 within @code{isearch-mode}.")
21950 (home-page "https://github.com/Dewdrops/isearch-dabbrev")
21951 (license license:gpl3+))))
21952
21953 (define-public emacs-helm-linux-disks
21954 (let ((commit "2cdc8116a08534289eb0dc76461d0f93a0bdf231")
21955 (revision "1"))
21956 (package
21957 (name "emacs-helm-linux-disks")
21958 (version (git-version "0.1" revision commit))
21959 (source
21960 (origin
21961 (method git-fetch)
21962 (uri (git-reference
21963 (url "https://github.com/Akirak/helm-linux-disks.git")
21964 (commit commit)))
21965 (file-name (git-file-name name version))
21966 (sha256
21967 (base32
21968 "1limw82zd8jz3mhh9rqlmhj4cjhfgybs9argfjid1an3vpyhc85i"))))
21969 (build-system emacs-build-system)
21970 (propagated-inputs
21971 `(("emacs-helm" ,emacs-helm)))
21972 (synopsis "Mount/unmount volumes in Linux via Helm")
21973 (description "This package provides a Helm interface to run operations
21974 on removable volumes in Linux.")
21975 (home-page "https://github.com/Akirak/helm-linux-disks")
21976 (license license:gpl3+))))
21977
21978 (define-public emacs-psession
21979 (let ((commit "3e97267c92b164584e06a6c70ee7491714c7c12c")
21980 (revision "1"))
21981 (package
21982 (name "emacs-psession")
21983 (version (git-version "1.5" revision commit))
21984 (source
21985 (origin
21986 (method git-fetch)
21987 (uri (git-reference
21988 (url "https://github.com/thierryvolpiatto/psession.git")
21989 (commit commit)))
21990 (file-name (git-file-name name version))
21991 (sha256
21992 (base32
21993 "15frl618393bc891d0yi3mdxzvbq790a86vfvp3dyd5riz4ddg95"))))
21994 (build-system emacs-build-system)
21995 (propagated-inputs
21996 `(("emacs-async" ,emacs-async)))
21997 (synopsis "Persistent save of @code{elisp} objects.")
21998 (description "This package provides minor modes for saving Emacs session
21999 data, including buffers, window configuration, variables, and more.")
22000 (home-page "https://github.com/thierryvolpiatto/psession")
22001 (license license:gpl3+))))
22002
22003 (define-public emacs-parseedn
22004 (package
22005 (name "emacs-parseedn")
22006 (version "0.1.0")
22007 (source
22008 (origin
22009 (method git-fetch)
22010 (uri (git-reference
22011 (url "https://github.com/clojure-emacs/parseedn.git")
22012 (commit (string-append "v" version))))
22013 (file-name (git-file-name name version))
22014 (sha256
22015 (base32
22016 "11wi3hwcgmy54p6ivpijqm7v0hj6j75a19qk5z779bqfrp79b4pc"))))
22017 (build-system emacs-build-system)
22018 (propagated-inputs
22019 `(("emacs-a" ,emacs-a)
22020 ("emacs-parseclj" ,emacs-parseclj)))
22021 (home-page "https://cider.mx")
22022 (synopsis "EDN parser for Emacs Lisp")
22023 (description
22024 "An Emacs Lisp library for parsing EDN (Clojure) data.
22025 It uses parseclj's shift-reduce parser internally.")
22026 (license license:gpl3+)))
22027
22028 (define-public emacs-parseclj
22029 (package
22030 (name "emacs-parseclj")
22031 (version "0.1.0")
22032 (source
22033 (origin
22034 (method git-fetch)
22035 (uri (git-reference
22036 (url "https://github.com/clojure-emacs/parseclj.git")
22037 (commit (string-append "v" version))))
22038 (file-name (git-file-name name version))
22039 (sha256
22040 (base32
22041 "03bm5dm4hmkqimv4wqxjjh5814pxysmm7z54bv2rf7zwv1x7dggr"))))
22042 (build-system emacs-build-system)
22043 (propagated-inputs `(("emacs-a" ,emacs-a)))
22044 (home-page "https://cider.mx")
22045 (synopsis "Clojure parser for Emacs Lisp")
22046 (description
22047 "An Emacs Lisp library for parsing Clojure code and EDN data.
22048 It supports several input and output formats, all powered by the
22049 same shift-reduce parser function.")
22050 (license license:gpl3+)))
22051
22052 (define-public emacs-hide-mode-line
22053 (package
22054 (name "emacs-hide-mode-line")
22055 (version "1.0.2")
22056 (source (origin
22057 (method git-fetch)
22058 (uri (git-reference
22059 (url "https://github.com/hlissner/emacs-hide-mode-line.git")
22060 (commit (string-append "v" version))))
22061 (file-name (git-file-name name version))
22062 (sha256
22063 (base32
22064 "0dfzjgxfkcw4wisbyldsm1km18pfp9j8xgadn6qnsz11l55bpgyp"))))
22065 (build-system emacs-build-system)
22066 (synopsis "Emacs plugin that hides the mode-line")
22067 (description "A minor mode that hides the mode-line in your current
22068 buffer. It can be used to toggle an alternative mode-line, toggle its visibility,
22069 or simply disable the mode-line in buffers where it is not very useful.")
22070 (home-page "https://github.com/hlissner/emacs-hide-mode-line")
22071 (license license:expat)))
22072
22073 (define-public emacs-helm-cider
22074 ;; No new release since March 2018.
22075 (let ((commit "9363cc537f06233345aa3af5cd46aa5681ad607b"))
22076 (package
22077 (name "emacs-helm-cider")
22078 (version (git-version "0.4.0" "1" commit))
22079 (home-page "https://github.com/clojure-emacs/helm-cider")
22080 (source (origin
22081 (method git-fetch)
22082 (uri (git-reference
22083 (url home-page)
22084 (commit commit)))
22085 (file-name (git-file-name name version))
22086 (sha256
22087 (base32
22088 "0vfn4smqba1vsshz48ggkj8gs94la0sxb1sq4shrb41qj2x3dci7"))))
22089 (build-system emacs-build-system)
22090 (propagated-inputs
22091 `(("emacs-helm" ,emacs-helm)
22092 ("emacs-cider" ,emacs-cider)))
22093 (synopsis "Helm interface to Clojure's CIDER")
22094 (description "Helm-CIDER adds Helm interfaces to
22095 @command{cider-apropos}, @command{cider-apropos-documentation},
22096 @command{cider-browse-ns} (namespaces).
22097
22098 It also provides original Helm commands: @command{helm-cider-spec},
22099 @command{helm-cider-spec-ns}, @command{helm-cider-repl-history},
22100 @command{helm-cider-cheatsheet}.")
22101 (license license:gpl3+))))
22102
22103 (define-public emacs-edn
22104 ;; No release since February 2016
22105 (let ((commit "be9e32d1b49e35247b263b0243df7cfdc8d413ab"))
22106 (package
22107 (name "emacs-edn")
22108 (version (git-version "1.1.2" "1" commit))
22109 (home-page "https://github.com/expez/edn.el")
22110 (source (origin
22111 (method git-fetch)
22112 (uri (git-reference
22113 (url home-page)
22114 (commit commit)))
22115 (file-name (git-file-name name version))
22116 (sha256
22117 (base32
22118 "1xp2hjhn52k6l1g6ypva6dsklpawni7gvjafbz6404f9dyxflh7l"))))
22119 (build-system emacs-build-system)
22120 (propagated-inputs
22121 `(("emacs-peg" ,emacs-peg)))
22122 (synopsis "Read and write EDN from Elisp")
22123 (description "This is an Emacs Lisp library for reading and writing the
22124 data format @code{edn}. See @url{https://github.com/edn-format/edn}.")
22125 (license license:gpl3+))))
22126
22127 (define-public emacs-helm-clojuredocs
22128 (let ((commit "5a7f0f2cb401be0b09e73262a1c18265ab9a3cea"))
22129 (package
22130 (name "emacs-helm-clojuredocs")
22131 (version (git-version "0.3" "1" commit))
22132 (home-page "https://github.com/mbuczko/helm-clojuredocs")
22133 (source (origin
22134 (method git-fetch)
22135 (uri (git-reference
22136 (url home-page)
22137 (commit commit)))
22138 (file-name (git-file-name name version))
22139 (sha256
22140 (base32
22141 "015b8zxh91ljhqvn6z43gy08di54xcw9skw0i7frj3d7gk984qhl"))))
22142 (build-system emacs-build-system)
22143 (propagated-inputs
22144 `(("emacs-helm" ,emacs-helm)
22145 ("emacs-edn" ,emacs-edn)))
22146 (synopsis "Search help on clojuredocs.org with Helm")
22147 (description "This package provides a Helm interface to lookup Clojure
22148 documentation on @url{https://clojuredocs.org} with Helm.
22149
22150 Two function are exposed:
22151 @itemize
22152 @item @command{helm-clojuredocs}: opens a Helm session with no initial
22153 pattern. Searching starts with minimal 3 characters entered.
22154 @item @command{helm-clojuredocs-at-point}: opens a Helm session with initial
22155 pattern guessed from thing under current cursor position.
22156 @end itemize\n")
22157 (license license:gpl3+))))
22158
22159 (define-public emacs-metal-mercury-mode
22160 (let ((commit "99e2d8fb7177cae3bfa2dec2910fc28216d5f5a8")
22161 (revision "1")
22162 (version "0.0.0"))
22163 (package
22164 (name "emacs-metal-mercury-mode")
22165 (version (git-version version revision commit))
22166 (source
22167 (origin
22168 (method git-fetch)
22169 (uri (git-reference
22170 (url "https://github.com/ahungry/metal-mercury-mode.git")
22171 (commit commit)))
22172 (sha256
22173 (base32
22174 "0iil5k3rgifz2vqwsy12rbv5rzyvidq4sgwazsb2hzys8xynmfn5"))
22175 (file-name (git-file-name name version))))
22176 (build-system emacs-build-system)
22177 (propagated-inputs
22178 `(("emacs-dash" ,emacs-dash)))
22179 (synopsis "Major mode for editing Mercury files")
22180 (description
22181 "Major mode for editing Mercury files. This is a rewrite of the original
22182 mercury-mode provided by Emacs as a wrapper around prolog-mode.")
22183 (home-page "https://github.com/ahungry/metal-mercury-mode")
22184 (license license:gpl3+))))
22185
22186 (define-public emacs-boxquote
22187 ;; The following commit is 2.1 release with a switch to GPL3+ license.
22188 (let ((commit "7e47e0e2853bc1215739b2e28f260e9eed93b2c5")
22189 (revision "0"))
22190 (package
22191 (name "emacs-boxquote")
22192 (version (git-version "2.1" revision commit))
22193 (source
22194 (origin
22195 (method git-fetch)
22196 (uri (git-reference
22197 (url "https://github.com/davep/boxquote.el.git")
22198 (commit commit)))
22199 (file-name (git-file-name name version))
22200 (sha256
22201 (base32 "1aqhg24gajvllbqxb0zxrnx6sddas37k2ldfinqyszd856sjhsg3"))))
22202 (build-system emacs-build-system)
22203 (home-page "https://github.com/davep/boxquote.el")
22204 (synopsis "Quote text with different kinds of boxes")
22205 (description "@code{boxquote} provides a set of functions for using
22206 a text quoting style that partially boxes in the left hand side of an area of
22207 text, such a marking style might be used to show externally included text or
22208 example code.")
22209 (license license:gpl3+))))
22210
22211 (define-public emacs-company-ebdb
22212 (package
22213 (name "emacs-company-ebdb")
22214 (version "1.1")
22215 (source
22216 (origin
22217 (method url-fetch)
22218 (uri (string-append "https://elpa.gnu.org/packages/"
22219 "company-ebdb-" version ".el"))
22220 (sha256
22221 (base32 "146qpiigz12zp1823ggxfrx090g0mxs7gz1ba7sa0iq6ibgzwwm9"))))
22222 (build-system emacs-build-system)
22223 (propagated-inputs
22224 `(("emacs-company" ,emacs-company)))
22225 (home-page "https://elpa.gnu.org/packages/company-ebdb.html")
22226 (synopsis "Company completion backend for EBDB in Message mode")
22227 (description "@code{company-ebdb} provides Company mode integration for
22228 EBDB. It is copied more or less intact from @code{company-bbdb}, originally
22229 by Jan Tatarik.")
22230 (license license:gpl3+)))
22231
22232 (define-public emacs-mwim
22233 ;; Use the latest commit not in a release version as of yet, since it
22234 ;; contains a bug fix for the cases where `comment-start-skip' is nil.
22235 (let ((commit "b4f3edb4c0fb8f8b71cecbf8095c2c25a8ffbf85")
22236 (revision "0"))
22237 (package
22238 (name "emacs-mwim")
22239 (version (git-version "0.4" revision commit))
22240 (source
22241 (origin
22242 (method git-fetch)
22243 (uri (git-reference
22244 (url "https://github.com/alezost/mwim.el.git")
22245 (commit commit)))
22246 (file-name (git-file-name name version))
22247 (sha256
22248 (base32 "0l3k611gp9g2x2vfmh92wnhnda81dslpwwpb8mxmzk308man77ya"))))
22249 (build-system emacs-build-system)
22250 (home-page "https://github.com/alezost/mwim.el")
22251 (synopsis "Move to the beginning/end of line, code or comment")
22252 (description "@code{mwim} provides several commands to switch between
22253 various line positions, like moving to the beginning/end of code, line, or
22254 comment.")
22255 (license license:gpl3+))))
22256
22257 (define-public emacs-delight
22258 (package
22259 (name "emacs-delight")
22260 (version "1.5")
22261 (source
22262 (origin
22263 (method url-fetch)
22264 (uri (string-append "https://elpa.gnu.org/packages/"
22265 "delight-" version ".el"))
22266 (sha256
22267 (base32 "0kzlvzwmn6zj0874086q2xw0pclyi7wlkq48zh2lkd2796xm8vw7"))))
22268 (build-system emacs-build-system)
22269 (home-page "https://elpa.gnu.org/packages/delight.html")
22270 (synopsis "Dimmer switch for your mode-line lighter text")
22271 (description "@code{delight} enables customizing or hiding the
22272 mode-line text (lighter) of major and minor modes.")
22273 (license license:gpl3+)))
22274
22275 (define-public emacs-unkillable-scratch
22276 ;; Use the latest (unreleased) commit as of now, since it contains a handy
22277 ;; `unkillable-scratch-do-not-reset-scratch-buffer' customization to not
22278 ;; repopulate the scratch buffer with `initial-scratch-message'.
22279 (let ((commit "b24c2a760529833f230c14cb02ff6e7ec92288ab")
22280 (revision "0"))
22281 (package
22282 (name "emacs-unkillable-scratch")
22283 (version (git-version "1.0.0" revision commit))
22284 (source
22285 (origin
22286 (method git-fetch)
22287 (uri (git-reference
22288 (url "https://github.com/EricCrosson/unkillable-scratch.git")
22289 (commit commit)))
22290 (file-name (git-file-name name version))
22291 (sha256
22292 (base32 "13wjbcxr3km4s96yhpavgs5acs5pvqv3ih1p84diqb3x3i6wd4pa"))))
22293 (build-system emacs-build-system)
22294 (home-page "https://github.com/EricCrosson/unkillable-scratch")
22295 (synopsis "Prevents the *scratch* buffer from being killed")
22296 (description "@code{unkillable-scratch} helps prevent killing buffers
22297 matching a given regexp.")
22298 (license license:gpl2+))))
22299
22300 (define-public emacs-switch-buffer-functions
22301 (package
22302 (name "emacs-switch-buffer-functions")
22303 (version "0.0.1")
22304 (source
22305 (origin
22306 (method git-fetch)
22307 (uri (git-reference
22308 (url "https://github.com/10sr/switch-buffer-functions-el.git")
22309 (commit (string-append "v" version))))
22310 (file-name (git-file-name name version))
22311 (sha256
22312 (base32 "0pq53b8wrjbrxd5hnrcdi0z7mffp4bax55hn90k9ca3j76lhbn1k"))))
22313 (build-system emacs-build-system)
22314 (home-page "https://github.com/10sr/switch-buffer-functions-el")
22315 (synopsis "Hooks run when switching current buffer")
22316 (description "This package provides a hook variable
22317 @code{switch-buffer-functions}. The hooks will be run when the current buffer
22318 is changed after an interactive command, i.e., when @code{post-command-hook}
22319 hooks are run. The hooked functions will be called with both the previous and
22320 the current buffer.")
22321 (license license:unlicense)))
22322
22323 (define-public emacs-erc-scrolltoplace
22324 (package
22325 (name "emacs-erc-scrolltoplace")
22326 (version "0.1.0")
22327 (source
22328 (origin
22329 (method git-fetch)
22330 (uri (git-reference
22331 (url "https://gitlab.com/jgkamat/erc-scrolltoplace.git")
22332 (commit version)))
22333 (file-name (git-file-name name version))
22334 (sha256
22335 (base32 "11zpqwh1mlfifbgnvhc63bvnhg340jgxssm3m43hr1sxsyb52lh6"))))
22336 (build-system emacs-build-system)
22337 (propagated-inputs
22338 `(("emacs-switch-buffer-functions" ,emacs-switch-buffer-functions)))
22339 (home-page "https://gitlab.com/jgkamat/erc-scrolltoplace")
22340 (synopsis "ERC module to replace scrolltobottom while using keep-place")
22341 (description "@code{erc-scrolltoplace} is an ERC module to try
22342 to emulate @code{scrolltobottom} while @code{keep-place} is enabled.")
22343 (license license:gpl3+)))
22344
22345 (define-public emacs-dmenu
22346 ;; Use the latest commit, as there are no tagged releases.
22347 (let ((commit "e8cc9b27c79d3ecc252267c082ab8e9c82eab264")
22348 (revision "0"))
22349 (package
22350 (name "emacs-dmenu")
22351 (version (git-version "0.1" revision commit))
22352 (source
22353 (origin
22354 (method git-fetch)
22355 (uri (git-reference
22356 (url "https://github.com/lujun9972/el-dmenu.git")
22357 (commit commit)))
22358 (file-name (git-file-name name version))
22359 (sha256
22360 (base32 "098ncygms1r33zhjlq4fj2p4jc91v5whqrm3fazzdk7sd6dilf25"))))
22361 (build-system emacs-build-system)
22362 (home-page "https://github.com/lujun9972/el-dmenu")
22363 (synopsis "Simulate the @command{dmenu} command line program")
22364 (description "This package provides a @command{dmenu} command for
22365 launching other commands/applications from within Emacs, similar to the
22366 @command{dmenu} program. This is especially useful when using EXWM.")
22367 (license license:gpl3+))))
22368
22369 (define-public emacs-no-littering
22370 (package
22371 (name "emacs-no-littering")
22372 (version "1.0.3")
22373 (source
22374 (origin
22375 (method git-fetch)
22376 (uri (git-reference
22377 (url "https://github.com/emacscollective/no-littering.git")
22378 (commit (string-append "v" version))))
22379 (file-name (git-file-name name version))
22380 (sha256
22381 (base32 "17is06l0w6glppabv2kaclrnqi3dqb6p6alpslpg7lrjd8vd45ir"))))
22382 (build-system emacs-build-system)
22383 (home-page "https://github.com/emacscollective/no-littering")
22384 (synopsis "Help keep ~/.emacs.d/ clean")
22385 (description "The default paths used to store configuration files and
22386 persistent data are not consistent across Emacs packages, be them built-in or
22387 third-party ones. @code{no-littering} sets out to help clean
22388 @file{~/.emacs.d/} by putting configuration files and persistent data files in
22389 two user-defined directories, as well as using more descriptive names for
22390 files and subdirectories when appropriate.")
22391 (license license:gpl3+)))
22392
22393 (define-public emacs-message-x
22394 ;; Use the latest commit, as there are no tagged releases.
22395 (let ((commit "5524de7bbfdd8749c110f48de5afb024d9f83133")
22396 (revision "0"))
22397 (package
22398 (name "emacs-message-x")
22399 (version (git-version "1.23" revision commit))
22400 (source
22401 (origin
22402 (method git-fetch)
22403 (uri (git-reference
22404 (url "https://github.com/emacsmirror/message-x.git")
22405 (commit commit)))
22406 (file-name (git-file-name name version))
22407 (sha256
22408 (base32 "0qy1xf11j357lsnbb829hnbg7fq1cii4cx54fwf0wgjh1bv2abvj"))))
22409 (build-system emacs-build-system)
22410 (home-page "https://www.emacswiki.org/emacs/message-x.el")
22411 (synopsis "Customizable completion in message headers")
22412 (description "@code{message-x} assigns a context-sensitive function to
22413 the TAB key in Message mode. When on a header line, it performs completion
22414 based on which header we are in (for example, newsgroup name completion makes
22415 sense on the @samp{Newsgroups} header, whereas mail alias expansion makes
22416 sense in the @samp{To} and @samp{Cc} headers). When in the message body, this
22417 executes a different function (default: @code{indent-relative}).")
22418 (license license:gpl2+))))
22419
22420 (define-public emacs-gnus-harvest
22421 (let ((commit "feda071a87b799bd5d23cacde3ee71f0b166e75d")
22422 (revision "0"))
22423 (package
22424 (name "emacs-gnus-harvest")
22425 (version (git-version "1.0" revision commit))
22426 (source
22427 (origin
22428 (method git-fetch)
22429 (uri (git-reference
22430 (url "https://github.com/jwiegley/gnus-harvest.git")
22431 (commit commit)))
22432 (file-name (git-file-name name version))
22433 (sha256
22434 (base32 "08zb7vc3v3wdxkzgi902vlc5ybfvm8fxrvm5drnwfsjj9873pbcb"))))
22435 (build-system emacs-build-system)
22436 (inputs
22437 `(("sqlite" ,sqlite)))
22438 (arguments
22439 `(#:phases
22440 (modify-phases %standard-phases
22441 (add-before 'build 'patch-exec-paths
22442 (lambda* (#:key inputs #:allow-other-keys)
22443 (let ((sqlite (assoc-ref inputs "sqlite"))
22444 (file "gnus-harvest.el"))
22445 (make-file-writable file)
22446 (emacs-substitute-variables file
22447 ("gnus-harvest-sqlite-program"
22448 (string-append sqlite "/bin/sqlite3"))))
22449 #t)))))
22450 (home-page "https://github.com/jwiegley/gnus-harvest")
22451 (synopsis
22452 "Harvest email addresses from read/written Gnus articles")
22453 (description "@code{gnus-harvest} notices email address in every message
22454 or post you read or write, and collects them in a SQLite database, which can
22455 be easily and quickly queried to determine the completion list. It optionally
22456 uses BBDB and Message-X.")
22457 (license license:gpl3+))))
22458
22459 (define-public emacs-auto-dictionary-mode
22460 (package
22461 (name "emacs-auto-dictionary-mode")
22462 (version "1.1")
22463 (source
22464 (origin
22465 (method git-fetch)
22466 (uri (git-reference
22467 (url "https://github.com/nschum/auto-dictionary-mode")
22468 (commit version)))
22469 (file-name (git-file-name name version))
22470 (sha256
22471 (base32 "191294k92qp8gmfypf0q8j8qrym96aqikzvyb9p03wqvbr3r1dsk"))))
22472 (build-system emacs-build-system)
22473 (home-page "http://nschum.de/src/emacs/auto-dictionary/")
22474 (synopsis "Automatic dictionary switcher for Emacs spell checking")
22475 (description "@code{auto-dictionary} is a minor mode that hooks into
22476 Flyspell's on-the-fly spell checking and extends these checks to also detect
22477 language. Auto-dictionary then sets @code{ispell-dictionary} to use the
22478 detected language.")
22479 (license license:gpl2+)))
22480
22481 (define-public emacs-persist
22482 (package
22483 (name "emacs-persist")
22484 (version "0.4")
22485 (source
22486 (origin
22487 (method url-fetch)
22488 (uri (string-append "https://elpa.gnu.org/packages/"
22489 "persist-" version ".tar"))
22490 (sha256
22491 (base32 "0gpxy41qawzss2526j9a7lys60vqma1lvamn4bfabwza7gfhac0q"))))
22492 (build-system emacs-build-system)
22493 (home-page "http://elpa.gnu.org/packages/persist.html")
22494 (synopsis "Persist variables between Emacs sessions")
22495 (description
22496 "This package provides variables which persist across sessions.
22497 Values are stored in a directory in @code{user-emacs-directory}, using
22498 one file per value. This makes it easy to delete or remove unused
22499 variables.")
22500 (license license:gpl3+)))
22501
22502 (define-public emacs-company-emoji
22503 (package
22504 (name "emacs-company-emoji")
22505 (version "2.5.2")
22506 (source
22507 (origin
22508 (method git-fetch)
22509 (uri (git-reference
22510 (url "https://github.com/dunn/company-emoji/")
22511 (commit version)))
22512 (file-name (git-file-name name version))
22513 (sha256
22514 (base32 "0r9zcbm3nb3zw5cwrkl098v5b49jbga5404bj7j55g6k4rwkjar2"))))
22515 (build-system emacs-build-system)
22516 (propagated-inputs
22517 `(("emacs-company" ,emacs-company)))
22518 (home-page "https://github.com/dunn/company-emoji/")
22519 (synopsis "Company completion back-end for emoji")
22520 (description
22521 "This library is a Company back-end providing auto-completion for
22522 emoji.")
22523 (license license:gpl3+)))
22524
22525 (define-public emacs-exiftool
22526 (package
22527 (name "emacs-exiftool")
22528 (version "0.3.2")
22529 (source
22530 (origin
22531 (method git-fetch)
22532 (uri (git-reference
22533 (url "https://git.systemreboot.net/exiftool.el/")
22534 (commit (string-append "v" version))))
22535 (file-name (git-file-name name version))
22536 (sha256
22537 (base32
22538 "0bv58is66cz21yhc0qqkp1z4nk13zfi2l7i6pjbhyi0g1n88qqyv"))))
22539 (build-system emacs-build-system)
22540 (arguments
22541 `(#:tests? #t
22542 #:test-command '("make" "-C" "tests")
22543 #:phases
22544 (modify-phases %standard-phases
22545 (add-after 'unpack 'configure
22546 (lambda* (#:key inputs #:allow-other-keys)
22547 (make-file-writable "exiftool.el")
22548 (emacs-substitute-variables "exiftool.el"
22549 ("exiftool-executable"
22550 (string-append (assoc-ref inputs "perl-image-exiftool")
22551 "/bin/exiftool")))
22552 #t)))))
22553 (inputs
22554 `(("perl-image-exiftool" ,perl-image-exiftool)))
22555 (home-page "https://git.systemreboot.net/exiftool.el/about/")
22556 (synopsis "Elisp wrapper around ExifTool")
22557 (description "@code{emacs-exiftool} is an Elisp wrapper around ExifTool.
22558 ExifTool supports reading and writing metadata in various formats including
22559 EXIF, XMP and IPTC.")
22560 (license license:gpl3+)))
22561
22562 (define-public emacs-password-generator
22563 (package
22564 (name "emacs-password-generator")
22565 (version "1.01")
22566 (home-page "https://github.com/zargener/emacs-password-genarator")
22567 (source
22568 (origin
22569 (method git-fetch)
22570 (uri (git-reference
22571 (url home-page)
22572 (commit "904cdb591a04305ba882ce19e1d117f5fa60f7d3")))
22573 (file-name (git-file-name name version))
22574 (sha256
22575 (base32
22576 "1qgvn79qz1h8ykm5i1qv2fja4v2y0g2i0n5sf7byhnqhqlwn63nv"))))
22577 (build-system emacs-build-system)
22578 (synopsis "Generate passwords inside Emacs")
22579 (description "@code{emacs-password-generator} provides simple functions to
22580 generate random passwords and insert them into the current buffer. It also
22581 supports generation of phonetic and numeric passwords.")
22582 (license license:artistic2.0)))
22583
22584 (define-public emacs-csv
22585 (package
22586 (name "emacs-csv")
22587 (version "2.1")
22588 (home-page "https://gitlab.com/u11/csv.el")
22589 (source
22590 (origin
22591 (method git-fetch)
22592 (uri (git-reference
22593 (url home-page)
22594 (commit (string-append "V" version))))
22595 (file-name (git-file-name name version))
22596 (sha256
22597 (base32
22598 "1vmazjrfcsa9aa9aw8bq5sazdhqvhxyj837dyw5lmh8gk7z0xdaa"))))
22599 (build-system emacs-build-system)
22600 (synopsis "Elisp functions for reading and parsing CSV files")
22601 (description
22602 "@code{csv.el} provides functions for reading and parsing @acronym{CSV,
22603 Comma-Separated Values} files. It follows the format as defined in RFC 4180
22604 @emph{Common Format and MIME Type for CSV
22605 Files} (@url{http://tools.ietf.org/html/rfc4180}).")
22606 (license license:gpl3+)))
22607
22608 (define-public emacs-org-journal
22609 (package
22610 (name "emacs-org-journal")
22611 (version "2.0.0")
22612 (source
22613 (origin
22614 (method git-fetch)
22615 (uri (git-reference
22616 (url "https://github.com/bastibe/org-journal.git")
22617 (commit version)))
22618 (file-name (git-file-name name version))
22619 (sha256
22620 (base32 "18dqd0jy2x530lk0h4fcn9cld9qh4w7b3vxa60fpiia628vsv1dg"))))
22621 (build-system emacs-build-system)
22622 (home-page "https://github.com/bastibe/org-journal")
22623 (synopsis "Simple Org mode journaling mode")
22624 (description
22625 "Org Journal is a set of functions to maintain a simple personal diary /
22626 journal using in Emacs, adapted from
22627 @url{https://www.emacswiki.org/emacs/PersonalDiary}. Convenient bindings
22628 allow the creation of journal records in the current daily, weekly, monthly or
22629 yearly file and search within all records or specified time intervals. All
22630 records can be browsed and searched from the Emacs Calendar for convenience.
22631 All entries in a specified TODO state will be carried over to the next day.")
22632 (license license:bsd-3)))
22633
22634 (define-public emacs-org-static-blog
22635 (package
22636 (name "emacs-org-static-blog")
22637 (version "1.3.0")
22638 (source
22639 (origin
22640 (method git-fetch)
22641 (uri (git-reference
22642 (url "https://github.com/bastibe/org-static-blog")
22643 (commit version)))
22644 (file-name (git-file-name name version))
22645 (sha256
22646 (base32 "15iy3z8rglaqbx1fz14inh18ksgjsmq30b8hyv3lgjvcc9ssaiw0"))))
22647 (build-system emacs-build-system)
22648 (home-page "https://github.com/bastibe/org-static-blog")
22649 (synopsis
22650 "Simple Org mode based static blog generator")
22651 (description
22652 "@code{emacs-org-static-blog} is one more static blog generator, it
22653 focuses on being simple. All files are simple Org files in a directory. The
22654 only requirement is that every Org file must have a @samp{title} and
22655 a @samp{date} keywords, and optionally, a @samp{filetags} keyword.")
22656 (license license:bsd-3)))
22657
22658 (define-public emacs-ddskk
22659 ;; XXX: Upstream adds code names to their release tags, so version and code
22660 ;; name below need to be updated together.
22661 (let ((version "16.3")
22662 (code-name "Kutomatsunai"))
22663 (package
22664 (name "emacs-ddskk")
22665 (version version)
22666 (source
22667 (origin
22668 (method git-fetch)
22669 (uri (git-reference
22670 (url "https://github.com/skk-dev/ddskk")
22671 (commit (string-append "ddskk-" version "_" code-name))))
22672 (file-name (git-file-name name version))
22673 (sha256
22674 (base32 "0ln4x8f35z5y3kf9m718g223bn3lzcmw40jfjg2j5yi24ydf1wm9"))))
22675 (build-system gnu-build-system)
22676 (arguments
22677 `(#:modules ((guix build gnu-build-system)
22678 (guix build utils)
22679 (guix build emacs-utils))
22680 #:imported-modules (,@%gnu-build-system-modules
22681 (guix build emacs-utils))
22682 #:test-target "test"
22683 #:phases
22684 (modify-phases %standard-phases
22685 (replace 'configure
22686 (lambda* (#:key outputs #:allow-other-keys)
22687 (make-file-writable "SKK-MK")
22688 (emacs-substitute-variables "SKK-MK"
22689 ("PREFIX" (assoc-ref outputs "out"))
22690 ("LISPDIR" '(expand-file-name "/share/emacs/site-lisp" PREFIX))
22691 ("SKK_PREFIX" "")
22692 ("SKK_INFODIR" '(expand-file-name "info" PREFIX)))
22693 (for-each make-file-writable (find-files "./doc"))
22694 #t)))))
22695 (native-inputs
22696 `(("emacs-minimal" ,emacs-minimal)))
22697 (home-page "https://github.com/skk-dev/ddskk")
22698 (synopsis "Simple Kana to Kanji conversion program")
22699 (description
22700 "Daredevil SKK is a version of @acronym{SKK, Simple Kana to Kanji
22701 conversion program}, a Japanese input method on Emacs.")
22702 (license license:gpl2+))))
22703
22704 (define-public emacs-objed
22705 (package
22706 (name "emacs-objed")
22707 (version "0.8.3")
22708 (source
22709 (origin
22710 (method url-fetch)
22711 (uri (string-append
22712 "https://elpa.gnu.org/packages/objed-" version ".tar"))
22713 (sha256
22714 (base32
22715 "1s38d6bvggdk5p45ww1jb4gxifzgjwgw1m6ar920nlg0j4fgbcvr"))))
22716 (build-system emacs-build-system)
22717 (home-page "https://github.com/clemera/objed")
22718 (synopsis "Navigate and edit text objects")
22719 (description
22720 "@code{emacs-objed} allows navigating and editing text objects. It
22721 enables modal editing and composition of commands, too. It combines ideas of
22722 other Editors like Vim or Kakoune and tries to align them with regular Emacs
22723 conventions.")
22724 (license license:gpl3+)))
22725
22726 (define-public emacs-haskell-snippets
22727 ;; The commit below is 5 commits ahead of release, and includes a build fix.
22728 (let ((commit "07b0f460b946fd1be26c29652cb0468b47782f3a"))
22729 (package
22730 (name "emacs-haskell-snippets")
22731 (version (git-version "0.1.0" "0" commit))
22732 (source
22733 (origin
22734 (method git-fetch)
22735 (uri
22736 (git-reference
22737 (url "https://github.com/haskell/haskell-snippets")
22738 (commit commit)))
22739 (file-name (git-file-name name version))
22740 (sha256
22741 (base32 "0a7y3awi9hcyahggf0ghsdwvsmrhr9yq634wy9lkqjzrm2hqj0ci"))))
22742 (build-system emacs-build-system)
22743 (arguments
22744 `(#:phases
22745 (modify-phases %standard-phases
22746 (add-after 'install 'install-snippets
22747 (lambda* (#:key outputs #:allow-other-keys)
22748 (let* ((out (assoc-ref outputs "out"))
22749 (snippets
22750 (string-append
22751 out "/share/emacs/site-lisp/snippets/haskell-mode")))
22752 (mkdir-p snippets)
22753 (copy-recursively "snippets/haskell-mode" snippets)
22754 #t))))))
22755 (propagated-inputs
22756 `(("emacs-yasnippet" ,emacs-yasnippet)))
22757 (home-page "https://github.com/haskell/haskell-snippets")
22758 (synopsis "Official collection of YASnippet Haskell snippets for Emacs")
22759 (description "Haskell-Snippets is a collection of YASnippet Haskell
22760 snippets for Emacs.")
22761 (license license:expat))))
22762
22763 (define-public emacs-org-roam
22764 (package
22765 (name "emacs-org-roam")
22766 (version "1.0.0")
22767 (source
22768 (origin
22769 (method git-fetch)
22770 (uri (git-reference
22771 (url "https://github.com/jethrokuan/org-roam.git")
22772 (commit (string-append "v" version))))
22773 (file-name (git-file-name name version))
22774 (sha256
22775 (base32 "08pfa63k194dpk0y2gfa0nzn5lig81q0l9axkq5j4ibj6ifaap4a"))))
22776 (build-system emacs-build-system)
22777 (propagated-inputs
22778 `(("emacs-company" ,emacs-company)
22779 ("emacs-dash" ,emacs-dash)
22780 ("emacs-emacsql-sqlite" ,emacs-emacsql)
22781 ("emacs-f" ,emacs-f)
22782 ("emacs-org-ref" ,emacs-org-ref)
22783 ("emacs-s" ,emacs-s)))
22784 (home-page "https://github.com/jethrokuan/org-roam/")
22785 (synopsis "Non-hierarchical note-taking with Org mode")
22786 (description "Emacs Org Roam is a solution for taking non-hierarchical
22787 notes with Org mode. Notes are captured without hierarchy and are connected
22788 by tags. Notes can be found and created quickly. Org Roam should also work
22789 as a plug-and-play solution for anyone already using Org mode for their
22790 personal wiki.")
22791 (license license:gpl3+)))
22792
22793 (define-public emacs-uml-mode
22794 ;; Package has no release. Version is extracted from "Version:" keyword in
22795 ;; main file.
22796 (let ((commit "4c37ac1c4424b2313cd8f16ba48a98a4cc214200")
22797 (revision "1"))
22798 (package
22799 (name "emacs-uml-mode")
22800 (version (git-version "0.0.4" revision commit))
22801 (source
22802 (origin
22803 (method git-fetch)
22804 (uri (git-reference
22805 (url "https://github.com/ianxm/emacs-uml.git")
22806 (commit commit)))
22807 (file-name (git-file-name name version))
22808 (sha256
22809 (base32 "145i4srnfvd1vyibri2a1l6p9mbjvkkwlrpi41134pbarqffcnka"))))
22810 (build-system emacs-build-system)
22811 (home-page "https://github.com/ianxm/emacs-uml")
22812 (synopsis "Minor mode for editing ASCII UML sequence diagrams")
22813 (description "Emacs UML mode is a minor mode that makes it easy to build
22814 ASCII UML sequence diagrams in Emacs, which can be embedded in source code,
22815 comments or emails.")
22816 (license license:gpl3+))))
22817
22818 (define-public emacs-trashed
22819 (package
22820 (name "emacs-trashed")
22821 (version "1.9.0")
22822 (source
22823 (origin
22824 (method git-fetch)
22825 (uri (git-reference
22826 (url "https://github.com/shingo256/trashed/")
22827 (commit version)))
22828 (file-name (git-file-name name version))
22829 (sha256
22830 (base32 "13grdi12iwlw4fiphdfmvclfpbr6ajlgfbfyi7v41z8k3rxz4ypz"))))
22831 (build-system emacs-build-system)
22832 (home-page "https://github.com/shingo256/trashed/")
22833 (synopsis "View and edit system trash can in Emacs")
22834 (description "Open, view, browse, restore or permanently delete trashed
22835 files or directories in trash can with Dired-like look and feel. The trash
22836 can has to be compliant with freedesktop.org. In Emacs, you can trash files by
22837 deleting them with @code{(setq delete-by-moving-to-trash t)}. This package
22838 provides a simple but convenient user interface to manage those trashed
22839 files.")
22840 (license license:gpl3+)))